@ukic/canary-web-components 2.0.0-canary.4 → 2.0.0-canary.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/date-helpers-c9551119.js +150 -0
- package/dist/cjs/date-helpers-c9551119.js.map +1 -0
- package/dist/cjs/helpers-951fb33a.js +433 -0
- package/dist/cjs/helpers-951fb33a.js.map +1 -0
- package/dist/cjs/{helpers-bbe55215.js → helpers-eabe59b6.js} +147 -100
- package/dist/cjs/helpers-eabe59b6.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -4
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +11 -4
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +20 -6
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +26 -17
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +86 -83
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +62 -25
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +145 -103
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +130 -0
- package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-card.cjs.entry.js +30 -7
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +28 -17
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +50 -31
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +45 -21
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +14 -5
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +3 -6
- package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +21 -35
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-data-table.cjs.entry.js +1079 -84
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +1123 -0
- package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-date-picker.cjs.entry.js +1129 -0
- package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-dialog.cjs.entry.js +54 -12
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state_2.cjs.entry.js +388 -0
- package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +18 -7
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +12 -2
- 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 +164 -0
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-link.cjs.entry.js +34 -16
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +21 -20
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js +2740 -0
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -0
- package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +17 -80
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-navigation-button.cjs.entry.js +28 -7
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +32 -22
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +82 -36
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +10 -10
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +231 -116
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +40 -36
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +100 -59
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +59 -42
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +22 -30
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select-with-multi.cjs.entry.js +796 -0
- package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-side-navigation.cjs.entry.js +53 -73
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +16 -35
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +4 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +5 -2
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +31 -9
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +7 -3
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +78 -130
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -13
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +16 -14
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +13 -22
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +6 -0
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +21 -18
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +201 -0
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-toggle-button.cjs.entry.js +97 -0
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -82
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +253 -0
- package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-tree-view.cjs.entry.js +215 -0
- package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-typography.cjs.entry.js +51 -14
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-4cf27b16.js +48 -12
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/arrow-dropdown.svg +3 -0
- package/dist/collection/assets/calendar.svg +3 -0
- package/dist/collection/collection-manifest.json +11 -1
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +658 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +375 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js +605 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js +2 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +140 -0
- package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -0
- package/dist/collection/components/ic-data-table/ic-data-table.css +286 -10
- package/dist/collection/components/ic-data-table/ic-data-table.js +1533 -123
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js +414 -0
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -0
- package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +1326 -43
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +460 -3
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +91 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js +98 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js.map +1 -0
- package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
- package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
- package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
- package/dist/collection/components/ic-date-input/ic-date-input.css +564 -0
- package/dist/collection/components/ic-date-input/ic-date-input.js +1808 -0
- package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -0
- package/dist/collection/components/ic-date-input/ic-date-input.stories.js +341 -0
- package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -0
- package/dist/collection/components/ic-date-input/story-data.js +28 -0
- package/dist/collection/components/ic-date-input/story-data.js.map +1 -0
- package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +1158 -0
- package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -0
- package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +42 -0
- package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.css +885 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.js +1688 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +167 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -0
- package/dist/collection/components/ic-date-picker/ic-day-button.js +36 -0
- package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -0
- package/dist/collection/components/ic-date-picker/ic-month-picker.js +29 -0
- package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -0
- package/dist/collection/components/ic-date-picker/ic-year-picker.js +39 -0
- package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -0
- package/dist/collection/components/ic-date-picker/story-data.js +179 -0
- package/dist/collection/components/ic-date-picker/story-data.js.map +1 -0
- package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js +13 -0
- package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +207 -0
- package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +1 -0
- package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +1030 -0
- package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -0
- package/dist/collection/components/ic-menu-with-multi/ic-menu.css +701 -0
- package/dist/collection/components/ic-menu-with-multi/ic-menu.js +1599 -0
- package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -0
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +1057 -0
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +346 -166
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +260 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js.map +1 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
- package/dist/collection/components/ic-pagination-bar/test/a11y/ic-pagination-bar.test.a11y.js +8 -1
- package/dist/collection/components/ic-pagination-bar/test/a11y/ic-pagination-bar.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +75 -12
- package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
- package/dist/collection/components/ic-select-with-multi/assets/Check.svg +3 -0
- package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +3 -0
- package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +3 -0
- package/dist/collection/components/ic-select-with-multi/ic-select-multi.stories.js +144 -0
- package/dist/collection/components/ic-select-with-multi/ic-select-multi.stories.js.map +1 -0
- package/dist/collection/components/ic-select-with-multi/ic-select.css +693 -0
- package/dist/collection/components/ic-select-with-multi/ic-select.js +1649 -0
- package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -0
- package/dist/collection/components/ic-select-with-multi/story-data.js +216 -0
- package/dist/collection/components/ic-select-with-multi/story-data.js.map +1 -0
- package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +1518 -0
- package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +1 -0
- package/dist/collection/components/ic-tree-item/ic-tree-item.css +186 -0
- package/dist/collection/components/ic-tree-item/ic-tree-item.js +620 -0
- package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -0
- package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +117 -0
- package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -0
- package/dist/collection/components/ic-tree-view/ic-tree-view.css +74 -0
- package/dist/collection/components/ic-tree-view/ic-tree-view.js +346 -0
- package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -0
- package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +456 -0
- package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -0
- package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js +85 -0
- package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js.map +1 -0
- package/dist/collection/utils/constants.js +83 -0
- package/dist/collection/utils/constants.js.map +1 -0
- package/dist/collection/utils/date-helpers.js +133 -0
- package/dist/collection/utils/date-helpers.js.map +1 -0
- package/dist/collection/utils/helpers.js +473 -5
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js +58 -0
- package/dist/collection/utils/types.js.map +1 -0
- package/dist/components/helpers.js +141 -98
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/helpers2.js +403 -0
- package/dist/components/helpers2.js.map +1 -0
- package/dist/components/ic-accordion-group.js +38 -7
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.js +12 -4
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-alert2.js +21 -6
- package/dist/components/ic-alert2.js.map +1 -1
- package/dist/components/ic-back-to-top.js +34 -18
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +91 -84
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.js +66 -25
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-breadcrumb2.js +2 -2
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button2.js +104 -74
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-horizontal.d.ts +11 -0
- package/dist/components/ic-card-horizontal.js +168 -0
- package/dist/components/ic-card-horizontal.js.map +1 -0
- package/dist/components/ic-card.js +34 -21
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +33 -18
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +58 -33
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +52 -23
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +14 -5
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-entity.js +3 -6
- package/dist/components/ic-data-entity.js.map +1 -1
- package/dist/components/ic-data-row.js +21 -35
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-data-table-title-bar.d.ts +11 -0
- package/dist/components/ic-data-table-title-bar.js +136 -0
- package/dist/components/ic-data-table-title-bar.js.map +1 -0
- package/dist/components/ic-data-table.js +1119 -91
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-date-input.d.ts +11 -0
- package/dist/components/ic-date-input.js +8 -0
- package/dist/components/ic-date-input.js.map +1 -0
- package/dist/components/ic-date-input2.js +1359 -0
- package/dist/components/ic-date-input2.js.map +1 -0
- package/dist/components/ic-date-picker.d.ts +11 -0
- package/dist/components/ic-date-picker.js +1258 -0
- package/dist/components/ic-date-picker.js.map +1 -0
- package/dist/components/ic-dialog.js +55 -12
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-empty-state.js +1 -57
- package/dist/components/ic-empty-state.js.map +1 -1
- package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +47 -11
- package/dist/components/ic-empty-state2.js.map +1 -0
- package/dist/components/ic-footer-link-group.js +4 -4
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +18 -7
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +12 -2
- 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 +24 -8
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +7 -5
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-link2.js +35 -17
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +2 -2
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +2 -2
- package/dist/components/ic-menu-group.js.map +1 -1
- package/dist/components/ic-menu-item2.js +26 -23
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu-with-multi.d.ts +11 -0
- package/dist/components/ic-menu-with-multi.js +8 -0
- package/dist/components/ic-menu-with-multi.js.map +1 -0
- package/dist/components/ic-menu2.js +14 -14
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-menu3.js +2806 -0
- package/dist/components/ic-menu3.js.map +1 -0
- package/dist/components/ic-navigation-button.js +29 -8
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +34 -24
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +84 -37
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +1 -1
- package/dist/components/ic-page-header.js +10 -10
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-bar2.js +244 -161
- package/dist/components/ic-pagination-bar2.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +27 -12
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination2.js +30 -10
- package/dist/components/ic-pagination2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +43 -38
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +101 -59
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +63 -44
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +23 -30
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +1 -1
- package/dist/components/ic-section-container2.js.map +1 -1
- package/dist/components/ic-select-with-multi.d.ts +11 -0
- package/dist/components/ic-select-with-multi.js +921 -0
- package/dist/components/ic-select-with-multi.js.map +1 -0
- package/dist/components/ic-select2.js +77 -30
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +56 -74
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +17 -40
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-status-tag.js +3 -1
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +5 -2
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +35 -9
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +9 -4
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +79 -130
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-panel.js +6 -17
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.js +16 -14
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field2.js +120 -72
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +13 -22
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast-region.js +6 -0
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.js +24 -19
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +230 -0
- package/dist/components/ic-toggle-button-group.js.map +1 -0
- package/dist/components/ic-toggle-button.js +148 -0
- package/dist/components/ic-toggle-button.js.map +1 -0
- package/dist/components/ic-tooltip2.js +52 -30
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +61 -83
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-tree-item.d.ts +11 -0
- package/dist/components/ic-tree-item.js +300 -0
- package/dist/components/ic-tree-item.js.map +1 -0
- package/dist/components/ic-tree-view.d.ts +11 -0
- package/dist/components/ic-tree-view.js +252 -0
- package/dist/components/ic-tree-view.js.map +1 -0
- package/dist/components/ic-typography2.js +57 -17
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/core/core.css +8 -5
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-0229eb46.entry.js +2 -0
- package/dist/core/p-0229eb46.entry.js.map +1 -0
- package/dist/core/p-04fe848d.entry.js +2 -0
- package/dist/core/p-04fe848d.entry.js.map +1 -0
- package/dist/core/p-05ae9a59.entry.js +2 -0
- package/dist/core/p-05ae9a59.entry.js.map +1 -0
- package/dist/core/p-074e64d0.entry.js +2 -0
- package/dist/core/p-074e64d0.entry.js.map +1 -0
- package/dist/core/p-0f1706e8.entry.js +2 -0
- package/dist/core/p-0f1706e8.entry.js.map +1 -0
- package/dist/core/p-11877d23.entry.js +2 -0
- package/dist/core/p-11877d23.entry.js.map +1 -0
- package/dist/core/p-1e450833.entry.js +2 -0
- package/dist/core/p-1e450833.entry.js.map +1 -0
- package/dist/core/{p-4409f656.entry.js → p-23408776.entry.js} +2 -2
- package/dist/core/p-23408776.entry.js.map +1 -0
- package/dist/core/p-26fa17fb.entry.js +2 -0
- package/dist/core/p-26fa17fb.entry.js.map +1 -0
- package/dist/core/p-2b15ea77.entry.js +2 -0
- package/dist/core/p-2b15ea77.entry.js.map +1 -0
- package/dist/core/p-2d44b81a.entry.js +2 -0
- package/dist/core/p-2d44b81a.entry.js.map +1 -0
- package/dist/core/p-2ea7af8b.entry.js +2 -0
- package/dist/core/p-2ea7af8b.entry.js.map +1 -0
- package/dist/core/p-33dd24eb.js +2 -0
- package/dist/core/p-33dd24eb.js.map +1 -0
- package/dist/core/p-38f329ab.entry.js +2 -0
- package/dist/core/p-38f329ab.entry.js.map +1 -0
- package/dist/core/p-3cd2056f.entry.js +2 -0
- package/dist/core/p-3cd2056f.entry.js.map +1 -0
- package/dist/core/p-3d00ad9e.entry.js +2 -0
- package/dist/core/p-3d00ad9e.entry.js.map +1 -0
- package/dist/core/p-3ebd4703.entry.js +2 -0
- package/dist/core/p-3ebd4703.entry.js.map +1 -0
- package/dist/core/p-44036532.entry.js +2 -0
- package/dist/core/p-44036532.entry.js.map +1 -0
- package/dist/core/p-44680720.entry.js +2 -0
- package/dist/core/p-44680720.entry.js.map +1 -0
- package/dist/core/{p-24945ee5.entry.js → p-452985d9.entry.js} +2 -2
- package/dist/core/p-452985d9.entry.js.map +1 -0
- package/dist/core/{p-b97dc365.entry.js → p-487fd924.entry.js} +2 -2
- package/dist/core/p-56db5123.entry.js +2 -0
- package/dist/core/p-56db5123.entry.js.map +1 -0
- package/dist/core/p-5a90eaa8.entry.js +2 -0
- package/dist/core/p-5a90eaa8.entry.js.map +1 -0
- package/dist/core/p-5dd6381a.entry.js +2 -0
- package/dist/core/p-5dd6381a.entry.js.map +1 -0
- package/dist/core/p-5f149106.entry.js +2 -0
- package/dist/core/p-5f149106.entry.js.map +1 -0
- package/dist/core/p-61848e6b.entry.js +2 -0
- package/dist/core/p-61848e6b.entry.js.map +1 -0
- package/dist/core/{p-d77960f6.entry.js → p-656378ba.entry.js} +2 -2
- package/dist/core/p-6a920114.entry.js +2 -0
- package/dist/core/p-6a920114.entry.js.map +1 -0
- package/dist/core/p-6cdf5de2.entry.js +2 -0
- package/dist/core/p-6cdf5de2.entry.js.map +1 -0
- package/dist/core/p-70ad364c.entry.js +2 -0
- package/dist/core/p-70ad364c.entry.js.map +1 -0
- package/dist/core/p-70c659ec.entry.js +2 -0
- package/dist/core/p-70c659ec.entry.js.map +1 -0
- package/dist/core/p-74b42302.entry.js +2 -0
- package/dist/core/p-74b42302.entry.js.map +1 -0
- package/dist/core/p-75bd12f8.entry.js +2 -0
- package/dist/core/p-75bd12f8.entry.js.map +1 -0
- package/dist/core/p-780294b8.entry.js +2 -0
- package/dist/core/p-780294b8.entry.js.map +1 -0
- package/dist/core/{p-baf81f30.entry.js → p-787ffd96.entry.js} +2 -2
- package/dist/core/p-787ffd96.entry.js.map +1 -0
- package/dist/core/p-7edc19be.entry.js +2 -0
- package/dist/core/p-7edc19be.entry.js.map +1 -0
- package/dist/core/p-8ab58daa.js +2 -0
- package/dist/core/p-8ab58daa.js.map +1 -0
- package/dist/core/p-8ced1495.entry.js +2 -0
- package/dist/core/p-8ced1495.entry.js.map +1 -0
- package/dist/core/{p-939baa93.entry.js → p-95545b4c.entry.js} +2 -2
- package/dist/core/p-95545b4c.entry.js.map +1 -0
- package/dist/core/p-95d057b8.entry.js +2 -0
- package/dist/core/p-95d057b8.entry.js.map +1 -0
- package/dist/core/p-987cd821.entry.js +2 -0
- package/dist/core/p-987cd821.entry.js.map +1 -0
- package/dist/core/{p-41aa0ed3.entry.js → p-9b386822.entry.js} +2 -2
- package/dist/core/p-9b386822.entry.js.map +1 -0
- package/dist/core/{p-39e20b87.entry.js → p-9bbe221f.entry.js} +2 -2
- package/dist/core/{p-39e20b87.entry.js.map → p-9bbe221f.entry.js.map} +1 -1
- package/dist/core/p-9f157649.entry.js +2 -0
- package/dist/core/p-9f157649.entry.js.map +1 -0
- package/dist/core/{p-356b8a4c.entry.js → p-9f3cf053.entry.js} +2 -2
- package/dist/core/{p-356b8a4c.entry.js.map → p-9f3cf053.entry.js.map} +1 -1
- package/dist/core/p-9f58998d.entry.js +2 -0
- package/dist/core/p-9f58998d.entry.js.map +1 -0
- package/dist/core/p-a4f28ef1.entry.js +2 -0
- package/dist/core/p-a4f28ef1.entry.js.map +1 -0
- package/dist/core/p-ac8090a5.entry.js +2 -0
- package/dist/core/p-ac8090a5.entry.js.map +1 -0
- package/dist/core/p-b1f89f44.entry.js +2 -0
- package/dist/core/p-b1f89f44.entry.js.map +1 -0
- package/dist/core/p-bc350ec5.entry.js +2 -0
- package/dist/core/p-bc350ec5.entry.js.map +1 -0
- package/dist/core/p-bd0328f3.entry.js +2 -0
- package/dist/core/p-bd0328f3.entry.js.map +1 -0
- package/dist/core/p-bf06977d.js +2 -0
- package/dist/core/p-bf06977d.js.map +1 -0
- package/dist/core/p-c0a2a040.entry.js +2 -0
- package/dist/core/p-c0a2a040.entry.js.map +1 -0
- package/dist/core/p-cc0e0b46.entry.js +2 -0
- package/dist/core/p-cc0e0b46.entry.js.map +1 -0
- package/dist/core/p-d0020f6f.entry.js +2 -0
- package/dist/core/p-d0020f6f.entry.js.map +1 -0
- package/dist/core/{p-3d618bc2.entry.js → p-d1045cd5.entry.js} +2 -2
- package/dist/core/p-d56248df.entry.js +2 -0
- package/dist/core/p-d56248df.entry.js.map +1 -0
- package/dist/core/p-d921dc2c.entry.js +2 -0
- package/dist/core/p-d921dc2c.entry.js.map +1 -0
- package/dist/core/p-da398a5d.entry.js +2 -0
- package/dist/core/p-da398a5d.entry.js.map +1 -0
- package/dist/core/{p-2e9e8e7c.entry.js → p-db5af9f7.entry.js} +2 -2
- package/dist/core/p-db5af9f7.entry.js.map +1 -0
- package/dist/core/p-dd4c83ad.entry.js +2 -0
- package/dist/core/p-dd4c83ad.entry.js.map +1 -0
- package/dist/core/p-e362b5f3.entry.js +2 -0
- package/dist/core/p-e362b5f3.entry.js.map +1 -0
- package/dist/core/p-e89c2feb.entry.js +2 -0
- package/dist/core/p-e89c2feb.entry.js.map +1 -0
- package/dist/core/p-eaeaa096.entry.js +2 -0
- package/dist/core/p-eaeaa096.entry.js.map +1 -0
- package/dist/core/{p-c2b5e7b1.entry.js → p-eb87b43b.entry.js} +2 -2
- package/dist/core/{p-c2b5e7b1.entry.js.map → p-eb87b43b.entry.js.map} +1 -1
- package/dist/core/p-f5dfcf4f.entry.js +2 -0
- package/dist/core/p-f5dfcf4f.entry.js.map +1 -0
- package/dist/core/p-f5fbfbc9.entry.js +2 -0
- package/dist/core/p-f5fbfbc9.entry.js.map +1 -0
- package/dist/core/p-fac387e8.entry.js +2 -0
- package/dist/core/p-fac387e8.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/date-helpers-0e5e32a7.js +136 -0
- package/dist/esm/date-helpers-0e5e32a7.js.map +1 -0
- package/dist/esm/helpers-948df101.js +403 -0
- package/dist/esm/helpers-948df101.js.map +1 -0
- package/dist/esm/{helpers-268c2b7f.js → helpers-cd64688a.js} +142 -99
- package/dist/esm/helpers-cd64688a.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +31 -4
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +11 -4
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +20 -6
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +26 -17
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +86 -83
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +62 -25
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +2 -2
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +145 -103
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +126 -0
- package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
- package/dist/esm/ic-card.entry.js +30 -7
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +28 -17
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +50 -31
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +45 -21
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +14 -5
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-entity.entry.js +3 -6
- package/dist/esm/ic-data-entity.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +21 -35
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
- package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
- package/dist/esm/ic-data-table.entry.js +1080 -85
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-input.entry.js +1119 -0
- package/dist/esm/ic-date-input.entry.js.map +1 -0
- package/dist/esm/ic-date-picker.entry.js +1125 -0
- package/dist/esm/ic-date-picker.entry.js.map +1 -0
- package/dist/esm/ic-dialog.entry.js +54 -12
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state_2.entry.js +383 -0
- package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
- package/dist/esm/ic-footer-link-group.entry.js +4 -4
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +3 -3
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +18 -7
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +12 -2
- 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 +157 -0
- package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
- package/dist/esm/ic-link.entry.js +35 -17
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +2 -2
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +21 -20
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-menu-with-multi.entry.js +2736 -0
- package/dist/esm/ic-menu-with-multi.entry.js.map +1 -0
- package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +19 -80
- package/dist/esm/ic-menu.entry.js.map +1 -0
- package/dist/esm/ic-navigation-button.entry.js +29 -8
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +33 -23
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +83 -37
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +10 -10
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination_4.entry.js +232 -117
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +40 -36
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +100 -59
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +59 -42
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +22 -30
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +1 -1
- package/dist/esm/ic-section-container.entry.js.map +1 -1
- package/dist/esm/ic-select-with-multi.entry.js +792 -0
- package/dist/esm/ic-select-with-multi.entry.js.map +1 -0
- package/dist/esm/ic-side-navigation.entry.js +53 -73
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +16 -35
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +4 -2
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +5 -2
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +31 -9
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +7 -3
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +78 -130
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab-panel.entry.js +5 -13
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +16 -14
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +13 -22
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +6 -0
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +21 -18
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +197 -0
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -0
- package/dist/esm/ic-toggle-button.entry.js +93 -0
- package/dist/esm/ic-toggle-button.entry.js.map +1 -0
- package/dist/esm/ic-top-navigation.entry.js +60 -82
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-tree-item.entry.js +249 -0
- package/dist/esm/ic-tree-item.entry.js.map +1 -0
- package/dist/esm/ic-tree-view.entry.js +211 -0
- package/dist/esm/ic-tree-view.entry.js.map +1 -0
- package/dist/esm/ic-typography.entry.js +52 -15
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-93509377.js +48 -12
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +71 -0
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.stories.d.ts +82 -0
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.types.d.ts +1 -0
- package/dist/types/components/ic-data-table/ic-data-table.d.ts +218 -19
- package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +239 -0
- package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +43 -0
- package/dist/types/components/ic-data-table/story-data.d.ts +492 -2
- package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
- package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.d.ts +47 -0
- package/dist/types/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-date-input/ic-date-input.d.ts +264 -0
- package/dist/types/components/ic-date-input/ic-date-input.stories.d.ts +124 -0
- package/dist/types/components/ic-date-input/story-data.d.ts +1 -0
- package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +23 -0
- package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +262 -0
- package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +153 -0
- package/dist/types/components/ic-date-picker/ic-day-button.d.ts +16 -0
- package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +14 -0
- package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +16 -0
- package/dist/types/components/ic-date-picker/story-data.d.ts +24 -0
- package/dist/types/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +218 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +65 -23
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.stories.d.ts +106 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
- package/dist/types/components/ic-select-with-multi/ic-select-multi.stories.d.ts +106 -0
- package/dist/types/components/ic-select-with-multi/ic-select.d.ts +289 -0
- package/dist/types/components/ic-select-with-multi/story-data.d.ts +32 -0
- package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +101 -0
- package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +51 -0
- package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +99 -0
- package/dist/types/components.d.ts +1711 -127
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/constants.d.ts +38 -0
- package/dist/types/utils/date-helpers.d.ts +22 -0
- package/dist/types/utils/helpers.d.ts +144 -2
- package/dist/types/utils/types.d.ts +126 -0
- package/hydrate/index.js +18298 -9132
- package/package.json +27 -17
- package/dist/cjs/helpers-bbe55215.js.map +0 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -86
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -285
- package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
- package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
- package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
- package/dist/core/p-0083465b.entry.js +0 -2
- package/dist/core/p-0083465b.entry.js.map +0 -1
- package/dist/core/p-03487f12.entry.js +0 -2
- package/dist/core/p-03487f12.entry.js.map +0 -1
- package/dist/core/p-03f8fa1a.entry.js +0 -2
- package/dist/core/p-03f8fa1a.entry.js.map +0 -1
- package/dist/core/p-0c18b6a0.entry.js +0 -2
- package/dist/core/p-0c18b6a0.entry.js.map +0 -1
- package/dist/core/p-1bc034aa.entry.js +0 -2
- package/dist/core/p-1bc034aa.entry.js.map +0 -1
- package/dist/core/p-20a76d1d.entry.js +0 -2
- package/dist/core/p-20a76d1d.entry.js.map +0 -1
- package/dist/core/p-24945ee5.entry.js.map +0 -1
- package/dist/core/p-2dc35696.entry.js +0 -2
- package/dist/core/p-2dc35696.entry.js.map +0 -1
- package/dist/core/p-2e9e8e7c.entry.js.map +0 -1
- package/dist/core/p-3ee25a6d.entry.js +0 -2
- package/dist/core/p-3ee25a6d.entry.js.map +0 -1
- package/dist/core/p-41aa0ed3.entry.js.map +0 -1
- package/dist/core/p-4314aa0e.entry.js +0 -2
- package/dist/core/p-4314aa0e.entry.js.map +0 -1
- package/dist/core/p-4409f656.entry.js.map +0 -1
- package/dist/core/p-47abbd06.entry.js +0 -2
- package/dist/core/p-47abbd06.entry.js.map +0 -1
- package/dist/core/p-485823b6.entry.js +0 -2
- package/dist/core/p-485823b6.entry.js.map +0 -1
- package/dist/core/p-4ee59448.entry.js +0 -2
- package/dist/core/p-4ee59448.entry.js.map +0 -1
- package/dist/core/p-5157cfab.entry.js +0 -2
- package/dist/core/p-5157cfab.entry.js.map +0 -1
- package/dist/core/p-53083575.entry.js +0 -2
- package/dist/core/p-53083575.entry.js.map +0 -1
- package/dist/core/p-55d5541f.entry.js +0 -2
- package/dist/core/p-55d5541f.entry.js.map +0 -1
- package/dist/core/p-5bb32ee6.entry.js +0 -2
- package/dist/core/p-5bb32ee6.entry.js.map +0 -1
- package/dist/core/p-67eea079.entry.js +0 -2
- package/dist/core/p-67eea079.entry.js.map +0 -1
- package/dist/core/p-6bd0e984.entry.js +0 -2
- package/dist/core/p-6bd0e984.entry.js.map +0 -1
- package/dist/core/p-75bf6162.entry.js +0 -2
- package/dist/core/p-75bf6162.entry.js.map +0 -1
- package/dist/core/p-76959313.entry.js +0 -2
- package/dist/core/p-76959313.entry.js.map +0 -1
- package/dist/core/p-7de813a3.entry.js +0 -2
- package/dist/core/p-7de813a3.entry.js.map +0 -1
- package/dist/core/p-7eae5f70.entry.js +0 -2
- package/dist/core/p-7eae5f70.entry.js.map +0 -1
- package/dist/core/p-85508347.entry.js +0 -2
- package/dist/core/p-85508347.entry.js.map +0 -1
- package/dist/core/p-8da152c4.entry.js +0 -2
- package/dist/core/p-8da152c4.entry.js.map +0 -1
- package/dist/core/p-8fd4ca0a.js +0 -2
- package/dist/core/p-8fd4ca0a.js.map +0 -1
- package/dist/core/p-939baa93.entry.js.map +0 -1
- package/dist/core/p-9777ebb1.entry.js +0 -2
- package/dist/core/p-9777ebb1.entry.js.map +0 -1
- package/dist/core/p-9c27b73e.entry.js +0 -2
- package/dist/core/p-9c27b73e.entry.js.map +0 -1
- package/dist/core/p-9fa6844f.entry.js +0 -2
- package/dist/core/p-9fa6844f.entry.js.map +0 -1
- package/dist/core/p-9fdd7d73.entry.js +0 -2
- package/dist/core/p-9fdd7d73.entry.js.map +0 -1
- package/dist/core/p-a3ab9f4c.entry.js +0 -2
- package/dist/core/p-a3ab9f4c.entry.js.map +0 -1
- package/dist/core/p-a51e5c7c.entry.js +0 -2
- package/dist/core/p-a51e5c7c.entry.js.map +0 -1
- package/dist/core/p-a7481232.entry.js +0 -2
- package/dist/core/p-a7481232.entry.js.map +0 -1
- package/dist/core/p-ab9f8a3f.entry.js +0 -2
- package/dist/core/p-ab9f8a3f.entry.js.map +0 -1
- package/dist/core/p-b2aa3d7c.entry.js +0 -2
- package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
- package/dist/core/p-b5cf6d65.entry.js +0 -2
- package/dist/core/p-b5cf6d65.entry.js.map +0 -1
- package/dist/core/p-baf81f30.entry.js.map +0 -1
- package/dist/core/p-bc187bb5.entry.js +0 -2
- package/dist/core/p-bc187bb5.entry.js.map +0 -1
- package/dist/core/p-bd9cecce.entry.js +0 -2
- package/dist/core/p-bd9cecce.entry.js.map +0 -1
- package/dist/core/p-be980606.entry.js +0 -2
- package/dist/core/p-be980606.entry.js.map +0 -1
- package/dist/core/p-c1256810.entry.js +0 -2
- package/dist/core/p-c1256810.entry.js.map +0 -1
- package/dist/core/p-d76cfa5a.entry.js +0 -2
- package/dist/core/p-d76cfa5a.entry.js.map +0 -1
- package/dist/core/p-e189f1d0.entry.js +0 -2
- package/dist/core/p-e189f1d0.entry.js.map +0 -1
- package/dist/core/p-e9e145aa.entry.js +0 -2
- package/dist/core/p-e9e145aa.entry.js.map +0 -1
- package/dist/core/p-f0e9a83f.entry.js +0 -2
- package/dist/core/p-f0e9a83f.entry.js.map +0 -1
- package/dist/core/p-f23d2102.entry.js +0 -2
- package/dist/core/p-f23d2102.entry.js.map +0 -1
- package/dist/core/p-f87e8411.entry.js +0 -2
- package/dist/core/p-f87e8411.entry.js.map +0 -1
- package/dist/esm/helpers-268c2b7f.js.map +0 -1
- package/dist/esm/ic-empty-state.entry.js.map +0 -1
- package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
- package/dist/esm/ic-input-label_2.entry.js +0 -81
- package/dist/esm/ic-input-label_2.entry.js.map +0 -1
- package/dist/esm/ic-pagination-bar.entry.js +0 -281
- package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
- package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
- /package/dist/core/{p-b97dc365.entry.js.map → p-487fd924.entry.js.map} +0 -0
- /package/dist/core/{p-d77960f6.entry.js.map → p-656378ba.entry.js.map} +0 -0
- /package/dist/core/{p-3d618bc2.entry.js.map → p-d1045cd5.entry.js.map} +0 -0
@@ -0,0 +1,1158 @@
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
2
|
+
import { DateInput } from "../../ic-date-input";
|
3
|
+
import { handleEvent, createDateInputEnv, keyboardEvent, } from "../helpers/ic-date-input";
|
4
|
+
import { IcButton } from "@ukic/web-components/dist/components/ic-button";
|
5
|
+
import { IcInputLabel } from "@ukic/web-components/dist/components/ic-input-label";
|
6
|
+
const DATE_1970 = "01/01/1970";
|
7
|
+
const DATE_2000 = "01/01/2000";
|
8
|
+
const ZULU_TIME_2000 = new Date("28 November 2001").toISOString();
|
9
|
+
const HYPHEN = "-";
|
10
|
+
const ARIA_INVALID = "aria-invalid";
|
11
|
+
describe("ic-date-input component", () => {
|
12
|
+
it("should render", async () => {
|
13
|
+
const page = await newSpecPage({
|
14
|
+
components: [DateInput, IcInputLabel],
|
15
|
+
html: `<ic-date-input label="Test label"></ic-date-input>`,
|
16
|
+
});
|
17
|
+
expect(page.root).toMatchSnapshot();
|
18
|
+
});
|
19
|
+
it("should render as required", async () => {
|
20
|
+
const page = await newSpecPage({
|
21
|
+
components: [DateInput, IcInputLabel],
|
22
|
+
html: `<ic-date-input label="Test label" required></ic-date-input>`,
|
23
|
+
});
|
24
|
+
expect(page.root).toMatchSnapshot();
|
25
|
+
page.root.required = false;
|
26
|
+
await page.waitForChanges();
|
27
|
+
expect(page.root).toMatchSnapshot("required-prop-false");
|
28
|
+
});
|
29
|
+
it("should render as disabled", async () => {
|
30
|
+
const page = await newSpecPage({
|
31
|
+
components: [DateInput, IcInputLabel],
|
32
|
+
html: `<ic-date-input label="Test label" disabled></ic-date-input>`,
|
33
|
+
});
|
34
|
+
expect(page.root).toMatchSnapshot();
|
35
|
+
});
|
36
|
+
it("should render small", async () => {
|
37
|
+
const page = await newSpecPage({
|
38
|
+
components: [DateInput, IcInputLabel],
|
39
|
+
html: `<ic-date-input label="Test label" size="small" show-calendar-button="true"></ic-date-input>`,
|
40
|
+
});
|
41
|
+
expect(page.root).toMatchSnapshot();
|
42
|
+
});
|
43
|
+
it("should render large", async () => {
|
44
|
+
const page = await newSpecPage({
|
45
|
+
components: [DateInput, IcInputLabel],
|
46
|
+
html: `<ic-date-input label="Test label" size="large" show-calendar-button="true"></ic-date-input>`,
|
47
|
+
});
|
48
|
+
expect(page.root).toMatchSnapshot();
|
49
|
+
});
|
50
|
+
it("should render with custom helper text", async () => {
|
51
|
+
const page = await newSpecPage({
|
52
|
+
components: [DateInput, IcInputLabel],
|
53
|
+
html: `<ic-date-input label="Test label" helper-text="Test helper text"></ic-date-input>`,
|
54
|
+
});
|
55
|
+
expect(page.root).toMatchSnapshot();
|
56
|
+
});
|
57
|
+
it("should render with helper text hidden", async () => {
|
58
|
+
const page = await newSpecPage({
|
59
|
+
components: [DateInput, IcInputLabel],
|
60
|
+
html: `<ic-date-input label="Test label" hide-helper-text="true"></ic-date-input>`,
|
61
|
+
});
|
62
|
+
expect(page.root).toMatchSnapshot();
|
63
|
+
});
|
64
|
+
it("should render correctly with MM/DD/YYYY format", async () => {
|
65
|
+
const page = await newSpecPage({
|
66
|
+
components: [DateInput, IcInputLabel],
|
67
|
+
html: `<ic-date-input label="Test label" date-format="MM/DD/YYYY"></ic-date-input>`,
|
68
|
+
});
|
69
|
+
expect(page.root).toMatchSnapshot();
|
70
|
+
});
|
71
|
+
it("should render correctly with YYYY/MM/DD format", async () => {
|
72
|
+
const page = await newSpecPage({
|
73
|
+
components: [DateInput, IcInputLabel],
|
74
|
+
html: `<ic-date-input label="Test label" date-format="YYY/MM/DD"></ic-date-input>`,
|
75
|
+
});
|
76
|
+
expect(page.root).toMatchSnapshot();
|
77
|
+
});
|
78
|
+
it("should render with custom validation status and text", async () => {
|
79
|
+
const page = await newSpecPage({
|
80
|
+
components: [DateInput, IcInputLabel],
|
81
|
+
html: `<ic-date-input label="Test label" validation-status="error" validation-text="Test error text"></ic-date-input>`,
|
82
|
+
});
|
83
|
+
expect(page.root).toMatchSnapshot();
|
84
|
+
});
|
85
|
+
it("should render with open calendar button", async () => {
|
86
|
+
const page = await newSpecPage({
|
87
|
+
components: [DateInput, IcInputLabel, IcButton],
|
88
|
+
html: `<ic-date-input label="Test label" value="21/01/2001" show-calendar-button="true"></ic-date-input>`,
|
89
|
+
});
|
90
|
+
expect(page.root).toMatchSnapshot();
|
91
|
+
});
|
92
|
+
it("should render disabled, with calendar button", async () => {
|
93
|
+
const page = await newSpecPage({
|
94
|
+
components: [DateInput, IcInputLabel, IcButton],
|
95
|
+
html: `<ic-date-input label="Test label" value="21/01/2001" show-calendar-button="true" disabled></ic-date-input>`,
|
96
|
+
});
|
97
|
+
expect(page.root).toMatchSnapshot();
|
98
|
+
});
|
99
|
+
describe("date format conversion", () => {
|
100
|
+
it("should handle single digit day and month", async () => {
|
101
|
+
const page = await newSpecPage({
|
102
|
+
components: [DateInput, IcInputLabel],
|
103
|
+
html: `<ic-date-input label="Test label" value="1/1/2001"></ic-date-input>`,
|
104
|
+
});
|
105
|
+
expect(page.root).toMatchSnapshot();
|
106
|
+
});
|
107
|
+
it("should handle US format value - DD/MM/YYYY date format", async () => {
|
108
|
+
const page = await newSpecPage({
|
109
|
+
components: [DateInput, IcInputLabel],
|
110
|
+
html: `<ic-date-input label="Test label" value="07/26/2001"></ic-date-input>`,
|
111
|
+
});
|
112
|
+
expect(page.root).toMatchSnapshot();
|
113
|
+
});
|
114
|
+
it("should handle US format value - MM/DD/YYYY date format", async () => {
|
115
|
+
const page = await newSpecPage({
|
116
|
+
components: [DateInput, IcInputLabel],
|
117
|
+
html: `<ic-date-input label="Test label" value="07/26/2001" date-format="MM/DD/YYYY"></ic-date-input>`,
|
118
|
+
});
|
119
|
+
expect(page.root).toMatchSnapshot();
|
120
|
+
});
|
121
|
+
it("should handle US format value - YYYY/MM/DD date format", async () => {
|
122
|
+
const page = await newSpecPage({
|
123
|
+
components: [DateInput, IcInputLabel],
|
124
|
+
html: `<ic-date-input label="Test label" value="07/26/2001" date-format="YYYY/MM/DD"></ic-date-input>`,
|
125
|
+
});
|
126
|
+
expect(page.root).toMatchSnapshot();
|
127
|
+
});
|
128
|
+
it("should handle ambiguous value - DD/MM/YYYY date format", async () => {
|
129
|
+
const page = await newSpecPage({
|
130
|
+
components: [DateInput, IcInputLabel],
|
131
|
+
html: `<ic-date-input label="Test label" value="07/10/2001" date-format="DD/MM/YYYY"></ic-date-input>`,
|
132
|
+
});
|
133
|
+
expect(page.root).toMatchSnapshot();
|
134
|
+
});
|
135
|
+
it("should handle ambiguous value - MM/DD/YYYY date format", async () => {
|
136
|
+
const page = await newSpecPage({
|
137
|
+
components: [DateInput, IcInputLabel],
|
138
|
+
html: `<ic-date-input label="Test label" value="07/10/2001" date-format="MM/DD/YYYY"></ic-date-input>`,
|
139
|
+
});
|
140
|
+
expect(page.root).toMatchSnapshot();
|
141
|
+
});
|
142
|
+
it("should handle ambiguous value - YYYY/MM/DD date format", async () => {
|
143
|
+
const page = await newSpecPage({
|
144
|
+
components: [DateInput, IcInputLabel],
|
145
|
+
html: `<ic-date-input label="Test label" value="07/10/2001" date-format="YYYY/MM/DD"></ic-date-input>`,
|
146
|
+
});
|
147
|
+
expect(page.root).toMatchSnapshot();
|
148
|
+
});
|
149
|
+
});
|
150
|
+
describe("handleInput", () => {
|
151
|
+
it("should call moveToNextInput, setinputValue and setPreventInput when day set to 4", async () => {
|
152
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
153
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
154
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
155
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
156
|
+
componentInstance.preventAutoFormatting = false;
|
157
|
+
dayInput.value = "4";
|
158
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
159
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
160
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
161
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
162
|
+
});
|
163
|
+
it("should call setInputValue, setPreventInput and moveToNextInput when preventFormatting is set to true and value has 2 characters", async () => {
|
164
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
165
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
166
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
167
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
168
|
+
componentInstance.preventAutoFormatting = true;
|
169
|
+
dayInput.value = "11";
|
170
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
171
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
172
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
173
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
174
|
+
});
|
175
|
+
it("should call setInputValue when formatting is true and event is Arrow key", async () => {
|
176
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
177
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
178
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
179
|
+
componentInstance.preventAutoFormatting = true;
|
180
|
+
dayInput.value = "1"; // Line 249
|
181
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
182
|
+
expect(spyMoveToInput).not.toHaveBeenCalled();
|
183
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
184
|
+
});
|
185
|
+
it("should not call moveToNextInput and setinputValue when day set to 1", async () => {
|
186
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
187
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
188
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
189
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
190
|
+
componentInstance.preventAutoFormatting = false;
|
191
|
+
dayInput.value = "1";
|
192
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
193
|
+
expect(spyMoveToInput).not.toHaveBeenCalled();
|
194
|
+
expect(spySetInputValue).not.toHaveBeenCalled();
|
195
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
196
|
+
});
|
197
|
+
it("should call moveToNextInput and setinputValue when month set to 2", async () => {
|
198
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
199
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
200
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
201
|
+
componentInstance.preventAutoFormatting = false;
|
202
|
+
monthInput.value = "2";
|
203
|
+
componentInstance.handleInput(handleEvent(monthInput));
|
204
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
205
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
206
|
+
});
|
207
|
+
it("should not call moveToNextInput and setinputValue when month set to 1", async () => {
|
208
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
209
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
210
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
211
|
+
componentInstance.preventAutoFormatting = false;
|
212
|
+
monthInput.value = "1";
|
213
|
+
componentInstance.handleInput(handleEvent(monthInput));
|
214
|
+
expect(spyMoveToInput).not.toHaveBeenCalled();
|
215
|
+
expect(spySetInputValue).not.toHaveBeenCalled();
|
216
|
+
});
|
217
|
+
it("should set day input value to 01 if 00 is day value", async () => {
|
218
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
219
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
220
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
221
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
222
|
+
componentInstance.preventAutoFormatting = false;
|
223
|
+
dayInput.value = "00";
|
224
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
225
|
+
expect(dayInput.value).toBe("01");
|
226
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
227
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
228
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
229
|
+
});
|
230
|
+
it("should set month input value to 01 if 00 is month value", async () => {
|
231
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
232
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
233
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
234
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
235
|
+
componentInstance.preventAutoFormatting = false;
|
236
|
+
monthInput.value = "00";
|
237
|
+
componentInstance.handleInput(handleEvent(monthInput));
|
238
|
+
expect(monthInput.value).toBe("01");
|
239
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
240
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
241
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
242
|
+
});
|
243
|
+
it("should call moveToNextInput, setinputValue and setPreventInput when year set to 2001", async () => {
|
244
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
245
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
246
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
247
|
+
const spySetPreventInput = jest.spyOn(componentInstance, "setPreventInput");
|
248
|
+
componentInstance.preventAutoFormatting = false;
|
249
|
+
yearInput.value = "2001";
|
250
|
+
componentInstance.handleInput(handleEvent(yearInput));
|
251
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
252
|
+
expect(spySetInputValue).toHaveBeenCalled();
|
253
|
+
expect(spySetPreventInput).toHaveBeenCalled();
|
254
|
+
});
|
255
|
+
it("should not call moveToNextInput when year set to 20", async () => {
|
256
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
257
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
258
|
+
componentInstance.preventAutoFormatting = false;
|
259
|
+
yearInput.value = "20";
|
260
|
+
componentInstance.handleInput(handleEvent(yearInput));
|
261
|
+
expect(spyMoveToInput).not.toHaveBeenCalled();
|
262
|
+
});
|
263
|
+
it("should not have fit-to-value class when empty string value is set for day input", async () => {
|
264
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
265
|
+
dayInput.value = "";
|
266
|
+
componentInstance.handleInput(handleEvent(dayInput));
|
267
|
+
expect(dayInput.className.includes("fit-to-value")).toBeFalsy();
|
268
|
+
});
|
269
|
+
});
|
270
|
+
describe("handleKeyDown", () => {
|
271
|
+
it("should call moveToNextInput when a hyphen, dash or dot are inputted", async () => {
|
272
|
+
const { componentInstance, component } = await createDateInputEnv();
|
273
|
+
const spyMoveToInput = jest.spyOn(componentInstance, "moveToNextInput");
|
274
|
+
const spyPreventInput = jest.spyOn(componentInstance, "preventInput");
|
275
|
+
// const spyNotifyScreenReader = jest.spyOn(
|
276
|
+
// componentInstance,
|
277
|
+
// "notifyScreenReader"
|
278
|
+
// );
|
279
|
+
const event = new KeyboardEvent("keydown", { key: "/" });
|
280
|
+
component === null || component === void 0 ? void 0 : component.dispatchEvent(event);
|
281
|
+
componentInstance.handleKeyDown(event, false);
|
282
|
+
expect(spyMoveToInput).toHaveBeenCalled();
|
283
|
+
expect(spyPreventInput).toHaveBeenCalled();
|
284
|
+
// expect(spyNotifyScreenReader).toHaveBeenCalled();
|
285
|
+
expect(componentInstance.isDateSetFromKeyboardEvent).toBe(true);
|
286
|
+
});
|
287
|
+
it("should call handleLeftRightArrowKeyPress when ArrowLeft is pressed", async () => {
|
288
|
+
const { componentInstance } = await createDateInputEnv();
|
289
|
+
const spyHandleLeftRightArrowKeyPress = jest.spyOn(componentInstance, "handleLeftRightArrowKeyPress");
|
290
|
+
const keyboardEvent = {
|
291
|
+
preventDefault: () => null,
|
292
|
+
key: "ArrowLeft",
|
293
|
+
};
|
294
|
+
componentInstance.handleKeyDown(keyboardEvent);
|
295
|
+
expect(spyHandleLeftRightArrowKeyPress).toHaveBeenCalled();
|
296
|
+
});
|
297
|
+
it("should set preventAutoFormatting as true and call handleUpDownArrowKeyPress when the ArrowUp key is pressed", async () => {
|
298
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
299
|
+
const keyboardEvent = {
|
300
|
+
key: "ArrowUp",
|
301
|
+
preventDefault: () => null,
|
302
|
+
target: dayInput,
|
303
|
+
};
|
304
|
+
const spyHandleUpDownArrowKeyPress = jest.spyOn(componentInstance, "handleUpDownArrowKeyPress");
|
305
|
+
const spyPreventInput = jest.spyOn(componentInstance, "preventInput");
|
306
|
+
componentInstance.handleKeyDown(keyboardEvent, false);
|
307
|
+
expect(componentInstance.preventAutoFormatting).toBe(true);
|
308
|
+
expect(spyHandleUpDownArrowKeyPress).toHaveBeenCalled();
|
309
|
+
expect(spyPreventInput).toHaveBeenCalled();
|
310
|
+
expect(componentInstance.isDateSetFromKeyboardEvent).toBe(true);
|
311
|
+
});
|
312
|
+
it("should set preventAutoFormatting as true and call handleUpDownArrowKeyPress when the ArrowDown key is pressed", async () => {
|
313
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
314
|
+
const keyboardEvent = {
|
315
|
+
key: "ArrowDown",
|
316
|
+
preventDefault: () => null,
|
317
|
+
target: dayInput,
|
318
|
+
};
|
319
|
+
const spyHandleUpDownArrowKeyPress = jest.spyOn(componentInstance, "handleUpDownArrowKeyPress");
|
320
|
+
const spyPreventInput = jest.spyOn(componentInstance, "preventInput");
|
321
|
+
componentInstance.handleKeyDown(keyboardEvent, false);
|
322
|
+
expect(componentInstance.preventAutoFormatting).toBe(true);
|
323
|
+
expect(spyHandleUpDownArrowKeyPress).toHaveBeenCalled();
|
324
|
+
expect(spyPreventInput).toHaveBeenCalled();
|
325
|
+
expect(componentInstance.isDateSetFromKeyboardEvent).toBe(true);
|
326
|
+
});
|
327
|
+
});
|
328
|
+
describe("handleBlur", () => {
|
329
|
+
it("should call autocompleteInput method", async () => {
|
330
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
331
|
+
const spyAutocompleteInput = jest.spyOn(componentInstance, "autocompleteInput");
|
332
|
+
componentInstance.handleBlur(handleEvent(dayInput));
|
333
|
+
expect(spyAutocompleteInput).toHaveBeenCalled();
|
334
|
+
});
|
335
|
+
});
|
336
|
+
describe("handleLeftRightArrowKeyPress", () => {
|
337
|
+
it("should call moveToNextInput if ArrowRight is pressed", async () => {
|
338
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
339
|
+
const spyMoveToNextInput = jest.spyOn(componentInstance, "moveToNextInput");
|
340
|
+
componentInstance.handleLeftRightArrowKeyPress(dayInput, "arrowright");
|
341
|
+
expect(spyMoveToNextInput).toBeCalled();
|
342
|
+
});
|
343
|
+
it("should call moveToPreviousInput if ArrowLeft is pressed", async () => {
|
344
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
345
|
+
const spyMoveToPreviousInput = jest.spyOn(componentInstance, "moveToPreviousInput");
|
346
|
+
componentInstance.handleLeftRightArrowKeyPress(dayInput, "ArrowLeft");
|
347
|
+
expect(spyMoveToPreviousInput).toBeCalled();
|
348
|
+
});
|
349
|
+
});
|
350
|
+
describe("handleUpDownArrowKeyPress", () => {
|
351
|
+
it("should set day value to 1 if day value is 31 and ArrowUp is pressed", async () => {
|
352
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
353
|
+
dayInput.value = "31";
|
354
|
+
componentInstance.handleUpDownArrowKeyPress(dayInput, keyboardEvent("ArrowUp"));
|
355
|
+
expect(dayInput.value).toBe("01");
|
356
|
+
});
|
357
|
+
it("should set day value to 13 if day value is 12 and ArrowUp is pressed", async () => {
|
358
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
359
|
+
dayInput.value = "12";
|
360
|
+
componentInstance.handleUpDownArrowKeyPress(dayInput, keyboardEvent("ArrowUp"));
|
361
|
+
expect(dayInput.value).toBe("13");
|
362
|
+
});
|
363
|
+
it("should set month value to 1 if month value is 12 and ArrowUp is pressed", async () => {
|
364
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
365
|
+
monthInput.value = "12";
|
366
|
+
componentInstance.handleUpDownArrowKeyPress(monthInput, keyboardEvent("ArrowUp"));
|
367
|
+
expect(monthInput.value).toBe("01");
|
368
|
+
});
|
369
|
+
it("should set month value to 11 if month value is 10 and ArrowUp is pressed", async () => {
|
370
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
371
|
+
monthInput.value = "10";
|
372
|
+
componentInstance.handleUpDownArrowKeyPress(monthInput, keyboardEvent("ArrowUp"));
|
373
|
+
expect(monthInput.value).toBe("11");
|
374
|
+
});
|
375
|
+
it("should set year value to 0 if year value is 9999 and ArrowUp is pressed", async () => {
|
376
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
377
|
+
yearInput.value = "9999";
|
378
|
+
componentInstance.handleUpDownArrowKeyPress(yearInput, keyboardEvent("ArrowUp"));
|
379
|
+
expect(yearInput.value).toBe("00");
|
380
|
+
});
|
381
|
+
it("should set day value to 31 if day value is 1 and ArrowDown is pressed", async () => {
|
382
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
383
|
+
dayInput.value = "1";
|
384
|
+
componentInstance.handleUpDownArrowKeyPress(dayInput, keyboardEvent("ArrowDown"));
|
385
|
+
expect(dayInput.value).toBe("31");
|
386
|
+
});
|
387
|
+
it("should set day value to 10 if day value is 11 and ArrowDown is pressed", async () => {
|
388
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
389
|
+
dayInput.value = "11";
|
390
|
+
componentInstance.handleUpDownArrowKeyPress(dayInput, keyboardEvent("ArrowDown"));
|
391
|
+
expect(dayInput.value).toBe("10");
|
392
|
+
});
|
393
|
+
it("should set month value to 12 if month value is 1 and ArrowDown is pressed", async () => {
|
394
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
395
|
+
monthInput.value = "1";
|
396
|
+
componentInstance.handleUpDownArrowKeyPress(monthInput, keyboardEvent("ArrowDown"));
|
397
|
+
expect(monthInput.value).toBe("12");
|
398
|
+
});
|
399
|
+
it("should set year value to 9999 if year value is 0 and ArrowDown is pressed", async () => {
|
400
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
401
|
+
yearInput.value = "0";
|
402
|
+
componentInstance.handleUpDownArrowKeyPress(yearInput, keyboardEvent("ArrowDown"));
|
403
|
+
expect(yearInput.value).toBe("9999");
|
404
|
+
});
|
405
|
+
it("should set day value to 31 if day value is empty and ArrowDown is pressed", async () => {
|
406
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
407
|
+
dayInput.value = "";
|
408
|
+
componentInstance.handleUpDownArrowKeyPress(dayInput, keyboardEvent("ArrowDown"));
|
409
|
+
expect(dayInput.value).toBe("31");
|
410
|
+
});
|
411
|
+
it("should set month value to 12 if month value is empty and ArrowDown is pressed", async () => {
|
412
|
+
const { monthInput, componentInstance } = await createDateInputEnv();
|
413
|
+
monthInput.value = "";
|
414
|
+
componentInstance.handleUpDownArrowKeyPress(monthInput, keyboardEvent("ArrowDown"));
|
415
|
+
expect(monthInput.value).toBe("12");
|
416
|
+
});
|
417
|
+
it("should set year value to this year if year value is empty and ArrowDown is pressed", async () => {
|
418
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
419
|
+
yearInput.value = "";
|
420
|
+
componentInstance.handleUpDownArrowKeyPress(yearInput, keyboardEvent("ArrowDown"));
|
421
|
+
expect(yearInput.value).toBe(`${new Date().getFullYear()}`);
|
422
|
+
});
|
423
|
+
it("should set year value to this year if year value is empty and ArrowUp is pressed", async () => {
|
424
|
+
const { yearInput, componentInstance } = await createDateInputEnv();
|
425
|
+
yearInput.value = "";
|
426
|
+
componentInstance.handleUpDownArrowKeyPress(yearInput, keyboardEvent("ArrowUp"));
|
427
|
+
expect(yearInput.value).toBe(`${new Date().getFullYear()}`);
|
428
|
+
});
|
429
|
+
});
|
430
|
+
describe("handleDateChange", () => {
|
431
|
+
it("should emit icChange with 1st January 2000 as Date object if day, month and year is set", async () => {
|
432
|
+
const { component, componentInstance } = await createDateInputEnv();
|
433
|
+
const eventSpy = jest.fn();
|
434
|
+
componentInstance.day = "01";
|
435
|
+
componentInstance.month = "01";
|
436
|
+
componentInstance.year = "2000";
|
437
|
+
componentInstance.invalidDateText = "";
|
438
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
439
|
+
componentInstance.selectedDate = date;
|
440
|
+
component === null || component === void 0 ? void 0 : component.addEventListener("icChange", eventSpy);
|
441
|
+
componentInstance.handleDateChange();
|
442
|
+
expect(eventSpy).toBeCalledWith(expect.objectContaining({
|
443
|
+
detail: expect.objectContaining({
|
444
|
+
value: date,
|
445
|
+
}),
|
446
|
+
}));
|
447
|
+
});
|
448
|
+
it("should set value as 1st January 2000 as Date object if day, month and year is set", async () => {
|
449
|
+
const { componentInstance } = await createDateInputEnv();
|
450
|
+
componentInstance.day = "01";
|
451
|
+
componentInstance.month = "01";
|
452
|
+
componentInstance.year = "2000";
|
453
|
+
componentInstance.invalidDateText = "";
|
454
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
455
|
+
componentInstance.selectedDate = date;
|
456
|
+
componentInstance.handleDateChange();
|
457
|
+
expect(componentInstance.value).toBe(date);
|
458
|
+
});
|
459
|
+
it("should set selectedDateInfoEl with 1st January 2000 as string if day, month and year is set", async () => {
|
460
|
+
const { componentInstance } = await createDateInputEnv();
|
461
|
+
componentInstance.day = "01";
|
462
|
+
componentInstance.month = "01";
|
463
|
+
componentInstance.year = "2000";
|
464
|
+
componentInstance.invalidDateText = "";
|
465
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
466
|
+
componentInstance.selectedDate = date;
|
467
|
+
componentInstance.handleDateChange();
|
468
|
+
expect(componentInstance.selectedDateInfoEl.textContent).toBe("Selected date: Saturday, 1 January 2000");
|
469
|
+
});
|
470
|
+
it("should set value to null if day, month or year is not set", async () => {
|
471
|
+
const { componentInstance } = await createDateInputEnv();
|
472
|
+
componentInstance.day = "";
|
473
|
+
componentInstance.month = "";
|
474
|
+
componentInstance.year = "2000";
|
475
|
+
componentInstance.invalidDateText = "";
|
476
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
477
|
+
componentInstance.selectedDate = date;
|
478
|
+
componentInstance.handleDateChange();
|
479
|
+
expect(componentInstance.value).toBe(null);
|
480
|
+
});
|
481
|
+
it("should set selectedDateInfoEl with empty string if day, month and year is set", async () => {
|
482
|
+
const { componentInstance } = await createDateInputEnv();
|
483
|
+
componentInstance.day = "";
|
484
|
+
componentInstance.month = "";
|
485
|
+
componentInstance.year = "2000";
|
486
|
+
componentInstance.invalidDateText = "";
|
487
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
488
|
+
componentInstance.selectedDate = date;
|
489
|
+
componentInstance.handleDateChange();
|
490
|
+
expect(componentInstance.selectedDateInfoEl.textContent).toBe("");
|
491
|
+
});
|
492
|
+
it("should set previousSelectedDate as selectedDate if not previously matching", async () => {
|
493
|
+
const { componentInstance } = await createDateInputEnv();
|
494
|
+
componentInstance.day = "01";
|
495
|
+
componentInstance.month = "01";
|
496
|
+
componentInstance.year = "2000";
|
497
|
+
componentInstance.invalidDateText = "";
|
498
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
499
|
+
componentInstance.selectedDate = date;
|
500
|
+
componentInstance.handleDateChange();
|
501
|
+
expect(componentInstance.previousSelectedDate).toBe(componentInstance.selectedDate);
|
502
|
+
});
|
503
|
+
it("should call updateInputValues if isDateSetFromKeyboardEvent is false", async () => {
|
504
|
+
const { componentInstance } = await createDateInputEnv();
|
505
|
+
componentInstance.day = "01";
|
506
|
+
componentInstance.month = "01";
|
507
|
+
componentInstance.year = "2000";
|
508
|
+
componentInstance.invalidDateText = "";
|
509
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
510
|
+
componentInstance.selectedDate = date;
|
511
|
+
const spyUpdateInputValues = jest.spyOn(componentInstance, "updateInputValues");
|
512
|
+
componentInstance.isDateSetFromKeyboardEvent = false;
|
513
|
+
componentInstance.handleDateChange();
|
514
|
+
expect(spyUpdateInputValues).toBeCalled();
|
515
|
+
});
|
516
|
+
});
|
517
|
+
describe("handlePaste", () => {
|
518
|
+
const clipboardEvent = (value, input) => {
|
519
|
+
return {
|
520
|
+
clipboardData: {
|
521
|
+
getData: () => value,
|
522
|
+
},
|
523
|
+
target: input,
|
524
|
+
preventDefault: () => null,
|
525
|
+
};
|
526
|
+
};
|
527
|
+
it("should set day, month and year input values from paste event with 01/01/2000", async () => {
|
528
|
+
const { componentInstance, dayInput, monthInput, yearInput } = await createDateInputEnv();
|
529
|
+
componentInstance.handlePaste(clipboardEvent(DATE_2000));
|
530
|
+
expect(dayInput.value).toBe("01");
|
531
|
+
expect(monthInput.value).toBe("01");
|
532
|
+
expect(yearInput.value).toBe("2000");
|
533
|
+
});
|
534
|
+
it("should set day, month and year input values from paste event with 01-01-2000", async () => {
|
535
|
+
const { componentInstance, dayInput, monthInput, yearInput } = await createDateInputEnv();
|
536
|
+
componentInstance.handlePaste(clipboardEvent("01-01-2000"));
|
537
|
+
expect(dayInput.value).toBe("01");
|
538
|
+
expect(monthInput.value).toBe("01");
|
539
|
+
expect(yearInput.value).toBe("2000");
|
540
|
+
});
|
541
|
+
it("should set day, month and year input values from paste event with 2000/01/01", async () => {
|
542
|
+
const { componentInstance, dayInput, monthInput, yearInput } =
|
543
|
+
// eslint-disable-next-line sonarjs/no-duplicate-string
|
544
|
+
await createDateInputEnv("YYYY/MM/DD");
|
545
|
+
componentInstance.handlePaste(clipboardEvent("2000/01/01"));
|
546
|
+
expect(dayInput.value).toBe("01");
|
547
|
+
expect(monthInput.value).toBe("01");
|
548
|
+
expect(yearInput.value).toBe("2000");
|
549
|
+
});
|
550
|
+
it(`should set day, month and year input values from paste event with ${ZULU_TIME_2000}`, async () => {
|
551
|
+
const { componentInstance, dayInput, monthInput, yearInput } = await createDateInputEnv("YYYY/MM/DD");
|
552
|
+
componentInstance.handlePaste(clipboardEvent(ZULU_TIME_2000)); // 2001-11-28T00:00:00.000Z
|
553
|
+
expect(dayInput.value).toBe("28");
|
554
|
+
expect(monthInput.value).toBe("11");
|
555
|
+
expect(yearInput.value).toBe("2001");
|
556
|
+
});
|
557
|
+
it("should call setInputValue if date valid", async () => {
|
558
|
+
const { componentInstance } = await createDateInputEnv();
|
559
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
560
|
+
componentInstance.handlePaste(clipboardEvent(DATE_2000));
|
561
|
+
expect(spySetInputValue).toBeCalled();
|
562
|
+
});
|
563
|
+
it("should not call setInputValue if date invalid", async () => {
|
564
|
+
const { componentInstance } = await createDateInputEnv();
|
565
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
566
|
+
componentInstance.handlePaste(clipboardEvent("01:01:2000"));
|
567
|
+
expect(spySetInputValue).not.toBeCalled();
|
568
|
+
});
|
569
|
+
it("should call checkSingleCopiedValueIsValid if copied value is 1", async () => {
|
570
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
571
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
572
|
+
componentInstance.handlePaste(clipboardEvent("1", dayInput));
|
573
|
+
expect(spyCheckSingleCopiedValueIsValid).toBeCalled();
|
574
|
+
});
|
575
|
+
it("should call checkSingleCopiedValueIsValid if copied value is 31", async () => {
|
576
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
577
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
578
|
+
componentInstance.handlePaste(clipboardEvent("31", dayInput));
|
579
|
+
expect(spyCheckSingleCopiedValueIsValid).toBeCalled();
|
580
|
+
});
|
581
|
+
it("should call checkSingleCopiedValueIsValid if copied value is 2001", async () => {
|
582
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
583
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
584
|
+
componentInstance.handlePaste(clipboardEvent("2001", yearInput));
|
585
|
+
expect(spyCheckSingleCopiedValueIsValid).toBeCalled();
|
586
|
+
});
|
587
|
+
it("should not call checkSingleCopiedValueIsValid if copied value is :1", async () => {
|
588
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
589
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
590
|
+
componentInstance.handlePaste(clipboardEvent(":1", dayInput));
|
591
|
+
expect(spyCheckSingleCopiedValueIsValid).not.toBeCalled();
|
592
|
+
});
|
593
|
+
it("should not call checkSingleCopiedValueIsValid if copied value is :14", async () => {
|
594
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
595
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
596
|
+
componentInstance.handlePaste(clipboardEvent(":14", dayInput));
|
597
|
+
expect(spyCheckSingleCopiedValueIsValid).not.toBeCalled();
|
598
|
+
});
|
599
|
+
it("should not call checkSingleCopiedValueIsValid if copied value is -39", async () => {
|
600
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
601
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
602
|
+
componentInstance.handlePaste(clipboardEvent("-39", dayInput));
|
603
|
+
expect(spyCheckSingleCopiedValueIsValid).not.toBeCalled();
|
604
|
+
});
|
605
|
+
it("should not call checkSingleCopiedValueIsValid if copied value is 5 digits", async () => {
|
606
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
607
|
+
const spyCheckSingleCopiedValueIsValid = jest.spyOn(componentInstance, "checkSingleCopiedValueIsValid");
|
608
|
+
componentInstance.handlePaste(clipboardEvent("12345", dayInput));
|
609
|
+
expect(spyCheckSingleCopiedValueIsValid).not.toBeCalled();
|
610
|
+
});
|
611
|
+
it("should update invalidText and set validationStatus if invalid copied single value", async () => {
|
612
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
613
|
+
componentInstance.handlePaste(clipboardEvent("-1", dayInput));
|
614
|
+
expect(componentInstance.invalidDateText).toBe("Please paste a valid day");
|
615
|
+
expect(componentInstance.validationStatus).toBe("error");
|
616
|
+
});
|
617
|
+
});
|
618
|
+
describe("setValidationMessage", () => {
|
619
|
+
it("should set invalidDateText if date (day) is not valid", async () => {
|
620
|
+
const { componentInstance } = await createDateInputEnv();
|
621
|
+
componentInstance.day = "32";
|
622
|
+
componentInstance.month = "1";
|
623
|
+
componentInstance.year = "2000";
|
624
|
+
componentInstance.setValidationMessage();
|
625
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a valid date.");
|
626
|
+
});
|
627
|
+
it("should set invalidDateText if date (month) is not valid", async () => {
|
628
|
+
const { componentInstance } = await createDateInputEnv();
|
629
|
+
componentInstance.day = "1";
|
630
|
+
componentInstance.month = "13";
|
631
|
+
componentInstance.year = "2000";
|
632
|
+
componentInstance.setValidationMessage();
|
633
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a valid date.");
|
634
|
+
});
|
635
|
+
it("should set invalidDateText to invalidDateMessage if date (month) is not valid", async () => {
|
636
|
+
const { componentInstance } = await createDateInputEnv();
|
637
|
+
componentInstance.invalidDateMessage = "Invalid date";
|
638
|
+
componentInstance.day = "1";
|
639
|
+
componentInstance.month = "13";
|
640
|
+
componentInstance.year = "2000";
|
641
|
+
componentInstance.setValidationMessage();
|
642
|
+
expect(componentInstance.invalidDateText).toBe("Invalid date");
|
643
|
+
});
|
644
|
+
it("should set invalidDateText as empty string if date is not complete", async () => {
|
645
|
+
const { componentInstance } = await createDateInputEnv();
|
646
|
+
componentInstance.day = "";
|
647
|
+
componentInstance.month = "1";
|
648
|
+
componentInstance.year = "2000";
|
649
|
+
componentInstance.setValidationMessage();
|
650
|
+
expect(componentInstance.invalidDateText).toBe("");
|
651
|
+
});
|
652
|
+
it("should set invalidDateText to disablePastMessage if date is in past", async () => {
|
653
|
+
const { component, componentInstance } = await createDateInputEnv();
|
654
|
+
component.disablePast = true;
|
655
|
+
componentInstance.day = "10";
|
656
|
+
componentInstance.month = "8";
|
657
|
+
componentInstance.year = "2022";
|
658
|
+
componentInstance.setValidationMessage();
|
659
|
+
expect(componentInstance.invalidDateText).toBe(componentInstance.disablePastMessage);
|
660
|
+
});
|
661
|
+
it("should set invalidDateText to disableFutureMessage if date is in future", async () => {
|
662
|
+
const { component, componentInstance } = await createDateInputEnv();
|
663
|
+
component.disableFuture = true;
|
664
|
+
componentInstance.day = "31";
|
665
|
+
componentInstance.month = "8";
|
666
|
+
componentInstance.year = "2024";
|
667
|
+
componentInstance.setValidationMessage();
|
668
|
+
expect(componentInstance.invalidDateText).toBe(componentInstance.disableFutureMessage);
|
669
|
+
});
|
670
|
+
it("should set invalidDateText empty string if date valid", async () => {
|
671
|
+
const { component, componentInstance } = await createDateInputEnv();
|
672
|
+
component.disableFuture = true;
|
673
|
+
componentInstance.day = "1";
|
674
|
+
componentInstance.month = "1";
|
675
|
+
componentInstance.year = "2000";
|
676
|
+
componentInstance.setValidationMessage();
|
677
|
+
expect(componentInstance.invalidDateText).toBe("");
|
678
|
+
});
|
679
|
+
it("should set invalidDateText to min message if date is before min date", async () => {
|
680
|
+
const { component, componentInstance } = await createDateInputEnv();
|
681
|
+
component.min = "10-07-2023";
|
682
|
+
componentInstance.day = "1";
|
683
|
+
componentInstance.month = "1";
|
684
|
+
componentInstance.year = "2023";
|
685
|
+
componentInstance.setValidationMessage();
|
686
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date after 10/07/2023.");
|
687
|
+
component.dateFormat = "MM/DD/YYYY";
|
688
|
+
componentInstance.setValidationMessage();
|
689
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date after 07/10/2023.");
|
690
|
+
component.dateFormat = "YYYY/MM/DD";
|
691
|
+
componentInstance.setValidationMessage();
|
692
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date after 2023/07/10.");
|
693
|
+
});
|
694
|
+
it("should set invalidDateText to disablePastMessage if both dateUntilNow and min prop have been set", async () => {
|
695
|
+
const { component, componentInstance } = await createDateInputEnv();
|
696
|
+
component.disablePast = true;
|
697
|
+
component.min = "30-07-2024";
|
698
|
+
componentInstance.day = "1";
|
699
|
+
componentInstance.month = "1";
|
700
|
+
componentInstance.year = "2000";
|
701
|
+
componentInstance.setValidationMessage();
|
702
|
+
expect(componentInstance.invalidDateText).toBe(componentInstance.disablePastMessage);
|
703
|
+
});
|
704
|
+
it("should set invalidDateText to max message if date is after max date", async () => {
|
705
|
+
const { component, componentInstance } = await createDateInputEnv();
|
706
|
+
component.max = "10-07-2023";
|
707
|
+
componentInstance.day = "1";
|
708
|
+
componentInstance.month = "8";
|
709
|
+
componentInstance.year = "2023";
|
710
|
+
componentInstance.setValidationMessage();
|
711
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date before 10/07/2023.");
|
712
|
+
component.dateFormat = "MM/DD/YYYY";
|
713
|
+
componentInstance.setValidationMessage();
|
714
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date before 07/10/2023.");
|
715
|
+
component.dateFormat = "YYYY/MM/DD";
|
716
|
+
componentInstance.setValidationMessage();
|
717
|
+
expect(componentInstance.invalidDateText).toBe("Please enter a date before 2023/07/10.");
|
718
|
+
});
|
719
|
+
it("should set invalidDateText to disableFutureMessage if both dateFromNow and max prop have been set", async () => {
|
720
|
+
const { component, componentInstance } = await createDateInputEnv();
|
721
|
+
component.disableFuture = true;
|
722
|
+
component.max = "30-07-2023";
|
723
|
+
componentInstance.day = "1";
|
724
|
+
componentInstance.month = "8";
|
725
|
+
componentInstance.year = "2025";
|
726
|
+
componentInstance.setValidationMessage();
|
727
|
+
expect(componentInstance.invalidDateText).toBe(componentInstance.disableFutureMessage);
|
728
|
+
});
|
729
|
+
it("should set invalidDateText to disableDays message if date is on a disabled weekday", async () => {
|
730
|
+
const { component, componentInstance } = await createDateInputEnv();
|
731
|
+
component.disableDays = [0, 1];
|
732
|
+
componentInstance.day = "16";
|
733
|
+
componentInstance.month = "7";
|
734
|
+
componentInstance.year = "2023";
|
735
|
+
componentInstance.setValidationMessage();
|
736
|
+
expect(componentInstance.invalidDateText).toBe(componentInstance.disableDaysMessage);
|
737
|
+
});
|
738
|
+
});
|
739
|
+
describe("setDate", () => {
|
740
|
+
it("should set a date in Date format and call setValidationMessage", async () => {
|
741
|
+
const { componentInstance } = await createDateInputEnv();
|
742
|
+
const spySetValidationMessage = jest.spyOn(componentInstance, "setValidationMessage");
|
743
|
+
componentInstance.setDate(new Date(500000000000));
|
744
|
+
expect(spySetValidationMessage).toHaveBeenCalled();
|
745
|
+
});
|
746
|
+
it("should set a date in string format and call setValidationMessage", async () => {
|
747
|
+
const { componentInstance } = await createDateInputEnv();
|
748
|
+
const spySetValidationMessage = jest.spyOn(componentInstance, "setValidationMessage");
|
749
|
+
componentInstance.setDate(DATE_1970);
|
750
|
+
expect(componentInstance.year).toMatch("1970");
|
751
|
+
expect(spySetValidationMessage).toHaveBeenCalled();
|
752
|
+
});
|
753
|
+
it("should set the Zulu ISOString into the correct date variables", async () => {
|
754
|
+
const { componentInstance } = await createDateInputEnv();
|
755
|
+
componentInstance.setDate(ZULU_TIME_2000); // 2001-11-28T00:00:00.000Z
|
756
|
+
expect(componentInstance.day).toMatch("28");
|
757
|
+
expect(componentInstance.month).toMatch("11");
|
758
|
+
expect(componentInstance.year).toMatch("2001");
|
759
|
+
});
|
760
|
+
it("should set inputs to null if date is null", async () => {
|
761
|
+
const { componentInstance } = await createDateInputEnv();
|
762
|
+
componentInstance.setDate(null);
|
763
|
+
expect(componentInstance.day).toBeNull();
|
764
|
+
expect(componentInstance.month).toBeNull();
|
765
|
+
expect(componentInstance.year).toBeNull();
|
766
|
+
});
|
767
|
+
});
|
768
|
+
describe("autocompleteInput", () => {
|
769
|
+
it("should call autocompleteYear method if input is the year", async () => {
|
770
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
771
|
+
const spyAutocompleteYear = jest.spyOn(componentInstance, "autocompleteYear");
|
772
|
+
yearInput.value = "2000";
|
773
|
+
componentInstance.autocompleteInput(yearInput);
|
774
|
+
expect(spyAutocompleteYear).toBeCalled();
|
775
|
+
});
|
776
|
+
it("should set day to 01 if 0 has been entered as an input value", async () => {
|
777
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
778
|
+
dayInput.value = "0";
|
779
|
+
componentInstance.autocompleteInput(dayInput);
|
780
|
+
expect(dayInput.value).toBe("01");
|
781
|
+
});
|
782
|
+
it("should set day to 05 if 5 has been entered as an input value", async () => {
|
783
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
784
|
+
dayInput.value = "5";
|
785
|
+
componentInstance.autocompleteInput(dayInput);
|
786
|
+
expect(dayInput.value).toBe("05");
|
787
|
+
});
|
788
|
+
it("should set month to 01 if 0 has been entered as an input value", async () => {
|
789
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
790
|
+
monthInput.value = "0";
|
791
|
+
componentInstance.autocompleteInput(monthInput);
|
792
|
+
expect(monthInput.value).toBe("01");
|
793
|
+
});
|
794
|
+
it("should set month to 05 if 5 has been entered as an input value", async () => {
|
795
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
796
|
+
monthInput.value = "5";
|
797
|
+
componentInstance.autocompleteInput(monthInput);
|
798
|
+
expect(monthInput.value).toBe("05");
|
799
|
+
});
|
800
|
+
it("should call setInputValue method", async () => {
|
801
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
802
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
803
|
+
dayInput.value = "0";
|
804
|
+
componentInstance.autocompleteInput(dayInput);
|
805
|
+
expect(spySetInputValue).toBeCalled();
|
806
|
+
});
|
807
|
+
});
|
808
|
+
describe("autocompleteYear", () => {
|
809
|
+
it("should set the year input value to 2001 if 1 is inputted as year value", async () => {
|
810
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
811
|
+
yearInput.value = "1";
|
812
|
+
componentInstance.autocompleteYear();
|
813
|
+
expect(yearInput.value).toBe("2001");
|
814
|
+
});
|
815
|
+
it("should set the year input value to 2010", async () => {
|
816
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
817
|
+
yearInput.value = "10";
|
818
|
+
componentInstance.autocompleteYear();
|
819
|
+
expect(yearInput.value).toBe("2010");
|
820
|
+
});
|
821
|
+
it("should set the year input value to 2100", async () => {
|
822
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
823
|
+
yearInput.value = "100";
|
824
|
+
componentInstance.autocompleteYear();
|
825
|
+
expect(yearInput.value).toBe("2100");
|
826
|
+
});
|
827
|
+
it("should not call setInputValue method if no year has been set", async () => {
|
828
|
+
const { componentInstance } = await createDateInputEnv();
|
829
|
+
const spySetInputValue = jest.spyOn(componentInstance, "setInputValue");
|
830
|
+
componentInstance.autocompleteYear();
|
831
|
+
expect(spySetInputValue).not.toBeCalled();
|
832
|
+
});
|
833
|
+
});
|
834
|
+
describe("handleFormReset", () => {
|
835
|
+
it("should call the setDate, setValidationMessage & handleDateChange event handlers", async () => {
|
836
|
+
const { componentInstance } = await createDateInputEnv();
|
837
|
+
const spySetDate = jest.spyOn(componentInstance, "setDate");
|
838
|
+
const spySetValidationMessage = jest.spyOn(componentInstance, "setValidationMessage");
|
839
|
+
const spyHandleDateChange = jest.spyOn(componentInstance, "handleDateChange");
|
840
|
+
componentInstance.handleFormReset();
|
841
|
+
expect(spySetDate).toHaveBeenCalled();
|
842
|
+
expect(spySetValidationMessage).toHaveBeenCalled();
|
843
|
+
expect(spyHandleDateChange).toHaveBeenCalled();
|
844
|
+
});
|
845
|
+
});
|
846
|
+
describe("convertToDate", () => {
|
847
|
+
it("should return null if either the year, month or day strings are empty", async () => {
|
848
|
+
const { componentInstance } = await createDateInputEnv();
|
849
|
+
expect(componentInstance.convertToDate("", "03", "09")).toBeNull();
|
850
|
+
expect(componentInstance.convertToDate("1970", "", "09")).toBeNull();
|
851
|
+
expect(componentInstance.convertToDate("2000", "12", "")).toBeNull();
|
852
|
+
});
|
853
|
+
it("should return the Date format of a date string", async () => {
|
854
|
+
const { componentInstance } = await createDateInputEnv();
|
855
|
+
expect(componentInstance.convertToDate("2000", "01", "01")).toEqual(new Date(+"2000", +"01" - 1, +"01"));
|
856
|
+
});
|
857
|
+
});
|
858
|
+
describe("preventInput", () => {
|
859
|
+
// eslint-disable-next-line sonarjs/no-duplicate-string
|
860
|
+
it("should return undefined if isInputPrevented is false", async () => {
|
861
|
+
const { componentInstance } = await createDateInputEnv();
|
862
|
+
const getSelectedTextMock = jest.fn().mockReturnValue(false);
|
863
|
+
window.getSelection = jest
|
864
|
+
.fn()
|
865
|
+
.mockReturnValue({ toString: getSelectedTextMock });
|
866
|
+
let keyboardEvent = {
|
867
|
+
key: "e",
|
868
|
+
preventDefault: jest.fn(),
|
869
|
+
};
|
870
|
+
componentInstance.preventInput(keyboardEvent, true);
|
871
|
+
expect(keyboardEvent.preventDefault).toHaveBeenCalled();
|
872
|
+
keyboardEvent = {
|
873
|
+
key: ".",
|
874
|
+
preventDefault: jest.fn(),
|
875
|
+
};
|
876
|
+
componentInstance.preventInput(keyboardEvent, true);
|
877
|
+
expect(keyboardEvent.preventDefault).toHaveBeenCalled();
|
878
|
+
keyboardEvent = {
|
879
|
+
key: HYPHEN,
|
880
|
+
preventDefault: jest.fn(),
|
881
|
+
};
|
882
|
+
componentInstance.preventInput(keyboardEvent, true);
|
883
|
+
expect(keyboardEvent.preventDefault).toHaveBeenCalled();
|
884
|
+
});
|
885
|
+
it('should return undefined if isInputPrevented is false or if a key other than "e", "." or "-" is pressed', async () => {
|
886
|
+
const { componentInstance, component } = await createDateInputEnv();
|
887
|
+
const getSelectedTextMock = jest.fn().mockReturnValue(false);
|
888
|
+
window.getSelection = jest
|
889
|
+
.fn()
|
890
|
+
.mockReturnValue({ toString: getSelectedTextMock });
|
891
|
+
let event = new KeyboardEvent("keydown", { key: HYPHEN });
|
892
|
+
component === null || component === void 0 ? void 0 : component.dispatchEvent(event);
|
893
|
+
expect(componentInstance.preventInput(event, false)).toBeUndefined();
|
894
|
+
event = new KeyboardEvent("keydown", { key: "a" });
|
895
|
+
component === null || component === void 0 ? void 0 : component.dispatchEvent(event);
|
896
|
+
expect(componentInstance.preventInput(event, true)).toBeUndefined();
|
897
|
+
});
|
898
|
+
});
|
899
|
+
describe("handleHostBlur", () => {
|
900
|
+
// eslint-disable-next-line sonarjs/no-duplicate-string
|
901
|
+
it("should return undefined if isInputPrevented is false", async () => {
|
902
|
+
const { componentInstance, component } = await createDateInputEnv();
|
903
|
+
const eventSpy = jest.fn();
|
904
|
+
component === null || component === void 0 ? void 0 : component.addEventListener("icBlur", eventSpy);
|
905
|
+
const value = new Date(500000000000);
|
906
|
+
componentInstance.handleHostBlur();
|
907
|
+
expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({ detail: expect.objectContaining(value) }));
|
908
|
+
});
|
909
|
+
});
|
910
|
+
describe("handleHostFocus", () => {
|
911
|
+
// eslint-disable-next-line sonarjs/no-duplicate-string
|
912
|
+
it("should return undefined if isInputPrevented is false", async () => {
|
913
|
+
const { componentInstance, component } = await createDateInputEnv();
|
914
|
+
const eventSpy = jest.fn();
|
915
|
+
component === null || component === void 0 ? void 0 : component.addEventListener("icFocus", eventSpy);
|
916
|
+
const value = new Date(500000000000);
|
917
|
+
componentInstance.handleHostFocus();
|
918
|
+
expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({ detail: expect.objectContaining(value) }));
|
919
|
+
});
|
920
|
+
});
|
921
|
+
describe("handleClear", () => {
|
922
|
+
it("should clear the inputs", async () => {
|
923
|
+
const { componentInstance } = await createDateInputEnv();
|
924
|
+
componentInstance.day = "1";
|
925
|
+
componentInstance.month = "1";
|
926
|
+
componentInstance.year = "2000";
|
927
|
+
componentInstance.handleClear();
|
928
|
+
expect(componentInstance.day).toMatch("");
|
929
|
+
expect(componentInstance.month).toMatch("");
|
930
|
+
expect(componentInstance.year).toMatch("");
|
931
|
+
});
|
932
|
+
});
|
933
|
+
describe("handleCalendarOpen", () => {
|
934
|
+
it("should emit calendarButtonClicked with 1st January 2000 as Date object if calendar button is clicked", async () => {
|
935
|
+
const { component, componentInstance } = await createDateInputEnv();
|
936
|
+
const eventSpy = jest.fn();
|
937
|
+
componentInstance.day = "01";
|
938
|
+
componentInstance.month = "01";
|
939
|
+
componentInstance.year = "2000";
|
940
|
+
const date = new Date(+componentInstance.year, +componentInstance.month - 1, +componentInstance.day);
|
941
|
+
componentInstance.selectedDate = date;
|
942
|
+
component === null || component === void 0 ? void 0 : component.addEventListener("calendarButtonClicked", eventSpy);
|
943
|
+
componentInstance.handleCalendarOpen({
|
944
|
+
stopImmediatePropagation: jest.fn(),
|
945
|
+
});
|
946
|
+
expect(eventSpy).toBeCalledWith(expect.objectContaining({
|
947
|
+
detail: expect.objectContaining({
|
948
|
+
value: date,
|
949
|
+
}),
|
950
|
+
}));
|
951
|
+
});
|
952
|
+
});
|
953
|
+
describe("notifyScreenReader", () => {
|
954
|
+
it("should call notifyScreenReaderArrowKeys if event isKeyboardOrEvent is true", async () => {
|
955
|
+
const { dayInput, componentInstance } = await createDateInputEnv();
|
956
|
+
const spyNotifyScreenReaderArrowKeys = jest.spyOn(componentInstance, "notifyScreenReaderArrowKeys");
|
957
|
+
componentInstance.isKeyboardOrEvent = jest
|
958
|
+
.fn()
|
959
|
+
.mockReturnValueOnce(() => true);
|
960
|
+
componentInstance.notifyScreenReader(dayInput, keyboardEvent("ArrowUp"));
|
961
|
+
expect(spyNotifyScreenReaderArrowKeys).toBeCalled();
|
962
|
+
});
|
963
|
+
});
|
964
|
+
describe("componentWillLoad", () => {
|
965
|
+
it("should set helperText to default value if not set", async () => {
|
966
|
+
const { componentInstance } = await createDateInputEnv();
|
967
|
+
componentInstance.helperText = "";
|
968
|
+
componentInstance.componentWillLoad();
|
969
|
+
expect(componentInstance.helperText).toBe("Use format " + componentInstance.dateFormat);
|
970
|
+
});
|
971
|
+
it("should call setDate when value is set", async () => {
|
972
|
+
const { componentInstance } = await createDateInputEnv();
|
973
|
+
const spySetDate = jest.spyOn(componentInstance, "setDate");
|
974
|
+
componentInstance.value = DATE_2000;
|
975
|
+
componentInstance.componentWillLoad();
|
976
|
+
expect(spySetDate).toBeCalled();
|
977
|
+
});
|
978
|
+
});
|
979
|
+
describe("componentWillUpdate", () => {
|
980
|
+
it("should call setDate if isDateSetFromKeyboardEvent is set to false", async () => {
|
981
|
+
const { componentInstance } = await createDateInputEnv();
|
982
|
+
componentInstance.isDateSetFromKeyboardEvent = false;
|
983
|
+
const spySetDate = jest.spyOn(componentInstance, "setDate");
|
984
|
+
componentInstance.componentWillUpdate();
|
985
|
+
expect(spySetDate).toBeCalled();
|
986
|
+
});
|
987
|
+
it("should call setValidationMessage and handleDateChange", async () => {
|
988
|
+
const { componentInstance } = await createDateInputEnv();
|
989
|
+
componentInstance.isDateSetFromKeyboardEvent = false;
|
990
|
+
const spySetValidationMessage = jest.spyOn(componentInstance, "setValidationMessage");
|
991
|
+
const spyHandleDateChange = jest.spyOn(componentInstance, "handleDateChange");
|
992
|
+
componentInstance.componentWillUpdate();
|
993
|
+
expect(spySetValidationMessage).toBeCalled();
|
994
|
+
expect(spyHandleDateChange).toBeCalled();
|
995
|
+
});
|
996
|
+
it("should set isDateSetFromKeyboardEvent to false", async () => {
|
997
|
+
const { componentInstance } = await createDateInputEnv();
|
998
|
+
componentInstance.isDateSetFromKeyboardEvent = true;
|
999
|
+
componentInstance.componentWillUpdate();
|
1000
|
+
expect(componentInstance.isDateSetFromKeyboardEvent).toBeFalsy();
|
1001
|
+
});
|
1002
|
+
});
|
1003
|
+
describe("getArialLabel", () => {
|
1004
|
+
it("should get aria-label day from input", async () => {
|
1005
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1006
|
+
const ariaLabel = componentInstance.getAriaLabel(dayInput);
|
1007
|
+
expect(ariaLabel).toBe("day");
|
1008
|
+
});
|
1009
|
+
});
|
1010
|
+
describe("setAriaInvalid", () => {
|
1011
|
+
it("should set aria-invalid on day input if validDay is invalid", async () => {
|
1012
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1013
|
+
const validDay = false;
|
1014
|
+
const validMonth = true;
|
1015
|
+
const validDate = true;
|
1016
|
+
const disabledDate = false;
|
1017
|
+
componentInstance.setAriaInvalid(validDay, validMonth, validDate, disabledDate);
|
1018
|
+
expect(dayInput).toHaveAttribute(ARIA_INVALID);
|
1019
|
+
expect(dayInput.getAttribute(ARIA_INVALID)).toBe("true");
|
1020
|
+
});
|
1021
|
+
it("should set aria-invalid on month input if validMonth is invalid", async () => {
|
1022
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
1023
|
+
const validDay = true;
|
1024
|
+
const validMonth = false;
|
1025
|
+
const validDate = true;
|
1026
|
+
const disabledDate = false;
|
1027
|
+
componentInstance.setAriaInvalid(validDay, validMonth, validDate, disabledDate);
|
1028
|
+
expect(monthInput).toHaveAttribute(ARIA_INVALID);
|
1029
|
+
expect(monthInput.getAttribute(ARIA_INVALID)).toBe("true");
|
1030
|
+
});
|
1031
|
+
});
|
1032
|
+
describe("getDate()", () => {
|
1033
|
+
it("should return null from getDate if no value is entered", async () => {
|
1034
|
+
const { componentInstance } = await createDateInputEnv();
|
1035
|
+
componentInstance.selectedDate = null;
|
1036
|
+
const dateValue = await componentInstance.getDate();
|
1037
|
+
expect(dateValue).toBeNull();
|
1038
|
+
});
|
1039
|
+
it("should return partial date due to date object if incomplete date", async () => {
|
1040
|
+
const { componentInstance } = await createDateInputEnv();
|
1041
|
+
const date = new Date("37/01");
|
1042
|
+
componentInstance.selectedDate = date;
|
1043
|
+
const dateValue = await componentInstance.getDate();
|
1044
|
+
expect(dateValue).toBe(date);
|
1045
|
+
});
|
1046
|
+
it("should return invalid date if invalid date", async () => {
|
1047
|
+
const { componentInstance } = await createDateInputEnv();
|
1048
|
+
const date = new Date("37/99/99");
|
1049
|
+
componentInstance.selectedDate = date;
|
1050
|
+
const dateValue = await componentInstance.getDate();
|
1051
|
+
expect(dateValue).toBeInstanceOf(Date);
|
1052
|
+
expect(dateValue.toString()).toBe("Invalid Date");
|
1053
|
+
});
|
1054
|
+
it("should return valid date", async () => {
|
1055
|
+
const { componentInstance } = await createDateInputEnv();
|
1056
|
+
const date = new Date("01/01/2001");
|
1057
|
+
componentInstance.selectedDate = date;
|
1058
|
+
const dateValue = await componentInstance.getDate();
|
1059
|
+
expect(dateValue).toBe(date);
|
1060
|
+
});
|
1061
|
+
});
|
1062
|
+
describe("checkSingleCopiedValueIsValid", () => {
|
1063
|
+
it("should return true if dayInput pasted value is 1", async () => {
|
1064
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1065
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(dayInput, "1");
|
1066
|
+
expect(isValid).toBeTruthy();
|
1067
|
+
});
|
1068
|
+
it("should return true if dayInput pasted value is 31", async () => {
|
1069
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1070
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(dayInput, "31");
|
1071
|
+
expect(isValid).toBeTruthy();
|
1072
|
+
});
|
1073
|
+
it("should return true if dayInput pasted value is 24", async () => {
|
1074
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1075
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(dayInput, "24");
|
1076
|
+
expect(isValid).toBeTruthy();
|
1077
|
+
});
|
1078
|
+
it("should return false if dayInput pasted value is 0", async () => {
|
1079
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1080
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(dayInput, "0");
|
1081
|
+
expect(isValid).toBeFalsy();
|
1082
|
+
});
|
1083
|
+
it("should return false if dayInput pasted value is above 31", async () => {
|
1084
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1085
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(dayInput, "32");
|
1086
|
+
expect(isValid).toBeFalsy();
|
1087
|
+
});
|
1088
|
+
it("should return false if monthInput pasted value is 0", async () => {
|
1089
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
1090
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(monthInput, "0");
|
1091
|
+
expect(isValid).toBeFalsy();
|
1092
|
+
});
|
1093
|
+
it("should return true if monthInput pasted value is 1", async () => {
|
1094
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
1095
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(monthInput, "1");
|
1096
|
+
expect(isValid).toBeTruthy();
|
1097
|
+
});
|
1098
|
+
it("should return true if monthInput pasted value is 12", async () => {
|
1099
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
1100
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(monthInput, "12");
|
1101
|
+
expect(isValid).toBeTruthy();
|
1102
|
+
});
|
1103
|
+
it("should return false if monthInput pasted value is 13", async () => {
|
1104
|
+
const { componentInstance, monthInput } = await createDateInputEnv();
|
1105
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(monthInput, "13");
|
1106
|
+
expect(isValid).toBeFalsy();
|
1107
|
+
});
|
1108
|
+
it("should return true if yearMonth pasted value passed in", async () => {
|
1109
|
+
const { componentInstance, yearInput } = await createDateInputEnv();
|
1110
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(yearInput, "11");
|
1111
|
+
expect(isValid).toBeTruthy();
|
1112
|
+
});
|
1113
|
+
it("should return false if undefined input with pasted value passed in", async () => {
|
1114
|
+
const { componentInstance } = await createDateInputEnv();
|
1115
|
+
const isValid = componentInstance.checkSingleCopiedValueIsValid(undefined, "11");
|
1116
|
+
expect(isValid).toBeFalsy();
|
1117
|
+
});
|
1118
|
+
});
|
1119
|
+
describe("setInputPasteValue", () => {
|
1120
|
+
it("should set CSS class and paste value into input", async () => {
|
1121
|
+
const { componentInstance, dayInput } = await createDateInputEnv();
|
1122
|
+
const VALUE = "11";
|
1123
|
+
componentInstance.setInputPasteValue(dayInput, VALUE);
|
1124
|
+
expect(dayInput.value).toBe(VALUE);
|
1125
|
+
expect(dayInput).toHaveClass("fit-to-value");
|
1126
|
+
});
|
1127
|
+
});
|
1128
|
+
describe("isPastedStringDateValid", () => {
|
1129
|
+
it("should return true if 1/1/2001 is value", async () => {
|
1130
|
+
const { componentInstance } = await createDateInputEnv();
|
1131
|
+
expect(componentInstance.isPastedStringDateValid("1/1/2001")).toBeTruthy();
|
1132
|
+
});
|
1133
|
+
it("should return true if 1-1-2001 is value", async () => {
|
1134
|
+
const { componentInstance } = await createDateInputEnv();
|
1135
|
+
expect(componentInstance.isPastedStringDateValid("1-1-2001")).toBeTruthy();
|
1136
|
+
});
|
1137
|
+
it("should return true if 1.1.2001 is value", async () => {
|
1138
|
+
const { componentInstance } = await createDateInputEnv();
|
1139
|
+
expect(componentInstance.isPastedStringDateValid("1.1.2001")).toBeTruthy();
|
1140
|
+
});
|
1141
|
+
it("should return true if abc is value", async () => {
|
1142
|
+
const { componentInstance } = await createDateInputEnv();
|
1143
|
+
expect(componentInstance.isPastedStringDateValid("abc")).toBeFalsy();
|
1144
|
+
});
|
1145
|
+
it("should return true if 123456789 is value", async () => {
|
1146
|
+
const { componentInstance } = await createDateInputEnv();
|
1147
|
+
expect(componentInstance.isPastedStringDateValid("123456789")).toBeFalsy();
|
1148
|
+
});
|
1149
|
+
});
|
1150
|
+
describe("setDisableDays", () => {
|
1151
|
+
it("should test setting disableDays ", async () => {
|
1152
|
+
const { component, componentInstance } = await createDateInputEnv();
|
1153
|
+
await component.setDisableDays([0, 1]);
|
1154
|
+
expect(componentInstance.disableDays).toEqual([0, 1]);
|
1155
|
+
});
|
1156
|
+
});
|
1157
|
+
});
|
1158
|
+
//# sourceMappingURL=ic-date-input.spec.js.map
|