@eui/components 18.0.0-next.57 → 18.0.0-next.58

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.
Files changed (53) hide show
  1. package/docs/components/EuiAppSidebarMenuComponent.html +25 -1
  2. package/docs/components/EuiDashboardCardComponent.html +24 -0
  3. package/docs/components/EuiMenuComponent.html +25 -1
  4. package/docs/components/EuiMenuItemComponent.html +24 -0
  5. package/docs/components/EuiSidebarMenuComponent.html +25 -1
  6. package/docs/components/EuiToolbarNavbarComponent.html +105 -4
  7. package/docs/dependencies.html +1 -1
  8. package/docs/js/menu-wc.js +6 -6
  9. package/docs/js/menu-wc_es5.js +1 -1
  10. package/docs/js/search/search_index.js +2 -2
  11. package/docs/modules/EuiToolbarModule.html +3 -0
  12. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +14 -4
  13. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +2 -2
  14. package/esm2022/eui-dialog/eui-dialog.component.mjs +2 -2
  15. package/esm2022/eui-menu/eui-menu-item.component.mjs +11 -4
  16. package/esm2022/eui-menu/eui-menu.component.mjs +7 -3
  17. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +7 -3
  18. package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +2 -2
  19. package/esm2022/eui-timebar/eui-timebar.component.mjs +2 -2
  20. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +7 -3
  21. package/esm2022/layout/eui-app/eui-app.component.mjs +1 -1
  22. package/esm2022/layout/eui-search/search.component.mjs +2 -2
  23. package/esm2022/layout/eui-toolbar/toolbar-navbar/toolbar-navbar.component.mjs +15 -11
  24. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
  25. package/esm2022/layout/eui-toolbar/toolbar.module.mjs +5 -1
  26. package/eui-dashboard-card/eui-dashboard-card.component.d.ts +3 -1
  27. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  28. package/eui-menu/eui-menu-item.component.d.ts +3 -1
  29. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  30. package/eui-menu/eui-menu.component.d.ts +3 -1
  31. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  32. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts +3 -1
  33. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  34. package/fesm2022/eui-components-eui-dashboard-card.mjs +15 -5
  35. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +2 -2
  36. package/fesm2022/eui-components-eui-dialog.mjs +4 -4
  37. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  38. package/fesm2022/eui-components-eui-menu.mjs +17 -6
  39. package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
  40. package/fesm2022/eui-components-eui-sidebar-menu.mjs +6 -2
  41. package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +2 -2
  42. package/fesm2022/eui-components-eui-slide-toggle.mjs +2 -2
  43. package/fesm2022/eui-components-eui-timebar.mjs +2 -2
  44. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  45. package/fesm2022/eui-components-layout.mjs +161 -119
  46. package/fesm2022/eui-components-layout.mjs.map +4 -4
  47. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts +3 -1
  48. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  49. package/layout/eui-toolbar/toolbar-navbar/toolbar-navbar.component.d.ts +7 -2
  50. package/layout/eui-toolbar/toolbar-navbar/toolbar-navbar.component.d.ts.map +1 -1
  51. package/layout/eui-toolbar/toolbar.module.d.ts +4 -3
  52. package/layout/eui-toolbar/toolbar.module.d.ts.map +1 -1
  53. package/package.json +3 -3
@@ -12,7 +12,10 @@ import * as i6 from "@eui/components/directives";
12
12
  import * as i7 from "@eui/components/eui-badge";
13
13
  var EuiMenuItemComponent = class _EuiMenuItemComponent {
14
14
  get cssClasses() {
15
- return this.getCssClasses();
15
+ return [
16
+ this.baseStatesDirective.getCssClasses("eui-menu-item"),
17
+ !this.parent && this.hasBoldRootLevel ? "eui-menu-item--bold" : ""
18
+ ].join(" ").trim();
16
19
  }
17
20
  get ariaHasPopup() {
18
21
  return this.item?.children?.length > 0 ? true : void 0;
@@ -45,6 +48,7 @@ var EuiMenuItemComponent = class _EuiMenuItemComponent {
45
48
  this.hasTooltip = false;
46
49
  this.isCollapsed = false;
47
50
  this.hasCollapsedInitials = false;
51
+ this.hasBoldRootLevel = false;
48
52
  }
49
53
  ngOnInit() {
50
54
  this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;
@@ -132,7 +136,7 @@ var EuiMenuItemComponent = class _EuiMenuItemComponent {
132
136
  this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: _EuiMenuItemComponent, deps: [{ token: i1.BaseStatesDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
133
137
  }
134
138
  static {
135
- this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiMenuItemComponent, selector: "eui-menu-item", inputs: { item: "item", parent: "parent", hasIcon: ["hasIcon", "hasIcon", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute] }, outputs: { expandToggle: "expandToggle", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "attr.role": "this.role", "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses", "attr.tabindex": "this.tabindex", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-disabled": "this.ariaDisabled" } }, hostDirectives: [{ directive: i1.BaseStatesDirective }], ngImport: i0, template: `@if (item.visible && item.filtered) {
139
+ this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiMenuItemComponent, selector: "eui-menu-item", inputs: { item: "item", parent: "parent", hasIcon: ["hasIcon", "hasIcon", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute] }, outputs: { expandToggle: "expandToggle", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "attr.role": "this.role", "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses", "attr.tabindex": "this.tabindex", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-disabled": "this.ariaDisabled" } }, hostDirectives: [{ directive: i1.BaseStatesDirective }], ngImport: i0, template: `@if (item.visible && item.filtered) {
136
140
  @if (isLabelItem) {
137
141
  <li
138
142
  role="none"
@@ -400,7 +404,7 @@ var EuiMenuItemComponent = class _EuiMenuItemComponent {
400
404
  <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
401
405
  </button>
402
406
  </ng-template>
403
- `, styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{padding-top:var(--eui-s-xs);font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n'], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i6.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }], encapsulation: i0.ViewEncapsulation.None });
407
+ `, styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;border-bottom:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n'], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i6.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }], encapsulation: i0.ViewEncapsulation.None });
404
408
  }
405
409
  };
406
410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EuiMenuItemComponent, decorators: [{
@@ -677,7 +681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
677
681
  <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
678
682
  </button>
679
683
  </ng-template>
680
- `, styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{padding-top:var(--eui-s-xs);font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n'] }]
684
+ `, styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;border-bottom:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n'] }]
681
685
  }], ctorParameters: () => [{ type: i1.BaseStatesDirective }, { type: i0.ElementRef }], propDecorators: { role: [{
682
686
  type: HostBinding,
683
687
  args: ["attr.role"]
@@ -719,6 +723,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
719
723
  }], hasCollapsedInitials: [{
720
724
  type: Input,
721
725
  args: [{ transform: booleanAttribute }]
726
+ }], hasBoldRootLevel: [{
727
+ type: Input,
728
+ args: [{ transform: booleanAttribute }]
722
729
  }], stopPropagation: [{
723
730
  type: HostListener,
724
731
  args: ["click", ["$event"]]
@@ -760,6 +767,7 @@ var EuiMenuComponent = class _EuiMenuComponent {
760
767
  this.expandAllItems = false;
761
768
  this.isFlat = false;
762
769
  this.hasScrollToItem = false;
770
+ this.hasBoldRootLevel = false;
763
771
  this.isClick = new EventEmitter2();
764
772
  this.itemClick = new EventEmitter2();
765
773
  }
@@ -1121,7 +1129,7 @@ var EuiMenuComponent = class _EuiMenuComponent {
1121
1129
  this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i02, type: _EuiMenuComponent, deps: [{ token: i12.Router }, { token: i12.ActivatedRoute }, { token: i22.BaseStatesDirective }, { token: i02.ChangeDetectorRef }], target: i02.ɵɵFactoryTarget.Component });
1122
1130
  }
1123
1131
  static {
1124
- this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute2], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute2], hasFilter: ["hasFilter", "hasFilter", booleanAttribute2], hasIcons: ["hasIcons", "hasIcons", booleanAttribute2], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute2], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute2], isFlat: ["isFlat", "isFlat", booleanAttribute2], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute2] }, outputs: { isClick: "isClick", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "focusableItems", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i22.BaseStatesDirective }], ngImport: i02, template: '@if (hasFilter && !isCollapsed) {\n <div class="eui-menu-filter" (click)="onMenuFilterClick($event)">\n <eui-icon-input>\n <eui-icon-svg icon="eui-search" fillColor="neutral-lighter" aria-label="Search Icon"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]="true"\n (input)="onFilter($event)"\n [placeholder]="searchFilterLabel"\n [attr.aria-label]="searchFilterLabel"\n [value]="filterValue" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]="items">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: item, index: index }"> </ng-template>\n </ng-template>\n } @else {\n <span class="eui-menu--no-items">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item="menuItem" let-parent="parent" let-i="index">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf="item.filtered"\n [item]="item"\n [parent]="parent"\n [hasIcon]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n (expandToggle)="onExpandToggle($event)"\n (itemClick)="onClick($event)">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf="item.children && item.expanded" class="eui-menu eui-menu-sub" role="menu" [attr.aria-label]="item.label" tabindex="-1">\n <ng-container *ngFor="let child of item.children; let childIndex = index">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: child, index: childIndex, parent: item }">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n', styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{padding-top:var(--eui-s-xs);font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n'], dependencies: [{ kind: "directive", type: i32.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i32.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i32.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i42.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i42.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i52.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i02.ViewEncapsulation.None });
1132
+ this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute2], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute2], hasFilter: ["hasFilter", "hasFilter", booleanAttribute2], hasIcons: ["hasIcons", "hasIcons", booleanAttribute2], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute2], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute2], isFlat: ["isFlat", "isFlat", booleanAttribute2], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute2], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute2] }, outputs: { isClick: "isClick", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "focusableItems", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i22.BaseStatesDirective }], ngImport: i02, template: '@if (hasFilter && !isCollapsed) {\n <div class="eui-menu-filter" (click)="onMenuFilterClick($event)">\n <eui-icon-input>\n <eui-icon-svg icon="eui-search" fillColor="neutral-lighter" aria-label="Search Icon"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]="true"\n (input)="onFilter($event)"\n [placeholder]="searchFilterLabel"\n [attr.aria-label]="searchFilterLabel"\n [value]="filterValue" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]="items">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: item, index: index }"> </ng-template>\n </ng-template>\n } @else {\n <span class="eui-menu--no-items">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item="menuItem" let-parent="parent" let-i="index">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf="item.filtered"\n [item]="item"\n [parent]="parent"\n [hasIcon]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasBoldRootLevel]="hasBoldRootLevel"\n [hasCollapsedInitials]="hasCollapsedInitials"\n (expandToggle)="onExpandToggle($event)"\n (itemClick)="onClick($event)">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf="item.children && item.expanded" class="eui-menu eui-menu-sub" role="menu" [attr.aria-label]="item.label" tabindex="-1">\n <ng-container *ngFor="let child of item.children; let childIndex = index">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: child, index: childIndex, parent: item }">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n', styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;border-bottom:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n'], dependencies: [{ kind: "directive", type: i32.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i32.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i32.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i42.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i42.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i52.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials", "hasBoldRootLevel"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i02.ViewEncapsulation.None });
1125
1133
  }
1126
1134
  };
1127
1135
  i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i02, type: EuiMenuComponent, decorators: [{
@@ -1130,7 +1138,7 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", n
1130
1138
  {
1131
1139
  directive: BaseStatesDirective3
1132
1140
  }
1133
- ], encapsulation: ViewEncapsulation3.None, template: '@if (hasFilter && !isCollapsed) {\n <div class="eui-menu-filter" (click)="onMenuFilterClick($event)">\n <eui-icon-input>\n <eui-icon-svg icon="eui-search" fillColor="neutral-lighter" aria-label="Search Icon"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]="true"\n (input)="onFilter($event)"\n [placeholder]="searchFilterLabel"\n [attr.aria-label]="searchFilterLabel"\n [value]="filterValue" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]="items">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: item, index: index }"> </ng-template>\n </ng-template>\n } @else {\n <span class="eui-menu--no-items">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item="menuItem" let-parent="parent" let-i="index">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf="item.filtered"\n [item]="item"\n [parent]="parent"\n [hasIcon]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n (expandToggle)="onExpandToggle($event)"\n (itemClick)="onClick($event)">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf="item.children && item.expanded" class="eui-menu eui-menu-sub" role="menu" [attr.aria-label]="item.label" tabindex="-1">\n <ng-container *ngFor="let child of item.children; let childIndex = index">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: child, index: childIndex, parent: item }">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n', styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link.eui-menu-item__link-category{cursor:default}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{padding-top:var(--eui-s-xs);font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}\n'] }]
1141
+ ], encapsulation: ViewEncapsulation3.None, template: '@if (hasFilter && !isCollapsed) {\n <div class="eui-menu-filter" (click)="onMenuFilterClick($event)">\n <eui-icon-input>\n <eui-icon-svg icon="eui-search" fillColor="neutral-lighter" aria-label="Search Icon"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]="true"\n (input)="onFilter($event)"\n [placeholder]="searchFilterLabel"\n [attr.aria-label]="searchFilterLabel"\n [value]="filterValue" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]="items">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: item, index: index }"> </ng-template>\n </ng-template>\n } @else {\n <span class="eui-menu--no-items">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item="menuItem" let-parent="parent" let-i="index">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf="item.filtered"\n [item]="item"\n [parent]="parent"\n [hasIcon]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasBoldRootLevel]="hasBoldRootLevel"\n [hasCollapsedInitials]="hasCollapsedInitials"\n (expandToggle)="onExpandToggle($event)"\n (itemClick)="onClick($event)">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf="item.children && item.expanded" class="eui-menu eui-menu-sub" role="menu" [attr.aria-label]="item.label" tabindex="-1">\n <ng-container *ngFor="let child of item.children; let childIndex = index">\n <ng-template [ngTemplateOutlet]="menuItemTemplateRef" [ngTemplateOutletContext]="{ menuItem: child, index: childIndex, parent: item }">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n', styles: ['.eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link,.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-2xs) calc(var(--eui-s-xs) - 2px) var(--eui-s-m);border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;border-bottom:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-xl);padding-bottom:var(--eui-s-2xs);padding-top:var(--eui-s-2xs);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n'] }]
1134
1142
  }], ctorParameters: () => [{ type: i12.Router }, { type: i12.ActivatedRoute }, { type: i22.BaseStatesDirective }, { type: i02.ChangeDetectorRef }], propDecorators: { focusableItems: [{
1135
1143
  type: ViewChildren,
1136
1144
  args: [EuiMenuItemComponent]
@@ -1171,6 +1179,9 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", n
1171
1179
  }], hasScrollToItem: [{
1172
1180
  type: Input2,
1173
1181
  args: [{ transform: booleanAttribute2 }]
1182
+ }], hasBoldRootLevel: [{
1183
+ type: Input2,
1184
+ args: [{ transform: booleanAttribute2 }]
1174
1185
  }], isClick: [{
1175
1186
  type: Output2
1176
1187
  }], itemClick: [{
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../eui-menu/eui-menu-item.component.ts", "../../eui-menu/eui-menu-item.component.html", "../../eui-menu/eui-menu.component.ts", "../../eui-menu/eui-menu.component.html", "../../eui-menu/eui-menu.module.ts"],
4
- "sourcesContent": ["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, FocusableOption {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.aria-haspopup')\n get ariaHasPopup(): boolean {\n return this.item?.children?.length > 0? true : undefined;\n }\n @HostBinding('attr.aria-expanded')\n get ariaExpanded(): boolean {\n if(this.item.children) {\n return this.item.expanded ? true : false;\n } else {\n return undefined;\n }\n }\n @HostBinding('attr.aria-disabled')\n get ariaDisabled(): boolean {\n return this.item.disabled\n }\n\n @Input() item: EuiMenuItem;\n @Input() parent: EuiMenuItem;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n isActionIconFocused = false;\n\n @Input({ transform: booleanAttribute }) hasIcon = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\n\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n this.focus();\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick(event: MouseEvent): void {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n onActionIconKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n }\n\n public focusActionIcon(): void {\n this.elementRef.nativeElement.querySelector('.eui-menu-item__link-action-icon').focus();\n this.isActionIconFocused = true;\n }\n\n onActionIconFocusOut(): void {\n this.isActionIconFocused = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-menu-item'),\n // this.isLabelLowercase ? 'eui-menu-item--lowercase': '',\n ].join(' ').trim();\n }\n}\n", "@if (item.visible && item.filtered) {\n @if (isLabelItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item__content\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n tabindex=\"-1\"\n position=\"after\">\n\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link eui-menu-item__link-category\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label-category\">{{ item.label }}</span>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n </a>\n </li>\n }\n\n @if (isUrlItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n [routerLink]=\"item.url ? item.url : null\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\"\n tabindex=\"-1\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n\n @if (isLinkItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n}\n\n<ng-template #linkContent>\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label\">{{ item.label }}</span>\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"2xs\"\n aria-label=\"external link icon\"\n euiEnd>\n </eui-icon-svg>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n</ng-template>\n\n<!-- PROJECTED CONTENT BLOCK -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- PROJECTED START BLOCK -->\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n\n @if (hasIcon) {\n\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n @else if (!isLabelItem) {\n <!-- DEFAULT for non category items -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"xs\">\n </eui-icon-svg>\n }\n } @else if (item.hasMarker) {\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (hasIcon) {\n @if (item.iconSvgName && !item.iconClass) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.iconClass && !item.iconSvgName) {\n <!-- WEBFONT -->\n <span class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\" [attr.aria-label]=\"item.iconLabel\"></span>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"s\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n } @else {\n <!-- DEFAULT -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n\n<!-- PROJECTED END BLOCK -->\n<ng-template #itemEndContent>\n @if (item.tagLabel) {\n @if (isCollapsed) {\n <eui-badge [euiVariant]=\"item.tagTypeClass\" class=\"eui-menu-item__link-dotted-badge\"></eui-badge>\n } @else {\n <eui-badge [euiVariant]=\"item.tagTypeClass\">\n {{ item.tagLabel }}\n </eui-badge>\n }\n }\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n tabindex=\"-1\"\n (keydown)=\"onActionIconKeyDown($event)\"\n (focusout)=\"onActionIconFocusOut()\"\n (focus)=\"focusActionIcon()\"\n class=\"eui-menu-item__link-action-icon\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n tabindex=\"-1\"\n [attr.aria-label]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n</ng-template>\n", "import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport * as uuid from 'uuid';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from '@eui/base';\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) focusableItems: QueryList<EuiMenuItemComponent>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu'),\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n @Input() filterValue = '';\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n private cd: ChangeDetectorRef,\n ) {}\n\n @HostListener('click', ['$event'])\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n onKeydown(event: KeyboardEvent): void {\n // finds first child when ArrowDown\n const firstChild = this.focusKeyManager.activeItem?.item.children? this.findFirstFilteredItem(this.focusKeyManager.activeItem?.item.children) : undefined;\n const firstFocusableItem = this.findFocusableItem(firstChild);\n // finds the parent element\n const parent = this.focusKeyManager.activeItem?.item.parent;\n const parentFocusableItem = this.findFocusableItem(parent);\n switch (event.key) {\n case 'Enter': {\n if (\n (this.focusKeyManager.activeItem.isLinkItem || this.focusKeyManager.activeItem.isUrlItem) &&\n !this.focusKeyManager.activeItem.disabled\n ) {\n this.focusKeyManager.activeItem.onClick(event);\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (!this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem?.onExpandToggle(event);\n this.cd.detectChanges();\n }\n break;\n }\n }\n case 'ArrowLeft': {\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem.onExpandToggle(event);\n this.cd.detectChanges();\n event.preventDefault();\n }\n break;\n }\n }\n case 'ArrowDown': {\n event.preventDefault();\n if (this.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded) {\n //focuses first child\n firstFocusableItem?.focus();\n this.focusKeyManager.updateActiveItem(firstFocusableItem);\n } else if (parent) {\n // finds last filtered child when ArrowDown and navigating within submenu\n const filteredChildren = this.findFilteredItems(parent.children);\n const lastChildIndex = (filteredChildren?.length) - 1;\n const lastChild = filteredChildren[lastChildIndex];\n const lastFocusableItem = this.findFocusableItem(lastChild);\n // if the active item is the last child, puts the focus on the next parent\n if(this.focusKeyManager.activeItem === lastFocusableItem){\n this.focusKeyManager.updateActiveItem(parentFocusableItem);\n this.focusKeyManager.setNextItemActive();\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex +1);\n }\n } else {\n // skips remaining childen in the query list when there is expanded node\n this.focusKeyManager.skipPredicate(menuItem => menuItem.parent != undefined || menuItem.item.visible === false);\n this.focusKeyManager.onKeydown(event);\n }\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n if (parent) {\n // finds first filtered child when ArrowUp\n const filteredChildren = this.findFilteredItems(parent.children);\n const firstChildUp = filteredChildren['0']\n const firstFocusableItemUp = this.findFocusableItem(firstChildUp);\n // when navigating up on a submenu focuses the parent if the active item is the first child\n if(this.focusKeyManager.activeItem === firstFocusableItemUp){\n this.focusKeyManager.setActiveItem(parentFocusableItem);\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex -1);\n }\n } else {\n this.focusKeyManager.onKeydown(event);\n // when navigating up from a parent element to an expanded submenu, finds the last child and focuses it\n if(this.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded){\n const filteredChildren = this.findFilteredItems(this.focusKeyManager.activeItem?.item.children);\n const lastChildIndexUp = (filteredChildren.length) - 1;\n const lastFocusableItemUp =this.findFocusableItem(filteredChildren[lastChildIndexUp]);\n this.focusKeyManager.setActiveItem(lastFocusableItemUp);\n }\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n\n if (changes.filterValue && this.hasFilter) {\n this.onFilter(changes.filterValue.currentValue ?? '');\n }\n\n // Refresh when interactive collapsed to initials\n if (changes.hasCollapsedInitials) {\n this.hasCollapsedInitials = changes.hasCollapsedInitials.currentValue;\n this.items = this.configureItems(this.items);\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n };\n\n // subscription to routes url changes for activating the scrollIntoView (optional)\n if (this.hasScrollToItem) {\n const item = this.findMostRelevantItem(this.router.url, this.items);\n if (item) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.focusableItems).withWrap();\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n\n const focusedItem = this.findFocusableItem(item);\n this.focusKeyManager.updateActiveItem(focusedItem);\n }\n\n public onExpandToggle(item: EuiMenuItem): void {\n if (item.children) {\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n }\n\n public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event)\n public onFilter(value: string)\n public onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\n }\n\n /**\n * finds the EuiMenuItemComponent in the queried focusableItems[] that matches the passed EuiMenuItem object\n *\n * @param menuItem an EuiMenuItem\n * @private\n */\n private findFocusableItem(menuItem: EuiMenuItem ): EuiMenuItemComponent {\n return this.focusableItems.find(\n (focusableItem) => focusableItem.item.label === menuItem?.label && focusableItem.item.id === menuItem.id,\n );\n }\n\n /**\n * finds the first item that is filtered\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFirstFilteredItem(menuItems: EuiMenuItem []): EuiMenuItem {\n return menuItems.find((item) => item.filtered);\n }\n\n /**\n * finds all filtered menu items\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFilteredItems(menuItems: EuiMenuItem []): EuiMenuItem [] {\n return menuItems.filter((items) => items.filtered);\n }\n\n /**\n * checks the focus state of the action icon\n *\n * @private\n */\n private checkActionIconFocusState(): void {\n // check if the action icon is focused and if not focus it, otherwise focus the active item\n !this.focusKeyManager.activeItem.isActionIconFocused ? this.focusKeyManager.activeItem.focusActionIcon() : this.focusKeyManager.activeItem.focus();\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems?.map((item: EuiMenuItem) => {\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.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n });\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\n\n if (item.label && this.hasCollapsedInitials) {\n const words = item.label.split(' ');\n if (words.length === 1) {\n item.initials = `${item.label.substring(0, 1)}${item.label.substring(1, 1)}`;\n\n } else {\n item.initials = `${words[0].substring(0, 1)}${words[1].substring(0, 1)}`;\n }\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param items\n * @param value\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substr(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n}\n", "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n", "import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\n\n@NgModule({\n imports: [\n CommonModule, RouterModule,\n EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule, EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, FocusableOption {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-menu-item'),\n !this.parent && this.hasBoldRootLevel ? 'eui-menu-item--bold' : '',\n ].join(' ').trim();\n }\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.aria-haspopup')\n get ariaHasPopup(): boolean {\n return this.item?.children?.length > 0? true : undefined;\n }\n @HostBinding('attr.aria-expanded')\n get ariaExpanded(): boolean {\n if(this.item.children) {\n return this.item.expanded ? true : false;\n } else {\n return undefined;\n }\n }\n @HostBinding('attr.aria-disabled')\n get ariaDisabled(): boolean {\n return this.item.disabled\n }\n\n @Input() item: EuiMenuItem;\n @Input() parent: EuiMenuItem;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n isActionIconFocused = false;\n\n @Input({ transform: booleanAttribute }) hasIcon = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\n\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n this.focus();\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick(event: MouseEvent): void {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n onActionIconKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n }\n\n public focusActionIcon(): void {\n this.elementRef.nativeElement.querySelector('.eui-menu-item__link-action-icon').focus();\n this.isActionIconFocused = true;\n }\n\n onActionIconFocusOut(): void {\n this.isActionIconFocused = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-menu-item'),\n // this.isLabelLowercase ? 'eui-menu-item--lowercase': '',\n ].join(' ').trim();\n }\n}\n", "@if (item.visible && item.filtered) {\n @if (isLabelItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item__content\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n tabindex=\"-1\"\n position=\"after\">\n\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link eui-menu-item__link-category\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label-category\">{{ item.label }}</span>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n </a>\n </li>\n }\n\n @if (isUrlItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n [routerLink]=\"item.url ? item.url : null\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\"\n tabindex=\"-1\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n\n @if (isLinkItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n}\n\n<ng-template #linkContent>\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label\">{{ item.label }}</span>\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"2xs\"\n aria-label=\"external link icon\"\n euiEnd>\n </eui-icon-svg>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n</ng-template>\n\n<!-- PROJECTED CONTENT BLOCK -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- PROJECTED START BLOCK -->\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n\n @if (hasIcon) {\n\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n @else if (!isLabelItem) {\n <!-- DEFAULT for non category items -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"xs\">\n </eui-icon-svg>\n }\n } @else if (item.hasMarker) {\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (hasIcon) {\n @if (item.iconSvgName && !item.iconClass) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.iconClass && !item.iconSvgName) {\n <!-- WEBFONT -->\n <span class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\" [attr.aria-label]=\"item.iconLabel\"></span>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"eui-ellipse\"\n size=\"s\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n } @else {\n <!-- DEFAULT -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n\n<!-- PROJECTED END BLOCK -->\n<ng-template #itemEndContent>\n @if (item.tagLabel) {\n @if (isCollapsed) {\n <eui-badge [euiVariant]=\"item.tagTypeClass\" class=\"eui-menu-item__link-dotted-badge\"></eui-badge>\n } @else {\n <eui-badge [euiVariant]=\"item.tagTypeClass\">\n {{ item.tagLabel }}\n </eui-badge>\n }\n }\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n tabindex=\"-1\"\n (keydown)=\"onActionIconKeyDown($event)\"\n (focusout)=\"onActionIconFocusOut()\"\n (focus)=\"focusActionIcon()\"\n class=\"eui-menu-item__link-action-icon\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n tabindex=\"-1\"\n [attr.aria-label]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n</ng-template>\n", "import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport * as uuid from 'uuid';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from '@eui/base';\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) focusableItems: QueryList<EuiMenuItemComponent>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu'),\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n @Input() filterValue = '';\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n private cd: ChangeDetectorRef,\n ) {}\n\n @HostListener('click', ['$event'])\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n onKeydown(event: KeyboardEvent): void {\n // finds first child when ArrowDown\n const firstChild = this.focusKeyManager.activeItem?.item.children? this.findFirstFilteredItem(this.focusKeyManager.activeItem?.item.children) : undefined;\n const firstFocusableItem = this.findFocusableItem(firstChild);\n // finds the parent element\n const parent = this.focusKeyManager.activeItem?.item.parent;\n const parentFocusableItem = this.findFocusableItem(parent);\n switch (event.key) {\n case 'Enter': {\n if (\n (this.focusKeyManager.activeItem.isLinkItem || this.focusKeyManager.activeItem.isUrlItem) &&\n !this.focusKeyManager.activeItem.disabled\n ) {\n this.focusKeyManager.activeItem.onClick(event);\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (!this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem?.onExpandToggle(event);\n this.cd.detectChanges();\n }\n break;\n }\n }\n case 'ArrowLeft': {\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem.onExpandToggle(event);\n this.cd.detectChanges();\n event.preventDefault();\n }\n break;\n }\n }\n case 'ArrowDown': {\n event.preventDefault();\n if (this.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded) {\n //focuses first child\n firstFocusableItem?.focus();\n this.focusKeyManager.updateActiveItem(firstFocusableItem);\n } else if (parent) {\n // finds last filtered child when ArrowDown and navigating within submenu\n const filteredChildren = this.findFilteredItems(parent.children);\n const lastChildIndex = (filteredChildren?.length) - 1;\n const lastChild = filteredChildren[lastChildIndex];\n const lastFocusableItem = this.findFocusableItem(lastChild);\n // if the active item is the last child, puts the focus on the next parent\n if(this.focusKeyManager.activeItem === lastFocusableItem){\n this.focusKeyManager.updateActiveItem(parentFocusableItem);\n this.focusKeyManager.setNextItemActive();\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex +1);\n }\n } else {\n // skips remaining childen in the query list when there is expanded node\n this.focusKeyManager.skipPredicate(menuItem => menuItem.parent != undefined || menuItem.item.visible === false);\n this.focusKeyManager.onKeydown(event);\n }\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n if (parent) {\n // finds first filtered child when ArrowUp\n const filteredChildren = this.findFilteredItems(parent.children);\n const firstChildUp = filteredChildren['0']\n const firstFocusableItemUp = this.findFocusableItem(firstChildUp);\n // when navigating up on a submenu focuses the parent if the active item is the first child\n if(this.focusKeyManager.activeItem === firstFocusableItemUp){\n this.focusKeyManager.setActiveItem(parentFocusableItem);\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex -1);\n }\n } else {\n this.focusKeyManager.onKeydown(event);\n // when navigating up from a parent element to an expanded submenu, finds the last child and focuses it\n if(this.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded){\n const filteredChildren = this.findFilteredItems(this.focusKeyManager.activeItem?.item.children);\n const lastChildIndexUp = (filteredChildren.length) - 1;\n const lastFocusableItemUp =this.findFocusableItem(filteredChildren[lastChildIndexUp]);\n this.focusKeyManager.setActiveItem(lastFocusableItemUp);\n }\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n\n if (changes.filterValue && this.hasFilter) {\n this.onFilter(changes.filterValue.currentValue ?? '');\n }\n\n // Refresh when interactive collapsed to initials\n if (changes.hasCollapsedInitials) {\n this.hasCollapsedInitials = changes.hasCollapsedInitials.currentValue;\n this.items = this.configureItems(this.items);\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n };\n\n // subscription to routes url changes for activating the scrollIntoView (optional)\n if (this.hasScrollToItem) {\n const item = this.findMostRelevantItem(this.router.url, this.items);\n if (item) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.focusableItems).withWrap();\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n\n const focusedItem = this.findFocusableItem(item);\n this.focusKeyManager.updateActiveItem(focusedItem);\n }\n\n public onExpandToggle(item: EuiMenuItem): void {\n if (item.children) {\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n }\n\n public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event)\n public onFilter(value: string)\n public onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\n }\n\n /**\n * finds the EuiMenuItemComponent in the queried focusableItems[] that matches the passed EuiMenuItem object\n *\n * @param menuItem an EuiMenuItem\n * @private\n */\n private findFocusableItem(menuItem: EuiMenuItem ): EuiMenuItemComponent {\n return this.focusableItems.find(\n (focusableItem) => focusableItem.item.label === menuItem?.label && focusableItem.item.id === menuItem.id,\n );\n }\n\n /**\n * finds the first item that is filtered\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFirstFilteredItem(menuItems: EuiMenuItem []): EuiMenuItem {\n return menuItems.find((item) => item.filtered);\n }\n\n /**\n * finds all filtered menu items\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFilteredItems(menuItems: EuiMenuItem []): EuiMenuItem [] {\n return menuItems.filter((items) => items.filtered);\n }\n\n /**\n * checks the focus state of the action icon\n *\n * @private\n */\n private checkActionIconFocusState(): void {\n // check if the action icon is focused and if not focus it, otherwise focus the active item\n !this.focusKeyManager.activeItem.isActionIconFocused ? this.focusKeyManager.activeItem.focusActionIcon() : this.focusKeyManager.activeItem.focus();\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems?.map((item: EuiMenuItem) => {\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.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n });\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\n\n if (item.label && this.hasCollapsedInitials) {\n const words = item.label.split(' ');\n if (words.length === 1) {\n item.initials = `${item.label.substring(0, 1)}${item.label.substring(1, 1)}`;\n\n } else {\n item.initials = `${words[0].substring(0, 1)}${words[1].substring(0, 1)}`;\n }\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param items\n * @param value\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substr(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n}\n", "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n", "import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\n\n@NgModule({\n imports: [\n CommonModule, RouterModule,\n EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule, EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Component", "HostBinding", "ViewEncapsulation", "Input", "Output", "EventEmitter", "HostListener", "booleanAttribute", "consumeEvent", "BaseStatesDirective", "i0"]
7
7
  }
@@ -12,6 +12,7 @@ var EuiSidebarMenuComponent = class _EuiSidebarMenuComponent {
12
12
  this.hasIcons = false;
13
13
  this.hasTooltip = false;
14
14
  this.expandAllItems = false;
15
+ this.hasBoldRootLevel = false;
15
16
  this.style = "";
16
17
  this.filterValue = "";
17
18
  this.menuClick = new EventEmitter();
@@ -34,12 +35,12 @@ var EuiSidebarMenuComponent = class _EuiSidebarMenuComponent {
34
35
  this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: _EuiSidebarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
36
  }
36
37
  static {
37
- this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-rc.0", type: _EuiSidebarMenuComponent, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], style: "style", fragmentId: "fragmentId", searchFilterLabel: "searchFilterLabel", externalTarget: "externalTarget", filterValue: "filterValue" }, outputs: { menuClick: "menuClick", itemClick: "itemClick" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: '<div class="eui-sidebar-menu__container" [class.eui-sidebar-menu__container--collapsed]="isCollapsed" [style]="style">\n <div class="eui-sidebar-menu__content">\n <eui-menu\n [items]="items"\n [hasFilter]="hasFilter"\n [hasIcons]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n [expandAllItems]="expandAllItems"\n [fragmentId]="fragmentId"\n [searchFilterLabel]="searchFilterLabel"\n [filterValue]="filterValue"\n (isClick)="onMenuClicked($event)"\n (itemClick)="onMenuItemClicked($event)">\n </eui-menu>\n </div>\n</div>\n', styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:0 8px 8px #b7c0ce33;display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"], dependencies: [{ kind: "component", type: i1.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "expandAllItems", "isFlat", "hasScrollToItem"], outputs: ["isClick", "itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
38
+ this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-rc.0", type: _EuiSidebarMenuComponent, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute], style: "style", fragmentId: "fragmentId", searchFilterLabel: "searchFilterLabel", externalTarget: "externalTarget", filterValue: "filterValue" }, outputs: { menuClick: "menuClick", itemClick: "itemClick" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: '<div class="eui-sidebar-menu__container" [class.eui-sidebar-menu__container--collapsed]="isCollapsed" [style]="style">\n <div class="eui-sidebar-menu__content">\n <eui-menu\n [items]="items"\n [hasFilter]="hasFilter"\n [hasIcons]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n [expandAllItems]="expandAllItems"\n [fragmentId]="fragmentId"\n [searchFilterLabel]="searchFilterLabel"\n [filterValue]="filterValue"\n [hasBoldRootLevel]="hasBoldRootLevel"\n (isClick)="onMenuClicked($event)"\n (itemClick)="onMenuItemClicked($event)">\n </eui-menu>\n </div>\n</div>\n', styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:0 8px 8px #b7c0ce33;display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"], dependencies: [{ kind: "component", type: i1.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "expandAllItems", "isFlat", "hasScrollToItem", "hasBoldRootLevel"], outputs: ["isClick", "itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
38
39
  }
39
40
  };
40
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EuiSidebarMenuComponent, decorators: [{
41
42
  type: Component,
42
- args: [{ selector: "eui-sidebar-menu", changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: '<div class="eui-sidebar-menu__container" [class.eui-sidebar-menu__container--collapsed]="isCollapsed" [style]="style">\n <div class="eui-sidebar-menu__content">\n <eui-menu\n [items]="items"\n [hasFilter]="hasFilter"\n [hasIcons]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n [expandAllItems]="expandAllItems"\n [fragmentId]="fragmentId"\n [searchFilterLabel]="searchFilterLabel"\n [filterValue]="filterValue"\n (isClick)="onMenuClicked($event)"\n (itemClick)="onMenuItemClicked($event)">\n </eui-menu>\n </div>\n</div>\n', styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:0 8px 8px #b7c0ce33;display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"] }]
43
+ args: [{ selector: "eui-sidebar-menu", changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: '<div class="eui-sidebar-menu__container" [class.eui-sidebar-menu__container--collapsed]="isCollapsed" [style]="style">\n <div class="eui-sidebar-menu__content">\n <eui-menu\n [items]="items"\n [hasFilter]="hasFilter"\n [hasIcons]="hasIcons"\n [hasTooltip]="hasTooltip"\n [isCollapsed]="isCollapsed"\n [hasCollapsedInitials]="hasCollapsedInitials"\n [expandAllItems]="expandAllItems"\n [fragmentId]="fragmentId"\n [searchFilterLabel]="searchFilterLabel"\n [filterValue]="filterValue"\n [hasBoldRootLevel]="hasBoldRootLevel"\n (isClick)="onMenuClicked($event)"\n (itemClick)="onMenuItemClicked($event)">\n </eui-menu>\n </div>\n</div>\n', styles: [".eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;transition:all .1s ease;width:100%}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:0 8px 8px #b7c0ce33;display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.eui-page-column__body .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{box-shadow:inherit}.eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"] }]
43
44
  }], propDecorators: { string: [{
44
45
  type: HostBinding,
45
46
  args: ["class"]
@@ -63,6 +64,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
63
64
  }], expandAllItems: [{
64
65
  type: Input,
65
66
  args: [{ transform: booleanAttribute }]
67
+ }], hasBoldRootLevel: [{
68
+ type: Input,
69
+ args: [{ transform: booleanAttribute }]
66
70
  }], style: [{
67
71
  type: Input
68
72
  }], fragmentId: [{