@ukic/web-components 2.0.0-alpha.124 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-9d4961dc.js → helpers-60fda93f.js} +49 -21
- package/dist/cjs/helpers-60fda93f.js.map +1 -0
- package/dist/cjs/ic-alert.cjs.entry.js +4 -3
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +3 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/{ic-breadcrumbs.cjs.entry.js → ic-breadcrumb-group.cjs.entry.js} +7 -6
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -2
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +26 -30
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +3 -2
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +3 -2
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +6 -6
- package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +6 -5
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +3 -2
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +12 -11
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +8 -7
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +16 -15
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +9 -8
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +84 -29
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +11 -10
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +8 -7
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +6 -5
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +3 -2
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +16 -19
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +219 -25
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -3
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +10 -10
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +9 -8
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +2 -1
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +8 -7
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +12 -11
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +146 -0
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +5 -4
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +10 -10
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +2 -1
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +7 -6
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +4 -4
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-3ef30d9d.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/types-3eb02246.js +16 -0
- package/dist/cjs/types-3eb02246.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/ic-alert/ic-alert.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -2
- package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs-test-examples.js → ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js} +7 -7
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js.map +1 -0
- package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.css → ic-breadcrumb-group/ic-breadcrumb-group.css} +1 -0
- package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.js → ic-breadcrumb-group/ic-breadcrumb-group.js} +5 -5
- package/dist/{core/p-ed1d8712.entry.js.map → collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map} +1 -1
- package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.js → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js} +6 -6
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-button/ic-button.css +5 -11
- package/dist/collection/components/ic-button/ic-button.js +22 -52
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.types.js.map +1 -1
- package/dist/collection/components/ic-card/ic-card.js +1 -1
- package/dist/collection/components/ic-card/ic-card.js.map +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -4
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-data-entity/ic-data-entity.css +2 -2
- package/dist/collection/components/ic-data-entity/ic-data-entity.js +8 -8
- package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.js +6 -6
- package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.css +2 -2
- package/dist/collection/components/ic-footer/ic-footer.js +14 -14
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.types.js.map +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +2 -2
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +5 -5
- package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +8 -8
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +10 -10
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
- package/dist/collection/components/ic-hero/ic-hero.css +17 -12
- package/dist/collection/components/ic-hero/ic-hero.js +9 -9
- package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +6 -5
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +6 -6
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
- package/dist/collection/components/ic-link/ic-link.css +1 -1
- package/dist/collection/components/ic-link/ic-link.js +9 -9
- package/dist/collection/components/ic-link/ic-link.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +2 -2
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +26 -25
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.css +5 -4
- package/dist/collection/components/ic-menu/ic-menu.js +82 -25
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +7 -7
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -1
- 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 +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -2
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +7 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +13 -35
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.css +70 -9
- package/dist/collection/components/ic-select/ic-select.js +341 -28
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.css +4 -4
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -14
- package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.types.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +9 -9
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +14 -14
- package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.types.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.css +6 -6
- package/dist/collection/components/ic-switch/ic-switch.js +8 -8
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js +17 -11
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +25 -19
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js +2 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js.map +1 -1
- package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/left-arrow.svg +0 -0
- package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/right-arrow.svg +0 -0
- package/dist/collection/components/{ic-tab-list/ic-tab-list.css → ic-tab-group/ic-tab-group.css} +2 -2
- package/dist/collection/components/{ic-tab-list/ic-tab-list.js → ic-tab-group/ic-tab-group.js} +37 -31
- package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -0
- package/dist/collection/components/ic-text-field/ic-text-field.js +6 -25
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +4 -4
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +6 -6
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.css +17 -10
- package/dist/collection/components/ic-typography/ic-typography.js +6 -6
- package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
- package/dist/collection/utils/helpers.js +39 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +41 -14
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-alert.js +3 -2
- package/dist/components/ic-alert.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-breadcrumbs.d.ts → ic-breadcrumb-group.d.ts} +4 -4
- package/dist/components/{ic-breadcrumbs.js → ic-breadcrumb-group.js} +10 -10
- package/dist/{cjs/ic-breadcrumbs.cjs.entry.js.map → components/ic-breadcrumb-group.js.map} +1 -1
- package/dist/components/ic-breadcrumb2.js +1 -1
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button2.js +19 -25
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +1 -1
- package/dist/components/ic-card.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 +1 -1
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-data-entity.js +7 -7
- package/dist/components/ic-data-entity.js.map +1 -1
- package/dist/components/ic-data-row.js +5 -5
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-divider2.js +2 -1
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-footer-link-group.js +12 -12
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +7 -7
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +14 -13
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +9 -8
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +7 -6
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +1 -1
- package/dist/components/ic-input-validation2.js +2 -1
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-link2.js +10 -9
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +8 -7
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +78 -24
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +9 -8
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-item.js +2 -2
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +2 -2
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +5 -5
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-radio-group.js +2 -2
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +2 -2
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +13 -17
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +229 -25
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +3 -2
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +11 -11
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-status-tag.js +9 -9
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-switch.js +7 -7
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +13 -12
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/{ic-tab-list.d.ts → ic-tab-group.d.ts} +4 -4
- package/dist/components/{ic-tab-list.js → ic-tab-group.js} +31 -30
- package/dist/components/ic-tab-group.js.map +1 -0
- package/dist/components/ic-tab.js +5 -4
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field2.js +6 -7
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-tooltip2.js +5 -5
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +6 -5
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +5 -5
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.js +2 -2
- package/dist/components/types.js +16 -0
- package/dist/components/types.js.map +1 -0
- package/dist/core/core.css +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-0522eb9a.entry.js +2 -0
- package/dist/core/p-0522eb9a.entry.js.map +1 -0
- package/dist/core/{p-b9253509.entry.js → p-0992a2ee.entry.js} +2 -2
- package/dist/core/p-0992a2ee.entry.js.map +1 -0
- package/dist/core/p-14153fa0.entry.js +2 -0
- package/dist/core/p-14153fa0.entry.js.map +1 -0
- package/dist/core/p-1bec5ccb.entry.js +2 -0
- package/dist/core/p-1bec5ccb.entry.js.map +1 -0
- package/dist/core/p-21025b10.entry.js +2 -0
- package/dist/core/p-21025b10.entry.js.map +1 -0
- package/dist/core/p-27528d04.entry.js +2 -0
- package/dist/core/{p-44355e34.entry.js.map → p-27528d04.entry.js.map} +1 -1
- package/dist/core/p-3013158d.entry.js +2 -0
- package/dist/core/{p-016fcce8.entry.js.map → p-3013158d.entry.js.map} +1 -1
- package/dist/core/p-36b25af4.entry.js +2 -0
- package/dist/core/p-36b25af4.entry.js.map +1 -0
- package/dist/core/p-3d6902a3.entry.js +2 -0
- package/dist/core/{p-0d4ac3c9.entry.js.map → p-3d6902a3.entry.js.map} +1 -1
- package/dist/core/p-400b34b9.entry.js +2 -0
- package/dist/core/{p-3b9d4007.entry.js.map → p-400b34b9.entry.js.map} +1 -1
- package/dist/core/p-438e327e.entry.js +2 -0
- package/dist/core/{p-bbe0b521.entry.js.map → p-438e327e.entry.js.map} +1 -1
- package/dist/core/p-4aa8c1e1.entry.js +2 -0
- package/dist/core/{p-836c93b1.entry.js.map → p-4aa8c1e1.entry.js.map} +1 -1
- package/dist/core/p-4af4a9e7.entry.js +2 -0
- package/dist/core/p-4af4a9e7.entry.js.map +1 -0
- package/dist/core/p-4c1e1d04.entry.js +2 -0
- package/dist/core/p-4c1e1d04.entry.js.map +1 -0
- package/dist/core/p-4e498c03.entry.js +2 -0
- package/dist/core/{p-5e0b88fa.entry.js.map → p-4e498c03.entry.js.map} +1 -1
- package/dist/core/p-530b7fe0.entry.js +2 -0
- package/dist/core/p-530b7fe0.entry.js.map +1 -0
- package/dist/core/p-59a917d4.entry.js +2 -0
- package/dist/core/p-59a917d4.entry.js.map +1 -0
- package/dist/core/p-605e4270.entry.js +2 -0
- package/dist/core/p-605e4270.entry.js.map +1 -0
- package/dist/core/p-682686a6.entry.js +2 -0
- package/dist/core/p-682686a6.entry.js.map +1 -0
- package/dist/core/p-6ac7757f.entry.js +2 -0
- package/dist/core/{p-85a32ec7.entry.js.map → p-6ac7757f.entry.js.map} +1 -1
- package/dist/core/p-6d0eaaeb.entry.js +2 -0
- package/dist/core/p-6d0eaaeb.entry.js.map +1 -0
- package/dist/core/p-6f57b13c.js +2 -0
- package/dist/core/p-6f57b13c.js.map +1 -0
- package/dist/core/p-71282f37.entry.js +2 -0
- package/dist/core/{p-012dc33c.entry.js.map → p-71282f37.entry.js.map} +1 -1
- package/dist/core/p-73d41c36.entry.js +2 -0
- package/dist/core/{p-8af2a343.entry.js.map → p-73d41c36.entry.js.map} +1 -1
- package/dist/core/p-8bcadf55.entry.js +2 -0
- package/dist/core/p-8bcadf55.entry.js.map +1 -0
- package/dist/core/p-98e9eccc.entry.js +2 -0
- package/dist/core/p-98e9eccc.entry.js.map +1 -0
- package/dist/core/p-994111b7.entry.js +2 -0
- package/dist/core/{p-bdd2f166.entry.js.map → p-994111b7.entry.js.map} +1 -1
- package/dist/core/p-9bf3f413.entry.js +2 -0
- package/dist/core/p-9bf3f413.entry.js.map +1 -0
- package/dist/core/p-a301cf67.entry.js +2 -0
- package/dist/core/{p-7152788d.entry.js.map → p-a301cf67.entry.js.map} +1 -1
- package/dist/core/p-aebc7562.entry.js +2 -0
- package/dist/core/{p-85436343.entry.js.map → p-aebc7562.entry.js.map} +1 -1
- package/dist/core/p-be583c9b.entry.js +2 -0
- package/dist/core/{p-a968ff18.entry.js.map → p-be583c9b.entry.js.map} +1 -1
- package/dist/core/p-c15bb762.js +2 -0
- package/dist/core/p-c15bb762.js.map +1 -0
- package/dist/core/p-c817e46b.entry.js +2 -0
- package/dist/core/p-c817e46b.entry.js.map +1 -0
- package/dist/core/p-c8772106.entry.js +2 -0
- package/dist/core/p-c8772106.entry.js.map +1 -0
- package/dist/core/p-c96985bc.entry.js +2 -0
- package/dist/core/{p-d198ae1f.entry.js.map → p-c96985bc.entry.js.map} +1 -1
- package/dist/core/p-d4c6f4fb.entry.js +2 -0
- package/dist/core/{p-44af91df.entry.js.map → p-d4c6f4fb.entry.js.map} +1 -1
- package/dist/core/p-d78bded9.entry.js +2 -0
- package/dist/core/p-d78bded9.entry.js.map +1 -0
- package/dist/core/p-d8973266.entry.js +2 -0
- package/dist/core/p-d8973266.entry.js.map +1 -0
- package/dist/core/p-d8b6271d.entry.js +2 -0
- package/dist/core/{p-7f6ba60a.entry.js.map → p-d8b6271d.entry.js.map} +1 -1
- package/dist/core/p-da6f09cd.entry.js +2 -0
- package/dist/core/p-da6f09cd.entry.js.map +1 -0
- package/dist/core/{p-5316e421.entry.js → p-eb33ece2.entry.js} +2 -2
- package/dist/core/{p-5316e421.entry.js.map → p-eb33ece2.entry.js.map} +1 -1
- package/dist/core/p-f37a732a.entry.js +2 -0
- package/dist/core/{p-5d3dd182.entry.js.map → p-f37a732a.entry.js.map} +1 -1
- package/dist/core/p-fca84a85.entry.js +2 -0
- package/dist/core/p-fca84a85.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-db00eae1.js → helpers-8b43d0d4.js} +42 -15
- package/dist/esm/helpers-8b43d0d4.js.map +1 -0
- package/dist/esm/ic-alert.entry.js +3 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +3 -2
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/{ic-breadcrumbs.entry.js → ic-breadcrumb-group.entry.js} +7 -6
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -0
- package/dist/esm/ic-breadcrumb.entry.js +3 -2
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +25 -29
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +3 -2
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +3 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +3 -2
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-data-entity.entry.js +6 -6
- package/dist/esm/ic-data-entity.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +6 -5
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +2 -1
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +12 -11
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +8 -7
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +14 -13
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +8 -7
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +83 -28
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +2 -1
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +9 -8
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +8 -7
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +2 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +3 -2
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +3 -2
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +6 -5
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +3 -2
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +3 -2
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +12 -15
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +218 -24
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +3 -2
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +10 -10
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +9 -8
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +2 -1
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +2 -1
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +8 -7
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +12 -11
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +142 -0
- package/dist/esm/ic-tab-group.entry.js.map +1 -0
- package/dist/esm/ic-tab-panel.entry.js +2 -1
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +5 -4
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +5 -5
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +2 -1
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +6 -5
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +4 -4
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-1500de1f.js +4 -4
- package/dist/esm/loader.js +1 -1
- package/dist/esm/types-dd515332.js +16 -0
- package/dist/esm/types-dd515332.js.map +1 -0
- package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.d.ts +2 -0
- package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.d.ts} +2 -2
- package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.d.ts} +0 -0
- package/dist/types/components/ic-button/ic-button.d.ts +5 -11
- package/dist/types/components/ic-button/ic-button.types.d.ts +1 -2
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -2
- package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +2 -2
- package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
- package/dist/types/components/ic-footer/ic-footer.d.ts +2 -2
- package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
- package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
- package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +2 -2
- package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
- package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +2 -2
- package/dist/types/components/ic-link/ic-link.d.ts +2 -2
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +6 -5
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +0 -1
- package/dist/types/components/ic-menu/ic-menu.d.ts +4 -2
- package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -0
- package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
- package/dist/types/components/ic-page-header/ic-page-header.d.ts +2 -2
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +2 -2
- package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +2 -6
- package/dist/types/components/ic-select/ic-select.d.ts +46 -4
- package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +2 -2
- package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
- package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +3 -3
- package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +1 -1
- package/dist/types/components/ic-switch/ic-switch.d.ts +2 -2
- package/dist/types/components/ic-tab/ic-tab.d.ts +3 -2
- package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +4 -4
- package/dist/types/components/{ic-tab-list/ic-tab-list.d.ts → ic-tab-group/ic-tab-group.d.ts} +6 -5
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -6
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +2 -2
- package/dist/types/components/ic-typography/ic-typography.d.ts +2 -2
- package/dist/types/components.d.ts +239 -215
- package/dist/types/utils/helpers.d.ts +11 -2
- package/dist/types/utils/types.d.ts +2 -0
- package/hydrate/index.js +558 -277
- package/package.json +4 -4
- package/dist/cjs/helpers-9d4961dc.js.map +0 -1
- package/dist/cjs/ic-tab-list.cjs.entry.js +0 -145
- package/dist/cjs/ic-tab-list.cjs.entry.js.map +0 -1
- package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.js.map +0 -1
- package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.js.map +0 -1
- package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.test.a11y.js.map +0 -1
- package/dist/collection/components/ic-tab-list/ic-tab-list.js.map +0 -1
- package/dist/components/ic-breadcrumbs.js.map +0 -1
- package/dist/components/ic-tab-list.js.map +0 -1
- package/dist/core/p-012dc33c.entry.js +0 -2
- package/dist/core/p-016fcce8.entry.js +0 -2
- package/dist/core/p-0d4ac3c9.entry.js +0 -2
- package/dist/core/p-13854b65.entry.js +0 -2
- package/dist/core/p-13854b65.entry.js.map +0 -1
- package/dist/core/p-16a81e12.entry.js +0 -2
- package/dist/core/p-16a81e12.entry.js.map +0 -1
- package/dist/core/p-17420c90.entry.js +0 -2
- package/dist/core/p-17420c90.entry.js.map +0 -1
- package/dist/core/p-17f3a2bd.entry.js +0 -2
- package/dist/core/p-17f3a2bd.entry.js.map +0 -1
- package/dist/core/p-22eb7fc8.entry.js +0 -2
- package/dist/core/p-22eb7fc8.entry.js.map +0 -1
- package/dist/core/p-263018da.entry.js +0 -2
- package/dist/core/p-263018da.entry.js.map +0 -1
- package/dist/core/p-3b9d4007.entry.js +0 -2
- package/dist/core/p-44355e34.entry.js +0 -2
- package/dist/core/p-44af91df.entry.js +0 -2
- package/dist/core/p-4b1b46f5.entry.js +0 -2
- package/dist/core/p-4b1b46f5.entry.js.map +0 -1
- package/dist/core/p-4cf60a22.entry.js +0 -2
- package/dist/core/p-4cf60a22.entry.js.map +0 -1
- package/dist/core/p-4fba6cae.entry.js +0 -2
- package/dist/core/p-4fba6cae.entry.js.map +0 -1
- package/dist/core/p-5d3dd182.entry.js +0 -2
- package/dist/core/p-5e0b88fa.entry.js +0 -2
- package/dist/core/p-6238313f.entry.js +0 -2
- package/dist/core/p-6238313f.entry.js.map +0 -1
- package/dist/core/p-7152788d.entry.js +0 -2
- package/dist/core/p-7ed79493.entry.js +0 -2
- package/dist/core/p-7ed79493.entry.js.map +0 -1
- package/dist/core/p-7f6ba60a.entry.js +0 -2
- package/dist/core/p-836c93b1.entry.js +0 -2
- package/dist/core/p-85436343.entry.js +0 -2
- package/dist/core/p-856d9516.entry.js +0 -2
- package/dist/core/p-856d9516.entry.js.map +0 -1
- package/dist/core/p-85a32ec7.entry.js +0 -2
- package/dist/core/p-8a677ff1.entry.js +0 -2
- package/dist/core/p-8a677ff1.entry.js.map +0 -1
- package/dist/core/p-8af2a343.entry.js +0 -2
- package/dist/core/p-a3df537f.entry.js +0 -2
- package/dist/core/p-a3df537f.entry.js.map +0 -1
- package/dist/core/p-a968ff18.entry.js +0 -2
- package/dist/core/p-b858dc5a.entry.js +0 -2
- package/dist/core/p-b858dc5a.entry.js.map +0 -1
- package/dist/core/p-b9253509.entry.js.map +0 -1
- package/dist/core/p-bbe0b521.entry.js +0 -2
- package/dist/core/p-bdd2f166.entry.js +0 -2
- package/dist/core/p-bddb885a.entry.js +0 -2
- package/dist/core/p-bddb885a.entry.js.map +0 -1
- package/dist/core/p-c09e9589.entry.js +0 -2
- package/dist/core/p-c09e9589.entry.js.map +0 -1
- package/dist/core/p-d10ce0a7.entry.js +0 -2
- package/dist/core/p-d10ce0a7.entry.js.map +0 -1
- package/dist/core/p-d198ae1f.entry.js +0 -2
- package/dist/core/p-dc79694a.entry.js +0 -2
- package/dist/core/p-dc79694a.entry.js.map +0 -1
- package/dist/core/p-e5a09372.js +0 -2
- package/dist/core/p-e5a09372.js.map +0 -1
- package/dist/core/p-ea93611e.entry.js +0 -2
- package/dist/core/p-ea93611e.entry.js.map +0 -1
- package/dist/core/p-ed1d8712.entry.js +0 -2
- package/dist/esm/helpers-db00eae1.js.map +0 -1
- package/dist/esm/ic-breadcrumbs.entry.js.map +0 -1
- package/dist/esm/ic-tab-list.entry.js +0 -141
- package/dist/esm/ic-tab-list.entry.js.map +0 -1
- package/dist/types/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.d.ts +0 -2
@@ -1,5 +1,6 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
2
|
-
import { u as getLabelFromValue,
|
2
|
+
import { u as getLabelFromValue, q as getFilteredMenuOptions, j as inheritAttributes, a as onComponentRequiredPropUndefined, r as renderHiddenInput, d as getInputDescribedByText, h as hasValidationStatus, v as isMobileOrTablet, k as IC_INHERITED_ARIA } from './helpers.js';
|
3
|
+
import { I as IcThemeForegroundEnum, a as IcInformationStatus } from './types.js';
|
3
4
|
import { d as defineCustomElement$a } from './ic-button2.js';
|
4
5
|
import { d as defineCustomElement$9 } from './ic-input-component-container2.js';
|
5
6
|
import { d as defineCustomElement$8 } from './ic-input-container2.js';
|
@@ -20,7 +21,7 @@ const Clear = `<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www
|
|
20
21
|
</svg>
|
21
22
|
`;
|
22
23
|
|
23
|
-
const icSelectCss = "/*! 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}ic-input-component-container:hover{--border-color:var(--ic-action-dark-hover)}ic-input-component-container:active{--border-color:var(--ic-action-dark-active);color:var(--ic-action-dark-active)}ic-input-component-container.menu-open{--border-color:var(--ic-architectural-400);color:var(--ic-action-dark)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible
|
24
|
+
const icSelectCss = "/*! 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}ic-input-component-container:hover{--border-color:var(--ic-action-dark-hover)}ic-input-component-container:active{--border-color:var(--ic-action-dark-active);color:var(--ic-action-dark-active)}ic-input-component-container.menu-open{--border-color:var(--ic-architectural-400);color:var(--ic-action-dark)}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) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);color:var(--ic-color-primary-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 6px center;background-image:url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\")}select option,.select-option-selected{color:var(--ic-color-primary-text)}select:disabled{color:var(--ic-architectural-200);background-image:url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\")}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center}.select-input{width:100%;height:100%;padding:0 6px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none}.select-input:focus{outline:none}:host(:not([disabled])) ic-input-component-container:hover .select-input{background-color:var(--ic-architectural-white)}:host([disabled]) .select-input{pointer-events:none}:host([searchable]) .select-input{cursor:auto}.searchable-select-container{align-items:center;display:flex;width:100%}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xs);color:var(--expand-icon-hover, var(--ic-architectural-400))}:host([disabled]) .expand-icon,:host([disabled]) .expand-icon>svg>path{color:var(--ic-architectural-200)}:host([searchable]) .expand-icon{padding-left:var(--ic-space-xxs);height:36px}:host([searchable]) .expand-icon>svg{height:36px;padding:0 6px}:host([searchable]:not([disabled])) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-action-dark)}.expand-icon-filled{color:var(--ic-action-dark)}.expand-icon-open,:host([searchable]) .expand-icon-open{transform:rotateX(180deg)}:host([disabled]) .value-text,.placeholder{color:var(--ic-color-tertiary-text)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;gap:var(--ic-space-xxs);padding-left:38px}:host([small]) .clear-button-container{padding-left:30px}.divider{width:1px;background-color:var(--ic-architectural-400);margin:var(--ic-space-xxs) 0;border-radius:1px;height:var(--ic-space-lg)}:host([small]) .divider{height:var(--ic-space-md)}.clear-button{position:absolute;right:44px;border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus{background-color:var(--ic-focus-blue);box-shadow:inset 0 0 0 2px var(--ic-focus-glow);border-radius:4px}.clear-button:focus *{fill:white}.searchable-select-results-status{border:0;clip:rect(0, 0, 0, 0, 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
|
24
25
|
|
25
26
|
let inputIds = 0;
|
26
27
|
const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
@@ -34,6 +35,23 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
34
35
|
this.inputId = `ic-select-input-${inputIds++}`;
|
35
36
|
this.menuId = `${this.inputId}-menu`;
|
36
37
|
this.inheritedAttributes = {};
|
38
|
+
this.isMenuEnabled = () => {
|
39
|
+
return (((this.searchableSelectInputValue === null ||
|
40
|
+
this.searchableSelectInputValue === "") &&
|
41
|
+
this.charactersUntilSuggestions === 0) ||
|
42
|
+
(this.searchableSelectInputValue &&
|
43
|
+
this.searchableSelectInputValue.length >=
|
44
|
+
this.charactersUntilSuggestions));
|
45
|
+
};
|
46
|
+
this.setOptionsValuesFromLabels = () => {
|
47
|
+
if (this.options.length > 0) {
|
48
|
+
this.options.map((option) => {
|
49
|
+
if (!option.value) {
|
50
|
+
option.value = option.label;
|
51
|
+
}
|
52
|
+
});
|
53
|
+
}
|
54
|
+
};
|
37
55
|
this.setTextColor = () => {
|
38
56
|
if (this.nativeSelectElement.selectedIndex === 0) {
|
39
57
|
this.nativeSelectElement.className = "placeholder";
|
@@ -42,18 +60,53 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
42
60
|
this.nativeSelectElement.className = "select-option-selected";
|
43
61
|
}
|
44
62
|
};
|
63
|
+
this.setMenuChange = (open) => {
|
64
|
+
if (this.open !== open) {
|
65
|
+
this.open = open;
|
66
|
+
}
|
67
|
+
};
|
45
68
|
this.getLabelFromValue = (value) => {
|
46
69
|
return getLabelFromValue(value, this.options);
|
47
70
|
};
|
71
|
+
this.getValueFromLabel = (label) => {
|
72
|
+
var _a;
|
73
|
+
const value = (_a = this.options.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value;
|
74
|
+
return value;
|
75
|
+
};
|
76
|
+
this.getFilteredChildMenuOptions = (option) => {
|
77
|
+
let children = option.children;
|
78
|
+
children = getFilteredMenuOptions(option.children, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);
|
79
|
+
const newOption = Object.assign({}, option);
|
80
|
+
newOption.children = children;
|
81
|
+
return newOption;
|
82
|
+
};
|
48
83
|
this.handleNativeSelectChange = () => {
|
49
84
|
this.icChange.emit({ value: this.nativeSelectElement.value });
|
50
85
|
this.setTextColor();
|
51
86
|
};
|
52
87
|
this.handleCustomSelectChange = (event) => {
|
88
|
+
if (this.searchable && event.detail.label === this.emptyOptionListText) {
|
89
|
+
this.searchableSelectElement.focus();
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
if (this.searchable) {
|
93
|
+
this.searchableSelectInputValue = this.getLabelFromValue(event.detail.value);
|
94
|
+
}
|
95
|
+
this.ariaActiveDescendant = event.detail.optionId;
|
53
96
|
this.icChange.emit({ value: event.detail.value });
|
54
97
|
};
|
55
98
|
this.handleMenuChange = (event) => {
|
56
99
|
this.open = event.detail.open;
|
100
|
+
this.searchable && this.handleFocusIndicatorDisplay();
|
101
|
+
};
|
102
|
+
this.handleFocusIndicatorDisplay = () => {
|
103
|
+
const focusIndicator = this.host.shadowRoot.querySelector(".focus-indicator");
|
104
|
+
if (this.open) {
|
105
|
+
focusIndicator.classList.add("focus-indicator-enabled");
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
focusIndicator.classList.remove("focus-indicator-enabled");
|
109
|
+
}
|
57
110
|
};
|
58
111
|
this.handleMouseDown = (event) => {
|
59
112
|
if (!this.open) {
|
@@ -61,17 +114,52 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
61
114
|
}
|
62
115
|
};
|
63
116
|
this.handleClick = (event) => {
|
64
|
-
|
117
|
+
this.noOptions = null;
|
118
|
+
this.menu.options = this.options;
|
119
|
+
if (event.detail !== 0 && this.isMenuEnabled()) {
|
65
120
|
this.menu.handleClickOpen();
|
66
121
|
}
|
67
122
|
};
|
123
|
+
this.handleExpandIconMouseDown = (event) => {
|
124
|
+
if (!this.disabled) {
|
125
|
+
event.preventDefault();
|
126
|
+
this.searchableSelectElement.focus();
|
127
|
+
this.handleClick(event);
|
128
|
+
}
|
129
|
+
};
|
68
130
|
this.handleClear = (event) => {
|
69
131
|
event.stopPropagation();
|
132
|
+
this.noOptions = null;
|
70
133
|
this.icChange.emit({ value: null });
|
71
|
-
this.
|
134
|
+
if (this.searchable) {
|
135
|
+
this.searchableSelectElement.value = null;
|
136
|
+
this.searchableSelectInputValue = null;
|
137
|
+
this.menu.options = this.options;
|
138
|
+
this.searchableSelectElement.focus();
|
139
|
+
if (!this.isMenuEnabled()) {
|
140
|
+
this.setMenuChange(false);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
else {
|
144
|
+
this.customSelectElement.focus();
|
145
|
+
}
|
72
146
|
};
|
73
147
|
this.handleKeyDown = (event) => {
|
74
|
-
|
148
|
+
event.cancelBubble = true;
|
149
|
+
if (!this.open) {
|
150
|
+
this.noOptions = null;
|
151
|
+
this.menu.options = this.options;
|
152
|
+
}
|
153
|
+
if (this.open && event.key === "Enter") {
|
154
|
+
this.setMenuChange(false);
|
155
|
+
}
|
156
|
+
else {
|
157
|
+
if (!((event.key === "ArrowDown" || event.key === "ArrowUp") &&
|
158
|
+
this.noOptions !== null) &&
|
159
|
+
this.isMenuEnabled()) {
|
160
|
+
this.menu.handleKeyboardOpen(event);
|
161
|
+
}
|
162
|
+
}
|
75
163
|
};
|
76
164
|
this.handleClearButtonFocus = () => {
|
77
165
|
this.clearButtonFocused = true;
|
@@ -79,10 +167,82 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
79
167
|
this.handleClearButtonBlur = () => {
|
80
168
|
this.clearButtonFocused = false;
|
81
169
|
};
|
170
|
+
this.handleSearchableSelectInput = (event) => {
|
171
|
+
this.searchableSelectInputValue = event.target.value;
|
172
|
+
if (this.getValueFromLabel(this.searchableSelectInputValue) === undefined) {
|
173
|
+
this.icChange.emit({ value: null });
|
174
|
+
}
|
175
|
+
if (this.isMenuEnabled()) {
|
176
|
+
this.setMenuChange(true);
|
177
|
+
}
|
178
|
+
else {
|
179
|
+
this.setMenuChange(false);
|
180
|
+
}
|
181
|
+
const options = [...this.options];
|
182
|
+
let isGrouped = false;
|
183
|
+
let newFilteredOptions = [];
|
184
|
+
options.map((option) => {
|
185
|
+
if (option.children)
|
186
|
+
isGrouped = true;
|
187
|
+
});
|
188
|
+
const menuOptionsFiltered = getFilteredMenuOptions(options, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);
|
189
|
+
if (!isGrouped) {
|
190
|
+
newFilteredOptions = menuOptionsFiltered;
|
191
|
+
}
|
192
|
+
else {
|
193
|
+
options.map((option) => {
|
194
|
+
if (this.includeGroupTitlesInSearch) {
|
195
|
+
if (menuOptionsFiltered.indexOf(option) !== -1) {
|
196
|
+
newFilteredOptions.push(option);
|
197
|
+
}
|
198
|
+
else {
|
199
|
+
newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
|
200
|
+
}
|
201
|
+
}
|
202
|
+
else {
|
203
|
+
newFilteredOptions.push(this.getFilteredChildMenuOptions(option));
|
204
|
+
}
|
205
|
+
});
|
206
|
+
}
|
207
|
+
let noChildOptionsWhenFiltered = false;
|
208
|
+
if (isGrouped) {
|
209
|
+
noChildOptionsWhenFiltered = true;
|
210
|
+
newFilteredOptions.map((option) => {
|
211
|
+
if (option.children.length > 0) {
|
212
|
+
noChildOptionsWhenFiltered = false;
|
213
|
+
}
|
214
|
+
});
|
215
|
+
}
|
216
|
+
const noOptions = [{ label: this.emptyOptionListText, value: "" }];
|
217
|
+
if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {
|
218
|
+
this.noOptions = null;
|
219
|
+
this.filteredOptions = newFilteredOptions;
|
220
|
+
}
|
221
|
+
else {
|
222
|
+
this.noOptions = noOptions;
|
223
|
+
this.filteredOptions = this.noOptions;
|
224
|
+
}
|
225
|
+
this.debounceAriaLiveUpdate();
|
226
|
+
};
|
227
|
+
this.updateSearchableSelectResultAriaLive = () => {
|
228
|
+
const searchableSelectResultsStatusEl = this.host.shadowRoot.querySelector(".searchable-select-results-status");
|
229
|
+
if (this.noOptions !== null) {
|
230
|
+
searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;
|
231
|
+
}
|
232
|
+
else {
|
233
|
+
searchableSelectResultsStatusEl.innerText = "";
|
234
|
+
}
|
235
|
+
};
|
82
236
|
this.onFocus = () => {
|
83
237
|
this.icFocus.emit();
|
84
238
|
};
|
85
|
-
this.onBlur = () => {
|
239
|
+
this.onBlur = (event) => {
|
240
|
+
if (this.searchable &&
|
241
|
+
event.relatedTarget !== this.menu &&
|
242
|
+
!(this.clearButton && event.relatedTarget === this.clearButton)) {
|
243
|
+
this.setMenuChange(false);
|
244
|
+
this.handleFocusIndicatorDisplay();
|
245
|
+
}
|
86
246
|
this.icBlur.emit();
|
87
247
|
};
|
88
248
|
this.label = undefined;
|
@@ -93,15 +253,29 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
93
253
|
this.readonly = false;
|
94
254
|
this.placeholder = "Select an option";
|
95
255
|
this.helperText = "";
|
96
|
-
this.
|
256
|
+
this.small = false;
|
97
257
|
this.fullWidth = false;
|
98
258
|
this.validationStatus = "";
|
99
259
|
this.validationText = "";
|
100
260
|
this.value = undefined;
|
101
261
|
this.name = this.inputId;
|
102
262
|
this.showClearButton = false;
|
263
|
+
this.searchable = false;
|
264
|
+
this.includeDescriptionsInSearch = false;
|
265
|
+
this.includeGroupTitlesInSearch = false;
|
266
|
+
this.searchMatchPosition = "anywhere";
|
267
|
+
this.charactersUntilSuggestions = 0;
|
268
|
+
this.emptyOptionListText = "No results found";
|
103
269
|
this.open = false;
|
104
270
|
this.clearButtonFocused = false;
|
271
|
+
this.searchableSelectInputValue = null;
|
272
|
+
this.filteredOptions = this.options;
|
273
|
+
this.ariaActiveDescendant = undefined;
|
274
|
+
this.noOptions = null;
|
275
|
+
}
|
276
|
+
watchOptionsHandler() {
|
277
|
+
this.setOptionsValuesFromLabels();
|
278
|
+
this.filteredOptions = this.options;
|
105
279
|
}
|
106
280
|
/**
|
107
281
|
* Sets focus on the input box.
|
@@ -113,6 +287,15 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
113
287
|
else if (this.customSelectElement) {
|
114
288
|
this.customSelectElement.focus();
|
115
289
|
}
|
290
|
+
else if (this.searchableSelectElement) {
|
291
|
+
this.searchableSelectElement.focus();
|
292
|
+
}
|
293
|
+
}
|
294
|
+
debounceAriaLiveUpdate() {
|
295
|
+
clearTimeout(this.debounce);
|
296
|
+
window.setTimeout(() => {
|
297
|
+
this.updateSearchableSelectResultAriaLive();
|
298
|
+
}, 800);
|
116
299
|
}
|
117
300
|
componentWillLoad() {
|
118
301
|
this.inheritedAttributes = inheritAttributes(this.host, [
|
@@ -120,13 +303,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
120
303
|
"tabindex",
|
121
304
|
"title",
|
122
305
|
]);
|
123
|
-
|
124
|
-
this.options.map((option) => {
|
125
|
-
if (!option.value) {
|
126
|
-
option.value = option.label;
|
127
|
-
}
|
128
|
-
});
|
129
|
-
}
|
306
|
+
this.setOptionsValuesFromLabels();
|
130
307
|
}
|
131
308
|
componentDidRender() {
|
132
309
|
if (this.nativeSelectElement && !this.disabled) {
|
@@ -137,34 +314,51 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
137
314
|
onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Select");
|
138
315
|
}
|
139
316
|
render() {
|
140
|
-
const {
|
317
|
+
const { small, disabled, fullWidth, helperText, hideLabel, label, menuId, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, value, } = this;
|
141
318
|
renderHiddenInput(true, this.host, name, value, disabled);
|
142
319
|
const invalid = validationStatus === IcInformationStatus.Error ? "true" : "false";
|
143
|
-
const describedBy = getInputDescribedByText(inputId, helperText !== "", hasValidationStatus(this.validationStatus, this.disabled)).trim();
|
144
|
-
return (h(Host, null, h("ic-input-container", { readonly: readonly }, !hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h("ic-input-component-container", { ref: (el) => (this.anchorEl = el), class: { "menu-open": open },
|
320
|
+
const describedBy = getInputDescribedByText(this.inputId, helperText !== "", hasValidationStatus(this.validationStatus, this.disabled)).trim();
|
321
|
+
return (h(Host, null, h("ic-input-container", { readonly: readonly }, !hideLabel && (h("ic-input-label", { for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h("ic-input-component-container", { ref: (el) => (this.anchorEl = el), class: { "menu-open": this.open }, small: small, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, readonly ? (h("ic-typography", null, h("p", null, this.getLabelFromValue(value)))) : isMobileOrTablet() ? (h("select", Object.assign({ ref: (el) => (this.nativeSelectElement = el), disabled: disabled, onChange: this.handleNativeSelectChange, required: required, id: this.inputId, "aria-label": label, "aria-describedby": describedBy, "aria-invalid": invalid, onBlur: this.onBlur, onFocus: this.onFocus }, this.inheritedAttributes), h("option", { value: "", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {
|
145
322
|
if (option.children) {
|
146
323
|
return (h("optgroup", { label: option.label }, option.children.map((option) => (h("option", { value: option.value, disabled: option.disabled, selected: option.value === value }, option.label)))));
|
147
324
|
}
|
148
325
|
else {
|
149
326
|
return (h("option", { value: option.value, disabled: option.disabled, selected: option.value === value }, option.label));
|
150
327
|
}
|
151
|
-
}))) : (h("
|
328
|
+
}))) : searchable ? (h("div", { class: "searchable-select-container" }, h("input", { class: "select-input", role: "combobox", "aria-label": label, "aria-describedby": describedBy, "aria-activedescendant": this.ariaActiveDescendant, "aria-autocomplete": "list", "aria-expanded": this.open ? "true" : "false", "aria-invalid": invalid, "aria-required": required ? "true" : "false", "aria-controls": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur }), this.searchableSelectInputValue &&
|
329
|
+
(showClearButton || searchable) && (h("div", { class: "clear-button-container" }, h("ic-button", { id: "clear-button", ref: (el) => (this.clearButton = el), "aria-label": this.searchableSelectInputValue && value === null
|
330
|
+
? "Clear input"
|
331
|
+
: "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: small ? "small" : "default", variant: "icon", appearance: this.clearButtonFocused
|
332
|
+
? IcThemeForegroundEnum.Light
|
333
|
+
: IcThemeForegroundEnum.Dark }), h("div", { class: "divider" }))), h("span", { onMouseDown: this.handleExpandIconMouseDown, class: {
|
334
|
+
"expand-icon": true,
|
335
|
+
"expand-icon-open": this.open,
|
336
|
+
"expand-icon-filled": !(value == null || value === ""),
|
337
|
+
"expand-icon-disabled": !this.isMenuEnabled(),
|
338
|
+
}, innerHTML: Expand, "aria-hidden": "true" }), h("div", { "aria-live": "polite", role: "status", class: "searchable-select-results-status" }))) : (h("div", { class: "select-container" }, h("button", { class: "select-input", ref: (el) => (this.customSelectElement = el), id: this.inputId, "aria-label": `${label}, ${this.getLabelFromValue(value) || placeholder}${required ? ", required" : ""}`, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-haspopup": "listbox", "aria-expanded": this.open ? "true" : "false", "aria-owns": menuId, "aria-controls": menuId, disabled: disabled, onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown }, h("ic-typography", { variant: "body", class: {
|
152
339
|
"value-text": true,
|
153
340
|
placeholder: this.getLabelFromValue(value) === undefined,
|
154
|
-
} }, h("p", null, this.getLabelFromValue(value) || placeholder)), h("div", { class: "select-input-end" }, value && showClearButton &&
|
155
|
-
? IcThemeForegroundEnum.Light
|
156
|
-
: IcThemeForegroundEnum.Dark }), h("div", { class: "divider" }))), h("span", { class: {
|
341
|
+
} }, h("p", null, this.getLabelFromValue(value) || placeholder)), h("div", { class: "select-input-end" }, value && showClearButton && h("div", { class: "divider" }), h("span", { class: {
|
157
342
|
"expand-icon": true,
|
158
343
|
"expand-icon-open": this.open,
|
159
|
-
"expand-icon-filled": !(
|
160
|
-
}, innerHTML: Expand, "aria-hidden": "true" })))
|
344
|
+
"expand-icon-filled": !(value == null || value === ""),
|
345
|
+
}, innerHTML: Expand, "aria-hidden": "true" }))), value && showClearButton && (h("ic-button", { id: "clear-button", "aria-label": "Clear selection", class: "clear-button", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: small ? "small" : "default", variant: "icon", appearance: this.clearButtonFocused
|
346
|
+
? IcThemeForegroundEnum.Light
|
347
|
+
: IcThemeForegroundEnum.Dark }))))), !isMobileOrTablet() && (h("ic-menu", { class: {
|
348
|
+
"no-results": this.noOptions !== null,
|
349
|
+
}, ref: (el) => (this.menu = el), inputEl: searchable
|
350
|
+
? this.searchableSelectElement
|
351
|
+
: this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, small: small, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : options, value: value, fullWidth: fullWidth, onMenuChange: this.handleMenuChange, onOptionSelect: this.handleCustomSelectChange, parentEl: this.host })), h("ic-input-validation", { class: { "menu-open": this.open }, ariaLiveMode: "polite", status: hasValidationStatus(this.validationStatus, this.disabled) ===
|
161
352
|
false
|
162
353
|
? ""
|
163
354
|
: validationStatus, message: hasValidationStatus(this.validationStatus, this.disabled)
|
164
355
|
? validationText
|
165
|
-
: "", for: inputId }))));
|
356
|
+
: "", for: this.inputId }))));
|
166
357
|
}
|
167
358
|
get host() { return this; }
|
359
|
+
static get watchers() { return {
|
360
|
+
"options": ["watchOptionsHandler"]
|
361
|
+
}; }
|
168
362
|
static get style() { return icSelectCss; }
|
169
363
|
}, [1, "ic-select", {
|
170
364
|
"label": [1],
|
@@ -175,15 +369,25 @@ const Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
175
369
|
"readonly": [4],
|
176
370
|
"placeholder": [1],
|
177
371
|
"helperText": [1, "helper-text"],
|
178
|
-
"
|
372
|
+
"small": [4],
|
179
373
|
"fullWidth": [4, "full-width"],
|
180
374
|
"validationStatus": [1, "validation-status"],
|
181
375
|
"validationText": [1, "validation-text"],
|
182
376
|
"value": [1],
|
183
377
|
"name": [1],
|
184
378
|
"showClearButton": [4, "show-clear-button"],
|
379
|
+
"searchable": [4],
|
380
|
+
"includeDescriptionsInSearch": [4, "include-descriptions-in-search"],
|
381
|
+
"includeGroupTitlesInSearch": [4, "include-group-titles-in-search"],
|
382
|
+
"searchMatchPosition": [1, "search-match-position"],
|
383
|
+
"charactersUntilSuggestions": [2, "characters-until-suggestions"],
|
384
|
+
"emptyOptionListText": [1, "empty-option-list-text"],
|
185
385
|
"open": [32],
|
186
386
|
"clearButtonFocused": [32],
|
387
|
+
"searchableSelectInputValue": [32],
|
388
|
+
"filteredOptions": [32],
|
389
|
+
"ariaActiveDescendant": [32],
|
390
|
+
"noOptions": [32],
|
187
391
|
"setFocus": [64]
|
188
392
|
}]);
|
189
393
|
function defineCustomElement$1() {
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"ic-select.js","mappings":"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","names":[],"sources":["./src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","./src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalise.css\";\n\n/**\n * @prop --input-width: Width of the input field\n*/\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-active);\n\n color: var(--ic-action-dark-active);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n transition: visibility 0s 149ms;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-primary-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 6px;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 6px center;\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-primary-text);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 6px;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n}\n\n.select-input:focus {\n outline: none;\n}\n\n:host(:not([disabled])) ic-input-component-container:hover .select-input {\n background-color: var(--ic-architectural-white);\n}\n\n:host([disabled]) .select-input {\n pointer-events: none;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xs);\n color: var(--expand-icon-hover, var(--ic-architectural-400));\n}\n\n:host([disabled]) .expand-icon,\n:host([disabled]) .expand-icon > svg > path {\n color: var(--ic-architectural-200);\n}\n\n.expand-icon-open {\n transform: rotateX(180deg);\n color: var(--ic-action-dark);\n}\n\n.expand-icon-filled {\n padding-left: var(--ic-space-xxs);\n color: var(--ic-action-dark);\n}\n\n.placeholder {\n color: var(--ic-color-tertiary-text);\n}\n\n:host([disabled]) .value-text {\n color: var(--ic-architectural-200);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n gap: var(--ic-space-xxs);\n padding-left: var(--ic-space-xs);\n}\n\n.divider {\n width: 1px;\n background-color: var(--ic-architectural-400);\n margin: var(--ic-space-xxs) 0;\n border-radius: 1px;\n}\n\n:host :focus-within .clear-button:focus {\n background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 2px var(--ic-focus-glow);\n border-radius: 4px;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcThemeForegroundEnum,\n IcMenuOption,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcValueEventDetail } from \"../../interface\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: true,\n})\nexport class Select {\n private nativeSelectElement: HTMLSelectElement;\n private customSelectElement: HTMLButtonElement;\n private menu: HTMLIcMenuElement;\n private anchorEl: HTMLElement;\n\n private inputId = `ic-select-input-${inputIds++}`;\n private menuId = `${this.inputId}-menu`;\n\n private inheritedAttributes: { [k: string]: unknown } = {};\n\n /**\n * Provide a label for the input.\n */\n @Prop() label!: string;\n\n /**\n * Provide the possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n\n /**\n * Specify if the input requires a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * Hides the label and applies the required label value as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Specify whether the input is disabled.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /**\n * Specify whether the input is read only.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * Provide a placeholder value to display.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * Provide helper text to display additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * Specify whether dense styling is to be applied to the element.\n */\n @Prop() dense?: boolean = false;\n\n /**\n * If true, then fill width of container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Provide a validation status.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * Provide the text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * The value of the currently selected option.\n */\n @Prop() value?: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * Display a button which clears the input when clicked.\n */\n @Prop() showClearButton?: boolean = false;\n\n @State() open: boolean = false;\n\n @State() clearButtonFocused: boolean = false;\n\n /**\n * Emitted when a value is selected.\n */\n @Event() icChange!: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when select has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when select has blur.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @Element() host!: HTMLIcSelectElement;\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 }\n }\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.options);\n };\n\n private handleNativeSelectChange = (): void => {\n this.icChange.emit({ value: this.nativeSelectElement.value });\n this.setTextColor();\n };\n\n private handleCustomSelectChange = (event: CustomEvent): void => {\n this.icChange.emit({ value: event.detail.value });\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private handleClick = (event: MouseEvent): void => {\n if (event.detail !== 0) {\n this.menu.handleClickOpen();\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.icChange.emit({ value: null });\n this.customSelectElement.focus();\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n this.menu.handleKeyboardOpen(event);\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (): void => {\n this.clearButtonFocused = false;\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = (): void => {\n this.icBlur.emit();\n };\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.host, [\n ...IC_INHERITED_ARIA,\n \"tabindex\",\n \"title\",\n ]);\n\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 componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n }\n\n render() {\n const {\n dense,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n host,\n inputId,\n label,\n name,\n open,\n options,\n menuId,\n placeholder,\n readonly,\n required,\n showClearButton,\n validationStatus,\n validationText,\n value,\n } = this;\n\n renderHiddenInput(true, this.host, name, value, disabled);\n\n const invalid =\n validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n return (\n <Host>\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 ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n dense={dense}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {readonly ? (\n <ic-typography>\n <p>{this.getLabelFromValue(value)}</p>\n </ic-typography>\n ) : isMobileOrTablet() ? (\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 {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!this.showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : (\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n this.getLabelFromValue(value) || placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\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 placeholder: this.getLabelFromValue(value) === undefined,\n }}\n >\n <p>{this.getLabelFromValue(value) || placeholder}</p>\n </ic-typography>\n <div class=\"select-input-end\">\n {value && showClearButton && (\n <div class=\"clear-button-container\">\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={dense ? \"dense\" : \"default\"}\n variant=\"icon\"\n buttonStyle={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(\n this.value == null || this.value === \"\"\n ),\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n )}\n </ic-input-component-container>\n {!isMobileOrTablet() && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n inputEl={this.customSelectElement}\n inputLabel={label}\n anchorEl={this.anchorEl}\n dense={dense}\n menuId={menuId}\n open={open}\n options={options}\n value={value}\n fullWidth={fullWidth}\n onMenuChange={this.handleMenuChange}\n onOptionSelect={this.handleCustomSelectChange}\n parentEl={host}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{ \"menu-open\": open }}\n ariaLiveMode=\"polite\"\n status={\n hasValidationStatus(this.validationStatus, this.disabled) ===\n false\n ? \"\"\n : validationStatus\n }\n message={\n hasValidationStatus(this.validationStatus, this.disabled)\n ? validationText\n : \"\"\n }\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}
|
1
|
+
{"file":"ic-select.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,WAAW,GAAG,67LAA67L;;ACmCj9L,IAAI,QAAQ,GAAG,CAAC,CAAC;MAOJ,MAAM;;;;;;;;IAQT,YAAO,GAAG,mBAAmB,QAAQ,EAAE,EAAE,CAAC;IAC1C,WAAM,GAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC;IAEhC,wBAAmB,GAA6B,EAAE,CAAC;IA8JnD,kBAAa,GAAG;MACtB,QACE,CAAC,CAAC,IAAI,CAAC,0BAA0B,KAAK,IAAI;QACxC,IAAI,CAAC,0BAA0B,KAAK,EAAE;QACtC,IAAI,CAAC,0BAA0B,KAAK,CAAC;SACtC,IAAI,CAAC,0BAA0B;UAC9B,IAAI,CAAC,0BAA0B,CAAC,MAAM;YACpC,IAAI,CAAC,0BAA0B,CAAC,EACpC;KACH,CAAC;IAEM,+BAA0B,GAAG;MACnC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM;UACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;WAC7B;SACF,CAAC,CAAC;OACJ;KACF,CAAC;IAEM,iBAAY,GAAG;MACrB,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,KAAK,CAAC,EAAE;QAChD,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,aAAa,CAAC;OACpD;WAAM;QACL,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,wBAAwB,CAAC;OAC/D;KACF,CAAC;IAEM,kBAAa,GAAG,CAAC,IAAa;MACpC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;OAClB;KACF,CAAC;IAEM,sBAAiB,GAAG,CAAC,KAAa;MACxC,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C,CAAC;IAEM,sBAAiB,GAAG,CAAC,KAAa;;MACxC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,0CAAE,KAAK,CAAC;MAC3E,OAAO,KAAK,CAAC;KACd,CAAC;IAEM,gCAA2B,GAAG,CAAC,MAAoB;MACzD,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;MAE/B,QAAQ,GAAG,sBAAsB,CAC/B,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,mBAAmB,CACzB,CAAC;MAEF,MAAM,SAAS,qBAAQ,MAAM,CAAE,CAAC;MAChC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;MAC9B,OAAO,SAAS,CAAC;KAClB,CAAC;IAEM,6BAAwB,GAAG;MACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;MAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB,CAAC;IAEM,6BAAwB,GAAG,CAAC,KAAkB;MACpD,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,EAAE;QACtE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO;OACR;MAED,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CACtD,KAAK,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;OACH;MAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;MAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KACnD,CAAC;IAEM,qBAAgB,GAAG,CAAC,KAAkB;MAC5C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;MAE9B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACvD,CAAC;IAEM,gCAA2B,GAAG;MACpC,MAAM,cAAc,GAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;MAEzD,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;OACzD;WAAM;QACL,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;OAC5D;KACF,CAAC;IAEM,oBAAe,GAAG,CAAC,KAAY;MACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,KAAK,CAAC,cAAc,EAAE,CAAC;OACxB;KACF,CAAC;IAEM,gBAAW,GAAG,CAAC,KAAiB;MACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;MACtB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;MAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;QAC9C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;OAC7B;KACF,CAAC;IAEM,8BAAyB,GAAG,CAAC,KAAiB;MACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;OACzB;KACF,CAAC;IAEM,gBAAW,GAAG,CAAC,KAAY;MACjC,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;MACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;MAEpC,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,IAAI,CAAC,uBAAuB,CAAC,KAAK,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;UACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;OACF;WAAM;QACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;OAClC;KACF,CAAC;IAEM,kBAAa,GAAG,CAAC,KAAoB;MAC3C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;MAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;OAClC;MAED,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;QACtC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;OAC3B;WAAM;QACL,IACE,EACE,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;UACrD,IAAI,CAAC,SAAS,KAAK,IAAI,CACxB;UACD,IAAI,CAAC,aAAa,EAAE,EACpB;UACA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACrC;OACF;KACF,CAAC;IAEM,2BAAsB,GAAG;MAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAChC,CAAC;IAEM,0BAAqB,GAAG;MAC9B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC,CAAC;IAEM,gCAA2B,GAAG,CAAC,KAAY;MACjD,IAAI,CAAC,0BAA0B,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;MAE3E,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,SAAS,EAAE;QACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;OACrC;MAED,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;OAC1B;WAAM;QACL,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;OAC3B;MAED,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;MAElC,IAAI,SAAS,GAAG,KAAK,CAAC;MACtB,IAAI,kBAAkB,GAAmB,EAAE,CAAC;MAE5C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM;QACjB,IAAI,MAAM,CAAC,QAAQ;UAAE,SAAS,GAAG,IAAI,CAAC;OACvC,CAAC,CAAC;MAEH,MAAM,mBAAmB,GAAG,sBAAsB,CAChD,OAAO,EACP,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,mBAAmB,CACzB,CAAC;MAEF,IAAI,CAAC,SAAS,EAAE;QACd,kBAAkB,GAAG,mBAAmB,CAAC;OAC1C;WAAM;QACL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM;UACjB,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACnC,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;cAC9C,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACjC;iBAAM;cACL,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;aACnE;WACF;eAAM;YACL,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;WACnE;SACF,CAAC,CAAC;OACJ;MAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;MAEvC,IAAI,SAAS,EAAE;QACb,0BAA0B,GAAG,IAAI,CAAC;QAClC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM;UAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,0BAA0B,GAAG,KAAK,CAAC;WACpC;SACF,CAAC,CAAC;OACJ;MAED,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;MAEnE,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;OAC3C;WAAM;QACL,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;OACvC;MAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B,CAAC;IAEM,yCAAoC,GAAG;MAC7C,MAAM,+BAA+B,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CACxE,mCAAmC,CAClB,CAAC;MAEpB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;QAC3B,+BAA+B,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;OACtE;WAAM;QACL,+BAA+B,CAAC,SAAS,GAAG,EAAE,CAAC;OAChD;KACF,CAAC;IAUM,YAAO,GAAG;MAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,CAAC;IAEM,WAAM,GAAG,CAAC,KAAiB;MACjC,IACE,IAAI,CAAC,UAAU;QACf,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI;QACjC,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,EAC/D;QACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;OACpC;MAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB,CAAC;;mBApaiC,EAAE;oBAKR,KAAK;qBAKJ,KAAK;oBAKW,KAAK;oBAKtB,KAAK;uBAKH,kBAAkB;sBAKnB,EAAE;iBAKN,KAAK;qBAKF,KAAK;4BAKsB,EAAE;0BAKxB,EAAE;;gBAUZ,IAAI,CAAC,OAAO;2BAKA,KAAK;sBAKV,KAAK;uCAKY,KAAK;sCAKN,KAAK;+BAKG,UAAU;sCAKnB,CAAC;+BAKjB,kBAAkB;gBAEvB,KAAK;8BAES,KAAK;sCAEE,IAAI;2BAEP,IAAI,CAAC,OAAO;;qBAIlB,IAAI;;EAGzC,mBAAmB;IACjB,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;GACrC;;;;EAuBD,MAAM,QAAQ;IACZ,IAAI,IAAI,CAAC,mBAAmB,EAAE;MAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;KAClC;SAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;MACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;KAClC;SAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;MACvC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;KACtC;GACF;EA6PO,sBAAsB;IAC5B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,CAAC,UAAU,CAAC;MAChB,IAAI,CAAC,oCAAoC,EAAE,CAAC;KAC7C,EAAE,GAAG,CAAC,CAAC;GACT;EAmBD,iBAAiB;IACf,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;MACtD,GAAG,iBAAiB;MACpB,UAAU;MACV,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,CAAC;GACnC;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;MAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;GACF;EAED,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,QAAQ,CACT,CAAC;GACH;EAED,MAAM;IACJ,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,KAAK,GACN,GAAG,IAAI,CAAC;IAET,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE1D,MAAM,OAAO,GACX,gBAAgB,KAAK,mBAAmB,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAEpE,MAAM,WAAW,GAAG,uBAAuB,CACzC,IAAI,CAAC,OAAO,EACZ,UAAU,KAAK,EAAE,EACjB,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC1D,CAAC,IAAI,EAAE,CAAC;IAET,QACE,EAAC,IAAI,QACH,0BAAoB,QAAQ,EAAE,QAAQ,IACnC,CAAC,SAAS,KACT,sBACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACF,CACnB,EACD,oCACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EACjC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,EACjC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,IAEjC,QAAQ,IACP,yBACE,aAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAK,CACxB,IACd,gBAAgB,EAAE,IACpB,4BACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,EAC5C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EACvC,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,IAAI,CAAC,OAAO,gBACJ,KAAK,sBACC,WAAW,kBACf,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IACjB,IAAI,CAAC,mBAAmB,GAE5B,cAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,QAAC,QAAQ,EAAE,CAAC,eAAe,IACjD,WAAW,CACL,EACR,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM;MAClB,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,QACE,gBAAU,KAAK,EAAE,MAAM,CAAC,KAAK,IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,MAC1B,cACE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,IAE/B,MAAM,CAAC,KAAK,CACN,CACV,CAAC,CACO,EACX;OACH;WAAM;QACL,QACE,cACE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,IAE/B,MAAM,CAAC,KAAK,CACN,EACT;OACH;KACF,CAAC,CACK,IACP,UAAU,IACZ,WAAK,KAAK,EAAC,6BAA6B,IACtC,aACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,UAAU,gBACH,KAAK,sBACC,WAAW,2BACN,IAAI,CAAC,oBAAoB,uBAC9B,MAAM,mBACT,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,kBAC7B,OAAO,mBACN,QAAQ,GAAG,MAAM,GAAG,OAAO,mBAC3B,MAAM,EACrB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,EAChD,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,0BAA0B,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,2BAA2B,EACzC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,GACZ,EACR,IAAI,CAAC,0BAA0B;OAC7B,eAAe,IAAI,UAAU,CAAC,KAC7B,WAAK,KAAK,EAAC,wBAAwB,IACjC,iBACE,EAAE,EAAC,cAAc,EACjB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,gBAElC,IAAI,CAAC,0BAA0B,IAAI,KAAK,KAAK,IAAI;UAC7C,aAAa;UACb,iBAAiB,EAEvB,KAAK,EAAC,cAAc,EACpB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,sBAAsB,EACpC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAClC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,EACjC,OAAO,EAAC,MAAM,EACd,UAAU,EACR,IAAI,CAAC,kBAAkB;UACnB,qBAAqB,CAAC,KAAK;UAC3B,qBAAqB,CAAC,IAAI,GAErB,EACb,WAAK,KAAK,EAAC,SAAS,GAAO,CACvB,CACP,EACH,YACE,WAAW,EAAE,IAAI,CAAC,yBAAyB,EAC3C,KAAK,EAAE;QACL,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,IAAI,CAAC,IAAI;QAC7B,oBAAoB,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACtD,sBAAsB,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;OAC9C,EACD,SAAS,EAAE,MAAM,iBACL,MAAM,GAClB,EACF,wBACY,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,kCAAkC,GACnC,CACH,KAEN,WAAK,KAAK,EAAC,kBAAkB,IAC3B,cACE,KAAK,EAAC,cAAc,EACpB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,EAC5C,EAAE,EAAE,IAAI,CAAC,OAAO,gBACJ,GAAG,KAAK,KAClB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,WACnC,GAAG,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAE,sBACf,WAAW,kBACf,OAAO,mBACP,SAAS,mBACR,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,eAChC,MAAM,mBACF,MAAM,EACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,eAAe,EACjC,SAAS,EAAE,IAAI,CAAC,aAAa,IAE7B,qBACE,OAAO,EAAC,MAAM,EACd,KAAK,EAAE;QACL,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,SAAS;OACzD,IAED,aAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,WAAW,CAAK,CACvC,EAChB,WAAK,KAAK,EAAC,kBAAkB,IAC1B,KAAK,IAAI,eAAe,IAAI,WAAK,KAAK,EAAC,SAAS,GAAO,EACxD,YACE,KAAK,EAAE;QACL,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,IAAI,CAAC,IAAI;QAC7B,oBAAoB,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;OACvD,EACD,SAAS,EAAE,MAAM,iBACL,MAAM,GAClB,CACE,CACC,EACR,KAAK,IAAI,eAAe,KACvB,iBACE,EAAE,EAAC,cAAc,gBACN,iBAAiB,EAC5B,KAAK,EAAC,cAAc,EACpB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,sBAAsB,EACpC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAClC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,EACjC,OAAO,EAAC,MAAM,EACd,UAAU,EACR,IAAI,CAAC,kBAAkB;UACnB,qBAAqB,CAAC,KAAK;UAC3B,qBAAqB,CAAC,IAAI,GAErB,CACd,CACG,CACP,CAC4B,EAC9B,CAAC,gBAAgB,EAAE,KAClB,eACE,KAAK,EAAE;QACL,YAAY,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;OACtC,EACD,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAC7B,OAAO,EACL,UAAU;UACN,IAAI,CAAC,uBAAuB;UAC5B,IAAI,CAAC,mBAAmB,EAE9B,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,EACpD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAC7C,QAAQ,EAAE,IAAI,CAAC,IAAI,GACV,CACZ,EACD,2BACE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,EACjC,YAAY,EAAC,QAAQ,EACrB,MAAM,EACJ,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;QACzD,KAAK;UACD,EAAE;UACF,gBAAgB,EAEtB,OAAO,EACL,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;UACrD,cAAc;UACd,EAAE,EAER,GAAG,EAAE,IAAI,CAAC,OAAO,GACI,CACJ,CAChB,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","./src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalise.css\";\n\n/**\n * @prop --input-width: Width of the input field\n*/\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-active);\n\n color: var(--ic-action-dark-active);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\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) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-primary-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 6px;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 6px center;\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-primary-text);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\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}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 6px;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n}\n\n.select-input:focus {\n outline: none;\n}\n\n:host(:not([disabled])) ic-input-component-container:hover .select-input {\n background-color: var(--ic-architectural-white);\n}\n\n:host([disabled]) .select-input {\n pointer-events: none;\n}\n\n:host([searchable]) .select-input {\n cursor: auto;\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xs);\n color: var(--expand-icon-hover, var(--ic-architectural-400));\n}\n\n:host([disabled]) .expand-icon,\n:host([disabled]) .expand-icon > svg > path {\n color: var(--ic-architectural-200);\n}\n\n:host([searchable]) .expand-icon {\n padding-left: var(--ic-space-xxs);\n height: 36px;\n}\n\n:host([searchable]) .expand-icon > svg {\n height: 36px;\n padding: 0 6px;\n}\n\n:host([searchable]:not([disabled])) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-filled {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-open,\n:host([searchable]) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host([disabled]) .value-text,\n.placeholder {\n color: var(--ic-color-tertiary-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n gap: var(--ic-space-xxs);\n padding-left: 38px;\n}\n\n:host([small]) .clear-button-container {\n padding-left: 30px;\n}\n\n.divider {\n width: 1px;\n background-color: var(--ic-architectural-400);\n margin: var(--ic-space-xxs) 0;\n border-radius: 1px;\n height: var(--ic-space-lg);\n}\n\n:host([small]) .divider {\n height: var(--ic-space-md);\n}\n\n.clear-button {\n position: absolute;\n right: 44px;\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 background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 2px var(--ic-focus-glow);\n border-radius: 4px;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n\n.searchable-select-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: 1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcThemeForegroundEnum,\n IcMenuOption,\n IcSearchMatchPositions,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcValueEventDetail } from \"../../interface\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: true,\n})\nexport class Select {\n private nativeSelectElement: HTMLSelectElement;\n private customSelectElement: HTMLButtonElement;\n private searchableSelectElement: HTMLInputElement;\n private menu: HTMLIcMenuElement;\n private anchorEl: HTMLElement;\n private clearButton: HTMLIcButtonElement;\n\n private inputId = `ic-select-input-${inputIds++}`;\n private menuId = `${this.inputId}-menu`;\n\n private inheritedAttributes: { [k: string]: unknown } = {};\n\n private debounce: number;\n\n /**\n * Provide a label for the input.\n */\n @Prop() label!: string;\n\n /**\n * Provide the possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n\n /**\n * Specify if the input requires a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * Hides the label and applies the required label value as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Specify whether the input is disabled.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /**\n * Specify whether the input is read only.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * Provide a placeholder value to display.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * Provide helper text to display additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * Specify whether small styling is to be applied to the element.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If true, then fill width of container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Provide a validation status.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * Provide the text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * The value of the currently selected option.\n */\n @Prop() value?: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * Display a button which clears the input when clicked. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * If true, the select can be typed in to filter options.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * If true, descriptions of options are included when filtering options in a searchable select.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If true, group titles of grouped options are included when filtering options in a searchable select.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * Number of characters until suggestions appear for a searchable select.\n */\n @Prop() charactersUntilSuggestions?: number = 0;\n\n /**\n * Provide text for empty results list\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n @State() open: boolean = false;\n\n @State() clearButtonFocused: boolean = false;\n\n @State() searchableSelectInputValue: string = null;\n\n @State() filteredOptions: IcMenuOption[] = this.options;\n\n @State() ariaActiveDescendant: string;\n\n @State() noOptions: IcMenuOption[] = null;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptionsValuesFromLabels();\n this.filteredOptions = this.options;\n }\n\n /**\n * Emitted when a value is selected.\n */\n @Event() icChange!: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when select has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when select has blur.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @Element() host!: HTMLIcSelectElement;\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 private isMenuEnabled = () => {\n return (\n ((this.searchableSelectInputValue === null ||\n this.searchableSelectInputValue === \"\") &&\n this.charactersUntilSuggestions === 0) ||\n (this.searchableSelectInputValue &&\n this.searchableSelectInputValue.length >=\n this.charactersUntilSuggestions)\n );\n };\n\n private setOptionsValuesFromLabels = (): void => {\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 setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"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): string | undefined => {\n return getLabelFromValue(value, this.options);\n };\n\n private getValueFromLabel = (label: string): string | undefined => {\n const value = this.options.find((option) => option.label === label)?.value;\n return value;\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n children = getFilteredMenuOptions(\n option.children,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n private handleNativeSelectChange = (): void => {\n this.icChange.emit({ value: this.nativeSelectElement.value });\n this.setTextColor();\n };\n\n private handleCustomSelectChange = (event: CustomEvent): void => {\n if (this.searchable && event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement.focus();\n return;\n }\n\n if (this.searchable) {\n this.searchableSelectInputValue = this.getLabelFromValue(\n event.detail.value\n );\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.icChange.emit({ value: event.detail.value });\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.host.shadowRoot.querySelector(\".focus-indicator\");\n\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private handleClick = (event: MouseEvent): void => {\n this.noOptions = null;\n this.menu.options = this.options;\n\n if (event.detail !== 0 && this.isMenuEnabled()) {\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): void => {\n event.stopPropagation();\n this.noOptions = null;\n this.icChange.emit({ value: null });\n\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.menu.options = this.options;\n this.searchableSelectElement.focus();\n\n if (!this.isMenuEnabled()) {\n this.setMenuChange(false);\n }\n } else {\n this.customSelectElement.focus();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n event.cancelBubble = true;\n\n if (!this.open) {\n this.noOptions = null;\n this.menu.options = this.options;\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (\n !(\n (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") &&\n this.noOptions !== null\n ) &&\n this.isMenuEnabled()\n ) {\n this.menu.handleKeyboardOpen(event);\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (): void => {\n this.clearButtonFocused = false;\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n\n if (this.getValueFromLabel(this.searchableSelectInputValue) === undefined) {\n this.icChange.emit({ value: null });\n }\n\n if (this.isMenuEnabled()) {\n this.setMenuChange(true);\n } else {\n this.setMenuChange(false);\n }\n\n const options = [...this.options];\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n const menuOptionsFiltered = getFilteredMenuOptions(\n options,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n\n if (!isGrouped) {\n newFilteredOptions = menuOptionsFiltered;\n } else {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n const noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = noOptions;\n this.filteredOptions = this.noOptions;\n }\n\n this.debounceAriaLiveUpdate();\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.host.shadowRoot.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounce);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = (event: FocusEvent): void => {\n if (\n this.searchable &&\n event.relatedTarget !== this.menu &&\n !(this.clearButton && event.relatedTarget === this.clearButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n\n this.icBlur.emit();\n };\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.host, [\n ...IC_INHERITED_ARIA,\n \"tabindex\",\n \"title\",\n ]);\n\n this.setOptionsValuesFromLabels();\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n }\n\n render() {\n const {\n small,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n value,\n } = this;\n\n renderHiddenInput(true, this.host, name, value, disabled);\n\n const invalid =\n validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n return (\n <Host>\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n small={small}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {readonly ? (\n <ic-typography>\n <p>{this.getLabelFromValue(value)}</p>\n </ic-typography>\n ) : isMobileOrTablet() ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class=\"select-input\"\n role=\"combobox\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-invalid={invalid}\n aria-required={required ? \"true\" : \"false\"}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue}\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 ></input>\n {this.searchableSelectInputValue &&\n (showClearButton || searchable) && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n this.searchableSelectInputValue && value === null\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={small ? \"small\" : \"default\"}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\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\": this.open,\n \"expand-icon-filled\": !(value == null || value === \"\"),\n \"expand-icon-disabled\": !this.isMenuEnabled(),\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 class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n this.getLabelFromValue(value) || placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\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 placeholder: this.getLabelFromValue(value) === undefined,\n }}\n >\n <p>{this.getLabelFromValue(value) || placeholder}</p>\n </ic-typography>\n <div class=\"select-input-end\">\n {value && showClearButton && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(value == null || value === \"\"),\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {value && showClearButton && (\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={small ? \"small\" : \"default\"}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {!isMobileOrTablet() && (\n <ic-menu\n class={{\n \"no-results\": this.noOptions !== null,\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 small={small}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : options}\n value={value}\n fullWidth={fullWidth}\n onMenuChange={this.handleMenuChange}\n onOptionSelect={this.handleCustomSelectChange}\n parentEl={this.host}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={\n hasValidationStatus(this.validationStatus, this.disabled) ===\n false\n ? \"\"\n : validationStatus\n }\n message={\n hasValidationStatus(this.validationStatus, this.disabled)\n ? validationText\n : \"\"\n }\n for={this.inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
2
2
|
import { c as closeIcon } from './close-icon.js';
|
3
3
|
import { c as chevronIcon } from './chevron-icon.js';
|
4
|
-
import {
|
4
|
+
import { w as getCssProperty, i as isSlotUsed, D as DEVICE_SIZES, g as getCurrentDeviceSize, e as getThemeForegroundColor, c as checkResizeObserver, a as onComponentRequiredPropUndefined, f as hasClassificationBanner } from './helpers.js';
|
5
|
+
import { I as IcThemeForegroundEnum } from './types.js';
|
5
6
|
import { d as defineCustomElement$6 } from './ic-button2.js';
|
6
7
|
import { d as defineCustomElement$5 } from './ic-divider2.js';
|
7
8
|
import { d as defineCustomElement$4 } from './ic-loading-indicator2.js';
|
@@ -298,7 +299,7 @@ const SideNavigation = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
298
299
|
this.renderTopBar = ({ isSDevice, foregroundColor, menuOpen, href, isAppNameSubtitleVariant, appTitle, }) => (h("div", { class: {
|
299
300
|
"top-bar": true,
|
300
301
|
[this.foregroundColor]: true,
|
301
|
-
} }, isSDevice && (h("nav", { "aria-labelledby": "menu-navigation-toggle-button-landmark", "aria-hidden": "false" }, h("ic-button", { "aria-label": "Open navigation menu", class: "menu-button", id: "menu-button", variant: "secondary", size: "
|
302
|
+
} }, isSDevice && (h("nav", { "aria-labelledby": "menu-navigation-toggle-button-landmark", "aria-hidden": "false" }, h("ic-button", { "aria-label": "Open navigation menu", class: "menu-button", id: "menu-button", variant: "secondary", size: "small", "full-width": "true", appearance: foregroundColor, onClick: this.toggleMenu, "aria-owns": "side-navigation", "aria-haspopup": "true", "aria-expanded": "false" }, h("span", { class: "mobile-top-bar-menu-icon", slot: "icon", innerHTML: menuOpen ? closeIcon : menuIcon }), menuOpen ? "Close" : "Menu"), h("span", { id: "menu-navigation-toggle-button-landmark", class: "navigation-landmark-title", "aria-hidden": "true" }, "Navigation menu toggle button"))), h("div", { class: "app-title-wrapper" }, h("a", { href: href, class: "title-link" }, h("div", { class: "app-icon-container", "aria-hidden": "true" }, h("slot", { name: "app-icon" })), h("ic-typography", { variant: isAppNameSubtitleVariant ? "subtitle-small" : "h3" }, appTitle)))));
|
302
303
|
this.appTitle = undefined;
|
303
304
|
this.status = undefined;
|
304
305
|
this.version = undefined;
|