@eui/ecl 23.0.0-alpha.3 → 23.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +77 -0
- package/docs/components/EclAddToCalendarComponent.html +7 -62
- package/docs/components/EclAnimatedNumbersComponent.html +0 -39
- package/docs/components/EclAppComponent.html +12 -72
- package/docs/components/EclBannerComponent.html +46 -46
- package/docs/components/EclBlockquoteComponent.html +6 -1
- package/docs/components/EclCarouselComponent.html +5 -0
- package/docs/components/EclCategoryFilterComponent.html +5 -0
- package/docs/components/EclCategoryFilterItemComponent.html +15 -10
- package/docs/components/EclCheckboxLabelComponent.html +1 -1
- package/docs/components/EclContentItemComponent.html +4 -0
- package/docs/components/EclDateBlockComponent.html +43 -18
- package/docs/components/EclExpandableComponent.html +63 -1
- package/docs/components/EclFeaturedComponent.html +46 -37
- package/docs/components/EclFileComponent.html +19 -14
- package/docs/components/EclFileItemsComponent.html +31 -1
- package/docs/components/EclFormLabelComponent.html +1 -1
- package/docs/components/EclGalleryComponent.html +29 -29
- package/docs/components/EclGalleryItemComponent.html +47 -47
- package/docs/components/EclIconComponent.html +158 -48
- package/docs/components/EclInpageNavigationComponent.html +21 -1
- package/docs/components/EclInpageNavigationItemComponent.html +39 -1
- package/docs/components/EclListIllustrationComponent.html +47 -47
- package/docs/components/EclListIllustrationItemComponent.html +1 -1
- package/docs/components/EclMediaContainerComponent.html +20 -20
- package/docs/components/EclMegaMenuFeaturedComponent.html +6 -1
- package/docs/components/EclMegaMenuInfoComponent.html +11 -1
- package/docs/components/EclMegaMenuItemComponent.html +44 -34
- package/docs/components/EclMegaMenuSubitemComponent.html +46 -31
- package/docs/components/EclMenuItemComponent.html +12 -2
- package/docs/components/EclMenuMegaItemComponent.html +8 -3
- package/docs/components/EclMultiselectComponent.html +56 -56
- package/docs/components/EclMultiselectDropdownComponent.html +1 -1
- package/docs/components/EclMultiselectOptgroupComponent.html +6 -1
- package/docs/components/EclNavigationListItemComponent.html +1 -1
- package/docs/components/EclNotificationComponent.html +32 -1
- package/docs/components/EclPaginationItemComponent.html +84 -59
- package/docs/components/EclRatingFieldComponent.html +98 -2
- package/docs/components/EclSearchFormComponent.html +41 -1
- package/docs/components/EclSelectContainerComponent.html +116 -1
- package/docs/components/EclSiteFooterComponent.html +1 -1
- package/docs/components/EclSiteFooterCoreComponent.html +6 -1
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +16 -1
- package/docs/components/EclSiteFooterRowCommonComponent.html +6 -1
- package/docs/components/EclSiteHeaderComponent.html +27 -27
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +96 -86
- package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
- package/docs/components/EclSiteHeaderSearchComponent.html +20 -10
- package/docs/components/EclSocialMediaFollowComponent.html +7 -2
- package/docs/components/EclSocialMediaFollowItemComponent.html +40 -25
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +6 -1
- package/docs/components/EclSplashPageLanguageContainerComponent.html +6 -1
- package/docs/components/EclSplashPageLanguageLinkComponent.html +6 -1
- package/docs/components/EclTabComponent.html +50 -20
- package/docs/components/EclTabsComponent.html +1 -1
- package/docs/components/EclTagComponent.html +6 -1
- package/docs/components/EclTimelineComponent.html +4 -169
- package/docs/components/EclTimelineItemComponent.html +104 -1
- package/docs/directives/EclAccordionDirective.html +9 -99
- package/docs/directives/EclFileTitleDirective.html +5 -0
- package/docs/directives/EclFileUploadDirective.html +120 -0
- package/docs/directives/EclGalleryMediaDirective.html +5 -0
- package/docs/directives/EclMediaContainerIframeDirective.html +9 -11
- package/docs/directives/EclMediaContainerItemDirective.html +5 -0
- package/docs/directives/EclMultiselectOptionDirective.html +20 -10
- package/docs/directives/EclRadioDirective.html +18 -13
- package/docs/directives/EclSelectDirective.html +40 -0
- package/docs/directives/EclSiteFooterListDirective.html +5 -104
- package/docs/directives/EclSiteFooterSectionDirective.html +1 -1
- package/docs/directives/EclSiteFooterTitleDirective.html +29 -0
- package/docs/directives/EclTableHeaderDirective.html +5 -0
- package/docs/directives/EclTextMediaMediaAnchorDirective.html +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclAddToCalendarComponent.md +1 -1
- package/docs/json/EclBannerComponent.md +7 -7
- package/docs/json/EclCategoryFilterItemComponent.md +1 -1
- package/docs/json/EclDateBlockComponent.md +1 -1
- package/docs/json/EclExpandableComponent.md +2 -0
- package/docs/json/EclFeaturedComponent.md +3 -3
- package/docs/json/EclFileComponent.md +1 -1
- package/docs/json/EclFileItemsComponent.md +1 -0
- package/docs/json/EclGalleryComponent.md +4 -4
- package/docs/json/EclGalleryItemComponent.md +2 -2
- package/docs/json/EclIconComponent.md +4 -4
- package/docs/json/EclInpageNavigationItemComponent.md +1 -0
- package/docs/json/EclListIllustrationComponent.md +3 -3
- package/docs/json/EclMediaContainerComponent.md +1 -1
- package/docs/json/EclMediaContainerIframeDirective.md +2 -2
- package/docs/json/EclMegaMenuItemComponent.md +2 -2
- package/docs/json/EclMegaMenuSubitemComponent.md +3 -3
- package/docs/json/EclMenuItemComponent.md +1 -1
- package/docs/json/EclMenuMegaItemComponent.md +1 -1
- package/docs/json/EclMultiselectComponent.md +3 -3
- package/docs/json/EclMultiselectOptionDirective.md +1 -1
- package/docs/json/EclNavigationListItemComponent.md +1 -1
- package/docs/json/EclNotificationComponent.md +1 -0
- package/docs/json/EclPaginationItemComponent.md +3 -3
- package/docs/json/EclRadioDirective.md +1 -1
- package/docs/json/EclRatingFieldComponent.md +1 -0
- package/docs/json/EclSearchFormComponent.md +1 -0
- package/docs/json/EclSelectContainerComponent.md +6 -0
- package/docs/json/EclSiteFooterSectionDirective.md +1 -1
- package/docs/json/EclSiteHeaderComponent.md +2 -2
- package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
- package/docs/json/EclSiteHeaderSearchComponent.md +1 -1
- package/docs/json/EclSocialMediaFollowComponent.md +1 -1
- package/docs/json/EclSocialMediaFollowItemComponent.md +4 -4
- package/docs/json/EclTabComponent.md +2 -1
- package/docs/json/EclTagComponent.md +1 -1
- package/docs/json/EclTextMediaMediaAnchorDirective.md +1 -1
- package/docs/json/EclTimelineItemComponent.md +1 -0
- package/docs/json/documentation.json +4188 -2895
- package/docs/llms.txt +152 -136
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
- package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/package.json +8 -3
- package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
- package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-app.d.ts +6 -6
- package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
- package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
- package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-card.d.ts +2 -3
- package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
- package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
- package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file.d.ts +7 -8
- package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
- package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
- package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
- package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-label.d.ts +3 -3
- package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
- package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
- package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
- package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
- package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
- package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
- package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
- package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
- package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts +13 -17
- package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
- package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
- package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
- package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-table.d.ts +4 -5
- package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
- package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
- package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
- package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
- package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
- package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
- package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-multiselect.mjs","sources":["../../components/ecl-multiselect/boldText.pipe.ts","../../components/ecl-multiselect/events/ecl-multiselect-main-input-click.event.ts","../../components/ecl-multiselect/events/ecl-multiselect-option.event.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.html","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.ts","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.html","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.ts","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.html","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.ts","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.html","../../components/ecl-multiselect/ecl-multiselect-option.directive.ts","../../components/ecl-multiselect/ecl-multiselect.component.ts","../../components/ecl-multiselect/ecl-multiselect.component.html","../../components/ecl-multiselect/index.ts","../../components/ecl-multiselect/eui-ecl-components-ecl-multiselect.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'boldText',\n})\nexport class BoldTextPipe implements PipeTransform {\n private BOLD_TAG_OPEN = '<b>';\n\n transform(value: string, keyword: string): string {\n if (keyword !== '') {\n return this.replace(value, keyword);\n } else {\n if (value.indexOf(this.BOLD_TAG_OPEN) > -1) {\n return this.clearBoldText(value);\n } else {\n return value;\n }\n }\n }\n\n replace(str: string, keyword: string): string {\n const re = new RegExp(keyword, 'gi');\n return str.replace(re, '<b>$&</b>');\n }\n\n clearBoldText(str: string): string {\n return str.replace(/<[/]?b>/g, '');\n }\n}\n","export class EclMultiselectMainInputClickEvent {\n constructor(public event: Event) {}\n}","import { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\nexport class EclMultiselectOptionClickEvent {\n constructor(public multiselectOption: EclMultiselectOption) {}\n}\n\nexport class EclMultiselectOptionKeydownEvent {\n constructor(\n public multiselectOption: EclMultiselectOption,\n public keyboardEvent: KeyboardEvent,\n ) {}\n}","import { Component, ElementRef, HostBinding, Renderer2, ViewChild, booleanAttribute, computed, inject, input, signal, output } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclMultiselectMainInputClickEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing the main input of a multiselect component.\n * Handles displaying selected items, opening the dropdown, and managing accessibility.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectInput]',\n templateUrl: './ecl-multiselect-input.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class.ecl-select__container--disabled]': 'isDisabled()',\n '[class.ecl-select__container--invalid]': 'isInvalid()',\n },\n})\nexport class EclMultiselectInputComponent extends ECLBaseDirective {\n\n /**\n * Size modifier for the multiselect input (e.g., 's', 'm', 'l').\n */\n eclSize = input('m');\n\n /**\n * Unique ID for the counter element.\n */\n counterId = signal(crypto.randomUUID());\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = input('ecl.multiselect.SELECTED');\n\n /**\n * ID of the toggle button element (used for accessibility).\n */\n toggleId = input<string>('');\n\n /**\n * Label for the toggle button (optional).\n */\n toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the component as disabled.\n */\n isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Marks the component as being in an invalid state.\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * CSS classes for the component, including size and inherited classes.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-select__container'),\n `ecl-select__container--${this.eclSize()}`,\n ].join(' ').trim();\n }\n\n /**\n * Placeholder text for the input when no items are selected.\n */\n inputPlaceholder = input('');\n\n /**\n * Array of currently selected item labels.\n */\n selectedItems = input<string[]>([]);\n\n /**\n * Indicates that the dropdown is currently expanded.\n */\n isDropdownExpanded = input(false);\n\n /**\n * ARIA controls attribute for accessibility.\n */\n ariaControls = input<string | undefined>(undefined);\n\n /**\n * ARIA describedby attribute for accessibility.\n */\n ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Computed ARIA describedby combining the input value with the counter ID.\n */\n ariaDescribedbyFull = computed(() => {\n const describedby = this.ariaDescribedby();\n const counter = this.counterId();\n return [describedby, counter].filter(Boolean).join(' ') || undefined;\n });\n\n /**\n * Reference to the internal input element.\n */\n @ViewChild('inputMultiselect') inputMultiselect: ElementRef;\n\n /**\n * Event emitted when the input is clicked.\n */\n readonly mainInputClick = output<EclMultiselectMainInputClickEvent>();\n\n /**\n * Event emitted when a key is pressed on the input.\n */\n readonly mainInputKeydown = output<Event>();\n\n private readonly ICON_SIZE_FOR_EC_THEME_ON = 'xs';\n private readonly ICON_SIZE_FOR_EU_THEME_ON = 's';\n private eclThemeService = inject(EclThemeService);\n private renderer = inject(Renderer2);\n\n /**\n * Returns the label text shown inside the button.\n */\n buttonText = computed(() => {\n const items = this.selectedItems();\n return items.length === 0 ? this.inputPlaceholder() : items.join(',');\n });\n\n /**\n * Returns the count of selected items.\n */\n selectedItemsCount = computed(() => this.selectedItems().length);\n\n /**\n * Displays a count badge when items are selected.\n */\n isShowCounter = computed(() => this.selectedItems().length > 0);\n\n /**\n * Indicates that the dropdown is expanded (active).\n */\n isActive = computed(() => this.isDropdownExpanded());\n\n /**\n * Returns icon size depending on the theme.\n */\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_FOR_EC_THEME_ON;\n } else {\n return this.ICON_SIZE_FOR_EU_THEME_ON;\n }\n }\n\n /**\n * Handles click on the input container. Emits custom event with original DOM event.\n */\n onClick(evt: Event): void {\n this.mainInputClick.emit(new EclMultiselectMainInputClickEvent(evt));\n }\n\n /**\n * Handles keydown events on the input.\n * Only emits event on ArrowDown, Enter, or Space keys.\n */\n onKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case KeyCode.ARROW_DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n this.mainInputKeydown.emit(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Focuses the multiselect input element.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.inputMultiselect.nativeElement, true).focus();\n }\n}\n","<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter()\"\n class=\"ecl-select-multiple-selections-counter\" [id]=\"counterId()\">\n <div class=\"ecl-select-multiple-selections-counter__label\">{{ counterLabel() | translate }}</div>\n <span>{{ selectedItemsCount() }}</span>\n</div>\n<button\n class=\"ecl-select ecl-select__multiple-toggle\"\n [class.ecl-select--active]=\"isActive()\"\n #inputMultiselect\n type=\"button\"\n [id]=\"toggleId()\"\n [attr.aria-expanded]=\"isDropdownExpanded()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.disabled]=\"isDisabled() ? true : undefined\"\n [attr.aria-describedby]=\"ariaDescribedbyFull()\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\"> {{ buttonText() }}\n</button>\n<div class=\"ecl-select__icon\">\n <button eclButton isIconOnly variant=\"tertiary\" tabindex=\"-1\">\n <span eclButtonLabel>\n {{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n booleanAttribute,\n inject,\n output,\n} from '@angular/core';\nimport { EclCheckboxDirective, EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject } from 'rxjs';\nimport { BoldTextPipe } from '../boldText.pipe';\nimport {\n EclMultiselectOptionClickEvent,\n EclMultiselectOptionKeydownEvent,\n} from '../events/ecl-multiselect-option.event';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\n/**\n * Component representing a single selectable option in the multiselect dropdown.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectOption]',\n templateUrl: './ecl-multiselect-option.component.html',\n imports: [BoldTextPipe, ...EUI_ECL_CHECKBOX],\n hostDirectives: [EclCheckboxDirective],\n})\nexport class EclMultiselectOptionComponent extends ECLBaseDirective implements EclMultiselectOption, OnChanges, OnDestroy, OnInit {\n\n @ViewChild('checkboxInput') eclCheckboxInput: ElementRef;\n\n keyword = '';\n\n @Input()\n set value(value: string) {\n this._value = value;\n }\n\n get value(): string {\n return this._value;\n }\n\n /**\n * Display label for the option.\n */\n @Input() label: string;\n\n changes = new Subject();\n\n /**\n * Disables the option when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-checkbox--disabled')\n @HostBinding('attr.disabled')\n disabled = false;\n\n /**\n * Emits when the option is clicked.\n */\n readonly optionClick = output<EclMultiselectOptionClickEvent>();\n\n /**\n * Emits when a key is pressed while focused on the option.\n */\n readonly optionKeydown = output<EclMultiselectOptionKeydownEvent>();\n\n @HostBinding('style.display') protected display = 'flex';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ').trim();\n }\n\n /**\n * Indicates whether the option is selected.\n */\n @Input()\n get isChecked(): boolean {\n return this._checked;\n }\n\n set isChecked(value: boolean) {\n this._checked = value;\n }\n\n private _id = '';\n private _checked = false;\n private _value = '';\n private renderer = inject(Renderer2);\n\n /**\n * Returns the unique identifier for the option.\n */\n get id(): string {\n return this._id;\n }\n\n /**\n * Indicates whether the option is active (visible and not disabled).\n */\n get isActive(): boolean {\n return this.display === 'flex' && !this.disabled;\n }\n\n ngOnChanges(): void {\n this.changes.next(this.label);\n }\n\n ngOnInit(): void {\n this._id = this.createId();\n }\n\n ngOnDestroy(): void {\n this.changes.complete();\n }\n\n /**\n * Toggles the selected state and emits the optionClick event.\n */\n onOptionClick(): void {\n this.isChecked = !this.isChecked;\n this.optionClick.emit(new EclMultiselectOptionClickEvent(this));\n }\n\n /**\n * Emits the optionKeydown event when a key is pressed.\n */\n onOptionKeydown(evt: KeyboardEvent): void {\n this.optionKeydown.emit(new EclMultiselectOptionKeydownEvent(this, evt));\n }\n\n /**\n * Focuses the checkbox input.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.eclCheckboxInput.nativeElement, true).focus();\n }\n\n /**\n * Makes the option visible.\n */\n show(): void {\n this.display = 'flex';\n }\n\n /**\n * Hides the option from view.\n */\n hide(): void {\n this.display = 'none';\n }\n\n /**\n * Sets the keyword for search highlighting.\n */\n highlightSearchText(keyword: string): void {\n this.keyword = keyword;\n const re = new RegExp(keyword, 'gi');\n const res = this.label.replace(re, '<b>$&</b>');\n }\n\n private createId(): string {\n return crypto.randomUUID();\n }\n}\n","<input\n eclCheckboxInput\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n (click)=\"onOptionClick()\"\n (keydown)=\"onOptionKeydown($event)\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled\"\n #checkboxInput />\n<label [for]=\"id\" eclCheckboxLabel><span [innerHTML]=\"label | boldText: keyword\"></span></label>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing an option group (fieldset) in a multiselect component.\n * Used to group related options under a common label.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fieldset[eclMultiselectOptgroup]',\n templateUrl: './ecl-multiselect-optgroup.component.html',\n})\nexport class EclMultiselectOptgroupComponent extends ECLBaseDirective {\n\n /**\n * The visible label for the option group.\n */\n @Input() label: string;\n\n /**\n * Returns the computed CSS classes for the optgroup container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select__multiple-group')].join(' ').trim();\n }\n}\n","<legend class=\"ecl-select__multiple-group__title\">{{ label }}</legend>\n<ng-content></ng-content>\n","import { booleanAttribute, Component, computed, DoCheck, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, QueryList, Renderer2, signal, ViewChild, ViewChildren, AfterViewInit, inject } from '@angular/core';\nimport { ControlValueAccessor, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectInputComponent } from '../ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptionDirective } from '../ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from '../ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\nimport { EclMultiselectMainInputClickEvent, EclMultiselectOptionClickEvent, EclMultiselectOptionKeydownEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMultiselectOptgroupComponent } from '../ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\n\n/**\n * Component that renders a dropdown-style multiselect UI element.\n * Used internally by the `EclMultiselectComponent`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectDropdown]',\n templateUrl: 'ecl-multiselect-dropdown.component.html',\n imports: [\n ...EUI_ECL_BUTTON, EclMultiselectOptionComponent, EclMultiselectOptgroupComponent,\n EclMultiselectInputComponent, ...EUI_ECL_CHECKBOX, TranslatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class EclMultiselectDropdownComponent extends ECLBaseDirective implements OnInit, ControlValueAccessor, DoCheck, OnDestroy, AfterViewInit {\n\n @ViewChild('searchInput') searchInput: ElementRef;\n @ViewChild('eclMultiselectInput') eclMultiselectInput: EclMultiselectInputComponent;\n @ViewChild('selectAllCheckbox') selectAllCheckbox: ElementRef;\n @ViewChild('closeBtn', { read: ElementRef }) closeBtn: ElementRef;\n @ViewChild('clearAllBtn', { read: ElementRef }) clearAllBtn: ElementRef;\n @ViewChildren(EclMultiselectOptionComponent) multiOptionComponents: QueryList<EclMultiselectOptionComponent>;\n\n /**\n * Emits the list of selected values whenever the selection changes.\n */\n @Output() eclChange = new EventEmitter<string[]>();\n\n /**\n * Marks the component as visually invalid.\n */\n @Input({ transform: booleanAttribute })\n get isInvalid(): boolean | undefined {\n return this._isInvalid;\n }\n set isInvalid(value: boolean | undefined) {\n this._isInvalid = value;\n }\n\n /**\n * Adds the ECL base CSS class for multiselect dropdowns.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select__multiple')].join(' ').trim();\n }\n\n /**\n * Placeholder for the main multiselect input.\n */\n @Input() mainInputPlaceholder = 'Select an item';\n\n /**\n * Placeholder for the search field input.\n */\n @Input() searchFieldPlaceholder = 'Enter filter keyword';\n\n /**\n * Size of the multiselect dropdown (e.g., 'm', 'l').\n */\n @Input() eclSize = 'm';\n\n /**\n * Disables the component when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.disabled')\n get disabled(): boolean | undefined {\n return this._disabled || undefined;\n }\n set disabled(value: boolean | undefined) {\n this._disabled = value;\n }\n\n /**\n * Optional ARIA description used for accessibility purposes.\n */\n ariaDescribedby: string | undefined = undefined;\n\n /**\n * Label displayed for the toggle button to assist screen readers.\n */\n toggleLabel: string | undefined = undefined;\n\n /**\n * Enables the search box in the dropdown interface.\n */\n hasSearchBox = true;\n\n /**\n * Displays the \"Select all\" checkbox above the list of options.\n */\n hasSelectAll = true;\n\n /**\n * When true, the Apply button acts as a submit button (type=\"submit\") instead of a regular button.\n */\n isSubmitOnApply = false;\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = 'ecl.multiselect.SELECTED';\n\n /**\n * Optional identifier used for the dropdown element.\n */\n id = '';\n\n /**\n * Indicates that the \"no results found\" message should be displayed.\n */\n isShowNoResultsFound = false;\n\n /**\n * Controls the visibility of the multiselect dropdown.\n */\n isShowMultiselectDropdown = false;\n\n /**\n * List of option directives currently rendered in the dropdown.\n */\n multiOptionDirectives: EclMultiselectOptionDirective[] = [];\n\n /**\n * Reactive form group managing internal form state.\n */\n form: FormGroup;\n\n /**\n * Total number of options available in the dropdown list.\n */\n optionsCount = 0;\n\n protected dropdownId = '';\n protected isSelectAllDisabled: boolean | null = null;\n protected selectAllId = '';\n protected toggleId = '';\n private _disabled = false;\n private _isInvalid = false;\n private _selectedItems = signal<EclMultiselectOption[]>([]);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isWriteValueCalled = false;\n private values = [];\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n }\n\n ngDoCheck(): void {\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n ngOnInit(): void {\n this.selectAllId = this.getSelectAllId();\n this.dropdownId = this.getDropdownId();\n this.toggleId = this.getToggleId();\n setTimeout(() => {\n this.modifyParentLabelForAttribute();\n });\n }\n\n ngAfterViewInit(): void {\n this.multiOptionComponents.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isWriteValueCalled) {\n this.resetComponent();\n this.writeValues(this.values);\n this.isWriteValueCalled = false;\n } else {\n this.initSelectedOptions();\n }\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Writes a new value to the component from the outside (e.g., form model).\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public writeValue(values: any): void {\n if (this.multiOptionComponents && this.multiOptionComponents.length > 0) {\n this.resetComponent();\n this.writeValues(values);\n } else {\n this.values = values;\n this.isWriteValueCalled = true;\n }\n }\n\n /**\n * Registers a callback function to be called when the value changes.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n /**\n * Enables or disables the component.\n * Required by ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n @HostListener('document:keyup.escape')\n onEscapeKey(): void {\n this.hideMultiselectDropdown();\n }\n\n @HostListener('document:click', ['$event'])\n onKeyUp(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.hideMultiselectDropdown();\n }\n }\n\n /**\n * Gets labels of currently selected options.\n */\n selectedItems = computed(() => this._selectedItems().map((item) => item.label));\n\n /**\n * Indicates if any options are currently selected.\n */\n isItemsSelected = computed(() => this._selectedItems().length > 0);\n\n /**\n * Controls the visibility of the multiselect toolbar.\n */\n isShowToolbar = computed(() => this._selectedItems().length > 0);\n\n initSelectedOptions(): void {\n const items: EclMultiselectOption[] = [];\n this.multiOptionComponents\n .filter((elem) => elem.isChecked)\n .forEach((item) => {\n items.push(item);\n });\n this._selectedItems.set(items);\n }\n\n onClickClearAll(evt: Event): void {\n evt.stopPropagation();\n this.unselectAllActiveOptions();\n this.eclChange.emit([]);\n this.propagateChange([]);\n }\n\n onEnterClear(evt: Event): void {\n this.onClickClearAll(evt);\n this.eclMultiselectInput.onFocus();\n }\n\n onClickClose(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n if (this.isSubmitOnApply) {\n const form = this.elRef.nativeElement.closest('form');\n if (form) {\n form.requestSubmit();\n }\n }\n }\n\n onArrowUpClose(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n currentOptions[currentOptions.length - 1].onFocus();\n }\n\n onArrowDownClose(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();\n }\n\n onTabClose(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();\n }\n }\n\n onArrowUpClear(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();\n }\n\n onArrowDownClear(evt: Event): void {\n evt.preventDefault();\n this.eclMultiselectInput.onFocus();\n }\n\n onTabClear(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput.onFocus();\n }\n }\n\n onEnterSearch(evt: Event): void {\n evt.preventDefault();\n }\n\n onArrowDownSearch(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (this.hasSelectAll) {\n this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();\n } else {\n currentOptions[0].onFocus();\n }\n }\n\n onArrowUpSearch(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput.onFocus();\n }\n\n onKeydownMainInput(evt: Event): void {\n evt.preventDefault();\n this.showMultiselectDropdown();\n if (this.hasSearchBox) {\n setTimeout(() => this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus());\n } else {\n this.onArrowDownSearch(evt);\n }\n }\n\n onClickMainInput(evt: EclMultiselectMainInputClickEvent): void {\n evt.event.preventDefault();\n this.toggleDropdown();\n }\n\n onArrowDownSelectAll(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (currentOptions.length > 0) {\n currentOptions[0].onFocus();\n }\n }\n\n onArrowUpSelectAll(evt: Event): void {\n evt.preventDefault();\n if (this.hasSearchBox) {\n this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n }\n\n onEnterSelectAll(evt: Event): void {\n evt.preventDefault();\n (evt.target as HTMLInputElement).click();\n }\n\n /**\n * Handles search input, filters options, and updates their visibility.\n */\n onSearch(input: EventTarget): void {\n const keyword = (input as HTMLInputElement).value;\n let isMatchFound = false;\n if (keyword === '') {\n this.enableSelectAll();\n isMatchFound = true;\n this.multiOptionComponents.forEach((item) => {\n item.highlightSearchText('');\n item.show();\n });\n } else {\n this.multiOptionComponents.forEach((item) => {\n if (item.label.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {\n item.hide();\n } else {\n isMatchFound = true;\n item.highlightSearchText(keyword.toLowerCase());\n item.show();\n }\n });\n this.disableSelectAll();\n }\n if (!isMatchFound) {\n this.showNoResultsFound();\n } else {\n this.hideNoResultsFound();\n }\n }\n\n /**\n * Toggles all visible options based on the \"Select All\" checkbox.\n */\n onSelectAll(): void {\n if (this.selectAllCheckbox.nativeElement.checked) {\n this.selectAllActiveOptions();\n } else {\n this.unselectAllActiveOptions();\n }\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value));\n this.propagateChange(this._selectedItems().map((item) => item.value));\n }\n\n /**\n * Handles keyboard interaction on option items.\n * Supports arrow keys, tab, escape, and enter.\n */\n onKeydownOption(evt: EclMultiselectOptionKeydownEvent): void {\n switch (evt.keyboardEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onArrowUpOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ESCAPE: {\n this.hideMultiselectDropdown();\n break;\n }\n case KeyCode.ENTER: {\n (evt.keyboardEvent.target as HTMLInputElement).click();\n break;\n }\n case KeyCode.TAB: {\n if (!evt.keyboardEvent.shiftKey) {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Triggered when a single option is clicked/selected.\n * Updates selected items, emits changes.\n */\n onOptionSelected(evt: EclMultiselectOptionClickEvent): void {\n if (this.selectAllCheckbox && this.selectAllCheckbox.nativeElement.checked) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n const currOption = evt.multiselectOption;\n if (currOption.isChecked) {\n this._selectedItems.update((items) => [...items, currOption]);\n } else {\n this._selectedItems.update((items) => items.filter((item) => item !== currOption));\n }\n this.propagateChange(this._selectedItems().map((item) => item.value));\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value));\n }\n\n private selectAllActiveOptions(): void {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n this.getActiveOptions().forEach((item) => {\n if (!item.isChecked) {\n item.isChecked = true;\n newItems.push(item);\n }\n });\n this._selectedItems.set(newItems);\n }\n\n private unselectAllActiveOptions(): void {\n if (this.selectAllCheckbox) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n this.getAvailableOptions().forEach((item) => {\n item.isChecked = false;\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {\n /* empty */\n };\n\n private propagateTouched = (): void => {\n /* empty */\n };\n\n private showMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = true;\n }\n\n private hideMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = false;\n }\n\n private disableSelectAll(): void {\n this.isSelectAllDisabled = true;\n }\n\n private enableSelectAll(): void {\n this.isSelectAllDisabled = null;\n }\n\n private showNoResultsFound(): void {\n this.isShowNoResultsFound = true;\n }\n\n private hideNoResultsFound(): void {\n this.isShowNoResultsFound = false;\n }\n\n private resetComponent(): void {\n this.multiOptionComponents.forEach((item) => {\n item.isChecked = false;\n });\n if (this.selectAllCheckbox) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n }\n\n private writeValues(values: Array<string>): void {\n if (values) {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n if (this.multiOptionComponents && this.multiOptionComponents.length > 0) {\n this.multiOptionComponents\n .filter((item) => values.includes(item.value) && !item.disabled)\n .forEach((el) => {\n el.isChecked = true;\n newItems.push(el);\n });\n }\n this._selectedItems.set(newItems);\n }\n }\n\n private toggleDropdown(): void {\n this.isShowMultiselectDropdown = !this.isShowMultiselectDropdown;\n }\n\n private onArrowDownAndTabOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const currentOptions = this.getActiveOptions();\n if (index !== currentOptions.length - 1) {\n const nextSiblingCheckbox = currentOptions[index + 1];\n nextSiblingCheckbox.onFocus();\n } else if (this.closeBtn) {\n this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();\n }\n }\n\n private onArrowUpOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n if (index !== 0) {\n const prevSiblingCheckbox = this.getActiveOptions()[index - 1];\n prevSiblingCheckbox.onFocus();\n } else if (!this.hasSelectAll || this.selectAllCheckbox.nativeElement.disabled) {\n if (this.hasSearchBox) {\n this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n } else {\n this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();\n }\n }\n\n private getActiveOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents ? this.multiOptionComponents.filter((item) => item.isActive) : [];\n }\n\n private getAvailableOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents ? this.multiOptionComponents.filter((item) => !item.disabled) : [];\n }\n\n private getOptionIndexByIdFromActiveOptions(id: string): number {\n return this.getActiveOptions().findIndex((option) => option.id === id);\n }\n\n private getSelectAllId(): string {\n return crypto.randomUUID();\n }\n\n private getDropdownId(): string {\n return this.id !== '' ? `${this.id}-dropdown` : crypto.randomUUID();\n }\n\n private getToggleId(): string {\n return this.id !== '' ? `${this.id}-toggle` : crypto.randomUUID();\n }\n\n private modifyParentLabelForAttribute(): void {\n const form = this.renderer.parentNode(this.elRef.nativeElement);\n const label = form?.querySelector('.ecl-form-label');\n if (label) {\n this.renderer.setAttribute(label, 'for', this.toggleId);\n }\n }\n}\n","<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label\">\n @for (elem of item.eclOptionItems; track elem.label) {\n <div\n eclMultiselectOption\n [value]=\"elem.value\"\n [label]=\"elem.label\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value\"\n [label]=\"item.label\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentChildren, Directive, ElementRef, HostBinding, Input, QueryList, forwardRef, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to decorate <option> and <optgroup> elements within a multiselect.\n * Adds support for value, label, disabled, selected states and styling.\n */\n@Directive({\n selector: 'optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]',\n})\nexport class EclMultiselectOptionDirective extends ECLBaseDirective {\n\n /**\n * Nested option directives (used for optgroups).\n */\n @ContentChildren(forwardRef(() => EclMultiselectOptionDirective)) eclOptionItems: QueryList<EclMultiselectOptionDirective>;\n\n /**\n * Value assigned to the option.\n */\n @Input() value: string;\n\n /**\n * Label displayed for the option.\n */\n @Input() label: string;\n\n /**\n * Emits whenever the option's state changes (used internally).\n */\n changes = new Subject();\n\n /**\n * Indicates that the option is disabled.\n */\n @Input()\n @HostBinding('attr.disabled')\n get disabled(): boolean {\n return this._disabled || null;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n /**\n * Indicates that the option is selected.\n */\n @Input()\n @HostBinding('attr.selected')\n get selected(): boolean {\n return this._selected || null;\n }\n set selected(value) {\n this._selected = coerceBooleanProperty(value);\n }\n private _selected = false;\n private elRef = inject(ElementRef);\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ').trim();\n }\n\n /**\n * Returns true if this directive is applied to an <optgroup> element.\n */\n isOptGroup(): boolean {\n return this.elRef.nativeElement.nodeName === 'OPTGROUP';\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, ContentChildren, DoCheck, ElementRef, HostBinding, Injector, Input, IterableDiffer, IterableDiffers, OnDestroy, OnInit, PLATFORM_ID, QueryList, Renderer2, ViewContainerRef, ViewEncapsulation, afterNextRender, booleanAttribute, forwardRef, inject, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\n\n/**\n * Component representing a custom multiselect input using the ECL design system.\n *\n * Should be used on a native <select> element to enhance it with ECL multiselect behavior.\n * Replaces the original element with a custom dropdown rendered dynamically.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[eclMultiselect]',\n templateUrl: 'ecl-multiselect.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectComponent),\n multi: true,\n },\n ],\n})\nexport class EclMultiselectComponent extends ECLBaseDirective implements DoCheck, OnInit, OnDestroy {\n injector = inject(Injector);\n\n /**\n * List of option directives projected into the component.\n */\n @ContentChildren(forwardRef(() => EclMultiselectOptionDirective)) eclOptionItems: QueryList<EclMultiselectOptionDirective>;\n\n /**\n * Defines the `aria-describedby` attribute for accessibility.\n */\n @Input() ariaDescribedby: string | undefined = undefined;\n\n /**\n * Sets the `id` attribute of the multiselect component.\n */\n @Input() id: string | undefined = undefined;\n\n /**\n * Label used for the toggle button that expands or collapses the dropdown.\n */\n @Input() toggleLabel: string | undefined = undefined;\n\n /**\n * Marks the multiselect as invalid.\n */\n @Input({ transform: booleanAttribute })\n get isInvalid(): boolean | undefined {\n return this._isInvalid;\n }\n set isInvalid(value: boolean | undefined) {\n this._isInvalid = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.isInvalid = value;\n }\n }\n\n /**\n * Disables the multiselect component when set to true.\n */\n @Input()\n @HostBinding('attr.disabled')\n set disabled(value: BooleanInput) {\n if (this.multiselectComponent) {\n this.multiselectComponent.disabled = coerceBooleanProperty(value);\n }\n this._disabled = coerceBooleanProperty(value);\n }\n get disabled(): boolean | undefined {\n return this._disabled || undefined;\n }\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n /**\n * Emits an array of selected option values when the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * Enables the search box within the dropdown.\n */\n @Input({ transform: booleanAttribute })\n set hasSearchBox(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.hasSearchBox = coerceBooleanProperty(value);\n }\n this._hasSearchBox = coerceBooleanProperty(value);\n }\n\n /**\n * Displays the \"Select all\" option in the dropdown.\n */\n @Input({ transform: booleanAttribute })\n set hasSelectAll(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.hasSelectAll = coerceBooleanProperty(value);\n }\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n\n /**\n * When true, the Apply button in the dropdown acts as a submit button (type=\"submit\").\n */\n @Input({ transform: booleanAttribute })\n set isSubmitOnApply(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.isSubmitOnApply = coerceBooleanProperty(value);\n }\n this._isSubmitOnApply = coerceBooleanProperty(value);\n }\n\n /**\n * Placeholder text to show in the multiselect input field when no options are selected.\n */\n @Input()\n set eclPlaceholder(value: string) {\n this._eclPlaceholder = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.mainInputPlaceholder = value;\n }\n }\n get eclPlaceholder(): string {\n return this._eclPlaceholder;\n }\n\n /**\n * Multiselect size: 's' | 'm' | 'l'. Default is 'm'.\n */\n @Input() eclSize = 'm';\n\n /**\n * Label for the selections counter, read by screen readers.\n * Accepts a translation key or plain text. Default: 'ecl.multiselect.SELECTED'.\n */\n @Input()\n set counterLabel(value: string) {\n this._counterLabel = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.counterLabel = value;\n }\n }\n\n private readonly SELECT_CONTAINER_CLASS = 'ecl-select__container';\n private readonly SELECT_CONTAINER_HIDDEN_CLASS = 'ecl-select__container--hidden';\n private _disabled = false;\n private _hasSelectAll = true;\n private _hasSearchBox = true;\n private _isSubmitOnApply = false;\n private _counterLabel = 'ecl.multiselect.SELECTED';\n private _isInvalid = false;\n private _eclPlaceholder = 'Select item';\n private differ: IterableDiffer<EclMultiselectOptionDirective>;\n private multiselectComponent: EclMultiselectDropdownComponent;\n private hostEl: HTMLSelectElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private multiselectComponentHtml: HTMLDivElement;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private el = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private differs = inject(IterableDiffers);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.attachOptions();\n if (this.hostParentEl != null) {\n this.hideOriginalSelectComponent();\n this.renderer.insertBefore(this.hostParentEl, this.multiselectComponentHtml, this.hostWrapperEl);\n this.setAriaLabelledBy();\n }\n });\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclOptionItems);\n\n if (diff) {\n if (this.multiselectComponent) {\n this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();\n }\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.multiselectComponentHtml = this.createMultiselectComponent();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private hideOriginalSelectComponent(): void {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.hostWrapperEl.appendChild(this.hostEl);\n this.renderer.addClass(this.hostWrapperEl, this.SELECT_CONTAINER_HIDDEN_CLASS);\n this.renderer.setAttribute(this.hostWrapperEl, 'tabindex', '-1');\n this.renderer.setAttribute(this.hostEl, 'tabindex', '-1');\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, this.SELECT_CONTAINER_CLASS);\n this.renderer.addClass(wrapperContainer, `${this.SELECT_CONTAINER_CLASS}--${this.eclSize}`);\n return wrapperContainer;\n }\n\n private getHostElement(): HTMLSelectElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLSelectElement): HTMLElement {\n return hostEl.parentElement;\n }\n\n private createMultiselectComponent(): HTMLDivElement {\n const ngControl = this.injector.get(NgControl, undefined, { optional: true });\n const multiselect = this.viewContainerRef.createComponent(EclMultiselectDropdownComponent);\n this.multiselectComponent = multiselect.instance;\n this.multiselectComponent.eclChange.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclChange.emit(evt);\n });\n this.multiselectComponent.mainInputPlaceholder = this.eclPlaceholder;\n\n if (this.ariaDescribedby !== undefined) {\n this.multiselectComponent.ariaDescribedby = this.ariaDescribedby;\n }\n if (this.toggleLabel !== undefined) {\n this.multiselectComponent.toggleLabel = this.toggleLabel;\n }\n if (this.id !== undefined) {\n this.multiselectComponent.id = this.id;\n }\n this.multiselectComponent.eclSize = this.eclSize;\n if (ngControl) {\n ngControl.valueAccessor = this.multiselectComponent;\n }\n multiselect.instance.disabled = this.disabled;\n multiselect.instance.isInvalid = this.isInvalid;\n multiselect.instance.hasSearchBox = this._hasSearchBox;\n multiselect.instance.hasSelectAll = this._hasSelectAll;\n multiselect.instance.isSubmitOnApply = this._isSubmitOnApply;\n multiselect.instance.counterLabel = this._counterLabel;\n return (multiselect.location as ElementRef<HTMLDivElement>).nativeElement;\n }\n\n private setAriaLabelledBy(): void {\n const hostSelect: HTMLElement = this.el.nativeElement;\n const formGroup = hostSelect.closest('.ecl-form-group') as HTMLElement | null;\n if (!formGroup) return;\n\n const label = formGroup.querySelector('.ecl-form-label') as HTMLElement | null;\n if (!label) return;\n\n if (!label.id) {\n const newLabelId = `ecl-select-label-${crypto.randomUUID()}`;\n this.renderer.setAttribute(label, 'id', newLabelId);\n }\n\n if (!hostSelect.id) {\n const newSelectId = `ecl-select-input-${crypto.randomUUID()}`;\n this.renderer.setAttribute(hostSelect, 'id', newSelectId);\n }\n\n const labelledBy = `${label.id} ${hostSelect.id}`.trim();\n this.renderer.setAttribute(hostSelect, 'aria-labelledby', labelledBy);\n }\n\n private attachOptions(): void {\n setTimeout(() => {\n this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();\n });\n }\n}\n","<ng-content></ng-content>\n","import { BoldTextPipe } from './boldText.pipe';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectInputComponent } from './ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptgroupComponent } from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from './ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectComponent } from './ecl-multiselect.component';\n\nexport * from './ecl-multiselect.component';\nexport * from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nexport * from './ecl-multiselect-input/ecl-multiselect-input.component';\nexport * from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nexport * from './ecl-multiselect-option/ecl-multiselect-option.component';\nexport * from './ecl-multiselect-option.directive';\nexport * from './models/ecl-multiselect-option.model';\nexport * from './events/index';\nexport * from './boldText.pipe';\n\nexport const EUI_ECL_MULTISELECT = [\n EclMultiselectComponent,\n EclMultiselectOptionDirective,\n EclMultiselectOptionComponent,\n EclMultiselectInputComponent,\n EclMultiselectDropdownComponent,\n EclMultiselectOptgroupComponent,\n BoldTextPipe,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-multiselect.mjs","sources":["../../components/ecl-multiselect/boldText.pipe.ts","../../components/ecl-multiselect/events/ecl-multiselect-main-input-click.event.ts","../../components/ecl-multiselect/events/ecl-multiselect-option.event.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.ts","../../components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.html","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.ts","../../components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.html","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.ts","../../components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.html","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.ts","../../components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.html","../../components/ecl-multiselect/ecl-multiselect-option.directive.ts","../../components/ecl-multiselect/ecl-multiselect.component.ts","../../components/ecl-multiselect/ecl-multiselect.component.html","../../components/ecl-multiselect/index.ts","../../components/ecl-multiselect/eui-ecl-components-ecl-multiselect.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'boldText',\n})\nexport class BoldTextPipe implements PipeTransform {\n private BOLD_TAG_OPEN = '<b>';\n\n transform(value: string, keyword: string): string {\n if (keyword !== '') {\n return this.replace(value, keyword);\n } else {\n if (value.indexOf(this.BOLD_TAG_OPEN) > -1) {\n return this.clearBoldText(value);\n } else {\n return value;\n }\n }\n }\n\n replace(str: string, keyword: string): string {\n const re = new RegExp(keyword, 'gi');\n return str.replace(re, '<b>$&</b>');\n }\n\n clearBoldText(str: string): string {\n return str.replace(/<[/]?b>/g, '');\n }\n}\n","export class EclMultiselectMainInputClickEvent {\n constructor(public event: Event) {}\n}","import { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\nexport class EclMultiselectOptionClickEvent {\n constructor(public multiselectOption: EclMultiselectOption) {}\n}\n\nexport class EclMultiselectOptionKeydownEvent {\n constructor(\n public multiselectOption: EclMultiselectOption,\n public keyboardEvent: KeyboardEvent,\n ) {}\n}","import { Component, ElementRef, HostBinding, Renderer2, ViewChild, booleanAttribute, computed, inject, input, signal, output } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclMultiselectMainInputClickEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing the main input of a multiselect component.\n * Handles displaying selected items, opening the dropdown, and managing accessibility.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectInput]',\n templateUrl: './ecl-multiselect-input.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class.ecl-select__container--disabled]': 'isDisabled()',\n '[class.ecl-select__container--invalid]': 'isInvalid()',\n },\n})\nexport class EclMultiselectInputComponent extends ECLBaseDirective {\n\n /**\n * Size modifier for the multiselect input (e.g., 's', 'm', 'l').\n */\n eclSize = input('m');\n\n /**\n * Unique ID for the counter element.\n */\n counterId = signal(crypto.randomUUID());\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = input('ecl.multiselect.SELECTED');\n\n /**\n * ID of the toggle button element (used for accessibility).\n */\n toggleId = input<string>('');\n\n /**\n * Label for the toggle button (optional).\n */\n toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the component as disabled.\n */\n isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Marks the component as being in an invalid state.\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * CSS classes for the component, including size and inherited classes.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-select__container'),\n `ecl-select__container--${this.eclSize()}`,\n ].join(' ').trim();\n }\n\n /**\n * Placeholder text for the input when no items are selected.\n */\n inputPlaceholder = input('');\n\n /**\n * Array of currently selected item labels.\n */\n selectedItems = input<string[]>([]);\n\n /**\n * Indicates that the dropdown is currently expanded.\n */\n isDropdownExpanded = input(false, { transform: booleanAttribute });\n\n /**\n * ARIA controls attribute for accessibility.\n */\n ariaControls = input<string | undefined>(undefined);\n\n /**\n * ARIA describedby attribute for accessibility.\n */\n ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Computed ARIA describedby combining the input value with the counter ID.\n */\n ariaDescribedbyFull = computed(() => {\n const describedby = this.ariaDescribedby();\n const counter = this.counterId();\n return [describedby, counter].filter(Boolean).join(' ') || undefined;\n });\n\n /**\n * Reference to the internal input element.\n */\n @ViewChild('inputMultiselect') inputMultiselect: ElementRef;\n\n /**\n * Event emitted when the input is clicked.\n */\n readonly mainInputClick = output<EclMultiselectMainInputClickEvent>();\n\n /**\n * Event emitted when a key is pressed on the input.\n */\n readonly mainInputKeydown = output<Event>();\n\n private readonly ICON_SIZE_FOR_EC_THEME_ON = 'xs';\n private readonly ICON_SIZE_FOR_EU_THEME_ON = 's';\n private eclThemeService = inject(EclThemeService);\n private renderer = inject(Renderer2);\n\n /**\n * Returns the label text shown inside the button.\n */\n buttonText = computed(() => {\n const items = this.selectedItems();\n return items.length === 0 ? this.inputPlaceholder() : items.join(',');\n });\n\n /**\n * Returns the count of selected items.\n */\n selectedItemsCount = computed(() => this.selectedItems().length);\n\n /**\n * Displays a count badge when items are selected.\n */\n isShowCounter = computed(() => this.selectedItems().length > 0);\n\n /**\n * Indicates that the dropdown is expanded (active).\n */\n isActive = computed(() => this.isDropdownExpanded());\n\n /**\n * Returns icon size depending on the theme.\n */\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_FOR_EC_THEME_ON;\n } else {\n return this.ICON_SIZE_FOR_EU_THEME_ON;\n }\n }\n\n /**\n * Handles click on the input container. Emits custom event with original DOM event.\n */\n onClick(evt: Event): void {\n this.mainInputClick.emit(new EclMultiselectMainInputClickEvent(evt));\n }\n\n /**\n * Handles keydown events on the input.\n * Only emits event on ArrowDown, Enter, or Space keys.\n */\n onKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case KeyCode.ARROW_DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n this.mainInputKeydown.emit(evt);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Focuses the multiselect input element.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.inputMultiselect.nativeElement, true).focus();\n }\n}\n","<div [class.ecl-select-multiple-selections-counter--visible]=\"isShowCounter()\"\n class=\"ecl-select-multiple-selections-counter\" [id]=\"counterId()\">\n <div class=\"ecl-select-multiple-selections-counter__label\">{{ counterLabel() | translate }}</div>\n <span>{{ selectedItemsCount() }}</span>\n</div>\n<button\n class=\"ecl-select ecl-select__multiple-toggle\"\n [class.ecl-select--active]=\"isActive()\"\n #inputMultiselect\n type=\"button\"\n [id]=\"toggleId()\"\n [attr.aria-expanded]=\"isDropdownExpanded()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.disabled]=\"isDisabled() ? true : undefined\"\n [attr.aria-describedby]=\"ariaDescribedbyFull()\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onClick($event)\"> {{ buttonText() }}\n</button>\n<div class=\"ecl-select__icon\">\n <button eclButton isIconOnly variant=\"tertiary\" tabindex=\"-1\">\n <span eclButtonLabel>\n {{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n booleanAttribute,\n inject,\n output,\n} from '@angular/core';\nimport { EclCheckboxDirective, EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject } from 'rxjs';\nimport { BoldTextPipe } from '../boldText.pipe';\nimport {\n EclMultiselectOptionClickEvent,\n EclMultiselectOptionKeydownEvent,\n} from '../events/ecl-multiselect-option.event';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\n\n/**\n * Component representing a single selectable option in the multiselect dropdown.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectOption]',\n templateUrl: './ecl-multiselect-option.component.html',\n imports: [BoldTextPipe, ...EUI_ECL_CHECKBOX],\n hostDirectives: [EclCheckboxDirective],\n})\nexport class EclMultiselectOptionComponent extends ECLBaseDirective implements EclMultiselectOption, OnChanges, OnDestroy, OnInit {\n\n @ViewChild('checkboxInput') eclCheckboxInput: ElementRef;\n\n keyword = '';\n\n @Input()\n set value(value: string) {\n this._value = value;\n }\n\n get value(): string {\n return this._value;\n }\n\n /**\n * Display label for the option.\n */\n @Input() label: string;\n\n changes = new Subject();\n\n /**\n * Disables the option when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-checkbox--disabled')\n @HostBinding('attr.disabled')\n disabled = false;\n\n /**\n * Emits when the option is clicked.\n */\n readonly optionClick = output<EclMultiselectOptionClickEvent>();\n\n /**\n * Emits when a key is pressed while focused on the option.\n */\n readonly optionKeydown = output<EclMultiselectOptionKeydownEvent>();\n\n @HostBinding('style.display') protected display = 'flex';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ').trim();\n }\n\n /**\n * Indicates whether the option is selected.\n */\n @Input()\n get isChecked(): boolean {\n return this._checked;\n }\n\n set isChecked(value: boolean) {\n this._checked = value;\n }\n\n private _id = '';\n private _checked = false;\n private _value = '';\n private renderer = inject(Renderer2);\n\n /**\n * Returns the unique identifier for the option.\n */\n get id(): string {\n return this._id;\n }\n\n /**\n * Indicates whether the option is active (visible and not disabled).\n */\n get isActive(): boolean {\n return this.display === 'flex' && !this.disabled;\n }\n\n ngOnChanges(): void {\n this.changes.next(this.label);\n }\n\n ngOnInit(): void {\n this._id = this.createId();\n }\n\n ngOnDestroy(): void {\n this.changes.complete();\n }\n\n /**\n * Toggles the selected state and emits the optionClick event.\n */\n onOptionClick(): void {\n this.isChecked = !this.isChecked;\n this.optionClick.emit(new EclMultiselectOptionClickEvent(this));\n }\n\n /**\n * Emits the optionKeydown event when a key is pressed.\n */\n onOptionKeydown(evt: KeyboardEvent): void {\n this.optionKeydown.emit(new EclMultiselectOptionKeydownEvent(this, evt));\n }\n\n /**\n * Focuses the checkbox input.\n */\n onFocus(): void {\n this.renderer.selectRootElement(this.eclCheckboxInput.nativeElement, true).focus();\n }\n\n /**\n * Makes the option visible.\n */\n show(): void {\n this.display = 'flex';\n }\n\n /**\n * Hides the option from view.\n */\n hide(): void {\n this.display = 'none';\n }\n\n /**\n * Sets the keyword for search highlighting.\n */\n highlightSearchText(keyword: string): void {\n this.keyword = keyword;\n const re = new RegExp(keyword, 'gi');\n const res = this.label.replace(re, '<b>$&</b>');\n }\n\n private createId(): string {\n return crypto.randomUUID();\n }\n}\n","<input\n eclCheckboxInput\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n (click)=\"onOptionClick()\"\n (keydown)=\"onOptionKeydown($event)\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled\"\n #checkboxInput />\n<label [for]=\"id\" eclCheckboxLabel><span [innerHTML]=\"label | boldText: keyword\"></span></label>\n","import { Component, HostBinding, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing an option group (fieldset) in a multiselect component.\n * Used to group related options under a common label.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fieldset[eclMultiselectOptgroup]',\n templateUrl: './ecl-multiselect-optgroup.component.html',\n})\nexport class EclMultiselectOptgroupComponent extends ECLBaseDirective {\n\n /**\n * The visible label for the option group.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Returns the computed CSS classes for the optgroup container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select__multiple-group')].join(' ').trim();\n }\n}\n","<legend class=\"ecl-select__multiple-group__title\">{{ label() }}</legend>\n<ng-content></ng-content>\n","import { booleanAttribute, Component, computed, DoCheck, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, QueryList, Renderer2, signal, ViewChild, ViewChildren, AfterViewInit, inject, input } from '@angular/core';\nimport { ControlValueAccessor, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectInputComponent } from '../ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptionDirective } from '../ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from '../ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectOption } from '../models/ecl-multiselect-option.model';\nimport { EclMultiselectMainInputClickEvent, EclMultiselectOptionClickEvent, EclMultiselectOptionKeydownEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclMultiselectOptgroupComponent } from '../ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EUI_ECL_CHECKBOX } from '@eui/ecl/components/ecl-checkbox';\n\n/**\n * Component that renders a dropdown-style multiselect UI element.\n * Used internally by the `EclMultiselectComponent`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMultiselectDropdown]',\n templateUrl: 'ecl-multiselect-dropdown.component.html',\n imports: [\n ...EUI_ECL_BUTTON, EclMultiselectOptionComponent, EclMultiselectOptgroupComponent,\n EclMultiselectInputComponent, ...EUI_ECL_CHECKBOX, TranslatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class EclMultiselectDropdownComponent extends ECLBaseDirective implements OnInit, ControlValueAccessor, DoCheck, OnDestroy, AfterViewInit {\n\n @ViewChild('searchInput') searchInput: ElementRef;\n @ViewChild('eclMultiselectInput') eclMultiselectInput: EclMultiselectInputComponent;\n @ViewChild('selectAllCheckbox') selectAllCheckbox: ElementRef;\n @ViewChild('closeBtn', { read: ElementRef }) closeBtn: ElementRef;\n @ViewChild('clearAllBtn', { read: ElementRef }) clearAllBtn: ElementRef;\n @ViewChildren(EclMultiselectOptionComponent) multiOptionComponents: QueryList<EclMultiselectOptionComponent>;\n\n /**\n * Emits the list of selected values whenever the selection changes.\n */\n @Output() eclChange = new EventEmitter<string[]>();\n\n /**\n * Marks the component as visually invalid.\n */\n @Input({ transform: booleanAttribute })\n get isInvalid(): boolean | undefined {\n return this._isInvalid;\n }\n set isInvalid(value: boolean | undefined) {\n this._isInvalid = value;\n }\n\n /**\n * Adds the ECL base CSS class for multiselect dropdowns.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select__multiple')].join(' ').trim();\n }\n\n /**\n * Placeholder for the main multiselect input.\n */\n @Input() mainInputPlaceholder = 'Select an item';\n\n /**\n * Placeholder for the search field input.\n */\n readonly searchFieldPlaceholder = input('Enter filter keyword');\n\n /**\n * Size of the multiselect dropdown (e.g., 'm', 'l').\n */\n @Input() eclSize = 'm';\n\n /**\n * Disables the component when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.disabled')\n get disabled(): boolean | undefined {\n return this._disabled || undefined;\n }\n set disabled(value: boolean | undefined) {\n this._disabled = value;\n }\n\n /**\n * Optional ARIA description used for accessibility purposes.\n */\n ariaDescribedby: string | undefined = undefined;\n\n /**\n * Label displayed for the toggle button to assist screen readers.\n */\n toggleLabel: string | undefined = undefined;\n\n /**\n * Enables the search box in the dropdown interface.\n */\n hasSearchBox = true;\n\n /**\n * Displays the \"Select all\" checkbox above the list of options.\n */\n hasSelectAll = true;\n\n /**\n * When true, the Apply button acts as a submit button (type=\"submit\") instead of a regular button.\n */\n isSubmitOnApply = false;\n\n /**\n * Label for the selections counter, read by screen readers.\n */\n counterLabel = 'ecl.multiselect.SELECTED';\n\n /**\n * Optional identifier used for the dropdown element.\n */\n id = '';\n\n /**\n * Indicates that the \"no results found\" message should be displayed.\n */\n isShowNoResultsFound = false;\n\n /**\n * Controls the visibility of the multiselect dropdown.\n */\n isShowMultiselectDropdown = false;\n\n /**\n * List of option directives currently rendered in the dropdown.\n */\n multiOptionDirectives: EclMultiselectOptionDirective[] = [];\n\n /**\n * Reactive form group managing internal form state.\n */\n form: FormGroup;\n\n /**\n * Total number of options available in the dropdown list.\n */\n optionsCount = 0;\n\n protected dropdownId = '';\n protected isSelectAllDisabled: boolean | null = null;\n protected selectAllId = '';\n protected toggleId = '';\n private _disabled = false;\n private _isInvalid = false;\n private _selectedItems = signal<EclMultiselectOption[]>([]);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isWriteValueCalled = false;\n private values = [];\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n }\n\n ngDoCheck(): void {\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n }\n\n ngOnInit(): void {\n this.selectAllId = this.getSelectAllId();\n this.dropdownId = this.getDropdownId();\n this.toggleId = this.getToggleId();\n setTimeout(() => {\n this.modifyParentLabelForAttribute();\n });\n }\n\n ngAfterViewInit(): void {\n this.multiOptionComponents.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.isWriteValueCalled) {\n this.resetComponent();\n this.writeValues(this.values);\n this.isWriteValueCalled = false;\n } else {\n this.initSelectedOptions();\n }\n this.optionsCount = this.getAvailableOptions() ? this.getAvailableOptions().length : 0;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Writes a new value to the component from the outside (e.g., form model).\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public writeValue(values: any): void {\n if (this.multiOptionComponents && this.multiOptionComponents.length > 0) {\n this.resetComponent();\n this.writeValues(values);\n } else {\n this.values = values;\n this.isWriteValueCalled = true;\n }\n }\n\n /**\n * Registers a callback function to be called when the value changes.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * Required by ControlValueAccessor.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n /**\n * Enables or disables the component.\n * Required by ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n @HostListener('document:keyup.escape')\n onEscapeKey(): void {\n this.hideMultiselectDropdown();\n }\n\n @HostListener('document:click', ['$event'])\n onKeyUp(event: MouseEvent): void {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.hideMultiselectDropdown();\n }\n }\n\n /**\n * Gets labels of currently selected options.\n */\n selectedItems = computed(() => this._selectedItems().map((item) => item.label));\n\n /**\n * Indicates if any options are currently selected.\n */\n isItemsSelected = computed(() => this._selectedItems().length > 0);\n\n /**\n * Controls the visibility of the multiselect toolbar.\n */\n isShowToolbar = computed(() => this._selectedItems().length > 0);\n\n initSelectedOptions(): void {\n const items: EclMultiselectOption[] = [];\n this.multiOptionComponents\n .filter((elem) => elem.isChecked)\n .forEach((item) => {\n items.push(item);\n });\n this._selectedItems.set(items);\n }\n\n onClickClearAll(evt: Event): void {\n evt.stopPropagation();\n this.unselectAllActiveOptions();\n this.eclChange.emit([]);\n this.propagateChange([]);\n }\n\n onEnterClear(evt: Event): void {\n this.onClickClearAll(evt);\n this.eclMultiselectInput.onFocus();\n }\n\n onClickClose(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n if (this.isSubmitOnApply) {\n const form = this.elRef.nativeElement.closest('form');\n if (form) {\n form.requestSubmit();\n }\n }\n }\n\n onArrowUpClose(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n currentOptions[currentOptions.length - 1].onFocus();\n }\n\n onArrowDownClose(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();\n }\n\n onTabClose(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.renderer.selectRootElement(this.clearAllBtn.nativeElement, true).focus();\n }\n }\n\n onArrowUpClear(evt: Event): void {\n evt.preventDefault();\n this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();\n }\n\n onArrowDownClear(evt: Event): void {\n evt.preventDefault();\n this.eclMultiselectInput.onFocus();\n }\n\n onTabClear(evt: Event): void {\n if (!(evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput.onFocus();\n }\n }\n\n onEnterSearch(evt: Event): void {\n evt.preventDefault();\n }\n\n onArrowDownSearch(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (this.hasSelectAll) {\n this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();\n } else {\n currentOptions[0].onFocus();\n }\n }\n\n onArrowUpSearch(evt: Event): void {\n evt.preventDefault();\n this.hideMultiselectDropdown();\n this.eclMultiselectInput.onFocus();\n }\n\n onKeydownMainInput(evt: Event): void {\n evt.preventDefault();\n this.showMultiselectDropdown();\n if (this.hasSearchBox) {\n setTimeout(() => this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus());\n } else {\n this.onArrowDownSearch(evt);\n }\n }\n\n onClickMainInput(evt: EclMultiselectMainInputClickEvent): void {\n evt.event.preventDefault();\n this.toggleDropdown();\n }\n\n onArrowDownSelectAll(evt: Event): void {\n evt.preventDefault();\n const currentOptions = this.getActiveOptions();\n if (currentOptions.length > 0) {\n currentOptions[0].onFocus();\n }\n }\n\n onArrowUpSelectAll(evt: Event): void {\n evt.preventDefault();\n if (this.hasSearchBox) {\n this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n }\n\n onEnterSelectAll(evt: Event): void {\n evt.preventDefault();\n (evt.target as HTMLInputElement).click();\n }\n\n /**\n * Handles search input, filters options, and updates their visibility.\n */\n onSearch(input: EventTarget): void {\n const keyword = (input as HTMLInputElement).value;\n let isMatchFound = false;\n if (keyword === '') {\n this.enableSelectAll();\n isMatchFound = true;\n this.multiOptionComponents.forEach((item) => {\n item.highlightSearchText('');\n item.show();\n });\n } else {\n this.multiOptionComponents.forEach((item) => {\n if (item.label.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {\n item.hide();\n } else {\n isMatchFound = true;\n item.highlightSearchText(keyword.toLowerCase());\n item.show();\n }\n });\n this.disableSelectAll();\n }\n if (!isMatchFound) {\n this.showNoResultsFound();\n } else {\n this.hideNoResultsFound();\n }\n }\n\n /**\n * Toggles all visible options based on the \"Select All\" checkbox.\n */\n onSelectAll(): void {\n if (this.selectAllCheckbox.nativeElement.checked) {\n this.selectAllActiveOptions();\n } else {\n this.unselectAllActiveOptions();\n }\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value));\n this.propagateChange(this._selectedItems().map((item) => item.value));\n }\n\n /**\n * Handles keyboard interaction on option items.\n * Supports arrow keys, tab, escape, and enter.\n */\n onKeydownOption(evt: EclMultiselectOptionKeydownEvent): void {\n switch (evt.keyboardEvent.key) {\n case KeyCode.ARROW_DOWN: {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onArrowUpOption(evt.keyboardEvent, evt.multiselectOption);\n break;\n }\n case KeyCode.ESCAPE: {\n this.hideMultiselectDropdown();\n break;\n }\n case KeyCode.ENTER: {\n (evt.keyboardEvent.target as HTMLInputElement).click();\n break;\n }\n case KeyCode.TAB: {\n if (!evt.keyboardEvent.shiftKey) {\n this.onArrowDownAndTabOption(evt.keyboardEvent, evt.multiselectOption);\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Triggered when a single option is clicked/selected.\n * Updates selected items, emits changes.\n */\n onOptionSelected(evt: EclMultiselectOptionClickEvent): void {\n if (this.selectAllCheckbox && this.selectAllCheckbox.nativeElement.checked) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n const currOption = evt.multiselectOption;\n if (currOption.isChecked) {\n this._selectedItems.update((items) => [...items, currOption]);\n } else {\n this._selectedItems.update((items) => items.filter((item) => item !== currOption));\n }\n this.propagateChange(this._selectedItems().map((item) => item.value));\n this.propagateTouched();\n this.eclChange.emit(this._selectedItems().map((item) => item.value));\n }\n\n private selectAllActiveOptions(): void {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n this.getActiveOptions().forEach((item) => {\n if (!item.isChecked) {\n item.isChecked = true;\n newItems.push(item);\n }\n });\n this._selectedItems.set(newItems);\n }\n\n private unselectAllActiveOptions(): void {\n if (this.selectAllCheckbox) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n this.getAvailableOptions().forEach((item) => {\n item.isChecked = false;\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {\n /* empty */\n };\n\n private propagateTouched = (): void => {\n /* empty */\n };\n\n private showMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = true;\n }\n\n private hideMultiselectDropdown(): void {\n this.isShowMultiselectDropdown = false;\n }\n\n private disableSelectAll(): void {\n this.isSelectAllDisabled = true;\n }\n\n private enableSelectAll(): void {\n this.isSelectAllDisabled = null;\n }\n\n private showNoResultsFound(): void {\n this.isShowNoResultsFound = true;\n }\n\n private hideNoResultsFound(): void {\n this.isShowNoResultsFound = false;\n }\n\n private resetComponent(): void {\n this.multiOptionComponents.forEach((item) => {\n item.isChecked = false;\n });\n if (this.selectAllCheckbox) {\n this.renderer.setProperty(this.selectAllCheckbox.nativeElement, 'checked', false);\n }\n this._selectedItems.set([]);\n }\n\n private writeValues(values: Array<string>): void {\n if (values) {\n const newItems: EclMultiselectOption[] = [...this._selectedItems()];\n if (this.multiOptionComponents && this.multiOptionComponents.length > 0) {\n this.multiOptionComponents\n .filter((item) => values.includes(item.value) && !item.disabled)\n .forEach((el) => {\n el.isChecked = true;\n newItems.push(el);\n });\n }\n this._selectedItems.set(newItems);\n }\n }\n\n private toggleDropdown(): void {\n this.isShowMultiselectDropdown = !this.isShowMultiselectDropdown;\n }\n\n private onArrowDownAndTabOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n const currentOptions = this.getActiveOptions();\n if (index !== currentOptions.length - 1) {\n const nextSiblingCheckbox = currentOptions[index + 1];\n nextSiblingCheckbox.onFocus();\n } else if (this.closeBtn) {\n this.renderer.selectRootElement(this.closeBtn.nativeElement, true).focus();\n }\n }\n\n private onArrowUpOption(evt: KeyboardEvent, option: EclMultiselectOption): void {\n (evt as KeyboardEvent).preventDefault();\n const index = this.getOptionIndexByIdFromActiveOptions(option.id);\n if (index !== 0) {\n const prevSiblingCheckbox = this.getActiveOptions()[index - 1];\n prevSiblingCheckbox.onFocus();\n } else if (!this.hasSelectAll || this.selectAllCheckbox.nativeElement.disabled) {\n if (this.hasSearchBox) {\n this.renderer.selectRootElement(this.searchInput.nativeElement, true).focus();\n } else {\n this.onArrowUpSearch(evt);\n }\n } else {\n this.renderer.selectRootElement(this.selectAllCheckbox.nativeElement, true).focus();\n }\n }\n\n private getActiveOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents ? this.multiOptionComponents.filter((item) => item.isActive) : [];\n }\n\n private getAvailableOptions(): EclMultiselectOptionComponent[] {\n return this.multiOptionComponents ? this.multiOptionComponents.filter((item) => !item.disabled) : [];\n }\n\n private getOptionIndexByIdFromActiveOptions(id: string): number {\n return this.getActiveOptions().findIndex((option) => option.id === id);\n }\n\n private getSelectAllId(): string {\n return crypto.randomUUID();\n }\n\n private getDropdownId(): string {\n return this.id !== '' ? `${this.id}-dropdown` : crypto.randomUUID();\n }\n\n private getToggleId(): string {\n return this.id !== '' ? `${this.id}-toggle` : crypto.randomUUID();\n }\n\n private modifyParentLabelForAttribute(): void {\n const form = this.renderer.parentNode(this.elRef.nativeElement);\n const label = form?.querySelector('.ecl-form-label');\n if (label) {\n this.renderer.setAttribute(label, 'for', this.toggleId);\n }\n }\n}\n","<div eclMultiselectInput #eclMultiselectInput [inputPlaceholder]=\"mainInputPlaceholder\" [selectedItems]=\"selectedItems()\"\n (mainInputClick)=\"onClickMainInput($event)\" (mainInputKeydown)=\"onKeydownMainInput($event)\" [isDisabled]=\"disabled\"\n [ariaDescribedby]=\"ariaDescribedby\" [toggleLabel]=\"toggleLabel\" [ariaControls]=\"dropdownId\" [isInvalid]=\"isInvalid\"\n [isDropdownExpanded]=\"isShowMultiselectDropdown\" [eclSize]=\"eclSize\" [toggleId]=\"toggleId\" [counterLabel]=\"counterLabel\"></div>\n<div\n [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--{{eclSize}}\"\n [id]=\"dropdownId\">\n @if(hasSearchBox) {\n <input class=\"ecl-text-input\" type=\"search\" #searchInput [placeholder]=\"searchFieldPlaceholder()\"\n (input)=\"onSearch($event.target)\" (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\" (keydown.arrowdown)=\"onArrowDownSearch($event)\" />\n }\n @if(hasSelectAll) {\n <div eclCheckbox [isDisabled]=\"isSelectAllDisabled\" class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput #selectAllCheckbox [id]=\"selectAllId\" type=\"checkbox\" [attr.disabled]=\"isSelectAllDisabled\"\n (click)=\"onSelectAll()\" (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\" (keydown.enter)=\"onEnterSelectAll($event)\" />\n <label [for]=\"selectAllId\" eclCheckboxLabel> {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{ optionsCount }})\n </label>\n </div>\n }\n <div class=\"ecl-select__multiple-options\" aria-live=\"polite\">\n @for (item of multiOptionDirectives; track item.label()) {\n @if (item.isOptGroup()) {\n <fieldset eclMultiselectOptgroup [label]=\"item.label()\">\n @for (elem of item.eclOptionItems; track elem.label()) {\n <div\n eclMultiselectOption\n [value]=\"elem.value()\"\n [label]=\"elem.label()\"\n [disabled]=\"elem.disabled\"\n [isChecked]=\"elem.selected\"\n [class]=\"elem.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n </fieldset>\n } @else if (!item.isOptGroup()) {\n <div\n eclMultiselectOption\n [value]=\"item.value()\"\n [label]=\"item.label()\"\n [disabled]=\"item.disabled\"\n [isChecked]=\"item.selected\"\n [class]=\"item.class\"\n (optionClick)=\"onOptionSelected($event)\"\n (optionKeydown)=\"onKeydownOption($event)\"></div>\n }\n }\n\n\n @if (isShowNoResultsFound) {\n <div class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n }\n\n </div>\n @if (isShowToolbar()) {\n <div class=\"ecl-select-multiple-toolbar\">\n <button\n eclButton\n variant=\"primary\"\n #closeBtn\n type=\"button\"\n (keydown.arrowup)=\"onArrowUpClose($event)\"\n (keydown.arrowDown)=\"onArrowDownClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">\n {{ 'ecl.common.APPLY' | translate }}\n </button>\n <button\n eclButton\n variant=\"tertiary\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpClear($event)\"\n (keydown.arrowDown)=\"onArrowDownClear($event)\"\n (keydown.tab)=\"onTabClear($event)\"\n (keydown.enter)=\"onEnterClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n </div>\n }\n</div>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentChildren, Directive, ElementRef, HostBinding, Input, QueryList, forwardRef, inject, input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to decorate <option> and <optgroup> elements within a multiselect.\n * Adds support for value, label, disabled, selected states and styling.\n */\n@Directive({\n selector: 'optgroup[eclMultiselectOptgroup], option[eclMultiselectOption]',\n})\nexport class EclMultiselectOptionDirective extends ECLBaseDirective {\n\n /**\n * Nested option directives (used for optgroups).\n */\n @ContentChildren(forwardRef(() => EclMultiselectOptionDirective)) eclOptionItems: QueryList<EclMultiselectOptionDirective>;\n\n /**\n * Value assigned to the option.\n */\n readonly value = input<string>(undefined);\n\n /**\n * Label displayed for the option.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Emits whenever the option's state changes (used internally).\n */\n changes = new Subject();\n\n /**\n * Indicates that the option is disabled.\n */\n @Input()\n @HostBinding('attr.disabled')\n get disabled(): boolean {\n return this._disabled || null;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n /**\n * Indicates that the option is selected.\n */\n @Input()\n @HostBinding('attr.selected')\n get selected(): boolean {\n return this._selected || null;\n }\n set selected(value) {\n this._selected = coerceBooleanProperty(value);\n }\n private _selected = false;\n private elRef = inject(ElementRef);\n\n /**\n * Applies ECL checkbox styling class to the option.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ').trim();\n }\n\n /**\n * Returns true if this directive is applied to an <optgroup> element.\n */\n isOptGroup(): boolean {\n return this.elRef.nativeElement.nodeName === 'OPTGROUP';\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, ContentChildren, DoCheck, ElementRef, HostBinding, Injector, Input, IterableDiffer, IterableDiffers, OnDestroy, OnInit, PLATFORM_ID, QueryList, Renderer2, ViewContainerRef, ViewEncapsulation, afterNextRender, booleanAttribute, forwardRef, inject, output, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\n\n/**\n * Component representing a custom multiselect input using the ECL design system.\n *\n * Should be used on a native <select> element to enhance it with ECL multiselect behavior.\n * Replaces the original element with a custom dropdown rendered dynamically.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[eclMultiselect]',\n templateUrl: 'ecl-multiselect.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclMultiselectComponent),\n multi: true,\n },\n ],\n})\nexport class EclMultiselectComponent extends ECLBaseDirective implements DoCheck, OnInit, OnDestroy {\n injector = inject(Injector);\n\n /**\n * List of option directives projected into the component.\n */\n @ContentChildren(forwardRef(() => EclMultiselectOptionDirective)) eclOptionItems: QueryList<EclMultiselectOptionDirective>;\n\n /**\n * Defines the `aria-describedby` attribute for accessibility.\n */\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n /**\n * Sets the `id` attribute of the multiselect component.\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * Label used for the toggle button that expands or collapses the dropdown.\n */\n readonly toggleLabel = input<string | undefined>(undefined);\n\n /**\n * Marks the multiselect as invalid.\n */\n @Input({ transform: booleanAttribute })\n get isInvalid(): boolean | undefined {\n return this._isInvalid;\n }\n set isInvalid(value: boolean | undefined) {\n this._isInvalid = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.isInvalid = value;\n }\n }\n\n /**\n * Disables the multiselect component when set to true.\n */\n @Input()\n @HostBinding('attr.disabled')\n set disabled(value: BooleanInput) {\n if (this.multiselectComponent) {\n this.multiselectComponent.disabled = coerceBooleanProperty(value);\n }\n this._disabled = coerceBooleanProperty(value);\n }\n get disabled(): boolean | undefined {\n return this._disabled || undefined;\n }\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n /**\n * Emits an array of selected option values when the selection changes.\n */\n readonly eclChange = output<string[]>();\n\n /**\n * Enables the search box within the dropdown.\n */\n @Input({ transform: booleanAttribute })\n set hasSearchBox(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.hasSearchBox = coerceBooleanProperty(value);\n }\n this._hasSearchBox = coerceBooleanProperty(value);\n }\n\n /**\n * Displays the \"Select all\" option in the dropdown.\n */\n @Input({ transform: booleanAttribute })\n set hasSelectAll(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.hasSelectAll = coerceBooleanProperty(value);\n }\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n\n /**\n * When true, the Apply button in the dropdown acts as a submit button (type=\"submit\").\n */\n @Input({ transform: booleanAttribute })\n set isSubmitOnApply(value: string) {\n if (this.multiselectComponent) {\n this.multiselectComponent.isSubmitOnApply = coerceBooleanProperty(value);\n }\n this._isSubmitOnApply = coerceBooleanProperty(value);\n }\n\n /**\n * Placeholder text to show in the multiselect input field when no options are selected.\n */\n @Input()\n set eclPlaceholder(value: string) {\n this._eclPlaceholder = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.mainInputPlaceholder = value;\n }\n }\n get eclPlaceholder(): string {\n return this._eclPlaceholder;\n }\n\n /**\n * Multiselect size: 's' | 'm' | 'l'. Default is 'm'.\n */\n readonly eclSize = input('m');\n\n /**\n * Label for the selections counter, read by screen readers.\n * Accepts a translation key or plain text. Default: 'ecl.multiselect.SELECTED'.\n */\n @Input()\n set counterLabel(value: string) {\n this._counterLabel = value;\n if (this.multiselectComponent) {\n this.multiselectComponent.counterLabel = value;\n }\n }\n\n private readonly SELECT_CONTAINER_CLASS = 'ecl-select__container';\n private readonly SELECT_CONTAINER_HIDDEN_CLASS = 'ecl-select__container--hidden';\n private _disabled = false;\n private _hasSelectAll = true;\n private _hasSearchBox = true;\n private _isSubmitOnApply = false;\n private _counterLabel = 'ecl.multiselect.SELECTED';\n private _isInvalid = false;\n private _eclPlaceholder = 'Select item';\n private differ: IterableDiffer<EclMultiselectOptionDirective>;\n private multiselectComponent: EclMultiselectDropdownComponent;\n private hostEl: HTMLSelectElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private multiselectComponentHtml: HTMLDivElement;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private el = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private differs = inject(IterableDiffers);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.attachOptions();\n if (this.hostParentEl != null) {\n this.hideOriginalSelectComponent();\n this.renderer.insertBefore(this.hostParentEl, this.multiselectComponentHtml, this.hostWrapperEl);\n this.setAriaLabelledBy();\n }\n });\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclOptionItems);\n\n if (diff) {\n if (this.multiselectComponent) {\n this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();\n }\n }\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.multiselectComponentHtml = this.createMultiselectComponent();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private hideOriginalSelectComponent(): void {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.hostWrapperEl.appendChild(this.hostEl);\n this.renderer.addClass(this.hostWrapperEl, this.SELECT_CONTAINER_HIDDEN_CLASS);\n this.renderer.setAttribute(this.hostWrapperEl, 'tabindex', '-1');\n this.renderer.setAttribute(this.hostEl, 'tabindex', '-1');\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, this.SELECT_CONTAINER_CLASS);\n this.renderer.addClass(wrapperContainer, `${this.SELECT_CONTAINER_CLASS}--${this.eclSize()}`);\n return wrapperContainer;\n }\n\n private getHostElement(): HTMLSelectElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLSelectElement): HTMLElement {\n return hostEl.parentElement;\n }\n\n private createMultiselectComponent(): HTMLDivElement {\n const ngControl = this.injector.get(NgControl, undefined, { optional: true });\n const multiselect = this.viewContainerRef.createComponent(EclMultiselectDropdownComponent);\n this.multiselectComponent = multiselect.instance;\n this.multiselectComponent.eclChange.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclChange.emit(evt);\n });\n this.multiselectComponent.mainInputPlaceholder = this.eclPlaceholder;\n\n const ariaDescribedby = this.ariaDescribedby();\n if (ariaDescribedby !== undefined) {\n this.multiselectComponent.ariaDescribedby = ariaDescribedby;\n }\n const toggleLabel = this.toggleLabel();\n if (toggleLabel !== undefined) {\n this.multiselectComponent.toggleLabel = toggleLabel;\n }\n const id = this.id();\n if (id !== undefined) {\n this.multiselectComponent.id = id;\n }\n this.multiselectComponent.eclSize = this.eclSize();\n if (ngControl) {\n ngControl.valueAccessor = this.multiselectComponent;\n }\n multiselect.instance.disabled = this.disabled;\n multiselect.instance.isInvalid = this.isInvalid;\n multiselect.instance.hasSearchBox = this._hasSearchBox;\n multiselect.instance.hasSelectAll = this._hasSelectAll;\n multiselect.instance.isSubmitOnApply = this._isSubmitOnApply;\n multiselect.instance.counterLabel = this._counterLabel;\n return (multiselect.location as ElementRef<HTMLDivElement>).nativeElement;\n }\n\n private setAriaLabelledBy(): void {\n const hostSelect: HTMLElement = this.el.nativeElement;\n const formGroup = hostSelect.closest('.ecl-form-group') as HTMLElement | null;\n if (!formGroup) return;\n\n const label = formGroup.querySelector('.ecl-form-label') as HTMLElement | null;\n if (!label) return;\n\n if (!label.id) {\n const newLabelId = `ecl-select-label-${crypto.randomUUID()}`;\n this.renderer.setAttribute(label, 'id', newLabelId);\n }\n\n if (!hostSelect.id) {\n const newSelectId = `ecl-select-input-${crypto.randomUUID()}`;\n this.renderer.setAttribute(hostSelect, 'id', newSelectId);\n }\n\n const labelledBy = `${label.id} ${hostSelect.id}`.trim();\n this.renderer.setAttribute(hostSelect, 'aria-labelledby', labelledBy);\n }\n\n private attachOptions(): void {\n setTimeout(() => {\n this.multiselectComponent.multiOptionDirectives = this.eclOptionItems.toArray();\n });\n }\n}\n","<ng-content></ng-content>\n","import { BoldTextPipe } from './boldText.pipe';\nimport { EclMultiselectDropdownComponent } from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nimport { EclMultiselectInputComponent } from './ecl-multiselect-input/ecl-multiselect-input.component';\nimport { EclMultiselectOptgroupComponent } from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nimport { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';\nimport { EclMultiselectOptionComponent } from './ecl-multiselect-option/ecl-multiselect-option.component';\nimport { EclMultiselectComponent } from './ecl-multiselect.component';\n\nexport * from './ecl-multiselect.component';\nexport * from './ecl-multiselect-dropdown/ecl-multiselect-dropdown.component';\nexport * from './ecl-multiselect-input/ecl-multiselect-input.component';\nexport * from './ecl-multiselect-optgroup/ecl-multiselect-optgroup.component';\nexport * from './ecl-multiselect-option/ecl-multiselect-option.component';\nexport * from './ecl-multiselect-option.directive';\nexport * from './models/ecl-multiselect-option.model';\nexport * from './events/index';\nexport * from './boldText.pipe';\n\nexport const EUI_ECL_MULTISELECT = [\n EclMultiselectComponent,\n EclMultiselectOptionDirective,\n EclMultiselectOptionComponent,\n EclMultiselectInputComponent,\n EclMultiselectDropdownComponent,\n EclMultiselectOptgroupComponent,\n BoldTextPipe,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ContentChild, forwardRef, HostBinding,
|
|
2
|
+
import { input, ContentChild, forwardRef, HostBinding, Component, Directive, numberAttribute, booleanAttribute, ContentChildren } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { EclContentBlockComponent } from '@eui/ecl/components/ecl-content-block';
|
|
5
5
|
|
|
@@ -16,14 +16,16 @@ class EclNavigationListItemComponent extends ECLBaseDirective {
|
|
|
16
16
|
/**
|
|
17
17
|
* Different variants, that add styling for different type of displaing the picture, used in the list item.
|
|
18
18
|
*/
|
|
19
|
-
this.variant = ''
|
|
19
|
+
this.variant = input('', /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
20
21
|
this.hasBorder = true;
|
|
21
22
|
}
|
|
22
23
|
get cssClasses() {
|
|
24
|
+
const variant = this.variant();
|
|
23
25
|
return [
|
|
24
26
|
super.getCssClasses('ecl-navigation-list__item'),
|
|
25
27
|
this.hasBorder ? '' : 'ecl-navigation-list__item--no-border',
|
|
26
|
-
|
|
28
|
+
variant !== '' ? `ecl-navigation-list__item--${variant}` : '',
|
|
27
29
|
].join(' ').trim();
|
|
28
30
|
}
|
|
29
31
|
ngAfterContentInit() {
|
|
@@ -33,7 +35,7 @@ class EclNavigationListItemComponent extends ECLBaseDirective {
|
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNavigationListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclNavigationListItemComponent, isStandalone: true, selector: "ecl-navigation-list-item", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "this.role", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclContentBlock", first: true, predicate: i0.forwardRef(() => EclContentBlockComponent), descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
37
39
|
}
|
|
38
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNavigationListItemComponent, decorators: [{
|
|
39
41
|
type: Component,
|
|
@@ -41,9 +43,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
41
43
|
}], propDecorators: { role: [{
|
|
42
44
|
type: HostBinding,
|
|
43
45
|
args: ['attr.role']
|
|
44
|
-
}], variant: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], cssClasses: [{
|
|
46
|
+
}], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], cssClasses: [{
|
|
47
47
|
type: HostBinding,
|
|
48
48
|
args: ['class']
|
|
49
49
|
}], eclContentBlock: [{
|
|
@@ -100,25 +100,25 @@ class EclNavigationListComponent extends ECLBaseDirective {
|
|
|
100
100
|
/**
|
|
101
101
|
* Property that describes how many columns the navigation list has. Default value is 2.
|
|
102
102
|
*/
|
|
103
|
-
this.columns = 2;
|
|
103
|
+
this.columns = input(2, { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
104
104
|
/**
|
|
105
105
|
* Property that describes if each item will have a border. Default is 'true'.
|
|
106
106
|
*/
|
|
107
|
-
this.hasBorders = true;
|
|
107
|
+
this.hasBorders = input(true, { ...(ngDevMode ? { debugName: "hasBorders" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
108
108
|
}
|
|
109
109
|
get cssClasses() {
|
|
110
|
-
return [super.getCssClasses('ecl-navigation-list'), `ecl-navigation-list--col-${this.columns}`].join(' ').trim();
|
|
110
|
+
return [super.getCssClasses('ecl-navigation-list'), `ecl-navigation-list--col-${this.columns()}`].join(' ').trim();
|
|
111
111
|
}
|
|
112
112
|
ngAfterContentInit() {
|
|
113
113
|
// Propagate 'hasBorders' property to navigation list items.
|
|
114
114
|
setTimeout(() => {
|
|
115
|
-
if (!this.hasBorders) {
|
|
115
|
+
if (!this.hasBorders()) {
|
|
116
116
|
this.listItems.forEach(item => item.hasBorder = false);
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNavigationListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclNavigationListComponent, isStandalone: true, selector: "ecl-navigation-list", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, hasBorders: { classPropertyName: "hasBorders", publicName: "hasBorders", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "listItems", predicate: i0.forwardRef(() => EclNavigationListItemComponent) }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
122
122
|
}
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNavigationListComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
@@ -126,13 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
126
126
|
}], propDecorators: { cssClasses: [{
|
|
127
127
|
type: HostBinding,
|
|
128
128
|
args: ['class']
|
|
129
|
-
}], columns: [{
|
|
130
|
-
type: Input,
|
|
131
|
-
args: [{ transform: numberAttribute }]
|
|
132
|
-
}], hasBorders: [{
|
|
133
|
-
type: Input,
|
|
134
|
-
args: [{ transform: booleanAttribute }]
|
|
135
|
-
}], listItems: [{
|
|
129
|
+
}], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], hasBorders: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBorders", required: false }] }], listItems: [{
|
|
136
130
|
type: ContentChildren,
|
|
137
131
|
args: [forwardRef(() => EclNavigationListItemComponent)]
|
|
138
132
|
}] } });
|