@eui/components 18.0.0-next.49 → 18.0.0-next.50

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 (270) hide show
  1. package/directives/eui-arrow-key-navigable.directive.d.ts +13 -0
  2. package/directives/eui-arrow-key-navigable.directive.d.ts.map +1 -0
  3. package/directives/index.d.ts +1 -0
  4. package/directives/index.d.ts.map +1 -1
  5. package/docs/components/ChartComponent.html +2 -2
  6. package/docs/components/CollapsedBreadcrumbComponent.html +2 -2
  7. package/docs/components/DefaultComponent-1.html +2 -2
  8. package/docs/components/DefaultComponent.html +2 -2
  9. package/docs/components/EuiAccordionComponent.html +379 -0
  10. package/docs/components/EuiAccordionItemComponent.html +498 -0
  11. package/docs/components/EuiAlertComponent.html +2 -2
  12. package/docs/components/EuiAlertTitleComponent.html +2 -2
  13. package/docs/components/EuiAppBreadcrumbComponent.html +2 -2
  14. package/docs/components/EuiAppComponent.html +2 -2
  15. package/docs/components/EuiAppFooterComponent.html +2 -2
  16. package/docs/components/EuiAppHeaderComponent.html +2 -2
  17. package/docs/components/EuiAppSidebarBodyComponent.html +2 -2
  18. package/docs/components/EuiAppSidebarComponent.html +2 -2
  19. package/docs/components/EuiAppSidebarDrawerComponent.html +2 -2
  20. package/docs/components/EuiAppSidebarFooterComponent.html +2 -2
  21. package/docs/components/EuiAppSidebarHeaderComponent.html +2 -2
  22. package/docs/components/EuiAppSidebarHeaderUserProfileComponent.html +2 -2
  23. package/docs/components/EuiAppSidebarMenuComponent.html +2 -2
  24. package/docs/components/EuiAppToolbarComponent.html +2 -2
  25. package/docs/components/EuiAppTopMessageComponent.html +2 -2
  26. package/docs/components/EuiAutocompleteAsyncTestComponent.html +2 -2
  27. package/docs/components/EuiAutocompleteChipsAsyncTestComponent.html +2 -2
  28. package/docs/components/EuiAutocompleteChipsTestComponent.html +2 -2
  29. package/docs/components/EuiAutocompleteComponent.html +2 -2
  30. package/docs/components/EuiAutocompleteOptionComponent.html +2 -2
  31. package/docs/components/EuiAutocompleteOptionGroupComponent.html +2 -2
  32. package/docs/components/EuiAutocompleteTestComponent.html +2 -2
  33. package/docs/components/EuiAvatarBadgeComponent.html +2 -2
  34. package/docs/components/EuiAvatarComponent.html +2 -2
  35. package/docs/components/EuiAvatarIconComponent.html +2 -2
  36. package/docs/components/EuiAvatarImageComponent.html +2 -2
  37. package/docs/components/EuiAvatarListComponent.html +2 -2
  38. package/docs/components/EuiAvatarTextComponent.html +2 -2
  39. package/docs/components/EuiBadgeComponent.html +2 -2
  40. package/docs/components/EuiBlockContentComponent.html +2 -2
  41. package/docs/components/EuiBlockDocumentComponent.html +2 -2
  42. package/docs/components/EuiBreadcrumbComponent.html +2 -2
  43. package/docs/components/EuiBreadcrumbItemComponent.html +2 -2
  44. package/docs/components/EuiButtonComponent.html +2 -2
  45. package/docs/components/EuiButtonGroupComponent.html +2 -2
  46. package/docs/components/EuiButtonV2Component.html +2 -2
  47. package/docs/components/EuiCardComponent.html +2 -2
  48. package/docs/components/EuiCardContentComponent.html +2 -2
  49. package/docs/components/EuiCardFooterActionButtonsComponent.html +2 -2
  50. package/docs/components/EuiCardFooterActionIconsComponent.html +2 -2
  51. package/docs/components/EuiCardFooterComponent.html +2 -2
  52. package/docs/components/EuiCardFooterMenuContentComponent.html +2 -2
  53. package/docs/components/EuiCardHeaderBodyComponent.html +2 -2
  54. package/docs/components/EuiCardHeaderComponent.html +3 -3
  55. package/docs/components/EuiCardHeaderLeftContentComponent.html +2 -2
  56. package/docs/components/EuiCardHeaderRightContentComponent.html +2 -2
  57. package/docs/components/EuiCardHeaderSubtitleComponent.html +2 -2
  58. package/docs/components/EuiCardHeaderTitleComponent.html +2 -2
  59. package/docs/components/EuiCardMediaComponent.html +2 -2
  60. package/docs/components/EuiChipComponent.html +2 -2
  61. package/docs/components/EuiChipListComponent.html +2 -2
  62. package/docs/components/EuiDashboardButtonComponent.html +2 -2
  63. package/docs/components/EuiDashboardCardComponent.html +2 -2
  64. package/docs/components/EuiDateRangeSelectorComponent.html +2 -2
  65. package/docs/components/EuiDatepickerComponent.html +2 -2
  66. package/docs/components/EuiDialogComponent.html +2 -2
  67. package/docs/components/EuiDialogContainerComponent.html +2 -2
  68. package/docs/components/EuiDimmerComponent.html +2 -2
  69. package/docs/components/EuiDisableContentComponent.html +2 -2
  70. package/docs/components/EuiDiscussionThreadComponent.html +2 -2
  71. package/docs/components/EuiDiscussionThreadItemComponent.html +2 -2
  72. package/docs/components/EuiDropdownComponent.html +2 -2
  73. package/docs/components/EuiDropdownItemComponent.html +2 -2
  74. package/docs/components/EuiEditorComponent.html +2 -2
  75. package/docs/components/EuiEditorCountersComponent.html +2 -2
  76. package/docs/components/EuiEditorHtmlViewComponent.html +2 -2
  77. package/docs/components/EuiEditorImageDialogComponent.html +2 -2
  78. package/docs/components/EuiEditorJsonViewComponent.html +2 -2
  79. package/docs/components/EuiFeedbackMessageComponent.html +2 -2
  80. package/docs/components/EuiFieldsetComponent.html +3 -3
  81. package/docs/components/EuiFilePreviewComponent.html +2 -2
  82. package/docs/components/EuiFileUploadComponent.html +2 -2
  83. package/docs/components/EuiFileUploadProgressComponent.html +2 -2
  84. package/docs/components/EuiFooterComponent.html +2 -2
  85. package/docs/components/EuiGrowlComponent.html +2 -2
  86. package/docs/components/EuiHeaderAppComponent.html +2 -2
  87. package/docs/components/EuiHeaderAppNameComponent.html +2 -2
  88. package/docs/components/EuiHeaderAppNameLogoComponent.html +2 -2
  89. package/docs/components/EuiHeaderAppSubtitleComponent.html +2 -2
  90. package/docs/components/EuiHeaderComponent.html +2 -2
  91. package/docs/components/EuiHeaderEnvironmentComponent.html +2 -2
  92. package/docs/components/EuiHeaderLogoComponent.html +2 -2
  93. package/docs/components/EuiHeaderRightContentComponent.html +2 -2
  94. package/docs/components/EuiHeaderUserProfileComponent.html +2 -2
  95. package/docs/components/EuiIconButtonComponent.html +2 -2
  96. package/docs/components/EuiIconButtonExpanderComponent.html +27 -3
  97. package/docs/components/EuiIconColorComponent.html +2 -2
  98. package/docs/components/EuiIconInputComponent.html +2 -2
  99. package/docs/components/EuiIconSvgComponent.html +2 -2
  100. package/docs/components/EuiIconToggleComponent.html +2 -2
  101. package/docs/components/EuiInputCheckboxComponent.html +2 -2
  102. package/docs/components/EuiInputGroupComponent.html +2 -2
  103. package/docs/components/EuiInputNumberComponent.html +2 -2
  104. package/docs/components/EuiInputRadioComponent.html +2 -2
  105. package/docs/components/EuiInputTextComponent.html +2 -2
  106. package/docs/components/EuiLabelComponent.html +2 -2
  107. package/docs/components/EuiLanguageSelectorComponent.html +2 -2
  108. package/docs/components/EuiListComponent.html +2 -2
  109. package/docs/components/EuiListItemComponent.html +2 -2
  110. package/docs/components/EuiMenuComponent.html +3 -3
  111. package/docs/components/EuiMenuItemComponent.html +3 -3
  112. package/docs/components/EuiMessageBoxComponent.html +2 -2
  113. package/docs/components/EuiModalSelectorComponent.html +2 -2
  114. package/docs/components/EuiNotificationItemComponent.html +2 -2
  115. package/docs/components/EuiNotificationItemV2Component.html +2 -2
  116. package/docs/components/EuiNotificationsComponent.html +2 -2
  117. package/docs/components/EuiNotificationsV2Component.html +2 -2
  118. package/docs/components/EuiOverlayBodyComponent.html +2 -2
  119. package/docs/components/EuiOverlayComponent.html +2 -2
  120. package/docs/components/EuiOverlayFooterComponent.html +2 -2
  121. package/docs/components/EuiOverlayHeaderComponent.html +2 -2
  122. package/docs/components/EuiOverlayHeaderTitleComponent.html +2 -2
  123. package/docs/components/EuiPageBreadcrumbComponent.html +2 -2
  124. package/docs/components/EuiPageColumnComponent.html +2 -2
  125. package/docs/components/EuiPageColumnsComponent.html +2 -2
  126. package/docs/components/EuiPageComponent.html +2 -2
  127. package/docs/components/EuiPageContentComponent.html +2 -2
  128. package/docs/components/EuiPageFooterComponent.html +2 -2
  129. package/docs/components/EuiPageHeaderActionItemsComponent.html +2 -2
  130. package/docs/components/EuiPageHeaderBodyComponent.html +2 -2
  131. package/docs/components/EuiPageHeaderComponent.html +2 -2
  132. package/docs/components/EuiPageHeaderSubLabelComponent.html +2 -2
  133. package/docs/components/EuiPageHeroHeaderComponent.html +2 -2
  134. package/docs/components/EuiPageTopContentComponent.html +2 -2
  135. package/docs/components/EuiPaginatorComponent.html +2 -2
  136. package/docs/components/EuiPopoverComponent.html +2 -2
  137. package/docs/components/EuiProgressBarComponent.html +2 -2
  138. package/docs/components/EuiProgressCircleComponent.html +2 -2
  139. package/docs/components/EuiResizableComponent.html +2 -2
  140. package/docs/components/EuiSearchComponent.html +2 -2
  141. package/docs/components/EuiSelectComponent.html +2 -2
  142. package/docs/components/EuiSidebarMenuComponent.html +2 -2
  143. package/docs/components/EuiSidebarToggleComponent.html +2 -2
  144. package/docs/components/EuiSkeletonComponent.html +2 -2
  145. package/docs/components/EuiSlideToggleComponent.html +2 -2
  146. package/docs/components/EuiSlideToggleTestComponent.html +2 -2
  147. package/docs/components/EuiTabComponent.html +2 -2
  148. package/docs/components/EuiTabContentComponent.html +2 -2
  149. package/docs/components/EuiTabLabelComponent.html +2 -2
  150. package/docs/components/EuiTableComponent.html +2 -2
  151. package/docs/components/EuiTableExpandableRowComponent.html +2 -2
  152. package/docs/components/EuiTableFilterComponent.html +2 -2
  153. package/docs/components/EuiTableSelectableHeaderComponent.html +2 -2
  154. package/docs/components/EuiTableSelectableRowComponent.html +2 -2
  155. package/docs/components/EuiTableSortableColComponent.html +2 -2
  156. package/docs/components/EuiTableV2Component.html +2 -2
  157. package/docs/components/EuiTableV2FilterComponent.html +2 -2
  158. package/docs/components/EuiTableV2SelectableHeaderComponent.html +2 -2
  159. package/docs/components/EuiTableV2SelectableRowComponent.html +2 -2
  160. package/docs/components/EuiTableV2SortableColComponent.html +2 -2
  161. package/docs/components/EuiTabsComponent.html +2 -2
  162. package/docs/components/EuiTextareaComponent.html +2 -2
  163. package/docs/components/EuiTimebarComponent.html +2 -2
  164. package/docs/components/EuiTimelineComponent.html +2 -2
  165. package/docs/components/EuiTimelineItemComponent.html +2 -2
  166. package/docs/components/EuiTimepickerComponent.html +2 -2
  167. package/docs/components/EuiToolbarAppComponent.html +2 -2
  168. package/docs/components/EuiToolbarCenterComponent.html +2 -2
  169. package/docs/components/EuiToolbarComponent.html +2 -2
  170. package/docs/components/EuiToolbarEnvironmentComponent.html +2 -2
  171. package/docs/components/EuiToolbarItemComponent.html +2 -2
  172. package/docs/components/EuiToolbarItemsComponent.html +2 -2
  173. package/docs/components/EuiToolbarLogoComponent.html +2 -2
  174. package/docs/components/EuiToolbarMenuComponent.html +2 -2
  175. package/docs/components/EuiTooltipContainerComponent.html +2 -2
  176. package/docs/components/EuiTreeComponent.html +2 -2
  177. package/docs/components/EuiTreeListComponent.html +2 -2
  178. package/docs/components/EuiTreeListItemComponent.html +3 -3
  179. package/docs/components/EuiTreeListItemContentComponent.html +2 -2
  180. package/docs/components/EuiTreeListToolbarComponent.html +2 -2
  181. package/docs/components/EuiUserProfileCardComponent.html +2 -2
  182. package/docs/components/EuiUserProfileComponent.html +2 -2
  183. package/docs/components/EuiUserProfileMenuComponent.html +2 -2
  184. package/docs/components/EuiUserProfileMenuItemComponent.html +2 -2
  185. package/docs/components/EuiWizardComponent.html +2 -2
  186. package/docs/components/EuiWizardStepComponent.html +2 -2
  187. package/docs/components/PaginationComponent.html +2 -2
  188. package/docs/components/PlaygroundComponent-1.html +2 -2
  189. package/docs/components/PlaygroundComponent.html +2 -2
  190. package/docs/components/PlaygroundStickyLastColumnComponent.html +2 -2
  191. package/docs/components/QuillEditorComponent.html +2 -2
  192. package/docs/components/VirtualScrollAsyncComponent.html +2 -2
  193. package/docs/components/VirtualScrollComponent.html +2 -2
  194. package/docs/dependencies.html +1 -1
  195. package/docs/directives/EuiAccordionItemHeaderDirective.html +230 -0
  196. package/docs/directives/EuiArrowKeyNavigableDirective.html +5 -1
  197. package/docs/index.html +3 -3
  198. package/docs/js/menu-wc.js +49 -23
  199. package/docs/js/menu-wc_es5.js +1 -1
  200. package/docs/js/search/search_index.js +2 -2
  201. package/docs/miscellaneous/variables.html +2 -0
  202. package/docs/modules/EuiAccordionModule.html +253 -0
  203. package/docs/modules/EuiAllModule.html +6 -0
  204. package/docs/modules/EuiAppModule.html +6 -0
  205. package/docs/modules/EuiLayoutModule.html +6 -0
  206. package/docs/modules/EuiListModule.html +0 -6
  207. package/docs/modules.html +12 -0
  208. package/esm2022/directives/eui-arrow-key-navigable.directive.mjs +39 -0
  209. package/esm2022/directives/index.mjs +2 -1
  210. package/esm2022/eui-accordion/eui-accordion-item.component.mjs +47 -0
  211. package/esm2022/eui-accordion/eui-accordion.component.mjs +26 -0
  212. package/esm2022/eui-accordion/eui-accordion.module.mjs +22 -0
  213. package/esm2022/eui-accordion/eui-components-eui-accordion.mjs +5 -0
  214. package/esm2022/eui-accordion/index.mjs +4 -0
  215. package/esm2022/eui-all/eui-all.module.mjs +9 -4
  216. package/esm2022/eui-button/eui-button.component.mjs +2 -2
  217. package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -4
  218. package/esm2022/eui-card/eui-card.component.mjs +2 -2
  219. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +3 -3
  220. package/esm2022/eui-icon/eui-icon-button-expander/eui-icon-button-expander.component.mjs +8 -3
  221. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +3 -33
  222. package/esm2022/eui-list/eui-list.component.mjs +3 -3
  223. package/esm2022/eui-list/eui-list.module.mjs +5 -5
  224. package/esm2022/eui-menu/eui-menu-item.component.mjs +4 -4
  225. package/esm2022/eui-menu/eui-menu.component.mjs +9 -7
  226. package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +3 -4
  227. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
  228. package/eui-accordion/eui-accordion-item.component.d.ts +16 -0
  229. package/eui-accordion/eui-accordion-item.component.d.ts.map +1 -0
  230. package/eui-accordion/eui-accordion.component.d.ts +8 -0
  231. package/eui-accordion/eui-accordion.component.d.ts.map +1 -0
  232. package/eui-accordion/eui-accordion.module.d.ts +13 -0
  233. package/eui-accordion/eui-accordion.module.d.ts.map +1 -0
  234. package/eui-accordion/eui-components-eui-accordion.d.ts.map +1 -0
  235. package/eui-accordion/index.d.ts +4 -0
  236. package/eui-accordion/index.d.ts.map +1 -0
  237. package/eui-accordion/package.json +3 -0
  238. package/eui-all/eui-all.module.d.ts +2 -1
  239. package/eui-all/eui-all.module.d.ts.map +1 -1
  240. package/eui-icon/eui-icon-button-expander/eui-icon-button-expander.component.d.ts +3 -1
  241. package/eui-icon/eui-icon-button-expander/eui-icon-button-expander.component.d.ts.map +1 -1
  242. package/eui-list/eui-list-item/eui-list-item.component.d.ts +1 -11
  243. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  244. package/eui-list/eui-list.component.d.ts.map +1 -1
  245. package/eui-list/eui-list.module.d.ts +1 -1
  246. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  247. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  248. package/fesm2022/eui-components-directives.mjs +40 -0
  249. package/fesm2022/eui-components-directives.mjs.map +4 -4
  250. package/fesm2022/eui-components-eui-accordion.mjs +119 -0
  251. package/fesm2022/eui-components-eui-accordion.mjs.map +7 -0
  252. package/fesm2022/eui-components-eui-button.mjs +2 -2
  253. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  254. package/fesm2022/eui-components-eui-card.mjs +134 -7
  255. package/fesm2022/eui-components-eui-card.mjs.map +2 -2
  256. package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
  257. package/fesm2022/eui-components-eui-fieldset.mjs.map +2 -2
  258. package/fesm2022/eui-components-eui-icon.mjs +23 -8
  259. package/fesm2022/eui-components-eui-icon.mjs.map +2 -2
  260. package/fesm2022/eui-components-eui-list.mjs +9 -44
  261. package/fesm2022/eui-components-eui-list.mjs.map +3 -3
  262. package/fesm2022/eui-components-eui-menu.mjs +466 -292
  263. package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
  264. package/fesm2022/eui-components-eui-tree-list.mjs +4 -5
  265. package/fesm2022/eui-components-eui-tree-list.mjs.map +2 -2
  266. package/fesm2022/eui-components-layout.mjs +2 -2
  267. package/fesm2022/eui-components-layout.mjs.map +1 -1
  268. package/fesm2022/eui-components.mjs +9 -4
  269. package/fesm2022/eui-components.mjs.map +2 -2
  270. package/package.json +10 -4
@@ -125,195 +125,281 @@ var EuiMenuItemComponent = class _EuiMenuItemComponent {
125
125
  */
126
126
  getCssClasses() {
127
127
  return [
128
- this.baseStatesDirective.getCssClasses("eui-menu-item"),
129
- this.isLabelLowercase ? "eui-menu-item--lowercase" : ""
128
+ this.baseStatesDirective.getCssClasses("eui-menu-item")
129
+ // this.isLabelLowercase ? 'eui-menu-item--lowercase': '',
130
130
  ].join(" ").trim();
131
131
  }
132
132
  static {
133
133
  this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: _EuiMenuItemComponent, deps: [{ token: i1.BaseStatesDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
134
134
  }
135
135
  static {
136
- this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.6", 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], isLabelLowercase: ["isLabelLowercase", "isLabelLowercase", 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: `<li
137
- *ngIf="isLabelItem && item.visible && item.filtered"
138
- role="none"
139
- id="{{item.id}}"
140
- class="eui-menu-item eui-menu-item__category"
141
- [attr.data-e2e]="item.e2eAttr"
142
- [class.eui-menu-item--disabled]="item.disabled"
143
- [attr.aria-disabled]="item.disabled"
144
- [euiTooltip]="menuItemTooltip"
145
- tabindex="-1"
146
- position="after">
147
- <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
148
-
149
- <span class="eui-menu-item__category-label">
150
- <span class="eui-menu-item__label">{{ item.label }}</span>
151
- </span>
152
- </li>
136
+ this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.6", 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], isLabelLowercase: ["isLabelLowercase", "isLabelLowercase", 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) {
137
+ @if (isLabelItem) {
138
+ <li
139
+ role="none"
140
+ id="{{item.id}}"
141
+ class="eui-menu-item__content"
142
+ [attr.data-e2e]="item.e2eAttr"
143
+ [class.eui-menu-item--disabled]="item.disabled"
144
+ [attr.aria-disabled]="item.disabled"
145
+ [euiTooltip]="menuItemTooltip"
146
+ tabindex="-1"
147
+ position="after">
153
148
 
154
- <li
155
- *ngIf="isUrlItem && item.visible && item.filtered"
156
- role="none"
157
- id="{{item.id}}"
158
- [attr.data-e2e]="item.e2eAttr"
159
- class="eui-menu-item"
160
- [class.eui-menu-item--expanded]="item.expanded">
161
- <a
162
- (click)="onClick($event)"
163
- tabindex="-1"
164
- [routerLink]="item.url ? item.url : null"
165
- class="eui-menu-item__link"
166
- [class.eui-menu-item--disabled]="item.disabled"
167
- [routerLinkActive]="item.url ? 'eui-menu-item__link--active' : ''"
168
- [class.eui-menu-item__link--active]="item.active"
169
- [euiTooltip]="menuItemTooltip"
170
- position="after">
171
- <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
172
- </a>
149
+ <a
150
+ (click)="onClick($event)"
151
+ tabindex="-1"
152
+ class="eui-menu-item__link eui-menu-item__link-category"
153
+ [class.eui-menu-item__link--disabled]="item.disabled"
154
+ [class.eui-menu-item__link--active]="item.active"
155
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
156
+ href="javascript:void(0)"
157
+ [euiTooltip]="menuItemTooltip"
158
+ position="after">
173
159
 
174
- <ng-template *ngTemplateOutlet="content"></ng-template>
175
- </li>
160
+ <div class="eui-menu-item__link-start-block">
161
+ <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
162
+ </div>
176
163
 
177
- <li
178
- *ngIf="isLinkItem && item.visible && item.filtered"
179
- role="none"
180
- id="{{item.id}}"
181
- [attr.data-e2e]="item.e2eAttr"
182
- class="eui-menu-item"
183
- [class.eui-menu-item--expanded]="item.expanded">
184
- <a
185
- (click)="onClick($event)"
186
- tabindex="-1"
187
- class="eui-menu-item__link"
188
- [class.eui-menu-item--disabled]="item.disabled"
189
- [class.eui-menu-item__link--active]="item.active"
190
- href="javascript:void(0)"
191
- [euiTooltip]="menuItemTooltip"
192
- position="after">
193
- <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
194
- </a>
164
+ <div class="eui-menu-item__link-content-block">
165
+ <div class="eui-menu-item__link-label-container">
166
+ <span class="eui-menu-item__link-label-category" [class.eui-menu-item__link-label--lowercase]="isLabelLowercase">{{ item.label }}</span>
167
+ </div>
168
+ </div>
195
169
 
196
- <ng-template *ngTemplateOutlet="content"></ng-template>
197
- </li>
170
+ <div class="eui-menu-item__link-end-block">
171
+ <ng-template *ngTemplateOutlet="itemEndContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
172
+ </div>
173
+ </a>
174
+ </li>
175
+ }
198
176
 
199
- <ng-template #linkContent>
200
- <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
177
+ @if (isUrlItem) {
178
+ <li
179
+ role="none"
180
+ id="{{item.id}}"
181
+ [attr.data-e2e]="item.e2eAttr"
182
+ class="eui-menu-item__content"
183
+ [class.eui-menu-item--disabled]="item.disabled"
184
+ [class.eui-menu-item--expanded]="item.expanded"
185
+ [attr.aria-disabled]="item.disabled">
186
+ <a
187
+ (click)="onClick($event)"
188
+ class="eui-menu-item__link"
189
+ [class.eui-menu-item__link--disabled]="item.disabled"
190
+ [class.eui-menu-item__link--active]="item.active"
191
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
192
+ [routerLink]="item.url ? item.url : null"
193
+ [routerLinkActive]="item.url ? 'eui-menu-item__link--active' : ''"
194
+ [euiTooltip]="menuItemTooltip"
195
+ position="after"
196
+ tabindex="-1">
197
+ <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
198
+ </a>
201
199
 
202
- <eui-icon-svg
203
- *ngIf="item.hasMarker && !hasCollapsedInitials"
204
- class="eui-menu-item__link-marker eui-menu-item__link-marker--default"
205
- fillColor="{{ item?.markerTypeClass }}"
206
- icon="eui-ellipse"
207
- size="xs"
208
- [aria-label]="item.markerTypeClass + ' ' + 'marker'">
209
- </eui-icon-svg>
200
+ <ng-template *ngTemplateOutlet="content"></ng-template>
201
+ </li>
202
+ }
210
203
 
211
- <span class="eui-menu-item__link-label" [class.eui-menu-item--disabled]="item.disabled" [attr.aria-disabled]="item.disabled">
212
- <span class="eui-menu-item__label">{{ item.label }}</span>
204
+ @if (isLinkItem) {
205
+ <li
206
+ role="none"
207
+ id="{{item.id}}"
208
+ [attr.data-e2e]="item.e2eAttr"
209
+ class="eui-menu-item__content"
210
+ [class.eui-menu-item--disabled]="item.disabled"
211
+ [class.eui-menu-item--expanded]="item.expanded"
212
+ [attr.aria-disabled]="item.disabled">
213
+ <a
214
+ (click)="onClick($event)"
215
+ tabindex="-1"
216
+ class="eui-menu-item__link"
217
+ [class.eui-menu-item__link--disabled]="item.disabled"
218
+ [class.eui-menu-item__link--active]="item.active"
219
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
220
+ href="javascript:void(0)"
221
+ [euiTooltip]="menuItemTooltip"
222
+ position="after">
223
+ <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
224
+ </a>
213
225
 
214
- <eui-icon-svg
215
- *ngIf="item.urlExternal && item.urlExternalTarget === '_blank'"
216
- class="eui-menu-item__label-external"
217
- icon="eui-ecl-external"
218
- size="2xs"
219
- aria-label="external link icon">
220
- </eui-icon-svg>
221
- </span>
226
+ <ng-template *ngTemplateOutlet="content"></ng-template>
227
+ </li>
228
+ }
229
+ }
222
230
 
223
- <div class="eui-menu-item__link-right-content">
224
- <eui-chip *ngIf="item.tagLabel" euiSizeXS euiOutline class="eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}" [ariaLabel]="item.tagLabel">
225
- <span euiLabel class="eui-label">{{ item.tagLabel }}</span>
226
- </eui-chip>
231
+ <ng-template #linkContent>
232
+ <div class="eui-menu-item__link-start-block">
233
+ <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
234
+ </div>
227
235
 
228
- <button
229
- *ngIf="item.actionIcon"
230
- euiButton
231
- euiRounded
232
- euiIconButton
233
- euiSizeS
234
- euiBasicButton
235
- type="button"
236
- tabindex="-1"
237
- (keydown)="onActionIconKeyDown($event)"
238
- (focusout)="onActionIconFocusOut()"
239
- (focus)="focusActionIcon()"
240
- class="eui-menu-item__link-action-icon"
241
- [euiDisabled]="item.disabled"
242
- [attr.aria-label]="item.actionIcon?.label"
243
- (click)="onActionIconClick($event)">
244
- <eui-icon-svg [icon]="item.actionIcon?.icon" [fillColor]="item.actionIcon?.color"></eui-icon-svg>
245
- </button>
236
+ <div class="eui-menu-item__link-content-block">
237
+ <div class="eui-menu-item__link-label-container">
238
+ <span class="eui-menu-item__link-label" [class.eui-menu-item__link-label--lowercase]="isLabelLowercase">{{ item.label }}</span>
239
+ <eui-icon-svg
240
+ *ngIf="item.urlExternal && item.urlExternalTarget === '_blank'"
241
+ class="eui-menu-item__label-external"
242
+ icon="eui-ecl-external"
243
+ size="2xs"
244
+ aria-label="external link icon"
245
+ euiEnd>
246
+ </eui-icon-svg>
247
+ </div>
248
+ </div>
246
249
 
247
- <button
248
- *ngIf="item.children?.length > 0"
249
- euiButton
250
- euiRounded
251
- euiIconButton
252
- euiSizeS
253
- euiBasicButton
254
- euiSecondary
255
- type="button"
256
- [euiDisabled]="item.disabled"
257
- class="eui-menu-item__link-toggle"
258
- tabindex="-1"
259
- [attr.aria-label]="item.expanded ? collapseMenuLabel : expandMenuLabel"
260
- (click)="onExpandToggle($event)">
261
- <eui-icon-svg *ngIf="item.expanded" icon="eui-chevron-up"></eui-icon-svg>
262
- <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
263
- </button>
250
+ <div class="eui-menu-item__link-end-block">
251
+ <ng-template *ngTemplateOutlet="itemEndContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
264
252
  </div>
265
253
  </ng-template>
266
254
 
255
+ <!-- PROJECTED CONTENT BLOCK -->
267
256
  <ng-template #content>
268
257
  <ng-content></ng-content>
269
258
  </ng-template>
270
259
 
260
+ <!-- PROJECTED START BLOCK -->
271
261
  <ng-template #itemIconContent>
272
262
  @if (!isCollapsed) {
273
- <eui-icon-svg
274
- *ngIf="hasIcon && item.iconSvgName && !item.iconClass"
275
- class="eui-menu-item__link-icon"
276
- icon="{{ item.iconSvgName }}"
277
- fillColor="{{ item.iconTypeClass }}"
278
- size="s">
279
- </eui-icon-svg>
280
- <span *ngIf="hasIcon && item.iconClass && !item.iconSvgName" [attr.aria-label]="item.iconLabel"
281
- class="eui-menu-item__link-icon eui-icon {{item.iconClass}}">
282
- </span>
283
- } @else {
284
- @if (hasCollapsedInitials) {
285
- <span class="eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}">
286
- {{ item.initials }}
287
- </span>
288
- } @else {
289
- @if (hasIcon) {
263
+
264
+ @if (hasIcon) {
265
+
266
+ @if (item.iconSvgName && !item.iconClass) {
267
+ <!-- SVG -->
290
268
  <eui-icon-svg
291
- *ngIf="item.iconSvgName"
269
+ class="eui-menu-item__link-icon"
292
270
  icon="{{ item.iconSvgName }}"
293
271
  fillColor="{{ item.iconTypeClass }}"
294
272
  size="s">
295
273
  </eui-icon-svg>
296
-
274
+
275
+ } @else if (item.iconClass && !item.iconSvgName) {
276
+ <!-- WEBFONT -->
277
+ <span class="eui-menu-item__link-icon eui-icon {{item.iconClass}}" [attr.aria-label]="item.iconLabel"></span>
278
+
279
+ } @else if (item.hasMarker) {
280
+ <!-- MARKER -->
281
+ <eui-icon-svg
282
+ class="eui-menu-item__link-marker"
283
+ fillColor="{{ item?.markerTypeClass }}"
284
+ icon="eui-ellipse"
285
+ size="xs"
286
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
287
+ </eui-icon-svg>
288
+ }
289
+ @else {
290
+ <!-- DEFAULT -->
297
291
  <eui-icon-svg
298
- *ngIf="!item.iconSvgName && !item.hasMarker"
299
- class="eui-menu-item__category-icon--default"
292
+ class="eui-menu-item__link-icon"
300
293
  icon="eui-ellipse"
301
294
  fillColor="neutral-light"
302
295
  size="xs">
303
296
  </eui-icon-svg>
297
+ }
298
+ } @else if (item.hasMarker) {
299
+ <eui-icon-svg
300
+ class="eui-menu-item__link-marker"
301
+ fillColor="{{ item?.markerTypeClass }}"
302
+ icon="eui-ellipse"
303
+ size="xs"
304
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
305
+ </eui-icon-svg>
306
+ }
307
+
308
+ } @else {
309
+ @if (hasCollapsedInitials) {
310
+ <span class="eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}">
311
+ {{ item.initials }}
312
+ </span>
313
+ } @else {
314
+ @if (hasIcon) {
315
+ @if (item.iconSvgName && !item.iconClass) {
316
+ <!-- SVG -->
317
+ <eui-icon-svg
318
+ class="eui-menu-item__link-icon"
319
+ icon="{{ item.iconSvgName }}"
320
+ fillColor="{{ item.iconTypeClass }}"
321
+ size="s">
322
+ </eui-icon-svg>
323
+
324
+ } @else if (item.iconClass && !item.iconSvgName) {
325
+ <!-- WEBFONT -->
326
+ <span class="eui-menu-item__link-icon eui-icon {{item.iconClass}}" [attr.aria-label]="item.iconLabel"></span>
327
+
328
+ } @else if (item.hasMarker) {
329
+ <!-- MARKER -->
330
+ <eui-icon-svg
331
+ class="eui-menu-item__link-marker"
332
+ fillColor="{{ item?.markerTypeClass }}"
333
+ icon="eui-ellipse"
334
+ size="s"
335
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
336
+ </eui-icon-svg>
337
+ } @else {
338
+ <!-- DEFAULT -->
339
+ <eui-icon-svg
340
+ class="eui-menu-item__link-icon"
341
+ icon="eui-ellipse"
342
+ fillColor="neutral-light"
343
+ size="s"
344
+ [aria-label]="item.iconLabel">
345
+ </eui-icon-svg>
346
+ }
304
347
  } @else {
305
348
  <eui-icon-svg
306
- *ngIf="!item.hasMarker"
307
- class="eui-menu-item__link-icon--default"
349
+ class="eui-menu-item__link-icon"
308
350
  icon="eui-ellipse"
309
- size="xs"
310
- [aria-label]="item.iconLabel">
351
+ fillColor="neutral-light"
352
+ size="s">
311
353
  </eui-icon-svg>
312
354
  }
313
355
  }
314
356
  }
315
357
  </ng-template>
316
- `, styles: ['.eui-menu,.eui-menu-wrapper{display:flex;flex-direction:column;flex-shrink:0;width:100%;list-style:none;margin-bottom:0;margin-top:0;padding:0}.eui-menu--no-items,.eui-menu-wrapper--no-items{color:var(--eui-c-neutral-lightest);display:block;text-align:center}.eui-menu:focus:not([readonly]),.eui-menu-wrapper:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]),.eui-menu-wrapper: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]),.eui-menu-wrapper [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-right-content{margin:0;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-toggle{display:inherit;position:absolute;right:0;transform:scale(.65);visibility:visible}.eui-menu-filter{margin:var(--eui-s-m) 0;padding:0 var(--eui-s-m);position:relative}.eui-menu-item{display:flex;flex-direction:column;position:relative;width:100%;border:1px 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--collapsed .eui-menu-item{align-items:center;display:flex;flex-direction:column}.eui-menu-item__category{align-items:center;color:var(--eui-c-neutral-light);display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) var(--eui-s-m);text-decoration:none;text-transform:uppercase;font:var(--eui-f-s-bold)}.eui-page-column__body .eui-menu-item__category{text-transform:inherit}.eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--none)+.eui-menu-item__category-label,.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--default)+.eui-menu-item__category-label{padding-left:var(--eui-s-xs)}.eui-menu-item__category-icon--none{padding:0}.eui-menu-item__category-icon--default{align-items:center;display:flex;justify-content:center;width:100%}.ff.eui-menu--collapsed .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__category-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__category-label{display:none}.eui-menu-item__category .eui-menu-item__link-icon{margin-right:var(--eui-s-xs)}.eui-menu-item a.eui-menu-item__link{border-bottom:none}.eui-menu-item__link{align-items:center;border-top:1px solid var(--eui-c-neutral-bg);color:var(--eui-c-text)!important;cursor:pointer;display:flex;justify-content:center;padding:calc(.5 * var(--eui-s-xs)) var(--eui-s-s);text-decoration:none;text-transform:uppercase;white-space:nowrap;width:100%}.eui-page-column__body .eui-menu-item__link{text-transform:inherit}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none!important}.eui-menu-item__link:hover:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none;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__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-item__link-icon--with-badge .eui-chip{display:flex;height:var(--eui-s-m);left:-12px;position:absolute;top:-4px}.eui-menu-item__link-icon--none{padding:0}.eui-menu-item__link-icon--none+.eui-menu-item__category-label{margin-left:calc(-1 * var(--eui-s-s))}.eui-menu-item__link-icon--default{align-items:center;display:flex;flex-direction:column;font-size:var(--eui-f-size-xs);justify-content:inherit;width:100%}.ff.eui-menu--collapsed .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__link-label{display:none}.eui-page-column__body .eui-menu-item__link-label{font:var(--eui-f-m)}.eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-tag-label{display:flex;margin-left:var(--eui-s-xs);transform:scale(1)}.eui-menu--collapsed .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875)}.eui-menu-item__link-toggle{margin-left:var(--eui-s-2xs);margin-right:calc(-1 * var(--eui-s-xs));transition:all .3s linear}.eui-menu--collapsed .eui-menu-item__link-toggle{display:none;transition:none}.eui-menu-item__link-action-icon{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border-radius:var(--eui-s-xs);min-width:var(--eui-s-2xl);text-align:center;justify-content:center;border:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-s-bold)}.eui-menu-item__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__label-external{color:var(--eui-c-neutral-lighter);margin-left:var(--eui-s-xs);font:var(--eui-f-s)}.eui-menu-item__label-external .eui-icon-svg{fill:var(--eui-c-neutral-light);height:var(--eui-s-s);width:var(--eui-s-s)}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-app.ff.sidebar--close .eui-menu-item__link-tag-label{right:0}.eui-menu-item--expanded .eui-menu-item__category{display:flex}.eui-menu-item--disabled{background-image:none;box-shadow:none;cursor:default;opacity:.65;pointer-events:none}.eui-menu-item--lowercase .eui-menu-item__link,.eui-menu-item--lowercase .eui-menu-item__label,.eui-menu-item--lowercase .eui-menu-item__category,.eui-menu-item--lowercase .eui-menu-item__category-label{text-transform:initial!important}.eui-menu-item--lowercase .eui-menu-item__link-label{font-size:var(--eui-f-size)}.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon--default,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon--default{display:none}.eui-menu-sub{text-decoration:none}.eui-menu-sub .eui-menu-item__category{align-items:center;display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) 0 var(--eui-s-xs) var(--eui-s-xl);text-decoration:none;text-transform:uppercase}.eui-page-column__body .eui-menu-sub .eui-menu-item__category{text-transform:inherit}.eui-menu-sub .eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-sub .eui-menu-item__category-icon--default{color:var(--eui-c-info)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__category-label .eui-menu-item__label{display:block;border-bottom:1px solid var(--eui-c-neutral-lightest);padding-bottom:var(--eui-s-2xs);font:var(--eui-f-s-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category{padding-left:0}.eui-menu-sub .eui-menu-item__link{border:none;height:calc(2.25 * var(--eui-s-m));padding-left:var(--eui-s-xl);text-transform:initial}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xs);padding-right:0}.eui-menu-sub .eui-menu-item__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-sub .eui-menu-item__link-icon--default{font-size:var(--eui-f-size-xs);margin:0}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__link-icon--none{display:none}.eui-menu-sub .eui-menu-item__link-marker{display:flex;justify-content:center;position:relative}.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--none+.eui-menu-item__link-label,.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--default+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-marker{margin-left:calc(-1 * var(--eui-s-2xs))}.eui-menu-sub .eui-menu-item__link-label{height:auto;padding-top:var(--eui-s-3xs);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content{margin-left:var(--eui-s-2xs)}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-sub .eui-menu-item{padding-left:calc(1 * var(--eui-s-m))}.eui-menu--collapsed .eui-menu--no-icons .eui-menu-sub .eui-menu-item__link{margin-left:calc(-1 * var(--eui-s-m))}\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.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }], encapsulation: i0.ViewEncapsulation.None });
358
+
359
+ <!-- PROJECTED END BLOCK -->
360
+ <ng-template #itemEndContent>
361
+ <eui-chip *ngIf="item.tagLabel" euiSizeXS euiOutline class="eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}" [ariaLabel]="item.tagLabel">
362
+ <span euiLabel class="eui-label">{{ item.tagLabel }}</span>
363
+ </eui-chip>
364
+
365
+ <button
366
+ *ngIf="item.actionIcon"
367
+ euiButton
368
+ euiRounded
369
+ euiIconButton
370
+ euiSizeS
371
+ euiBasicButton
372
+ type="button"
373
+ tabindex="-1"
374
+ (keydown)="onActionIconKeyDown($event)"
375
+ (focusout)="onActionIconFocusOut()"
376
+ (focus)="focusActionIcon()"
377
+ class="eui-menu-item__link-action-icon"
378
+ [euiDisabled]="item.disabled"
379
+ [attr.aria-label]="item.actionIcon?.label"
380
+ (click)="onActionIconClick($event)">
381
+ <eui-icon-svg [icon]="item.actionIcon?.icon" [fillColor]="item.actionIcon?.color"></eui-icon-svg>
382
+ </button>
383
+
384
+ <button
385
+ *ngIf="item.children?.length > 0"
386
+ euiButton
387
+ euiRounded
388
+ euiIconButton
389
+ euiSizeS
390
+ euiBasicButton
391
+ euiSecondary
392
+ type="button"
393
+ [euiDisabled]="item.disabled"
394
+ class="eui-menu-item__link-toggle"
395
+ tabindex="-1"
396
+ [attr.aria-label]="item.expanded ? collapseMenuLabel : expandMenuLabel"
397
+ (click)="onExpandToggle($event)">
398
+ <eui-icon-svg *ngIf="item.expanded" icon="eui-chevron-up"></eui-icon-svg>
399
+ <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
400
+ </button>
401
+ </ng-template>
402
+ `, 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-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px 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:2px 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-s);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-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{font:var(--eui-f-m-bold);text-transform:uppercase;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-base-disabled-opacity);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__link--has-sub{border-top:1px solid var(--eui-c-neutral-bg)}.eui-menu-item__link-label--lowercase{text-transform:initial}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl)}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link--has-sub{font-weight:initial;text-transform:initial}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-5xl)}.eui-menu-item--expanded .eui-menu-item__link--has-sub:not(:first-child){border-bottom:1px solid var(--eui-c-neutral-bg)}\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.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i7.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }], encapsulation: i0.ViewEncapsulation.None });
317
403
  }
318
404
  };
319
405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiMenuItemComponent, decorators: [{
@@ -322,187 +408,273 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
322
408
  {
323
409
  directive: BaseStatesDirective
324
410
  }
325
- ], encapsulation: ViewEncapsulation.None, template: `<li
326
- *ngIf="isLabelItem && item.visible && item.filtered"
327
- role="none"
328
- id="{{item.id}}"
329
- class="eui-menu-item eui-menu-item__category"
330
- [attr.data-e2e]="item.e2eAttr"
331
- [class.eui-menu-item--disabled]="item.disabled"
332
- [attr.aria-disabled]="item.disabled"
333
- [euiTooltip]="menuItemTooltip"
334
- tabindex="-1"
335
- position="after">
336
- <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
337
-
338
- <span class="eui-menu-item__category-label">
339
- <span class="eui-menu-item__label">{{ item.label }}</span>
340
- </span>
341
- </li>
411
+ ], encapsulation: ViewEncapsulation.None, template: `@if (item.visible && item.filtered) {
412
+ @if (isLabelItem) {
413
+ <li
414
+ role="none"
415
+ id="{{item.id}}"
416
+ class="eui-menu-item__content"
417
+ [attr.data-e2e]="item.e2eAttr"
418
+ [class.eui-menu-item--disabled]="item.disabled"
419
+ [attr.aria-disabled]="item.disabled"
420
+ [euiTooltip]="menuItemTooltip"
421
+ tabindex="-1"
422
+ position="after">
342
423
 
343
- <li
344
- *ngIf="isUrlItem && item.visible && item.filtered"
345
- role="none"
346
- id="{{item.id}}"
347
- [attr.data-e2e]="item.e2eAttr"
348
- class="eui-menu-item"
349
- [class.eui-menu-item--expanded]="item.expanded">
350
- <a
351
- (click)="onClick($event)"
352
- tabindex="-1"
353
- [routerLink]="item.url ? item.url : null"
354
- class="eui-menu-item__link"
355
- [class.eui-menu-item--disabled]="item.disabled"
356
- [routerLinkActive]="item.url ? 'eui-menu-item__link--active' : ''"
357
- [class.eui-menu-item__link--active]="item.active"
358
- [euiTooltip]="menuItemTooltip"
359
- position="after">
360
- <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
361
- </a>
424
+ <a
425
+ (click)="onClick($event)"
426
+ tabindex="-1"
427
+ class="eui-menu-item__link eui-menu-item__link-category"
428
+ [class.eui-menu-item__link--disabled]="item.disabled"
429
+ [class.eui-menu-item__link--active]="item.active"
430
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
431
+ href="javascript:void(0)"
432
+ [euiTooltip]="menuItemTooltip"
433
+ position="after">
362
434
 
363
- <ng-template *ngTemplateOutlet="content"></ng-template>
364
- </li>
435
+ <div class="eui-menu-item__link-start-block">
436
+ <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
437
+ </div>
365
438
 
366
- <li
367
- *ngIf="isLinkItem && item.visible && item.filtered"
368
- role="none"
369
- id="{{item.id}}"
370
- [attr.data-e2e]="item.e2eAttr"
371
- class="eui-menu-item"
372
- [class.eui-menu-item--expanded]="item.expanded">
373
- <a
374
- (click)="onClick($event)"
375
- tabindex="-1"
376
- class="eui-menu-item__link"
377
- [class.eui-menu-item--disabled]="item.disabled"
378
- [class.eui-menu-item__link--active]="item.active"
379
- href="javascript:void(0)"
380
- [euiTooltip]="menuItemTooltip"
381
- position="after">
382
- <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
383
- </a>
439
+ <div class="eui-menu-item__link-content-block">
440
+ <div class="eui-menu-item__link-label-container">
441
+ <span class="eui-menu-item__link-label-category" [class.eui-menu-item__link-label--lowercase]="isLabelLowercase">{{ item.label }}</span>
442
+ </div>
443
+ </div>
384
444
 
385
- <ng-template *ngTemplateOutlet="content"></ng-template>
386
- </li>
445
+ <div class="eui-menu-item__link-end-block">
446
+ <ng-template *ngTemplateOutlet="itemEndContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
447
+ </div>
448
+ </a>
449
+ </li>
450
+ }
387
451
 
388
- <ng-template #linkContent>
389
- <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
452
+ @if (isUrlItem) {
453
+ <li
454
+ role="none"
455
+ id="{{item.id}}"
456
+ [attr.data-e2e]="item.e2eAttr"
457
+ class="eui-menu-item__content"
458
+ [class.eui-menu-item--disabled]="item.disabled"
459
+ [class.eui-menu-item--expanded]="item.expanded"
460
+ [attr.aria-disabled]="item.disabled">
461
+ <a
462
+ (click)="onClick($event)"
463
+ class="eui-menu-item__link"
464
+ [class.eui-menu-item__link--disabled]="item.disabled"
465
+ [class.eui-menu-item__link--active]="item.active"
466
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
467
+ [routerLink]="item.url ? item.url : null"
468
+ [routerLinkActive]="item.url ? 'eui-menu-item__link--active' : ''"
469
+ [euiTooltip]="menuItemTooltip"
470
+ position="after"
471
+ tabindex="-1">
472
+ <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
473
+ </a>
390
474
 
391
- <eui-icon-svg
392
- *ngIf="item.hasMarker && !hasCollapsedInitials"
393
- class="eui-menu-item__link-marker eui-menu-item__link-marker--default"
394
- fillColor="{{ item?.markerTypeClass }}"
395
- icon="eui-ellipse"
396
- size="xs"
397
- [aria-label]="item.markerTypeClass + ' ' + 'marker'">
398
- </eui-icon-svg>
475
+ <ng-template *ngTemplateOutlet="content"></ng-template>
476
+ </li>
477
+ }
399
478
 
400
- <span class="eui-menu-item__link-label" [class.eui-menu-item--disabled]="item.disabled" [attr.aria-disabled]="item.disabled">
401
- <span class="eui-menu-item__label">{{ item.label }}</span>
479
+ @if (isLinkItem) {
480
+ <li
481
+ role="none"
482
+ id="{{item.id}}"
483
+ [attr.data-e2e]="item.e2eAttr"
484
+ class="eui-menu-item__content"
485
+ [class.eui-menu-item--disabled]="item.disabled"
486
+ [class.eui-menu-item--expanded]="item.expanded"
487
+ [attr.aria-disabled]="item.disabled">
488
+ <a
489
+ (click)="onClick($event)"
490
+ tabindex="-1"
491
+ class="eui-menu-item__link"
492
+ [class.eui-menu-item__link--disabled]="item.disabled"
493
+ [class.eui-menu-item__link--active]="item.active"
494
+ [class.eui-menu-item__link--has-sub]="item.children?.length > 0"
495
+ href="javascript:void(0)"
496
+ [euiTooltip]="menuItemTooltip"
497
+ position="after">
498
+ <ng-template *ngTemplateOutlet="linkContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
499
+ </a>
402
500
 
403
- <eui-icon-svg
404
- *ngIf="item.urlExternal && item.urlExternalTarget === '_blank'"
405
- class="eui-menu-item__label-external"
406
- icon="eui-ecl-external"
407
- size="2xs"
408
- aria-label="external link icon">
409
- </eui-icon-svg>
410
- </span>
501
+ <ng-template *ngTemplateOutlet="content"></ng-template>
502
+ </li>
503
+ }
504
+ }
411
505
 
412
- <div class="eui-menu-item__link-right-content">
413
- <eui-chip *ngIf="item.tagLabel" euiSizeXS euiOutline class="eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}" [ariaLabel]="item.tagLabel">
414
- <span euiLabel class="eui-label">{{ item.tagLabel }}</span>
415
- </eui-chip>
506
+ <ng-template #linkContent>
507
+ <div class="eui-menu-item__link-start-block">
508
+ <ng-template *ngTemplateOutlet="itemIconContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
509
+ </div>
416
510
 
417
- <button
418
- *ngIf="item.actionIcon"
419
- euiButton
420
- euiRounded
421
- euiIconButton
422
- euiSizeS
423
- euiBasicButton
424
- type="button"
425
- tabindex="-1"
426
- (keydown)="onActionIconKeyDown($event)"
427
- (focusout)="onActionIconFocusOut()"
428
- (focus)="focusActionIcon()"
429
- class="eui-menu-item__link-action-icon"
430
- [euiDisabled]="item.disabled"
431
- [attr.aria-label]="item.actionIcon?.label"
432
- (click)="onActionIconClick($event)">
433
- <eui-icon-svg [icon]="item.actionIcon?.icon" [fillColor]="item.actionIcon?.color"></eui-icon-svg>
434
- </button>
511
+ <div class="eui-menu-item__link-content-block">
512
+ <div class="eui-menu-item__link-label-container">
513
+ <span class="eui-menu-item__link-label" [class.eui-menu-item__link-label--lowercase]="isLabelLowercase">{{ item.label }}</span>
514
+ <eui-icon-svg
515
+ *ngIf="item.urlExternal && item.urlExternalTarget === '_blank'"
516
+ class="eui-menu-item__label-external"
517
+ icon="eui-ecl-external"
518
+ size="2xs"
519
+ aria-label="external link icon"
520
+ euiEnd>
521
+ </eui-icon-svg>
522
+ </div>
523
+ </div>
435
524
 
436
- <button
437
- *ngIf="item.children?.length > 0"
438
- euiButton
439
- euiRounded
440
- euiIconButton
441
- euiSizeS
442
- euiBasicButton
443
- euiSecondary
444
- type="button"
445
- [euiDisabled]="item.disabled"
446
- class="eui-menu-item__link-toggle"
447
- tabindex="-1"
448
- [attr.aria-label]="item.expanded ? collapseMenuLabel : expandMenuLabel"
449
- (click)="onExpandToggle($event)">
450
- <eui-icon-svg *ngIf="item.expanded" icon="eui-chevron-up"></eui-icon-svg>
451
- <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
452
- </button>
525
+ <div class="eui-menu-item__link-end-block">
526
+ <ng-template *ngTemplateOutlet="itemEndContent" [ngTemplateOutletContext]="{ $implicit: item }"></ng-template>
453
527
  </div>
454
528
  </ng-template>
455
529
 
530
+ <!-- PROJECTED CONTENT BLOCK -->
456
531
  <ng-template #content>
457
532
  <ng-content></ng-content>
458
533
  </ng-template>
459
534
 
535
+ <!-- PROJECTED START BLOCK -->
460
536
  <ng-template #itemIconContent>
461
537
  @if (!isCollapsed) {
462
- <eui-icon-svg
463
- *ngIf="hasIcon && item.iconSvgName && !item.iconClass"
464
- class="eui-menu-item__link-icon"
465
- icon="{{ item.iconSvgName }}"
466
- fillColor="{{ item.iconTypeClass }}"
467
- size="s">
468
- </eui-icon-svg>
469
- <span *ngIf="hasIcon && item.iconClass && !item.iconSvgName" [attr.aria-label]="item.iconLabel"
470
- class="eui-menu-item__link-icon eui-icon {{item.iconClass}}">
471
- </span>
472
- } @else {
473
- @if (hasCollapsedInitials) {
474
- <span class="eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}">
475
- {{ item.initials }}
476
- </span>
477
- } @else {
478
- @if (hasIcon) {
538
+
539
+ @if (hasIcon) {
540
+
541
+ @if (item.iconSvgName && !item.iconClass) {
542
+ <!-- SVG -->
479
543
  <eui-icon-svg
480
- *ngIf="item.iconSvgName"
544
+ class="eui-menu-item__link-icon"
481
545
  icon="{{ item.iconSvgName }}"
482
546
  fillColor="{{ item.iconTypeClass }}"
483
547
  size="s">
484
548
  </eui-icon-svg>
485
-
549
+
550
+ } @else if (item.iconClass && !item.iconSvgName) {
551
+ <!-- WEBFONT -->
552
+ <span class="eui-menu-item__link-icon eui-icon {{item.iconClass}}" [attr.aria-label]="item.iconLabel"></span>
553
+
554
+ } @else if (item.hasMarker) {
555
+ <!-- MARKER -->
486
556
  <eui-icon-svg
487
- *ngIf="!item.iconSvgName && !item.hasMarker"
488
- class="eui-menu-item__category-icon--default"
557
+ class="eui-menu-item__link-marker"
558
+ fillColor="{{ item?.markerTypeClass }}"
559
+ icon="eui-ellipse"
560
+ size="xs"
561
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
562
+ </eui-icon-svg>
563
+ }
564
+ @else {
565
+ <!-- DEFAULT -->
566
+ <eui-icon-svg
567
+ class="eui-menu-item__link-icon"
489
568
  icon="eui-ellipse"
490
569
  fillColor="neutral-light"
491
570
  size="xs">
492
571
  </eui-icon-svg>
572
+ }
573
+ } @else if (item.hasMarker) {
574
+ <eui-icon-svg
575
+ class="eui-menu-item__link-marker"
576
+ fillColor="{{ item?.markerTypeClass }}"
577
+ icon="eui-ellipse"
578
+ size="xs"
579
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
580
+ </eui-icon-svg>
581
+ }
582
+
583
+ } @else {
584
+ @if (hasCollapsedInitials) {
585
+ <span class="eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}">
586
+ {{ item.initials }}
587
+ </span>
588
+ } @else {
589
+ @if (hasIcon) {
590
+ @if (item.iconSvgName && !item.iconClass) {
591
+ <!-- SVG -->
592
+ <eui-icon-svg
593
+ class="eui-menu-item__link-icon"
594
+ icon="{{ item.iconSvgName }}"
595
+ fillColor="{{ item.iconTypeClass }}"
596
+ size="s">
597
+ </eui-icon-svg>
598
+
599
+ } @else if (item.iconClass && !item.iconSvgName) {
600
+ <!-- WEBFONT -->
601
+ <span class="eui-menu-item__link-icon eui-icon {{item.iconClass}}" [attr.aria-label]="item.iconLabel"></span>
602
+
603
+ } @else if (item.hasMarker) {
604
+ <!-- MARKER -->
605
+ <eui-icon-svg
606
+ class="eui-menu-item__link-marker"
607
+ fillColor="{{ item?.markerTypeClass }}"
608
+ icon="eui-ellipse"
609
+ size="s"
610
+ [aria-label]="item.markerTypeClass + ' ' + 'marker'">
611
+ </eui-icon-svg>
612
+ } @else {
613
+ <!-- DEFAULT -->
614
+ <eui-icon-svg
615
+ class="eui-menu-item__link-icon"
616
+ icon="eui-ellipse"
617
+ fillColor="neutral-light"
618
+ size="s"
619
+ [aria-label]="item.iconLabel">
620
+ </eui-icon-svg>
621
+ }
493
622
  } @else {
494
623
  <eui-icon-svg
495
- *ngIf="!item.hasMarker"
496
- class="eui-menu-item__link-icon--default"
624
+ class="eui-menu-item__link-icon"
497
625
  icon="eui-ellipse"
498
- size="xs"
499
- [aria-label]="item.iconLabel">
626
+ fillColor="neutral-light"
627
+ size="s">
500
628
  </eui-icon-svg>
501
629
  }
502
630
  }
503
631
  }
504
632
  </ng-template>
505
- `, styles: ['.eui-menu,.eui-menu-wrapper{display:flex;flex-direction:column;flex-shrink:0;width:100%;list-style:none;margin-bottom:0;margin-top:0;padding:0}.eui-menu--no-items,.eui-menu-wrapper--no-items{color:var(--eui-c-neutral-lightest);display:block;text-align:center}.eui-menu:focus:not([readonly]),.eui-menu-wrapper:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]),.eui-menu-wrapper: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]),.eui-menu-wrapper [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-right-content{margin:0;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-toggle{display:inherit;position:absolute;right:0;transform:scale(.65);visibility:visible}.eui-menu-filter{margin:var(--eui-s-m) 0;padding:0 var(--eui-s-m);position:relative}.eui-menu-item{display:flex;flex-direction:column;position:relative;width:100%;border:1px 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--collapsed .eui-menu-item{align-items:center;display:flex;flex-direction:column}.eui-menu-item__category{align-items:center;color:var(--eui-c-neutral-light);display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) var(--eui-s-m);text-decoration:none;text-transform:uppercase;font:var(--eui-f-s-bold)}.eui-page-column__body .eui-menu-item__category{text-transform:inherit}.eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--none)+.eui-menu-item__category-label,.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--default)+.eui-menu-item__category-label{padding-left:var(--eui-s-xs)}.eui-menu-item__category-icon--none{padding:0}.eui-menu-item__category-icon--default{align-items:center;display:flex;justify-content:center;width:100%}.ff.eui-menu--collapsed .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__category-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__category-label{display:none}.eui-menu-item__category .eui-menu-item__link-icon{margin-right:var(--eui-s-xs)}.eui-menu-item a.eui-menu-item__link{border-bottom:none}.eui-menu-item__link{align-items:center;border-top:1px solid var(--eui-c-neutral-bg);color:var(--eui-c-text)!important;cursor:pointer;display:flex;justify-content:center;padding:calc(.5 * var(--eui-s-xs)) var(--eui-s-s);text-decoration:none;text-transform:uppercase;white-space:nowrap;width:100%}.eui-page-column__body .eui-menu-item__link{text-transform:inherit}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none!important}.eui-menu-item__link:hover:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none;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__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-item__link-icon--with-badge .eui-chip{display:flex;height:var(--eui-s-m);left:-12px;position:absolute;top:-4px}.eui-menu-item__link-icon--none{padding:0}.eui-menu-item__link-icon--none+.eui-menu-item__category-label{margin-left:calc(-1 * var(--eui-s-s))}.eui-menu-item__link-icon--default{align-items:center;display:flex;flex-direction:column;font-size:var(--eui-f-size-xs);justify-content:inherit;width:100%}.ff.eui-menu--collapsed .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__link-label{display:none}.eui-page-column__body .eui-menu-item__link-label{font:var(--eui-f-m)}.eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-tag-label{display:flex;margin-left:var(--eui-s-xs);transform:scale(1)}.eui-menu--collapsed .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875)}.eui-menu-item__link-toggle{margin-left:var(--eui-s-2xs);margin-right:calc(-1 * var(--eui-s-xs));transition:all .3s linear}.eui-menu--collapsed .eui-menu-item__link-toggle{display:none;transition:none}.eui-menu-item__link-action-icon{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border-radius:var(--eui-s-xs);min-width:var(--eui-s-2xl);text-align:center;justify-content:center;border:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-s-bold)}.eui-menu-item__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__label-external{color:var(--eui-c-neutral-lighter);margin-left:var(--eui-s-xs);font:var(--eui-f-s)}.eui-menu-item__label-external .eui-icon-svg{fill:var(--eui-c-neutral-light);height:var(--eui-s-s);width:var(--eui-s-s)}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-app.ff.sidebar--close .eui-menu-item__link-tag-label{right:0}.eui-menu-item--expanded .eui-menu-item__category{display:flex}.eui-menu-item--disabled{background-image:none;box-shadow:none;cursor:default;opacity:.65;pointer-events:none}.eui-menu-item--lowercase .eui-menu-item__link,.eui-menu-item--lowercase .eui-menu-item__label,.eui-menu-item--lowercase .eui-menu-item__category,.eui-menu-item--lowercase .eui-menu-item__category-label{text-transform:initial!important}.eui-menu-item--lowercase .eui-menu-item__link-label{font-size:var(--eui-f-size)}.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon--default,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon--default{display:none}.eui-menu-sub{text-decoration:none}.eui-menu-sub .eui-menu-item__category{align-items:center;display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) 0 var(--eui-s-xs) var(--eui-s-xl);text-decoration:none;text-transform:uppercase}.eui-page-column__body .eui-menu-sub .eui-menu-item__category{text-transform:inherit}.eui-menu-sub .eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-sub .eui-menu-item__category-icon--default{color:var(--eui-c-info)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__category-label .eui-menu-item__label{display:block;border-bottom:1px solid var(--eui-c-neutral-lightest);padding-bottom:var(--eui-s-2xs);font:var(--eui-f-s-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category{padding-left:0}.eui-menu-sub .eui-menu-item__link{border:none;height:calc(2.25 * var(--eui-s-m));padding-left:var(--eui-s-xl);text-transform:initial}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xs);padding-right:0}.eui-menu-sub .eui-menu-item__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-sub .eui-menu-item__link-icon--default{font-size:var(--eui-f-size-xs);margin:0}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__link-icon--none{display:none}.eui-menu-sub .eui-menu-item__link-marker{display:flex;justify-content:center;position:relative}.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--none+.eui-menu-item__link-label,.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--default+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-marker{margin-left:calc(-1 * var(--eui-s-2xs))}.eui-menu-sub .eui-menu-item__link-label{height:auto;padding-top:var(--eui-s-3xs);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content{margin-left:var(--eui-s-2xs)}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-sub .eui-menu-item{padding-left:calc(1 * var(--eui-s-m))}.eui-menu--collapsed .eui-menu--no-icons .eui-menu-sub .eui-menu-item__link{margin-left:calc(-1 * var(--eui-s-m))}\n'] }]
633
+
634
+ <!-- PROJECTED END BLOCK -->
635
+ <ng-template #itemEndContent>
636
+ <eui-chip *ngIf="item.tagLabel" euiSizeXS euiOutline class="eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}" [ariaLabel]="item.tagLabel">
637
+ <span euiLabel class="eui-label">{{ item.tagLabel }}</span>
638
+ </eui-chip>
639
+
640
+ <button
641
+ *ngIf="item.actionIcon"
642
+ euiButton
643
+ euiRounded
644
+ euiIconButton
645
+ euiSizeS
646
+ euiBasicButton
647
+ type="button"
648
+ tabindex="-1"
649
+ (keydown)="onActionIconKeyDown($event)"
650
+ (focusout)="onActionIconFocusOut()"
651
+ (focus)="focusActionIcon()"
652
+ class="eui-menu-item__link-action-icon"
653
+ [euiDisabled]="item.disabled"
654
+ [attr.aria-label]="item.actionIcon?.label"
655
+ (click)="onActionIconClick($event)">
656
+ <eui-icon-svg [icon]="item.actionIcon?.icon" [fillColor]="item.actionIcon?.color"></eui-icon-svg>
657
+ </button>
658
+
659
+ <button
660
+ *ngIf="item.children?.length > 0"
661
+ euiButton
662
+ euiRounded
663
+ euiIconButton
664
+ euiSizeS
665
+ euiBasicButton
666
+ euiSecondary
667
+ type="button"
668
+ [euiDisabled]="item.disabled"
669
+ class="eui-menu-item__link-toggle"
670
+ tabindex="-1"
671
+ [attr.aria-label]="item.expanded ? collapseMenuLabel : expandMenuLabel"
672
+ (click)="onExpandToggle($event)">
673
+ <eui-icon-svg *ngIf="item.expanded" icon="eui-chevron-up"></eui-icon-svg>
674
+ <eui-icon-svg *ngIf="!item.expanded" icon="eui-chevron-down"></eui-icon-svg>
675
+ </button>
676
+ </ng-template>
677
+ `, 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-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px 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:2px 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-s);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-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{font:var(--eui-f-m-bold);text-transform:uppercase;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-base-disabled-opacity);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__link--has-sub{border-top:1px solid var(--eui-c-neutral-bg)}.eui-menu-item__link-label--lowercase{text-transform:initial}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl)}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link--has-sub{font-weight:initial;text-transform:initial}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-5xl)}.eui-menu-item--expanded .eui-menu-item__link--has-sub:not(:first-child){border-bottom:1px solid var(--eui-c-neutral-bg)}\n'] }]
506
678
  }], ctorParameters: () => [{ type: i1.BaseStatesDirective }, { type: i0.ElementRef }], propDecorators: { role: [{
507
679
  type: HostBinding,
508
680
  args: ["attr.role"]
@@ -569,7 +741,7 @@ import * as i52 from "@eui/components/eui-input-text";
569
741
  var EuiMenuComponent = class _EuiMenuComponent {
570
742
  get cssClasses() {
571
743
  return [
572
- this.baseStatesDirective.getCssClasses("eui-menu-wrapper"),
744
+ this.baseStatesDirective.getCssClasses("eui-menu"),
573
745
  this.isCollapsed ? "eui-menu--collapsed" : "",
574
746
  !this.hasIcons ? "eui-menu--no-icons" : "",
575
747
  this.isFlat ? "eui-menu--flat" : ""
@@ -766,7 +938,9 @@ var EuiMenuComponent = class _EuiMenuComponent {
766
938
  this.focusKeyManager.updateActiveItem(focusedItem);
767
939
  }
768
940
  onExpandToggle(item) {
769
- this.onExpandToggled(item, this.items);
941
+ if (item.children) {
942
+ this.onExpandToggled(item, this.items);
943
+ }
770
944
  }
771
945
  onMenuFilterClick(event) {
772
946
  consumeEvent2(event);
@@ -953,7 +1127,7 @@ var EuiMenuComponent = class _EuiMenuComponent {
953
1127
  this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i02, type: _EuiMenuComponent, deps: [{ token: i12.Router }, { token: i12.ActivatedRoute }, { token: i22.BaseStatesDirective }, { token: i02.ChangeDetectorRef }], target: i02.ɵɵFactoryTarget.Component });
954
1128
  }
955
1129
  static {
956
- this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.6", 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], hasLowercaseItems: ["hasLowercaseItems", "hasLowercaseItems", 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: '<div *ngIf="hasFilter && !isCollapsed" 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<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n <span *ngIf="!items" class="eui-menu--no-items">No menu items defined</span>\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</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 [isLabelLowercase]="hasLowercaseItems"\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,.eui-menu-wrapper{display:flex;flex-direction:column;flex-shrink:0;width:100%;list-style:none;margin-bottom:0;margin-top:0;padding:0}.eui-menu--no-items,.eui-menu-wrapper--no-items{color:var(--eui-c-neutral-lightest);display:block;text-align:center}.eui-menu:focus:not([readonly]),.eui-menu-wrapper:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]),.eui-menu-wrapper: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]),.eui-menu-wrapper [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-right-content{margin:0;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-toggle{display:inherit;position:absolute;right:0;transform:scale(.65);visibility:visible}.eui-menu-filter{margin:var(--eui-s-m) 0;padding:0 var(--eui-s-m);position:relative}.eui-menu-item{display:flex;flex-direction:column;position:relative;width:100%;border:1px 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--collapsed .eui-menu-item{align-items:center;display:flex;flex-direction:column}.eui-menu-item__category{align-items:center;color:var(--eui-c-neutral-light);display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) var(--eui-s-m);text-decoration:none;text-transform:uppercase;font:var(--eui-f-s-bold)}.eui-page-column__body .eui-menu-item__category{text-transform:inherit}.eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--none)+.eui-menu-item__category-label,.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--default)+.eui-menu-item__category-label{padding-left:var(--eui-s-xs)}.eui-menu-item__category-icon--none{padding:0}.eui-menu-item__category-icon--default{align-items:center;display:flex;justify-content:center;width:100%}.ff.eui-menu--collapsed .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__category-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__category-label{display:none}.eui-menu-item__category .eui-menu-item__link-icon{margin-right:var(--eui-s-xs)}.eui-menu-item a.eui-menu-item__link{border-bottom:none}.eui-menu-item__link{align-items:center;border-top:1px solid var(--eui-c-neutral-bg);color:var(--eui-c-text)!important;cursor:pointer;display:flex;justify-content:center;padding:calc(.5 * var(--eui-s-xs)) var(--eui-s-s);text-decoration:none;text-transform:uppercase;white-space:nowrap;width:100%}.eui-page-column__body .eui-menu-item__link{text-transform:inherit}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none!important}.eui-menu-item__link:hover:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none;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__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-item__link-icon--with-badge .eui-chip{display:flex;height:var(--eui-s-m);left:-12px;position:absolute;top:-4px}.eui-menu-item__link-icon--none{padding:0}.eui-menu-item__link-icon--none+.eui-menu-item__category-label{margin-left:calc(-1 * var(--eui-s-s))}.eui-menu-item__link-icon--default{align-items:center;display:flex;flex-direction:column;font-size:var(--eui-f-size-xs);justify-content:inherit;width:100%}.ff.eui-menu--collapsed .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__link-label{display:none}.eui-page-column__body .eui-menu-item__link-label{font:var(--eui-f-m)}.eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-tag-label{display:flex;margin-left:var(--eui-s-xs);transform:scale(1)}.eui-menu--collapsed .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875)}.eui-menu-item__link-toggle{margin-left:var(--eui-s-2xs);margin-right:calc(-1 * var(--eui-s-xs));transition:all .3s linear}.eui-menu--collapsed .eui-menu-item__link-toggle{display:none;transition:none}.eui-menu-item__link-action-icon{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border-radius:var(--eui-s-xs);min-width:var(--eui-s-2xl);text-align:center;justify-content:center;border:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-s-bold)}.eui-menu-item__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__label-external{color:var(--eui-c-neutral-lighter);margin-left:var(--eui-s-xs);font:var(--eui-f-s)}.eui-menu-item__label-external .eui-icon-svg{fill:var(--eui-c-neutral-light);height:var(--eui-s-s);width:var(--eui-s-s)}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-app.ff.sidebar--close .eui-menu-item__link-tag-label{right:0}.eui-menu-item--expanded .eui-menu-item__category{display:flex}.eui-menu-item--disabled{background-image:none;box-shadow:none;cursor:default;opacity:.65;pointer-events:none}.eui-menu-item--lowercase .eui-menu-item__link,.eui-menu-item--lowercase .eui-menu-item__label,.eui-menu-item--lowercase .eui-menu-item__category,.eui-menu-item--lowercase .eui-menu-item__category-label{text-transform:initial!important}.eui-menu-item--lowercase .eui-menu-item__link-label{font-size:var(--eui-f-size)}.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon--default,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon--default{display:none}.eui-menu-sub{text-decoration:none}.eui-menu-sub .eui-menu-item__category{align-items:center;display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) 0 var(--eui-s-xs) var(--eui-s-xl);text-decoration:none;text-transform:uppercase}.eui-page-column__body .eui-menu-sub .eui-menu-item__category{text-transform:inherit}.eui-menu-sub .eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-sub .eui-menu-item__category-icon--default{color:var(--eui-c-info)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__category-label .eui-menu-item__label{display:block;border-bottom:1px solid var(--eui-c-neutral-lightest);padding-bottom:var(--eui-s-2xs);font:var(--eui-f-s-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category{padding-left:0}.eui-menu-sub .eui-menu-item__link{border:none;height:calc(2.25 * var(--eui-s-m));padding-left:var(--eui-s-xl);text-transform:initial}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xs);padding-right:0}.eui-menu-sub .eui-menu-item__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-sub .eui-menu-item__link-icon--default{font-size:var(--eui-f-size-xs);margin:0}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__link-icon--none{display:none}.eui-menu-sub .eui-menu-item__link-marker{display:flex;justify-content:center;position:relative}.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--none+.eui-menu-item__link-label,.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--default+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-marker{margin-left:calc(-1 * var(--eui-s-2xs))}.eui-menu-sub .eui-menu-item__link-label{height:auto;padding-top:var(--eui-s-3xs);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content{margin-left:var(--eui-s-2xs)}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-sub .eui-menu-item{padding-left:calc(1 * var(--eui-s-m))}.eui-menu--collapsed .eui-menu--no-icons .eui-menu-sub .eui-menu-item__link{margin-left:calc(-1 * var(--eui-s-m))}\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", "isLabelLowercase"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i02.ViewEncapsulation.None });
1130
+ this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.6", 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], hasLowercaseItems: ["hasLowercaseItems", "hasLowercaseItems", 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 [isLabelLowercase]="hasLowercaseItems"\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-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px 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:2px 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-s);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-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{font:var(--eui-f-m-bold);text-transform:uppercase;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-base-disabled-opacity);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__link--has-sub{border-top:1px solid var(--eui-c-neutral-bg)}.eui-menu-item__link-label--lowercase{text-transform:initial}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl)}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link--has-sub{font-weight:initial;text-transform:initial}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-5xl)}.eui-menu-item--expanded .eui-menu-item__link--has-sub:not(:first-child){border-bottom:1px solid var(--eui-c-neutral-bg)}\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", "isLabelLowercase"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i02.ViewEncapsulation.None });
957
1131
  }
958
1132
  };
959
1133
  i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i02, type: EuiMenuComponent, decorators: [{
@@ -962,7 +1136,7 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
962
1136
  {
963
1137
  directive: BaseStatesDirective3
964
1138
  }
965
- ], encapsulation: ViewEncapsulation3.None, template: '<div *ngIf="hasFilter && !isCollapsed" 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<ul euiList class="eui-menu" role="menubar" aria-orientation="vertical" tabindex="0" (keydown)="onKeydown($event)">\n <span *ngIf="!items" class="eui-menu--no-items">No menu items defined</span>\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</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 [isLabelLowercase]="hasLowercaseItems"\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,.eui-menu-wrapper{display:flex;flex-direction:column;flex-shrink:0;width:100%;list-style:none;margin-bottom:0;margin-top:0;padding:0}.eui-menu--no-items,.eui-menu-wrapper--no-items{color:var(--eui-c-neutral-lightest);display:block;text-align:center}.eui-menu:focus:not([readonly]),.eui-menu-wrapper:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]),.eui-menu-wrapper: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]),.eui-menu-wrapper [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-right-content{margin:0;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-menu-item__link-toggle{display:inherit;position:absolute;right:0;transform:scale(.65);visibility:visible}.eui-menu-filter{margin:var(--eui-s-m) 0;padding:0 var(--eui-s-m);position:relative}.eui-menu-item{display:flex;flex-direction:column;position:relative;width:100%;border:1px 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--collapsed .eui-menu-item{align-items:center;display:flex;flex-direction:column}.eui-menu-item__category{align-items:center;color:var(--eui-c-neutral-light);display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) var(--eui-s-m);text-decoration:none;text-transform:uppercase;font:var(--eui-f-s-bold)}.eui-page-column__body .eui-menu-item__category{text-transform:inherit}.eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--none)+.eui-menu-item__category-label,.eui-menu-item__category-icon:not(.eui-menu-item__category-icon--default)+.eui-menu-item__category-label{padding-left:var(--eui-s-xs)}.eui-menu-item__category-icon--none{padding:0}.eui-menu-item__category-icon--default{align-items:center;display:flex;justify-content:center;width:100%}.ff.eui-menu--collapsed .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__category-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__category-label{display:none}.eui-menu-item__category .eui-menu-item__link-icon{margin-right:var(--eui-s-xs)}.eui-menu-item a.eui-menu-item__link{border-bottom:none}.eui-menu-item__link{align-items:center;border-top:1px solid var(--eui-c-neutral-bg);color:var(--eui-c-text)!important;cursor:pointer;display:flex;justify-content:center;padding:calc(.5 * var(--eui-s-xs)) var(--eui-s-s);text-decoration:none;text-transform:uppercase;white-space:nowrap;width:100%}.eui-page-column__body .eui-menu-item__link{text-transform:inherit}.eui-menu-item__link:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none!important}.eui-menu-item__link:hover:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);text-decoration:none;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__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-item__link-icon--with-badge .eui-chip{display:flex;height:var(--eui-s-m);left:-12px;position:absolute;top:-4px}.eui-menu-item__link-icon--none{padding:0}.eui-menu-item__link-icon--none+.eui-menu-item__category-label{margin-left:calc(-1 * var(--eui-s-s))}.eui-menu-item__link-icon--default{align-items:center;display:flex;flex-direction:column;font-size:var(--eui-f-size-xs);justify-content:inherit;width:100%}.ff.eui-menu--collapsed .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-label{position:relative;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-item__link-label{display:none}.eui-page-column__body .eui-menu-item__link-label{font:var(--eui-f-m)}.eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-tag-label{display:flex;margin-left:var(--eui-s-xs);transform:scale(1)}.eui-menu--collapsed .eui-menu-item__link-tag-label{position:absolute;right:1px;top:0;transform:scale(.875)}.eui-menu-item__link-toggle{margin-left:var(--eui-s-2xs);margin-right:calc(-1 * var(--eui-s-xs));transition:all .3s linear}.eui-menu--collapsed .eui-menu-item__link-toggle{display:none;transition:none}.eui-menu-item__link-action-icon{margin-left:var(--eui-s-2xs)}.eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border-radius:var(--eui-s-xs);min-width:var(--eui-s-2xl);text-align:center;justify-content:center;border:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-s-bold)}.eui-menu-item__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__label-external{color:var(--eui-c-neutral-lighter);margin-left:var(--eui-s-xs);font:var(--eui-f-s)}.eui-menu-item__label-external .eui-icon-svg{fill:var(--eui-c-neutral-light);height:var(--eui-s-s);width:var(--eui-s-s)}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu-item .eui-button.eui-menu-item__link-toggle [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-app.ff.sidebar--close .eui-menu-item__link-tag-label{right:0}.eui-menu-item--expanded .eui-menu-item__category{display:flex}.eui-menu-item--disabled{background-image:none;box-shadow:none;cursor:default;opacity:.65;pointer-events:none}.eui-menu-item--lowercase .eui-menu-item__link,.eui-menu-item--lowercase .eui-menu-item__label,.eui-menu-item--lowercase .eui-menu-item__category,.eui-menu-item--lowercase .eui-menu-item__category-label{text-transform:initial!important}.eui-menu-item--lowercase .eui-menu-item__link-label{font-size:var(--eui-f-size)}.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__category-icon--default,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon,.eui-menu--no-icons:not(.eui-menu--collapsed) .eui-menu-item__link-icon--default{display:none}.eui-menu-sub{text-decoration:none}.eui-menu-sub .eui-menu-item__category{align-items:center;display:flex;flex-direction:row;justify-content:center;padding:var(--eui-s-xs) 0 var(--eui-s-xs) var(--eui-s-xl);text-decoration:none;text-transform:uppercase}.eui-page-column__body .eui-menu-sub .eui-menu-item__category{text-transform:inherit}.eui-menu-sub .eui-menu-item__category:hover:not(.eui-menu-item--disabled){background-color:var(--eui-c-neutral-bg-light);cursor:default;text-decoration:none}.eui-menu-sub .eui-menu-item__category-icon--default{color:var(--eui-c-info)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__category-label .eui-menu-item__label{display:block;border-bottom:1px solid var(--eui-c-neutral-lightest);padding-bottom:var(--eui-s-2xs);font:var(--eui-f-s-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__category{padding-left:0}.eui-menu-sub .eui-menu-item__link{border:none;height:calc(2.25 * var(--eui-s-m));padding-left:var(--eui-s-xl);text-transform:initial}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xs);padding-right:0}.eui-menu-sub .eui-menu-item__link-icon+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.eui-menu-sub .eui-menu-item__link-icon--default{font-size:var(--eui-f-size-xs);margin:0}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-icon--default{margin-left:var(--eui-s-2xs)}.eui-menu-sub .eui-menu-item__link-icon--none{display:none}.eui-menu-sub .eui-menu-item__link-marker{display:flex;justify-content:center;position:relative}.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--none+.eui-menu-item__link-label,.eui-menu-sub .eui-menu-item__link-marker.eui-menu-item__link-marker--default+.eui-menu-item__link-label{padding-left:var(--eui-s-xs)}.ff.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-marker{margin-left:calc(-1 * var(--eui-s-2xs))}.eui-menu-sub .eui-menu-item__link-label{height:auto;padding-top:var(--eui-s-3xs);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-item__link-right-content{align-items:center;display:flex;height:calc(2.5 * var(--eui-s-m));margin-left:auto}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content{margin-left:var(--eui-s-2xs)}.eui-menu--collapsed .eui-menu-sub .eui-menu-item__link-right-content .eui-chip .eui-chip__content-container>span{display:inline-block;max-width:var(--eui-s-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-sub .eui-menu-sub .eui-menu-item{padding-left:calc(1 * var(--eui-s-m))}.eui-menu--collapsed .eui-menu--no-icons .eui-menu-sub .eui-menu-item__link{margin-left:calc(-1 * var(--eui-s-m))}\n'] }]
1139
+ ], 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 [isLabelLowercase]="hasLowercaseItems"\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-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-s));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:1px 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:2px 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-s);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-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{font:var(--eui-f-m-bold);text-transform:uppercase;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-base-disabled-opacity);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__link--has-sub{border-top:1px solid var(--eui-c-neutral-bg)}.eui-menu-item__link-label--lowercase{text-transform:initial}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-2xl)}.eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link--has-sub{font-weight:initial;text-transform:initial}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-5xl)}.eui-menu-item--expanded .eui-menu-item__link--has-sub:not(:first-child){border-bottom:1px solid var(--eui-c-neutral-bg)}\n'] }]
966
1140
  }], ctorParameters: () => [{ type: i12.Router }, { type: i12.ActivatedRoute }, { type: i22.BaseStatesDirective }, { type: i02.ChangeDetectorRef }], propDecorators: { focusableItems: [{
967
1141
  type: ViewChildren,
968
1142
  args: [EuiMenuItemComponent]