@ukic/web-components 3.20.0 → 3.22.0
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/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-3a796e7a.js → helpers-81cd6930.js} +3 -16
- package/dist/cjs/helpers-81cd6930.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +17 -10
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js +7 -3
- package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +2 -2
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +7 -7
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +174 -0
- package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +7 -3
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +13 -5
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
- package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
- package/dist/cjs/ic-divider.cjs.entry.js +17 -8
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +4 -4
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +5 -5
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +7 -7
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +218 -86
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +17 -12
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js +3 -3
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +7 -5
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-page-header.cjs.entry.js +8 -8
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-bar.cjs.entry.js +389 -0
- package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-pagination-item.cjs.entry.js +3 -3
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_3.cjs.entry.js +1412 -0
- package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-radio-option.cjs.entry.js +6 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +12 -12
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-side-navigation.cjs.entry.js +30 -15
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
- package/dist/cjs/ic-step.cjs.entry.js +14 -14
- package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +6 -6
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +8 -7
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +2 -2
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-d337cd8a.js +16 -16
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/ic-accordion/ic-accordion.css +6 -0
- package/dist/collection/components/ic-accordion/ic-accordion.js +15 -8
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-action-chip/ic-action-chip.css +15 -2
- package/dist/collection/components/ic-action-chip/ic-action-chip.js +5 -1
- package/dist/collection/components/ic-action-chip/ic-action-chip.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +7 -0
- package/dist/collection/components/ic-badge/ic-badge.css +6 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.css +8 -0
- package/dist/collection/components/ic-button/ic-button.css +7 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +728 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +512 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js +876 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +7 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.stories.js +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +7 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +3 -3
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +35 -0
- package/dist/collection/components/ic-chip/ic-chip.css +15 -3
- package/dist/collection/components/ic-chip/ic-chip.js +5 -1
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +33 -5
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.stories.js +32 -0
- package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
- package/dist/collection/components/ic-divider/ic-divider.js +16 -7
- package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +6 -0
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
- package/dist/collection/components/ic-hero/ic-hero.js +4 -4
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +6 -0
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +7 -0
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
- package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
- package/dist/collection/components/ic-input-label/ic-input-label.js +16 -8
- package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
- package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
- package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
- package/dist/collection/components/ic-link/ic-link.css +7 -0
- package/dist/collection/components/ic-link/ic-link.js +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
- package/dist/collection/components/ic-menu/ic-menu.css +12 -1
- package/dist/collection/components/ic-menu/ic-menu.js +184 -53
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +9 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +41 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +5 -3
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-page-header/ic-page-header.css +1 -2
- package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
- package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +104 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +895 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +215 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +6 -0
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +6 -0
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -11
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.css +9 -2
- package/dist/collection/components/ic-select/ic-select.js +414 -589
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.types.js +2 -0
- package/dist/collection/components/ic-select/ic-select.types.js.map +1 -0
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +26 -21
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -21
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +29 -14
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.js +13 -13
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.css +7 -0
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab/ic-tab.css +6 -0
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.js +5 -5
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +7 -6
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +6 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +8 -4
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +100 -0
- package/dist/collection/components/ic-typography/ic-typography.css +6 -0
- package/dist/collection/utils/helpers.js +2 -15
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +3 -16
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion.js +16 -9
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-action-chip.js +6 -2
- package/dist/components/ic-action-chip.js.map +1 -1
- package/dist/components/ic-back-to-top.js +1 -1
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.js +1 -1
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-button2.js +1 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-horizontal.d.ts +11 -0
- package/dist/components/ic-card-horizontal.js +214 -0
- package/dist/components/ic-card-horizontal.js.map +1 -0
- package/dist/components/ic-card-vertical.js +1 -1
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +2 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +5 -5
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +6 -2
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +14 -5
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-row.js +2 -2
- package/dist/components/ic-dialog.js +1 -1
- package/dist/components/ic-divider2.js +17 -8
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-empty-state.js +2 -2
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-hero.js +4 -4
- package/dist/components/ic-horizontal-scroll2.js +6 -6
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +4 -4
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-label2.js +13 -8
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +3 -3
- package/dist/components/ic-layout-grid-item.js +2 -2
- package/dist/components/ic-layout-grid.js +2 -2
- package/dist/components/ic-link2.js +2 -2
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +5 -5
- package/dist/components/ic-menu-group.js +1 -1
- package/dist/components/ic-menu2.js +213 -79
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +2 -2
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +6 -4
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +4 -4
- package/dist/components/ic-page-header.js +7 -7
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-bar.d.ts +11 -0
- package/dist/components/ic-pagination-bar.js +523 -0
- package/dist/components/ic-pagination-bar.js.map +1 -0
- package/dist/components/ic-pagination-item2.js +2 -2
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.js +1 -375
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/{esm/ic-pagination.entry.js → components/ic-pagination2.js} +86 -15
- package/dist/components/ic-pagination2.js.map +1 -0
- package/dist/components/ic-popover-menu.js +4 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +4 -4
- package/dist/components/ic-radio-option.js +5 -5
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +12 -12
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-select.js +1 -994
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-select2.js +804 -0
- package/dist/components/ic-select2.js.map +1 -0
- package/dist/components/ic-side-navigation.js +30 -15
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-step.js +13 -13
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +5 -5
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +1 -2
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.js +1 -1
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field.js +1 -528
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/{esm/ic-text-field.entry.js → components/ic-text-field2.js} +119 -16
- package/dist/components/ic-text-field2.js.map +1 -0
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +7 -6
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +3 -3
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +2 -2
- package/dist/components/ic-top-navigation.js +1 -1
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +1 -1
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-05fd2707.entry.js +2 -0
- package/dist/core/p-05fd2707.entry.js.map +1 -0
- package/dist/core/{p-ba4abeac.entry.js → p-09505807.entry.js} +2 -2
- package/dist/core/{p-8f45f956.entry.js → p-09caf7ed.entry.js} +2 -2
- package/dist/core/p-09caf7ed.entry.js.map +1 -0
- package/dist/core/{p-8b1567c9.entry.js → p-0b728f50.entry.js} +2 -2
- package/dist/core/p-0b728f50.entry.js.map +1 -0
- package/dist/core/p-0fb7f915.entry.js +2 -0
- package/dist/core/p-0fb7f915.entry.js.map +1 -0
- package/dist/core/p-1b81ec88.entry.js +2 -0
- package/dist/core/p-1b81ec88.entry.js.map +1 -0
- package/dist/core/{p-3582c7df.entry.js → p-2691cc80.entry.js} +2 -2
- package/dist/core/p-2691cc80.entry.js.map +1 -0
- package/dist/core/{p-fe0153ec.entry.js → p-2a124daf.entry.js} +2 -2
- package/dist/core/{p-f5fd4a76.entry.js → p-2b87c592.entry.js} +2 -2
- package/dist/core/p-2b87c592.entry.js.map +1 -0
- package/dist/core/{p-c7f8547d.entry.js → p-2bd80913.entry.js} +2 -2
- package/dist/core/p-2bd80913.entry.js.map +1 -0
- package/dist/core/{p-aed1c7e7.entry.js → p-347cc084.entry.js} +2 -2
- package/dist/core/p-393af2bc.entry.js +2 -0
- package/dist/core/p-393af2bc.entry.js.map +1 -0
- package/dist/core/{p-b5e39585.entry.js → p-3aed13ba.entry.js} +2 -2
- package/dist/core/{p-276a6c8f.entry.js → p-46fd555f.entry.js} +2 -2
- package/dist/core/p-48a628f0.entry.js +2 -0
- package/dist/core/{p-23dc27a8.entry.js.map → p-48a628f0.entry.js.map} +1 -1
- package/dist/core/p-4f56acff.entry.js +2 -0
- package/dist/core/p-4f56acff.entry.js.map +1 -0
- package/dist/core/{p-86989873.entry.js → p-506d428a.entry.js} +2 -2
- package/dist/core/p-506d428a.entry.js.map +1 -0
- package/dist/core/p-50dca790.entry.js +2 -0
- package/dist/core/p-50dca790.entry.js.map +1 -0
- package/dist/core/p-53ab3c0f.entry.js +2 -0
- package/dist/core/p-53ab3c0f.entry.js.map +1 -0
- package/dist/core/{p-889bb8db.entry.js → p-56de4f4b.entry.js} +2 -2
- package/dist/core/p-5900cb65.entry.js +2 -0
- package/dist/core/p-5900cb65.entry.js.map +1 -0
- package/dist/core/{p-608b4912.entry.js → p-5976de6e.entry.js} +2 -2
- package/dist/core/{p-cf056074.entry.js → p-61d79fc6.entry.js} +2 -2
- package/dist/core/{p-cf056074.entry.js.map → p-61d79fc6.entry.js.map} +1 -1
- package/dist/core/{p-45076d7e.entry.js → p-659d048d.entry.js} +2 -2
- package/dist/core/{p-1edf2689.entry.js → p-67de1290.entry.js} +2 -2
- package/dist/core/p-6b4ec95f.entry.js +3 -0
- package/dist/core/p-6b4ec95f.entry.js.map +1 -0
- package/dist/core/{p-f700b759.entry.js → p-73043f57.entry.js} +2 -2
- package/dist/core/{p-7b8e5926.entry.js → p-735d3096.entry.js} +2 -2
- package/dist/core/{p-0301d1c8.entry.js → p-7b538fd1.entry.js} +2 -2
- package/dist/core/{p-cdbbcef4.entry.js → p-80d85403.entry.js} +2 -2
- package/dist/core/p-80d85403.entry.js.map +1 -0
- package/dist/core/{p-09c31ac6.entry.js → p-83578f1d.entry.js} +2 -2
- package/dist/core/{p-09c31ac6.entry.js.map → p-83578f1d.entry.js.map} +1 -1
- package/dist/core/{p-b8c0c142.entry.js → p-880f7548.entry.js} +2 -2
- package/dist/core/p-880f7548.entry.js.map +1 -0
- package/dist/core/{p-0d711c6a.entry.js → p-8a833e82.entry.js} +2 -2
- package/dist/core/{p-c16e982c.entry.js → p-90678e67.entry.js} +2 -2
- package/dist/core/{p-93e1ba0a.entry.js → p-9502fb86.entry.js} +2 -2
- package/dist/core/{p-6740c915.entry.js → p-99433296.entry.js} +2 -2
- package/dist/core/p-99433296.entry.js.map +1 -0
- package/dist/core/{p-76e8df31.entry.js → p-9c2b2cb9.entry.js} +2 -2
- package/dist/core/{p-949d08d3.entry.js → p-9cb83a2e.entry.js} +2 -2
- package/dist/core/{p-d2d17d6d.entry.js → p-a08d6b46.entry.js} +2 -2
- package/dist/core/p-a08d6b46.entry.js.map +1 -0
- package/dist/core/p-a321feee.entry.js +2 -0
- package/dist/core/p-a321feee.entry.js.map +1 -0
- package/dist/core/{p-45c553db.entry.js → p-a780a34b.entry.js} +2 -2
- package/dist/core/{p-90814d32.entry.js → p-aad03a3c.entry.js} +2 -2
- package/dist/core/{p-ec14c783.entry.js → p-aaf4e367.entry.js} +2 -2
- package/dist/core/{p-8c00614c.entry.js → p-b52c44eb.entry.js} +2 -2
- package/dist/core/{p-0722d7b6.entry.js → p-b777f0a1.entry.js} +2 -2
- package/dist/core/p-b777f0a1.entry.js.map +1 -0
- package/dist/core/p-b77b1e1f.js +2 -0
- package/dist/core/p-b77b1e1f.js.map +1 -0
- package/dist/core/p-b997ad5e.entry.js +2 -0
- package/dist/core/p-b997ad5e.entry.js.map +1 -0
- package/dist/core/{p-a0af1b0a.entry.js → p-bb7652cd.entry.js} +2 -2
- package/dist/core/{p-1d8559f0.entry.js → p-c156e6e9.entry.js} +2 -2
- package/dist/core/{p-e1814e7e.entry.js → p-cad23b7d.entry.js} +2 -2
- package/dist/core/{p-6aa8d3ce.entry.js → p-cbca04bb.entry.js} +2 -2
- package/dist/core/p-cbca04bb.entry.js.map +1 -0
- package/dist/core/{p-e176881a.entry.js → p-cc64e5ef.entry.js} +2 -2
- package/dist/core/{p-d478d13e.entry.js → p-cfbacca1.entry.js} +2 -2
- package/dist/core/p-cfbacca1.entry.js.map +1 -0
- package/dist/core/{p-ebc47282.entry.js → p-daec7e69.entry.js} +2 -2
- package/dist/core/{p-5ac3adb9.entry.js → p-e7767c0d.entry.js} +2 -2
- package/dist/core/p-e7767c0d.entry.js.map +1 -0
- package/dist/core/p-e938eb31.entry.js +2 -0
- package/dist/core/p-e938eb31.entry.js.map +1 -0
- package/dist/core/{p-81f60443.entry.js → p-ea7a3d30.entry.js} +2 -2
- package/dist/core/p-ea7a3d30.entry.js.map +1 -0
- package/dist/core/{p-ad5aca6f.entry.js → p-ea890d3d.entry.js} +2 -2
- package/dist/core/{p-880afd4b.entry.js → p-ebd688b9.entry.js} +2 -2
- package/dist/core/p-ebd688b9.entry.js.map +1 -0
- package/dist/core/p-ef70ea50.entry.js +2 -0
- package/dist/core/p-ef70ea50.entry.js.map +1 -0
- package/dist/core/{p-1fc4b88f.entry.js → p-f64996f1.entry.js} +2 -2
- package/dist/core/p-f64996f1.entry.js.map +1 -0
- package/dist/core/{p-0f998905.entry.js → p-f661ba76.entry.js} +2 -2
- package/dist/core/p-f661ba76.entry.js.map +1 -0
- package/dist/core/{p-4e43b272.entry.js → p-f84ac9c6.entry.js} +2 -2
- package/dist/core/{p-df029b1b.entry.js → p-fb9376f0.entry.js} +2 -2
- package/dist/core/p-fb9376f0.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-0f85537f.js → helpers-66681c73.js} +4 -17
- package/dist/esm/helpers-66681c73.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +1 -1
- package/dist/esm/ic-accordion.entry.js +17 -10
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-action-chip.entry.js +7 -3
- package/dist/esm/ic-action-chip.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +2 -2
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +2 -2
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +7 -7
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +170 -0
- package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
- package/dist/esm/ic-card-vertical.entry.js +2 -2
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +3 -3
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +6 -6
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +7 -3
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +13 -5
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js +3 -3
- package/dist/esm/ic-dialog.entry.js +2 -2
- package/dist/esm/ic-divider.entry.js +17 -8
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +3 -3
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +4 -4
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +5 -5
- package/dist/esm/ic-horizontal-scroll.entry.js +7 -7
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +218 -86
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +17 -12
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid-item.entry.js +2 -2
- package/dist/esm/ic-layout-grid.entry.js +2 -2
- package/dist/esm/ic-link.entry.js +3 -3
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +2 -2
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +3 -3
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +7 -5
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +5 -5
- package/dist/esm/ic-page-header.entry.js +8 -8
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-bar.entry.js +385 -0
- package/dist/esm/ic-pagination-bar.entry.js.map +1 -0
- package/dist/esm/ic-pagination-item.entry.js +3 -3
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination_3.entry.js +1406 -0
- package/dist/esm/ic-pagination_3.entry.js.map +1 -0
- package/dist/esm/ic-popover-menu.entry.js +5 -5
- package/dist/esm/ic-radio-group.entry.js +5 -5
- package/dist/esm/ic-radio-option.entry.js +6 -6
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +12 -12
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-side-navigation.entry.js +30 -15
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +2 -2
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js +3 -3
- package/dist/esm/ic-step.entry.js +14 -14
- package/dist/esm/ic-stepper.entry.js +3 -3
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +6 -6
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +1 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +2 -2
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +8 -7
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +4 -4
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +3 -3
- package/dist/esm/ic-top-navigation.entry.js +2 -2
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +2 -2
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-a7a720e7.js +16 -16
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +89 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
- package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +4 -0
- package/dist/types/components/ic-divider/ic-divider.d.ts +2 -0
- package/dist/types/components/ic-input-label/ic-input-label.d.ts +4 -1
- package/dist/types/components/ic-menu/ic-menu.d.ts +11 -1
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +162 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +8 -0
- package/dist/types/components/ic-select/ic-select.d.ts +53 -80
- package/dist/types/components/ic-select/ic-select.types.d.ts +43 -0
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +3 -2
- package/dist/types/components.d.ts +357 -7
- package/dist/types/utils/helpers.d.ts +2 -4
- package/dist/types/utils/types.d.ts +1 -0
- package/hydrate/index.js +1504 -900
- package/hydrate/index.mjs +1504 -900
- package/package.json +2 -2
- package/vscode-data.json +248 -0
- package/dist/cjs/helpers-3a796e7a.js.map +0 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +0 -312
- package/dist/cjs/ic-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-select.cjs.entry.js +0 -879
- package/dist/cjs/ic-select.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +0 -433
- package/dist/cjs/ic-text-field.cjs.entry.js.map +0 -1
- package/dist/core/p-0722d7b6.entry.js.map +0 -1
- package/dist/core/p-0f6fd5d3.entry.js +0 -2
- package/dist/core/p-0f6fd5d3.entry.js.map +0 -1
- package/dist/core/p-0f998905.entry.js.map +0 -1
- package/dist/core/p-107281c4.entry.js +0 -2
- package/dist/core/p-107281c4.entry.js.map +0 -1
- package/dist/core/p-1fc4b88f.entry.js.map +0 -1
- package/dist/core/p-23dc27a8.entry.js +0 -2
- package/dist/core/p-3582c7df.entry.js.map +0 -1
- package/dist/core/p-3c7e90a7.entry.js +0 -2
- package/dist/core/p-3c7e90a7.entry.js.map +0 -1
- package/dist/core/p-57ce68e5.entry.js +0 -2
- package/dist/core/p-57ce68e5.entry.js.map +0 -1
- package/dist/core/p-5ac3adb9.entry.js.map +0 -1
- package/dist/core/p-656a9127.entry.js +0 -2
- package/dist/core/p-656a9127.entry.js.map +0 -1
- package/dist/core/p-6740c915.entry.js.map +0 -1
- package/dist/core/p-6aa8d3ce.entry.js.map +0 -1
- package/dist/core/p-72344764.entry.js +0 -2
- package/dist/core/p-72344764.entry.js.map +0 -1
- package/dist/core/p-7c38dd1f.entry.js +0 -2
- package/dist/core/p-7c38dd1f.entry.js.map +0 -1
- package/dist/core/p-81f60443.entry.js.map +0 -1
- package/dist/core/p-840c647f.entry.js +0 -2
- package/dist/core/p-840c647f.entry.js.map +0 -1
- package/dist/core/p-86989873.entry.js.map +0 -1
- package/dist/core/p-880afd4b.entry.js.map +0 -1
- package/dist/core/p-8b1567c9.entry.js.map +0 -1
- package/dist/core/p-8f45f956.entry.js.map +0 -1
- package/dist/core/p-9b60ca02.entry.js +0 -2
- package/dist/core/p-9b60ca02.entry.js.map +0 -1
- package/dist/core/p-a16415e4.entry.js +0 -3
- package/dist/core/p-a16415e4.entry.js.map +0 -1
- package/dist/core/p-b22fc28d.entry.js +0 -2
- package/dist/core/p-b22fc28d.entry.js.map +0 -1
- package/dist/core/p-b8c0c142.entry.js.map +0 -1
- package/dist/core/p-c3f5907e.entry.js +0 -2
- package/dist/core/p-c3f5907e.entry.js.map +0 -1
- package/dist/core/p-c7f8547d.entry.js.map +0 -1
- package/dist/core/p-cdbbcef4.entry.js.map +0 -1
- package/dist/core/p-d2d17d6d.entry.js.map +0 -1
- package/dist/core/p-d478d13e.entry.js.map +0 -1
- package/dist/core/p-dbc8bf0c.js +0 -2
- package/dist/core/p-dbc8bf0c.js.map +0 -1
- package/dist/core/p-df029b1b.entry.js.map +0 -1
- package/dist/core/p-f5fd4a76.entry.js.map +0 -1
- package/dist/core/p-fdb587ab.entry.js +0 -2
- package/dist/core/p-fdb587ab.entry.js.map +0 -1
- package/dist/esm/helpers-0f85537f.js.map +0 -1
- package/dist/esm/ic-pagination.entry.js.map +0 -1
- package/dist/esm/ic-select.entry.js +0 -875
- package/dist/esm/ic-select.entry.js.map +0 -1
- package/dist/esm/ic-text-field.entry.js.map +0 -1
- /package/dist/core/{p-ba4abeac.entry.js.map → p-09505807.entry.js.map} +0 -0
- /package/dist/core/{p-fe0153ec.entry.js.map → p-2a124daf.entry.js.map} +0 -0
- /package/dist/core/{p-aed1c7e7.entry.js.map → p-347cc084.entry.js.map} +0 -0
- /package/dist/core/{p-b5e39585.entry.js.map → p-3aed13ba.entry.js.map} +0 -0
- /package/dist/core/{p-276a6c8f.entry.js.map → p-46fd555f.entry.js.map} +0 -0
- /package/dist/core/{p-889bb8db.entry.js.map → p-56de4f4b.entry.js.map} +0 -0
- /package/dist/core/{p-608b4912.entry.js.map → p-5976de6e.entry.js.map} +0 -0
- /package/dist/core/{p-45076d7e.entry.js.map → p-659d048d.entry.js.map} +0 -0
- /package/dist/core/{p-1edf2689.entry.js.map → p-67de1290.entry.js.map} +0 -0
- /package/dist/core/{p-f700b759.entry.js.map → p-73043f57.entry.js.map} +0 -0
- /package/dist/core/{p-7b8e5926.entry.js.map → p-735d3096.entry.js.map} +0 -0
- /package/dist/core/{p-0301d1c8.entry.js.map → p-7b538fd1.entry.js.map} +0 -0
- /package/dist/core/{p-0d711c6a.entry.js.map → p-8a833e82.entry.js.map} +0 -0
- /package/dist/core/{p-c16e982c.entry.js.map → p-90678e67.entry.js.map} +0 -0
- /package/dist/core/{p-93e1ba0a.entry.js.map → p-9502fb86.entry.js.map} +0 -0
- /package/dist/core/{p-76e8df31.entry.js.map → p-9c2b2cb9.entry.js.map} +0 -0
- /package/dist/core/{p-949d08d3.entry.js.map → p-9cb83a2e.entry.js.map} +0 -0
- /package/dist/core/{p-45c553db.entry.js.map → p-a780a34b.entry.js.map} +0 -0
- /package/dist/core/{p-90814d32.entry.js.map → p-aad03a3c.entry.js.map} +0 -0
- /package/dist/core/{p-ec14c783.entry.js.map → p-aaf4e367.entry.js.map} +0 -0
- /package/dist/core/{p-8c00614c.entry.js.map → p-b52c44eb.entry.js.map} +0 -0
- /package/dist/core/{p-a0af1b0a.entry.js.map → p-bb7652cd.entry.js.map} +0 -0
- /package/dist/core/{p-1d8559f0.entry.js.map → p-c156e6e9.entry.js.map} +0 -0
- /package/dist/core/{p-e1814e7e.entry.js.map → p-cad23b7d.entry.js.map} +0 -0
- /package/dist/core/{p-e176881a.entry.js.map → p-cc64e5ef.entry.js.map} +0 -0
- /package/dist/core/{p-ebc47282.entry.js.map → p-daec7e69.entry.js.map} +0 -0
- /package/dist/core/{p-ad5aca6f.entry.js.map → p-ea890d3d.entry.js.map} +0 -0
- /package/dist/core/{p-4e43b272.entry.js.map → p-f84ac9c6.entry.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as i,c as t,f as e,h as s,H as l,g as a}from"./p-8e4e97b4.js";import{K as o,G as n,F as r,L as h,M as c,r as d,l as u,z as p,k as b,o as f,m as v,q as m,i as g,N as x,O as w,s as y}from"./p-dbc8bf0c.js";import{I as k}from"./p-6215e2ae.js";const L=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const z=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const C='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;position:relative;--ic-input-label-helpertext-padding:var(--ic-space-xs);--menu-max-height:100px;--border-color:var(--ic-select-field-border);--border-color-hover:var(--ic-select-field-border-hover);--border-color-pressed:var(--ic-select-field-border-pressed);--border-color-disabled:var(--ic-select-field-border-disabled);--border-color-error:var(--ic-select-field-border-error);--border-color-error-hover:var(--ic-select-field-border-error-hover);--border-color-error-pressed:var(--ic-select-field-border-error-pressed);--border-color-success:var(--ic-select-field-border-success);--border-color-success-hover:var(--ic-select-field-border-success-hover);--border-color-success-pressed:var(--ic-select-field-border-success-pressed);--border-color-warning:var(--ic-select-field-border-warning);--border-color-warning-hover:var(--ic-select-field-border-warning-hover);--border-color-warning-pressed:var(--ic-select-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-select-field-label);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle\n );--ic-input-validation-status-text-color:var(--ic-select-state-text);--ic-input-validation-error:var(--ic-select-state-icon-error);--ic-input-validation-warning-icon-color:var(--ic-select-state-icon-warning);--ic-input-validation-success-icon-color:var(--ic-select-state-icon-success);--menu-item-text-color:var(--ic-select-list-option-text);--menu-bg-color:var(--ic-select-list-option-background);--menu-border-color:var(--ic-select-dropdown-list-border)}:host(.ic-select-disabled){--ic-input-label-text-color:var(--ic-select-field-label-disabled);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle-disabled\n )}:host(.ic-select-full-width){width:100%}ic-input-component-container.menu-open{--border-color:var(--ic-select-field-border-pressed)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs)}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-select-field-background);color:var(--ic-select-content-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:0.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 0.375rem center;background-image:var(--ic-select-mobile-dropdown-icon);caret-color:var(--ic-select-input-field-text-cursor)}select option,.select-option-selected{color:var(--ic-select-list-option-text)}select:disabled{color:var(--ic-select-content-text-disabled);background-image:var(--ic-select-mobile-dropdown-icon-disabled)}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center;position:relative}.select-input{width:100%;height:100%;padding:0 0.375rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none;background-color:var(--ic-select-field-background);color:var(--ic-select-content-text)}.select-input:focus{outline:none}.select-input[disabled]{pointer-events:none}:host(.ic-select-searchable) .select-input{cursor:auto}.select-input.with-clear-button{padding-right:0}.value-text{max-width:calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:0 !important}.value-text.with-clear-button{padding-right:calc(var(--ic-space-xl) + var(--ic-space-xs))}.searchable-select-container{align-items:center;display:flex;width:100%;position:relative}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xxs);color:var(--ic-select-expand-icon-color)}.expand-icon>svg{display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.ic-select-disabled) .expand-icon,:host(.ic-select-disabled) .expand-icon>svg>path{color:var(--ic-select-disabled-expand-icon-color)}:host(.ic-select-searchable) .expand-icon{padding-left:0;height:2.25rem}:host(.ic-select-searchable) .expand-icon>svg{height:2.25rem;padding:0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs)}:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-select-expand-icon-color)}.expand-icon-open,:host(.ic-select-searchable) .expand-icon-open{transform:rotateX(180deg)}.placeholder{color:var(--ic-select-content-placeholder-text)}:host(.ic-select-disabled.ic-select-searchable) .select-input::-moz-placeholder{color:var(--ic-select-content-text-disabled)}:host(.ic-select-disabled) .value-text,:host(.ic-select-disabled) .select-input,:host(.ic-select-disabled) .placeholder,:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder{color:var(--ic-select-content-text-disabled)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;align-items:center}.divider{width:var(--ic-space-1px);background-color:var(--ic-select-content-divider);margin:var(--ic-space-xxs) 0;border-radius:var(--ic-space-1px);height:var(--ic-space-lg)}:host(.ic-select-small) .divider{height:var(--ic-space-md)}:host(.ic-select-large) .divider{height:var(--ic-space-xl)}.clear-button{color:var(--ic-select-clear-button);position:absolute;right:calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus,.clear-button:active{background-color:var(--ic-color-focus-inner);box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer);border-radius:0.25rem}.clear-button:focus,.clear-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button.searchable{position:static}.searchable-select-results-status,.multi-select-selected-count{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}::slotted([slot="icon"]){fill:var(--ic-select-content-placeholder-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-select-content-text)}.readonly ::slotted([slot="icon"]){padding:0.375rem;margin-bottom:0.75rem}@media (forced-colors: active){.has-value ::slotted([slot="icon"]){fill:currentcolor}}';const O=C;let T=0;const $=[...k,"tabindex","title"];const H=class{constructor(l){i(this,l);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icClear=t(this,"icClear",7);this.icClose=t(this,"icClose",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icOpen=t(this,"icOpen",7);this.icOptionSelect=t(this,"icOptionSelect",7);this.icOptionDeselect=t(this,"icOptionDeselect",7);this.icRetryLoad=t(this,"icRetryLoad",7);this.blurredBecauseButtonPressed=false;this.hasSetDefaultValue=false;this.hasTimedOut=false;this.inheritedAttributes={};this.initialOptionsEmpty=false;this.inputId=`ic-select-input-${T++}`;this.menuId=`${this.inputId}-menu`;this.retryButtonClick=false;this.searchableMenuItemSelected=false;this.ungroupedOptions=[];this.hostMutationObserver=null;this.clearButtonFocused=false;this.noOptions=null;this.open=false;this.pressedCharacters="";this.searchableSelectInputValue=null;this.disabled=false;this.disableAutoFiltering=false;this.emptyOptionListText="No results found";this.fullWidth=false;this.helperText="";this.hideLabel=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.multiple=false;this.name=this.inputId;this.placeholder="Select an option";this.readonly=false;this.required=false;this.searchable=false;this.searchMatchPosition="anywhere";this.selectOnEnter=false;this.showClearButton=false;this.size="medium";this.theme="inherit";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.loading=false;this.options=[];this.filteredOptions=this.options;this.uniqueOptions=this.options;this.debounce=0;this.currDebounce=this.debounce;this.value=null;this.initialValue=this.value;this.inputValueToFilter=this.value;this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i,type:e,addedNodes:s,removedNodes:l})=>{if(i){const e=this.el.getAttribute(i);if(e&&$.includes(i)){this.inheritedAttributes[i]=e;t=true}}else if(e==="childList"){t=o(s,l,"icon")}}));if(t){e(this)}};this.handleRetry=i=>{var t;if(i.detail.keyPressed)(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.blurredBecauseButtonPressed=true;this.retryButtonClick=true;this.hasSetDefaultValue=true;this.icRetryLoad.emit({value:this.searchable?this.searchableSelectInputValue:this.hiddenInputValue})};this.emitIcChange=i=>{if(this.multiple&&!Array.isArray(i)&&i!==null){if(this.value){let t=this.value.slice();if(this.value.includes(i)){t.splice(t.indexOf(i),1)}else{t.push(i);t=this.getValueSortedByOptions(t)}this.value=t.length===0?null:t}else{this.value=[i]}}else{this.value=i}this.icChange.emit({value:this.multiple?this.value:i})};this.emitIcInput=i=>{clearTimeout(this.debounceIcInput);this.debounceIcInput=window.setTimeout((()=>this.icInput.emit({value:i})),this.currDebounce)};this.setOptions=()=>{if(!this.hasTimedOut&&this.options!==this.noOptions){this.loading=false;clearTimeout(this.timeoutTimer);if(this.options.length>0){this.setOptionsValuesFromLabels();this.uniqueOptions=this.deduplicateOptions(this.options)}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions}this.filteredOptions=this.uniqueOptions;if(this.isExternalFiltering()){this.noOptions=null;this.updateSearchableSelectResultAriaLive();this.setDefaultValue()}else if(this.initialOptionsEmpty){this.setDefaultValue();this.initialOptionsEmpty=false}}else if(!this.searchable){this.options=this.noOptions||[]}};this.deduplicateOptions=i=>{const t=[];const e=[];i.forEach((i=>{if(i.children){const s=[];i.children.forEach((i=>{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);s.push(i)}}));e.push(Object.assign(Object.assign({},i),{children:s}))}else{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);e.push(i)}}}));return e};this.setOptionsValuesFromLabels=()=>{if(this.options.length>0){this.options.map((i=>{if(!i.value){i.value=i.label}}))}};this.setUngroupedOptions=i=>{this.ungroupedOptions=i.detail.options};this.setTextColor=()=>{if(this.nativeSelectElement){this.nativeSelectElement.className=this.nativeSelectElement.selectedIndex===0?"placeholder":"select-option-selected"}};this.setMenuChange=i=>{if(this.open!==i){this.open=i}};this.getLabelFromValue=i=>n(i,this.uniqueOptions);this.getMultipleOptionsString=i=>i===null||i===void 0?void 0:i.map((i=>this.getLabelFromValue(i))).filter((i=>!!i)).join(", ");this.getFilteredChildMenuOptions=i=>Object.assign(Object.assign({},i),{children:i.children&&r(i.children,this.searchable&&!!this.includeDescriptionsInSearch,this.searchable?this.searchableSelectInputValue||"":this.pressedCharacters,this.searchable?this.searchMatchPosition:"start")});this.getValueSortedByOptions=i=>{const t=i;const e=this.ungroupedOptions.map((i=>i.value));t.sort(((i,t)=>e.indexOf(i)-e.indexOf(t)));return t};this.handleNativeSelectChange=()=>{if(this.nativeSelectElement){this.icOptionSelect.emit({value:this.nativeSelectElement.value});this.emitIcChange(this.nativeSelectElement.value)}this.setTextColor()};this.handleCustomSelectChange=i=>{var t,e;const{value:s,label:l,optionId:a}=i.detail;if(l===this.emptyOptionListText){(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();return}if(this.searchable){this.value=s||null;this.searchableMenuItemSelected=true;if(this.value===this.currValue){this.searchableSelectInputValue=this.getLabelFromValue(this.value)||null}this.inputValueToFilter=null;this.hiddenInputValue=this.getValueFromLabel(this.searchableSelectInputValue)||null}if(s){if(this.multiple&&((e=this.value)===null||e===void 0?void 0:e.includes(s))){this.icOptionDeselect.emit({value:s})}else{this.icOptionSelect.emit({value:s})}}this.ariaActiveDescendant=a;this.emitIcChange(s||null)};this.handleSelectAllChange=({detail:i})=>{const t=this.ungroupedOptions.filter((i=>!i.disabled)).map((i=>i.value));if(i.select){const i=this.value?t.filter((i=>this.value&&!this.value.includes(i))):t;i.forEach((i=>this.icOptionSelect.emit({value:i})))}else{this.value.forEach((i=>this.icOptionDeselect.emit({value:i})))}this.emitIcChange(i.select?t:null)};this.handleMenuChange=i=>{this.open=i.detail.open;this.pressedCharacters="";if(this.searchable)this.handleFocusIndicatorDisplay()};this.handleMenuKeyPress=i=>{i.cancelBubble=true;if(!this.multiple){this.handleCharacterKeyDown(i.detail.key)}};this.handleFocusIndicatorDisplay=()=>{var i;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".focus-indicator");if(t){if(this.open){t.classList.add("focus-indicator-enabled")}else{t.classList.remove("focus-indicator-enabled")}}};this.handleMouseDown=i=>{if(!this.open){i.preventDefault()}};this.isExternalFiltering=()=>this.searchable&&!!this.disableAutoFiltering;this.handleClick=i=>{var t,e;if(!this.open&&this.menu){if(this.isExternalFiltering()){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut&&!this.loading&&!((t=this.noOptions)===null||t===void 0?void 0:t.length)&&(!this.searchable||this.searchableMenuItemSelected)){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(i.detail!==0){(e=this.menu)===null||e===void 0?void 0:e.handleClickOpen()}};this.handleExpandIconMouseDown=i=>{var t;if(!this.disabled){i.preventDefault();(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.handleClick(i)}};this.handleClear=i=>{var t,e;i.stopPropagation();this.hasTimedOut=false;clearTimeout(this.timeoutTimer);this.clearInput();this.emitIcChange(null);this.icClear.emit();if(this.searchable){this.hiddenInputValue=null;(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus()}else{(e=this.customSelectElement)===null||e===void 0?void 0:e.focus()}};this.handleCharacterKeyDown=i=>{if(this.open&&i===" "&&this.pressedCharacters.length===0){this.setMenuChange(false)}if(i.length!==1||this.searchable){this.pressedCharacters="";return}window.clearTimeout(this.characterKeyPressTimer);this.characterKeyPressTimer=window.setTimeout((()=>this.pressedCharacters=""),1e3);if(i!==" "||!!this.pressedCharacters){this.pressedCharacters+=i;this.handleFilter();if(!this.noOptions){this.emitIcChange(this.filteredOptions[0].value)}}};this.handleNativeSelectKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}this.handleCharacterKeyDown(i.key)};this.handleKeyDown=i=>{var t;if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}const e=i.key==="ArrowDown"||i.key==="ArrowUp";if(this.menu&&!this.open){if(this.isExternalFiltering()&&(i.key==="Enter"||e)){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(this.open&&i.key==="Enter"){this.setMenuChange(false)}else{if(!e||this.noOptions===null){if(i.key!==" "||this.pressedCharacters.length<=0){const e=i.key==="a"&&(h()&&i.metaKey||!h()&&i.ctrlKey);if(!(this.searchable&&e)){(t=this.menu)===null||t===void 0?void 0:t.handleKeyboardOpen(i)}}if(!this.multiple){this.handleCharacterKeyDown(i.key)}}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=i=>{var t;const e=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");if((!this.searchableSelectElement||i.relatedTarget!==this.searchableSelectElement)&&(!e||i.relatedTarget!==e)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.clearButtonFocused=false};this.handleFilter=()=>{var i;const t=this.deduplicateOptions(this.searchable?[...this.uniqueOptions]:this.ungroupedOptions);const e=t.some((i=>!!i.children));let s=[];let l;if(this.searchable){l=r(t,!!this.includeDescriptionsInSearch,this.inputValueToFilter||"",this.searchMatchPosition);this.searchableMenuItemSelected=false}else{l=r(t,false,this.pressedCharacters,"start")}if(!e&&((i=l[0])===null||i===void 0?void 0:i.label)!==this.emptyOptionListText){s=l}else if(e){s=t.map((i=>this.includeGroupTitlesInSearch&&l.indexOf(i)!==-1?i:this.getFilteredChildMenuOptions(i)))}if(s.length>0&&(!e||s.some((({children:i})=>i&&i.length>0)))){this.noOptions=null;this.filteredOptions=s}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.filteredOptions=this.noOptions}};this.triggerLoading=()=>{this.hasTimedOut=false;this.noOptions=[{label:this.loadingLabel,value:"",loading:true}];if(this.filteredOptions!==this.noOptions&&this.searchable){this.filteredOptions=this.noOptions}else if(this.uniqueOptions!==this.noOptions&&!this.searchable){this.uniqueOptions=this.noOptions}if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.loading=false;this.hasTimedOut=true;this.noOptions=[{label:this.loadingErrorLabel,value:"",timedOut:true}];this.filteredOptions=this.noOptions;if(!this.searchable)this.uniqueOptions=this.noOptions}),this.timeout)}};this.getValueFromLabel=i=>{var t;return i&&((t=this.uniqueOptions.find((t=>t.label===i)))===null||t===void 0?void 0:t.value)};this.handleSearchableSelectInput=i=>{this.searchableSelectInputValue=i.target.value;this.emitIcInput(this.searchableSelectInputValue);if(this.value!=null){this.emitIcChange(null)}this.hiddenInputValue=null;this.inputValueToFilter=this.searchableSelectInputValue;this.setMenuChange(true);if(!this.disableAutoFiltering){this.handleFilter();clearTimeout(this.debounceAria);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}};this.updateSearchableSelectResultAriaLive=()=>{var i;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".searchable-select-results-status");if(t){t.innerText=this.noOptions!==null?this.emptyOptionListText:""}};this.updateMultiSelectedCountAriaLive=()=>{var i,t;const e=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".multi-select-selected-count");const s=`${(t=this.currValue)===null||t===void 0?void 0:t.length} of ${c(this.options)} selected`;if(e&&e.innerText!==s){e.innerText=s}};this.getDefaultValue=i=>this.getLabelFromValue(i)||null;this.setDefaultValue=()=>{if(!this.hasSetDefaultValue&&this.currValue){this.searchableSelectInputValue=this.searchable?this.getDefaultValue(this.currValue):null;this.initialValue=this.currValue;this.hasSetDefaultValue=true}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=({relatedTarget:i})=>{var t;const e=i;if(e!==null&&(e.tagName==="UL"&&e.className.includes("menu")||e.tagName==="LI"&&e.className.includes("option"))){return}const s=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");if(this.searchable&&!!this.menu&&e!==this.menu&&!Array.from(this.menu.querySelectorAll("[role='option']")).includes(e)&&(!this.clearButton||e!==this.clearButton)&&(!s||e!==s)){if(!this.retryButtonClick){this.setMenuChange(false);if(!this.value){this.clearInput()}}this.handleFocusIndicatorDisplay()}this.retryButtonClick=false;this.icBlur.emit()};this.onTimeoutBlur=i=>{if(i.detail.ev.relatedTarget!==this.searchableSelectElement&&!this.blurredBecauseButtonPressed){this.setMenuChange(false);this.handleFocusIndicatorDisplay();this.icBlur.emit()}this.blurredBecauseButtonPressed=false};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=this.getDefaultValue(this.value);this.hiddenInputValue=this.value}};this.clearInput=()=>{var i;this.noOptions=null;if(this.searchable){(i=this.searchableSelectElement)===null||i===void 0?void 0:i.setAttribute("value","");this.searchableSelectInputValue=null;this.filteredOptions=this.uniqueOptions}};this.renderNativeOption=i=>s("option",{value:i.value,disabled:i.disabled,selected:i.value===this.currValue},i.label)}watchDisabledHandler(){d(this.disabled,this.el)}loadingHandler(i){i?this.triggerLoading():this.setOptions()}watchOptionsHandler(){this.setOptions()}debounceChangedHandler(i){if(this.currDebounce!==i){this.currDebounce=i}}valueChangedHandler(){if(this.value!==this.currValue){if(this.value&&this.multiple){this.currValue=this.getMultipleOptionsString(this.value)?this.getValueSortedByOptions(this.value):null;this.updateMultiSelectedCountAriaLive()}else{this.currValue=this.getLabelFromValue(this.value)?this.value:null}}if(this.searchable&&this.value){this.searchableSelectInputValue=this.getLabelFromValue(String(this.currValue))||null}}openChangedHandler(){this.open?this.icOpen.emit():this.icClose.emit()}disconnectedCallback(){var i;u(this.el,this.handleFormReset);(i=this.hostMutationObserver)===null||i===void 0?void 0:i.disconnect()}componentWillLoad(){const i=this.multiple?this.getMultipleOptionsString(this.value):this.getLabelFromValue(this.value);this.currValue=i?this.value:null;this.inheritedAttributes=p(this.el,$);d(this.disabled,this.el);this.setOptionsValuesFromLabels();b(this.el,this.handleFormReset);if(!this.options.length){this.initialOptionsEmpty=true;this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}else{this.setDefaultValue();this.uniqueOptions=this.deduplicateOptions(this.options)}}componentDidLoad(){f([{prop:this.label,propName:"label"}],"Select");if(this.loading){this.triggerLoading()}if(this.searchable){this.hiddenInputValue=this.currValue}this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true})}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}render(){var i,t,e,a;const{size:o,disabled:n,fullWidth:r,helperText:h,hideLabel:d,label:u,menuId:p,multiple:b,name:f,options:k,placeholder:C,readonly:O,required:T,searchable:$,showClearButton:H,validationAriaLive:M,validationStatus:B,validationText:S,currValue:D,theme:j,hiddenInputValue:I,open:E,inputId:F,searchableSelectInputValue:q,loading:A,value:N,emptyOptionListText:K,uniqueOptions:W,selectOnEnter:R,form:U,inheritedAttributes:V,ariaActiveDescendant:Z,hasTimedOut:G,filteredOptions:P,clearButtonFocused:X}=this;v(this.el,$?I:D,f||F,n);const _=`${B===w.Error}`;const J=y(B,!!n);const Q=m(this.el,F,h!=="",J).trim();const Y=b?this.getMultipleOptionsString(D):this.getLabelFromValue(D);const ii=!n&&($?!!q:!!D&&!A&&H);return s(l,{key:"7fe228e078a155a73e2fc94cc2b118c93b4145fe",class:{"ic-select-disabled":n,"ic-select-searchable":$,[`ic-select-${o}`]:o!=="medium","ic-select-full-width":r,[`ic-theme-${j}`]:j!=="inherit"},onBlur:this.onBlur},s("ic-input-container",{key:"f354e43e2138805bfb8e7f47dad8460c54bc4150",readonly:O},!d&&s("ic-input-label",{key:"5e0a35593115e83abab6de7f4c4c13d0865e4cd0",for:F,label:u,helperText:h,required:T,disabled:n,readonly:O},s("slot",{key:"a1bb94c8b02a3b859245e384443395b92a24cc87",name:"helper-text",slot:"helper-text"})),s("ic-input-component-container",{key:"0ce9a0afd7163ad10add85df056d8ed5b1e5e856",ref:i=>this.anchorEl=i,class:{"menu-open":E},size:o,fullWidth:r,disabled:n,readonly:O,validationStatus:B},g(this.el,"icon")&&!n&&(!O||!!N)&&s("span",{key:"6976af6d54de212225c8187634faceac225d769e",slot:"left-icon",class:{readonly:O,"has-value":!!N}},s("slot",{key:"f198b118f799e71cc850ff9b4e8f72b2e6bb531c",name:"icon"})),O?s("ic-typography",null,s("p",null,Y)):x()&&!b?s("select",Object.assign({ref:i=>this.nativeSelectElement=i,disabled:n,onChange:this.handleNativeSelectChange,required:T,id:F,"aria-label":u,"aria-describedby":Q,"aria-invalid":_,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.handleNativeSelectKeyDown,form:U},V),s("option",{value:"",selected:true,disabled:!H},C),k.map((i=>i.children?s("optgroup",{label:i.label},i.children.map((i=>this.renderNativeOption(i)))):this.renderNativeOption(i)))):$?s("div",{class:"searchable-select-container"},s("input",{class:{"value-text":true,"select-input":true,"with-clear-button":!!q},role:"combobox",autocomplete:"off","aria-label":u,"aria-describedby":Q,"aria-activedescendant":Z,"aria-autocomplete":"list","aria-expanded":`${E}`,"aria-invalid":_,"aria-required":`${T}`,"aria-controls":p,ref:i=>this.searchableSelectElement=i,id:F,value:q||undefined,placeholder:C,disabled:n,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,form:U}),ii&&s("div",{class:"clear-button-container"},s("ic-button",{id:"clear-button",ref:i=>this.clearButton=i,"aria-label":q&&(D===null||A)?"Clear input":"Clear selection",class:"clear-button",innerHTML:z,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:o,variant:"icon-tertiary",theme:X?"light":"dark"}),s("div",{class:"divider"})),s("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":E},innerHTML:L,"aria-hidden":"true"}),s("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):s("div",{class:"select-container"},s("button",{role:"combobox",class:"select-input",ref:i=>this.customSelectElement=i,id:F,"aria-label":`${u}, ${(b&&D?`${D.length} of ${c(k)} selected, ${Y}`:Y)||C}`,"aria-describedby":Q,"aria-invalid":_,"aria-haspopup":"listbox","aria-expanded":`${E}`,"aria-owns":p,"aria-controls":p,"aria-required":`${T}`,disabled:n,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},s("ic-typography",{variant:"body",class:{"value-text":true,"with-clear-button":ii,placeholder:!A&&b?!N||N.length<1:!this.getLabelFromValue(D)}},Y||C),s("div",{class:"select-input-end"},ii&&s("div",{class:"divider"}),s("span",{class:{"expand-icon":true,"expand-icon-open":E},innerHTML:L,"aria-hidden":"true"}))),ii&&s("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:z,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:o,variant:"icon-tertiary",theme:X?"light":"dark"}))),(!x()||b)&&s("ic-menu",{key:"34f6484de01345c4ea6d9fcaa1cdc09c394e6904",class:{"no-results":A||G||$&&((t=(i=this.filteredOptions)===null||i===void 0?void 0:i[0])===null||t===void 0?void 0:t.label)===K||!$&&((a=(e=this.uniqueOptions)===null||e===void 0?void 0:e[0])===null||a===void 0?void 0:a.label)===K},ref:i=>this.menu=i,inputEl:$?this.searchableSelectElement:this.customSelectElement,inputLabel:u,anchorEl:this.anchorEl,size:o,menuId:p,open:E,options:$?P:W,value:b?D:D,fullWidth:r,selectOnEnter:R,onMenuStateChange:this.handleMenuChange,onMenuOptionSelect:this.handleCustomSelectChange,onMenuOptionSelectAll:this.handleSelectAllChange,onMenuKeyPress:this.handleMenuKeyPress,onUngroupedOptionsSet:this.setUngroupedOptions,onRetryButtonClicked:this.handleRetry,parentEl:this.el,onTimeoutBlur:this.onTimeoutBlur,activationType:$||b||R?"manual":"automatic",closeOnSelect:!b,multiSelect:b?true:false,searchableSelect:$?true:false}),b&&s("div",{key:"edbcf92bebb2999f1b9dbff3da4299fd3fa21c00","aria-live":"polite",role:"status",class:"multi-select-selected-count"}),s("ic-input-validation",{key:"37d687c64608a1bd70763c2c09351be2d736c624",class:{"menu-open":E},ariaLiveMode:M,status:J?B:"",message:J?S:"",for:F})))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{disabled:["watchDisabledHandler"],loading:["loadingHandler"],options:["watchOptionsHandler"],debounce:["debounceChangedHandler"],value:["valueChangedHandler"],open:["openChangedHandler"]}}};H.style=O;export{H as ic_select};
|
|
2
|
-
//# sourceMappingURL=p-840c647f.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","constructor","hostRef","this","blurredBecauseButtonPressed","hasSetDefaultValue","hasTimedOut","inheritedAttributes","initialOptionsEmpty","inputId","menuId","retryButtonClick","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disabled","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","theme","validationAriaLive","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","value","initialValue","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","attribute","el","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","icRetryLoad","emit","hiddenInputValue","emitIcChange","Array","isArray","valueArray","slice","splice","indexOf","push","getValueSortedByOptions","length","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","setOptions","timeoutTimer","setOptionsValuesFromLabels","deduplicateOptions","label","isExternalFiltering","updateSearchableSelectResultAriaLive","setDefaultValue","uniqueValues","dedupedOptions","option","children","dedupedChildren","child","console","warn","Object","assign","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","className","selectedIndex","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","valuesFromAllOptions","sort","a","b","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","optionId","currValue","getValueFromLabel","_b","icOptionDeselect","ariaActiveDescendant","handleSelectAllChange","allValues","select","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","menu","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","isCtrlA","isMacDevice","metaKey","ctrlKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","some","newFilteredOptions","menuOptionsFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAria","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","onFocus","icFocus","onBlur","tagName","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","renderNativeOption","h","selected","watchDisabledHandler","removeDisabledFalse","loadingHandler","newValue","watchOptionsHandler","debounceChangedHandler","valueChangedHandler","String","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","valueInOptions","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","render","form","renderHiddenInput","invalid","IcInformationStatus","Error","showValidation","hasValidationStatus","describedBy","getInputDescribedByText","trim","valueLabelString","isClearable","Host","class","for","slot","ref","anchorEl","isSlotUsed","isMobileOrTablet","onChange","id","onKeyDown","role","autocomplete","undefined","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","_d","_c","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","multiSelect","searchableSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs);\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n isSlotUsed,\n isMacDevice,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private anchorEl?: HTMLElement;\n private blurredBecauseButtonPressed = false;\n private characterKeyPressTimer?: number;\n private clearButton?: HTMLIcButtonElement;\n private customSelectElement?: HTMLButtonElement;\n private debounceAria?: number;\n private hasSetDefaultValue = false;\n private hasTimedOut = false;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement?: HTMLSelectElement;\n private retryButtonClick = false;\n private searchableMenuItemSelected = false;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer?: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() clearButtonFocused = false;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() noOptions: IcMenuOption[] | null = null;\n @State() open = false;\n @State() pressedCharacters = \"\";\n @State() searchableSelectInputValue: string | null = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton = false;\n\n /**\n * The size of the select.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue ? this.triggerLoading() : this.setOptions();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options;\n @State() uniqueOptions: IcMenuOption[] = this.options;\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptions();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value: string | string[] | null = null;\n @State() initialValue = this.value;\n @State() inputValueToFilter: string | null = this.value as string;\n @State() currValue: string | string[] | null;\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value as string[])\n ? this.getValueSortedByOptions(this.value as string[])\n : null;\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.getLabelFromValue(this.value as string)\n ? this.value\n : null;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value as string[])\n : this.getLabelFromValue(this.value as string);\n this.currValue = valueInOptions ? this.value : null;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n if (this.searchable) {\n this.hiddenInputValue = this.currValue as string;\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n valueArray.splice(valueArray.indexOf(value), 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n this.value = [value];\n }\n } else {\n this.value = value;\n }\n\n this.icChange.emit({ value: this.multiple ? this.value : value });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n private setOptions = () => {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n\n if (this.options.length > 0) {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n }\n\n this.filteredOptions = this.uniqueOptions;\n\n if (this.isExternalFiltering()) {\n // When searchable select\n this.noOptions = null;\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n } else if (!this.searchable) {\n this.options = this.noOptions || [];\n }\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]) => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n\n options.forEach((option) => {\n if (option.children) {\n //If an option has children, we will loop through them\n const dedupedChildren: IcMenuOption[] = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n dedupedOptions.push({\n ...option,\n children: dedupedChildren,\n });\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = () => {\n if (this.options.length > 0) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent) => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string) =>\n getLabelFromValue(value, this.uniqueOptions);\n\n private getMultipleOptionsString = (selectedValues: string[]) =>\n selectedValues\n ?.map((value) => this.getLabelFromValue(value))\n .filter((label) => !!label)\n .join(\", \");\n\n private getFilteredChildMenuOptions = (\n option: IcMenuOption\n ): IcMenuOption => ({\n ...option,\n children:\n option.children &&\n getFilteredMenuOptions(\n option.children,\n this.searchable && !!this.includeDescriptionsInSearch,\n this.searchable\n ? this.searchableSelectInputValue || \"\"\n : this.pressedCharacters,\n this.searchable ? this.searchMatchPosition : \"start\"\n ),\n });\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value, label, optionId } = event.detail;\n\n if (label === this.emptyOptionListText) {\n this.searchableSelectElement?.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value || null;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.value as string) || null;\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n\n if (value) {\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n }\n\n this.ariaActiveDescendant = optionId;\n this.emitIcChange(value || null);\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allValues = this.ungroupedOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n\n if (detail.select) {\n // Only emit icOptionSelect for all values that are newly selected\n const unselectedValues = this.value\n ? allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n )\n : allValues;\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n }\n\n this.emitIcChange(detail.select ? allValues : null);\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n if (this.searchable) this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleMouseDown = (event: Event) => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = () =>\n this.searchable && !!this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.open && this.menu) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event) => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement?.focus();\n } else {\n this.customSelectElement?.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.setMenuChange(false);\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (key !== \" \" || !!this.pressedCharacters) {\n this.pressedCharacters += key;\n this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (this.menu && !this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!isArrowKey || this.noOptions === null) {\n if (event.key !== \" \" || this.pressedCharacters.length <= 0) {\n // Keyboard events get passed onto ic-menu except in the case of ctrl-a on a searchable select\n const isCtrlA =\n event.key === \"a\" &&\n ((isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey));\n\n if (!(this.searchable && isCtrlA)) {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = () => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent) => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n (!this.searchableSelectElement ||\n ev.relatedTarget !== this.searchableSelectElement) &&\n (!retryButton || ev.relatedTarget !== retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = () => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n const isGrouped = options.some((option) => !!option.children);\n let newFilteredOptions: IcMenuOption[] = [];\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n !!this.includeDescriptionsInSearch,\n this.inputValueToFilter || \"\",\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n newFilteredOptions = options.map((option) =>\n this.includeGroupTitlesInSearch &&\n menuOptionsFiltered.indexOf(option) !== -1\n ? option\n : this.getFilteredChildMenuOptions(option)\n );\n }\n\n if (\n newFilteredOptions.length > 0 &&\n (!isGrouped ||\n newFilteredOptions.some(\n ({ children }) => children && children.length > 0\n ))\n ) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string | null): string | undefined =>\n label && this.uniqueOptions.find((option) => option.label === label)?.value;\n\n private handleSearchableSelectInput = (event: Event) => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n const searchableSelectResultsStatusEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".searchable-select-results-status\"\n );\n\n if (searchableSelectResultsStatusEl) {\n searchableSelectResultsStatusEl.innerText =\n this.noOptions !== null ? this.emptyOptionListText : \"\";\n }\n };\n\n private updateMultiSelectedCountAriaLive = () => {\n const multiSelectSelectedCountEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".multi-select-selected-count\"\n );\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string) =>\n this.getLabelFromValue(value) || null;\n\n private setDefaultValue = () => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue as string)\n : null;\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n\n if (\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n (!this.clearButton || target !== this.clearButton) &&\n (!retryButton || target !== retryButton)\n ) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = () => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement?.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n private renderNativeOption = (option: IcMenuOption) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.currValue}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationAriaLive,\n validationStatus,\n validationText,\n currValue,\n theme,\n hiddenInputValue,\n open,\n inputId,\n searchableSelectInputValue,\n loading,\n value,\n emptyOptionListText,\n uniqueOptions,\n selectOnEnter,\n form,\n inheritedAttributes,\n ariaActiveDescendant,\n hasTimedOut,\n filteredOptions,\n clearButtonFocused,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n this.el,\n searchable ? hiddenInputValue : (currValue as string),\n name || inputId,\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const showValidation = hasValidationStatus(validationStatus, !!disabled);\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string);\n\n const isClearable =\n !disabled &&\n (searchable\n ? !!searchableSelectInputValue\n : !!currValue && !loading && showClearButton);\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {readonly ? (\n <ic-typography>\n <p>{valueLabelString}</p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n option.children ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option)\n )\n )}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={searchableSelectInputValue || undefined}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n searchableSelectInputValue &&\n (currValue === null || loading)\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n role=\"combobox\"\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${\n currValue.length\n } of ${getOptionsWithoutGroupTitlesCount(\n options\n )} selected, ${valueLabelString}`\n : valueLabelString) || placeholder\n }`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-owns={menuId}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": isClearable,\n placeholder:\n !loading && multiple\n ? !value || value.length < 1\n : !this.getLabelFromValue(currValue as string),\n }}\n >\n {valueLabelString || placeholder}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n loading ||\n hasTimedOut ||\n (searchable &&\n this.filteredOptions?.[0]?.label === emptyOptionListText) ||\n (!searchable &&\n this.uniqueOptions?.[0]?.label === emptyOptionListText),\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={searchable ? filteredOptions : uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n closeOnSelect={!multiple}\n multiSelect={multiple ? true : false}\n searchableSelect={searchable ? true : false}\n ></ic-menu>\n )}\n {multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"guBAAA,MAAMA,EAAc,8qRACpB,MAAAC,EAAeD,ECgDf,IAAIE,EAAW,EACf,MAAMC,EAAqB,IAAIC,EAAmB,WAAY,S,MAajDC,EAAM,MAPnB,WAAAC,CAAAC,G,0XASUC,KAAAC,4BAA8B,MAK9BD,KAAAE,mBAAqB,MACrBF,KAAAG,YAAc,MACdH,KAAAI,oBAA+C,GAC/CJ,KAAAK,oBAAsB,MACtBL,KAAAM,QAAU,mBAAmBZ,MAE7BM,KAAAO,OAAS,GAAGP,KAAKM,eAEjBN,KAAAQ,iBAAmB,MACnBR,KAAAS,2BAA6B,MAG7BT,KAAAU,iBAAmC,GACnCV,KAAAW,qBAAgD,KAK/CX,KAAAY,mBAAqB,MAGrBZ,KAAAa,UAAmC,KACnCb,KAAAc,KAAO,MACPd,KAAAe,kBAAoB,GACpBf,KAAAgB,2BAA4C,KAK5BhB,KAAAiB,SAAW,MAS5BjB,KAAAkB,qBAAuB,MAKvBlB,KAAAmB,oBAAsB,mBAUtBnB,KAAAoB,UAAY,MAKZpB,KAAAqB,WAAa,GAKbrB,KAAAsB,UAAY,MAKZtB,KAAAuB,4BAA8B,MAK9BvB,KAAAwB,2BAA6B,MAU7BxB,KAAAyB,kBAAoB,gBAKpBzB,KAAA0B,aAAe,aAKf1B,KAAA2B,SAAW,MAKX3B,KAAA4B,KAAO5B,KAAKM,QAKZN,KAAA6B,YAAc,mBAKd7B,KAAA8B,SAAW,MAKX9B,KAAA+B,SAAW,MAKX/B,KAAAgC,WAAa,MAKbhC,KAAAiC,oBAA8C,WAK9CjC,KAAAkC,cAAgB,MAKhBlC,KAAAmC,gBAAkB,MAKlBnC,KAAAoC,KAAgB,SAUhBpC,KAAAqC,MAAqB,UAKrBrC,KAAAsC,mBAAiC,SAKjCtC,KAAAuC,iBAA+C,GAK/CvC,KAAAwC,eAAiB,GAKAxC,KAAAyC,QAAU,MAS3BzC,KAAA0C,QAA0B,GACzB1C,KAAA2C,gBAAkC3C,KAAK0C,QACvC1C,KAAA4C,cAAgC5C,KAAK0C,QAStC1C,KAAA6C,SAAW,EACV7C,KAAA8C,aAAe9C,KAAK6C,SAaJ7C,KAAA+C,MAAkC,KAClD/C,KAAAgD,aAAehD,KAAK+C,MACpB/C,KAAAiD,mBAAoCjD,KAAK+C,MAuJ1C/C,KAAAkD,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SACX,EAAGC,gBAAeC,OAAMC,aAAYC,mBAClC,GAAIH,EAAe,CACjB,MAAMI,EAAY1D,KAAK2D,GAAGC,aAAaN,GACvC,GAAII,GAAa/D,EAAmBkE,SAASP,GAAgB,CAC3DtD,KAAKI,oBAAoBkD,GAAiBI,EAC1CN,EAAuB,I,OAEpB,GAAIG,IAAS,YAAa,CAC/BH,EAAuBU,EACrBN,EACAC,EACA,O,KAKR,GAAIL,EAAsB,CACxBW,EAAY/D,K,GAIRA,KAAAgE,YAAeC,I,MACrB,GAAIA,EAAGC,OAAOC,YAAYC,EAAApE,KAAKqE,2BAAuB,MAAAD,SAAA,SAAAA,EAAEE,QACxDtE,KAAKC,4BAA8B,KACnCD,KAAKQ,iBAAmB,KACxBR,KAAKE,mBAAqB,KAC1BF,KAAKuE,YAAYC,KAAK,CACpBzB,MAAO/C,KAAKgC,WACRhC,KAAKgB,2BACLhB,KAAKyE,kBACT,EAGIzE,KAAA0E,aAAgB3B,IAEtB,GAAI/C,KAAK2B,WAAagD,MAAMC,QAAQ7B,IAAUA,IAAU,KAAM,CAG5D,GAAI/C,KAAK+C,MAAO,CACd,IAAI8B,EAAc7E,KAAK+C,MAAmB+B,QAE1C,GAAI9E,KAAK+C,MAAMc,SAASd,GAAQ,CAC9B8B,EAAWE,OAAOF,EAAWG,QAAQjC,GAAQ,E,KACxC,CACL8B,EAAWI,KAAKlC,GAChB8B,EAAa7E,KAAKkF,wBAAwBL,E,CAG5C7E,KAAK+C,MAAQ8B,EAAWM,SAAW,EAAI,KAAON,C,KACzC,CACL7E,KAAK+C,MAAQ,CAACA,E,MAEX,CACL/C,KAAK+C,MAAQA,C,CAGf/C,KAAKoF,SAASZ,KAAK,CAAEzB,MAAO/C,KAAK2B,SAAW3B,KAAK+C,MAAQA,GAAQ,EAG3D/C,KAAAqF,YAAetC,IACrBuC,aAAatF,KAAKuF,iBAClBvF,KAAKuF,gBAAkBC,OAAOC,YAC5B,IAAMzF,KAAK0F,QAAQlB,KAAK,CAAEzB,WAC1B/C,KAAK8C,aACN,EAGK9C,KAAA2F,WAAa,KACnB,IAAK3F,KAAKG,aAAeH,KAAK0C,UAAY1C,KAAKa,UAAW,CACxDb,KAAKyC,QAAU,MACf6C,aAAatF,KAAK4F,cAElB,GAAI5F,KAAK0C,QAAQyC,OAAS,EAAG,CAC3BnF,KAAK6F,6BACL7F,KAAK4C,cAAgB5C,KAAK8F,mBAAmB9F,KAAK0C,Q,KAC7C,CACL1C,KAAKa,UAAY,CAAC,CAAEkF,MAAO/F,KAAKmB,oBAAqB4B,MAAO,KAC5D/C,KAAK4C,cAAgB5C,KAAKa,S,CAG5Bb,KAAK2C,gBAAkB3C,KAAK4C,cAE5B,GAAI5C,KAAKgG,sBAAuB,CAE9BhG,KAAKa,UAAY,KACjBb,KAAKiG,uCACLjG,KAAKkG,iB,MACA,GAAIlG,KAAKK,oBAAqB,CACnCL,KAAKkG,kBACLlG,KAAKK,oBAAsB,K,OAExB,IAAKL,KAAKgC,WAAY,CAC3BhC,KAAK0C,QAAU1C,KAAKa,WAAa,E,GAS7Bb,KAAA8F,mBAAsBpD,IAC5B,MAAMyD,EAAyB,GAC/B,MAAMC,EAAiC,GAEvC1D,EAAQW,SAASgD,IACf,GAAIA,EAAOC,SAAU,CAEnB,MAAMC,EAAkC,GACxCF,EAAOC,SAASjD,SAASmD,IACvB,GAAIL,EAAatC,SAAS2C,EAAMzD,OAAQ,CACtC0D,QAAQC,KACN,wBAAwB1G,KAAK+F,qDAAqDS,EAAMzD,iC,KAErF,CACLoD,EAAalB,KAAKuB,EAAMzD,OACxBwD,EAAgBtB,KAAKuB,E,KAIzBJ,EAAenB,KAAI0B,OAAAC,OAAAD,OAAAC,OAAA,GACdP,GAAM,CACTC,SAAUC,I,KAEP,CAEL,GAAIJ,EAAatC,SAASwC,EAAOtD,OAAQ,CACvC0D,QAAQC,KACN,wBAAwB1G,KAAK+F,qDAAqDM,EAAOtD,iC,KAEtF,CACLoD,EAAalB,KAAKoB,EAAOtD,OACzBqD,EAAenB,KAAKoB,E,MAI1B,OAAOD,CAAc,EAMfpG,KAAA6F,2BAA6B,KACnC,GAAI7F,KAAK0C,QAAQyC,OAAS,EAAG,CAC3BnF,KAAK0C,QAAQmE,KAAKR,IAChB,IAAKA,EAAOtD,MAAO,CACjBsD,EAAOtD,MAAQsD,EAAON,K,OAMtB/F,KAAA8G,oBAAuBC,IAC7B/G,KAAKU,iBAAmBqG,EAAM7C,OAAOxB,OAAO,EAGtC1C,KAAAgH,aAAe,KACrB,GAAIhH,KAAKiH,oBAAqB,CAC5BjH,KAAKiH,oBAAoBC,UACvBlH,KAAKiH,oBAAoBE,gBAAkB,EACvC,cACA,wB,GAIFnH,KAAAoH,cAAiBtG,IACvB,GAAId,KAAKc,OAASA,EAAM,CACtBd,KAAKc,KAAOA,C,GAIRd,KAAAqH,kBAAqBtE,GAC3BsE,EAAkBtE,EAAO/C,KAAK4C,eAExB5C,KAAAsH,yBAA4BC,GAClCA,IAAc,MAAdA,SAAc,SAAdA,EACIV,KAAK9D,GAAU/C,KAAKqH,kBAAkBtE,KACvCyE,QAAQzB,KAAYA,IACpB0B,KAAK,MAEFzH,KAAA0H,4BACNrB,GAAoBM,OAAAC,OAAAD,OAAAC,OAAA,GAEjBP,GAAM,CACTC,SACED,EAAOC,UACPqB,EACEtB,EAAOC,SACPtG,KAAKgC,cAAgBhC,KAAKuB,4BAC1BvB,KAAKgC,WACDhC,KAAKgB,4BAA8B,GACnChB,KAAKe,kBACTf,KAAKgC,WAAahC,KAAKiC,oBAAsB,WAK3CjC,KAAAkF,wBAA2BnC,IACjC,MAAM8B,EAAa9B,EACnB,MAAM6E,EAAuB5H,KAAKU,iBAAiBmG,KAChDR,GAAWA,EAAOtD,QAGrB8B,EAAWgD,MACT,CAACC,EAAGC,IACFH,EAAqB5C,QAAQ8C,GAAKF,EAAqB5C,QAAQ+C,KAGnE,OAAOlD,CAAU,EAGX7E,KAAAgI,yBAA2B,KACjC,GAAIhI,KAAKiH,oBAAqB,CAC5BjH,KAAKiI,eAAezD,KAAK,CAAEzB,MAAO/C,KAAKiH,oBAAoBlE,QAC3D/C,KAAK0E,aAAa1E,KAAKiH,oBAAoBlE,M,CAE7C/C,KAAKgH,cAAc,EAKbhH,KAAAkI,yBACNnB,I,QAEA,MAAMhE,MAAEA,EAAKgD,MAAEA,EAAKoC,SAAEA,GAAapB,EAAM7C,OAEzC,GAAI6B,IAAU/F,KAAKmB,oBAAqB,EACtCiD,EAAApE,KAAKqE,2BAAuB,MAAAD,SAAA,SAAAA,EAAEE,QAC9B,M,CAGF,GAAItE,KAAKgC,WAAY,CACnBhC,KAAK+C,MAAQA,GAAS,KACtB/C,KAAKS,2BAA6B,KAGlC,GAAIT,KAAK+C,QAAU/C,KAAKoI,UAAW,CACjCpI,KAAKgB,2BACHhB,KAAKqH,kBAAkBrH,KAAK+C,QAAoB,I,CAGpD/C,KAAKiD,mBAAqB,KAC1BjD,KAAKyE,iBACHzE,KAAKqI,kBAAkBrI,KAAKgB,6BAA+B,I,CAG/D,GAAI+B,EAAO,CACT,GAAI/C,KAAK2B,YAAY2G,EAAAtI,KAAK+C,SAAK,MAAAuF,SAAA,SAAAA,EAAEzE,SAASd,IAAQ,CAChD/C,KAAKuI,iBAAiB/D,KAAK,CAAEzB,S,KACxB,CACL/C,KAAKiI,eAAezD,KAAK,CAAEzB,S,EAI/B/C,KAAKwI,qBAAuBL,EAC5BnI,KAAK0E,aAAa3B,GAAS,KAAK,EAG1B/C,KAAAyI,sBAAwB,EAC9BvE,aAEA,MAAMwE,EAAY1I,KAAKU,iBACpB8G,QAAQnB,IAAYA,EAAOpF,WAC3B4F,KAAKR,GAAWA,EAAOtD,QAE1B,GAAImB,EAAOyE,OAAQ,CAEjB,MAAMC,EAAmB5I,KAAK+C,MAC1B2F,EAAUlB,QACPzE,GAAU/C,KAAK+C,QAAW/C,KAAK+C,MAAmBc,SAASd,KAE9D2F,EAEJE,EAAiBvF,SAASN,GAAU/C,KAAKiI,eAAezD,KAAK,CAAEzB,W,KAC1D,CAEJ/C,KAAK+C,MAAmBM,SAASN,GAChC/C,KAAKuI,iBAAiB/D,KAAK,CAAEzB,W,CAIjC/C,KAAK0E,aAAaR,EAAOyE,OAASD,EAAY,KAAK,EAG7C1I,KAAA6I,iBAAoB9B,IAC1B/G,KAAKc,KAAOiG,EAAM7C,OAAOpD,KACzBd,KAAKe,kBAAoB,GAEzB,GAAIf,KAAKgC,WAAYhC,KAAK8I,6BAA6B,EAKjD9I,KAAA+I,mBAAsB9E,IAC5BA,EAAG+E,aAAe,KAClB,IAAKhJ,KAAK2B,SAAU,CAClB3B,KAAKiJ,uBAAuBhF,EAAGC,OAAOgF,I,GAIlClJ,KAAA8I,4BAA8B,K,MACpC,MAAMK,GACJ/E,EAAApE,KAAK2D,GAAGyF,cAAU,MAAAhF,SAAA,SAAAA,EAAEiF,cAAc,oBAEpC,GAAIF,EAAgB,CAClB,GAAInJ,KAAKc,KAAM,CACbqI,EAAeG,UAAUC,IAAI,0B,KACxB,CACLJ,EAAeG,UAAUE,OAAO,0B,IAK9BxJ,KAAAyJ,gBAAmB1C,IACzB,IAAK/G,KAAKc,KAAM,CACdiG,EAAM2C,gB,GAIF1J,KAAAgG,oBAAsB,IAC5BhG,KAAKgC,cAAgBhC,KAAKkB,qBAEpBlB,KAAA2J,YAAe5C,I,QACrB,IAAK/G,KAAKc,MAAQd,KAAK4J,KAAM,CAC3B,GAAI5J,KAAKgG,sBAAuB,CAC9BhG,KAAK4J,KAAKlH,QAAU1C,KAAK2C,e,MACpB,IACJ3C,KAAKG,cACLH,KAAKyC,YACL2B,EAAApE,KAAKa,aAAS,MAAAuD,SAAA,SAAAA,EAAEe,WACfnF,KAAKgC,YAAchC,KAAKS,4BAC1B,CACAT,KAAKa,UAAY,KACjBb,KAAK4J,KAAKlH,QAAU1C,KAAK4C,a,EAI7B,GAAImE,EAAM7C,SAAW,EAAG,EACtBoE,EAAAtI,KAAK4J,QAAI,MAAAtB,SAAA,SAAAA,EAAEuB,iB,GAIP7J,KAAA8J,0BAA6B/C,I,MACnC,IAAK/G,KAAKiB,SAAU,CAClB8F,EAAM2C,kBACNtF,EAAApE,KAAKqE,2BAAuB,MAAAD,SAAA,SAAAA,EAAEE,QAC9BtE,KAAK2J,YAAY5C,E,GAIb/G,KAAA+J,YAAehD,I,QACrBA,EAAMiD,kBACNhK,KAAKG,YAAc,MACnBmF,aAAatF,KAAK4F,cAClB5F,KAAKiK,aACLjK,KAAK0E,aAAa,MAClB1E,KAAKkK,QAAQ1F,OAEb,GAAIxE,KAAKgC,WAAY,CACnBhC,KAAKyE,iBAAmB,MACxBL,EAAApE,KAAKqE,2BAAuB,MAAAD,SAAA,SAAAA,EAAEE,O,KACzB,EACLgE,EAAAtI,KAAKmK,uBAAmB,MAAA7B,SAAA,SAAAA,EAAEhE,O,GAItBtE,KAAAiJ,uBAA0BC,IAEhC,GAAIlJ,KAAKc,MAAQoI,IAAQ,KAAOlJ,KAAKe,kBAAkBoE,SAAW,EAAG,CACnEnF,KAAKoH,cAAc,M,CAGrB,GAAI8B,EAAI/D,SAAW,GAAKnF,KAAKgC,WAAY,CACvChC,KAAKe,kBAAoB,GACzB,M,CAGFyE,OAAOF,aAAatF,KAAKoK,wBACzBpK,KAAKoK,uBAAyB5E,OAAOC,YACnC,IAAOzF,KAAKe,kBAAoB,IAChC,KAGF,GAAImI,IAAQ,OAASlJ,KAAKe,kBAAmB,CAC3Cf,KAAKe,mBAAqBmI,EAC1BlJ,KAAKqK,eAEL,IAAKrK,KAAKa,UAAW,CACnBb,KAAK0E,aAAa1E,KAAK2C,gBAAgB,GAAGI,M,IAKxC/C,KAAAsK,0BAA6BvD,IACnC,GAAKA,EAAMmC,MAAQ,UAAYnC,EAAMmC,MAAQ,OAAUlJ,KAAKc,KAAM,CAChEiG,EAAMiC,aAAe,I,CAEvBhJ,KAAKiJ,uBAAuBlC,EAAMmC,IAAI,EAGhClJ,KAAAuK,cAAiBxD,I,MACvB,GAAKA,EAAMmC,MAAQ,UAAYnC,EAAMmC,MAAQ,OAAUlJ,KAAKc,KAAM,CAChEiG,EAAMiC,aAAe,I,CAEvB,MAAMwB,EAAazD,EAAMmC,MAAQ,aAAenC,EAAMmC,MAAQ,UAE9D,GAAIlJ,KAAK4J,OAAS5J,KAAKc,KAAM,CAC3B,GAAId,KAAKgG,wBAA0Be,EAAMmC,MAAQ,SAAWsB,GAAa,CACvExK,KAAK4J,KAAKlH,QAAU1C,KAAK2C,e,MACpB,IAAK3C,KAAKG,YAAa,CAC5BH,KAAKa,UAAY,KACjBb,KAAK4J,KAAKlH,QAAU1C,KAAK4C,a,EAI7B,GAAI5C,KAAKc,MAAQiG,EAAMmC,MAAQ,QAAS,CACtClJ,KAAKoH,cAAc,M,KACd,CACL,IAAKoD,GAAcxK,KAAKa,YAAc,KAAM,CAC1C,GAAIkG,EAAMmC,MAAQ,KAAOlJ,KAAKe,kBAAkBoE,QAAU,EAAG,CAE3D,MAAMsF,EACJ1D,EAAMmC,MAAQ,MACZwB,KAAiB3D,EAAM4D,UACrBD,KAAiB3D,EAAM6D,SAE7B,KAAM5K,KAAKgC,YAAcyI,GAAU,EACjCrG,EAAApE,KAAK4J,QAAI,MAAAxF,SAAA,SAAAA,EAAEyG,mBAAmB9D,E,EAGlC,IAAK/G,KAAK2B,SAAU,CAClB3B,KAAKiJ,uBAAuBlC,EAAMmC,I,KAMlClJ,KAAA8K,uBAAyB,KAC/B9K,KAAKY,mBAAqB,IAAI,EAGxBZ,KAAA+K,sBAAyB9G,I,MAC/B,MAAM+G,GAAc5G,EAAApE,KAAK4J,QAAI,MAAAxF,SAAA,SAAAA,EAAEiF,cAAc,iBAC7C,KACIrJ,KAAKqE,yBACLJ,EAAGgH,gBAAkBjL,KAAKqE,4BAC1B2G,GAAe/G,EAAGgH,gBAAkBD,GACtC,CACAhL,KAAKoH,cAAc,OACnBpH,KAAK8I,6B,CAEP9I,KAAKY,mBAAqB,KAAK,EAGzBZ,KAAAqK,aAAe,K,MACrB,MAAM3H,EAAU1C,KAAK8F,mBACnB9F,KAAKgC,WAAa,IAAIhC,KAAK4C,eAAiB5C,KAAKU,kBAGnD,MAAMwK,EAAYxI,EAAQyI,MAAM9E,KAAaA,EAAOC,WACpD,IAAI8E,EAAqC,GAEzC,IAAIC,EAEJ,GAAIrL,KAAKgC,WAAY,CACnBqJ,EAAsB1D,EACpBjF,IACE1C,KAAKuB,4BACPvB,KAAKiD,oBAAsB,GAC3BjD,KAAKiC,qBAEPjC,KAAKS,2BAA6B,K,KAC7B,CACL4K,EAAsB1D,EACpBjF,EACA,MACA1C,KAAKe,kBACL,Q,CAIJ,IACGmK,KACD9G,EAAAiH,EAAoB,MAAE,MAAAjH,SAAA,SAAAA,EAAE2B,SAAU/F,KAAKmB,oBACvC,CACAiK,EAAqBC,C,MAChB,GAAIH,EAAW,CACpBE,EAAqB1I,EAAQmE,KAAKR,GAChCrG,KAAKwB,4BACL6J,EAAoBrG,QAAQqB,MAAa,EACrCA,EACArG,KAAK0H,4BAA4BrB,I,CAIzC,GACE+E,EAAmBjG,OAAS,KAC1B+F,GACAE,EAAmBD,MACjB,EAAG7E,cAAeA,GAAYA,EAASnB,OAAS,KAEpD,CACAnF,KAAKa,UAAY,KACjBb,KAAK2C,gBAAkByI,C,KAClB,CACLpL,KAAKa,UAAY,CAAC,CAAEkF,MAAO/F,KAAKmB,oBAAqB4B,MAAO,KAC5D/C,KAAK2C,gBAAkB3C,KAAKa,S,GAQxBb,KAAAsL,eAAiB,KACvBtL,KAAKG,YAAc,MACnBH,KAAKa,UAAY,CAAC,CAAEkF,MAAO/F,KAAK0B,aAAcqB,MAAO,GAAIN,QAAS,OAClE,GAAIzC,KAAK2C,kBAAoB3C,KAAKa,WAAab,KAAKgC,WAAY,CAC9DhC,KAAK2C,gBAAkB3C,KAAKa,S,MACvB,GAAIb,KAAK4C,gBAAkB5C,KAAKa,YAAcb,KAAKgC,WAAY,CACpEhC,KAAK4C,cAAgB5C,KAAKa,S,CAE5B,GAAIb,KAAKuL,QAAS,CAChBvL,KAAK4F,aAAeJ,OAAOC,YAAW,KACpCzF,KAAKyC,QAAU,MACfzC,KAAKG,YAAc,KACnBH,KAAKa,UAAY,CACf,CAAEkF,MAAO/F,KAAKyB,kBAAmBsB,MAAO,GAAIyI,SAAU,OAExDxL,KAAK2C,gBAAkB3C,KAAKa,UAC5B,IAAKb,KAAKgC,WAAYhC,KAAK4C,cAAgB5C,KAAKa,SAAS,GACxDb,KAAKuL,Q,GAIJvL,KAAAqI,kBAAqBtC,IAAoB,IAAA3B,EAC/C,OAAA2B,KAAS3B,EAAApE,KAAK4C,cAAc6I,MAAMpF,GAAWA,EAAON,QAAUA,OAAM,MAAA3B,SAAA,SAAAA,EAAErB,MAAK,EAErE/C,KAAA0L,4BAA+B3E,IACrC/G,KAAKgB,2BAA8B+F,EAAM4E,OAA4B5I,MACrE/C,KAAKqF,YAAYrF,KAAKgB,4BAItB,GAAIhB,KAAK+C,OAAS,KAAM,CACtB/C,KAAK0E,aAAa,K,CAGpB1E,KAAKyE,iBAAmB,KACxBzE,KAAKiD,mBAAqBjD,KAAKgB,2BAC/BhB,KAAKoH,cAAc,MAEnB,IAAKpH,KAAKkB,qBAAsB,CAC9BlB,KAAKqK,eACL/E,aAAatF,KAAK4L,cAElBpG,OAAOC,YAAW,KAChBzF,KAAKiG,sCAAsC,GAC1C,I,GAICjG,KAAAiG,qCAAuC,K,MAC7C,MAAM4F,GACJzH,EAAApE,KAAK2D,GAAGyF,cAAU,MAAAhF,SAAA,SAAAA,EAAEiF,cAClB,qCAGJ,GAAIwC,EAAiC,CACnCA,EAAgCC,UAC9B9L,KAAKa,YAAc,KAAOb,KAAKmB,oBAAsB,E,GAInDnB,KAAA+L,iCAAmC,K,QACzC,MAAMC,GACJ5H,EAAApE,KAAK2D,GAAGyF,cAAU,MAAAhF,SAAA,SAAAA,EAAEiF,cAClB,gCAGJ,MAAM4C,EAAgB,IACpB3D,EAAAtI,KAAKoI,aAAS,MAAAE,SAAA,SAAAA,EAAEnD,aACX+G,EAAkClM,KAAK0C,oBAE9C,GACEsJ,GACAA,EAA2BF,YAAcG,EACzC,CACAD,EAA2BF,UAAYG,C,GAInCjM,KAAAmM,gBAAmBpJ,GACzB/C,KAAKqH,kBAAkBtE,IAAU,KAE3B/C,KAAAkG,gBAAkB,KACxB,IAAKlG,KAAKE,oBAAsBF,KAAKoI,UAAW,CAC9CpI,KAAKgB,2BAA6BhB,KAAKgC,WACnChC,KAAKmM,gBAAgBnM,KAAKoI,WAC1B,KAEJpI,KAAKgD,aAAehD,KAAKoI,UACzBpI,KAAKE,mBAAqB,I,GAItBF,KAAAoM,QAAU,KAChBpM,KAAKqM,QAAQ7H,MAAM,EAGbxE,KAAAsM,OAAS,EAAGrB,oB,MAClB,MAAMU,EAASV,EACf,GACEU,IAAW,OACTA,EAAOY,UAAY,MAAQZ,EAAOzE,UAAUrD,SAAS,SACpD8H,EAAOY,UAAY,MAAQZ,EAAOzE,UAAUrD,SAAS,WACxD,CACA,M,CAGF,MAAMmH,GAAc5G,EAAApE,KAAK4J,QAAI,MAAAxF,SAAA,SAAAA,EAAEiF,cAAc,iBAE7C,GACErJ,KAAKgC,cACHhC,KAAK4J,MACP+B,IAAW3L,KAAK4J,OACfjF,MAAM6H,KAAKxM,KAAK4J,KAAK6C,iBAAiB,oBAAoB5I,SACzD8H,MAEA3L,KAAK0M,aAAef,IAAW3L,KAAK0M,gBACpC1B,GAAeW,IAAWX,GAC5B,CACA,IAAKhL,KAAKQ,iBAAkB,CAC1BR,KAAKoH,cAAc,OAEnB,IAAKpH,KAAK+C,MAAO,CACf/C,KAAKiK,Y,EAGTjK,KAAK8I,6B,CAGP9I,KAAKQ,iBAAmB,MACxBR,KAAK2M,OAAOnI,MAAM,EAGZxE,KAAA4M,cAAiB3I,IACvB,GACGA,EAAGC,OAAOD,GAAkBgH,gBAC3BjL,KAAKqE,0BACNrE,KAAKC,4BACN,CACAD,KAAKoH,cAAc,OACnBpH,KAAK8I,8BACL9I,KAAK2M,OAAOnI,M,CAEdxE,KAAKC,4BAA8B,KAAK,EAGlCD,KAAA6M,gBAAkB,KACxB7M,KAAK+C,MAAQ/C,KAAKgD,aAClB,GAAIhD,KAAKgC,WAAY,CACnBhC,KAAKgB,2BAA6BhB,KAAKmM,gBACrCnM,KAAK+C,OAEP/C,KAAKyE,iBAAmBzE,KAAK+C,K,GAIzB/C,KAAAiK,WAAa,K,MACnBjK,KAAKa,UAAY,KAEjB,GAAIb,KAAKgC,WAAY,EACnBoC,EAAApE,KAAKqE,2BAAuB,MAAAD,SAAA,SAAAA,EAAE0I,aAAa,QAAS,IACpD9M,KAAKgB,2BAA6B,KAClChB,KAAK2C,gBAAkB3C,KAAK4C,a,GAIxB5C,KAAA+M,mBAAsB1G,GAC5B2G,EAAA,UACEjK,MAAOsD,EAAOtD,MACd9B,SAAUoF,EAAOpF,SACjBgM,SAAU5G,EAAOtD,QAAU/C,KAAKoI,WAE/B/B,EAAON,M,CAp/BZ,oBAAAmH,GACEC,EAAoBnN,KAAKiB,SAAUjB,KAAK2D,G,CA0I1C,cAAAyJ,CAAeC,GACbA,EAAWrN,KAAKsL,iBAAmBtL,KAAK2F,Y,CAU1C,mBAAA2H,GACEtN,KAAK2F,Y,CASP,sBAAA4H,CAAuBF,GACrB,GAAIrN,KAAK8C,eAAiBuK,EAAU,CAClCrN,KAAK8C,aAAeuK,C,EAcxB,mBAAAG,GACE,GAAIxN,KAAK+C,QAAU/C,KAAKoI,UAAW,CACjC,GAAIpI,KAAK+C,OAAS/C,KAAK2B,SAAU,CAC/B3B,KAAKoI,UAAYpI,KAAKsH,yBAAyBtH,KAAK+C,OAChD/C,KAAKkF,wBAAwBlF,KAAK+C,OAClC,KACJ/C,KAAK+L,kC,KACA,CACL/L,KAAKoI,UAAYpI,KAAKqH,kBAAkBrH,KAAK+C,OACzC/C,KAAK+C,MACL,I,EAIR,GAAI/C,KAAKgC,YAAchC,KAAK+C,MAAO,CAEjC/C,KAAKgB,2BACHhB,KAAKqH,kBAAkBoG,OAAOzN,KAAKoI,aAAe,I,EAKxD,kBAAAsF,GACE1N,KAAKc,KAAOd,KAAK2N,OAAOnJ,OAASxE,KAAK4N,QAAQpJ,M,CAsDhD,oBAAAqJ,G,MACEC,EAAwB9N,KAAK2D,GAAI3D,KAAK6M,kBACtCzI,EAAApE,KAAKW,wBAAoB,MAAAyD,SAAA,SAAAA,EAAE2J,Y,CAG7B,iBAAAC,GACE,MAAMC,EAAiBjO,KAAK2B,SACxB3B,KAAKsH,yBAAyBtH,KAAK+C,OACnC/C,KAAKqH,kBAAkBrH,KAAK+C,OAChC/C,KAAKoI,UAAY6F,EAAiBjO,KAAK+C,MAAQ,KAC/C/C,KAAKI,oBAAsB8N,EAAkBlO,KAAK2D,GAAIhE,GAEtDwN,EAAoBnN,KAAKiB,SAAUjB,KAAK2D,IAExC3D,KAAK6F,6BAELsI,EAAqBnO,KAAK2D,GAAI3D,KAAK6M,iBAEnC,IAAK7M,KAAK0C,QAAQyC,OAAQ,CACxBnF,KAAKK,oBAAsB,KAC3BL,KAAKa,UAAY,CAAC,CAAEkF,MAAO/F,KAAKmB,oBAAqB4B,MAAO,KAC5D/C,KAAK4C,cAAgB5C,KAAKa,UAC1Bb,KAAK2C,gBAAkB3C,KAAKa,S,KACvB,CACLb,KAAKkG,kBACLlG,KAAK4C,cAAgB5C,KAAK8F,mBAAmB9F,KAAK0C,Q,EAItD,gBAAA0L,GACEC,EACE,CAAC,CAAEC,KAAMtO,KAAK+F,MAAOwI,SAAU,UAC/B,UAGF,GAAIvO,KAAKyC,QAAS,CAChBzC,KAAKsL,gB,CAGP,GAAItL,KAAKgC,WAAY,CACnBhC,KAAKyE,iBAAmBzE,KAAKoI,S,CAG/BpI,KAAKW,qBAAuB,IAAI6N,iBAAiBxO,KAAKkD,sBACtDlD,KAAKW,qBAAqB8N,QAAQzO,KAAK2D,GAAI,CACzC+K,WAAY,KACZC,UAAW,M,CAIf,kBAAAC,GACE,GAAI5O,KAAKiH,sBAAwBjH,KAAKiB,SAAU,CAC9CjB,KAAKgH,c,EAQT,cAAM6H,GACJ,GAAI7O,KAAKiH,oBAAqB,CAC5BjH,KAAKiH,oBAAoB3C,O,MACpB,GAAItE,KAAKmK,oBAAqB,CACnCnK,KAAKmK,oBAAoB7F,O,MACpB,GAAItE,KAAKqE,wBAAyB,CACvCrE,KAAKqE,wBAAwBC,O,EAyrBjC,MAAAwK,G,YACE,MAAM1M,KACJA,EAAInB,SACJA,EAAQG,UACRA,EAASC,WACTA,EAAUC,UACVA,EAASyE,MACTA,EAAKxF,OACLA,EAAMoB,SACNA,EAAQC,KACRA,EAAIc,QACJA,EAAOb,YACPA,EAAWC,SACXA,EAAQC,SACRA,EAAQC,WACRA,EAAUG,gBACVA,EAAeG,mBACfA,EAAkBC,iBAClBA,EAAgBC,eAChBA,EAAc4F,UACdA,EAAS/F,MACTA,EAAKoC,iBACLA,EAAgB3D,KAChBA,EAAIR,QACJA,EAAOU,2BACPA,EAA0ByB,QAC1BA,EAAOM,MACPA,EAAK5B,oBACLA,EAAmByB,cACnBA,EAAaV,cACbA,EAAa6M,KACbA,EAAI3O,oBACJA,EAAmBoI,qBACnBA,EAAoBrI,YACpBA,EAAWwC,gBACXA,EAAe/B,mBACfA,GACEZ,KAIJgP,EACEhP,KAAK2D,GACL3B,EAAayC,EAAoB2D,EACjCxG,GAAQtB,EACRW,GAGF,MAAMgO,EAAU,GAAG1M,IAAqB2M,EAAoBC,QAE5D,MAAMC,EAAiBC,EAAoB9M,IAAoBtB,GAE/D,MAAMqO,EAAcC,EAClBvP,KAAK2D,GACLrD,EACAe,IAAe,GACf+N,GACAI,OAEF,MAAMC,EAAmB9N,EACrB3B,KAAKsH,yBAAyBc,GAC9BpI,KAAKqH,kBAAkBe,GAE3B,MAAMsH,IACHzO,IACAe,IACKhB,IACAoH,IAAc3F,GAAWN,GAEjC,OACE6K,EAAC2C,EAAI,CAAAzG,IAAA,2CACH0G,MAAO,CACL,qBAAsB3O,EACtB,uBAAwBe,EACxB,CAAC,aAAaI,KAASA,IAAS,SAChC,uBAAwBhB,EACxB,CAAC,YAAYiB,KAAUA,IAAU,WAEnCiK,OAAQtM,KAAKsM,QAEbU,EAAA,sBAAA9D,IAAA,2CAAoBpH,SAAUA,IAC1BR,GACA0L,EAAA,kBAAA9D,IAAA,2CACE2G,IAAKvP,EACLyF,MAAOA,EACP1E,WAAYA,EACZU,SAAUA,EACVd,SAAUA,EACVa,SAAUA,GAEVkL,EAAA,QAAA9D,IAAA,2CAAMtH,KAAK,cAAckO,KAAK,iBAGlC9C,EAAA,gCAAA9D,IAAA,2CACE6G,IAAMpM,GAAQ3D,KAAKgQ,SAAWrM,EAC9BiM,MAAO,CAAE,YAAa9O,GACtBsB,KAAMA,EACNhB,UAAWA,EACXH,SAAUA,EACVa,SAAUA,EACVS,iBAAkBA,GAEjB0N,EAAWjQ,KAAK2D,GAAI,UAClB1C,KACCa,KAAciB,IACdiK,EAAA,QAAA9D,IAAA,2CACE4G,KAAK,YACLF,MAAO,CACL9N,WACA,cAAeiB,IAGjBiK,EAAA,QAAA9D,IAAA,2CAAMtH,KAAK,UAGhBE,EACCkL,EAAA,qBACEA,EAAA,SAAIyC,IAEJS,MAAuBvO,EACzBqL,EAAA,SAAArG,OAAAC,OAAA,CACEmJ,IAAMpM,GAAQ3D,KAAKiH,oBAAsBtD,EACzC1C,SAAUA,EACVkP,SAAUnQ,KAAKgI,yBACfjG,SAAUA,EACVqO,GAAI9P,EAAO,aACCyF,EAAK,mBACCuJ,EAAW,eACfL,EACd3C,OAAQtM,KAAKsM,OACbF,QAASpM,KAAKoM,QACdiE,UAAWrQ,KAAKsK,0BAChByE,KAAMA,GACF3O,GAEJ4M,EAAA,UAAQjK,MAAM,GAAGkK,SAAQ,KAAChM,UAAWkB,GAClCN,GAEFa,EAAQmE,KAAKR,GACZA,EAAOC,SACL0G,EAAA,YAAUjH,MAAOM,EAAON,OACrBM,EAAOC,SAASO,KAAKL,GACpBxG,KAAK+M,mBAAmBvG,MAI5BxG,KAAK+M,mBAAmB1G,MAI5BrE,EACFgL,EAAA,OAAK4C,MAAM,+BACT5C,EAAA,SACE4C,MAAO,CACL,aAAc,KACd,eAAgB,KAChB,sBAAuB5O,GAEzBsP,KAAK,WACLC,aAAa,MAAK,aACNxK,EAAK,mBACCuJ,EAAW,wBACN9G,EAAoB,oBACzB,OAAM,gBACT,GAAG1H,IAAM,eACVmO,EAAO,gBACN,GAAGlN,IAAU,gBACbxB,EACfwP,IAAMpM,GAAQ3D,KAAKqE,wBAA0BV,EAC7CyM,GAAI9P,EACJyC,MAAO/B,GAA8BwP,UACrC3O,YAAaA,EACbZ,SAAUA,EACVwP,QAASzQ,KAAK0L,4BACdgF,QAAS1Q,KAAK2J,YACd0G,UAAWrQ,KAAKuK,cAChB6B,QAASpM,KAAKoM,QACdE,OAAQtM,KAAKsM,OACbyC,KAAMA,IAEPW,IACC1C,EAAA,OAAK4C,MAAM,0BACT5C,EAAA,aACEoD,GAAG,eACHL,IAAMpM,GAAQ3D,KAAK0M,YAAc/I,EAAG,aAElC3C,IACCoH,IAAc,MAAQ3F,GACnB,cACA,kBAENmN,MAAM,eACNe,UAAWC,EACXF,QAAS1Q,KAAK+J,YACdqC,QAASpM,KAAK8K,uBACdwB,OAAQtM,KAAK+K,sBACb3I,KAAMA,EACNyO,QAAQ,gBACRxO,MAAOzB,EAAqB,QAAU,SAExCoM,EAAA,OAAK4C,MAAM,aAGf5C,EAAA,QACE8D,YAAa9Q,KAAK8J,0BAClB8F,MAAO,CACL,cAAe,KACf,mBAAoB9O,GAEtB6P,UAAWI,EAAM,cACL,SAEd/D,EAAA,mBACY,SACVsD,KAAK,SACLV,MAAM,sCAIV5C,EAAA,OAAK4C,MAAM,oBACT5C,EAAA,UACEsD,KAAK,WACLV,MAAM,eACNG,IAAMpM,GAAQ3D,KAAKmK,oBAAsBxG,EACzCyM,GAAI9P,EAAO,aACC,GAAGyF,OACZpE,GAAYyG,EACT,GACEA,EAAUjD,aACL+G,EACLxJ,gBACa+M,IACfA,IAAqB5N,IACzB,mBACgByN,EAAW,eACfL,EAAO,gBACP,UAAS,gBACR,GAAGnO,IAAM,YACbP,EAAM,gBACFA,EAAM,gBACN,GAAGwB,IAClBd,SAAUA,EACVqL,OAAQtM,KAAKsM,OACbF,QAASpM,KAAKoM,QACdsE,QAAS1Q,KAAK2J,YACdmH,YAAa9Q,KAAKyJ,gBAClB4G,UAAWrQ,KAAKuK,eAEhByC,EAAA,iBACE6D,QAAQ,OACRjB,MAAO,CACL,aAAc,KACd,oBAAqBF,GACrB7N,aACGY,GAAWd,GACPoB,GAASA,EAAMoC,OAAS,GACxBnF,KAAKqH,kBAAkBe,KAG/BqH,GAAoB5N,GAEvBmL,EAAA,OAAK4C,MAAM,oBACRF,IAAe1C,EAAA,OAAK4C,MAAM,YAC3B5C,EAAA,QACE4C,MAAO,CACL,cAAe,KACf,mBAAoB9O,GAEtB6P,UAAWI,EAAM,cACL,WAIjBrB,IACC1C,EAAA,aACEoD,GAAG,eAAc,aACN,kBACXR,MAAM,eACNe,UAAWC,EACXF,QAAS1Q,KAAK+J,YACdqC,QAASpM,KAAK8K,uBACdwB,OAAQtM,KAAK+K,sBACb3I,KAAMA,EACNyO,QAAQ,gBACRxO,MAAOzB,EAAqB,QAAU,aAM7CsP,KAAsBvO,IACvBqL,EAAA,WAAA9D,IAAA,2CACE0G,MAAO,CACL,aACEnN,GACAtC,GACC6B,KACCsG,GAAAlE,EAAApE,KAAK2C,mBAAe,MAAAyB,SAAA,SAAAA,EAAG,MAAE,MAAAkE,SAAA,SAAAA,EAAEvC,SAAU5E,IACrCa,KACAgP,GAAAC,EAAAjR,KAAK4C,iBAAa,MAAAqO,SAAA,SAAAA,EAAG,MAAE,MAAAD,SAAA,SAAAA,EAAEjL,SAAU5E,GAEzC4O,IAAMpM,GAAQ3D,KAAK4J,KAAOjG,EAC1BuN,QACElP,EACIhC,KAAKqE,wBACLrE,KAAKmK,oBAEXgH,WAAYpL,EACZiK,SAAUhQ,KAAKgQ,SACf5N,KAAMA,EACN7B,OAAQA,EACRO,KAAMA,EACN4B,QAASV,EAAaW,EAAkBC,EACxCG,MAAOpB,EAAYyG,EAA0BA,EAC7ChH,UAAWA,EACXc,cAAeA,EACfkP,kBAAmBpR,KAAK6I,iBACxBwI,mBAAoBrR,KAAKkI,yBACzBoJ,sBAAuBtR,KAAKyI,sBAC5B8I,eAAgBvR,KAAK+I,mBACrByI,sBAAuBxR,KAAK8G,oBAC5B2K,qBAAsBzR,KAAKgE,YAC3B0N,SAAU1R,KAAK2D,GACfiJ,cAAe5M,KAAK4M,cACpB+E,eACE3P,GAAcL,GAAYO,EAAgB,SAAW,YAEvD0P,eAAgBjQ,EAChBkQ,YAAalQ,EAAW,KAAO,MAC/BmQ,iBAAkB9P,EAAa,KAAO,QAGzCL,GACCqL,EAAA,OAAA9D,IAAA,uDACY,SACVoH,KAAK,SACLV,MAAM,gCAGV5C,EAAA,uBAAA9D,IAAA,2CACE0G,MAAO,CACL,YAAa9O,GAEfiR,aAAczP,EACd0P,OAAQ5C,EAAiB7M,EAAmB,GAC5C0P,QAAS7C,EAAiB5M,EAAiB,GAC3CqN,IAAKvP,K","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icTabCss","IcTabStyle0","Tab","constructor","hostRef","this","focusFromClick","isInitialRender","contextId","disabled","monochrome","selected","theme","handleClick","tabClick","emit","tabId","position","tabPosition","tabFocus","handleFocus","focusTabId","handleMouseDown","watchDisabledHandler","removeDisabledFalse","el","disabledWatchHandler","tabEnabled","connectedCallback","tabCreated","disconnectedCallback","_a","document","querySelector","tabRemovedHandler","componentWillLoad","componentDidUpdate","setFocus","focus","render","h","Host","key","class","role","onClick","onFocus","onMouseDown","tabindex","isSlotUsed","name","variant"],"sources":["src/components/ic-tab/ic-tab.css?tag=ic-tab&encapsulation=shadow","src/components/ic-tab/ic-tab.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --indicator-initial-color: rgba(23 89 188 / 0%);\n --focus-indicator: var(--ic-border-focus);\n\n display: flex;\n align-items: center;\n border-radius: 0;\n color: var(--ic-tab-label);\n\n --ic-typography-color: var(--ic-tab-label);\n\n height: 2.5rem;\n padding: 0 var(--ic-space-md);\n cursor: pointer;\n position: relative;\n border-bottom: var(--ic-space-xxs) solid var(--indicator-initial-color);\n gap: var(--ic-space-xs);\n transition: all var(--ic-easing-transition-fast);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon);\n}\n\n:host(.ic-tab-disabled) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-disabled);\n}\n\n:host(:focus) {\n box-shadow: var(--focus-indicator);\n border-radius: var(--ic-border-radius);\n}\n\n:host(:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:hover) {\n background-color: var(--ic-tab-item-hover);\n}\n\n:host(:active) {\n background-color: var(--ic-tab-item-pressed);\n}\n\n:host(.ic-tab-selected) {\n border-bottom: var(--ic-space-xxs) solid var(--ic-tab-item);\n}\n\n:host(.ic-tab-disabled) {\n pointer-events: none;\n color: var(--ic-architectural-300);\n}\n\n:host(.ic-tab-disabled) ic-typography {\n --ic-typography-color: var(--ic-tab-label-disabled);\n}\n\n:host(.ic-tab-monochrome) {\n color: var(--ic-tab-label-monochrome);\n}\n\n:host(.ic-tab-monochrome.ic-tab-disabled) ic-typography {\n color: var(--ic-tab-label-monochrome-disabled);\n}\n\n:host(.ic-tab-monochrome) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-monochrome);\n}\n\n:host(.ic-tab-monochrome.ic-tab-disabled) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-monochrome-disabled);\n}\n\n:host(.ic-tab-monochrome.ic-tab-selected) {\n border-bottom: var(--ic-space-xxs) solid var(--ic-tab-item-monochrome);\n}\n\n:host(.ic-tab-monochrome:hover) {\n background-color: var(--ic-tab-item-hover-monochrome);\n}\n\n:host(.ic-tab-monochrome:active) {\n background-color: var(--ic-tab-item-pressed-monochrome);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.ic-tab-selected.with-transition) {\n transition: all var(--ic-easing-transition-slow),\n border-color var(--ic-transition-duration-slow);\n }\n}\n\n.ic-tab-label {\n pointer-events: none;\n text-wrap: nowrap;\n}\n\n::slotted(svg) {\n fill: currentcolor;\n}\n\n@media (forced-colors: active) {\n :host {\n border-bottom: var(--ic-space-xxs) solid canvas;\n }\n\n :host(.ic-tab-disabled) {\n color: GrayText;\n }\n\n :host(.ic-tab-disabled) ic-typography {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n\n/* Add back in after storybook has the `color-scheme: light dark` code */\n\n/* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {\n :host(ic-tab) .ic-tab-label {\n color: var(--ic-architectural-white);\n }\n :host(ic-tab.ic-tab-disabled) .ic-tab-label {\n color: inherit;\n }\n} */\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() el: HTMLIcTabElement;\n\n /** @internal The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /** @internal Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: boolean = false;\n\n /** @internal If `true`, the tab will display with a selected indicator and tabIndex will be set. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId!: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition!: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabCreated.emit(this.el);\n }\n\n disconnectedCallback(): void {\n document\n .querySelector<HTMLIcTabContextElement>(\n `ic-tab-context[context-id=${this.contextId}]`\n )\n ?.tabRemovedHandler(!!this.focusTabId);\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el) {\n this.el.focus();\n }\n }\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a separate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n render() {\n const {\n disabled,\n selected,\n theme,\n monochrome,\n handleClick,\n handleFocus,\n handleMouseDown,\n } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-selected\"]: !!selected,\n [\"ic-tab-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-tab-monochrome\"]: !!monochrome,\n }}\n role=\"tab\"\n aria-selected={`${selected}`}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n aria-disabled={`${disabled}`}\n tabindex={selected ? 0 : -1}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"],"mappings":"mIAAA,MAAMA,EAAW,0/IACjB,MAAAC,EAAeD,E,MCwBFE,EAAG,MALhB,WAAAC,CAAAC,G,qMAMUC,KAAAC,eAA0B,MAE1BD,KAAAE,gBAA2B,KAKVF,KAAAG,UAAqB,UAKtCH,KAAAI,SAAqB,MAOrBJ,KAAAK,WAAuB,MAGNL,KAAAM,SAAqB,MAStCN,KAAAO,MAAsB,UA8DtBP,KAAAQ,YAAc,KACpBR,KAAKS,SAASC,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,cAEjB,GAAIb,KAAKC,eAAgB,CACvBD,KAAKc,SAASJ,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,cAEjBb,KAAKC,eAAiB,K,GAIlBD,KAAAe,YAAc,KACpB,IAAKf,KAAKC,eAAgB,CACxBD,KAAKgB,WAAahB,KAAKW,MAEvBX,KAAKc,SAASJ,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,a,GAKbb,KAAAiB,gBAAkB,KAIxBjB,KAAKC,eAAiB,IAAI,C,CA/G5B,oBAAAiB,GACEC,EAAoBnB,KAAKI,SAAUJ,KAAKoB,G,CAmB1C,oBAAAC,GACErB,KAAKsB,WAAWZ,M,CA4BlB,iBAAAa,GACEvB,KAAKwB,WAAWd,KAAKV,KAAKoB,G,CAG5B,oBAAAK,G,OACEC,EAAAC,SACGC,cACC,6BAA6B5B,KAAKG,iBACnC,MAAAuB,SAAA,SAAAA,EACCG,oBAAoB7B,KAAKgB,W,CAG/B,iBAAAc,GACEX,EAAoBnB,KAAKI,SAAUJ,KAAKoB,G,CAG1C,kBAAAW,GACE/B,KAAKE,gBAAkB,K,CAOzB,cAAM8B,GACJ,GAAIhC,KAAKoB,GAAI,CACXpB,KAAKoB,GAAGa,O,EAuCZ,MAAAC,GACE,MAAM9B,SACJA,EAAQE,SACRA,EAAQC,MACRA,EAAKF,WACLA,EAAUG,YACVA,EAAWO,YACXA,EAAWE,gBACXA,GACEjB,KACJ,OACEmC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,oBAAqBtC,KAAKE,gBAC3B,CAAC,qBAAsBI,EACvB,CAAC,qBAAsBF,EACvB,CAAC,YAAYG,KAAUA,IAAU,UACjC,CAAC,uBAAwBF,GAE3BkC,KAAK,MAAK,gBACK,GAAGjC,IAClBkC,QAAShC,EACTiC,QAAS1B,EACT2B,YAAazB,EAAe,gBACb,GAAGb,IAClBuC,SAAUrC,EAAW,GAAK,GAEzBsC,EAAW5C,KAAKoB,GAAI,SAAWe,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,SAC3CV,EAAA,iBAAAE,IAAA,2CAAeC,MAAM,eAAeQ,QAAQ,SAC1CX,EAAA,QAAAE,IAAA,4CACEF,EAAA,QAAAE,IAAA,+CAGHO,EAAW5C,KAAKoB,GAAI,UAAYe,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,U","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icClassificationBannerCss","IcClassificationBannerStyle0","classificationText","default","official","secret","ClassificationBanner","constructor","hostRef","this","additionalSelectors","classification","country","inline","upTo","render","h","Host","key","class","variant"],"sources":["src/components/ic-classification-banner/ic-classification-banner.css?tag=ic-classification-banner&encapsulation=shadow","src/components/ic-classification-banner/ic-classification-banner.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-classification-banner: z-index of classification banner\n */\n\n:host {\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n height: var(--ic-space-lg);\n z-index: var(--ic-z-index-classification-banner);\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.ic-classification-banner-inline) {\n position: static;\n left: auto;\n bottom: auto;\n}\n\n.classification-banner {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: var(--ic-space-xxxs) var(--ic-space-md);\n}\n\n.default {\n background-color: var(--ic-classification-banner-not-set);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.official {\n background-color: var(--ic-classification-banner-official);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.official-sensitive {\n background-color: var(--ic-classification-banner-official-sensitive);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.secret {\n background-color: var(--ic-classification-banner-secret);\n color: var(--ic-classification-banner-text);\n}\n\n.top-secret {\n background-color: var(--ic-classification-banner-top-secret);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.offscreen {\n position: absolute;\n left: -9999px;\n background-color: #fff;\n color: #000;\n text-transform: none;\n}\n\n.offscreen:dir(rtl) {\n right: -9999px;\n}\n\n@media (forced-colors: active) {\n .classification-banner {\n border: var(--ic-border-hc);\n }\n}\n","import { Component, Prop, h, Host } from \"@stencil/core\";\nimport { IcProtectiveMarkings } from \"./ic-classification-banner.types\";\n\nconst classificationText = {\n default: \"protective marking not set\",\n official: \"official\",\n \"official-sensitive\": \"official-sensitive\",\n secret: \"secret\",\n \"top-secret\": \"top secret\",\n};\n\n@Component({\n tag: \"ic-classification-banner\",\n styleUrl: \"ic-classification-banner.css\",\n shadow: true,\n})\nexport class ClassificationBanner {\n /**\n * The additional information that will be displayed after the classification.\n */\n @Prop() additionalSelectors?: string = \"\";\n /**\n * The classification level to be displayed - also determines the banner and text colour.\n */\n @Prop() classification?: IcProtectiveMarkings = \"default\";\n /**\n * The optional text that will be displayed before classification to specify relevant country/countries.\n */\n @Prop() country?: string = \"uk\";\n /**\n * If `true`, the banner will appear inline with the page, instead of sticking to the bottom of the page.\n */\n @Prop() inline?: boolean = false;\n /**\n * If `true`, \"Up to\" will be displayed before the classification and country.\n */\n @Prop() upTo?: boolean = false;\n\n render() {\n const { inline, upTo } = this;\n\n // In case of unrecognized props, fallback to default\n let { country, additionalSelectors, classification } = this;\n if (!country) country = \"\";\n if (!additionalSelectors) additionalSelectors = \"\";\n if (\n !classification ||\n (classification && !classificationText[classification])\n )\n classification = \"default\";\n\n return (\n <Host class={{ [\"ic-classification-banner-inline\"]: !!inline }}>\n <banner\n aria-label=\"Protective marking\"\n class={{\n [\"classification-banner\"]: true,\n [`${classification}`]: classification,\n }}\n >\n {classification !== \"default\" ? (\n <span class=\"offscreen\">\n The protective marking of this page is:{\" \"}\n </span>\n ) : null}\n <ic-typography variant=\"caption-uppercase\">\n {classification === \"default\"\n ? classificationText[classification]\n : `${upTo ? \"up to\" : \"\"} \n ${country} \n ${classificationText[classification]} \n ${additionalSelectors}`}\n </ic-typography>\n </banner>\n </Host>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAA4B,ohHAClC,MAAAC,EAAeD,ECEf,MAAME,EAAqB,CACzBC,QAAS,6BACTC,SAAU,WACV,qBAAsB,qBACtBC,OAAQ,SACR,aAAc,c,MAQHC,EAAoB,MALjC,WAAAC,CAAAC,G,UASUC,KAAAC,oBAA+B,GAI/BD,KAAAE,eAAwC,UAIxCF,KAAAG,QAAmB,KAInBH,KAAAI,OAAmB,MAInBJ,KAAAK,KAAiB,K,CAEzB,MAAAC,GACE,MAAMF,OAAEA,EAAMC,KAAEA,GAASL,KAGzB,IAAIG,QAAEA,EAAOF,oBAAEA,EAAmBC,eAAEA,GAAmBF,KACvD,IAAKG,EAASA,EAAU,GACxB,IAAKF,EAAqBA,EAAsB,GAChD,IACGC,GACAA,IAAmBT,EAAmBS,GAEvCA,EAAiB,UAEnB,OACEK,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAO,CAAE,CAAC,qCAAsCN,IACpDG,EAAA,UAAAE,IAAA,wDACa,qBACXC,MAAO,CACL,CAAC,yBAA0B,KAC3B,CAAC,GAAGR,KAAmBA,IAGxBA,IAAmB,UAClBK,EAAA,QAAMG,MAAM,aAAW,0CACmB,KAExC,KACJH,EAAA,iBAAAE,IAAA,2CAAeE,QAAQ,qBACpBT,IAAmB,UAChBT,EAAmBS,GACnB,GAAGG,EAAO,QAAU,uBACnBF,sBACAV,EAAmBS,uBACnBD,M","ignoreList":[]}
|