@ukic/canary-web-components 3.0.0-canary.30 → 3.0.0-canary.31
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/date-helpers-d7ee7b45.js.map +1 -1
- package/dist/cjs/{helpers-da852478.js → helpers-6f4b406b.js} +20 -20
- package/dist/cjs/helpers-6f4b406b.js.map +1 -0
- package/dist/cjs/ic-button_3.cjs.entry.js +5 -5
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-calendar_2.cjs.entry.js +2354 -0
- package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +6 -6
- package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox_3.cjs.entry.js +39 -16
- package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +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 +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +4 -4
- package/dist/cjs/ic-data-table.cjs.entry.js +8 -8
- package/dist/cjs/ic-date-picker.cjs.entry.js +98 -854
- package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +11 -6
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +10 -10
- 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 +1 -1
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js +3 -3
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +18 -18
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
- 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 +4 -4
- 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 +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +13 -13
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +4 -4
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
- 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-table-of-contents.cjs.entry.js +4 -4
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-time-input.cjs.entry.js +5 -5
- 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 +2 -2
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
- package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
- package/dist/cjs/index-d337cd8a.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ic-calendar/ic-calendar.css +910 -0
- package/dist/collection/components/ic-calendar/ic-calendar.js +1542 -0
- package/dist/collection/components/ic-calendar/ic-calendar.js.map +1 -0
- package/dist/collection/components/ic-calendar/ic-calendar.stories.js +295 -0
- package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -0
- package/dist/collection/components/ic-calendar/ic-day-button.js.map +1 -0
- package/dist/collection/components/ic-calendar/ic-month-picker.js +35 -0
- package/dist/collection/components/ic-calendar/ic-month-picker.js.map +1 -0
- package/dist/collection/components/ic-calendar/ic-year-picker.js +57 -0
- package/dist/collection/components/ic-calendar/ic-year-picker.js.map +1 -0
- package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js +13 -0
- package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +6 -6
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.js +7 -7
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +3 -3
- package/dist/collection/components/ic-date-input/ic-date-input.js +8 -7
- package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
- package/dist/collection/components/ic-date-picker/ic-date-picker.css +7 -405
- package/dist/collection/components/ic-date-picker/ic-date-picker.js +145 -802
- package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
- package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +110 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
- package/dist/collection/components/ic-date-picker/story-data.js +5 -1
- package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +7 -7
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
- package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +3 -3
- package/dist/collection/components/ic-time-input/ic-time-input.js +9 -8
- 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/date-helpers.js +3 -0
- package/dist/collection/utils/date-helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/{esm/date-helpers-2b531c8c.js → components/date-helpers.js} +2 -2
- package/dist/components/date-helpers.js.map +1 -0
- package/dist/components/helpers2.js +20 -20
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-calendar.d.ts +11 -0
- package/dist/components/ic-calendar.js +8 -0
- package/dist/components/ic-calendar.js.map +1 -0
- package/dist/components/ic-calendar2.js +1235 -0
- package/dist/components/ic-calendar2.js.map +1 -0
- package/dist/components/ic-card-horizontal.js +6 -6
- package/dist/components/ic-card-horizontal.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 +31 -8
- 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-data-table-title-bar.js +3 -3
- package/dist/components/ic-data-table.js +8 -8
- package/dist/components/ic-date-input2.js +6 -88
- package/dist/components/ic-date-input2.js.map +1 -1
- package/dist/components/ic-date-picker.js +113 -880
- package/dist/components/ic-date-picker.js.map +1 -1
- package/dist/components/ic-dialog.js +1 -1
- 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 +12 -6
- 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 +3 -3
- 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 +3 -3
- 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-bar2.js +6 -6
- package/dist/components/ic-pagination-bar2.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 +9 -9
- 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 +7 -7
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +4 -4
- 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 +1 -1
- 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.js +3 -3
- package/dist/components/ic-text-field2.js +6 -6
- 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 +5 -5
- 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 +4 -4
- 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-tree-item.js +3 -3
- package/dist/components/ic-tree-view.js +4 -4
- package/dist/core/core.css +21 -9
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-9fade6ad.entry.js → p-0043b019.entry.js} +2 -2
- package/dist/core/{p-9fade6ad.entry.js.map → p-0043b019.entry.js.map} +1 -1
- package/dist/core/{p-889bb8db.entry.js → p-04cb17d7.entry.js} +2 -2
- package/dist/core/{p-889bb8db.entry.js.map → p-04cb17d7.entry.js.map} +1 -1
- package/dist/core/{p-5ef453b6.entry.js → p-15c05eb8.entry.js} +2 -2
- package/dist/core/{p-5ef453b6.entry.js.map → p-15c05eb8.entry.js.map} +1 -1
- package/dist/core/p-1a976789.entry.js +2 -0
- package/dist/core/p-1a976789.entry.js.map +1 -0
- package/dist/core/{p-1be092cc.entry.js → p-2188b483.entry.js} +2 -2
- package/dist/core/{p-1be092cc.entry.js.map → p-2188b483.entry.js.map} +1 -1
- package/dist/core/{p-8c94541e.entry.js → p-24bac55f.entry.js} +2 -2
- package/dist/core/{p-8c94541e.entry.js.map → p-24bac55f.entry.js.map} +1 -1
- package/dist/core/{p-7f304d85.entry.js → p-2646a629.entry.js} +2 -2
- package/dist/core/{p-7f304d85.entry.js.map → p-2646a629.entry.js.map} +1 -1
- package/dist/core/{p-5cf704e3.entry.js → p-319e3d5b.entry.js} +2 -2
- package/dist/core/{p-5cf704e3.entry.js.map → p-319e3d5b.entry.js.map} +1 -1
- package/dist/core/{p-9e200827.entry.js → p-31f3fb15.entry.js} +2 -2
- package/dist/core/{p-9e200827.entry.js.map → p-31f3fb15.entry.js.map} +1 -1
- package/dist/core/{p-fd64c0e5.entry.js → p-3891ce53.entry.js} +2 -2
- package/dist/core/{p-fd64c0e5.entry.js.map → p-3891ce53.entry.js.map} +1 -1
- package/dist/core/{p-fad44bc8.entry.js → p-3ba2b455.entry.js} +2 -2
- package/dist/core/{p-fad44bc8.entry.js.map → p-3ba2b455.entry.js.map} +1 -1
- package/dist/core/{p-df220b91.entry.js → p-3ef2e98d.entry.js} +2 -2
- package/dist/core/{p-03ae0bc3.entry.js → p-41def410.entry.js} +2 -2
- package/dist/core/{p-03ae0bc3.entry.js.map → p-41def410.entry.js.map} +1 -1
- package/dist/core/p-4b188516.entry.js +2 -0
- package/dist/core/p-4b188516.entry.js.map +1 -0
- package/dist/core/{p-93e1ba0a.entry.js → p-5254a078.entry.js} +2 -2
- package/dist/core/{p-93e1ba0a.entry.js.map → p-5254a078.entry.js.map} +1 -1
- package/dist/core/{p-9c2e9189.entry.js → p-53740194.entry.js} +2 -2
- package/dist/core/{p-9c2e9189.entry.js.map → p-53740194.entry.js.map} +1 -1
- package/dist/core/{p-e380a54e.entry.js → p-5a4344cb.entry.js} +2 -2
- package/dist/core/{p-e380a54e.entry.js.map → p-5a4344cb.entry.js.map} +1 -1
- package/dist/core/p-5b32aaf3.entry.js +2 -0
- package/dist/core/p-5b32aaf3.entry.js.map +1 -0
- package/dist/core/{p-d8200098.entry.js → p-67c3985d.entry.js} +2 -2
- package/dist/core/{p-d8200098.entry.js.map → p-67c3985d.entry.js.map} +1 -1
- package/dist/core/{p-982a173d.entry.js → p-7332320d.entry.js} +2 -2
- package/dist/core/{p-982a173d.entry.js.map → p-7332320d.entry.js.map} +1 -1
- package/dist/core/{p-bc441e4c.js → p-75c3b882.js} +2 -2
- package/dist/core/{p-bc441e4c.js.map → p-75c3b882.js.map} +1 -1
- package/dist/core/{p-b88db5e3.entry.js → p-7a0f62c2.entry.js} +2 -2
- package/dist/core/{p-b88db5e3.entry.js.map → p-7a0f62c2.entry.js.map} +1 -1
- package/dist/core/p-81f12581.entry.js +2 -0
- package/dist/core/p-81f12581.entry.js.map +1 -0
- package/dist/core/{p-193afb53.entry.js → p-847cbb16.entry.js} +2 -2
- package/dist/core/{p-193afb53.entry.js.map → p-847cbb16.entry.js.map} +1 -1
- package/dist/core/{p-f3ccaa0b.entry.js → p-8e592393.entry.js} +2 -2
- package/dist/core/{p-f3ccaa0b.entry.js.map → p-8e592393.entry.js.map} +1 -1
- package/dist/core/p-9044539c.entry.js +2 -0
- package/dist/core/p-9044539c.entry.js.map +1 -0
- package/dist/core/{p-f4e7cae6.entry.js → p-90611726.entry.js} +2 -2
- package/dist/core/{p-f4e7cae6.entry.js.map → p-90611726.entry.js.map} +1 -1
- package/dist/core/{p-b00efb15.entry.js → p-9674b63f.entry.js} +2 -2
- package/dist/core/{p-b00efb15.entry.js.map → p-9674b63f.entry.js.map} +1 -1
- package/dist/core/{p-a27e1cee.entry.js → p-9a95f428.entry.js} +2 -2
- package/dist/core/{p-a27e1cee.entry.js.map → p-9a95f428.entry.js.map} +1 -1
- package/dist/core/{p-fb43abd6.entry.js → p-9ca147f3.entry.js} +2 -2
- package/dist/core/{p-fb43abd6.entry.js.map → p-9ca147f3.entry.js.map} +1 -1
- package/dist/core/{p-a8cc28a6.entry.js → p-9f76eed6.entry.js} +2 -2
- package/dist/core/{p-035dbee0.entry.js → p-a1448064.entry.js} +2 -2
- package/dist/core/{p-035dbee0.entry.js.map → p-a1448064.entry.js.map} +1 -1
- package/dist/core/{p-9ce9d39a.entry.js → p-a237af88.entry.js} +2 -2
- package/dist/core/{p-9ce9d39a.entry.js.map → p-a237af88.entry.js.map} +1 -1
- package/dist/core/{p-09c31ac6.entry.js → p-adde6c66.entry.js} +2 -2
- package/dist/core/{p-09c31ac6.entry.js.map → p-adde6c66.entry.js.map} +1 -1
- package/dist/core/{p-72b7051a.entry.js → p-af821831.entry.js} +2 -2
- package/dist/core/{p-72b7051a.entry.js.map → p-af821831.entry.js.map} +1 -1
- package/dist/core/{p-12e8dcdd.entry.js → p-afedcfdb.entry.js} +2 -2
- package/dist/core/{p-12e8dcdd.entry.js.map → p-afedcfdb.entry.js.map} +1 -1
- package/dist/core/{p-f098e531.entry.js → p-b4a2f6fa.entry.js} +2 -2
- package/dist/core/{p-f098e531.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
- package/dist/core/p-b4bfaf8f.entry.js +2 -0
- package/dist/core/p-b4bfaf8f.entry.js.map +1 -0
- package/dist/core/{p-ea1de762.entry.js → p-b80b08ae.entry.js} +2 -2
- package/dist/core/p-b80b08ae.entry.js.map +1 -0
- package/dist/core/{p-7bf9bbde.entry.js → p-ba21f477.entry.js} +2 -2
- package/dist/core/{p-7bf9bbde.entry.js.map → p-ba21f477.entry.js.map} +1 -1
- package/dist/core/{p-63203e59.entry.js → p-ba75ed34.entry.js} +2 -2
- package/dist/core/{p-63203e59.entry.js.map → p-ba75ed34.entry.js.map} +1 -1
- package/dist/core/{p-15a81f32.entry.js → p-bd9a76d8.entry.js} +2 -2
- package/dist/core/{p-15a81f32.entry.js.map → p-bd9a76d8.entry.js.map} +1 -1
- package/dist/core/{p-10950727.entry.js → p-c3eddb99.entry.js} +2 -2
- package/dist/core/{p-10950727.entry.js.map → p-c3eddb99.entry.js.map} +1 -1
- package/dist/core/{p-a99ad459.entry.js → p-c5d65718.entry.js} +2 -2
- package/dist/core/{p-a99ad459.entry.js.map → p-c5d65718.entry.js.map} +1 -1
- package/dist/core/{p-eb958cc8.entry.js → p-c6c87e58.entry.js} +2 -2
- package/dist/core/{p-eb958cc8.entry.js.map → p-c6c87e58.entry.js.map} +1 -1
- package/dist/core/{p-c8ce7d60.entry.js → p-e00e67ff.entry.js} +2 -2
- package/dist/core/{p-c8ce7d60.entry.js.map → p-e00e67ff.entry.js.map} +1 -1
- package/dist/core/{p-069e758b.entry.js → p-e1920777.entry.js} +2 -2
- package/dist/core/{p-92936b49.entry.js → p-ef5b6622.entry.js} +2 -2
- package/dist/core/{p-0f22f41e.js → p-f48ce5f6.js} +2 -2
- package/dist/core/p-f48ce5f6.js.map +1 -0
- package/dist/core/{p-1ca62941.entry.js → p-f5cea10d.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/date-helpers-5723de08.js +86 -0
- package/dist/esm/{date-helpers-2b531c8c.js.map → date-helpers-5723de08.js.map} +1 -1
- package/dist/esm/{helpers-89cb996d.js → helpers-9f228880.js} +21 -21
- package/dist/esm/helpers-9f228880.js.map +1 -0
- package/dist/esm/ic-button_3.entry.js +5 -5
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-calendar_2.entry.js +2349 -0
- package/dist/esm/ic-calendar_2.entry.js.map +1 -0
- package/dist/esm/ic-card-horizontal.entry.js +6 -6
- package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +2 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox_3.entry.js +39 -16
- package/dist/esm/ic-checkbox_3.entry.js.map +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 +2 -2
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-data-table-title-bar.entry.js +4 -4
- package/dist/esm/ic-data-table.entry.js +8 -8
- package/dist/esm/ic-date-picker.entry.js +100 -856
- package/dist/esm/ic-date-picker.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +11 -6
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_4.entry.js +10 -10
- 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 +1 -1
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu.entry.js +3 -3
- package/dist/esm/ic-menu.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +4 -4
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +6 -6
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination_4.entry.js +18 -18
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +4 -4
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +4 -4
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +4 -4
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +9 -9
- 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 +4 -4
- 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 +2 -2
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +13 -13
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +2 -2
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +4 -4
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +2 -2
- 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-table-of-contents.entry.js +4 -4
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-time-input.entry.js +5 -5
- 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 +2 -2
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +2 -2
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-tree-item.entry.js +3 -3
- package/dist/esm/ic-tree-view.entry.js +4 -4
- package/dist/esm/index-a7a720e7.js +4 -4
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-calendar/ic-calendar.d.ts +216 -0
- package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +151 -0
- package/dist/types/components/ic-calendar/test/a11y/ic-calendar.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +1 -2
- package/dist/types/components/ic-date-input/ic-date-input.d.ts +2 -2
- package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +22 -105
- package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +81 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +1 -1
- package/dist/types/components/ic-time-input/ic-time-input.d.ts +2 -2
- package/dist/types/components.d.ts +213 -14
- package/dist/types/utils/date-helpers.d.ts +1 -0
- package/dist/types/utils/types.d.ts +1 -0
- package/hydrate/index.js +2085 -1639
- package/hydrate/index.mjs +2085 -1639
- package/package.json +3 -3
- package/dist/cjs/helpers-da852478.js.map +0 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +0 -1214
- package/dist/cjs/ic-date-input.cjs.entry.js.map +0 -1
- package/dist/collection/components/ic-date-picker/ic-day-button.js.map +0 -1
- package/dist/collection/components/ic-date-picker/ic-month-picker.js +0 -29
- package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +0 -1
- package/dist/collection/components/ic-date-picker/ic-year-picker.js +0 -39
- package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +0 -1
- package/dist/core/p-0f22f41e.js.map +0 -1
- package/dist/core/p-13c8859b.entry.js +0 -2
- package/dist/core/p-13c8859b.entry.js.map +0 -1
- package/dist/core/p-2528ecec.entry.js +0 -2
- package/dist/core/p-2528ecec.entry.js.map +0 -1
- package/dist/core/p-402870f7.entry.js +0 -2
- package/dist/core/p-402870f7.entry.js.map +0 -1
- package/dist/core/p-bd8c2e24.entry.js +0 -2
- package/dist/core/p-bd8c2e24.entry.js.map +0 -1
- package/dist/core/p-c0d4db72.entry.js +0 -2
- package/dist/core/p-c0d4db72.entry.js.map +0 -1
- package/dist/core/p-ea1de762.entry.js.map +0 -1
- package/dist/core/p-f16c4210.entry.js +0 -2
- package/dist/core/p-f16c4210.entry.js.map +0 -1
- package/dist/esm/helpers-89cb996d.js.map +0 -1
- package/dist/esm/ic-date-input.entry.js +0 -1210
- package/dist/esm/ic-date-input.entry.js.map +0 -1
- /package/dist/collection/components/{ic-date-picker → ic-calendar}/ic-day-button.js +0 -0
- /package/dist/core/{p-df220b91.entry.js.map → p-3ef2e98d.entry.js.map} +0 -0
- /package/dist/core/{p-a8cc28a6.entry.js.map → p-9f76eed6.entry.js.map} +0 -0
- /package/dist/core/{p-069e758b.entry.js.map → p-e1920777.entry.js.map} +0 -0
- /package/dist/core/{p-92936b49.entry.js.map → p-ef5b6622.entry.js.map} +0 -0
- /package/dist/core/{p-1ca62941.entry.js.map → p-f5cea10d.entry.js.map} +0 -0
- /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-day-button.d.ts +0 -0
- /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-month-picker.d.ts +0 -0
- /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-year-picker.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icCheckboxCss","IcCheckboxStyle0","Checkbox","constructor","hostRef","this","additionalFieldDisplay","checked","initiallyChecked","disabled","dynamicText","hideLabel","indeterminate","displayIndeterminate","nativeIndeterminateBehaviour","theme","value","handleClick","icCheck","emit","handleFormReset","watchDisabledHandler","removeDisabledFalse","el","watchIndeterminateHandler","componentWillLoad","addFormResetListener","parentElement","tagName","name","label","size","groupLabel","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","querySelectorAll","forEach","textfield","setAttribute","additionalFieldContainer","style","display","disconnectedCallback","removeFormResetListener","setFocus","_a","checkboxEl","focus","render","form","id","replace","isDynamicAdditionalField","renderHiddenInput","removeHiddenInput","h","Host","key","class","viewBox","xmlns","d","role","checkbox","ref","type","onClick","undefined","variant","htmlFor","isSlotUsed","delegatesFocus","icEmptyStateCss","IcEmptyStateStyle0","EmptyState","hostMutationObserver","aligned","imageSize","disconnect","heading","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","body","maxLines","subheading","icPaginationBarCss","IcPaginationBarStyle0","PaginationBar","PAGE_INPUT_FIELD_ID","INVALID_PAGE_ERROR","resizeObserver","activePage","inputError","itemsPerPage","itemsPerPageString","lowerBound","paginationWrapped","alignment","currentPage","hideAllFromItemsPerPage","itemLabel","monochrome","rangeLabelType","pageLabel","showGoToPageControl","hideRangeLabel","selectItemsPerPageOnEnter","showItemsPerPageControl","setToFirstPageOnPaginationChange","setSelectedItemsPerPage","selectedItemsPerPage","displayedItemsPerPageOptions","isSelectedItemsPerPagePresent","some","toString","setItemsPerPage","console","error","totalItems","changeItemsPerPage","Number","pageDropdownEl","userSetItemsPerPage","changePage","page","setUpperBound","focusElFromLabel","_b","paginationBarEl","querySelector","goToPage","input","pageInputEl","totalPages","paginationEl","setCurrentPage","icPageChange","pageInputTooltipEl","displayTooltip","validationStatus","setInputError","goToPageLabelClickHandler","handleBlur","textField","handleFocus","handleInputChange","inputValue","parseInt","handleKeydown","ev","handleKeyUp","isNaN","itemsPerPageLabelClickHandler","paginationShouldWrap","clientHeight","runResizeObserver","ResizeObserver","clientWidth","paginationWidth","setToFirstPage","firstPage","newValue","isUserAction","icItemsPerPageChange","Math","ceil","fromItemsPerPage","setPaginationBarContent","clonedItemsPerPageOptions","itemsPerPageOptions","JSON","parse","stringify","push","String","filter","lastOptionValue","updated","upperBound","min","watchPageNumberHandler","watchSelectedItemsPerPageHandler","watchItemLabelHandler","capitalizedItemLabel","capitalize","lowerCaseItemLabel","toLowerCase","watchItemsPerPageOptionsHandler","newVal","oldVal","watchPageLabelHandler","capitalizedPageLabel","lowerCasePageLabel","watchTotalItemsHandler","watchSetToFirstPageOnPaginationChange","checkResizeObserver","shadowRoot","_c","textAlign","padding","pageChangeHandler","detail","options","selectOnEnter","onIcChange","pages","target","disableHover","disableClick","onKeyDown","onKeyUp","onInput","max","validationInlineInternal","onBlur","onFocus"],"sources":["../web-components/dist/collection/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","../web-components/dist/collection/components/ic-checkbox/ic-checkbox.js","../web-components/dist/collection/components/ic-empty-state/ic-empty-state.css?tag=ic-empty-state&encapsulation=shadow","../web-components/dist/collection/components/ic-empty-state/ic-empty-state.js","src/components/ic-pagination-bar/ic-pagination-bar.css?tag=ic-pagination-bar&encapsulation=shadow","src/components/ic-pagination-bar/ic-pagination-bar.tsx"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host(.ic-checkbox-disabled) {\n pointer-events: none;\n}\n\n.container {\n display: flex;\n width: -moz-fit-content;\n width: fit-content;\n padding: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n margin-bottom: var(--ic-space-xxs);\n align-items: center;\n}\n\n:host(.ic-data-table-checkbox) .container {\n padding: 0;\n margin-bottom: 0;\n}\n\n:host(.ic-checkbox-small) .container {\n margin-bottom: var(--ic-space-xxxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-checkbox-background-unselected);\n border: var(--ic-border-width) solid var(--ic-checkbox-border-unselected);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n flex-shrink: 0;\n}\n\n:host .container svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-checkbox-small) .checkbox,\n:host(.ic-checkbox-small) .container svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-checkbox-large) .checkbox,\n:host(.ic-checkbox-large) .container svg {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n}\n\n.checkbox:checked {\n background-color: var(--ic-checkbox-background-selected);\n border: var(--ic-border-width) solid var(--ic-checkbox-background-selected);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-checkbox-background-selected-disabled);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-background-selected-disabled);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: var(--ic-checkbox-background-indeterminate);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate);\n}\n\n.checkbox:indeterminate:disabled,\n.checkbox.indeterminate:checked:disabled {\n background-color: var(--ic-checkbox-background-indeterminate-disabled);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-disabled);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-checkbox-background-selected-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-checkbox-background-indeterminate-hover);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-checkbox-background-selected-pressed);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-checkbox-background-indeterminate-pressed);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-pressed);\n}\n\n.checkbox:hover {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-hover);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-hover);\n}\n\n.checkbox:active {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-pressed);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-pressed);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: var(--ic-border-width) dashed\n var(--ic-checkbox-border-unselected-disabled);\n}\n\n.checkbox-label {\n color: var(--ic-checkbox-text);\n\n --ic-typography-color: var(--ic-checkbox-text);\n}\n\n.checkbox-label > label {\n padding-left: var(--ic-space-sm);\n display: inline-block;\n}\n\n:host(.ic-checkbox-disabled) .checkbox-label {\n color: var(--ic-checkbox-text-disabled);\n\n --ic-typography-color: var(--ic-checkbox-text-disabled);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: var(--ic-checkbox-icon-pressed);\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .checkmark {\n margin-left: calc(-1 * var(--ic-space-md));\n right: calc(-1 * var(--ic-space-md));\n}\n\n:host(.ic-checkbox-large) .checkmark {\n margin-left: calc(-1 * var(--ic-space-xl));\n right: calc(-1 * var(--ic-space-xl));\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 0.875rem;\n height: var(--ic-space-xxxs);\n right: -1.188rem;\n margin-left: -0.875rem;\n z-index: 1;\n background-color: var(--ic-checkbox-icon-indeterminate);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .indeterminate-symbol {\n width: 0.6rem;\n right: -0.8rem;\n margin-left: -0.6rem;\n}\n\n:host(.ic-checkbox-large) .indeterminate-symbol {\n width: 1.25rem;\n right: -1.625rem;\n margin-left: -1.25rem;\n}\n\n.additional-field-wrapper {\n margin-left: calc(var(--ic-space-md) + var(--ic-space-lg));\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.branch-corner {\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-checkbox-required-bar);\n border-left: 0.125rem solid var(--ic-checkbox-required-bar);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-checkbox-required-text);\n\n --ic-typography-color: var(--ic-checkbox-required-text);\n\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n.dynamic-field-container {\n flex: 100%;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (max-width: 576px) {\n ::slotted(*) {\n --input-width: 100%;\n }\n\n .dynamic-field-container {\n flex: initial;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n -webkit-appearance: revert;\n -moz-appearance: revert;\n appearance: revert;\n transition: none;\n }\n\n .checkbox:checked {\n transition: none;\n }\n\n .checkbox:focus-visible {\n outline: 0.125rem solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n\n/* Right to left */\n.checkmark:dir(rtl) {\n right: 0;\n}\n\n.checkbox-label:dir(rtl) {\n padding-right: var(--ic-space-sm);\n padding-left: 0;\n}\n\n.indeterminate-symbol:dir(rtl) {\n right: 0.288rem;\n}\n\n.branch-corner:dir(rtl) {\n border-radius: 0 0 0.188rem;\n border-right: 0.125rem solid var(--ic-action-default);\n border-left: none;\n}\n\n.dynamic-container:dir(rtl) {\n margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, renderHiddenInput, removeHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from \"../../utils/helpers\";\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n constructor() {\n /**\n * The style of additionalField that will be displayed if used.\n */\n this.additionalFieldDisplay = \"static\";\n /**\n * If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\n */\n this.checked = false;\n this.initiallyChecked = this.checked;\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n this.disabled = false;\n /**\n * The text to be displayed when dynamic.\n */\n this.dynamicText = \"This selection requires additional answers\";\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n this.hideLabel = false;\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n this.indeterminate = false;\n this.displayIndeterminate = this.indeterminate;\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n this.nativeIndeterminateBehaviour = false;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * The value for the checkbox.\n */\n this.value = \"\";\n this.handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate =\n !this.nativeIndeterminateBehaviour && this.indeterminate && this.checked;\n this.icCheck.emit();\n };\n this.handleFormReset = () => {\n this.checked = this.initiallyChecked;\n };\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n watchIndeterminateHandler() {\n this.displayIndeterminate =\n this.indeterminate && (this.nativeIndeterminateBehaviour || this.checked);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n addFormResetListener(this.el, this.handleFormReset);\n const { parentElement } = this.el;\n if ((parentElement === null || parentElement === void 0 ? void 0 : parentElement.tagName) === \"IC-CHECKBOX-GROUP\") {\n const { name, label, size } = parentElement;\n if (!this.name)\n this.name = name;\n if (!this.size)\n this.size = size;\n this.groupLabel = label;\n }\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Checkbox\");\n }\n componentDidRender() {\n if (this.additionalFieldDisplay === \"static\") {\n this.el\n .querySelectorAll(\"ic-text-field\")\n .forEach((textfield) => textfield.setAttribute(\"disabled\", `${!this.checked}`));\n }\n else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n disconnectedCallback() {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n /**\n * Sets focus on the checkbox.\n */\n async setFocus() {\n var _a;\n (_a = this.checkboxEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n render() {\n const { additionalFieldDisplay, checked, disabled, displayIndeterminate, dynamicText, el, form, groupLabel, handleClick, hideLabel, label, name, size, theme, value, } = this;\n const id = `ic-checkbox-${label}-${groupLabel}`.replace(/ /g, \"-\");\n const isDynamicAdditionalField = additionalFieldDisplay === \"dynamic\";\n checked\n ? renderHiddenInput(el, value, name, disabled)\n : removeHiddenInput(el);\n return (h(Host, { key: '085faed0fb3d46c8903cc09959a1a04f36ac2eeb', class: {\n \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size}`]: !!size,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, h(\"div\", { key: '20c07a9059a4fd3b1b59587771190dfd7ebf70fe', class: \"container\" }, displayIndeterminate ? (h(\"div\", { class: \"indeterminate-symbol\" })) : (checked && (h(\"svg\", { class: \"checkmark\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\" }, h(\"title\", null, \"checkmark icon\"), h(\"path\", { d: \"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" })))), h(\"input\", { key: '94f8a343a8d80a8ceb68f2cddc300c7c500deae7', role: \"checkbox\", class: {\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }, ref: (el) => (this.checkboxEl = el), type: \"checkbox\", name: name, id: id, value: value, disabled: disabled, checked: checked, indeterminate: displayIndeterminate, onClick: handleClick, form: form, \"aria-label\": hideLabel ? label : undefined }), !hideLabel && (h(\"ic-typography\", { key: 'b8b137c6cd0b1ee18ca44f8aa55c976b735b7af8', class: \"checkbox-label\", variant: \"body\" }, h(\"label\", { key: '44976b751599275d613ff52a816133a896791912', htmlFor: id }, label)))), h(\"span\", { key: 'e1e39b78d26a6d057c722794784b69b422197ff3', id: `${id}-additional-field-description`, role: \"alert\", class: \"sr-only\" }, isDynamicAdditionalField && checked ? dynamicText : \"\"), isSlotUsed(el, \"additional-field\") && (h(\"div\", { key: '62457da0c99d40b8bbfb97d3b41f400ef1a22dd0', class: \"dynamic-container\", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h(\"div\", { key: '65a6a9deddeb2c2b11fe56273c2d3bc5391f696e', class: \"branch-corner\" }), h(\"div\", { key: '3e920fd15f6cf506e793bc6386db140332ed390a', class: \"dynamic-field-container\" }, isDynamicAdditionalField && (h(\"ic-typography\", { key: '0257c5f48fe33b49742d0a5bd50dac4c000a1f04', variant: \"caption\" }, h(\"p\", { key: '24d8ebe43598283a5e5af287379f3b0f54e17d85', class: \"dynamic-text\" }, isDynamicAdditionalField && checked ? dynamicText : \"\"))), h(\"div\", { key: '38bcc265ce747daad6577a244d2db6c7fbd6d22b', class: {\n \"additional-field-wrapper\": !isDynamicAdditionalField,\n } }, h(\"slot\", { key: '117707c0f26bb70c0c7d13e3d1a01c2120f0f948', name: \"additional-field\" })))))));\n }\n static get is() { return \"ic-checkbox\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get properties() {\n return {\n \"additionalFieldDisplay\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAdditionalFieldTypes\",\n \"resolved\": \"\\\"dynamic\\\" | \\\"static\\\"\",\n \"references\": {\n \"IcAdditionalFieldTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAdditionalFieldTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The style of additionalField that will be displayed if used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"additional-field-display\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"static\\\"\"\n },\n \"checked\": {\n \"type\": \"boolean\",\n \"mutable\": true,\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 checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"checked\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\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 checkbox will be set to the disabled state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dynamicText\": {\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 text to be displayed when dynamic.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dynamic-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"This selection requires additional answers\\\"\"\n },\n \"form\": {\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 <form> element to associate the checkbox with.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"groupLabel\": {\n \"type\": \"string\",\n \"mutable\": true,\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 group label for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"group-label\",\n \"reflect\": false\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\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"indeterminate\": {\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 indeterminate state will be displayed when checked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"indeterminate\",\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 label for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": true,\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 name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"nativeIndeterminateBehaviour\": {\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 checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"native-indeterminate-behaviour\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": true,\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 checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"value\": {\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 value for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"initiallyChecked\": {},\n \"displayIndeterminate\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icCheck\",\n \"name\": \"icCheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a checkbox has been checked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the checkbox.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\n \"propName\": \"indeterminate\",\n \"methodName\": \"watchIndeterminateHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-checkbox.js.map\n",":host {\n gap: var(--ic-space-xs);\n padding: var(--ic-space-xs);\n}\n\n:host,\n.action-area {\n display: flex;\n flex-direction: column;\n}\n\n.action-area {\n gap: var(--ic-space-md);\n}\n\n:host ::slotted(svg),\n:host ::slotted(img) {\n border-radius: var(--ic-space-xxs);\n}\n\n:host(.ic-empty-state-right),\n:host(.ic-empty-state-right) .action-area {\n align-items: flex-end;\n text-align: right;\n}\n\n:host(.ic-empty-state-center),\n:host(.ic-empty-state-center) .action-area {\n align-items: center;\n text-align: center;\n}\n\n:host(.image-medium) ::slotted(svg),\n:host(.image-medium) ::slotted(img) {\n height: calc(3 * var(--ic-space-lg)) !important;\n width: calc(3 * var(--ic-space-lg)) !important;\n}\n\n:host(.image-small) ::slotted(svg),\n:host(.image-small) ::slotted(img) {\n height: var(--ic-space-xxl) !important;\n width: var(--ic-space-xxl) !important;\n}\n\n:host(.image-large) ::slotted(svg),\n:host(.image-large) ::slotted(img) {\n height: calc(4 * var(--ic-space-xl)) !important;\n width: calc(4 * var(--ic-space-xl)) !important;\n}\n\n::slotted([slot=\"heading\"]),\n.empty-state-heading {\n --ic-typography-color: var(--ic-empty-state-title);\n}\n\n::slotted([slot=\"subheading\"]),\n.empty-state-subheading {\n --ic-typography-color: var(--ic-empty-state-subtitle);\n}\n\n::slotted([slot=\"body\"]),\n.empty-state-body {\n --ic-typography-color: var(--ic-empty-state-body);\n}\n","import { h, Host } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, renderDynamicChildSlots, } from \"../../utils/helpers\";\n/**\n * @slot image - Content is placed at the top above all other content.\n * @slot actions - Content is placed at the bottom below all other content.\n * @slot heading - Content will be rendered in place of the heading prop.\n * @slot subheading - Content will be rendered in place of the subheading prop.\n * @slot body - Content will be rendered in place of the body prop.\n */\nexport class EmptyState {\n constructor() {\n this.hostMutationObserver = null;\n /**\n * The alignment of the empty state container.\n */\n this.aligned = \"left\";\n /**\n * The size of the image or icon used in the image slot.\n */\n this.imageSize = \"medium\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n }\n disconnectedCallback() {\n var _a;\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentDidLoad() {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Empty State\");\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, [\"image\", \"actions\"], this));\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n render() {\n const { aligned, body, maxLines, heading, imageSize, subheading, theme } = this;\n return (h(Host, { key: 'a0dcd0b2fe385b4c2f1f4ffc346ac54b3e19565c', class: {\n [`ic-empty-state-${aligned}`]: true,\n [`image-${imageSize}`]: isSlotUsed(this.el, \"image\"),\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, isSlotUsed(this.el, \"image\") && h(\"slot\", { key: 'e652b784ccd7b2af7ed0f9755547a9ddbbb4c5e7', name: \"image\" }), h(\"div\", { key: '1dfc5567a55de1301caec6d779ad60f851826a41' }, h(\"slot\", { key: '70b5a550c9650fcab692acbc53d035e114eaf09e', name: \"heading\" }, h(\"ic-typography\", { key: '043fc0ae7d4364442d75bb78bdbe3004fa1274f4', variant: \"h4\", class: \"empty-state-heading\" }, heading)), h(\"slot\", { key: '84dbde519a4b6cb0cd7ab03e8dbcb85931796a24', name: \"subheading\" }, h(\"ic-typography\", { key: 'a2d94ae6cba46c73212f2c688858ee56ceaa5a90', variant: \"subtitle-small\", class: \"empty-state-subheading\" }, subheading)), h(\"slot\", { key: 'aa1fc8130e5d4fb6a472f908a30fd319463b443f', name: \"body\" }, h(\"ic-typography\", { key: 'f73a7eb783dd049cb4de2510b977500d0fa47d52', maxLines: maxLines, class: \"empty-state-body\" }, body))), isSlotUsed(this.el, \"actions\") && (h(\"div\", { key: '3cb1e55fb552cf4177498d87e874d16a3f16d429', class: \"action-area\" }, h(\"slot\", { key: 'e25cb0c875f095825a512cea93c5ffe700072e71', name: \"actions\" })))));\n }\n static get is() { return \"ic-empty-state\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get properties() {\n return {\n \"aligned\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcEmptyStateAlignment\",\n \"resolved\": \"\\\"center\\\" | \\\"left\\\" | \\\"right\\\" | undefined\",\n \"references\": {\n \"IcEmptyStateAlignment\": {\n \"location\": \"import\",\n \"path\": \"./ic-empty-state.types\",\n \"id\": \"src/components/ic-empty-state/ic-empty-state.types.ts::IcEmptyStateAlignment\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The alignment of the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aligned\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"left\\\"\"\n },\n \"body\": {\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 body text rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"body\",\n \"reflect\": false\n },\n \"maxLines\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of lines of body text to display before truncating.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"max-lines\",\n \"reflect\": false\n },\n \"heading\": {\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 title rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"imageSize\": {\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 image or icon used in the image slot.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"image-size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"subheading\": {\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 subtitle rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"subheading\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-empty-state.js.map\n",":host() {\n display: block;\n}\n\n.pagination-bar {\n height: 3.5rem;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--ic-space-xl);\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-sizing: border-box;\n\n --ic-typography-color: var(--ic-pagination-text);\n}\n\n.pagination-bar-left {\n justify-content: flex-start;\n}\n\n.item-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-bar-space-between .item-controls {\n margin-right: auto;\n}\n\n.items-per-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.items-per-page-input {\n --input-width: 5rem;\n --ic-typography-color: var(--ic-pagination-select-content);\n}\n\n.pagination-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-controls-wrap {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n}\n\n.pagination-bar-space-between .pagination-controls {\n margin-left: auto;\n}\n\n.go-to-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.go-to-page-input {\n --input-width: var(--ic-space-xl);\n}\n\n.go-to-page-button {\n --min-width: var(--ic-space-xl);\n}\n\n.items-per-page-control-label {\n white-space: nowrap;\n}\n\n@media screen and (max-width: 768px) {\n .pagination-bar {\n flex-direction: column;\n align-items: flex-end;\n height: fit-content;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left {\n align-items: flex-start;\n }\n}\n\n@media screen and (max-width: 320px) {\n .item-controls,\n .pagination-controls {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left .item-controls,\n .pagination-bar-left .pagination-controls,\n .pagination-bar-space-between .item-controls,\n .pagination-bar-space-between .pagination-controls {\n align-items: flex-start;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n h,\n Watch,\n Host,\n} from \"@stencil/core\";\nimport { IcThemeMode } from \"@ukic/web-components\";\nimport { capitalize, checkResizeObserver } from \"../../utils/helpers\";\nimport {\n IcItemsPerPageChangeEventDetail,\n IcPageChangeEventDetail,\n} from \"./ic-pagination-bar.types\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationLabelTypes,\n IcPaginationTypes,\n} from \"@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-pagination-bar\",\n styleUrl: \"ic-pagination-bar.css\",\n shadow: true,\n})\nexport class PaginationBar {\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n\n private resizeObserver: ResizeObserver | null = null;\n private pageDropdownEl: HTMLIcSelectElement;\n private pageInputEl: HTMLIcTextFieldElement;\n private pageInputTooltipEl: HTMLIcTooltipElement;\n private paginationBarEl?: HTMLElement;\n private paginationEl: HTMLIcPaginationElement;\n private userSetItemsPerPage: number;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() capitalizedItemLabel: string;\n\n @State() capitalizedPageLabel: string;\n\n @State() activePage: number = 1;\n\n @State() displayedItemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: number = 10;\n\n @State() itemsPerPageString: string = \"10\";\n\n @State() lowerBound: number = 1;\n\n @State() lowerCaseItemLabel: string;\n\n @State() lowerCasePageLabel: string;\n\n @State() paginationWidth: number;\n\n @State() paginationWrapped: boolean = false;\n\n @State() totalPages: number;\n\n @State() upperBound: number;\n\n /**\n * Sets the alignment of the items in the pagination bar.\n */\n @Prop() alignment?: IcPaginationAlignmentOptions = \"right\";\n\n /**\n * The current page number to be displayed on the pagination bar.\n */\n @Prop() currentPage?: number = 1;\n\n @Watch(\"currentPage\")\n watchPageNumberHandler(): void {\n this.setPaginationBarContent();\n\n if (typeof this.currentPage === \"number\" && this.currentPage) {\n if (\n this.currentPage < 1 ||\n (this.totalPages && this.currentPage > this.totalPages)\n ) {\n console.error(\n `The current page (${this.currentPage}) must be a number greater than zero but less than or equal to the total number of pages (${this.totalPages})`\n );\n } else {\n this.activePage = this.currentPage;\n }\n }\n }\n\n /**\n * The items per page option to be selected.\n */\n @Prop() selectedItemsPerPage?: number;\n\n @Watch(\"selectedItemsPerPage\")\n watchSelectedItemsPerPageHandler(): void {\n if (\n this.selectedItemsPerPage !== null &&\n this.selectedItemsPerPage !== undefined\n ) {\n this.setSelectedItemsPerPage(\n this.selectedItemsPerPage,\n this.displayedItemsPerPageOptions\n );\n }\n }\n\n /**\n * If `true`, the 'All' option will be hidden from the 'items per page' select input.\n */\n @Prop() hideAllFromItemsPerPage?: boolean = false;\n\n /**\n * The text which will be used in place of 'Item' on the pagination bar.\n */\n @Prop() itemLabel?: string = \"Item\";\n\n @Watch(\"itemLabel\")\n watchItemLabelHandler(): void {\n this.capitalizedItemLabel = capitalize(this.itemLabel!);\n this.lowerCaseItemLabel = this.itemLabel!.toLowerCase();\n }\n\n /**\n * The options which will be displayed for 'items per page' select input.\n */\n @Prop() itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @Watch(\"itemsPerPageOptions\")\n watchItemsPerPageOptionsHandler(\n newVal: {\n label: string;\n value: string;\n }[],\n oldVal: {\n label: string;\n value: string;\n }[]\n ): void {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal)) return;\n this.setPaginationBarContent();\n }\n\n /**\n * If `true`, the pagination bar will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome?: boolean = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n /**\n * Whether total number of items and current item range or total number of pages and current page is displayed.\n */\n @Prop() rangeLabelType?: IcPaginationLabelTypes = \"page\";\n\n /**\n * The text which will be used in place of 'Page' on the pagination bar.\n */\n @Prop() pageLabel?: string = \"Page\";\n\n @Watch(\"pageLabel\")\n watchPageLabelHandler(): void {\n this.capitalizedPageLabel = capitalize(this.pageLabel!);\n this.lowerCasePageLabel = this.pageLabel!.toLowerCase();\n }\n\n /**\n * If `true`, the 'go to page' control should be displayed.\n */\n @Prop() showGoToPageControl?: boolean = false;\n\n /**\n * If `true`, the number of total items and current item range or number of total pages and current page will be hidden.\n */\n @Prop() hideRangeLabel?: boolean = false;\n\n /**\n * If `false`, the value in the items per page control will be set immediately on ArrowUp and ArrowDown instead of when Enter is pressed.\n */\n @Prop() selectItemsPerPageOnEnter: boolean = true;\n\n /**\n * If `true`, the select input to control 'items per page' should be displayed.\n */\n @Prop() showItemsPerPageControl?: boolean = false;\n\n /**\n * Total number of items to be displayed across all pages.\n */\n @Prop() totalItems!: number;\n\n @Watch(\"totalItems\")\n watchTotalItemsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n If `true`, the pagination bar is set to the first page when the 'items per page' changes\n */\n @Prop() setToFirstPageOnPaginationChange?: boolean = false;\n\n @Watch(\"setToFirstPageOnPaginationChange\")\n watchSetToFirstPageOnPaginationChange(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Emitted when a page is navigated to via the 'go to' input.\n * The `detail` property contains `value` (i.e. the page number) and a `fromItemsPerPage` flag to indicate if the event was triggered by the `icItemsPerPageChange` event also occurring.\n */\n @Event() icPageChange: EventEmitter<IcPageChangeEventDetail>;\n\n /**\n * Emitted when the items per page option is changed.\n */\n @Event() icItemsPerPageChange: EventEmitter<IcItemsPerPageChangeEventDetail>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.watchPageNumberHandler();\n this.watchPageLabelHandler();\n this.watchItemLabelHandler();\n this.setPaginationBarContent();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl?.clientWidth || 0;\n checkResizeObserver(this.runResizeObserver);\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n this.paginationShouldWrap();\n }\n\n @Listen(\"icPageChange\")\n pageChangeHandler(ev: CustomEvent): void {\n const page = ev.detail.value;\n this.changePage(page);\n }\n\n private setSelectedItemsPerPage = (\n selectedItemsPerPage: number,\n displayedItemsPerPageOptions: { label: string; value: string }[] = []\n ) => {\n const isSelectedItemsPerPagePresent = displayedItemsPerPageOptions?.some(\n ({ value }) => value === this.selectedItemsPerPage?.toString()\n );\n if (isSelectedItemsPerPagePresent) {\n this.setItemsPerPage(selectedItemsPerPage, false);\n } else {\n console.error(\n `The selected items per page option \"${this.selectedItemsPerPage}\" does not exist`\n );\n this.setItemsPerPage(+this.totalItems, false);\n }\n };\n\n private changeItemsPerPage = () => {\n this.setItemsPerPage(Number(this.pageDropdownEl.value));\n\n this.userSetItemsPerPage = Number(this.pageDropdownEl.value);\n };\n\n private changePage = (page: number) => {\n this.activePage = page;\n this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;\n this.setUpperBound();\n };\n\n private focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl?.querySelector(el)?.setFocus();\n };\n\n private goToPage = () => {\n const input = this.pageInputEl;\n const page = Number(input.value);\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n this.paginationEl?.setCurrentPage(page);\n this.activePage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n this.pageInputTooltipEl.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.setInputError(input, this.INVALID_PAGE_ERROR);\n }\n };\n\n private goToPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-text-field\");\n };\n\n private handleBlur = () => {\n const textField = this.pageInputEl;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n this.pageInputTooltipEl.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const inputValue = parseInt(this.pageInputEl.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(this.pageInputEl, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\") {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n this.pageInputTooltipEl.displayTooltip(false, false);\n this.pageInputEl.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n if (\n Number.isNaN(parseInt(this.pageInputEl.value)) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(this.pageInputEl, \"Please enter a number\", false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private itemsPerPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-select\");\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n this.paginationWrapped = this.paginationEl.clientHeight > 63;\n }\n };\n\n private runResizeObserver = () => {\n if (this.paginationBarEl) {\n this.resizeObserver = new ResizeObserver(() => {\n const { clientWidth } = this.paginationBarEl!;\n if (\n clientWidth - this.paginationWidth > 50 ||\n clientWidth - this.paginationWidth < -50\n ) {\n this.paginationWidth = clientWidth;\n this.paginationShouldWrap();\n }\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n }\n };\n\n private setInputError = (\n el: HTMLIcTextFieldElement,\n error: string,\n focus = true\n ) => {\n this.inputError = error;\n el.validationStatus = \"error\";\n if (focus) el.setFocus();\n };\n\n private setToFirstPage = () => {\n const firstPage = 1;\n this.changePage(firstPage);\n this.paginationEl?.setCurrentPage(firstPage);\n this.activePage = firstPage;\n this.icPageChange.emit({ value: firstPage });\n };\n\n private setItemsPerPage = (newValue: number, isUserAction = true) => {\n if (this.itemsPerPage !== newValue) {\n this.itemsPerPage = newValue;\n this.itemsPerPageString = newValue.toString();\n this.icItemsPerPageChange.emit({\n value: this.itemsPerPage,\n isUserAction,\n });\n\n if (this.setToFirstPageOnPaginationChange) {\n this.setToFirstPage();\n }\n }\n\n this.totalPages =\n this.totalItems > this.itemsPerPage\n ? Math.ceil(this.totalItems / this.itemsPerPage)\n : 1;\n\n this.setUpperBound();\n if (this.activePage > this.totalPages) {\n this.paginationEl?.setCurrentPage(this.totalPages);\n this.activePage = this.totalPages;\n }\n this.icPageChange.emit({ value: this.activePage, fromItemsPerPage: true });\n };\n\n private setPaginationBarContent = (): void => {\n const clonedItemsPerPageOptions: {\n label: string;\n value: string;\n }[] = this.itemsPerPageOptions\n ? JSON.parse(JSON.stringify(this.itemsPerPageOptions))\n : null;\n\n const displayedItemsPerPageOptions =\n clonedItemsPerPageOptions ||\n (this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n ]);\n\n !this.hideAllFromItemsPerPage &&\n displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n this.displayedItemsPerPageOptions = displayedItemsPerPageOptions.filter(\n ({ value }) => this.totalItems >= Number(value)\n );\n\n let lastOptionValue = 0;\n\n if (this.userSetItemsPerPage) {\n this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.userSetItemsPerPage <= lastOptionValue;\n });\n this.setItemsPerPage(lastOptionValue);\n } else {\n if (\n this.selectedItemsPerPage !== null &&\n this.selectedItemsPerPage !== undefined\n ) {\n this.setSelectedItemsPerPage(\n this.selectedItemsPerPage,\n this.displayedItemsPerPageOptions\n );\n } else {\n const updated = this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.itemsPerPage <= lastOptionValue;\n });\n this.setItemsPerPage(\n updated || (!updated && this.itemsPerPage > lastOptionValue)\n ? lastOptionValue\n : this.itemsPerPage,\n false\n );\n }\n }\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n render() {\n const {\n alignment,\n displayedItemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n type,\n rangeLabelType,\n hideRangeLabel,\n showItemsPerPageControl,\n showGoToPageControl,\n pageLabel,\n capitalizedPageLabel,\n lowerCasePageLabel,\n capitalizedItemLabel,\n lowerCaseItemLabel,\n totalPages,\n activePage,\n itemsPerPageString,\n theme,\n monochrome,\n selectItemsPerPageOnEnter,\n } = this;\n\n return (\n <Host class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}>\n <div\n class={{\n [\"pagination-bar\"]: true,\n [`pagination-bar-${alignment}`]: true,\n }}\n ref={(el) => (this.paginationBarEl = el)}\n >\n {(!hideRangeLabel || showItemsPerPageControl) && (\n <div class=\"item-controls\">\n {showItemsPerPageControl && (\n <div class=\"items-per-page-holder\">\n <ic-typography\n class={{\n [\"items-per-page-control-label\"]: true,\n }}\n variant=\"label\"\n onClick={this.itemsPerPageLabelClickHandler}\n >\n {capitalizedItemLabel}s per {lowerCasePageLabel}\n </ic-typography>\n <ic-select\n theme={theme}\n size=\"small\"\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n selectOnEnter={selectItemsPerPageOnEnter}\n value={itemsPerPageString}\n onIcChange={this.changeItemsPerPage}\n ref={(el: HTMLIcSelectElement) =>\n (this.pageDropdownEl = el)\n }\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel &&\n (rangeLabelType === \"data\" ? (\n <ic-typography\n class={{\n [\"item-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${lowerCaseItemLabel}${this.totalItems > 1 ? \"s\" : \"\"}`}\n </ic-typography>\n ) : (\n <ic-typography\n class={{\n [\"page-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {capitalizedPageLabel} {activePage} of {totalPages}\n </ic-typography>\n ))}\n </div>\n )}\n <div\n class={{\n [\"pagination-controls\"]: true,\n [\"pagination-controls-wrap\"]: this.paginationWrapped,\n }}\n >\n <div class=\"pagination-holder\">\n <ic-pagination\n type={type}\n pages={totalPages}\n label={pageLabel}\n ref={(el: HTMLIcPaginationElement) => (this.paginationEl = el)}\n currentPage={activePage}\n theme={theme}\n monochrome={monochrome}\n ></ic-pagination>\n </div>\n {showGoToPageControl && (\n <div class=\"go-to-page-holder\">\n <ic-typography\n variant=\"label\"\n onClick={this.goToPageLabelClickHandler}\n >\n Go to {lowerCasePageLabel}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\n ref={(el: HTMLIcTooltipElement) =>\n (this.pageInputTooltipEl = el)\n }\n >\n <ic-text-field\n theme={theme}\n type=\"number\"\n size=\"small\"\n label={PAGE_INPUT_FIELD_ID}\n class={PAGE_INPUT_FIELD_ID}\n id={PAGE_INPUT_FIELD_ID}\n hideLabel\n onKeyDown={this.handleKeydown}\n onKeyUp={this.handleKeyUp}\n onInput={this.handleInputChange}\n max={totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n ref={(el: HTMLIcTextFieldElement) =>\n (this.pageInputEl = el)\n }\n ></ic-text-field>\n </ic-tooltip>\n <ic-button\n variant=\"secondary\"\n onClick={this.goToPage}\n size=\"small\"\n class=\"go-to-page-button\"\n >\n Go\n </ic-button>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-8e4e97b4.js";import{b as h,s as r,q as n,r as o,v as l,w as c,o as d,t as u,u as f,x as b,k as p,l as v}from"./p-0f22f41e.js";import{b as m,i as w,j as y,s as g,h as k,k as x}from"./p-bc441e4c.js";import{C as $}from"./p-dd7450fb.js";const D=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M16.6667 2.50004H15.8334V0.833374H14.1667V2.50004H5.83342V0.833374H4.16675V2.50004H3.33341C2.41675 2.50004 1.66675 3.25004 1.66675 4.16671V17.5C1.66675 18.4167 2.41675 19.1667 3.33341 19.1667H16.6667C17.5834 19.1667 18.3334 18.4167 18.3334 17.5V4.16671C18.3334 3.25004 17.5834 2.50004 16.6667 2.50004ZM16.6667 17.5H3.33341V6.66671H16.6667V17.5Z" fill="currentColor"/>\n</svg>`;const H='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-date-input-bg);--ic-input-label-text-color:var(--ic-date-input-label);--ic-input-label-helper-text-color:var(--ic-date-input-subtitle);--border-color:var(--ic-date-input-border);--border-color-disabled:var(--ic-date-input-border-disabled);--border-color-hover:var(--ic-date-input-border-default-hover);--border-color-pressed:var(--ic-date-input-border-default-pressed);--border-error-color:var(--ic-date-input-border-error);--border-error-color-hover:var(--ic-date-input-border-error-hover);--border-error-color-pressed:var(--ic-date-input-border-error-pressed);--border-success-color:var(--ic-date-input-border-success);--border-success-color-hover:var(--ic-date-input-border-success-hover);--border-success-color-pressed:var(--ic-date-input-border-success-pressed);--border-warning-color:var(--ic-date-input-border-warning);--border-warning-color-hover:var(--ic-date-input-border-warning-hover);--border-warning-color-pressed:var(--ic-date-input-border-warning-pressed)}:host(.ic-date-input-disabled){--ic-input-label-text-color:var(--ic-date-input-label-disabled);--ic-input-label-helper-text-color:var(--ic-date-input-subtitle-disabled)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-date-input-text-filled);caret-color:var(--ic-date-input-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-date-input-text-filled) !important}input::-moz-placeholder{color:var(--ic-date-input-text-placeholder)}input::placeholder{color:var(--ic-date-input-text-placeholder)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.date-inputs{color:var(--ic-date-input-text-placeholder)}.day-input{width:1.438rem}.month-input{width:1.813rem}.year-input,.year-input.fit-to-value{width:2.313rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-calendar-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.calendar-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.calendar-button:focus,.clear-button:active,.calendar-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.calendar-button:focus,.calendar-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.calendar-button:focus,.clear-button:active *,.calendar-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-date-input-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-date-input-status-text);--ic-input-validation-error:var(--ic-date-input-icon-error);--ic-input-validation-warning-icon-color:var(--ic-date-input-icon-warning);--ic-input-validation-success-icon-color:var(--ic-date-input-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}';const z=H;let Y=0;const M=class{constructor(e){t(this,e);this.calendarButtonClicked=i(this,"calendarButtonClicked",7);this.icBlur=i(this,"icBlur",7);this.icChange=i(this,"icChange",7);this.icFocus=i(this,"icFocus",7);this.DEFAULT_DATE_FORMAT="DD/MM/YYYY";this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.INPUT_EVENT_OBJECT_STRING="[object InputEvent]";this.inputsInOrder=[];this.isAfterMax=false;this.isBeforeMin=false;this.preventInputsUpdating=false;this.isDisabledDate=false;this.isValidDay=true;this.isValidMonth=true;this.isValidDate=true;this.isZuluTime=false;this.KEYBOARD_EVENT_OBJECT_STRING="[object KeyboardEvent]";this.MAX_DAY=31;this.MAX_MONTH=12;this.previousSelectedDate=null;this.selectedDate=null;this.externalSetDate=false;this.clearInput=false;this.calendarIsOpen=false;this.calendarFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.day="";this.month="";this.year="";this.dateFormat=this.DEFAULT_DATE_FORMAT;this.emitDatePartChange=false;this.disabled=false;this.disableDays=[];this.disableDaysMessage="The date you have selected is on a day of the week that is not allowed. Please select another date.";this.disableFuture=false;this.disableFutureMessage="Dates in the future are not allowed. Please select a date in the past.";this.disablePast=false;this.disablePastMessage="Dates in the past are not allowed. Please select a date in the future.";this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-date-input-${Y++}`;this.invalidDateMessage="Please enter a valid date.";this.max="";this.min="";this.name=this.inputId;this.required=false;this.showCalendarButton=false;this.showClearButton=true;this.size="medium";this.theme="inherit";this.value="";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.setInputPasteValue=(t,i)=>{if(t){const s=t;s.value=i;s.classList.add(this.FIT_TO_VALUE)}};this.checkSingleCopiedValueIsValid=(t,i)=>{let s=false;const e=Number(i);switch(t){case this.dayInputEl:s=e>=1&&e<=this.MAX_DAY;break;case this.monthInputEl:s=e>=1&&e<=this.MAX_MONTH;break;case this.yearInputEl:s=true;break}return s};this.isKeyboardOrEvent=t=>Object.prototype.toString.call(t)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(t)===this.KEYBOARD_EVENT_OBJECT_STRING;this.setDateValidity=()=>{if(!h(this.day)){this.isValidDay=+this.day>this.MAX_DAY?false:true}else{this.isValidDay=true}if(!h(this.month)){this.isValidMonth=+this.month>this.MAX_MONTH?false:true}else{this.isValidMonth=true}};this.handleInput=t=>{const i=t;const s=t.target;if(s!==this.yearInputEl){if(i.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&(s===this.dayInputEl&&+s.value>=4||s===this.monthInputEl&&+s.value>=2)&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s,t);this.moveToNextInput(s)}if(s.value.length===2){if(+s.value===0){s.value="01"}this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s,t);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(t)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}}else{if(s.value.length===4){this.setInputValue(s);if(Object.prototype.toString.call(t)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setPreventInput(s,false)}}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s,t)};this.handleKeyDown=(t,i)=>{var s;const e=t.target;const a=(s=t.key)===null||s===void 0?void 0:s.toLowerCase();const h=/-?\d*\.?\d+(e[-+]?\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!h.test(a)&&!((t.ctrlKey||t.metaKey)&&(a==="v"||a==="c"))){t.preventDefault()}switch(a){case"/":case"-":case".":t.preventDefault();this.setPasteInvalidText();this.moveToNextInput(e);break;case"arrowright":case"arrowleft":t.preventDefault();this.handleLeftRightArrowKeyPress(e,a);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(e,t);break;case"backspace":if(e.value.length===0){t.preventDefault();this.moveToPreviousInput(e)}break}this.preventInput(t,i);this.preventInputsUpdating=true};this.handleFocus=t=>{const i=t.target;i.select()};this.handleBlur=t=>{const i=t.target;if(i){this.setPasteInvalidText();this.autocompleteInput(i)}};this.handleLeftRightArrowKeyPress=(t,i)=>{if(i==="arrowright"){this.moveToNextInput(t)}else{this.moveToPreviousInput(t)}this.setPasteInvalidText()};this.notifyScreenReaderSelectedDate=()=>{if(this.selectedDate&&this.selectedDateInfoEl){const t=r(p);const i=r(v);this.selectedDateInfoEl.textContent=`Selected date: ${t[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${i[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`}};this.handleUpDownArrowKeyPress=(t,i)=>{const s=t===this.yearInputEl?0:1;let e=9999;switch(t){case this.dayInputEl:e=this.MAX_DAY;break;case this.monthInputEl:e=this.MAX_MONTH;break;case this.yearInputEl:e=9999}if(t===null||t===void 0?void 0:t.value){if(i.key==="ArrowUp"){if(+t.value===e){i.preventDefault();t.value=`0${s}`}else{t.value=+t.value+1<10?`0${+t.value+1}`:(+t.value+1).toString()}this.notifyScreenReader(t,i)}if(i.key==="ArrowDown"){if(+t.value===s){i.preventDefault();t.value=e.toString()}else{t.value=+t.value-1<10?`0${+t.value-1}`:(+t.value-1).toString()}this.notifyScreenReader(t,i)}}else{if(i.key==="ArrowDown"){i.preventDefault();t.value=t===this.yearInputEl?(new Date).getFullYear().toString():e.toString();this.notifyScreenReader(t,i)}else if(i.key==="ArrowUp"){i.preventDefault();t.value=t===this.yearInputEl?(new Date).getFullYear().toString():`0${s}`;this.notifyScreenReader(t,i)}}this.setInputValue(t);this.setFitToValueStyling(t)};this.handleDateChange=t=>{if(t||!m(this.selectedDate,this.previousSelectedDate)){if(this.value){this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}if(this.day&&this.month&&this.year&&this.invalidDateText===""){this.setValueAndEmitChange(this.selectedDate);this.notifyScreenReaderSelectedDate()}else if(!(this.selectedDate===null&&this.previousSelectedDate===null)&&this.selectedDateInfoEl){this.setValueAndEmitChange(null);this.selectedDateInfoEl.textContent=""}this.previousSelectedDate=this.selectedDate;if(!this.preventInputsUpdating){this.updateInputValues(this.day,this.month,this.year)}}};this.slicePastedDate=(t,i)=>i.length>t?i.slice(0,t):i;this.isPastedStringDateValid=t=>{if(/\d+-\d+-\d+$/.test(t)||/\d+\/\d+\/\d+/.test(t)||/\d+\.\d+\.\d+/.test(t)){return true}if(/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\.\d+)?)?Z/.test(t)){this.isZuluTime=true;return true}return false};this.handlePaste=t=>{var i;t.preventDefault();const s=((i=t.clipboardData)===null||i===void 0?void 0:i.getData("Text"))||"";const e=this.isPastedStringDateValid(s);this.setPastedValueAndValidation(e,s,t)};this.setDate=t=>{if(t===null||t===""||t===undefined){if(this.day)this.day="";if(this.month)this.month="";if(this.year)this.year="";this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(t,false)}));this.handleDateChange(true)}else{if(w(t)){let i;if(typeof t==="string"){i=new Date(+t)}else{i=t}this.day=y(i.getDate());this.month=y(i.getMonth()+1);this.year=i.getFullYear().toString()}else if(typeof t==="string"){const i=g(t,this.dateFormat);this.selectedDate=new Date(Number(i[0]),Number(i[1])-1,Number(i[2]));this.year=i[0];this.month=i[1];this.day=i[2];this.setValueAndEmitChange(this.selectedDate)}}this.setValidationMessage()};this.formatMinMax=t=>{let i;const s=y(t.getDate());const e=y(t.getMonth()+1);const a=t.getFullYear();switch(this.dateFormat){case this.DEFAULT_DATE_FORMAT:i=`${s}/${e}/${a}`;break;case"MM/DD/YYYY":i=`${e}/${s}/${a}`;break;case"YYYY/MM/DD":i=`${a}/${e}/${s}`;break}return i};this.updateInputValues=(t,i,s)=>{if(this.dayInputEl&&this.monthInputEl&&this.yearInputEl){this.dayInputEl.value=t;this.monthInputEl.value=i;this.yearInputEl.value=s}};this.setInputValue=(t,i=false)=>{const s=i?"":t.value;switch(t){case this.dayInputEl:this.day=s;break;case this.monthInputEl:this.month=s;break;case this.yearInputEl:if(this.year!==s){this.year=s}}this.setValidationMessage()};this.setValidationMessage=()=>{this.setDateValidity();if(!h(this.day)&&!h(this.month)&&!h(this.year)){this.selectedDate=this.convertToDate(this.year,this.month,this.day);this.isValidDate=!!this.selectedDate&&this.selectedDate.getDate()==+this.day;this.isDisabledDate=this.isSelectedDateDisabled();if(!this.isValidDate||this.isDisabledDate){this.inputsInOrder.forEach((t=>t.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((t=>t.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedDate=null}if(!(this.isValidDay&&this.isValidMonth&&this.isValidDate)){this.invalidDateText=this.invalidDateMessage}else if(this.isDisabledDate&&this.selectedDate!==null){if(this.isBeforeMin){if(this.disablePast){this.invalidDateText=this.disablePastMessage}else{this.invalidDateText=`Please enter a date after ${this.formatMinMax(this.minDate)}.`}}else if(this.isAfterMax){if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}else{this.invalidDateText=`Please enter a date before ${this.formatMinMax(this.maxDate)}.`}}else if(this.disableDays.length!==0){this.invalidDateText=this.disableDaysMessage}else{if(this.disablePast){this.invalidDateText=this.disablePastMessage}if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}}}else{this.invalidDateText=""}};this.setInputsInOrder=()=>{var t;(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("input").forEach((t=>this.inputsInOrder.push(t)))};this.setAriaLabelledBy=()=>{var t,i,s;if(this.disabled&&!h((t=this.inputCompContainerEl)===null||t===void 0?void 0:t.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const e=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("label");const a=`${this.inputId}-label`;if(e!==null&&e!==undefined){e.id=a}const r=!h(this.validationStatus)||!h(this.invalidDateText);const o=`${(s=e===null||e===void 0?void 0:e.id)!==null&&s!==void 0?s:""} ${this.screenReaderInfoId} ${n(this.el,this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,r)} ${this.selectedDate?this.selectedDateInfoId:""} ${this.assistiveHintId}`;this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY,o)};this.setPreventInput=(t,i)=>{switch(t){case this.dayInputEl:this.preventDayInput=i;break;case this.monthInputEl:this.preventMonthInput=i;break;case this.yearInputEl:this.preventYearInput=i}};this.getInputFromDatePart=t=>{const i=s("input",{class:"day-input",id:"day-input",ref:t=>this.dayInputEl=t,"aria-label":"day",placeholder:"DD",disabled:this.disabled,"aria-required":`${this.required}`,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventDayInput)});const e=s("input",{id:"month-input",class:"month-input",ref:t=>this.monthInputEl=t,"aria-label":"month",placeholder:"MM",disabled:this.disabled,"aria-required":`${this.required}`,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventMonthInput)});const a=s("input",{id:"year-input",class:"year-input",ref:t=>this.yearInputEl=t,"aria-label":"year",placeholder:"YYYY",maxLength:4,disabled:this.disabled,"aria-required":`${this.required}`,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventYearInput)});let h;switch(t){case"D":h=i;break;case"M":h=e;break;case"Y":h=a}return h};this.getInputsInOrder=()=>{const t=this.dateFormat.split("/");const i=[];t.forEach((t=>{i.push(this.getInputFromDatePart(t.substring(0,1)))}));return i};this.getDescOfInputsOrder=()=>{let t;switch(this.dateFormat){case this.DEFAULT_DATE_FORMAT:t="day, month, and year";break;case"MM/DD/YYYY":t="month, day, and year";break;case"YYYY/MM/DD":t="year, month, and day"}return t};this.getScreenReaderInfo=t=>{let i="";if(this.required){i+="required"}if(t===f.Error){i+=" invalid data"}return i===""?"":i+", "};this.preventInput=(t,i)=>{const s=t.key;const e=t.target;let a;if(e){a=e.value.substring(e.selectionStart||0,e.selectionEnd||undefined)}if(s==="e"||s==="."||s==="-"||t.key>="0"&&t.key<="9"&&i&&!a){t.preventDefault()}};this.isSelectedDateDisabled=()=>{if(!this.selectedDate)return false;const t=new Date;const i=this.selectedDate.toDateString()!==t.toDateString();this.isAfterMax=this.maxDate&&this.selectedDate>this.maxDate&&i;this.isBeforeMin=this.minDate&&this.selectedDate<this.minDate&&i;return this.isAfterMax||this.isBeforeMin||this.disableDays.includes(this.selectedDate.getDay())||(!!this.disablePast&&this.selectedDate<t||!!this.disableFuture&&this.selectedDate>t)&&i};this.moveToNextInput=t=>{var i;this.preventAutoFormatting=false;(i=this.inputsInOrder[this.inputsInOrder.findIndex((i=>i===t))+1])===null||i===void 0?void 0:i.focus()};this.moveToPreviousInput=t=>{var i;this.preventAutoFormatting=false;(i=this.inputsInOrder[this.inputsInOrder.findIndex((i=>i===t))-1])===null||i===void 0?void 0:i.focus()};this.autocompleteInput=t=>{const i=t.value;if(this.yearInputEl&&t===this.yearInputEl){const t=["2","0","0"];let s="";if(i){t.forEach(((t,e)=>{if(i.length+e<=3){s+=t}}));this.yearInputEl.value=`${s}${i}`}}else if(i.length===1){t.value=+i===0?"01":`0${i}`}if(t.value){this.setInputValue(t)}};this.convertToDate=(t,i,s)=>{if(!h(t)&&!h(i)&&!h(s)){return new Date(+t,+i-1,+s)}else{return null}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedDate})};this.handleHostFocus=()=>{var t,i;if((i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.activeElement)===null||i===void 0?void 0:i.id.match(/(day|month|year)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedDate})};this.handleFormReset=()=>{this.setDate(this.initialValue);this.setValidationMessage();this.handleDateChange(false)};this.getAriaLabel=t=>t.getAttribute(this.ARIA_LABEL);this.notifyScreenReaderArrowKeys=t=>{var i;const s=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("#live-region");const e=this.getAriaLabel(t);if(s&&t.value&&e){let i="";if(t===this.monthInputEl&&!!v[+t.value-1]){i=`${t.value} - ${v[+t.value-1]}, ${e}`}if(t===this.dayInputEl||t===this.yearInputEl){i=`${t.value}, ${e}`}s.textContent=i}};this.notifyScreenReaderInput=(t,i)=>{const s=this.getAriaLabel(t);const e=t.value;if(s&&e){let a="";const h=v[+e-1];if(t===this.monthInputEl&&!!h&&this.isValidMonth&&e.length===2){a=`${e} - ${h}`}else if(t===this.dayInputEl&&this.isValidDay&&e.length===2||t===this.yearInputEl&&e.length===4){a=e}i.textContent=`${a}, ${s}`}};this.setFitToValueStyling=t=>{if(t.value){t.classList.add(this.FIT_TO_VALUE)}else{t.classList.remove(this.FIT_TO_VALUE)}};this.setAriaInvalid=(t,i,s,e)=>{var a,h;if(this.inputsInOrder.length){this.inputsInOrder.forEach((t=>{t.removeAttribute(this.ARIA_INVALID)}));if(!t){(a=this.dayInputEl)===null||a===void 0?void 0:a.setAttribute(this.ARIA_INVALID,"true")}if(!i){(h=this.monthInputEl)===null||h===void 0?void 0:h.setAttribute(this.ARIA_INVALID,"true")}if(!s||e){this.inputsInOrder.forEach((t=>{t.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{this.clearInput=true;this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setInputValue(t,true);this.setPreventInput(t,false)}));this.clearInput=false;this.preventInputsUpdating=false;this.setValidationMessage();this.handleDateChange(true);this.inputsInOrder[0].focus()};this.handleCalendarOpen=t=>{var i,s,e,a,h,r;t.stopImmediatePropagation();(e=(s=(i=this.calendarButtonEl)===null||i===void 0?void 0:i.shadowRoot)===null||s===void 0?void 0:s.querySelector("ic-tooltip"))===null||e===void 0?void 0:e.displayTooltip(false);this.calendarButtonClicked.emit({value:this.selectedDate});(r=(h=(a=this.calendarButtonEl)===null||a===void 0?void 0:a.shadowRoot)===null||h===void 0?void 0:h.querySelector("ic-tooltip"))===null||r===void 0?void 0:r.displayTooltip(false);this.preventInputsUpdating=false;this.calendarIsOpen=true};this.setValueAndEmitChange=t=>{if(!m(this.value?new Date(this.value):null,t)){this.emitIcChange(t);this.value=t}};this.handleCalendarFocus=()=>{this.calendarFocused=true;if(this.calendarIsOpen){this.preventInputsUpdating=false;this.calendarIsOpen=false}else{this.preventInputsUpdating=true}};this.handleCalendarBlur=()=>{this.calendarFocused=false;this.preventInputsUpdating=true};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.preventInputsUpdating=true;this.clearButtonFocused=true};this.handleClearBlur=t=>{var i;this.clearButtonFocused=false;this.preventInputsUpdating=true;if((i=t.relatedTarget)===null||i===void 0?void 0:i.id.match(/(day|year)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.emitIcChange=t=>{this.selectedDate=t;if(!m(this.selectedDate,t)||this.day!==null||this.month!==null||this.year!==null){let i=null;if(t!==null){i=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()))}this.icChange.emit({value:t,dateObject:{day:this.day===""?null:this.day,month:this.month===""?null:this.month,year:this.year===""?null:this.year},utcValue:i})}}}watchInputHandler(){if(this.emitDatePartChange&&!this.externalSetDate&&!this.clearInput&&!(this.day&&this.month&&this.year)&&this.selectedDate===null){this.emitIcChange(this.selectedDate)}}watchDisabledHandler(){o(this.disabled,this.el)}watchDisableFutureHandler(){this.watchMaxHandler()}watchDisablePastHandler(){this.watchMinHandler()}watchMaxHandler(){if(this.disableFuture){this.maxDate=new Date}else{this.maxDate=k(this.max,this.dateFormat)}}watchMinHandler(){if(this.disablePast){this.minDate=new Date}else{this.minDate=k(this.min,this.dateFormat)}}watchRequiredHandler(){var t,i;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("label");if(this.required){const t=document.createElement("span");t.setAttribute("id","asterisk-span");t.setAttribute("aria-hidden","true");t.textContent=" *";s===null||s===void 0?void 0:s.appendChild(t)}else{const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("#asterisk-span");if(t){t.remove()}}}disconnectedCallback(){l(this.el,this.handleFormReset)}componentWillLoad(){this.defaultHelperText=`Use format ${this.dateFormat}`;if(h(this.helperText))this.helperText=this.defaultHelperText;this.watchMinHandler();this.watchMaxHandler();if(this.value){this.externalSetDate=true;this.setDate(this.value)}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedDateInfoId=`${this.inputId}-selected-date-info`;c(this.el,this.handleFormReset);o(this.disabled,this.el)}componentDidLoad(){this.setInputsInOrder();d([{prop:this.label,propName:"label"}],"Date Input");if(this.value){this.updateInputValues(this.day,this.month,this.year);this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);if(this.value){this.notifyScreenReaderSelectedDate()}this.inputsInOrder.forEach((t=>{t.addEventListener("input",this.handleInput);t.addEventListener("focus",this.handleFocus);t.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(h(this.helperText))this.helperText=this.defaultHelperText;if(!this.preventInputsUpdating)this.setDate(this.value);this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);this.handleDateChange(false);this.preventInputsUpdating=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getDate(){return this.selectedDate}async setCalendarFocus(){if(this.calendarButtonEl){this.calendarButtonEl.focus()}}async setDisableDays(t){this.disableDays=t}async triggerIcChange(t){this.externalSetDate=true;this.setDate(t);this.emitIcChange(t);this.externalSetDate=false}removeAriaLabelledBy(){this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY)}setPastedValueAndValidation(t,i,s){switch(true){case t:{const t=this.isZuluTime?x(i):i;const s=t.split(/-|\/|\./);this.inputsInOrder.forEach(((t,i)=>{t.classList.add(this.FIT_TO_VALUE);if(this.isZuluTime){this.pasteZuluDateTime(s,i)}else{let e;if(t===this.dayInputEl||t===this.monthInputEl){e=this.slicePastedDate(2,s[i])}else{e=this.slicePastedDate(4,s[i])}t.value=e;this.setInputValue(t);this.autocompleteInput(t)}}));this.isZuluTime=false;break}case(i.length===1||i.length===2||i.length===4)&&u(i):if(this.checkSingleCopiedValueIsValid(s.target,i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.displayPastedValidation(s)}break;case i.length===3&&u(i):if(s.target!==this.yearInputEl){this.displayPastedValidation(s)}else{this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}break;case i.length>=5&&u(i):this.displayPastedValidation(s)}}pasteZuluDateTime(t,i){if(i===0&&this.yearInputEl){const s=this.slicePastedDate(4,t[i]);this.yearInputEl.value=s;this.setInputValue(this.yearInputEl)}else if(i===1&&this.monthInputEl){const s=this.slicePastedDate(2,t[i]);this.monthInputEl.value=s;this.setInputValue(this.monthInputEl)}else if(this.dayInputEl){const s=this.slicePastedDate(2,t[i]);this.dayInputEl.value=s;this.setInputValue(this.dayInputEl)}}displayPastedValidation(t){var i;if(((i=this.invalidDateText)===null||i===void 0?void 0:i.length)>0){this.previousInvalidDateTest=this.invalidDateText}this.invalidDateText=`Please paste a valid ${this.getAriaLabel(t.target)}`;this.validationStatus=f.Error;this.isPasteValidationDisplayed=true}setPasteInvalidText(){var t;if(this.isPasteValidationDisplayed){this.invalidDateText=(t=this.previousInvalidDateTest)!==null&&t!==void 0?t:"";this.isPasteValidationDisplayed=false;this.preventInputsUpdating=true}}notifyScreenReader(t,i){var s;const e=(s=this.el.shadowRoot)===null||s===void 0?void 0:s.querySelector("#live-region");if(e){if(this.isKeyboardOrEvent(i)){this.notifyScreenReaderArrowKeys(t)}else if(Object.prototype.toString.call(i)===this.INPUT_EVENT_OBJECT_STRING){this.notifyScreenReaderInput(t,e)}}}render(){const{inputId:t,label:i,disabled:a,helperText:r,hideHelperText:n,hideLabel:o,showClearButton:l,showCalendarButton:c,size:d,theme:u,validationAriaLive:p}=this;const v=!h(this.validationStatus);const m=v?this.validationStatus:!h(this.invalidDateText)?f.Error:"";const w=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;b(true,this.el,this.name,this.convertToDate(this.year,this.month,this.day),this.disabled);return s(e,{key:"c076a1712793e36c9fd904692d64f44297a41d58",class:{[`ic-theme-${u}`]:u!=="inherit",[`ic-date-input-disabled`]:a},onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{key:"a706d073ade2f587fe661e8eedd533fcac2eb8d2",disabled:a},!(o&&n)&&s("ic-input-label",{key:"2df45206bb1dec22719805dd75419d99ce0321dd",for:t,label:i,hideLabel:o,helperText:!n?r:"",disabled:a},s("slot",{key:"8f5458681b9ea085c67ff7c1022f5512181dd37a",name:"helper-text",slot:"helper-text"})),s("span",{key:"cc1ced7c0cf7e46b0792ad06995b15273126c040",id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(m),o&&`${i}\n`,n&&`${r}\n`,`${this.defaultHelperText}.`),s("span",{key:"53cc25e4eccf56a7a64a7b28d207c98e78abeec7",id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},w),s("span",{key:"652f13800a903a2f92451abe2abfbbf63f72fd73",id:"live-region","aria-live":"assertive",class:"sr-only"}),s("ic-input-component-container",{key:"e2ec60bbf7e7f39e79de567ef30642f0e175b1c6",id:t,ref:t=>this.inputCompContainerEl=t,disabled:a,validationStatus:m,size:d,role:"group",class:{[`ic-theme-${u}`]:u!=="inherit"}},s("div",{key:"891bb0f4b524a7dae73ea3eacbaacd460ceab542",class:"input-container"},s("div",{key:"476965e1b07bc962741ffe0f74661d6e4631d576",class:"date-inputs"},this.getInputsInOrder()[0],"/",this.getInputsInOrder()[1],"/",this.getInputsInOrder()[2]),s("div",{key:"752c0fd5df110547b8161b1cde61edb690c6c7fa",class:"action-buttons"},l&&s("ic-button",{key:"cf5c9fe8b8348071a764c57df98ed7d217674735",id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:h(this.day)&&h(this.month)&&h(this.year)},disabled:this.disabled,innerHTML:$,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon-tertiary",theme:this.clearButtonFocused?"light":"dark",size:d}),c&&s("div",{key:"6e018c3cfb028691aa57c88df2f7d29e0adb1f78",class:"show-calendar-button-wrapper"},s("div",{key:"dcd83751b62337a77a4471489c7ba38d43cd45a6",class:{divider:true,[d]:true}}),s("ic-button",{key:"5b917499227bc7e7c1d3dd5b01f0040f10c7adc1",id:"calendar-button",ref:t=>this.calendarButtonEl=t,"aria-label":"Display calendar","aria-haspopup":"dialog",class:"calendar-button",disabled:this.disabled,innerHTML:D,onClick:this.handleCalendarOpen,variant:"icon-tertiary",size:d,onFocus:this.handleCalendarFocus,onBlur:this.handleCalendarBlur,theme:this.calendarFocused?"light":"dark"}))))),s("span",{key:"a1d4b4da8df73e766ba1096f193142a95af941d8",id:this.selectedDateInfoId,class:"sr-only","aria-live":"polite"},s("span",{key:"92e0f6e22dca3f9c5f0f05dcf1a6e5fa43e2e05a",ref:t=>this.selectedDateInfoEl=t,role:"status"})),s("ic-input-validation",{key:"3d38e48eb14e60ad40639bb7ee44a1307585c4e3",status:m,message:v?this.validationText:this.invalidDateText,for:t,ariaLiveMode:p})))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{day:["watchInputHandler"],month:["watchInputHandler"],year:["watchInputHandler"],disabled:["watchDisabledHandler"],disableFuture:["watchDisableFutureHandler"],disablePast:["watchDisablePastHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"]}}};M.style=z;export{M as ic_date_input};
|
|
2
|
-
//# sourceMappingURL=p-2528ecec.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icDateInputCss","IcDateInputStyle0","inputIds","DateInput","constructor","hostRef","this","DEFAULT_DATE_FORMAT","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","INPUT_EVENT_OBJECT_STRING","inputsInOrder","isAfterMax","isBeforeMin","preventInputsUpdating","isDisabledDate","isValidDay","isValidMonth","isValidDate","isZuluTime","KEYBOARD_EVENT_OBJECT_STRING","MAX_DAY","MAX_MONTH","previousSelectedDate","selectedDate","externalSetDate","clearInput","calendarIsOpen","calendarFocused","clearButtonFocused","removeLabelledBy","day","month","year","dateFormat","emitDatePartChange","disabled","disableDays","disableDaysMessage","disableFuture","disableFutureMessage","disablePast","disablePastMessage","hideHelperText","hideLabel","inputId","invalidDateMessage","max","min","name","required","showCalendarButton","showClearButton","size","theme","validationAriaLive","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","checkSingleCopiedValueIsValid","isValid","Number","dayInputEl","monthInputEl","yearInputEl","isKeyboardOrEvent","event","Object","prototype","toString","call","setDateValidity","isEmptyString","handleInput","inputEvent","target","inputType","preventAutoFormatting","length","setInputValue","notifyScreenReader","moveToNextInput","setPreventInput","setFitToValueStyling","setValidationMessage","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","setPasteInvalidText","handleLeftRightArrowKeyPress","handleUpDownArrowKeyPress","moveToPreviousInput","preventInput","handleFocus","select","handleBlur","autocompleteInput","notifyScreenReaderSelectedDate","selectedDateInfoEl","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","textContent","getDay","getDate","getMonth","getFullYear","minValue","maxValue","Date","handleDateChange","force","dateMatches","forEach","invalidDateText","setValueAndEmitChange","updateInputValues","slicePastedDate","valueLength","datePart","slice","isPastedStringDateValid","handlePaste","clipboardData","getData","setPastedValueAndValidation","setDate","date","undefined","remove","isDateOrEpoch","newDate","convertToDoubleDigits","defaultDateArray","splitStringDate","formatMinMax","formattedDate","clear","newValue","convertToDate","isSelectedDateDisabled","setAttribute","removeAttribute","minDate","maxDate","setInputsInOrder","el","shadowRoot","querySelectorAll","push","setAriaLabelledBy","inputCompContainerEl","getAttribute","removeAriaLabelledBy","labelEl","_b","querySelector","labelId","id","hasValidation","labelledBy","_c","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedDateInfoId","assistiveHintId","isPrevented","preventDayInput","preventMonthInput","preventYearInput","getInputFromDatePart","dayInput","h","class","ref","placeholder","onPaste","inputmode","pattern","onKeyDown","monthInput","yearInput","maxLength","getInputsInOrder","dateParts","split","part","substring","getDescOfInputsOrder","description","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","selectedString","selectionStart","selectionEnd","currentDate","isNotToday","toDateString","includes","currentInput","findIndex","focus","inputValue","yearNumbers","autocompletedInput","number","index","handleHostBlur","icBlur","emit","handleHostFocus","activeElement","match","icFocus","handleFormReset","getAriaLabel","notifyScreenReaderArrowKeys","liveRegion","ariaLabel","announcement","notifyScreenReaderInput","monthValue","setAriaInvalid","validDay","validMonth","validDate","disabledDate","handleClear","handleCalendarOpen","ev","stopImmediatePropagation","calendarButtonEl","displayTooltip","calendarButtonClicked","_f","_e","_d","emitIcChange","handleCalendarFocus","handleCalendarBlur","handleClearFocus","handleClearBlur","relatedTarget","d","UTCDate","UTC","icChange","dateObject","utcValue","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","setCalendarFocus","setDisableDays","days","triggerIcChange","nextParsedValue","extractDateFromZuluDateTime","pasteZuluDateTime","dateValue","isNumeric","displayPastedValidation","previousInvalidDateTest","isPasteValidationDisplayed","render","hasCustomValidation","assistiveHint","renderHiddenInput","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Calendar","status","message","ariaLiveMode"],"sources":["src/components/ic-date-input/ic-date-input.css?tag=ic-date-input&encapsulation=shadow","src/components/ic-date-input/ic-date-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-date-input-bg);\n --ic-input-label-text-color: var(--ic-date-input-label);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle);\n --border-color: var(--ic-date-input-border);\n --border-color-disabled: var(--ic-date-input-border-disabled);\n --border-color-hover: var(--ic-date-input-border-default-hover);\n --border-color-pressed: var(--ic-date-input-border-default-pressed);\n --border-error-color: var(--ic-date-input-border-error);\n --border-error-color-hover: var(--ic-date-input-border-error-hover);\n --border-error-color-pressed: var(--ic-date-input-border-error-pressed);\n --border-success-color: var(--ic-date-input-border-success);\n --border-success-color-hover: var(--ic-date-input-border-success-hover);\n --border-success-color-pressed: var(--ic-date-input-border-success-pressed);\n --border-warning-color: var(--ic-date-input-border-warning);\n --border-warning-color-hover: var(--ic-date-input-border-warning-hover);\n --border-warning-color-pressed: var(--ic-date-input-border-warning-pressed);\n}\n\n:host(.ic-date-input-disabled) {\n --ic-input-label-text-color: var(--ic-date-input-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle-disabled);\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-date-input-text-filled);\n caret-color: var(--ic-date-input-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-date-input-text-filled) !important;\n}\n\ninput::placeholder {\n color: var(--ic-date-input-text-placeholder);\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.date-inputs {\n color: var(--ic-date-input-text-placeholder);\n}\n\n.day-input {\n width: 1.438rem;\n}\n\n.month-input {\n width: 1.813rem;\n}\n\n.year-input,\n.year-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-calendar-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.calendar-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.calendar-button:focus,\n.clear-button:active,\n.calendar-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.calendar-button:focus,\n.calendar-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.calendar-button:focus,\n.clear-button:active *,\n.calendar-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-date-input-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-date-input-status-text);\n --ic-input-validation-error: var(--ic-date-input-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-date-input-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-date-input-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 IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcDateFormat,\n IcDateInputMonths,\n IcDayNames,\n IcWeekDays,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToDoubleDigits,\n createDate,\n dateMatches,\n extractDateFromZuluDateTime,\n isDateOrEpoch,\n splitStringDate,\n} from \"../../utils/date-helpers\";\nimport {\n addFormResetListener,\n getInputDescribedByText,\n isEmptyString,\n isNumeric,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n stringEnumToArray,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Calendar from \"../../assets/calendar.svg\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the date input.\n */\n@Component({\n tag: \"ic-date-input\",\n styleUrl: \"ic-date-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DateInput {\n private DEFAULT_DATE_FORMAT: IcDateFormat = \"DD/MM/YYYY\";\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 calendarButtonEl: HTMLIcButtonElement;\n private dayInputEl?: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private INPUT_EVENT_OBJECT_STRING = \"[object InputEvent]\";\n private inputsInOrder: HTMLInputElement[] = [];\n\n private isAfterMax: boolean = false;\n private isBeforeMin: boolean = false;\n private preventInputsUpdating: boolean = false;\n private isDisabledDate: boolean = false;\n private isPasteValidationDisplayed: boolean;\n private isValidDay: boolean = true;\n private isValidMonth: boolean = true;\n private isValidDate: boolean = true;\n private isZuluTime: boolean = false;\n\n private KEYBOARD_EVENT_OBJECT_STRING = \"[object KeyboardEvent]\";\n private MAX_DAY = 31;\n private MAX_MONTH = 12;\n private monthInputEl?: HTMLInputElement;\n\n private preventAutoFormatting: boolean;\n private preventDayInput: boolean;\n private preventMonthInput: boolean;\n private preventYearInput: boolean;\n\n private previousInvalidDateTest: string;\n private previousSelectedDate: Date | null = null;\n\n private selectedDate: Date | null = null;\n private selectedDateInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedDateInfoId: string;\n\n private yearInputEl?: HTMLInputElement;\n\n private externalSetDate: boolean = false;\n private clearInput: boolean = false;\n\n private calendarIsOpen: boolean = false;\n\n @Element() el: HTMLIcDateInputElement;\n\n @State() invalidDateText: string;\n @State() maxDate: Date;\n @State() minDate: Date;\n @State() calendarFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n\n @State() day: string = \"\";\n @State() month: string = \"\";\n @State() year: string = \"\";\n\n @Watch(\"day\")\n @Watch(\"month\")\n @Watch(\"year\")\n watchInputHandler(): void {\n if (\n this.emitDatePartChange &&\n !this.externalSetDate &&\n !this.clearInput &&\n !(this.day && this.month && this.year) &&\n this.selectedDate === null\n ) {\n this.emitIcChange(this.selectedDate);\n }\n }\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat: IcDateFormat = this.DEFAULT_DATE_FORMAT;\n /**\n * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitDatePartChange?: boolean = false;\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 * The days of the week to disable.\n */\n @Prop({ mutable: true }) disableDays: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is set and a disabled date is entered.\n */\n @Prop() disableDaysMessage: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is true and a date in the future is entered.\n */\n @Prop() disableFutureMessage: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is true and a date in the past is entered.\n */\n @Prop() disablePastMessage: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\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 `dateFormat` 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-date-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid date is entered.\n */\n @Prop() invalidDateMessage: string = \"Please enter a valid date.\";\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\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\n @Watch(\"required\")\n watchRequiredHandler(): void {\n // Prevent asterisk being read out after the label by screen reader (by applying aria-hidden)\n // Needed because label is included in 'aria-labelledby' instead of using 'aria-label'\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 * @internal If `true`, a button which displays the calendar view when clicked will be displayed.\n */\n @Prop() showCalendarButton?: boolean = false;\n\n /**\n * If `true`, a button which clears the date input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * The size of the date input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the date 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 value of the date input. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date 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 date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the calendar is opened.\n */\n @Event() calendarButtonClicked: 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 dateObject: {\n day: string | null;\n month: string | null;\n year: string | null;\n };\n utcValue: Date | null;\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.dateFormat}`;\n\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n this.watchMinHandler();\n this.watchMaxHandler();\n\n if (this.value) {\n this.externalSetDate = true;\n this.setDate(this.value);\n }\n\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedDateInfoId = `${this.inputId}-selected-date-info`;\n\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Input\"\n );\n\n if (this.value) {\n this.updateInputValues(this.day, this.month, this.year);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n\n if (this.value) {\n this.notifyScreenReaderSelectedDate();\n }\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\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n if (!this.preventInputsUpdating) this.setDate(this.value);\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n this.handleDateChange(false);\n this.preventInputsUpdating = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getDate(): Promise<Date | null> {\n return this.selectedDate;\n }\n\n /**\n * @internal Sets focus on the calendar button.\n */\n @Method()\n async setCalendarFocus(): Promise<void> {\n if (this.calendarButtonEl) {\n this.calendarButtonEl.focus();\n }\n }\n\n /**\n * @internal Used to pass disabledDays from parent component.\n */\n @Method()\n async setDisableDays(days: IcWeekDays[]): Promise<void> {\n this.disableDays = days;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(d: Date | null): Promise<void> {\n this.externalSetDate = true;\n this.setDate(d);\n this.emitIcChange(d);\n this.externalSetDate = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private checkSingleCopiedValueIsValid = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n let isValid = false;\n const value = Number(pastedValue);\n\n switch (input) {\n case this.dayInputEl:\n isValid = value >= 1 && value <= this.MAX_DAY;\n break;\n case this.monthInputEl:\n isValid = value >= 1 && value <= this.MAX_MONTH;\n break;\n case this.yearInputEl:\n isValid = true;\n break;\n }\n\n return isValid;\n };\n\n /**\n * Using Object.prototype.string to determine type if event from user\n * @param event - event object used to differentiate keyboard, generic or input event\n * @returns boolean\n */\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) ===\n this.KEYBOARD_EVENT_OBJECT_STRING\n );\n };\n\n private setDateValidity = () => {\n if (!isEmptyString(this.day)) {\n this.isValidDay = +this.day > this.MAX_DAY ? false : true;\n } else {\n this.isValidDay = true;\n }\n\n if (!isEmptyString(this.month)) {\n this.isValidMonth = +this.month > this.MAX_MONTH ? false : true;\n } else {\n this.isValidMonth = true;\n }\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n\n if (input !== this.yearInputEl) {\n // Only auto-format if input event is not a character being deleted\n // and not as user is changing value using up / down keys\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n ((input === this.dayInputEl && +input.value >= 4) ||\n (input === this.monthInputEl && +input.value >= 2)) &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n }\n\n if (input.value.length === 2) {\n if (+input.value === 0) {\n input.value = \"01\";\n }\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n /**\n * Using arrow keys prevents auto formatting so need to deal with\n * switching from arrow keys to inputting numbers\n **/\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\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 4) {\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.setPreventInput(input, false);\n }\n }\n\n // Add / remove class to make input width match size of value i.e. 2 digits' width for day / month, 4 for year\n this.setFitToValueStyling(input);\n\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n\n this.notifyScreenReader(input, event);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n\n const eventKey = event.key?.toLowerCase();\n // Regex required due to FF allowing all characters as values for number text field.\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\n switch (eventKey) {\n case \"/\":\n case \"-\":\n case \".\":\n event.preventDefault();\n this.setPasteInvalidText();\n this.moveToNextInput(input);\n break;\n case \"arrowright\":\n case \"arrowleft\":\n event.preventDefault();\n this.handleLeftRightArrowKeyPress(input, eventKey);\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\n this.preventInput(event, isInputPrevented);\n this.preventInputsUpdating = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n // Highlight / select all characters in input for easy replacement\n const input = event.target as HTMLInputElement;\n\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target;\n if (input) {\n this.setPasteInvalidText();\n this.autocompleteInput(input as HTMLInputElement);\n }\n };\n\n private handleLeftRightArrowKeyPress = (\n input: HTMLInputElement,\n key: string\n ) => {\n if (key === \"arrowright\") {\n this.moveToNextInput(input);\n } else {\n this.moveToPreviousInput(input);\n }\n\n this.setPasteInvalidText();\n };\n\n private notifyScreenReaderSelectedDate = () => {\n if (this.selectedDate && this.selectedDateInfoEl) {\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n\n this.selectedDateInfoEl.textContent = `Selected date: ${\n dayNames[this.selectedDate.getDay()]\n }, ${this.selectedDate.getDate()} ${\n months[this.selectedDate.getMonth()]\n } ${this.selectedDate.getFullYear()}`;\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n const minValue = input === this.yearInputEl ? 0 : 1;\n\n let maxValue = 9999;\n\n switch (input) {\n case this.dayInputEl:\n maxValue = this.MAX_DAY;\n break;\n case this.monthInputEl:\n maxValue = this.MAX_MONTH;\n break;\n case this.yearInputEl:\n maxValue = 9999;\n }\n\n // Make value loop round when min / max reached\n if (input?.value) {\n if (event.key === \"ArrowUp\") {\n if (+input.value === maxValue) {\n event.preventDefault();\n input.value = `0${minValue}`;\n } else {\n input.value =\n +input.value + 1 < 10\n ? `0${+input.value + 1}`\n : (+input.value + 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n\n if (event.key === \"ArrowDown\") {\n if (+input.value === minValue) {\n event.preventDefault();\n input.value = maxValue.toString();\n } else {\n input.value =\n +input.value - 1 < 10\n ? `0${+input.value - 1}`\n : (+input.value - 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n } else {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : maxValue.toString();\n this.notifyScreenReader(input, event);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : `0${minValue}`;\n this.notifyScreenReader(input, event);\n }\n }\n\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleDateChange = (force: boolean) => {\n // Prevent icChange being emitted when each individual input is changed\n // This method is used within componentWillUpdate instead of using @Watch('value');\n if (force || !dateMatches(this.selectedDate, this.previousSelectedDate)) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (this.day && this.month && this.year && this.invalidDateText === \"\") {\n this.setValueAndEmitChange(this.selectedDate);\n this.notifyScreenReaderSelectedDate();\n } else if (\n !(this.selectedDate === null && this.previousSelectedDate === null) &&\n this.selectedDateInfoEl\n ) {\n this.setValueAndEmitChange(null);\n this.selectedDateInfoEl.textContent = \"\";\n }\n this.previousSelectedDate = this.selectedDate;\n\n if (!this.preventInputsUpdating) {\n this.updateInputValues(this.day, this.month, this.year);\n }\n }\n };\n\n private slicePastedDate = (valueLength: number, datePart: string): string => {\n return datePart.length > valueLength\n ? datePart.slice(0, valueLength)\n : datePart;\n };\n\n private isPastedStringDateValid = (value: string) => {\n if (\n /\\d+-\\d+-\\d+$/.test(value) ||\n /\\d+\\/\\d+\\/\\d+/.test(value) ||\n /\\d+\\.\\d+\\.\\d+/.test(value)\n ) {\n return true;\n }\n\n if (\n /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\\.\\d+)?)?Z/.test(\n value\n )\n ) {\n this.isZuluTime = true;\n return true;\n }\n\n return false;\n };\n\n // Set value of each input to value of pasted date part\n // Allows formats separated by '-' or '/'\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidDate = this.isPastedStringDateValid(pastedValue);\n\n this.setPastedValueAndValidation(isValidDate, pastedValue, event);\n };\n\n private setDate = (date?: string | Date | null) => {\n if (date === null || date === \"\" || date === undefined) {\n if (this.day) this.day = \"\";\n if (this.month) this.month = \"\";\n if (this.year) this.year = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleDateChange(true);\n } else {\n if (isDateOrEpoch(date)) {\n let newDate;\n if (typeof date === \"string\") {\n // Checking if epoch date time\n newDate = new Date(+date);\n } else {\n newDate = date;\n }\n\n this.day = convertToDoubleDigits(newDate.getDate());\n this.month = convertToDoubleDigits(newDate.getMonth() + 1);\n this.year = newDate.getFullYear().toString();\n } else if (typeof date === \"string\") {\n const defaultDateArray = splitStringDate(date, this.dateFormat);\n this.selectedDate = new Date(\n Number(defaultDateArray[0]),\n Number(defaultDateArray[1]) - 1,\n Number(defaultDateArray[2])\n );\n this.year = defaultDateArray[0];\n this.month = defaultDateArray[1];\n this.day = defaultDateArray[2];\n this.setValueAndEmitChange(this.selectedDate);\n }\n }\n\n this.setValidationMessage();\n };\n\n private formatMinMax = (date: Date) => {\n let formattedDate;\n\n const day = convertToDoubleDigits(date.getDate());\n const month = convertToDoubleDigits(date.getMonth() + 1);\n const year = date.getFullYear();\n\n switch (this.dateFormat) {\n case this.DEFAULT_DATE_FORMAT:\n formattedDate = `${day}/${month}/${year}`;\n break;\n case \"MM/DD/YYYY\":\n formattedDate = `${month}/${day}/${year}`;\n break;\n case \"YYYY/MM/DD\":\n formattedDate = `${year}/${month}/${day}`;\n break;\n default:\n break;\n }\n return formattedDate;\n };\n private updateInputValues = (day: string, month: string, year: string) => {\n if (this.dayInputEl && this.monthInputEl && this.yearInputEl) {\n this.dayInputEl.value = day;\n this.monthInputEl.value = month;\n this.yearInputEl.value = year;\n }\n };\n\n // Set value in state based on input\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n\n switch (input) {\n case this.dayInputEl:\n this.day = newValue;\n break;\n case this.monthInputEl:\n this.month = newValue;\n break;\n case this.yearInputEl:\n if (this.year !== newValue) {\n this.year = newValue;\n }\n }\n\n this.setValidationMessage();\n };\n\n private setValidationMessage = () => {\n this.setDateValidity();\n\n if (\n !isEmptyString(this.day) &&\n !isEmptyString(this.month) &&\n !isEmptyString(this.year)\n ) {\n // Check whether date actually exists\n // (used https://www.hectane.com/blog/javascript-date-validation-with-leap-year)\n this.selectedDate = this.convertToDate(this.year, this.month, this.day);\n this.isValidDate =\n !!this.selectedDate && this.selectedDate.getDate() == +this.day;\n this.isDisabledDate = this.isSelectedDateDisabled();\n\n if (!this.isValidDate || this.isDisabledDate) {\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.selectedDate = null;\n }\n\n if (!(this.isValidDay && this.isValidMonth && this.isValidDate)) {\n this.invalidDateText = this.invalidDateMessage;\n } else if (this.isDisabledDate && this.selectedDate !== null) {\n if (this.isBeforeMin) {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n } else {\n this.invalidDateText = `Please enter a date after ${this.formatMinMax(\n this.minDate\n )}.`;\n }\n } else if (this.isAfterMax) {\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n } else {\n this.invalidDateText = `Please enter a date before ${this.formatMinMax(\n this.maxDate\n )}.`;\n }\n } else if (this.disableDays.length !== 0) {\n this.invalidDateText = this.disableDaysMessage;\n } else {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n }\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n }\n }\n } else {\n this.invalidDateText = \"\";\n }\n };\n\n // Set refs to the input elements in the order they are displayed (based on the dateFormat)\n private setInputsInOrder = () => {\n this.el.shadowRoot\n ?.querySelectorAll(\"input\")\n .forEach((input) => this.inputsInOrder.push(input));\n };\n\n // Includes text usually added using aria-describedby\n // (which doesn't work on input component container)\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n !isEmptyString(\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n )\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidDateText);\n\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.selectedDate ? this.selectedDateInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n\n this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n // Sets boolean for each input, used to limit the number of characters within each field (2 for day / month, 4 for year)\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n switch (input) {\n case this.dayInputEl:\n this.preventDayInput = isPrevented;\n break;\n case this.monthInputEl:\n this.preventMonthInput = isPrevented;\n break;\n case this.yearInputEl:\n this.preventYearInput = isPrevented;\n }\n };\n\n // Get input based on letter representing each date part (\"D\", \"M\" or \"Y\")\n // (retrieved from dateFormat)\n private getInputFromDatePart = (datePart: string) => {\n const dayInput = (\n <input\n class=\"day-input\"\n id=\"day-input\"\n ref={(el) => (this.dayInputEl = el)}\n aria-label=\"day\"\n placeholder=\"DD\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventDayInput)}\n ></input>\n );\n\n const monthInput = (\n <input\n id=\"month-input\"\n class=\"month-input\"\n ref={(el) => (this.monthInputEl = el)}\n aria-label=\"month\"\n placeholder=\"MM\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventMonthInput)}\n ></input>\n );\n\n const yearInput = (\n <input\n id=\"year-input\"\n class=\"year-input\"\n ref={(el) => (this.yearInputEl = el)}\n aria-label=\"year\"\n placeholder=\"YYYY\"\n maxLength={4}\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventYearInput)}\n ></input>\n );\n\n let input;\n\n switch (datePart) {\n case \"D\":\n input = dayInput;\n break;\n case \"M\":\n input = monthInput;\n break;\n case \"Y\":\n input = yearInput;\n }\n\n return input;\n };\n\n // Get input elements in order of chosen date format\n private getInputsInOrder = () => {\n const dateParts = this.dateFormat.split(\"/\");\n\n const inputsInOrder: HTMLInputElement[] = [];\n\n dateParts.forEach((part: string) => {\n inputsInOrder.push(this.getInputFromDatePart(part.substring(0, 1)));\n });\n\n return inputsInOrder;\n };\n\n // To add to the end of assistive hint to make it clearer that each date part has its own input\n // that can be changed individually\n private getDescOfInputsOrder = () => {\n let description;\n\n switch (this.dateFormat) {\n case this.DEFAULT_DATE_FORMAT:\n description = \"day, month, and year\";\n break;\n case \"MM/DD/YYYY\":\n description = \"month, day, and year\";\n break;\n case \"YYYY/MM/DD\":\n description = \"year, month, and day\";\n }\n\n return description;\n };\n\n // Add 'required' or 'invalid data' to span used in aria-labelledby\n // Many ARIA attributes aren't read out by screen reader when on the input component container\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n\n if (this.required) {\n inputDescriptors += \"required\";\n }\n\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n // Prevent non-number characters being entered\n // ('e' or '.' - which are usually allowed in <input type=\"number\">)\n // And limit the number of characters within each field (2 for day / month, 4 for year)\n // (because 'maxlength' doesn't work on <input type=\"number\">)\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\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 /**\n * Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day\n * Consider using dateClamp and inDateRange\n * @returns `boolean`\n */\n private isSelectedDateDisabled = () => {\n if (!this.selectedDate) return false;\n\n const currentDate = new Date();\n const isNotToday =\n this.selectedDate.toDateString() !== currentDate.toDateString();\n\n this.isAfterMax =\n this.maxDate && this.selectedDate > this.maxDate && isNotToday;\n this.isBeforeMin =\n this.minDate && this.selectedDate < this.minDate && isNotToday;\n\n return (\n this.isAfterMax ||\n this.isBeforeMin ||\n this.disableDays.includes(this.selectedDate.getDay()) ||\n (((!!this.disablePast && this.selectedDate < currentDate) ||\n (!!this.disableFuture && this.selectedDate > currentDate)) &&\n isNotToday)\n );\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n\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\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 (this.yearInputEl && input === this.yearInputEl) {\n // Autocomplete year as current millennium when fewer than 4 characters entered\n const yearNumbers = [\"2\", \"0\", \"0\"];\n\n let autocompletedInput = \"\";\n\n if (inputValue) {\n yearNumbers.forEach((number, index) => {\n if (inputValue.length + index <= 3) {\n autocompletedInput += number;\n }\n });\n\n this.yearInputEl.value = `${autocompletedInput}${inputValue}`;\n }\n } else if (inputValue.length === 1) {\n // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)\n input.value = +inputValue === 0 ? \"01\" : `0${inputValue}`;\n }\n\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToDate = (\n year: string,\n month: string,\n day: string\n ): Date | null => {\n if (!isEmptyString(year) && !isEmptyString(month) && !isEmptyString(day)) {\n return new Date(+year, +month - 1, +day);\n } else {\n return null;\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedDate });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(/(day|month|year)-input$/)\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedDate });\n };\n\n private handleFormReset = () => {\n // Get the initial value and populate day, month and year again.\n this.setDate(this.initialValue);\n this.setValidationMessage();\n this.handleDateChange(false);\n };\n\n private getAriaLabel = (input: HTMLInputElement) =>\n input.getAttribute(this.ARIA_LABEL);\n\n private notifyScreenReaderArrowKeys = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n const ariaLabel = this.getAriaLabel(input);\n\n if (liveRegion && input.value && ariaLabel) {\n let announcement = \"\";\n\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1]\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl || input === this.yearInputEl) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n\n liveRegion.textContent = announcement;\n }\n };\n\n private removeAriaLabelledBy() {\n this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);\n }\n\n private setPastedValueAndValidation(\n isValidDate: boolean,\n pastedValue: string,\n event: ClipboardEvent\n ) {\n switch (true) {\n case isValidDate: {\n const nextParsedValue = this.isZuluTime\n ? extractDateFromZuluDateTime(pastedValue)\n : pastedValue;\n const dateParts = nextParsedValue.split(/-|\\/|\\./);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n\n if (this.isZuluTime) {\n this.pasteZuluDateTime(dateParts, index);\n } else {\n let dateValue;\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n dateValue = this.slicePastedDate(2, dateParts[index]);\n } else {\n dateValue = this.slicePastedDate(4, dateParts[index]);\n }\n\n input.value = dateValue;\n\n this.setInputValue(input);\n this.autocompleteInput(input);\n }\n });\n this.isZuluTime = false;\n break;\n }\n\n case (pastedValue.length === 1 ||\n pastedValue.length === 2 ||\n pastedValue.length === 4) &&\n isNumeric(pastedValue):\n if (this.checkSingleCopiedValueIsValid(event.target, pastedValue)) {\n // Check if copied value can be pasted into input\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.displayPastedValidation(event);\n }\n break;\n\n case pastedValue.length === 3 && isNumeric(pastedValue):\n if (event.target !== this.yearInputEl) {\n this.displayPastedValidation(event);\n } else {\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n }\n break;\n\n case pastedValue.length >= 5 && isNumeric(pastedValue):\n this.displayPastedValidation(event);\n }\n }\n\n private pasteZuluDateTime(dateParts: string[], index: number) {\n // ['YYYY', 'MM', 'DD']\n if (index === 0 && this.yearInputEl) {\n const dateValue = this.slicePastedDate(4, dateParts[index]);\n this.yearInputEl.value = dateValue;\n this.setInputValue(this.yearInputEl);\n } else if (index === 1 && this.monthInputEl) {\n // The month value is the second item in the array\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.monthInputEl.value = dateValue;\n this.setInputValue(this.monthInputEl);\n } else if (this.dayInputEl) {\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.dayInputEl.value = dateValue;\n this.setInputValue(this.dayInputEl);\n }\n }\n\n private displayPastedValidation(event: ClipboardEvent) {\n if (this.invalidDateText?.length > 0) {\n this.previousInvalidDateTest = this.invalidDateText;\n }\n\n this.invalidDateText = `Please paste a valid ${this.getAriaLabel(\n event.target as HTMLInputElement\n )}`;\n\n this.validationStatus = IcInformationStatus.Error;\n this.isPasteValidationDisplayed = true;\n }\n\n private setPasteInvalidText() {\n if (this.isPasteValidationDisplayed) {\n this.invalidDateText = this.previousInvalidDateTest ?? \"\";\n this.isPasteValidationDisplayed = false;\n\n // This is to prevent setDate from triggering within componentWillUpdate\n this.preventInputsUpdating = true;\n }\n }\n\n private notifyScreenReader(input: HTMLInputElement, event: Event) {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n\n if (liveRegion) {\n if (this.isKeyboardOrEvent(event)) {\n this.notifyScreenReaderArrowKeys(input);\n } else if (\n Object.prototype.toString.call(event) === this.INPUT_EVENT_OBJECT_STRING\n ) {\n this.notifyScreenReaderInput(input, liveRegion as HTMLElement);\n }\n }\n }\n\n private notifyScreenReaderInput = (\n input: HTMLInputElement,\n liveRegion: HTMLElement\n ) => {\n const ariaLabel = this.getAriaLabel(input);\n const value = input.value;\n\n if (ariaLabel && value) {\n let announcement = \"\";\n\n const monthValue = IcDateInputMonths[+value - 1];\n if (\n input === this.monthInputEl &&\n !!monthValue &&\n this.isValidMonth &&\n value.length === 2\n ) {\n announcement = `${value} - ${monthValue}`;\n } else if (\n (input === this.dayInputEl && this.isValidDay && value.length === 2) ||\n (input === this.yearInputEl && value.length === 4)\n ) {\n announcement = value;\n }\n\n liveRegion.textContent = `${announcement}, ${ariaLabel}`;\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 setAriaInvalid = (\n validDay: boolean,\n validMonth: boolean,\n validDate: boolean,\n disabledDate: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n\n if (!validDay) {\n this.dayInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validMonth) {\n this.monthInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validDate || disabledDate) {\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 this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.preventInputsUpdating = false;\n this.setValidationMessage();\n this.handleDateChange(true);\n\n this.inputsInOrder[0].focus();\n };\n\n private handleCalendarOpen = (ev: MouseEvent) => {\n ev.stopImmediatePropagation();\n this.calendarButtonEl?.shadowRoot\n ?.querySelector(\"ic-tooltip\")\n ?.displayTooltip(false);\n this.calendarButtonClicked.emit({ value: this.selectedDate });\n this.calendarButtonEl?.shadowRoot\n ?.querySelector(\"ic-tooltip\")\n ?.displayTooltip(false);\n this.preventInputsUpdating = false;\n this.calendarIsOpen = true;\n };\n\n private setValueAndEmitChange = (value: Date | null) => {\n if (!dateMatches(this.value ? new Date(this.value) : null, value)) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private handleCalendarFocus = () => {\n this.calendarFocused = true;\n if (this.calendarIsOpen) {\n // focus event triggered by closing calendar dialog so inputs should update\n this.preventInputsUpdating = false;\n this.calendarIsOpen = false;\n } else {\n this.preventInputsUpdating = true;\n }\n };\n\n private handleCalendarBlur = () => {\n this.calendarFocused = false;\n this.preventInputsUpdating = true;\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.preventInputsUpdating = true;\n this.clearButtonFocused = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.preventInputsUpdating = true;\n if ((ev.relatedTarget as HTMLElement)?.id.match(/(day|year)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n\n this.removeLabelledBy = true;\n };\n\n private emitIcChange = (d: Date | null) => {\n this.selectedDate = d;\n if (\n !dateMatches(this.selectedDate, d) ||\n this.day !== null ||\n this.month !== null ||\n this.year !== null\n ) {\n let UTCDate = null;\n if (d !== null) {\n UTCDate = new Date(\n Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())\n );\n }\n this.icChange.emit({\n value: d,\n dateObject: {\n day: this.day === \"\" ? null : this.day,\n month: this.month === \"\" ? null : this.month,\n year: this.year === \"\" ? null : this.year,\n },\n utcValue: UTCDate,\n });\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showCalendarButton,\n size,\n theme,\n validationAriaLive,\n } = this;\n\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidDateText)\n ? IcInformationStatus.Error\n : \"\";\n\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToDate(this.year, this.month, this.day),\n this.disabled\n );\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-date-input-disabled`]: disabled,\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=\"date-inputs\">\n {this.getInputsInOrder()[0]}/{this.getInputsInOrder()[1]}/\n {this.getInputsInOrder()[2]}\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.day) &&\n isEmptyString(this.month) &&\n isEmptyString(this.year),\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 {showCalendarButton && (\n <div class=\"show-calendar-button-wrapper\">\n <div class={{ divider: true, [size]: true }}></div>\n <ic-button\n id=\"calendar-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.calendarButtonEl = el)\n }\n aria-label=\"Display calendar\"\n aria-haspopup=\"dialog\"\n class=\"calendar-button\"\n disabled={this.disabled}\n innerHTML={Calendar}\n onClick={this.handleCalendarOpen}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleCalendarFocus}\n onBlur={this.handleCalendarBlur}\n theme={this.calendarFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedDateInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedDateInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidDateText\n }\n for={inputId}\n ariaLiveMode={validationAriaLive}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|