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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/docs/changelog.html +863 -0
  2. package/docs/components/EclAccordionComponent.html +9 -3
  3. package/docs/components/EclAccordionItemComponent.html +9 -3
  4. package/docs/components/EclAppComponent.html +3 -3
  5. package/docs/components/EclBannerComponent.html +17 -5
  6. package/docs/components/EclBlockquoteComponent.html +3 -3
  7. package/docs/components/EclBreadcrumbComponent.html +12 -46
  8. package/docs/components/EclBreadcrumbSegmentComponent.html +10 -4
  9. package/docs/components/EclButtonComponent.html +9 -3
  10. package/docs/components/EclCardBodyComponent.html +3 -3
  11. package/docs/components/EclCardComponent.html +3 -3
  12. package/docs/components/EclCarouselComponent.html +31 -5
  13. package/docs/components/EclCarouselItemComponent.html +9 -3
  14. package/docs/components/EclCategoryFilterComponent.html +9 -3
  15. package/docs/components/EclCategoryFilterItemComponent.html +21 -5
  16. package/docs/components/EclCategoryFilterListComponent.html +9 -5
  17. package/docs/components/EclCheckboxHelpComponent.html +3 -3
  18. package/docs/components/EclCheckboxLabelComponent.html +3 -3
  19. package/docs/components/EclContentBlockComponent.html +3 -3
  20. package/docs/components/EclContentItemComponent.html +3 -3
  21. package/docs/components/EclDateBlockComponent.html +8 -6
  22. package/docs/components/EclDescriptionListDefinitionComponent.html +3 -5
  23. package/docs/components/EclExpandableComponent.html +3 -3
  24. package/docs/components/EclFactFiguresComponent.html +3 -3
  25. package/docs/components/EclFactFiguresItemComponent.html +3 -3
  26. package/docs/components/EclFactFiguresViewAllComponent.html +3 -3
  27. package/docs/components/EclFeaturedComponent.html +9 -3
  28. package/docs/components/EclFeaturedItemComponent.html +9 -3
  29. package/docs/components/EclFeaturedItemDescriptionComponent.html +9 -3
  30. package/docs/components/EclFileComponent.html +9 -3
  31. package/docs/components/EclFileItemComponent.html +3 -3
  32. package/docs/components/EclFileItemsComponent.html +3 -3
  33. package/docs/components/EclFileTaxonomyComponent.html +3 -3
  34. package/docs/components/EclFormGroupComponent.html +3 -3
  35. package/docs/components/EclFormLabelComponent.html +10 -4
  36. package/docs/components/EclGalleryComponent.html +15 -3
  37. package/docs/components/EclGalleryFooterComponent.html +9 -9
  38. package/docs/components/EclGalleryItemComponent.html +4 -75
  39. package/docs/components/EclIconComponent.html +15 -3
  40. package/docs/components/EclInpageNavigationComponent.html +19 -42
  41. package/docs/components/EclInpageNavigationItemComponent.html +10 -4
  42. package/docs/components/EclListIllustrationComponent.html +3 -3
  43. package/docs/components/EclListIllustrationItemComponent.html +21 -3
  44. package/docs/components/EclLoadingIndicatorComponent.html +3 -3
  45. package/docs/components/EclMediaContainerComponent.html +9 -3
  46. package/docs/components/EclMegaMenuComponent.html +56 -4
  47. package/docs/components/EclMegaMenuFeaturedComponent.html +9 -3
  48. package/docs/components/EclMegaMenuInfoComponent.html +9 -3
  49. package/docs/components/EclMegaMenuItemComponent.html +39 -3
  50. package/docs/components/EclMegaMenuSubitemComponent.html +18 -24
  51. package/docs/components/EclMenuComponent.html +51 -3
  52. package/docs/components/EclMenuItemComponent.html +33 -3
  53. package/docs/components/EclMenuMegaComponent.html +9 -3
  54. package/docs/components/EclMenuMegaItemComponent.html +21 -3
  55. package/docs/components/EclModalBodyComponent.html +4 -40
  56. package/docs/components/EclModalComponent.html +9 -5
  57. package/docs/components/EclModalFooterComponent.html +3 -3
  58. package/docs/components/EclModalHeaderComponent.html +9 -3
  59. package/docs/components/EclMultiselectComponent.html +9 -13
  60. package/docs/components/EclMultiselectDropdownComponent.html +27 -7
  61. package/docs/components/EclMultiselectInputComponent.html +3 -3
  62. package/docs/components/EclMultiselectOptgroupComponent.html +3 -3
  63. package/docs/components/EclMultiselectOptionComponent.html +10 -8
  64. package/docs/components/EclNavigationListComponent.html +3 -3
  65. package/docs/components/EclNavigationListItemComponent.html +9 -3
  66. package/docs/components/EclNewsTickerComponent.html +15 -5
  67. package/docs/components/EclNewsTickerItemComponent.html +9 -5
  68. package/docs/components/EclNotificationComponent.html +70 -4
  69. package/docs/components/EclPageHeaderComponent.html +3 -3
  70. package/docs/components/EclPageHeaderExpandableComponent.html +15 -4
  71. package/docs/components/EclPaginationComponent.html +15 -3
  72. package/docs/components/EclPaginationItemComponent.html +10 -4
  73. package/docs/components/EclPopoverComponent.html +9 -38
  74. package/docs/components/EclRadioHelpComponent.html +3 -3
  75. package/docs/components/EclRadioLabelComponent.html +3 -3
  76. package/docs/components/EclRangeBubbleComponent.html +15 -3
  77. package/docs/components/EclRangeValueComponent.html +3 -3
  78. package/docs/components/EclRatingFieldComponent.html +3 -3
  79. package/docs/components/EclSearchFormComponent.html +8 -8
  80. package/docs/components/EclSelectContainerComponent.html +3 -3
  81. package/docs/components/EclSiteFooterComponent.html +23 -4
  82. package/docs/components/{EclTabMoreComponent.html → EclSiteFooterCoownerComponent.html} +16 -50
  83. package/docs/components/EclSiteFooterCoreComponent.html +3 -3
  84. package/docs/components/EclSiteFooterFixedContentEUComponent.html +4 -4
  85. package/docs/components/EclSiteFooterRowCommonComponent.html +3 -3
  86. package/docs/components/EclSiteHeaderActionComponent.html +3 -3
  87. package/docs/components/EclSiteHeaderBannerTopComponent.html +9 -3
  88. package/docs/components/EclSiteHeaderComponent.html +9 -22
  89. package/docs/components/EclSiteHeaderCustomActionComponent.html +9 -3
  90. package/docs/components/EclSiteHeaderEnvironmentComponent.html +3 -3
  91. package/docs/components/EclSiteHeaderLanguageComponent.html +9 -3
  92. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +10 -4
  93. package/docs/components/EclSiteHeaderLoginComponent.html +9 -3
  94. package/docs/components/EclSiteHeaderNotificationComponent.html +3 -3
  95. package/docs/components/EclSiteHeaderSearchComponent.html +13 -7
  96. package/docs/components/EclSocialMediaFollowComponent.html +3 -3
  97. package/docs/components/EclSocialMediaFollowItemComponent.html +34 -5
  98. package/docs/components/EclSplashPageComponent.html +3 -3
  99. package/docs/components/EclSplashPageLanguageCategoryComponent.html +3 -3
  100. package/docs/components/EclSplashPageLanguageContainerComponent.html +3 -3
  101. package/docs/components/EclSplashPageLanguageLinkComponent.html +3 -3
  102. package/docs/components/EclSpotlightComponent.html +9 -3
  103. package/docs/components/EclSpotlightLinkComponent.html +21 -3
  104. package/docs/components/EclStickyContainerComponent.html +3 -3
  105. package/docs/components/EclTabComponent.html +10 -6
  106. package/docs/components/EclTabLabelComponent.html +9 -3
  107. package/docs/components/EclTableSortButtonComponent.html +9 -3
  108. package/docs/components/EclTabsComponent.html +46 -74
  109. package/docs/components/EclTagComponent.html +15 -3
  110. package/docs/components/EclTimelineComponent.html +3 -3
  111. package/docs/components/EclTimelineItemComponent.html +3 -3
  112. package/docs/components/EclTimelineItemTogglerComponent.html +3 -3
  113. package/docs/directives/ECLClickOutsideDirective.html +5 -1
  114. package/docs/directives/ECLFormLabelOptionalDirective.html +6 -0
  115. package/docs/directives/EclBannerDescriptionLinkDirective.html +6 -0
  116. package/docs/directives/EclBannerImageDirective.html +12 -0
  117. package/docs/directives/EclBannerTitleLinkDirective.html +6 -0
  118. package/docs/directives/EclBannerVideoDirective.html +6 -0
  119. package/docs/directives/EclBreadcrumbContainerDirective.html +6 -23
  120. package/docs/directives/EclButtonIconContainerDirective.html +6 -0
  121. package/docs/directives/EclCardImageDirective.html +6 -0
  122. package/docs/directives/EclCheckboxInputDirective.html +6 -0
  123. package/docs/directives/EclContentItemImageDirective.html +6 -0
  124. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +12 -0
  125. package/docs/directives/EclDescriptionListDefinitionListDirective.html +6 -0
  126. package/docs/directives/EclDescriptionListTermDirective.html +6 -0
  127. package/docs/directives/EclDividerDirective.html +6 -0
  128. package/docs/directives/EclFeaturedItemLinkDirective.html +6 -2
  129. package/docs/directives/EclFeedbackHiddenDirective.html +385 -0
  130. package/docs/directives/EclFileDownloadDirective.html +6 -0
  131. package/docs/directives/EclFileImageDirective.html +6 -0
  132. package/docs/directives/EclFilePreviewDirective.html +12 -0
  133. package/docs/directives/EclFileTitleDirective.html +6 -0
  134. package/docs/directives/EclFileTranslationDownloadDirective.html +6 -0
  135. package/docs/directives/EclGalleryMediaDirective.html +6 -0
  136. package/docs/directives/EclGalleryPictureDirective.html +6 -0
  137. package/docs/{modules/EclFormLabelModule.html → directives/EclHelpHiddenDirective.html} +169 -57
  138. package/docs/directives/EclIndicatorDirective.html +6 -0
  139. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  140. package/docs/directives/EclLinkDirective.html +150 -8
  141. package/docs/directives/EclLinkIconContainerDirective.html +6 -0
  142. package/docs/directives/EclLinkIndicatorDirective.html +6 -0
  143. package/docs/directives/EclListIllustrationIconDirective.html +6 -0
  144. package/docs/directives/EclListIllustrationImageDirective.html +6 -0
  145. package/docs/directives/EclLoadingIndicatorLabelDirective.html +6 -0
  146. package/docs/directives/EclMediaContainerIframeDirective.html +6 -0
  147. package/docs/directives/EclMediaContainerItemDirective.html +12 -0
  148. package/docs/directives/EclMegaMenuContainerDirective.html +6 -0
  149. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +6 -0
  150. package/docs/directives/EclMegaMenuFeaturedListDirective.html +6 -0
  151. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +6 -0
  152. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +6 -0
  153. package/docs/directives/EclMegaMenuListDirective.html +6 -0
  154. package/docs/directives/EclMegaMenuSpacerDirective.html +6 -0
  155. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  156. package/docs/directives/EclModalBodyFixedContentDirective.html +6 -0
  157. package/docs/directives/EclMultiselectOptionDirective.html +11 -5
  158. package/docs/directives/EclNewsTickerIconDirective.html +6 -0
  159. package/docs/{modules/EclNotificationModule.html → directives/EclNotificationIconDirective.html} +169 -57
  160. package/docs/directives/{EclSiteFooterLogoListDirective.html → EclNotificationLinkDirective.html} +57 -161
  161. package/docs/directives/EclOrderedListDirective.html +6 -0
  162. package/docs/directives/EclOrderedListItemDirective.html +6 -0
  163. package/docs/directives/EclPaginationListDirective.html +6 -0
  164. package/docs/directives/EclPopoverToggleDirective.html +12 -0
  165. package/docs/directives/EclRadioInputDirective.html +6 -0
  166. package/docs/directives/EclSiteFooterColumnDirective.html +6 -0
  167. package/docs/directives/{EclSiteFooterLogoDirective.html → EclSiteFooterCoownerItemDirective.html} +63 -31
  168. package/docs/directives/{EclSiteFooterLogoItemDirective.html → EclSiteFooterCoownerListDirective.html} +50 -166
  169. package/docs/directives/EclSiteFooterDescriptionDirective.html +6 -0
  170. package/docs/directives/EclSiteFooterDescriptionNameDirective.html +6 -0
  171. package/docs/directives/EclSiteFooterLinkDirective.html +6 -0
  172. package/docs/directives/EclSiteFooterListDirective.html +6 -19
  173. package/docs/directives/EclSiteFooterListItemDirective.html +6 -0
  174. package/docs/directives/EclSiteFooterLogoImageDirective.html +6 -0
  175. package/docs/directives/EclSiteFooterLogoLinkDirective.html +6 -0
  176. package/docs/directives/EclSiteFooterRowDirective.html +6 -0
  177. package/docs/directives/EclSiteFooterSectionDirective.html +0 -96
  178. package/docs/directives/EclSiteFooterSocialMediaDirective.html +6 -0
  179. package/docs/directives/EclSiteFooterTitleDirective.html +6 -0
  180. package/docs/directives/EclSiteFooterTitleLinkDirective.html +6 -0
  181. package/docs/directives/EclSiteHeaderCtaDirective.html +6 -0
  182. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +6 -0
  183. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +6 -0
  184. package/docs/directives/EclSpotlightImageDirective.html +6 -0
  185. package/docs/directives/EclTableCaptionDirective.html +6 -0
  186. package/docs/directives/EclTagSetItemDirective.html +6 -0
  187. package/docs/directives/EclTimelineSetDirective.html +6 -0
  188. package/docs/directives/EclUnorderedListDirective.html +6 -0
  189. package/docs/directives/EclUnorderedListItemDirective.html +6 -0
  190. package/docs/injectables/EclRtlService.html +6 -0
  191. package/docs/js/libs/bootstrap-native.js +1 -1
  192. package/docs/js/libs/vis-network.min.js +78 -0
  193. package/docs/js/menu-wc.js +53 -2401
  194. package/docs/js/menu-wc_es5.js +1 -1
  195. package/docs/js/search/search_index.js +2 -2
  196. package/docs/miscellaneous/functions.html +5 -1
  197. package/docs/miscellaneous/variables.html +534 -1395
  198. package/docs/modules.html +2 -722
  199. package/docs/overview.html +2 -2
  200. package/docs/properties.html +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +8 -27
  202. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -23
  204. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-banner.mjs +36 -85
  206. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -30
  208. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +15 -42
  210. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-button.mjs +14 -34
  212. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-components-ecl-card.mjs +14 -45
  214. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  215. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +8 -27
  216. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  217. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +11 -30
  218. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  219. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +15 -34
  220. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  221. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +56 -128
  222. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  223. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +11 -30
  224. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  225. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +5 -23
  226. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  227. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +5 -23
  228. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  229. package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -24
  230. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  231. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +5 -23
  232. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  233. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +14 -48
  234. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  235. package/fesm2022/eui-ecl-components-ecl-featured.mjs +14 -47
  236. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  237. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +5 -23
  238. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  239. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +5 -23
  240. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  241. package/fesm2022/eui-ecl-components-ecl-file.mjs +32 -81
  242. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  243. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +5 -23
  244. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  245. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +51 -22
  246. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  247. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +21 -75
  248. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  249. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -23
  250. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  251. package/fesm2022/eui-ecl-components-ecl-icon.mjs +5 -23
  252. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  253. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +24 -51
  254. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  255. package/fesm2022/eui-ecl-components-ecl-label.mjs +5 -23
  256. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  257. package/fesm2022/eui-ecl-components-ecl-link.mjs +44 -41
  258. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  259. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +18 -51
  260. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  261. package/fesm2022/eui-ecl-components-ecl-list.mjs +29 -74
  262. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  263. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +11 -30
  264. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  265. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +17 -50
  266. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  267. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +50 -112
  268. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  269. package/fesm2022/eui-ecl-components-ecl-menu.mjs +14 -33
  270. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  271. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -80
  272. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  273. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +27 -66
  274. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  275. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +14 -44
  276. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  277. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +11 -39
  278. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  279. package/fesm2022/eui-ecl-components-ecl-notification.mjs +86 -50
  280. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  281. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +43 -100
  282. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  283. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +12 -32
  284. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  285. package/fesm2022/eui-ecl-components-ecl-popover.mjs +16 -44
  286. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  287. package/fesm2022/eui-ecl-components-ecl-radio.mjs +14 -32
  288. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  289. package/fesm2022/eui-ecl-components-ecl-range.mjs +11 -30
  290. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  291. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +5 -23
  292. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  293. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +12 -32
  294. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  295. package/fesm2022/eui-ecl-components-ecl-select.mjs +8 -33
  296. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  297. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +150 -260
  298. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  299. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +73 -157
  300. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  301. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +14 -32
  302. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  303. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +29 -74
  304. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  305. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs +13 -13
  306. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
  307. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +5 -23
  308. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  309. package/fesm2022/eui-ecl-components-ecl-table.mjs +32 -80
  310. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +56 -129
  312. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  313. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -33
  314. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +5 -24
  316. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +5 -24
  318. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +20 -62
  320. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-core.mjs +25 -62
  322. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-shared.mjs +3 -3
  324. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  325. package/fesm2022/eui-ecl.mjs +1 -203
  326. package/fesm2022/eui-ecl.mjs.map +1 -1
  327. package/package.json +17 -17
  328. package/types/eui-ecl-components-ecl-accordion.d.ts +1 -13
  329. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  330. package/types/eui-ecl-components-ecl-app.d.ts +2 -13
  331. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  332. package/types/eui-ecl-components-ecl-banner.d.ts +2 -14
  333. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  334. package/types/eui-ecl-components-ecl-blockquote.d.ts +1 -13
  335. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  336. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +11 -27
  337. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  338. package/types/eui-ecl-components-ecl-button.d.ts +1 -13
  339. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  340. package/types/eui-ecl-components-ecl-card.d.ts +1 -13
  341. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  342. package/types/eui-ecl-components-ecl-carousel.d.ts +1 -13
  343. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  344. package/types/eui-ecl-components-ecl-category-filter.d.ts +1 -13
  345. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  346. package/types/eui-ecl-components-ecl-checkbox.d.ts +1 -12
  347. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  348. package/types/eui-ecl-components-ecl-content-block.d.ts +1 -12
  349. package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
  350. package/types/eui-ecl-components-ecl-content-item.d.ts +1 -12
  351. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  352. package/types/eui-ecl-components-ecl-date-block.d.ts +1 -12
  353. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  354. package/types/eui-ecl-components-ecl-date-picker.d.ts +2 -13
  355. package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
  356. package/types/eui-ecl-components-ecl-divider.d.ts +1 -12
  357. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  358. package/types/eui-ecl-components-ecl-expandable.d.ts +2 -13
  359. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  360. package/types/eui-ecl-components-ecl-fact-figures.d.ts +1 -12
  361. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  362. package/types/eui-ecl-components-ecl-featured.d.ts +1 -13
  363. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  364. package/types/eui-ecl-components-ecl-feedback-message.d.ts +1 -12
  365. package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
  366. package/types/eui-ecl-components-ecl-file-upload.d.ts +1 -12
  367. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  368. package/types/eui-ecl-components-ecl-file.d.ts +1 -12
  369. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  370. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -12
  371. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  372. package/types/eui-ecl-components-ecl-form-label.d.ts +24 -10
  373. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  374. package/types/eui-ecl-components-ecl-gallery.d.ts +3 -20
  375. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  376. package/types/eui-ecl-components-ecl-help-block.d.ts +1 -12
  377. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  378. package/types/eui-ecl-components-ecl-icon.d.ts +1 -12
  379. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  380. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +2 -17
  381. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  382. package/types/eui-ecl-components-ecl-label.d.ts +1 -12
  383. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  384. package/types/eui-ecl-components-ecl-link.d.ts +17 -16
  385. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  386. package/types/eui-ecl-components-ecl-list-illustration.d.ts +1 -12
  387. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  388. package/types/eui-ecl-components-ecl-list.d.ts +1 -12
  389. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  390. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +1 -13
  391. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  392. package/types/eui-ecl-components-ecl-media-container.d.ts +1 -12
  393. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  394. package/types/eui-ecl-components-ecl-mega-menu.d.ts +1 -13
  395. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  396. package/types/eui-ecl-components-ecl-menu.d.ts +1 -12
  397. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  398. package/types/eui-ecl-components-ecl-modal.d.ts +2 -19
  399. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  400. package/types/eui-ecl-components-ecl-multiselect.d.ts +1 -12
  401. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  402. package/types/eui-ecl-components-ecl-navigation-list.d.ts +1 -12
  403. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  404. package/types/eui-ecl-components-ecl-news-ticker.d.ts +1 -13
  405. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  406. package/types/eui-ecl-components-ecl-notification.d.ts +45 -29
  407. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  408. package/types/eui-ecl-components-ecl-page-header.d.ts +1 -12
  409. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  410. package/types/eui-ecl-components-ecl-pagination.d.ts +3 -14
  411. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  412. package/types/eui-ecl-components-ecl-popover.d.ts +5 -17
  413. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  414. package/types/eui-ecl-components-ecl-radio.d.ts +1 -12
  415. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  416. package/types/eui-ecl-components-ecl-range.d.ts +1 -12
  417. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  418. package/types/eui-ecl-components-ecl-rating-field.d.ts +2 -13
  419. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  420. package/types/eui-ecl-components-ecl-search-form.d.ts +4 -15
  421. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  422. package/types/eui-ecl-components-ecl-select.d.ts +1 -13
  423. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  424. package/types/eui-ecl-components-ecl-site-footer.d.ts +42 -63
  425. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  426. package/types/eui-ecl-components-ecl-site-header.d.ts +4 -19
  427. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  428. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +6 -13
  429. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  430. package/types/eui-ecl-components-ecl-splash-page.d.ts +1 -12
  431. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  432. package/types/eui-ecl-components-ecl-sticky-container.d.ts +1 -12
  433. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  434. package/types/eui-ecl-components-ecl-table.d.ts +1 -12
  435. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  436. package/types/eui-ecl-components-ecl-tabs.d.ts +4 -46
  437. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  438. package/types/eui-ecl-components-ecl-tag.d.ts +1 -12
  439. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  440. package/types/eui-ecl-components-ecl-text-area.d.ts +1 -13
  441. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  442. package/types/eui-ecl-components-ecl-text-input.d.ts +1 -13
  443. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  444. package/types/eui-ecl-components-ecl-timeline.d.ts +1 -12
  445. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  446. package/types/eui-ecl-core.d.ts +0 -3
  447. package/types/eui-ecl-core.d.ts.map +1 -1
  448. package/types/eui-ecl.d.ts +1 -69
  449. package/types/eui-ecl.d.ts.map +1 -1
  450. package/docs/js/libs/vis.min.js +0 -47
  451. package/docs/modules/EclAccordionModule.html +0 -273
  452. package/docs/modules/EclAllModule.html +0 -261
  453. package/docs/modules/EclAppModule.html +0 -267
  454. package/docs/modules/EclBannerModule.html +0 -321
  455. package/docs/modules/EclBlockquoteModule.html +0 -279
  456. package/docs/modules/EclBreadcrumbModule.html +0 -321
  457. package/docs/modules/EclButtonModule.html +0 -285
  458. package/docs/modules/EclCardModule.html +0 -321
  459. package/docs/modules/EclCarouselModule.html +0 -273
  460. package/docs/modules/EclCategoryFilterModule.html +0 -279
  461. package/docs/modules/EclCheckboxModule.html +0 -321
  462. package/docs/modules/EclContentBlockModule.html +0 -321
  463. package/docs/modules/EclContentItemModule.html +0 -321
  464. package/docs/modules/EclDateBlockModule.html +0 -267
  465. package/docs/modules/EclDatePickerModule.html +0 -267
  466. package/docs/modules/EclDividerModule.html +0 -267
  467. package/docs/modules/EclExpandableModule.html +0 -267
  468. package/docs/modules/EclFactFiguresModule.html +0 -285
  469. package/docs/modules/EclFeaturedModule.html +0 -321
  470. package/docs/modules/EclFeedbackMessageModule.html +0 -267
  471. package/docs/modules/EclFileModule.html +0 -321
  472. package/docs/modules/EclFileUploadModule.html +0 -267
  473. package/docs/modules/EclFormGroupModule.html +0 -267
  474. package/docs/modules/EclGalleryModule.html +0 -321
  475. package/docs/modules/EclHelpBlockModule.html +0 -267
  476. package/docs/modules/EclIconModule.html +0 -267
  477. package/docs/modules/EclInpageNavigationModule.html +0 -321
  478. package/docs/modules/EclLabelModule.html +0 -267
  479. package/docs/modules/EclLinkModule.html +0 -285
  480. package/docs/modules/EclListIllustrationModule.html +0 -321
  481. package/docs/modules/EclListModule.html +0 -321
  482. package/docs/modules/EclLoadingIndicatorModule.html +0 -279
  483. package/docs/modules/EclMediaContainerModule.html +0 -321
  484. package/docs/modules/EclMegaMenuModule.html +0 -321
  485. package/docs/modules/EclMenuModule.html +0 -321
  486. package/docs/modules/EclModalModule.html +0 -321
  487. package/docs/modules/EclMultiselectModule.html +0 -321
  488. package/docs/modules/EclNavigationListModule.html +0 -321
  489. package/docs/modules/EclNewsTickerModule.html +0 -321
  490. package/docs/modules/EclPageHeaderModule.html +0 -321
  491. package/docs/modules/EclPaginationModule.html +0 -321
  492. package/docs/modules/EclPopoverModule.html +0 -321
  493. package/docs/modules/EclRadioModule.html +0 -285
  494. package/docs/modules/EclRangeModule.html +0 -321
  495. package/docs/modules/EclRatingFieldModule.html +0 -267
  496. package/docs/modules/EclSearchFormModule.html +0 -267
  497. package/docs/modules/EclSelectModule.html +0 -321
  498. package/docs/modules/EclSiteFooterModule.html +0 -321
  499. package/docs/modules/EclSiteHeaderModule.html +0 -321
  500. package/docs/modules/EclSocialMediaFollowModule.html +0 -321
  501. package/docs/modules/EclSplashPageModule.html +0 -321
  502. package/docs/modules/EclStickyContainerModule.html +0 -267
  503. package/docs/modules/EclTableModule.html +0 -321
  504. package/docs/modules/EclTabsModule.html +0 -321
  505. package/docs/modules/EclTagModule.html +0 -321
  506. package/docs/modules/EclTextAreaModule.html +0 -267
  507. package/docs/modules/EclTextInputModule.html +0 -267
  508. package/docs/modules/EclTimelineModule.html +0 -297
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-mega-menu.mjs","sources":["../../components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.ts","../../components/ecl-mega-menu/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.html","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.html","../../components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.html","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.html","../../components/ecl-mega-menu/ecl-mega-menu.component.ts","../../components/ecl-mega-menu/ecl-mega-menu.component.html","../../components/ecl-mega-menu/ecl-mega-menu.module.ts","../../components/ecl-mega-menu/index.ts","../../components/ecl-mega-menu/eui-ecl-components-ecl-mega-menu.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu container.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuContainer]',\n})\n\nexport class EclMegaMenuContainerDirective extends ECLBaseDirective {\n\n @HostBinding('class.ecl') hasClass = true;\n}\n","import { Directive, HostBinding, ElementRef, inject, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured list.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedList]',\n})\nexport class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to a mega-menu featured list item.\n * Also has method that returns item height.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedListItem]',\n})\nexport class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item') cmpClass = true;\n\n @HostBinding('class.ecl-mega-menu__featured-list__item--image-only')\n @Input({ transform: booleanAttribute }) isImageOnly = false;\n\n @HostBinding('class.ecl-mega-menu__featured-list__item--combo')\n @Input({ transform: booleanAttribute }) isCombo = false;\n\n private el = inject(ElementRef);\n\n getEclMegaMenuFeaturedItemHeight(): number {\n return this.el.nativeElement.scrollHeight;\n }\n}\n\n@Directive({\n selector: '[eclMegaMenuFeaturedListItemDescription]',\n})\nexport class EclMegaMenuFeaturedListItemDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item-description') cmpClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured picture.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedPicture]',\n})\nexport class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive that adds specific class to the mega-menu featured image.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedImage]',\n})\nexport class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-image') cmpClass = true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuDataService {\n\n\tpublic eclMegaMenuInfoBottomYSubject$: Observable<number>;\n\tpublic eclSubItemExpanded$: Observable<boolean>;\n\tpublic eclSubItemClicked$: Observable<EclMegaMenuItem>;\n\tpublic eclSubItemEscape$: Observable<boolean>;\n\n\tprivate eclMegaMenuInfoBottomYSubject: Subject<number> = new Subject<number>();\n\tprivate eclSubItemExpanded: Subject<boolean> = new Subject<boolean>();\n\tprivate eclSubItemClicked: Subject<EclMegaMenuItem> = new Subject<EclMegaMenuItem>();\n\tprivate eclSubItemEscape: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n\t\tthis.eclMegaMenuInfoBottomYSubject$ = this.eclMegaMenuInfoBottomYSubject.asObservable();\n this.eclSubItemExpanded$ = this.eclSubItemExpanded.asObservable();\n\t\tthis.eclSubItemClicked$ = this.eclSubItemClicked.asObservable();\n\t\tthis.eclSubItemEscape$ = this.eclSubItemEscape.asObservable();\n\t}\n\n\t/**\n\t * Used to synchronize size of the info panel and sublist.\n\t */\n\tupdateEclMegaMenuInfoSize(value: number): void {\n\t\tthis.eclMegaMenuInfoBottomYSubject.next(value);\n\t}\n\n eclSubItemToggle(isExpanded: boolean): void {\n\t\tthis.eclSubItemExpanded.next(isExpanded);\n\t}\n\n\teclSubItemClick(item: EclMegaMenuItem): void {\n\t\tthis.eclSubItemClicked.next(item);\n\t}\n\n\teclSubItemEscapeEvent(value: boolean): void {\n\t\tthis.eclSubItemEscape.next(value);\n\t}\n}","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuService {\n private renderer: Renderer2;\n\n constructor() {\n const rendererFactory = inject(RendererFactory2);\n\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n 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}","import { Component, ElementRef, HostBinding, Input, ContentChildren, forwardRef, QueryList, ViewChild, AfterContentInit } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuFeaturedListItemDirective } from '../directives/ecl-mega-menu-featured-list.directive';\n\n/**\n * This component represents the featured items panel.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuFeatured]',\n templateUrl: './ecl-mega-menu-featured.component.html',\n})\n\nexport class EclMegaMenuFeaturedComponent extends ECLBaseDirective implements AfterContentInit {\n\n @ViewChild('megaMenuFeaturedScrollable') megaMenuFeaturedScrollable: ElementRef;\n @HostBinding('class.ecl-mega-menu__featured') cmpClass = true;\n @HostBinding('style.height.px') eclMegaMenuFeaturedStyleHeight: number | null = null;\n @Input() title: string;\n @Input() titleId: string;\n @ContentChildren(forwardRef(() => EclLinkDirective), { descendants: true }) links: QueryList<EclLinkDirective>;\n @ContentChildren(forwardRef(() => EclMegaMenuFeaturedListItemDirective), { descendants: true }) featuredItems: QueryList<EclMegaMenuFeaturedListItemDirective>;\n ngAfterContentInit(): void {\n this.links?.forEach(link => link.class = 'ecl-mega-menu__featured-link');\n }\n /**\n * Calculates and returns the height of the component. The total height of all the list items.\n * @returns the height of the component\n */\n getEclMegaMenuFeaturedHeight(): number {\n let result = 0;\n this.featuredItems?.forEach(el => result += el.getEclMegaMenuFeaturedItemHeight());\n return result;\n }\n}\n","<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\nimport { EclMegaMenuService } from '../services/ecl-mega-menu.service';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\n\n/**\n * This component represents a sub-item in the mega-menu component. Applies styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuSubitem]',\n templateUrl: './ecl-mega-menu-subitem.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\n\nexport class EclMegaMenuSubitemComponent extends ECLBaseDirective implements EclMegaMenuItem {\n\n isExpanded = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__subitem'),\n this.isCurrent ? 'ecl-mega-menu__subitem--current' : '',\n this.isExpanded ? 'ecl-mega-menu__subitem--expanded' : '',\n this.isSeeAll ? 'ecl-mega-menu__see-all' : '',\n this.isParentLink ? 'ecl-mega-menu__parent-link' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets id for the button element.\n */\n @Input() buttonId: string;\n @Input() label = '';\n /**\n * If the link redirects to external page. Adds an 'external' icon.\n */\n @Input({ transform: booleanAttribute }) isExternal = false;\n /**\n * If the link is external, this will be the title of the external icon.\n */\n @Input() externalIconTitle: 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 /**\n * Used for the 'View all' link.\n */\n @Input({ transform: booleanAttribute }) isSeeAll = false;\n /**\n * Adds custom attributes to an anchor element.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * Wrapper div element of the second level sub-items.\n */\n @ViewChild('megaMenuLevel2') megaMenuLevel2: ElementRef;\n /**\n * The link element, if it exists. Item can have either link or button.\n */\n @ViewChild(EclLinkDirective) subMenuItemLink: EclLinkDirective;\n /**\n * The button element, if it exists. Item can have either link or button.\n */\n @ViewChild('subMenuItemBtn') subMenuItemBtn: EclButtonComponent;\n\n /**\n * The directive of the submenu lits.\n */\n @ContentChild(EclMegaMenuSublistDirective) submenu?: EclMegaMenuSublistDirective;\n /**\n * The component for the featured items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent)) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n\n @Output() megaMenuSubItemClicked = new EventEmitter();\n @Output() megaMenuSubItemKeydown = new EventEmitter();\n\n isCurrent = false;\n isMobileBreakpoint = false;\n // Not used. To be removed in v20.\n labelId: string;\n /**\n * Used to set the height of the second level subitems container.\n */\n level2StyleHeight: number | null = null;\n\n @HostBinding('style.display') protected display = '';\n \n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isParentLink = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n\n constructor() {\n super();\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n if (this.subMenuItemLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.subMenuItemLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get hasFeatured(): boolean {\n return !!this.eclMegaMenuFeatured;\n }\n\n /**\n * Sets focus on either link or button element.\n */\n onFocus(): void{\n if (this.subMenuItemLink) {\n this.subMenuItemLink.onFocus();\n } else if (this.subMenuItemBtn) {\n this.subMenuItemBtn.onFocus();\n }\n }\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n\n getMegaMenuSubItemHeight(): number {\n return this.el.nativeElement.getBoundingClientRect().height;\n }\n\n /**\n * Show or hide the subitems.\n */\n onButtonClick(): void {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n this.eclMegaMenuDataService.eclSubItemClick(this);\n if (this.isMobileBreakpoint) {\n this.isParentLink = true;\n setTimeout(() => this.calculateLevel2Styles());\n }\n this.megaMenuSubItemClicked.emit();\n }\n\n /**\n * If link is clicked -> emit event and close all opened menus and submenus.\n */\n onLinkClick(): void {\n this.eclMegaMenuDataService.eclSubItemClick(this);\n this.megaMenuSubItemClicked.emit();\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if (!((evt as KeyboardEvent).key === KeyCode.TAB)) {\n if ((evt as KeyboardEvent).key === KeyCode.ESCAPE) {\n this.eclMegaMenuDataService.eclSubItemEscapeEvent(true);\n } else {\n this.megaMenuSubItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n }\n\n onSubMenuItemCollapse(): void {\n if (this.isExpanded) {\n this.eclMegaMenuDataService.eclSubItemToggle(false);\n this.isCurrent = false;\n this.isExpanded = false;\n this.isParentLink = false;\n }\n }\n\n onSubMenuItemExpand(): void {\n this.isCurrent = true;\n this.isExpanded = true;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n }\n\n private calculateLevel2Styles(): void {\n if (this.megaMenuLevel2) {\n const subMegaRect = this.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n const availableHeight = window.innerHeight - subMegaTop;\n this.level2StyleHeight = availableHeight;\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 (!isSeeAll) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { ContentChild, ContentChildren, Directive, DoCheck, ElementRef, EventEmitter, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSubitemComponent } from '../ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\n\n/**\n * Directive that adds specific class to the mega-menu list.\n */\n@Directive({\n selector: 'ul[eclMegaMenuList]',\n})\nexport class EclMegaMenuListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to the mega-menu spacer.\n */\n@Directive({\n selector: 'li[eclMegaMenuSpacer]',\n})\nexport class EclMegaMenuSpacerDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__spacer') cmpClass = true;\n}\n\n/**\n * Directive that adds specific classes and functionality to the mega-menu sublist.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSublist]',\n})\nexport class EclMegaMenuSublistDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-mega-menu__sublist') cmpClass = true;\n @HostBinding('class.ecl-mega-menu__sublist--scrollable') isScrollable = false;\n @HostBinding('style.top.px') styleTop: number | null = null;\n\n @ContentChildren(forwardRef(() => EclMegaMenuSubitemComponent)) submenuItems: QueryList<EclMegaMenuSubitemComponent>;\n @ContentChild(forwardRef(() => EclMegaMenuSpacerDirective)) spacer: QueryList<EclMegaMenuSpacerDirective>;\n @Output() megaMenuSubItemClicked = new EventEmitter();\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuSubitemComponent>;\n private isMobileBreakpoint = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n });\n }\n\n ngDoCheck(): void {\n // When a new item is added -> subscribe to item's events.\n const diff = this.differ.diff(this.submenuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When parent mega-menu item is clicked.\n * @param isExpanded - 'true', if parent item is expanded, 'false' if item is collapsed.\n */\n onParentMegaMenuItemClick(isExpanded: boolean): void {\n if (isExpanded) {\n // If mega-menu item is expanded -> find the first mega-menu list child (i.e. sub item) and expand it's children.\n // if (!this.isMobileBreakpoint) {\n // const itemWithChildren = this.submenuItems.find(item => item.hasChildren);\n // itemWithChildren?.onSubMenuItemExpand();\n // }\n } else {\n this.submenuItems.forEach(item => {\n if (item.isExpanded) {\n item.onSubMenuItemCollapse();\n }\n });\n }\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuSubitemComponent): void {\n item.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuSubItemClicked(item);\n });\n\n item.megaMenuSubItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMegaMenuSubItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuSubItemClicked(item: EclMegaMenuSubitemComponent): void {\n this.submenuItems.filter(subItem => subItem !== item).forEach(el => {\n el.onSubMenuItemCollapse();\n if (this.isMobileBreakpoint && item.hasChildren) {\n el.onHide();\n }\n });\n this.megaMenuSubItemClicked.emit();\n }\n\n private onMegaMenuSubItemKeydown(item: EclMegaMenuSubitemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.submenuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.submenuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.submenuItems.length - 1) {\n this.submenuItems.get(index+1).onFocus();\n }\n }\n\n private resetStyles(): void {\n if (this.isMobileBreakpoint) {\n this.isScrollable = true;\n } else {\n this.isScrollable = false;\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 setTimeout(() => this.resetStyles());\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, Input, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\n\n/**\n * Component for displaying some custom information for the current menu item.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuInfo]',\n templateUrl: './ecl-mega-menu-info.component.html',\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Applies custom styles for info component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__info'),\n this.linkItem ? 'ecl-mega-menu__info--has-link' : '',\n ]\n .join(' ')\n .trim();\n }\n /**\n * Sets the height of the component.\n */\n @HostBinding('style.height.px') eclMegaMenuInfoStyleHeight: number | null = null;\n /**\n * Sets the opacity of the component.\n */\n @HostBinding('style.opacity') eclMegaMenuInfoStyleOpacity: number | null = null;\n\n @Input() title: string;\n\n /**\n * When the info panel contains link.\n */\n @ContentChild(forwardRef(() => EclLinkDirective)) linkItem: EclLinkDirective;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n\n ngAfterViewInit(): void {\n // Sets class of the sub link, if any.\n if (this.linkItem) {\n setTimeout(() => this.linkItem.class = 'ecl-mega-menu__info-link');\n }\n // Emits the bottom value of the element. Needed to calculate the size of the sublist. (for the same parent menu item)\n this.publishSize();\n }\n\n /**\n * Used to calculate the height of the parent element.\n * @returns the height of the component.\n */\n getInfoPanelScrollHeight() : number {\n return this.el.nativeElement.scrollHeight;\n }\n\n /**\n * Used to calulate the size of the info panel.\n */\n private publishSize(): void {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuDataService.updateEclMegaMenuInfoSize(bottomY);\n }\n}\n","<span class=\"ecl-mega-menu__info-title\">{{ title }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n afterNextRender, booleanAttribute,\n ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter,\n forwardRef,\n HostBinding, HostListener,\n inject, Renderer2,\n Input, OnDestroy, Output,\n ViewChild, AfterContentInit,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuContainerDirective } from '../directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from '../ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\nimport { EclMegaMenuService } from '../services/ecl-mega-menu.service';\n\n/**\n * This component represents a mega menu item. Adds functionality and styling, according to ECL standards.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuItem]',\n templateUrl: './ecl-mega-menu-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\n\nexport class EclMegaMenuItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n\n /**\n * Returns current menu item classes, depending on item's state (it's properties' values).\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__item'),\n this.eclMegaMenuSublist ? 'ecl-mega-menu__item--has-children' : '',\n this.eclMegaMenuContainer ? 'ecl-mega-menu__item--has-container' : '',\n this.isCurrent ? 'ecl-mega-menu__item--current' : '',\n this.isExpanded ? 'ecl-mega-menu__item--expanded' : '',\n this.isPromotional ? 'ecl-mega-menu__item--promotional' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isExpanded = false;\n @HostBinding('attr.aria-haspopup') hasPopup = this.hasChildren ? true : null;\n\n @Input({ transform: booleanAttribute }) isPromotional = false;\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 /**\n * Used in case user wants to set some custom attributes for the anchr tag.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n @Output() megaMenuItemClicked = new EventEmitter();\n @Output() megaMenuItemKeydown = new EventEmitter<KeyboardEvent>();\n /**\n * The wrapper around the subitems, if any.\n */\n @ViewChild('eclMegaMenuMega') eclMegaMenuMega: ElementRef;\n /**\n * This elemend hold some extra content, different from subitems. For example just some text or some custom links, etc.\n */\n @ViewChild('mainPanel') mainPanel: ElementRef;\n /**\n * Actual link of the menu item. If the menu has no children, but redirects/loads another page.\n */\n @ViewChild(EclLinkDirective) menuLink: EclLinkDirective;\n /**\n * Element, tat is rendered if the menu item has children.\n */\n @ViewChild('menuBtn') menuBtn: EclButtonComponent;\n /**\n * Element, that would contain some info about the current item or it's children. First in the container.\n */\n @ContentChild(forwardRef(() => EclMegaMenuInfoComponent)) eclMegaMenuInfo: EclMegaMenuInfoComponent;\n /**\n * Element, that holds the sub items of the current menu items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) eclMegaMenuSublist: EclMegaMenuSublistDirective;\n\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent), { descendants: false }) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n /**\n * Component, that consist of some custom info, text or whatever. When the menu item has no children, but still some\n * sub container is displayed.\n */\n @ContentChild(forwardRef(() => EclMegaMenuContainerDirective)) eclMegaMenuContainer: EclMegaMenuContainerDirective;\n\n containerStyleHeight: number | null = null;\n isCurrent = false;\n isMobileBreakpoint = false;\n megaMenuMegaStyleHeight: number | null = null;\n megaMenuMegaStyleOpacity: number | null = null;\n wrapperStyleHeight: number | null = null;\n wrapperStyleTop: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLarge = false;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n const eclMegaMenuDataService = this.eclMegaMenuDataService;\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngAfterContentInit(): void {\n this.eclMegaMenuSublist?.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n setTimeout(() => this.checkDropdownHeight(), 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasChildren(): boolean {\n return !!this.eclMegaMenuSublist || !!this.eclMegaMenuContainer;\n }\n\n get hasSublist(): boolean {\n return !!this.eclMegaMenuSublist;\n }\n\n get hasFeatured(): boolean {\n return !!this.eclMegaMenuFeatured;\n }\n\n get hasContainer(): boolean {\n return !!this.eclMegaMenuContainer;\n }\n\n /**\n * Set the focus on the sub element - link or button.\n */\n onFocus(): void {\n if (this.menuLink) {\n this.menuLink.onFocus();\n } else if (this.menuBtn) {\n this.menuBtn.onFocus();\n }\n }\n\n /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n @HostListener('window:resize')\n onResize(): void {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }\n });\n }\n\n /**\n * Manage styling and functionality for children and siblings, when item is clicked.\n */\n onMegaMenuItemClick(): void {\n if (this.hasChildren) {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n if (this.isExpanded) {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n this.hidePanels();\n setTimeout(() => {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }, 100);\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n this.megaMenuItemClicked.emit();\n }\n\n /**\n * Manage styling and functionality when item is collapsed.\n */\n onMegaMenuItemCollapse(): void {\n this.isCurrent = false;\n this.isExpanded = false;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if ((evt as KeyboardEvent).key === KeyCode.TAB && !(evt as KeyboardEvent).shiftKey) {\n // if menu is open, navigate to children\n } else {\n this.megaMenuItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint) {\n const availableHeight = window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.wrapperStyleTop = bottomY;\n } else {\n const height = this.el.nativeElement.getBoundingClientRect().height;\n this.wrapperStyleTop = height;\n }\n }\n\n private resetWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity = 0;\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 0;\n }\n }\n\n private checkDropdownHeight(): void {\n this.hidePanels();\n let infoPanelHeight = 0;\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n\n if (!this.isMobileBreakpoint) {\n const heights = [];\n let height = 0;\n let itemsHeight = 0;\n let subItemsHeight = 0;\n let featuredHeight = 0;\n let featuredHeight2 = 0;\n\n if (this.hasContainer) {\n const viewportHeight = window.innerHeight;\n const mainTop = this.mainPanel.nativeElement.getBoundingClientRect().top;\n this.containerStyleHeight = viewportHeight - mainTop;\n } else {\n if (this.eclMegaMenuInfo) {\n infoPanelHeight = this.eclMegaMenuInfo.getInfoPanelScrollHeight() + 16;\n if (this.isLarge) {\n heights.push(infoPanelHeight);\n } else {\n itemsHeight = infoPanelHeight;\n subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 1;\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n if (this.eclMegaMenuSublist.spacer) {\n itemsHeight += 25;\n }\n heights.push(itemsHeight);\n }\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(item => item.hasChildren && item.isExpanded);\n if (expandedSubItem !== undefined) {\n expandedSubItem.submenu.submenuItems.forEach(item => {\n subItemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(subItemsHeight);\n if (expandedSubItem.eclMegaMenuFeatured) {\n featuredHeight += expandedSubItem.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight);\n }\n }\n\n if (this.eclMegaMenuFeatured) {\n featuredHeight2 = this.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n }\n const maxHeight = Math.max(...heights);\n const containerBounding = this.el.nativeElement.getBoundingClientRect();\n const containerBottom = containerBounding.bottom;\n // By requirements, limit the height to the 70% of the available space.\n const availableHeight = (window.innerHeight - containerBottom) * 0.9;\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = height;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight = height;\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight = height - infoPanelHeight;\n }\n if (this.eclMegaMenuInfo && this.isLarge) { \n // this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = height;\n }\n\n if (expandedSubItem !== undefined) {\n if (this.isLarge) {\n expandedSubItem.level2StyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n if (this.eclMegaMenuFeatured) {\n if (this.isLarge) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n this.megaMenuMegaStyleOpacity = 1;\n this.cd.markForCheck();\n }\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small, '(min-width: 1368px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints[Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small];\n this.isLarge = result.breakpoints['(min-width: 1368px)'];\n this.resetWrapperStyle();\n });\n }\n}\n","@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight\" [style.opacity]=\"megaMenuMegaStyleOpacity\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}","import { Component, ContentChildren, DoCheck, ElementRef, EventEmitter, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, Renderer2, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective, EclRtlService } from '@eui/ecl/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuItem } from './models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from './services/ecl-mega-menu-data.service';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The 'eclMegaMenu' is an advanced navigation component designed for complex sites with deep hierarchies.\n * It can provide descriptive text for first level items, accommodate up to three levels of navigation,\n * and additionally allows a featured column that can be used to either promote parent-page specific or site-wide pages,\n * hidden deep into the lower levels of the hierarchy.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'nav[eclMegaMenu]',\n templateUrl: './ecl-mega-menu.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\n\nexport class EclMegaMenuComponent extends ECLBaseDirective implements DoCheck, OnDestroy {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu'),\n this.isTwoPanels ? 'ecl-mega-menu--two-panels' : '',\n this.isOnePanel ? 'ecl-mega-menu--one-panel' : '',\n this.isRtl ? 'ecl-mega-menu--rtl' : '',\n this.isTablet ? 'ecl-mega-menu--forced-mobile' : '',\n this.isStartPanel ? 'ecl-mega-menu--start-panel' : '',\n this.hasSecondaryFeatured ? 'ecl-mega-menu--has-secondary-featured' : '',\n ].join(' ');\n }\n\n isExpanded = false;\n\n @HostBinding('attr.data-expanded')\n get expandedAttr() {\n return this.isExpanded ? 'true' : null;\n }\n\n /**\n * The 'role' attribute of the component is set to 'navigation'. should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * The event that is emitted, when a menu item is selected.\n */\n @Output() megaMenuItemSelect = new EventEmitter<EclMegaMenuItem>();\n @ContentChildren(forwardRef(() => EclMegaMenuItemComponent), { descendants: true }) menuItems: QueryList<EclMegaMenuItemComponent>;\n\n /**\n * If the menu is in mobile mode.\n */\n isMobileBreakpoint = false;\n /**\n * If the menu is expanded in mobile mode.\n */\n isMobileExpanded = false;\n /**\n * When a menu item is expanded and has only one panel (one sub-level).\n */\n isOnePanel = false;\n /**\n * If the menu is open, when in mobile mode.\n */\n isOpenMobile = false; // used for mobile only\n /**\n * Used in mobile mode - when the start panel is open (i.e. the hamburger button is clicked).\n */\n isStartPanel = false;\n /**\n * If a menu item is expanded and has two panels/levels displayed.\n */\n isTwoPanels = false;\n /**\n * Used to position the overlay, when a menu item is expanded.\n */\n overlayStyleTop: number;\n innerStyleTop: number;\n\n /** Adds the relative class to the component, when a submenu is opened and this submenu has a featured component child */\n hasSecondaryFeatured = false;\n\n /**\n * Represents the current viewport breakpoint states.\n */\n public breakpointsValue: any = {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n };\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuItemComponent>;\n private isRtl = false;\n private isTablet = false;\n private parentHeaderBottomSpaceY: number;\n private differs = inject(IterableDiffers);\n private eclRtlService = inject(EclRtlService);\n private euiAppShellService = inject(EuiAppShellService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToAppShellBreakpoints();\n this.handleRtlChangeState();\n this.subscribeToEvents();\n });\n }\n\n ngDoCheck(): void {\n // For each added menu item - subscribe to item events.\n const diff = this.differ.diff(this.menuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When clicking outside the menu - close any expanded item.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n if (this.isExpanded) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n onMegaMenuMobileOpen(): void {\n if (this.isOpenMobile) {\n this.onMegaMenuMobileClose();\n } else {\n this.disableScroll();\n this.isExpanded = true;\n this.isOnePanel = false;\n this.isTwoPanels = false;\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = true;\n this.isMobileExpanded = true;\n }\n this.isOpenMobile = true;\n\n this.eclHeaderMenuComunicationService.updateOpen(true);\n\n // Focus first element\n if (this.menuItems.length > 0) {\n this.menuItems.first.onFocus();\n }\n }\n }\n\n onMegaMenuMobileClose(): void {\n this.enableScroll();\n this.collapseMenu();\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = false;\n this.isMobileExpanded = false;\n }\n this.isOpenMobile = false;\n }\n\n /**\n * Used for mobile menu - when user clicks on 'Back' button. Returns to the previous state.\n */\n onMegaMenuBack(): void {\n if (this.isOnePanel) {\n this.onMegaMenuBackToStartPanel();\n } else if (this.isTwoPanels) {\n this.onMegaMenuBackToOnePanel();\n }\n }\n\n positionMenuOverlay(parentHeaderBottomSpaceY): void {\n this.parentHeaderBottomSpaceY = parentHeaderBottomSpaceY;\n if (this.isMobileBreakpoint && parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n this.innerStyleTop = parentHeaderBottomSpaceY;\n } else {\n if (this.parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n } else {\n const menuBottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.overlayStyleTop = menuBottomY;\n }\n }\n }\n\n private onMegaMenuBackToOnePanel(): void {\n\n this.isStartPanel = false;\n this.isTwoPanels = false;\n this.isOnePanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n const currentSubItem = currentItem.eclMegaMenuSublist.submenuItems.find(item => item.isExpanded);\n this.hasSecondaryFeatured = false;\n if (this.isMobileBreakpoint) {\n currentItem.eclMegaMenuSublist.submenuItems.filter(item => !item.isExpanded).forEach(el => {\n el.onShow();\n });\n }\n currentSubItem.isCurrent = false;\n currentSubItem.isExpanded = false;\n }\n\n private onMegaMenuBackToStartPanel(): void {\n this.isOnePanel = false;\n this.isStartPanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n currentItem.isCurrent = false;\n currentItem.isExpanded = false;\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private subscribeToEvents(): void {\n\n this.eclMegaMenuDataService.eclSubItemExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n this.isTwoPanels = isExpanded;\n this.isOnePanel = !isExpanded;\n this.isStartPanel = false;\n });\n\n this.eclMegaMenuDataService.eclSubItemClicked$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.onSubMenuItemClicked(item);\n this.megaMenuItemSelect.emit(item);\n });\n\n this.eclMegaMenuDataService.eclSubItemEscape$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.closeMenuAndAnyOpenSubMenu();\n });\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuItemComponent): void {\n item.megaMenuItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuItemClicked(item);\n });\n\n item.megaMenuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: KeyboardEvent) => {\n this.onMegaMenuItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuItemClicked(item: EclMegaMenuItemComponent): void {\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileBreakpoint) {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n this.isStartPanel = false;\n } else {\n if (item.eclMegaMenuSublist?.submenuItems.first.hasChildren) {\n this.isOnePanel = false;\n this.isTwoPanels = true;\n } else {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n }\n }\n this.positionMenuOverlay(this.parentHeaderBottomSpaceY);\n this.isExpanded = true;\n this.disableScroll();\n } else {\n this.collapseMenu();\n }\n } else {\n this.collapseMenu();\n }\n this.megaMenuItemSelect.emit(item);\n }\n\n private onMegaMenuItemKeydown(item: EclMegaMenuItemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.menuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ESCAPE: {\n this.closeMenuAndAnyOpenSubMenu();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private onSubMenuItemClicked(item: EclMegaMenuItem): void {\n if (item.isExpanded && item.hasFeatured) {\n this.hasSecondaryFeatured = true;\n } else {\n this.hasSecondaryFeatured = false;\n }\n if (!item.hasChildren) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n private closeMenuAndAnyOpenSubMenu(): void {\n if (this.isExpanded) {\n const expandedItem = this.menuItems.find(item => item.isExpanded);\n if (expandedItem !== undefined) {\n expandedItem.onMegaMenuItemCollapse();\n }\n this.collapseMenu();\n }\n }\n\n private collapseMenu(): void {\n this.isExpanded = false;\n this.isTwoPanels = false;\n this.isOnePanel = false;\n this.enableScroll();\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.menuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.menuItems.length - 1) {\n this.menuItems.get(index+1).onFocus();\n }\n }\n\n private subscribeToAppShellBreakpoints(): void {\n this.euiAppShellService.breakpoints$\n .pipe(takeUntil(this.destroy$))\n .subscribe((bkps: any) => {\n this.breakpointsValue = bkps ?? this.breakpointsValue;\n\n if (typeof bkps?.isMobile !== 'undefined' || typeof bkps?.isTablet !== 'undefined') {\n this.isMobileBreakpoint = !!bkps.isMobile;\n this.isTablet = !!bkps.isTablet;\n return;\n }\n\n if (typeof bkps?.width === 'number') {\n const w = bkps.width;\n this.isMobileBreakpoint = w <= 415;\n this.isTablet = w > 415 && w <= 1140;\n return;\n }\n\n if (bkps && typeof bkps === 'object') {\n this.isMobileBreakpoint = !!(bkps.Handset || bkps.Small || bkps.mobile);\n this.isTablet = !!(bkps.Tablet || bkps.tablet);\n return;\n }\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined) {\n this.isRtl = rtlState;\n }\n });\n }\n\n private disableScroll(): void {\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n this.renderer.addClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n}\n","<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" aria-expanded=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isOpenMobile) {\n <span class=\"ecl-button__label\">{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span class=\"ecl-button__label\">{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>","import { NgModule } from '@angular/core';\nimport { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDescriptionDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nconst COMPONENTS = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuFeaturedListItemDescriptionDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n];\n/**\n * Module that provides the EclMegaMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MEGA_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMegaMenuModule {}\n","import { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDescriptionDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nexport * from './directives/ecl-mega-menu-container.directive';\nexport * from './directives/ecl-mega-menu-featured-list.directive';\nexport * from './directives/ecl-mega-menu-featured-picture.directive';\nexport * from './directives/ecl-mega-menu-list.directive';\nexport * from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nexport * from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nexport * from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nexport * from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nexport * from './ecl-mega-menu.component';\nexport * from './ecl-mega-menu.module';\nexport * from './models/ecl-mega-menu-item.model';\nexport * from './services/index';\n\nexport const EUI_ECL_MEGA_MENU = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuFeaturedListItemDescriptionDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-mega-menu.mjs","sources":["../../components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.ts","../../components/ecl-mega-menu/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.html","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.html","../../components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.html","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.html","../../components/ecl-mega-menu/ecl-mega-menu.component.ts","../../components/ecl-mega-menu/ecl-mega-menu.component.html","../../components/ecl-mega-menu/index.ts","../../components/ecl-mega-menu/eui-ecl-components-ecl-mega-menu.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu container.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuContainer]',\n})\n\nexport class EclMegaMenuContainerDirective extends ECLBaseDirective {\n\n @HostBinding('class.ecl') hasClass = true;\n}\n","import { Directive, HostBinding, ElementRef, inject, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured list.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedList]',\n})\nexport class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to a mega-menu featured list item.\n * Also has method that returns item height.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedListItem]',\n})\nexport class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item') cmpClass = true;\n\n @HostBinding('class.ecl-mega-menu__featured-list__item--image-only')\n @Input({ transform: booleanAttribute }) isImageOnly = false;\n\n @HostBinding('class.ecl-mega-menu__featured-list__item--combo')\n @Input({ transform: booleanAttribute }) isCombo = false;\n\n private el = inject(ElementRef);\n\n getEclMegaMenuFeaturedItemHeight(): number {\n return this.el.nativeElement.scrollHeight;\n }\n}\n\n@Directive({\n selector: '[eclMegaMenuFeaturedListItemDescription]',\n})\nexport class EclMegaMenuFeaturedListItemDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item-description') cmpClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured picture.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedPicture]',\n})\nexport class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive that adds specific class to the mega-menu featured image.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedImage]',\n})\nexport class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-image') cmpClass = true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuDataService {\n\n\tpublic eclMegaMenuInfoBottomYSubject$: Observable<number>;\n\tpublic eclSubItemExpanded$: Observable<boolean>;\n\tpublic eclSubItemClicked$: Observable<EclMegaMenuItem>;\n\tpublic eclSubItemEscape$: Observable<boolean>;\n\n\tprivate eclMegaMenuInfoBottomYSubject: Subject<number> = new Subject<number>();\n\tprivate eclSubItemExpanded: Subject<boolean> = new Subject<boolean>();\n\tprivate eclSubItemClicked: Subject<EclMegaMenuItem> = new Subject<EclMegaMenuItem>();\n\tprivate eclSubItemEscape: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n\t\tthis.eclMegaMenuInfoBottomYSubject$ = this.eclMegaMenuInfoBottomYSubject.asObservable();\n this.eclSubItemExpanded$ = this.eclSubItemExpanded.asObservable();\n\t\tthis.eclSubItemClicked$ = this.eclSubItemClicked.asObservable();\n\t\tthis.eclSubItemEscape$ = this.eclSubItemEscape.asObservable();\n\t}\n\n\t/**\n\t * Used to synchronize size of the info panel and sublist.\n\t */\n\tupdateEclMegaMenuInfoSize(value: number): void {\n\t\tthis.eclMegaMenuInfoBottomYSubject.next(value);\n\t}\n\n eclSubItemToggle(isExpanded: boolean): void {\n\t\tthis.eclSubItemExpanded.next(isExpanded);\n\t}\n\n\teclSubItemClick(item: EclMegaMenuItem): void {\n\t\tthis.eclSubItemClicked.next(item);\n\t}\n\n\teclSubItemEscapeEvent(value: boolean): void {\n\t\tthis.eclSubItemEscape.next(value);\n\t}\n}","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuService {\n private renderer: Renderer2;\n\n constructor() {\n const rendererFactory = inject(RendererFactory2);\n\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n 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}","import { Component, ElementRef, HostBinding, Input, ContentChildren, forwardRef, QueryList, ViewChild, AfterContentInit } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuFeaturedListItemDirective } from '../directives/ecl-mega-menu-featured-list.directive';\n\n/**\n * This component represents the featured items panel.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuFeatured]',\n templateUrl: './ecl-mega-menu-featured.component.html',\n})\n\nexport class EclMegaMenuFeaturedComponent extends ECLBaseDirective implements AfterContentInit {\n\n @ViewChild('megaMenuFeaturedScrollable') megaMenuFeaturedScrollable: ElementRef;\n @HostBinding('class.ecl-mega-menu__featured') cmpClass = true;\n @HostBinding('style.height.px') eclMegaMenuFeaturedStyleHeight: number | null = null;\n @Input() title: string;\n @Input() titleId: string;\n @ContentChildren(forwardRef(() => EclLinkDirective), { descendants: true }) links: QueryList<EclLinkDirective>;\n @ContentChildren(forwardRef(() => EclMegaMenuFeaturedListItemDirective), { descendants: true }) featuredItems: QueryList<EclMegaMenuFeaturedListItemDirective>;\n ngAfterContentInit(): void {\n this.links?.forEach(link => link.class = 'ecl-mega-menu__featured-link');\n }\n /**\n * Calculates and returns the height of the component. The total height of all the list items.\n * @returns the height of the component\n */\n getEclMegaMenuFeaturedHeight(): number {\n let result = 0;\n this.featuredItems?.forEach(el => result += el.getEclMegaMenuFeaturedItemHeight());\n return result;\n }\n}\n","<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\nimport { EclMegaMenuService } from '../services/ecl-mega-menu.service';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\n\n/**\n * This component represents a sub-item in the mega-menu component. Applies styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuSubitem]',\n templateUrl: './ecl-mega-menu-subitem.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\n\nexport class EclMegaMenuSubitemComponent extends ECLBaseDirective implements EclMegaMenuItem {\n\n isExpanded = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__subitem'),\n this.isCurrent ? 'ecl-mega-menu__subitem--current' : '',\n this.isExpanded ? 'ecl-mega-menu__subitem--expanded' : '',\n this.isSeeAll ? 'ecl-mega-menu__see-all' : '',\n this.isParentLink ? 'ecl-mega-menu__parent-link' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets id for the button element.\n */\n @Input() buttonId: string;\n @Input() label = '';\n /**\n * If the link redirects to external page. Adds an 'external' icon.\n */\n @Input({ transform: booleanAttribute }) isExternal = false;\n /**\n * If the link is external, this will be the title of the external icon.\n */\n @Input() externalIconTitle: 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 /**\n * Used for the 'View all' link.\n */\n @Input({ transform: booleanAttribute }) isSeeAll = false;\n /**\n * Adds custom attributes to an anchor element.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * Wrapper div element of the second level sub-items.\n */\n @ViewChild('megaMenuLevel2') megaMenuLevel2: ElementRef;\n /**\n * The link element, if it exists. Item can have either link or button.\n */\n @ViewChild(EclLinkDirective) subMenuItemLink: EclLinkDirective;\n /**\n * The button element, if it exists. Item can have either link or button.\n */\n @ViewChild('subMenuItemBtn') subMenuItemBtn: EclButtonComponent;\n\n /**\n * The directive of the submenu lits.\n */\n @ContentChild(EclMegaMenuSublistDirective) submenu?: EclMegaMenuSublistDirective;\n /**\n * The component for the featured items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent)) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n\n @Output() megaMenuSubItemClicked = new EventEmitter();\n @Output() megaMenuSubItemKeydown = new EventEmitter();\n\n isCurrent = false;\n isMobileBreakpoint = false;\n /**\n * Used to set the height of the second level subitems container.\n */\n level2StyleHeight: number | null = null;\n\n @HostBinding('style.display') protected display = '';\n \n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isParentLink = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n\n constructor() {\n super();\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n if (this.subMenuItemLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.subMenuItemLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get hasFeatured(): boolean {\n return !!this.eclMegaMenuFeatured;\n }\n\n /**\n * Sets focus on either link or button element.\n */\n onFocus(): void{\n if (this.subMenuItemLink) {\n this.subMenuItemLink.onFocus();\n } else if (this.subMenuItemBtn) {\n this.subMenuItemBtn.onFocus();\n }\n }\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n\n getMegaMenuSubItemHeight(): number {\n return this.el.nativeElement.getBoundingClientRect().height;\n }\n\n /**\n * Show or hide the subitems.\n */\n onButtonClick(): void {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n this.eclMegaMenuDataService.eclSubItemClick(this);\n if (this.isMobileBreakpoint) {\n this.isParentLink = true;\n setTimeout(() => this.calculateLevel2Styles());\n }\n this.megaMenuSubItemClicked.emit();\n }\n\n /**\n * If link is clicked -> emit event and close all opened menus and submenus.\n */\n onLinkClick(): void {\n this.eclMegaMenuDataService.eclSubItemClick(this);\n this.megaMenuSubItemClicked.emit();\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if (!((evt as KeyboardEvent).key === KeyCode.TAB)) {\n if ((evt as KeyboardEvent).key === KeyCode.ESCAPE) {\n this.eclMegaMenuDataService.eclSubItemEscapeEvent(true);\n } else {\n this.megaMenuSubItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n }\n\n onSubMenuItemCollapse(): void {\n if (this.isExpanded) {\n this.eclMegaMenuDataService.eclSubItemToggle(false);\n this.isCurrent = false;\n this.isExpanded = false;\n this.isParentLink = false;\n }\n }\n\n onSubMenuItemExpand(): void {\n this.isCurrent = true;\n this.isExpanded = true;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n }\n\n private calculateLevel2Styles(): void {\n if (this.megaMenuLevel2) {\n const subMegaRect = this.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n const availableHeight = window.innerHeight - subMegaTop;\n this.level2StyleHeight = availableHeight;\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 (!isSeeAll) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { ContentChild, ContentChildren, Directive, DoCheck, ElementRef, EventEmitter, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSubitemComponent } from '../ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\n\n/**\n * Directive that adds specific class to the mega-menu list.\n */\n@Directive({\n selector: 'ul[eclMegaMenuList]',\n})\nexport class EclMegaMenuListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to the mega-menu spacer.\n */\n@Directive({\n selector: 'li[eclMegaMenuSpacer]',\n})\nexport class EclMegaMenuSpacerDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__spacer') cmpClass = true;\n}\n\n/**\n * Directive that adds specific classes and functionality to the mega-menu sublist.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSublist]',\n})\nexport class EclMegaMenuSublistDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-mega-menu__sublist') cmpClass = true;\n @HostBinding('class.ecl-mega-menu__sublist--scrollable') isScrollable = false;\n @HostBinding('style.top.px') styleTop: number | null = null;\n\n @ContentChildren(forwardRef(() => EclMegaMenuSubitemComponent)) submenuItems: QueryList<EclMegaMenuSubitemComponent>;\n @ContentChild(forwardRef(() => EclMegaMenuSpacerDirective)) spacer: QueryList<EclMegaMenuSpacerDirective>;\n @Output() megaMenuSubItemClicked = new EventEmitter();\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuSubitemComponent>;\n private isMobileBreakpoint = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n });\n }\n\n ngDoCheck(): void {\n // When a new item is added -> subscribe to item's events.\n const diff = this.differ.diff(this.submenuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When parent mega-menu item is clicked.\n * @param isExpanded - 'true', if parent item is expanded, 'false' if item is collapsed.\n */\n onParentMegaMenuItemClick(isExpanded: boolean): void {\n if (isExpanded) {\n // If mega-menu item is expanded -> find the first mega-menu list child (i.e. sub item) and expand it's children.\n // if (!this.isMobileBreakpoint) {\n // const itemWithChildren = this.submenuItems.find(item => item.hasChildren);\n // itemWithChildren?.onSubMenuItemExpand();\n // }\n } else {\n this.submenuItems.forEach(item => {\n if (item.isExpanded) {\n item.onSubMenuItemCollapse();\n }\n });\n }\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuSubitemComponent): void {\n item.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuSubItemClicked(item);\n });\n\n item.megaMenuSubItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMegaMenuSubItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuSubItemClicked(item: EclMegaMenuSubitemComponent): void {\n this.submenuItems.filter(subItem => subItem !== item).forEach(el => {\n el.onSubMenuItemCollapse();\n if (this.isMobileBreakpoint && item.hasChildren) {\n el.onHide();\n }\n });\n this.megaMenuSubItemClicked.emit();\n }\n\n private onMegaMenuSubItemKeydown(item: EclMegaMenuSubitemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.submenuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.submenuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.submenuItems.length - 1) {\n this.submenuItems.get(index+1).onFocus();\n }\n }\n\n private resetStyles(): void {\n if (this.isMobileBreakpoint) {\n this.isScrollable = true;\n } else {\n this.isScrollable = false;\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 setTimeout(() => this.resetStyles());\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, Input, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\n\n/**\n * Component for displaying some custom information for the current menu item.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuInfo]',\n templateUrl: './ecl-mega-menu-info.component.html',\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Applies custom styles for info component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__info'),\n this.linkItem ? 'ecl-mega-menu__info--has-link' : '',\n ]\n .join(' ')\n .trim();\n }\n /**\n * Sets the height of the component.\n */\n @HostBinding('style.height.px') eclMegaMenuInfoStyleHeight: number | null = null;\n /**\n * Sets the opacity of the component.\n */\n @HostBinding('style.opacity') eclMegaMenuInfoStyleOpacity: number | null = null;\n\n @Input() title: string;\n\n /**\n * When the info panel contains link.\n */\n @ContentChild(forwardRef(() => EclLinkDirective)) linkItem: EclLinkDirective;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n\n ngAfterViewInit(): void {\n // Sets class of the sub link, if any.\n if (this.linkItem) {\n setTimeout(() => this.linkItem.class = 'ecl-mega-menu__info-link');\n }\n // Emits the bottom value of the element. Needed to calculate the size of the sublist. (for the same parent menu item)\n this.publishSize();\n }\n\n /**\n * Used to calculate the height of the parent element.\n * @returns the height of the component.\n */\n getInfoPanelScrollHeight() : number {\n return this.el.nativeElement.scrollHeight;\n }\n\n /**\n * Used to calulate the size of the info panel.\n */\n private publishSize(): void {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuDataService.updateEclMegaMenuInfoSize(bottomY);\n }\n}\n","<span class=\"ecl-mega-menu__info-title\">{{ title }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n afterNextRender, booleanAttribute,\n ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter,\n forwardRef,\n HostBinding, HostListener,\n inject, Renderer2,\n Input, OnDestroy, Output,\n ViewChild, AfterContentInit,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuContainerDirective } from '../directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from '../ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuDataService } from '../services/ecl-mega-menu-data.service';\nimport { EclMegaMenuService } from '../services/ecl-mega-menu.service';\n\n/**\n * This component represents a mega menu item. Adds functionality and styling, according to ECL standards.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuItem]',\n templateUrl: './ecl-mega-menu-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\n\nexport class EclMegaMenuItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n\n /**\n * Returns current menu item classes, depending on item's state (it's properties' values).\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__item'),\n this.eclMegaMenuSublist ? 'ecl-mega-menu__item--has-children' : '',\n this.eclMegaMenuContainer ? 'ecl-mega-menu__item--has-container' : '',\n this.isCurrent ? 'ecl-mega-menu__item--current' : '',\n this.isExpanded ? 'ecl-mega-menu__item--expanded' : '',\n this.isPromotional ? 'ecl-mega-menu__item--promotional' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isExpanded = false;\n @HostBinding('attr.aria-haspopup') hasPopup = this.hasChildren ? true : null;\n\n @Input({ transform: booleanAttribute }) isPromotional = false;\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 /**\n * Used in case user wants to set some custom attributes for the anchr tag.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n @Output() megaMenuItemClicked = new EventEmitter();\n @Output() megaMenuItemKeydown = new EventEmitter<KeyboardEvent>();\n /**\n * The wrapper around the subitems, if any.\n */\n @ViewChild('eclMegaMenuMega') eclMegaMenuMega: ElementRef;\n /**\n * This elemend hold some extra content, different from subitems. For example just some text or some custom links, etc.\n */\n @ViewChild('mainPanel') mainPanel: ElementRef;\n /**\n * Actual link of the menu item. If the menu has no children, but redirects/loads another page.\n */\n @ViewChild(EclLinkDirective) menuLink: EclLinkDirective;\n /**\n * Element, tat is rendered if the menu item has children.\n */\n @ViewChild('menuBtn') menuBtn: EclButtonComponent;\n /**\n * Element, that would contain some info about the current item or it's children. First in the container.\n */\n @ContentChild(forwardRef(() => EclMegaMenuInfoComponent)) eclMegaMenuInfo: EclMegaMenuInfoComponent;\n /**\n * Element, that holds the sub items of the current menu items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) eclMegaMenuSublist: EclMegaMenuSublistDirective;\n\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent), { descendants: false }) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n /**\n * Component, that consist of some custom info, text or whatever. When the menu item has no children, but still some\n * sub container is displayed.\n */\n @ContentChild(forwardRef(() => EclMegaMenuContainerDirective)) eclMegaMenuContainer: EclMegaMenuContainerDirective;\n\n containerStyleHeight: number | null = null;\n isCurrent = false;\n isMobileBreakpoint = false;\n megaMenuMegaStyleHeight: number | null = null;\n megaMenuMegaStyleOpacity: number | null = null;\n wrapperStyleHeight: number | null = null;\n wrapperStyleTop: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLarge = false;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n const eclMegaMenuDataService = this.eclMegaMenuDataService;\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngAfterContentInit(): void {\n this.eclMegaMenuSublist?.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n setTimeout(() => this.checkDropdownHeight(), 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasChildren(): boolean {\n return !!this.eclMegaMenuSublist || !!this.eclMegaMenuContainer;\n }\n\n get hasSublist(): boolean {\n return !!this.eclMegaMenuSublist;\n }\n\n get hasFeatured(): boolean {\n return !!this.eclMegaMenuFeatured;\n }\n\n get hasContainer(): boolean {\n return !!this.eclMegaMenuContainer;\n }\n\n /**\n * Set the focus on the sub element - link or button.\n */\n onFocus(): void {\n if (this.menuLink) {\n this.menuLink.onFocus();\n } else if (this.menuBtn) {\n this.menuBtn.onFocus();\n }\n }\n\n /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n @HostListener('window:resize')\n onResize(): void {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }\n });\n }\n\n /**\n * Manage styling and functionality for children and siblings, when item is clicked.\n */\n onMegaMenuItemClick(): void {\n if (this.hasChildren) {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n if (this.isExpanded) {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n this.hidePanels();\n setTimeout(() => {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }, 100);\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n this.megaMenuItemClicked.emit();\n }\n\n /**\n * Manage styling and functionality when item is collapsed.\n */\n onMegaMenuItemCollapse(): void {\n this.isCurrent = false;\n this.isExpanded = false;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if ((evt as KeyboardEvent).key === KeyCode.TAB && !(evt as KeyboardEvent).shiftKey) {\n // if menu is open, navigate to children\n } else {\n this.megaMenuItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint) {\n const availableHeight = window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.wrapperStyleTop = bottomY;\n } else {\n const height = this.el.nativeElement.getBoundingClientRect().height;\n this.wrapperStyleTop = height;\n }\n }\n\n private resetWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity = 0;\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 0;\n }\n }\n\n private checkDropdownHeight(): void {\n this.hidePanels();\n let infoPanelHeight = 0;\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n\n if (!this.isMobileBreakpoint) {\n const heights = [];\n let height = 0;\n let itemsHeight = 0;\n let subItemsHeight = 0;\n let featuredHeight = 0;\n let featuredHeight2 = 0;\n\n if (this.hasContainer) {\n const viewportHeight = window.innerHeight;\n const mainTop = this.mainPanel.nativeElement.getBoundingClientRect().top;\n this.containerStyleHeight = viewportHeight - mainTop;\n } else {\n if (this.eclMegaMenuInfo) {\n infoPanelHeight = this.eclMegaMenuInfo.getInfoPanelScrollHeight() + 16;\n if (this.isLarge) {\n heights.push(infoPanelHeight);\n } else {\n itemsHeight = infoPanelHeight;\n subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 1;\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n if (this.eclMegaMenuSublist.spacer) {\n itemsHeight += 25;\n }\n heights.push(itemsHeight);\n }\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(item => item.hasChildren && item.isExpanded);\n if (expandedSubItem !== undefined) {\n expandedSubItem.submenu.submenuItems.forEach(item => {\n subItemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(subItemsHeight);\n if (expandedSubItem.eclMegaMenuFeatured) {\n featuredHeight += expandedSubItem.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight);\n }\n }\n\n if (this.eclMegaMenuFeatured) {\n featuredHeight2 = this.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n }\n const maxHeight = Math.max(...heights);\n const containerBounding = this.el.nativeElement.getBoundingClientRect();\n const containerBottom = containerBounding.bottom;\n // By requirements, limit the height to the 70% of the available space.\n const availableHeight = (window.innerHeight - containerBottom) * 0.9;\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = height;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight = height;\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight = height - infoPanelHeight;\n }\n if (this.eclMegaMenuInfo && this.isLarge) { \n // this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = height;\n }\n\n if (expandedSubItem !== undefined) {\n if (this.isLarge) {\n expandedSubItem.level2StyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n if (this.eclMegaMenuFeatured) {\n if (this.isLarge) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else if (!this.isMobileBreakpoint) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n this.megaMenuMegaStyleOpacity = 1;\n this.cd.markForCheck();\n }\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small, '(min-width: 1368px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints[Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small];\n this.isLarge = result.breakpoints['(min-width: 1368px)'];\n this.resetWrapperStyle();\n });\n }\n}\n","@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight\" [style.opacity]=\"megaMenuMegaStyleOpacity\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}","import { Component, ContentChildren, DoCheck, ElementRef, EventEmitter, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, Renderer2, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective, EclRtlService } from '@eui/ecl/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuItem } from './models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from './services/ecl-mega-menu-data.service';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The 'eclMegaMenu' is an advanced navigation component designed for complex sites with deep hierarchies.\n * It can provide descriptive text for first level items, accommodate up to three levels of navigation,\n * and additionally allows a featured column that can be used to either promote parent-page specific or site-wide pages,\n * hidden deep into the lower levels of the hierarchy.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'nav[eclMegaMenu]',\n templateUrl: './ecl-mega-menu.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\n\nexport class EclMegaMenuComponent extends ECLBaseDirective implements DoCheck, OnDestroy {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu'),\n this.isTwoPanels ? 'ecl-mega-menu--two-panels' : '',\n this.isOnePanel ? 'ecl-mega-menu--one-panel' : '',\n this.isRtl ? 'ecl-mega-menu--rtl' : '',\n this.isTablet ? 'ecl-mega-menu--forced-mobile' : '',\n this.isStartPanel ? 'ecl-mega-menu--start-panel' : '',\n this.hasSecondaryFeatured ? 'ecl-mega-menu--has-secondary-featured' : '',\n ].join(' ');\n }\n\n isExpanded = false;\n\n @HostBinding('attr.data-expanded')\n get expandedAttr() {\n return this.isExpanded ? 'true' : null;\n }\n\n /**\n * The 'role' attribute of the component is set to 'navigation'. should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * The event that is emitted, when a menu item is selected.\n */\n @Output() megaMenuItemSelect = new EventEmitter<EclMegaMenuItem>();\n @ContentChildren(forwardRef(() => EclMegaMenuItemComponent), { descendants: true }) menuItems: QueryList<EclMegaMenuItemComponent>;\n\n /**\n * If the menu is in mobile mode.\n */\n isMobileBreakpoint = false;\n /**\n * If the menu is expanded in mobile mode.\n */\n isMobileExpanded = false;\n /**\n * When a menu item is expanded and has only one panel (one sub-level).\n */\n isOnePanel = false;\n /**\n * If the menu is open, when in mobile mode.\n */\n isOpenMobile = false; // used for mobile only\n /**\n * Used in mobile mode - when the start panel is open (i.e. the hamburger button is clicked).\n */\n isStartPanel = false;\n /**\n * If a menu item is expanded and has two panels/levels displayed.\n */\n isTwoPanels = false;\n /**\n * Used to position the overlay, when a menu item is expanded.\n */\n overlayStyleTop: number;\n innerStyleTop: number;\n\n /** Adds the relative class to the component, when a submenu is opened and this submenu has a featured component child */\n hasSecondaryFeatured = false;\n\n /**\n * Represents the current viewport breakpoint states.\n */\n public breakpointsValue: any = {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n };\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuItemComponent>;\n private isRtl = false;\n private isTablet = false;\n private parentHeaderBottomSpaceY: number;\n private differs = inject(IterableDiffers);\n private eclRtlService = inject(EclRtlService);\n private euiAppShellService = inject(EuiAppShellService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToAppShellBreakpoints();\n this.handleRtlChangeState();\n this.subscribeToEvents();\n });\n }\n\n ngDoCheck(): void {\n // For each added menu item - subscribe to item events.\n const diff = this.differ.diff(this.menuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When clicking outside the menu - close any expanded item.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n if (this.isExpanded) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n onMegaMenuMobileOpen(): void {\n if (this.isOpenMobile) {\n this.onMegaMenuMobileClose();\n } else {\n this.disableScroll();\n this.isExpanded = true;\n this.isOnePanel = false;\n this.isTwoPanels = false;\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = true;\n this.isMobileExpanded = true;\n }\n this.isOpenMobile = true;\n\n this.eclHeaderMenuComunicationService.updateOpen(true);\n\n // Focus first element\n if (this.menuItems.length > 0) {\n this.menuItems.first.onFocus();\n }\n }\n }\n\n onMegaMenuMobileClose(): void {\n this.enableScroll();\n this.collapseMenu();\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = false;\n this.isMobileExpanded = false;\n }\n this.isOpenMobile = false;\n }\n\n /**\n * Used for mobile menu - when user clicks on 'Back' button. Returns to the previous state.\n */\n onMegaMenuBack(): void {\n if (this.isOnePanel) {\n this.onMegaMenuBackToStartPanel();\n } else if (this.isTwoPanels) {\n this.onMegaMenuBackToOnePanel();\n }\n }\n\n positionMenuOverlay(parentHeaderBottomSpaceY): void {\n this.parentHeaderBottomSpaceY = parentHeaderBottomSpaceY;\n if (this.isMobileBreakpoint && parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n this.innerStyleTop = parentHeaderBottomSpaceY;\n } else {\n if (this.parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n } else {\n const menuBottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.overlayStyleTop = menuBottomY;\n }\n }\n }\n\n private onMegaMenuBackToOnePanel(): void {\n\n this.isStartPanel = false;\n this.isTwoPanels = false;\n this.isOnePanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n const currentSubItem = currentItem.eclMegaMenuSublist.submenuItems.find(item => item.isExpanded);\n this.hasSecondaryFeatured = false;\n if (this.isMobileBreakpoint) {\n currentItem.eclMegaMenuSublist.submenuItems.filter(item => !item.isExpanded).forEach(el => {\n el.onShow();\n });\n }\n currentSubItem.isCurrent = false;\n currentSubItem.isExpanded = false;\n }\n\n private onMegaMenuBackToStartPanel(): void {\n this.isOnePanel = false;\n this.isStartPanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n currentItem.isCurrent = false;\n currentItem.isExpanded = false;\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private subscribeToEvents(): void {\n\n this.eclMegaMenuDataService.eclSubItemExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n this.isTwoPanels = isExpanded;\n this.isOnePanel = !isExpanded;\n this.isStartPanel = false;\n });\n\n this.eclMegaMenuDataService.eclSubItemClicked$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.onSubMenuItemClicked(item);\n this.megaMenuItemSelect.emit(item);\n });\n\n this.eclMegaMenuDataService.eclSubItemEscape$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.closeMenuAndAnyOpenSubMenu();\n });\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuItemComponent): void {\n item.megaMenuItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuItemClicked(item);\n });\n\n item.megaMenuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: KeyboardEvent) => {\n this.onMegaMenuItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuItemClicked(item: EclMegaMenuItemComponent): void {\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileBreakpoint) {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n this.isStartPanel = false;\n } else {\n if (item.eclMegaMenuSublist?.submenuItems.first.hasChildren) {\n this.isOnePanel = false;\n this.isTwoPanels = true;\n } else {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n }\n }\n this.positionMenuOverlay(this.parentHeaderBottomSpaceY);\n this.isExpanded = true;\n this.disableScroll();\n } else {\n this.collapseMenu();\n }\n } else {\n this.collapseMenu();\n }\n this.megaMenuItemSelect.emit(item);\n }\n\n private onMegaMenuItemKeydown(item: EclMegaMenuItemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.menuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ESCAPE: {\n this.closeMenuAndAnyOpenSubMenu();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private onSubMenuItemClicked(item: EclMegaMenuItem): void {\n if (item.isExpanded && item.hasFeatured) {\n this.hasSecondaryFeatured = true;\n } else {\n this.hasSecondaryFeatured = false;\n }\n if (!item.hasChildren) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n private closeMenuAndAnyOpenSubMenu(): void {\n if (this.isExpanded) {\n const expandedItem = this.menuItems.find(item => item.isExpanded);\n if (expandedItem !== undefined) {\n expandedItem.onMegaMenuItemCollapse();\n }\n this.collapseMenu();\n }\n }\n\n private collapseMenu(): void {\n this.isExpanded = false;\n this.isTwoPanels = false;\n this.isOnePanel = false;\n this.enableScroll();\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.menuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.menuItems.length - 1) {\n this.menuItems.get(index+1).onFocus();\n }\n }\n\n private subscribeToAppShellBreakpoints(): void {\n this.euiAppShellService.breakpoints$\n .pipe(takeUntil(this.destroy$))\n .subscribe((bkps: any) => {\n this.breakpointsValue = bkps ?? this.breakpointsValue;\n\n if (typeof bkps?.isMobile !== 'undefined' || typeof bkps?.isTablet !== 'undefined') {\n this.isMobileBreakpoint = !!bkps.isMobile;\n this.isTablet = !!bkps.isTablet;\n return;\n }\n\n if (typeof bkps?.width === 'number') {\n const w = bkps.width;\n this.isMobileBreakpoint = w <= 415;\n this.isTablet = w > 415 && w <= 1140;\n return;\n }\n\n if (bkps && typeof bkps === 'object') {\n this.isMobileBreakpoint = !!(bkps.Handset || bkps.Small || bkps.mobile);\n this.isTablet = !!(bkps.Tablet || bkps.tablet);\n return;\n }\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined) {\n this.isRtl = rtlState;\n }\n });\n }\n\n private disableScroll(): void {\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n this.renderer.addClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n}\n","<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" aria-expanded=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isOpenMobile) {\n <span class=\"ecl-button__label\">{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span class=\"ecl-button__label\">{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>","import { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDescriptionDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nexport * from './directives/ecl-mega-menu-container.directive';\nexport * from './directives/ecl-mega-menu-featured-list.directive';\nexport * from './directives/ecl-mega-menu-featured-picture.directive';\nexport * from './directives/ecl-mega-menu-list.directive';\nexport * from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nexport * from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nexport * from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nexport * from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nexport * from './ecl-mega-menu.component';\nexport * from './models/ecl-mega-menu-item.model';\nexport * from './services/index';\n\nexport const EUI_ECL_MEGA_MENU = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuFeaturedListItemDescriptionDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}