@ukic/canary-web-components 3.0.0-canary.25 → 3.0.0-canary.26
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-56717660.js → helpers-b55826ba.js} +22 -22
- package/dist/cjs/{helpers-56717660.js.map → helpers-b55826ba.js.map} +1 -1
- package/dist/cjs/helpers-da852478.js.map +1 -1
- 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-action-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +2 -2
- 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 +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 +24 -18
- 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 +3 -3
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox_3.cjs.entry.js +6 -6
- package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +6 -6
- package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +6 -4
- 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-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +5 -5
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +27 -14
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid.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 +2 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js +6 -6
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
- 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-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +43 -35
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +14 -14
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +5 -5
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +10 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-table-of-contents.cjs.entry.js +363 -0
- package/dist/cjs/ic-table-of-contents.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-theme.cjs.entry.js +2 -2
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-time-input.cjs.entry.js +7 -7
- package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +4 -4
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-tree-view.cjs.entry.js +3 -3
- package/dist/cjs/ic-typography.cjs.entry.js +3 -3
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-d337cd8a.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/error-icon.svg +4 -4
- package/dist/collection/assets/info-icon.svg +4 -4
- package/dist/collection/assets/neutral-icon.svg +4 -4
- package/dist/collection/assets/success-icon.svg +4 -4
- package/dist/collection/assets/warning-icon.svg +4 -4
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +82 -54
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-date-input/ic-date-input.js +6 -6
- package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js +28 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js.map +1 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.css +145 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +526 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js.map +1 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js +291 -0
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js.map +1 -0
- package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js +13 -0
- package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-time-input/ic-time-input.js +7 -7
- package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
- 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/types.js.map +1 -1
- package/dist/components/helpers.js +22 -22
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-alert.js +1 -1
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-button2.js +15 -10
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +2 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox2.js +3 -3
- package/dist/components/ic-checkbox2.js.map +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js +2 -2
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-date-input2.js +6 -6
- package/dist/components/ic-date-input2.js.map +1 -1
- package/dist/components/ic-dialog.js +5 -3
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-empty-state2.js +2 -2
- package/dist/components/ic-empty-state2.js.map +1 -1
- package/dist/components/ic-footer-link.js +2 -2
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-hero.js +4 -4
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +5 -5
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +3 -3
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +2 -2
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +21 -6
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-layout-grid-item.js +2 -2
- package/dist/components/ic-layout-grid-item.js.map +1 -1
- package/dist/components/ic-layout-grid.js +2 -2
- package/dist/components/ic-layout-grid.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 +5 -5
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +1 -1
- package/dist/components/ic-menu-group.js.map +1 -1
- package/dist/components/ic-menu2.js +5 -5
- 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-menu2.js +4 -4
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +6 -6
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +1 -1
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination2.js +4 -4
- package/dist/components/ic-pagination2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +4 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +4 -4
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +4 -4
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +10 -10
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-section-container2.js.map +1 -1
- package/dist/components/ic-select2.js +9 -9
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +5 -5
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-skip-link.js.map +1 -1
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +13 -13
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +11 -2
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-table-of-contents.d.ts +11 -0
- package/dist/components/ic-table-of-contents.js +408 -0
- package/dist/components/ic-table-of-contents.js.map +1 -0
- package/dist/components/ic-text-field2.js +30 -21
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-time-input.js +7 -7
- package/dist/components/ic-time-input.js.map +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.js +3 -3
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +2 -2
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +6 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +1 -1
- package/dist/components/ic-tree-item.js +2 -2
- package/dist/components/ic-tree-view.js +3 -3
- package/dist/components/ic-typography2.js +2 -2
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/core/core.css +32 -4
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-3f241d71.entry.js → p-09c0961a.entry.js} +2 -2
- package/dist/core/{p-3f241d71.entry.js.map → p-09c0961a.entry.js.map} +1 -1
- package/dist/core/p-0f22f41e.js.map +1 -1
- package/dist/core/{p-d13a066e.entry.js → p-0fffe635.entry.js} +2 -2
- package/dist/core/{p-d13a066e.entry.js.map → p-0fffe635.entry.js.map} +1 -1
- package/dist/core/{p-aa94c4b0.entry.js → p-17423822.entry.js} +2 -2
- package/dist/core/{p-aa94c4b0.entry.js.map → p-17423822.entry.js.map} +1 -1
- package/dist/core/{p-d47e200c.entry.js → p-20f248be.entry.js} +2 -2
- package/dist/core/{p-be5df6a9.entry.js → p-25d21dbd.entry.js} +2 -2
- package/dist/core/{p-be5df6a9.entry.js.map → p-25d21dbd.entry.js.map} +1 -1
- package/dist/core/{p-9fe5e2eb.entry.js → p-30a2abe9.entry.js} +2 -2
- package/dist/core/{p-c067e62c.entry.js → p-318c6a4c.entry.js} +2 -2
- package/dist/core/{p-364cc350.entry.js → p-3414247d.entry.js} +2 -2
- package/dist/core/{p-287e5c17.entry.js → p-37d217b5.entry.js} +2 -2
- package/dist/core/{p-287e5c17.entry.js.map → p-37d217b5.entry.js.map} +1 -1
- package/dist/core/{p-df88ff5b.entry.js → p-37daa8fe.entry.js} +2 -2
- package/dist/core/{p-df88ff5b.entry.js.map → p-37daa8fe.entry.js.map} +1 -1
- package/dist/core/p-3bb4ea35.entry.js +2 -0
- package/dist/core/p-3bb4ea35.entry.js.map +1 -0
- package/dist/core/{p-d41b0da0.entry.js → p-3bee8f39.entry.js} +2 -2
- package/dist/core/{p-d41b0da0.entry.js.map → p-3bee8f39.entry.js.map} +1 -1
- package/dist/core/{p-fb8c47ce.entry.js → p-4479c7e7.entry.js} +2 -2
- package/dist/core/{p-fb8c47ce.entry.js.map → p-4479c7e7.entry.js.map} +1 -1
- package/dist/core/{p-45dd12ee.entry.js → p-4747c39f.entry.js} +2 -2
- package/dist/core/p-4747c39f.entry.js.map +1 -0
- package/dist/core/{p-ffac41d6.entry.js → p-492fcb51.entry.js} +2 -2
- package/dist/core/{p-ffac41d6.entry.js.map → p-492fcb51.entry.js.map} +1 -1
- package/dist/core/{p-3a73a9b7.entry.js → p-4eb74281.entry.js} +2 -2
- package/dist/core/p-4eb74281.entry.js.map +1 -0
- package/dist/core/{p-9863a070.entry.js → p-4fa1a80f.entry.js} +2 -2
- package/dist/core/{p-6796acff.entry.js → p-514c4401.entry.js} +2 -2
- package/dist/core/{p-b93e8ecb.entry.js → p-5534bb37.entry.js} +2 -2
- package/dist/core/{p-d7217588.entry.js → p-55934942.entry.js} +2 -2
- package/dist/core/{p-d7217588.entry.js.map → p-55934942.entry.js.map} +1 -1
- package/dist/core/{p-43285eeb.entry.js → p-570ff466.entry.js} +2 -2
- package/dist/core/{p-43285eeb.entry.js.map → p-570ff466.entry.js.map} +1 -1
- package/dist/core/{p-6e8ef73c.entry.js → p-57721431.entry.js} +2 -2
- package/dist/core/{p-6e8ef73c.entry.js.map → p-57721431.entry.js.map} +1 -1
- package/dist/core/{p-bc7d730d.entry.js → p-587d704d.entry.js} +2 -2
- package/dist/core/p-587d704d.entry.js.map +1 -0
- package/dist/core/{p-5fbc8e62.entry.js → p-5fcfcfb6.entry.js} +2 -2
- package/dist/core/{p-5fbc8e62.entry.js.map → p-5fcfcfb6.entry.js.map} +1 -1
- package/dist/core/{p-4bddb866.entry.js → p-6a884eef.entry.js} +2 -2
- package/dist/core/{p-4bddb866.entry.js.map → p-6a884eef.entry.js.map} +1 -1
- package/dist/core/p-6d2fa004.entry.js +2 -0
- package/dist/core/p-6d2fa004.entry.js.map +1 -0
- package/dist/core/{p-9fffb01e.entry.js → p-7821c7dc.entry.js} +2 -2
- package/dist/core/{p-608a8a4d.entry.js → p-8bb49790.entry.js} +2 -2
- package/dist/core/{p-5c7c7205.entry.js → p-92f199b0.entry.js} +2 -2
- package/dist/core/p-9810080e.entry.js +2 -0
- package/dist/core/p-9810080e.entry.js.map +1 -0
- package/dist/core/{p-518a8e87.entry.js → p-98286c35.entry.js} +2 -2
- package/dist/core/{p-518a8e87.entry.js.map → p-98286c35.entry.js.map} +1 -1
- package/dist/core/{p-ea061ccf.entry.js → p-9a8bcb78.entry.js} +2 -2
- package/dist/core/{p-ea061ccf.entry.js.map → p-9a8bcb78.entry.js.map} +1 -1
- package/dist/core/{p-812a0246.entry.js → p-9ad64b6f.entry.js} +2 -2
- package/dist/core/{p-b87e4485.entry.js → p-9c491db1.entry.js} +2 -2
- package/dist/core/{p-1a5efa3e.entry.js → p-9c8070a1.entry.js} +2 -2
- package/dist/core/{p-8b5022bc.entry.js → p-9cf6ccfd.entry.js} +2 -2
- package/dist/core/{p-8b5022bc.entry.js.map → p-9cf6ccfd.entry.js.map} +1 -1
- package/dist/core/p-9f5a1473.entry.js +2 -0
- package/dist/core/p-9f5a1473.entry.js.map +1 -0
- package/dist/core/{p-59048c2a.entry.js → p-a0c361ec.entry.js} +2 -2
- package/dist/core/p-a0c361ec.entry.js.map +1 -0
- package/dist/core/{p-51e2de77.entry.js → p-a7bc9a19.entry.js} +2 -2
- package/dist/core/{p-51e2de77.entry.js.map → p-a7bc9a19.entry.js.map} +1 -1
- package/dist/core/{p-588a331f.entry.js → p-a8d934fe.entry.js} +2 -2
- package/dist/core/{p-588a331f.entry.js.map → p-a8d934fe.entry.js.map} +1 -1
- package/dist/core/{p-145c0245.entry.js → p-aaa6d8e1.entry.js} +2 -2
- package/dist/core/{p-145c0245.entry.js.map → p-aaa6d8e1.entry.js.map} +1 -1
- package/dist/core/{p-f7d746d7.entry.js → p-b12c4643.entry.js} +2 -2
- package/dist/core/{p-f7d746d7.entry.js.map → p-b12c4643.entry.js.map} +1 -1
- package/dist/core/{p-31d6d587.entry.js → p-b2c49dfd.entry.js} +2 -2
- package/dist/core/p-b2c49dfd.entry.js.map +1 -0
- package/dist/core/{p-999f0a5d.entry.js → p-b4a2f6fa.entry.js} +2 -2
- package/dist/core/{p-999f0a5d.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
- package/dist/core/p-b5dd226f.entry.js +2 -0
- package/dist/core/{p-20374e30.entry.js.map → p-b5dd226f.entry.js.map} +1 -1
- package/dist/core/{p-8051e61b.entry.js → p-b8cb867c.entry.js} +2 -2
- package/dist/core/{p-f517f412.entry.js → p-b95d99c7.entry.js} +2 -2
- package/dist/core/p-c039a175.entry.js +2 -0
- package/dist/core/{p-ad48c77c.entry.js.map → p-c039a175.entry.js.map} +1 -1
- package/dist/core/p-c08ea34d.entry.js +2 -0
- package/dist/core/p-c08ea34d.entry.js.map +1 -0
- package/dist/core/{p-fecef807.entry.js → p-c7a97221.entry.js} +2 -2
- package/dist/core/{p-91646e38.entry.js → p-c95be271.entry.js} +2 -2
- package/dist/core/p-c95be271.entry.js.map +1 -0
- package/dist/core/p-cd3f12ad.entry.js +2 -0
- package/dist/core/p-cd3f12ad.entry.js.map +1 -0
- package/dist/core/{p-40743d97.entry.js → p-d143aa70.entry.js} +2 -2
- package/dist/core/{p-40743d97.entry.js.map → p-d143aa70.entry.js.map} +1 -1
- package/dist/core/{p-c3fe54ab.entry.js → p-d3b9c04b.entry.js} +2 -2
- package/dist/core/{p-c3fe54ab.entry.js.map → p-d3b9c04b.entry.js.map} +1 -1
- package/dist/core/{p-cb4522ed.entry.js → p-d3eb3356.entry.js} +2 -2
- package/dist/core/{p-66ae9eb3.entry.js → p-d6a1b39c.entry.js} +2 -2
- package/dist/core/{p-66ae9eb3.entry.js.map → p-d6a1b39c.entry.js.map} +1 -1
- package/dist/core/{p-efe2fbd7.entry.js → p-d7c44cce.entry.js} +2 -2
- package/dist/core/p-d7c44cce.entry.js.map +1 -0
- package/dist/core/{p-e543f2e7.entry.js → p-e435052b.entry.js} +2 -2
- package/dist/core/{p-e543f2e7.entry.js.map → p-e435052b.entry.js.map} +1 -1
- package/dist/core/{p-b8938f93.entry.js → p-e4f1d72b.entry.js} +2 -2
- package/dist/core/p-ee95905f.js +2 -0
- package/dist/core/{p-efa95979.js.map → p-ee95905f.js.map} +1 -1
- package/dist/core/{p-2fe31f66.entry.js → p-f4b08cdb.entry.js} +2 -2
- package/dist/core/{p-2fe31f66.entry.js.map → p-f4b08cdb.entry.js.map} +1 -1
- package/dist/core/{p-5976d13e.entry.js → p-f5cc4e94.entry.js} +2 -2
- package/dist/core/{p-5976d13e.entry.js.map → p-f5cc4e94.entry.js.map} +1 -1
- package/dist/core/{p-558936fb.entry.js → p-f6772530.entry.js} +2 -2
- package/dist/core/{p-0fad83d8.entry.js → p-fc125ca6.entry.js} +2 -2
- package/dist/core/{p-0fad83d8.entry.js.map → p-fc125ca6.entry.js.map} +1 -1
- package/dist/esm/core.js +1 -1
- package/dist/esm/helpers-89cb996d.js.map +1 -1
- package/dist/esm/{helpers-f3928d01.js → helpers-fee7d348.js} +22 -22
- package/dist/esm/{helpers-f3928d01.js.map → helpers-fee7d348.js.map} +1 -1
- 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 +2 -2
- 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 +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 +24 -18
- 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 +3 -3
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox_3.entry.js +6 -6
- 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 +2 -2
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +3 -3
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-date-input.entry.js +6 -6
- package/dist/esm/ic-date-input.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +6 -4
- package/dist/esm/ic-dialog.entry.js.map +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 +3 -3
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +5 -5
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_4.entry.js +27 -14
- package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid-item.entry.js +2 -2
- package/dist/esm/ic-layout-grid-item.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid.entry.js +2 -2
- package/dist/esm/ic-layout-grid.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 +2 -2
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-menu.entry.js +6 -6
- 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 +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +5 -5
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +7 -7
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination_4.entry.js +43 -35
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +5 -5
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +5 -5
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +5 -5
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +10 -10
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-section-container.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +5 -5
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +2 -2
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-skip-link.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +3 -3
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +14 -14
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +3 -3
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +5 -5
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +10 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-table-of-contents.entry.js +359 -0
- package/dist/esm/ic-table-of-contents.entry.js.map +1 -0
- package/dist/esm/ic-theme.entry.js +2 -2
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-time-input.entry.js +7 -7
- package/dist/esm/ic-time-input.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +4 -4
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +3 -3
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +3 -3
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-tree-item.entry.js +2 -2
- package/dist/esm/ic-tree-view.entry.js +3 -3
- package/dist/esm/ic-typography.entry.js +3 -3
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-a7a720e7.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-data-table/story-data.d.ts +2 -2
- package/dist/types/components/ic-table-of-contents/ic-table-of-contents-item.d.ts +14 -0
- package/dist/types/components/ic-table-of-contents/ic-table-of-contents.d.ts +83 -0
- package/dist/types/components/ic-table-of-contents/ic-table-of-contents.stories.d.ts +90 -0
- package/dist/types/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.d.ts +1 -0
- package/dist/types/components.d.ts +79 -2
- package/dist/types/utils/types.d.ts +1 -0
- package/hydrate/index.js +633 -221
- package/hydrate/index.mjs +633 -221
- package/package.json +4 -4
- package/dist/core/p-20374e30.entry.js +0 -2
- package/dist/core/p-2f4f4aea.entry.js +0 -2
- package/dist/core/p-2f4f4aea.entry.js.map +0 -1
- package/dist/core/p-31d6d587.entry.js.map +0 -1
- package/dist/core/p-3a73a9b7.entry.js.map +0 -1
- package/dist/core/p-45dd12ee.entry.js.map +0 -1
- package/dist/core/p-59048c2a.entry.js.map +0 -1
- package/dist/core/p-5ac30e1f.entry.js +0 -2
- package/dist/core/p-5ac30e1f.entry.js.map +0 -1
- package/dist/core/p-7d2d067f.entry.js +0 -2
- package/dist/core/p-7d2d067f.entry.js.map +0 -1
- package/dist/core/p-91646e38.entry.js.map +0 -1
- package/dist/core/p-ad48c77c.entry.js +0 -2
- package/dist/core/p-afece95e.entry.js +0 -2
- package/dist/core/p-afece95e.entry.js.map +0 -1
- package/dist/core/p-bc7d730d.entry.js.map +0 -1
- package/dist/core/p-efa95979.js +0 -2
- package/dist/core/p-efe2fbd7.entry.js.map +0 -1
- package/dist/core/p-f3201a0b.entry.js +0 -2
- package/dist/core/p-f3201a0b.entry.js.map +0 -1
- /package/dist/core/{p-d47e200c.entry.js.map → p-20f248be.entry.js.map} +0 -0
- /package/dist/core/{p-9fe5e2eb.entry.js.map → p-30a2abe9.entry.js.map} +0 -0
- /package/dist/core/{p-c067e62c.entry.js.map → p-318c6a4c.entry.js.map} +0 -0
- /package/dist/core/{p-364cc350.entry.js.map → p-3414247d.entry.js.map} +0 -0
- /package/dist/core/{p-9863a070.entry.js.map → p-4fa1a80f.entry.js.map} +0 -0
- /package/dist/core/{p-6796acff.entry.js.map → p-514c4401.entry.js.map} +0 -0
- /package/dist/core/{p-b93e8ecb.entry.js.map → p-5534bb37.entry.js.map} +0 -0
- /package/dist/core/{p-9fffb01e.entry.js.map → p-7821c7dc.entry.js.map} +0 -0
- /package/dist/core/{p-608a8a4d.entry.js.map → p-8bb49790.entry.js.map} +0 -0
- /package/dist/core/{p-5c7c7205.entry.js.map → p-92f199b0.entry.js.map} +0 -0
- /package/dist/core/{p-812a0246.entry.js.map → p-9ad64b6f.entry.js.map} +0 -0
- /package/dist/core/{p-b87e4485.entry.js.map → p-9c491db1.entry.js.map} +0 -0
- /package/dist/core/{p-1a5efa3e.entry.js.map → p-9c8070a1.entry.js.map} +0 -0
- /package/dist/core/{p-8051e61b.entry.js.map → p-b8cb867c.entry.js.map} +0 -0
- /package/dist/core/{p-f517f412.entry.js.map → p-b95d99c7.entry.js.map} +0 -0
- /package/dist/core/{p-fecef807.entry.js.map → p-c7a97221.entry.js.map} +0 -0
- /package/dist/core/{p-cb4522ed.entry.js.map → p-d3eb3356.entry.js.map} +0 -0
- /package/dist/core/{p-b8938f93.entry.js.map → p-e4f1d72b.entry.js.map} +0 -0
- /package/dist/core/{p-558936fb.entry.js.map → p-f6772530.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["icTimeInputCss","IcTimeInputStyle0","inputIds","TimeInput","constructor","hostRef","this","DEFAULT_TIME_FORMAT","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","inputsInOrder","isValidHour","isValidMinute","isValidSecond","isValidTime","isTimeSetFromKeyboardEvent","previousSelectedTime","selectedTime","externalSetTime","clearInput","maxTime","minTime","clockFocused","clearButtonFocused","removeLabelledBy","hour","minute","second","disabled","disableTimes","emitTimePartChange","hideHelperText","hideLabel","inputId","invalidTimeMessage","max","min","name","required","showClearButton","showClockButton","size","theme","timeFormat","timePeriod","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","parseTime","Date","parts","split","length","d","setHours","isHHMMFormat","isKeyboardOrEvent","event","Object","prototype","toString","call","setTimeValidity","minHour","maxHour","isEmptyString","setInputValue","clear","newValue","hourInputEl","minuteInputEl","secondInputEl","setValidationMessage","setPreventInput","isPrevented","preventHourInput","preventMinuteInput","preventSecondInput","outOfBoundsMsg","isDisabledTime","convertToTime","getHours","getMinutes","getSeconds","Array","isArray","some","t","start","end","parsed","formatTime","forEach","setAttribute","removeAttribute","invalidTimeText","time","hh","padStart","mm","ss","handleInput","inputEvent","target","inputType","preventAutoFormatting","notifyScreenReader","moveToNextInput","setFitToValueStyling","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","moveToPreviousInput","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","minValue","maxValue","val","handleTimeChange","force","setValueAndEmitChange","notifyScreenReaderSelectedTime","selectedTimeInfoEl","textContent","updateInputValues","emitIcChange","icChange","emit","timeObject","setTime","undefined","remove","zuluMatch","match","setAriaInvalid","validHour","validMinute","validSecond","_b","_c","handleClear","focus","handleHostBlur","icBlur","handleHostFocus","el","shadowRoot","activeElement","id","icFocus","handleFormReset","selectedString","substring","selectionStart","selectionEnd","currentInput","findIndex","inputValue","setInputsInOrder","shadowInputs","querySelectorAll","push","removeAriaLabelledBy","inputCompContainerEl","setAriaLabelledBy","getAttribute","labelEl","querySelector","labelId","hasValidation","labelledBy","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedTimeInfoId","assistiveHintId","_d","getInputsInOrder","timeParts","map","part","h","class","ref","placeholder","inputmode","pattern","onPaste","handlePaste","onKeyDown","getDescOfInputsOrder","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","liveRegion","clipboardData","getData","isPastedStringTimeValid","setPastedValueAndValidation","handleClearFocus","handleClearBlur","ev","relatedTarget","handleClockFocus","handleClockBlur","replace","isoMatch","index","timeValue","slice","pasted","trim","isNumeric","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchMaxHandler","watchMinHandler","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","getTime","triggerIcChange","render","hasCustomValidation","assistiveHint","renderHiddenInput","showDivider","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Clock","status","message"],"sources":["src/components/ic-time-input/ic-time-input.css?tag=ic-time-input&encapsulation=shadow","src/components/ic-time-input/ic-time-input.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --input-bg-color: var(--ic-time-picker-field-background);\n --ic-input-label-text-color: var(--ic-time-picker-label);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle);\n --border-color: var(--ic-time-picker-time-field-border-default);\n --border-color-disabled: var(--ic-time-picker-border-disabled);\n --border-color-hover: var(--ic-time-picker-time-field-border-hover);\n --border-color-pressed: var(--ic-time-picker-time-field-border-pressed);\n --border-error-color: var(--ic-time-picker-border-error);\n --border-error-color-hover: var(--ic-time-picker-border-error-hover);\n --border-error-color-pressed: var(--ic-time-picker-border-error-pressed);\n --border-success-color: var(--ic-time-picker-border-success);\n --border-success-color-hover: var(--ic-time-picker-border-success-hover);\n --border-success-color-pressed: var(--ic-time-picker-border-success-pressed);\n --border-warning-color: var(--ic-time-picker-border-warning);\n --border-warning-color-hover: var(--ic-time-picker-border-warning-hover);\n --border-warning-color-pressed: var(--ic-time-picker-border-warning-pressed);\n --input-width: calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs));\n}\n\n:host(.ic-time-input-disabled) {\n --ic-input-label-text-color: var(--ic-time-picker-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle-disabled);\n}\n\n:host(.ic-time-input-disabled) input {\n color: var(--ic-time-picker-time-text-disabled);\n}\n\n:host(.ic-time-input-large) {\n --input-width: calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n );\n}\n\n:host(.ic-time-input-small) {\n --input-width: calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n );\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-time-picker-time-text-default);\n caret-color: var(--ic-time-picker-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-time-picker-time-text-default) !important;\n}\n\ninput::placeholder {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.time-inputs {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\n.hour-input {\n width: 1.438rem;\n}\n\n.minute-input {\n width: 1.813rem;\n}\n\n.second-input,\n.second-input.fit-to-value {\n width: 2.313rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-clock-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.clock-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active,\n.clock-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.clock-button:focus,\n.clock-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active *,\n.clock-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-time-picker-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-time-picker-status-text);\n --ic-input-validation-error: var(--ic-time-picker-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-time-picker-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-time-picker-icon-success);\n}\n\n@media (forced-colors: active) {\n .clear-button svg {\n color: currentColor;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n IcTimeFormat,\n} from \"../../utils/types\";\nimport {\n isEmptyString,\n isNumeric,\n addFormResetListener,\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Clock from \"../../assets/clock.svg\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the time input.\n */\n@Component({\n tag: \"ic-time-input\",\n styleUrl: \"ic-time-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TimeInput {\n private DEFAULT_TIME_FORMAT: IcTimeFormat = \"HH:MM:SS\";\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private hourInputEl?: HTMLInputElement;\n private minuteInputEl?: HTMLInputElement;\n private secondInputEl?: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private inputsInOrder: HTMLInputElement[] = [];\n private isValidHour: boolean = true;\n private isValidMinute: boolean = true;\n private isValidSecond: boolean = true;\n private isValidTime: boolean = true;\n private isTimeSetFromKeyboardEvent: boolean = false;\n private preventAutoFormatting: boolean;\n private preventHourInput: boolean;\n private preventMinuteInput: boolean;\n private preventSecondInput: boolean;\n private previousSelectedTime: Date | null = null;\n private selectedTime: Date | null = null;\n private selectedTimeInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedTimeInfoId: string;\n private externalSetTime: boolean = false;\n private clearInput: boolean = false;\n private maxTime: Date | null = null;\n private minTime: Date | null = null;\n\n @Element() el: HTMLIcTimeInputElement;\n\n @State() invalidTimeText: string;\n @State() clockFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n @State() hour: string = \"\";\n @State() minute: string = \"\";\n @State() second: string = \"\";\n\n @Watch(\"hour\")\n @Watch(\"minute\")\n @Watch(\"second\")\n watchInputHandler(): void {\n if (\n this.emitTimePartChange &&\n !this.externalSetTime &&\n !this.clearInput &&\n !(this.hour && this.minute && this.second) &&\n this.selectedTime === null\n ) {\n this.emitIcChange(this.selectedTime);\n }\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * An array of times that will be disabled in the time input. 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 * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitTimePartChange?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `timeFormat` value.\n */\n @Prop({ mutable: true }) helperText: string | null;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId: string = `ic-time-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid time is entered.\n */\n @Prop() invalidTimeMessage: string = \"Please enter a valid time.\";\n\n /**\n * The label for the time input.\n */\n @Prop() label!: string;\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 = this.parseTime(this.max);\n }\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 = this.parseTime(this.min);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n @Watch(\"required\")\n watchRequiredHandler(): void {\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot?.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * If `true`, a button which clears the time input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * @internal If `true`, a button which displays the clock view when clicked will be displayed.\n */\n @Prop() showClockButton?: boolean = false;\n\n /**\n * The size of the time input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the time picker to the dark or light theme colors. \"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: IcTimeFormat = 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 input. 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\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in time validation.\n */\n @Prop({ mutable: true }) validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in time validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the clock is opened.\n */\n @Event() clockButtonClicked: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n };\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.defaultHelperText = `Use format ${this.timeFormat}`;\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n if (this.value) {\n this.externalSetTime = true;\n this.setTime(this.value);\n }\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedTimeInfoId = `${this.inputId}-selected-time-info`;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Time Input\"\n );\n if (this.value) {\n this.updateInputValues(this.hour, this.minute, this.second);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond\n );\n if (this.value) {\n this.notifyScreenReaderSelectedTime();\n }\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n if (!this.isTimeSetFromKeyboardEvent) this.setTime(this.value);\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond\n );\n this.handleTimeChange(false);\n this.isTimeSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getTime(): Promise<Date | null> {\n return this.selectedTime;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(t: Date | null): Promise<void> {\n this.externalSetTime = true;\n this.setTime(t);\n this.emitIcChange(t);\n this.externalSetTime = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private parseTime = (value: string | Date): Date | null => {\n if (!value) return null;\n if (value instanceof Date) return value;\n const parts = value.split(\":\");\n if (parts.length >= 2) {\n const d = new Date();\n d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, 0);\n return d;\n }\n return null;\n };\n\n private isHHMMFormat = () => this.timeFormat === \"HH:MM\";\n\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) === \"[object KeyboardEvent]\"\n );\n };\n\n private setTimeValidity = () => {\n const minHour = 0;\n const maxHour = this.timePeriod === \"12\" ? 11 : 23;\n if (!isEmptyString(this.hour)) {\n this.isValidHour = +this.hour >= minHour && +this.hour <= maxHour;\n } else {\n this.isValidHour = true;\n }\n if (!isEmptyString(this.minute)) {\n this.isValidMinute = +this.minute >= 0 && +this.minute <= 59;\n } else {\n this.isValidMinute = true;\n }\n if (!this.isHHMMFormat()) {\n if (!isEmptyString(this.second)) {\n this.isValidSecond = +this.second >= 0 && +this.second <= 59;\n } else {\n this.isValidSecond = true;\n }\n } else {\n this.isValidSecond = true;\n }\n };\n\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n if (input === this.hourInputEl) {\n this.hour = newValue;\n } else if (input === this.minuteInputEl) {\n this.minute = newValue;\n } else if (input === this.secondInputEl && !this.isHHMMFormat()) {\n this.second = newValue;\n }\n this.setValidationMessage();\n };\n\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n if (input === this.hourInputEl) {\n this.preventHourInput = isPrevented;\n } else if (input === this.minuteInputEl) {\n this.preventMinuteInput = isPrevented;\n } else if (input === this.secondInputEl) {\n this.preventSecondInput = isPrevented;\n }\n };\n\n private setValidationMessage = () => {\n this.maxTime = this.parseTime(this.max);\n this.minTime = this.parseTime(this.min);\n this.setTimeValidity();\n let outOfBoundsMsg = \"\";\n let isDisabledTime = false;\n if (\n !isEmptyString(this.hour) &&\n !isEmptyString(this.minute) &&\n (this.isHHMMFormat() || !isEmptyString(this.second))\n ) {\n this.selectedTime = this.convertToTime(\n this.hour,\n this.minute,\n this.isHHMMFormat() ? \"00\" : this.second\n );\n this.isValidTime =\n !!this.selectedTime &&\n this.selectedTime.getHours() == +this.hour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() || this.selectedTime.getSeconds() == +this.second);\n\n if (\n this.selectedTime &&\n Array.isArray(this.disableTimes) &&\n this.disableTimes.length > 0\n ) {\n isDisabledTime = this.disableTimes.some((t) => {\n if (\n typeof t === \"object\" &&\n t !== null &&\n \"start\" in t &&\n \"end\" in t\n ) {\n const start = this.parseTime(t.start);\n const end = this.parseTime(t.end);\n if (start && end) {\n return this.selectedTime! >= start && this.selectedTime! <= end;\n }\n return false;\n }\n const parsed = this.parseTime(t as string | Date);\n return (\n parsed &&\n parsed.getHours() === this.selectedTime!.getHours() &&\n parsed.getMinutes() === this.selectedTime!.getMinutes() &&\n parsed.getSeconds() === this.selectedTime!.getSeconds()\n );\n });\n if (isDisabledTime) {\n this.isValidTime = false;\n outOfBoundsMsg = this.invalidTimeMessage;\n }\n }\n\n if (this.selectedTime && !isDisabledTime) {\n if (this.minTime && this.selectedTime < this.minTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time after ${this.formatTime(\n this.minTime\n )}.`;\n } else if (this.maxTime && this.selectedTime > this.maxTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time before ${this.formatTime(\n this.maxTime\n )}.`;\n }\n }\n if (!this.isValidTime) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedTime = null;\n }\n if (\n !(\n this.isValidHour &&\n this.isValidMinute &&\n this.isValidSecond &&\n this.isValidTime\n )\n ) {\n this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;\n } else {\n this.invalidTimeText = \"\";\n }\n };\n\n private formatTime = (time: Date): string => {\n const hh = time.getHours().toString().padStart(2, \"0\");\n const mm = time.getMinutes().toString().padStart(2, \"0\");\n const ss = time.getSeconds().toString().padStart(2, \"0\");\n return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n if (input !== this.hourInputEl) {\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n +input.value >= 6 &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n }\n if (input.value.length === 2) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 2) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n const eventKey = event.key?.toLowerCase();\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n switch (eventKey) {\n case \":\":\n case \"arrowright\":\n event.preventDefault();\n this.moveToNextInput(input);\n break;\n case \"arrowleft\":\n event.preventDefault();\n this.moveToPreviousInput(input);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n this.preventInput(event, isInputPrevented);\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target;\n if (input) {\n this.autocompleteInput(input as HTMLInputElement);\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n let minValue = 0;\n let maxValue = 59;\n if (input === this.hourInputEl) {\n minValue = 0;\n maxValue = this.timePeriod === \"12\" ? 11 : 23;\n }\n let val = +input.value;\n if (event.key === \"ArrowUp\") {\n val = val + 1;\n if (val > maxValue) val = minValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n if (event.key === \"ArrowDown\") {\n val = val - 1;\n if (val < minValue) val = maxValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleTimeChange = (force: boolean) => {\n if (force || this.selectedTime !== this.previousSelectedTime) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (\n this.hour &&\n this.minute &&\n (this.isHHMMFormat() || this.second) &&\n this.invalidTimeText === \"\"\n ) {\n this.setValueAndEmitChange(this.selectedTime);\n this.notifyScreenReaderSelectedTime();\n } else if (\n !(this.selectedTime === null && this.previousSelectedTime === null) &&\n this.selectedTimeInfoEl\n ) {\n this.setValueAndEmitChange(null);\n this.selectedTimeInfoEl.textContent = \"\";\n }\n this.previousSelectedTime = this.selectedTime;\n if (!this.isTimeSetFromKeyboardEvent) {\n this.updateInputValues(this.hour, this.minute, this.second);\n }\n }\n };\n\n private setValueAndEmitChange = (value: Date | null) => {\n if (this.value !== value) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private emitIcChange = (t: Date | null) => {\n this.selectedTime = t;\n this.icChange.emit({\n value: t,\n timeObject: {\n hour: this.hour === \"\" ? null : this.hour,\n minute: this.minute === \"\" ? null : this.minute,\n second: this.second === \"\" ? null : this.second,\n },\n });\n };\n\n private setTime = (time?: string | Date | null) => {\n if (time === null || time === \"\" || time === undefined) {\n if (this.hour) this.hour = \"\";\n if (this.minute) this.minute = \"\";\n if (this.second) this.second = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleTimeChange(true);\n } else {\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,3}))?Z?$/\n );\n if (zuluMatch) {\n this.hour = zuluMatch[1];\n this.minute = zuluMatch[2];\n this.second = zuluMatch[3];\n } else {\n const parts = time.split(\":\");\n this.hour = parts[0] || \"\";\n this.minute = parts[1] || \"\";\n this.second = parts[2] || \"\";\n }\n } else if (time instanceof Date) {\n this.hour = time.getHours().toString().padStart(2, \"0\");\n this.minute = time.getMinutes().toString().padStart(2, \"0\");\n this.second = time.getSeconds().toString().padStart(2, \"0\");\n }\n }\n this.setValidationMessage();\n };\n\n private setAriaInvalid = (\n validHour: boolean,\n validMinute: boolean,\n validSecond: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n if (!validHour) {\n this.hourInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMinute) {\n this.minuteInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validSecond) {\n this.secondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!(validHour && validMinute && validSecond)) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.clearInput = true;\n if (this.hourInputEl) {\n this.hourInputEl.value = \"\";\n }\n if (this.minuteInputEl) {\n this.minuteInputEl.value = \"\";\n }\n if (!this.isHHMMFormat() && this.secondInputEl) {\n this.secondInputEl.value = \"\";\n }\n this.hour = \"\";\n this.minute = \"\";\n this.second = \"\";\n this.handleTimeChange(true);\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.isTimeSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.invalidTimeText = \"\";\n if (this.hourInputEl) {\n this.hourInputEl.focus();\n }\n };\n\n private notifyScreenReaderSelectedTime = () => {\n if (this.selectedTime && this.selectedTimeInfoEl) {\n if (this.isHHMMFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}`;\n } else {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getSeconds()\n .toString()\n .padStart(2, \"0\")}`;\n }\n }\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedTime });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(/(hour|minute|second)-input$/)\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedTime });\n };\n\n private handleFormReset = () => {\n this.setTime(this.initialValue);\n this.setValidationMessage();\n this.handleTimeChange(false);\n };\n\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\n }\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (inputValue.length === 1) {\n input.value = `0${inputValue}`;\n }\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToTime = (\n hour: string,\n minute: string,\n second: string\n ): Date | null => {\n if (\n !isEmptyString(hour) &&\n !isEmptyString(minute) &&\n (this.isHHMMFormat() || !isEmptyString(second))\n ) {\n const d = new Date();\n d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);\n return d;\n } else {\n return null;\n }\n };\n\n private setInputsInOrder = () => {\n this.inputsInOrder = [];\n const shadowInputs = this.el.shadowRoot?.querySelectorAll(\"input\");\n if (shadowInputs) {\n shadowInputs.forEach((input) => this.inputsInOrder.push(input));\n }\n };\n\n private updateInputValues = (\n hour: string,\n minute: string,\n second: string\n ) => {\n if (this.hourInputEl && this.minuteInputEl && this.secondInputEl) {\n this.hourInputEl.value = hour;\n this.minuteInputEl.value = minute;\n this.secondInputEl.value = second;\n }\n };\n\n private removeAriaLabelledBy = () => {\n this.inputCompContainerEl?.removeAttribute(this.ARIA_LABELLED_BY);\n };\n\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n if (this.disabled) {\n return;\n }\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidTimeText);\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedTime ? this.selectedTimeInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n this.inputCompContainerEl?.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n private getInputsInOrder = () => {\n const timeParts = this.timeFormat.split(\":\");\n return timeParts.map((part: string) => {\n switch (part.substring(0, 1)) {\n case \"H\":\n return (\n <input\n class=\"hour-input\"\n id=\"hour-input\"\n ref={(el) => (this.hourInputEl = el)}\n aria-label=\"hour\"\n placeholder=\"HH\"\n disabled={this.disabled}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventHourInput)\n }\n ></input>\n );\n case \"M\":\n return (\n <input\n id=\"minute-input\"\n class=\"minute-input\"\n ref={(el) => (this.minuteInputEl = el)}\n aria-label=\"minute\"\n placeholder=\"MM\"\n disabled={this.disabled}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMinuteInput)\n }\n ></input>\n );\n case \"S\":\n if (!this.isHHMMFormat()) {\n return (\n <input\n id=\"second-input\"\n class=\"second-input\"\n ref={(el) => (this.secondInputEl = el)}\n aria-label=\"second\"\n placeholder=\"SS\"\n disabled={this.disabled}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventSecondInput)\n }\n ></input>\n );\n }\n return null;\n default:\n return null;\n }\n });\n };\n\n private getDescOfInputsOrder = () => {\n return \"hour, minute, and second\";\n };\n\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n if (this.required) {\n inputDescriptors += \"required\";\n }\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n private notifyScreenReader = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n if (liveRegion) {\n liveRegion.textContent = `${input.value}, ${input.getAttribute(\n this.ARIA_LABEL\n )}`;\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidTime = this.isPastedStringTimeValid(pastedValue);\n this.setPastedValueAndValidation(isValidTime, pastedValue, event);\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.isTimeSetFromKeyboardEvent = true;\n const relatedTarget = ev.relatedTarget as HTMLElement | null;\n if (relatedTarget?.id === \"clock-button\") {\n this.removeLabelledBy = false;\n return;\n }\n if (relatedTarget?.id.match(/(minute|second)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n this.removeLabelledBy = true;\n };\n\n private handleClockFocus = () => {\n this.clockFocused = true;\n };\n\n private handleClockBlur = () => {\n this.clockFocused = false;\n };\n\n private isPastedStringTimeValid = (value: string): string | false => {\n if (this.isHHMMFormat()) {\n if (/^\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n } else {\n if (/^\\d{2}:\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n }\n return false;\n };\n\n private setPastedValueAndValidation = (\n isValidTime: string | false,\n pastedValue: string,\n event: ClipboardEvent\n ) => {\n if (isValidTime) {\n const timeParts = isValidTime.split(\":\");\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n const timeValue = timeParts[index] || \"\";\n input.value = timeValue.slice(0, 2);\n this.setInputValue(input);\n this.autocompleteInput(input);\n });\n if (this.isHHMMFormat() && this.second !== \"\") {\n this.second = \"\";\n }\n } else {\n const pasted = pastedValue.trim();\n if ((pasted.length === 1 || pasted.length === 2) && isNumeric(pasted)) {\n this.setInputPasteValue(event.target, pasted);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.invalidTimeText = `Please paste a valid ${(\n event.target as HTMLInputElement\n ).getAttribute(this.ARIA_LABEL)}`;\n this.validationStatus = IcInformationStatus.Error;\n }\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showClockButton,\n size,\n theme,\n } = this;\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidTimeText)\n ? IcInformationStatus.Error\n : \"\";\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToTime(this.hour, this.minute, this.second),\n this.disabled\n );\n const showDivider = !!(\n showClearButton &&\n !(\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second)\n )\n );\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-input-disabled`]: disabled,\n [`ic-time-input-${size}`]: true,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"time-inputs\">\n {[\n this.getInputsInOrder()[0],\n \":\",\n this.getInputsInOrder()[1],\n !this.isHHMMFormat()\n ? [\":\", this.getInputsInOrder()[2]]\n : null,\n ]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showClockButton && (\n <div class=\"show-clock-button-wrapper\">\n <div class={{ divider: showDivider, [size]: true }}></div>\n <ic-button\n id=\"clock-button\"\n aria-label=\"Display clock\"\n aria-haspopup=\"dialog\"\n class=\"clock-button\"\n disabled={this.disabled}\n innerHTML={Clock}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleClockFocus}\n onBlur={this.handleClockBlur}\n theme={this.clockFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedTimeInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedTimeInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n {(hasCustomValidation || !isEmptyString(this.invalidTimeText)) && (\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidTimeText\n }\n for={inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["icTimeInputCss","IcTimeInputStyle0","inputIds","TimeInput","constructor","hostRef","this","DEFAULT_TIME_FORMAT","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","inputsInOrder","isValidHour","isValidMinute","isValidSecond","isValidTime","isTimeSetFromKeyboardEvent","previousSelectedTime","selectedTime","externalSetTime","clearInput","maxTime","minTime","clockFocused","clearButtonFocused","removeLabelledBy","hour","minute","second","disabled","disableTimes","emitTimePartChange","hideHelperText","hideLabel","inputId","invalidTimeMessage","max","min","name","required","showClearButton","showClockButton","size","theme","timeFormat","timePeriod","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","parseTime","Date","parts","split","length","d","setHours","isHHMMFormat","isKeyboardOrEvent","event","Object","prototype","toString","call","setTimeValidity","minHour","maxHour","isEmptyString","setInputValue","clear","newValue","hourInputEl","minuteInputEl","secondInputEl","setValidationMessage","setPreventInput","isPrevented","preventHourInput","preventMinuteInput","preventSecondInput","outOfBoundsMsg","isDisabledTime","convertToTime","getHours","getMinutes","getSeconds","Array","isArray","some","t","start","end","parsed","formatTime","forEach","setAttribute","removeAttribute","invalidTimeText","time","hh","padStart","mm","ss","handleInput","inputEvent","target","inputType","preventAutoFormatting","notifyScreenReader","moveToNextInput","setFitToValueStyling","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","moveToPreviousInput","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","minValue","maxValue","val","handleTimeChange","force","setValueAndEmitChange","notifyScreenReaderSelectedTime","selectedTimeInfoEl","textContent","updateInputValues","emitIcChange","icChange","emit","timeObject","setTime","undefined","remove","zuluMatch","match","setAriaInvalid","validHour","validMinute","validSecond","_b","_c","handleClear","focus","handleHostBlur","icBlur","handleHostFocus","el","shadowRoot","activeElement","id","icFocus","handleFormReset","selectedString","substring","selectionStart","selectionEnd","currentInput","findIndex","inputValue","setInputsInOrder","shadowInputs","querySelectorAll","push","removeAriaLabelledBy","inputCompContainerEl","setAriaLabelledBy","getAttribute","labelEl","querySelector","labelId","hasValidation","labelledBy","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedTimeInfoId","assistiveHintId","_d","getInputsInOrder","timeParts","map","part","h","class","ref","placeholder","inputmode","pattern","onPaste","handlePaste","onKeyDown","getDescOfInputsOrder","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","liveRegion","clipboardData","getData","isPastedStringTimeValid","setPastedValueAndValidation","handleClearFocus","handleClearBlur","ev","relatedTarget","handleClockFocus","handleClockBlur","replace","isoMatch","index","timeValue","slice","pasted","trim","isNumeric","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchMaxHandler","watchMinHandler","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","getTime","triggerIcChange","render","hasCustomValidation","assistiveHint","renderHiddenInput","showDivider","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Clock","status","message"],"sources":["src/components/ic-time-input/ic-time-input.css?tag=ic-time-input&encapsulation=shadow","src/components/ic-time-input/ic-time-input.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --input-bg-color: var(--ic-time-picker-field-background);\n --ic-input-label-text-color: var(--ic-time-picker-label);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle);\n --border-color: var(--ic-time-picker-time-field-border-default);\n --border-color-disabled: var(--ic-time-picker-border-disabled);\n --border-color-hover: var(--ic-time-picker-time-field-border-hover);\n --border-color-pressed: var(--ic-time-picker-time-field-border-pressed);\n --border-error-color: var(--ic-time-picker-border-error);\n --border-error-color-hover: var(--ic-time-picker-border-error-hover);\n --border-error-color-pressed: var(--ic-time-picker-border-error-pressed);\n --border-success-color: var(--ic-time-picker-border-success);\n --border-success-color-hover: var(--ic-time-picker-border-success-hover);\n --border-success-color-pressed: var(--ic-time-picker-border-success-pressed);\n --border-warning-color: var(--ic-time-picker-border-warning);\n --border-warning-color-hover: var(--ic-time-picker-border-warning-hover);\n --border-warning-color-pressed: var(--ic-time-picker-border-warning-pressed);\n --input-width: calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs));\n}\n\n:host(.ic-time-input-disabled) {\n --ic-input-label-text-color: var(--ic-time-picker-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle-disabled);\n}\n\n:host(.ic-time-input-disabled) input {\n color: var(--ic-time-picker-time-text-disabled);\n}\n\n:host(.ic-time-input-large) {\n --input-width: calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n );\n}\n\n:host(.ic-time-input-small) {\n --input-width: calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n );\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-time-picker-time-text-default);\n caret-color: var(--ic-time-picker-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-time-picker-time-text-default) !important;\n}\n\ninput::placeholder {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.time-inputs {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\n.hour-input {\n width: 1.438rem;\n}\n\n.minute-input {\n width: 1.813rem;\n}\n\n.second-input,\n.second-input.fit-to-value {\n width: 2.313rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-clock-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.clock-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active,\n.clock-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.clock-button:focus,\n.clock-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active *,\n.clock-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-time-picker-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-time-picker-status-text);\n --ic-input-validation-error: var(--ic-time-picker-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-time-picker-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-time-picker-icon-success);\n}\n\n@media (forced-colors: active) {\n .clear-button svg {\n color: currentColor;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n IcTimeFormat,\n} from \"../../utils/types\";\nimport {\n isEmptyString,\n isNumeric,\n addFormResetListener,\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Clock from \"../../assets/clock.svg\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the time input.\n */\n@Component({\n tag: \"ic-time-input\",\n styleUrl: \"ic-time-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TimeInput {\n private DEFAULT_TIME_FORMAT: IcTimeFormat = \"HH:MM:SS\";\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private hourInputEl?: HTMLInputElement;\n private minuteInputEl?: HTMLInputElement;\n private secondInputEl?: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private inputsInOrder: HTMLInputElement[] = [];\n private isValidHour: boolean = true;\n private isValidMinute: boolean = true;\n private isValidSecond: boolean = true;\n private isValidTime: boolean = true;\n private isTimeSetFromKeyboardEvent: boolean = false;\n private preventAutoFormatting: boolean;\n private preventHourInput: boolean;\n private preventMinuteInput: boolean;\n private preventSecondInput: boolean;\n private previousSelectedTime: Date | null = null;\n private selectedTime: Date | null = null;\n private selectedTimeInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedTimeInfoId: string;\n private externalSetTime: boolean = false;\n private clearInput: boolean = false;\n private maxTime: Date | null = null;\n private minTime: Date | null = null;\n\n @Element() el: HTMLIcTimeInputElement;\n\n @State() invalidTimeText: string;\n @State() clockFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n @State() hour: string = \"\";\n @State() minute: string = \"\";\n @State() second: string = \"\";\n\n @Watch(\"hour\")\n @Watch(\"minute\")\n @Watch(\"second\")\n watchInputHandler(): void {\n if (\n this.emitTimePartChange &&\n !this.externalSetTime &&\n !this.clearInput &&\n !(this.hour && this.minute && this.second) &&\n this.selectedTime === null\n ) {\n this.emitIcChange(this.selectedTime);\n }\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * An array of times that will be disabled in the time input. 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 * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitTimePartChange?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `timeFormat` value.\n */\n @Prop({ mutable: true }) helperText: string | null;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId: string = `ic-time-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid time is entered.\n */\n @Prop() invalidTimeMessage: string = \"Please enter a valid time.\";\n\n /**\n * The label for the time input.\n */\n @Prop() label!: string;\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 = this.parseTime(this.max);\n }\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 = this.parseTime(this.min);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n @Watch(\"required\")\n watchRequiredHandler(): void {\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot?.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * If `true`, a button which clears the time input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * @internal If `true`, a button which displays the clock view when clicked will be displayed.\n */\n @Prop() showClockButton?: boolean = false;\n\n /**\n * The size of the time input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the time picker to the dark or light theme colors. \"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: IcTimeFormat = 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 input. 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\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in time validation.\n */\n @Prop({ mutable: true }) validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in time validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the clock is opened.\n */\n @Event() clockButtonClicked: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n };\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.defaultHelperText = `Use format ${this.timeFormat}`;\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n if (this.value) {\n this.externalSetTime = true;\n this.setTime(this.value);\n }\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedTimeInfoId = `${this.inputId}-selected-time-info`;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Time Input\"\n );\n if (this.value) {\n this.updateInputValues(this.hour, this.minute, this.second);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond\n );\n if (this.value) {\n this.notifyScreenReaderSelectedTime();\n }\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n if (!this.isTimeSetFromKeyboardEvent) this.setTime(this.value);\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond\n );\n this.handleTimeChange(false);\n this.isTimeSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getTime(): Promise<Date | null> {\n return this.selectedTime;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(t: Date | null): Promise<void> {\n this.externalSetTime = true;\n this.setTime(t);\n this.emitIcChange(t);\n this.externalSetTime = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private parseTime = (value: string | Date): Date | null => {\n if (!value) return null;\n if (value instanceof Date) return value;\n const parts = value.split(\":\");\n if (parts.length >= 2) {\n const d = new Date();\n d.setHours(+parts[0], +parts[1], parts[2] ? +parts[2] : 0, 0);\n return d;\n }\n return null;\n };\n\n private isHHMMFormat = () => this.timeFormat === \"HH:MM\";\n\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) === \"[object KeyboardEvent]\"\n );\n };\n\n private setTimeValidity = () => {\n const minHour = 0;\n const maxHour = this.timePeriod === \"12\" ? 11 : 23;\n if (!isEmptyString(this.hour)) {\n this.isValidHour = +this.hour >= minHour && +this.hour <= maxHour;\n } else {\n this.isValidHour = true;\n }\n if (!isEmptyString(this.minute)) {\n this.isValidMinute = +this.minute >= 0 && +this.minute <= 59;\n } else {\n this.isValidMinute = true;\n }\n if (!this.isHHMMFormat()) {\n if (!isEmptyString(this.second)) {\n this.isValidSecond = +this.second >= 0 && +this.second <= 59;\n } else {\n this.isValidSecond = true;\n }\n } else {\n this.isValidSecond = true;\n }\n };\n\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n if (input === this.hourInputEl) {\n this.hour = newValue;\n } else if (input === this.minuteInputEl) {\n this.minute = newValue;\n } else if (input === this.secondInputEl && !this.isHHMMFormat()) {\n this.second = newValue;\n }\n this.setValidationMessage();\n };\n\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n if (input === this.hourInputEl) {\n this.preventHourInput = isPrevented;\n } else if (input === this.minuteInputEl) {\n this.preventMinuteInput = isPrevented;\n } else if (input === this.secondInputEl) {\n this.preventSecondInput = isPrevented;\n }\n };\n\n private setValidationMessage = () => {\n this.maxTime = this.parseTime(this.max);\n this.minTime = this.parseTime(this.min);\n this.setTimeValidity();\n let outOfBoundsMsg = \"\";\n let isDisabledTime = false;\n if (\n !isEmptyString(this.hour) &&\n !isEmptyString(this.minute) &&\n (this.isHHMMFormat() || !isEmptyString(this.second))\n ) {\n this.selectedTime = this.convertToTime(\n this.hour,\n this.minute,\n this.isHHMMFormat() ? \"00\" : this.second\n );\n this.isValidTime =\n !!this.selectedTime &&\n this.selectedTime.getHours() == +this.hour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() || this.selectedTime.getSeconds() == +this.second);\n\n if (\n this.selectedTime &&\n Array.isArray(this.disableTimes) &&\n this.disableTimes.length > 0\n ) {\n isDisabledTime = this.disableTimes.some((t) => {\n if (\n typeof t === \"object\" &&\n t !== null &&\n \"start\" in t &&\n \"end\" in t\n ) {\n const start = this.parseTime(t.start);\n const end = this.parseTime(t.end);\n if (start && end) {\n return this.selectedTime! >= start && this.selectedTime! <= end;\n }\n return false;\n }\n const parsed = this.parseTime(t as string | Date);\n return (\n parsed &&\n parsed.getHours() === this.selectedTime!.getHours() &&\n parsed.getMinutes() === this.selectedTime!.getMinutes() &&\n parsed.getSeconds() === this.selectedTime!.getSeconds()\n );\n });\n if (isDisabledTime) {\n this.isValidTime = false;\n outOfBoundsMsg = this.invalidTimeMessage;\n }\n }\n\n if (this.selectedTime && !isDisabledTime) {\n if (this.minTime && this.selectedTime < this.minTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time after ${this.formatTime(\n this.minTime\n )}.`;\n } else if (this.maxTime && this.selectedTime > this.maxTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time before ${this.formatTime(\n this.maxTime\n )}.`;\n }\n }\n if (!this.isValidTime) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedTime = null;\n }\n if (\n !(\n this.isValidHour &&\n this.isValidMinute &&\n this.isValidSecond &&\n this.isValidTime\n )\n ) {\n this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;\n } else {\n this.invalidTimeText = \"\";\n }\n };\n\n private formatTime = (time: Date): string => {\n const hh = time.getHours().toString().padStart(2, \"0\");\n const mm = time.getMinutes().toString().padStart(2, \"0\");\n const ss = time.getSeconds().toString().padStart(2, \"0\");\n return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n if (input !== this.hourInputEl) {\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n +input.value >= 6 &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n }\n if (input.value.length === 2) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 2) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n const eventKey = event.key?.toLowerCase();\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n switch (eventKey) {\n case \":\":\n case \"arrowright\":\n event.preventDefault();\n this.moveToNextInput(input);\n break;\n case \"arrowleft\":\n event.preventDefault();\n this.moveToPreviousInput(input);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n this.preventInput(event, isInputPrevented);\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target;\n if (input) {\n this.autocompleteInput(input as HTMLInputElement);\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n let minValue = 0;\n let maxValue = 59;\n if (input === this.hourInputEl) {\n minValue = 0;\n maxValue = this.timePeriod === \"12\" ? 11 : 23;\n }\n let val = +input.value;\n if (event.key === \"ArrowUp\") {\n val = val + 1;\n if (val > maxValue) val = minValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n if (event.key === \"ArrowDown\") {\n val = val - 1;\n if (val < minValue) val = maxValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleTimeChange = (force: boolean) => {\n if (force || this.selectedTime !== this.previousSelectedTime) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (\n this.hour &&\n this.minute &&\n (this.isHHMMFormat() || this.second) &&\n this.invalidTimeText === \"\"\n ) {\n this.setValueAndEmitChange(this.selectedTime);\n this.notifyScreenReaderSelectedTime();\n } else if (\n !(this.selectedTime === null && this.previousSelectedTime === null) &&\n this.selectedTimeInfoEl\n ) {\n this.setValueAndEmitChange(null);\n this.selectedTimeInfoEl.textContent = \"\";\n }\n this.previousSelectedTime = this.selectedTime;\n if (!this.isTimeSetFromKeyboardEvent) {\n this.updateInputValues(this.hour, this.minute, this.second);\n }\n }\n };\n\n private setValueAndEmitChange = (value: Date | null) => {\n if (this.value !== value) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private emitIcChange = (t: Date | null) => {\n this.selectedTime = t;\n this.icChange.emit({\n value: t,\n timeObject: {\n hour: this.hour === \"\" ? null : this.hour,\n minute: this.minute === \"\" ? null : this.minute,\n second: this.second === \"\" ? null : this.second,\n },\n });\n };\n\n private setTime = (time?: string | Date | null) => {\n if (time === null || time === \"\" || time === undefined) {\n if (this.hour) this.hour = \"\";\n if (this.minute) this.minute = \"\";\n if (this.second) this.second = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleTimeChange(true);\n } else {\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,3}))?Z?$/\n );\n if (zuluMatch) {\n this.hour = zuluMatch[1];\n this.minute = zuluMatch[2];\n this.second = zuluMatch[3];\n } else {\n const parts = time.split(\":\");\n this.hour = parts[0] || \"\";\n this.minute = parts[1] || \"\";\n this.second = parts[2] || \"\";\n }\n } else if (time instanceof Date) {\n this.hour = time.getHours().toString().padStart(2, \"0\");\n this.minute = time.getMinutes().toString().padStart(2, \"0\");\n this.second = time.getSeconds().toString().padStart(2, \"0\");\n }\n }\n this.setValidationMessage();\n };\n\n private setAriaInvalid = (\n validHour: boolean,\n validMinute: boolean,\n validSecond: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n if (!validHour) {\n this.hourInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMinute) {\n this.minuteInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validSecond) {\n this.secondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!(validHour && validMinute && validSecond)) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.clearInput = true;\n if (this.hourInputEl) {\n this.hourInputEl.value = \"\";\n }\n if (this.minuteInputEl) {\n this.minuteInputEl.value = \"\";\n }\n if (!this.isHHMMFormat() && this.secondInputEl) {\n this.secondInputEl.value = \"\";\n }\n this.hour = \"\";\n this.minute = \"\";\n this.second = \"\";\n this.handleTimeChange(true);\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.isTimeSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.invalidTimeText = \"\";\n if (this.hourInputEl) {\n this.hourInputEl.focus();\n }\n };\n\n private notifyScreenReaderSelectedTime = () => {\n if (this.selectedTime && this.selectedTimeInfoEl) {\n if (this.isHHMMFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}`;\n } else {\n this.selectedTimeInfoEl.textContent = `Selected time: ${this.selectedTime\n .getHours()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}:${this.selectedTime\n .getSeconds()\n .toString()\n .padStart(2, \"0\")}`;\n }\n }\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedTime });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(/(hour|minute|second)-input$/)\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedTime });\n };\n\n private handleFormReset = () => {\n this.setTime(this.initialValue);\n this.setValidationMessage();\n this.handleTimeChange(false);\n };\n\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\n }\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (inputValue.length === 1) {\n input.value = `0${inputValue}`;\n }\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToTime = (\n hour: string,\n minute: string,\n second: string\n ): Date | null => {\n if (\n !isEmptyString(hour) &&\n !isEmptyString(minute) &&\n (this.isHHMMFormat() || !isEmptyString(second))\n ) {\n const d = new Date();\n d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);\n return d;\n } else {\n return null;\n }\n };\n\n private setInputsInOrder = () => {\n this.inputsInOrder = [];\n const shadowInputs = this.el.shadowRoot?.querySelectorAll(\"input\");\n if (shadowInputs) {\n shadowInputs.forEach((input) => this.inputsInOrder.push(input));\n }\n };\n\n private updateInputValues = (\n hour: string,\n minute: string,\n second: string\n ) => {\n if (this.hourInputEl && this.minuteInputEl && this.secondInputEl) {\n this.hourInputEl.value = hour;\n this.minuteInputEl.value = minute;\n this.secondInputEl.value = second;\n }\n };\n\n private removeAriaLabelledBy = () => {\n this.inputCompContainerEl?.removeAttribute(this.ARIA_LABELLED_BY);\n };\n\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n if (this.disabled) {\n return;\n }\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidTimeText);\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedTime ? this.selectedTimeInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n this.inputCompContainerEl?.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n private getInputsInOrder = () => {\n const timeParts = this.timeFormat.split(\":\");\n return timeParts.map((part: string) => {\n switch (part.substring(0, 1)) {\n case \"H\":\n return (\n <input\n class=\"hour-input\"\n id=\"hour-input\"\n ref={(el) => (this.hourInputEl = el)}\n aria-label=\"hour\"\n placeholder=\"HH\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventHourInput)\n }\n ></input>\n );\n case \"M\":\n return (\n <input\n id=\"minute-input\"\n class=\"minute-input\"\n ref={(el) => (this.minuteInputEl = el)}\n aria-label=\"minute\"\n placeholder=\"MM\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMinuteInput)\n }\n ></input>\n );\n case \"S\":\n if (!this.isHHMMFormat()) {\n return (\n <input\n id=\"second-input\"\n class=\"second-input\"\n ref={(el) => (this.secondInputEl = el)}\n aria-label=\"second\"\n placeholder=\"SS\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventSecondInput)\n }\n ></input>\n );\n }\n return null;\n default:\n return null;\n }\n });\n };\n\n private getDescOfInputsOrder = () => {\n return \"hour, minute, and second\";\n };\n\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n if (this.required) {\n inputDescriptors += \"required\";\n }\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n private notifyScreenReader = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n if (liveRegion) {\n liveRegion.textContent = `${input.value}, ${input.getAttribute(\n this.ARIA_LABEL\n )}`;\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidTime = this.isPastedStringTimeValid(pastedValue);\n this.setPastedValueAndValidation(isValidTime, pastedValue, event);\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.isTimeSetFromKeyboardEvent = true;\n const relatedTarget = ev.relatedTarget as HTMLElement | null;\n if (relatedTarget?.id === \"clock-button\") {\n this.removeLabelledBy = false;\n return;\n }\n if (relatedTarget?.id.match(/(minute|second)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n this.removeLabelledBy = true;\n };\n\n private handleClockFocus = () => {\n this.clockFocused = true;\n };\n\n private handleClockBlur = () => {\n this.clockFocused = false;\n };\n\n private isPastedStringTimeValid = (value: string): string | false => {\n if (this.isHHMMFormat()) {\n if (/^\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n } else {\n if (/^\\d{2}:\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n }\n return false;\n };\n\n private setPastedValueAndValidation = (\n isValidTime: string | false,\n pastedValue: string,\n event: ClipboardEvent\n ) => {\n if (isValidTime) {\n const timeParts = isValidTime.split(\":\");\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n const timeValue = timeParts[index] || \"\";\n input.value = timeValue.slice(0, 2);\n this.setInputValue(input);\n this.autocompleteInput(input);\n });\n if (this.isHHMMFormat() && this.second !== \"\") {\n this.second = \"\";\n }\n } else {\n const pasted = pastedValue.trim();\n if ((pasted.length === 1 || pasted.length === 2) && isNumeric(pasted)) {\n this.setInputPasteValue(event.target, pasted);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.invalidTimeText = `Please paste a valid ${(\n event.target as HTMLInputElement\n ).getAttribute(this.ARIA_LABEL)}`;\n this.validationStatus = IcInformationStatus.Error;\n }\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showClockButton,\n size,\n theme,\n } = this;\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidTimeText)\n ? IcInformationStatus.Error\n : \"\";\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToTime(this.hour, this.minute, this.second),\n this.disabled\n );\n const showDivider = !!(\n showClearButton &&\n !(\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second)\n )\n );\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-input-disabled`]: disabled,\n [`ic-time-input-${size}`]: true,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"time-inputs\">\n {[\n this.getInputsInOrder()[0],\n \":\",\n this.getInputsInOrder()[1],\n !this.isHHMMFormat()\n ? [\":\", this.getInputsInOrder()[2]]\n : null,\n ]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showClockButton && (\n <div class=\"show-clock-button-wrapper\">\n <div class={{ divider: showDivider, [size]: true }}></div>\n <ic-button\n id=\"clock-button\"\n aria-label=\"Display clock\"\n aria-haspopup=\"dialog\"\n class=\"clock-button\"\n disabled={this.disabled}\n innerHTML={Clock}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleClockFocus}\n onBlur={this.handleClockBlur}\n theme={this.clockFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedTimeInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedTimeInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n {(hasCustomValidation || !isEmptyString(this.invalidTimeText)) && (\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidTimeText\n }\n for={inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"wfAAA,MAAMA,EAAiB,o4NACvB,MAAAC,EAAeD,ECiCf,IAAIE,EAAW,E,MAYFC,EAAS,MAPtB,WAAAC,CAAAC,G,oKAQUC,KAAAC,oBAAoC,WACpCD,KAAAE,aAAe,eACfF,KAAAG,WAAa,aACbH,KAAAI,iBAAmB,kBAMnBJ,KAAAK,oBAAsB,iBACtBL,KAAAM,aAAe,eACfN,KAAAO,aAAeP,KAAKQ,MAEpBR,KAAAS,cAAoC,GACpCT,KAAAU,YAAuB,KACvBV,KAAAW,cAAyB,KACzBX,KAAAY,cAAyB,KACzBZ,KAAAa,YAAuB,KACvBb,KAAAc,2BAAsC,MAKtCd,KAAAe,qBAAoC,KACpCf,KAAAgB,aAA4B,KAI5BhB,KAAAiB,gBAA2B,MAC3BjB,KAAAkB,WAAsB,MACtBlB,KAAAmB,QAAuB,KACvBnB,KAAAoB,QAAuB,KAKtBpB,KAAAqB,aAAwB,MACxBrB,KAAAsB,mBAA8B,MAC9BtB,KAAAuB,iBAA4B,MAC5BvB,KAAAwB,KAAe,GACfxB,KAAAyB,OAAiB,GACjBzB,KAAA0B,OAAiB,GAoBlB1B,KAAA2B,SAAoB,MASpB3B,KAAA4B,aAAyC,GAKzC5B,KAAA6B,mBAA+B,MAU/B7B,KAAA8B,eAA0B,MAK1B9B,KAAA+B,UAAsB,MAKtB/B,KAAAgC,QAAkB,iBAAiBpC,MAKnCI,KAAAiC,mBAA6B,6BAU7BjC,KAAAkC,IAAqB,GASrBlC,KAAAmC,IAAqB,GASrBnC,KAAAoC,KAAepC,KAAKgC,QAKpBhC,KAAAqC,SAAoB,MAqBpBrC,KAAAsC,gBAA4B,KAK5BtC,KAAAuC,gBAA4B,MAK5BvC,KAAAwC,KAAgB,SAKhBxC,KAAAyC,MAAsB,UAKtBzC,KAAA0C,WAA2B1C,KAAKC,oBAKhCD,KAAA2C,WAA0B,KAKT3C,KAAAQ,MAA2C,GAK3CR,KAAA4C,iBAA+C,GAKhE5C,KAAA6C,eAA0B,GAqH1B7C,KAAA8C,mBAAqB,CAC3BC,EACAC,KAEA,GAAID,EAAO,CACT,MAAME,EAAUF,EAChBE,EAAQzC,MAAQwC,EAChBC,EAAQC,UAAUC,IAAInD,KAAKM,a,GAIvBN,KAAAoD,UAAa5C,IACnB,IAAKA,EAAO,OAAO,KACnB,GAAIA,aAAiB6C,KAAM,OAAO7C,EAClC,MAAM8C,EAAQ9C,EAAM+C,MAAM,KAC1B,GAAID,EAAME,QAAU,EAAG,CACrB,MAAMC,EAAI,IAAIJ,KACdI,EAAEC,UAAUJ,EAAM,IAAKA,EAAM,GAAIA,EAAM,IAAMA,EAAM,GAAK,EAAG,GAC3D,OAAOG,C,CAET,OAAO,IAAI,EAGLzD,KAAA2D,aAAe,IAAM3D,KAAK0C,aAAe,QAEzC1C,KAAA4D,kBAAqBC,GAEzBC,OAAOC,UAAUC,SAASC,KAAKJ,KAAW7D,KAAKK,qBAC/CyD,OAAOC,UAAUC,SAASC,KAAKJ,KAAW,yBAItC7D,KAAAkE,gBAAkB,KACxB,MAAMC,EAAU,EAChB,MAAMC,EAAUpE,KAAK2C,aAAe,KAAO,GAAK,GAChD,IAAK0B,EAAcrE,KAAKwB,MAAO,CAC7BxB,KAAKU,aAAeV,KAAKwB,MAAQ2C,IAAYnE,KAAKwB,MAAQ4C,C,KACrD,CACLpE,KAAKU,YAAc,I,CAErB,IAAK2D,EAAcrE,KAAKyB,QAAS,CAC/BzB,KAAKW,eAAiBX,KAAKyB,QAAU,IAAMzB,KAAKyB,QAAU,E,KACrD,CACLzB,KAAKW,cAAgB,I,CAEvB,IAAKX,KAAK2D,eAAgB,CACxB,IAAKU,EAAcrE,KAAK0B,QAAS,CAC/B1B,KAAKY,eAAiBZ,KAAK0B,QAAU,IAAM1B,KAAK0B,QAAU,E,KACrD,CACL1B,KAAKY,cAAgB,I,MAElB,CACLZ,KAAKY,cAAgB,I,GAIjBZ,KAAAsE,cAAgB,CAACvB,EAAyBwB,EAAQ,SACxD,MAAMC,EAAWD,EAAQ,GAAKxB,EAAMvC,MACpC,GAAIuC,IAAU/C,KAAKyE,YAAa,CAC9BzE,KAAKwB,KAAOgD,C,MACP,GAAIzB,IAAU/C,KAAK0E,cAAe,CACvC1E,KAAKyB,OAAS+C,C,MACT,GAAIzB,IAAU/C,KAAK2E,gBAAkB3E,KAAK2D,eAAgB,CAC/D3D,KAAK0B,OAAS8C,C,CAEhBxE,KAAK4E,sBAAsB,EAGrB5E,KAAA6E,gBAAkB,CAAC9B,EAAyB+B,KAClD,GAAI/B,IAAU/C,KAAKyE,YAAa,CAC9BzE,KAAK+E,iBAAmBD,C,MACnB,GAAI/B,IAAU/C,KAAK0E,cAAe,CACvC1E,KAAKgF,mBAAqBF,C,MACrB,GAAI/B,IAAU/C,KAAK2E,cAAe,CACvC3E,KAAKiF,mBAAqBH,C,GAItB9E,KAAA4E,qBAAuB,KAC7B5E,KAAKmB,QAAUnB,KAAKoD,UAAUpD,KAAKkC,KACnClC,KAAKoB,QAAUpB,KAAKoD,UAAUpD,KAAKmC,KACnCnC,KAAKkE,kBACL,IAAIgB,EAAiB,GACrB,IAAIC,EAAiB,MACrB,IACGd,EAAcrE,KAAKwB,QACnB6C,EAAcrE,KAAKyB,UACnBzB,KAAK2D,iBAAmBU,EAAcrE,KAAK0B,SAC5C,CACA1B,KAAKgB,aAAehB,KAAKoF,cACvBpF,KAAKwB,KACLxB,KAAKyB,OACLzB,KAAK2D,eAAiB,KAAO3D,KAAK0B,QAEpC1B,KAAKa,cACDb,KAAKgB,cACPhB,KAAKgB,aAAaqE,aAAerF,KAAKwB,MACtCxB,KAAKgB,aAAasE,eAAiBtF,KAAKyB,SACvCzB,KAAK2D,gBAAkB3D,KAAKgB,aAAauE,eAAiBvF,KAAK0B,QAElE,GACE1B,KAAKgB,cACLwE,MAAMC,QAAQzF,KAAK4B,eACnB5B,KAAK4B,aAAa4B,OAAS,EAC3B,CACA2B,EAAiBnF,KAAK4B,aAAa8D,MAAMC,IACvC,UACSA,IAAM,UACbA,IAAM,MACN,UAAWA,GACX,QAASA,EACT,CACA,MAAMC,EAAQ5F,KAAKoD,UAAUuC,EAAEC,OAC/B,MAAMC,EAAM7F,KAAKoD,UAAUuC,EAAEE,KAC7B,GAAID,GAASC,EAAK,CAChB,OAAO7F,KAAKgB,cAAiB4E,GAAS5F,KAAKgB,cAAiB6E,C,CAE9D,OAAO,K,CAET,MAAMC,EAAS9F,KAAKoD,UAAUuC,GAC9B,OACEG,GACAA,EAAOT,aAAerF,KAAKgB,aAAcqE,YACzCS,EAAOR,eAAiBtF,KAAKgB,aAAcsE,cAC3CQ,EAAOP,eAAiBvF,KAAKgB,aAAcuE,YAAY,IAG3D,GAAIJ,EAAgB,CAClBnF,KAAKa,YAAc,MACnBqE,EAAiBlF,KAAKiC,kB,EAI1B,GAAIjC,KAAKgB,eAAiBmE,EAAgB,CACxC,GAAInF,KAAKoB,SAAWpB,KAAKgB,aAAehB,KAAKoB,QAAS,CACpDpB,KAAKa,YAAc,MACnBqE,EAAiB,6BAA6BlF,KAAK+F,WACjD/F,KAAKoB,W,MAEF,GAAIpB,KAAKmB,SAAWnB,KAAKgB,aAAehB,KAAKmB,QAAS,CAC3DnB,KAAKa,YAAc,MACnBqE,EAAiB,8BAA8BlF,KAAK+F,WAClD/F,KAAKmB,W,EAIX,IAAKnB,KAAKa,YAAa,CACrBb,KAAKS,cAAcuF,SAASjD,GAC1BA,EAAMkD,aAAajG,KAAKE,aAAc,S,KAEnC,CACLF,KAAKS,cAAcuF,SAASjD,GAC1BA,EAAMmD,gBAAgBlG,KAAKE,e,MAG1B,CACLF,KAAKgB,aAAe,I,CAEtB,KAEIhB,KAAKU,aACLV,KAAKW,eACLX,KAAKY,eACLZ,KAAKa,aAEP,CACAb,KAAKmG,gBAAkBjB,GAAkBlF,KAAKiC,kB,KACzC,CACLjC,KAAKmG,gBAAkB,E,GAInBnG,KAAA+F,WAAcK,IACpB,MAAMC,EAAKD,EAAKf,WAAWrB,WAAWsC,SAAS,EAAG,KAClD,MAAMC,EAAKH,EAAKd,aAAatB,WAAWsC,SAAS,EAAG,KACpD,MAAME,EAAKJ,EAAKb,aAAavB,WAAWsC,SAAS,EAAG,KACpD,OAAOtG,KAAK2D,eAAiB,GAAG0C,KAAME,IAAO,GAAGF,KAAME,KAAMC,GAAI,EAG1DxG,KAAAyG,YAAe5C,IACrB,MAAM6C,EAAa7C,EACnB,MAAMd,EAAQc,EAAM8C,OACpB,GAAI5D,IAAU/C,KAAKyE,YAAa,CAC9B,GACEiC,EAAWE,YAAc,0BACxB5G,KAAK6G,sBACN,CACA,GACE9D,EAAMvC,MAAMgD,SAAW,IACtBT,EAAMvC,OAAS,IACfuC,EAAMvC,OAAS,EAChB,CACAR,KAAKsE,cAAcvB,GACnB/C,KAAK8G,mBAAmB/D,GACxB/C,KAAK+G,gBAAgBhE,E,CAEvB,GAAIA,EAAMvC,MAAMgD,SAAW,EAAG,CAC5BxD,KAAKsE,cAAcvB,GACnB/C,KAAK6E,gBAAgB9B,EAAO,MAC5B/C,KAAK8G,mBAAmB/D,GACxB/C,KAAK+G,gBAAgBhE,E,KAChB,CACL/C,KAAK6E,gBAAgB9B,EAAO,M,OAEzB,GAAI/C,KAAK6G,sBAAuB,CACrC,GAAI9D,EAAMvC,MAAMgD,SAAW,IAAMxD,KAAK4D,kBAAkBC,GAAQ,CAC9D7D,KAAKsE,cAAcvB,GACnB/C,KAAK6E,gBAAgB9B,EAAO,MAC5B/C,KAAK+G,gBAAgBhE,E,KAChB,CACL/C,KAAKsE,cAAcvB,E,EAGvB,GAAIA,EAAMvC,MAAMgD,SAAW,EAAG,CAC5BxD,KAAK6E,gBAAgB9B,EAAO,M,MAEzB,CACL,GAAIA,EAAMvC,MAAMgD,SAAW,EAAG,CAC5BxD,KAAKsE,cAAcvB,GACnB,GACEe,OAAOC,UAAUC,SAASC,KAAKJ,KAAW7D,KAAKK,oBAC/C,CACAL,KAAK+G,gBAAgBhE,E,CAEvB/C,KAAK6E,gBAAgB9B,EAAO,K,KACvB,CACL/C,KAAKsE,cAAcvB,EAAO,MAC1B/C,KAAK6E,gBAAgB9B,EAAO,M,EAGhC/C,KAAKgH,qBAAqBjE,GAC1B,GAAIA,EAAMvC,MAAMgD,SAAW,EAAG,CAC5BxD,KAAKsE,cAAcvB,EAAO,MAC1B/C,KAAK4E,sB,CAEP5E,KAAK8G,mBAAmB/D,EAAM,EAGxB/C,KAAAiH,cAAgB,CAACpD,EAAsBqD,K,MAC7C,MAAMnE,EAAQc,EAAM8C,OACpB,MAAMQ,GAAWC,EAAAvD,EAAMwD,OAAG,MAAAD,SAAA,SAAAA,EAAEE,cAC5B,MAAMC,EACJ,gGACF,IACGA,EAAMC,KAAKL,OAETtD,EAAM4D,SAAW5D,EAAM6D,WACvBP,IAAa,KAAOA,IAAa,MAEpC,CACAtD,EAAM8D,gB,CAER,OAAQR,GACN,IAAK,IACL,IAAK,aACHtD,EAAM8D,iBACN3H,KAAK+G,gBAAgBhE,GACrB,MACF,IAAK,YACHc,EAAM8D,iBACN3H,KAAK4H,oBAAoB7E,GACzB,MACF,IAAK,UACL,IAAK,YACH/C,KAAK6G,sBAAwB,KAC7B7G,KAAK6H,0BAA0B9E,EAAOc,GACtC,MACF,IAAK,YACH,GAAId,EAAMvC,MAAMgD,SAAW,EAAG,CAC5BK,EAAM8D,iBACN3H,KAAK4H,oBAAoB7E,E,CAE3B,MAIJ/C,KAAK8H,aAAajE,EAAOqD,GACzBlH,KAAKc,2BAA6B,IAAI,EAGhCd,KAAA+H,YAAelE,IACrB,MAAMd,EAAQc,EAAM8C,OACpB5D,EAAMiF,QAAQ,EAGRhI,KAAAiI,WAAcpE,IACpB,MAAMd,EAAQc,EAAM8C,OACpB,GAAI5D,EAAO,CACT/C,KAAKkI,kBAAkBnF,E,GAInB/C,KAAA6H,0BAA4B,CAClC9E,EACAc,KAEA,IAAIsE,EAAW,EACf,IAAIC,EAAW,GACf,GAAIrF,IAAU/C,KAAKyE,YAAa,CAC9B0D,EAAW,EACXC,EAAWpI,KAAK2C,aAAe,KAAO,GAAK,E,CAE7C,IAAI0F,GAAOtF,EAAMvC,MACjB,GAAIqD,EAAMwD,MAAQ,UAAW,CAC3BgB,EAAMA,EAAM,EACZ,GAAIA,EAAMD,EAAUC,EAAMF,EAC1BpF,EAAMvC,MAAQ6H,EAAIrE,WAAWsC,SAAS,EAAG,KACzCtG,KAAK8G,mBAAmB/D,E,CAE1B,GAAIc,EAAMwD,MAAQ,YAAa,CAC7BgB,EAAMA,EAAM,EACZ,GAAIA,EAAMF,EAAUE,EAAMD,EAC1BrF,EAAMvC,MAAQ6H,EAAIrE,WAAWsC,SAAS,EAAG,KACzCtG,KAAK8G,mBAAmB/D,E,CAE1B/C,KAAKsE,cAAcvB,GACnB/C,KAAKgH,qBAAqBjE,EAAM,EAG1B/C,KAAAsI,iBAAoBC,IAC1B,GAAIA,GAASvI,KAAKgB,eAAiBhB,KAAKe,qBAAsB,CAC5D,GAAIf,KAAKQ,MAAO,CACdR,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMG,UAAUC,IAAInD,KAAKM,aAAa,G,CAG1C,GACEN,KAAKwB,MACLxB,KAAKyB,SACJzB,KAAK2D,gBAAkB3D,KAAK0B,SAC7B1B,KAAKmG,kBAAoB,GACzB,CACAnG,KAAKwI,sBAAsBxI,KAAKgB,cAChChB,KAAKyI,gC,MACA,KACHzI,KAAKgB,eAAiB,MAAQhB,KAAKe,uBAAyB,OAC9Df,KAAK0I,mBACL,CACA1I,KAAKwI,sBAAsB,MAC3BxI,KAAK0I,mBAAmBC,YAAc,E,CAExC3I,KAAKe,qBAAuBf,KAAKgB,aACjC,IAAKhB,KAAKc,2BAA4B,CACpCd,KAAK4I,kBAAkB5I,KAAKwB,KAAMxB,KAAKyB,OAAQzB,KAAK0B,O,IAKlD1B,KAAAwI,sBAAyBhI,IAC/B,GAAIR,KAAKQ,QAAUA,EAAO,CACxBR,KAAK6I,aAAarI,GAClBR,KAAKQ,MAAQA,C,GAITR,KAAA6I,aAAgBlD,IACtB3F,KAAKgB,aAAe2E,EACpB3F,KAAK8I,SAASC,KAAK,CACjBvI,MAAOmF,EACPqD,WAAY,CACVxH,KAAMxB,KAAKwB,OAAS,GAAK,KAAOxB,KAAKwB,KACrCC,OAAQzB,KAAKyB,SAAW,GAAK,KAAOzB,KAAKyB,OACzCC,OAAQ1B,KAAK0B,SAAW,GAAK,KAAO1B,KAAK0B,SAE3C,EAGI1B,KAAAiJ,QAAW7C,IACjB,GAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS8C,UAAW,CACtD,GAAIlJ,KAAKwB,KAAMxB,KAAKwB,KAAO,GAC3B,GAAIxB,KAAKyB,OAAQzB,KAAKyB,OAAS,GAC/B,GAAIzB,KAAK0B,OAAQ1B,KAAK0B,OAAS,GAC/B1B,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMG,UAAUiG,OAAOnJ,KAAKM,cAC5BN,KAAK6E,gBAAgB9B,EAAO,MAAM,IAEpC/C,KAAKsI,iBAAiB,K,KACjB,CACL,UAAWlC,IAAS,SAAU,CAC5B,MAAMgD,EAAYhD,EAAKiD,MACrB,+CAEF,GAAID,EAAW,CACbpJ,KAAKwB,KAAO4H,EAAU,GACtBpJ,KAAKyB,OAAS2H,EAAU,GACxBpJ,KAAK0B,OAAS0H,EAAU,E,KACnB,CACL,MAAM9F,EAAQ8C,EAAK7C,MAAM,KACzBvD,KAAKwB,KAAO8B,EAAM,IAAM,GACxBtD,KAAKyB,OAAS6B,EAAM,IAAM,GAC1BtD,KAAK0B,OAAS4B,EAAM,IAAM,E,OAEvB,GAAI8C,aAAgB/C,KAAM,CAC/BrD,KAAKwB,KAAO4E,EAAKf,WAAWrB,WAAWsC,SAAS,EAAG,KACnDtG,KAAKyB,OAAS2E,EAAKd,aAAatB,WAAWsC,SAAS,EAAG,KACvDtG,KAAK0B,OAAS0E,EAAKb,aAAavB,WAAWsC,SAAS,EAAG,I,EAG3DtG,KAAK4E,sBAAsB,EAGrB5E,KAAAsJ,eAAiB,CACvBC,EACAC,EACAC,K,UAEA,GAAIzJ,KAAKS,cAAc+C,OAAQ,CAC7BxD,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMmD,gBAAgBlG,KAAKE,aAAa,IAE1C,IAAKqJ,EAAW,EACdnC,EAAApH,KAAKyE,eAAW,MAAA2C,SAAA,SAAAA,EAAEnB,aAAajG,KAAKE,aAAc,O,CAEpD,IAAKsJ,EAAa,EAChBE,EAAA1J,KAAK0E,iBAAa,MAAAgF,SAAA,SAAAA,EAAEzD,aAAajG,KAAKE,aAAc,O,CAEtD,IAAKuJ,EAAa,EAChBE,EAAA3J,KAAK2E,iBAAa,MAAAgF,SAAA,SAAAA,EAAE1D,aAAajG,KAAKE,aAAc,O,CAEtD,KAAMqJ,GAAaC,GAAeC,GAAc,CAC9CzJ,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMkD,aAAajG,KAAKE,aAAc,OAAO,G,IAM7CF,KAAA4J,YAAc,KACpB5J,KAAKkB,WAAa,KAClB,GAAIlB,KAAKyE,YAAa,CACpBzE,KAAKyE,YAAYjE,MAAQ,E,CAE3B,GAAIR,KAAK0E,cAAe,CACtB1E,KAAK0E,cAAclE,MAAQ,E,CAE7B,IAAKR,KAAK2D,gBAAkB3D,KAAK2E,cAAe,CAC9C3E,KAAK2E,cAAcnE,MAAQ,E,CAE7BR,KAAKwB,KAAO,GACZxB,KAAKyB,OAAS,GACdzB,KAAK0B,OAAS,GACd1B,KAAKsI,iBAAiB,MACtBtI,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMG,UAAUiG,OAAOnJ,KAAKM,cAC5BN,KAAK6E,gBAAgB9B,EAAO,MAAM,IAEpC/C,KAAKkB,WAAa,MAClBlB,KAAKc,2BAA6B,MAClCd,KAAK4E,uBACL5E,KAAKmG,gBAAkB,GACvB,GAAInG,KAAKyE,YAAa,CACpBzE,KAAKyE,YAAYoF,O,GAIb7J,KAAAyI,+BAAiC,KACvC,GAAIzI,KAAKgB,cAAgBhB,KAAK0I,mBAAoB,CAChD,GAAI1I,KAAK2D,eAAgB,CACvB3D,KAAK0I,mBAAmBC,YAAc,kBAAkB3I,KAAKgB,aAC1DqE,WACArB,WACAsC,SAAS,EAAG,QAAQtG,KAAKgB,aACzBsE,aACAtB,WACAsC,SAAS,EAAG,M,KACV,CACLtG,KAAK0I,mBAAmBC,YAAc,kBAAkB3I,KAAKgB,aAC1DqE,WACArB,WACAsC,SAAS,EAAG,QAAQtG,KAAKgB,aACzBsE,aACAtB,WACAsC,SAAS,EAAG,QAAQtG,KAAKgB,aACzBuE,aACAvB,WACAsC,SAAS,EAAG,M,IAKbtG,KAAAgH,qBAAwBjE,IAC9B,GAAIA,EAAMvC,MAAO,CACfuC,EAAMG,UAAUC,IAAInD,KAAKM,a,KACpB,CACLyC,EAAMG,UAAUiG,OAAOnJ,KAAKM,a,GAIxBN,KAAA8J,eAAiB,KACvB9J,KAAKuB,iBAAmB,MACxBvB,KAAK+J,OAAOhB,KAAK,CAAEvI,MAAOR,KAAKgB,cAAe,EAGxChB,KAAAgK,gBAAkB,K,QACxB,IACEN,GAAAtC,EAAApH,KAAKiK,GAAGC,cAAU,MAAA9C,SAAA,SAAAA,EAAE+C,iBAAa,MAAAT,SAAA,SAAAA,EAAEU,GAAGf,MAAM,+BAC5C,CACArJ,KAAKuB,iBAAmB,K,KACnB,CACLvB,KAAKuB,iBAAmB,I,CAE1BvB,KAAKqK,QAAQtB,KAAK,CAAEvI,MAAOR,KAAKgB,cAAe,EAGzChB,KAAAsK,gBAAkB,KACxBtK,KAAKiJ,QAAQjJ,KAAKO,cAClBP,KAAK4E,uBACL5E,KAAKsI,iBAAiB,MAAM,EAGtBtI,KAAA8H,aAAe,CAACjE,EAAsBqD,KAC5C,MAAMG,EAAMxD,EAAMwD,IAClB,MAAMtE,EAAQc,EAAM8C,OACpB,IAAI4D,EACJ,GAAIxH,EAAO,CACTwH,EAAiBxH,EAAMvC,MAAMgK,UAC3BzH,EAAM0H,gBAAkB,EACxB1H,EAAM2H,cAAgBxB,U,CAG1B,GACE7B,IAAQ,KACRA,IAAQ,KACRA,IAAQ,KACPxD,EAAMwD,KAAO,KACZxD,EAAMwD,KAAO,KACbH,IACCqD,EACH,CACA1G,EAAM8D,gB,GAIF3H,KAAA+G,gBAAmB4D,I,MACzB3K,KAAK6G,sBAAwB,OAC7BO,EAAApH,KAAKS,cACHT,KAAKS,cAAcmK,WAAW7H,GAAUA,IAAU4H,IAAgB,MACnE,MAAAvD,SAAA,SAAAA,EAAEyC,OAAO,EAGJ7J,KAAA4H,oBAAuB+C,I,MAC7B3K,KAAK6G,sBAAwB,OAC7BO,EAAApH,KAAKS,cACHT,KAAKS,cAAcmK,WAAW7H,GAAUA,IAAU4H,IAAgB,MACnE,MAAAvD,SAAA,SAAAA,EAAEyC,OAAO,EAGJ7J,KAAAkI,kBAAqBnF,IAC3B,MAAM8H,EAAa9H,EAAMvC,MACzB,GAAIqK,EAAWrH,SAAW,EAAG,CAC3BT,EAAMvC,MAAQ,IAAIqK,G,CAEpB,GAAI9H,EAAMvC,MAAO,CACfR,KAAKsE,cAAcvB,E,GAIf/C,KAAAoF,cAAgB,CACtB5D,EACAC,EACAC,KAEA,IACG2C,EAAc7C,KACd6C,EAAc5C,KACdzB,KAAK2D,iBAAmBU,EAAc3C,IACvC,CACA,MAAM+B,EAAI,IAAIJ,KACdI,EAAEC,UAAUlC,GAAOC,EAAQzB,KAAK2D,eAAiB,GAAKjC,EAAQ,GAC9D,OAAO+B,C,KACF,CACL,OAAO,I,GAIHzD,KAAA8K,iBAAmB,K,MACzB9K,KAAKS,cAAgB,GACrB,MAAMsK,GAAe3D,EAAApH,KAAKiK,GAAGC,cAAU,MAAA9C,SAAA,SAAAA,EAAE4D,iBAAiB,SAC1D,GAAID,EAAc,CAChBA,EAAa/E,SAASjD,GAAU/C,KAAKS,cAAcwK,KAAKlI,I,GAIpD/C,KAAA4I,kBAAoB,CAC1BpH,EACAC,EACAC,KAEA,GAAI1B,KAAKyE,aAAezE,KAAK0E,eAAiB1E,KAAK2E,cAAe,CAChE3E,KAAKyE,YAAYjE,MAAQgB,EACzBxB,KAAK0E,cAAclE,MAAQiB,EAC3BzB,KAAK2E,cAAcnE,MAAQkB,C,GAIvB1B,KAAAkL,qBAAuB,K,OAC7B9D,EAAApH,KAAKmL,wBAAoB,MAAA/D,SAAA,SAAAA,EAAElB,gBAAgBlG,KAAKI,iBAAiB,EAG3DJ,KAAAoL,kBAAoB,K,YAC1B,GACEpL,KAAK2B,YACLyF,EAAApH,KAAKmL,wBAAoB,MAAA/D,SAAA,SAAAA,EAAEiE,aAAarL,KAAKI,mBAC7C,CACAJ,KAAKkL,uBACL,M,CAEF,GAAIlL,KAAK2B,SAAU,CACjB,M,CAEF,MAAM2J,GAAU5B,EAAA1J,KAAKiK,GAAGC,cAAU,MAAAR,SAAA,SAAAA,EAAE6B,cAAc,SAClD,MAAMC,EAAU,GAAGxL,KAAKgC,gBACxB,GAAIsJ,IAAY,MAAQA,IAAYpC,UAAW,CAC7CoC,EAAQlB,GAAKoB,C,CAEf,MAAMC,GACHpH,EAAcrE,KAAK4C,oBACnByB,EAAcrE,KAAKmG,iBACtB,MAAMuF,EAAa,IAAG/B,EAAA2B,IAAO,MAAPA,SAAO,SAAPA,EAASlB,MAAE,MAAAT,SAAA,EAAAA,EAAI,MACnC3J,KAAK2L,sBACHC,EACF5L,KAAKiK,GACLjK,KAAKgC,QACLhC,KAAK6L,aAAe,IAAM7L,KAAK6L,aAAe7L,KAAK8L,kBACnDL,MACGzL,KAAKgB,aAAehB,KAAK+L,mBAAqB,MACjD/L,KAAKgM,mBAEPC,EAAAjM,KAAKmL,wBAAoB,MAAAc,SAAA,SAAAA,EAAEhG,aAAajG,KAAKI,iBAAkBsL,EAAW,EAGpE1L,KAAAkM,iBAAmB,KACzB,MAAMC,EAAYnM,KAAK0C,WAAWa,MAAM,KACxC,OAAO4I,EAAUC,KAAKC,IACpB,OAAQA,EAAK7B,UAAU,EAAG,IACxB,IAAK,IACH,OACE8B,EAAA,SACEC,MAAM,aACNnC,GAAG,aACHoC,IAAMvC,GAAQjK,KAAKyE,YAAcwF,EAAG,aACzB,OACXwC,YAAY,KACZ9K,SAAU3B,KAAK2B,SAAQ,gBACR,GAAG3B,KAAKqC,WACvBqK,UAAU,SACVC,QAAQ,SACRC,QAAS5M,KAAK6M,YACdC,UAAYjJ,GACV7D,KAAKiH,cAAcpD,EAAO7D,KAAK+E,oBAIvC,IAAK,IACH,OACEuH,EAAA,SACElC,GAAG,eACHmC,MAAM,eACNC,IAAMvC,GAAQjK,KAAK0E,cAAgBuF,EAAG,aAC3B,SACXwC,YAAY,KACZ9K,SAAU3B,KAAK2B,SAAQ,gBACR,GAAG3B,KAAKqC,WACvBqK,UAAU,SACVC,QAAQ,SACRC,QAAS5M,KAAK6M,YACdC,UAAYjJ,GACV7D,KAAKiH,cAAcpD,EAAO7D,KAAKgF,sBAIvC,IAAK,IACH,IAAKhF,KAAK2D,eAAgB,CACxB,OACE2I,EAAA,SACElC,GAAG,eACHmC,MAAM,eACNC,IAAMvC,GAAQjK,KAAK2E,cAAgBsF,EAAG,aAC3B,SACXwC,YAAY,KACZ9K,SAAU3B,KAAK2B,SAAQ,gBACR,GAAG3B,KAAKqC,WACvBqK,UAAU,SACVC,QAAQ,SACRC,QAAS5M,KAAK6M,YACdC,UAAYjJ,GACV7D,KAAKiH,cAAcpD,EAAO7D,KAAKiF,qB,CAKvC,OAAO,KACT,QACE,OAAO,K,GAEX,EAGIjF,KAAA+M,qBAAuB,IACtB,2BAGD/M,KAAAgN,oBAAuBpK,IAC7B,IAAIqK,EAAmB,GACvB,GAAIjN,KAAKqC,SAAU,CACjB4K,GAAoB,U,CAEtB,GAAIrK,IAAqBsK,EAAoBC,MAAO,CAClDF,GAAoB,e,CAEtB,OAAOA,IAAqB,GAAK,GAAKA,EAAmB,IAAI,EAGvDjN,KAAA8G,mBAAsB/D,I,MAC5B,MAAMqK,GAAahG,EAAApH,KAAKiK,GAAGC,cAAU,MAAA9C,SAAA,SAAAA,EAAEmE,cAAc,gBACrD,GAAI6B,EAAY,CACdA,EAAWzE,YAAc,GAAG5F,EAAMvC,UAAUuC,EAAMsI,aAChDrL,KAAKG,a,GAKHH,KAAA6M,YAAehJ,I,MACrBA,EAAM8D,iBACN,MAAM3E,IAAcoE,EAAAvD,EAAMwJ,iBAAa,MAAAjG,SAAA,SAAAA,EAAEkG,QAAQ,UAAW,GAC5D,MAAMzM,EAAcb,KAAKuN,wBAAwBvK,GACjDhD,KAAKwN,4BAA4B3M,EAAamC,EAAaa,EAAM,EAG3D7D,KAAAyN,iBAAmB,KACzBzN,KAAKuB,iBAAmB,KACxBvB,KAAKsB,mBAAqB,KAC1BtB,KAAKc,2BAA6B,IAAI,EAGhCd,KAAA0N,gBAAmBC,IACzB3N,KAAKsB,mBAAqB,MAC1BtB,KAAKc,2BAA6B,KAClC,MAAM8M,EAAgBD,EAAGC,cACzB,IAAIA,IAAa,MAAbA,SAAa,SAAbA,EAAexD,MAAO,eAAgB,CACxCpK,KAAKuB,iBAAmB,MACxB,M,CAEF,GAAIqM,IAAa,MAAbA,SAAa,SAAbA,EAAexD,GAAGf,MAAM,0BAA2B,CACrDrJ,KAAKuB,iBAAmB,MACxB,M,CAEFvB,KAAKuB,iBAAmB,IAAI,EAGtBvB,KAAA6N,iBAAmB,KACzB7N,KAAKqB,aAAe,IAAI,EAGlBrB,KAAA8N,gBAAkB,KACxB9N,KAAKqB,aAAe,KAAK,EAGnBrB,KAAAuN,wBAA2B/M,IACjC,GAAIR,KAAK2D,eAAgB,CACvB,GAAI,gBAAgB6D,KAAKhH,GAAQ,CAC/B,OAAOA,C,MAEJ,CACL,GAAI,sBAAsBgH,KAAKhH,GAAQ,CACrC,OAAOA,C,CAET,GAAI,uBAAuBgH,KAAKhH,GAAQ,CACtC,OAAOA,EAAMuN,QAAQ,IAAK,G,CAE5B,MAAMC,EAAWxN,EAAM6I,MAAM,wBAC7B,GAAI2E,EAAU,CACZ,OAAOA,EAAS,E,EAGpB,OAAO,KAAK,EAGNhO,KAAAwN,4BAA8B,CACpC3M,EACAmC,EACAa,KAEA,GAAIhD,EAAa,CACf,MAAMsL,EAAYtL,EAAY0C,MAAM,KACpCvD,KAAKS,cAAcuF,SAAQ,CAACjD,EAAOkL,KACjClL,EAAMG,UAAUC,IAAInD,KAAKM,cACzB,MAAM4N,EAAY/B,EAAU8B,IAAU,GACtClL,EAAMvC,MAAQ0N,EAAUC,MAAM,EAAG,GACjCnO,KAAKsE,cAAcvB,GACnB/C,KAAKkI,kBAAkBnF,EAAM,IAE/B,GAAI/C,KAAK2D,gBAAkB3D,KAAK0B,SAAW,GAAI,CAC7C1B,KAAK0B,OAAS,E,MAEX,CACL,MAAM0M,EAASpL,EAAYqL,OAC3B,IAAKD,EAAO5K,SAAW,GAAK4K,EAAO5K,SAAW,IAAM8K,EAAUF,GAAS,CACrEpO,KAAK8C,mBAAmBe,EAAM8C,OAAQyH,GACtCpO,KAAKsE,cAAcT,EAAM8C,O,KACpB,CACL3G,KAAKmG,gBAAkB,wBACrBtC,EAAM8C,OACN0E,aAAarL,KAAKG,cACpBH,KAAK4C,iBAAmBsK,EAAoBC,K,IA7iClD,iBAAAoB,GACE,GACEvO,KAAK6B,qBACJ7B,KAAKiB,kBACLjB,KAAKkB,cACJlB,KAAKwB,MAAQxB,KAAKyB,QAAUzB,KAAK0B,SACnC1B,KAAKgB,eAAiB,KACtB,CACAhB,KAAK6I,aAAa7I,KAAKgB,a,EAS3B,oBAAAwN,GACEC,EAAoBzO,KAAK2B,SAAU3B,KAAKiK,G,CAgD1C,eAAAyE,GACE1O,KAAKmB,QAAUnB,KAAKoD,UAAUpD,KAAKkC,I,CAQrC,eAAAyM,GACE3O,KAAKoB,QAAUpB,KAAKoD,UAAUpD,KAAKmC,I,CAarC,oBAAAyM,G,QACE,MAAMtD,GAAUlE,EAAApH,KAAKiK,GAAGC,cAAU,MAAA9C,SAAA,SAAAA,EAAEmE,cAAc,SAClD,GAAIvL,KAAKqC,SAAU,CACjB,MAAMwM,EAAeC,SAASC,cAAc,QAC5CF,EAAa5I,aAAa,KAAM,iBAChC4I,EAAa5I,aAAa,cAAe,QACzC4I,EAAalG,YAAc,KAC3B2C,IAAO,MAAPA,SAAO,SAAPA,EAAS0D,YAAYH,E,KAChB,CACL,MAAMA,GAAenF,EAAA1J,KAAKiK,GAAGC,cAAU,MAAAR,SAAA,SAAAA,EAAE6B,cAAc,kBACvD,GAAIsD,EAAc,CAChBA,EAAa1F,Q,GA6EnB,oBAAA8F,GACEC,EAAwBlP,KAAKiK,GAAIjK,KAAKsK,gB,CAGxC,iBAAA6E,GACEnP,KAAK8L,kBAAoB,cAAc9L,KAAK0C,aAC5C,GAAI2B,EAAcrE,KAAK6L,YACrB7L,KAAK6L,WAAa7L,KAAK8L,kBACzB,GAAI9L,KAAKQ,MAAO,CACdR,KAAKiB,gBAAkB,KACvBjB,KAAKiJ,QAAQjJ,KAAKQ,M,CAEpBR,KAAK2L,mBAAqB,GAAG3L,KAAKgC,6BAClChC,KAAKgM,gBAAkB,GAAGhM,KAAKgC,yBAC/BhC,KAAK+L,mBAAqB,GAAG/L,KAAKgC,6BAClCoN,EAAqBpP,KAAKiK,GAAIjK,KAAKsK,iBACnCmE,EAAoBzO,KAAK2B,SAAU3B,KAAKiK,G,CAG1C,gBAAAoF,GACErP,KAAK8K,mBACLwE,EACE,CAAC,CAAEC,KAAMvP,KAAKwP,MAAOC,SAAU,UAC/B,cAEF,GAAIzP,KAAKQ,MAAO,CACdR,KAAK4I,kBAAkB5I,KAAKwB,KAAMxB,KAAKyB,OAAQzB,KAAK0B,QACpD1B,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAMG,UAAUC,IAAInD,KAAKM,aAAa,G,CAG1CN,KAAKsJ,eACHtJ,KAAKU,YACLV,KAAKW,cACLX,KAAKY,eAEP,GAAIZ,KAAKQ,MAAO,CACdR,KAAKyI,gC,CAEPzI,KAAKS,cAAcuF,SAASjD,IAC1BA,EAAM2M,iBAAiB,QAAS1P,KAAKyG,aACrC1D,EAAM2M,iBAAiB,QAAS1P,KAAK+H,aACrChF,EAAM2M,iBAAiB,OAAQ1P,KAAKiI,WAAW,IAEjDjI,KAAK4O,sB,CAGP,mBAAAe,GACE,GAAItL,EAAcrE,KAAK6L,YACrB7L,KAAK6L,WAAa7L,KAAK8L,kBACzB,IAAK9L,KAAKc,2BAA4Bd,KAAKiJ,QAAQjJ,KAAKQ,OACxDR,KAAKsJ,eACHtJ,KAAKU,YACLV,KAAKW,cACLX,KAAKY,eAEPZ,KAAKsI,iBAAiB,OACtBtI,KAAKc,2BAA6B,K,CAGpC,kBAAA8O,GACE,GAAI5P,KAAKuB,iBAAkB,CACzBvB,KAAKkL,uBACL,M,CAEFlL,KAAKoL,mB,CAQP,aAAMyE,GACJ,OAAO7P,KAAKgB,Y,CAOd,qBAAM8O,CAAgBnK,GACpB3F,KAAKiB,gBAAkB,KACvBjB,KAAKiJ,QAAQtD,GACb3F,KAAK6I,aAAalD,GAClB3F,KAAKiB,gBAAkB,K,CA4yBzB,MAAA8O,GACE,MAAM/N,QACJA,EAAOwN,MACPA,EAAK7N,SACLA,EAAQkK,WACRA,EAAU/J,eACVA,EAAcC,UACdA,EAASO,gBACTA,EAAeC,gBACfA,EAAeC,KACfA,EAAIC,MACJA,GACEzC,KACJ,MAAMgQ,GAAuB3L,EAAcrE,KAAK4C,kBAChD,MAAMA,EAAmBoN,EACrBhQ,KAAK4C,kBACJyB,EAAcrE,KAAKmG,iBACpB+G,EAAoBC,MACpB,GACJ,MAAM8C,EAAgB,uEAAuEjQ,KAAK+M,0BAClGmD,EACE,KACAlQ,KAAKiK,GACLjK,KAAKoC,KACLpC,KAAKoF,cAAcpF,KAAKwB,KAAMxB,KAAKyB,OAAQzB,KAAK0B,QAChD1B,KAAK2B,UAEP,MAAMwO,KACJ7N,KAEE+B,EAAcrE,KAAKwB,OACnB6C,EAAcrE,KAAKyB,SACnB4C,EAAcrE,KAAK0B,UAGvB,OACE4K,EAAC8D,EAAI,CAAA/I,IAAA,2CACHkF,MAAO,CACL,CAAC,YAAY9J,KAAUA,IAAU,UACjC,CAAC,0BAA2Bd,EAC5B,CAAC,iBAAiBa,KAAS,MAE7B6N,OAAQrQ,KAAK8J,eACbwG,QAAStQ,KAAKgK,iBAEdsC,EAAA,sBAAAjF,IAAA,2CAAoB1F,SAAUA,KACzBI,GAAaD,IACdwK,EAAA,kBAAAjF,IAAA,2CACEkJ,IAAKvO,EACLwN,MAAOA,EACPzN,UAAWA,EACX8J,YAAa/J,EAAiB+J,EAAa,GAC3ClK,SAAUA,GAEV2K,EAAA,QAAAjF,IAAA,2CAAMjF,KAAK,cAAcoO,KAAK,iBAGlClE,EAAA,QAAAjF,IAAA,2CAAM+C,GAAIpK,KAAK2L,mBAAoBY,MAAM,UAAS,cAAa,QAC5DvM,KAAKgN,oBAAoBpK,GACzBb,GAAa,GAAGyN,MAChB1N,GAAkB,GAAG+J,MACrB,GAAG7L,KAAK8L,sBAEXQ,EAAA,QAAAjF,IAAA,2CAAM+C,GAAIpK,KAAKgM,gBAAiBO,MAAM,UAAS,cAAa,QACzD0D,GAEH3D,EAAA,QAAAjF,IAAA,2CAAM+C,GAAG,cAAa,YAAW,YAAYmC,MAAM,YACnDD,EAAA,gCAAAjF,IAAA,2CACE+C,GAAIpI,EACJwK,IAAMvC,GACHjK,KAAKmL,qBAAuBlB,EAE/BtI,SAAUA,EACViB,iBAAkBA,EAClBJ,KAAMA,EACNiO,KAAK,QACLlE,MAAO,CAAE,CAAC,YAAY9J,KAAUA,IAAU,YAE1C6J,EAAA,OAAAjF,IAAA,2CAAKkF,MAAM,mBACTD,EAAA,OAAAjF,IAAA,2CAAKkF,MAAM,eACR,CACCvM,KAAKkM,mBAAmB,GACxB,IACAlM,KAAKkM,mBAAmB,IACvBlM,KAAK2D,eACF,CAAC,IAAK3D,KAAKkM,mBAAmB,IAC9B,OAGRI,EAAA,OAAAjF,IAAA,2CAAKkF,MAAM,kBACRjK,GACCgK,EAAA,aAAAjF,IAAA,2CACE+C,GAAG,eAAc,aACN,cACXmC,MAAO,CACL,CAAC,gBAAiB,KAClB,CAAC,UACClI,EAAcrE,KAAKwB,OACnB6C,EAAcrE,KAAKyB,SACnB4C,EAAcrE,KAAK0B,SAEvBC,SAAU3B,KAAK2B,SACf+O,UAAWC,EACXC,QAAS5Q,KAAK4J,YACd0G,QAAStQ,KAAKyN,iBACd4C,OAAQrQ,KAAK0N,gBACbmD,QAAQ,gBACRpO,MAAOzC,KAAKsB,mBAAqB,QAAU,OAC3CkB,KAAMA,IAGTD,GACC+J,EAAA,OAAAjF,IAAA,2CAAKkF,MAAM,6BACTD,EAAA,OAAAjF,IAAA,2CAAKkF,MAAO,CAAEuE,QAASX,EAAa3N,CAACA,GAAO,QAC5C8J,EAAA,aAAAjF,IAAA,2CACE+C,GAAG,eAAc,aACN,gBAAe,gBACZ,SACdmC,MAAM,eACN5K,SAAU3B,KAAK2B,SACf+O,UAAWK,EACXF,QAAQ,gBACRrO,KAAMA,EACN8N,QAAStQ,KAAK6N,iBACdwC,OAAQrQ,KAAK8N,gBACbrL,MAAOzC,KAAKqB,aAAe,QAAU,aAOjDiL,EAAA,QAAAjF,IAAA,2CAAM+C,GAAIpK,KAAK+L,mBAAoBQ,MAAM,UAAS,YAAW,UAC3DD,EAAA,QAAAjF,IAAA,2CACEmF,IAAMvC,GAAQjK,KAAK0I,mBAAqBuB,EACxCwG,KAAK,aAGPT,IAAwB3L,EAAcrE,KAAKmG,mBAC3CmG,EAAA,uBAAAjF,IAAA,2CACE2J,OAAQpO,EACRqO,QACEjB,EAAsBhQ,KAAK6C,eAAiB7C,KAAKmG,gBAEnDoK,IAAKvO,K","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as n,h as i,H as e,g as o}from"./p-8e4e97b4.js";import{r as t,a as r,s as c,S as a,Y as s,o as l,Z as p,_ as d,$ as u,a0 as h}from"./p-ee95905f.js";const b="ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;min-height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--input-bg-color, var(--ic-color-background-primary));box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.ic-input-component-container-full-width{width:100%}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled))}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly{height:auto;background:transparent}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-readonly:hover{border:none;padding:0}ic-input-component-container.ic-input-component-container-error{border:var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));padding:0}ic-input-component-container.ic-input-component-container-error:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover))}ic-input-component-container.ic-input-component-container-error:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed))}ic-input-component-container.ic-input-component-container-warning{border:var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));padding:0}ic-input-component-container.ic-input-component-container-warning:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover))}ic-input-component-container.ic-input-component-container-warning:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed))}ic-input-component-container.ic-input-component-container-success{border:var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));padding:0}ic-input-component-container.ic-input-component-container-success:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover))}ic-input-component-container.ic-input-component-container-success:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed))}ic-input-component-container.ic-input-component-container-small{height:var(--ic-space-xl);min-height:var(--ic-space-xl)}ic-input-component-container.ic-input-component-container-large{height:var(--ic-space-xxl);min-height:var(--ic-space-xxl)}ic-input-component-container.ic-input-component-container-multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-multiline .icon-container,ic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.ic-input-component-container-readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.ic-input-component-container-disabled ::-moz-placeholder{display:none}ic-input-component-container.ic-input-component-container-disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container .inline-success>svg{fill:var(--ic-input-component-container-success-icon-inline-color);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-input-component-container-hover-border);border-color:var(--border-color-hover, var(--ic-color-border-neutral-hover));color:var(--ic-action-monochrome-hover-dark)}ic-input-component-container:focus{border:var(--ic-border-pressed);border-color:var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n )}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.ic-input-component-container-dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed GrayText}}";const m=b;const v=class{constructor(i){n(this,i);this.disabled=false;this.fullWidth=false;this.multiLine=false;this.readonly=false;this.size="medium";this.validationInline=false;this.validationStatus=""}watchDisabledHandler(){t(this.disabled,this.el)}componentWillLoad(){t(this.disabled,this.el)}componentDidLoad(){this.hostMutationObserver=new MutationObserver((n=>r(n,"left-icon",this)));this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{size:n,validationStatus:o,disabled:t,readonly:r,multiLine:l,fullWidth:p,validationInline:d}=this;return i(e,{key:"82e6604ab956d7648209ae1214797d48ce4a169c",class:{[`ic-input-component-container-${n}`]:true,[`ic-input-component-container-${o}`]:o!==""&&!t&&!r,"ic-input-component-container-disabled":!!t,"ic-input-component-container-readonly":!!r,"ic-input-component-container-multiline":!!l,"ic-input-component-container-full-width":!!p},"aria-disabled":t?"true":null},i("div",{key:"0fd329a8f1397ab2b6f7b4f3fd62d180003ef7e4",class:"focus-indicator"},c(this.el,"left-icon")&&i("div",{key:"3af5861c01b3e6338e20288c0577d4554d9357e6",class:"icon-container"},i("slot",{key:"25bd5414058904fb5ed05f0e4e7fda6fc4966fbb",name:"left-icon"})),i("slot",{key:"2a63ea395d97ca2f3121f30fae1a3ac8bdfd7599"}),d&&o===a.Success&&i("span",{key:"ac962172c01b7cc0abf776b7a5ff0e58cd996ad7",class:"inline-success",innerHTML:s})))}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};v.style=m;const f="ic-input-container .component-container{display:flex;flex-direction:column}";const g=f;const x=class{constructor(i){n(this,i);this.disabled=false;this.readonly=false}render(){return i(e,{key:"d7a6f03073013efef8534f6305e64f66d2b58b91"},i("div",{key:"f93b5ad4fc27eed8fabf3fd83de73906b4592ca4",class:{["component-container"]:true,["disabled"]:!!this.disabled,["readonly"]:!!this.readonly}},i("slot",{key:"59074f71d915aebc3205308c0406b4f6ab2a73ae"})))}};x.style=g;const y="ic-input-label{margin-bottom:var(--ic-space-xs);--ic-typography-color:var(\n --ic-input-label-text-color,\n var(--ic-color-text-primary)\n )}ic-input-label.with-helper{margin-bottom:0}ic-input-label.ic-input-label-readonly{--ic-typography-color:var(--ic-input-label-readonly-typography-color)}ic-input-label .helpertext,ic-input-label .helpertext ::slotted(*){margin-top:var(--ic-space-xxxs);padding-bottom:var(--ic-input-label-helpertext-padding, 0);--ic-typography-color:var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n )}ic-input-label .helpertext-normal{--ic-typography-color:var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n )}ic-input-label .helpertext-readonly{--ic-typography-color:var(--ic-input-label-readonly-helpertext-color)}ic-input-label .readonly-label{--ic-typography-color:var(--ic-input-label-readonly-label-color)}ic-input-label .error-label{--ic-typography-color:var(--ic-input-label-error-label-color)}";const w=y;const k=class{constructor(i){n(this,i);this.disabled=false;this.helperText="";this.hideLabel=false;this.readonly=false;this.required=false;this.status="";this.useLabelTag=true;this.isHelperTextSlotUsed=n=>{const i=n===null||n===void 0?void 0:n.assignedElements();if(i&&i.length){for(const n of i){if(n.tagName==="SLOT"){if(this.isHelperTextSlotUsed(n)){return true}}else{return true}}}return false}}componentDidLoad(){l([{prop:this.label,propName:"label"}],"Input Label")}render(){const{disabled:n,readonly:o,label:t,required:r,helperText:c,status:a,hideLabel:s,useLabelTag:l}=this;const d=r?t+" *":t;const u=this.for&&p(this.for);const h={helpertext:true,"helpertext-normal":!n&&!o,"helpertext-readonly":o};const b=this.el.querySelector("slot[name='helper-text']");return i(e,{key:"b4ae951684bc9fbacd077fd7586a60a680cb1114",class:{"ic-input-label-disabled":!!n,"ic-input-label-readonly":o,"with-helper":this.isHelperTextSlotUsed(b)||c!==""}},!s&&i("ic-typography",{key:"dd5d6d73707aadd9cc59225224fffadefecda9c7",variant:"label",class:{"readonly-label":o,"error-label":a==="error"&&!(o||n)}},o||!l?`${d}`:i("label",{htmlFor:this.for},d)),this.isHelperTextSlotUsed(b)?i("span",{id:u,class:h},i("slot",{name:"helper-text"})):c!==""&&i("ic-typography",{variant:"caption",class:h},i("span",{id:u},c)))}get el(){return o(this)}};k.style=w;const L="ic-input-validation{width:var(--input-width, 20rem);margin-top:var(--ic-space-xs);display:flex}ic-input-validation.ic-input-validation-full-width{width:100%}ic-input-validation span.status-icon{padding-right:var(--ic-space-xxs)}ic-input-validation span.status-icon>svg{height:1.25rem;width:1.25rem}ic-input-validation span.icon-success>svg{fill:var(--ic-input-validation-success-icon-color)}ic-input-validation span.icon-error>svg{fill:var(--ic-input-validation-error, var(--ic-atoms-status-icon-error))}ic-input-validation span.icon-warning>svg{fill:var(--ic-input-validation-warning-icon-color)}ic-input-validation .statustext{flex-grow:1;color:var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );--ic-typography-color:var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n )}ic-input-validation .sr-only{position:absolute;left:-9999px}";const _=L;const H={[a.Warning]:u,[a.Error]:h,[a.Success]:s};const T="";const M=class{constructor(i){n(this,i);this.ariaLiveMode="polite";this.fullWidth=false;this.status=""}watchMessageHandler(n){this.messageEl.textContent=T;setTimeout((()=>{this.messageEl.textContent=n}),100)}componentDidLoad(){l([{prop:this.message,propName:"message"}],"Input Validation");this.messageEl.textContent=T}render(){const{ariaLiveMode:n,fullWidth:o,status:t,message:r}=this;const c=t!==""?H[t]:"";return i(e,{key:"34ecf789f9c0821d672bcdf532f778b8132bb595",class:{[`ic-input-validation-${t}`]:t!=="","ic-input-validation-full-width":!!o}},c!==""&&i("span",{key:"8d40b240e1e7647725c0359205a638eae4cb2cee",class:{"status-icon":true,[`icon-${t}`]:true},innerHTML:c}),i("ic-typography",{key:"841555cf1e183663ed22863bb98ccbf18dc5747d",variant:"caption",class:"statustext"},i("span",{key:"8f9cde8e980016736a58129b3928a8f90da8054c",id:this.for&&d(this.for)},r),i("span",{key:"3497fb929f8e6d55db69462405d4d2655741511b",ref:n=>this.messageEl=n,class:"sr-only","aria-live":n})),i("slot",{key:"58ac53581ef92420a088eb50bfb1e9fcedad5660",name:"validation-message-adornment"}))}get el(){return o(this)}static get watchers(){return{message:["watchMessageHandler"]}}};M.style=_;export{v as ic_input_component_container,x as ic_input_container,k as ic_input_label,M as ic_input_validation};
|
|
2
|
+
//# sourceMappingURL=p-c08ea34d.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["icInputComponentContainerCss","IcInputComponentContainerStyle0","InputComponentContainer","constructor","hostRef","this","disabled","fullWidth","multiLine","readonly","size","validationInline","validationStatus","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","componentDidLoad","hostMutationObserver","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","render","h","Host","key","class","slotHasContent","name","IcInformationStatus","Success","innerHTML","successIcon","icInputContainerCss","IcInputContainerStyle0","InputContainer","icInputLabelCss","IcInputLabelStyle0","InputLabel","helperText","hideLabel","required","status","useLabelTag","isHelperTextSlotUsed","slot","assignedEls","assignedElements","length","tagName","onComponentRequiredPropUndefined","prop","label","propName","labelText","helperTextId","for","getInputHelperTextID","helperTextClass","helpertext","helperTextSlot","querySelector","variant","htmlFor","id","icInputValidationCss","IcInputValidationStyle0","ICON","Warning","warningIcon","Error","errorIcon","INVISIBLE_CHAR","InputValidation","ariaLiveMode","watchMessageHandler","newValue","messageEl","textContent","setTimeout","message","displayIcon","getInputValidationTextID","ref"],"sources":["../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.css?tag=ic-input-component-container","../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.js","../web-components/dist/collection/components/ic-input-container/ic-input-container.css?tag=ic-input-container","../web-components/dist/collection/components/ic-input-container/ic-input-container.js","../web-components/dist/collection/components/ic-input-label/ic-input-label.css?tag=ic-input-label","../web-components/dist/collection/components/ic-input-label/ic-input-label.js","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.css?tag=ic-input-validation","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.js"],"sourcesContent":["ic-input-component-container {\n /**\n * @prop --border-color: Border colour of the input component container\n * @prop --border-color-hover: Border colour of the input component container on hover\n * @prop --border-color-pressed: Border colour of the input component container when pressed\n * @prop --border-color-disabled: Border colour of the input component container when disabled\n * @prop --border-color-error: Border colour of the error variant for input component container\n * @prop --border-color-error-hover: Border colour of the error hover variant for input component container\n * @prop --border-color-error-pressed: Border colour of the error pressed variant for input component container\n * @prop --border-color-warning: Border colour of the warning variant for input component container\n * @prop --border-color-warning-hover: Border colour of the warning hover variant for input component container\n * @prop --border-color-warning-pressed: Border colour of the warning pressed variant for input component container\n * @prop --border-color-success: Border colour of the success variant for input component container\n * @prop --border-color-success-hover: Border colour of the success hover variant for input component container\n * @prop --border-color-success-pressed: Border colour of the success pressed variant for input component container\n */\n\n display: flex;\n border: var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-slow);\n height: 2.5rem;\n min-height: 2.5rem;\n width: var(--input-width, 20rem);\n padding: var(--ic-space-1px);\n background-color: var(--input-bg-color, var(--ic-color-background-primary));\n box-sizing: border-box;\n fill: var(--ic-architectural-400);\n outline: none;\n}\n\nic-input-component-container.ic-input-component-container-full-width {\n width: 100%;\n}\n\nic-input-component-container.ic-input-component-container-disabled,\nic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled));\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly {\n height: auto;\n background: transparent;\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-readonly:hover {\n border: none;\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover));\n}\n\nic-input-component-container.ic-input-component-container-error:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed));\n}\n\nic-input-component-container.ic-input-component-container-warning {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-warning:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover));\n}\n\nic-input-component-container.ic-input-component-container-warning:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed));\n}\n\nic-input-component-container.ic-input-component-container-success {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-success:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover));\n}\n\nic-input-component-container.ic-input-component-container-success:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed));\n}\n\nic-input-component-container.ic-input-component-container-small {\n height: var(--ic-space-xl);\n min-height: var(--ic-space-xl);\n}\n\nic-input-component-container.ic-input-component-container-large {\n height: var(--ic-space-xxl);\n min-height: var(--ic-space-xxl);\n}\n\nic-input-component-container.ic-input-component-container-multiline {\n height: auto;\n}\n\nic-input-component-container .icon-container {\n margin-top: var(--ic-space-xxs);\n margin-left: 0.438rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.ic-input-component-container-multiline\n .icon-container,\nic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small\n .icon-container {\n margin-top: 0.375rem;\n display: block;\n}\n\nic-input-component-container.ic-input-component-container-readonly\n .icon-container {\n margin-left: -0.313rem;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::-moz-placeholder {\n display: none;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::placeholder {\n display: none;\n}\n\nic-input-component-container .inline-success {\n margin: var(--ic-space-xs) 0.375rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container .inline-success > svg {\n fill: var(--ic-input-component-container-success-icon-inline-color);\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-component-container:hover {\n border: var(--ic-input-component-container-hover-border);\n border-color: var(--border-color-hover, var(--ic-color-border-neutral-hover));\n color: var(--ic-action-monochrome-hover-dark);\n}\n\nic-input-component-container:focus {\n border: var(--ic-border-pressed);\n border-color: var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n );\n}\n\n.focus-indicator {\n display: flex;\n width: 100%;\n margin: -0.125rem;\n padding: 0.125rem;\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.focus-indicator:focus-within,\n.focus-indicator-enabled {\n box-shadow: var(--ic-border-focus);\n}\n\n.focus-indicator.ic-input-component-container-dark:focus-within {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n ic-input-component-container,\n .focus-indicator {\n transition: none;\n }\n\n ic-input-component-container:focus-within {\n border: var(--ic-border-width) solid Highlight;\n outline: 0.125rem solid Highlight;\n }\n\n ic-input-component-container.ic-input-component-container-disabled,\n ic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed GrayText;\n }\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport { removeDisabledFalse, renderDynamicChildSlots, slotHasContent, } from \"../../utils/helpers\";\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\nexport class InputComponentContainer {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * If `true`, the input component container will fill the width of the container it is in.\n */\n this.fullWidth = false;\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n this.multiLine = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n /**\n * The size of the input component container component.\n */\n this.size = \"medium\";\n /**\n * If `true`, the validation will display inline.\n */\n this.validationInline = false;\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n this.validationStatus = \"\";\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, \"left-icon\", this));\n this.hostMutationObserver.observe(this.el, { childList: true });\n }\n render() {\n const { size, validationStatus, disabled, readonly, multiLine, fullWidth, validationInline, } = this;\n return (h(Host, { key: '82e6604ab956d7648209ae1214797d48ce4a169c', class: {\n [`ic-input-component-container-${size}`]: true,\n [`ic-input-component-container-${validationStatus}`]: validationStatus !== \"\" && !disabled && !readonly,\n \"ic-input-component-container-disabled\": !!disabled,\n \"ic-input-component-container-readonly\": !!readonly,\n \"ic-input-component-container-multiline\": !!multiLine,\n \"ic-input-component-container-full-width\": !!fullWidth,\n }, \"aria-disabled\": disabled ? \"true\" : null }, h(\"div\", { key: '0fd329a8f1397ab2b6f7b4f3fd62d180003ef7e4', class: \"focus-indicator\" }, slotHasContent(this.el, \"left-icon\") && (h(\"div\", { key: '3af5861c01b3e6338e20288c0577d4554d9357e6', class: \"icon-container\" }, h(\"slot\", { key: '25bd5414058904fb5ed05f0e4e7fda6fc4966fbb', name: \"left-icon\" }))), h(\"slot\", { key: '2a63ea395d97ca2f3121f30fae1a3ac8bdfd7599' }), validationInline &&\n validationStatus === IcInformationStatus.Success && (h(\"span\", { key: 'ac962172c01b7cc0abf776b7a5ff0e58cd996ad7', class: \"inline-success\", innerHTML: successIcon })))));\n }\n static get is() { return \"ic-input-component-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will fill the width of the container it is in.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"multiLine\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will allow for multiple lines.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"multi-line\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the input component container component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"validationInline\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the validation will display inline.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"validation-inline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-input-component-container.js.map\n","ic-input-container .component-container {\n display: flex;\n flex-direction: column;\n}\n","import { Host, h } from \"@stencil/core\";\nexport class InputContainer {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n }\n render() {\n return (h(Host, { key: 'd7a6f03073013efef8534f6305e64f66d2b58b91' }, h(\"div\", { key: 'f93b5ad4fc27eed8fabf3fd83de73906b4592ca4', class: {\n [\"component-container\"]: true,\n [\"disabled\"]: !!this.disabled,\n [\"readonly\"]: !!this.readonly,\n } }, h(\"slot\", { key: '59074f71d915aebc3205308c0406b4f6ab2a73ae' }))));\n }\n static get is() { return \"ic-input-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n}\n//# sourceMappingURL=ic-input-container.js.map\n","ic-input-label {\n margin-bottom: var(--ic-space-xs);\n\n --ic-typography-color: var(\n --ic-input-label-text-color,\n var(--ic-color-text-primary)\n );\n}\n\nic-input-label.with-helper {\n margin-bottom: 0;\n}\n\nic-input-label.ic-input-label-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-typography-color);\n}\n\nic-input-label .helpertext,\nic-input-label .helpertext ::slotted(*) {\n margin-top: var(--ic-space-xxxs);\n padding-bottom: var(--ic-input-label-helpertext-padding, 0);\n\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-normal {\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-helpertext-color);\n}\n\nic-input-label .readonly-label {\n --ic-typography-color: var(--ic-input-label-readonly-label-color);\n}\n\nic-input-label .error-label {\n --ic-typography-color: var(--ic-input-label-error-label-color);\n}\n","import { Host, h } from \"@stencil/core\";\nimport { getInputHelperTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nexport class InputLabel {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * The helper text that will be displayed.\n */\n this.helperText = \"\";\n /**\n * The label will be visually hidden.\n */\n this.hideLabel = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n /**\n * If `true`, the input label will require a value.\n */\n this.required = false;\n /**\n * The status of the label - e.g. 'error'.\n */\n this.status = \"\";\n /**\n * @internal If `true`, wraps label text in label tag\n */\n this.useLabelTag = true;\n this.isHelperTextSlotUsed = (slot) => {\n const assignedEls = slot === null || slot === void 0 ? void 0 : slot.assignedElements();\n if (assignedEls && assignedEls.length) {\n for (const el of assignedEls) {\n if (el.tagName === \"SLOT\") {\n // Recursion needed for when slot is forwarded multiple times - through child components\n // (e.g. in date picker)\n if (this.isHelperTextSlotUsed(el)) {\n return true;\n }\n }\n else {\n // Found an assigned element which is not a nested <slot>\n return true;\n }\n }\n }\n return false;\n };\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Input Label\");\n }\n render() {\n const { disabled, readonly, label, required, helperText, status, hideLabel, useLabelTag, } = this;\n const labelText = required ? label + \" *\" : label;\n const helperTextId = this.for && getInputHelperTextID(this.for);\n const helperTextClass = {\n helpertext: true,\n \"helpertext-normal\": !disabled && !readonly,\n \"helpertext-readonly\": readonly,\n };\n const helperTextSlot = this.el.querySelector(\"slot[name='helper-text']\");\n return (h(Host, { key: 'b4ae951684bc9fbacd077fd7586a60a680cb1114', class: {\n \"ic-input-label-disabled\": !!disabled,\n \"ic-input-label-readonly\": readonly,\n \"with-helper\": this.isHelperTextSlotUsed(helperTextSlot) || helperText !== \"\",\n } }, !hideLabel && (h(\"ic-typography\", { key: 'dd5d6d73707aadd9cc59225224fffadefecda9c7', variant: \"label\", class: {\n \"readonly-label\": readonly,\n \"error-label\": status === \"error\" && !(readonly || disabled),\n } }, readonly || !useLabelTag ? (`${labelText}`) : (h(\"label\", { htmlFor: this.for }, labelText)))), this.isHelperTextSlotUsed(helperTextSlot) ? (h(\"span\", { id: helperTextId, class: helperTextClass }, h(\"slot\", { name: \"helper-text\" }))) : (helperText !== \"\" && (h(\"ic-typography\", { variant: \"caption\", class: helperTextClass }, h(\"span\", { id: helperTextId }, helperText))))));\n }\n static get is() { return \"ic-input-label\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"./ic-input-label.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-label.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the label is bound to.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label will be visually hidden.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text content of the label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input label will require a value.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"error\\\" | \\\"\\\"\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the label - e.g. 'error'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"useLabelTag\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, wraps label text in label tag\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"use-label-tag\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-input-label.js.map\n","ic-input-validation {\n width: var(--input-width, 20rem);\n margin-top: var(--ic-space-xs);\n display: flex;\n}\n\nic-input-validation.ic-input-validation-full-width {\n width: 100%;\n}\n\nic-input-validation span.status-icon {\n padding-right: var(--ic-space-xxs);\n}\n\nic-input-validation span.status-icon > svg {\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-validation span.icon-success > svg {\n fill: var(--ic-input-validation-success-icon-color);\n}\n\nic-input-validation span.icon-error > svg {\n fill: var(--ic-input-validation-error, var(--ic-atoms-status-icon-error));\n}\n\nic-input-validation span.icon-warning > svg {\n fill: var(--ic-input-validation-warning-icon-color);\n}\n\nic-input-validation .statustext {\n flex-grow: 1;\n color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n\n --ic-typography-color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n}\n\nic-input-validation .sr-only {\n position: absolute;\n left: -9999px;\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\nimport { getInputValidationTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nconst ICON = {\n [IcInformationStatus.Warning]: warningIcon,\n [IcInformationStatus.Error]: errorIcon,\n [IcInformationStatus.Success]: successIcon,\n};\nconst INVISIBLE_CHAR = \"\\u200B\";\n/**\n * @slot validation-message-adornment - Content will be placed to the right of the validation message.\n */\nexport class InputValidation {\n constructor() {\n /**\n * The ARIA live mode to apply to the message.\n */\n this.ariaLiveMode = \"polite\";\n /**\n * If `true`, the input validation will fill the width of the container.\n */\n this.fullWidth = false;\n /**\n * The status of the validation - e.g. 'error' | 'warning' | 'success'.\n */\n this.status = \"\";\n }\n watchMessageHandler(newValue) {\n // Force detectable DOM changes\n // Invisible character used as screen readers can ignore whitespace changes e.g. \"\" and \" \"\n this.messageEl.textContent = INVISIBLE_CHAR;\n setTimeout(() => {\n this.messageEl.textContent = newValue;\n }, 100); // Delay to help ensure screen readers detect change\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.message, propName: \"message\" }], \"Input Validation\");\n this.messageEl.textContent = INVISIBLE_CHAR;\n }\n render() {\n const { ariaLiveMode, fullWidth, status, message } = this;\n const displayIcon = status !== \"\" ? ICON[status] : \"\";\n return (h(Host, { key: '34ecf789f9c0821d672bcdf532f778b8132bb595', class: {\n [`ic-input-validation-${status}`]: status !== \"\",\n \"ic-input-validation-full-width\": !!fullWidth,\n } }, displayIcon !== \"\" && (h(\"span\", { key: '8d40b240e1e7647725c0359205a638eae4cb2cee', class: {\n \"status-icon\": true,\n [`icon-${status}`]: true,\n }, innerHTML: displayIcon })), h(\"ic-typography\", { key: '841555cf1e183663ed22863bb98ccbf18dc5747d', variant: \"caption\", class: \"statustext\" }, h(\"span\", { key: '8f9cde8e980016736a58129b3928a8f90da8054c', id: this.for && getInputValidationTextID(this.for) }, message), h(\"span\", { key: '3497fb929f8e6d55db69462405d4d2655741511b', ref: (el) => (this.messageEl = el), class: \"sr-only\", \"aria-live\": ariaLiveMode })), h(\"slot\", { key: '58ac53581ef92420a088eb50bfb1e9fcedad5660', name: \"validation-message-adornment\" })));\n }\n static get is() { return \"ic-input-validation\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get properties() {\n return {\n \"ariaLiveMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAriaLiveModeVariants\",\n \"resolved\": \"\\\"assertive\\\" | \\\"off\\\" | \\\"polite\\\" | undefined\",\n \"references\": {\n \"IcAriaLiveModeVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-input-validation.types\",\n \"id\": \"src/components/ic-input-validation/ic-input-validation.types.tsx::IcAriaLiveModeVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ARIA live mode to apply to the message.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aria-live-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"polite\\\"\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the validation is bound to.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input validation will fill the width of the container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"message\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation message to display.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"message\",\n \"reflect\": false\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the validation - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"message\",\n \"methodName\": \"watchMessageHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-input-validation.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,h as s,H as t,g as e}from"./p-8e4e97b4.js";import{D as h,f as a,h as l}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,h as s,H as t,g as e}from"./p-8e4e97b4.js";import{D as h,f as a,h as l}from"./p-ee95905f.js";const c=":host{display:block}:host ol{display:flex;list-style-type:none;align-items:center;flex-wrap:wrap;padding:0;margin:0}:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb){display:none}:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb.show){display:flex}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.hide){display:none;opacity:0;visibility:hidden}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.visuallyhidden){display:block;opacity:0;transition:all var(--ic-easing-transition-slow)}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.fade){opacity:1}";const r=c;const d=class{constructor(s){i(this,s);this.ADD_CLASS_DELAY=50;this.IC_BREADCRUMB="ic-breadcrumb";this.SHOW_BACK_ICON="show-back-icon";this.collapsedBreadcrumbs=[];this.resizeObserver=null;this.lastParentBreadcrumb=null;this.deviceSize=h.XL;this.backBreadcrumbOnly=false;this.collapsed=false;this.monochrome=false;this.theme="inherit";this.setBreadcrumbTheme=()=>{Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB)).forEach((i=>{i.theme=this.theme}))};this.setBreadcrumbMonochrome=()=>{Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB)).forEach((i=>{i.monochrome=this.monochrome}))};this.setBackBreadcrumb=()=>{if(this.backBreadcrumbOnly){this.setLastParentCollapsedBackBreadcrumb()}else{this.revertLastParentCollapsedBreadcrumb()}};this.setBackBreadcrumbAttr=()=>{if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.classList.add("show");this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON,"true")}};this.getLastParentBreadcrumb=()=>{const i=this.el.querySelectorAll(this.IC_BREADCRUMB);return i.length>1?i[i.length-2]:null};this.setCollapsed=()=>{var i,s;this.collapsedBreadcrumbs.forEach((i=>{i.classList.remove("visuallyhidden");i.classList.remove("fade")}));if(this.collapsed){this.renderCollapsedBreadcrumb();const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));this.collapsedBreadcrumbs=s.splice(1,s.length-2).filter((i=>!i.classList.contains("collapsed-breadcrumb-wrapper")));if(!this.backBreadcrumbOnly){this.collapsedBreadcrumbs.forEach((i=>i.classList.add("hide")))}if(this.collapsedBreadcrumbWrapper){(i=s[0])===null||i===void 0?void 0:i.insertAdjacentElement("afterend",this.collapsedBreadcrumbWrapper)}}else{(s=this.collapsedBreadcrumbWrapper)===null||s===void 0?void 0:s.remove()}};this.clickHandler=()=>{var i;(i=this.collapsedBreadcrumbWrapper)===null||i===void 0?void 0:i.remove();this.collapsedBreadcrumbs.forEach((i=>{i.classList.add("visuallyhidden");i.classList.remove("hide");setTimeout((()=>{i.classList.add("fade")}),this.ADD_CLASS_DELAY);i.addEventListener("transitionend",this.transitionendHandler)}));this.collapsed=false;this.collapsedBreadcrumbs[0].setFocus()};this.renderCollapsedBreadcrumb=()=>{if(this.collapsedBreadcrumbEl===undefined){this.collapsedBreadcrumbWrapper=document.createElement("ic-breadcrumb");this.collapsedBreadcrumbWrapper.classList.add("collapsed-breadcrumb-wrapper");this.collapsedBreadcrumbEl=document.createElement("button");const i=document.createElement("span");i.id="collapsed-button-label";i.innerText="Collapsed breadcrumbs";i.className="hide";this.collapsedBreadcrumbEl.setAttribute("aria-labelledby",i.id);const s=document.createElement("span");s.id="collapsed-button-described";s.innerText="Select to view collapsed breadcrumbs";s.className="hide";this.collapsedBreadcrumbEl.setAttribute("aria-describedby",s.id);this.collapsedBreadcrumbEl.id="collapsed-ellipsis";this.collapsedBreadcrumbEl.innerText="...";this.collapsedBreadcrumbEl.classList.add("collapsed-breadcrumb");this.collapsedBreadcrumbEl.addEventListener("click",this.clickHandler);this.collapsedBreadcrumbWrapper.append(s);this.collapsedBreadcrumbWrapper.append(i);this.collapsedBreadcrumbWrapper.append(this.collapsedBreadcrumbEl)}};this.transitionendHandler=i=>{if(i.propertyName==="opacity"){i.target.classList.remove("visuallyhidden")}};this.setLastParentCollapsedBackBreadcrumb=()=>{this.lastParentBreadcrumb=this.getLastParentBreadcrumb();this.setBackBreadcrumbAttr();if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.classList.remove("hide");this.lastParentBreadcrumb.classList.add("show")}};this.revertLastParentCollapsedBreadcrumb=()=>{if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON,"false");if(this.collapsed){this.lastParentBreadcrumb.classList.add("hide")}}};this.resizeObserverCallback=i=>{if(i!==this.deviceSize){this.deviceSize=i;const s=this.deviceSize<=h.S;this.el.setAttribute("back-breadcrumb-only",`${s}`);if(s){if(this.collapsed){this.setLastParentCollapsedBackBreadcrumb()}else{this.setBackBreadcrumb()}}else{const i=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));if(this.collapsed&&i.length>2){this.revertLastParentCollapsedBreadcrumb();this.setCollapsed()}else{i.forEach((i=>{i.setAttribute(this.SHOW_BACK_ICON,"false")}))}}}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.resizeObserverCallback(a())}));this.resizeObserver.observe(this.el)}}watchBackBreadcrumbHandler(){this.setBackBreadcrumb()}watchCollapsedHandler(){this.setCollapsed()}watchMonochromeHandler(){this.setBreadcrumbMonochrome()}watchThemeHandler(){this.setBreadcrumbTheme()}componentWillLoad(){this.setBreadcrumbTheme();this.setBreadcrumbMonochrome();if(this.backBreadcrumbOnly){this.setBackBreadcrumb()}else{l(this.runResizeObserver)}if(this.collapsed&&this.el.querySelectorAll(this.IC_BREADCRUMB).length>2){if(a()===h.S){this.setLastParentCollapsedBackBreadcrumb()}else{this.setCollapsed()}}this.lastParentBreadcrumb=this.getLastParentBreadcrumb()}disconnectedCallback(){var i,s;(i=this.lastParentBreadcrumb)===null||i===void 0?void 0:i.removeEventListener("transitionend",this.transitionendHandler);(s=this.collapsedBreadcrumbEl)===null||s===void 0?void 0:s.removeEventListener("click",this.clickHandler)}render(){const{backBreadcrumbOnly:i,collapsed:e,theme:h}=this;return s(t,{key:"e9547e6fce74b57f2a3d7904bdca580c59abf881",class:{"ic-breadcrumb-group-back":i,"ic-breadcrumb-group-collapsed":e,[`ic-theme-${h}`]:h!=="inherit"}},s("nav",{key:"56fd90771323680169a7e2ff757c534f499bda48","aria-label":"breadcrumbs"},s("ol",{key:"2817e0c715c94937436a41222f86a0e5e6b9cc92"},s("slot",{key:"137e284689752e6256c39ecc19988aafd3e49942"}))))}get el(){return e(this)}static get watchers(){return{backBreadcrumbOnly:["watchBackBreadcrumbHandler"],collapsed:["watchCollapsedHandler"],monochrome:["watchMonochromeHandler"],theme:["watchThemeHandler"]}}};d.style=r;export{d as ic_breadcrumb_group};
|
|
2
|
+
//# sourceMappingURL=p-c7a97221.entry.js.map
|