@eui/ecl 23.0.0-alpha.4 → 23.0.0-alpha.5
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.
- package/docs/changelog.html +38 -0
- package/docs/components/EclAddToCalendarComponent.html +7 -62
- package/docs/components/EclAnimatedNumbersComponent.html +0 -39
- package/docs/components/EclAppComponent.html +12 -72
- package/docs/components/EclBannerComponent.html +46 -46
- package/docs/components/EclBlockquoteComponent.html +6 -1
- package/docs/components/EclCarouselComponent.html +5 -0
- package/docs/components/EclCategoryFilterComponent.html +5 -0
- package/docs/components/EclCategoryFilterItemComponent.html +15 -10
- package/docs/components/EclCheckboxLabelComponent.html +1 -1
- package/docs/components/EclContentItemComponent.html +4 -0
- package/docs/components/EclDateBlockComponent.html +43 -18
- package/docs/components/EclExpandableComponent.html +63 -1
- package/docs/components/EclFeaturedComponent.html +46 -37
- package/docs/components/EclFileComponent.html +19 -14
- package/docs/components/EclFileItemsComponent.html +31 -1
- package/docs/components/EclFormLabelComponent.html +1 -1
- package/docs/components/EclGalleryComponent.html +29 -29
- package/docs/components/EclGalleryItemComponent.html +47 -47
- package/docs/components/EclIconComponent.html +158 -48
- package/docs/components/EclInpageNavigationComponent.html +21 -1
- package/docs/components/EclInpageNavigationItemComponent.html +39 -1
- package/docs/components/EclListIllustrationComponent.html +47 -47
- package/docs/components/EclListIllustrationItemComponent.html +1 -1
- package/docs/components/EclMediaContainerComponent.html +20 -20
- package/docs/components/EclMegaMenuFeaturedComponent.html +6 -1
- package/docs/components/EclMegaMenuInfoComponent.html +11 -1
- package/docs/components/EclMegaMenuItemComponent.html +44 -34
- package/docs/components/EclMegaMenuSubitemComponent.html +46 -31
- package/docs/components/EclMenuItemComponent.html +12 -2
- package/docs/components/EclMenuMegaItemComponent.html +8 -3
- package/docs/components/EclMultiselectComponent.html +56 -56
- package/docs/components/EclMultiselectDropdownComponent.html +1 -1
- package/docs/components/EclMultiselectOptgroupComponent.html +6 -1
- package/docs/components/EclNavigationListItemComponent.html +1 -1
- package/docs/components/EclNotificationComponent.html +32 -1
- package/docs/components/EclPaginationItemComponent.html +84 -59
- package/docs/components/EclRatingFieldComponent.html +98 -2
- package/docs/components/EclSearchFormComponent.html +41 -1
- package/docs/components/EclSelectContainerComponent.html +116 -1
- package/docs/components/EclSiteFooterComponent.html +1 -1
- package/docs/components/EclSiteFooterCoreComponent.html +6 -1
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +16 -1
- package/docs/components/EclSiteFooterRowCommonComponent.html +6 -1
- package/docs/components/EclSiteHeaderComponent.html +27 -27
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +96 -86
- package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
- package/docs/components/EclSiteHeaderSearchComponent.html +20 -10
- package/docs/components/EclSocialMediaFollowComponent.html +7 -2
- package/docs/components/EclSocialMediaFollowItemComponent.html +40 -25
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +6 -1
- package/docs/components/EclSplashPageLanguageContainerComponent.html +6 -1
- package/docs/components/EclSplashPageLanguageLinkComponent.html +6 -1
- package/docs/components/EclTabComponent.html +50 -20
- package/docs/components/EclTabsComponent.html +1 -1
- package/docs/components/EclTagComponent.html +6 -1
- package/docs/components/EclTimelineComponent.html +4 -169
- package/docs/components/EclTimelineItemComponent.html +104 -1
- package/docs/directives/EclAccordionDirective.html +9 -99
- package/docs/directives/EclFileTitleDirective.html +5 -0
- package/docs/directives/EclFileUploadDirective.html +120 -0
- package/docs/directives/EclGalleryMediaDirective.html +5 -0
- package/docs/directives/EclMediaContainerIframeDirective.html +9 -11
- package/docs/directives/EclMediaContainerItemDirective.html +5 -0
- package/docs/directives/EclMultiselectOptionDirective.html +20 -10
- package/docs/directives/EclRadioDirective.html +18 -13
- package/docs/directives/EclSelectDirective.html +40 -0
- package/docs/directives/EclSiteFooterListDirective.html +5 -104
- package/docs/directives/EclSiteFooterSectionDirective.html +1 -1
- package/docs/directives/EclSiteFooterTitleDirective.html +29 -0
- package/docs/directives/EclTableHeaderDirective.html +5 -0
- package/docs/directives/EclTextMediaMediaAnchorDirective.html +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclAddToCalendarComponent.md +1 -1
- package/docs/json/EclBannerComponent.md +7 -7
- package/docs/json/EclCategoryFilterItemComponent.md +1 -1
- package/docs/json/EclDateBlockComponent.md +1 -1
- package/docs/json/EclExpandableComponent.md +2 -0
- package/docs/json/EclFeaturedComponent.md +3 -3
- package/docs/json/EclFileComponent.md +1 -1
- package/docs/json/EclFileItemsComponent.md +1 -0
- package/docs/json/EclGalleryComponent.md +4 -4
- package/docs/json/EclGalleryItemComponent.md +2 -2
- package/docs/json/EclIconComponent.md +4 -4
- package/docs/json/EclInpageNavigationItemComponent.md +1 -0
- package/docs/json/EclListIllustrationComponent.md +3 -3
- package/docs/json/EclMediaContainerComponent.md +1 -1
- package/docs/json/EclMediaContainerIframeDirective.md +2 -2
- package/docs/json/EclMegaMenuItemComponent.md +2 -2
- package/docs/json/EclMegaMenuSubitemComponent.md +3 -3
- package/docs/json/EclMenuItemComponent.md +1 -1
- package/docs/json/EclMenuMegaItemComponent.md +1 -1
- package/docs/json/EclMultiselectComponent.md +3 -3
- package/docs/json/EclMultiselectOptionDirective.md +1 -1
- package/docs/json/EclNavigationListItemComponent.md +1 -1
- package/docs/json/EclNotificationComponent.md +1 -0
- package/docs/json/EclPaginationItemComponent.md +3 -3
- package/docs/json/EclRadioDirective.md +1 -1
- package/docs/json/EclRatingFieldComponent.md +1 -0
- package/docs/json/EclSearchFormComponent.md +1 -0
- package/docs/json/EclSelectContainerComponent.md +6 -0
- package/docs/json/EclSiteFooterSectionDirective.md +1 -1
- package/docs/json/EclSiteHeaderComponent.md +2 -2
- package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
- package/docs/json/EclSiteHeaderSearchComponent.md +1 -1
- package/docs/json/EclSocialMediaFollowComponent.md +1 -1
- package/docs/json/EclSocialMediaFollowItemComponent.md +4 -4
- package/docs/json/EclTabComponent.md +2 -1
- package/docs/json/EclTagComponent.md +1 -1
- package/docs/json/EclTextMediaMediaAnchorDirective.md +1 -1
- package/docs/json/EclTimelineItemComponent.md +1 -0
- package/docs/json/documentation.json +4188 -2895
- package/docs/llms.txt +154 -138
- package/docs/miscellaneous/variables.html +2 -2
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
- package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
- package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-app.d.ts +6 -6
- package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
- package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
- package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-card.d.ts +2 -3
- package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
- package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
- package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file.d.ts +7 -8
- package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
- package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
- package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
- package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-label.d.ts +3 -3
- package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
- package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
- package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
- package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
- package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
- package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
- package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
- package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
- package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts +13 -17
- package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
- package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
- package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
- package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-table.d.ts +4 -5
- package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
- package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
- package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
- package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
- package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
- package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
- package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
|
@@ -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/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/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../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 const computedStyle = window.getComputedStyle(this.el.nativeElement);\n return this.el.nativeElement.scrollHeight + parseFloat(computedStyle.marginBottom) + parseFloat(computedStyle.marginTop);\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 { 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 { 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 { NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, booleanAttribute, Component, ContentChild, DOCUMENT, ElementRef, EventEmitter, forwardRef, HostBinding, inject, Input, Output, ViewChild } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EuiAppShellService } from '@eui/core';\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 { distinctUntilChanged, map, Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\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';\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(forwardRef(() => 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 eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView; // Window | null\n private appShell = inject(EuiAppShellService);\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 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 observeBreakpointChanges(): void {\n this.appShell.getState<any>('breakpoints')\n .pipe(\n // ECL uses breakpointDesktop = 1140px. isLtLargeTablet covers xs/sm/md/lg (< 1140px).\n map(bp => !!(bp?.isLtLargeTablet)),\n distinctUntilChanged(),\n takeUntil(this.destroy$),\n )\n .subscribe((isMobile) => {\n const wasMobile = this.isMobileBreakpoint;\n this.isMobileBreakpoint = isMobile;\n\n // Reset computed heights when switching breakpoints\n if (wasMobile !== isMobile) {\n this.level2StyleHeight = null;\n if (this.eclMegaMenuFeatured) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n }\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\" [target]=\"target\" 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 { ContentChild, ContentChildren, Directive, DoCheck, ElementRef, EventEmitter, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, afterNextRender, forwardRef, inject, signal } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { distinctUntilChanged, map, 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 host: {\n '[style.height.px]': 'styleHeight()',\n },\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 styleHeight = signal<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 differs = inject(IterableDiffers);\n private appShell = inject(EuiAppShellService);\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 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 observeBreakpointChanges(): void {\n this.appShell.getState<any>('breakpoints')\n .pipe(\n map(bp => !!bp?.isLtLargeTablet), // xs/sm/md/lg => <= 996px boundary\n distinctUntilChanged(),\n takeUntil(this.destroy$),\n )\n .subscribe((isMobile) => {\n const wasMobile = this.isMobileBreakpoint;\n this.isMobileBreakpoint = isMobile;\n\n // Reset height/position values when switching between breakpoints\n // to avoid stale pixel values from the previous layout mode\n if (wasMobile !== isMobile) {\n this.styleHeight.set(null);\n this.styleTop = null;\n this.isScrollable = false;\n }\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, Input, OnDestroy, PLATFORM_ID, forwardRef, inject, signal } 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';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\nimport { Subject, fromEvent, auditTime, takeUntil } from 'rxjs';\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 host: {\n '[style.opacity]': 'eclMegaMenuInfoStyleOpacity()',\n },\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit, OnDestroy {\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 eclMegaMenuInfoStyleOpacity = signal<number | null>(null);\n\n @Input() title: string; \n @Input() titleId?: string;\n\n private platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView;\n private destroy$ = new Subject<void>();\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 if (isPlatformBrowser(this.platformId)) {\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 this.observeResize();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\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 /**\n * Re-publishes the info panel size on window resize so that dependent\n * components (e.g. sublist positioning) recalculate with current dimensions.\n */\n private observeResize(): void {\n if (this.window) {\n fromEvent(this.window, 'resize').pipe(\n auditTime(100),\n takeUntil(this.destroy$),\n ).subscribe(() => {\n this.publishSize();\n });\n }\n }\n}\n","<span class=\"ecl-mega-menu__info-title\" [attr.id]=\"titleId || null\">{{ 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 {\n AfterContentInit,\n afterNextRender, booleanAttribute,\n Component, ContentChild,\n ContentChildren,\n ElementRef, EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input, OnDestroy, Output,\n ViewChild,\n DOCUMENT,\n QueryList,\n Renderer2,\n input,\n signal,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EuiAppShellService } from '@eui/core';\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 { distinctUntilChanged, map, Subject, auditTime, fromEvent, 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 this.isOneLevelOnly() ? 'ecl-mega-menu__item--one-level-only' : '',\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 * This property should be used, when user wants the menu sub-items to use the maximum space available.\n * For example, if we have 10 sub-items, normally they will appear in one column only. If isOneLevelOnly is used, the sub-items\n * will take 2, 3, 4 columns, depending on presence of other sub-components.\n */\n isOneLevelOnly = input(false, { transform: booleanAttribute });\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 // Get all the sublists including childrens's sublist, to detect if it's only one level submenu.\n @ContentChildren(forwardRef(() => EclMegaMenuSublistDirective), { descendants: true }) eclMegaMenuSublists: QueryList<EclMegaMenuFeaturedComponent>;\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 = signal<number | null>(null);\n megaMenuMegaStyleOpacity = signal<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 readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView; // Window | null\n private appShellService = inject(EuiAppShellService);\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n this.eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n this.observeResizeWindow();\n });\n }\n\n ngAfterContentInit(): void {\n this.eclMegaMenuSublist?.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (!this.isMobileBreakpoint) {\n // Only hide/show the level-2 panel when switching sub-items\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(\n item => item.hasChildren && item.isExpanded\n );\n if (expandedSubItem && expandedSubItem.megaMenuLevel2) {\n expandedSubItem.megaMenuLevel2.nativeElement.style.opacity = '0';\n }\n }\n setTimeout(() => this.checkDropdownHeight(false), 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasNoInfo(): boolean {\n return !this.eclMegaMenuInfo;\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 * 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 /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n private observeResizeWindow(): void {\n if (this.window) {\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n } else {\n // Even when not expanded, reset computed heights on resize\n // so stale desktop values don't persist into tablet/mobile layout\n this.resetComputedHeights();\n }\n });\n });\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint && this.eclMegaMenuSublist) {\n const availableHeight = this.window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (!this.isMobileBreakpoint) {\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 /**\n * Resets all computed pixel heights on the info panel, mega panel, and wrapper.\n * Called when the viewport changes breakpoint so that stale desktop values\n * (e.g. info height of 227px) don't persist into tablet/mobile layout where\n * the elements should flow naturally.\n */\n private resetComputedHeights(): void {\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(null);\n }\n this.megaMenuMegaStyleHeight.set(null);\n this.megaMenuMegaStyleOpacity.set(null);\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n this.containerStyleHeight = null;\n\n // Reset featured panel height\n if (this.eclMegaMenuFeatured) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n\n // Reset sublist and sub-items heights\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.styleHeight.set(null);\n this.eclMegaMenuSublist.styleTop = null;\n this.eclMegaMenuSublist.isScrollable = false;\n\n // Reset level-2 heights on each subitem\n this.eclMegaMenuSublist.submenuItems?.forEach(subItem => {\n subItem.level2StyleHeight = null;\n if (subItem.eclMegaMenuFeatured) {\n subItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n });\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity.set(0);\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(0);\n }\n }\n\n /**\n * On mobile, calculate the height of the mega panel (level 1).\n * - If the item has a featured panel: set height on the mega div (.ecl-mega-menu__mega--has-featured)\n * - If no featured, panel 1: height is set on the sublist\n * - If no featured, panel 2: height is set on the level-2 div\n */\n private calculateMobileHeight(): void {\n if (!this.isMobileBreakpoint || !this.eclMegaMenuMega) {\n return;\n }\n if (this.hasFeatured) {\n // Has featured → set height on the mega div, no scrollable on sublist\n const megaRect = this.eclMegaMenuMega.nativeElement.getBoundingClientRect();\n const megaTop = megaRect.top;\n this.megaMenuMegaStyleHeight.set(this.window.innerHeight - megaTop);\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.isScrollable = false;\n this.eclMegaMenuSublist.styleHeight.set(null);\n }\n } else if (this.eclMegaMenuSublist) {\n this.megaMenuMegaStyleHeight.set(null);\n\n // Check if a sub-item with children is expanded (panel 2)\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(\n item => item.hasChildren && item.isExpanded\n );\n\n if (expandedSubItem && expandedSubItem.megaMenuLevel2) {\n // No featured, panel 2 → set height on the level-2 div\n const subMegaRect = expandedSubItem.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n expandedSubItem.level2StyleHeight = this.window.innerHeight - subMegaTop;\n // Clear sublist height and scrollable since panel 2 is now showing\n this.eclMegaMenuSublist.isScrollable = false;\n this.eclMegaMenuSublist.styleHeight.set(null);\n } else {\n // No featured, panel 1 → set height on the sublist\n const sublistRect = this.eclMegaMenuSublist.el.nativeElement.getBoundingClientRect();\n const sublistTop = sublistRect.top;\n this.eclMegaMenuSublist.styleHeight.set(this.window.innerHeight - sublistTop);\n this.eclMegaMenuSublist.isScrollable = true;\n }\n } else {\n this.megaMenuMegaStyleHeight.set(null);\n }\n }\n\n private checkDropdownHeight(hide = true): void {\n if (this.isMobileBreakpoint) {\n this.calculateMobileHeight();\n return;\n }\n\n if (hide) {\n this.hidePanels();\n }\n let infoPanelHeight = 0;\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n }\n\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 = this.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 subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(1);\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n if (this.isOneLevelOnly()) {\n itemsHeight = this.eclMegaMenuSublist.el.nativeElement.offsetHeight;\n } else {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n if (this.eclMegaMenuSublist.spacer) {\n itemsHeight += 25;\n }\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 featuredHeight += 5;\n heights.push(featuredHeight);\n }\n }\n\n if (this.eclMegaMenuFeatured) {\n featuredHeight2 = this.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight2);\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 = (this.window.innerHeight - containerBottom) * 0.9;\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = this.eclMegaMenuMega && this.eclMegaMenuInfo && !this.isLarge ? \n height + infoPanelHeight : height;\n if (this.wrapperStyleHeight > availableHeight) this.wrapperStyleHeight = availableHeight;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight.set(height);\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight.set(this.wrapperStyleHeight - 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 {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.megaMenuLevel2) {\n expandedSubItem.megaMenuLevel2.nativeElement.style.opacity = '1';\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n if (this.eclMegaMenuFeatured) {\n if (this.isLarge) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = this.wrapperStyleHeight - infoPanelHeight;\n }\n }\n this.megaMenuMegaStyleOpacity.set(1);\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.appShellService.state$\n .pipe(\n map((state) => {\n const w = state.windowWidth ?? 0;\n const bp = state.breakpoints;\n return {\n // ECL uses breakpointDesktop = 1140px. Everything below that\n // (xs/sm/md/lg) must use mobile behavior. isLtLargeTablet covers this range.\n isMobile: !!(bp?.isLtLargeTablet),\n isLarge: w >= 1368,\n };\n }),\n distinctUntilChanged(\n (a, b) => a.isMobile === b.isMobile && a.isLarge === b.isLarge\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(({ isMobile, isLarge }) => {\n const wasMobile = this.isMobileBreakpoint;\n const wasLarge = this.isLarge;\n this.isMobileBreakpoint = isMobile;\n this.isLarge = isLarge;\n this.resetWrapperStyle();\n\n // When breakpoint changes, reset all computed heights so they don't\n // carry over stale pixel values from the previous layout mode.\n if (wasMobile !== isMobile || wasLarge !== isLarge) {\n this.resetComputedHeights();\n\n // If transitioning between mobile/desktop while expanded,\n // recalculate with new layout dimensions\n if (this.isExpanded) {\n setTimeout(() => {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }, 100);\n }\n }\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--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [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, DOCUMENT, DoCheck, ElementRef, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, QueryList, Renderer2, afterNextRender, forwardRef, inject, output } from '@angular/core';\nimport { TranslatePipe } 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: [TranslatePipe, ...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 private readonly document = inject<Document>(DOCUMENT);\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 readonly megaMenuItemSelect = output<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 /**\n * Returns true when the viewport is below the ECL desktop breakpoint (1140px).\n * This covers both mobile (xs/sm) and tablet (md/lg) ranges where the menu\n * should behave in mobile/hamburger mode, matching ECL's breakpointDesktop = 1140.\n */\n get isMobileOrTablet(): boolean {\n return this.isMobileBreakpoint || this.isTablet;\n }\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.isMobileOrTablet) {\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\n // Collapse any expanded menu item (and its sub-items) so that\n // reopening the menu always shows the top-level list cleanly.\n const expandedItem = this.menuItems?.find(item => item.isExpanded);\n if (expandedItem) {\n expandedItem.onMegaMenuItemCollapse();\n }\n\n this.hasSecondaryFeatured = false;\n this.collapseMenu();\n\n if (this.isMobileOrTablet) {\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.isMobileOrTablet && 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.isMobileOrTablet) {\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.hasSecondaryFeatured = false;\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileOrTablet) {\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 // ECL uses breakpointDesktop = 1140px. Everything below that threshold\n // (md: 768-995px AND lg: 996-1139px) must use mobile/hamburger behavior.\n // isLtLargeTablet covers xs/sm/md/lg (i.e. < 1140px).\n this.isTablet = !!(bkps.isLtLargeTablet && !bkps.isMobile);\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 this.renderer.addClass(this.document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(this.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\" [attr.aria-expanded]=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n <span class=\"ecl-button__label\">{{ (isOpenMobile ? 'ecl.common.CLOSE' : 'ecl.menu.MENU') | translate }}</span>\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":["DOCUMENT","i1"],"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/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/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../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 const computedStyle = window.getComputedStyle(this.el.nativeElement);\n return this.el.nativeElement.scrollHeight + parseFloat(computedStyle.marginBottom) + parseFloat(computedStyle.marginTop);\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 { Component, ElementRef, HostBinding, Input, ContentChildren, forwardRef, QueryList, ViewChild, AfterContentInit, input } 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 readonly titleId = input<string>(undefined);\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 { 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 { NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, booleanAttribute, Component, ContentChild, DOCUMENT, ElementRef, EventEmitter, forwardRef, HostBinding, inject, Input, Output, ViewChild, input } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EuiAppShellService } from '@eui/core';\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 { distinctUntilChanged, map, Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\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';\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 readonly buttonId = input<string>(undefined);\n @Input() label = '';\n /**\n * If the link redirects to external page. Adds an 'external' icon.\n */\n readonly isExternal = input(false, { transform: booleanAttribute });\n /**\n * If the link is external, this will be the title of the external icon.\n */\n readonly externalIconTitle = input<string>(undefined);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly routerLink = input<string | any[]>(null);\n readonly queryParams = input<Params | null>(null);\n readonly queryParamsHandling = input<QueryParamsHandling>(null);\n @Input() href = '';\n readonly target = input('');\n /**\n * Used for the 'View all' link.\n */\n readonly isSeeAll = input(false, { transform: booleanAttribute });\n /**\n * Adds custom attributes to an anchor element.\n */\n readonly linkExtraAttributes = input<{\n [key: string]: string;\n }>(undefined);\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(forwardRef(() => 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 eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView; // Window | null\n private appShell = inject(EuiAppShellService);\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 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 observeBreakpointChanges(): void {\n this.appShell.getState<any>('breakpoints')\n .pipe(\n // ECL uses breakpointDesktop = 1140px. isLtLargeTablet covers xs/sm/md/lg (< 1140px).\n map(bp => !!(bp?.isLtLargeTablet)),\n distinctUntilChanged(),\n takeUntil(this.destroy$),\n )\n .subscribe((isMobile) => {\n const wasMobile = this.isMobileBreakpoint;\n this.isMobileBreakpoint = isMobile;\n\n // Reset computed heights when switching breakpoints\n if (wasMobile !== isMobile) {\n this.level2StyleHeight = null;\n if (this.eclMegaMenuFeatured) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n }\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\" [target]=\"target()\" 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 { ContentChild, ContentChildren, Directive, DoCheck, ElementRef, EventEmitter, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, afterNextRender, forwardRef, inject, signal } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { distinctUntilChanged, map, 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 host: {\n '[style.height.px]': 'styleHeight()',\n },\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 styleHeight = signal<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 differs = inject(IterableDiffers);\n private appShell = inject(EuiAppShellService);\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 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 observeBreakpointChanges(): void {\n this.appShell.getState<any>('breakpoints')\n .pipe(\n map(bp => !!bp?.isLtLargeTablet), // xs/sm/md/lg => <= 996px boundary\n distinctUntilChanged(),\n takeUntil(this.destroy$),\n )\n .subscribe((isMobile) => {\n const wasMobile = this.isMobileBreakpoint;\n this.isMobileBreakpoint = isMobile;\n\n // Reset height/position values when switching between breakpoints\n // to avoid stale pixel values from the previous layout mode\n if (wasMobile !== isMobile) {\n this.styleHeight.set(null);\n this.styleTop = null;\n this.isScrollable = false;\n }\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, OnDestroy, PLATFORM_ID, forwardRef, inject, signal, input } 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';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\nimport { Subject, fromEvent, auditTime, takeUntil } from 'rxjs';\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 host: {\n '[style.opacity]': 'eclMegaMenuInfoStyleOpacity()',\n },\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit, OnDestroy {\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 eclMegaMenuInfoStyleOpacity = signal<number | null>(null);\n\n readonly title = input<string>(undefined); \n readonly titleId = input<string>(undefined);\n\n private platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView;\n private destroy$ = new Subject<void>();\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 if (isPlatformBrowser(this.platformId)) {\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 this.observeResize();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\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 /**\n * Re-publishes the info panel size on window resize so that dependent\n * components (e.g. sublist positioning) recalculate with current dimensions.\n */\n private observeResize(): void {\n if (this.window) {\n fromEvent(this.window, 'resize').pipe(\n auditTime(100),\n takeUntil(this.destroy$),\n ).subscribe(() => {\n this.publishSize();\n });\n }\n }\n}\n","<span class=\"ecl-mega-menu__info-title\" [attr.id]=\"titleId() || null\">{{ 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 {\n AfterContentInit,\n afterNextRender, booleanAttribute,\n Component, ContentChild,\n ContentChildren,\n ElementRef, EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input, OnDestroy, Output,\n ViewChild,\n DOCUMENT,\n QueryList,\n Renderer2,\n input,\n signal,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { EuiAppShellService } from '@eui/core';\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 { distinctUntilChanged, map, Subject, auditTime, fromEvent, 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 this.isOneLevelOnly() ? 'ecl-mega-menu__item--one-level-only' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isExpanded = false;\n @HostBinding('attr.aria-haspopup') hasPopup = this.hasChildren ? true : null;\n\n readonly isPromotional = input(false, { transform: booleanAttribute });\n readonly label = input<string>(undefined);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly routerLink = input<string | any[]>(null);\n readonly queryParams = input<Params | null>(null);\n readonly queryParamsHandling = input<QueryParamsHandling>(null);\n @Input() href = '';\n readonly target = input('');\n /**\n * This property should be used, when user wants the menu sub-items to use the maximum space available.\n * For example, if we have 10 sub-items, normally they will appear in one column only. If isOneLevelOnly is used, the sub-items\n * will take 2, 3, 4 columns, depending on presence of other sub-components.\n */\n isOneLevelOnly = input(false, { transform: booleanAttribute });\n /**\n * Used in case user wants to set some custom attributes for the anchr tag.\n */\n readonly linkExtraAttributes = input<{\n [key: string]: string;\n }>(undefined);\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 // Get all the sublists including childrens's sublist, to detect if it's only one level submenu.\n @ContentChildren(forwardRef(() => EclMegaMenuSublistDirective), { descendants: true }) eclMegaMenuSublists: QueryList<EclMegaMenuFeaturedComponent>;\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 = signal<number | null>(null);\n megaMenuMegaStyleOpacity = signal<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 readonly doc = inject(DOCUMENT);\n private readonly window = this.doc.defaultView; // Window | null\n private appShellService = inject(EuiAppShellService);\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n this.eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes());\n }\n this.observeBreakpointChanges();\n this.observeResizeWindow();\n });\n }\n\n ngAfterContentInit(): void {\n this.eclMegaMenuSublist?.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (!this.isMobileBreakpoint) {\n // Only hide/show the level-2 panel when switching sub-items\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(\n item => item.hasChildren && item.isExpanded\n );\n if (expandedSubItem && expandedSubItem.megaMenuLevel2) {\n expandedSubItem.megaMenuLevel2.nativeElement.style.opacity = '0';\n }\n }\n setTimeout(() => this.checkDropdownHeight(false), 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasNoInfo(): boolean {\n return !this.eclMegaMenuInfo;\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 * 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 /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n private observeResizeWindow(): void {\n if (this.window) {\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n } else {\n // Even when not expanded, reset computed heights on resize\n // so stale desktop values don't persist into tablet/mobile layout\n this.resetComputedHeights();\n }\n });\n });\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint && this.eclMegaMenuSublist) {\n const availableHeight = this.window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (!this.isMobileBreakpoint) {\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 /**\n * Resets all computed pixel heights on the info panel, mega panel, and wrapper.\n * Called when the viewport changes breakpoint so that stale desktop values\n * (e.g. info height of 227px) don't persist into tablet/mobile layout where\n * the elements should flow naturally.\n */\n private resetComputedHeights(): void {\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(null);\n }\n this.megaMenuMegaStyleHeight.set(null);\n this.megaMenuMegaStyleOpacity.set(null);\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n this.containerStyleHeight = null;\n\n // Reset featured panel height\n if (this.eclMegaMenuFeatured) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n\n // Reset sublist and sub-items heights\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.styleHeight.set(null);\n this.eclMegaMenuSublist.styleTop = null;\n this.eclMegaMenuSublist.isScrollable = false;\n\n // Reset level-2 heights on each subitem\n this.eclMegaMenuSublist.submenuItems?.forEach(subItem => {\n subItem.level2StyleHeight = null;\n if (subItem.eclMegaMenuFeatured) {\n subItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = null;\n }\n });\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity.set(0);\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(0);\n }\n }\n\n /**\n * On mobile, calculate the height of the mega panel (level 1).\n * - If the item has a featured panel: set height on the mega div (.ecl-mega-menu__mega--has-featured)\n * - If no featured, panel 1: height is set on the sublist\n * - If no featured, panel 2: height is set on the level-2 div\n */\n private calculateMobileHeight(): void {\n if (!this.isMobileBreakpoint || !this.eclMegaMenuMega) {\n return;\n }\n if (this.hasFeatured) {\n // Has featured → set height on the mega div, no scrollable on sublist\n const megaRect = this.eclMegaMenuMega.nativeElement.getBoundingClientRect();\n const megaTop = megaRect.top;\n this.megaMenuMegaStyleHeight.set(this.window.innerHeight - megaTop);\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.isScrollable = false;\n this.eclMegaMenuSublist.styleHeight.set(null);\n }\n } else if (this.eclMegaMenuSublist) {\n this.megaMenuMegaStyleHeight.set(null);\n\n // Check if a sub-item with children is expanded (panel 2)\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(\n item => item.hasChildren && item.isExpanded\n );\n\n if (expandedSubItem && expandedSubItem.megaMenuLevel2) {\n // No featured, panel 2 → set height on the level-2 div\n const subMegaRect = expandedSubItem.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n expandedSubItem.level2StyleHeight = this.window.innerHeight - subMegaTop;\n // Clear sublist height and scrollable since panel 2 is now showing\n this.eclMegaMenuSublist.isScrollable = false;\n this.eclMegaMenuSublist.styleHeight.set(null);\n } else {\n // No featured, panel 1 → set height on the sublist\n const sublistRect = this.eclMegaMenuSublist.el.nativeElement.getBoundingClientRect();\n const sublistTop = sublistRect.top;\n this.eclMegaMenuSublist.styleHeight.set(this.window.innerHeight - sublistTop);\n this.eclMegaMenuSublist.isScrollable = true;\n }\n } else {\n this.megaMenuMegaStyleHeight.set(null);\n }\n }\n\n private checkDropdownHeight(hide = true): void {\n if (this.isMobileBreakpoint) {\n this.calculateMobileHeight();\n return;\n }\n\n if (hide) {\n this.hidePanels();\n }\n let infoPanelHeight = 0;\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = null;\n }\n\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 = this.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 subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity.set(1);\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n if (this.isOneLevelOnly()) {\n itemsHeight = this.eclMegaMenuSublist.el.nativeElement.offsetHeight;\n } else {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n if (this.eclMegaMenuSublist.spacer) {\n itemsHeight += 25;\n }\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 featuredHeight += 5;\n heights.push(featuredHeight);\n }\n }\n\n if (this.eclMegaMenuFeatured) {\n featuredHeight2 = this.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight2);\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 = (this.window.innerHeight - containerBottom) * 0.9;\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = this.eclMegaMenuMega && this.eclMegaMenuInfo && !this.isLarge ?\n height + infoPanelHeight : height;\n if (this.wrapperStyleHeight > availableHeight) this.wrapperStyleHeight = availableHeight;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight.set(height);\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight.set(this.wrapperStyleHeight - 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 {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.megaMenuLevel2) {\n expandedSubItem.megaMenuLevel2.nativeElement.style.opacity = '1';\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n if (this.eclMegaMenuFeatured) {\n if (this.isLarge) {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n this.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = this.wrapperStyleHeight - infoPanelHeight;\n }\n }\n this.megaMenuMegaStyleOpacity.set(1);\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.appShellService.state$\n .pipe(\n map((state) => {\n const w = state.windowWidth ?? 0;\n const bp = state.breakpoints;\n return {\n // ECL uses breakpointDesktop = 1140px. Everything below that\n // (xs/sm/md/lg) must use mobile behavior. isLtLargeTablet covers this range.\n isMobile: !!(bp?.isLtLargeTablet),\n isLarge: w >= 1368,\n };\n }),\n distinctUntilChanged(\n (a, b) => a.isMobile === b.isMobile && a.isLarge === b.isLarge\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(({ isMobile, isLarge }) => {\n const wasMobile = this.isMobileBreakpoint;\n const wasLarge = this.isLarge;\n this.isMobileBreakpoint = isMobile;\n this.isLarge = isLarge;\n this.resetWrapperStyle();\n\n // When breakpoint changes, reset all computed heights so they don't\n // carry over stale pixel values from the previous layout mode.\n if (wasMobile !== isMobile || wasLarge !== isLarge) {\n this.resetComputedHeights();\n\n // If transitioning between mobile/desktop while expanded,\n // recalculate with new layout dimensions\n if (this.isExpanded) {\n setTimeout(() => {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }, 100);\n }\n }\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--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [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, DOCUMENT, DoCheck, ElementRef, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, QueryList, Renderer2, afterNextRender, forwardRef, inject, output } from '@angular/core';\nimport { TranslatePipe } 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: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n\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 private readonly document = inject<Document>(DOCUMENT);\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 readonly megaMenuItemSelect = output<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 /**\n * Returns true when the viewport is below the ECL desktop breakpoint (1140px).\n * This covers both mobile (xs/sm) and tablet (md/lg) ranges where the menu\n * should behave in mobile/hamburger mode, matching ECL's breakpointDesktop = 1140.\n */\n get isMobileOrTablet(): boolean {\n return this.isMobileBreakpoint || this.isTablet;\n }\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.isMobileOrTablet) {\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\n // Collapse any expanded menu item (and its sub-items) so that\n // reopening the menu always shows the top-level list cleanly.\n const expandedItem = this.menuItems?.find(item => item.isExpanded);\n if (expandedItem) {\n expandedItem.onMegaMenuItemCollapse();\n }\n\n this.hasSecondaryFeatured = false;\n this.collapseMenu();\n\n if (this.isMobileOrTablet) {\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.isMobileOrTablet && 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.isMobileOrTablet) {\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.hasSecondaryFeatured = false;\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileOrTablet) {\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 as unknown as EclMegaMenuItem);\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 // ECL uses breakpointDesktop = 1140px. Everything below that threshold\n // (md: 768-995px AND lg: 996-1139px) must use mobile/hamburger behavior.\n // isLtLargeTablet covers xs/sm/md/lg (i.e. < 1140px).\n this.isTablet = !!(bkps.isLtLargeTablet && !bkps.isMobile);\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 this.renderer.addClass(this.document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(this.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\" [attr.aria-expanded]=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n <span class=\"ecl-button__label\">{{ (isOpenMobile ? 'ecl.common.CLOSE' : 'ecl.menu.MENU') | translate }}</span>\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":["DOCUMENT","i1"],"mappings":"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"}
|