@ukic/web-components 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-931fd72e.js → helpers-8217daf4.js} +14 -2
- package/dist/cjs/helpers-8217daf4.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +8 -8
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +13 -4
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +32 -30
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +9 -8
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +40 -48
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +16 -8
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +6 -16
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +4 -4
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +4 -4
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +3 -3
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +2 -2
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +16 -5
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +14 -5
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js +7 -7
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-badge/ic-badge.js +12 -3
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +8 -0
- package/dist/collection/components/ic-button/ic-button.stories.js +13 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +4 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +7 -6
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +11 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +5 -3
- package/dist/collection/components/ic-dialog/ic-dialog.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +39 -30
- package/dist/collection/components/ic-divider/ic-divider.stories.js +3 -3
- package/dist/collection/components/ic-footer/ic-footer.stories.js +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
- package/dist/collection/components/ic-input-label/ic-input-label.css +1 -1
- package/dist/collection/components/ic-link/ic-link.css +6 -2
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +19 -24
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +4 -4
- package/dist/collection/components/ic-menu/ic-menu.js +108 -47
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +8 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +24 -9
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -2
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +4 -14
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +57 -11
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +5 -3
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +2 -2
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.css +2 -2
- package/dist/collection/components/ic-select/ic-select.js +2 -2
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +7 -5
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +7 -5
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +7 -5
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +2 -2
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +31 -4
- package/dist/collection/components/ic-switch/ic-switch.css +4 -7
- package/dist/collection/components/ic-text-field/ic-text-field.css +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +5 -10
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +17 -0
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +32 -3
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +7 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +7 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +36 -3
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +17 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +11 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +33 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +19 -2
- package/dist/collection/patterns/z-index.stories.js +2 -1
- package/dist/collection/utils/helpers.js +12 -0
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +13 -1
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-alert.js +7 -7
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-badge.js +12 -3
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +1 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +1 -1
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +8 -7
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-dialog.js +2 -2
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-footer-link.js +1 -1
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-input-label2.js +1 -1
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-link2.js +1 -1
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +23 -28
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +42 -47
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +18 -9
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-item.js +5 -15
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-popover-menu.js +18 -11
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +3 -3
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +3 -3
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +2 -2
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-switch.js +1 -1
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-text-field.js +1 -1
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +17 -4
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +14 -4
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +12 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/core/core.css +38 -24
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-a14025cc.entry.js → p-0179fbd3.entry.js} +2 -2
- package/dist/core/p-018eaee0.entry.js +2 -0
- package/dist/core/p-018eaee0.entry.js.map +1 -0
- package/dist/core/p-02132a4c.entry.js +2 -0
- package/dist/core/p-02132a4c.entry.js.map +1 -0
- package/dist/core/{p-c8555360.entry.js → p-0549305b.entry.js} +2 -2
- package/dist/core/p-056be0df.entry.js +2 -0
- package/dist/core/p-056be0df.entry.js.map +1 -0
- package/dist/core/{p-4dfc41e7.entry.js → p-06b0d0f6.entry.js} +2 -2
- package/dist/core/{p-85f735ed.entry.js → p-06e80441.entry.js} +2 -2
- package/dist/core/{p-1286b234.entry.js → p-08567369.entry.js} +2 -2
- package/dist/core/{p-b811c7a1.entry.js → p-152ddde9.entry.js} +2 -2
- package/dist/core/{p-b811c7a1.entry.js.map → p-152ddde9.entry.js.map} +1 -1
- package/dist/core/p-182b7037.entry.js +2 -0
- package/dist/core/p-182b7037.entry.js.map +1 -0
- package/dist/core/{p-49ca3f54.entry.js → p-29468171.entry.js} +2 -2
- package/dist/core/{p-d7476f6d.entry.js → p-2ec0d11c.entry.js} +2 -2
- package/dist/core/{p-20a6dc40.entry.js → p-3194e46c.entry.js} +2 -2
- package/dist/core/{p-a7286727.entry.js → p-421b5f2d.entry.js} +2 -2
- package/dist/core/{p-ab4e8b4a.entry.js → p-4301e11e.entry.js} +2 -2
- package/dist/core/{p-ad374f0b.entry.js → p-43b98687.entry.js} +2 -2
- package/dist/core/{p-ad374f0b.entry.js.map → p-43b98687.entry.js.map} +1 -1
- package/dist/core/p-4b8bfb59.entry.js +2 -0
- package/dist/core/p-4b8bfb59.entry.js.map +1 -0
- package/dist/core/{p-5b2bf9bb.entry.js → p-4cd83bfe.entry.js} +2 -2
- package/dist/core/{p-44902a33.entry.js → p-50d13439.entry.js} +2 -2
- package/dist/core/p-543b90c5.entry.js +2 -0
- package/dist/core/p-543b90c5.entry.js.map +1 -0
- package/dist/core/p-554c555f.entry.js +2 -0
- package/dist/core/p-554c555f.entry.js.map +1 -0
- package/dist/core/{p-13e65198.entry.js → p-5fb58cc8.entry.js} +2 -2
- package/dist/core/p-627f7172.entry.js +2 -0
- package/dist/core/p-627f7172.entry.js.map +1 -0
- package/dist/core/p-6b52e47f.entry.js +2 -0
- package/dist/core/p-6b52e47f.entry.js.map +1 -0
- package/dist/core/{p-b40ecf16.js → p-70abcb2b.js} +2 -2
- package/dist/core/p-70abcb2b.js.map +1 -0
- package/dist/core/{p-990c37aa.entry.js → p-773ded36.entry.js} +2 -2
- package/dist/core/{p-831e884c.entry.js → p-77750efc.entry.js} +2 -2
- package/dist/core/{p-ac73cfb8.entry.js → p-7cada631.entry.js} +2 -2
- package/dist/core/p-7cada631.entry.js.map +1 -0
- package/dist/core/{p-6cb81f35.entry.js → p-8a5b0fb0.entry.js} +2 -2
- package/dist/core/{p-ced2e6ca.entry.js → p-91f6884a.entry.js} +2 -2
- package/dist/core/{p-ced2e6ca.entry.js.map → p-91f6884a.entry.js.map} +1 -1
- package/dist/core/p-939adcae.entry.js +2 -0
- package/dist/core/p-939adcae.entry.js.map +1 -0
- package/dist/core/{p-476eac8c.entry.js → p-948086f4.entry.js} +2 -2
- package/dist/core/{p-2b342b23.entry.js → p-97f67617.entry.js} +2 -2
- package/dist/core/{p-b59007a3.entry.js → p-98869fe7.entry.js} +2 -2
- package/dist/core/{p-3d7d2ff4.entry.js → p-9d5e4b62.entry.js} +2 -2
- package/dist/core/{p-6c10e1a2.entry.js → p-9ed5f11d.entry.js} +2 -2
- package/dist/core/p-9ed5f11d.entry.js.map +1 -0
- package/dist/core/{p-ab7a5536.entry.js → p-a2ae5d9e.entry.js} +2 -2
- package/dist/core/p-a591ef38.entry.js +2 -0
- package/dist/core/p-a591ef38.entry.js.map +1 -0
- package/dist/core/{p-7ead8535.entry.js → p-ab1103e1.entry.js} +2 -2
- package/dist/core/p-ab1103e1.entry.js.map +1 -0
- package/dist/core/{p-1228fd8c.entry.js → p-ae2ea264.entry.js} +2 -2
- package/dist/core/{p-3afc2870.entry.js → p-afde0edc.entry.js} +2 -2
- package/dist/core/{p-37900547.entry.js → p-b83cca09.entry.js} +2 -2
- package/dist/core/{p-5d9b23ce.entry.js → p-ba89fa16.entry.js} +2 -2
- package/dist/core/{p-8da025b5.entry.js → p-bb21268f.entry.js} +2 -2
- package/dist/core/p-bb21268f.entry.js.map +1 -0
- package/dist/core/{p-226406d6.entry.js → p-c100724d.entry.js} +2 -2
- package/dist/core/{p-e107d1dd.entry.js → p-cd8dab55.entry.js} +2 -2
- package/dist/core/{p-b08bb522.entry.js → p-ce916f35.entry.js} +2 -2
- package/dist/core/p-d85b438a.entry.js +2 -0
- package/dist/core/p-d85b438a.entry.js.map +1 -0
- package/dist/core/{p-24bb2265.entry.js → p-ec1657fc.entry.js} +2 -2
- package/dist/core/{p-54ea7120.entry.js → p-f4ee5fbb.entry.js} +2 -2
- package/dist/core/p-f9491692.entry.js +2 -0
- package/dist/core/p-f9491692.entry.js.map +1 -0
- package/dist/core/{p-5026eeaf.entry.js → p-fb6e6ac4.entry.js} +2 -2
- package/dist/core/{p-9edc5973.entry.js → p-ff47772c.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-91abc444.js → helpers-f5ff3b42.js} +14 -2
- package/dist/esm/helpers-f5ff3b42.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +1 -1
- package/dist/esm/ic-accordion.entry.js +1 -1
- package/dist/esm/ic-alert.entry.js +8 -8
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +1 -1
- package/dist/esm/ic-badge.entry.js +13 -4
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +32 -30
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +2 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +9 -8
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +3 -3
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +40 -48
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +2 -2
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +16 -8
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js +6 -16
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +1 -1
- package/dist/esm/ic-pagination-item.entry.js +1 -1
- package/dist/esm/ic-pagination.entry.js +1 -1
- package/dist/esm/ic-popover-menu.entry.js +16 -11
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js +4 -4
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +4 -4
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +3 -3
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +1 -1
- package/dist/esm/ic-step.entry.js +1 -1
- package/dist/esm/ic-stepper.entry.js +1 -1
- package/dist/esm/ic-switch.entry.js +2 -2
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-text-field.entry.js +2 -2
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +16 -5
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +14 -5
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-badge/ic-badge.d.ts +1 -0
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -2
- package/dist/types/components/ic-menu/ic-menu.d.ts +12 -4
- package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +5 -0
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +7 -0
- package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +4 -0
- package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +23 -0
- package/dist/types/utils/helpers.d.ts +2 -1
- package/hydrate/index.js +198 -151
- package/hydrate/index.mjs +198 -151
- package/package.json +2 -2
- package/vscode-data.json +8 -0
- package/dist/cjs/helpers-931fd72e.js.map +0 -1
- package/dist/core/p-0f3a56bb.entry.js +0 -2
- package/dist/core/p-0f3a56bb.entry.js.map +0 -1
- package/dist/core/p-21ed856c.entry.js +0 -2
- package/dist/core/p-21ed856c.entry.js.map +0 -1
- package/dist/core/p-334672c1.entry.js +0 -2
- package/dist/core/p-334672c1.entry.js.map +0 -1
- package/dist/core/p-3abaa877.entry.js +0 -2
- package/dist/core/p-3abaa877.entry.js.map +0 -1
- package/dist/core/p-41bb4db1.entry.js +0 -2
- package/dist/core/p-41bb4db1.entry.js.map +0 -1
- package/dist/core/p-5f9d1977.entry.js +0 -2
- package/dist/core/p-5f9d1977.entry.js.map +0 -1
- package/dist/core/p-6c10e1a2.entry.js.map +0 -1
- package/dist/core/p-7ead8535.entry.js.map +0 -1
- package/dist/core/p-89f493f3.entry.js +0 -2
- package/dist/core/p-89f493f3.entry.js.map +0 -1
- package/dist/core/p-8da025b5.entry.js.map +0 -1
- package/dist/core/p-9e039aba.entry.js +0 -2
- package/dist/core/p-9e039aba.entry.js.map +0 -1
- package/dist/core/p-ac73cfb8.entry.js.map +0 -1
- package/dist/core/p-b40ecf16.js.map +0 -1
- package/dist/core/p-bae2df5e.entry.js +0 -2
- package/dist/core/p-bae2df5e.entry.js.map +0 -1
- package/dist/core/p-d32c377d.entry.js +0 -2
- package/dist/core/p-d32c377d.entry.js.map +0 -1
- package/dist/core/p-d4a77f80.entry.js +0 -2
- package/dist/core/p-d4a77f80.entry.js.map +0 -1
- package/dist/core/p-e506ec91.entry.js +0 -2
- package/dist/core/p-e506ec91.entry.js.map +0 -1
- package/dist/core/p-fca45edb.entry.js +0 -2
- package/dist/core/p-fca45edb.entry.js.map +0 -1
- package/dist/esm/helpers-91abc444.js.map +0 -1
- /package/dist/core/{p-a14025cc.entry.js.map → p-0179fbd3.entry.js.map} +0 -0
- /package/dist/core/{p-c8555360.entry.js.map → p-0549305b.entry.js.map} +0 -0
- /package/dist/core/{p-4dfc41e7.entry.js.map → p-06b0d0f6.entry.js.map} +0 -0
- /package/dist/core/{p-85f735ed.entry.js.map → p-06e80441.entry.js.map} +0 -0
- /package/dist/core/{p-1286b234.entry.js.map → p-08567369.entry.js.map} +0 -0
- /package/dist/core/{p-49ca3f54.entry.js.map → p-29468171.entry.js.map} +0 -0
- /package/dist/core/{p-d7476f6d.entry.js.map → p-2ec0d11c.entry.js.map} +0 -0
- /package/dist/core/{p-20a6dc40.entry.js.map → p-3194e46c.entry.js.map} +0 -0
- /package/dist/core/{p-a7286727.entry.js.map → p-421b5f2d.entry.js.map} +0 -0
- /package/dist/core/{p-ab4e8b4a.entry.js.map → p-4301e11e.entry.js.map} +0 -0
- /package/dist/core/{p-5b2bf9bb.entry.js.map → p-4cd83bfe.entry.js.map} +0 -0
- /package/dist/core/{p-44902a33.entry.js.map → p-50d13439.entry.js.map} +0 -0
- /package/dist/core/{p-13e65198.entry.js.map → p-5fb58cc8.entry.js.map} +0 -0
- /package/dist/core/{p-990c37aa.entry.js.map → p-773ded36.entry.js.map} +0 -0
- /package/dist/core/{p-831e884c.entry.js.map → p-77750efc.entry.js.map} +0 -0
- /package/dist/core/{p-6cb81f35.entry.js.map → p-8a5b0fb0.entry.js.map} +0 -0
- /package/dist/core/{p-476eac8c.entry.js.map → p-948086f4.entry.js.map} +0 -0
- /package/dist/core/{p-2b342b23.entry.js.map → p-97f67617.entry.js.map} +0 -0
- /package/dist/core/{p-b59007a3.entry.js.map → p-98869fe7.entry.js.map} +0 -0
- /package/dist/core/{p-3d7d2ff4.entry.js.map → p-9d5e4b62.entry.js.map} +0 -0
- /package/dist/core/{p-ab7a5536.entry.js.map → p-a2ae5d9e.entry.js.map} +0 -0
- /package/dist/core/{p-1228fd8c.entry.js.map → p-ae2ea264.entry.js.map} +0 -0
- /package/dist/core/{p-3afc2870.entry.js.map → p-afde0edc.entry.js.map} +0 -0
- /package/dist/core/{p-37900547.entry.js.map → p-b83cca09.entry.js.map} +0 -0
- /package/dist/core/{p-5d9b23ce.entry.js.map → p-ba89fa16.entry.js.map} +0 -0
- /package/dist/core/{p-226406d6.entry.js.map → p-c100724d.entry.js.map} +0 -0
- /package/dist/core/{p-e107d1dd.entry.js.map → p-cd8dab55.entry.js.map} +0 -0
- /package/dist/core/{p-b08bb522.entry.js.map → p-ce916f35.entry.js.map} +0 -0
- /package/dist/core/{p-24bb2265.entry.js.map → p-ec1657fc.entry.js.map} +0 -0
- /package/dist/core/{p-54ea7120.entry.js.map → p-f4ee5fbb.entry.js.map} +0 -0
- /package/dist/core/{p-5026eeaf.entry.js.map → p-fb6e6ac4.entry.js.map} +0 -0
- /package/dist/core/{p-9edc5973.entry.js.map → p-ff47772c.entry.js.map} +0 -0
@@ -92,12 +92,15 @@ export class LoadingIndicator {
|
|
92
92
|
}
|
93
93
|
return LOADING_INDICATOR_WIDTHS[this.size];
|
94
94
|
};
|
95
|
+
this.calculateProportion = (progress) => {
|
96
|
+
const minProgress = Math.min(this.max, Math.max(this.min, progress));
|
97
|
+
return (minProgress - this.min) / (this.max - this.min);
|
98
|
+
};
|
95
99
|
this.setLinearDeterminateWidth = () => {
|
96
100
|
// Ensure progress cannot be out of bounds
|
97
101
|
if (!this.innerElement || !this.progress)
|
98
102
|
return;
|
99
|
-
const
|
100
|
-
const proportion = (progress - this.min) / (this.max - this.min);
|
103
|
+
const proportion = this.calculateProportion(this.progress);
|
101
104
|
this.clipInnerElement = proportion > 0.5;
|
102
105
|
if (this.clipInnerElement) {
|
103
106
|
this.innerElement.classList.remove("clip");
|
@@ -122,33 +125,26 @@ export class LoadingIndicator {
|
|
122
125
|
}
|
123
126
|
};
|
124
127
|
this.setCircleDimensions = () => {
|
125
|
-
let dashOffset = undefined;
|
126
128
|
if (this.circularDiameter <= 0)
|
127
129
|
return;
|
128
130
|
const r = this.circularDiameter / 2;
|
129
131
|
const nextRadius = r - this.circularLineWidth / 2;
|
130
132
|
const dashArray = 2 * Math.PI * nextRadius;
|
131
|
-
if (this.progress) {
|
132
|
-
const progress = Math.min(Math.max(this.progress, this.min), this.max);
|
133
|
-
dashOffset = `${(-1 - (progress - this.min) / (this.max - this.min)) * dashArray}px`;
|
134
|
-
}
|
135
133
|
this.circularDimensions = {
|
136
134
|
x: r,
|
137
135
|
y: r,
|
138
136
|
r: nextRadius,
|
139
137
|
dashArray: `${dashArray}px`,
|
140
|
-
dashOffset
|
138
|
+
dashOffset: this.progress
|
139
|
+
? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`
|
140
|
+
: undefined,
|
141
141
|
};
|
142
142
|
};
|
143
143
|
}
|
144
144
|
watchPropHandler() {
|
145
145
|
this.updateLabel();
|
146
146
|
}
|
147
|
-
|
148
|
-
if (this.type === "circular")
|
149
|
-
this.setCircleDimensions();
|
150
|
-
}
|
151
|
-
watchProgressHandler() {
|
147
|
+
handleProgressChange() {
|
152
148
|
if (this.type === "linear") {
|
153
149
|
this.setLinearDeterminateWidth();
|
154
150
|
}
|
@@ -164,8 +160,8 @@ export class LoadingIndicator {
|
|
164
160
|
this.circularLineWidth = diameter * 0.1;
|
165
161
|
this.circularDiameter = diameter;
|
166
162
|
this.outerElement.style.setProperty("--circular-line-width", `${this.circularLineWidth}px`);
|
167
|
-
this.setCircleDimensions();
|
168
163
|
}
|
164
|
+
this.setCircleDimensions();
|
169
165
|
}
|
170
166
|
else {
|
171
167
|
this.setLinearDeterminateWidth();
|
@@ -182,25 +178,24 @@ export class LoadingIndicator {
|
|
182
178
|
this.setIndicatorDimensions();
|
183
179
|
}
|
184
180
|
render() {
|
185
|
-
const {
|
186
|
-
|
187
|
-
return (h(Host, { key: '7f78047511c580f116c21d00e76a19dee3319d60', class: {
|
181
|
+
const { circularDiameter, circularDimensions: { x, y, r, dashArray, dashOffset }, description, fullWidth, indicatorLabel, innerLabel, label, max, min, monochrome, progress, size, theme, type, } = this;
|
182
|
+
return (h(Host, { key: '8ee440b25dde3874c36eb6c70f3eaac1bf7649d1', class: {
|
188
183
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
189
184
|
"ic-loading-indicator-full-width": fullWidth,
|
190
185
|
"ic-loading-indicator-label": !!label,
|
191
186
|
"ic-loading-indicator-monochrome": monochrome,
|
192
|
-
} }, h("div", { key: '
|
187
|
+
} }, h("div", { key: '3d06914b8253b77c9df58d5c94a44442ea3f2d16', class: "ic-loading-container", part: "ic-loading-container" }, h("div", { key: '43a11cf45e813b5560721472c431452a761593fb', ref: (el) => (this.outerElement = el), class: {
|
193
188
|
[`ic-loading-${type}-outer`]: true,
|
194
189
|
[progress === undefined ? "indeterminate" : "determinate"]: true,
|
195
|
-
}, role: "progressbar", "aria-labelledby": label && size !== "icon" && "ic-loading-label", "aria-label": description, "aria-valuenow": progress, "aria-valuemin": min, "aria-valuemax": max }, h("div", { key: '
|
190
|
+
}, role: "progressbar", "aria-labelledby": label && size !== "icon" && "ic-loading-label", "aria-label": description, "aria-valuenow": progress, "aria-valuemin": min, "aria-valuemax": max }, h("div", { key: 'a95cd8ed7e58821c8ac4001c8926d202719e63f7', ref: (el) => (this.innerElement = el), class: {
|
196
191
|
[`ic-loading-${type}-inner`]: true,
|
197
192
|
"inner-label": !!innerLabel,
|
198
|
-
} }, innerLabel && size === "small" && (h("ic-typography", { key: '
|
193
|
+
} }, innerLabel && size === "small" && (h("ic-typography", { key: '04b25f8cba789f316ba2db771b4a7d30eac7fe10', variant: "subtitle-small", class: "inner-text" }, innerLabel)), type === "circular" && (h("svg", { key: 'ff98da2b3f382ad698855d7ce1b0a553dbfadae3', class: "ic-loading-circular-svg", viewBox: `0 0 ${circularDiameter} ${circularDiameter}` }, h("circle", { key: 'b53c7477ae972370739b908141776337f277fc48', cx: x, cy: y, r: r }), h("circle", { key: 'b652351de6695c077a1f276710e0fe558ff393e4', style: {
|
199
194
|
"--circular-steps-max": progress ? `${max}` : undefined,
|
200
195
|
"--progress-value": progress !== undefined ? `${progress}` : undefined,
|
201
196
|
"--stroke-dasharray": dashArray,
|
202
197
|
"--stroke-dashoffset": dashOffset,
|
203
|
-
}, cx: x, cy: y, r: r }))))), label && size !== "icon" && (h("ic-typography", { key: '
|
198
|
+
}, cx: x, cy: y, r: r }))))), label && size !== "icon" && (h("ic-typography", { key: 'b070b1975f52606aa8df8f8575859a12ab4e7982', id: "ic-loading-label", class: "ic-loading-label", role: "alert", variant: this.getLabelVariant() }, h("p", { key: 'b654d871fff4ad30b2fa7bfff7b2756f0b7475ed' }, indicatorLabel))))));
|
204
199
|
}
|
205
200
|
static get is() { return "ic-loading-indicator"; }
|
206
201
|
static get encapsulation() { return "shadow"; }
|
@@ -492,13 +487,13 @@ export class LoadingIndicator {
|
|
492
487
|
"methodName": "watchPropHandler"
|
493
488
|
}, {
|
494
489
|
"propName": "max",
|
495
|
-
"methodName": "
|
490
|
+
"methodName": "handleProgressChange"
|
496
491
|
}, {
|
497
492
|
"propName": "min",
|
498
|
-
"methodName": "
|
493
|
+
"methodName": "handleProgressChange"
|
499
494
|
}, {
|
500
495
|
"propName": "progress",
|
501
|
-
"methodName": "
|
496
|
+
"methodName": "handleProgressChange"
|
502
497
|
}, {
|
503
498
|
"propName": "type",
|
504
499
|
"methodName": "setIndicatorDimensions"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n @Watch(\"max\")\n @Watch(\"min\")\n minMaxChangeHandler(): void {\n if (this.type === \"circular\") this.setCircleDimensions();\n }\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"progress\")\n watchProgressHandler(): void {\n if (this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n if (this.type === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n this.setCircleDimensions();\n }\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.type === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const progress = Math.min(this.max, Math.max(this.min, this.progress));\n const proportion = (progress - this.min) / (this.max - this.min);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n let dashOffset = undefined;\n\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n\n const dashArray = 2 * Math.PI * nextRadius;\n\n if (this.progress) {\n const progress = Math.min(Math.max(this.progress, this.min), this.max);\n dashOffset = `${\n (-1 - (progress - this.min) / (this.max - this.min)) * dashArray\n }px`;\n }\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset,\n };\n };\n\n render() {\n const {\n theme,\n label,\n description,\n size,\n fullWidth,\n innerLabel,\n monochrome,\n type,\n progress,\n min,\n max,\n circularDiameter,\n indicatorLabel,\n circularDimensions,\n } = this;\n const { x, y, r, dashArray, dashOffset } = circularDimensions;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${type}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${type}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"status\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"max\")\n @Watch(\"min\")\n @Watch(\"progress\")\n handleProgressChange(): void {\n if (this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n if (this.type === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n this.setCircleDimensions();\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.type === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private calculateProportion = (progress: number) => {\n const minProgress = Math.min(this.max, Math.max(this.min, progress));\n return (minProgress - this.min) / (this.max - this.min);\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const proportion = this.calculateProportion(this.progress);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n const dashArray = 2 * Math.PI * nextRadius;\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset: this.progress\n ? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`\n : undefined,\n };\n };\n\n render() {\n const {\n circularDiameter,\n circularDimensions: { x, y, r, dashArray, dashOffset },\n description,\n fullWidth,\n indicatorLabel,\n innerLabel,\n label,\n max,\n min,\n monochrome,\n progress,\n size,\n theme,\n type,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${type}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${type}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"alert\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
@@ -408,8 +408,8 @@ export const PlaygroundIndeterminate = {
|
|
408
408
|
render: (args) =>
|
409
409
|
html`<div
|
410
410
|
style="background-color: ${args.theme === "dark"
|
411
|
-
? "
|
412
|
-
: "
|
411
|
+
? "var(--ic-color-page-background-dark)"
|
412
|
+
: "var(--ic-color-page-background-light)"}; padding: 16px;"
|
413
413
|
>
|
414
414
|
<ic-loading-indicator
|
415
415
|
monochrome=${args.monochrome}
|
@@ -433,8 +433,8 @@ export const PlaygroundDeterminate = {
|
|
433
433
|
render: (args) =>
|
434
434
|
html`<div
|
435
435
|
style="background-color: ${args.theme === "dark"
|
436
|
-
? "
|
437
|
-
: "
|
436
|
+
? "var(--ic-color-page-background-dark)"
|
437
|
+
: "var(--ic-color-page-background-light)"}; padding: 16px;"
|
438
438
|
>
|
439
439
|
<ic-loading-indicator
|
440
440
|
monochrome=${args.monochrome}
|
@@ -12,9 +12,6 @@ export class Menu {
|
|
12
12
|
this.hasPreviouslyBlurred = false;
|
13
13
|
this.hasTimedOut = false;
|
14
14
|
this.isLoading = false;
|
15
|
-
this.isMultiSelect = false;
|
16
|
-
this.isSearchBar = false;
|
17
|
-
this.isSearchableSelect = false;
|
18
15
|
this.lastOptionSelected = null; // Index of last option selected
|
19
16
|
this.lastOptionFocused = null; // Index of last option focused
|
20
17
|
this.multiOptionClicked = null;
|
@@ -47,6 +44,18 @@ export class Menu {
|
|
47
44
|
* The custom name for the label field for IcMenuOption.
|
48
45
|
*/
|
49
46
|
this.labelField = "label";
|
47
|
+
/**
|
48
|
+
* @internal - flag to specify if menu is in a ic-select multiple.
|
49
|
+
*/
|
50
|
+
this.multiSelect = false;
|
51
|
+
/**
|
52
|
+
* @internal - flag to specify if menu is in a searchable ic-select.
|
53
|
+
*/
|
54
|
+
this.searchableSelect = false;
|
55
|
+
/**
|
56
|
+
* @internal - flag to specify if menu is in a ic-search-bar.
|
57
|
+
*/
|
58
|
+
this.searchBar = false;
|
50
59
|
/**
|
51
60
|
* Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.
|
52
61
|
*/
|
@@ -79,7 +88,7 @@ export class Menu {
|
|
79
88
|
this.preventClickOpen = false;
|
80
89
|
}
|
81
90
|
// Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed
|
82
|
-
if (this.
|
91
|
+
if (this.multiSelect) {
|
83
92
|
this.optionHighlighted = undefined;
|
84
93
|
this.multiOptionClicked = null;
|
85
94
|
}
|
@@ -113,27 +122,12 @@ export class Menu {
|
|
113
122
|
});
|
114
123
|
}
|
115
124
|
};
|
116
|
-
this.getParentEl = (parent) => {
|
117
|
-
if (parent.tagName === this.SEARCH_BAR_TAG) {
|
118
|
-
this.isSearchBar = true;
|
119
|
-
}
|
120
|
-
else if (parent.tagName === "IC-SELECT") {
|
121
|
-
if (parent.getAttribute("searchable") !== null &&
|
122
|
-
parent.getAttribute("searchable") !== undefined) {
|
123
|
-
this.isSearchableSelect = true;
|
124
|
-
}
|
125
|
-
else if (parent.getAttribute("multiple") !== null &&
|
126
|
-
parent.getAttribute("multiple") !== undefined) {
|
127
|
-
this.isMultiSelect = true;
|
128
|
-
}
|
129
|
-
}
|
130
|
-
};
|
131
125
|
// Open menu when up or down arrow keys are pressed
|
132
126
|
this.arrowBehaviour = (event) => {
|
133
127
|
event.preventDefault();
|
134
128
|
this.handleMenuChange(true);
|
135
129
|
};
|
136
|
-
this.getMenuOptions = () => this.
|
130
|
+
this.getMenuOptions = () => this.searchBar ? this.options : this.ungroupedOptions;
|
137
131
|
// Set option that is focused and so should show focus state
|
138
132
|
this.setHighlightedOption = (highlightedIndex) => {
|
139
133
|
const menuOptions = this.getMenuOptions();
|
@@ -171,11 +165,11 @@ export class Menu {
|
|
171
165
|
if (!this.isLoading && !this.hasTimedOut) {
|
172
166
|
this.keyboardNav = true;
|
173
167
|
}
|
174
|
-
const isOpen = this.
|
168
|
+
const isOpen = this.searchBar || this.searchableSelect || this.open;
|
175
169
|
if (isOpen) {
|
176
170
|
if (highlightedOptionIndex >= 0) {
|
177
171
|
if (options[highlightedOptionIndex] !== undefined) {
|
178
|
-
if (this.
|
172
|
+
if (this.searchBar &&
|
179
173
|
options[highlightedOptionIndex].disabled === true) {
|
180
174
|
this.disabledOptionSelected = true;
|
181
175
|
}
|
@@ -220,7 +214,7 @@ export class Menu {
|
|
220
214
|
const clickedMultiOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.multiOptionClicked);
|
221
215
|
const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
|
222
216
|
// Space press should be equivalent to Enter when multi-select
|
223
|
-
if (event.key === " " && this.
|
217
|
+
if (event.key === " " && this.multiSelect) {
|
224
218
|
this.handleOptionSelect(event, highlightedOptionIndex);
|
225
219
|
}
|
226
220
|
else {
|
@@ -251,7 +245,7 @@ export class Menu {
|
|
251
245
|
this.handleSingleShiftSelect(event, 0, menuOptions);
|
252
246
|
}
|
253
247
|
// Deselect currently selected options if arrow was pressed for first time after shift is held
|
254
|
-
if (this.
|
248
|
+
if (this.multiSelect && this.shiftPressed) {
|
255
249
|
this.deselectSelectedOptions([
|
256
250
|
highlightedOptionIndex,
|
257
251
|
this.getOptionHighlightedIndex(),
|
@@ -290,7 +284,7 @@ export class Menu {
|
|
290
284
|
this.handleSingleShiftSelect(event, highlightedOptionIndex - 1, menuOptions);
|
291
285
|
}
|
292
286
|
// Deselect currently selected options if arrow was pressed for first time after shift is held
|
293
|
-
if (this.
|
287
|
+
if (this.multiSelect && this.shiftPressed) {
|
294
288
|
this.deselectSelectedOptions([
|
295
289
|
highlightedOptionIndex,
|
296
290
|
this.getOptionHighlightedIndex(),
|
@@ -338,7 +332,7 @@ export class Menu {
|
|
338
332
|
if (!isKeyboardCombination) {
|
339
333
|
this.keyboardNav = false;
|
340
334
|
}
|
341
|
-
if (this.
|
335
|
+
if (this.searchBar || this.searchableSelect) {
|
342
336
|
break;
|
343
337
|
}
|
344
338
|
else {
|
@@ -376,10 +370,10 @@ export class Menu {
|
|
376
370
|
if (event.key === "Shift") {
|
377
371
|
this.shiftPressed = true;
|
378
372
|
}
|
379
|
-
if (this.
|
373
|
+
if (this.searchBar) {
|
380
374
|
this.keyboardNav = true;
|
381
375
|
}
|
382
|
-
if (this.
|
376
|
+
if (this.multiSelect) {
|
383
377
|
if (this.open && !event.shiftKey && this.selectAllButton) {
|
384
378
|
event.preventDefault();
|
385
379
|
this.selectAllButton.focus(); // Move focus to select all button instead of focused option
|
@@ -422,7 +416,7 @@ export class Menu {
|
|
422
416
|
};
|
423
417
|
this.handleOptionClick = (event) => {
|
424
418
|
const { value, label } = event.target.dataset;
|
425
|
-
if (this.
|
419
|
+
if (this.multiSelect) {
|
426
420
|
const menuOptions = this.getMenuOptions();
|
427
421
|
const selectedOptionIndex = menuOptions.findIndex((option) => option.value === value);
|
428
422
|
this.handleOptionSelect(event, selectedOptionIndex, true);
|
@@ -464,7 +458,7 @@ export class Menu {
|
|
464
458
|
this.lastOptionFocused = null;
|
465
459
|
this.lastOptionSelected = null;
|
466
460
|
}
|
467
|
-
if (!this.
|
461
|
+
if (!this.searchBar)
|
468
462
|
this.hasPreviouslyBlurred = !!event.relatedTarget;
|
469
463
|
};
|
470
464
|
this.handleMouseDown = (event) => {
|
@@ -474,7 +468,7 @@ export class Menu {
|
|
474
468
|
if (this.activationType === "automatic") {
|
475
469
|
this.autoSetValueOnMenuKeyDown(event);
|
476
470
|
}
|
477
|
-
else if (this.activationType === "manual" && !this.
|
471
|
+
else if (this.activationType === "manual" && !this.searchBar) {
|
478
472
|
this.manualSetInputValueKeyboardOpen(event);
|
479
473
|
}
|
480
474
|
};
|
@@ -517,7 +511,7 @@ export class Menu {
|
|
517
511
|
// When shift key is being used to select contiguous options one by one on a multi-select
|
518
512
|
// I.e. holding shift and pressing up and down arrow keys
|
519
513
|
this.handleSingleShiftSelect = (event, optionToSelectIndex, options) => {
|
520
|
-
if (this.
|
514
|
+
if (this.multiSelect &&
|
521
515
|
event.shiftKey &&
|
522
516
|
!this.isOptionSelected(optionToSelectIndex)) {
|
523
517
|
this.selectHighlightedOption(options, optionToSelectIndex);
|
@@ -767,9 +761,7 @@ export class Menu {
|
|
767
761
|
this.loadUngroupedOptions();
|
768
762
|
}
|
769
763
|
connectedCallback() {
|
770
|
-
if (this.
|
771
|
-
this.getParentEl(this.parentEl);
|
772
|
-
if (this.isSearchBar) {
|
764
|
+
if (this.searchBar) {
|
773
765
|
if (this.searchMode === "navigation")
|
774
766
|
this.setHighlightedOption(0);
|
775
767
|
this.initialOptionsListRender = true;
|
@@ -790,7 +782,7 @@ export class Menu {
|
|
790
782
|
this.isLoading = (_d = this.options) === null || _d === void 0 ? void 0 : _d.some((opt) => opt.loading);
|
791
783
|
}
|
792
784
|
componentDidLoad() {
|
793
|
-
if (this.
|
785
|
+
if (this.searchBar &&
|
794
786
|
this.parentEl.disableAutoFiltering) {
|
795
787
|
this.focusFromSearchKeypress = true;
|
796
788
|
}
|
@@ -812,7 +804,7 @@ export class Menu {
|
|
812
804
|
this.keyboardNav &&
|
813
805
|
inputValueInOptions &&
|
814
806
|
this.autofocusOnSelected &&
|
815
|
-
!this.
|
807
|
+
!this.searchableSelect) {
|
816
808
|
this.scrollToSelected(this.menu);
|
817
809
|
}
|
818
810
|
else if (this.selectOnEnter) {
|
@@ -906,21 +898,21 @@ export class Menu {
|
|
906
898
|
focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex) {
|
907
899
|
if (!menuOptions[highlightedOptionIndex])
|
908
900
|
return;
|
909
|
-
if (this.
|
901
|
+
if (this.searchBar) {
|
910
902
|
this.parentEl.setFocus();
|
911
903
|
if (this.searchMode === "navigation")
|
912
904
|
this.setHighlightedOption(0);
|
913
905
|
}
|
914
|
-
if (this.
|
906
|
+
if (this.searchableSelect) {
|
915
907
|
this.parentEl.setFocus();
|
916
908
|
}
|
917
909
|
this.focusFromSearchKeypress = true;
|
918
910
|
}
|
919
911
|
render() {
|
920
|
-
const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, } = this;
|
912
|
+
const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, multiSelect, } = this;
|
921
913
|
const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
|
922
914
|
const hasNoResults = this.host.classList.contains("no-results");
|
923
|
-
return (h(Host, { key: '
|
915
|
+
return (h(Host, { key: 'bce19ee8d7929f03d2de173ad6f2b639cd2fbf2c', class: {
|
924
916
|
"ic-menu-full-width": !!fullWidth,
|
925
917
|
"ic-menu-no-focus": ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" &&
|
926
918
|
(parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) !== SEARCH_BAR_TAG) ||
|
@@ -928,8 +920,8 @@ export class Menu {
|
|
928
920
|
isLoading,
|
929
921
|
[`ic-menu-${size}`]: true,
|
930
922
|
"ic-menu-open": open && options.length !== 0,
|
931
|
-
"ic-menu-multiple":
|
932
|
-
} }, options.length !== 0 && (h("ul", { key: '
|
923
|
+
"ic-menu-multiple": multiSelect,
|
924
|
+
} }, options.length !== 0 && (h("ul", { key: 'edbb9d969dd8218a45c6d012abf8964fc2acd0a7', id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": multiSelect ? "true" : "false", tabindex: open &&
|
933
925
|
!keyboardNav &&
|
934
926
|
((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ||
|
935
927
|
(parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)
|
@@ -938,7 +930,7 @@ export class Menu {
|
|
938
930
|
if (option.children) {
|
939
931
|
if (option.children.length > 0) {
|
940
932
|
return (h("div", null, h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, h("p", null, option[this.labelField])), option.children.map((childOption) => childOption.label &&
|
941
|
-
this.displayOption(childOption,
|
933
|
+
this.displayOption(childOption, multiSelect
|
942
934
|
? value === null || value === void 0 ? void 0 : value.includes(childOption[this.valueField])
|
943
935
|
: childOption[this.valueField] === value, index, option))));
|
944
936
|
}
|
@@ -949,15 +941,15 @@ export class Menu {
|
|
949
941
|
else {
|
950
942
|
// Display option only if it has a label (rather than displaying an empty space)
|
951
943
|
return (option.label &&
|
952
|
-
this.displayOption(option,
|
944
|
+
this.displayOption(option, multiSelect
|
953
945
|
? value === null || value === void 0 ? void 0 : value.includes(option[this.valueField])
|
954
946
|
: option[this.valueField] === value, index));
|
955
947
|
}
|
956
948
|
}))), options.length !== 0 &&
|
957
|
-
|
949
|
+
multiSelect &&
|
958
950
|
!isLoading &&
|
959
951
|
!hasTimedOut &&
|
960
|
-
!hasNoResults && (h("div", { key: '
|
952
|
+
!hasNoResults && (h("div", { key: '317f18bd8ff88fadf840ccc5666bf7ae7a6b1e65', class: "option-bar" }, h("ic-typography", { key: '32e28e814c9c3d4ac243e2d45cb2487a99a900ba' }, h("p", { key: '6ed28e350ad356ef669b4b6b9f3d8718a7274782' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { key: 'e66e1b04732d26ebbc05751eadc49968c11ac92c', class: "select-all-button", "aria-label": `${selectAllButtonText} options for ${inputLabel}`, ref: (el) => (this.selectAllButton = el), variant: "tertiary", onClick: this.handleSelectAllClick, onMouseDown: this.handleSelectAllMouseDown, onBlur: this.handleSelectAllBlur, onFocus: this.handleSelectAllFocus, size: size === "small" ? "small" : "medium" }, selectAllButtonText)))));
|
961
953
|
}
|
962
954
|
static get is() { return "ic-menu"; }
|
963
955
|
static get encapsulation() { return "scoped"; }
|
@@ -1164,6 +1156,29 @@ export class Menu {
|
|
1164
1156
|
"attribute": "menu-id",
|
1165
1157
|
"reflect": false
|
1166
1158
|
},
|
1159
|
+
"multiSelect": {
|
1160
|
+
"type": "boolean",
|
1161
|
+
"mutable": false,
|
1162
|
+
"complexType": {
|
1163
|
+
"original": "boolean",
|
1164
|
+
"resolved": "boolean",
|
1165
|
+
"references": {}
|
1166
|
+
},
|
1167
|
+
"required": false,
|
1168
|
+
"optional": false,
|
1169
|
+
"docs": {
|
1170
|
+
"tags": [{
|
1171
|
+
"name": "internal",
|
1172
|
+
"text": "- flag to specify if menu is in a ic-select multiple."
|
1173
|
+
}],
|
1174
|
+
"text": ""
|
1175
|
+
},
|
1176
|
+
"getter": false,
|
1177
|
+
"setter": false,
|
1178
|
+
"attribute": "multi-select",
|
1179
|
+
"reflect": false,
|
1180
|
+
"defaultValue": "false"
|
1181
|
+
},
|
1167
1182
|
"open": {
|
1168
1183
|
"type": "boolean",
|
1169
1184
|
"mutable": false,
|
@@ -1208,6 +1223,52 @@ export class Menu {
|
|
1208
1223
|
"getter": false,
|
1209
1224
|
"setter": false
|
1210
1225
|
},
|
1226
|
+
"searchableSelect": {
|
1227
|
+
"type": "boolean",
|
1228
|
+
"mutable": false,
|
1229
|
+
"complexType": {
|
1230
|
+
"original": "boolean",
|
1231
|
+
"resolved": "boolean",
|
1232
|
+
"references": {}
|
1233
|
+
},
|
1234
|
+
"required": false,
|
1235
|
+
"optional": false,
|
1236
|
+
"docs": {
|
1237
|
+
"tags": [{
|
1238
|
+
"name": "internal",
|
1239
|
+
"text": "- flag to specify if menu is in a searchable ic-select."
|
1240
|
+
}],
|
1241
|
+
"text": ""
|
1242
|
+
},
|
1243
|
+
"getter": false,
|
1244
|
+
"setter": false,
|
1245
|
+
"attribute": "searchable-select",
|
1246
|
+
"reflect": false,
|
1247
|
+
"defaultValue": "false"
|
1248
|
+
},
|
1249
|
+
"searchBar": {
|
1250
|
+
"type": "boolean",
|
1251
|
+
"mutable": false,
|
1252
|
+
"complexType": {
|
1253
|
+
"original": "boolean",
|
1254
|
+
"resolved": "boolean",
|
1255
|
+
"references": {}
|
1256
|
+
},
|
1257
|
+
"required": false,
|
1258
|
+
"optional": false,
|
1259
|
+
"docs": {
|
1260
|
+
"tags": [{
|
1261
|
+
"name": "internal",
|
1262
|
+
"text": "- flag to specify if menu is in a ic-search-bar."
|
1263
|
+
}],
|
1264
|
+
"text": ""
|
1265
|
+
},
|
1266
|
+
"getter": false,
|
1267
|
+
"setter": false,
|
1268
|
+
"attribute": "search-bar",
|
1269
|
+
"reflect": false,
|
1270
|
+
"defaultValue": "false"
|
1271
|
+
},
|
1211
1272
|
"searchMode": {
|
1212
1273
|
"type": "string",
|
1213
1274
|
"mutable": false,
|