@ukic/canary-web-components 3.0.0-canary.31 → 3.0.0-canary.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-6f4b406b.js → helpers-f81fed28.js} +37 -1
- package/dist/cjs/helpers-f81fed28.js.map +1 -0
- package/dist/cjs/ic-calendar_2.cjs.entry.js +2 -2
- package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox_3.cjs.entry.js +19 -7
- package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-table.cjs.entry.js +13 -8
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +9 -5
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +8 -4
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-table-of-contents.cjs.entry.js +1 -1
- package/dist/cjs/ic-time-input.cjs.entry.js +401 -99
- package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-time-selector.cjs.entry.js +842 -0
- package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-toast.cjs.entry.js +14 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/{ic-toggle-button.cjs.entry.js → ic-toggle-button_2.cjs.entry.js} +274 -1
- package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
- package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
- package/dist/cjs/index-d337cd8a.js +8 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ic-calendar/ic-calendar.css +13 -7
- package/dist/collection/components/ic-calendar/ic-calendar.stories.js +13 -0
- package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.js +13 -8
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +78 -6
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +28 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js.map +1 -1
- package/dist/collection/components/ic-time-input/ic-time-input.css +21 -3
- package/dist/collection/components/ic-time-input/ic-time-input.js +434 -106
- package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
- package/dist/collection/components/ic-time-input/ic-time-input.stories.js +58 -9
- package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
- package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js +2 -0
- package/dist/collection/components/ic-time-input/test/helpers/ic-time-input.js.map +1 -1
- package/dist/collection/components/ic-time-selector/ic-time-selector.css +293 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.js +1075 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +166 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.types.js +2 -0
- package/dist/collection/components/ic-time-selector/ic-time-selector.types.js.map +1 -0
- package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
- package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
- package/dist/collection/utils/helpers.js +35 -0
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers2.js +36 -1
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-calendar2.js +1 -1
- package/dist/components/ic-calendar2.js.map +1 -1
- package/dist/components/ic-checkbox2.js.map +1 -1
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-data-table.js +12 -7
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-footer.js +10 -5
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-menu2.js +1 -1
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-pagination-bar2.js +21 -6
- package/dist/components/ic-pagination-bar2.js.map +1 -1
- package/dist/components/ic-pagination2.js +9 -4
- package/dist/components/ic-pagination2.js.map +1 -1
- package/dist/components/ic-radio-group.js +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +10 -7
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-time-input.js +431 -112
- package/dist/components/ic-time-input.js.map +1 -1
- package/dist/components/ic-time-selector.d.ts +11 -0
- package/dist/components/ic-time-selector.js +898 -0
- package/dist/components/ic-time-selector.js.map +1 -0
- package/dist/components/ic-toast.js +15 -6
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +1 -299
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/{esm/ic-toggle-button-group.entry.js → components/ic-toggle-button-group2.js} +70 -13
- package/dist/components/ic-toggle-button-group2.js.map +1 -0
- package/dist/components/ic-toggle-button.js +1 -228
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/{esm/ic-toggle-button.entry.js → components/ic-toggle-button2.js} +65 -10
- package/dist/components/ic-toggle-button2.js.map +1 -0
- package/dist/components/ic-tree-item.js +2 -2
- package/dist/components/ic-tree-view.js +4 -4
- package/dist/core/core.css +28 -6
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-b80b08ae.entry.js → p-08f24329.entry.js} +2 -2
- package/dist/core/{p-615d474e.entry.js → p-14b8bf37.entry.js} +2 -2
- package/dist/core/{p-81f12581.entry.js → p-169ad948.entry.js} +2 -2
- package/dist/core/p-169ad948.entry.js.map +1 -0
- package/dist/core/{p-847cbb16.entry.js → p-1d166343.entry.js} +2 -2
- package/dist/core/{p-b4bfaf8f.entry.js → p-201b41c7.entry.js} +2 -2
- package/dist/core/{p-24bac55f.entry.js → p-33509a89.entry.js} +2 -2
- package/dist/core/{p-e1920777.entry.js → p-3389625c.entry.js} +2 -2
- package/dist/core/{p-5a1cfb3c.entry.js → p-344752cb.entry.js} +2 -2
- package/dist/core/{p-6c238418.entry.js → p-348d7080.entry.js} +2 -2
- package/dist/core/{p-3ef2e98d.entry.js → p-39cdf5db.entry.js} +2 -2
- package/dist/core/{p-ffbf493f.entry.js → p-496b314f.entry.js} +2 -2
- package/dist/core/p-496b314f.entry.js.map +1 -0
- package/dist/core/{p-bd9a76d8.entry.js → p-508b6da3.entry.js} +2 -2
- package/dist/core/p-551a0fc1.entry.js +2 -0
- package/dist/core/p-551a0fc1.entry.js.map +1 -0
- package/dist/core/{p-f5cea10d.entry.js → p-5e6687a8.entry.js} +2 -2
- package/dist/core/{p-72171192.entry.js → p-60f4fe3a.entry.js} +2 -2
- package/dist/core/p-61c92598.entry.js +2 -0
- package/dist/core/p-61c92598.entry.js.map +1 -0
- package/dist/core/{p-e00e67ff.entry.js → p-6323da7a.entry.js} +2 -2
- package/dist/core/p-691dd972.entry.js +2 -0
- package/dist/core/p-691dd972.entry.js.map +1 -0
- package/dist/core/{p-c6c87e58.entry.js → p-6dfe0922.entry.js} +2 -2
- package/dist/core/p-71cc5909.entry.js +2 -0
- package/dist/core/p-71cc5909.entry.js.map +1 -0
- package/dist/core/p-770e92cd.entry.js +2 -0
- package/dist/core/p-770e92cd.entry.js.map +1 -0
- package/dist/core/{p-7cf6b428.entry.js → p-79ead0e7.entry.js} +2 -2
- package/dist/core/p-7b4b45cf.entry.js +2 -0
- package/dist/core/p-7b4b45cf.entry.js.map +1 -0
- package/dist/core/{p-afedcfdb.entry.js → p-7efdbab8.entry.js} +2 -2
- package/dist/core/p-802a4bd3.entry.js +2 -0
- package/dist/core/p-802a4bd3.entry.js.map +1 -0
- package/dist/core/p-829b34f9.js +2 -0
- package/dist/core/p-829b34f9.js.map +1 -0
- package/dist/core/{p-9a9605c3.entry.js → p-879c180d.entry.js} +2 -2
- package/dist/core/{p-3891ce53.entry.js → p-8830011c.entry.js} +2 -2
- package/dist/core/{p-444cd8d3.entry.js → p-8ab37b4d.entry.js} +2 -2
- package/dist/core/{p-c87cc0d1.entry.js → p-939025af.entry.js} +2 -2
- package/dist/core/p-939b168a.entry.js +2 -0
- package/dist/core/p-939b168a.entry.js.map +1 -0
- package/dist/core/{p-5a4344cb.entry.js → p-9dea5764.entry.js} +2 -2
- package/dist/core/{p-af821831.entry.js → p-a88e61b2.entry.js} +2 -2
- package/dist/core/p-a88e61b2.entry.js.map +1 -0
- package/dist/core/{p-90611726.entry.js → p-a8a92e54.entry.js} +2 -2
- package/dist/core/{p-31f3fb15.entry.js → p-a94a7b71.entry.js} +2 -2
- package/dist/core/p-ad551a0c.entry.js +2 -0
- package/dist/core/p-ad551a0c.entry.js.map +1 -0
- package/dist/core/{p-ba75ed34.entry.js → p-b434bd7c.entry.js} +2 -2
- package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
- package/dist/core/{p-2188b483.entry.js → p-c0a7eed7.entry.js} +2 -2
- package/dist/core/p-c0b227d2.entry.js +2 -0
- package/dist/core/p-c0b227d2.entry.js.map +1 -0
- package/dist/core/{p-2646a629.entry.js → p-c32f043e.entry.js} +2 -2
- package/dist/core/{p-7a0f62c2.entry.js → p-c4b2774d.entry.js} +2 -2
- package/dist/core/p-c9525aac.entry.js +2 -0
- package/dist/core/p-c9525aac.entry.js.map +1 -0
- package/dist/core/{p-7026afad.entry.js → p-ca05573a.entry.js} +2 -2
- package/dist/core/{p-8c580d88.entry.js → p-d0607a70.entry.js} +2 -2
- package/dist/core/{p-15c05eb8.entry.js → p-d528d856.entry.js} +2 -2
- package/dist/core/{p-0043b019.entry.js → p-da1c2883.entry.js} +2 -2
- package/dist/core/{p-ffc1cea6.entry.js → p-e2e556ec.entry.js} +2 -2
- package/dist/core/{p-e4ef4263.js → p-e519f607.js} +2 -2
- package/dist/core/{p-3f0bce15.entry.js → p-e5c6d01a.entry.js} +2 -2
- package/dist/core/{p-04a9f82f.entry.js → p-e8db8772.entry.js} +2 -2
- package/dist/core/{p-e4b82731.entry.js → p-ea04103e.entry.js} +2 -2
- package/dist/core/{p-9a95f428.entry.js → p-eaeb473e.entry.js} +2 -2
- package/dist/core/p-eaeb473e.entry.js.map +1 -0
- package/dist/core/{p-8e592393.entry.js → p-ecc7fd71.entry.js} +2 -2
- package/dist/core/p-efe260f0.entry.js +2 -0
- package/dist/core/p-efe260f0.entry.js.map +1 -0
- package/dist/core/{p-b6d6b26e.entry.js → p-f1b57f91.entry.js} +2 -2
- package/dist/core/p-f5dc04f7.entry.js +2 -0
- package/dist/core/p-f5dc04f7.entry.js.map +1 -0
- package/dist/core/p-fb07921b.entry.js +2 -0
- package/dist/core/p-fb07921b.entry.js.map +1 -0
- package/dist/core/{p-1900c7c7.entry.js → p-fd08156a.entry.js} +2 -2
- package/dist/core/{p-3594922d.entry.js → p-fe5b51bb.entry.js} +2 -2
- package/dist/core/{p-ef5b6622.entry.js → p-ff618439.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-5419eb6c.js → helpers-063369f4.js} +2 -2
- package/dist/esm/{helpers-5419eb6c.js.map → helpers-063369f4.js.map} +1 -1
- package/dist/esm/{helpers-9f228880.js → helpers-a08b3f32.js} +37 -2
- package/dist/esm/helpers-a08b3f32.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-action-chip.entry.js +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +1 -1
- package/dist/esm/ic-badge.entry.js +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 +1 -1
- package/dist/esm/ic-calendar_2.entry.js +2 -2
- package/dist/esm/ic-calendar_2.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +1 -1
- package/dist/esm/ic-card-vertical.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +1 -1
- package/dist/esm/ic-checkbox_3.entry.js +20 -8
- package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
- package/dist/esm/ic-data-table.entry.js +13 -8
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-picker.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +1 -1
- package/dist/esm/ic-footer.entry.js +10 -6
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
- package/dist/esm/ic-input-component-container_4.entry.js +3 -3
- package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +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-menu.entry.js +2 -2
- package/dist/esm/ic-menu.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +2 -2
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -2
- 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_4.entry.js +9 -5
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +1 -1
- package/dist/esm/ic-radio-group.entry.js +2 -2
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +10 -7
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +2 -2
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +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 +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-table-of-contents.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-time-input.entry.js +401 -99
- package/dist/esm/ic-time-input.entry.js.map +1 -1
- package/dist/esm/ic-time-selector.entry.js +838 -0
- package/dist/esm/ic-time-selector.entry.js.map +1 -0
- package/dist/esm/ic-toast.entry.js +15 -7
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button_2.entry.js +449 -0
- package/dist/esm/ic-toggle-button_2.entry.js.map +1 -0
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-tree-item.entry.js +3 -3
- package/dist/esm/ic-tree-view.entry.js +4 -4
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/index-a7a720e7.js +8 -8
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +20 -14
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +12 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.stories.d.ts +12 -0
- package/dist/types/components/ic-time-input/ic-time-input.d.ts +26 -6
- package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +31 -7
- package/dist/types/components/ic-time-input/test/helpers/ic-time-input.d.ts +1 -0
- package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +88 -0
- package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +99 -0
- package/dist/types/components/ic-time-selector/ic-time-selector.types.d.ts +1 -0
- package/dist/types/components.d.ts +163 -11
- package/dist/types/utils/helpers.d.ts +14 -0
- package/dist/types/utils/types.d.ts +4 -1
- package/hydrate/index.js +1410 -156
- package/hydrate/index.mjs +1410 -156
- package/package.json +30 -30
- package/dist/cjs/helpers-6f4b406b.js.map +0 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +0 -267
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +0 -1
- package/dist/core/p-1a976789.entry.js +0 -2
- package/dist/core/p-1a976789.entry.js.map +0 -1
- package/dist/core/p-3ba2b455.entry.js +0 -2
- package/dist/core/p-3ba2b455.entry.js.map +0 -1
- package/dist/core/p-41def410.entry.js +0 -2
- package/dist/core/p-41def410.entry.js.map +0 -1
- package/dist/core/p-4b188516.entry.js +0 -2
- package/dist/core/p-4b188516.entry.js.map +0 -1
- package/dist/core/p-5b32aaf3.entry.js +0 -2
- package/dist/core/p-5b32aaf3.entry.js.map +0 -1
- package/dist/core/p-7332320d.entry.js +0 -2
- package/dist/core/p-7332320d.entry.js.map +0 -1
- package/dist/core/p-81f12581.entry.js.map +0 -1
- package/dist/core/p-9044539c.entry.js +0 -2
- package/dist/core/p-9044539c.entry.js.map +0 -1
- package/dist/core/p-9a95f428.entry.js.map +0 -1
- package/dist/core/p-9f76eed6.entry.js +0 -2
- package/dist/core/p-9f76eed6.entry.js.map +0 -1
- package/dist/core/p-a1448064.entry.js +0 -2
- package/dist/core/p-a1448064.entry.js.map +0 -1
- package/dist/core/p-a237af88.entry.js +0 -2
- package/dist/core/p-a237af88.entry.js.map +0 -1
- package/dist/core/p-af821831.entry.js.map +0 -1
- package/dist/core/p-ba21f477.entry.js +0 -2
- package/dist/core/p-ba21f477.entry.js.map +0 -1
- package/dist/core/p-c3eddb99.entry.js +0 -2
- package/dist/core/p-c3eddb99.entry.js.map +0 -1
- package/dist/core/p-c5d65718.entry.js +0 -2
- package/dist/core/p-c5d65718.entry.js.map +0 -1
- package/dist/core/p-d144ca59.entry.js +0 -2
- package/dist/core/p-d144ca59.entry.js.map +0 -1
- package/dist/core/p-f48ce5f6.js +0 -2
- package/dist/core/p-f48ce5f6.js.map +0 -1
- package/dist/core/p-ffbf493f.entry.js.map +0 -1
- package/dist/esm/helpers-9f228880.js.map +0 -1
- package/dist/esm/ic-toggle-button-group.entry.js.map +0 -1
- package/dist/esm/ic-toggle-button.entry.js.map +0 -1
- /package/dist/core/{p-b80b08ae.entry.js.map → p-08f24329.entry.js.map} +0 -0
- /package/dist/core/{p-615d474e.entry.js.map → p-14b8bf37.entry.js.map} +0 -0
- /package/dist/core/{p-847cbb16.entry.js.map → p-1d166343.entry.js.map} +0 -0
- /package/dist/core/{p-b4bfaf8f.entry.js.map → p-201b41c7.entry.js.map} +0 -0
- /package/dist/core/{p-24bac55f.entry.js.map → p-33509a89.entry.js.map} +0 -0
- /package/dist/core/{p-e1920777.entry.js.map → p-3389625c.entry.js.map} +0 -0
- /package/dist/core/{p-5a1cfb3c.entry.js.map → p-344752cb.entry.js.map} +0 -0
- /package/dist/core/{p-6c238418.entry.js.map → p-348d7080.entry.js.map} +0 -0
- /package/dist/core/{p-3ef2e98d.entry.js.map → p-39cdf5db.entry.js.map} +0 -0
- /package/dist/core/{p-bd9a76d8.entry.js.map → p-508b6da3.entry.js.map} +0 -0
- /package/dist/core/{p-f5cea10d.entry.js.map → p-5e6687a8.entry.js.map} +0 -0
- /package/dist/core/{p-72171192.entry.js.map → p-60f4fe3a.entry.js.map} +0 -0
- /package/dist/core/{p-e00e67ff.entry.js.map → p-6323da7a.entry.js.map} +0 -0
- /package/dist/core/{p-c6c87e58.entry.js.map → p-6dfe0922.entry.js.map} +0 -0
- /package/dist/core/{p-7cf6b428.entry.js.map → p-79ead0e7.entry.js.map} +0 -0
- /package/dist/core/{p-afedcfdb.entry.js.map → p-7efdbab8.entry.js.map} +0 -0
- /package/dist/core/{p-9a9605c3.entry.js.map → p-879c180d.entry.js.map} +0 -0
- /package/dist/core/{p-3891ce53.entry.js.map → p-8830011c.entry.js.map} +0 -0
- /package/dist/core/{p-444cd8d3.entry.js.map → p-8ab37b4d.entry.js.map} +0 -0
- /package/dist/core/{p-c87cc0d1.entry.js.map → p-939025af.entry.js.map} +0 -0
- /package/dist/core/{p-5a4344cb.entry.js.map → p-9dea5764.entry.js.map} +0 -0
- /package/dist/core/{p-90611726.entry.js.map → p-a8a92e54.entry.js.map} +0 -0
- /package/dist/core/{p-31f3fb15.entry.js.map → p-a94a7b71.entry.js.map} +0 -0
- /package/dist/core/{p-ba75ed34.entry.js.map → p-b434bd7c.entry.js.map} +0 -0
- /package/dist/core/{p-2188b483.entry.js.map → p-c0a7eed7.entry.js.map} +0 -0
- /package/dist/core/{p-2646a629.entry.js.map → p-c32f043e.entry.js.map} +0 -0
- /package/dist/core/{p-7a0f62c2.entry.js.map → p-c4b2774d.entry.js.map} +0 -0
- /package/dist/core/{p-7026afad.entry.js.map → p-ca05573a.entry.js.map} +0 -0
- /package/dist/core/{p-8c580d88.entry.js.map → p-d0607a70.entry.js.map} +0 -0
- /package/dist/core/{p-15c05eb8.entry.js.map → p-d528d856.entry.js.map} +0 -0
- /package/dist/core/{p-0043b019.entry.js.map → p-da1c2883.entry.js.map} +0 -0
- /package/dist/core/{p-ffc1cea6.entry.js.map → p-e2e556ec.entry.js.map} +0 -0
- /package/dist/core/{p-e4ef4263.js.map → p-e519f607.js.map} +0 -0
- /package/dist/core/{p-3f0bce15.entry.js.map → p-e5c6d01a.entry.js.map} +0 -0
- /package/dist/core/{p-04a9f82f.entry.js.map → p-e8db8772.entry.js.map} +0 -0
- /package/dist/core/{p-e4b82731.entry.js.map → p-ea04103e.entry.js.map} +0 -0
- /package/dist/core/{p-8e592393.entry.js.map → p-ecc7fd71.entry.js.map} +0 -0
- /package/dist/core/{p-b6d6b26e.entry.js.map → p-f1b57f91.entry.js.map} +0 -0
- /package/dist/core/{p-1900c7c7.entry.js.map → p-fd08156a.entry.js.map} +0 -0
- /package/dist/core/{p-3594922d.entry.js.map → p-fe5b51bb.entry.js.map} +0 -0
- /package/dist/core/{p-ef5b6622.entry.js.map → p-ff618439.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ic-time-selector.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Element,\n State,\n Prop,\n Event,\n EventEmitter,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcSizes,\n IcThemeMode,\n IcTimeFormatSelector,\n} from \"../../utils/types\";\nimport { parseTimeHelper } from \"../../utils/helpers\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Clear from \"../../assets/close-icon.svg\";\nimport { IcTimePeriods } from \"./ic-time-selector.types\";\n\nconst COLUMN_TYPES = [\"hour\", \"minute\", \"second\", \"period\"] as const;\nconst COLUMN_CLASS = \".ic-time-selector-column\";\nconst ITEM_CLASS = \".ic-time-selector-item\";\ntype ColumnType = typeof COLUMN_TYPES[number];\n\n@Component({\n tag: \"ic-time-selector\",\n styleUrl: \"ic-time-selector.css\",\n shadow: true,\n})\nexport class TimeSelector {\n private DEFAULT_TIME_FORMAT: IcTimeFormatSelector = \"HH:MM:SS\";\n private minutes: number[] = Array.from({ length: 60 }, (_, i) => i);\n private seconds: number[] = Array.from({ length: 60 }, (_, i) => i);\n private periods: IcTimePeriods[] = [\"AM\", \"PM\"];\n private minTime: Date | null = null;\n private maxTime: Date | null = null;\n private lastAnnouncedType?: ColumnType;\n private lastAnnouncedValue?: number | IcTimePeriods | null;\n\n @Element() el: HTMLIcTimeSelectorElement;\n\n @State() selectedHour?: number;\n @State() selectedMinute?: number;\n @State() selectedSecond?: number;\n @State() selectedPeriod?: IcTimePeriods;\n @State() ariaLiveMessage: string = \"\";\n\n /**\n * An array of times that will be disabled in the time selector. The times can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The size of the time selector to be displayed.\n */\n @Prop() size: IcSizes = \"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 format in which the time will be displayed.\n */\n @Prop() timeFormat: IcTimeFormatSelector = this.DEFAULT_TIME_FORMAT;\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time selector. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n @Watch(\"value\")\n watchValueHandler(): void {\n this.setTime(this.value);\n setTimeout(() => {\n this.scrollSelectedItem(\"hour\");\n this.scrollSelectedItem(\"minute\");\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n this.scrollSelectedItem(\"second\");\n }\n if (this.timePeriod === \"12\") {\n this.scrollSelectedItem(\"period\");\n }\n }, 0);\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeString: string | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n period?: IcTimePeriods;\n };\n }>;\n\n componentWillLoad() {\n this.setTime(this.value);\n }\n\n componentDidLoad() {\n setTimeout(() => {\n if (this.selectedHour !== undefined && this.selectedHour !== null) {\n this.scrollSelectedItem(\"hour\");\n } else if (this.min) {\n this.scrollMinTime(\"hour\");\n }\n if (this.selectedMinute !== undefined && this.selectedMinute !== null) {\n this.scrollSelectedItem(\"minute\");\n } else if (this.min) {\n this.scrollMinTime(\"minute\");\n }\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n if (this.selectedSecond !== undefined && this.selectedSecond !== null) {\n this.scrollSelectedItem(\"second\");\n } else if (this.min) {\n this.scrollMinTime(\"second\");\n }\n }\n if (this.timePeriod === \"12\") {\n if (this.selectedPeriod !== undefined && this.selectedPeriod !== null) {\n this.scrollSelectedItem(\"period\");\n } else if (this.min) {\n this.scrollMinTime(\"period\");\n }\n }\n this.updateAriaLiveMessage();\n }, 0);\n }\n\n private getHeaderLabel(type: ColumnType): string {\n switch (type) {\n case \"hour\":\n return \"HH\";\n case \"minute\":\n return \"MM\";\n case \"second\":\n return \"SS\";\n default:\n return \"\";\n }\n }\n\n private setTimeParts = (hour: number, minute: number, second: number) => {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (hour === 0) {\n hour = 12;\n period = \"AM\";\n } else if (hour === 12) {\n period = \"PM\";\n } else if (hour > 12) {\n hour = hour - 12;\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n this.selectedHour = hour;\n this.selectedPeriod = period;\n } else {\n this.selectedHour = hour;\n }\n this.selectedMinute = minute;\n this.selectedSecond = second;\n };\n\n private setTime(time?: string | Date | null) {\n if (time === null || time === undefined || time === \"\") {\n this.handleClear();\n return;\n }\n\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\\.[0-9]{1,3})?Z?$/\n );\n if (zuluMatch) {\n this.setTimeParts(\n Number(zuluMatch[1]),\n Number(zuluMatch[2]),\n Number(zuluMatch[3])\n );\n } else {\n const parts = time.split(\":\");\n this.setTimeParts(\n Number(parts[0]) || 0,\n Number(parts[1]) || 0,\n Number(parts[2]) || 0\n );\n }\n } else {\n const { parts } = parseTimeHelper(time);\n if (parts) {\n this.setTimeParts(parts.hour, parts.minute, parts.second);\n }\n }\n }\n\n private renderScrollRows(count: number, keyPrefix = \"scroll-row\") {\n return Array.from({ length: count }).map((_, i) => {\n const isLast = keyPrefix.endsWith(\"bottom-spacer\")\n ? i === count - 1\n : false;\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n \"ic-time-selector-scroll-row\": true,\n ...(isLast ? { \"ic-time-selector-scroll-row-last\": true } : {}),\n }}\n aria-hidden=\"true\"\n tabIndex={-1}\n key={`${keyPrefix}-${i}`}\n />\n );\n });\n }\n\n private scrollSelectedItem(colClass: ColumnType, clear?: boolean) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n let colIdx = COLUMN_TYPES.indexOf(colClass);\n if (colClass === \"period\" && columns?.length) {\n colIdx = columns.length - 1;\n }\n const col = columns?.[colIdx];\n if (col) {\n const items = col.querySelectorAll(ITEM_CLASS);\n let selectedIdx = -1;\n items.forEach((item, idx) => {\n if (item.classList.contains(\"selected\")) selectedIdx = idx;\n });\n if (clear) {\n selectedIdx = 0;\n }\n if (selectedIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop =\n (items[selectedIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n if (clear) {\n setTimeout(() => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n this.checkIfScrollIsFinished(columns[0], scrollTop);\n }\n }, 300);\n }\n }\n }\n }\n\n private checkIfScrollIsFinished = (\n column: { scrollTop: number },\n scrollTop: number\n ) => {\n const isScrollFinished = setInterval(() => {\n if (column.scrollTop === scrollTop + 56) {\n (column as HTMLElement)?.focus();\n clearInterval(isScrollFinished);\n }\n }, 25);\n };\n\n private scrollMinTime(colClass: ColumnType) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const colIdx = COLUMN_TYPES.indexOf(colClass);\n const col = columns?.[colIdx];\n if (!col) return;\n const items = col.querySelectorAll(ITEM_CLASS);\n let minHour = 0,\n minMinute = 0,\n minSecond = 0;\n if (this.minTime) {\n minHour = this.minTime.getHours() + 2;\n minMinute = this.minTime.getMinutes() + 2;\n minSecond = this.minTime.getSeconds();\n } else if (this.min) {\n const minDate = parseTimeHelper(this.min).date;\n if (minDate) {\n minHour = minDate.getHours();\n minMinute = minDate.getMinutes();\n minSecond = minDate.getSeconds();\n }\n }\n let targetIdx = -1;\n const values = this.getColumnValues(colClass);\n if (colClass === \"hour\") {\n targetIdx = values.findIndex((v) => v === minHour);\n } else if (colClass === \"minute\") {\n targetIdx = values.findIndex((v) => v === minMinute);\n } else if (colClass === \"second\") {\n targetIdx = values.findIndex((v) => v === minSecond);\n } else if (colClass === \"period\") {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (minHour === 0) {\n period = \"AM\";\n } else if (minHour === 12) {\n period = \"PM\";\n } else if (minHour > 12) {\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n }\n targetIdx = values.findIndex((v) => v === period);\n }\n if (targetIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop = (items[targetIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n }\n }\n\n private handleSelect = (type: ColumnType, value: number | IcTimePeriods) => {\n const prevValue = this.getSelectedValue(type);\n switch (type) {\n case \"hour\":\n this.selectedHour = Number(value);\n break;\n case \"minute\":\n this.selectedMinute = Number(value);\n break;\n case \"second\":\n this.selectedSecond = Number(value);\n break;\n case \"period\":\n this.selectedPeriod = value as IcTimePeriods;\n break;\n }\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (columns && columns[idx]) {\n (columns[idx] as HTMLElement).focus();\n window.requestAnimationFrame(() => {\n this.scrollSelectedItem(type);\n });\n }\n if (prevValue === undefined || prevValue === null) {\n this.announceSelectedColumn(type);\n } else {\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = this.getSelectedValue(type);\n }\n };\n\n private isTimeDisabled = (\n hour: number,\n minute: number,\n second: number,\n type?: ColumnType\n ): boolean => {\n for (const t of this.disableTimes) {\n if (typeof t === \"string\" || t instanceof Date) {\n const parts = parseTimeHelper(t).parts;\n if (\n parts &&\n parts.hour === hour &&\n parts.minute === minute &&\n parts.second === second\n ) {\n return true;\n }\n } else if (t && typeof t === \"object\" && \"start\" in t && \"end\" in t) {\n const startParts = parseTimeHelper(t.start).parts;\n const endParts = parseTimeHelper(t.end).parts;\n if (startParts && endParts) {\n const timeVal = hour * 3600 + minute * 60 + second;\n const startVal =\n startParts.hour * 3600 + startParts.minute * 60 + startParts.second;\n const endVal =\n endParts.hour * 3600 + endParts.minute * 60 + endParts.second;\n if (timeVal >= startVal && timeVal <= endVal) {\n return true;\n }\n }\n }\n }\n if (this.min) {\n this.minTime = parseTimeHelper(this.min).date;\n if (this.minTime) {\n const minHour = this.minTime.getHours();\n const minMinute = this.minTime.getMinutes();\n const minSecond = this.minTime.getSeconds();\n if (type === \"hour\") {\n const highlightedMinute = this.selectedMinute ?? minMinute;\n const highlightedSecond = this.selectedSecond ?? minSecond;\n if (\n hour < minHour ||\n (hour === minHour && highlightedMinute < minMinute) ||\n (hour === minHour &&\n highlightedMinute === minMinute &&\n highlightedSecond < minSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === minHour && minute < minMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === minHour && minute === minMinute && second < minSecond) {\n return true;\n }\n } else {\n if (\n hour < minHour ||\n (hour === minHour && minute < minMinute) ||\n (hour === minHour && minute === minMinute && second < minSecond)\n ) {\n return true;\n }\n }\n }\n }\n if (this.max) {\n this.maxTime = parseTimeHelper(this.max).date;\n if (this.maxTime) {\n const maxHour = this.maxTime.getHours();\n const maxMinute = this.maxTime.getMinutes();\n const maxSecond = this.maxTime.getSeconds();\n if (type === \"hour\") {\n const selectedMinute = this.selectedMinute ?? 59;\n const selectedSecond = this.selectedSecond ?? 59;\n if (\n hour > maxHour ||\n (hour === maxHour && selectedMinute > maxMinute) ||\n (hour === maxHour &&\n selectedMinute === maxMinute &&\n selectedSecond > maxSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === maxHour && minute > maxMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === maxHour && minute === maxMinute && second > maxSecond) {\n return true;\n }\n } else {\n if (\n hour > maxHour ||\n (hour === maxHour && minute > maxMinute) ||\n (hour === maxHour && minute === maxMinute && second > maxSecond)\n ) {\n return true;\n }\n }\n }\n }\n return false;\n };\n\n private announceSelectedColumn(type: ColumnType) {\n const value = this.getSelectedValue(type);\n if (\n value !== null &&\n value !== undefined &&\n (type !== this.lastAnnouncedType || value !== this.lastAnnouncedValue)\n ) {\n this.ariaLiveMessage = `Selected ${type}: ${value}`;\n } else {\n this.ariaLiveMessage = \"\";\n }\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = value;\n }\n\n private getColumnValues(type: ColumnType): number[] | IcTimePeriods[] {\n if (type === \"hour\")\n return this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n if (type === \"minute\") return this.minutes;\n if (type === \"second\") return this.seconds;\n if (type === \"period\") return this.periods;\n return [];\n }\n\n private getSelectedValue(type: ColumnType): number | IcTimePeriods | null {\n if (type === \"hour\") return this.selectedHour ?? null;\n if (type === \"minute\") return this.selectedMinute ?? null;\n if (type === \"second\") return this.selectedSecond ?? null;\n if (type === \"period\") return this.selectedPeriod ?? null;\n return null;\n }\n\n private getHighlightedValue(\n type: ColumnType,\n col: HTMLElement\n ): number | IcTimePeriods | null {\n const items = Array.from(col.querySelectorAll(ITEM_CLASS));\n const realItems = items.filter(\n (item) => !item.classList.contains(\"ic-time-selector-scroll-row\")\n );\n if (realItems.length === 0) return null;\n const highlightTop = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-top\"\n ) as HTMLElement;\n const highlightBottom = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-bottom\"\n ) as HTMLElement;\n if (!highlightTop || !highlightBottom) return null;\n const topRect = highlightTop.getBoundingClientRect();\n const bottomRect = highlightBottom.getBoundingClientRect();\n const highlightStart = topRect.bottom;\n const highlightEnd = bottomRect.top;\n for (const item of realItems) {\n const itemRect = item.getBoundingClientRect();\n const itemCenter = itemRect.top + itemRect.height / 2;\n if (itemCenter >= highlightStart && itemCenter <= highlightEnd) {\n const key = item.getAttribute(\"key\");\n if (key) {\n const valStr = key.replace(`${type}-val-`, \"\");\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return Number(valStr);\n } else {\n return valStr as IcTimePeriods;\n }\n }\n const text = item.textContent?.trim();\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return text ? Number(text) : null;\n } else {\n return text as IcTimePeriods;\n }\n }\n }\n return null;\n }\n\n private handleColumnKeyDown = (type: ColumnType, event: KeyboardEvent) => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (!columns) return;\n\n const values = this.getColumnValues(type);\n const selected = this.getSelectedValue(type);\n const col = columns[idx] as HTMLElement;\n if (!col) return;\n\n const selectHighlighted = () => {\n const highlighted = this.getHighlightedValue(type, col);\n if (highlighted !== null) {\n this.handleSelect(type, highlighted);\n } else if (values.length > 0) {\n this.handleSelect(type, values[0]);\n }\n };\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault();\n selectHighlighted();\n return;\n case \"ArrowRight\":\n event.preventDefault();\n selectHighlighted();\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n }\n return;\n case \"ArrowLeft\":\n event.preventDefault();\n if (idx > 0) (columns[idx - 1] as HTMLElement)?.focus();\n return;\n case \"Tab\":\n if (event.shiftKey) {\n if (idx === 0) {\n return;\n } else {\n event.preventDefault();\n (columns[idx - 1] as HTMLElement)?.focus();\n }\n } else {\n event.preventDefault();\n selectHighlighted();\n this.announceSelectedColumn(type);\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n } else {\n (\n this.el.shadowRoot?.querySelector(\n \".ic-time-selector-clear-btn\"\n ) as HTMLElement\n )?.focus();\n this.updateAriaLiveMessage();\n }\n }\n return;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n let idxInValues = values.findIndex((v) => v === selected);\n if (idxInValues === -1) idxInValues = 0;\n let newIdx = idxInValues;\n const direction = event.key === \"ArrowUp\" ? -1 : 1;\n const maxIdx = values.length - 1;\n do {\n newIdx += direction;\n } while (\n newIdx >= 0 &&\n newIdx <= maxIdx &&\n (() => {\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n const hour =\n type === \"hour\"\n ? (values[newIdx] as number)\n : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (values[newIdx] as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (values[newIdx] as number)\n : this.selectedSecond ?? 0;\n return this.isTimeDisabled(hour, minute, second);\n }\n return false;\n })()\n );\n this.ariaLiveMessage = `Selected ${type}: ${values[newIdx]}`;\n if (newIdx >= 0 && newIdx <= maxIdx && newIdx !== idxInValues) {\n this.handleSelect(type, values[newIdx]);\n }\n return;\n }\n default:\n return;\n }\n };\n\n private updateAriaLiveMessage() {\n const hourStr =\n this.selectedHour != null\n ? this.selectedHour.toString().padStart(2, \"0\")\n : null;\n const minuteStr =\n this.selectedMinute != null\n ? this.selectedMinute.toString().padStart(2, \"0\")\n : null;\n const secondStr =\n this.selectedSecond != null\n ? this.selectedSecond.toString().padStart(2, \"0\")\n : null;\n let timeString = \"\";\n let allSelected = false;\n if (this.timeFormat === \"HH:MM\") {\n allSelected = hourStr !== null && minuteStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected =\n hourStr !== null && minuteStr !== null && secondStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n }\n this.ariaLiveMessage =\n allSelected && timeString ? `Selected time: ${timeString}` : \"\";\n }\n\n private renderColumn = (\n type: ColumnType,\n values: number[] | IcTimePeriods[],\n selected: number | IcTimePeriods | null\n ) => {\n const isTimeColumn =\n type === \"hour\" || type === \"minute\" || type === \"second\";\n const isPeriodColumn = type === \"period\";\n const headerLabel = this.getHeaderLabel(type);\n const topSpacerCount = 2;\n let bottomSpacerCount = 6;\n if (this.size === \"large\") {\n bottomSpacerCount = 5;\n } else if (this.size === \"small\") {\n bottomSpacerCount = 8;\n }\n return (\n <div class=\"ic-time-selector-column-wrapper\">\n {isPeriodColumn ? (\n <div class=\"ic-time-selector-header-row\" />\n ) : (\n headerLabel && (\n <div class=\"ic-time-selector-header-row\">\n <ic-typography variant=\"subtitle-small\">\n {headerLabel}\n </ic-typography>\n </div>\n )\n )}\n <div\n class={{\n \"ic-time-selector-column\": true,\n \"ic-time-selector-column-period\": isPeriodColumn,\n }}\n tabIndex={0}\n onKeyDown={(e) => this.handleColumnKeyDown(type, e as KeyboardEvent)}\n >\n <ul class=\"ic-time-selector-list\" role=\"listbox\" aria-label={type}>\n {this.renderScrollRows(topSpacerCount, `${type}-top-spacer`)}\n {values.map((val) => {\n let disabled = false;\n if (isTimeColumn) {\n const hour =\n type === \"hour\" ? (val as number) : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (val as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (val as number)\n : this.selectedSecond ?? 0;\n disabled = this.isTimeDisabled(hour, minute, second, type);\n }\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n selected: val === selected,\n disabled,\n }}\n role=\"option\"\n aria-selected={val === selected ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n onClick={() =>\n !disabled && this.handleSelect(type, val as any)\n }\n tabIndex={-1}\n key={`${type}-val-${val}`}\n >\n <ic-typography variant=\"subtitle-small\">\n {typeof val === \"number\"\n ? val.toString().padStart(2, \"0\")\n : val}\n </ic-typography>\n </li>\n );\n })}\n {(isTimeColumn || isPeriodColumn) &&\n this.renderScrollRows(bottomSpacerCount, `${type}-bottom-spacer`)}\n </ul>\n </div>\n </div>\n );\n };\n\n private handleClear = () => {\n this.selectedHour = undefined;\n this.scrollSelectedItem(\"hour\", true);\n this.selectedMinute = undefined;\n this.scrollSelectedItem(\"minute\", true);\n this.selectedSecond = undefined;\n this.scrollSelectedItem(\"second\", true);\n this.selectedPeriod = undefined;\n this.scrollSelectedItem(\"period\", true);\n this.lastAnnouncedType = undefined;\n this.lastAnnouncedValue = undefined;\n this.icChange.emit({\n value: null,\n timeString: null,\n timeObject: {\n hour: null,\n minute: null,\n second: null,\n period: undefined,\n },\n });\n };\n\n private handleConfirmClick = () => {\n const hour = this.selectedHour != null ? this.selectedHour : null;\n const minute = this.selectedMinute != null ? this.selectedMinute : null;\n const second = this.selectedSecond != null ? this.selectedSecond : null;\n const period = this.selectedPeriod;\n\n const hourStr = hour != null ? hour.toString().padStart(2, \"0\") : null;\n const minuteStr =\n minute != null ? minute.toString().padStart(2, \"0\") : null;\n const secondStr =\n second != null ? second.toString().padStart(2, \"0\") : null;\n\n let allSelected = false;\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected = hour !== null && minute !== null && second !== null;\n } else {\n allSelected = hour !== null && minute !== null;\n }\n\n let value: Date | null = null;\n let timeString: string | null = null;\n if (allSelected) {\n let date24hours = hour;\n if (hour != null && period && this.timePeriod === \"12\") {\n if (period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (period === \"AM\" && hour === 12) date24hours = 0;\n }\n value = new Date();\n value.setHours(date24hours ?? 0);\n value.setMinutes(minute ?? 0);\n value.setSeconds(second ?? 0);\n value.setMilliseconds(0);\n if (this.timeFormat === \"HH:MM\") {\n timeString = hourStr + \":\" + minuteStr + (period ? \" \" + period : \"\");\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (period ? \" \" + period : \"\");\n }\n this.value = value;\n }\n\n this.icChange.emit({\n value: allSelected ? value : null,\n timeString: allSelected ? timeString : null,\n timeObject: {\n hour: hourStr,\n minute: minuteStr,\n second: secondStr,\n ...(period ? { period } : {}),\n },\n });\n };\n\n render() {\n const hours =\n this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n const timeFormat = this.timeFormat || this.DEFAULT_TIME_FORMAT;\n const columns = [\n this.renderColumn(\"hour\", hours, this.selectedHour ?? null),\n this.renderColumn(\"minute\", this.minutes, this.selectedMinute ?? null),\n ];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n columns.push(\n this.renderColumn(\"second\", this.seconds, this.selectedSecond ?? null)\n );\n }\n\n let colonSelectedStates: boolean[] = [];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n this.selectedMinute !== undefined && this.selectedSecond !== undefined,\n ];\n } else {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n ];\n }\n\n const isInPicker = this.el.closest(\"ic-time-picker\") !== null;\n\n const { size, theme, timePeriod } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-selector-${size}`]: true,\n }}\n >\n <div\n role={isInPicker ? \"dialog\" : undefined}\n aria-modal={isInPicker ? true : undefined}\n aria-label=\"Select time. Use arrow keys to navigate and select the options and then tab to move onto the next selection.\"\n class={{\n \"ic-time-selector-dialog-container\": true,\n }}\n >\n <div class=\"ic-time-selector-highlight-lines\">\n <div class=\"ic-time-selector-header-border\" />\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-top\": true,\n }}\n />\n <div class=\"ic-time-selector-columns\">\n {columns.map((col, idx) => [\n col,\n idx < columns.length - 1 ? (\n <ic-typography\n class={{\n \"ic-time-selector-colon\": true,\n \"ic-time-selector-colon-selected\":\n colonSelectedStates[idx],\n }}\n variant=\"subtitle-small\"\n aria-hidden=\"true\"\n key={`colon-${idx}`}\n >\n :\n </ic-typography>\n ) : null,\n ])}\n {timePeriod !== \"24\" &&\n this.renderColumn(\n \"period\",\n this.periods,\n this.selectedPeriod ?? null\n )}\n </div>\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-bottom\": true,\n }}\n />\n </div>\n <div class=\"ic-time-selector-actions\">\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Clear time\"\n class={{\n \"ic-time-selector-clear-btn\": true,\n }}\n onClick={this.handleClear}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n const columns =\n this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n const lastCol = columns[columns.length - 1] as HTMLElement;\n lastCol?.focus();\n }\n }\n }}\n >\n <span aria-hidden=\"true\" innerHTML={Clear}></span>\n </ic-button>\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Select time\"\n class=\"ic-time-selector-check-btn\"\n onClick={this.handleConfirmClick}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n >\n <span aria-hidden=\"true\" innerHTML={Check}></span>\n </ic-button>\n </div>\n </div>\n <div class=\"sr-only\" aria-live=\"polite\">\n {this.ariaLiveMessage}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
2
|
+
import { html } from "lit-html";
|
|
3
|
+
import readme from "./readme.md";
|
|
4
|
+
export default {
|
|
5
|
+
title: "Web Components/Time Selector",
|
|
6
|
+
component: "ic-time-selector",
|
|
7
|
+
parameters: {
|
|
8
|
+
componentAPI: {
|
|
9
|
+
data: readme,
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Use the time selector component to manually select a time in different formats.
|
|
15
|
+
*
|
|
16
|
+
* Click the 'Component API' tab to view all the available attributes, events and slots for time selector.
|
|
17
|
+
*
|
|
18
|
+
* To use the time selector component, import `@ukic/canary-web-components` into your application.
|
|
19
|
+
*
|
|
20
|
+
* Times can be selected by scrolling through each column or using the up and down arrow keys.
|
|
21
|
+
*
|
|
22
|
+
* To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
export const Default = {
|
|
26
|
+
render: () => html `<ic-time-selector></ic-time-selector>`,
|
|
27
|
+
name: "Default",
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Retrieving the time selector value via `icChange` returns the time as a Date object.
|
|
31
|
+
*
|
|
32
|
+
* The event returns the Date object once hour, minute and second have been selected by clicking the tick icon button.
|
|
33
|
+
*/
|
|
34
|
+
export const IcChangeEvent = {
|
|
35
|
+
render: () => html `<ic-time-selector></ic-time-selector>
|
|
36
|
+
<script>
|
|
37
|
+
var timeSelector = document.querySelector("ic-time-selector");
|
|
38
|
+
timeSelector.addEventListener("icChange", (event) => {
|
|
39
|
+
console.log("icChange event detail:", event.detail);
|
|
40
|
+
});
|
|
41
|
+
</script>`,
|
|
42
|
+
name: "icChange Event",
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* To set a value to the time selector, pass the time value in the relevant time format.
|
|
46
|
+
*/
|
|
47
|
+
export const WithValue = {
|
|
48
|
+
render: () => html `<ic-time-selector value="14:30:40"></ic-time-selector>`,
|
|
49
|
+
name: "With value",
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The time selector also accepts a number of different time formats within the value attribute:
|
|
53
|
+
* - [Date object](#date-object)
|
|
54
|
+
* - [Zulu time](#zulu-time)
|
|
55
|
+
*/
|
|
56
|
+
export const DateObject = {
|
|
57
|
+
render: () => html `<ic-time-selector
|
|
58
|
+
id="time-selector-default-time-date"
|
|
59
|
+
></ic-time-selector>
|
|
60
|
+
<script>
|
|
61
|
+
var timeSelectorDate = document.querySelector(
|
|
62
|
+
"#time-selector-default-time-date"
|
|
63
|
+
);
|
|
64
|
+
timeSelectorDate.value = new Date("2025-07-14T15:30:45");
|
|
65
|
+
</script>`,
|
|
66
|
+
name: "Date object",
|
|
67
|
+
};
|
|
68
|
+
export const ZuluTime = {
|
|
69
|
+
render: () => html `<div>
|
|
70
|
+
<ic-time-selector id="time-selector-default-zulu-time"></ic-time-selector>
|
|
71
|
+
</div>
|
|
72
|
+
<script>
|
|
73
|
+
var timeSelectorZulu = document.querySelector(
|
|
74
|
+
"#time-selector-default-zulu-time"
|
|
75
|
+
);
|
|
76
|
+
timeSelectorZulu.value = "15:30:45Z";
|
|
77
|
+
</script>`,
|
|
78
|
+
name: "Zulu time",
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Demonstrates the `time-period` prop for 12-hour selection.
|
|
82
|
+
*/
|
|
83
|
+
export const TimePeriod = {
|
|
84
|
+
render: () => html `<ic-time-selector time-period="12"></ic-time-selector>`,
|
|
85
|
+
name: "12-Hour",
|
|
86
|
+
};
|
|
87
|
+
export const IcChangeEventTimePeriod = {
|
|
88
|
+
render: () => html `<ic-time-selector time-period="12"></ic-time-selector>
|
|
89
|
+
<script>
|
|
90
|
+
var icTimeSelector = document.querySelector("ic-time-selector");
|
|
91
|
+
icTimeSelector.addEventListener("icChange", (event) => {
|
|
92
|
+
console.log("icChange event detail:", event.detail);
|
|
93
|
+
});
|
|
94
|
+
</script>`,
|
|
95
|
+
name: "icChange Event - with time period",
|
|
96
|
+
};
|
|
97
|
+
export const DefaultValue12Hour = {
|
|
98
|
+
render: () => html `<ic-time-selector
|
|
99
|
+
value="14:30:40"
|
|
100
|
+
time-period="12"
|
|
101
|
+
></ic-time-selector>`,
|
|
102
|
+
name: "Default value - 12 hour",
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Demonstrates the time format HH:MM.
|
|
106
|
+
*/
|
|
107
|
+
export const TimeFormat = {
|
|
108
|
+
render: () => html `<ic-time-selector time-format="HH:MM"></ic-time-selector>`,
|
|
109
|
+
name: "Time format HH:MM",
|
|
110
|
+
};
|
|
111
|
+
export const DefaultValueTimeFormat = {
|
|
112
|
+
render: () => html `<ic-time-selector
|
|
113
|
+
value="14:30"
|
|
114
|
+
time-format="HH:MM"
|
|
115
|
+
></ic-time-selector>`,
|
|
116
|
+
name: "Default value - Time format HH:MM",
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Setting min time allows you to restrict the earliest time that can be selected.
|
|
120
|
+
* The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
|
|
121
|
+
*/
|
|
122
|
+
export const MinTime = {
|
|
123
|
+
render: () => html `<ic-time-selector min="09:30:00"></ic-time-selector>`,
|
|
124
|
+
name: "Min time",
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Setting max time allows you to restrict the latest time that can be selected.
|
|
128
|
+
* The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
|
|
129
|
+
*/
|
|
130
|
+
export const MaxTime = {
|
|
131
|
+
render: () => html `<ic-time-selector max="18:00:00"></ic-time-selector>`,
|
|
132
|
+
name: "Max time",
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* To disable specific times in the time selector, set the `disable-times` prop.
|
|
136
|
+
* The `disable-times` prop accepts an array of time objects or strings.
|
|
137
|
+
* Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.
|
|
138
|
+
* The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.
|
|
139
|
+
*/
|
|
140
|
+
export const DisableTimes = {
|
|
141
|
+
render: () => html `<ic-time-selector
|
|
142
|
+
id="time-selector-default-disable-time"
|
|
143
|
+
></ic-time-selector>
|
|
144
|
+
<script>
|
|
145
|
+
var timeSelectorDisable = document.querySelector(
|
|
146
|
+
"#time-selector-default-disable-time"
|
|
147
|
+
);
|
|
148
|
+
timeSelectorDisable.disableTimes = [
|
|
149
|
+
{ start: "08:00", end: "10:00" },
|
|
150
|
+
"13:20",
|
|
151
|
+
];
|
|
152
|
+
</script>`,
|
|
153
|
+
name: "Disabled times",
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Demonstrates the size options for the time selector component.
|
|
157
|
+
*/
|
|
158
|
+
export const Small = {
|
|
159
|
+
render: () => html `<ic-time-selector size="small" time-period="12"></ic-time-selector>`,
|
|
160
|
+
name: "Small",
|
|
161
|
+
};
|
|
162
|
+
export const Large = {
|
|
163
|
+
render: () => html `<ic-time-selector size="large" time-period="12"></ic-time-selector>`,
|
|
164
|
+
name: "Large",
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=ic-time-selector.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ic-time-selector.stories.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.stories.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { html } from \"lit-html\";\nimport readme from \"./readme.md\";\n\nexport default {\n title: \"Web Components/Time Selector\",\n component: \"ic-time-selector\",\n parameters: {\n componentAPI: {\n data: readme,\n },\n },\n};\n\n/**\n * Use the time selector component to manually select a time in different formats.\n *\n * Click the 'Component API' tab to view all the available attributes, events and slots for time selector.\n *\n * To use the time selector component, import `@ukic/canary-web-components` into your application.\n *\n * Times can be selected by scrolling through each column or using the up and down arrow keys.\n *\n * To move between hour, minute and second using the keyboard, provide the required values based on the placeholders or use `:`.\n *\n */\nexport const Default = {\n render: () => html`<ic-time-selector></ic-time-selector>`,\n name: \"Default\",\n};\n\n/**\n * Retrieving the time selector value via `icChange` returns the time as a Date object.\n *\n * The event returns the Date object once hour, minute and second have been selected by clicking the tick icon button.\n */\nexport const IcChangeEvent = {\n render: () => html`<ic-time-selector></ic-time-selector>\n <script>\n var timeSelector = document.querySelector(\"ic-time-selector\");\n timeSelector.addEventListener(\"icChange\", (event) => {\n console.log(\"icChange event detail:\", event.detail);\n });\n </script>`,\n name: \"icChange Event\",\n};\n\n/**\n * To set a value to the time selector, pass the time value in the relevant time format.\n */\nexport const WithValue = {\n render: () => html`<ic-time-selector value=\"14:30:40\"></ic-time-selector>`,\n name: \"With value\",\n};\n\n/**\n * The time selector also accepts a number of different time formats within the value attribute:\n * - [Date object](#date-object)\n * - [Zulu time](#zulu-time)\n */\nexport const DateObject = {\n render: () => html`<ic-time-selector\n id=\"time-selector-default-time-date\"\n ></ic-time-selector>\n <script>\n var timeSelectorDate = document.querySelector(\n \"#time-selector-default-time-date\"\n );\n timeSelectorDate.value = new Date(\"2025-07-14T15:30:45\");\n </script>`,\n name: \"Date object\",\n};\n\nexport const ZuluTime = {\n render: () => html`<div>\n <ic-time-selector id=\"time-selector-default-zulu-time\"></ic-time-selector>\n </div>\n <script>\n var timeSelectorZulu = document.querySelector(\n \"#time-selector-default-zulu-time\"\n );\n timeSelectorZulu.value = \"15:30:45Z\";\n </script>`,\n name: \"Zulu time\",\n};\n\n/**\n * Demonstrates the `time-period` prop for 12-hour selection.\n */\nexport const TimePeriod = {\n render: () => html`<ic-time-selector time-period=\"12\"></ic-time-selector>`,\n name: \"12-Hour\",\n};\n\nexport const IcChangeEventTimePeriod = {\n render: () => html`<ic-time-selector time-period=\"12\"></ic-time-selector>\n <script>\n var icTimeSelector = document.querySelector(\"ic-time-selector\");\n icTimeSelector.addEventListener(\"icChange\", (event) => {\n console.log(\"icChange event detail:\", event.detail);\n });\n </script>`,\n name: \"icChange Event - with time period\",\n};\n\nexport const DefaultValue12Hour = {\n render: () =>\n html`<ic-time-selector\n value=\"14:30:40\"\n time-period=\"12\"\n ></ic-time-selector>`,\n name: \"Default value - 12 hour\",\n};\n\n/**\n * Demonstrates the time format HH:MM.\n */\nexport const TimeFormat = {\n render: () => html`<ic-time-selector time-format=\"HH:MM\"></ic-time-selector>`,\n name: \"Time format HH:MM\",\n};\n\nexport const DefaultValueTimeFormat = {\n render: () =>\n html`<ic-time-selector\n value=\"14:30\"\n time-format=\"HH:MM\"\n ></ic-time-selector>`,\n name: \"Default value - Time format HH:MM\",\n};\n\n/**\n * Setting min time allows you to restrict the earliest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MinTime = {\n render: () => html`<ic-time-selector min=\"09:30:00\"></ic-time-selector>`,\n name: \"Min time\",\n};\n\n/**\n * Setting max time allows you to restrict the latest time that can be selected.\n * The value can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const MaxTime = {\n render: () => html`<ic-time-selector max=\"18:00:00\"></ic-time-selector>`,\n name: \"Max time\",\n};\n\n/**\n * To disable specific times in the time selector, set the `disable-times` prop.\n * The `disable-times` prop accepts an array of time objects or strings.\n * Each time object can have a `start` and `end` property to define a range of disabled times, or it can be a single time string to disable that specific time.\n * The time can be in any format supported as `time-format`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\nexport const DisableTimes = {\n render: () => html`<ic-time-selector\n id=\"time-selector-default-disable-time\"\n ></ic-time-selector>\n <script>\n var timeSelectorDisable = document.querySelector(\n \"#time-selector-default-disable-time\"\n );\n timeSelectorDisable.disableTimes = [\n { start: \"08:00\", end: \"10:00\" },\n \"13:20\",\n ];\n </script>`,\n name: \"Disabled times\",\n};\n\n/**\n * Demonstrates the size options for the time selector component.\n */\nexport const Small = {\n render: () =>\n html`<ic-time-selector size=\"small\" time-period=\"12\"></ic-time-selector>`,\n name: \"Small\",\n};\n\nexport const Large = {\n render: () =>\n html`<ic-time-selector size=\"large\" time-period=\"12\"></ic-time-selector>`,\n name: \"Large\",\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ic-time-selector.types.js","sourceRoot":"","sources":["../../../../../src/components/ic-time-selector/ic-time-selector.types.ts"],"names":[],"mappings":"","sourcesContent":["export type IcTimePeriods = \"AM\" | \"PM\";\n"]}
|
|
@@ -284,7 +284,7 @@ export class TreeItem {
|
|
|
284
284
|
rel: this.rel,
|
|
285
285
|
target: this.target,
|
|
286
286
|
};
|
|
287
|
-
return (h(Host, { key: '
|
|
287
|
+
return (h(Host, { key: '2b66767ebcadc7f0d59c0e2309424e01dbc49410', class: {
|
|
288
288
|
"ic-tree-item-disabled": disabled,
|
|
289
289
|
"ic-tree-item-selected": !disabled && selected,
|
|
290
290
|
[`ic-tree-item-${size}`]: size !== "medium",
|
|
@@ -295,7 +295,7 @@ export class TreeItem {
|
|
|
295
295
|
}, tabIndex: disabled ? -1 : 0, onClick: this.handleTreeItemClicked, ref: (el) => (this.treeItemElement = el), "aria-disabled": disabled ? "true" : "false", "aria-live": "polite" }, attrs, { onFocus: () => this.handleDisplayTooltip(true), onBlur: () => this.handleDisplayTooltip(false) }), this.isParent && (h("span", { class: {
|
|
296
296
|
["arrow-dropdown"]: true,
|
|
297
297
|
["tree-item-expanded"]: expanded,
|
|
298
|
-
}, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), h("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? h("slot", { name: "label" }) : label))), expanded && (h("div", { key: '
|
|
298
|
+
}, "aria-hidden": "true", innerHTML: arrowDropdown })), isSlotUsed(this.el, "icon") && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), h("ic-typography", { class: "tree-item-label" }, isSlotUsed(this.el, "label") ? h("slot", { name: "label" }) : label))), expanded && (h("div", { key: '1806805bf01bf7d6320b753a2ed577ea08b8f716', "aria-hidden": `${!expanded}` }, h("slot", { key: '2c7de11af3f2248a6c7ca57d43f56851046cc26a' })))));
|
|
299
299
|
}
|
|
300
300
|
static get is() { return "ic-tree-item"; }
|
|
301
301
|
static get encapsulation() { return "shadow"; }
|
|
@@ -315,14 +315,14 @@ export class TreeView {
|
|
|
315
315
|
}
|
|
316
316
|
render() {
|
|
317
317
|
const { heading, isLoaded, size, theme, truncateHeading } = this;
|
|
318
|
-
return (h(Host, { key: '
|
|
318
|
+
return (h(Host, { key: 'b64c96601e14f028d70d42596ab73c3adcc5c50c', "context-id": this.treeViewId, class: {
|
|
319
319
|
[`ic-tree-view-${size}`]: size !== "medium",
|
|
320
320
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
321
321
|
"ic-tree-view-truncate": truncateHeading,
|
|
322
|
-
}, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (h("div", { key: '
|
|
322
|
+
}, onKeyDown: this.handleKeyDown, "aria-label": this.isHeadingDefined() ? heading : null }, this.hasHeadingAreaContent() && (h("div", { key: '2147d52cb5d094a6b2030707832e7986452ec793', class: "heading-area-container" }, isSlotUsed(this.el, "icon") && (h("div", { key: '884b18baa7bf9a6530578e14e554e7da405184e4', class: "icon-container" }, h("slot", { key: 'a7b165ab9a5851dd0006a0ed2d58299c6cce8008', name: "icon" }))), h("ic-typography", { key: 'b851dc0c5d16d8127ba3e3e0c0efdbbb2675bdd4', variant: "subtitle-large", class: {
|
|
323
323
|
"tree-view-header": true,
|
|
324
324
|
"with-padding": this.truncateHeading && !isLoaded,
|
|
325
|
-
} }, isSlotUsed(this.el, "heading") ? (h("slot", { name: "heading" })) : (heading)))), h("slot", { key: '
|
|
325
|
+
} }, isSlotUsed(this.el, "heading") ? (h("slot", { name: "heading" })) : (heading)))), h("slot", { key: '1e2577f386a2121c89644f395358fb746eb63cd1' })));
|
|
326
326
|
}
|
|
327
327
|
static get is() { return "ic-tree-view"; }
|
|
328
328
|
static get encapsulation() { return "shadow"; }
|
|
@@ -487,4 +487,39 @@ export const renderDynamicChildSlots = (mutationList, slotNames, ref) => {
|
|
|
487
487
|
forceUpdate(ref);
|
|
488
488
|
}
|
|
489
489
|
};
|
|
490
|
+
/**
|
|
491
|
+
* Parses a time string (HH:MM or HH:MM:SS) or Date and returns both Date and time parts.
|
|
492
|
+
* @param value string or Date
|
|
493
|
+
* @returns { date: Date | null, parts: { hour: number, minute: number, second: number } | null }
|
|
494
|
+
*/
|
|
495
|
+
export function parseTimeHelper(value) {
|
|
496
|
+
if (!value)
|
|
497
|
+
return { date: null, parts: null };
|
|
498
|
+
let d;
|
|
499
|
+
if (typeof value === "string") {
|
|
500
|
+
const parts = value.split(/[:.]/);
|
|
501
|
+
if (parts.length >= 2) {
|
|
502
|
+
d = new Date();
|
|
503
|
+
d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, parts[3] ? +parts[3] : 0);
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
return { date: null, parts: null };
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
else if (value instanceof Date) {
|
|
510
|
+
d = value;
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
return { date: null, parts: null };
|
|
514
|
+
}
|
|
515
|
+
return {
|
|
516
|
+
date: d,
|
|
517
|
+
parts: {
|
|
518
|
+
hour: d.getHours(),
|
|
519
|
+
minute: d.getMinutes(),
|
|
520
|
+
second: d.getSeconds(),
|
|
521
|
+
millisecond: d.getMilliseconds(),
|
|
522
|
+
},
|
|
523
|
+
};
|
|
524
|
+
}
|
|
490
525
|
//# sourceMappingURL=helpers.js.map
|