@eui/ecl 21.0.0-alpha.3 → 21.0.0-alpha.30
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/components/ecl-banner/index.d.ts +9 -4
- package/components/ecl-banner/index.d.ts.map +1 -1
- package/components/ecl-carousel/index.d.ts +1 -0
- package/components/ecl-carousel/index.d.ts.map +1 -1
- package/components/ecl-featured/index.d.ts +1 -1
- package/components/ecl-featured/index.d.ts.map +1 -1
- package/components/ecl-gallery/index.d.ts +1 -1
- package/components/ecl-gallery/index.d.ts.map +1 -1
- package/components/ecl-link/index.d.ts +6 -6
- package/components/ecl-link/index.d.ts.map +1 -1
- package/components/ecl-mega-menu/index.d.ts +2 -1
- package/components/ecl-mega-menu/index.d.ts.map +1 -1
- package/components/ecl-menu/index.d.ts +1 -0
- package/components/ecl-menu/index.d.ts.map +1 -1
- package/components/ecl-multiselect/index.d.ts +2 -2
- package/components/ecl-pagination/index.d.ts +1 -0
- package/components/ecl-pagination/index.d.ts.map +1 -1
- package/components/ecl-popover/index.d.ts +1 -1
- package/components/ecl-popover/index.d.ts.map +1 -1
- package/components/ecl-site-footer/index.d.ts.map +1 -1
- package/components/ecl-site-header/index.d.ts +1 -1
- package/components/ecl-site-header/index.d.ts.map +1 -1
- package/components/ecl-tabs/index.d.ts +5 -1
- package/components/ecl-tabs/index.d.ts.map +1 -1
- package/docs/changelog.html +423 -7766
- package/docs/classes/EclAccordionToggleEvent.html +18 -0
- package/docs/classes/EclAppLanguageDismissEvent.html +18 -0
- package/docs/classes/EclAreaChangeEvent.html +18 -0
- package/docs/classes/EclBaseEvent.html +18 -0
- package/docs/classes/EclBreadcrumbSegmentClickEvent.html +18 -0
- package/docs/classes/EclCategoryFilterItemSelectEvent.html +18 -0
- package/docs/classes/EclDatePickerDatePickedEvent.html +18 -0
- package/docs/classes/EclDomEvent.html +18 -0
- package/docs/classes/EclExpandableToggleEvent.html +18 -0
- package/docs/classes/EclFileItemsToggleEvent.html +18 -0
- package/docs/classes/EclFileUploadFileSelectedEvent.html +18 -0
- package/docs/classes/EclGalleryFullScreenEvent.html +18 -0
- package/docs/classes/EclGalleryHideEvent.html +18 -0
- package/docs/classes/EclGalleryItemClickEvent.html +18 -0
- package/docs/classes/EclGalleryItemEvent.html +18 -0
- package/docs/classes/EclGalleryMediaSource.html +18 -0
- package/docs/classes/EclGalleryMediaTrack.html +18 -0
- package/docs/classes/EclGalleryPictureImage.html +18 -0
- package/docs/classes/EclGalleryPictureSource.html +18 -0
- package/docs/classes/EclGalleryShareEvent.html +18 -0
- package/docs/classes/EclGalleryShowEvent.html +18 -0
- package/docs/classes/EclGalleryToggleItemsEvent.html +18 -0
- package/docs/classes/EclInpageNavigationItemClickEvent.html +18 -0
- package/docs/classes/EclInpageNavigationSectionEnterEvent.html +18 -0
- package/docs/classes/EclLanguageService.html +18 -0
- package/docs/classes/EclMenuItemCaretEvent.html +18 -0
- package/docs/classes/EclMenuItemFocusEvent.html +18 -0
- package/docs/classes/EclMenuItemHoverEvent.html +18 -0
- package/docs/classes/EclMenuItemHoverOutEvent.html +18 -0
- package/docs/classes/EclMenuItemKeydownEvent.html +18 -0
- package/docs/classes/EclMenuItemParentFocusEvent.html +18 -0
- package/docs/classes/EclMenuItemSelectEvent.html +18 -0
- package/docs/classes/EclModalCloseEvent.html +18 -0
- package/docs/classes/EclModalOpenEvent.html +18 -0
- package/docs/classes/EclMultiselectMainInputClickEvent.html +18 -0
- package/docs/classes/EclMultiselectOptionClickEvent.html +18 -0
- package/docs/classes/EclMultiselectOptionKeydownEvent.html +18 -0
- package/docs/classes/EclNewsTickerItemEvent.html +18 -0
- package/docs/classes/EclNotificationCloseEvent.html +18 -0
- package/docs/classes/EclPaginationEvent.html +18 -0
- package/docs/classes/EclPaginationItemClickEvent.html +18 -0
- package/docs/classes/EclRangeEvent.html +18 -0
- package/docs/classes/EclRatingChangeEvent.html +18 -0
- package/docs/classes/EclSearchFormEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLanguageClickEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLanguageCloseEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLanguageSelectedEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLoginBoxToggleEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLoginEvent.html +18 -0
- package/docs/classes/EclSiteHeaderLogoClickEvent.html +18 -0
- package/docs/classes/EclSiteHeaderSearchEvent.html +18 -0
- package/docs/classes/EclSiteHeaderSearchToggleEvent.html +18 -0
- package/docs/classes/EclSlideEvent.html +18 -0
- package/docs/classes/EclSocialMediaFollowItemClickEvent.html +18 -0
- package/docs/classes/EclSocialMediaShareItemClickEvent.html +18 -0
- package/docs/classes/EclSortTableEvent.html +18 -0
- package/docs/classes/EclTabSelectEvent.html +18 -0
- package/docs/classes/EclTagRemoveEvent.html +18 -0
- package/docs/classes/EclTimelineItemToggleEvent.html +18 -0
- package/docs/components/EclAccordionComponent.html +20 -2
- package/docs/components/EclAccordionItemComponent.html +20 -2
- package/docs/components/EclAppComponent.html +19 -1
- package/docs/components/EclBannerComponent.html +104 -5
- package/docs/components/EclBlockquoteComponent.html +19 -1
- package/docs/components/EclBreadcrumbComponent.html +21 -8
- package/docs/components/EclBreadcrumbSegmentComponent.html +23 -4
- package/docs/components/EclButtonComponent.html +20 -2
- package/docs/components/EclCardBodyComponent.html +19 -1
- package/docs/components/EclCardComponent.html +19 -1
- package/docs/components/EclCarouselComponent.html +100 -1
- package/docs/components/EclCarouselItemComponent.html +19 -1
- package/docs/components/EclCategoryFilterComponent.html +19 -1
- package/docs/components/EclCategoryFilterItemComponent.html +20 -2
- package/docs/components/EclCategoryFilterListComponent.html +19 -1
- package/docs/components/EclCheckboxHelpComponent.html +19 -1
- package/docs/components/EclCheckboxLabelComponent.html +20 -2
- package/docs/components/EclContentBlockComponent.html +19 -1
- package/docs/components/EclContentItemComponent.html +19 -1
- package/docs/components/EclDateBlockComponent.html +19 -1
- package/docs/components/EclDescriptionListDefinitionComponent.html +20 -2
- package/docs/components/EclExpandableComponent.html +21 -3
- package/docs/components/EclFactFiguresComponent.html +19 -1
- package/docs/components/EclFactFiguresDescriptionComponent.html +19 -1
- package/docs/components/EclFactFiguresItemComponent.html +19 -1
- package/docs/components/EclFactFiguresTitleComponent.html +19 -1
- package/docs/components/EclFactFiguresValueComponent.html +19 -1
- package/docs/components/EclFactFiguresViewAllComponent.html +19 -1
- package/docs/components/EclFeaturedComponent.html +19 -1
- package/docs/components/EclFeaturedItemComponent.html +19 -1
- package/docs/components/EclFeaturedItemDescriptionComponent.html +19 -1
- package/docs/components/EclFeaturedItemFooterComponent.html +19 -1
- package/docs/components/EclFileComponent.html +21 -3
- package/docs/components/EclFileItemComponent.html +19 -1
- package/docs/components/EclFileItemsComponent.html +21 -3
- package/docs/components/EclFileTaxonomyComponent.html +19 -1
- package/docs/components/EclFormGroupComponent.html +19 -1
- package/docs/components/EclFormLabelComponent.html +19 -1
- package/docs/components/EclGalleryComponent.html +26 -47
- package/docs/components/EclGalleryFooterComponent.html +20 -2
- package/docs/components/EclGalleryItemComponent.html +20 -2
- package/docs/components/EclIconComponent.html +19 -1
- package/docs/components/EclInpageNavigationComponent.html +20 -2
- package/docs/components/EclInpageNavigationItemComponent.html +20 -2
- package/docs/components/EclListIllustrationComponent.html +19 -1
- package/docs/components/EclListIllustrationItemComponent.html +19 -1
- package/docs/components/EclLoadingIndicatorComponent.html +19 -1
- package/docs/components/EclMediaContainerComponent.html +21 -3
- package/docs/components/EclMegaMenuComponent.html +46 -24
- package/docs/components/EclMegaMenuFeaturedComponent.html +19 -1
- package/docs/components/EclMegaMenuInfoComponent.html +19 -1
- package/docs/components/EclMegaMenuItemComponent.html +24 -5
- package/docs/components/EclMegaMenuSubitemComponent.html +24 -5
- package/docs/components/EclMenuComponent.html +46 -24
- package/docs/components/EclMenuItemComponent.html +24 -5
- package/docs/components/EclMenuMegaComponent.html +19 -1
- package/docs/components/EclMenuMegaItemComponent.html +20 -2
- package/docs/components/EclModalBodyComponent.html +19 -1
- package/docs/components/EclModalComponent.html +19 -1
- package/docs/components/EclModalFooterComponent.html +19 -1
- package/docs/components/EclModalHeaderComponent.html +21 -3
- package/docs/components/EclMultiselectComponent.html +20 -4
- package/docs/components/EclMultiselectDropdownComponent.html +25 -44
- package/docs/components/EclMultiselectInputComponent.html +21 -3
- package/docs/components/EclMultiselectOptgroupComponent.html +19 -1
- package/docs/components/EclMultiselectOptionComponent.html +19 -1
- package/docs/components/EclNavigationListComponent.html +19 -1
- package/docs/components/EclNavigationListItemComponent.html +19 -1
- package/docs/components/EclNewsTickerComponent.html +21 -3
- package/docs/components/EclNewsTickerItemComponent.html +19 -1
- package/docs/components/EclNotificationComponent.html +21 -3
- package/docs/components/EclPageHeaderComponent.html +19 -1
- package/docs/components/EclPaginationComponent.html +19 -1
- package/docs/components/EclPaginationItemComponent.html +49 -5
- package/docs/components/EclPopoverComponent.html +26 -53
- package/docs/components/EclRadioHelpComponent.html +19 -1
- package/docs/components/EclRadioLabelComponent.html +19 -1
- package/docs/components/EclRangeBubbleComponent.html +19 -1
- package/docs/components/EclRangeValueComponent.html +19 -1
- package/docs/components/EclRatingFieldComponent.html +20 -2
- package/docs/components/EclSearchFormComponent.html +21 -3
- package/docs/components/EclSelectContainerComponent.html +21 -3
- package/docs/components/EclSiteFooterComponent.html +19 -1
- package/docs/components/EclSiteFooterFixedContentECComponent.html +22 -2
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +20 -2
- package/docs/components/EclSiteHeaderActionComponent.html +19 -1
- package/docs/components/EclSiteHeaderBannerTopComponent.html +19 -1
- package/docs/components/EclSiteHeaderComponent.html +20 -2
- package/docs/components/EclSiteHeaderCustomActionComponent.html +21 -3
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +19 -1
- package/docs/components/EclSiteHeaderLanguageComponent.html +20 -2
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +23 -10
- package/docs/components/EclSiteHeaderLoginComponent.html +20 -2
- package/docs/components/EclSiteHeaderNotificationComponent.html +19 -1
- package/docs/components/EclSiteHeaderSearchComponent.html +21 -3
- package/docs/components/EclSocialMediaFollowComponent.html +19 -1
- package/docs/components/EclSocialMediaFollowItemComponent.html +23 -4
- package/docs/components/EclSocialMediaShareComponent.html +19 -1
- package/docs/components/EclSocialMediaShareItemComponent.html +21 -3
- package/docs/components/EclSplashPageComponent.html +19 -1
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +19 -1
- package/docs/components/EclSplashPageLanguageContainerComponent.html +19 -1
- package/docs/components/EclSplashPageLanguageLinkComponent.html +19 -1
- package/docs/components/EclStickyContainerComponent.html +19 -1
- package/docs/components/EclTabComponent.html +46 -3
- package/docs/components/EclTabLabelComponent.html +19 -1
- package/docs/components/EclTabMoreComponent.html +19 -1
- package/docs/components/EclTableSortButtonComponent.html +20 -2
- package/docs/components/EclTabsComponent.html +21 -3
- package/docs/components/EclTagComponent.html +20 -2
- package/docs/components/EclTimelineComponent.html +19 -1
- package/docs/components/EclTimelineItemComponent.html +21 -3
- package/docs/components/EclTimelineItemTogglerComponent.html +19 -1
- package/docs/dependencies.html +18 -0
- package/docs/directives/ECLBaseDirective.html +18 -0
- package/docs/directives/ECLClickOutsideDirective.html +18 -0
- package/docs/directives/ECLFormLabelOptionalDirective.html +18 -0
- package/docs/directives/EclBannerDescriptionDirective.html +18 -0
- package/docs/directives/EclBannerDescriptionLinkDirective.html +18 -0
- package/docs/directives/EclBannerDescriptionTextDirective.html +18 -0
- package/docs/directives/EclBannerImageDirective.html +18 -0
- package/docs/directives/EclBannerPictureDirective.html +18 -0
- package/docs/directives/EclBannerTitleDirective.html +18 -0
- package/docs/directives/EclBannerTitleLinkDirective.html +18 -0
- package/docs/directives/EclBannerTitleTextDirective.html +18 -0
- package/docs/directives/EclBannerVideoDirective.html +18 -0
- package/docs/directives/EclBlockquoteImageDirective.html +18 -0
- package/docs/directives/EclBlockquotePictureDirective.html +18 -0
- package/docs/directives/EclBreadcrumbContainerDirective.html +18 -0
- package/docs/directives/EclButtonIconContainerDirective.html +18 -0
- package/docs/directives/EclButtonLabelDirective.html +18 -0
- package/docs/directives/EclCardImageDirective.html +18 -0
- package/docs/directives/EclCardPictureDirective.html +18 -0
- package/docs/directives/EclCheckboxDirective.html +18 -0
- package/docs/directives/EclCheckboxInputDirective.html +18 -0
- package/docs/directives/EclContentBlockDescriptionDirective.html +18 -0
- package/docs/directives/EclContentBlockLabelDirective.html +18 -0
- package/docs/directives/EclContentBlockLabelsDirective.html +18 -0
- package/docs/directives/EclContentBlockLinkDirective.html +18 -0
- package/docs/directives/EclContentBlockLinksContainerDirective.html +18 -0
- package/docs/directives/EclContentBlockLinksDirective.html +18 -0
- package/docs/directives/EclContentBlockListContainerDirective.html +18 -0
- package/docs/directives/EclContentBlockListDirective.html +18 -0
- package/docs/directives/EclContentBlockPrimaryMetaDirective.html +18 -0
- package/docs/directives/EclContentBlockPrimaryMetasDirective.html +18 -0
- package/docs/directives/EclContentBlockSecondaryMetaDirective.html +18 -0
- package/docs/directives/EclContentBlockSecondaryMetaIconDirective.html +18 -0
- package/docs/directives/EclContentBlockSecondaryMetaLabelDirective.html +18 -0
- package/docs/directives/EclContentBlockSecondaryMetasDirective.html +18 -0
- package/docs/directives/EclContentBlockTagDirective.html +18 -0
- package/docs/directives/EclContentBlockTagsDirective.html +18 -0
- package/docs/directives/EclContentBlockTitleDirective.html +18 -0
- package/docs/directives/EclContentItemImageDirective.html +18 -0
- package/docs/directives/EclContentItemPictureDirective.html +18 -0
- package/docs/directives/EclDatePickerDirective.html +18 -0
- package/docs/directives/EclDescriptionListDefinitionItemDirective.html +18 -0
- package/docs/directives/EclDescriptionListDefinitionListDirective.html +18 -0
- package/docs/directives/EclDescriptionListDirective.html +18 -0
- package/docs/directives/EclDescriptionListTermDirective.html +18 -0
- package/docs/directives/EclFeaturedItemFooterLinkDirective.html +18 -0
- package/docs/directives/EclFeaturedItemFooterPictureDirective.html +18 -0
- package/docs/directives/EclFeaturedItemLinkDirective.html +18 -0
- package/docs/directives/EclFeedbackMessageDirective.html +18 -0
- package/docs/directives/EclFileDownloadDirective.html +18 -0
- package/docs/directives/EclFileImageDirective.html +18 -0
- package/docs/directives/EclFilePictureDirective.html +18 -0
- package/docs/directives/EclFilePreviewDirective.html +18 -0
- package/docs/directives/EclFileTitleDirective.html +18 -0
- package/docs/directives/EclFileTranslationDownloadDirective.html +18 -0
- package/docs/directives/EclFileUploadDirective.html +18 -0
- package/docs/directives/EclGalleryMediaDirective.html +18 -0
- package/docs/directives/EclGalleryPictureDirective.html +18 -0
- package/docs/directives/EclGalleryThumbnailDirective.html +18 -0
- package/docs/directives/EclHelpBlockDirective.html +18 -0
- package/docs/directives/EclHiddenDirective.html +18 -0
- package/docs/directives/EclIndicatorDirective.html +18 -0
- package/docs/directives/EclInpageNavigationListDirective.html +18 -0
- package/docs/directives/EclLabelDirective.html +18 -0
- package/docs/directives/EclLinkDirective.html +18 -0
- package/docs/directives/EclLinkIconContainerDirective.html +18 -0
- package/docs/directives/{EclIndicatorDirective-1.html → EclLinkIndicatorDirective.html} +20 -2
- package/docs/directives/EclLinkLabelDirective.html +18 -0
- package/docs/directives/EclListIllustrationIconDirective.html +18 -0
- package/docs/directives/EclListIllustrationImageDirective.html +18 -0
- package/docs/directives/EclListIllustrationPictureDirective.html +18 -0
- package/docs/directives/EclLoadingIndicatorLabelDirective.html +18 -0
- package/docs/directives/EclLoadingIndicatorOverlayDirective.html +18 -0
- package/docs/directives/EclMediaContainerIframeDirective.html +18 -0
- package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +18 -0
- package/docs/directives/EclMediaContainerItemDirective.html +18 -0
- package/docs/directives/EclMediaContainerPictureDirective.html +18 -0
- package/docs/directives/EclMegaMenuContainerDirective.html +18 -0
- package/docs/directives/EclMegaMenuFeaturedImageDirective.html +18 -0
- package/docs/directives/EclMegaMenuFeaturedListDirective.html +18 -0
- package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +18 -0
- package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +18 -0
- package/docs/directives/EclMegaMenuListDirective.html +18 -0
- package/docs/directives/EclMegaMenuSpacerDirective.html +18 -0
- package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
- package/docs/directives/EclModalBodyFixedContentDirective.html +18 -0
- package/docs/directives/EclModalCloseDirective.html +18 -0
- package/docs/directives/EclModalTriggerDirective.html +18 -0
- package/docs/directives/EclMultiselectOptionDirective.html +18 -0
- package/docs/directives/EclNavigationListImageDirective.html +18 -0
- package/docs/directives/EclNavigationListPictureDirective.html +18 -0
- package/docs/directives/EclNewsTickerIconDirective.html +18 -0
- package/docs/directives/EclNotificationTitleDirective.html +18 -0
- package/docs/directives/EclOrderedListDirective.html +18 -0
- package/docs/directives/EclOrderedListItemDirective.html +18 -0
- package/docs/directives/EclPageHeaderBackgroundImageDirective.html +18 -0
- package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +18 -0
- package/docs/directives/EclPageHeaderDescriptionContainerDirective.html +18 -0
- package/docs/directives/EclPageHeaderDescriptionDirective.html +18 -0
- package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +18 -0
- package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +18 -0
- package/docs/directives/EclPageHeaderInfoDirective.html +18 -0
- package/docs/directives/EclPageHeaderMetaDirective.html +18 -0
- package/docs/directives/EclPageHeaderMetaItemDirective.html +18 -0
- package/docs/directives/EclPageHeaderTitleDirective.html +18 -0
- package/docs/directives/EclPaginationListDirective.html +18 -0
- package/docs/directives/EclPopoverContentDirective.html +18 -0
- package/docs/directives/EclPopoverToggleDirective.html +18 -0
- package/docs/directives/EclRadioDirective.html +18 -0
- package/docs/directives/EclRadioInputDirective.html +18 -0
- package/docs/directives/EclRangeDirective.html +20 -2
- package/docs/directives/EclSelectDirective.html +18 -0
- package/docs/directives/EclSeparatorDirective.html +18 -0
- package/docs/directives/EclSiteFooterColumnDirective.html +18 -0
- package/docs/directives/EclSiteFooterContentDirective.html +18 -0
- package/docs/directives/EclSiteFooterDescriptionDirective.html +18 -0
- package/docs/directives/EclSiteFooterLinkDirective.html +18 -0
- package/docs/directives/EclSiteFooterListDirective.html +18 -0
- package/docs/directives/EclSiteFooterListItemDirective.html +18 -0
- package/docs/directives/EclSiteFooterLogoDirective.html +18 -0
- package/docs/directives/EclSiteFooterLogoImageDirective.html +18 -0
- package/docs/directives/EclSiteFooterLogoItemDirective.html +18 -0
- package/docs/directives/EclSiteFooterLogoLinkDirective.html +18 -0
- package/docs/directives/EclSiteFooterLogoListDirective.html +18 -0
- package/docs/directives/EclSiteFooterPictureDirective.html +18 -0
- package/docs/directives/EclSiteFooterRowDirective.html +18 -0
- package/docs/directives/EclSiteFooterSectionDirective.html +18 -0
- package/docs/directives/EclSiteFooterTitleDirective.html +18 -0
- package/docs/directives/EclSiteFooterTitleLinkDirective.html +18 -0
- package/docs/directives/EclSiteHeaderCtaDirective.html +18 -0
- package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +18 -0
- package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +18 -0
- package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +18 -0
- package/docs/directives/EclSiteHeaderImageDirective.html +18 -0
- package/docs/directives/EclSiteHeaderLinkDirective.html +18 -0
- package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +18 -0
- package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +18 -0
- package/docs/directives/EclSiteHeaderPictureDirective.html +18 -0
- package/docs/directives/EclSocialMediaFollowLinkDirective.html +18 -0
- package/docs/directives/EclSocialMediaShareLinkDirective.html +18 -0
- package/docs/directives/EclSplashPageLanguageItemDirective.html +18 -0
- package/docs/directives/EclSplashPageLanguageListDirective.html +18 -0
- package/docs/directives/EclSplashPageLogoImageDirective.html +18 -0
- package/docs/directives/EclSplashPageLogoLinkDirective.html +18 -0
- package/docs/directives/EclSplashPagePictureDirective.html +18 -0
- package/docs/directives/EclTableBodyDirective.html +18 -0
- package/docs/directives/EclTableCaptionDirective.html +18 -0
- package/docs/directives/EclTableCellDirective.html +18 -0
- package/docs/directives/EclTableCellGroupDirective.html +18 -0
- package/docs/directives/EclTableDirective.html +18 -0
- package/docs/directives/EclTableHeadDirective.html +18 -0
- package/docs/directives/EclTableHeaderDirective.html +18 -0
- package/docs/directives/EclTableResponsiveDirective.html +18 -0
- package/docs/directives/EclTableRowDirective.html +18 -0
- package/docs/directives/EclTagIconExternalDirective.html +18 -0
- package/docs/directives/EclTagSetDirective.html +18 -0
- package/docs/directives/EclTagSetItemDirective.html +18 -0
- package/docs/directives/EclTextAreaDirective.html +18 -0
- package/docs/directives/EclTextInputDirective.html +18 -0
- package/docs/directives/EclTimelineItemLabelDirective.html +18 -0
- package/docs/directives/EclTimelineItemTitleDirective.html +18 -0
- package/docs/directives/EclUnorderedListDirective.html +18 -0
- package/docs/directives/EclUnorderedListItemDirective.html +18 -0
- package/docs/index.html +20 -2
- package/docs/injectables/EclAreaDataService.html +18 -0
- package/docs/injectables/EclDefaultLanguageService.html +18 -0
- package/docs/injectables/EclHeaderMenuComunicationService.html +18 -0
- package/docs/injectables/EclInpageNavigationService.html +18 -0
- package/docs/injectables/EclMegaMenuDataService.html +18 -0
- package/docs/injectables/EclMegaMenuService.html +18 -0
- package/docs/injectables/EclRtlService.html +18 -0
- package/docs/injectables/EclThemeService.html +18 -0
- package/docs/injectables/EclUserDeviceService.html +18 -0
- package/docs/interfaces/EclBreadcrumb.html +18 -0
- package/docs/interfaces/EclCarouselItem.html +18 -0
- package/docs/interfaces/EclCategoryFilterItem.html +18 -0
- package/docs/interfaces/EclFileUpload.html +18 -0
- package/docs/interfaces/EclGalleryItem.html +18 -0
- package/docs/interfaces/EclLanguage.html +18 -0
- package/docs/interfaces/EclMegaMenuItem.html +18 -0
- package/docs/interfaces/EclMenuItem.html +18 -0
- package/docs/interfaces/EclModalResult.html +18 -0
- package/docs/interfaces/EclMultiselectOption.html +18 -0
- package/docs/interfaces/EclTab.html +18 -0
- package/docs/js/libs/bootstrap-native.js +1 -1
- package/docs/js/libs/jszip.min.js +13 -0
- package/docs/js/libs/svg-pan-zoom.min.js +3 -3
- package/docs/js/libs/tablesort.min.js +3 -3
- package/docs/js/libs/tablesort.number.min.js +3 -3
- package/docs/js/menu-wc.js +39 -29
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/routes/routes_index.js +1 -0
- package/docs/js/routes.js +15 -8
- package/docs/js/search/search_index.js +2 -2
- package/docs/license.html +20 -2
- package/docs/miscellaneous/enumerations.html +18 -0
- package/docs/miscellaneous/variables.html +86 -66
- package/docs/modules/EclAccordionModule.html +18 -0
- package/docs/modules/EclAllModule.html +27 -360
- package/docs/modules/EclAppModule.html +18 -0
- package/docs/modules/EclBannerModule.html +18 -0
- package/docs/modules/EclBlockquoteModule.html +18 -0
- package/docs/modules/EclBreadcrumbModule.html +18 -0
- package/docs/modules/EclButtonModule.html +18 -0
- package/docs/modules/EclCardModule.html +18 -0
- package/docs/modules/EclCarouselModule.html +18 -0
- package/docs/modules/EclCategoryFilterModule.html +18 -0
- package/docs/modules/EclCheckboxModule.html +18 -0
- package/docs/modules/EclContentBlockModule.html +18 -0
- package/docs/modules/EclContentItemModule.html +18 -0
- package/docs/modules/EclDateBlockModule.html +18 -0
- package/docs/modules/EclDatePickerModule.html +18 -0
- package/docs/modules/EclExpandableModule.html +18 -0
- package/docs/modules/EclFactFiguresModule.html +18 -0
- package/docs/modules/EclFeaturedModule.html +18 -0
- package/docs/modules/EclFeedbackMessageModule.html +18 -0
- package/docs/modules/EclFileModule.html +18 -0
- package/docs/modules/EclFileUploadModule.html +18 -0
- package/docs/modules/EclFormGroupModule.html +18 -0
- package/docs/modules/EclFormLabelModule.html +18 -0
- package/docs/modules/EclGalleryModule.html +18 -0
- package/docs/modules/EclHelpBlockModule.html +18 -0
- package/docs/modules/EclHiddenModule.html +18 -0
- package/docs/modules/EclIconModule.html +18 -0
- package/docs/modules/EclInpageNavigationModule.html +18 -0
- package/docs/modules/EclLabelModule.html +18 -0
- package/docs/modules/EclLinkModule.html +24 -3
- package/docs/modules/EclListIllustrationModule.html +18 -0
- package/docs/modules/EclListModule.html +18 -0
- package/docs/modules/EclLoadingIndicatorModule.html +18 -0
- package/docs/modules/EclMediaContainerModule.html +18 -0
- package/docs/modules/EclMegaMenuModule.html +18 -0
- package/docs/modules/EclMenuModule.html +18 -0
- package/docs/modules/EclModalModule.html +18 -0
- package/docs/modules/EclMultiselectModule.html +18 -0
- package/docs/modules/EclNavigationListModule.html +18 -0
- package/docs/modules/EclNewsTickerModule.html +18 -0
- package/docs/modules/EclNotificationModule.html +18 -0
- package/docs/modules/EclPageHeaderModule.html +18 -0
- package/docs/modules/EclPaginationModule.html +18 -0
- package/docs/modules/EclPopoverModule.html +18 -0
- package/docs/modules/EclRadioModule.html +18 -0
- package/docs/modules/EclRangeModule.html +18 -0
- package/docs/modules/EclRatingFieldModule.html +18 -0
- package/docs/modules/EclSearchFormModule.html +18 -0
- package/docs/modules/EclSelectModule.html +18 -0
- package/docs/modules/EclSeparatorModule.html +18 -0
- package/docs/modules/EclSiteFooterModule.html +18 -0
- package/docs/modules/EclSiteHeaderModule.html +18 -0
- package/docs/modules/EclSocialMediaFollowModule.html +18 -0
- package/docs/modules/EclSocialMediaShareModule.html +18 -0
- package/docs/modules/EclSplashPageModule.html +18 -0
- package/docs/modules/EclStickyContainerModule.html +18 -0
- package/docs/modules/EclTableModule.html +18 -0
- package/docs/modules/EclTabsModule.html +18 -0
- package/docs/modules/EclTagModule.html +18 -0
- package/docs/modules/EclTextAreaModule.html +18 -0
- package/docs/modules/EclTextInputModule.html +18 -0
- package/docs/modules/EclTimelineModule.html +18 -0
- package/docs/modules.html +18 -0
- package/docs/overview.html +28 -0
- package/docs/pipes/BoldTextPipe.html +18 -0
- package/docs/properties.html +19 -1
- package/docs/routes.html +204 -0
- package/docs/template-playground/default-templates.json +192 -0
- package/docs/template-playground/hbs-render.service.ts +212 -0
- package/docs/template-playground/main.ts +9 -0
- package/docs/template-playground/template-editor.service.ts +173 -0
- package/docs/template-playground/template-playground.component.ts +614 -0
- package/docs/template-playground/template-playground.module.ts +29 -0
- package/docs/template-playground/zip-export.service.ts +86 -0
- package/docs/template-playground-app/app.js +1389 -0
- package/docs/template-playground-app/index.html +462 -0
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs +13 -13
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +102 -81
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +13 -13
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +22 -23
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-button.mjs +18 -18
- package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs +16 -16
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +53 -31
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +15 -15
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +18 -18
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs +58 -58
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs +13 -13
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs +10 -10
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +22 -22
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +28 -26
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs +41 -43
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs +10 -10
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs +32 -30
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +20 -20
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs +21 -21
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -19
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs +33 -33
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -13
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -22
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +66 -64
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +31 -30
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs +29 -29
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +34 -34
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -16
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +17 -17
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs +14 -14
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs +37 -37
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs +27 -21
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs +21 -21
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs +16 -16
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-range.mjs +14 -14
- package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +9 -9
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs +10 -10
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs +14 -14
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +65 -64
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +78 -77
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +17 -18
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +16 -16
- package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +31 -31
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs +36 -36
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs +26 -24
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tag.mjs +18 -18
- package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs +7 -7
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs +22 -22
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs +25 -25
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/fesm2022/eui-ecl-shared.mjs +3 -3
- package/fesm2022/eui-ecl-shared.mjs.map +1 -1
- package/fesm2022/eui-ecl.mjs +184 -304
- package/fesm2022/eui-ecl.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +45 -46
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-menu.mjs","sources":["../../components/ecl-menu/events/ecl-menu-item.event.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.html","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.html","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.html","../../components/ecl-menu/ecl-menu/ecl-menu.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu.component.html","../../components/ecl-menu/ecl-menu.module.ts","../../components/ecl-menu/index.ts","../../components/ecl-menu/eui-ecl-components-ecl-menu.ts"],"sourcesContent":["import { EclDomEvent } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\n\nexport class EclMenuItemSelectEvent extends EclDomEvent<Event> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: Event = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverOutEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemFocusEvent extends EclDomEvent<FocusEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: FocusEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemCaretEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemKeydownEvent extends EclDomEvent<KeyboardEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: KeyboardEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemParentFocusEvent {\n constructor(\n public menuItem: EclMenuItem) {}\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events/ecl-menu-item.event';\n\n/**\n * This component represents a sub-menu item, that is on the second level of the ecl-menu.\n * Adds some custom styling and functionality.\n */\n@Component({\n selector: 'ecl-menu-mega-item',\n templateUrl: './ecl-menu-mega-item.component.html',\n imports: [NgTemplateOutlet, RouterModule],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\n\n @Input() id: string;\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @HostBinding('class.ecl-menu__subitem') cmpClass = true;\n /**\n * The default role of the DOM element is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__subitem--current') isCurrent = false;\n /**\n * An additional item, that represents a link.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__see-all') isSeeAll = false;\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * If menu item includes any icon, added by the user (for example for 'external' link).\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n /**\n * If menu item includes any links, added by the user.\n */\n @ContentChildren(forwardRef(() => EclLinkDirective)) links: QueryList<EclLinkDirective>;\n /**\n * The actual link of the menu item.\n */\n @ViewChild('megaMenuLink') megaMenuLink: ElementRef\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n\n hasChildren = false;\n isExpanded = true;\n\n children: Array<EclMenuItem> = [];\n private renderer = inject(Renderer2);\n\n ngAfterViewInit(): void {\n this.manageContentChildren();\n this.setExtraAttributesForLink(this.megaMenuLink?.nativeElement, this.linkExtraAttributes);\n }\n\n /**\n *\n * @param evt This event is emited, when the menu item is clicked.\n */\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt as MouseEvent));\n\n if (!this.href) {\n evt.preventDefault();\n }\n }\n\n @HostListener('click', ['$event'])\n onHostClick(evt: MouseEvent): void {\n evt.stopPropagation();\n }\n\n /**\n * When the item is the current active item, the 'aria-current' attribute is set to 'page'.\n */\n get ariaCurrent(): string | null {\n return this.isCurrent ? 'page' : null;\n }\n\n /**\n * Focus should be set on the underlying <a> element.\n */\n onFocus(): void {\n this.megaMenuLink.nativeElement.focus();\n }\n\n onKeydown(evt: Event): void {\n if ((evt as KeyboardEvent).key === KeyCode.ENTER) {\n this.onItemClick(evt);\n }\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n\n /**\n * Adds specific classes to content children (icons or links).\n */\n private manageContentChildren(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-menu__sublink-icon';\n });\n });\n }\n\n if (this.links) {\n setTimeout(() => {\n this.links.forEach((icn) => {\n icn.class = icn.class ? icn.class + ' ecl-menu__sublink' : 'ecl-menu__sublink';\n });\n });\n }\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) =>{\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}\n","@if (!isSeeAll) {\n @if (href) {\n <a #megaMenuLink\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n } @else {\n <a #megaMenuLink\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, ContentChildren, QueryList, AfterContentInit, OnDestroy, Output, EventEmitter, IterableDiffer, IterableChanges, IterableDiffers, HostBinding, ElementRef, inject } from '@angular/core';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega-item.component';\nimport { Subject, of, Observable } from 'rxjs';\nimport { takeUntil, mergeWith } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\n\n/**\n * This component acts as a wrapper for the second level of menu items, that are children of one root item.\n * Provides functionality for some common events like keyboard navigation and manages relations between sub items.\n */\n@Component({\n selector: 'ecl-menu-mega',\n templateUrl: './ecl-menu-mega.component.html',\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @HostBinding('class.ecl-menu__mega--rtl') isRtlDisplay: boolean | any = false;\n\n /**\n * List of the sub items.\n */\n @ContentChildren(EclMenuMegaItemComponent) eclMenuMegaItems: QueryList<EclMenuMegaItemComponent>;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used in keyboard navigation, when focus has to be moved to the parent item.\n */\n @Output() menuMegaItemParentFocus = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used when kyboard navigation with TAB reaches the last sub item.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('style.left.px') offsetLeft: number | null;\n @HostBinding('style.right.px') offsetRight: number | null;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-menu__mega')].join(' ');\n }\n\n private differ: IterableDiffer<EclMenuMegaItemComponent>;\n private diff: IterableChanges<EclMenuMegaItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngAfterContentInit(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n // Subscribe to the events of each new added item.\n this.createContentChildrenMenuObservable().subscribe(this.onMenuItemChanges.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n selectFirstSubItem(): void {\n if (this.eclMenuMegaItems.length > 0) {\n this.eclMenuMegaItems.first.onFocus();\n }\n }\n\n private createContentChildrenMenuObservable(): Observable<QueryList<EclMenuMegaItemComponent>> {\n return of(this.eclMenuMegaItems).pipe(mergeWith(this.eclMenuMegaItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n\n if (!this.diff) {\n this.eclMenuMegaItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuMegaItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemSelectEvent) => {\n this.onMenuItemSelected(item, evt);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemKeydownEvent) => {\n this.onMenuItemKeydown(item, evt);\n });\n }\n\n private onMenuItemKeydown(item: EclMenuMegaItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n break;\n }\n case KeyCode.TAB: {\n if (this.isLastItem(item)) {\n evt.preventDefault();\n this.menuMegaLastItemTab.next();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuMegaItemComponent): boolean {\n return this.eclMenuMegaItems.last === item;\n }\n\n private geMenuMegaItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n\n private onPrevMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== 0) {\n this.getMegaMenuItemsArray()[index - 1].onFocus();\n } else {\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== this.getMegaMenuItemsArray().length - 1) {\n this.getMegaMenuItemsArray()[index + 1].onFocus();\n }\n }\n\n private onMenuItemSelected(item: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n this.deselectAllMenuItems(this.eclMenuMegaItems.toArray());\n this.selectMenuItem(item);\n this.sendMenuItemSelectEvent(evt);\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n }\n\n private deselectAllMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private getMegaMenuItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n}\n","<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n afterNextRender,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport {\n EclMenuItemCaretEvent,\n EclMenuItemFocusEvent,\n EclMenuItemHoverEvent,\n EclMenuItemHoverOutEvent,\n EclMenuItemKeydownEvent,\n EclMenuItemParentFocusEvent,\n EclMenuItemSelectEvent,\n} from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuMegaComponent } from '../ecl-menu-mega';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\nconst enum ColTrigger {\n COL1_TRIGGER = 5,\n COL2_TRIGGER = 9,\n COL3_TRIGGER = 13,\n}\n\n/**\n * This component represents a root menu item. Adds styling and functionality to menu item.\n */\n@Component({\n selector: 'ecl-menu-item',\n templateUrl: './ecl-menu-item.component.html',\n imports: [NgTemplateOutlet, RouterModule, EclButtonModule, EclIconModule, EclLinkModule],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @Input() id: string;\n @Input() label: string;\n /**\n * When in mobile view, use this property to set aria-label for the toggle items button (to expand item's children).\n */\n @Input() toggleAriaLabel: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @Input() isCurrent = false;\n /**\n * Custom attributes, to be added to the <a> tag of the menu item.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n isExpanded: boolean;\n /**\n * Set to 'true', when item has more than 13 chidren and the overlay needs to use the full available space.\n */\n isFull = false;\n isHovered = false;\n isMobileBreakpoint = false;\n /**\n * Used when menu has overlay, to show if the item is currently displayed.\n */\n isVisible = true;\n\n /**\n * The default role of the item is 'listitem' and should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu__item'),\n this.isCurrent ? 'ecl-menu__item--current' : '',\n this.isExpanded ? 'ecl-menu__item--expanded' : '',\n this.getClassDependingChildrenCnt(),\n ]\n .join(' ')\n .trim();\n }\n\n @ContentChild(forwardRef(() => EclMenuMegaComponent)) submenu: EclMenuMegaComponent;\n /**\n * The <a> element of the menu item, when there are no children.\n */\n @ViewChild('menuLink') menuLink: ElementRef<HTMLAnchorElement>;\n /**\n * The <button> element of the menu item, when item has children.\n */\n @ViewChild(EclButtonComponent) menuButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemCaret = new EventEmitter<EclMenuItemCaretEvent>();\n /**\n * Event that is emited on clicking the caret button to expand item's children in mobile mode.\n */\n @Output() menuItemHover = new EventEmitter<EclMenuItemHoverEvent>();\n @Output() menuItemHoverOut = new EventEmitter<EclMenuItemHoverOutEvent>();\n @Output() menuMegaItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemFocus = new EventEmitter<EclMenuItemFocusEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n /**\n * This event is emited when the keyboard nav reaches the last item in mobile view.\n * Then the next focused element should be the 'close' btn.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('class.ecl-menu__item--has-children')\n @HostBinding('attr.aria-haspopup')\n get hasEclChildrenDataAttribute(): boolean {\n return this.hasChildren || undefined;\n }\n\n @HostBinding('attr.aria-expanded')\n get isAriaExpanded(): boolean {\n return this.hasChildren ? this.isHovered : null;\n }\n\n get ariaCurrent(): boolean {\n return this.isCurrent ? true : null;\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get children(): Array<EclMenuItem> {\n return this.hasChildren ? this.submenu.eclMenuMegaItems.toArray() : [];\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.setExtraAttributesForLink(this.menuLink?.nativeElement, this.linkExtraAttributes);\n });\n }\n\n @HostListener('mouseenter', ['$event'])\n onItemMouseEnter(evt: MouseEvent): void {\n this.menuItemHover.next(new EclMenuItemHoverEvent(this, evt));\n }\n\n @HostListener('mouseleave', ['$event'])\n onItemMouseLeave(evt: MouseEvent): void {\n this.menuItemHoverOut.next(new EclMenuItemHoverOutEvent(this, evt));\n }\n\n ngAfterContentInit(): void {\n // Subscibe to submenu component events.\n if (this.submenu) {\n this.submenu.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemSelectEvent) => {\n this.menuMegaItemSelect.next(new EclMenuItemSelectEvent(it.menuItem, it.domEvent));\n });\n this.submenu.menuMegaItemParentFocus.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemParentFocusEvent) => {\n if (!this.isMobileBreakpoint) {\n this.onFocusFromSubmenu();\n }\n });\n this.submenu.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isMobileBreakpoint) {\n this.menuMegaLastItemTab.next();\n }\n });\n\n if (this.hasSubmenuAnySelections()) {\n this.isCurrent = true;\n }\n }\n\n // this.tabindex = this.routerLink || this.href ? 0 : -1;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onItemFocus(evt: FocusEvent): void {\n this.menuItemFocus.next(new EclMenuItemFocusEvent(this, evt));\n }\n\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt));\n\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * When clicking the caret button, to expand item's children. Used in mobile view.\n * @param evt\n */\n onItemCaretClick(evt: MouseEvent): void {\n this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from the submenu.\n */\n onFocusFromSubmenu(): void {\n this.onButtonFocus();\n this.isHovered = false;\n this.isExpanded = false;\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the next root menu item.\n */\n onFocusFromNext(): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.onLinkFocus();\n }\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the previous root menu item.\n */\n onFocusFromPrev(): void {\n this.onLinkFocus();\n }\n\n /**\n * Manages the keyboard navigation when the current element is the button of the menu item.\n * @param evt\n */\n onButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n if (this.isHovered) {\n this.selectFirstMegaMenuItem();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.TAB: {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Manages the keyboard navigation when the current element is the <a> tag of the menu item.\n * @param evt\n */\n onLinkKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n evt.preventDefault();\n this.onItemClick(evt);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.onLinkEscape(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * This method calculates height and width of an item, depending the maximum of lines(rows) allowed.\n * Depends on the 'maxLines' property of the parent menu component.\n * @param maxLines - property that sets the maximum possible lines in a menu item.\n * @param isMobileBreakpoint\n * @returns\n */\n checkMenuItem(maxLines: number, isMobileBreakpoint: boolean): void {\n if (maxLines < 1) return;\n\n const currentItem = this.el.nativeElement;\n const currentLink = this.menuLink.nativeElement;\n if (isMobileBreakpoint) {\n this.renderer.setStyle(currentLink, 'width', '100%');\n return;\n }\n this.renderer.setStyle(currentItem, 'alignItems', 'flex-start');\n const linkStyle = window.getComputedStyle(currentLink);\n\n const maxHeight = this.getMenuItemLinkMaxHeight(linkStyle, maxLines);\n\n if (currentLink.offsetHeight > maxHeight) {\n this.changeMenuItemLinkWidth(currentLink, maxLines, linkStyle);\n }\n this.renderer.removeStyle(currentItem, 'alignItems');\n }\n\n private onLinkEscape(evt: Event): void {\n if (this.menuButton) {\n this.menuButton.el.nativeElement.focus();\n evt.stopPropagation();\n } else {\n this.menuLink.nativeElement.blur();\n }\n }\n\n private selectFirstMegaMenuItem(): void {\n this.submenu.selectFirstSubItem();\n }\n\n private onLinkFocus(): void {\n this.menuLink.nativeElement.focus();\n }\n\n private onLinkNextFocus(evt: Event): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n }\n\n private onButtonFocus(): void {\n this.menuButton.el.nativeElement.focus();\n }\n\n private getMenuItemLinkMaxHeight(linkStyle: CSSStyleDeclaration, maxLines: number): number {\n return parseInt(linkStyle.lineHeight, 10) * maxLines + parseInt(linkStyle.paddingTop, 10) + parseInt(linkStyle.paddingBottom, 10);\n }\n\n /**\n * Calculates width of a menu item, depending on maximum lines of text allowed.\n * @param currentLink\n * @param maxLines\n * @param linkStyle\n * @returns\n */\n private changeMenuItemLinkWidth(currentLink: HTMLAnchorElement, maxLines: number, linkStyle: CSSStyleDeclaration): void {\n this.renderer.setStyle(currentLink, 'white-space', 'nowrap');\n const linkWidth = currentLink.offsetWidth;\n if (maxLines === 1) {\n this.renderer.setStyle(currentLink, 'width', `${linkWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n return;\n }\n const textSize = currentLink.text.length;\n const letterWidth = Math.ceil(linkWidth / textSize);\n const wordsArray = currentLink.text.trim().split(' ');\n const goalWidth = Math.ceil(linkWidth / maxLines);\n const firstWord = wordsArray[0];\n let cnt = 1;\n let wordWidth = Math.ceil((firstWord.length + 1) * letterWidth);\n while (wordWidth < goalWidth) {\n wordWidth += Math.ceil((wordsArray[cnt].length + 1) * letterWidth);\n cnt++;\n }\n this.renderer.setStyle(currentLink, 'width', `${wordWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n }\n\n private getClassDependingChildrenCnt(): string {\n if (this.hasChildren) {\n if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL1_TRIGGER) {\n return 'ecl-menu__item--col1';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL2_TRIGGER) {\n return 'ecl-menu__item--col2';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL3_TRIGGER) {\n return 'ecl-menu__item--col3';\n } else {\n this.isFull = true;\n return 'ecl-menu__item--full';\n }\n }\n return '';\n }\n\n private hasSubmenuAnySelections(): boolean {\n return this.submenu && !!this.submenu.eclMenuMegaItems.find((it) => it.isCurrent);\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n isIconOnly\n variant=\"ghost\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n isIconOnly\n variant=\"ghost\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, IterableChanges, IterableDiffer, IterableDiffers, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMenuItemCaretEvent, EclMenuItemHoverEvent, EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemComponent } from './ecl-menu-item.component';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The horizontal menu is used as a primary navigation and it can display up to 2 levels.\n * It directs users to the pages where they need to visit.\n */\n@Component({\n selector: 'ecl-menu',\n templateUrl: './ecl-menu.component.html',\n imports: [TranslateModule, EclButtonModule, EclIconModule],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclMenuComponent extends ECLBaseDirective implements OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Adds some additional styling for the menu items' labels.\n * Depending on that value, the labels can drop on 2-3 lines, if they are longer.\n */\n @Input({ transform: numberAttribute }) maxLines = 0;\n\n /**\n * The main items of the menu.\n */\n @ContentChildren(EclMenuItemComponent) eclRootMenuItems: QueryList<EclMenuItemComponent>;\n /**\n * The element, that wraps the main menu items and the back and forth button.\n */\n @ViewChild('innerSection') innerSection: ElementRef;\n /**\n * The element that wraps the main menu items.\n */\n @ViewChild('itemsList') itemsList: ElementRef;\n /**\n * When there is an overflow of the menu, the 'previous' button to navigate back to first hidden items.\n */\n @ViewChild('btnPrevious') btnPrevious: EclButtonComponent;\n /**\n * When there is an overflow of the menu, the 'next' button to navigate to next hidden items.\n */\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n /**\n * The button to open/close menu in mobile mode.\n */\n @ViewChild('openCloseButton') openCloseButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() openHamburgerMenu = new EventEmitter();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu'),\n 'ecl-menu--transition',\n this.isRtl ? 'ecl-menu--rtl' : '',\n ].join(' ');\n }\n\n @HostBinding('attr.aria-expanded') isHamburgerMenuOpened = false;\n /**\n * The default role is 'navigation', should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n @HostBinding('class.ecl-menu--forced-mobile') isTablet = false;\n @HostBinding('class.ecl-menu--forced-close') isMenuHidden = false;\n\n isMobileBreakpoint = false;\n hasOverflow = false;\n isShowPrevBtn = false;\n isShowNextBtn = false;\n /**\n * Show/hide the specific class for the 'previous' and 'next' buttons.\n */\n isPrevBtnCurrentClass = false;\n menuListStyleRight = 'auto';\n menuListStyleLeft = 'auto';\n overlayStyleTop: number | null = null;\n innerStyleTop: number | null = null;\n\n private currentItem: EclMenuItem;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMenuItemComponent>;\n private diff: IterableChanges<EclMenuItemComponent>;\n private isRtl = false;\n private totalItemsWidth = 0;\n private offsetLeft = 0;\n private lastVisibleItem: EclMenuItemComponent;\n private hammertime: Hammer;\n private resizeTimer: number;\n private TIMEOUT_INTERVAL = 150;\n private el = inject(ElementRef);\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n private eclUserDeviceService = inject(EclUserDeviceService);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n clearTimeout(this.resizeTimer);\n this.observeElementSizeChanges();\n this.resizeTimer = setTimeout(() => {\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n }, this.TIMEOUT_INTERVAL);\n this.checkIsTabletDevice();\n });\n }\n\n /**\n * On 'esc' key clicked - close/hide any open menus.\n * @param event\n */\n @HostListener('keydown', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closeRootMenu();\n this.hideMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeBreakpointChanges();\n this.observeSwipeGestures();\n }\n }\n\n ngAfterContentInit(): void {\n // Subscribe to all menu items' events.\n this.observeRootMenuItemsChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n\n this.hammertime?.off('swipeleft');\n this.hammertime?.off('swiperight');\n }\n\n /**\n * Swipe left gesture handling\n */\n onSwipeLeft(): void {\n if (this.isMobileBreakpoint) {\n this.onOpenHamburgerMenu();\n }\n }\n\n /**\n * Swipe right gesture handling\n */\n onSwipeRight(): void {\n if (this.isMobileBreakpoint) {\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * Manages state on open/close button click, used in mobile view.\n */\n onMenuOpenCloseClick(evt: MouseEvent): void {\n if (this.isHamburgerMenuOpened) {\n this.onCloseHamburgerMenu();\n } else {\n this.onOpenHamburgerMenu();\n }\n evt.preventDefault();\n }\n\n /**\n * Manages state on close button click, used in mobile view, in EU theme.\n */\n onMenuCloseClick(evt: MouseEvent): void {\n this.onCloseHamburgerMenu();\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on back button click, used in mobile view.\n */\n onMenuBackClick(evt: MouseEvent): void {\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on 'previous' button click. Used in desktop view. Slides the items and shows the previous hidden items.\n */\n onPrevBtnClick(): void {\n this.slideMenuInitialState();\n this.refreshDisplay();\n }\n\n /**\n * Manages state on 'next' button click. Used in desktop view. Slides the items and shows the next hidden items.\n */\n onNextBtnClick(): void {\n this.isShowPrevBtn = true;\n this.isShowNextBtn = false;\n\n if (this.isRtl) {\n this.showNextSlideRtl();\n } else {\n this.showNextSlideLtr();\n }\n\n this.refreshDisplay();\n }\n\n /**\n * Postions overlay, depending on parent header position.\n * This method is called from parent header, which uses the menu for navigation.\n * @param bottomSpaceY\n */\n positionMenuOverlay(bottomSpaceY: number): void {\n if (this.isMobileBreakpoint && bottomSpaceY) {\n this.overlayStyleTop = bottomSpaceY;\n this.innerStyleTop = bottomSpaceY;\n } else {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.renderer.removeClass(this.el.nativeElement, 'ecl-menu--transition');\n this.totalItemsWidth = 0;\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n this.renderer.addClass(this.el.nativeElement, 'ecl-menu--transition');\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.innerSection.nativeElement);\n }\n\n private checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\n }\n\n private slideMenuInitialState(): void {\n this.offsetLeft = 0;\n if (this.isRtl) {\n this.menuListStyleRight = '0px';\n this.menuListStyleLeft = 'auto';\n } else {\n this.menuListStyleLeft = '0px';\n this.menuListStyleRight = 'auto';\n }\n\n this.isShowPrevBtn = false;\n this.isShowNextBtn = true;\n }\n\n private showNextSlideLtr(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().left -\n this.itemsList.nativeElement.getBoundingClientRect().left -\n btnOffsetWidth;\n\n this.menuListStyleLeft = `-${this.offsetLeft}px`;\n this.menuListStyleRight = 'auto';\n }\n\n private showNextSlideRtl(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.itemsList.nativeElement.getBoundingClientRect().right -\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().right -\n btnOffsetWidth;\n\n this.menuListStyleRight = `-${this.offsetLeft}px`;\n this.menuListStyleLeft = 'auto';\n }\n\n private refreshDisplay(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n item.isVisible = !item.isVisible;\n });\n }\n\n private checkMenuOverflow(): void {\n this.hasOverflow = this.totalItemsWidth > this.innerSection.nativeElement.offsetWidth + 16;\n if (!this.hasOverflow || this.isMobileBreakpoint) {\n this.resetOverflowValues();\n return;\n }\n\n this.setClassForPrevNextButtons();\n this.resetVisibilityIndicator();\n\n if (this.offsetLeft === 0) {\n this.manageOverflowEnd();\n } else {\n this.manageOverflowBeginning();\n }\n }\n\n /**\n * Manage items visibility when using overlfow. For both rtl and ltr cases.\n */\n private manageOverflowBeginning(): void {\n if (this.isRtl) {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().right <=\n this.innerSection.nativeElement.getBoundingClientRect().right,\n )\n .forEach((el) => (el.isVisible = true));\n } else {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().left >= this.innerSection.nativeElement.getBoundingClientRect().left,\n )\n .forEach((el) => (el.isVisible = true));\n }\n }\n\n /**\n * Manage items visibility when using overlfow, with the 'next' button. For both rtl and ltr cases.\n */\n private manageOverflowEnd(): void {\n this.isShowNextBtn = true;\n if (this.isRtl) {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().left < this.itemsList.nativeElement.getBoundingClientRect().left) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n } else {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().right > this.itemsList.nativeElement.getBoundingClientRect().right) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n }\n }\n\n private resetVisibilityIndicator(): void {\n this.eclRootMenuItems.forEach((item) => (item.isVisible = false));\n }\n\n private resetOverflowValues(): void {\n this.isShowPrevBtn = false;\n this.isShowNextBtn = false;\n this.hasOverflow = false;\n this.menuListStyleLeft = '0px';\n this.offsetLeft = 0;\n this.totalItemsWidth = 0;\n this.lastVisibleItem = null;\n }\n\n private setClassForPrevNextButtons(): void {\n this.currentItem = this.eclRootMenuItems.find((item) => item.isCurrent);\n if (this.currentItem) {\n if (this.currentItem.isVisible) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n }\n\n private checkMenuItemsWidth(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n this.totalItemsWidth += item.el.nativeElement.offsetWidth;\n });\n }\n\n public get isMenuExpandedInMobile(): boolean {\n return this.isMobileBreakpoint && this.isAnyRootMenuItemExpanded();\n }\n\n private isAnyRootMenuItemExpanded(): boolean {\n return this.eclRootMenuItems.some((item) => item.isExpanded);\n }\n\n private createRootMenuItemsChangesObservable(): Observable<QueryList<EclMenuItemComponent>> {\n return of(this.eclRootMenuItems).pipe(mergeWith(this.eclRootMenuItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n\n if (!this.diff) {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemSelected(evt);\n });\n item.menuItemHover.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHovered(evt);\n });\n item.menuItemHoverOut.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHoveredOut(evt);\n });\n item.menuItemCaret.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemCaret(evt);\n });\n item.menuMegaItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMenuMegaItemSelected(item, evt);\n });\n item.menuItemFocus.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemFocused(item);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemKeydown(item, evt);\n });\n item.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.openCloseButton.onFocus();\n });\n }\n\n private onRootMenuItemFocused(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n if (this.isMovePrevOverflow(index)){\n this.onPrevBtnClick();\n } else if (this.isMoveNextOverflow(index)){\n this.onNextBtnClick();\n }\n }\n\n private onRootMenuItemKeydown(item: EclMenuItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ENTER: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ESCAPE: {\n this.onRootMenuItemEscape(item, evt.domEvent);\n break;\n }\n case KeyCode.TAB: {\n if (this.isMobileBreakpoint && this.isLastItem(item)) {\n evt.preventDefault();\n this.openCloseButton.onFocus();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuItemComponent): boolean {\n return this.eclRootMenuItems.last === item;\n }\n\n private onRootMenuItemEscape(item: EclMenuItem, evt: Event): void {\n if (item.isHovered) {\n this.closeRootMenu();\n }\n evt.stopPropagation();\n }\n\n private onPrevMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== 0) {\n this.getRootMenuItemsArray()[index - 1].onFocusFromNext();\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== this.getRootMenuItemsArray().length - 1) {\n this.getRootMenuItemsArray()[index + 1].onFocusFromPrev();\n }\n }\n\n private findIndexInArray(item: EclMenuItem): number {\n return this.getRootMenuItemsArray().findIndex(el => item === el);\n }\n\n private isMoveNextOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowNextBtn;\n }\n\n private isMovePrevOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowPrevBtn;\n }\n\n private onRootMenuItemSelected(evt: EclMenuItemSelectEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(requestedRootMenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n }\n\n private managePrevNextButtonsClassOnItemSelected(): void {\n if (this.isShowNextBtn) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n\n private onRootMenuItemHovered(evt: EclMenuItemHoverEvent): void {\n this.openSubmenu(evt.menuItem);\n }\n\n private onRootMenuItemEnter(item: EclMenuItem): void {\n if (this.isMobileBreakpoint) {\n this.closeRootMenuButOneItem(item);\n this.toggleExpandedForMenuItem(item);\n } else {\n if (!item.isHovered) {\n this.openSubmenu(item);\n } else {\n this.closeRootMenu();\n }\n }\n }\n\n private openSubmenu(item: EclMenuItem): void {\n if (item.isVisible) {\n if (!this.isMobileBreakpoint && (item as EclMenuItemComponent).submenu) {\n this.checkMegaMenu(item as EclMenuItemComponent);\n }\n item.isHovered = true;\n this.closeRootMenuButOneItem(item);\n this.showMenu();\n }\n }\n\n private getRootMenuItemsArray(): EclMenuItemComponent[] {\n return this.eclRootMenuItems.toArray();\n }\n\n private checkMegaMenu(menuItem: EclMenuItemComponent): void {\n if (menuItem.isFull) {\n if (this.isRtl) {\n menuItem.submenu.offsetRight = this.offsetLeft;\n } else {\n menuItem.submenu.offsetLeft = this.offsetLeft;\n }\n return;\n }\n this.checkEnoughSpaceForMegaMenu(menuItem);\n }\n\n private checkEnoughSpaceForMegaMenu(menuItem: EclMenuItemComponent): void {\n const megaBounding = menuItem.submenu.el.nativeElement.getBoundingClientRect();\n const containerBounding = this.innerSection.nativeElement.getBoundingClientRect();\n const menuItemBounding = menuItem.el.nativeElement.getBoundingClientRect();\n\n const megaWidth = megaBounding.width;\n const containerWidth = containerBounding.width;\n const menuItemPosition = menuItemBounding.left - containerBounding.left;\n\n if (menuItemPosition + megaWidth > containerWidth) {\n menuItem.submenu.isRtlDisplay = true;\n } else {\n menuItem.submenu.isRtlDisplay = false;\n }\n }\n\n private onRootMenuItemHoveredOut(evt: EclMenuItemHoverEvent): void {\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n }\n\n private onRootMenuItemCaret(evt: EclMenuItemCaretEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenuButOneItem(requestedRootMenuItem);\n this.toggleExpandedForMenuItem(requestedRootMenuItem);\n }\n\n private onMenuMegaItemSelected(rootMenuItem: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n const requestedSubmenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(rootMenuItem);\n this.selectMenuItem(requestedSubmenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n\n this.hideMenu();\n }\n\n private deselectAllRootMenuItems(): void {\n this.deselectMenuItems(this.eclRootMenuItems.toArray());\n }\n\n private deselectAllSubmenusItems(): void {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.deselectMenuItems(rootItem.children);\n });\n }\n\n private deselectMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n this.currentItem = item;\n }\n\n private hideMenu(): void {\n this.isMenuHidden = true;\n }\n\n private showMenu(): void {\n this.isMenuHidden = false;\n }\n\n private closeRootMenu(): void {\n this.eclRootMenuItems.forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private closeRootMenuButOneItem(item: EclMenuItem): void {\n this.eclRootMenuItems\n .filter((it) => it !== item)\n .forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined && this.isRtl !== rtlState) {\n this.isRtl = rtlState;\n if (this.hasOverflow) {\n this.slideMenuInitialState();\n setTimeout(() => this.checkMenuOverflow());\n }\n }\n });\n }\n\n private toggleExpandedForMenuItem(item: EclMenuItem): void {\n item.isExpanded = !item.isExpanded;\n }\n\n private onOpenHamburgerMenu(): void {\n this.disableScroll();\n this.isHamburgerMenuOpened = true;\n this.openHamburgerMenu.emit();\n this.focusOnFirstItem();\n }\n\n private onCloseHamburgerMenu(): void {\n this.isHamburgerMenuOpened = false;\n this.enableScroll();\n }\n\n private disableScroll(): void {\n document.body.classList.add('no-scroll');\n }\n\n private enableScroll(): void {\n document.body.classList.remove('no-scroll');\n }\n\n private focusOnFirstItem(): void {\n this.eclRootMenuItems.first.onFocusFromPrev();\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private observeRootMenuItemsChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n this.createRootMenuItemsChangesObservable().pipe(takeUntil(this.destroy$)).subscribe(this.onMenuItemChanges.bind(this));\n }\n\n private observeSwipeGestures(): void {\n // load hammerjs only on browser\n if(isPlatformBrowser(this.platformId)) {\n import('hammerjs').then((Hammer: Hammer) => {\n this.hammertime = new Hammer.default(document, { inputClass: Hammer.TouchInput });\n this.hammertime.on('swipeleft', this.onSwipeLeft.bind(this));\n this.hammertime.on('swiperight', this.onSwipeRight.bind(this));\n }).catch((error) => {\n console.error('Error loading HammerJS', error);\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([('(max-width: 996px)')])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n if (!this.isMobileBreakpoint) {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n });\n }\n}\n","<div class=\"ecl-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <button #openCloseButton eclButton isIconOnly variant=\"tertiary\" type=\"button\" class=\"ecl-menu__open\"\n (click)=\"onMenuOpenCloseClick($event)\" [attr.aria-expanded]=\"isHamburgerMenuOpened\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isHamburgerMenuOpened) {\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span eclButtonLabel>{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\"\n aria-label=\"Menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"ghost\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"s\"></ecl-icon>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"ghost\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'flex' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'flex' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n","import { NgModule } from '@angular/core';\nimport { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nconst COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];\n\n/**\n * Module that provides the EclMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMenuModule {}\n","import { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nexport * from './ecl-menu.module';\nexport * from './ecl-menu/index';\nexport * from './ecl-menu-mega/index';\nexport * from './events/index';\nexport * from './models/ecl-menu-item.model';\n\nexport const EUI_ECL_MENU = [\n EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-menu.mjs","sources":["../../components/ecl-menu/events/ecl-menu-item.event.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.html","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.ts","../../components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.html","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu-item.component.html","../../components/ecl-menu/ecl-menu/ecl-menu.component.ts","../../components/ecl-menu/ecl-menu/ecl-menu.component.html","../../components/ecl-menu/ecl-menu.module.ts","../../components/ecl-menu/index.ts","../../components/ecl-menu/eui-ecl-components-ecl-menu.ts"],"sourcesContent":["import { EclDomEvent } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\n\nexport class EclMenuItemSelectEvent extends EclDomEvent<Event> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: Event = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemHoverOutEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemFocusEvent extends EclDomEvent<FocusEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: FocusEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemCaretEvent extends EclDomEvent<MouseEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: MouseEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemKeydownEvent extends EclDomEvent<KeyboardEvent> {\n constructor(\n public menuItem: EclMenuItem,\n public domEvent: KeyboardEvent = null,\n ) {\n super(domEvent);\n }\n}\n\nexport class EclMenuItemParentFocusEvent {\n constructor(\n public menuItem: EclMenuItem) {}\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink } from '@angular/router';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events/ecl-menu-item.event';\n\n/**\n * This component represents a sub-menu item, that is on the second level of the ecl-menu.\n * Adds some custom styling and functionality.\n */\n@Component({\n selector: 'ecl-menu-mega-item',\n templateUrl: './ecl-menu-mega-item.component.html',\n imports: [NgTemplateOutlet, RouterLink],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclMenuMegaItemComponent extends ECLBaseDirective implements EclMenuItem, AfterViewInit {\n\n @Input() id: string;\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @HostBinding('class.ecl-menu__subitem') cmpClass = true;\n /**\n * The default role of the DOM element is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__subitem--current') isCurrent = false;\n /**\n * An additional item, that represents a link.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-menu__see-all') isSeeAll = false;\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * If menu item includes any icon, added by the user (for example for 'external' link).\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n /**\n * If menu item includes any links, added by the user.\n */\n @ContentChildren(forwardRef(() => EclLinkDirective)) links: QueryList<EclLinkDirective>;\n /**\n * The actual link of the menu item.\n */\n @ViewChild('megaMenuLink') megaMenuLink: ElementRef\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n\n hasChildren = false;\n isExpanded = true;\n\n children: Array<EclMenuItem> = [];\n private renderer = inject(Renderer2);\n\n ngAfterViewInit(): void {\n this.manageContentChildren();\n this.setExtraAttributesForLink(this.megaMenuLink?.nativeElement, this.linkExtraAttributes);\n }\n\n /**\n *\n * @param evt This event is emited, when the menu item is clicked.\n */\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt as MouseEvent));\n\n if (!this.href) {\n evt.preventDefault();\n }\n }\n\n @HostListener('click', ['$event'])\n onHostClick(evt: MouseEvent): void {\n evt.stopPropagation();\n }\n\n /**\n * When the item is the current active item, the 'aria-current' attribute is set to 'page'.\n */\n get ariaCurrent(): string | null {\n return this.isCurrent ? 'page' : null;\n }\n\n /**\n * Focus should be set on the underlying <a> element.\n */\n onFocus(): void {\n this.megaMenuLink.nativeElement.focus();\n }\n\n onKeydown(evt: Event): void {\n if ((evt as KeyboardEvent).key === KeyCode.ENTER) {\n this.onItemClick(evt);\n }\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n\n /**\n * Adds specific classes to content children (icons or links).\n */\n private manageContentChildren(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-menu__sublink-icon';\n });\n });\n }\n\n if (this.links) {\n setTimeout(() => {\n this.links.forEach((icn) => {\n icn.class = icn.class ? icn.class + ' ecl-menu__sublink' : 'ecl-menu__sublink';\n });\n });\n }\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) =>{\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}\n","@if (!isSeeAll) {\n @if (href) {\n <a #megaMenuLink\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n } @else {\n <a #megaMenuLink\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-link ecl-link--standalone ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, ContentChildren, QueryList, AfterContentInit, OnDestroy, Output, EventEmitter, IterableDiffer, IterableChanges, IterableDiffers, HostBinding, ElementRef, inject } from '@angular/core';\nimport { EclMenuMegaItemComponent } from './ecl-menu-mega-item.component';\nimport { Subject, of, Observable } from 'rxjs';\nimport { takeUntil, mergeWith } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\n\n/**\n * This component acts as a wrapper for the second level of menu items, that are children of one root item.\n * Provides functionality for some common events like keyboard navigation and manages relations between sub items.\n */\n@Component({\n selector: 'ecl-menu-mega',\n templateUrl: './ecl-menu-mega.component.html',\n})\nexport class EclMenuMegaComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @HostBinding('class.ecl-menu__mega--rtl') isRtlDisplay: boolean | any = false;\n\n /**\n * List of the sub items.\n */\n @ContentChildren(EclMenuMegaItemComponent) eclMenuMegaItems: QueryList<EclMenuMegaItemComponent>;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used in keyboard navigation, when focus has to be moved to the parent item.\n */\n @Output() menuMegaItemParentFocus = new EventEmitter<EclMenuItemSelectEvent>();\n /**\n * Used when kyboard navigation with TAB reaches the last sub item.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('style.left.px') offsetLeft: number | null;\n @HostBinding('style.right.px') offsetRight: number | null;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-menu__mega')].join(' ');\n }\n\n private differ: IterableDiffer<EclMenuMegaItemComponent>;\n private diff: IterableChanges<EclMenuMegaItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n }\n\n ngAfterContentInit(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n // Subscribe to the events of each new added item.\n this.createContentChildrenMenuObservable().subscribe(this.onMenuItemChanges.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n selectFirstSubItem(): void {\n if (this.eclMenuMegaItems.length > 0) {\n this.eclMenuMegaItems.first.onFocus();\n }\n }\n\n private createContentChildrenMenuObservable(): Observable<QueryList<EclMenuMegaItemComponent>> {\n return of(this.eclMenuMegaItems).pipe(mergeWith(this.eclMenuMegaItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclMenuMegaItems);\n\n if (!this.diff) {\n this.eclMenuMegaItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuMegaItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemSelectEvent) => {\n this.onMenuItemSelected(item, evt);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: EclMenuItemKeydownEvent) => {\n this.onMenuItemKeydown(item, evt);\n });\n }\n\n private onMenuItemKeydown(item: EclMenuMegaItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n break;\n }\n case KeyCode.TAB: {\n if (this.isLastItem(item)) {\n evt.preventDefault();\n this.menuMegaLastItemTab.next();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuMegaItemComponent): boolean {\n return this.eclMenuMegaItems.last === item;\n }\n\n private geMenuMegaItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n\n private onPrevMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== 0) {\n this.getMegaMenuItemsArray()[index - 1].onFocus();\n } else {\n this.menuMegaItemParentFocus.next(new EclMenuItemSelectEvent(item));\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuMegaItemComponent): void {\n const index = this.geMenuMegaItemsArray().findIndex(el => item === el);\n if (index !== this.getMegaMenuItemsArray().length - 1) {\n this.getMegaMenuItemsArray()[index + 1].onFocus();\n }\n }\n\n private onMenuItemSelected(item: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n this.deselectAllMenuItems(this.eclMenuMegaItems.toArray());\n this.selectMenuItem(item);\n this.sendMenuItemSelectEvent(evt);\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n }\n\n private deselectAllMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private getMegaMenuItemsArray(): EclMenuMegaItemComponent[] {\n return this.eclMenuMegaItems.toArray();\n }\n}\n","<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n afterNextRender,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport {\n EclMenuItemCaretEvent,\n EclMenuItemFocusEvent,\n EclMenuItemHoverEvent,\n EclMenuItemHoverOutEvent,\n EclMenuItemKeydownEvent,\n EclMenuItemParentFocusEvent,\n EclMenuItemSelectEvent,\n} from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuMegaComponent } from '../ecl-menu-mega';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nconst enum ColTrigger {\n COL1_TRIGGER = 5,\n COL2_TRIGGER = 9,\n COL3_TRIGGER = 13,\n}\n\n/**\n * This component represents a root menu item. Adds styling and functionality to menu item.\n */\n@Component({\n selector: 'ecl-menu-item',\n templateUrl: './ecl-menu-item.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclMenuItemComponent extends ECLBaseDirective implements EclMenuItem, AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @Input() id: string;\n @Input() label: string;\n /**\n * When in mobile view, use this property to set aria-label for the toggle items button (to expand item's children).\n */\n @Input() toggleAriaLabel: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n @Input() isCurrent = false;\n /**\n * Custom attributes, to be added to the <a> tag of the menu item.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n isExpanded: boolean;\n /**\n * Set to 'true', when item has more than 13 chidren and the overlay needs to use the full available space.\n */\n isFull = false;\n isHovered = false;\n isMobileBreakpoint = false;\n /**\n * Used when menu has overlay, to show if the item is currently displayed.\n */\n isVisible = true;\n\n /**\n * The default role of the item is 'listitem' and should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu__item'),\n this.isCurrent ? 'ecl-menu__item--current' : '',\n this.isExpanded ? 'ecl-menu__item--expanded' : '',\n this.getClassDependingChildrenCnt(),\n ]\n .join(' ')\n .trim();\n }\n\n @ContentChild(forwardRef(() => EclMenuMegaComponent)) submenu: EclMenuMegaComponent;\n /**\n * The <a> element of the menu item, when there are no children.\n */\n @ViewChild('menuLink') menuLink: ElementRef<HTMLAnchorElement>;\n /**\n * The <button> element of the menu item, when item has children.\n */\n @ViewChild(EclButtonComponent) menuButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemCaret = new EventEmitter<EclMenuItemCaretEvent>();\n /**\n * Event that is emited on clicking the caret button to expand item's children in mobile mode.\n */\n @Output() menuItemHover = new EventEmitter<EclMenuItemHoverEvent>();\n @Output() menuItemHoverOut = new EventEmitter<EclMenuItemHoverOutEvent>();\n @Output() menuMegaItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() menuItemFocus = new EventEmitter<EclMenuItemFocusEvent>();\n @Output() menuItemKeydown = new EventEmitter<EclMenuItemKeydownEvent>();\n /**\n * This event is emited when the keyboard nav reaches the last item in mobile view.\n * Then the next focused element should be the 'close' btn.\n */\n @Output() menuMegaLastItemTab = new EventEmitter<void>();\n\n @HostBinding('class.ecl-menu__item--has-children')\n @HostBinding('attr.aria-haspopup')\n get hasEclChildrenDataAttribute(): boolean {\n return this.hasChildren || undefined;\n }\n\n @HostBinding('attr.aria-expanded')\n get isAriaExpanded(): boolean {\n return this.hasChildren ? this.isHovered : null;\n }\n\n get ariaCurrent(): boolean {\n return this.isCurrent ? true : null;\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n get children(): Array<EclMenuItem> {\n return this.hasChildren ? this.submenu.eclMenuMegaItems.toArray() : [];\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.setExtraAttributesForLink(this.menuLink?.nativeElement, this.linkExtraAttributes);\n });\n }\n\n @HostListener('mouseenter', ['$event'])\n onItemMouseEnter(evt: MouseEvent): void {\n this.menuItemHover.next(new EclMenuItemHoverEvent(this, evt));\n }\n\n @HostListener('mouseleave', ['$event'])\n onItemMouseLeave(evt: MouseEvent): void {\n this.menuItemHoverOut.next(new EclMenuItemHoverOutEvent(this, evt));\n }\n\n ngAfterContentInit(): void {\n // Subscibe to submenu component events.\n if (this.submenu) {\n this.submenu.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemSelectEvent) => {\n this.menuMegaItemSelect.next(new EclMenuItemSelectEvent(it.menuItem, it.domEvent));\n });\n this.submenu.menuMegaItemParentFocus.pipe(takeUntil(this.destroy$)).subscribe((it: EclMenuItemParentFocusEvent) => {\n if (!this.isMobileBreakpoint) {\n this.onFocusFromSubmenu();\n }\n });\n this.submenu.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isMobileBreakpoint) {\n this.menuMegaLastItemTab.next();\n }\n });\n\n if (this.hasSubmenuAnySelections()) {\n this.isCurrent = true;\n }\n }\n\n // this.tabindex = this.routerLink || this.href ? 0 : -1;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onItemFocus(evt: FocusEvent): void {\n this.menuItemFocus.next(new EclMenuItemFocusEvent(this, evt));\n }\n\n onItemClick(evt: Event): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(this, evt));\n\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * When clicking the caret button, to expand item's children. Used in mobile view.\n * @param evt\n */\n onItemCaretClick(evt: MouseEvent): void {\n this.menuItemCaret.next(new EclMenuItemCaretEvent(this, evt));\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from the submenu.\n */\n onFocusFromSubmenu(): void {\n this.onButtonFocus();\n this.isHovered = false;\n this.isExpanded = false;\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the next root menu item.\n */\n onFocusFromNext(): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.onLinkFocus();\n }\n }\n\n /**\n * Manages the state when the item is focused, when navigating with keyboard and the navigation is coming from\n * the previous root menu item.\n */\n onFocusFromPrev(): void {\n this.onLinkFocus();\n }\n\n /**\n * Manages the keyboard navigation when the current element is the button of the menu item.\n * @param evt\n */\n onButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n if (this.isHovered) {\n this.selectFirstMegaMenuItem();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.onLinkFocus();\n break;\n }\n case KeyCode.TAB: {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Manages the keyboard navigation when the current element is the <a> tag of the menu item.\n * @param evt\n */\n onLinkKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.onLinkNextFocus(evt);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n break;\n }\n case KeyCode.ENTER: {\n this.onItemClick(evt);\n break;\n }\n case KeyCode.ESCAPE: {\n evt.preventDefault();\n this.onLinkEscape(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * This method calculates height and width of an item, depending the maximum of lines(rows) allowed.\n * Depends on the 'maxLines' property of the parent menu component.\n * @param maxLines - property that sets the maximum possible lines in a menu item.\n * @param isMobileBreakpoint\n * @returns\n */\n checkMenuItem(maxLines: number, isMobileBreakpoint: boolean): void {\n if (maxLines < 1) return;\n\n const currentItem = this.el.nativeElement;\n const currentLink = this.menuLink.nativeElement;\n if (isMobileBreakpoint) {\n this.renderer.setStyle(currentLink, 'width', '100%');\n return;\n }\n this.renderer.setStyle(currentItem, 'alignItems', 'flex-start');\n const linkStyle = window.getComputedStyle(currentLink);\n\n const maxHeight = this.getMenuItemLinkMaxHeight(linkStyle, maxLines);\n\n if (currentLink.offsetHeight > maxHeight) {\n this.changeMenuItemLinkWidth(currentLink, maxLines, linkStyle);\n }\n this.renderer.removeStyle(currentItem, 'alignItems');\n }\n\n private onLinkEscape(evt: Event): void {\n if (this.menuButton) {\n this.menuButton.el.nativeElement.focus();\n evt.stopPropagation();\n } else {\n this.menuLink.nativeElement.blur();\n }\n }\n\n private selectFirstMegaMenuItem(): void {\n this.submenu.selectFirstSubItem();\n }\n\n private onLinkFocus(): void {\n this.menuLink.nativeElement.focus();\n }\n\n private onLinkNextFocus(evt: Event): void {\n if (this.menuButton) {\n this.onButtonFocus();\n } else {\n this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt as KeyboardEvent));\n }\n }\n\n private onButtonFocus(): void {\n this.menuButton.el.nativeElement.focus();\n }\n\n private getMenuItemLinkMaxHeight(linkStyle: CSSStyleDeclaration, maxLines: number): number {\n return parseInt(linkStyle.lineHeight, 10) * maxLines + parseInt(linkStyle.paddingTop, 10) + parseInt(linkStyle.paddingBottom, 10);\n }\n\n /**\n * Calculates width of a menu item, depending on maximum lines of text allowed.\n * @param currentLink\n * @param maxLines\n * @param linkStyle\n * @returns\n */\n private changeMenuItemLinkWidth(currentLink: HTMLAnchorElement, maxLines: number, linkStyle: CSSStyleDeclaration): void {\n this.renderer.setStyle(currentLink, 'white-space', 'nowrap');\n const linkWidth = currentLink.offsetWidth;\n if (maxLines === 1) {\n this.renderer.setStyle(currentLink, 'width', `${linkWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n return;\n }\n const textSize = currentLink.text.length;\n const letterWidth = Math.ceil(linkWidth / textSize);\n const wordsArray = currentLink.text.trim().split(' ');\n const goalWidth = Math.ceil(linkWidth / maxLines);\n const firstWord = wordsArray[0];\n let cnt = 1;\n let wordWidth = Math.ceil((firstWord.length + 1) * letterWidth);\n while (wordWidth < goalWidth) {\n wordWidth += Math.ceil((wordsArray[cnt].length + 1) * letterWidth);\n cnt++;\n }\n this.renderer.setStyle(currentLink, 'width', `${wordWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);\n this.renderer.removeStyle(currentLink, 'white-space');\n }\n\n private getClassDependingChildrenCnt(): string {\n if (this.hasChildren) {\n if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL1_TRIGGER) {\n return 'ecl-menu__item--col1';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL2_TRIGGER) {\n return 'ecl-menu__item--col2';\n } else if (this.submenu.eclMenuMegaItems.length < ColTrigger.COL3_TRIGGER) {\n return 'ecl-menu__item--col3';\n } else {\n this.isFull = true;\n return 'ecl-menu__item--full';\n }\n }\n return '';\n }\n\n private hasSubmenuAnySelections(): boolean {\n return this.submenu && !!this.submenu.eclMenuMegaItems.find((it) => it.isCurrent);\n }\n\n private setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n isIconOnly\n variant=\"ghost\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n isIconOnly\n variant=\"ghost\"\n class=\"ecl-menu__button-caret\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, IterableChanges, IterableDiffer, IterableDiffers, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport type Hammer from 'hammerjs';\nimport { Observable, Subject, of } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMenuItemCaretEvent, EclMenuItemHoverEvent, EclMenuItemKeydownEvent, EclMenuItemSelectEvent } from '../events';\nimport { EclMenuItem } from '../models/ecl-menu-item.model';\nimport { EclMenuItemComponent } from './ecl-menu-item.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The horizontal menu is used as a primary navigation and it can display up to 2 levels.\n * It directs users to the pages where they need to visit.\n */\n@Component({\n selector: 'ecl-menu',\n templateUrl: './ecl-menu.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclMenuComponent extends ECLBaseDirective implements OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Adds some additional styling for the menu items' labels.\n * Depending on that value, the labels can drop on 2-3 lines, if they are longer.\n */\n @Input({ transform: numberAttribute }) maxLines = 0;\n\n /**\n * The main items of the menu.\n */\n @ContentChildren(EclMenuItemComponent) eclRootMenuItems: QueryList<EclMenuItemComponent>;\n /**\n * The element, that wraps the main menu items and the back and forth button.\n */\n @ViewChild('innerSection') innerSection: ElementRef;\n /**\n * The element that wraps the main menu items.\n */\n @ViewChild('itemsList') itemsList: ElementRef;\n /**\n * When there is an overflow of the menu, the 'previous' button to navigate back to first hidden items.\n */\n @ViewChild('btnPrevious') btnPrevious: EclButtonComponent;\n /**\n * When there is an overflow of the menu, the 'next' button to navigate to next hidden items.\n */\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n /**\n * The button to open/close menu in mobile mode.\n */\n @ViewChild('openCloseButton') openCloseButton: EclButtonComponent;\n\n @Output() menuItemSelect = new EventEmitter<EclMenuItemSelectEvent>();\n @Output() openHamburgerMenu = new EventEmitter();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-menu'),\n 'ecl-menu--transition',\n this.isRtl ? 'ecl-menu--rtl' : '',\n ].join(' ');\n }\n\n isHamburgerMenuOpened = false;\n\n @HostBinding('attr.data-expanded')\n get expandedAttr() {\n return this.isHamburgerMenuOpened ? '' : null;\n }\n \n /**\n * The default role is 'navigation', should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n @HostBinding('class.ecl-menu--forced-mobile') isTablet = false;\n @HostBinding('class.ecl-menu--forced-close') isMenuHidden = false;\n\n isMobileBreakpoint = false;\n hasOverflow = false;\n isShowPrevBtn = false;\n isShowNextBtn = false;\n /**\n * Show/hide the specific class for the 'previous' and 'next' buttons.\n */\n isPrevBtnCurrentClass = false;\n menuListStyleRight = 'auto';\n menuListStyleLeft = 'auto';\n overlayStyleTop: number | null = null;\n innerStyleTop: number | null = null;\n\n private currentItem: EclMenuItem;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMenuItemComponent>;\n private diff: IterableChanges<EclMenuItemComponent>;\n private isRtl = false;\n private totalItemsWidth = 0;\n private offsetLeft = 0;\n private lastVisibleItem: EclMenuItemComponent;\n private hammertime: Hammer;\n private resizeTimer: number;\n private TIMEOUT_INTERVAL = 150;\n private el = inject(ElementRef);\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n private eclUserDeviceService = inject(EclUserDeviceService);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n clearTimeout(this.resizeTimer);\n this.observeElementSizeChanges();\n this.resizeTimer = setTimeout(() => {\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n }, this.TIMEOUT_INTERVAL);\n this.checkIsTabletDevice();\n });\n }\n\n /**\n * On 'esc' key clicked - close/hide any open menus.\n * @param event\n */\n @HostListener('keydown', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closeRootMenu();\n this.hideMenu();\n this.onCloseHamburgerMenu();\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.handleRtlChangeState();\n this.observeBreakpointChanges();\n this.observeSwipeGestures();\n }\n }\n\n ngAfterContentInit(): void {\n // Subscribe to all menu items' events.\n this.observeRootMenuItemsChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n\n this.hammertime?.off('swipeleft');\n this.hammertime?.off('swiperight');\n }\n\n /**\n * Swipe left gesture handling\n */\n onSwipeLeft(): void {\n if (this.isMobileBreakpoint) {\n this.onOpenHamburgerMenu();\n }\n }\n\n /**\n * Swipe right gesture handling\n */\n onSwipeRight(): void {\n if (this.isMobileBreakpoint) {\n this.onCloseHamburgerMenu();\n }\n }\n\n /**\n * Manages state on open/close button click, used in mobile view.\n */\n onMenuOpenCloseClick(evt: MouseEvent): void {\n if (this.isHamburgerMenuOpened) {\n this.onCloseHamburgerMenu();\n } else {\n this.onOpenHamburgerMenu();\n }\n evt.preventDefault();\n }\n\n /**\n * Manages state on close button click, used in mobile view, in EU theme.\n */\n onMenuCloseClick(evt: MouseEvent): void {\n this.onCloseHamburgerMenu();\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on back button click, used in mobile view.\n */\n onMenuBackClick(evt: MouseEvent): void {\n this.closeRootMenu();\n evt.preventDefault();\n }\n\n /**\n * Manages state on 'previous' button click. Used in desktop view. Slides the items and shows the previous hidden items.\n */\n onPrevBtnClick(): void {\n this.slideMenuInitialState();\n this.refreshDisplay();\n }\n\n /**\n * Manages state on 'next' button click. Used in desktop view. Slides the items and shows the next hidden items.\n */\n onNextBtnClick(): void {\n this.isShowPrevBtn = true;\n this.isShowNextBtn = false;\n\n if (this.isRtl) {\n this.showNextSlideRtl();\n } else {\n this.showNextSlideLtr();\n }\n\n this.refreshDisplay();\n }\n\n /**\n * Postions overlay, depending on parent header position.\n * This method is called from parent header, which uses the menu for navigation.\n * @param bottomSpaceY\n */\n positionMenuOverlay(bottomSpaceY: number): void {\n if (this.isMobileBreakpoint && bottomSpaceY) {\n this.overlayStyleTop = bottomSpaceY;\n this.innerStyleTop = bottomSpaceY;\n } else {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.renderer.removeClass(this.el.nativeElement, 'ecl-menu--transition');\n this.totalItemsWidth = 0;\n this.checkMenuItemsWidth();\n this.checkMenuOverflow();\n this.renderer.addClass(this.el.nativeElement, 'ecl-menu--transition');\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.innerSection.nativeElement);\n }\n\n private checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\n }\n\n private slideMenuInitialState(): void {\n this.offsetLeft = 0;\n if (this.isRtl) {\n this.menuListStyleRight = '0px';\n this.menuListStyleLeft = 'auto';\n } else {\n this.menuListStyleLeft = '0px';\n this.menuListStyleRight = 'auto';\n }\n\n this.isShowPrevBtn = false;\n this.isShowNextBtn = true;\n }\n\n private showNextSlideLtr(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().left -\n this.itemsList.nativeElement.getBoundingClientRect().left -\n btnOffsetWidth;\n\n this.menuListStyleLeft = `-${this.offsetLeft}px`;\n this.menuListStyleRight = 'auto';\n }\n\n private showNextSlideRtl(): void {\n const btnOffsetWidth = this.btnNext.el.nativeElement.offsetWidth;\n this.offsetLeft =\n this.itemsList.nativeElement.getBoundingClientRect().right -\n this.lastVisibleItem.el.nativeElement.getBoundingClientRect().right -\n btnOffsetWidth;\n\n this.menuListStyleRight = `-${this.offsetLeft}px`;\n this.menuListStyleLeft = 'auto';\n }\n\n private refreshDisplay(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n item.isVisible = !item.isVisible;\n });\n }\n\n private checkMenuOverflow(): void {\n this.hasOverflow = this.totalItemsWidth > this.innerSection.nativeElement.offsetWidth + 16;\n if (!this.hasOverflow || this.isMobileBreakpoint) {\n this.resetOverflowValues();\n return;\n }\n\n this.setClassForPrevNextButtons();\n this.resetVisibilityIndicator();\n\n if (this.offsetLeft === 0) {\n this.manageOverflowEnd();\n } else {\n this.manageOverflowBeginning();\n }\n }\n\n /**\n * Manage items visibility when using overlfow. For both rtl and ltr cases.\n */\n private manageOverflowBeginning(): void {\n if (this.isRtl) {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().right <=\n this.innerSection.nativeElement.getBoundingClientRect().right,\n )\n .forEach((el) => (el.isVisible = true));\n } else {\n this.eclRootMenuItems\n .filter(\n (item) =>\n item.el.nativeElement.getBoundingClientRect().left >= this.innerSection.nativeElement.getBoundingClientRect().left,\n )\n .forEach((el) => (el.isVisible = true));\n }\n }\n\n /**\n * Manage items visibility when using overlfow, with the 'next' button. For both rtl and ltr cases.\n */\n private manageOverflowEnd(): void {\n this.isShowNextBtn = true;\n if (this.isRtl) {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().left < this.itemsList.nativeElement.getBoundingClientRect().left) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n } else {\n for (const item of this.eclRootMenuItems) {\n if (item.el.nativeElement.getBoundingClientRect().right > this.itemsList.nativeElement.getBoundingClientRect().right) {\n this.lastVisibleItem = item;\n break;\n }\n item.isVisible = true;\n }\n }\n }\n\n private resetVisibilityIndicator(): void {\n this.eclRootMenuItems.forEach((item) => (item.isVisible = false));\n }\n\n private resetOverflowValues(): void {\n this.isShowPrevBtn = false;\n this.isShowNextBtn = false;\n this.hasOverflow = false;\n this.menuListStyleLeft = '0px';\n this.offsetLeft = 0;\n this.totalItemsWidth = 0;\n this.lastVisibleItem = null;\n }\n\n private setClassForPrevNextButtons(): void {\n this.currentItem = this.eclRootMenuItems.find((item) => item.isCurrent);\n if (this.currentItem) {\n if (this.currentItem.isVisible) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n }\n\n private checkMenuItemsWidth(): void {\n this.eclRootMenuItems.forEach((item) => {\n item.checkMenuItem(this.maxLines, this.isMobileBreakpoint);\n this.totalItemsWidth += item.el.nativeElement.offsetWidth;\n });\n }\n\n public get isMenuExpandedInMobile(): boolean {\n return this.isMobileBreakpoint && this.isAnyRootMenuItemExpanded();\n }\n\n private isAnyRootMenuItemExpanded(): boolean {\n return this.eclRootMenuItems.some((item) => item.isExpanded);\n }\n\n private createRootMenuItemsChangesObservable(): Observable<QueryList<EclMenuItemComponent>> {\n return of(this.eclRootMenuItems).pipe(mergeWith(this.eclRootMenuItems.changes), takeUntil(this.destroy$));\n }\n\n private onMenuItemChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n\n if (!this.diff) {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.connectMenuItemEvents(rootItem);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectMenuItemEvents(change.item);\n });\n }\n }\n\n private connectMenuItemEvents(item: EclMenuItemComponent): void {\n item.menuItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemSelected(evt);\n });\n item.menuItemHover.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHovered(evt);\n });\n item.menuItemHoverOut.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemHoveredOut(evt);\n });\n item.menuItemCaret.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemCaret(evt);\n });\n item.menuMegaItemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMenuMegaItemSelected(item, evt);\n });\n item.menuItemFocus.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemFocused(item);\n });\n item.menuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onRootMenuItemKeydown(item, evt);\n });\n item.menuMegaLastItemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.openCloseButton.onFocus();\n });\n }\n\n private onRootMenuItemFocused(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n if (this.isMovePrevOverflow(index)){\n this.onPrevBtnClick();\n } else if (this.isMoveNextOverflow(index)){\n this.onNextBtnClick();\n }\n }\n\n private onRootMenuItemKeydown(item: EclMenuItemComponent, evt: EclMenuItemKeydownEvent): void {\n switch (evt.domEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onNextMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n this.onPrevMenuItemFocus(item);\n break;\n }\n case KeyCode.ENTER: {\n this.onRootMenuItemEnter(item);\n break;\n }\n case KeyCode.ESCAPE: {\n this.onRootMenuItemEscape(item, evt.domEvent);\n break;\n }\n case KeyCode.TAB: {\n if (this.isMobileBreakpoint && this.isLastItem(item)) {\n evt.preventDefault();\n this.openCloseButton.onFocus();\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private isLastItem(item: EclMenuItemComponent): boolean {\n return this.eclRootMenuItems.last === item;\n }\n\n private onRootMenuItemEscape(item: EclMenuItem, evt: Event): void {\n if (item.isHovered) {\n this.closeRootMenu();\n }\n evt.stopPropagation();\n }\n\n private onPrevMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== 0) {\n this.getRootMenuItemsArray()[index - 1].onFocusFromNext();\n }\n }\n\n private onNextMenuItemFocus(item: EclMenuItem): void {\n const index = this.findIndexInArray(item);\n if (index !== this.getRootMenuItemsArray().length - 1) {\n this.getRootMenuItemsArray()[index + 1].onFocusFromPrev();\n }\n }\n\n private findIndexInArray(item: EclMenuItem): number {\n return this.getRootMenuItemsArray().findIndex(el => item === el);\n }\n\n private isMoveNextOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowNextBtn;\n }\n\n private isMovePrevOverflow(index: number): boolean {\n return !this.getRootMenuItemsArray()[index].isVisible && this.isShowPrevBtn;\n }\n\n private onRootMenuItemSelected(evt: EclMenuItemSelectEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(requestedRootMenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n }\n\n private managePrevNextButtonsClassOnItemSelected(): void {\n if (this.isShowNextBtn) {\n this.isPrevBtnCurrentClass = true;\n } else {\n this.isPrevBtnCurrentClass = false;\n }\n }\n\n private onRootMenuItemHovered(evt: EclMenuItemHoverEvent): void {\n this.openSubmenu(evt.menuItem);\n }\n\n private onRootMenuItemEnter(item: EclMenuItem): void {\n if (this.isMobileBreakpoint) {\n this.closeRootMenuButOneItem(item);\n this.toggleExpandedForMenuItem(item);\n } else {\n if (!item.isHovered) {\n this.openSubmenu(item);\n } else {\n this.closeRootMenu();\n }\n }\n }\n\n private openSubmenu(item: EclMenuItem): void {\n if (item.isVisible) {\n if (!this.isMobileBreakpoint && (item as EclMenuItemComponent).submenu) {\n this.checkMegaMenu(item as EclMenuItemComponent);\n }\n item.isHovered = true;\n this.closeRootMenuButOneItem(item);\n this.showMenu();\n }\n }\n\n private getRootMenuItemsArray(): EclMenuItemComponent[] {\n return this.eclRootMenuItems.toArray();\n }\n\n private checkMegaMenu(menuItem: EclMenuItemComponent): void {\n if (menuItem.isFull) {\n if (this.isRtl) {\n menuItem.submenu.offsetRight = this.offsetLeft;\n } else {\n menuItem.submenu.offsetLeft = this.offsetLeft;\n }\n return;\n }\n this.checkEnoughSpaceForMegaMenu(menuItem);\n }\n\n private checkEnoughSpaceForMegaMenu(menuItem: EclMenuItemComponent): void {\n const megaBounding = menuItem.submenu.el.nativeElement.getBoundingClientRect();\n const containerBounding = this.innerSection.nativeElement.getBoundingClientRect();\n const menuItemBounding = menuItem.el.nativeElement.getBoundingClientRect();\n\n const megaWidth = megaBounding.width;\n const containerWidth = containerBounding.width;\n const menuItemPosition = menuItemBounding.left - containerBounding.left;\n\n if (menuItemPosition + megaWidth > containerWidth) {\n menuItem.submenu.isRtlDisplay = true;\n } else {\n menuItem.submenu.isRtlDisplay = false;\n }\n }\n\n private onRootMenuItemHoveredOut(evt: EclMenuItemHoverEvent): void {\n if (!this.isMobileBreakpoint) {\n this.closeRootMenu();\n }\n }\n\n private onRootMenuItemCaret(evt: EclMenuItemCaretEvent): void {\n const requestedRootMenuItem: EclMenuItem = evt.menuItem;\n\n this.closeRootMenuButOneItem(requestedRootMenuItem);\n this.toggleExpandedForMenuItem(requestedRootMenuItem);\n }\n\n private onMenuMegaItemSelected(rootMenuItem: EclMenuItem, evt: EclMenuItemSelectEvent): void {\n const requestedSubmenuItem = evt.menuItem;\n\n this.closeRootMenu();\n this.deselectAllRootMenuItems();\n this.deselectAllSubmenusItems();\n this.selectMenuItem(rootMenuItem);\n this.selectMenuItem(requestedSubmenuItem);\n this.onCloseHamburgerMenu();\n if (this.hasOverflow) {\n this.managePrevNextButtonsClassOnItemSelected();\n }\n this.sendMenuItemSelectEvent(evt);\n\n this.hideMenu();\n }\n\n private deselectAllRootMenuItems(): void {\n this.deselectMenuItems(this.eclRootMenuItems.toArray());\n }\n\n private deselectAllSubmenusItems(): void {\n this.eclRootMenuItems.forEach((rootItem) => {\n this.deselectMenuItems(rootItem.children);\n });\n }\n\n private deselectMenuItems(items: Array<EclMenuItem>): void {\n items.forEach((it) => {\n it.isCurrent = false;\n });\n }\n\n private selectMenuItem(item: EclMenuItem): void {\n item.isCurrent = true;\n this.currentItem = item;\n }\n\n private hideMenu(): void {\n this.isMenuHidden = true;\n }\n\n private showMenu(): void {\n this.isMenuHidden = false;\n }\n\n private closeRootMenu(): void {\n this.eclRootMenuItems.forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private closeRootMenuButOneItem(item: EclMenuItem): void {\n this.eclRootMenuItems\n .filter((it) => it !== item)\n .forEach((it) => {\n it.isExpanded = false;\n it.isHovered = false;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined && this.isRtl !== rtlState) {\n this.isRtl = rtlState;\n if (this.hasOverflow) {\n this.slideMenuInitialState();\n setTimeout(() => this.checkMenuOverflow());\n }\n }\n });\n }\n\n private toggleExpandedForMenuItem(item: EclMenuItem): void {\n item.isExpanded = !item.isExpanded;\n }\n\n private onOpenHamburgerMenu(): void {\n this.disableScroll();\n this.isHamburgerMenuOpened = true;\n this.openHamburgerMenu.emit();\n this.focusOnFirstItem();\n }\n\n private onCloseHamburgerMenu(): void {\n this.isHamburgerMenuOpened = false;\n this.enableScroll();\n }\n\n private disableScroll(): void {\n document.body.classList.add('no-scroll');\n }\n\n private enableScroll(): void {\n document.body.classList.remove('no-scroll');\n }\n\n private focusOnFirstItem(): void {\n this.eclRootMenuItems.first.onFocusFromPrev();\n }\n\n private sendMenuItemSelectEvent(evt: EclMenuItemSelectEvent): void {\n this.menuItemSelect.next(new EclMenuItemSelectEvent(evt.menuItem, evt.domEvent));\n }\n\n private observeRootMenuItemsChanges(): void {\n this.diff = this.differ.diff(this.eclRootMenuItems);\n this.createRootMenuItemsChangesObservable().pipe(takeUntil(this.destroy$)).subscribe(this.onMenuItemChanges.bind(this));\n }\n\n private observeSwipeGestures(): void {\n // load hammerjs only on browser\n if(isPlatformBrowser(this.platformId)) {\n import('hammerjs').then((Hammer: Hammer) => {\n this.hammertime = new Hammer.default(document, { inputClass: Hammer.TouchInput });\n this.hammertime.on('swipeleft', this.onSwipeLeft.bind(this));\n this.hammertime.on('swiperight', this.onSwipeRight.bind(this));\n }).catch((error) => {\n console.error('Error loading HammerJS', error);\n });\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([('(max-width: 996px)')])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n if (!this.isMobileBreakpoint) {\n this.overlayStyleTop = null;\n this.innerStyleTop = null;\n }\n });\n }\n}\n","<div class=\"ecl-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <button #openCloseButton eclButton isIconOnly variant=\"tertiary\" type=\"button\" class=\"ecl-menu__open\"\n (click)=\"onMenuOpenCloseClick($event)\" [attr.aria-expanded]=\"isHamburgerMenuOpened\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isHamburgerMenuOpened) {\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span eclButtonLabel>{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\"\n aria-label=\"Menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"ghost\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"s\"></ecl-icon>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"ghost\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'flex' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n isIconOnly\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'flex' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n","import { NgModule } from '@angular/core';\nimport { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nconst COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];\n\n/**\n * Module that provides the EclMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMenuModule {}\n","import { EclMenuComponent, EclMenuItemComponent } from './ecl-menu';\nimport { EclMenuMegaComponent, EclMenuMegaItemComponent } from './ecl-menu-mega';\n\nexport * from './ecl-menu.module';\nexport * from './ecl-menu/index';\nexport * from './ecl-menu-mega/index';\nexport * from './events/index';\nexport * from './models/ecl-menu-item.model';\n\nexport const EUI_ECL_MENU = [\n EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3"],"mappings":";;;;;;;;;;;;;;;;;AAGM,MAAO,sBAAuB,SAAQ,WAAkB,CAAA;IAC1D,WAAA,CACW,QAAqB,EACrB,QAAA,GAAkB,IAAI,EAAA;QAE7B,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;AAEK,MAAO,qBAAsB,SAAQ,WAAuB,CAAA;IAC9D,WAAA,CACW,QAAqB,EACrB,QAAA,GAAuB,IAAI,EAAA;QAElC,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;AAEK,MAAO,wBAAyB,SAAQ,WAAuB,CAAA;IACjE,WAAA,CACW,QAAqB,EACrB,QAAA,GAAuB,IAAI,EAAA;QAElC,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;AAEK,MAAO,qBAAsB,SAAQ,WAAuB,CAAA;IAC9D,WAAA,CACW,QAAqB,EACrB,QAAA,GAAuB,IAAI,EAAA;QAElC,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;AAEK,MAAO,qBAAsB,SAAQ,WAAuB,CAAA;IAC9D,WAAA,CACW,QAAqB,EACrB,QAAA,GAAuB,IAAI,EAAA;QAElC,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;AAEK,MAAO,uBAAwB,SAAQ,WAA0B,CAAA;IACnE,WAAA,CACW,QAAqB,EACrB,QAAA,GAA0B,IAAI,EAAA;QAErC,KAAK,CAAC,QAAQ,CAAC;QAHR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;MAEY,2BAA2B,CAAA;AACpC,IAAA,WAAA,CACW,QAAqB,EAAA;QAArB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAgB;AACtC;;AClCD;;;AAGG;AAaG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAZ9D,IAAA,WAAA,GAAA;;;QAiBa,IAAA,CAAA,UAAU,GAAmB,IAAI;QACjC,IAAA,CAAA,WAAW,GAAkB,IAAI;QACjC,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,IAAI,GAAG,EAAE;QACT,IAAA,CAAA,MAAM,GAAG,EAAE;QACoB,IAAA,CAAA,QAAQ,GAAG,IAAI;AACvD;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;QAC8C,IAAA,CAAA,SAAS,GAAG,KAAK;AAC1G;;AAEG;QAC6E,IAAA,CAAA,QAAQ,GAAG,KAAK;AAgBtF,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAA0B;AAC3D,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA2B;QAEvE,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,UAAU,GAAG,IAAI;QAEjB,IAAA,CAAA,QAAQ,GAAuB,EAAE;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AA2EvC,IAAA;IAzEG,eAAe,GAAA;QACX,IAAI,CAAC,qBAAqB,EAAE;AAC5B,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC9F;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,GAAU,EAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,GAAiB,CAAC,CAAC;AAE7E,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,GAAG,CAAC,cAAc,EAAE;QACxB;IACJ;AAGA,IAAA,WAAW,CAAC,GAAe,EAAA;QACvB,GAAG,CAAC,eAAe,EAAE;IACzB;AAEA;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI;IACzC;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE;IAC3C;AAEA,IAAA,SAAS,CAAC,GAAU,EAAA;QAChB,IAAK,GAAqB,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,EAAE;AAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;IACtF;AAEA;;AAEG;IACK,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAChC,oBAAA,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,wBAAwB;AACtD,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACvB,oBAAA,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,oBAAoB,GAAG,mBAAmB;AAClF,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;IACJ;IAEQ,yBAAyB,CAAC,IAAiB,EAAE,mBAA8C,EAAA;QAC/F,IAAI,mBAAmB,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC7C,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,EAAE;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACnE;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;qHApHS,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAeb,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAIhB,gBAAgB,CAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,kCAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAMF,gBAAgB,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAIhB,gBAAgB,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvEtD,ovCAkCA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDc,gBAAgB,oJAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;kGAS7B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EAErB,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,ovCAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA;8BAW9B,EAAE,EAAA,CAAA;sBAAV;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACuC,QAAQ,EAAA,CAAA;sBAA/C,WAAW;uBAAC,yBAAyB;gBAIZ,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBACiE,SAAS,EAAA,CAAA;sBAAjG,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAAG,WAAW;uBAAC,kCAAkC;gBAIP,QAAQ,EAAA,CAAA;sBAAvF,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAAG,WAAW;uBAAC,yBAAyB;gBACrE,mBAAmB,EAAA,CAAA;sBAA3B;gBAKoD,cAAc,EAAA,CAAA;sBAAlE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC;gBAIE,KAAK,EAAA,CAAA;sBAAzD,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC;gBAIxB,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBAEf,cAAc,EAAA,CAAA;sBAAvB;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBA0BD,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AE9FrC;;;AAGG;AAKG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAwBtD,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5D;AAOA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAlCZ,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;;QAGoB,IAAA,CAAA,YAAY,GAAkB,KAAK;AAOnE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAA0B;AACrE;;AAEG;AACO,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAA0B;AAC9E;;AAEG;AACO,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAQ;AAYhD,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AAIrC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAChD;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;;AAEnD,QAAA,IAAI,CAAC,mCAAmC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3F;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;IAEA,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE;QACzC;IACJ;IAEQ,mCAAmC,GAAA;QACvC,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7G;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAEnD,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACvC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AACxC,YAAA,CAAC,CAAC;QACN;aAAO;YACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,YAAA,CAAC,CAAC;QACN;IACJ;AAEQ,IAAA,qBAAqB,CAAC,IAA8B,EAAA;AACxD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAA2B,KAAI;AACzF,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC;AACtC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAA4B,KAAI;AAC3F,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,QAAA,CAAC,CAAC;IACN;IAEQ,iBAAiB,CAAC,IAA8B,EAAE,GAA4B,EAAA;AAClF,QAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG;AACpB,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACnB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,MAAM,EAAE;gBACjB,GAAG,CAAC,cAAc,EAAE;gBACpB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBACnE;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,GAAG,EAAE;AACd,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBACvB,GAAG,CAAC,cAAc,EAAE;AACpB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBACnC;gBACA;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEQ,IAAA,UAAU,CAAC,IAA8B,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,IAAI;IAC9C;IAEQ,oBAAoB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;IAC1C;AAEQ,IAAA,mBAAmB,CAAC,IAA8B,EAAA;AACtD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;AACtE,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QACrD;aAAO;YACH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACvE;IACJ;AAEQ,IAAA,mBAAmB,CAAC,IAA8B,EAAA;AACtD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;QACtE,IAAI,KAAK,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QACrD;IACJ;IAEQ,kBAAkB,CAAC,IAAiB,EAAE,GAA2B,EAAA;QACrE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;IACrC;AAEQ,IAAA,cAAc,CAAC,IAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACzB;AAEQ,IAAA,oBAAoB,CAAC,KAAyB,EAAA;AAClD,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACjB,YAAA,EAAE,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,uBAAuB,CAAC,GAA2B,EAAA;AACvD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpF;IAEQ,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;IAC1C;qHA/JS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EASZ,wBAAwB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B7C,0EAGA,EAAA,CAAA,CAAA;;kGDca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,0EAAA,EAAA;wDAOiB,YAAY,EAAA,CAAA;sBAArD,WAAW;uBAAC,2BAA2B;gBAKG,gBAAgB,EAAA,CAAA;sBAA1D,eAAe;uBAAC,wBAAwB;gBAE/B,cAAc,EAAA,CAAA;sBAAvB;gBAIS,uBAAuB,EAAA,CAAA;sBAAhC;gBAIS,mBAAmB,EAAA,CAAA;sBAA5B;gBAE6B,UAAU,EAAA,CAAA;sBAAvC,WAAW;uBAAC,eAAe;gBACG,WAAW,EAAA,CAAA;sBAAzC,WAAW;uBAAC,gBAAgB;gBAGzB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;;;AEKxB;;AAEG;AAOG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAqCtD,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,yBAAyB,GAAG,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,0BAA0B,GAAG,EAAE;YACjD,IAAI,CAAC,4BAA4B,EAAE;AACtC;aACI,IAAI,CAAC,GAAG;AACR,aAAA,IAAI,EAAE;IACf;AA4BA,IAAA,IAEI,2BAA2B,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,SAAS;IACxC;AAEA,IAAA,IACI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;IACnD;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI;IACvC;AAEA,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO;IACzB;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1E;AAMA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAtGX,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;;QASd,IAAA,CAAA,UAAU,GAAmB,IAAI;QACjC,IAAA,CAAA,WAAW,GAAkB,IAAI;QACjC,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,IAAI,GAAG,EAAE;QACT,IAAA,CAAA,MAAM,GAAG,EAAE;QACX,IAAA,CAAA,SAAS,GAAG,KAAK;AAO1B;;AAEG;QACH,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAC1B;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,IAAI;AAEhB;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;AAuBjC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAA0B;AAC3D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAyB;AACnE;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAyB;AACzD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA4B;AAC/D,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAA0B;AAC/D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAyB;AACzD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA2B;AACvE;;;AAGG;AACO,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAQ;AAyBhD,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAItD,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC1F,QAAA,CAAC,CAAC;IACN;AAGA,IAAA,gBAAgB,CAAC,GAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE;AAGA,IAAA,gBAAgB,CAAC,GAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE;IAEA,kBAAkB,GAAA;;AAEd,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAA0B,KAAI;AAChG,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AACtF,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAA+B,KAAI;AAC9G,gBAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC1B,IAAI,CAAC,kBAAkB,EAAE;gBAC7B;AACJ,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC3E,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBACnC;AACJ,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;AAChC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACzB;QACJ;;IAGJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA,IAAA,WAAW,CAAC,GAAe,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE;AAEA,IAAA,WAAW,CAAC,GAAU,EAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,GAAG,CAAC,eAAe,EAAE;QACzB;IACJ;AAEA;;;AAGG;AACH,IAAA,gBAAgB,CAAC,GAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE;AAEA;;AAEG;IACH,kBAAkB,GAAA;QACd,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;AAEA;;;AAGG;IACH,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;QACxB;aAAO;YACH,IAAI,CAAC,WAAW,EAAE;QACtB;IACJ;AAEA;;;AAGG;IACH,eAAe,GAAA;QACX,IAAI,CAAC,WAAW,EAAE;IACtB;AAEA;;;AAGG;AACH,IAAA,eAAe,CAAC,GAAU,EAAA;AACtB,QAAA,QAAS,GAAqB,CAAC,GAAG;AAC9B,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,uBAAuB,EAAE;gBAClC;qBAAO;AACH,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBACtF;gBACA;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACnB,GAAG,CAAC,cAAc,EAAE;gBACpB,IAAI,CAAC,WAAW,EAAE;gBAClB;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,WAAW,EAAE;gBACtB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;gBACpB,IAAI,CAAC,WAAW,EAAE;gBAClB;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,GAAG,EAAE;AACd,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,KAAK,EAAE;gBAChB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,MAAM,EAAE;gBACjB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEA;;;AAGG;AACH,IAAA,aAAa,CAAC,GAAU,EAAA;AACpB,QAAA,QAAS,GAAqB,CAAC,GAAG;AAC9B,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBACzB;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACnB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,WAAW,EAAE;gBACtB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBACzB;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;gBAClF;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,KAAK,EAAE;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBACrB;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,MAAM,EAAE;gBACjB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;gBACtB;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEA;;;;;;AAMG;IACH,aAAa,CAAC,QAAgB,EAAE,kBAA2B,EAAA;QACvD,IAAI,QAAQ,GAAG,CAAC;YAAE;AAElB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC/C,IAAI,kBAAkB,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;YACpD;QACJ;QACA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAEtD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAEpE,QAAA,IAAI,WAAW,CAAC,YAAY,GAAG,SAAS,EAAE;YACtC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;QAClE;QACA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC;IACxD;AAEQ,IAAA,YAAY,CAAC,GAAU,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;YACxC,GAAG,CAAC,eAAe,EAAE;QACzB;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE;QACtC;IACJ;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;IACrC;IAEQ,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;IACvC;AAEQ,IAAA,eAAe,CAAC,GAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;QACxB;aAAO;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,EAAE,GAAoB,CAAC,CAAC;QACtF;IACJ;IAEQ,aAAa,GAAA;QACjB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC5C;IAEQ,wBAAwB,CAAC,SAA8B,EAAE,QAAgB,EAAA;AAC7E,QAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;IACrI;AAEA;;;;;;AAMG;AACK,IAAA,uBAAuB,CAAC,WAA8B,EAAE,QAAgB,EAAE,SAA8B,EAAA;QAC5G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC;AAC5D,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW;AACzC,QAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAA,EAAG,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;YAC3I,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC;YACrD;QACJ;AACA,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC;AAC/D,QAAA,OAAO,SAAS,GAAG,SAAS,EAAE;AAC1B,YAAA,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC;AAClE,YAAA,GAAG,EAAE;QACT;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAA,EAAG,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;QAC3I,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC;IACzD;IAEQ,4BAA4B,GAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAA,CAAA,gCAA4B;AAChE,gBAAA,OAAO,sBAAsB;YACjC;iBAAO,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAA,CAAA,gCAA4B;AACvE,gBAAA,OAAO,sBAAsB;YACjC;iBAAO,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAA,EAAA,gCAA4B;AACvE,gBAAA,OAAO,sBAAsB;YACjC;iBAAO;AACH,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,OAAO,sBAAsB;YACjC;QACJ;AACA,QAAA,OAAO,EAAE;IACb;IAEQ,uBAAuB,GAAA;QAC3B,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC;IACrF;IAEQ,yBAAyB,CAAC,IAAiB,EAAE,mBAA8C,EAAA;QAC/F,IAAI,mBAAmB,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC7C,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,EAAE;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACnE;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AACpE,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AAC5C,QAAA,CAAC,CAAC;IACV;qHAjaS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,oCAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAiDE,oBAAoB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQxC,kBAAkB,uEChHjC,gwEAmEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;kGAG7B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,eAAe,EAAA,OAAA,EAEhB,CAAC,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,EAAA,aAAA,EACjG,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,gwEAAA,EAAA;wDAK5B,EAAE,EAAA,CAAA;sBAAV;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAIQ,eAAe,EAAA,CAAA;sBAAvB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAIQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAiByB,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBAEpB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAYkC,OAAO,EAAA,CAAA;sBAA5D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;gBAI7B,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU;gBAIU,UAAU,EAAA,CAAA;sBAAxC,SAAS;uBAAC,kBAAkB;gBAEnB,cAAc,EAAA,CAAA;sBAAvB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBAIS,aAAa,EAAA,CAAA;sBAAtB;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBACS,kBAAkB,EAAA,CAAA;sBAA3B;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBAKS,mBAAmB,EAAA,CAAA;sBAA5B;gBAIG,2BAA2B,EAAA,CAAA;sBAF9B,WAAW;uBAAC,oCAAoC;;sBAChD,WAAW;uBAAC,oBAAoB;gBAM7B,cAAc,EAAA,CAAA;sBADjB,WAAW;uBAAC,oBAAoB;gBA8BjC,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;gBAMtC,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;;;AE1J1C;;;AAGG;AAaG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAoClD,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/B,sBAAsB;YACtB,IAAI,CAAC,KAAK,GAAG,eAAe,GAAG,EAAE;AACpC,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;IACf;AAIA,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,qBAAqB,GAAG,EAAE,GAAG,IAAI;IACjD;AAyCA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA1FX;;;AAGG;QACoC,IAAA,CAAA,QAAQ,GAAG,CAAC;AA2BzC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAA0B;AAC3D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE;QAWhD,IAAA,CAAA,qBAAqB,GAAG,KAAK;AAO7B;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,YAAY;QACC,IAAA,CAAA,QAAQ,GAAG,KAAK;QACjB,IAAA,CAAA,YAAY,GAAG,KAAK;QAEjE,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;AACrB;;AAEG;QACH,IAAA,CAAA,qBAAqB,GAAG,KAAK;QAC7B,IAAA,CAAA,kBAAkB,GAAG,MAAM;QAC3B,IAAA,CAAA,iBAAiB,GAAG,MAAM;QAC1B,IAAA,CAAA,eAAe,GAAkB,IAAI;QACrC,IAAA,CAAA,aAAa,GAAkB,IAAI;AAG3B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAGnD,IAAA,CAAA,KAAK,GAAG,KAAK;QACb,IAAA,CAAA,eAAe,GAAG,CAAC;QACnB,IAAA,CAAA,UAAU,GAAG,CAAC;QAId,IAAA,CAAA,gBAAgB,GAAG,GAAG;AACtB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAIpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5C,eAAe,CAAC,MAAK;AACjB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;gBAC/B,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACzB,IAAI,CAAC,mBAAmB,EAAE;AAC9B,QAAA,CAAC,CAAC;IACN;AAEA;;;AAGG;AAEH,IAAA,QAAQ,CAAC,KAAoB,EAAA;AACzB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACxB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;IAEA,kBAAkB,GAAA;;QAEd,IAAI,CAAC,2BAA2B,EAAE;IACtC;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAE3B,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC;IACtC;AAEA;;AAEG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,mBAAmB,EAAE;QAC9B;IACJ;AAEA;;AAEG;IACH,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;AAEA;;AAEG;AACH,IAAA,oBAAoB,CAAC,GAAe,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,oBAAoB,EAAE;QAC/B;aAAO;YACH,IAAI,CAAC,mBAAmB,EAAE;QAC9B;QACA,GAAG,CAAC,cAAc,EAAE;IACxB;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,GAAe,EAAA;QAC5B,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,aAAa,EAAE;QACpB,GAAG,CAAC,cAAc,EAAE;IACxB;AAEA;;AAEG;AACH,IAAA,eAAe,CAAC,GAAe,EAAA;QAC3B,IAAI,CAAC,aAAa,EAAE;QACpB,GAAG,CAAC,cAAc,EAAE;IACxB;AAEA;;AAEG;IACH,cAAc,GAAA;QACV,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA;;AAEG;IACH,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAE1B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,gBAAgB,EAAE;QAC3B;aAAO;YACH,IAAI,CAAC,gBAAgB,EAAE;QAC3B;QAEA,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA;;;;AAIG;AACH,IAAA,mBAAmB,CAAC,YAAoB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,YAAY,EAAE;AACzC,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY;AACnC,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QACrC;aAAO;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC7B;IACJ;IAEQ,yBAAyB,GAAA;QAC7B,IAAI,cAAc,CAAC,MAAK;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;AACxE,gBAAA,IAAI,CAAC,eAAe,GAAG,CAAC;gBACxB,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;AACzE,YAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC/C;IAEQ,mBAAmB,GAAA;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC;IACvE;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM;QACnC;aAAO;AACH,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;QACpC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;IAEQ,gBAAgB,GAAA;QACpB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;AAChE,QAAA,IAAI,CAAC,UAAU;YACX,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI;gBAClE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI;AACzD,gBAAA,cAAc;QAElB,IAAI,CAAC,iBAAiB,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,UAAU,IAAI;AAChD,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;IACpC;IAEQ,gBAAgB,GAAA;QACpB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;AAChE,QAAA,IAAI,CAAC,UAAU;YACX,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;gBAC1D,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;AACnE,gBAAA,cAAc;QAElB,IAAI,CAAC,kBAAkB,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,UAAU,IAAI;AACjD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM;IACnC;IAEQ,cAAc,GAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;AACpC,QAAA,CAAC,CAAC;IACN;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE;QAC1F,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC9C,IAAI,CAAC,mBAAmB,EAAE;YAC1B;QACJ;QAEA,IAAI,CAAC,0BAA0B,EAAE;QACjC,IAAI,CAAC,wBAAwB,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;QAC5B;aAAO;YACH,IAAI,CAAC,uBAAuB,EAAE;QAClC;IACJ;AAEA;;AAEG;IACK,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC;AACA,iBAAA,MAAM,CACH,CAAC,IAAI,KACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;gBACnD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAEpE,iBAAA,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC/C;aAAO;AACH,YAAA,IAAI,CAAC;iBACA,MAAM,CACH,CAAC,IAAI,KACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI;AAEzH,iBAAA,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC/C;IACJ;AAEA;;AAEG;IACK,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACtC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE;AAChH,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;oBAC3B;gBACJ;AACA,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACzB;QACJ;aAAO;AACH,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACtC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE;AAClH,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;oBAC3B;gBACJ;AACA,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACzB;QACJ;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IACrE;IAEQ,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;IAC/B;IAEQ,0BAA0B,GAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC;AACvE,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AAC5B,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;YACrC;iBAAO;AACH,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;YACtC;QACJ;IACJ;IAEQ,mBAAmB,GAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC1D,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;AAC7D,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAW,sBAAsB,GAAA;QAC7B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACtE;IAEQ,yBAAyB,GAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;IAChE;IAEQ,oCAAoC,GAAA;QACxC,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7G;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAEnD,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACvC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AACxC,YAAA,CAAC,CAAC;QACN;aAAO;YACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,YAAA,CAAC,CAAC;QACN;IACJ;AAEQ,IAAA,qBAAqB,CAAC,IAA0B,EAAA;AACpD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACjE,YAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;AACpC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAChE,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;AACnC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACnE,YAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;AACtC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAChE,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;AACjC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACrE,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC;AAC1C,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAChE,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACpC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAClE,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACtE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AAClC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,qBAAqB,CAAC,IAAiB,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;QACxB;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAC;YAC/B,IAAI,CAAC,cAAc,EAAE;QACzB;AAAO,aAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAC;YACtC,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEQ,qBAAqB,CAAC,IAA0B,EAAE,GAA4B,EAAA;AAClF,QAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG;AACpB,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,WAAW,EAAE;AACtB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;AACnB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,KAAK,EAAE;AAChB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,MAAM,EAAE;gBACjB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;gBAC7C;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAClD,GAAG,CAAC,cAAc,EAAE;AACpB,oBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;gBAClC;gBACA;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEQ,IAAA,UAAU,CAAC,IAA0B,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,IAAI;IAC9C;IAEQ,oBAAoB,CAAC,IAAiB,EAAE,GAAU,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,aAAa,EAAE;QACxB;QACA,GAAG,CAAC,eAAe,EAAE;IACzB;AAEQ,IAAA,mBAAmB,CAAC,IAAiB,EAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE;QAC7D;IACJ;AAEQ,IAAA,mBAAmB,CAAC,IAAiB,EAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE;QAC7D;IACJ;AAEQ,IAAA,gBAAgB,CAAC,IAAiB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;IACpE;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa;IAC/E;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa;IAC/E;AAEQ,IAAA,sBAAsB,CAAC,GAA2B,EAAA;AACtD,QAAA,MAAM,qBAAqB,GAAgB,GAAG,CAAC,QAAQ;QAEvD,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;QAC1C,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,wCAAwC,EAAE;QACnD;AACA,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;IACrC;IAEQ,wCAAwC,GAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;QACrC;aAAO;AACH,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;QACtC;IACJ;AAEQ,IAAA,qBAAqB,CAAC,GAA0B,EAAA;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClC;AAEQ,IAAA,mBAAmB,CAAC,IAAiB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;QACxC;aAAO;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1B;iBAAO;gBACH,IAAI,CAAC,aAAa,EAAE;YACxB;QACJ;IACJ;AAEQ,IAAA,WAAW,CAAC,IAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAK,IAA6B,CAAC,OAAO,EAAE;AACpE,gBAAA,IAAI,CAAC,aAAa,CAAC,IAA4B,CAAC;YACpD;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE;QACnB;IACJ;IAEQ,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;IAC1C;AAEQ,IAAA,aAAa,CAAC,QAA8B,EAAA;AAChD,QAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;YAClD;iBAAO;gBACH,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;YACjD;YACA;QACJ;AACA,QAAA,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC;IAC9C;AAEQ,IAAA,2BAA2B,CAAC,QAA8B,EAAA;AAC9D,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE;QACjF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAE1E,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK;AACpC,QAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK;QAC9C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI;AAEvE,QAAA,IAAI,gBAAgB,GAAG,SAAS,GAAG,cAAc,EAAE;AAC/C,YAAA,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI;QACxC;aAAO;AACH,YAAA,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK;QACzC;IACJ;AAEQ,IAAA,wBAAwB,CAAC,GAA0B,EAAA;AACvD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;AAEQ,IAAA,mBAAmB,CAAC,GAA0B,EAAA;AAClD,QAAA,MAAM,qBAAqB,GAAgB,GAAG,CAAC,QAAQ;AAEvD,QAAA,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;AACnD,QAAA,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC;IACzD;IAEQ,sBAAsB,CAAC,YAAyB,EAAE,GAA2B,EAAA;AACjF,QAAA,MAAM,oBAAoB,GAAG,GAAG,CAAC,QAAQ;QAEzC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC;QACzC,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,wCAAwC,EAAE;QACnD;AACA,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;QAEjC,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEQ,wBAAwB,GAAA;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAC3D;IAEQ,wBAAwB,GAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACvC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7C,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,iBAAiB,CAAC,KAAyB,EAAA;AAC/C,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACjB,YAAA,EAAE,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,cAAc,CAAC,IAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IAC3B;IAEQ,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC5B;IAEQ,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;IAEQ,aAAa,GAAA;QACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACjC,YAAA,EAAE,CAAC,UAAU,GAAG,KAAK;AACrB,YAAA,EAAE,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,uBAAuB,CAAC,IAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC;aACA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI;AAC1B,aAAA,OAAO,CAAC,CAAC,EAAE,KAAI;AACZ,YAAA,EAAE,CAAC,UAAU,GAAG,KAAK;AACrB,YAAA,EAAE,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACV;IAEQ,oBAAoB,GAAA;QACxB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YACtF,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AACnD,gBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,qBAAqB,EAAE;oBAC5B,UAAU,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC9C;YACJ;AACJ,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,yBAAyB,CAAC,IAAiB,EAAA;AAC/C,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;IACtC;IAEQ,mBAAmB,GAAA;QACvB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAC7B,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEQ,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;QAClC,IAAI,CAAC,YAAY,EAAE;IACvB;IAEQ,aAAa,GAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5C;IAEQ,YAAY,GAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/C;IAEQ,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,EAAE;IACjD;AAEQ,IAAA,uBAAuB,CAAC,GAA2B,EAAA;AACvD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpF;IAEQ,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,oCAAoC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3H;IAEQ,oBAAoB,GAAA;;AAExB,QAAA,IAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACnC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAc,KAAI;AACvC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;AACjF,gBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,YAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;AAClD,YAAA,CAAC,CAAC;QACN;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,EAAE,oBAAoB,EAAE;AAChC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YAC7B;AACJ,QAAA,CAAC,CAAC;IACV;qHAhvBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,IAAA,EAAA,gBAAgB,yFAML,eAAe,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAKlB,oBAAoB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CzC,mrGAoEA,+ED7Cc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;kGAShB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;+BACI,UAAU,EAAA,OAAA,EAEX,CAAC,eAAe,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,CAAC,EAAA,QAAA,EAAA,mrGAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;wDAevB,QAAQ,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAKE,gBAAgB,EAAA,CAAA;sBAAtD,eAAe;uBAAC,oBAAoB;gBAIV,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBAID,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAII,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa;gBAIF,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS;gBAIU,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB;gBAElB,cAAc,EAAA,CAAA;sBAAvB;gBACS,iBAAiB,EAAA,CAAA;sBAA1B;gBAGG,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAYhB,YAAY,EAAA,CAAA;sBADf,WAAW;uBAAC,oBAAoB;gBAQP,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBACsB,QAAQ,EAAA,CAAA;sBAArD,WAAW;uBAAC,+BAA+B;gBACC,YAAY,EAAA,CAAA;sBAAxD,WAAW;uBAAC,8BAA8B;gBAqD3C,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AEzIvC,MAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,CAAC;AAE3G;;;;AAIG;MAKU,aAAa,CAAA;qHAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,OAAA,EAAA,CAXN,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAAtF,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;sHAW7F,aAAa,EAAA,OAAA,EAAA,CAXN,gBAAgB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;;kGAW7C,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA;;;ACLM,MAAM,YAAY,GAAG;AACxB,IAAA,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB;;;ACV1F;;AAEG;;;;"}
|