@eui/ecl 17.0.0-next.7 → 17.0.0-next.8
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/assets/i18n-ecl/bg.json +1 -0
- package/assets/i18n-ecl/cs.json +1 -0
- package/assets/i18n-ecl/da.json +1 -0
- package/assets/i18n-ecl/de.json +1 -0
- package/assets/i18n-ecl/el.json +1 -0
- package/assets/i18n-ecl/en.json +1 -0
- package/assets/i18n-ecl/es.json +1 -0
- package/assets/i18n-ecl/et.json +1 -0
- package/assets/i18n-ecl/fi.json +1 -0
- package/assets/i18n-ecl/fr.json +1 -0
- package/assets/i18n-ecl/ga.json +1 -0
- package/assets/i18n-ecl/hr.json +1 -0
- package/assets/i18n-ecl/hu.json +1 -0
- package/assets/i18n-ecl/it.json +1 -0
- package/assets/i18n-ecl/lt.json +1 -0
- package/assets/i18n-ecl/lv.json +1 -0
- package/assets/i18n-ecl/mt.json +1 -0
- package/assets/i18n-ecl/nl.json +1 -0
- package/assets/i18n-ecl/pl.json +1 -0
- package/assets/i18n-ecl/pt.json +1 -0
- package/assets/i18n-ecl/ro.json +1 -0
- package/assets/i18n-ecl/sk.json +1 -0
- package/assets/i18n-ecl/sl.json +1 -0
- package/assets/i18n-ecl/sv.json +1 -0
- package/esm2022/lib/components/ecl-accordion/ecl-accordion-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-accordion/ecl-accordion.component.mjs +3 -3
- package/esm2022/lib/components/ecl-accordion/ecl-accordion.module.mjs +4 -4
- package/esm2022/lib/components/ecl-app/deprecated/common/ecl-app.component.mjs +6 -6
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.component.mjs +6 -6
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-core/ecl-app-core.module.mjs +4 -4
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.component.mjs +6 -6
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-harmonised/ecl-app-harmonised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.component.mjs +6 -6
- package/esm2022/lib/components/ecl-app/deprecated/ecl-app-standardised/ecl-app-standardised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-app/ecl-app.component.mjs +5 -5
- package/esm2022/lib/components/ecl-app/ecl-app.module.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-credit.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-cta-link.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.component.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-hero-banner/ecl-hero-banner.module.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-credit.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-cta-link.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.component.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/deprecated/ecl-page-banner/ecl-page-banner.module.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/ecl-banner-credit.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-banner/ecl-banner-description.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-banner/ecl-banner-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-banner/ecl-banner-title.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-banner/ecl-banner.component.mjs +4 -4
- package/esm2022/lib/components/ecl-banner/ecl-banner.module.mjs +4 -4
- package/esm2022/lib/components/ecl-base.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-blockquote/ecl-blockquote-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.component.mjs +16 -6
- package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.module.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb-segment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/common/ecl-breadcrumb.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core-segment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.component.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-core/ecl-breadcrumb-core.module.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised-segment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.component.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-harmonised/ecl-breadcrumb-harmonised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised-segment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.component.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/deprecated/ecl-breadcrumb-standardised/ecl-breadcrumb-standardised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.mjs +5 -5
- package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.mjs +4 -4
- package/esm2022/lib/components/ecl-button/ecl-button-label.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-button/ecl-button.component.mjs +5 -5
- package/esm2022/lib/components/ecl-button/ecl-button.module.mjs +4 -4
- package/esm2022/lib/components/ecl-card/ecl-card-body.component.mjs +3 -3
- package/esm2022/lib/components/ecl-card/ecl-card-image/ecl-card-image.component.mjs +3 -3
- package/esm2022/lib/components/ecl-card/ecl-card-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-card/ecl-card.component.mjs +3 -3
- package/esm2022/lib/components/ecl-card/ecl-card.module.mjs +4 -4
- package/esm2022/lib/components/ecl-carousel/ecl-carousel-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +7 -14
- package/esm2022/lib/components/ecl-carousel/ecl-carousel.module.mjs +4 -4
- package/esm2022/lib/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.mjs +5 -5
- package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.mjs +4 -4
- package/esm2022/lib/components/ecl-category-filter/ecl-category-filter.module.mjs +4 -4
- package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-help.component.mjs +3 -3
- package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-input.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-label.component.mjs +3 -3
- package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.directive.mjs +5 -4
- package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.module.mjs +22 -8
- package/esm2022/lib/components/ecl-content-block/ecl-content-block-elements.directive.mjs +51 -51
- package/esm2022/lib/components/ecl-content-block/ecl-content-block.component.mjs +3 -3
- package/esm2022/lib/components/ecl-content-block/ecl-content-block.module.mjs +4 -4
- package/esm2022/lib/components/ecl-content-item/ecl-content-item-image.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-content-item/ecl-content-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-content-item/ecl-content-item.module.mjs +4 -4
- package/esm2022/lib/components/ecl-date-block/ecl-date-block.component.mjs +5 -5
- package/esm2022/lib/components/ecl-date-block/ecl-date-block.module.mjs +4 -4
- package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.module.mjs +4 -4
- package/esm2022/lib/components/ecl-expandable/ecl-expandable.component.mjs +3 -3
- package/esm2022/lib/components/ecl-expandable/ecl-expandable.module.mjs +4 -4
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.component.mjs +3 -3
- package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.module.mjs +4 -4
- package/esm2022/lib/components/ecl-featured/ecl-featured-item-description.component.mjs +3 -3
- package/esm2022/lib/components/ecl-featured/ecl-featured-item-link.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-featured/ecl-featured-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-featured/ecl-featured.component.mjs +3 -3
- package/esm2022/lib/components/ecl-featured/ecl-featured.module.mjs +4 -4
- package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.directive.mjs +4 -4
- package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.module.mjs +4 -4
- package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.mjs +5 -5
- package/esm2022/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.mjs +3 -3
- package/esm2022/lib/components/ecl-file/ecl-file-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.mjs +3 -3
- package/esm2022/lib/components/ecl-file/ecl-file.component.mjs +3 -3
- package/esm2022/lib/components/ecl-file/ecl-file.module.mjs +4 -4
- package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.module.mjs +4 -4
- package/esm2022/lib/components/ecl-form-group/ecl-form-group.component.mjs +3 -3
- package/esm2022/lib/components/ecl-form-group/ecl-form-group.module.mjs +4 -4
- package/esm2022/lib/components/ecl-form-label/ecl-form-label.component.mjs +3 -3
- package/esm2022/lib/components/ecl-form-label/ecl-form-label.module.mjs +4 -4
- package/esm2022/lib/components/ecl-gallery/ecl-gallery-footer.component.mjs +5 -5
- package/esm2022/lib/components/ecl-gallery/ecl-gallery-item.component.mjs +22 -7
- package/esm2022/lib/components/ecl-gallery/ecl-gallery-media.directive.mjs +8 -8
- package/esm2022/lib/components/ecl-gallery/ecl-gallery.component.mjs +91 -29
- package/esm2022/lib/components/ecl-gallery/ecl-gallery.module.mjs +4 -4
- package/esm2022/lib/components/ecl-help-block/ecl-help-block.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-help-block/ecl-help-block.module.mjs +4 -4
- package/esm2022/lib/components/ecl-icon/ecl-icon.component.mjs +5 -5
- package/esm2022/lib/components/ecl-icon/ecl-icon.module.mjs +4 -4
- package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +3 -3
- package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.module.mjs +4 -4
- package/esm2022/lib/components/ecl-label/ecl-label.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-label/ecl-label.module.mjs +4 -4
- package/esm2022/lib/components/ecl-language-list/ecl-language-list-item.component.mjs +5 -5
- package/esm2022/lib/components/ecl-language-list/ecl-language-list.component.mjs +5 -5
- package/esm2022/lib/components/ecl-language-list/ecl-language-list.module.mjs +4 -4
- package/esm2022/lib/components/ecl-link/ecl-link-label.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-link/ecl-link.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-link/ecl-link.module.mjs +4 -4
- package/esm2022/lib/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.mjs +3 -3
- package/esm2022/lib/components/ecl-list/ecl-description-list-definition-item.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-list/ecl-list.directive.mjs +20 -20
- package/esm2022/lib/components/ecl-list/ecl-list.module.mjs +4 -4
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-icon.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.mjs +3 -3
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.component.mjs +3 -3
- package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.module.mjs +4 -4
- package/esm2022/lib/components/ecl-media-container/ecl-media-container-iframe.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-media-container/ecl-media-container-item.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-media-container/ecl-media-container-picture.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-media-container/ecl-media-container.component.mjs +16 -7
- package/esm2022/lib/components/ecl-media-container/ecl-media-container.module.mjs +4 -4
- package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +5 -5
- package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu.component.mjs +9 -5
- package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.mjs +5 -5
- package/esm2022/lib/components/ecl-menu/ecl-menu.module.mjs +4 -4
- package/esm2022/lib/components/ecl-message/ecl-message-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-message/ecl-message.component.mjs +3 -3
- package/esm2022/lib/components/ecl-message/ecl-message.module.mjs +4 -4
- package/esm2022/lib/components/ecl-modal/ecl-modal-body.component.mjs +3 -3
- package/esm2022/lib/components/ecl-modal/ecl-modal-close.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-modal/ecl-modal-footer.component.mjs +4 -4
- package/esm2022/lib/components/ecl-modal/ecl-modal-header.component.mjs +3 -3
- package/esm2022/lib/components/ecl-modal/ecl-modal-trigger.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-modal/ecl-modal.component.mjs +4 -4
- package/esm2022/lib/components/ecl-modal/ecl-modal.module.mjs +4 -4
- package/esm2022/lib/components/ecl-multiselect/boldText.pipe.mjs +36 -0
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.mjs +449 -0
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +92 -0
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.mjs +33 -0
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.mjs +130 -0
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option.directive.mjs +6 -15
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +88 -824
- package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.module.mjs +49 -7
- package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-image/ecl-navigation-list-image.component.mjs +3 -3
- package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-picture.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.component.mjs +3 -3
- package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.module.mjs +4 -4
- package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +5 -5
- package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +5 -5
- package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.module.mjs +4 -4
- package/esm2022/lib/components/ecl-page-header/deprecated/common/ecl-page-header.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-description.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-meta.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-core/ecl-page-header-core.module.mjs +4 -4
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-description.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-meta.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-harmonised/ecl-page-header-harmonised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-description.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-meta.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/deprecated/ecl-page-header-standardised/ecl-page-header-standardised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-page-header/ecl-page-header-background.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-page-header/ecl-page-header-description/ecl-page-header-description.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/ecl-page-header-description.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-page-header/ecl-page-header-meta.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-page-header/ecl-page-header-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/ecl-page-header.component.mjs +3 -3
- package/esm2022/lib/components/ecl-page-header/ecl-page-header.module.mjs +4 -4
- package/esm2022/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-pagination/ecl-pagination.component.mjs +3 -3
- package/esm2022/lib/components/ecl-pagination/ecl-pagination.module.mjs +4 -4
- package/esm2022/lib/components/ecl-popover/ecl-popover-content.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-popover/ecl-popover-list.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-popover/ecl-popover-toggle.directive.mjs +5 -5
- package/esm2022/lib/components/ecl-popover/ecl-popover.component.mjs +3 -3
- package/esm2022/lib/components/ecl-popover/ecl-popover.module.mjs +4 -4
- package/esm2022/lib/components/ecl-radio/ecl-radio-help.component.mjs +3 -3
- package/esm2022/lib/components/ecl-radio/ecl-radio-input.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-radio/ecl-radio-label.component.mjs +3 -3
- package/esm2022/lib/components/ecl-radio/ecl-radio.directive.mjs +4 -4
- package/esm2022/lib/components/ecl-radio/ecl-radio.module.mjs +4 -4
- package/esm2022/lib/components/ecl-range/ecl-range-value.component.mjs +3 -3
- package/esm2022/lib/components/ecl-range/ecl-range.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-range/ecl-range.module.mjs +4 -4
- package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.component.mjs +5 -5
- package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.module.mjs +4 -4
- package/esm2022/lib/components/ecl-search-form/ecl-search-form.component.mjs +3 -3
- package/esm2022/lib/components/ecl-search-form/ecl-search-form.module.mjs +4 -4
- package/esm2022/lib/components/ecl-select/ecl-select-container.component.mjs +3 -3
- package/esm2022/lib/components/ecl-select/ecl-select.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-select/ecl-select.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-footer/deprecated/common/ecl-footer.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-core.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-column.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-link.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-list.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-section.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-core/ecl-footer-elements/ecl-footer-core-title.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-column.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-link.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-list.directive.mjs +15 -15
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-section.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-elements/ecl-footer-harmonised-title.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-harmonised/ecl-footer-harmonised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-column.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-link.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-list.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-section.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-elements/ecl-footer-standardised-title.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/deprecated/ecl-footer-standardised/ecl-footer-standardised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.mjs +5 -5
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.mjs +9 -9
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.mjs +15 -15
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.mjs +15 -15
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.mjs +5 -5
- package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/action/ecl-site-header-action.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/cta/ecl-site-header-cta.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-action.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-banner-top.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-language.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-login.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header-search.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/common/ecl-site-header.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/action/ecl-site-header-core-action.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/ecl-site-header-core.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/language/ecl-site-header-core-language.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login-details.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/login/ecl-site-header-core-login.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-core/search/ecl-site-header-core-search.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/action/ecl-site-header-harmonised-action.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/banner-top/ecl-site-header-harmonised-banner-top.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/ecl-site-header-harmonised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/language/ecl-site-header-harmonised-language.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login-details.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/login/ecl-site-header-harmonised-login.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-harmonised/search/ecl-site-header-harmonised-search.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/action/ecl-site-header-standardised-action.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/banner-top/ecl-site-header-standardised-banner-top.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/cta/ecl-site-header-standardised-cta.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/ecl-site-header-standardised.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/language/ecl-site-header-standardised-language.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login-details.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/login/ecl-site-header-standardised-login.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/deprecated/ecl-site-header-standardised/search/ecl-site-header-standardised-search.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/ecl-site-header.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/ecl-site-header.module.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language-popover.component.mjs +5 -5
- package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs +21 -5
- package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login-details.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/message/ecl-site-header-message.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/search/ecl-site-header-search.component.mjs +8 -4
- package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-link.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.mjs +4 -4
- package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-item.component.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-link.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.component.mjs +3 -3
- package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.module.mjs +4 -4
- package/esm2022/lib/components/ecl-spinner/ecl-spinner-label.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-spinner/ecl-spinner.component.mjs +3 -3
- package/esm2022/lib/components/ecl-spinner/ecl-spinner.module.mjs +4 -4
- package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.component.mjs +3 -3
- package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.module.mjs +4 -4
- package/esm2022/lib/components/ecl-table/ecl-table-sort-button.component.mjs +5 -5
- package/esm2022/lib/components/ecl-table/ecl-table.directive.mjs +41 -25
- package/esm2022/lib/components/ecl-table/ecl-table.module.mjs +11 -8
- package/esm2022/lib/components/ecl-tabs/ecl-tab-label.component.mjs +3 -3
- package/esm2022/lib/components/ecl-tabs/ecl-tab-more.component.mjs +5 -5
- package/esm2022/lib/components/ecl-tabs/ecl-tab.component.mjs +5 -5
- package/esm2022/lib/components/ecl-tabs/ecl-tabs.component.mjs +5 -5
- package/esm2022/lib/components/ecl-tabs/ecl-tabs.module.mjs +4 -4
- package/esm2022/lib/components/ecl-tag/ecl-tag.component.mjs +3 -3
- package/esm2022/lib/components/ecl-tag/ecl-tag.module.mjs +4 -4
- package/esm2022/lib/components/ecl-text-area/ecl-text-area.directive.mjs +6 -6
- package/esm2022/lib/components/ecl-text-area/ecl-text-area.module.mjs +4 -4
- package/esm2022/lib/components/ecl-text-input/ecl-text-input.directive.mjs +7 -6
- package/esm2022/lib/components/ecl-text-input/ecl-text-input.module.mjs +7 -8
- package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-label.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-title.directive.mjs +3 -3
- package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.mjs +3 -3
- package/esm2022/lib/components/ecl-timeline/ecl-timeline-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-timeline/ecl-timeline.component.mjs +4 -4
- package/esm2022/lib/components/ecl-timeline/ecl-timeline.module.mjs +4 -4
- package/esm2022/lib/model/ecl-multiselect-option.model.mjs +2 -0
- package/esm2022/lib/services/ecl-default-language.service.mjs +5 -5
- package/esm2022/lib/services/ecl-theme.service.mjs +5 -5
- package/esm2022/lib/shared/ecl-all.module.mjs +4 -4
- package/esm2022/lib/utils/constants/constants.mjs +11 -0
- package/esm2022/lib/utils/constants/index.mjs +2 -0
- package/esm2022/lib/utils/directives/ecl-click-outside/ecl-click-outside.directive.mjs +5 -5
- package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.directive.mjs +3 -3
- package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.module.mjs +4 -4
- package/esm2022/lib/utils/index.mjs +2 -1
- package/fesm2022/eui-ecl.mjs +2408 -2268
- package/fesm2022/eui-ecl.mjs.map +1 -1
- package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts +12 -2
- package/lib/components/ecl-blockquote/ecl-blockquote.component.d.ts.map +1 -1
- package/lib/components/ecl-carousel/ecl-carousel.component.d.ts +2 -3
- package/lib/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
- package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts +1 -1
- package/lib/components/ecl-checkbox/ecl-checkbox.directive.d.ts.map +1 -1
- package/lib/components/ecl-checkbox/ecl-checkbox.module.d.ts +7 -7
- package/lib/components/ecl-checkbox/ecl-checkbox.module.d.ts.map +1 -1
- package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts +11 -4
- package/lib/components/ecl-gallery/ecl-gallery-item.component.d.ts.map +1 -1
- package/lib/components/ecl-gallery/ecl-gallery.component.d.ts +39 -5
- package/lib/components/ecl-gallery/ecl-gallery.component.d.ts.map +1 -1
- package/lib/components/ecl-media-container/ecl-media-container.component.d.ts +7 -3
- package/lib/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
- package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +1 -0
- package/lib/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
- package/lib/components/ecl-multiselect/boldText.pipe.d.ts +11 -0
- package/lib/components/ecl-multiselect/boldText.pipe.d.ts.map +1 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts +94 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +26 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts +19 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts.map +1 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts +49 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -0
- package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts +3 -6
- package/lib/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts.map +1 -1
- package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +19 -113
- package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
- package/lib/components/ecl-multiselect/ecl-multiselect.module.d.ts +12 -3
- package/lib/components/ecl-multiselect/ecl-multiselect.module.d.ts.map +1 -1
- package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +4 -0
- package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
- package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts +1 -0
- package/lib/components/ecl-site-header/search/ecl-site-header-search.component.d.ts.map +1 -1
- package/lib/components/ecl-table/ecl-table.directive.d.ts +5 -0
- package/lib/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
- package/lib/components/ecl-table/ecl-table.module.d.ts +1 -1
- package/lib/components/ecl-table/ecl-table.module.d.ts.map +1 -1
- package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts +1 -1
- package/lib/components/ecl-text-input/ecl-text-input.directive.d.ts.map +1 -1
- package/lib/components/ecl-text-input/ecl-text-input.module.d.ts +3 -3
- package/lib/components/ecl-text-input/ecl-text-input.module.d.ts.map +1 -1
- package/lib/model/ecl-multiselect-option.model.d.ts +8 -0
- package/lib/model/ecl-multiselect-option.model.d.ts.map +1 -0
- package/lib/utils/constants/constants.d.ts +10 -0
- package/lib/utils/constants/constants.d.ts.map +1 -0
- package/lib/utils/constants/index.d.ts +2 -0
- package/lib/utils/constants/index.d.ts.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild, ViewChildren } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { coerceBoolean } from '@eui/base';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { v4 as uuidgen } from 'uuid';
|
|
7
|
+
import { KeyCode } from '../../../utils';
|
|
8
|
+
import { ECLBaseDirective } from '../../ecl-base.directive';
|
|
9
|
+
import { EclMultiselectOptionComponent } from '../ecl-multiselect-option/ecl-multiselect-option.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "../../ecl-checkbox/ecl-checkbox.directive";
|
|
13
|
+
import * as i3 from "../../ecl-checkbox/ecl-checkbox-label.component";
|
|
14
|
+
import * as i4 from "../../ecl-checkbox/ecl-checkbox-input.directive";
|
|
15
|
+
import * as i5 from "../../ecl-button/ecl-button.component";
|
|
16
|
+
import * as i6 from "../ecl-multiselect-option/ecl-multiselect-option.component";
|
|
17
|
+
import * as i7 from "../ecl-multiselect-input/ecl-multiselect-input.component";
|
|
18
|
+
import * as i8 from "../ecl-multiselect-optgroup/ecl-multiselect-optgroup.component";
|
|
19
|
+
import * as i9 from "@ngx-translate/core";
|
|
20
|
+
export class EclMultiselectDropdownComponent extends ECLBaseDirective {
|
|
21
|
+
get isInvalid() {
|
|
22
|
+
return this._isInvalid;
|
|
23
|
+
}
|
|
24
|
+
set isInvalid(value) {
|
|
25
|
+
this._isInvalid = value;
|
|
26
|
+
}
|
|
27
|
+
get cssClasses() {
|
|
28
|
+
return [
|
|
29
|
+
super.getCssClasses('ecl-select__multiple'),
|
|
30
|
+
].join(' ').trim();
|
|
31
|
+
}
|
|
32
|
+
get disabled() {
|
|
33
|
+
return this._disabled || undefined;
|
|
34
|
+
}
|
|
35
|
+
set disabled(value) {
|
|
36
|
+
this._disabled = value;
|
|
37
|
+
}
|
|
38
|
+
constructor(elRef, differs) {
|
|
39
|
+
super();
|
|
40
|
+
this.elRef = elRef;
|
|
41
|
+
this.differs = differs;
|
|
42
|
+
this.eclChange = new EventEmitter();
|
|
43
|
+
this.mainInputPlaceholder = 'Select an item';
|
|
44
|
+
this.searchFieldPlaceholder = 'Enter keyword';
|
|
45
|
+
this.eclSize = 'm';
|
|
46
|
+
this.selectAllId = '';
|
|
47
|
+
this.isShowNoResultsFound = false;
|
|
48
|
+
this.isShowMultiselectDropdown = false;
|
|
49
|
+
this.multiOptionDirectives = [];
|
|
50
|
+
this._disabled = false;
|
|
51
|
+
this._isInvalid = false;
|
|
52
|
+
this._selectedItems = [];
|
|
53
|
+
this.destroy$ = new Subject();
|
|
54
|
+
this.isWriteValueCalled = false;
|
|
55
|
+
this.values = [];
|
|
56
|
+
this.propagateChange = (_) => {
|
|
57
|
+
};
|
|
58
|
+
this.propagateTouched = () => {
|
|
59
|
+
};
|
|
60
|
+
this.differ = this.differs.find([]).create();
|
|
61
|
+
}
|
|
62
|
+
ngDoCheck() {
|
|
63
|
+
const diff = this.differ.diff(this.multiOptionComponents);
|
|
64
|
+
if (diff) {
|
|
65
|
+
if (this.isWriteValueCalled) {
|
|
66
|
+
this.resetComponent();
|
|
67
|
+
this.writeValues(this.values);
|
|
68
|
+
this.isWriteValueCalled = false;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.initSelectedOptions();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnInit() {
|
|
76
|
+
this.selectAllId = this.getSelectAllId();
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this.destroy$.next(true);
|
|
80
|
+
this.destroy$.unsubscribe();
|
|
81
|
+
}
|
|
82
|
+
writeValue(values) {
|
|
83
|
+
if (this.multiOptionComponents) {
|
|
84
|
+
this.resetComponent();
|
|
85
|
+
this.writeValues(values);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.values = values;
|
|
89
|
+
this.isWriteValueCalled = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
registerOnChange(fn) {
|
|
93
|
+
this.propagateChange = fn;
|
|
94
|
+
}
|
|
95
|
+
registerOnTouched(fn) {
|
|
96
|
+
this.propagateTouched = fn;
|
|
97
|
+
}
|
|
98
|
+
setDisabledState(isDisabled) {
|
|
99
|
+
this._disabled = isDisabled;
|
|
100
|
+
}
|
|
101
|
+
onEscapeKey(event) {
|
|
102
|
+
this.hideMultiselectDropdown();
|
|
103
|
+
}
|
|
104
|
+
onKeyUp(event) {
|
|
105
|
+
if (!this.elRef.nativeElement.contains(event.target)) {
|
|
106
|
+
this.hideMultiselectDropdown();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
get optionsCount() {
|
|
110
|
+
return this.getActiveOptions() ? this.getActiveOptions().length : 0;
|
|
111
|
+
}
|
|
112
|
+
get selectedItems() {
|
|
113
|
+
return this._selectedItems.map(item => item.label);
|
|
114
|
+
}
|
|
115
|
+
get isItemsSelected() {
|
|
116
|
+
return this._selectedItems.length > 0;
|
|
117
|
+
}
|
|
118
|
+
get isShowToolbar() {
|
|
119
|
+
return this._selectedItems.length > 0;
|
|
120
|
+
}
|
|
121
|
+
initSelectedOptions() {
|
|
122
|
+
this._selectedItems = [];
|
|
123
|
+
this.multiOptionComponents.filter(elem => elem.isChecked).forEach(item => {
|
|
124
|
+
this._selectedItems.push(item);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
onClickClearAll(evt) {
|
|
128
|
+
evt.stopPropagation();
|
|
129
|
+
this.unselectAllActiveOptions();
|
|
130
|
+
this.eclChange.emit([]);
|
|
131
|
+
this.propagateChange([]);
|
|
132
|
+
}
|
|
133
|
+
onClickClose(evt) {
|
|
134
|
+
evt.preventDefault();
|
|
135
|
+
this.hideMultiselectDropdown();
|
|
136
|
+
}
|
|
137
|
+
onArrowUpCloseClear(evt) {
|
|
138
|
+
evt.preventDefault();
|
|
139
|
+
const currentOptions = this.getActiveOptions();
|
|
140
|
+
currentOptions[currentOptions.length - 1].onFocus();
|
|
141
|
+
}
|
|
142
|
+
onArrowLeftClose(evt) {
|
|
143
|
+
evt.preventDefault();
|
|
144
|
+
this.clearAllBtn.nativeElement.focus();
|
|
145
|
+
}
|
|
146
|
+
onTabClose(evt) {
|
|
147
|
+
evt.preventDefault();
|
|
148
|
+
this.eclMultiselectInput.onFocus();
|
|
149
|
+
}
|
|
150
|
+
onArrowRightClear(evt) {
|
|
151
|
+
evt.preventDefault();
|
|
152
|
+
this.closeBtn.nativeElement.focus();
|
|
153
|
+
}
|
|
154
|
+
onEnterSearch(evt) {
|
|
155
|
+
evt.preventDefault();
|
|
156
|
+
}
|
|
157
|
+
onArrowDownSearch(evt) {
|
|
158
|
+
evt.preventDefault();
|
|
159
|
+
const currentOptions = this.getActiveOptions();
|
|
160
|
+
if (currentOptions.length > 1) {
|
|
161
|
+
this.selectAllCheckbox.nativeElement.focus();
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
currentOptions[0].onFocus();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
onArrowUpSearch(evt) {
|
|
168
|
+
evt.preventDefault();
|
|
169
|
+
this.hideMultiselectDropdown();
|
|
170
|
+
this.eclMultiselectInput.onFocus();
|
|
171
|
+
}
|
|
172
|
+
onKeydownMainInput(evt) {
|
|
173
|
+
evt.preventDefault();
|
|
174
|
+
this.showMultiselectDropdown();
|
|
175
|
+
setTimeout(() => this.searchInput.nativeElement.focus());
|
|
176
|
+
}
|
|
177
|
+
onClickMainInput(evt) {
|
|
178
|
+
evt.event.preventDefault();
|
|
179
|
+
this.toggleDropdown();
|
|
180
|
+
}
|
|
181
|
+
onArrowDownSelectAll(evt) {
|
|
182
|
+
evt.preventDefault();
|
|
183
|
+
const currentOptions = this.getActiveOptions();
|
|
184
|
+
if (currentOptions.length > 0) {
|
|
185
|
+
currentOptions[0].onFocus();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
onArrowUpSelectAll(evt) {
|
|
189
|
+
evt.preventDefault();
|
|
190
|
+
this.searchInput.nativeElement.focus();
|
|
191
|
+
}
|
|
192
|
+
onSearch(input) {
|
|
193
|
+
const keyword = input.value;
|
|
194
|
+
let isMatchFound = false;
|
|
195
|
+
if (keyword === '') {
|
|
196
|
+
this.enableSelectAll();
|
|
197
|
+
isMatchFound = true;
|
|
198
|
+
this.multiOptionComponents.forEach(item => {
|
|
199
|
+
item.highlightSearchText('');
|
|
200
|
+
item.show();
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
this.multiOptionComponents.forEach(item => {
|
|
205
|
+
if (item.label.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {
|
|
206
|
+
item.hide();
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
isMatchFound = true;
|
|
210
|
+
item.highlightSearchText(keyword.toLowerCase());
|
|
211
|
+
item.show();
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
this.disableSelectAll();
|
|
215
|
+
}
|
|
216
|
+
if (!isMatchFound) {
|
|
217
|
+
this.showNoResultsFound();
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
this.hideNoResultsFound();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
onSelectAll() {
|
|
224
|
+
if (this.selectAllCheckbox.nativeElement.checked) {
|
|
225
|
+
this.selectAllActiveOptions();
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
this.unselectAllActiveOptions();
|
|
229
|
+
}
|
|
230
|
+
this.propagateTouched();
|
|
231
|
+
this.eclChange.emit(this._selectedItems.map(item => item.value));
|
|
232
|
+
this.propagateChange(this._selectedItems.map(item => item.value));
|
|
233
|
+
}
|
|
234
|
+
onKeydownOption(evt) {
|
|
235
|
+
switch (evt.keyboardEvent.key) {
|
|
236
|
+
case KeyCode.ARROW_DOWN: {
|
|
237
|
+
this.onOptionArrowDownAndTab(evt.keyboardEvent, evt.multiselectOption);
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
case KeyCode.ARROW_UP: {
|
|
241
|
+
this.onOptionArrowUp(evt.keyboardEvent, evt.multiselectOption);
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
case KeyCode.ESCAPE: {
|
|
245
|
+
this.hideMultiselectDropdown();
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case KeyCode.ENTER: {
|
|
249
|
+
evt.keyboardEvent.target.click();
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
case KeyCode.TAB: {
|
|
253
|
+
this.onOptionArrowDownAndTab(evt.keyboardEvent, evt.multiselectOption);
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
default: {
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
onOptionSelected(evt) {
|
|
262
|
+
if (this.selectAllCheckbox.nativeElement.checked) {
|
|
263
|
+
this.selectAllCheckbox.nativeElement.checked = false;
|
|
264
|
+
}
|
|
265
|
+
const currOption = evt.multiselectOption;
|
|
266
|
+
if (currOption.isChecked) {
|
|
267
|
+
this._selectedItems.push(currOption);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
const index = this._selectedItems.indexOf(currOption);
|
|
271
|
+
this._selectedItems.splice(index, 1);
|
|
272
|
+
}
|
|
273
|
+
this.propagateChange(this._selectedItems.map(item => item.value));
|
|
274
|
+
this.propagateTouched();
|
|
275
|
+
this.eclChange.emit(this._selectedItems.map(item => item.value));
|
|
276
|
+
}
|
|
277
|
+
selectAllActiveOptions() {
|
|
278
|
+
this.getAllActiveOptions().forEach(item => {
|
|
279
|
+
if (!item.isChecked) {
|
|
280
|
+
item.isChecked = true;
|
|
281
|
+
this._selectedItems.push(item);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
unselectAllActiveOptions() {
|
|
286
|
+
this.selectAllCheckbox.nativeElement.checked = false;
|
|
287
|
+
this._selectedItems = [];
|
|
288
|
+
this.getAllActiveOptions().forEach(item => {
|
|
289
|
+
item.isChecked = false;
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
getAllActiveOptions() {
|
|
293
|
+
return this.multiOptionComponents.filter(elem => elem.isActive);
|
|
294
|
+
}
|
|
295
|
+
showMultiselectDropdown() {
|
|
296
|
+
this.isShowMultiselectDropdown = true;
|
|
297
|
+
}
|
|
298
|
+
hideMultiselectDropdown() {
|
|
299
|
+
this.isShowMultiselectDropdown = false;
|
|
300
|
+
}
|
|
301
|
+
disableSelectAll() {
|
|
302
|
+
this.selectAll.isDisabled = true;
|
|
303
|
+
}
|
|
304
|
+
enableSelectAll() {
|
|
305
|
+
this.selectAll.isDisabled = false;
|
|
306
|
+
}
|
|
307
|
+
showNoResultsFound() {
|
|
308
|
+
this.isShowNoResultsFound = true;
|
|
309
|
+
}
|
|
310
|
+
hideNoResultsFound() {
|
|
311
|
+
this.isShowNoResultsFound = false;
|
|
312
|
+
}
|
|
313
|
+
resetComponent() {
|
|
314
|
+
this.multiOptionComponents.forEach(item => {
|
|
315
|
+
item.isChecked = false;
|
|
316
|
+
});
|
|
317
|
+
if (this.selectAllCheckbox) {
|
|
318
|
+
this.selectAllCheckbox.nativeElement.checked = false;
|
|
319
|
+
}
|
|
320
|
+
this._selectedItems = [];
|
|
321
|
+
}
|
|
322
|
+
writeValues(values) {
|
|
323
|
+
if (values) {
|
|
324
|
+
const selectedElementsArray = [];
|
|
325
|
+
if (this.multiOptionComponents && this.multiOptionComponents.length > 0) {
|
|
326
|
+
this.multiOptionComponents.filter(item => values.includes(item.value) &&
|
|
327
|
+
!item.disabled)
|
|
328
|
+
.forEach(el => {
|
|
329
|
+
el.isChecked = true;
|
|
330
|
+
selectedElementsArray.push(el.label);
|
|
331
|
+
this._selectedItems.push(el);
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
toggleDropdown() {
|
|
337
|
+
this.isShowMultiselectDropdown = !this.isShowMultiselectDropdown;
|
|
338
|
+
}
|
|
339
|
+
onOptionArrowDownAndTab(evt, option) {
|
|
340
|
+
evt.preventDefault();
|
|
341
|
+
const index = this.getOptionIndexByIdFromActiveOptions(option.id);
|
|
342
|
+
const currentOptions = this.getActiveOptions();
|
|
343
|
+
if (index !== currentOptions.length - 1) {
|
|
344
|
+
const nextSiblingCheckbox = currentOptions[index + 1];
|
|
345
|
+
nextSiblingCheckbox.onFocus();
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
if (this.clearAllBtn) {
|
|
349
|
+
this.clearAllBtn.nativeElement.focus();
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
this.eclMultiselectInput.onFocus();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
onOptionArrowUp(evt, option) {
|
|
357
|
+
evt.preventDefault();
|
|
358
|
+
const index = this.getOptionIndexByIdFromActiveOptions(option.id);
|
|
359
|
+
if (index !== 0) {
|
|
360
|
+
const prevSiblingCheckbox = this.getActiveOptions()[index - 1];
|
|
361
|
+
prevSiblingCheckbox.onFocus();
|
|
362
|
+
}
|
|
363
|
+
else if (this.selectAllCheckbox.nativeElement.disabled) {
|
|
364
|
+
this.searchInput.nativeElement.focus();
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
this.selectAllCheckbox.nativeElement.focus();
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
getActiveOptions() {
|
|
371
|
+
return this.multiOptionComponents ? this.multiOptionComponents.filter(item => item.isActive) : [];
|
|
372
|
+
}
|
|
373
|
+
getOptionIndexByIdFromActiveOptions(id) {
|
|
374
|
+
return this.getActiveOptions().findIndex(option => option.id === id);
|
|
375
|
+
}
|
|
376
|
+
getSelectAllId() {
|
|
377
|
+
return uuidgen();
|
|
378
|
+
}
|
|
379
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMultiselectDropdownComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
380
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.7", type: EclMultiselectDropdownComponent, selector: "div[eclMultiselectDropdown]", inputs: { isInvalid: "isInvalid", mainInputPlaceholder: "mainInputPlaceholder", searchFieldPlaceholder: "searchFieldPlaceholder", eclSize: "eclSize", disabled: "disabled" }, outputs: { eclChange: "eclChange" }, host: { listeners: { "document:keyup.escape": "onEscapeKey($event)", "document:click": "onKeyUp($event)" }, properties: { "class": "this.cssClasses", "attr.disabled": "this.disabled" } }, providers: [
|
|
381
|
+
{
|
|
382
|
+
provide: NG_VALUE_ACCESSOR,
|
|
383
|
+
useExisting: forwardRef((() => EclMultiselectDropdownComponent)),
|
|
384
|
+
multi: true,
|
|
385
|
+
}
|
|
386
|
+
], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "eclMultiselectInput", first: true, predicate: ["eclMultiselectInput"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAll", first: true, predicate: ["selectAll"], descendants: true }, { propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true, read: ElementRef }, { propertyName: "clearAllBtn", first: true, predicate: ["clearAllBtn"], descendants: true, read: ElementRef }, { propertyName: "multiOptionComponents", predicate: EclMultiselectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"></div>\n<div [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--m\">\n <input class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\">\n <div eclCheckbox\n #selectAll\n class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\">\n <label [for]=\"selectAllId\"\n eclCheckboxLabel>\n {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{optionsCount}})\n </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup\n *ngIf=\"item.isOptGroup()\"\n [label]=\"item.label\">\n <div eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\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)\">\n </div>\n </div>\n <div eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\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)\">\n </div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\"\n class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\"\n class=\"ecl-select-multiple-toolbar\">\n <button eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">{{ 'ecl.common.CLOSE' | translate }}</button>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.EclCheckboxDirective, selector: "[eclCheckbox]", inputs: ["isDisabled", "isInvalid"] }, { kind: "component", type: i3.EclCheckboxLabelComponent, selector: "label[eclCheckboxLabel]", inputs: ["isInvalid", "isDisabled"] }, { kind: "directive", type: i4.EclCheckboxInputDirective, selector: "input[eclCheckboxInput]" }, { kind: "component", type: i5.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i6.EclMultiselectOptionComponent, selector: "div[eclMultiselectOption]", inputs: ["value", "label", "disabled", "isChecked"], outputs: ["optionClick", "optionKeydown"] }, { kind: "component", type: i7.EclMultiselectInputComponent, selector: "div[eclMultiselectInput]", inputs: ["isDisabled", "isInvalid", "inputPlaceholder", "selectedItems"], outputs: ["mainInputClick", "mainInputKeydown"] }, { kind: "component", type: i8.EclMultiselectOptgroupComponent, selector: "div[eclMultiselectOptgroup]", inputs: ["label"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
387
|
+
}
|
|
388
|
+
__decorate([
|
|
389
|
+
coerceBoolean
|
|
390
|
+
], EclMultiselectDropdownComponent.prototype, "isInvalid", null);
|
|
391
|
+
__decorate([
|
|
392
|
+
coerceBoolean
|
|
393
|
+
], EclMultiselectDropdownComponent.prototype, "disabled", null);
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EclMultiselectDropdownComponent, decorators: [{
|
|
395
|
+
type: Component,
|
|
396
|
+
args: [{ selector: 'div[eclMultiselectDropdown]', providers: [
|
|
397
|
+
{
|
|
398
|
+
provide: NG_VALUE_ACCESSOR,
|
|
399
|
+
useExisting: forwardRef((() => EclMultiselectDropdownComponent)),
|
|
400
|
+
multi: true,
|
|
401
|
+
}
|
|
402
|
+
], template: "<div eclMultiselectInput\n #eclMultiselectInput\n [inputPlaceholder]=\"mainInputPlaceholder\"\n [selectedItems]=\"selectedItems\"\n (mainInputClick)=\"onClickMainInput($event)\"\n (mainInputKeydown)=\"onKeydownMainInput($event)\"\n [isDisabled]=\"disabled\"\n [isInvalid]=\"isInvalid\"></div>\n<div [style.display]=\"isShowMultiselectDropdown ? 'block' : 'none'\"\n class=\"ecl-select__multiple-dropdown ecl-select__container ecl-select__container--m\">\n <input class=\"ecl-text-input\"\n type=\"search\"\n #searchInput\n [placeholder]=\"searchFieldPlaceholder\"\n (input)=\"onSearch($event.target)\"\n (keydown.enter)=\"onEnterSearch($event)\"\n (keydown.arrowup)=\"onArrowUpSearch($event)\"\n (keydown.arrowdown)=\"onArrowDownSearch($event)\">\n <div eclCheckbox\n #selectAll\n class=\"ecl-select__multiple-all\">\n <input eclCheckboxInput\n #selectAllCheckbox\n [id]=\"selectAllId\"\n type=\"checkbox\"\n (click)=\"onSelectAll()\"\n (keydown.arrowup)=\"onArrowUpSelectAll($event)\"\n (keydown.arrowdown)=\"onArrowDownSelectAll($event)\">\n <label [for]=\"selectAllId\"\n eclCheckboxLabel>\n {{ 'ecl.multiselect.SELECT-ALL' | translate }} ({{optionsCount}})\n </label>\n </div>\n <div class=\"ecl-select__multiple-options\">\n <ng-container *ngFor=\"let item of multiOptionDirectives\">\n <div eclMultiselectOptgroup\n *ngIf=\"item.isOptGroup()\"\n [label]=\"item.label\">\n <div eclMultiselectOption\n *ngFor=\"let elem of item.eclOptionItems\"\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)\">\n </div>\n </div>\n <div eclMultiselectOption\n *ngIf=\"!item.isOptGroup()\"\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)\">\n </div>\n </ng-container>\n <div *ngIf=\"isShowNoResultsFound\"\n class=\"ecl-select__multiple-no-results\">\n <span>{{ 'ecl.multiselect.NO-RESULTS-FOUND' | translate }}</span>\n </div>\n </div>\n <div *ngIf=\"isShowToolbar\"\n class=\"ecl-select-multiple-toolbar\">\n <button eclButton\n variant=\"ghost\"\n #clearAllBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowright)=\"onArrowRightClear($event)\"\n (click)=\"onClickClearAll($event)\">\n {{ 'ecl.multiselect.CLEAR-ALL' | translate }}\n </button>\n <button eclButton\n variant=\"primary\"\n #closeBtn\n (keydown.arrowup)=\"onArrowUpCloseClear($event)\"\n (keydown.arrowleft)=\"onArrowLeftClose($event)\"\n (keydown.tab)=\"onTabClose($event)\"\n (click)=\"onClickClose($event)\">{{ 'ecl.common.CLOSE' | translate }}</button>\n </div>\n</div>" }]
|
|
403
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.IterableDiffers }], propDecorators: { searchInput: [{
|
|
404
|
+
type: ViewChild,
|
|
405
|
+
args: ['searchInput']
|
|
406
|
+
}], eclMultiselectInput: [{
|
|
407
|
+
type: ViewChild,
|
|
408
|
+
args: ['eclMultiselectInput']
|
|
409
|
+
}], selectAllCheckbox: [{
|
|
410
|
+
type: ViewChild,
|
|
411
|
+
args: ['selectAllCheckbox']
|
|
412
|
+
}], selectAll: [{
|
|
413
|
+
type: ViewChild,
|
|
414
|
+
args: ['selectAll']
|
|
415
|
+
}], closeBtn: [{
|
|
416
|
+
type: ViewChild,
|
|
417
|
+
args: ['closeBtn', { read: ElementRef }]
|
|
418
|
+
}], clearAllBtn: [{
|
|
419
|
+
type: ViewChild,
|
|
420
|
+
args: ['clearAllBtn', { read: ElementRef }]
|
|
421
|
+
}], multiOptionComponents: [{
|
|
422
|
+
type: ViewChildren,
|
|
423
|
+
args: [EclMultiselectOptionComponent]
|
|
424
|
+
}], eclChange: [{
|
|
425
|
+
type: Output
|
|
426
|
+
}], isInvalid: [{
|
|
427
|
+
type: Input
|
|
428
|
+
}], cssClasses: [{
|
|
429
|
+
type: HostBinding,
|
|
430
|
+
args: ['class']
|
|
431
|
+
}], mainInputPlaceholder: [{
|
|
432
|
+
type: Input
|
|
433
|
+
}], searchFieldPlaceholder: [{
|
|
434
|
+
type: Input
|
|
435
|
+
}], eclSize: [{
|
|
436
|
+
type: Input
|
|
437
|
+
}], disabled: [{
|
|
438
|
+
type: Input
|
|
439
|
+
}, {
|
|
440
|
+
type: HostBinding,
|
|
441
|
+
args: ['attr.disabled']
|
|
442
|
+
}], onEscapeKey: [{
|
|
443
|
+
type: HostListener,
|
|
444
|
+
args: ['document:keyup.escape', ['$event']]
|
|
445
|
+
}], onKeyUp: [{
|
|
446
|
+
type: HostListener,
|
|
447
|
+
args: ['document:click', ['$event']]
|
|
448
|
+
}] } });
|
|
449
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWRyb3Bkb3duL2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi9lY2wtbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQVcsVUFBVSxFQUM5QixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUMsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzVELE9BQU8sRUFFSCw2QkFBNkIsRUFFaEMsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFjcEUsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGdCQUFnQjtJQVlsRCxJQUNYLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNE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YUFBYTtnQkFDVSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNBLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ04sU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUN1QixRQUFRO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0ssV0FBVztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNELHFCQUFxQjtzQkFBakUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBQ2pDLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0gsU0FBUztzQkFERyxLQUFLO2dCQVNqQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFNWCxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRixRQUFRO3NCQURJLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsZUFBZTtnQkEyRXBELFdBQVc7c0JBRFYsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakQsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LCBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsIE9uRGVzdHJveSwgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkZ2VuIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBLZXlDb2RlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbXVsdGlzZWxlY3Qtb3B0aW9uLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsQ2hlY2tib3hEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtY2hlY2tib3gnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RJbnB1dENvbXBvbmVudCwgRWNsTXVsdGlzZWxlY3RNYWluSW5wdXRDbGlja0V2ZW50XG4gICAgfSBmcm9tICcuLi9lY2wtbXVsdGlzZWxlY3QtaW5wdXQvZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgRWNsTXVsdGlzZWxlY3RPcHRpb25DbGlja0V2ZW50LFxuICAgIEVjbE11bHRpc2VsZWN0T3B0aW9uQ29tcG9uZW50LFxuICAgIEVjbE11bHRpc2VsZWN0T3B0aW9uS2V5ZG93bkV2ZW50XG59IGZyb20gJy4uL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24vZWNsLW11bHRpc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGl2W2VjbE11bHRpc2VsZWN0RHJvcGRvd25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRWNsTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIERvQ2hlY2ssIE9uRGVzdHJveSB7XG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHNlYXJjaElucHV0OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2VjbE11bHRpc2VsZWN0SW5wdXQnKSBlY2xNdWx0aXNlbGVjdElucHV0OiBFY2xNdWx0aXNlbGVjdElucHV0Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbENoZWNrYm94Jykgc2VsZWN0QWxsQ2hlY2tib3g6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnc2VsZWN0QWxsJykgc2VsZWN0QWxsOiBFY2xDaGVja2JveERpcmVjdGl2ZTtcbiAgICBAVmlld0NoaWxkKCdjbG9zZUJ0bicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjbG9zZUJ0bjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdjbGVhckFsbEJ0bicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjbGVhckFsbEJ0bjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkcmVuKEVjbE11bHRpc2VsZWN0T3B0aW9uQ29tcG9uZW50KSBtdWx0aU9wdGlvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFY2xNdWx0aXNlbGVjdE9wdGlvbkNvbXBvbmVudD47XG4gICAgQE91dHB1dCgpIGVjbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KClcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cbiAgICBzZXQgaXNJbnZhbGlkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0X19tdWx0aXBsZScpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIG1haW5JbnB1dFBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhbiBpdGVtJztcbiAgICBASW5wdXQoKSBzZWFyY2hGaWVsZFBsYWNlaG9sZGVyID0gJ0VudGVyIGtleXdvcmQnO1xuICAgIEBJbnB1dCgpIGVjbFNpemUgPSAnbSc7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHNlbGVjdEFsbElkID0gJyc7XG4gICAgaXNTaG93Tm9SZXN1bHRzRm91bmQgPSBmYWxzZTtcbiAgICBpc1Nob3dNdWx0aXNlbGVjdERyb3Bkb3duID0gZmFsc2U7XG4gICAgbXVsdGlPcHRpb25EaXJlY3RpdmVzOiBFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZVtdID0gW107XG4gICAgZm9ybTogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtczogRWNsTXVsdGlzZWxlY3RPcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNdWx0aXNlbGVjdE9wdGlvbkNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc1dyaXRlVmFsdWVDYWxsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHZhbHVlcyA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cyk7XG5cbiAgICAgICAgaWYgKGRpZmYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWVzKHRoaXMudmFsdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzV3JpdGVWYWx1ZUNhbGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbElkID0gdGhpcy5nZXRTZWxlY3RBbGxJZCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZXM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZXModmFsdWVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICAgICAgdGhpcy5pc1dyaXRlVmFsdWVDYWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gICAgb25Fc2NhcGVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlTXVsdGlzZWxlY3REcm9wZG93bigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbktleVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZU11bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBvcHRpb25zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpID8gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCkubGVuZ3RoIDogMDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRJdGVtcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcChpdGVtID0+IGl0ZW0ubGFiZWwpO1xuICAgIH1cblxuICAgIGdldCBpc0l0ZW1zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2hvd1Rvb2xiYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgaW5pdFNlbGVjdGVkT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoZWxlbSA9PiBlbGVtLmlzQ2hlY2tlZCkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DbGlja0NsZWFyQWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KFtdKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoW10pO1xuICAgIH1cblxuICAgIG9uQ2xpY2tDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1VwQ2xvc2VDbGVhcihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMuZ2V0QWN0aXZlT3B0aW9ucygpO1xuICAgICAgICBjdXJyZW50T3B0aW9uc1tjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxXS5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd0xlZnRDbG9zZShldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvblRhYkNsb3NlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1JpZ2h0Q2xlYXIoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jbG9zZUJ0bi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25FbnRlclNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VhcmNoKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRPcHRpb25zWzBdLm9uRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dVcFNlYXJjaChldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmhpZGVNdWx0aXNlbGVjdERyb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuZWNsTXVsdGlzZWxlY3RJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duTWFpbklucHV0KGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2hvd011bHRpc2VsZWN0RHJvcGRvd24oKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgb25DbGlja01haW5JbnB1dChldnQ6IEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duU2VsZWN0QWxsKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uc1swXS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFycm93VXBTZWxlY3RBbGwoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goaW5wdXQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXl3b3JkID0gaW5wdXQudmFsdWU7XG4gICAgICAgIGxldCBpc01hdGNoRm91bmQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGtleXdvcmQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNlbGVjdEFsbCgpO1xuICAgICAgICAgICAgaXNNYXRjaEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5oaWdobGlnaHRTZWFyY2hUZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBpdGVtLnNob3coKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5d29yZC50b0xvd2VyQ2FzZSgpKSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaXNNYXRjaEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5oaWdobGlnaHRTZWFyY2hUZXh0KGtleXdvcmQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlU2VsZWN0QWxsKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc01hdGNoRm91bmQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05vUmVzdWx0c0ZvdW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb1Jlc3VsdHNGb3VuZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGxBY3RpdmVPcHRpb25zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVuc2VsZWN0QWxsQWN0aXZlT3B0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KHRoaXMuX3NlbGVjdGVkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSkpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpKTtcbiAgICB9XG5cbiAgICBvbktleWRvd25PcHRpb24oZXZ0OiBFY2xNdWx0aXNlbGVjdE9wdGlvbktleWRvd25FdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXlib2FyZEV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uT3B0aW9uQXJyb3dEb3duQW5kVGFiKGV2dC5rZXlib2FyZEV2ZW50LCBldnQubXVsdGlzZWxlY3RPcHRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX1VQOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkFycm93VXAoZXZ0LmtleWJvYXJkRXZlbnQsIGV2dC5tdWx0aXNlbGVjdE9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRVNDQVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlTXVsdGlzZWxlY3REcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgKGV2dC5rZXlib2FyZEV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGljaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLlRBQjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25PcHRpb25BcnJvd0Rvd25BbmRUYWIoZXZ0LmtleWJvYXJkRXZlbnQsIGV2dC5tdWx0aXNlbGVjdE9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk9wdGlvblNlbGVjdGVkKGV2dDogRWNsTXVsdGlzZWxlY3RPcHRpb25DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdEFsbENoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyT3B0aW9uID0gZXZ0Lm11bHRpc2VsZWN0T3B0aW9uO1xuICAgICAgICBpZiAoY3Vyck9wdGlvbi5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChjdXJyT3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGN1cnJPcHRpb24pO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3NlbGVjdGVkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSkpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5lY2xDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZEl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0QWxsQWN0aXZlT3B0aW9ucygpLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIWl0ZW0uaXNDaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0NoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnNlbGVjdEFsbEFjdGl2ZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRBbGxBY3RpdmVPcHRpb25zKCkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNDaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsQWN0aXZlT3B0aW9ucygpOiBFY2xNdWx0aXNlbGVjdE9wdGlvbkNvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmZpbHRlcihlbGVtID0+IGVsZW0uaXNBY3RpdmUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICAgIH07XG5cbiAgICBwcml2YXRlIHByb3BhZ2F0ZVRvdWNoZWQgPSAoKSA9PiB7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2hvd011bHRpc2VsZWN0RHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlTXVsdGlzZWxlY3REcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dNdWx0aXNlbGVjdERyb3Bkb3duID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbC5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVuYWJsZVNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGwuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd05vUmVzdWx0c0ZvdW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd05vUmVzdWx0c0ZvdW5kID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVOb1Jlc3VsdHNGb3VuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dOb1Jlc3VsdHNGb3VuZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgd3JpdGVWYWx1ZXModmFsdWVzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHNBcnJheSA9IFtdO1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzICYmIHRoaXMubXVsdGlPcHRpb25Db21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoaXRlbSA9PiB2YWx1ZXMuaW5jbHVkZXMoaXRlbS52YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWl0ZW0uZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmlzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzQXJyYXkucHVzaChlbC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93TXVsdGlzZWxlY3REcm9wZG93biA9ICF0aGlzLmlzU2hvd011bHRpc2VsZWN0RHJvcGRvd247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk9wdGlvbkFycm93RG93bkFuZFRhYihldnQ6IEtleWJvYXJkRXZlbnQsIG9wdGlvbjogRWNsTXVsdGlzZWxlY3RPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0T3B0aW9uSW5kZXhCeUlkRnJvbUFjdGl2ZU9wdGlvbnMob3B0aW9uLmlkKTtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSBjdXJyZW50T3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2libGluZ0NoZWNrYm94ID0gY3VycmVudE9wdGlvbnNbaW5kZXggKyAxXTtcbiAgICAgICAgICAgIG5leHRTaWJsaW5nQ2hlY2tib3gub25Gb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXJBbGxCdG4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lY2xNdWx0aXNlbGVjdElucHV0Lm9uRm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25PcHRpb25BcnJvd1VwKGV2dDogS2V5Ym9hcmRFdmVudCwgb3B0aW9uOiBFY2xNdWx0aXNlbGVjdE9wdGlvbik6IHZvaWQge1xuICAgICAgICAoZXZ0IGFzIEtleWJvYXJkRXZlbnQpLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRPcHRpb25JbmRleEJ5SWRGcm9tQWN0aXZlT3B0aW9ucyhvcHRpb24uaWQpO1xuICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZTaWJsaW5nQ2hlY2tib3ggPSB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKVtpbmRleCAtIDFdO1xuICAgICAgICAgICAgcHJldlNpYmxpbmdDaGVja2JveC5vbkZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RBbGxDaGVja2JveC5uYXRpdmVFbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsQ2hlY2tib3gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3RpdmVPcHRpb25zKCk6IEVjbE11bHRpc2VsZWN0T3B0aW9uQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aU9wdGlvbkNvbXBvbmVudHMgPyB0aGlzLm11bHRpT3B0aW9uQ29tcG9uZW50cy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlzQWN0aXZlKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uSW5kZXhCeUlkRnJvbUFjdGl2ZU9wdGlvbnMoaWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZU9wdGlvbnMoKS5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvbi5pZCA9PT0gaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0QWxsSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHV1aWRnZW4oKTtcbiAgICB9XG59XG4iLCI8ZGl2IGVjbE11bHRpc2VsZWN0SW5wdXRcbiAgICAgI2VjbE11bHRpc2VsZWN0SW5wdXRcbiAgICAgW2lucHV0UGxhY2Vob2xkZXJdPVwibWFpbklucHV0UGxhY2Vob2xkZXJcIlxuICAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAgKG1haW5JbnB1dENsaWNrKT1cIm9uQ2xpY2tNYWluSW5wdXQoJGV2ZW50KVwiXG4gICAgIChtYWluSW5wdXRLZXlkb3duKT1cIm9uS2V5ZG93bk1haW5JbnB1dCgkZXZlbnQpXCJcbiAgICAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICBbaXNJbnZhbGlkXT1cImlzSW52YWxpZFwiPjwvZGl2PlxuPGRpdiBbc3R5bGUuZGlzcGxheV09XCJpc1Nob3dNdWx0aXNlbGVjdERyb3Bkb3duID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtZHJvcGRvd24gZWNsLXNlbGVjdF9fY29udGFpbmVyIGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tbVwiPlxuICAgIDxpbnB1dCBjbGFzcz1cImVjbC10ZXh0LWlucHV0XCJcbiAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQudGFyZ2V0KVwiXG4gICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwU2VhcmNoKCRldmVudClcIlxuICAgICAgICAgICAoa2V5ZG93bi5hcnJvd2Rvd24pPVwib25BcnJvd0Rvd25TZWFyY2goJGV2ZW50KVwiPlxuICAgIDxkaXYgZWNsQ2hlY2tib3hcbiAgICAgICAgICNzZWxlY3RBbGxcbiAgICAgICAgIGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtYWxsXCI+XG4gICAgICAgIDxpbnB1dCBlY2xDaGVja2JveElucHV0XG4gICAgICAgICAgICAgICAjc2VsZWN0QWxsQ2hlY2tib3hcbiAgICAgICAgICAgICAgIFtpZF09XCJzZWxlY3RBbGxJZFwiXG4gICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJvbkFycm93VXBTZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd2Rvd24pPVwib25BcnJvd0Rvd25TZWxlY3RBbGwoJGV2ZW50KVwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJzZWxlY3RBbGxJZFwiXG4gICAgICAgICAgICAgICBlY2xDaGVja2JveExhYmVsPlxuICAgICAgICAgICAge3sgJ2VjbC5tdWx0aXNlbGVjdC5TRUxFQ1QtQUxMJyB8IHRyYW5zbGF0ZSB9fSAoe3tvcHRpb25zQ291bnR9fSlcbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9uc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG11bHRpT3B0aW9uRGlyZWN0aXZlc1wiPlxuICAgICAgICAgICAgPGRpdiBlY2xNdWx0aXNlbGVjdE9wdGdyb3VwXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pc09wdEdyb3VwKClcIlxuICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZWNsTXVsdGlzZWxlY3RPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGVtIG9mIGl0ZW0uZWNsT3B0aW9uSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImVsZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVsZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJlbGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJlbGVtLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgIChvcHRpb25DbGljayk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbktleWRvd24pPVwib25LZXlkb3duT3B0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBlY2xNdWx0aXNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5pc09wdEdyb3VwKClcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgIChvcHRpb25DbGljayk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbktleWRvd24pPVwib25LZXlkb3duT3B0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dOb1Jlc3VsdHNGb3VuZFwiXG4gICAgICAgICAgICAgY2xhc3M9XCJlY2wtc2VsZWN0X19tdWx0aXBsZS1uby1yZXN1bHRzXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnZWNsLm11bHRpc2VsZWN0Lk5PLVJFU1VMVFMtRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93VG9vbGJhclwiXG4gICAgICAgICBjbGFzcz1cImVjbC1zZWxlY3QtbXVsdGlwbGUtdG9vbGJhclwiPlxuICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgI2NsZWFyQWxsQnRuXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJvbkFycm93VXBDbG9zZUNsZWFyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93cmlnaHQpPVwib25BcnJvd1JpZ2h0Q2xlYXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tDbGVhckFsbCgkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyAnZWNsLm11bHRpc2VsZWN0LkNMRUFSLUFMTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gZWNsQnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICNjbG9zZUJ0blxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwib25BcnJvd1VwQ2xvc2VDbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwib25BcnJvd0xlZnRDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwib25UYWJDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0Nsb3NlKCRldmVudClcIj57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|