@eui/ecl 21.0.0-next.9 → 21.0.0-rc.1

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 (508) hide show
  1. package/docs/changelog.html +863 -0
  2. package/docs/components/EclAccordionComponent.html +9 -3
  3. package/docs/components/EclAccordionItemComponent.html +9 -3
  4. package/docs/components/EclAppComponent.html +3 -3
  5. package/docs/components/EclBannerComponent.html +17 -5
  6. package/docs/components/EclBlockquoteComponent.html +3 -3
  7. package/docs/components/EclBreadcrumbComponent.html +12 -46
  8. package/docs/components/EclBreadcrumbSegmentComponent.html +10 -4
  9. package/docs/components/EclButtonComponent.html +9 -3
  10. package/docs/components/EclCardBodyComponent.html +3 -3
  11. package/docs/components/EclCardComponent.html +3 -3
  12. package/docs/components/EclCarouselComponent.html +31 -5
  13. package/docs/components/EclCarouselItemComponent.html +9 -3
  14. package/docs/components/EclCategoryFilterComponent.html +9 -3
  15. package/docs/components/EclCategoryFilterItemComponent.html +21 -5
  16. package/docs/components/EclCategoryFilterListComponent.html +9 -5
  17. package/docs/components/EclCheckboxHelpComponent.html +3 -3
  18. package/docs/components/EclCheckboxLabelComponent.html +3 -3
  19. package/docs/components/EclContentBlockComponent.html +3 -3
  20. package/docs/components/EclContentItemComponent.html +3 -3
  21. package/docs/components/EclDateBlockComponent.html +8 -6
  22. package/docs/components/EclDescriptionListDefinitionComponent.html +3 -5
  23. package/docs/components/EclExpandableComponent.html +3 -3
  24. package/docs/components/EclFactFiguresComponent.html +3 -3
  25. package/docs/components/EclFactFiguresItemComponent.html +3 -3
  26. package/docs/components/EclFactFiguresViewAllComponent.html +3 -3
  27. package/docs/components/EclFeaturedComponent.html +9 -3
  28. package/docs/components/EclFeaturedItemComponent.html +9 -3
  29. package/docs/components/EclFeaturedItemDescriptionComponent.html +9 -3
  30. package/docs/components/EclFileComponent.html +9 -3
  31. package/docs/components/EclFileItemComponent.html +3 -3
  32. package/docs/components/EclFileItemsComponent.html +3 -3
  33. package/docs/components/EclFileTaxonomyComponent.html +3 -3
  34. package/docs/components/EclFormGroupComponent.html +3 -3
  35. package/docs/components/EclFormLabelComponent.html +10 -4
  36. package/docs/components/EclGalleryComponent.html +15 -3
  37. package/docs/components/EclGalleryFooterComponent.html +9 -9
  38. package/docs/components/EclGalleryItemComponent.html +4 -75
  39. package/docs/components/EclIconComponent.html +15 -3
  40. package/docs/components/EclInpageNavigationComponent.html +19 -42
  41. package/docs/components/EclInpageNavigationItemComponent.html +10 -4
  42. package/docs/components/EclListIllustrationComponent.html +3 -3
  43. package/docs/components/EclListIllustrationItemComponent.html +21 -3
  44. package/docs/components/EclLoadingIndicatorComponent.html +3 -3
  45. package/docs/components/EclMediaContainerComponent.html +9 -3
  46. package/docs/components/EclMegaMenuComponent.html +56 -4
  47. package/docs/components/EclMegaMenuFeaturedComponent.html +9 -3
  48. package/docs/components/EclMegaMenuInfoComponent.html +9 -3
  49. package/docs/components/EclMegaMenuItemComponent.html +39 -3
  50. package/docs/components/EclMegaMenuSubitemComponent.html +18 -24
  51. package/docs/components/EclMenuComponent.html +51 -3
  52. package/docs/components/EclMenuItemComponent.html +33 -3
  53. package/docs/components/EclMenuMegaComponent.html +9 -3
  54. package/docs/components/EclMenuMegaItemComponent.html +21 -3
  55. package/docs/components/EclModalBodyComponent.html +4 -40
  56. package/docs/components/EclModalComponent.html +9 -5
  57. package/docs/components/EclModalFooterComponent.html +3 -3
  58. package/docs/components/EclModalHeaderComponent.html +9 -3
  59. package/docs/components/EclMultiselectComponent.html +9 -13
  60. package/docs/components/EclMultiselectDropdownComponent.html +27 -7
  61. package/docs/components/EclMultiselectInputComponent.html +3 -3
  62. package/docs/components/EclMultiselectOptgroupComponent.html +3 -3
  63. package/docs/components/EclMultiselectOptionComponent.html +10 -8
  64. package/docs/components/EclNavigationListComponent.html +3 -3
  65. package/docs/components/EclNavigationListItemComponent.html +9 -3
  66. package/docs/components/EclNewsTickerComponent.html +15 -5
  67. package/docs/components/EclNewsTickerItemComponent.html +9 -5
  68. package/docs/components/EclNotificationComponent.html +70 -4
  69. package/docs/components/EclPageHeaderComponent.html +3 -3
  70. package/docs/components/EclPageHeaderExpandableComponent.html +15 -4
  71. package/docs/components/EclPaginationComponent.html +15 -3
  72. package/docs/components/EclPaginationItemComponent.html +10 -4
  73. package/docs/components/EclPopoverComponent.html +9 -38
  74. package/docs/components/EclRadioHelpComponent.html +3 -3
  75. package/docs/components/EclRadioLabelComponent.html +3 -3
  76. package/docs/components/EclRangeBubbleComponent.html +15 -3
  77. package/docs/components/EclRangeValueComponent.html +3 -3
  78. package/docs/components/EclRatingFieldComponent.html +3 -3
  79. package/docs/components/EclSearchFormComponent.html +8 -8
  80. package/docs/components/EclSelectContainerComponent.html +3 -3
  81. package/docs/components/EclSiteFooterComponent.html +23 -4
  82. package/docs/components/{EclTabMoreComponent.html → EclSiteFooterCoownerComponent.html} +16 -50
  83. package/docs/components/EclSiteFooterCoreComponent.html +3 -3
  84. package/docs/components/EclSiteFooterFixedContentEUComponent.html +4 -4
  85. package/docs/components/EclSiteFooterRowCommonComponent.html +3 -3
  86. package/docs/components/EclSiteHeaderActionComponent.html +3 -3
  87. package/docs/components/EclSiteHeaderBannerTopComponent.html +9 -3
  88. package/docs/components/EclSiteHeaderComponent.html +9 -22
  89. package/docs/components/EclSiteHeaderCustomActionComponent.html +9 -3
  90. package/docs/components/EclSiteHeaderEnvironmentComponent.html +3 -3
  91. package/docs/components/EclSiteHeaderLanguageComponent.html +9 -3
  92. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +10 -4
  93. package/docs/components/EclSiteHeaderLoginComponent.html +9 -3
  94. package/docs/components/EclSiteHeaderNotificationComponent.html +3 -3
  95. package/docs/components/EclSiteHeaderSearchComponent.html +13 -7
  96. package/docs/components/EclSocialMediaFollowComponent.html +3 -3
  97. package/docs/components/EclSocialMediaFollowItemComponent.html +34 -5
  98. package/docs/components/EclSplashPageComponent.html +3 -3
  99. package/docs/components/EclSplashPageLanguageCategoryComponent.html +3 -3
  100. package/docs/components/EclSplashPageLanguageContainerComponent.html +3 -3
  101. package/docs/components/EclSplashPageLanguageLinkComponent.html +3 -3
  102. package/docs/components/EclSpotlightComponent.html +9 -3
  103. package/docs/components/EclSpotlightLinkComponent.html +21 -3
  104. package/docs/components/EclStickyContainerComponent.html +3 -3
  105. package/docs/components/EclTabComponent.html +10 -6
  106. package/docs/components/EclTabLabelComponent.html +9 -3
  107. package/docs/components/EclTableSortButtonComponent.html +9 -3
  108. package/docs/components/EclTabsComponent.html +46 -74
  109. package/docs/components/EclTagComponent.html +15 -3
  110. package/docs/components/EclTimelineComponent.html +3 -3
  111. package/docs/components/EclTimelineItemComponent.html +3 -3
  112. package/docs/components/EclTimelineItemTogglerComponent.html +3 -3
  113. package/docs/directives/ECLClickOutsideDirective.html +5 -1
  114. package/docs/directives/ECLFormLabelOptionalDirective.html +6 -0
  115. package/docs/directives/EclBannerDescriptionLinkDirective.html +6 -0
  116. package/docs/directives/EclBannerImageDirective.html +12 -0
  117. package/docs/directives/EclBannerTitleLinkDirective.html +6 -0
  118. package/docs/directives/EclBannerVideoDirective.html +6 -0
  119. package/docs/directives/EclBreadcrumbContainerDirective.html +6 -23
  120. package/docs/directives/EclButtonIconContainerDirective.html +6 -0
  121. package/docs/directives/EclCardImageDirective.html +6 -0
  122. package/docs/directives/EclCheckboxInputDirective.html +6 -0
  123. package/docs/directives/EclContentItemImageDirective.html +6 -0
  124. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +12 -0
  125. package/docs/directives/EclDescriptionListDefinitionListDirective.html +6 -0
  126. package/docs/directives/EclDescriptionListTermDirective.html +6 -0
  127. package/docs/directives/EclDividerDirective.html +6 -0
  128. package/docs/directives/EclFeaturedItemLinkDirective.html +6 -2
  129. package/docs/directives/EclFeedbackHiddenDirective.html +385 -0
  130. package/docs/directives/EclFileDownloadDirective.html +6 -0
  131. package/docs/directives/EclFileImageDirective.html +6 -0
  132. package/docs/directives/EclFilePreviewDirective.html +12 -0
  133. package/docs/directives/EclFileTitleDirective.html +6 -0
  134. package/docs/directives/EclFileTranslationDownloadDirective.html +6 -0
  135. package/docs/directives/EclGalleryMediaDirective.html +6 -0
  136. package/docs/directives/EclGalleryPictureDirective.html +6 -0
  137. package/docs/{modules/EclFormLabelModule.html → directives/EclHelpHiddenDirective.html} +169 -57
  138. package/docs/directives/EclIndicatorDirective.html +6 -0
  139. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  140. package/docs/directives/EclLinkDirective.html +150 -8
  141. package/docs/directives/EclLinkIconContainerDirective.html +6 -0
  142. package/docs/directives/EclLinkIndicatorDirective.html +6 -0
  143. package/docs/directives/EclListIllustrationIconDirective.html +6 -0
  144. package/docs/directives/EclListIllustrationImageDirective.html +6 -0
  145. package/docs/directives/EclLoadingIndicatorLabelDirective.html +6 -0
  146. package/docs/directives/EclMediaContainerIframeDirective.html +6 -0
  147. package/docs/directives/EclMediaContainerItemDirective.html +12 -0
  148. package/docs/directives/EclMegaMenuContainerDirective.html +6 -0
  149. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +6 -0
  150. package/docs/directives/EclMegaMenuFeaturedListDirective.html +6 -0
  151. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +6 -0
  152. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +6 -0
  153. package/docs/directives/EclMegaMenuListDirective.html +6 -0
  154. package/docs/directives/EclMegaMenuSpacerDirective.html +6 -0
  155. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  156. package/docs/directives/EclModalBodyFixedContentDirective.html +6 -0
  157. package/docs/directives/EclMultiselectOptionDirective.html +11 -5
  158. package/docs/directives/EclNewsTickerIconDirective.html +6 -0
  159. package/docs/{modules/EclNotificationModule.html → directives/EclNotificationIconDirective.html} +169 -57
  160. package/docs/directives/{EclSiteFooterLogoListDirective.html → EclNotificationLinkDirective.html} +57 -161
  161. package/docs/directives/EclOrderedListDirective.html +6 -0
  162. package/docs/directives/EclOrderedListItemDirective.html +6 -0
  163. package/docs/directives/EclPaginationListDirective.html +6 -0
  164. package/docs/directives/EclPopoverToggleDirective.html +12 -0
  165. package/docs/directives/EclRadioInputDirective.html +6 -0
  166. package/docs/directives/EclSiteFooterColumnDirective.html +6 -0
  167. package/docs/directives/{EclSiteFooterLogoDirective.html → EclSiteFooterCoownerItemDirective.html} +63 -31
  168. package/docs/directives/{EclSiteFooterLogoItemDirective.html → EclSiteFooterCoownerListDirective.html} +50 -166
  169. package/docs/directives/EclSiteFooterDescriptionDirective.html +6 -0
  170. package/docs/directives/EclSiteFooterDescriptionNameDirective.html +6 -0
  171. package/docs/directives/EclSiteFooterLinkDirective.html +6 -0
  172. package/docs/directives/EclSiteFooterListDirective.html +6 -19
  173. package/docs/directives/EclSiteFooterListItemDirective.html +6 -0
  174. package/docs/directives/EclSiteFooterLogoImageDirective.html +6 -0
  175. package/docs/directives/EclSiteFooterLogoLinkDirective.html +6 -0
  176. package/docs/directives/EclSiteFooterRowDirective.html +6 -0
  177. package/docs/directives/EclSiteFooterSectionDirective.html +0 -96
  178. package/docs/directives/EclSiteFooterSocialMediaDirective.html +6 -0
  179. package/docs/directives/EclSiteFooterTitleDirective.html +6 -0
  180. package/docs/directives/EclSiteFooterTitleLinkDirective.html +6 -0
  181. package/docs/directives/EclSiteHeaderCtaDirective.html +6 -0
  182. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +6 -0
  183. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +6 -0
  184. package/docs/directives/EclSpotlightImageDirective.html +6 -0
  185. package/docs/directives/EclTableCaptionDirective.html +6 -0
  186. package/docs/directives/EclTagSetItemDirective.html +6 -0
  187. package/docs/directives/EclTimelineSetDirective.html +6 -0
  188. package/docs/directives/EclUnorderedListDirective.html +6 -0
  189. package/docs/directives/EclUnorderedListItemDirective.html +6 -0
  190. package/docs/injectables/EclRtlService.html +6 -0
  191. package/docs/js/libs/bootstrap-native.js +1 -1
  192. package/docs/js/libs/vis-network.min.js +78 -0
  193. package/docs/js/menu-wc.js +53 -2401
  194. package/docs/js/menu-wc_es5.js +1 -1
  195. package/docs/js/search/search_index.js +2 -2
  196. package/docs/miscellaneous/functions.html +5 -1
  197. package/docs/miscellaneous/variables.html +534 -1395
  198. package/docs/modules.html +2 -722
  199. package/docs/overview.html +2 -2
  200. package/docs/properties.html +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +8 -27
  202. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -23
  204. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-banner.mjs +36 -85
  206. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -30
  208. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +15 -42
  210. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-button.mjs +14 -34
  212. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-components-ecl-card.mjs +14 -45
  214. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  215. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +8 -27
  216. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  217. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +11 -30
  218. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  219. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +15 -34
  220. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  221. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +56 -128
  222. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  223. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +11 -30
  224. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  225. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +5 -23
  226. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  227. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +5 -23
  228. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  229. package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -24
  230. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  231. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +5 -23
  232. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  233. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +14 -48
  234. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  235. package/fesm2022/eui-ecl-components-ecl-featured.mjs +14 -47
  236. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  237. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +5 -23
  238. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  239. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +5 -23
  240. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  241. package/fesm2022/eui-ecl-components-ecl-file.mjs +32 -81
  242. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  243. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +5 -23
  244. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  245. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +51 -22
  246. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  247. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +21 -75
  248. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  249. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -23
  250. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  251. package/fesm2022/eui-ecl-components-ecl-icon.mjs +5 -23
  252. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  253. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +24 -51
  254. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  255. package/fesm2022/eui-ecl-components-ecl-label.mjs +5 -23
  256. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  257. package/fesm2022/eui-ecl-components-ecl-link.mjs +44 -41
  258. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  259. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +18 -51
  260. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  261. package/fesm2022/eui-ecl-components-ecl-list.mjs +29 -74
  262. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  263. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +11 -30
  264. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  265. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +17 -50
  266. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  267. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +50 -112
  268. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  269. package/fesm2022/eui-ecl-components-ecl-menu.mjs +14 -33
  270. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  271. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -80
  272. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  273. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +27 -66
  274. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  275. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +14 -44
  276. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  277. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +11 -39
  278. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  279. package/fesm2022/eui-ecl-components-ecl-notification.mjs +86 -50
  280. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  281. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +43 -100
  282. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  283. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +12 -32
  284. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  285. package/fesm2022/eui-ecl-components-ecl-popover.mjs +16 -44
  286. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  287. package/fesm2022/eui-ecl-components-ecl-radio.mjs +14 -32
  288. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  289. package/fesm2022/eui-ecl-components-ecl-range.mjs +11 -30
  290. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  291. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +5 -23
  292. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  293. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +12 -32
  294. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  295. package/fesm2022/eui-ecl-components-ecl-select.mjs +8 -33
  296. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  297. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +150 -260
  298. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  299. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +73 -157
  300. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  301. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +14 -32
  302. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  303. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +29 -74
  304. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  305. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs +13 -13
  306. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
  307. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +5 -23
  308. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  309. package/fesm2022/eui-ecl-components-ecl-table.mjs +32 -80
  310. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +56 -129
  312. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  313. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -33
  314. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +5 -24
  316. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +5 -24
  318. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +20 -62
  320. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-core.mjs +25 -62
  322. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-shared.mjs +3 -3
  324. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  325. package/fesm2022/eui-ecl.mjs +1 -203
  326. package/fesm2022/eui-ecl.mjs.map +1 -1
  327. package/package.json +17 -17
  328. package/types/eui-ecl-components-ecl-accordion.d.ts +1 -13
  329. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  330. package/types/eui-ecl-components-ecl-app.d.ts +2 -13
  331. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  332. package/types/eui-ecl-components-ecl-banner.d.ts +2 -14
  333. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  334. package/types/eui-ecl-components-ecl-blockquote.d.ts +1 -13
  335. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  336. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +11 -27
  337. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  338. package/types/eui-ecl-components-ecl-button.d.ts +1 -13
  339. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  340. package/types/eui-ecl-components-ecl-card.d.ts +1 -13
  341. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  342. package/types/eui-ecl-components-ecl-carousel.d.ts +1 -13
  343. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  344. package/types/eui-ecl-components-ecl-category-filter.d.ts +1 -13
  345. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  346. package/types/eui-ecl-components-ecl-checkbox.d.ts +1 -12
  347. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  348. package/types/eui-ecl-components-ecl-content-block.d.ts +1 -12
  349. package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
  350. package/types/eui-ecl-components-ecl-content-item.d.ts +1 -12
  351. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  352. package/types/eui-ecl-components-ecl-date-block.d.ts +1 -12
  353. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  354. package/types/eui-ecl-components-ecl-date-picker.d.ts +2 -13
  355. package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
  356. package/types/eui-ecl-components-ecl-divider.d.ts +1 -12
  357. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  358. package/types/eui-ecl-components-ecl-expandable.d.ts +2 -13
  359. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  360. package/types/eui-ecl-components-ecl-fact-figures.d.ts +1 -12
  361. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  362. package/types/eui-ecl-components-ecl-featured.d.ts +1 -13
  363. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  364. package/types/eui-ecl-components-ecl-feedback-message.d.ts +1 -12
  365. package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
  366. package/types/eui-ecl-components-ecl-file-upload.d.ts +1 -12
  367. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  368. package/types/eui-ecl-components-ecl-file.d.ts +1 -12
  369. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  370. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -12
  371. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  372. package/types/eui-ecl-components-ecl-form-label.d.ts +24 -10
  373. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  374. package/types/eui-ecl-components-ecl-gallery.d.ts +3 -20
  375. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  376. package/types/eui-ecl-components-ecl-help-block.d.ts +1 -12
  377. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  378. package/types/eui-ecl-components-ecl-icon.d.ts +1 -12
  379. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  380. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +2 -17
  381. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  382. package/types/eui-ecl-components-ecl-label.d.ts +1 -12
  383. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  384. package/types/eui-ecl-components-ecl-link.d.ts +17 -16
  385. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  386. package/types/eui-ecl-components-ecl-list-illustration.d.ts +1 -12
  387. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  388. package/types/eui-ecl-components-ecl-list.d.ts +1 -12
  389. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  390. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +1 -13
  391. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  392. package/types/eui-ecl-components-ecl-media-container.d.ts +1 -12
  393. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  394. package/types/eui-ecl-components-ecl-mega-menu.d.ts +1 -13
  395. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  396. package/types/eui-ecl-components-ecl-menu.d.ts +1 -12
  397. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  398. package/types/eui-ecl-components-ecl-modal.d.ts +2 -19
  399. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  400. package/types/eui-ecl-components-ecl-multiselect.d.ts +1 -12
  401. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  402. package/types/eui-ecl-components-ecl-navigation-list.d.ts +1 -12
  403. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  404. package/types/eui-ecl-components-ecl-news-ticker.d.ts +1 -13
  405. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  406. package/types/eui-ecl-components-ecl-notification.d.ts +45 -29
  407. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  408. package/types/eui-ecl-components-ecl-page-header.d.ts +1 -12
  409. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  410. package/types/eui-ecl-components-ecl-pagination.d.ts +3 -14
  411. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  412. package/types/eui-ecl-components-ecl-popover.d.ts +5 -17
  413. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  414. package/types/eui-ecl-components-ecl-radio.d.ts +1 -12
  415. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  416. package/types/eui-ecl-components-ecl-range.d.ts +1 -12
  417. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  418. package/types/eui-ecl-components-ecl-rating-field.d.ts +2 -13
  419. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  420. package/types/eui-ecl-components-ecl-search-form.d.ts +4 -15
  421. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  422. package/types/eui-ecl-components-ecl-select.d.ts +1 -13
  423. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  424. package/types/eui-ecl-components-ecl-site-footer.d.ts +42 -63
  425. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  426. package/types/eui-ecl-components-ecl-site-header.d.ts +4 -19
  427. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  428. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +6 -13
  429. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  430. package/types/eui-ecl-components-ecl-splash-page.d.ts +1 -12
  431. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  432. package/types/eui-ecl-components-ecl-sticky-container.d.ts +1 -12
  433. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  434. package/types/eui-ecl-components-ecl-table.d.ts +1 -12
  435. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  436. package/types/eui-ecl-components-ecl-tabs.d.ts +4 -46
  437. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  438. package/types/eui-ecl-components-ecl-tag.d.ts +1 -12
  439. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  440. package/types/eui-ecl-components-ecl-text-area.d.ts +1 -13
  441. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  442. package/types/eui-ecl-components-ecl-text-input.d.ts +1 -13
  443. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  444. package/types/eui-ecl-components-ecl-timeline.d.ts +1 -12
  445. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  446. package/types/eui-ecl-core.d.ts +0 -3
  447. package/types/eui-ecl-core.d.ts.map +1 -1
  448. package/types/eui-ecl.d.ts +1 -69
  449. package/types/eui-ecl.d.ts.map +1 -1
  450. package/docs/js/libs/vis.min.js +0 -47
  451. package/docs/modules/EclAccordionModule.html +0 -273
  452. package/docs/modules/EclAllModule.html +0 -261
  453. package/docs/modules/EclAppModule.html +0 -267
  454. package/docs/modules/EclBannerModule.html +0 -321
  455. package/docs/modules/EclBlockquoteModule.html +0 -279
  456. package/docs/modules/EclBreadcrumbModule.html +0 -321
  457. package/docs/modules/EclButtonModule.html +0 -285
  458. package/docs/modules/EclCardModule.html +0 -321
  459. package/docs/modules/EclCarouselModule.html +0 -273
  460. package/docs/modules/EclCategoryFilterModule.html +0 -279
  461. package/docs/modules/EclCheckboxModule.html +0 -321
  462. package/docs/modules/EclContentBlockModule.html +0 -321
  463. package/docs/modules/EclContentItemModule.html +0 -321
  464. package/docs/modules/EclDateBlockModule.html +0 -267
  465. package/docs/modules/EclDatePickerModule.html +0 -267
  466. package/docs/modules/EclDividerModule.html +0 -267
  467. package/docs/modules/EclExpandableModule.html +0 -267
  468. package/docs/modules/EclFactFiguresModule.html +0 -285
  469. package/docs/modules/EclFeaturedModule.html +0 -321
  470. package/docs/modules/EclFeedbackMessageModule.html +0 -267
  471. package/docs/modules/EclFileModule.html +0 -321
  472. package/docs/modules/EclFileUploadModule.html +0 -267
  473. package/docs/modules/EclFormGroupModule.html +0 -267
  474. package/docs/modules/EclGalleryModule.html +0 -321
  475. package/docs/modules/EclHelpBlockModule.html +0 -267
  476. package/docs/modules/EclIconModule.html +0 -267
  477. package/docs/modules/EclInpageNavigationModule.html +0 -321
  478. package/docs/modules/EclLabelModule.html +0 -267
  479. package/docs/modules/EclLinkModule.html +0 -285
  480. package/docs/modules/EclListIllustrationModule.html +0 -321
  481. package/docs/modules/EclListModule.html +0 -321
  482. package/docs/modules/EclLoadingIndicatorModule.html +0 -279
  483. package/docs/modules/EclMediaContainerModule.html +0 -321
  484. package/docs/modules/EclMegaMenuModule.html +0 -321
  485. package/docs/modules/EclMenuModule.html +0 -321
  486. package/docs/modules/EclModalModule.html +0 -321
  487. package/docs/modules/EclMultiselectModule.html +0 -321
  488. package/docs/modules/EclNavigationListModule.html +0 -321
  489. package/docs/modules/EclNewsTickerModule.html +0 -321
  490. package/docs/modules/EclPageHeaderModule.html +0 -321
  491. package/docs/modules/EclPaginationModule.html +0 -321
  492. package/docs/modules/EclPopoverModule.html +0 -321
  493. package/docs/modules/EclRadioModule.html +0 -285
  494. package/docs/modules/EclRangeModule.html +0 -321
  495. package/docs/modules/EclRatingFieldModule.html +0 -267
  496. package/docs/modules/EclSearchFormModule.html +0 -267
  497. package/docs/modules/EclSelectModule.html +0 -321
  498. package/docs/modules/EclSiteFooterModule.html +0 -321
  499. package/docs/modules/EclSiteHeaderModule.html +0 -321
  500. package/docs/modules/EclSocialMediaFollowModule.html +0 -321
  501. package/docs/modules/EclSplashPageModule.html +0 -321
  502. package/docs/modules/EclStickyContainerModule.html +0 -267
  503. package/docs/modules/EclTableModule.html +0 -321
  504. package/docs/modules/EclTabsModule.html +0 -321
  505. package/docs/modules/EclTagModule.html +0 -321
  506. package/docs/modules/EclTextAreaModule.html +0 -267
  507. package/docs/modules/EclTextInputModule.html +0 -267
  508. package/docs/modules/EclTimelineModule.html +0 -297
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-menu.mjs","sources":["../../components/ecl-menu/events/ecl-menu-item.event.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.html","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.html","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.html","../../components/ecl-menu/ecl-menu/ecl-menu.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu.component.html","../../components/ecl-menu/ecl-menu.module.ts","../../components/ecl-menu/index.ts","../../components/ecl-menu/eui-ecl-components-ecl-menu.ts"],"sourcesContent":["import { EclDomEvent } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\n\nexport class EclMenuItemSelectEvent extends EclDomEvent<Event> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: Event = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverOutEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemFocusEvent extends EclDomEvent<FocusEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: FocusEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemCaretEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemKeydownEvent extends EclDomEvent<KeyboardEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: KeyboardEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemParentFocusEvent {\n constructor(\n public menuItem: EclMenuItem) {}\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink } from '@angular/router';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events/ecl-menu-item.event';\n\n/**\n * This component represents a sub-menu item, that is on the second level of the ecl-menu.\n * Adds some custom styling and functionality.\n */\n@Component({\n selector: 'ecl-menu-mega-item',\n templateUrl: './ecl-menu-mega-item.component.html',\n imports: [NgTemplateOutlet, RouterLink],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\n\n @Input() id: string;\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @HostBinding('class.ecl-menu__subitem') cmpClass = true;\n /**\n * The default role of the DOM element is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__subitem--current') isCurrent = false;\n /**\n * An additional item, that represents a link.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__see-all') isSeeAll = false;\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * If menu item includes any icon, added by the user (for example for 'external' link).\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n /**\n * If menu item includes any links, added by the user.\n */\n @ContentChildren(forwardRef(() => EclLinkDirective)) links: QueryList<EclLinkDirective>;\n /**\n * The actual link of the menu item.\n */\n @ViewChild('megaMenuLink') megaMenuLink: ElementRef\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n\n hasChildren = false;\n isExpanded = true;\n\n children: Array<EclMenuItem> = [];\n private renderer = inject(Renderer2);\n\n ngAfterViewInit(): void {\n this.manageContentChildren();\n this.setExtraAttributesForLink(this.megaMenuLink?.nativeElement, this.linkExtraAttributes);\n }\n\n /**\n *\n * @param evt This event is emited, when the menu item is clicked.\n */\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt as MouseEvent));\n\n if (!this.href) {\n evt.preventDefault();\n }\n }\n\n @HostListener('click', ['$event'])\n onHostClick(evt: MouseEvent): void {\n evt.stopPropagation();\n }\n\n /**\n * When the item is the current active item, the 'aria-current' attribute is set to 'page'.\n */\n get ariaCurrent(): string | null {\n return this.isCurrent ? 'page' : null;\n }\n\n /**\n * Focus should be set on the underlying <a> element.\n */\n onFocus(): void {\n this.megaMenuLink.nativeElement.focus();\n }\n\n onKeydown(evt: Event): void {\n if ((evt as KeyboardEvent).key === KeyCode.ENTER) {\n this.onItemClick(evt);\n }\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n\n /**\n * Adds specific classes to content children (icons or links).\n */\n private manageContentChildren(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-menu__sublink-icon';\n });\n });\n }\n\n if (this.links) {\n setTimeout(() => {\n this.links.forEach((icn) => {\n icn.class = icn.class ? icn.class + ' ecl-menu__sublink' : 'ecl-menu__sublink';\n });\n });\n }\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) =>{\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}\n","@if (!isSeeAll) {\n @if (href) {\n <a #megaMenuLink\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n } @else {\n <a #megaMenuLink\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, ContentChildren, QueryList, AfterContentInit, OnDestroy, Output, EventEmitter, IterableDiffer, IterableChanges, IterableDiffers, HostBinding, ElementRef, inject } from '@angular/core';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega-item.component';\nimport { Subject, of, Observable } from 'rxjs';\nimport { takeUntil, mergeWith } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\n\n/**\n * This component acts as a wrapper for the second level of menu items, that are children of one root item.\n * Provides functionality for some common events like keyboard navigation and manages relations between sub items.\n */\n@Component({\n selector: 'ecl-menu-mega',\n templateUrl: './ecl-menu-mega.component.html',\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @HostBinding('class.ecl-menu__mega--rtl') isRtlDisplay: boolean | any = false;\n\n /**\n * List of the sub items.\n */\n @ContentChildren(EclMenuMegaItemComponent) eclMenuMegaItems: QueryList<EclMenuMegaItemComponent>;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used in keyboard navigation, when focus has to be moved to the parent item.\n */\n @Output() menuMegaItemParentFocus = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used when kyboard navigation with TAB reaches the last sub item.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('style.left.px') offsetLeft: number | null;\n @HostBinding('style.right.px') offsetRight: number | null;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-menu__mega')].join(' ');\n }\n\n private differ: IterableDiffer<EclMenuMegaItemComponent>;\n private diff: IterableChanges<EclMenuMegaItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngAfterContentInit(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n // Subscribe to the events of each new added item.\n this.createContentChildrenMenuObservable().subscribe(this.onMenuItemChanges.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n selectFirstSubItem(): void {\n if (this.eclMenuMegaItems.length > 0) {\n this.eclMenuMegaItems.first.onFocus();\n }\n }\n\n private createContentChildrenMenuObservable(): Observable<QueryList<EclMenuMegaItemComponent>> {\n return of(this.eclMenuMegaItems).pipe(mergeWith(this.eclMenuMegaItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n\n if (!this.diff) {\n this.eclMenuMegaItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuMegaItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemSelectEvent) => {\n this.onMenuItemSelected(item, evt);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemKeydownEvent) => {\n this.onMenuItemKeydown(item, evt);\n });\n }\n\n private onMenuItemKeydown(item: EclMenuMegaItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n break;\n }\n case KeyCode.TAB: {\n if (this.isLastItem(item)) {\n evt.preventDefault();\n this.menuMegaLastItemTab.next();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuMegaItemComponent): boolean {\n return this.eclMenuMegaItems.last === item;\n }\n\n private geMenuMegaItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n\n private onPrevMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== 0) {\n this.getMegaMenuItemsArray()[index - 1].onFocus();\n } else {\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== this.getMegaMenuItemsArray().length - 1) {\n this.getMegaMenuItemsArray()[index + 1].onFocus();\n }\n }\n\n private onMenuItemSelected(item: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n this.deselectAllMenuItems(this.eclMenuMegaItems.toArray());\n this.selectMenuItem(item);\n this.sendMenuItemSelectEvent(evt);\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n }\n\n private deselectAllMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private getMegaMenuItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n}\n","<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n afterNextRender,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport {\n EclMenuItemCaretEvent,\n EclMenuItemFocusEvent,\n EclMenuItemHoverEvent,\n EclMenuItemHoverOutEvent,\n EclMenuItemKeydownEvent,\n EclMenuItemParentFocusEvent,\n EclMenuItemSelectEvent,\n} from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuMegaComponent } from '../ecl-menu-mega';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nconst enum ColTrigger {\n COL1_TRIGGER = 5,\n COL2_TRIGGER = 9,\n COL3_TRIGGER = 13,\n}\n\n/**\n * This component represents a root menu item. Adds styling and functionality to menu item.\n */\n@Component({\n selector: 'ecl-menu-item',\n templateUrl: './ecl-menu-item.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @Input() id: string;\n @Input() label: string;\n /**\n * When in mobile view, use this property to set aria-label for the toggle items button (to expand item's children).\n */\n @Input() toggleAriaLabel: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @Input() isCurrent = false;\n /**\n * Custom attributes, to be added to the <a> tag of the menu item.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n isExpanded: boolean;\n /**\n * Set to 'true', when item has more than 13 chidren and the overlay needs to use the full available space.\n */\n isFull = false;\n isHovered = false;\n isMobileBreakpoint = false;\n /**\n * Used when menu has overlay, to show if the item is currently displayed.\n */\n isVisible = true;\n\n /**\n * The default role of the item is 'listitem' and should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu__item'),\n this.isCurrent ? 'ecl-menu__item--current' : '',\n this.isExpanded ? 'ecl-menu__item--expanded' : '',\n this.getClassDependingChildrenCnt(),\n ]\n .join(' ')\n .trim();\n }\n\n @ContentChild(forwardRef(() => EclMenuMegaComponent)) submenu: EclMenuMegaComponent;\n /**\n * The <a> element of the menu item, when there are no children.\n */\n @ViewChild('menuLink') menuLink: ElementRef<HTMLAnchorElement>;\n /**\n * The <button> element of the menu item, when item has children.\n */\n @ViewChild(EclButtonComponent) menuButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemCaret = new EventEmitter<EclMenuItemCaretEvent>();\n /**\n * Event that is emited on clicking the caret button to expand item's children in mobile mode.\n */\n @Output() menuItemHover = new EventEmitter<EclMenuItemHoverEvent>();\n @Output() menuItemHoverOut = new EventEmitter<EclMenuItemHoverOutEvent>();\n @Output() menuMegaItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemFocus = new EventEmitter<EclMenuItemFocusEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n /**\n * This event is emited when the keyboard nav reaches the last item in mobile view.\n * Then the next focused element should be the 'close' btn.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('class.ecl-menu__item--has-children')\n @HostBinding('attr.aria-haspopup')\n get hasEclChildrenDataAttribute(): boolean {\n return this.hasChildren || undefined;\n }\n\n @HostBinding('attr.aria-expanded')\n get isAriaExpanded(): boolean {\n return this.hasChildren ? this.isHovered : null;\n }\n\n get ariaCurrent(): boolean {\n return this.isCurrent ? true : null;\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get children(): Array<EclMenuItem> {\n return this.hasChildren ? this.submenu.eclMenuMegaItems.toArray() : [];\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.setExtraAttributesForLink(this.menuLink?.nativeElement, this.linkExtraAttributes);\n });\n }\n\n @HostListener('mouseenter', ['$event'])\n onItemMouseEnter(evt: MouseEvent): void {\n this.menuItemHover.next(new EclMenuItemHoverEvent(this, evt));\n }\n\n @HostListener('mouseleave', ['$event'])\n onItemMouseLeave(evt: MouseEvent): void {\n this.menuItemHoverOut.next(new EclMenuItemHoverOutEvent(this, evt));\n }\n\n ngAfterContentInit(): void {\n // Subscibe to submenu component events.\n if (this.submenu) {\n this.submenu.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemSelectEvent) => {\n this.menuMegaItemSelect.next(new EclMenuItemSelectEvent(it.menuItem, it.domEvent));\n });\n this.submenu.menuMegaItemParentFocus.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemParentFocusEvent) => {\n if (!this.isMobileBreakpoint) {\n this.onFocusFromSubmenu();\n }\n });\n this.submenu.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isMobileBreakpoint) {\n this.menuMegaLastItemTab.next();\n }\n });\n\n if (this.hasSubmenuAnySelections()) {\n this.isCurrent = true;\n }\n }\n\n // this.tabindex = this.routerLink || this.href ? 0 : -1;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onItemFocus(evt: FocusEvent): void {\n this.menuItemFocus.next(new EclMenuItemFocusEvent(this, evt));\n }\n\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt));\n\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * When clicking the caret button, to expand item's children. Used in mobile view.\n * @param evt\n */\n onItemCaretClick(evt: MouseEvent): void {\n this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from the submenu.\n */\n onFocusFromSubmenu(): void {\n this.onButtonFocus();\n this.isHovered = false;\n this.isExpanded = false;\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the next root menu item.\n */\n onFocusFromNext(): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.onLinkFocus();\n }\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the previous root menu item.\n */\n onFocusFromPrev(): void {\n this.onLinkFocus();\n }\n\n /**\n * Manages the keyboard navigation when the current element is the button of the menu item.\n * @param evt\n */\n onButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n if (this.isHovered) {\n this.selectFirstMegaMenuItem();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.TAB: {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Manages the keyboard navigation when the current element is the <a> tag of the menu item.\n * @param evt\n */\n onLinkKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n this.onItemClick(evt);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.onLinkEscape(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * This method calculates height and width of an item, depending the maximum of lines(rows) allowed.\n * Depends on the 'maxLines' property of the parent menu component.\n * @param maxLines - property that sets the maximum possible lines in a menu item.\n * @param isMobileBreakpoint\n * @returns\n */\n checkMenuItem(maxLines: number, isMobileBreakpoint: boolean): void {\n if (maxLines < 1) return;\n\n const currentItem = this.el.nativeElement;\n const currentLink = this.menuLink.nativeElement;\n if (isMobileBreakpoint) {\n this.renderer.setStyle(currentLink, 'width', '100%');\n return;\n }\n this.renderer.setStyle(currentItem, 'alignItems', 'flex-start');\n const linkStyle = window.getComputedStyle(currentLink);\n\n const maxHeight = this.getMenuItemLinkMaxHeight(linkStyle, maxLines);\n\n if (currentLink.offsetHeight > maxHeight) {\n this.changeMenuItemLinkWidth(currentLink, maxLines, linkStyle);\n }\n this.renderer.removeStyle(currentItem, 'alignItems');\n }\n\n private onLinkEscape(evt: Event): void {\n if (this.menuButton) {\n this.menuButton.el.nativeElement.focus();\n evt.stopPropagation();\n } else {\n this.menuLink.nativeElement.blur();\n }\n }\n\n private selectFirstMegaMenuItem(): void {\n this.submenu.selectFirstSubItem();\n }\n\n private onLinkFocus(): void {\n this.menuLink.nativeElement.focus();\n }\n\n private onLinkNextFocus(evt: Event): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n }\n\n private onButtonFocus(): void {\n this.menuButton.el.nativeElement.focus();\n }\n\n private getMenuItemLinkMaxHeight(linkStyle: CSSStyleDeclaration, maxLines: number): number {\n return parseInt(linkStyle.lineHeight, 10) * maxLines + parseInt(linkStyle.paddingTop, 10) + parseInt(linkStyle.paddingBottom, 10);\n }\n\n /**\n * Calculates width of a menu item, depending on maximum lines of text allowed.\n * @param currentLink\n * @param maxLines\n * @param linkStyle\n * @returns\n */\n private changeMenuItemLinkWidth(currentLink: HTMLAnchorElement, maxLines: number, linkStyle: CSSStyleDeclaration): void {\n this.renderer.setStyle(currentLink, 'white-space', 'nowrap');\n const linkWidth = currentLink.offsetWidth;\n if (maxLines === 1) {\n this.renderer.setStyle(currentLink, 'width', `${linkWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n return;\n }\n const textSize = currentLink.text.length;\n const letterWidth = Math.ceil(linkWidth / textSize);\n const wordsArray = currentLink.text.trim().split(' ');\n const goalWidth = Math.ceil(linkWidth / maxLines);\n const firstWord = wordsArray[0];\n let cnt = 1;\n let wordWidth = Math.ceil((firstWord.length + 1) * letterWidth);\n while (wordWidth < goalWidth) {\n wordWidth += Math.ceil((wordsArray[cnt].length + 1) * letterWidth);\n cnt++;\n }\n this.renderer.setStyle(currentLink, 'width', `${wordWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n }\n\n private getClassDependingChildrenCnt(): string {\n if (this.hasChildren) {\n if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL1_TRIGGER) {\n return 'ecl-menu__item--col1';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL2_TRIGGER) {\n return 'ecl-menu__item--col2';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL3_TRIGGER) {\n return 'ecl-menu__item--col3';\n } else {\n this.isFull = true;\n return 'ecl-menu__item--full';\n }\n }\n return '';\n }\n\n private hasSubmenuAnySelections(): boolean {\n return this.submenu && !!this.submenu.eclMenuMegaItems.find((it) => it.isCurrent);\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n isIconOnly\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n isIconOnly\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, IterableChanges, IterableDiffer, IterableDiffers, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMenuItemCaretEvent, EclMenuItemHoverEvent, EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemComponent } from './ecl-menu-item.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The horizontal menu is used as a primary navigation and it can display up to 2 levels.\n * It directs users to the pages where they need to visit.\n */\n@Component({\n selector: 'ecl-menu',\n templateUrl: './ecl-menu.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclMenuComponent extends ECLBaseDirective implements OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Adds some additional styling for the menu items' labels.\n * Depending on that value, the labels can drop on 2-3 lines, if they are longer.\n */\n @Input({ transform: numberAttribute }) maxLines = 0;\n\n /**\n * The main items of the menu.\n */\n @ContentChildren(EclMenuItemComponent) eclRootMenuItems: QueryList<EclMenuItemComponent>;\n /**\n * The element, that wraps the main menu items and the back and forth button.\n */\n @ViewChild('innerSection') innerSection: ElementRef;\n /**\n * The element that wraps the main menu items.\n */\n @ViewChild('itemsList') itemsList: ElementRef;\n /**\n * When there is an overflow of the menu, the 'previous' button to navigate back to first hidden items.\n */\n @ViewChild('btnPrevious') btnPrevious: EclButtonComponent;\n /**\n * When there is an overflow of the menu, the 'next' button to navigate to next hidden items.\n */\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n /**\n * The button to open/close menu in mobile mode.\n */\n @ViewChild('openCloseButton') openCloseButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() openHamburgerMenu = new EventEmitter();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu'),\n 'ecl-menu--transition',\n this.isRtl ? 'ecl-menu--rtl' : '',\n ].join(' ');\n }\n\n isHamburgerMenuOpened = false;\n\n @HostBinding('attr.data-expanded')\n get expandedAttr() {\n return this.isHamburgerMenuOpened ? '' : null;\n }\n\n /**\n * The default role is 'navigation', should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n @HostBinding('class.ecl-menu--forced-mobile') isTablet = false;\n @HostBinding('class.ecl-menu--forced-close') isMenuHidden = false;\n\n isMobileBreakpoint = false;\n hasOverflow = false;\n isShowPrevBtn = false;\n isShowNextBtn = false;\n /**\n * Show/hide the specific class for the 'previous' and 'next' buttons.\n */\n isPrevBtnCurrentClass = false;\n menuListStyleRight = 'auto';\n menuListStyleLeft = 'auto';\n overlayStyleTop: number | null = null;\n innerStyleTop: number | null = null;\n\n /**\n * Represents the current viewport breakpoint states.\n */\n public breakpointsValue: any = {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n };\n\n private currentItem: EclMenuItem;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMenuItemComponent>;\n private diff: IterableChanges<EclMenuItemComponent>;\n private isRtl = false;\n private totalItemsWidth = 0;\n private offsetLeft = 0;\n private lastVisibleItem: EclMenuItemComponent;\n private hammertime: Hammer;\n private resizeTimer: number;\n private TIMEOUT_INTERVAL = 150;\n private el = inject(ElementRef);\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n private euiAppShellService = inject(EuiAppShellService);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n clearTimeout(this.resizeTimer);\n this.observeElementSizeChanges();\n this.resizeTimer = setTimeout(() => {\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n }, this.TIMEOUT_INTERVAL);\n this.subscribeToAppShellBreakpoints();\n });\n }\n\n /**\n * On outside click - close/hide any open menus.\n * @param event\n */\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.isHamburgerMenuOpened) return;\n\n const target = event.target as HTMLElement;\n if (!this.el.nativeElement.contains(target) ||\n target.classList.contains('ecl-menu__overlay')) {\n this.closeRootMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * On 'esc' key clicked - close/hide any open menus.\n * @param event\n */\n @HostListener('keydown.escape', ['$event'])\n onEscapePress(event: Event): void {\n if (!this.isHamburgerMenuOpened) return;\n\n this.closeRootMenu();\n this.onCloseHamburgerMenu();\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeSwipeGestures();\n }\n }\n\n ngAfterContentInit(): void {\n // Subscribe to all menu items' events.\n this.observeRootMenuItemsChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n\n this.hammertime?.off('swipeleft');\n this.hammertime?.off('swiperight');\n }\n\n /**\n * Swipe left gesture handling\n */\n onSwipeLeft(): void {\n if (this.isMobileBreakpoint) {\n this.onOpenHamburgerMenu();\n }\n }\n\n /**\n * Swipe right gesture handling\n */\n onSwipeRight(): void {\n if (this.isMobileBreakpoint) {\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * Manages state on open/close button click, used in mobile view.\n */\n onMenuOpenCloseClick(evt: MouseEvent): void {\n if (this.isHamburgerMenuOpened) {\n this.onCloseHamburgerMenu();\n } else {\n this.onOpenHamburgerMenu();\n }\n evt.preventDefault();\n }\n\n /**\n * Manages state on close button click, used in mobile view, in EU theme.\n */\n onMenuCloseClick(evt: MouseEvent): void {\n this.onCloseHamburgerMenu();\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on back button click, used in mobile view.\n */\n onMenuBackClick(evt: MouseEvent): void {\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on 'previous' button click. Used in desktop view. Slides the items and shows the previous hidden items.\n */\n onPrevBtnClick(): void {\n this.slideMenuInitialState();\n this.refreshDisplay();\n }\n\n /**\n * Manages state on 'next' button click. Used in desktop view. Slides the items and shows the next hidden items.\n */\n onNextBtnClick(): void {\n this.isShowPrevBtn = true;\n this.isShowNextBtn = false;\n\n if (this.isRtl) {\n this.showNextSlideRtl();\n } else {\n this.showNextSlideLtr();\n }\n\n this.refreshDisplay();\n }\n\n /**\n * Postions overlay, depending on parent header position.\n * This method is called from parent header, which uses the menu for navigation.\n * @param bottomSpaceY\n */\n positionMenuOverlay(bottomSpaceY: number): void {\n if (this.isMobileBreakpoint && bottomSpaceY) {\n this.overlayStyleTop = bottomSpaceY;\n this.innerStyleTop = bottomSpaceY;\n } else {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.renderer.removeClass(this.el.nativeElement, 'ecl-menu--transition');\n this.totalItemsWidth = 0;\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n this.renderer.addClass(this.el.nativeElement, 'ecl-menu--transition');\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.innerSection.nativeElement);\n }\n\n private slideMenuInitialState(): void {\n this.offsetLeft = 0;\n if (this.isRtl) {\n this.menuListStyleRight = '0px';\n this.menuListStyleLeft = 'auto';\n } else {\n this.menuListStyleLeft = '0px';\n this.menuListStyleRight = 'auto';\n }\n\n this.isShowPrevBtn = false;\n this.isShowNextBtn = true;\n }\n\n private showNextSlideLtr(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().left -\n this.itemsList.nativeElement.getBoundingClientRect().left -\n btnOffsetWidth;\n\n this.menuListStyleLeft = `-${this.offsetLeft}px`;\n this.menuListStyleRight = 'auto';\n }\n\n private showNextSlideRtl(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.itemsList.nativeElement.getBoundingClientRect().right -\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().right -\n btnOffsetWidth;\n\n this.menuListStyleRight = `-${this.offsetLeft}px`;\n this.menuListStyleLeft = 'auto';\n }\n\n private refreshDisplay(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n item.isVisible = !item.isVisible;\n });\n }\n\n private checkMenuOverflow(): void {\n this.hasOverflow = this.totalItemsWidth > this.innerSection.nativeElement.offsetWidth + 16;\n if (!this.hasOverflow || this.isMobileBreakpoint) {\n this.resetOverflowValues();\n return;\n }\n\n this.setClassForPrevNextButtons();\n this.resetVisibilityIndicator();\n\n if (this.offsetLeft === 0) {\n this.manageOverflowEnd();\n } else {\n this.manageOverflowBeginning();\n }\n }\n\n /**\n * Manage items visibility when using overlfow. For both rtl and ltr cases.\n */\n private manageOverflowBeginning(): void {\n if (this.isRtl) {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().right <=\n this.innerSection.nativeElement.getBoundingClientRect().right,\n )\n .forEach((el) => (el.isVisible = true));\n } else {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().left >= this.innerSection.nativeElement.getBoundingClientRect().left,\n )\n .forEach((el) => (el.isVisible = true));\n }\n }\n\n /**\n * Manage items visibility when using overlfow, with the 'next' button. For both rtl and ltr cases.\n */\n private manageOverflowEnd(): void {\n this.isShowNextBtn = true;\n if (this.isRtl) {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().left < this.itemsList.nativeElement.getBoundingClientRect().left) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n } else {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().right > this.itemsList.nativeElement.getBoundingClientRect().right) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n }\n }\n\n private resetVisibilityIndicator(): void {\n this.eclRootMenuItems.forEach((item) => (item.isVisible = false));\n }\n\n private resetOverflowValues(): void {\n this.isShowPrevBtn = false;\n this.isShowNextBtn = false;\n this.hasOverflow = false;\n this.menuListStyleLeft = '0px';\n this.offsetLeft = 0;\n this.totalItemsWidth = 0;\n this.lastVisibleItem = null;\n }\n\n private setClassForPrevNextButtons(): void {\n this.currentItem = this.eclRootMenuItems.find((item) => item.isCurrent);\n if (this.currentItem) {\n if (this.currentItem.isVisible) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n }\n\n private checkMenuItemsWidth(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n this.totalItemsWidth += item.el.nativeElement.offsetWidth;\n });\n }\n\n public get isMenuExpandedInMobile(): boolean {\n return this.isMobileBreakpoint && this.isAnyRootMenuItemExpanded();\n }\n\n private isAnyRootMenuItemExpanded(): boolean {\n return this.eclRootMenuItems.some((item) => item.isExpanded);\n }\n\n private createRootMenuItemsChangesObservable(): Observable<QueryList<EclMenuItemComponent>> {\n return of(this.eclRootMenuItems).pipe(mergeWith(this.eclRootMenuItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n\n if (!this.diff) {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemSelected(evt);\n });\n item.menuItemHover.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHovered(evt);\n });\n item.menuItemHoverOut.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHoveredOut(evt);\n });\n item.menuItemCaret.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemCaret(evt);\n });\n item.menuMegaItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMenuMegaItemSelected(item, evt);\n });\n item.menuItemFocus.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemFocused(item);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemKeydown(item, evt);\n });\n item.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.openCloseButton.onFocus();\n });\n }\n\n private onRootMenuItemFocused(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n if (this.isMovePrevOverflow(index)){\n this.onPrevBtnClick();\n } else if (this.isMoveNextOverflow(index)){\n this.onNextBtnClick();\n }\n }\n\n private onRootMenuItemKeydown(item: EclMenuItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ENTER: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ESCAPE: {\n this.onRootMenuItemEscape(item, evt.domEvent);\n break;\n }\n case KeyCode.TAB: {\n if (this.isMobileBreakpoint && this.isLastItem(item)) {\n evt.preventDefault();\n this.openCloseButton.onFocus();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuItemComponent): boolean {\n return this.eclRootMenuItems.last === item;\n }\n\n private onRootMenuItemEscape(item: EclMenuItem, evt: Event): void {\n if (item.isHovered) {\n this.closeRootMenu();\n }\n evt.stopPropagation();\n }\n\n private onPrevMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== 0) {\n this.getRootMenuItemsArray()[index - 1].onFocusFromNext();\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== this.getRootMenuItemsArray().length - 1) {\n this.getRootMenuItemsArray()[index + 1].onFocusFromPrev();\n }\n }\n\n private findIndexInArray(item: EclMenuItem): number {\n return this.getRootMenuItemsArray().findIndex(el => item === el);\n }\n\n private isMoveNextOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowNextBtn;\n }\n\n private isMovePrevOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowPrevBtn;\n }\n\n private onRootMenuItemSelected(evt: EclMenuItemSelectEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(requestedRootMenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n }\n\n private managePrevNextButtonsClassOnItemSelected(): void {\n if (this.isShowNextBtn) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n\n private onRootMenuItemHovered(evt: EclMenuItemHoverEvent): void {\n this.openSubmenu(evt.menuItem);\n }\n\n private onRootMenuItemEnter(item: EclMenuItem): void {\n if (this.isMobileBreakpoint) {\n this.closeRootMenuButOneItem(item);\n this.toggleExpandedForMenuItem(item);\n } else {\n if (!item.isHovered) {\n this.openSubmenu(item);\n } else {\n this.closeRootMenu();\n }\n }\n }\n\n private openSubmenu(item: EclMenuItem): void {\n if (item.isVisible) {\n if (!this.isMobileBreakpoint && (item as EclMenuItemComponent).submenu) {\n this.checkMegaMenu(item as EclMenuItemComponent);\n }\n item.isHovered = true;\n this.closeRootMenuButOneItem(item);\n this.showMenu();\n }\n }\n\n private getRootMenuItemsArray(): EclMenuItemComponent[] {\n return this.eclRootMenuItems.toArray();\n }\n\n private checkMegaMenu(menuItem: EclMenuItemComponent): void {\n if (menuItem.isFull) {\n if (this.isRtl) {\n menuItem.submenu.offsetRight = this.offsetLeft;\n } else {\n menuItem.submenu.offsetLeft = this.offsetLeft;\n }\n return;\n }\n this.checkEnoughSpaceForMegaMenu(menuItem);\n }\n\n private checkEnoughSpaceForMegaMenu(menuItem: EclMenuItemComponent): void {\n const megaBounding = menuItem.submenu.el.nativeElement.getBoundingClientRect();\n const containerBounding = this.innerSection.nativeElement.getBoundingClientRect();\n const menuItemBounding = menuItem.el.nativeElement.getBoundingClientRect();\n\n const megaWidth = megaBounding.width;\n const containerWidth = containerBounding.width;\n const menuItemPosition = menuItemBounding.left - containerBounding.left;\n\n if (menuItemPosition + megaWidth > containerWidth) {\n menuItem.submenu.isRtlDisplay = true;\n } else {\n menuItem.submenu.isRtlDisplay = false;\n }\n }\n\n private onRootMenuItemHoveredOut(evt: EclMenuItemHoverEvent): void {\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n }\n\n private onRootMenuItemCaret(evt: EclMenuItemCaretEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenuButOneItem(requestedRootMenuItem);\n this.toggleExpandedForMenuItem(requestedRootMenuItem);\n }\n\n private onMenuMegaItemSelected(rootMenuItem: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n const requestedSubmenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(rootMenuItem);\n this.selectMenuItem(requestedSubmenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n\n this.hideMenu();\n }\n\n private deselectAllRootMenuItems(): void {\n this.deselectMenuItems(this.eclRootMenuItems.toArray());\n }\n\n private deselectAllSubmenusItems(): void {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.deselectMenuItems(rootItem.children);\n });\n }\n\n private deselectMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n this.currentItem = item;\n }\n\n private hideMenu(): void {\n this.isMenuHidden = true;\n }\n\n private showMenu(): void {\n this.isMenuHidden = false;\n }\n\n private closeRootMenu(): void {\n this.eclRootMenuItems.forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private closeRootMenuButOneItem(item: EclMenuItem): void {\n this.eclRootMenuItems\n .filter((it) => it !== item)\n .forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined && this.isRtl !== rtlState) {\n this.isRtl = rtlState;\n if (this.hasOverflow) {\n this.slideMenuInitialState();\n setTimeout(() => this.checkMenuOverflow());\n }\n }\n });\n }\n\n private toggleExpandedForMenuItem(item: EclMenuItem): void {\n item.isExpanded = !item.isExpanded;\n }\n\n private onOpenHamburgerMenu(): void {\n this.disableScroll();\n this.isHamburgerMenuOpened = true;\n this.openHamburgerMenu.emit();\n this.focusOnFirstItem();\n }\n\n private onCloseHamburgerMenu(): void {\n this.isHamburgerMenuOpened = false;\n this.enableScroll();\n }\n\n private disableScroll(): void {\n document.body.classList.add('no-scroll');\n }\n\n private enableScroll(): void {\n document.body.classList.remove('no-scroll');\n }\n\n private focusOnFirstItem(): void {\n this.eclRootMenuItems.first.onFocusFromPrev();\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private observeRootMenuItemsChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n this.createRootMenuItemsChangesObservable().pipe(takeUntil(this.destroy$)).subscribe(this.onMenuItemChanges.bind(this));\n }\n\n private observeSwipeGestures(): void {\n // load hammerjs only on browser\n if(isPlatformBrowser(this.platformId)) {\n import('hammerjs').then((Hammer: Hammer) => {\n this.hammertime = new Hammer.default(document, { inputClass: Hammer.TouchInput });\n this.hammertime.on('swipeleft', this.onSwipeLeft.bind(this));\n this.hammertime.on('swiperight', this.onSwipeRight.bind(this));\n }).catch((error) => {\n console.error('Error loading HammerJS', error);\n });\n }\n }\n\n private subscribeToAppShellBreakpoints(): void {\n this.euiAppShellService.breakpoints$\n .pipe(takeUntil(this.destroy$))\n .subscribe((bkps: any) => {\n this.breakpointsValue = bkps ?? this.breakpointsValue;\n\n if (typeof bkps?.width === 'number') {\n const w = bkps.width;\n this.isMobileBreakpoint = w <= 415;\n this.isTablet = w > 415 && w <= 1140;\n } else if (bkps && typeof bkps === 'object') {\n this.isMobileBreakpoint = !!(bkps.Handset || bkps.Small || bkps.mobile);\n this.isTablet = !!(bkps.Tablet || bkps.tablet);\n\n } else if (typeof bkps?.isMobile !== 'undefined' || typeof bkps?.isTablet !== 'undefined') {\n this.isMobileBreakpoint = !!bkps.isMobile;\n this.isTablet = !!bkps.isTablet;\n }\n\n if (!this.isMobileBreakpoint) {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n });\n }\n}\n","<div class=\"ecl-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <button #openCloseButton eclButton isIconOnly variant=\"tertiary\" eclStyle=\"neutral\" type=\"button\" class=\"ecl-menu__open\"\n (click)=\"onMenuOpenCloseClick($event)\" [attr.aria-expanded]=\"isHamburgerMenuOpened\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isHamburgerMenuOpened) {\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span eclButtonLabel>{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\"\n aria-label=\"Menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"s\"></ecl-icon>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"tertiary\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"tertiary\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'flex' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"tertiary\"\n tabindex=\"-1\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'flex' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n","import { NgModule } from '@angular/core';\nimport { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nconst COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];\n\n/**\n * Module that provides the EclMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMenuModule {}\n","import { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nexport * from './ecl-menu.module';\nexport * from './ecl-menu/index';\nexport * from './ecl-menu-mega/index';\nexport * from './events/index';\nexport * from './models/ecl-menu-item.model';\n\nexport const EUI_ECL_MENU = [\n EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-menu.mjs","sources":["../../components/ecl-menu/events/ecl-menu-item.event.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.html","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.html","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.html","../../components/ecl-menu/ecl-menu/ecl-menu.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu.component.html","../../components/ecl-menu/index.ts","../../components/ecl-menu/eui-ecl-components-ecl-menu.ts"],"sourcesContent":["import { EclDomEvent } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\n\nexport class EclMenuItemSelectEvent extends EclDomEvent<Event> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: Event = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverOutEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemFocusEvent extends EclDomEvent<FocusEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: FocusEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemCaretEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemKeydownEvent extends EclDomEvent<KeyboardEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: KeyboardEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemParentFocusEvent {\n constructor(\n public menuItem: EclMenuItem) {}\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink } from '@angular/router';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events/ecl-menu-item.event';\n\n/**\n * This component represents a sub-menu item, that is on the second level of the ecl-menu.\n * Adds some custom styling and functionality.\n */\n@Component({\n selector: 'ecl-menu-mega-item',\n templateUrl: './ecl-menu-mega-item.component.html',\n imports: [NgTemplateOutlet, RouterLink],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\n\n @Input() id: string;\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @HostBinding('class.ecl-menu__subitem') cmpClass = true;\n /**\n * The default role of the DOM element is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__subitem--current') isCurrent = false;\n /**\n * An additional item, that represents a link.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__see-all') isSeeAll = false;\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * If menu item includes any icon, added by the user (for example for 'external' link).\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n /**\n * If menu item includes any links, added by the user.\n */\n @ContentChildren(forwardRef(() => EclLinkDirective)) links: QueryList<EclLinkDirective>;\n /**\n * The actual link of the menu item.\n */\n @ViewChild('megaMenuLink') megaMenuLink: ElementRef\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n\n hasChildren = false;\n isExpanded = true;\n\n children: Array<EclMenuItem> = [];\n private renderer = inject(Renderer2);\n\n ngAfterViewInit(): void {\n this.manageContentChildren();\n this.setExtraAttributesForLink(this.megaMenuLink?.nativeElement, this.linkExtraAttributes);\n }\n\n /**\n *\n * @param evt This event is emited, when the menu item is clicked.\n */\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt as MouseEvent));\n\n if (!this.href) {\n evt.preventDefault();\n }\n }\n\n @HostListener('click', ['$event'])\n onHostClick(evt: MouseEvent): void {\n evt.stopPropagation();\n }\n\n /**\n * When the item is the current active item, the 'aria-current' attribute is set to 'page'.\n */\n get ariaCurrent(): string | null {\n return this.isCurrent ? 'page' : null;\n }\n\n /**\n * Focus should be set on the underlying <a> element.\n */\n onFocus(): void {\n this.megaMenuLink.nativeElement.focus();\n }\n\n onKeydown(evt: Event): void {\n if ((evt as KeyboardEvent).key === KeyCode.ENTER) {\n this.onItemClick(evt);\n }\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n\n /**\n * Adds specific classes to content children (icons or links).\n */\n private manageContentChildren(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-menu__sublink-icon';\n });\n });\n }\n\n if (this.links) {\n setTimeout(() => {\n this.links.forEach((icn) => {\n icn.class = icn.class ? icn.class + ' ecl-menu__sublink' : 'ecl-menu__sublink';\n });\n });\n }\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) =>{\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}\n","@if (!isSeeAll) {\n @if (href) {\n <a #megaMenuLink\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n } @else {\n <a #megaMenuLink\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, ContentChildren, QueryList, AfterContentInit, OnDestroy, Output, EventEmitter, IterableDiffer, IterableChanges, IterableDiffers, HostBinding, ElementRef, inject } from '@angular/core';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega-item.component';\nimport { Subject, of, Observable } from 'rxjs';\nimport { takeUntil, mergeWith } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\n\n/**\n * This component acts as a wrapper for the second level of menu items, that are children of one root item.\n * Provides functionality for some common events like keyboard navigation and manages relations between sub items.\n */\n@Component({\n selector: 'ecl-menu-mega',\n templateUrl: './ecl-menu-mega.component.html',\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @HostBinding('class.ecl-menu__mega--rtl') isRtlDisplay: boolean | any = false;\n\n /**\n * List of the sub items.\n */\n @ContentChildren(EclMenuMegaItemComponent) eclMenuMegaItems: QueryList<EclMenuMegaItemComponent>;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used in keyboard navigation, when focus has to be moved to the parent item.\n */\n @Output() menuMegaItemParentFocus = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used when kyboard navigation with TAB reaches the last sub item.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('style.left.px') offsetLeft: number | null;\n @HostBinding('style.right.px') offsetRight: number | null;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-menu__mega')].join(' ');\n }\n\n private differ: IterableDiffer<EclMenuMegaItemComponent>;\n private diff: IterableChanges<EclMenuMegaItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngAfterContentInit(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n // Subscribe to the events of each new added item.\n this.createContentChildrenMenuObservable().subscribe(this.onMenuItemChanges.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n selectFirstSubItem(): void {\n if (this.eclMenuMegaItems.length > 0) {\n this.eclMenuMegaItems.first.onFocus();\n }\n }\n\n private createContentChildrenMenuObservable(): Observable<QueryList<EclMenuMegaItemComponent>> {\n return of(this.eclMenuMegaItems).pipe(mergeWith(this.eclMenuMegaItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n\n if (!this.diff) {\n this.eclMenuMegaItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuMegaItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemSelectEvent) => {\n this.onMenuItemSelected(item, evt);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemKeydownEvent) => {\n this.onMenuItemKeydown(item, evt);\n });\n }\n\n private onMenuItemKeydown(item: EclMenuMegaItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n break;\n }\n case KeyCode.TAB: {\n if (this.isLastItem(item)) {\n evt.preventDefault();\n this.menuMegaLastItemTab.next();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuMegaItemComponent): boolean {\n return this.eclMenuMegaItems.last === item;\n }\n\n private geMenuMegaItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n\n private onPrevMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== 0) {\n this.getMegaMenuItemsArray()[index - 1].onFocus();\n } else {\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== this.getMegaMenuItemsArray().length - 1) {\n this.getMegaMenuItemsArray()[index + 1].onFocus();\n }\n }\n\n private onMenuItemSelected(item: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n this.deselectAllMenuItems(this.eclMenuMegaItems.toArray());\n this.selectMenuItem(item);\n this.sendMenuItemSelectEvent(evt);\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n }\n\n private deselectAllMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private getMegaMenuItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n}\n","<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n afterNextRender,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport {\n EclMenuItemCaretEvent,\n EclMenuItemFocusEvent,\n EclMenuItemHoverEvent,\n EclMenuItemHoverOutEvent,\n EclMenuItemKeydownEvent,\n EclMenuItemParentFocusEvent,\n EclMenuItemSelectEvent,\n} from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuMegaComponent } from '../ecl-menu-mega';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nconst enum ColTrigger {\n COL1_TRIGGER = 5,\n COL2_TRIGGER = 9,\n COL3_TRIGGER = 13,\n}\n\n/**\n * This component represents a root menu item. Adds styling and functionality to menu item.\n */\n@Component({\n selector: 'ecl-menu-item',\n templateUrl: './ecl-menu-item.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @Input() id: string;\n @Input() label: string;\n /**\n * When in mobile view, use this property to set aria-label for the toggle items button (to expand item's children).\n */\n @Input() toggleAriaLabel: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @Input() isCurrent = false;\n /**\n * Custom attributes, to be added to the <a> tag of the menu item.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n isExpanded: boolean;\n /**\n * Set to 'true', when item has more than 13 chidren and the overlay needs to use the full available space.\n */\n isFull = false;\n isHovered = false;\n isMobileBreakpoint = false;\n /**\n * Used when menu has overlay, to show if the item is currently displayed.\n */\n isVisible = true;\n\n /**\n * The default role of the item is 'listitem' and should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu__item'),\n this.isCurrent ? 'ecl-menu__item--current' : '',\n this.isExpanded ? 'ecl-menu__item--expanded' : '',\n this.getClassDependingChildrenCnt(),\n ]\n .join(' ')\n .trim();\n }\n\n @ContentChild(forwardRef(() => EclMenuMegaComponent)) submenu: EclMenuMegaComponent;\n /**\n * The <a> element of the menu item, when there are no children.\n */\n @ViewChild('menuLink') menuLink: ElementRef<HTMLAnchorElement>;\n /**\n * The <button> element of the menu item, when item has children.\n */\n @ViewChild(EclButtonComponent) menuButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemCaret = new EventEmitter<EclMenuItemCaretEvent>();\n /**\n * Event that is emited on clicking the caret button to expand item's children in mobile mode.\n */\n @Output() menuItemHover = new EventEmitter<EclMenuItemHoverEvent>();\n @Output() menuItemHoverOut = new EventEmitter<EclMenuItemHoverOutEvent>();\n @Output() menuMegaItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemFocus = new EventEmitter<EclMenuItemFocusEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n /**\n * This event is emited when the keyboard nav reaches the last item in mobile view.\n * Then the next focused element should be the 'close' btn.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('class.ecl-menu__item--has-children')\n @HostBinding('attr.aria-haspopup')\n get hasEclChildrenDataAttribute(): boolean {\n return this.hasChildren || undefined;\n }\n\n @HostBinding('attr.aria-expanded')\n get isAriaExpanded(): boolean {\n return this.hasChildren ? this.isHovered : null;\n }\n\n get ariaCurrent(): boolean {\n return this.isCurrent ? true : null;\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get children(): Array<EclMenuItem> {\n return this.hasChildren ? this.submenu.eclMenuMegaItems.toArray() : [];\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.setExtraAttributesForLink(this.menuLink?.nativeElement, this.linkExtraAttributes);\n });\n }\n\n @HostListener('mouseenter', ['$event'])\n onItemMouseEnter(evt: MouseEvent): void {\n this.menuItemHover.next(new EclMenuItemHoverEvent(this, evt));\n }\n\n @HostListener('mouseleave', ['$event'])\n onItemMouseLeave(evt: MouseEvent): void {\n this.menuItemHoverOut.next(new EclMenuItemHoverOutEvent(this, evt));\n }\n\n ngAfterContentInit(): void {\n // Subscibe to submenu component events.\n if (this.submenu) {\n this.submenu.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemSelectEvent) => {\n this.menuMegaItemSelect.next(new EclMenuItemSelectEvent(it.menuItem, it.domEvent));\n });\n this.submenu.menuMegaItemParentFocus.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemParentFocusEvent) => {\n if (!this.isMobileBreakpoint) {\n this.onFocusFromSubmenu();\n }\n });\n this.submenu.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isMobileBreakpoint) {\n this.menuMegaLastItemTab.next();\n }\n });\n\n if (this.hasSubmenuAnySelections()) {\n this.isCurrent = true;\n }\n }\n\n // this.tabindex = this.routerLink || this.href ? 0 : -1;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onItemFocus(evt: FocusEvent): void {\n this.menuItemFocus.next(new EclMenuItemFocusEvent(this, evt));\n }\n\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt));\n\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * When clicking the caret button, to expand item's children. Used in mobile view.\n * @param evt\n */\n onItemCaretClick(evt: MouseEvent): void {\n this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from the submenu.\n */\n onFocusFromSubmenu(): void {\n this.onButtonFocus();\n this.isHovered = false;\n this.isExpanded = false;\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the next root menu item.\n */\n onFocusFromNext(): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.onLinkFocus();\n }\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the previous root menu item.\n */\n onFocusFromPrev(): void {\n this.onLinkFocus();\n }\n\n /**\n * Manages the keyboard navigation when the current element is the button of the menu item.\n * @param evt\n */\n onButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n if (this.isHovered) {\n this.selectFirstMegaMenuItem();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.TAB: {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Manages the keyboard navigation when the current element is the <a> tag of the menu item.\n * @param evt\n */\n onLinkKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n this.onItemClick(evt);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.onLinkEscape(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * This method calculates height and width of an item, depending the maximum of lines(rows) allowed.\n * Depends on the 'maxLines' property of the parent menu component.\n * @param maxLines - property that sets the maximum possible lines in a menu item.\n * @param isMobileBreakpoint\n * @returns\n */\n checkMenuItem(maxLines: number, isMobileBreakpoint: boolean): void {\n if (maxLines < 1) return;\n\n const currentItem = this.el.nativeElement;\n const currentLink = this.menuLink.nativeElement;\n if (isMobileBreakpoint) {\n this.renderer.setStyle(currentLink, 'width', '100%');\n return;\n }\n this.renderer.setStyle(currentItem, 'alignItems', 'flex-start');\n const linkStyle = window.getComputedStyle(currentLink);\n\n const maxHeight = this.getMenuItemLinkMaxHeight(linkStyle, maxLines);\n\n if (currentLink.offsetHeight > maxHeight) {\n this.changeMenuItemLinkWidth(currentLink, maxLines, linkStyle);\n }\n this.renderer.removeStyle(currentItem, 'alignItems');\n }\n\n private onLinkEscape(evt: Event): void {\n if (this.menuButton) {\n this.menuButton.el.nativeElement.focus();\n evt.stopPropagation();\n } else {\n this.menuLink.nativeElement.blur();\n }\n }\n\n private selectFirstMegaMenuItem(): void {\n this.submenu.selectFirstSubItem();\n }\n\n private onLinkFocus(): void {\n this.menuLink.nativeElement.focus();\n }\n\n private onLinkNextFocus(evt: Event): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n }\n\n private onButtonFocus(): void {\n this.menuButton.el.nativeElement.focus();\n }\n\n private getMenuItemLinkMaxHeight(linkStyle: CSSStyleDeclaration, maxLines: number): number {\n return parseInt(linkStyle.lineHeight, 10) * maxLines + parseInt(linkStyle.paddingTop, 10) + parseInt(linkStyle.paddingBottom, 10);\n }\n\n /**\n * Calculates width of a menu item, depending on maximum lines of text allowed.\n * @param currentLink\n * @param maxLines\n * @param linkStyle\n * @returns\n */\n private changeMenuItemLinkWidth(currentLink: HTMLAnchorElement, maxLines: number, linkStyle: CSSStyleDeclaration): void {\n this.renderer.setStyle(currentLink, 'white-space', 'nowrap');\n const linkWidth = currentLink.offsetWidth;\n if (maxLines === 1) {\n this.renderer.setStyle(currentLink, 'width', `${linkWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n return;\n }\n const textSize = currentLink.text.length;\n const letterWidth = Math.ceil(linkWidth / textSize);\n const wordsArray = currentLink.text.trim().split(' ');\n const goalWidth = Math.ceil(linkWidth / maxLines);\n const firstWord = wordsArray[0];\n let cnt = 1;\n let wordWidth = Math.ceil((firstWord.length + 1) * letterWidth);\n while (wordWidth < goalWidth) {\n wordWidth += Math.ceil((wordsArray[cnt].length + 1) * letterWidth);\n cnt++;\n }\n this.renderer.setStyle(currentLink, 'width', `${wordWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n }\n\n private getClassDependingChildrenCnt(): string {\n if (this.hasChildren) {\n if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL1_TRIGGER) {\n return 'ecl-menu__item--col1';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL2_TRIGGER) {\n return 'ecl-menu__item--col2';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL3_TRIGGER) {\n return 'ecl-menu__item--col3';\n } else {\n this.isFull = true;\n return 'ecl-menu__item--full';\n }\n }\n return '';\n }\n\n private hasSubmenuAnySelections(): boolean {\n return this.submenu && !!this.submenu.eclMenuMegaItems.find((it) => it.isCurrent);\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n isIconOnly\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n isIconOnly\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, IterableChanges, IterableDiffer, IterableDiffers, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMenuItemCaretEvent, EclMenuItemHoverEvent, EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemComponent } from './ecl-menu-item.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The horizontal menu is used as a primary navigation and it can display up to 2 levels.\n * It directs users to the pages where they need to visit.\n */\n@Component({\n selector: 'ecl-menu',\n templateUrl: './ecl-menu.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclMenuComponent extends ECLBaseDirective implements OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Adds some additional styling for the menu items' labels.\n * Depending on that value, the labels can drop on 2-3 lines, if they are longer.\n */\n @Input({ transform: numberAttribute }) maxLines = 0;\n\n /**\n * The main items of the menu.\n */\n @ContentChildren(EclMenuItemComponent) eclRootMenuItems: QueryList<EclMenuItemComponent>;\n /**\n * The element, that wraps the main menu items and the back and forth button.\n */\n @ViewChild('innerSection') innerSection: ElementRef;\n /**\n * The element that wraps the main menu items.\n */\n @ViewChild('itemsList') itemsList: ElementRef;\n /**\n * When there is an overflow of the menu, the 'previous' button to navigate back to first hidden items.\n */\n @ViewChild('btnPrevious') btnPrevious: EclButtonComponent;\n /**\n * When there is an overflow of the menu, the 'next' button to navigate to next hidden items.\n */\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n /**\n * The button to open/close menu in mobile mode.\n */\n @ViewChild('openCloseButton') openCloseButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() openHamburgerMenu = new EventEmitter();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu'),\n 'ecl-menu--transition',\n this.isRtl ? 'ecl-menu--rtl' : '',\n ].join(' ');\n }\n\n isHamburgerMenuOpened = false;\n\n @HostBinding('attr.data-expanded')\n get expandedAttr() {\n return this.isHamburgerMenuOpened ? '' : null;\n }\n\n /**\n * The default role is 'navigation', should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n @HostBinding('class.ecl-menu--forced-mobile') isTablet = false;\n @HostBinding('class.ecl-menu--forced-close') isMenuHidden = false;\n\n isMobileBreakpoint = false;\n hasOverflow = false;\n isShowPrevBtn = false;\n isShowNextBtn = false;\n /**\n * Show/hide the specific class for the 'previous' and 'next' buttons.\n */\n isPrevBtnCurrentClass = false;\n menuListStyleRight = 'auto';\n menuListStyleLeft = 'auto';\n overlayStyleTop: number | null = null;\n innerStyleTop: number | null = null;\n\n /**\n * Represents the current viewport breakpoint states.\n */\n public breakpointsValue: any = {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n };\n\n private currentItem: EclMenuItem;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMenuItemComponent>;\n private diff: IterableChanges<EclMenuItemComponent>;\n private isRtl = false;\n private totalItemsWidth = 0;\n private offsetLeft = 0;\n private lastVisibleItem: EclMenuItemComponent;\n private hammertime: Hammer;\n private resizeTimer: number;\n private TIMEOUT_INTERVAL = 150;\n private el = inject(ElementRef);\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n private euiAppShellService = inject(EuiAppShellService);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n clearTimeout(this.resizeTimer);\n this.observeElementSizeChanges();\n this.resizeTimer = setTimeout(() => {\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n }, this.TIMEOUT_INTERVAL);\n this.subscribeToAppShellBreakpoints();\n });\n }\n\n /**\n * On outside click - close/hide any open menus.\n * @param event\n */\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.isHamburgerMenuOpened) return;\n\n const target = event.target as HTMLElement;\n if (!this.el.nativeElement.contains(target) ||\n target.classList.contains('ecl-menu__overlay')) {\n this.closeRootMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * On 'esc' key clicked - close/hide any open menus.\n * @param event\n */\n @HostListener('keydown.escape', ['$event'])\n onEscapePress(event: Event): void {\n if (!this.isHamburgerMenuOpened) return;\n\n this.closeRootMenu();\n this.onCloseHamburgerMenu();\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeSwipeGestures();\n }\n }\n\n ngAfterContentInit(): void {\n // Subscribe to all menu items' events.\n this.observeRootMenuItemsChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n\n this.hammertime?.off('swipeleft');\n this.hammertime?.off('swiperight');\n }\n\n /**\n * Swipe left gesture handling\n */\n onSwipeLeft(): void {\n if (this.isMobileBreakpoint) {\n this.onOpenHamburgerMenu();\n }\n }\n\n /**\n * Swipe right gesture handling\n */\n onSwipeRight(): void {\n if (this.isMobileBreakpoint) {\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * Manages state on open/close button click, used in mobile view.\n */\n onMenuOpenCloseClick(evt: MouseEvent): void {\n if (this.isHamburgerMenuOpened) {\n this.onCloseHamburgerMenu();\n } else {\n this.onOpenHamburgerMenu();\n }\n evt.preventDefault();\n }\n\n /**\n * Manages state on close button click, used in mobile view, in EU theme.\n */\n onMenuCloseClick(evt: MouseEvent): void {\n this.onCloseHamburgerMenu();\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on back button click, used in mobile view.\n */\n onMenuBackClick(evt: MouseEvent): void {\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on 'previous' button click. Used in desktop view. Slides the items and shows the previous hidden items.\n */\n onPrevBtnClick(): void {\n this.slideMenuInitialState();\n this.refreshDisplay();\n }\n\n /**\n * Manages state on 'next' button click. Used in desktop view. Slides the items and shows the next hidden items.\n */\n onNextBtnClick(): void {\n this.isShowPrevBtn = true;\n this.isShowNextBtn = false;\n\n if (this.isRtl) {\n this.showNextSlideRtl();\n } else {\n this.showNextSlideLtr();\n }\n\n this.refreshDisplay();\n }\n\n /**\n * Postions overlay, depending on parent header position.\n * This method is called from parent header, which uses the menu for navigation.\n * @param bottomSpaceY\n */\n positionMenuOverlay(bottomSpaceY: number): void {\n if (this.isMobileBreakpoint && bottomSpaceY) {\n this.overlayStyleTop = bottomSpaceY;\n this.innerStyleTop = bottomSpaceY;\n } else {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.renderer.removeClass(this.el.nativeElement, 'ecl-menu--transition');\n this.totalItemsWidth = 0;\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n this.renderer.addClass(this.el.nativeElement, 'ecl-menu--transition');\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.innerSection.nativeElement);\n }\n\n private slideMenuInitialState(): void {\n this.offsetLeft = 0;\n if (this.isRtl) {\n this.menuListStyleRight = '0px';\n this.menuListStyleLeft = 'auto';\n } else {\n this.menuListStyleLeft = '0px';\n this.menuListStyleRight = 'auto';\n }\n\n this.isShowPrevBtn = false;\n this.isShowNextBtn = true;\n }\n\n private showNextSlideLtr(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().left -\n this.itemsList.nativeElement.getBoundingClientRect().left -\n btnOffsetWidth;\n\n this.menuListStyleLeft = `-${this.offsetLeft}px`;\n this.menuListStyleRight = 'auto';\n }\n\n private showNextSlideRtl(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.itemsList.nativeElement.getBoundingClientRect().right -\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().right -\n btnOffsetWidth;\n\n this.menuListStyleRight = `-${this.offsetLeft}px`;\n this.menuListStyleLeft = 'auto';\n }\n\n private refreshDisplay(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n item.isVisible = !item.isVisible;\n });\n }\n\n private checkMenuOverflow(): void {\n this.hasOverflow = this.totalItemsWidth > this.innerSection.nativeElement.offsetWidth + 16;\n if (!this.hasOverflow || this.isMobileBreakpoint) {\n this.resetOverflowValues();\n return;\n }\n\n this.setClassForPrevNextButtons();\n this.resetVisibilityIndicator();\n\n if (this.offsetLeft === 0) {\n this.manageOverflowEnd();\n } else {\n this.manageOverflowBeginning();\n }\n }\n\n /**\n * Manage items visibility when using overlfow. For both rtl and ltr cases.\n */\n private manageOverflowBeginning(): void {\n if (this.isRtl) {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().right <=\n this.innerSection.nativeElement.getBoundingClientRect().right,\n )\n .forEach((el) => (el.isVisible = true));\n } else {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().left >= this.innerSection.nativeElement.getBoundingClientRect().left,\n )\n .forEach((el) => (el.isVisible = true));\n }\n }\n\n /**\n * Manage items visibility when using overlfow, with the 'next' button. For both rtl and ltr cases.\n */\n private manageOverflowEnd(): void {\n this.isShowNextBtn = true;\n if (this.isRtl) {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().left < this.itemsList.nativeElement.getBoundingClientRect().left) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n } else {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().right > this.itemsList.nativeElement.getBoundingClientRect().right) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n }\n }\n\n private resetVisibilityIndicator(): void {\n this.eclRootMenuItems.forEach((item) => (item.isVisible = false));\n }\n\n private resetOverflowValues(): void {\n this.isShowPrevBtn = false;\n this.isShowNextBtn = false;\n this.hasOverflow = false;\n this.menuListStyleLeft = '0px';\n this.offsetLeft = 0;\n this.totalItemsWidth = 0;\n this.lastVisibleItem = null;\n }\n\n private setClassForPrevNextButtons(): void {\n this.currentItem = this.eclRootMenuItems.find((item) => item.isCurrent);\n if (this.currentItem) {\n if (this.currentItem.isVisible) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n }\n\n private checkMenuItemsWidth(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n this.totalItemsWidth += item.el.nativeElement.offsetWidth;\n });\n }\n\n public get isMenuExpandedInMobile(): boolean {\n return this.isMobileBreakpoint && this.isAnyRootMenuItemExpanded();\n }\n\n private isAnyRootMenuItemExpanded(): boolean {\n return this.eclRootMenuItems.some((item) => item.isExpanded);\n }\n\n private createRootMenuItemsChangesObservable(): Observable<QueryList<EclMenuItemComponent>> {\n return of(this.eclRootMenuItems).pipe(mergeWith(this.eclRootMenuItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n\n if (!this.diff) {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemSelected(evt);\n });\n item.menuItemHover.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHovered(evt);\n });\n item.menuItemHoverOut.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHoveredOut(evt);\n });\n item.menuItemCaret.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemCaret(evt);\n });\n item.menuMegaItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMenuMegaItemSelected(item, evt);\n });\n item.menuItemFocus.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemFocused(item);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemKeydown(item, evt);\n });\n item.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.openCloseButton.onFocus();\n });\n }\n\n private onRootMenuItemFocused(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n if (this.isMovePrevOverflow(index)){\n this.onPrevBtnClick();\n } else if (this.isMoveNextOverflow(index)){\n this.onNextBtnClick();\n }\n }\n\n private onRootMenuItemKeydown(item: EclMenuItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ENTER: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ESCAPE: {\n this.onRootMenuItemEscape(item, evt.domEvent);\n break;\n }\n case KeyCode.TAB: {\n if (this.isMobileBreakpoint && this.isLastItem(item)) {\n evt.preventDefault();\n this.openCloseButton.onFocus();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuItemComponent): boolean {\n return this.eclRootMenuItems.last === item;\n }\n\n private onRootMenuItemEscape(item: EclMenuItem, evt: Event): void {\n if (item.isHovered) {\n this.closeRootMenu();\n }\n evt.stopPropagation();\n }\n\n private onPrevMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== 0) {\n this.getRootMenuItemsArray()[index - 1].onFocusFromNext();\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== this.getRootMenuItemsArray().length - 1) {\n this.getRootMenuItemsArray()[index + 1].onFocusFromPrev();\n }\n }\n\n private findIndexInArray(item: EclMenuItem): number {\n return this.getRootMenuItemsArray().findIndex(el => item === el);\n }\n\n private isMoveNextOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowNextBtn;\n }\n\n private isMovePrevOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowPrevBtn;\n }\n\n private onRootMenuItemSelected(evt: EclMenuItemSelectEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(requestedRootMenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n }\n\n private managePrevNextButtonsClassOnItemSelected(): void {\n if (this.isShowNextBtn) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n\n private onRootMenuItemHovered(evt: EclMenuItemHoverEvent): void {\n this.openSubmenu(evt.menuItem);\n }\n\n private onRootMenuItemEnter(item: EclMenuItem): void {\n if (this.isMobileBreakpoint) {\n this.closeRootMenuButOneItem(item);\n this.toggleExpandedForMenuItem(item);\n } else {\n if (!item.isHovered) {\n this.openSubmenu(item);\n } else {\n this.closeRootMenu();\n }\n }\n }\n\n private openSubmenu(item: EclMenuItem): void {\n if (item.isVisible) {\n if (!this.isMobileBreakpoint && (item as EclMenuItemComponent).submenu) {\n this.checkMegaMenu(item as EclMenuItemComponent);\n }\n item.isHovered = true;\n this.closeRootMenuButOneItem(item);\n this.showMenu();\n }\n }\n\n private getRootMenuItemsArray(): EclMenuItemComponent[] {\n return this.eclRootMenuItems.toArray();\n }\n\n private checkMegaMenu(menuItem: EclMenuItemComponent): void {\n if (menuItem.isFull) {\n if (this.isRtl) {\n menuItem.submenu.offsetRight = this.offsetLeft;\n } else {\n menuItem.submenu.offsetLeft = this.offsetLeft;\n }\n return;\n }\n this.checkEnoughSpaceForMegaMenu(menuItem);\n }\n\n private checkEnoughSpaceForMegaMenu(menuItem: EclMenuItemComponent): void {\n const megaBounding = menuItem.submenu.el.nativeElement.getBoundingClientRect();\n const containerBounding = this.innerSection.nativeElement.getBoundingClientRect();\n const menuItemBounding = menuItem.el.nativeElement.getBoundingClientRect();\n\n const megaWidth = megaBounding.width;\n const containerWidth = containerBounding.width;\n const menuItemPosition = menuItemBounding.left - containerBounding.left;\n\n if (menuItemPosition + megaWidth > containerWidth) {\n menuItem.submenu.isRtlDisplay = true;\n } else {\n menuItem.submenu.isRtlDisplay = false;\n }\n }\n\n private onRootMenuItemHoveredOut(evt: EclMenuItemHoverEvent): void {\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n }\n\n private onRootMenuItemCaret(evt: EclMenuItemCaretEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenuButOneItem(requestedRootMenuItem);\n this.toggleExpandedForMenuItem(requestedRootMenuItem);\n }\n\n private onMenuMegaItemSelected(rootMenuItem: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n const requestedSubmenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(rootMenuItem);\n this.selectMenuItem(requestedSubmenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n\n this.hideMenu();\n }\n\n private deselectAllRootMenuItems(): void {\n this.deselectMenuItems(this.eclRootMenuItems.toArray());\n }\n\n private deselectAllSubmenusItems(): void {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.deselectMenuItems(rootItem.children);\n });\n }\n\n private deselectMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n this.currentItem = item;\n }\n\n private hideMenu(): void {\n this.isMenuHidden = true;\n }\n\n private showMenu(): void {\n this.isMenuHidden = false;\n }\n\n private closeRootMenu(): void {\n this.eclRootMenuItems.forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private closeRootMenuButOneItem(item: EclMenuItem): void {\n this.eclRootMenuItems\n .filter((it) => it !== item)\n .forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined && this.isRtl !== rtlState) {\n this.isRtl = rtlState;\n if (this.hasOverflow) {\n this.slideMenuInitialState();\n setTimeout(() => this.checkMenuOverflow());\n }\n }\n });\n }\n\n private toggleExpandedForMenuItem(item: EclMenuItem): void {\n item.isExpanded = !item.isExpanded;\n }\n\n private onOpenHamburgerMenu(): void {\n this.disableScroll();\n this.isHamburgerMenuOpened = true;\n this.openHamburgerMenu.emit();\n this.focusOnFirstItem();\n }\n\n private onCloseHamburgerMenu(): void {\n this.isHamburgerMenuOpened = false;\n this.enableScroll();\n }\n\n private disableScroll(): void {\n document.body.classList.add('no-scroll');\n }\n\n private enableScroll(): void {\n document.body.classList.remove('no-scroll');\n }\n\n private focusOnFirstItem(): void {\n this.eclRootMenuItems.first.onFocusFromPrev();\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private observeRootMenuItemsChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n this.createRootMenuItemsChangesObservable().pipe(takeUntil(this.destroy$)).subscribe(this.onMenuItemChanges.bind(this));\n }\n\n private observeSwipeGestures(): void {\n // load hammerjs only on browser\n if(isPlatformBrowser(this.platformId)) {\n import('hammerjs').then((Hammer: Hammer) => {\n this.hammertime = new Hammer.default(document, { inputClass: Hammer.TouchInput });\n this.hammertime.on('swipeleft', this.onSwipeLeft.bind(this));\n this.hammertime.on('swiperight', this.onSwipeRight.bind(this));\n }).catch((error) => {\n console.error('Error loading HammerJS', error);\n });\n }\n }\n\n private subscribeToAppShellBreakpoints(): void {\n this.euiAppShellService.breakpoints$\n .pipe(takeUntil(this.destroy$))\n .subscribe((bkps: any) => {\n this.breakpointsValue = bkps ?? this.breakpointsValue;\n\n if (typeof bkps?.width === 'number') {\n const w = bkps.width;\n this.isMobileBreakpoint = w <= 415;\n this.isTablet = w > 415 && w <= 1140;\n } else if (bkps && typeof bkps === 'object') {\n this.isMobileBreakpoint = !!(bkps.Handset || bkps.Small || bkps.mobile);\n this.isTablet = !!(bkps.Tablet || bkps.tablet);\n\n } else if (typeof bkps?.isMobile !== 'undefined' || typeof bkps?.isTablet !== 'undefined') {\n this.isMobileBreakpoint = !!bkps.isMobile;\n this.isTablet = !!bkps.isTablet;\n }\n\n if (!this.isMobileBreakpoint) {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n });\n }\n}\n","<div class=\"ecl-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <button #openCloseButton eclButton isIconOnly variant=\"tertiary\" eclStyle=\"neutral\" type=\"button\" class=\"ecl-menu__open\"\n (click)=\"onMenuOpenCloseClick($event)\" [attr.aria-expanded]=\"isHamburgerMenuOpened\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isHamburgerMenuOpened) {\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span eclButtonLabel>{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\"\n aria-label=\"Menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"s\"></ecl-icon>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"tertiary\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"tertiary\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'flex' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"tertiary\"\n tabindex=\"-1\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'flex' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n","import { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nexport * from './ecl-menu/index';\nexport * from './ecl-menu-mega/index';\nexport * from './events/index';\nexport * from './models/ecl-menu-item.model';\n\nexport const EUI_ECL_MENU = [\n EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3"],"mappings":"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"}