@eui/ecl 19.3.1 → 19.3.2-snapshot-1752652198707

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 (382) hide show
  1. package/components/ecl-app/ecl-app.component.d.ts +10 -0
  2. package/components/ecl-app/ecl-app.component.d.ts.map +1 -1
  3. package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts +6 -0
  4. package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts.map +1 -1
  5. package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +39 -0
  6. package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  7. package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts +42 -0
  8. package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
  9. package/components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.d.ts +3 -0
  10. package/components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.d.ts.map +1 -1
  11. package/components/ecl-media-container/ecl-media-container-iframe.directive.d.ts +3 -0
  12. package/components/ecl-media-container/ecl-media-container-iframe.directive.d.ts.map +1 -1
  13. package/components/ecl-media-container/ecl-media-container-item-audio-description.directive.d.ts +3 -0
  14. package/components/ecl-media-container/ecl-media-container-item-audio-description.directive.d.ts.map +1 -1
  15. package/components/ecl-media-container/ecl-media-container-item.directive.d.ts +3 -0
  16. package/components/ecl-media-container/ecl-media-container-item.directive.d.ts.map +1 -1
  17. package/components/ecl-media-container/ecl-media-container-picture.directive.d.ts +3 -0
  18. package/components/ecl-media-container/ecl-media-container-picture.directive.d.ts.map +1 -1
  19. package/components/ecl-media-container/ecl-media-container.component.d.ts +15 -0
  20. package/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
  21. package/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts +68 -0
  22. package/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts.map +1 -1
  23. package/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +69 -5
  24. package/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  25. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts +32 -0
  26. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  27. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts +13 -0
  28. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts.map +1 -1
  29. package/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts +97 -0
  30. package/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -1
  31. package/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +74 -0
  32. package/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  33. package/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts +10 -0
  34. package/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts.map +1 -1
  35. package/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts +42 -0
  36. package/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -1
  37. package/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts +28 -0
  38. package/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts.map +1 -1
  39. package/components/ecl-multiselect/ecl-multiselect.component.d.ts +45 -0
  40. package/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  41. package/components/ecl-navigation-list/ecl-navigation-list-item.component.d.ts +9 -0
  42. package/components/ecl-navigation-list/ecl-navigation-list-item.component.d.ts.map +1 -1
  43. package/components/ecl-navigation-list/ecl-navigation-list-picture.directive.d.ts +6 -0
  44. package/components/ecl-navigation-list/ecl-navigation-list-picture.directive.d.ts.map +1 -1
  45. package/components/ecl-navigation-list/ecl-navigation-list.component.d.ts +13 -0
  46. package/components/ecl-navigation-list/ecl-navigation-list.component.d.ts.map +1 -1
  47. package/components/ecl-page-header/ecl-page-header-background.directive.d.ts +16 -0
  48. package/components/ecl-page-header/ecl-page-header-background.directive.d.ts.map +1 -1
  49. package/components/ecl-page-header/ecl-page-header-description.directive.d.ts +33 -1
  50. package/components/ecl-page-header/ecl-page-header-description.directive.d.ts.map +1 -1
  51. package/components/ecl-page-header/ecl-page-header-info.directive.d.ts +8 -0
  52. package/components/ecl-page-header/ecl-page-header-info.directive.d.ts.map +1 -1
  53. package/components/ecl-page-header/ecl-page-header-meta.directive.d.ts +16 -0
  54. package/components/ecl-page-header/ecl-page-header-meta.directive.d.ts.map +1 -1
  55. package/components/ecl-page-header/ecl-page-header-title.directive.d.ts +14 -0
  56. package/components/ecl-page-header/ecl-page-header-title.directive.d.ts.map +1 -1
  57. package/components/ecl-page-header/ecl-page-header.component.d.ts +21 -0
  58. package/components/ecl-page-header/ecl-page-header.component.d.ts.map +1 -1
  59. package/components/ecl-pagination/ecl-pagination-item.component.d.ts +63 -0
  60. package/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
  61. package/components/ecl-pagination/ecl-pagination-list.directive.d.ts +7 -0
  62. package/components/ecl-pagination/ecl-pagination-list.directive.d.ts.map +1 -1
  63. package/components/ecl-pagination/ecl-pagination.component.d.ts +65 -0
  64. package/components/ecl-pagination/ecl-pagination.component.d.ts.map +1 -1
  65. package/components/ecl-pagination/events/ecl-pagination.event.d.ts +22 -1
  66. package/components/ecl-pagination/events/ecl-pagination.event.d.ts.map +1 -1
  67. package/components/ecl-radio/ecl-radio-help.component.d.ts +13 -0
  68. package/components/ecl-radio/ecl-radio-help.component.d.ts.map +1 -1
  69. package/components/ecl-radio/ecl-radio-input.directive.d.ts +30 -1
  70. package/components/ecl-radio/ecl-radio-input.directive.d.ts.map +1 -1
  71. package/components/ecl-radio/ecl-radio-label.component.d.ts +16 -0
  72. package/components/ecl-radio/ecl-radio-label.component.d.ts.map +1 -1
  73. package/components/ecl-radio/ecl-radio.directive.d.ts +31 -0
  74. package/components/ecl-radio/ecl-radio.directive.d.ts.map +1 -1
  75. package/components/ecl-range/ecl-range-bubble.component.d.ts +22 -0
  76. package/components/ecl-range/ecl-range-bubble.component.d.ts.map +1 -1
  77. package/components/ecl-range/ecl-range-value.component.d.ts +14 -0
  78. package/components/ecl-range/ecl-range-value.component.d.ts.map +1 -1
  79. package/components/ecl-range/ecl-range.directive.d.ts +42 -0
  80. package/components/ecl-range/ecl-range.directive.d.ts.map +1 -1
  81. package/components/ecl-range/events/ecl-range.event.d.ts +7 -0
  82. package/components/ecl-range/events/ecl-range.event.d.ts.map +1 -1
  83. package/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts +16 -0
  84. package/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts.map +1 -1
  85. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.d.ts +10 -0
  86. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.d.ts.map +1 -1
  87. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.d.ts +3 -0
  88. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.d.ts.map +1 -1
  89. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.d.ts +12 -0
  90. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.d.ts.map +1 -1
  91. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts +15 -0
  92. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts.map +1 -1
  93. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts +9 -0
  94. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts.map +1 -1
  95. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts +6 -0
  96. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts.map +1 -1
  97. package/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts +16 -0
  98. package/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts.map +1 -1
  99. package/components/ecl-site-footer/ecl-site-footer.component.d.ts +14 -0
  100. package/components/ecl-site-footer/ecl-site-footer.component.d.ts.map +1 -1
  101. package/components/ecl-site-header/action/ecl-site-header-action.component.d.ts +3 -0
  102. package/components/ecl-site-header/action/ecl-site-header-action.component.d.ts.map +1 -1
  103. package/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.d.ts +3 -0
  104. package/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.d.ts.map +1 -1
  105. package/components/ecl-site-header/cta/ecl-site-header-cta.directive.d.ts +4 -0
  106. package/components/ecl-site-header/cta/ecl-site-header-cta.directive.d.ts.map +1 -1
  107. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts +17 -4
  108. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts.map +1 -1
  109. package/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts +4 -0
  110. package/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts.map +1 -1
  111. package/components/ecl-site-header/ecl-site-header.component.d.ts +32 -0
  112. package/components/ecl-site-header/ecl-site-header.component.d.ts.map +1 -1
  113. package/components/ecl-site-header/language/ecl-site-header-language-popover.component.d.ts +50 -0
  114. package/components/ecl-site-header/language/ecl-site-header-language-popover.component.d.ts.map +1 -1
  115. package/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +54 -0
  116. package/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
  117. package/components/ecl-site-header/login/ecl-site-header-login-details.directive.d.ts +7 -0
  118. package/components/ecl-site-header/login/ecl-site-header-login-details.directive.d.ts.map +1 -1
  119. package/components/ecl-site-header/login/ecl-site-header-login.component.d.ts +19 -0
  120. package/components/ecl-site-header/login/ecl-site-header-login.component.d.ts.map +1 -1
  121. package/components/ecl-site-header/notification/ecl-site-header-notification.component.d.ts +4 -0
  122. package/components/ecl-site-header/notification/ecl-site-header-notification.component.d.ts.map +1 -1
  123. package/components/ecl-site-header/picture/ecl-site-header-picture.directive.d.ts +9 -0
  124. package/components/ecl-site-header/picture/ecl-site-header-picture.directive.d.ts.map +1 -1
  125. package/components/ecl-site-header/search/ecl-site-header-search.component.d.ts +17 -0
  126. package/components/ecl-site-header/search/ecl-site-header-search.component.d.ts.map +1 -1
  127. package/components/ecl-site-header/services/ecl-area-data.service.d.ts +8 -0
  128. package/components/ecl-site-header/services/ecl-area-data.service.d.ts.map +1 -1
  129. package/components/ecl-tabs/ecl-tab-label.component.d.ts +7 -0
  130. package/components/ecl-tabs/ecl-tab-label.component.d.ts.map +1 -1
  131. package/components/ecl-tabs/ecl-tab-more.component.d.ts +11 -1
  132. package/components/ecl-tabs/ecl-tab-more.component.d.ts.map +1 -1
  133. package/components/ecl-tabs/ecl-tab.component.d.ts +65 -0
  134. package/components/ecl-tabs/ecl-tab.component.d.ts.map +1 -1
  135. package/components/ecl-tabs/ecl-tabs.component.d.ts +116 -0
  136. package/components/ecl-tabs/ecl-tabs.component.d.ts.map +1 -1
  137. package/components/ecl-tabs/events/ecl-tab-select.event.d.ts +8 -0
  138. package/components/ecl-tabs/events/ecl-tab-select.event.d.ts.map +1 -1
  139. package/docs/classes/EclAppLanguageDismissEvent.html +7 -0
  140. package/docs/classes/EclBreadcrumbSegmentClickEvent.html +7 -0
  141. package/docs/classes/EclPaginationEvent.html +22 -0
  142. package/docs/classes/EclPaginationItemClickEvent.html +7 -0
  143. package/docs/classes/EclRangeEvent.html +10 -0
  144. package/docs/classes/EclTabSelectEvent.html +10 -0
  145. package/docs/components/EclAccordionComponent.html +1 -1
  146. package/docs/components/EclAccordionItemComponent.html +1 -1
  147. package/docs/components/EclAppComponent.html +15 -1
  148. package/docs/components/EclBannerComponent.html +1 -1
  149. package/docs/components/EclBlockquoteComponent.html +1 -1
  150. package/docs/components/EclBreadcrumbComponent.html +112 -1
  151. package/docs/components/EclBreadcrumbSegmentComponent.html +99 -1
  152. package/docs/components/EclButtonComponent.html +1 -1
  153. package/docs/components/EclCardBodyComponent.html +1 -1
  154. package/docs/components/EclCardComponent.html +1 -1
  155. package/docs/components/EclCarouselComponent.html +1 -1
  156. package/docs/components/EclCarouselItemComponent.html +1 -1
  157. package/docs/components/EclCategoryFilterComponent.html +1 -1
  158. package/docs/components/EclCategoryFilterItemComponent.html +1 -1
  159. package/docs/components/EclCategoryFilterListComponent.html +1 -1
  160. package/docs/components/EclCheckboxHelpComponent.html +1 -1
  161. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  162. package/docs/components/EclContentBlockComponent.html +1 -1
  163. package/docs/components/EclContentItemComponent.html +1 -1
  164. package/docs/components/EclDateBlockComponent.html +1 -1
  165. package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
  166. package/docs/components/EclExpandableComponent.html +1 -1
  167. package/docs/components/EclFactFiguresComponent.html +1 -1
  168. package/docs/components/EclFactFiguresDescriptionComponent.html +1 -1
  169. package/docs/components/EclFactFiguresItemComponent.html +1 -1
  170. package/docs/components/EclFactFiguresTitleComponent.html +1 -1
  171. package/docs/components/EclFactFiguresValueComponent.html +1 -1
  172. package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
  173. package/docs/components/EclFeaturedComponent.html +1 -1
  174. package/docs/components/EclFeaturedItemComponent.html +1 -1
  175. package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
  176. package/docs/components/EclFeaturedItemFooterComponent.html +1 -1
  177. package/docs/components/EclFileComponent.html +1 -1
  178. package/docs/components/EclFileItemComponent.html +1 -1
  179. package/docs/components/EclFileItemsComponent.html +1 -1
  180. package/docs/components/EclFileTaxonomyComponent.html +1 -1
  181. package/docs/components/EclFormGroupComponent.html +1 -1
  182. package/docs/components/EclFormLabelComponent.html +1 -1
  183. package/docs/components/EclGalleryComponent.html +1 -1
  184. package/docs/components/EclGalleryFooterComponent.html +1 -1
  185. package/docs/components/EclGalleryItemComponent.html +1 -1
  186. package/docs/components/EclIconComponent.html +1 -1
  187. package/docs/components/EclInpageNavigationComponent.html +1 -1
  188. package/docs/components/EclInpageNavigationItemComponent.html +1 -1
  189. package/docs/components/EclListIllustrationComponent.html +1 -1
  190. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  191. package/docs/components/EclLoadingIndicatorComponent.html +1 -1
  192. package/docs/components/EclMediaContainerComponent.html +35 -1
  193. package/docs/components/EclMegaMenuComponent.html +1 -1
  194. package/docs/components/EclMegaMenuFeaturedComponent.html +1 -1
  195. package/docs/components/EclMegaMenuInfoComponent.html +1 -1
  196. package/docs/components/EclMegaMenuItemComponent.html +1 -1
  197. package/docs/components/EclMegaMenuSubitemComponent.html +1 -1
  198. package/docs/components/EclMenuComponent.html +121 -49
  199. package/docs/components/EclMenuItemComponent.html +95 -1
  200. package/docs/components/EclMenuMegaComponent.html +27 -1
  201. package/docs/components/EclMenuMegaItemComponent.html +63 -1
  202. package/docs/components/EclModalBodyComponent.html +1 -1
  203. package/docs/components/EclModalComponent.html +1 -1
  204. package/docs/components/EclModalFooterComponent.html +1 -1
  205. package/docs/components/EclModalHeaderComponent.html +1 -1
  206. package/docs/components/EclMultiselectComponent.html +118 -1
  207. package/docs/components/EclMultiselectDropdownComponent.html +205 -1
  208. package/docs/components/EclMultiselectInputComponent.html +172 -1
  209. package/docs/components/EclMultiselectOptgroupComponent.html +32 -1
  210. package/docs/components/EclMultiselectOptionComponent.html +83 -1
  211. package/docs/components/EclNavigationListComponent.html +27 -1
  212. package/docs/components/EclNavigationListItemComponent.html +26 -1
  213. package/docs/components/EclNewsTickerComponent.html +1 -1
  214. package/docs/components/EclNewsTickerItemComponent.html +1 -1
  215. package/docs/components/EclNotificationComponent.html +1 -1
  216. package/docs/components/EclPageHeaderComponent.html +52 -1
  217. package/docs/components/EclPaginationComponent.html +110 -1
  218. package/docs/components/EclPaginationItemComponent.html +112 -1
  219. package/docs/components/EclPopoverComponent.html +1 -1
  220. package/docs/components/EclRadioHelpComponent.html +35 -1
  221. package/docs/components/EclRadioLabelComponent.html +41 -1
  222. package/docs/components/EclRangeBubbleComponent.html +57 -1
  223. package/docs/components/EclRangeValueComponent.html +40 -1
  224. package/docs/components/EclRatingFieldComponent.html +1 -1
  225. package/docs/components/EclSearchFormComponent.html +1 -1
  226. package/docs/components/EclSelectContainerComponent.html +1 -1
  227. package/docs/components/EclSiteFooterComponent.html +34 -1
  228. package/docs/components/EclSiteFooterFixedContentECComponent.html +33 -1
  229. package/docs/components/EclSiteFooterFixedContentEUComponent.html +33 -1
  230. package/docs/components/EclSiteHeaderActionComponent.html +8 -1
  231. package/docs/components/EclSiteHeaderBannerTopComponent.html +8 -1
  232. package/docs/components/EclSiteHeaderComponent.html +59 -2
  233. package/docs/components/EclSiteHeaderCustomActionComponent.html +35 -55
  234. package/docs/components/EclSiteHeaderEnvironmentComponent.html +9 -1
  235. package/docs/components/EclSiteHeaderLanguageComponent.html +95 -1
  236. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +105 -1
  237. package/docs/components/EclSiteHeaderLoginComponent.html +34 -1
  238. package/docs/components/EclSiteHeaderNotificationComponent.html +9 -1
  239. package/docs/components/EclSiteHeaderSearchComponent.html +37 -1
  240. package/docs/components/EclSocialMediaFollowComponent.html +1 -1
  241. package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
  242. package/docs/components/EclSocialMediaShareComponent.html +1 -1
  243. package/docs/components/EclSocialMediaShareItemComponent.html +1 -1
  244. package/docs/components/EclSplashPageComponent.html +1 -1
  245. package/docs/components/EclSplashPageLanguageCategoryComponent.html +1 -1
  246. package/docs/components/EclSplashPageLanguageContainerComponent.html +1 -1
  247. package/docs/components/EclSplashPageLanguageLinkComponent.html +1 -1
  248. package/docs/components/EclStickyContainerComponent.html +1 -1
  249. package/docs/components/EclTabComponent.html +123 -1
  250. package/docs/components/EclTabLabelComponent.html +11 -1
  251. package/docs/components/EclTabMoreComponent.html +36 -2
  252. package/docs/components/EclTableSortButtonComponent.html +1 -1
  253. package/docs/components/EclTabsComponent.html +200 -1
  254. package/docs/components/EclTagComponent.html +1 -1
  255. package/docs/components/EclTimelineComponent.html +1 -1
  256. package/docs/components/EclTimelineItemComponent.html +1 -1
  257. package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
  258. package/docs/dependencies.html +2 -2
  259. package/docs/directives/EclBreadcrumbContainerDirective.html +19 -0
  260. package/docs/directives/EclMediaContainerIframeDirective.html +7 -0
  261. package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +7 -0
  262. package/docs/directives/EclMediaContainerItemDirective.html +7 -0
  263. package/docs/directives/EclMediaContainerPictureDirective.html +7 -0
  264. package/docs/directives/EclMultiselectOptionDirective.html +85 -0
  265. package/docs/directives/EclNavigationListImageDirective.html +7 -0
  266. package/docs/directives/EclNavigationListPictureDirective.html +7 -0
  267. package/docs/directives/EclPageHeaderBackgroundImageDirective.html +19 -0
  268. package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +19 -0
  269. package/docs/directives/EclPageHeaderDescriptionContainerDirective.html +19 -0
  270. package/docs/directives/EclPageHeaderDescriptionDirective.html +19 -0
  271. package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +19 -0
  272. package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +20 -1
  273. package/docs/directives/EclPageHeaderInfoDirective.html +19 -0
  274. package/docs/directives/EclPageHeaderMetaDirective.html +19 -0
  275. package/docs/directives/EclPageHeaderMetaItemDirective.html +19 -0
  276. package/docs/directives/EclPageHeaderTitleDirective.html +34 -0
  277. package/docs/directives/EclPaginationListDirective.html +20 -0
  278. package/docs/directives/EclRadioDirective.html +60 -0
  279. package/docs/directives/EclRadioInputDirective.html +36 -0
  280. package/docs/directives/EclRangeDirective.html +92 -0
  281. package/docs/directives/EclSiteFooterColumnDirective.html +7 -0
  282. package/docs/directives/EclSiteFooterContentDirective.html +21 -6
  283. package/docs/directives/EclSiteFooterDescriptionDirective.html +7 -0
  284. package/docs/directives/EclSiteFooterLinkDirective.html +7 -0
  285. package/docs/directives/EclSiteFooterListDirective.html +7 -0
  286. package/docs/directives/EclSiteFooterListItemDirective.html +7 -0
  287. package/docs/directives/EclSiteFooterLogoDirective.html +9 -1
  288. package/docs/directives/EclSiteFooterLogoImageDirective.html +7 -0
  289. package/docs/directives/EclSiteFooterLogoItemDirective.html +9 -1
  290. package/docs/directives/EclSiteFooterLogoLinkDirective.html +7 -0
  291. package/docs/directives/EclSiteFooterLogoListDirective.html +9 -1
  292. package/docs/directives/EclSiteFooterPictureDirective.html +7 -0
  293. package/docs/directives/EclSiteFooterRowDirective.html +7 -0
  294. package/docs/directives/EclSiteFooterSectionDirective.html +14 -1
  295. package/docs/directives/EclSiteFooterTitleDirective.html +7 -0
  296. package/docs/directives/EclSiteFooterTitleLinkDirective.html +7 -0
  297. package/docs/directives/EclSiteHeaderCtaDirective.html +8 -0
  298. package/docs/directives/EclSiteHeaderImageDirective.html +7 -0
  299. package/docs/directives/EclSiteHeaderLinkDirective.html +7 -0
  300. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +7 -0
  301. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +8 -0
  302. package/docs/directives/EclSiteHeaderPictureDirective.html +7 -0
  303. package/docs/injectables/EclAreaDataService.html +10 -0
  304. package/docs/js/menu-wc.js +4 -4
  305. package/docs/js/menu-wc_es5.js +1 -1
  306. package/docs/js/search/search_index.js +2 -2
  307. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  308. package/fesm2022/eui-ecl-components-ecl-app.mjs +11 -0
  309. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  310. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  312. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +82 -2
  313. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  314. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  316. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  318. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  320. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  322. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  324. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  325. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  326. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  327. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  328. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  329. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  330. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  331. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  332. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  333. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  334. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  335. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  336. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  337. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  338. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  339. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  340. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +29 -0
  341. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  342. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  343. package/fesm2022/eui-ecl-components-ecl-menu.mjs +152 -18
  344. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  345. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  346. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +270 -1
  347. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  348. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +27 -0
  349. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  350. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  351. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  352. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +107 -3
  353. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  354. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +127 -1
  355. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  356. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  357. package/fesm2022/eui-ecl-components-ecl-radio.mjs +71 -1
  358. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  359. package/fesm2022/eui-ecl-components-ecl-range.mjs +68 -1
  360. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  361. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  362. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  363. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  364. package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
  365. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +85 -2
  366. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  367. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +182 -10
  368. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  369. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  370. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +1 -1
  371. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  372. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  373. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  374. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +177 -1
  375. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  376. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  377. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  378. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  379. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  380. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  381. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  382. package/package.json +2 -2
@@ -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/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} from '@angular/core';\nimport { Params, QueryParamsHandling } from '@angular/router';\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@Component({\n selector: 'ecl-menu-mega-item',\n templateUrl: './ecl-menu-mega-item.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\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 @HostBinding('attr.role') role = 'listitem';\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__subitem--current') isCurrent = false;\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__see-all') isSeeAll = false;\n @Input() linkExtraAttributes: { [key: string]: string };\n\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n @ContentChildren(forwardRef(() => EclLinkDirective)) links: QueryList<EclLinkDirective>;\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\n constructor(private renderer: Renderer2) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.manageContentChildren();\n this.setExtraAttributesForLink(this.megaMenuLink?.nativeElement, this.linkExtraAttributes);\n }\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 get ariaCurrent(): string | null {\n return this.isCurrent ? 'page' : null;\n }\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 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 {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n Output,\n EventEmitter,\n IterableDiffer,\n IterableChanges,\n IterableDiffers,\n HostBinding,\n ElementRef,\n} 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@Component({\n selector: 'ecl-menu-mega',\n templateUrl: './ecl-menu-mega.component.html',\n standalone: false,\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @HostBinding('class.ecl-menu__mega--rtl') isRtlDisplay: boolean | any = false;\n\n @ContentChildren(EclMenuMegaItemComponent) eclMenuMegaItems: QueryList<EclMenuMegaItemComponent>;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuMegaItemParentFocus = new EventEmitter<EclMenuItemSelectEvent>();\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\n constructor(\n private differs: IterableDiffers,\n public el: ElementRef,\n ) {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngAfterContentInit(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\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} from '@angular/core';\nimport { Params, QueryParamsHandling } 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 } 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';\n\nconst enum ColTrigger {\n COL1_TRIGGER = 5,\n COL2_TRIGGER = 9,\n COL3_TRIGGER = 13,\n}\n\n@Component({\n selector: 'ecl-menu-item',\n templateUrl: './ecl-menu-item.component.html',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\n @Input() id: string;\n @Input() label: string;\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 @Input() linkExtraAttributes: { [key: string]: string };\n\n isExpanded: boolean;\n isFull = false;\n isHovered = false;\n isMobileBreakpoint = false;\n isVisible = true;\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 @ViewChild('menuLink') menuLink: ElementRef<HTMLAnchorElement>;\n @ViewChild(EclButtonComponent) menuButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemCaret = new EventEmitter<EclMenuItemCaretEvent>();\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 @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\n constructor(\n public el: ElementRef,\n private renderer: Renderer2,\n private cdkBreakpointObserver: BreakpointObserver,\n ) {\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 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 onItemCaretClick(evt: MouseEvent): void {\n this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));\n }\n\n onFocusFromSubmenu(): void {\n this.onButtonFocus();\n this.isHovered = false;\n this.isExpanded = false;\n }\n\n onFocusFromNext(): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.onLinkFocus();\n }\n }\n\n onFocusFromPrev(): void {\n this.onLinkFocus();\n }\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 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 evt.preventDefault();\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 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 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=\"ghost\"\n class=\"ecl-menu__button-caret\"\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=\"ghost\"\n class=\"ecl-menu__button-caret\"\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 {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n numberAttribute,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } 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 { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\n\n@Component({\n selector: 'ecl-menu',\n templateUrl: './ecl-menu.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclMenuComponent extends ECLBaseDirective implements OnInit, AfterContentInit, OnDestroy {\n\n @Input({ transform: numberAttribute }) maxLines = 0;\n\n @ContentChildren(EclMenuItemComponent) eclRootMenuItems: QueryList<EclMenuItemComponent>;\n @ViewChild('innerSection') innerSection: ElementRef;\n @ViewChild('itemsList') itemsList: ElementRef;\n @ViewChild('btnPrevious') btnPrevious: EclButtonComponent;\n @ViewChild('btnNext') btnNext: EclButtonComponent;\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 @HostBinding('attr.aria-expanded') isHamburgerMenuOpened = false;\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 isPrevBtnCurrentClass = false;\n menuListStyleRight = 'auto';\n menuListStyleLeft = 'auto';\n overlayStyleTop: number | null = null;\n innerStyleTop: number | null = null;\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 parentHeaderBottomSpaceY: number;\n private TIMEOUT_INTERVAL = 150;\n\n constructor(\n private el: ElementRef,\n private differs: IterableDiffers,\n private cdkBreakpointObserver: BreakpointObserver,\n private renderer: Renderer2,\n private eclRtlService: EclRtlService,\n private eclUserDeviceService: EclUserDeviceService,\n private eclHeaderMenuComunicationService: EclHeaderMenuComunicationService,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n eclHeaderMenuComunicationService.bottomSpaceY$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.parentHeaderBottomSpaceY = value;\n });\n clearTimeout(this.resizeTimer);\n this.observeElementSizeChanges();\n this.resizeTimer = setTimeout(() => {\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n }, this.TIMEOUT_INTERVAL);\n this.checkIsTabletDevice();\n });\n }\n\n @HostListener('keydown', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closeRootMenu();\n this.hideMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeBreakpointChanges();\n this.observeSwipeGestures();\n }\n }\n\n ngAfterContentInit(): void {\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 onSwipeLeft(): void {\n if (this.isMobileBreakpoint) {\n this.onOpenHamburgerMenu();\n }\n }\n\n onSwipeRight(): void {\n if (this.isMobileBreakpoint) {\n this.onCloseHamburgerMenu();\n }\n }\n\n onOverlayClick(): void {\n this.onCloseHamburgerMenu();\n }\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 onMenuCloseClick(evt: MouseEvent): void {\n this.onCloseHamburgerMenu();\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n onMenuBackClick(evt: MouseEvent): void {\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n onPrevBtnClick(): void {\n this.slideMenuInitialState();\n this.refreshDisplay();\n }\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 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 checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\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 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 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 observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([('(max-width: 996px)')])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n if (!this.isMobileBreakpoint) {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n });\n }\n}\n","<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <button #openCloseButton eclButton isIconOnly variant=\"tertiary\" 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=\"ghost\"\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=\"ghost\" 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=\"ghost\"\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=\"ghost\"\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 { CommonModule } from '@angular/common';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMenuComponent } from './ecl-menu';\nimport { EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent } from './ecl-menu-mega';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nconst COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];\n\n@NgModule({\n imports: [\n EclButtonModule,\n EclIconModule,\n EclLinkModule,\n CommonModule,\n RouterModule,\n LayoutModule,\n TranslateModule,\n ],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4","i5","i6"],"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/ecl-menu.module.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} from '@angular/core';\nimport { Params, QueryParamsHandling } from '@angular/router';\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 standalone: false,\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\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\n constructor(private renderer: Renderer2) {\n super();\n }\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 {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n Output,\n EventEmitter,\n IterableDiffer,\n IterableChanges,\n IterableDiffers,\n HostBinding,\n ElementRef,\n} 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 standalone: false,\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\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\n constructor(\n private differs: IterableDiffers,\n public el: ElementRef,\n ) {\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} from '@angular/core';\nimport { Params, QueryParamsHandling } 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 } 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';\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 standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\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\n constructor(\n public el: ElementRef,\n private renderer: Renderer2,\n private cdkBreakpointObserver: BreakpointObserver,\n ) {\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 evt.preventDefault();\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=\"ghost\"\n class=\"ecl-menu__button-caret\"\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=\"ghost\"\n class=\"ecl-menu__button-caret\"\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 {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n numberAttribute,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } 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';\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 standalone: false,\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 @HostBinding('attr.aria-expanded') isHamburgerMenuOpened = false;\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 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\n constructor(\n private el: ElementRef,\n private differs: IterableDiffers,\n private cdkBreakpointObserver: BreakpointObserver,\n private renderer: Renderer2,\n private eclRtlService: EclRtlService,\n private eclUserDeviceService: EclUserDeviceService,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\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.checkIsTabletDevice();\n });\n }\n\n /**\n * On 'esc' key clicked - close/hide any open menus.\n * @param event\n */\n @HostListener('keydown', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closeRootMenu();\n this.hideMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeBreakpointChanges();\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 checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\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 observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([('(max-width: 996px)')])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\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\" 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=\"ghost\"\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=\"ghost\" 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=\"ghost\"\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=\"ghost\"\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 { CommonModule } from '@angular/common';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMenuComponent } from './ecl-menu';\nimport { EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent } from './ecl-menu-mega';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nconst COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];\n\n@NgModule({\n imports: [\n EclButtonModule,\n EclIconModule,\n EclLinkModule,\n CommonModule,\n RouterModule,\n LayoutModule,\n TranslateModule,\n ],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i5","i6","i4"],"mappings":"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"}