@watermarkinsights/ripple 5.11.0-7 → 5.11.0-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chartFunctions-7314b414.js → chartFunctions-b47a5431.js} +3 -3
- package/dist/cjs/{functions-5ac8a62f.js → functions-e24249e6.js} +7 -104
- package/dist/{esm/app-globals-100a3ed5.js → cjs/global-cfead82d.js} +2 -7
- package/dist/cjs/index-e86c28b6.js +2649 -0
- package/dist/cjs/{intl-07aaf53c.js → intl-a70cf8c2.js} +1 -1
- package/dist/cjs/loader.cjs.js +4 -5
- package/dist/cjs/priv-calendar.cjs.entry.js +5 -6
- package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
- package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
- package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
- package/dist/cjs/priv-option-list.cjs.entry.js +4 -5
- package/dist/cjs/ripple.cjs.js +12 -13
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
- package/dist/cjs/wm-button.cjs.entry.js +4 -5
- package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +6 -7
- package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
- package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
- package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
- package/dist/cjs/wm-file.cjs.entry.js +4 -5
- package/dist/cjs/wm-input.cjs.entry.js +5 -6
- package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +10 -13
- package/dist/cjs/wm-modal_3.cjs.entry.js +10 -13
- package/dist/cjs/wm-navigation_3.cjs.entry.js +10 -13
- package/dist/cjs/wm-navigator.cjs.entry.js +3 -4
- package/dist/cjs/wm-nested-select.cjs.entry.js +7 -8
- package/dist/cjs/wm-optgroup.cjs.entry.js +4 -5
- package/dist/cjs/wm-option_2.cjs.entry.js +8 -10
- package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +7 -9
- package/dist/cjs/wm-search.cjs.entry.js +6 -7
- package/dist/cjs/wm-snackbar.cjs.entry.js +7 -8
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +8 -11
- package/dist/cjs/wm-tag-input.cjs.entry.js +7 -8
- package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
- package/dist/cjs/wm-textarea.cjs.entry.js +5 -6
- package/dist/cjs/wm-timepicker.cjs.entry.js +5 -6
- package/dist/cjs/wm-toggletip.cjs.entry.js +38 -35
- package/dist/cjs/wm-uploader.cjs.entry.js +6 -7
- package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/charts/chartFunctions.js +1 -1
- package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
- package/dist/collection/components/charts/screenshots.e2e.js +96 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
- package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
- package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
- package/dist/collection/components/datepickers/wm-date-range.js +13 -17
- package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
- package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
- package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +5 -7
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +3 -3
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +1 -1
- package/dist/collection/components/selects/wm-option/wm-option.e2e.js +22 -0
- package/dist/collection/components/selects/wm-option/wm-option.js +1 -1
- package/dist/collection/components/selects/wm-option/wm-option.spec.js +63 -0
- package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
- package/dist/collection/components/selects/wm-select/wm-select.js +2 -2
- package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
- package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
- package/dist/collection/components/wm-button/wm-button.js +1 -1
- package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
- package/dist/collection/components/wm-file/wm-file.js +1 -1
- package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
- package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
- package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
- package/dist/collection/components/wm-input/wm-input.js +1 -1
- package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
- package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
- package/dist/collection/components/wm-modal/wm-modal.js +2 -2
- package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +1 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +1 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +2 -2
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
- package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
- package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
- package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
- package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
- package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
- package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
- package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
- package/dist/collection/components/wm-search/wm-search.js +4 -5
- package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +3 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
- package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
- package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
- package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
- package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
- package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
- package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
- package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +34 -105
- package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +41 -32
- package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
- package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
- package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
- package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
- package/dist/collection/global/functions.spec.js +126 -0
- package/dist/collection/lang/lang.spec.js +20 -0
- package/dist/esm/{chartFunctions-c273c613.js → chartFunctions-d2ecde7f.js} +3 -3
- package/dist/esm/{functions-f39e6177.js → functions-8800c690.js} +8 -105
- package/dist/{cjs/app-globals-b3f03eaa.js → esm/global-0b62026b.js} +1 -10
- package/dist/esm/index-558b5a82.js +2618 -0
- package/dist/esm/{intl-a0ebf99e.js → intl-cf443c87.js} +1 -1
- package/dist/esm/loader.js +5 -6
- package/dist/esm/priv-calendar.entry.js +5 -6
- package/dist/esm/priv-chart-popover.entry.js +5 -6
- package/dist/esm/priv-navigator-button.entry.js +3 -4
- package/dist/esm/priv-navigator-item.entry.js +3 -4
- package/dist/esm/priv-option-list.entry.js +4 -5
- package/dist/esm/ripple.js +13 -14
- package/dist/esm/wm-action-menu_2.entry.js +6 -8
- package/dist/esm/wm-button.entry.js +4 -5
- package/dist/esm/wm-chart-slice.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +6 -7
- package/dist/esm/wm-date-range.entry.js +8 -9
- package/dist/esm/wm-datepicker.entry.js +8 -9
- package/dist/esm/wm-file-list.entry.js +3 -4
- package/dist/esm/wm-file.entry.js +4 -5
- package/dist/esm/wm-input.entry.js +5 -6
- package/dist/esm/wm-line-chart.entry.js +14 -15
- package/dist/esm/wm-modal-pss_3.entry.js +10 -13
- package/dist/esm/wm-modal_3.entry.js +10 -13
- package/dist/esm/wm-navigation_3.entry.js +10 -13
- package/dist/esm/wm-navigator.entry.js +3 -4
- package/dist/esm/wm-nested-select.entry.js +7 -8
- package/dist/esm/wm-optgroup.entry.js +4 -5
- package/dist/esm/wm-option_2.entry.js +8 -10
- package/dist/esm/wm-pagination.entry.js +4 -5
- package/dist/esm/wm-progress-indicator_3.entry.js +7 -9
- package/dist/esm/wm-search.entry.js +6 -7
- package/dist/esm/wm-snackbar.entry.js +7 -8
- package/dist/esm/wm-tab-item_3.entry.js +8 -11
- package/dist/esm/wm-tag-input.entry.js +7 -8
- package/dist/esm/wm-tag-option.entry.js +2 -2
- package/dist/esm/wm-textarea.entry.js +5 -6
- package/dist/esm/wm-timepicker.entry.js +5 -6
- package/dist/esm/wm-toggletip.entry.js +38 -35
- package/dist/esm/wm-uploader.entry.js +6 -7
- package/dist/esm/wm-wrapper.entry.js +1 -1
- package/dist/esm-es5/{chartFunctions-c273c613.js → chartFunctions-d2ecde7f.js} +1 -1
- package/dist/esm-es5/functions-8800c690.js +1 -0
- package/dist/esm-es5/global-0b62026b.js +1 -0
- package/dist/esm-es5/index-558b5a82.js +1 -0
- package/dist/esm-es5/{intl-a0ebf99e.js → intl-cf443c87.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
- package/dist/esm-es5/priv-option-list.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file-list.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
- package/dist/esm-es5/wm-modal_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-nested-select.entry.js +1 -1
- package/dist/esm-es5/wm-optgroup.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-wrapper.entry.js +1 -1
- package/dist/loader/cdn.js +2 -1
- package/dist/loader/index.cjs.js +2 -1
- package/dist/loader/index.d.ts +0 -3
- package/dist/loader/index.es2017.js +2 -1
- package/dist/loader/index.js +2 -1
- package/dist/ripple/{p-bda9a663.system.entry.js → p-0ba2e506.system.entry.js} +1 -1
- package/dist/ripple/{p-0f09ccc6.system.entry.js → p-0e36d5b8.system.entry.js} +1 -1
- package/dist/ripple/p-159c4e96.entry.js +1 -0
- package/dist/ripple/{p-658f146a.system.entry.js → p-1a4b6b02.system.entry.js} +1 -1
- package/dist/ripple/{p-165b5d3d.system.entry.js → p-1a71d867.system.entry.js} +1 -1
- package/dist/ripple/p-1b6e0f20.system.js +1 -0
- package/dist/ripple/p-1c486c10.entry.js +1 -0
- package/dist/ripple/p-1fce9f27.entry.js +1 -0
- package/dist/ripple/{p-47f6c939.system.entry.js → p-21b87733.system.entry.js} +1 -1
- package/dist/ripple/{p-9287d70b.system.entry.js → p-2b21c6f5.system.entry.js} +1 -1
- package/dist/ripple/p-32507c13.system.entry.js +1 -0
- package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
- package/dist/ripple/{p-bb25b9af.system.js → p-3322823d.system.js} +1 -1
- package/dist/ripple/{p-96505312.js → p-366920dc.js} +1 -1
- package/dist/ripple/p-39e26322.entry.js +1 -0
- package/dist/ripple/p-417ee34d.entry.js +1 -0
- package/dist/ripple/p-44f426ad.entry.js +1 -0
- package/dist/ripple/{p-c34c9cbb.system.entry.js → p-4743176d.system.entry.js} +1 -1
- package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
- package/dist/ripple/p-4de728e1.entry.js +1 -0
- package/dist/ripple/p-4ff87702.system.entry.js +1 -0
- package/dist/ripple/{p-79a6b32f.system.entry.js → p-5415aaf9.system.entry.js} +1 -1
- package/dist/ripple/{p-362b19a2.entry.js → p-544925c2.entry.js} +1 -1
- package/dist/ripple/{p-2c8f0e96.system.entry.js → p-55d837e7.system.entry.js} +1 -1
- package/dist/ripple/{p-83d1c1fb.entry.js → p-55e9e0cb.entry.js} +1 -1
- package/dist/ripple/p-568c595f.js +2 -0
- package/dist/ripple/{p-bee47080.system.entry.js → p-58668e84.system.entry.js} +1 -1
- package/dist/ripple/p-5e9c9f0d.entry.js +1 -0
- package/dist/ripple/{p-39dd3870.system.entry.js → p-608f69c1.system.entry.js} +1 -1
- package/dist/ripple/p-64b1e73b.entry.js +1 -0
- package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
- package/dist/ripple/{p-5c25870c.entry.js → p-68e04222.entry.js} +1 -1
- package/dist/ripple/{p-9513be67.system.entry.js → p-6b014a04.system.entry.js} +1 -1
- package/dist/ripple/{p-a40296fc.system.entry.js → p-704be1e8.system.entry.js} +1 -1
- package/dist/ripple/{p-9708c995.js → p-710c6115.js} +1 -1
- package/dist/ripple/{p-42596f25.entry.js → p-7478303e.entry.js} +1 -1
- package/dist/ripple/p-74b56394.entry.js +1 -0
- package/dist/ripple/p-79043436.entry.js +1 -0
- package/dist/ripple/p-797d65b7.entry.js +1 -0
- package/dist/ripple/{p-a3f9e2f6.system.entry.js → p-7cf5993c.system.entry.js} +1 -1
- package/dist/ripple/{p-d0736520.system.entry.js → p-878fd4af.system.entry.js} +1 -1
- package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
- package/dist/ripple/p-8d72d140.entry.js +1 -0
- package/dist/ripple/{p-8918aa06.system.entry.js → p-915289ac.system.entry.js} +1 -1
- package/dist/ripple/p-94495341.entry.js +1 -0
- package/dist/ripple/p-94717864.entry.js +1 -0
- package/dist/ripple/{p-0ed1e17e.entry.js → p-9d461de5.entry.js} +1 -1
- package/dist/ripple/{p-1bbd7c10.entry.js → p-9dd401f8.entry.js} +1 -1
- package/dist/ripple/p-9eaa0acb.system.entry.js +1 -0
- package/dist/ripple/{p-3376581a.system.entry.js → p-a04ef164.system.entry.js} +1 -1
- package/dist/ripple/{p-1bef5a45.system.entry.js → p-a1fa6df5.system.entry.js} +1 -1
- package/dist/ripple/p-a69425b0.entry.js +1 -0
- package/dist/ripple/{p-165ce5ff.system.entry.js → p-a9a22fe9.system.entry.js} +1 -1
- package/dist/ripple/p-ab8d78cc.system.js +2 -0
- package/dist/ripple/p-adc254e6.entry.js +1 -0
- package/dist/ripple/p-b02048a9.entry.js +1 -0
- package/dist/ripple/{p-f2a3d851.entry.js → p-b52742ca.system.entry.js} +1 -1
- package/dist/ripple/{p-76d248e6.entry.js → p-b976c84b.entry.js} +1 -1
- package/dist/ripple/{p-a65e54ed.system.entry.js → p-ba6705f0.system.entry.js} +1 -1
- package/dist/ripple/p-bab9379d.js +1 -0
- package/dist/ripple/p-bc52ce59.entry.js +1 -0
- package/dist/ripple/{p-9dcf2403.system.entry.js → p-bfc1065f.system.entry.js} +1 -1
- package/dist/ripple/p-c699a3a7.system.js +1 -0
- package/dist/ripple/{p-72e05203.system.entry.js → p-c7e30eb0.system.entry.js} +1 -1
- package/dist/ripple/{p-35c7696e.entry.js → p-ce44ba70.entry.js} +1 -1
- package/dist/ripple/{p-c1c41694.system.entry.js → p-d57e8196.entry.js} +1 -1
- package/dist/ripple/p-d585c49a.entry.js +1 -0
- package/dist/ripple/{p-4410cab5.system.entry.js → p-d6e58820.system.entry.js} +1 -1
- package/dist/ripple/p-dc77d98a.entry.js +1 -0
- package/dist/ripple/p-dd01bd48.entry.js +1 -0
- package/dist/ripple/{p-d85c6d0d.system.entry.js → p-ddcbb694.system.entry.js} +1 -1
- package/dist/ripple/{p-35218430.system.entry.js → p-de272ae7.system.entry.js} +1 -1
- package/dist/ripple/{p-cca7a151.system.entry.js → p-e2c6052b.system.entry.js} +1 -1
- package/dist/ripple/{p-4c1efa04.system.js → p-e71ee9f4.system.js} +1 -1
- package/dist/ripple/{p-5c62e26d.entry.js → p-e9b8a6a9.entry.js} +1 -1
- package/dist/ripple/p-eca78c2b.js +1 -0
- package/dist/ripple/p-edd87140.system.js +1 -0
- package/dist/ripple/{p-ead461fe.system.entry.js → p-f6eff655.system.entry.js} +1 -1
- package/dist/ripple/{p-22dda578.system.entry.js → p-f779ec68.system.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +3 -1
- package/dist/types/stencil-public-runtime.d.ts +10 -3
- package/package.json +1 -1
- package/dist/cjs/index-788526f5.js +0 -1859
- package/dist/esm/index-130e07bb.js +0 -1828
- package/dist/esm-es5/app-globals-100a3ed5.js +0 -1
- package/dist/esm-es5/functions-f39e6177.js +0 -1
- package/dist/esm-es5/index-130e07bb.js +0 -1
- package/dist/ripple/p-05fbc327.entry.js +0 -1
- package/dist/ripple/p-105e5721.system.entry.js +0 -1
- package/dist/ripple/p-152b20ae.entry.js +0 -1
- package/dist/ripple/p-2a30d411.system.entry.js +0 -1
- package/dist/ripple/p-3744869a.js +0 -1
- package/dist/ripple/p-3ceed568.entry.js +0 -1
- package/dist/ripple/p-3dcdc247.entry.js +0 -1
- package/dist/ripple/p-3f486eed.system.js +0 -1
- package/dist/ripple/p-410373fc.entry.js +0 -1
- package/dist/ripple/p-4b8cb0a4.entry.js +0 -1
- package/dist/ripple/p-5107cac1.entry.js +0 -1
- package/dist/ripple/p-5d8386b4.system.entry.js +0 -1
- package/dist/ripple/p-60895838.entry.js +0 -1
- package/dist/ripple/p-76f9acec.entry.js +0 -1
- package/dist/ripple/p-86a5178d.entry.js +0 -1
- package/dist/ripple/p-89a2db02.js +0 -1
- package/dist/ripple/p-8d4f674f.entry.js +0 -1
- package/dist/ripple/p-95dc8d71.entry.js +0 -1
- package/dist/ripple/p-aa5947de.entry.js +0 -1
- package/dist/ripple/p-ac6b2cfe.entry.js +0 -1
- package/dist/ripple/p-b1265a17.system.js +0 -1
- package/dist/ripple/p-b4e7d63f.entry.js +0 -1
- package/dist/ripple/p-c5c31818.entry.js +0 -1
- package/dist/ripple/p-cef8a45b.system.js +0 -2
- package/dist/ripple/p-d528f5e4.entry.js +0 -1
- package/dist/ripple/p-d9da0502.js +0 -2
- package/dist/ripple/p-da15c18e.entry.js +0 -1
- package/dist/ripple/p-da424bdb.entry.js +0 -1
- package/dist/ripple/p-f39b556d.entry.js +0 -1
- package/dist/ripple/p-f98f9a32.entry.js +0 -1
- package/dist/ripple/p-f9a71cf6.entry.js +0 -1
- package/dist/ripple/p-ffeaea05.system.js +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { Textarea } from "./wm-textarea";
|
|
3
|
+
// mock observers
|
|
4
|
+
// global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
5
|
+
// observe: jest.fn(),
|
|
6
|
+
// unobserve: jest.fn(),
|
|
7
|
+
// disconnect: jest.fn(),
|
|
8
|
+
// }));
|
|
9
|
+
// global.MutationObserver = jest.fn().mockImplementation(() => ({
|
|
10
|
+
// observe: jest.fn(),
|
|
11
|
+
// unobserve: jest.fn(),
|
|
12
|
+
// disconnect: jest.fn(),
|
|
13
|
+
// }));
|
|
14
|
+
describe("textarea", () => {
|
|
15
|
+
let page;
|
|
16
|
+
let component;
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
page = await newSpecPage({
|
|
19
|
+
components: [Textarea],
|
|
20
|
+
html: `<wm-textarea id="textarea" label="label"></wm-textarea>`,
|
|
21
|
+
});
|
|
22
|
+
component = page.root;
|
|
23
|
+
});
|
|
24
|
+
it("builds", async () => {
|
|
25
|
+
expect(page.root).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
it("has right aria roles", async () => {
|
|
28
|
+
page = await newSpecPage({
|
|
29
|
+
components: [Textarea],
|
|
30
|
+
html: `<wm-textarea id="textarea" label="label" disabled required-field></wm-textarea>`,
|
|
31
|
+
});
|
|
32
|
+
const textarea = await page.root.shadowRoot.querySelector("textarea");
|
|
33
|
+
expect(textarea).toEqualAttribute("aria-describedby", "info error");
|
|
34
|
+
expect(textarea).toHaveAttribute("disabled");
|
|
35
|
+
const error = await page.root.shadowRoot.querySelector("#error");
|
|
36
|
+
expect(error).toEqualAttribute("aria-live", "assertive");
|
|
37
|
+
const livePolite = await page.root.shadowRoot.querySelector("#live-polite");
|
|
38
|
+
expect(livePolite).toEqualAttribute("aria-live", "polite");
|
|
39
|
+
});
|
|
40
|
+
it("sets initial value from textcontent", async () => {
|
|
41
|
+
page = await newSpecPage({
|
|
42
|
+
components: [Textarea],
|
|
43
|
+
html: `<wm-textarea id="textarea" label="label">Initial value</wm-textarea>`,
|
|
44
|
+
});
|
|
45
|
+
component = page.root;
|
|
46
|
+
expect(component.value).toBe("Initial value");
|
|
47
|
+
});
|
|
48
|
+
it("renders character limit", async () => {
|
|
49
|
+
page = await newSpecPage({
|
|
50
|
+
components: [Textarea],
|
|
51
|
+
html: `<wm-textarea id="textarea" label="label" character-limit="20">Hello</wm-textarea>`,
|
|
52
|
+
});
|
|
53
|
+
component = page.root;
|
|
54
|
+
const characterLimitArea = await page.root.shadowRoot.querySelector(".character-count");
|
|
55
|
+
expect(characterLimitArea.textContent).toBe("5/20");
|
|
56
|
+
});
|
|
57
|
+
it("properties override height and width", async () => {
|
|
58
|
+
page = await newSpecPage({
|
|
59
|
+
components: [Textarea],
|
|
60
|
+
html: `<wm-textarea id="textarea" label="label" input-width="200px" input-height="300px"></wm-textarea>`,
|
|
61
|
+
});
|
|
62
|
+
component = page.root;
|
|
63
|
+
const textarea = await component.shadowRoot.querySelector("textarea");
|
|
64
|
+
expect(textarea).toEqualAttribute("style", "height: 300px;");
|
|
65
|
+
const widthWrapper = await component.shadowRoot.querySelector(".inputfield-wrapper");
|
|
66
|
+
expect(widthWrapper).toEqualAttribute("style", "width: 200px;");
|
|
67
|
+
});
|
|
68
|
+
it("displays info and error-message properties", async () => {
|
|
69
|
+
page = await newSpecPage({
|
|
70
|
+
components: [Textarea],
|
|
71
|
+
html: `<wm-textarea id="textarea" label="label" info="example info text" error-message="example error text"></wm-textarea>`,
|
|
72
|
+
});
|
|
73
|
+
component = page.root;
|
|
74
|
+
const info = await component.shadowRoot.querySelector("#info");
|
|
75
|
+
expect(info.textContent).toBe("example info text");
|
|
76
|
+
const error = await component.shadowRoot.querySelector("#error");
|
|
77
|
+
expect(error.textContent).toBe("example error text");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import AxePuppeteer from "@axe-core/puppeteer";
|
|
2
|
+
import { newE2EPage } from "@stencil/core/testing";
|
|
3
|
+
describe("wm-timepicker", () => {
|
|
4
|
+
let page, input;
|
|
5
|
+
beforeEach(async () => {
|
|
6
|
+
page = await newE2EPage();
|
|
7
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
8
|
+
<wm-timepicker label="timepicker" dropdown-time="09:00"></wm-timepicker>
|
|
9
|
+
</main></body></html>`);
|
|
10
|
+
input = await page.find("wm-timepicker >>> input");
|
|
11
|
+
await page.waitForChanges();
|
|
12
|
+
});
|
|
13
|
+
it("passes Axe checks", async () => {
|
|
14
|
+
const results = await new AxePuppeteer(page).analyze();
|
|
15
|
+
expect(results.violations.length).toBe(0);
|
|
16
|
+
});
|
|
17
|
+
it("emits input blurred event", async () => {
|
|
18
|
+
page = await newE2EPage();
|
|
19
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
20
|
+
<wm-timepicker label="timepicker"></wm-timepicker>
|
|
21
|
+
<div id="indicator">no event heard</div>
|
|
22
|
+
</main></body></html>`);
|
|
23
|
+
input = await page.find("wm-timepicker >>> input");
|
|
24
|
+
await page.waitForChanges();
|
|
25
|
+
await page.evaluate(async () => {
|
|
26
|
+
const indicator = document.querySelector("#indicator");
|
|
27
|
+
await document.addEventListener("wmTimepickerInputBlurred", () => (indicator.textContent = "event heard"));
|
|
28
|
+
});
|
|
29
|
+
await page.waitForChanges;
|
|
30
|
+
let indicator = await page.find("#indicator");
|
|
31
|
+
expect(indicator.textContent).toBe("no event heard");
|
|
32
|
+
await input.type("522");
|
|
33
|
+
await page.waitForChanges();
|
|
34
|
+
await page.keyboard.press("Tab");
|
|
35
|
+
await page.waitForChanges();
|
|
36
|
+
expect(indicator.textContent).toBe("event heard");
|
|
37
|
+
});
|
|
38
|
+
it("opens to preselected time", async () => {
|
|
39
|
+
page = await newE2EPage();
|
|
40
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
41
|
+
<wm-timepicker label="timepicker" preselected="14:15"></wm-timepicker>
|
|
42
|
+
</main></body></html>`);
|
|
43
|
+
await page.waitForChanges();
|
|
44
|
+
await page.keyboard.press("Tab");
|
|
45
|
+
await page.waitForChanges();
|
|
46
|
+
await page.keyboard.press("Tab");
|
|
47
|
+
await page.waitForChanges();
|
|
48
|
+
await page.keyboard.press("Enter");
|
|
49
|
+
await page.waitForChanges();
|
|
50
|
+
const nineAm = await page.find("wm-timepicker >>> li#option58");
|
|
51
|
+
expect(nineAm).toEqualAttribute("tabindex", 0);
|
|
52
|
+
});
|
|
53
|
+
it("opens next option with down arrow key", async () => {
|
|
54
|
+
await page.keyboard.press("Tab");
|
|
55
|
+
await page.waitForChanges();
|
|
56
|
+
await page.keyboard.press("Tab");
|
|
57
|
+
await page.waitForChanges();
|
|
58
|
+
await page.keyboard.press("ArrowDown");
|
|
59
|
+
await page.waitForChanges();
|
|
60
|
+
const nineFifteenAm = await page.find("wm-timepicker >>> li#option38");
|
|
61
|
+
expect(nineFifteenAm).toEqualAttribute("tabindex", 0);
|
|
62
|
+
});
|
|
63
|
+
it("opens previous option with up arrow key", async () => {
|
|
64
|
+
await page.keyboard.press("Tab");
|
|
65
|
+
await page.waitForChanges();
|
|
66
|
+
await page.keyboard.press("Tab");
|
|
67
|
+
await page.waitForChanges();
|
|
68
|
+
await page.keyboard.press("ArrowUp");
|
|
69
|
+
await page.waitForChanges();
|
|
70
|
+
const eightFourtyFiveAm = await page.find("wm-timepicker >>> li#option36");
|
|
71
|
+
expect(eightFourtyFiveAm).toEqualAttribute("tabindex", 0);
|
|
72
|
+
});
|
|
73
|
+
it("navigates through the dropdown with keyboard", async () => {
|
|
74
|
+
await page.keyboard.press("Tab");
|
|
75
|
+
await page.waitForChanges();
|
|
76
|
+
await page.keyboard.press("Tab");
|
|
77
|
+
await page.waitForChanges();
|
|
78
|
+
await page.keyboard.press("Enter");
|
|
79
|
+
await page.waitForChanges();
|
|
80
|
+
const nineAm = await page.find("wm-timepicker >>> li#option37");
|
|
81
|
+
const nineFifteenAm = await page.find("wm-timepicker >>> li#option38");
|
|
82
|
+
await page.keyboard.press("ArrowDown");
|
|
83
|
+
await page.waitForChanges();
|
|
84
|
+
expect(nineFifteenAm).toEqualAttribute("tabindex", 0);
|
|
85
|
+
await page.keyboard.press("ArrowUp");
|
|
86
|
+
await page.waitForChanges();
|
|
87
|
+
expect(nineAm).toEqualAttribute("tabindex", 0);
|
|
88
|
+
});
|
|
89
|
+
it("emits timeSelected event with time", async () => {
|
|
90
|
+
page = await newE2EPage();
|
|
91
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
92
|
+
<wm-timepicker label="timepicker" value="03:15 PM" preselected="15:15"></wm-timepicker>
|
|
93
|
+
<div id="indicator">no event heard</div>
|
|
94
|
+
</main></body></html>`);
|
|
95
|
+
input = await page.find("wm-timepicker >>> input");
|
|
96
|
+
await page.waitForChanges();
|
|
97
|
+
await page.evaluate(async () => {
|
|
98
|
+
const indicator = document.querySelector("#indicator");
|
|
99
|
+
await document.addEventListener("wmTimepickerTimeSelected", (ev) => (indicator.textContent = `event heard: ${ev.detail.time}`));
|
|
100
|
+
});
|
|
101
|
+
await page.waitForChanges;
|
|
102
|
+
let indicator = await page.find("#indicator");
|
|
103
|
+
expect(indicator.textContent).toBe("no event heard");
|
|
104
|
+
await page.keyboard.press("Tab");
|
|
105
|
+
await page.keyboard.press("Tab");
|
|
106
|
+
await page.keyboard.press("Enter");
|
|
107
|
+
await page.waitForChanges();
|
|
108
|
+
await page.keyboard.press("Enter");
|
|
109
|
+
await page.waitForChanges();
|
|
110
|
+
expect(indicator.textContent).toBe("event heard: 15:15");
|
|
111
|
+
});
|
|
112
|
+
it("closes dropdown on Escape and Tab", async () => {
|
|
113
|
+
const dropdown = await page.find("wm-timepicker >>> ul.options");
|
|
114
|
+
expect(dropdown).not.toHaveClass("open");
|
|
115
|
+
await page.keyboard.press("Tab");
|
|
116
|
+
await page.waitForChanges();
|
|
117
|
+
await page.keyboard.press("Tab");
|
|
118
|
+
await page.waitForChanges();
|
|
119
|
+
await page.keyboard.press("Enter");
|
|
120
|
+
await page.waitForChanges();
|
|
121
|
+
expect(dropdown).toHaveClass("open");
|
|
122
|
+
await page.keyboard.press("Escape");
|
|
123
|
+
await page.waitForChanges();
|
|
124
|
+
expect(dropdown).not.toHaveClass("open");
|
|
125
|
+
await page.waitForChanges();
|
|
126
|
+
await page.keyboard.press("Enter");
|
|
127
|
+
await page.waitForChanges();
|
|
128
|
+
expect(dropdown).toHaveClass("open");
|
|
129
|
+
await page.keyboard.press("Tab");
|
|
130
|
+
await page.waitForChanges();
|
|
131
|
+
expect(dropdown).not.toHaveClass("open");
|
|
132
|
+
});
|
|
133
|
+
it("closes dropdown when clicking outside component", async () => {
|
|
134
|
+
const dropdown = await page.find("wm-timepicker >>> ul.options");
|
|
135
|
+
expect(dropdown).not.toHaveClass("open");
|
|
136
|
+
await page.keyboard.press("Tab");
|
|
137
|
+
await page.waitForChanges();
|
|
138
|
+
await page.keyboard.press("Tab");
|
|
139
|
+
await page.waitForChanges();
|
|
140
|
+
await page.keyboard.press("Enter");
|
|
141
|
+
await page.waitForChanges();
|
|
142
|
+
expect(dropdown).toHaveClass("open");
|
|
143
|
+
await page.mouse.click(-10, -10);
|
|
144
|
+
await page.waitForChanges();
|
|
145
|
+
expect(dropdown).not.toHaveClass("open");
|
|
146
|
+
});
|
|
147
|
+
it("handles Home and End keys", async () => {
|
|
148
|
+
await page.keyboard.press("Tab");
|
|
149
|
+
await page.waitForChanges();
|
|
150
|
+
await page.keyboard.press("Tab");
|
|
151
|
+
await page.waitForChanges();
|
|
152
|
+
await page.keyboard.press("Enter");
|
|
153
|
+
await page.waitForChanges();
|
|
154
|
+
const firstOption = await page.find("wm-timepicker >>> li#option1");
|
|
155
|
+
await page.keyboard.press("Home");
|
|
156
|
+
await page.waitForChanges();
|
|
157
|
+
expect(firstOption).toEqualAttribute("tabindex", 0);
|
|
158
|
+
const lastOption = await page.find("wm-timepicker >>> li#option96");
|
|
159
|
+
await page.keyboard.press("End");
|
|
160
|
+
await page.waitForChanges();
|
|
161
|
+
expect(lastOption).toEqualAttribute("tabindex", 0);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
@@ -275,13 +275,13 @@ export class Timepicker {
|
|
|
275
275
|
return this.times.map((time, index) => (h("li", { id: `option${index + 1}`, "data-time": time, role: "option", onClick: () => this.handleOptionClick(time) }, this.reformatTimeInternal("12", time))));
|
|
276
276
|
}
|
|
277
277
|
render() {
|
|
278
|
-
return (h(Host, {
|
|
278
|
+
return (h(Host, { onBlur: () => this.close(false) }, h("div", { class: `wrapper label-${this.labelPosition} ${!!this.errorMessage ? "invalid" : ""}`, ref: (t) => (this.tpWrapper = t) }, h("div", { class: "label-wrapper" }, this.labelPosition !== "none" && (h("label", { id: "label", class: "label", htmlFor: "time-input" }, this.label, this.requiredField && (h("span", { class: "required", "aria-hidden": "true" }, "*"))))), h("div", null, h("div", { class: "inner-wrapper" }, h("input", { id: "time-input", "aria-label": this.label, "aria-describedby": "error", ref: (el) => (this.inputEl = el), onBlur: () => this.handleInputBlur(), onInput: () => (this.value = this.inputEl.value), disabled: this.isDisabled, "aria-required": this.requiredField ? "true" : null, placeholder: this.timeFormat, autocomplete: "off", value: this.value, onFocus: () => this.tpWrapper.classList.add("focus") }), h("button", { id: "btn", ref: (el) => (this.buttonEl = el), disabled: this.isDisabled, "aria-controls": "list", "aria-expanded": this.isExpanded ? "true" : "false", "aria-label": this.buttonAriaLabel, "aria-describedby": "time-input", onClick: () => (this.isExpanded ? this.close() : this.open()),
|
|
279
279
|
// This addresses an issue in Safari, where clicking buttons does not focus them
|
|
280
280
|
// if the button does not receive focus when clicked, Timepicker incorrectly emits a blur event
|
|
281
281
|
onMouseDown: (ev) => {
|
|
282
282
|
ev.preventDefault();
|
|
283
283
|
this.buttonEl.focus();
|
|
284
|
-
} }, h("span", {
|
|
284
|
+
} }, h("span", { class: "svg-icon svg-time" })), h("ul", { class: `options ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, id: "list", role: "listbox", "aria-labelledby": "label", "aria-describedby": this.isExpanded ? "collapsed" : null, tabindex: -1, ref: (el) => (this.optionsEl = el) }, this.renderOptions())), h("div", { id: "error", class: "error" }, this.errorMessage)), h("div", { id: "live-polite", class: "sr-only", "aria-live": "polite", "aria-atomic": "true", ref: (el) => (this.liveRegionEl = el) }))));
|
|
285
285
|
}
|
|
286
286
|
static get is() { return "wm-timepicker"; }
|
|
287
287
|
static get encapsulation() { return "shadow"; }
|
|
@@ -468,9 +468,8 @@ export class Timepicker {
|
|
|
468
468
|
"complexType": {
|
|
469
469
|
"signature": "(input: string) => Promise<boolean>",
|
|
470
470
|
"parameters": [{
|
|
471
|
-
"
|
|
472
|
-
"
|
|
473
|
-
"docs": ""
|
|
471
|
+
"tags": [],
|
|
472
|
+
"text": ""
|
|
474
473
|
}],
|
|
475
474
|
"references": {
|
|
476
475
|
"Promise": {
|
|
@@ -489,13 +488,11 @@ export class Timepicker {
|
|
|
489
488
|
"complexType": {
|
|
490
489
|
"signature": "(format: \"12\" | \"24\", time: TimeFormat12 | TimeFormat24) => Promise<string>",
|
|
491
490
|
"parameters": [{
|
|
492
|
-
"
|
|
493
|
-
"
|
|
494
|
-
"docs": ""
|
|
491
|
+
"tags": [],
|
|
492
|
+
"text": ""
|
|
495
493
|
}, {
|
|
496
|
-
"
|
|
497
|
-
"
|
|
498
|
-
"docs": ""
|
|
494
|
+
"tags": [],
|
|
495
|
+
"text": ""
|
|
499
496
|
}],
|
|
500
497
|
"references": {
|
|
501
498
|
"Promise": {
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { Timepicker } from "./wm-timepicker";
|
|
3
|
+
describe("timepicker", () => {
|
|
4
|
+
let page;
|
|
5
|
+
// let timepicker: any;
|
|
6
|
+
beforeEach(async () => {
|
|
7
|
+
page = await newSpecPage({
|
|
8
|
+
components: [Timepicker],
|
|
9
|
+
html: "<wm-timepicker label='timepicker'></wm-timepicker>",
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
it("builds", async () => {
|
|
13
|
+
expect(page.root).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
it("prevents user actions when disabled", async () => {
|
|
16
|
+
await page.setContent(`<wm-timepicker label='timepicker' disabled></wm-timepicker>`);
|
|
17
|
+
const input = await page.root.shadowRoot.querySelector("input");
|
|
18
|
+
const button = await page.root.shadowRoot.querySelector("button");
|
|
19
|
+
expect(input).toHaveAttribute("disabled");
|
|
20
|
+
expect(button).toHaveAttribute("disabled");
|
|
21
|
+
});
|
|
22
|
+
it("validates input", async () => {
|
|
23
|
+
const timepicker = new Timepicker();
|
|
24
|
+
// user passes hour
|
|
25
|
+
expect(await timepicker.isValidTime("0")).toBe(true);
|
|
26
|
+
expect(await timepicker.isValidTime("24")).toBe(true);
|
|
27
|
+
expect(await timepicker.isValidTime("8p")).toBe(true);
|
|
28
|
+
expect(await timepicker.isValidTime("12 a")).toBe(true);
|
|
29
|
+
expect(await timepicker.isValidTime("02am")).toBe(true);
|
|
30
|
+
expect(await timepicker.isValidTime("8:")).toBe(true);
|
|
31
|
+
// user passes hour and minutes
|
|
32
|
+
expect(await timepicker.isValidTime("1223")).toBe(true);
|
|
33
|
+
expect(await timepicker.isValidTime("927a")).toBe(true);
|
|
34
|
+
expect(await timepicker.isValidTime("12:12pm")).toBe(true);
|
|
35
|
+
expect(await timepicker.isValidTime("3:45 am")).toBe(true);
|
|
36
|
+
// rejected
|
|
37
|
+
expect(await timepicker.isValidTime("6f")).toBe(false);
|
|
38
|
+
expect(await timepicker.isValidTime("12m")).toBe(false);
|
|
39
|
+
expect(await timepicker.isValidTime("a")).toBe(false);
|
|
40
|
+
expect(await timepicker.isValidTime("92")).toBe(false);
|
|
41
|
+
expect(await timepicker.isValidTime("88:88")).toBe(false);
|
|
42
|
+
expect(await timepicker.isValidTime("999pm")).toBe(false);
|
|
43
|
+
expect(await timepicker.isValidTime("o1236")).toBe(false);
|
|
44
|
+
expect(await timepicker.isValidTime("12:45fm")).toBe(false);
|
|
45
|
+
expect(await timepicker.isValidTime("12342")).toBe(false);
|
|
46
|
+
expect(await timepicker.isValidTime("123:")).toBe(false);
|
|
47
|
+
expect(await timepicker.isValidTime("3:123")).toBe(false);
|
|
48
|
+
expect(await timepicker.isValidTime("4:60 pm")).toBe(false);
|
|
49
|
+
// weird edge cases
|
|
50
|
+
expect(await timepicker.isValidTime("17am")).toBe(false);
|
|
51
|
+
expect(await timepicker.isValidTime("17pm")).toBe(false);
|
|
52
|
+
// this is not caught by the regex, so we handle it later
|
|
53
|
+
expect(await timepicker.isValidTime("0pm")).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
it("reformats", async () => {
|
|
56
|
+
const timepicker = new Timepicker();
|
|
57
|
+
expect(await timepicker.reformatTime("12", "00:00")).toBe("12:00 AM");
|
|
58
|
+
//@ts-ignore
|
|
59
|
+
expect(await timepicker.reformatTime("12", "12:00am")).toBe("12:00 AM");
|
|
60
|
+
//@ts-ignore
|
|
61
|
+
expect(await timepicker.reformatTime("12", "12:00pm")).toBe("12:00 PM");
|
|
62
|
+
expect(await timepicker.reformatTime("12", "24:00")).toBe("12:00 AM");
|
|
63
|
+
expect(await timepicker.reformatTime("12", "17:00")).toBe("05:00 PM");
|
|
64
|
+
expect(await timepicker.reformatTime("12", "7:00 am")).toBe("07:00 AM");
|
|
65
|
+
expect(await timepicker.reformatTime("12", "7 : 35")).toBe("07:35 AM");
|
|
66
|
+
expect(await timepicker.reformatTime("24", "0:00")).toBe("00:00");
|
|
67
|
+
//@ts-ignore
|
|
68
|
+
expect(await timepicker.reformatTime("24", "12:00am")).toBe("00:00");
|
|
69
|
+
//@ts-ignore
|
|
70
|
+
expect(await timepicker.reformatTime("24", "12:00pm")).toBe("12:00");
|
|
71
|
+
expect(await timepicker.reformatTime("24", "24:00")).toBe("00:00");
|
|
72
|
+
//@ts-ignore
|
|
73
|
+
expect(await timepicker.reformatTime("24", "1700")).toBe("17:00");
|
|
74
|
+
//@ts-ignore
|
|
75
|
+
expect(await timepicker.reformatTime("24", "700a")).toBe("07:00");
|
|
76
|
+
expect(await timepicker.reformatTime("24", "7 :00 pm")).toBe("19:00");
|
|
77
|
+
expect(await timepicker.reformatTime("24", "17: 35")).toBe("17:35");
|
|
78
|
+
});
|
|
79
|
+
it("finds nearest time interval", async () => {
|
|
80
|
+
const timepicker = new Timepicker();
|
|
81
|
+
expect(await timepicker.findNearestTimeInterval("00:07")).toBe("00:00");
|
|
82
|
+
expect(await timepicker.findNearestTimeInterval("01:08")).toBe("01:15");
|
|
83
|
+
expect(await timepicker.findNearestTimeInterval("01:15")).toBe("01:15");
|
|
84
|
+
expect(await timepicker.findNearestTimeInterval("02:22")).toBe("02:15");
|
|
85
|
+
expect(await timepicker.findNearestTimeInterval("03:23")).toBe("03:30");
|
|
86
|
+
expect(await timepicker.findNearestTimeInterval("03:30")).toBe("03:30");
|
|
87
|
+
expect(await timepicker.findNearestTimeInterval("04:37")).toBe("04:30");
|
|
88
|
+
expect(await timepicker.findNearestTimeInterval("15:38")).toBe("15:45");
|
|
89
|
+
expect(await timepicker.findNearestTimeInterval("15:45")).toBe("15:45");
|
|
90
|
+
expect(await timepicker.findNearestTimeInterval("16:52")).toBe("16:45");
|
|
91
|
+
expect(await timepicker.findNearestTimeInterval("17:53")).toBe("18:00");
|
|
92
|
+
expect(await timepicker.findNearestTimeInterval("18:00")).toBe("18:00");
|
|
93
|
+
expect(await timepicker.findNearestTimeInterval("23:59")).toBe("00:00");
|
|
94
|
+
// edge case regarding leading zeroes
|
|
95
|
+
expect(await timepicker.findNearestTimeInterval("09:59")).toBe("10:00");
|
|
96
|
+
});
|
|
97
|
+
it("splits time", () => {
|
|
98
|
+
const timepicker = new Timepicker();
|
|
99
|
+
expect(timepicker.splitTime("5:37")).toStrictEqual([5, "37", undefined]);
|
|
100
|
+
expect(timepicker.splitTime("5:37 am")).toStrictEqual([5, "37", "am"]);
|
|
101
|
+
expect(timepicker.splitTime("09:00")).toStrictEqual([9, "00", undefined]);
|
|
102
|
+
expect(timepicker.splitTime("13:52")).toStrictEqual([13, "52", undefined]);
|
|
103
|
+
// edge case
|
|
104
|
+
//@ts-ignore
|
|
105
|
+
expect(timepicker.splitTime("0pm")).toStrictEqual([0, "00", "AM"]);
|
|
106
|
+
});
|
|
107
|
+
it("generates times", () => {
|
|
108
|
+
const timepicker = new Timepicker();
|
|
109
|
+
//prettier-ignore
|
|
110
|
+
expect(timepicker.generateTimeIntervals()).toStrictEqual([
|
|
111
|
+
"00:00", "00:15", "00:30", "00:45",
|
|
112
|
+
"01:00", "01:15", "01:30", "01:45",
|
|
113
|
+
"02:00", "02:15", "02:30", "02:45",
|
|
114
|
+
"03:00", "03:15", "03:30", "03:45",
|
|
115
|
+
"04:00", "04:15", "04:30", "04:45",
|
|
116
|
+
"05:00", "05:15", "05:30", "05:45",
|
|
117
|
+
"06:00", "06:15", "06:30", "06:45",
|
|
118
|
+
"07:00", "07:15", "07:30", "07:45",
|
|
119
|
+
"08:00", "08:15", "08:30", "08:45",
|
|
120
|
+
"09:00", "09:15", "09:30", "09:45",
|
|
121
|
+
"10:00", "10:15", "10:30", "10:45",
|
|
122
|
+
"11:00", "11:15", "11:30", "11:45",
|
|
123
|
+
"12:00", "12:15", "12:30", "12:45",
|
|
124
|
+
"13:00", "13:15", "13:30", "13:45",
|
|
125
|
+
"14:00", "14:15", "14:30", "14:45",
|
|
126
|
+
"15:00", "15:15", "15:30", "15:45",
|
|
127
|
+
"16:00", "16:15", "16:30", "16:45",
|
|
128
|
+
"17:00", "17:15", "17:30", "17:45",
|
|
129
|
+
"18:00", "18:15", "18:30", "18:45",
|
|
130
|
+
"19:00", "19:15", "19:30", "19:45",
|
|
131
|
+
"20:00", "20:15", "20:30", "20:45",
|
|
132
|
+
"21:00", "21:15", "21:30", "21:45",
|
|
133
|
+
"22:00", "22:15", "22:30", "22:45",
|
|
134
|
+
"23:00", "23:15", "23:30", "23:45",
|
|
135
|
+
]);
|
|
136
|
+
});
|
|
137
|
+
it("renders error", async () => {
|
|
138
|
+
await page.setContent(`<wm-timepicker label='timepicker' error-message="There is an error."></wm-timepicker>`);
|
|
139
|
+
const errorEl = page.root.shadowRoot.querySelector(".error");
|
|
140
|
+
expect(errorEl.textContent).toBe("There is an error.");
|
|
141
|
+
});
|
|
142
|
+
it("sets input to required", async () => {
|
|
143
|
+
await page.setContent(`<wm-timepicker label='timepicker' required-field='true'></wm-timepicker>`);
|
|
144
|
+
const input = await page.root.shadowRoot.querySelector("input");
|
|
145
|
+
expect(input).toEqualAttribute("aria-required", "true");
|
|
146
|
+
});
|
|
147
|
+
});
|
|
@@ -853,7 +853,6 @@
|
|
|
853
853
|
align-items: center;
|
|
854
854
|
position: relative;
|
|
855
855
|
cursor: pointer;
|
|
856
|
-
anchor-name: --button;
|
|
857
856
|
}
|
|
858
857
|
:host .button .svg-info {
|
|
859
858
|
color: var(--wmcolor-toggletip-icon-background);
|
|
@@ -896,25 +895,12 @@
|
|
|
896
895
|
position: absolute;
|
|
897
896
|
max-width: 13.75rem;
|
|
898
897
|
width: max-content;
|
|
899
|
-
overflow: visible;
|
|
900
|
-
inset: auto;
|
|
901
|
-
margin: 0;
|
|
902
898
|
padding: 0.5rem 0.75rem;
|
|
903
|
-
border: none;
|
|
904
899
|
border-radius: 0.1875rem;
|
|
905
900
|
background: var(--wmcolor-toggletip-background);
|
|
906
901
|
color: var(--wmcolor-toggletip-text);
|
|
907
|
-
font-size:
|
|
908
|
-
|
|
909
|
-
}
|
|
910
|
-
:host .toggletip.hidden {
|
|
911
|
-
visibility: hidden;
|
|
912
|
-
}
|
|
913
|
-
:host .toggletip.top {
|
|
914
|
-
position-area: block-start center;
|
|
915
|
-
}
|
|
916
|
-
:host .toggletip.top.small {
|
|
917
|
-
translate: 0 -0.75rem;
|
|
902
|
+
font-size: 14px;
|
|
903
|
+
z-index: 30;
|
|
918
904
|
}
|
|
919
905
|
:host .toggletip.top:before {
|
|
920
906
|
content: "";
|
|
@@ -931,12 +917,6 @@
|
|
|
931
917
|
margin-left: -0.375rem;
|
|
932
918
|
left: 50%;
|
|
933
919
|
}
|
|
934
|
-
:host .toggletip.bottom {
|
|
935
|
-
position-area: block-end center;
|
|
936
|
-
}
|
|
937
|
-
:host .toggletip.bottom.small {
|
|
938
|
-
translate: 0 0.75rem;
|
|
939
|
-
}
|
|
940
920
|
:host .toggletip.bottom:before {
|
|
941
921
|
content: "";
|
|
942
922
|
position: absolute;
|
|
@@ -952,12 +932,6 @@
|
|
|
952
932
|
margin-left: -0.375rem;
|
|
953
933
|
left: 50%;
|
|
954
934
|
}
|
|
955
|
-
:host .toggletip.right {
|
|
956
|
-
position-area: center inline-end;
|
|
957
|
-
}
|
|
958
|
-
:host .toggletip.right.small {
|
|
959
|
-
translate: 0.75rem 0;
|
|
960
|
-
}
|
|
961
935
|
:host .toggletip.right:before {
|
|
962
936
|
content: "";
|
|
963
937
|
position: absolute;
|
|
@@ -974,12 +948,6 @@
|
|
|
974
948
|
top: calc(50% - 6px);
|
|
975
949
|
left: -0.1875rem;
|
|
976
950
|
}
|
|
977
|
-
:host .toggletip.left {
|
|
978
|
-
position-area: center inline-start;
|
|
979
|
-
}
|
|
980
|
-
:host .toggletip.left.small {
|
|
981
|
-
translate: -0.75rem 0;
|
|
982
|
-
}
|
|
983
951
|
:host .toggletip.left:before {
|
|
984
952
|
content: "";
|
|
985
953
|
position: absolute;
|
|
@@ -996,15 +964,6 @@
|
|
|
996
964
|
top: calc(50% - 6px);
|
|
997
965
|
right: -0.1875rem;
|
|
998
966
|
}
|
|
999
|
-
:host .toggletip.bottom-right {
|
|
1000
|
-
position-area: end;
|
|
1001
|
-
}
|
|
1002
|
-
:host .toggletip.bottom-right.small {
|
|
1003
|
-
translate: -1.75rem 0.75rem;
|
|
1004
|
-
}
|
|
1005
|
-
:host .toggletip.bottom-right.large {
|
|
1006
|
-
translate: -2.5rem 0;
|
|
1007
|
-
}
|
|
1008
967
|
:host .toggletip.bottom-right:before {
|
|
1009
968
|
content: "";
|
|
1010
969
|
position: absolute;
|
|
@@ -1022,15 +981,6 @@
|
|
|
1022
981
|
margin-left: unset;
|
|
1023
982
|
left: 0.875rem;
|
|
1024
983
|
}
|
|
1025
|
-
:host .toggletip.bottom-left {
|
|
1026
|
-
position-area: block-end inline-start;
|
|
1027
|
-
}
|
|
1028
|
-
:host .toggletip.bottom-left.small {
|
|
1029
|
-
translate: 1.75rem 0.75rem;
|
|
1030
|
-
}
|
|
1031
|
-
:host .toggletip.bottom-left.large {
|
|
1032
|
-
translate: 2.5rem 0;
|
|
1033
|
-
}
|
|
1034
984
|
:host .toggletip.bottom-left:before {
|
|
1035
985
|
content: "";
|
|
1036
986
|
position: absolute;
|
|
@@ -1049,15 +999,6 @@
|
|
|
1049
999
|
margin-left: unset;
|
|
1050
1000
|
right: 0.875rem;
|
|
1051
1001
|
}
|
|
1052
|
-
:host .toggletip.top-right {
|
|
1053
|
-
position-area: block-start inline-end;
|
|
1054
|
-
}
|
|
1055
|
-
:host .toggletip.top-right.small {
|
|
1056
|
-
translate: -1.75rem -0.75rem;
|
|
1057
|
-
}
|
|
1058
|
-
:host .toggletip.top-right.large {
|
|
1059
|
-
translate: -2.5rem 0;
|
|
1060
|
-
}
|
|
1061
1002
|
:host .toggletip.top-right:before {
|
|
1062
1003
|
content: "";
|
|
1063
1004
|
position: absolute;
|
|
@@ -1075,15 +1016,6 @@
|
|
|
1075
1016
|
margin-left: unset;
|
|
1076
1017
|
left: 0.875rem;
|
|
1077
1018
|
}
|
|
1078
|
-
:host .toggletip.top-left {
|
|
1079
|
-
position-area: start;
|
|
1080
|
-
}
|
|
1081
|
-
:host .toggletip.top-left.small {
|
|
1082
|
-
translate: 1.75rem -0.75rem;
|
|
1083
|
-
}
|
|
1084
|
-
:host .toggletip.top-left.large {
|
|
1085
|
-
translate: 2.5rem 0;
|
|
1086
|
-
}
|
|
1087
1019
|
:host .toggletip.top-left:before {
|
|
1088
1020
|
content: "";
|
|
1089
1021
|
position: absolute;
|
|
@@ -1102,6 +1034,38 @@
|
|
|
1102
1034
|
margin-left: unset;
|
|
1103
1035
|
right: 0.875rem;
|
|
1104
1036
|
}
|
|
1037
|
+
:host .toggletip.hidden {
|
|
1038
|
+
transform: scale(0, 0) !important;
|
|
1039
|
+
visibility: hidden;
|
|
1040
|
+
}
|
|
1041
|
+
:host .toggletip {
|
|
1042
|
+
top: calc(var(--button-size) / 2);
|
|
1043
|
+
left: calc(var(--button-size) / 2);
|
|
1044
|
+
}
|
|
1045
|
+
:host .toggletip.top {
|
|
1046
|
+
transform: translate(-50%, calc(-100% - 18px));
|
|
1047
|
+
}
|
|
1048
|
+
:host .toggletip.bottom {
|
|
1049
|
+
transform: translate(-50%, 18px);
|
|
1050
|
+
}
|
|
1051
|
+
:host .toggletip.right {
|
|
1052
|
+
transform: translate(18px, -50%);
|
|
1053
|
+
}
|
|
1054
|
+
:host .toggletip.left {
|
|
1055
|
+
transform: translate(calc(-100% - 18px), -50%);
|
|
1056
|
+
}
|
|
1057
|
+
:host .toggletip.bottom-right {
|
|
1058
|
+
transform: translate(-20px, 18px);
|
|
1059
|
+
}
|
|
1060
|
+
:host .toggletip.bottom-left {
|
|
1061
|
+
transform: translate(calc(-100% + 20px), 18px);
|
|
1062
|
+
}
|
|
1063
|
+
:host .toggletip.top-right {
|
|
1064
|
+
transform: translate(-20px, calc(-100% - 18px));
|
|
1065
|
+
}
|
|
1066
|
+
:host .toggletip.top-left {
|
|
1067
|
+
transform: translate(calc(-100% + 20px), calc(-100% - 18px));
|
|
1068
|
+
}
|
|
1105
1069
|
:host .sr-only {
|
|
1106
1070
|
position: absolute !important;
|
|
1107
1071
|
width: 1px !important;
|
|
@@ -1113,39 +1077,4 @@
|
|
|
1113
1077
|
clip-path: inset(50%) !important;
|
|
1114
1078
|
white-space: nowrap !important;
|
|
1115
1079
|
margin: -1px !important;
|
|
1116
|
-
}
|
|
1117
|
-
|
|
1118
|
-
@supports not (top: anchor(bottom)) {
|
|
1119
|
-
:host {
|
|
1120
|
-
display: flex;
|
|
1121
|
-
align-items: center;
|
|
1122
|
-
justify-content: center;
|
|
1123
|
-
}
|
|
1124
|
-
:host .toggletip {
|
|
1125
|
-
z-index: 30;
|
|
1126
|
-
}
|
|
1127
|
-
:host .toggletip.top.small, :host .toggletip.top.large {
|
|
1128
|
-
translate: 0 -2.5rem;
|
|
1129
|
-
}
|
|
1130
|
-
:host .toggletip.bottom.small, :host .toggletip.bottom.large {
|
|
1131
|
-
translate: 0 2.5rem;
|
|
1132
|
-
}
|
|
1133
|
-
:host .toggletip.right.small, :host .toggletip.right.large {
|
|
1134
|
-
translate: 3.125rem 0;
|
|
1135
|
-
}
|
|
1136
|
-
:host .toggletip.left.small, :host .toggletip.left.large {
|
|
1137
|
-
translate: -2.75rem 0;
|
|
1138
|
-
}
|
|
1139
|
-
:host .toggletip.bottom-right.small, :host .toggletip.bottom-right.large {
|
|
1140
|
-
translate: calc(50% - 1.25rem) 2.5rem;
|
|
1141
|
-
}
|
|
1142
|
-
:host .toggletip.bottom-left.small, :host .toggletip.bottom-left.large {
|
|
1143
|
-
translate: calc(-50% + 1.25rem) 2.5rem;
|
|
1144
|
-
}
|
|
1145
|
-
:host .toggletip.top-right.small, :host .toggletip.top-right.large {
|
|
1146
|
-
translate: calc(50% - 1.25rem) -2.5rem;
|
|
1147
|
-
}
|
|
1148
|
-
:host .toggletip.top-left.small, :host .toggletip.top-left.large {
|
|
1149
|
-
translate: calc(-50% + 1.25rem) -2.5rem;
|
|
1150
|
-
}
|
|
1151
1080
|
}
|