@watermarkinsights/ripple 5.3.0-1 → 5.3.0-3
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/{esm/global-01680477.js → cjs/app-globals-4191e8d6.js} +10 -1
- package/dist/cjs/{chartFunctions-246529c5.js → chartFunctions-a8999ce1.js} +3 -3
- package/dist/cjs/{functions-be4156cf.js → functions-05e7ad5a.js} +106 -7
- package/dist/cjs/index-788526f5.js +1851 -0
- package/dist/cjs/{intl-a13884e8.js → intl-2b550151.js} +1 -1
- package/dist/cjs/loader.cjs.js +5 -4
- package/dist/cjs/priv-calendar.cjs.entry.js +67 -50
- package/dist/cjs/priv-chart-popover.cjs.entry.js +6 -5
- package/dist/cjs/priv-navigator-button.cjs.entry.js +4 -3
- package/dist/cjs/priv-navigator-item.cjs.entry.js +4 -3
- package/dist/cjs/ripple.cjs.js +13 -12
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +8 -6
- package/dist/cjs/wm-button.cjs.entry.js +5 -4
- package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +7 -6
- package/dist/cjs/wm-date-range.cjs.entry.js +40 -15
- package/dist/cjs/wm-datepicker.cjs.entry.js +18 -14
- package/dist/cjs/wm-file-list.cjs.entry.js +4 -3
- package/dist/cjs/wm-file.cjs.entry.js +5 -4
- package/dist/cjs/wm-input.cjs.entry.js +6 -5
- package/dist/cjs/wm-line-chart.cjs.entry.js +15 -14
- package/dist/cjs/wm-modal-footer.cjs.entry.js +4 -3
- package/dist/cjs/wm-modal-header.cjs.entry.js +6 -5
- package/dist/cjs/wm-modal.cjs.entry.js +7 -6
- package/dist/cjs/wm-navigation_3.cjs.entry.js +13 -10
- package/dist/cjs/wm-navigator.cjs.entry.js +4 -3
- package/dist/cjs/wm-option_2.cjs.entry.js +10 -8
- package/dist/cjs/wm-pagination.cjs.entry.js +5 -4
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +9 -7
- package/dist/cjs/wm-search.cjs.entry.js +7 -6
- package/dist/cjs/wm-snackbar.cjs.entry.js +53 -50
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +11 -8
- package/dist/cjs/wm-tag-input.cjs.entry.js +8 -7
- package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
- package/dist/cjs/wm-textarea.cjs.entry.js +6 -5
- package/dist/cjs/wm-timepicker.cjs.entry.js +6 -5
- package/dist/cjs/wm-toggletip.cjs.entry.js +6 -5
- package/dist/cjs/wm-uploader.cjs.entry.js +7 -6
- 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/priv-chart-popover/priv-chart-popover.js +2 -2
- package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
- 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.js +1 -1
- package/dist/collection/components/datepickers/datepicker.css +47 -5
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +90 -55
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +62 -46
- package/dist/collection/components/datepickers/wm-date-range.js +63 -28
- package/dist/collection/components/datepickers/wm-datepicker.js +30 -18
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
- package/dist/collection/components/wm-button/wm-button.js +1 -1
- package/dist/collection/components/wm-file/wm-file.js +1 -1
- package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
- package/dist/collection/components/wm-input/wm-input.js +1 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal.css +0 -1
- package/dist/collection/components/wm-modal/wm-modal.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.js +2 -2
- 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-option/wm-option.js +1 -1
- package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
- package/dist/collection/components/wm-search/wm-search.js +5 -4
- package/dist/collection/components/wm-select/wm-select.js +2 -2
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +37 -43
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +48 -46
- 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-tag-input/wm-tag-input.js +3 -3
- package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +11 -8
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
- package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
- package/dist/collection/dev/modal.js +15 -45
- package/dist/collection/dev/snackbar.js +10 -9
- package/dist/collection/global/functions.js +1 -1
- package/dist/{cjs/global-b5387be9.js → esm/app-globals-bc617542.js} +7 -2
- package/dist/esm/{chartFunctions-e2554a36.js → chartFunctions-f4bc4821.js} +3 -3
- package/dist/esm/{functions-f65dbb96.js → functions-25781571.js} +105 -8
- package/dist/esm/index-130e07bb.js +1820 -0
- package/dist/esm/{intl-f7f77de7.js → intl-df3d34d1.js} +1 -1
- package/dist/esm/loader.js +6 -5
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/priv-calendar.entry.js +67 -50
- package/dist/esm/priv-chart-popover.entry.js +6 -5
- package/dist/esm/priv-navigator-button.entry.js +4 -3
- package/dist/esm/priv-navigator-item.entry.js +4 -3
- package/dist/esm/ripple.js +14 -13
- package/dist/esm/wm-action-menu_2.entry.js +8 -6
- package/dist/esm/wm-button.entry.js +5 -4
- package/dist/esm/wm-chart-slice.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +7 -6
- package/dist/esm/wm-date-range.entry.js +40 -15
- package/dist/esm/wm-datepicker.entry.js +18 -14
- package/dist/esm/wm-file-list.entry.js +4 -3
- package/dist/esm/wm-file.entry.js +5 -4
- package/dist/esm/wm-input.entry.js +6 -5
- package/dist/esm/wm-line-chart.entry.js +15 -14
- package/dist/esm/wm-modal-footer.entry.js +4 -3
- package/dist/esm/wm-modal-header.entry.js +6 -5
- package/dist/esm/wm-modal.entry.js +7 -6
- package/dist/esm/wm-navigation_3.entry.js +13 -10
- package/dist/esm/wm-navigator.entry.js +4 -3
- package/dist/esm/wm-option_2.entry.js +10 -8
- package/dist/esm/wm-pagination.entry.js +5 -4
- package/dist/esm/wm-progress-indicator_3.entry.js +9 -7
- package/dist/esm/wm-search.entry.js +7 -6
- package/dist/esm/wm-snackbar.entry.js +53 -50
- package/dist/esm/wm-tab-item_3.entry.js +11 -8
- package/dist/esm/wm-tag-input.entry.js +8 -7
- package/dist/esm/wm-tag-option.entry.js +2 -2
- package/dist/esm/wm-textarea.entry.js +6 -5
- package/dist/esm/wm-timepicker.entry.js +6 -5
- package/dist/esm/wm-toggletip.entry.js +6 -5
- package/dist/esm/wm-uploader.entry.js +7 -6
- package/dist/esm/wm-wrapper.entry.js +1 -1
- package/dist/esm-es5/app-globals-bc617542.js +1 -0
- package/dist/esm-es5/{chartFunctions-e2554a36.js → chartFunctions-f4bc4821.js} +1 -1
- package/dist/esm-es5/functions-25781571.js +1 -0
- package/dist/esm-es5/index-130e07bb.js +1 -0
- package/dist/esm-es5/{intl-f7f77de7.js → intl-df3d34d1.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/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-footer.entry.js +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js +1 -1
- package/dist/esm-es5/wm-modal.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-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 +1 -2
- package/dist/loader/index.cjs.js +1 -2
- package/dist/loader/index.d.ts +3 -0
- package/dist/loader/index.es2017.js +1 -2
- package/dist/loader/index.js +1 -2
- package/dist/ripple/{p-4e616347.entry.js → p-041e579b.entry.js} +1 -1
- package/dist/ripple/{p-a99b05de.system.entry.js → p-043901ab.system.entry.js} +1 -1
- package/dist/ripple/p-0abc9300.entry.js +1 -0
- package/dist/ripple/p-0af94825.entry.js +1 -0
- package/dist/ripple/p-0ff41567.system.entry.js +1 -0
- package/dist/ripple/{p-3a070f35.entry.js → p-13b1d775.entry.js} +1 -1
- package/dist/ripple/p-13fc2164.entry.js +1 -0
- package/dist/ripple/p-155224a2.system.entry.js +1 -0
- package/dist/ripple/p-15f8ea28.system.entry.js +1 -0
- package/dist/ripple/p-1c4d2203.system.entry.js +1 -0
- package/dist/ripple/p-1f09134c.entry.js +1 -0
- package/dist/ripple/p-298c2675.entry.js +1 -0
- package/dist/ripple/{p-22e6104e.entry.js → p-2e3728f1.entry.js} +1 -1
- package/dist/ripple/{p-3db9e0d8.system.entry.js → p-2f1d2fe3.system.entry.js} +1 -1
- package/dist/ripple/p-31781d88.system.entry.js +1 -0
- package/dist/ripple/p-31d7ecf9.system.entry.js +1 -0
- package/dist/ripple/p-341ebafa.entry.js +1 -0
- package/dist/ripple/p-35f209d9.system.entry.js +1 -0
- package/dist/ripple/p-376efca9.entry.js +1 -0
- package/dist/ripple/p-3b5f4364.system.entry.js +1 -0
- package/dist/ripple/p-418ed08c.system.entry.js +1 -0
- package/dist/ripple/p-439d0c1f.system.js +1 -0
- package/dist/ripple/p-4670ccb4.system.js +1 -0
- package/dist/ripple/p-488e1690.entry.js +1 -0
- package/dist/ripple/p-4978eebe.entry.js +1 -0
- package/dist/ripple/p-4baaf026.entry.js +1 -0
- package/dist/ripple/p-4c24711f.entry.js +1 -0
- package/dist/ripple/p-56766bb2.entry.js +1 -0
- package/dist/ripple/p-5caaf651.system.entry.js +1 -0
- package/dist/ripple/p-5ece78e5.system.entry.js +1 -0
- package/dist/ripple/{p-8f38dc86.entry.js → p-672ae2cb.entry.js} +1 -1
- package/dist/ripple/{p-98120733.entry.js → p-67a7f0b0.entry.js} +1 -1
- package/dist/ripple/p-6d0e5159.system.entry.js +1 -0
- package/dist/ripple/p-6d56676e.system.entry.js +1 -0
- package/dist/ripple/{p-9d8c2a52.system.entry.js → p-6fe35d1e.system.entry.js} +1 -1
- package/dist/ripple/{p-19dec591.entry.js → p-75a79896.entry.js} +1 -1
- package/dist/ripple/p-799d06ad.system.entry.js +1 -0
- package/dist/ripple/p-7eab6bea.system.entry.js +1 -0
- package/dist/ripple/p-7fb95b89.entry.js +1 -0
- package/dist/ripple/{p-7e56da2e.system.entry.js → p-823d7b4e.system.entry.js} +1 -1
- package/dist/ripple/p-85cbeb7d.system.entry.js +1 -0
- package/dist/ripple/p-88cfd58d.js +1 -0
- package/dist/ripple/p-8d075bcf.system.entry.js +1 -0
- package/dist/ripple/{p-79af9baf.entry.js → p-8e72de50.entry.js} +1 -1
- package/dist/ripple/p-90c76565.entry.js +1 -0
- package/dist/ripple/{p-780d4673.system.entry.js → p-9176672f.system.entry.js} +1 -1
- package/dist/ripple/{p-5bbf7fdc.system.js → p-96bd1868.system.js} +1 -1
- package/dist/ripple/p-a62e7532.entry.js +1 -0
- package/dist/ripple/p-a78001e2.system.js +1 -0
- package/dist/ripple/p-a8661c35.system.entry.js +1 -0
- package/dist/ripple/{p-ae32eb8d.system.js → p-a9d89ac8.system.js} +1 -1
- package/dist/ripple/{p-8081f931.system.entry.js → p-aab56a37.system.entry.js} +1 -1
- package/dist/ripple/{p-7a9ffbcb.system.entry.js → p-ac40417b.system.entry.js} +1 -1
- package/dist/ripple/{p-bd27ded2.system.entry.js → p-b0c566b5.system.entry.js} +1 -1
- package/dist/ripple/p-b7307be6.system.entry.js +1 -0
- package/dist/ripple/{p-0b77b2a1.entry.js → p-bee8ab6e.entry.js} +1 -1
- package/dist/ripple/p-c2181de0.entry.js +1 -0
- package/dist/ripple/{p-25446670.entry.js → p-cd0cc88d.entry.js} +1 -1
- package/dist/ripple/p-cef8a45b.system.js +2 -0
- package/dist/ripple/p-d5ba9de1.system.entry.js +1 -0
- package/dist/ripple/{p-48a6acfa.system.entry.js → p-d93c51dd.system.entry.js} +1 -1
- package/dist/ripple/p-d9da0502.js +2 -0
- package/dist/ripple/p-db10990a.entry.js +1 -0
- package/dist/ripple/p-e2fe86a7.system.entry.js +1 -0
- package/dist/ripple/p-e4d8a800.entry.js +1 -0
- package/dist/ripple/p-e85b1f40.entry.js +1 -0
- package/dist/ripple/p-ea0dfadf.system.entry.js +1 -0
- package/dist/ripple/p-eb14b354.entry.js +1 -0
- package/dist/ripple/p-f17fd62b.entry.js +1 -0
- package/dist/ripple/{p-5b2c1bd1.js → p-f54e9ed0.js} +1 -1
- package/dist/ripple/p-f741e7c4.entry.js +1 -0
- package/dist/ripple/p-f8250ca9.js +1 -0
- package/dist/ripple/p-f8613ec2.js +1 -0
- package/dist/ripple/p-fabe4ca4.entry.js +1 -0
- package/dist/ripple/p-fbaae34d.system.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +77 -0
- package/dist/types/components/datepickers/wm-date-range.d.ts +73 -0
- package/dist/types/components/datepickers/wm-datepicker.d.ts +2 -2
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +5 -4
- package/dist/types/components.d.ts +4 -4
- package/dist/types/global/functions.d.ts +6 -0
- package/dist/types/stencil-public-runtime.d.ts +3 -10
- package/package.json +1 -1
- package/dist/cjs/index-f8ef86de.js +0 -2582
- package/dist/collection/components/charts/chartFunctions.spec.js +0 -16
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +0 -81
- package/dist/collection/components/charts/screenshots.e2e.js +0 -96
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +0 -213
- package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +0 -37
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +0 -176
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +0 -163
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +0 -69
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +0 -79
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +0 -89
- package/dist/collection/components/datepickers/wm-date-range.e2e.js +0 -443
- package/dist/collection/components/datepickers/wm-date-range.spec.js +0 -22
- package/dist/collection/components/datepickers/wm-datepicker.e2e.js +0 -382
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +0 -21
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +0 -200
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +0 -48
- package/dist/collection/components/wm-button/wm-button.e2e.js +0 -55
- package/dist/collection/components/wm-button/wm-button.spec.js +0 -74
- package/dist/collection/components/wm-file/wm-file.spec.js +0 -194
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +0 -69
- package/dist/collection/components/wm-input/wm-input.e2e.js +0 -32
- package/dist/collection/components/wm-input/wm-input.spec.js +0 -173
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +0 -23
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +0 -54
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +0 -11
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +0 -8
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +0 -104
- package/dist/collection/components/wm-modal/wm-modal.spec.js +0 -30
- package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +0 -102
- package/dist/collection/components/wm-navigation/wm-navigation.spec.js +0 -91
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +0 -50
- package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +0 -209
- package/dist/collection/components/wm-navigator/wm-navigator.spec.js +0 -177
- package/dist/collection/components/wm-option/wm-option.e2e.js +0 -22
- package/dist/collection/components/wm-option/wm-option.spec.js +0 -63
- package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +0 -312
- package/dist/collection/components/wm-search/wm-search.e2e.js +0 -76
- package/dist/collection/components/wm-search/wm-search.spec.js +0 -71
- package/dist/collection/components/wm-select/wm-select.e2e.js +0 -521
- package/dist/collection/components/wm-select/wm-select.spec.js +0 -271
- package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +0 -112
- package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +0 -9
- package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +0 -91
- package/dist/collection/components/wm-tabs/wm-tabs.spec.js +0 -12
- package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +0 -204
- package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +0 -195
- package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +0 -41
- package/dist/collection/components/wm-textarea/wm-textarea.spec.js +0 -79
- package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +0 -163
- package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +0 -147
- package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +0 -69
- package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +0 -21
- package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +0 -70
- package/dist/collection/components/wm-uploader/wm-uploader.spec.js +0 -234
- package/dist/collection/global/functions.spec.js +0 -126
- package/dist/collection/lang/lang.spec.js +0 -20
- package/dist/esm/index-f164fbca.js +0 -2552
- package/dist/esm-es5/functions-f65dbb96.js +0 -1
- package/dist/esm-es5/global-01680477.js +0 -1
- package/dist/esm-es5/index-f164fbca.js +0 -1
- package/dist/ripple/p-04bf6c89.entry.js +0 -1
- package/dist/ripple/p-0fe97e85.system.js +0 -2
- package/dist/ripple/p-109684b1.entry.js +0 -1
- package/dist/ripple/p-11383396.system.entry.js +0 -1
- package/dist/ripple/p-1cb6b37e.entry.js +0 -1
- package/dist/ripple/p-1cb98f64.entry.js +0 -1
- package/dist/ripple/p-2197287c.entry.js +0 -1
- package/dist/ripple/p-24d88d8d.system.entry.js +0 -1
- package/dist/ripple/p-2bac4b4e.system.entry.js +0 -1
- package/dist/ripple/p-30a9ba6e.entry.js +0 -1
- package/dist/ripple/p-32cf6907.system.entry.js +0 -1
- package/dist/ripple/p-379fe53e.entry.js +0 -1
- package/dist/ripple/p-41e8a079.entry.js +0 -1
- package/dist/ripple/p-4272aa37.system.js +0 -1
- package/dist/ripple/p-45126063.system.entry.js +0 -1
- package/dist/ripple/p-4de51706.js +0 -2
- package/dist/ripple/p-4ed2e910.system.entry.js +0 -1
- package/dist/ripple/p-577ea283.system.entry.js +0 -1
- package/dist/ripple/p-5a04c222.entry.js +0 -1
- package/dist/ripple/p-5dbad2ff.entry.js +0 -1
- package/dist/ripple/p-625aeeec.system.entry.js +0 -1
- package/dist/ripple/p-635f40b1.entry.js +0 -1
- package/dist/ripple/p-63fabfed.entry.js +0 -1
- package/dist/ripple/p-7144d185.system.entry.js +0 -1
- package/dist/ripple/p-720b6ab0.entry.js +0 -1
- package/dist/ripple/p-7573a2fa.entry.js +0 -1
- package/dist/ripple/p-76d2dada.entry.js +0 -1
- package/dist/ripple/p-7f4b4071.system.entry.js +0 -1
- package/dist/ripple/p-84926b89.system.entry.js +0 -1
- package/dist/ripple/p-88406560.system.entry.js +0 -1
- package/dist/ripple/p-8fafbba1.js +0 -1
- package/dist/ripple/p-92c1ff36.system.entry.js +0 -1
- package/dist/ripple/p-9c6d6b26.system.entry.js +0 -1
- package/dist/ripple/p-ae8ad491.entry.js +0 -1
- package/dist/ripple/p-b0579a2a.system.entry.js +0 -1
- package/dist/ripple/p-b0f14557.system.entry.js +0 -1
- package/dist/ripple/p-b9ba6546.system.js +0 -1
- package/dist/ripple/p-ba751ca4.js +0 -1
- package/dist/ripple/p-bbdfb1ec.system.js +0 -1
- package/dist/ripple/p-c38f2a00.system.entry.js +0 -1
- package/dist/ripple/p-c51293e2.entry.js +0 -1
- package/dist/ripple/p-c717d895.entry.js +0 -1
- package/dist/ripple/p-c8873e0c.system.entry.js +0 -1
- package/dist/ripple/p-ca9d9447.system.entry.js +0 -1
- package/dist/ripple/p-cda6c77e.entry.js +0 -1
- package/dist/ripple/p-ce5455a3.system.entry.js +0 -1
- package/dist/ripple/p-d265a41e.entry.js +0 -1
- package/dist/ripple/p-dcfdbd30.entry.js +0 -1
- package/dist/ripple/p-ef3fe609.system.entry.js +0 -1
- package/dist/ripple/p-f6f29a56.entry.js +0 -1
- package/dist/ripple/p-f79a6e32.js +0 -1
- package/dist/ripple/p-f93858ad.system.entry.js +0 -1
- package/dist/ripple/p-fc7e5296.entry.js +0 -1
- package/dist/ripple/p-ff80aadd.system.entry.js +0 -1
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
-
import { AxePuppeteer } from "@axe-core/puppeteer";
|
|
3
|
-
describe("wm-button", () => {
|
|
4
|
-
let page;
|
|
5
|
-
beforeEach(async () => {
|
|
6
|
-
page = await newE2EPage();
|
|
7
|
-
});
|
|
8
|
-
it("passes Axe checks", async () => {
|
|
9
|
-
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
10
|
-
<wm-button>Click me</wm-button>
|
|
11
|
-
</main></body></html>`);
|
|
12
|
-
const results = await new AxePuppeteer(page).analyze();
|
|
13
|
-
expect(results.violations.length).toBe(0);
|
|
14
|
-
});
|
|
15
|
-
it("renders a button", async () => {
|
|
16
|
-
await page.setContent("<wm-button></wm-button>");
|
|
17
|
-
const element = await page.find("wm-button >>> button");
|
|
18
|
-
expect(element).not.toBeNull();
|
|
19
|
-
});
|
|
20
|
-
it("delegates focus", async () => {
|
|
21
|
-
await page.setContent("<wm-button>click here</wm-button>");
|
|
22
|
-
const wmButton = await page.find("wm-button");
|
|
23
|
-
wmButton.focus();
|
|
24
|
-
let activeEl = await page.evaluate(async () => {
|
|
25
|
-
let el = await document.activeElement.shadowRoot.activeElement;
|
|
26
|
-
return el.nodeName;
|
|
27
|
-
});
|
|
28
|
-
expect(activeEl).toBe("BUTTON");
|
|
29
|
-
});
|
|
30
|
-
it("renders a tooltip for text-only buttons if text is truncated", async () => {
|
|
31
|
-
await page.setContent("<wm-button text-wrap='false' style='width: 100px' button-type='textonly'>Text-only button with a very long text and text-wrap set to false</wm-button>");
|
|
32
|
-
await page.waitForChanges();
|
|
33
|
-
await page.keyboard.press("Tab");
|
|
34
|
-
await page.waitForChanges();
|
|
35
|
-
const tooltip = await page.find("#wm-tooltip");
|
|
36
|
-
expect(tooltip.textContent).toEqual("Text-only button with a very long text and text-wrap set to false");
|
|
37
|
-
});
|
|
38
|
-
it("uses the label instead of tooltip text", async () => {
|
|
39
|
-
// use case: when the tooltip is something like "edit" and there are several buttons on a page, the aria label should be more specific than the tooltip
|
|
40
|
-
await page.setContent("<wm-button button-type='icononly' icon='f1c0' tooltip='delete' label-for-identical-buttons='Delete item 37' ></wm-button>");
|
|
41
|
-
await page.waitForChanges();
|
|
42
|
-
const btn = await page.find("wm-button >>> button");
|
|
43
|
-
expect(btn.getAttribute("aria-label")).toBe("Delete item 37");
|
|
44
|
-
});
|
|
45
|
-
it("renders the passed-in property button type property as a class", async () => {
|
|
46
|
-
await page.setContent("<wm-button></wm-button>");
|
|
47
|
-
const component = await page.find("wm-button");
|
|
48
|
-
const defaultButton = await page.find("wm-button >>> button");
|
|
49
|
-
expect(defaultButton).toHaveClass("-secondary");
|
|
50
|
-
component.setProperty("buttonType", "primary");
|
|
51
|
-
const primaryButton = await page.find("wm-button >>> button");
|
|
52
|
-
await page.waitForChanges();
|
|
53
|
-
expect(primaryButton).toHaveClass("-primary");
|
|
54
|
-
});
|
|
55
|
-
});
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import * as globalFunctions from "../../global/functions";
|
|
3
|
-
jest.spyOn(globalFunctions, "generateId").mockReturnValue("random-id");
|
|
4
|
-
import { Button } from "./wm-button";
|
|
5
|
-
describe("button", () => {
|
|
6
|
-
it("builds", async () => {
|
|
7
|
-
const page = await newSpecPage({
|
|
8
|
-
components: [Button],
|
|
9
|
-
html: "<wm-button></wm-button>",
|
|
10
|
-
});
|
|
11
|
-
expect(page.root).toMatchSnapshot();
|
|
12
|
-
});
|
|
13
|
-
it("has style and an icon type props with default values", async () => {
|
|
14
|
-
const page = await newSpecPage({
|
|
15
|
-
components: [Button],
|
|
16
|
-
html: "<wm-button></wm-button>",
|
|
17
|
-
});
|
|
18
|
-
const button = page.root;
|
|
19
|
-
const buttonEl = page.root.shadowRoot.querySelector("button");
|
|
20
|
-
expect(button).toHaveProperty("buttonType");
|
|
21
|
-
expect(button.buttonType).toEqual("secondary");
|
|
22
|
-
expect(buttonEl).toHaveClass("-secondary");
|
|
23
|
-
expect(button).toHaveProperty("icon");
|
|
24
|
-
expect(button.icon).toEqual(undefined);
|
|
25
|
-
expect(button).toHaveProperty("iconSize");
|
|
26
|
-
expect(button.iconSize).toBeUndefined;
|
|
27
|
-
});
|
|
28
|
-
it("has a method that validates the style property and resets an invalid property to a button type of secondary", async () => {
|
|
29
|
-
const page = await newSpecPage({
|
|
30
|
-
components: [Button],
|
|
31
|
-
html: "<wm-button></wm-button>",
|
|
32
|
-
});
|
|
33
|
-
const button = page.root;
|
|
34
|
-
expect(button).toHaveProperty("buttonType");
|
|
35
|
-
button.setAttribute("button-type", "foobar");
|
|
36
|
-
expect(button.buttonType).toEqual("secondary");
|
|
37
|
-
});
|
|
38
|
-
it("sets the aria label if the property labelForIdenticalButtons is passed", async () => {
|
|
39
|
-
const page = await newSpecPage({
|
|
40
|
-
components: [Button],
|
|
41
|
-
html: "<wm-button label-for-identical-buttons='read this instead of the text'>Button</wm-button>",
|
|
42
|
-
});
|
|
43
|
-
const button = page.root.shadowRoot.querySelector("button");
|
|
44
|
-
expect(button).toEqualAttribute("aria-label", "read this instead of the text");
|
|
45
|
-
});
|
|
46
|
-
// TOOLTIP
|
|
47
|
-
describe("error throwing", () => {
|
|
48
|
-
it("throws error when icononly or navigational button used without tooltip", async () => {
|
|
49
|
-
const mockFunc = jest.fn();
|
|
50
|
-
console.error = mockFunc;
|
|
51
|
-
await newSpecPage({
|
|
52
|
-
components: [Button],
|
|
53
|
-
html: "<wm-button icon='f1c0' button-type='icononly'></wm-button>",
|
|
54
|
-
});
|
|
55
|
-
expect(mockFunc).toHaveBeenCalledWith("wm-button should have a valid 'tooltip' property when button-type is set to 'icononly' or 'navigational'.");
|
|
56
|
-
const mockFunc2 = jest.fn();
|
|
57
|
-
console.error = mockFunc2;
|
|
58
|
-
await newSpecPage({
|
|
59
|
-
components: [Button],
|
|
60
|
-
html: "<wm-button icon='f1c0' button-type='navigational'></wm-button>",
|
|
61
|
-
});
|
|
62
|
-
expect(mockFunc2).toHaveBeenCalledWith("wm-button should have a valid 'tooltip' property when button-type is set to 'icononly' or 'navigational'.");
|
|
63
|
-
});
|
|
64
|
-
it("throws error when icononly button used without icon", async () => {
|
|
65
|
-
const mockFunc = jest.fn();
|
|
66
|
-
console.error = mockFunc;
|
|
67
|
-
await newSpecPage({
|
|
68
|
-
components: [Button],
|
|
69
|
-
html: "<wm-button button-type='icononly' tooltip='edit'></wm-button>",
|
|
70
|
-
});
|
|
71
|
-
expect(mockFunc).toHaveBeenCalledWith("wm-button should have a valid 'icon' property when button-type is set to 'icononly' or 'navigational'.");
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { File } from "./wm-file";
|
|
3
|
-
// mock ResizeObserver
|
|
4
|
-
global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
5
|
-
observe: jest.fn(),
|
|
6
|
-
unobserve: jest.fn(),
|
|
7
|
-
disconnect: jest.fn(),
|
|
8
|
-
}));
|
|
9
|
-
describe("wm-file", () => {
|
|
10
|
-
let html, page;
|
|
11
|
-
async function createPageHelper() {
|
|
12
|
-
return await newSpecPage({
|
|
13
|
-
components: [File],
|
|
14
|
-
html: `<wm-file
|
|
15
|
-
id="file1"
|
|
16
|
-
name="File retrieved from server"
|
|
17
|
-
type="pdf"
|
|
18
|
-
last-updated="10/30/97 3:46 PM"
|
|
19
|
-
size="22 KB"
|
|
20
|
-
file-actions="download preview delete"
|
|
21
|
-
>
|
|
22
|
-
</wm-file>`,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
it("renders green check alongside recently uploaded files", async () => {
|
|
26
|
-
html = `<wm-file
|
|
27
|
-
id="file1"
|
|
28
|
-
name="File retrieved from server"
|
|
29
|
-
type="pdf"
|
|
30
|
-
last-updated="10/30/97 3:46 PM"
|
|
31
|
-
size="22 KB"
|
|
32
|
-
file-actions="download preview delete"
|
|
33
|
-
progress="100"
|
|
34
|
-
>
|
|
35
|
-
</wm-file>`;
|
|
36
|
-
page = await newSpecPage({ components: [File], html });
|
|
37
|
-
await page.waitForChanges();
|
|
38
|
-
const fileWrapperEl = page.root.shadowRoot.querySelector(".file-wrapper");
|
|
39
|
-
expect(fileWrapperEl).toHaveClass("checked");
|
|
40
|
-
});
|
|
41
|
-
it("renders file actions in the proper order", async () => {
|
|
42
|
-
html = `<wm-file
|
|
43
|
-
id="file1"
|
|
44
|
-
name="File retrieved from server"
|
|
45
|
-
type="pdf"
|
|
46
|
-
last-updated="10/30/97 3:46 PM"
|
|
47
|
-
size="22 KB"
|
|
48
|
-
file-actions="download delete preview"
|
|
49
|
-
>
|
|
50
|
-
</wm-file>`;
|
|
51
|
-
page = await newSpecPage({ components: [File], html });
|
|
52
|
-
await page.waitForChanges();
|
|
53
|
-
const fileActionEls = page.root.shadowRoot.querySelectorAll("wm-button");
|
|
54
|
-
expect(fileActionEls[0]).toEqualAttribute("tooltip", "Preview");
|
|
55
|
-
expect(fileActionEls[1]).toEqualAttribute("tooltip", "Download");
|
|
56
|
-
expect(fileActionEls[2]).toEqualAttribute("tooltip", "Delete");
|
|
57
|
-
});
|
|
58
|
-
it("defaults available actions to download and delete", async () => {
|
|
59
|
-
html = `<wm-file
|
|
60
|
-
id="file1"
|
|
61
|
-
name="File retrieved from server"
|
|
62
|
-
type="pdf"
|
|
63
|
-
last-updated="10/30/97 3:46 PM"
|
|
64
|
-
size="22 KB"
|
|
65
|
-
>
|
|
66
|
-
</wm-file>`;
|
|
67
|
-
page = await newSpecPage({ components: [File], html });
|
|
68
|
-
await page.waitForChanges();
|
|
69
|
-
const deleteButton = page.root.shadowRoot.querySelector(".delete-button");
|
|
70
|
-
const downloadButton = page.root.shadowRoot.querySelector(".download-button");
|
|
71
|
-
const previewButton = page.root.shadowRoot.querySelector(".preview-button");
|
|
72
|
-
expect(deleteButton).toBeTruthy();
|
|
73
|
-
expect(downloadButton).toBeTruthy();
|
|
74
|
-
expect(previewButton).toBeFalsy();
|
|
75
|
-
});
|
|
76
|
-
it("displays no file actions when an empty string is passed", async () => {
|
|
77
|
-
html = `<wm-file
|
|
78
|
-
id="file1"
|
|
79
|
-
name="File retrieved from server"
|
|
80
|
-
type="pdf"
|
|
81
|
-
last-updated="10/30/97 3:46 PM"
|
|
82
|
-
size="22 KB"
|
|
83
|
-
file-actions=""
|
|
84
|
-
>
|
|
85
|
-
</wm-file>`;
|
|
86
|
-
page = await newSpecPage({ components: [File], html });
|
|
87
|
-
await page.waitForChanges();
|
|
88
|
-
const deleteButton = page.root.shadowRoot.querySelector(".delete-button");
|
|
89
|
-
const downloadButton = page.root.shadowRoot.querySelector(".download-button");
|
|
90
|
-
const previewButton = page.root.shadowRoot.querySelector(".preview-button");
|
|
91
|
-
expect(deleteButton).toBeFalsy();
|
|
92
|
-
expect(downloadButton).toBeFalsy();
|
|
93
|
-
expect(previewButton).toBeFalsy();
|
|
94
|
-
});
|
|
95
|
-
it("renders timestamp by default, size if specified, or none based on show-info prop", async () => {
|
|
96
|
-
page = await createPageHelper();
|
|
97
|
-
await page.waitForChanges();
|
|
98
|
-
let fileInfoEl = page.root.shadowRoot.querySelector(".file-info");
|
|
99
|
-
expect(fileInfoEl.textContent).toBe("10/30/97 3:46 PM");
|
|
100
|
-
page = await newSpecPage({
|
|
101
|
-
components: [File],
|
|
102
|
-
html: `<wm-file
|
|
103
|
-
id="file1"
|
|
104
|
-
name="File retrieved from server"
|
|
105
|
-
type="pdf"
|
|
106
|
-
last-updated="10/30/97 3:46 PM"
|
|
107
|
-
size="22 KB"
|
|
108
|
-
file-actions="download preview delete"
|
|
109
|
-
show-info="size"
|
|
110
|
-
>
|
|
111
|
-
</wm-file>`,
|
|
112
|
-
});
|
|
113
|
-
await page.waitForChanges();
|
|
114
|
-
fileInfoEl = page.root.shadowRoot.querySelector(".file-info");
|
|
115
|
-
expect(fileInfoEl.textContent).toBe("22 KB");
|
|
116
|
-
page = await newSpecPage({
|
|
117
|
-
components: [File],
|
|
118
|
-
html: `<wm-file
|
|
119
|
-
id="file1"
|
|
120
|
-
name="File retrieved from server"
|
|
121
|
-
type="pdf"
|
|
122
|
-
last-updated="10/30/97 3:46 PM"
|
|
123
|
-
size="22 KB"
|
|
124
|
-
file-actions="download preview delete"
|
|
125
|
-
show-info="time"
|
|
126
|
-
>
|
|
127
|
-
</wm-file>`,
|
|
128
|
-
});
|
|
129
|
-
await page.waitForChanges();
|
|
130
|
-
fileInfoEl = page.root.shadowRoot.querySelector(".file-info");
|
|
131
|
-
expect(fileInfoEl.textContent).toBe("10/30/97 3:46 PM");
|
|
132
|
-
page = await newSpecPage({
|
|
133
|
-
components: [File],
|
|
134
|
-
html: `<wm-file
|
|
135
|
-
id="file1"
|
|
136
|
-
name="File retrieved from server"
|
|
137
|
-
type="pdf"
|
|
138
|
-
last-updated="10/30/97 3:46 PM"
|
|
139
|
-
size="22 KB"
|
|
140
|
-
file-actions="download preview delete"
|
|
141
|
-
show-info="none"
|
|
142
|
-
>
|
|
143
|
-
</wm-file>`,
|
|
144
|
-
});
|
|
145
|
-
await page.waitForChanges();
|
|
146
|
-
fileInfoEl = page.root.shadowRoot.querySelector(".file-info");
|
|
147
|
-
expect(fileInfoEl).toBeFalsy();
|
|
148
|
-
});
|
|
149
|
-
it("emits the appropriate events when user clicks the buttons", async () => {
|
|
150
|
-
const filePreviewedSpy = jest.fn();
|
|
151
|
-
const fileDownloadedSpy = jest.fn();
|
|
152
|
-
const fileDeletedSpy = jest.fn();
|
|
153
|
-
html = `<wm-file
|
|
154
|
-
id="file1"
|
|
155
|
-
name="File retrieved from server"
|
|
156
|
-
type="pdf"
|
|
157
|
-
last-updated="10/30/97 3:46 PM"
|
|
158
|
-
size="22 KB"
|
|
159
|
-
file-actions="download preview delete"
|
|
160
|
-
>
|
|
161
|
-
</wm-file>`;
|
|
162
|
-
page = await newSpecPage({ components: [File], html });
|
|
163
|
-
await page.waitForChanges();
|
|
164
|
-
page.root.addEventListener("wmFilePreview", filePreviewedSpy);
|
|
165
|
-
page.root.addEventListener("wmFileDownload", fileDownloadedSpy);
|
|
166
|
-
page.root.addEventListener("wmFileDelete", fileDeletedSpy);
|
|
167
|
-
// wmFilePreview
|
|
168
|
-
page.root.shadowRoot.querySelector(".preview-button").click();
|
|
169
|
-
await page.waitForChanges();
|
|
170
|
-
expect(filePreviewedSpy.mock.calls[0][0].target.id).toBe("file1");
|
|
171
|
-
// wmFileDownload
|
|
172
|
-
page.root.shadowRoot.querySelector(".download-button").click();
|
|
173
|
-
await page.waitForChanges();
|
|
174
|
-
expect(fileDownloadedSpy.mock.calls[0][0].target.id).toBe("file1");
|
|
175
|
-
// wmFileDelete
|
|
176
|
-
page.root.shadowRoot.querySelector(".delete-button").click();
|
|
177
|
-
await page.waitForChanges();
|
|
178
|
-
expect(fileDeletedSpy.mock.calls[0][0].target.id).toBe("file1");
|
|
179
|
-
jest.restoreAllMocks();
|
|
180
|
-
});
|
|
181
|
-
it("renders with an error if one is passed", async () => {
|
|
182
|
-
html = `<wm-file
|
|
183
|
-
id="file1"
|
|
184
|
-
error-message="Example error message"
|
|
185
|
-
file='{"id": "file1", "name": "File retrieved from server.pdf", "lastUpdated": "10/30/97 3:46 PM", "size": "22 KB", "fileActions": "download preview delete"}'
|
|
186
|
-
></wm-file>`;
|
|
187
|
-
page = await newSpecPage({ components: [File], html });
|
|
188
|
-
await page.waitForChanges();
|
|
189
|
-
const fileDiv = page.root.shadowRoot.querySelector(".file");
|
|
190
|
-
expect(fileDiv).toHaveClass("--error");
|
|
191
|
-
const errorText = page.root.shadowRoot.querySelector(".error-message");
|
|
192
|
-
expect(errorText.textContent).toBe("Example error message");
|
|
193
|
-
});
|
|
194
|
-
});
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { FileList } from "./wm-file-list";
|
|
3
|
-
import { File } from "../wm-file/wm-file";
|
|
4
|
-
// mock ResizeObserver
|
|
5
|
-
global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
6
|
-
observe: jest.fn(),
|
|
7
|
-
unobserve: jest.fn(),
|
|
8
|
-
disconnect: jest.fn(),
|
|
9
|
-
}));
|
|
10
|
-
describe("wm-file-list", () => {
|
|
11
|
-
let page;
|
|
12
|
-
async function createPageHelper() {
|
|
13
|
-
return await newSpecPage({
|
|
14
|
-
components: [FileList, File],
|
|
15
|
-
html: `<wm-file-list id="filelist1">
|
|
16
|
-
<wm-file id="file1" name="File retrieved from server" type="pdf" last-updated="1/28/2020 5:29 PM" file-actions="preview download"></wm-file>
|
|
17
|
-
<wm-file id="file2" name="Second file" type="jpeg" last-updated="2/14/2019 7:21 AM" file-actions="preview download"></wm-file>
|
|
18
|
-
</wm-file-list>`,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
it("renders all files", async () => {
|
|
22
|
-
page = await createPageHelper();
|
|
23
|
-
await page.waitForChanges();
|
|
24
|
-
let fileEls = page.root.querySelectorAll("wm-file");
|
|
25
|
-
expect(fileEls.length).toBe(2);
|
|
26
|
-
expect(fileEls[0]).toEqualAttribute("id", "file1");
|
|
27
|
-
expect(fileEls[1]).toEqualAttribute("id", "file2");
|
|
28
|
-
});
|
|
29
|
-
it("passes on show-info to it's children wm-files", async () => {
|
|
30
|
-
page = await createPageHelper();
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
// default (last-updated)
|
|
33
|
-
let fileEl = page.root.querySelector("wm-file");
|
|
34
|
-
expect(fileEl.showInfo).toBe("last-updated");
|
|
35
|
-
// size
|
|
36
|
-
page = await newSpecPage({
|
|
37
|
-
components: [FileList, File],
|
|
38
|
-
html: `<wm-file-list id="filelist1" show-info="size">
|
|
39
|
-
<wm-file id="file1" name="File retrieved from server" type="pdf" last-updated="1/28/2020 5:29 PM" file-actions="preview download"></wm-file>
|
|
40
|
-
<wm-file id="file2" name="Second file" type="jpeg" last-updated="2/14/2019 7:21 AM" file-actions="preview download"></wm-file>
|
|
41
|
-
</wm-file-list>`,
|
|
42
|
-
});
|
|
43
|
-
await page.waitForChanges();
|
|
44
|
-
fileEl = page.root.querySelector("wm-file");
|
|
45
|
-
expect(fileEl.showInfo).toBe("size");
|
|
46
|
-
// last-updated (specified)
|
|
47
|
-
page = await newSpecPage({
|
|
48
|
-
components: [FileList, File],
|
|
49
|
-
html: `<wm-file-list id="filelist1" show-info="last-updated">
|
|
50
|
-
<wm-file id="file1" name="File retrieved from server" type="pdf" last-updated="1/28/2020 5:29 PM" file-actions="preview download"></wm-file>
|
|
51
|
-
<wm-file id="file2" name="Second file" type="jpeg" last-updated="2/14/2019 7:21 AM" file-actions="preview download"></wm-file>
|
|
52
|
-
</wm-file-list>`,
|
|
53
|
-
});
|
|
54
|
-
await page.waitForChanges();
|
|
55
|
-
fileEl = page.root.querySelector("wm-file");
|
|
56
|
-
expect(fileEl.showInfo).toBe("last-updated");
|
|
57
|
-
// none
|
|
58
|
-
page = await newSpecPage({
|
|
59
|
-
components: [FileList, File],
|
|
60
|
-
html: `<wm-file-list id="filelist1" show-info="none">
|
|
61
|
-
<wm-file id="file1" name="File retrieved from server" type="pdf" last-updated="1/28/2020 5:29 PM" file-actions="preview download"></wm-file>
|
|
62
|
-
<wm-file id="file2" name="Second file" type="jpeg" last-updated="2/14/2019 7:21 AM" file-actions="preview download"></wm-file>
|
|
63
|
-
</wm-file-list>`,
|
|
64
|
-
});
|
|
65
|
-
await page.waitForChanges();
|
|
66
|
-
fileEl = page.root.querySelector("wm-file");
|
|
67
|
-
expect(fileEl.showInfo).toBe("none");
|
|
68
|
-
});
|
|
69
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import AxePuppeteer from "@axe-core/puppeteer";
|
|
2
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
3
|
-
describe("wm-input", () => {
|
|
4
|
-
// ts throws erroneous warning about vars being unused...
|
|
5
|
-
// @ts-ignore
|
|
6
|
-
let page, el, inputField;
|
|
7
|
-
beforeEach(async () => {
|
|
8
|
-
page = await newE2EPage();
|
|
9
|
-
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
10
|
-
<wm-input label="input"></wm-input>
|
|
11
|
-
</main></body></html>`);
|
|
12
|
-
el = await page.find("wm-input");
|
|
13
|
-
inputField = await page.find("wm-input >>> input");
|
|
14
|
-
await page.waitForChanges();
|
|
15
|
-
});
|
|
16
|
-
it("passes Axe checks", async () => {
|
|
17
|
-
const results = await new AxePuppeteer(page).analyze();
|
|
18
|
-
expect(results.violations.length).toBe(0);
|
|
19
|
-
});
|
|
20
|
-
it("updates input value when changed programatically", async () => {
|
|
21
|
-
el.setProperty("value", "33245");
|
|
22
|
-
await page.waitForChanges();
|
|
23
|
-
const value = await el.getProperty("value");
|
|
24
|
-
expect(value).toBe("33245");
|
|
25
|
-
});
|
|
26
|
-
it("updates value prop when user types", async () => {
|
|
27
|
-
await inputField.type("example");
|
|
28
|
-
await page.waitForChanges();
|
|
29
|
-
const value = await el.getProperty("value");
|
|
30
|
-
expect(value).toBe("example");
|
|
31
|
-
});
|
|
32
|
-
});
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { Input } from "./wm-input";
|
|
3
|
-
describe("input", () => {
|
|
4
|
-
let page;
|
|
5
|
-
beforeEach(async () => {
|
|
6
|
-
page = await newSpecPage({
|
|
7
|
-
components: [Input],
|
|
8
|
-
html: "<wm-input label='input'></wm-input>",
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
it("has the right aria attributes", async () => {
|
|
12
|
-
let inputField = await page.root.shadowRoot.querySelector("input");
|
|
13
|
-
// input field is described by help text
|
|
14
|
-
expect(inputField).toEqualAttribute("aria-describedby", "info error");
|
|
15
|
-
});
|
|
16
|
-
it("inputfield is disabled when the prop is passed", async () => {
|
|
17
|
-
await page.setContent(`<wm-input label="input" disabled></wm-input>`);
|
|
18
|
-
let inputField = await page.root.shadowRoot.querySelector("input");
|
|
19
|
-
expect(inputField).toHaveAttribute("disabled");
|
|
20
|
-
});
|
|
21
|
-
it("handles keydown", () => {
|
|
22
|
-
// handleKeyDown
|
|
23
|
-
const component = new Input();
|
|
24
|
-
component.characterLimit = 10;
|
|
25
|
-
let event = { key: "", ctrlKey: false, metaKey: false, altKey: false };
|
|
26
|
-
let inputEl = document.createElement("input");
|
|
27
|
-
// @ts-ignore
|
|
28
|
-
component.inputEl = inputEl;
|
|
29
|
-
const mockAnnounce = (component.announce = jest.fn());
|
|
30
|
-
const mockGenerateCharacterLimiWarning = (component.generateCharacterLimitWarning = jest.fn());
|
|
31
|
-
function resetKeys() {
|
|
32
|
-
event.key = "";
|
|
33
|
-
event.ctrlKey = false;
|
|
34
|
-
event.metaKey = false;
|
|
35
|
-
event.altKey = false;
|
|
36
|
-
//@ts-ignore
|
|
37
|
-
component.inputEl.value = "";
|
|
38
|
-
}
|
|
39
|
-
// no modifiers, empty key
|
|
40
|
-
resetKeys();
|
|
41
|
-
component.handleKeyDown(event);
|
|
42
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
43
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
44
|
-
jest.clearAllMocks();
|
|
45
|
-
// no modifiers, wrong key
|
|
46
|
-
resetKeys();
|
|
47
|
-
event.key = "ArrowDown";
|
|
48
|
-
component.handleKeyDown(event);
|
|
49
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
50
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
51
|
-
jest.clearAllMocks();
|
|
52
|
-
// no modifiers, right key, not at limit
|
|
53
|
-
resetKeys();
|
|
54
|
-
event.key = "a";
|
|
55
|
-
component.handleKeyDown(event);
|
|
56
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
57
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
58
|
-
jest.clearAllMocks();
|
|
59
|
-
// no modifiers, right key, at limit
|
|
60
|
-
resetKeys();
|
|
61
|
-
//@ts-ignore
|
|
62
|
-
component.inputEl.value = "1234567890";
|
|
63
|
-
event.key = "a";
|
|
64
|
-
component.handleKeyDown(event);
|
|
65
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(1);
|
|
66
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(1);
|
|
67
|
-
jest.clearAllMocks();
|
|
68
|
-
// no modifiers, right key, above limit
|
|
69
|
-
resetKeys();
|
|
70
|
-
//@ts-ignore
|
|
71
|
-
component.inputEl.value = "12345678901234567890";
|
|
72
|
-
event.key = "a";
|
|
73
|
-
component.handleKeyDown(event);
|
|
74
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(1);
|
|
75
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(1);
|
|
76
|
-
jest.clearAllMocks();
|
|
77
|
-
// ctrl modifier, right key, above limit
|
|
78
|
-
resetKeys();
|
|
79
|
-
//@ts-ignore
|
|
80
|
-
component.inputEl.value = "12345678901234567890";
|
|
81
|
-
event.key = "a";
|
|
82
|
-
event.ctrlKey = true;
|
|
83
|
-
component.handleKeyDown(event);
|
|
84
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
85
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
86
|
-
jest.clearAllMocks();
|
|
87
|
-
// meta modifier, right key, above limit
|
|
88
|
-
resetKeys();
|
|
89
|
-
//@ts-ignore
|
|
90
|
-
component.inputEl.value = "12345678901234567890";
|
|
91
|
-
event.key = "a";
|
|
92
|
-
event.metaKey = true;
|
|
93
|
-
component.handleKeyDown(event);
|
|
94
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
95
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
96
|
-
jest.clearAllMocks();
|
|
97
|
-
// alt modifier, right key, above limit
|
|
98
|
-
resetKeys();
|
|
99
|
-
//@ts-ignore
|
|
100
|
-
component.inputEl.value = "12345678901234567890";
|
|
101
|
-
event.key = "a";
|
|
102
|
-
event.altKey = true;
|
|
103
|
-
component.handleKeyDown(event);
|
|
104
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
105
|
-
expect(mockGenerateCharacterLimiWarning).toHaveBeenCalledTimes(0);
|
|
106
|
-
jest.clearAllMocks();
|
|
107
|
-
jest.restoreAllMocks();
|
|
108
|
-
});
|
|
109
|
-
it("handles input", () => {
|
|
110
|
-
// handleInput
|
|
111
|
-
const component = new Input();
|
|
112
|
-
let inputEl = {};
|
|
113
|
-
let event = { target: inputEl };
|
|
114
|
-
const mockAnnounce = (component.announce = jest.fn());
|
|
115
|
-
const mockGenerateCharacterLimitWarning = (component.generateCharacterLimitWarning = jest.fn(() => "announcement"));
|
|
116
|
-
inputEl.value = "fish";
|
|
117
|
-
event.target = inputEl;
|
|
118
|
-
//@ts-ignore
|
|
119
|
-
component.handleInput(event);
|
|
120
|
-
expect(component.value).toBe("fish");
|
|
121
|
-
expect(component.charCount).toBe(4);
|
|
122
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(0);
|
|
123
|
-
expect(mockGenerateCharacterLimitWarning).toHaveBeenCalledTimes(0);
|
|
124
|
-
component.characterLimit = 10;
|
|
125
|
-
inputEl.value = "two fish";
|
|
126
|
-
event.target = inputEl;
|
|
127
|
-
//@ts-ignore
|
|
128
|
-
component.handleInput(event);
|
|
129
|
-
expect(component.value).toBe("two fish");
|
|
130
|
-
expect(component.charCount).toBe(8);
|
|
131
|
-
expect(mockAnnounce).toHaveBeenCalledTimes(1);
|
|
132
|
-
expect(mockAnnounce).toHaveBeenCalledWith("announcement");
|
|
133
|
-
expect(mockGenerateCharacterLimitWarning).toHaveBeenCalledTimes(1);
|
|
134
|
-
expect(mockGenerateCharacterLimitWarning).toHaveBeenCalledWith(8, 10);
|
|
135
|
-
jest.resetAllMocks();
|
|
136
|
-
});
|
|
137
|
-
it("updates classes on focus", () => {
|
|
138
|
-
const component = new Input();
|
|
139
|
-
const divEl = document.createElement("div");
|
|
140
|
-
//@ts-ignore
|
|
141
|
-
component.inputWrapperEl = divEl;
|
|
142
|
-
//@ts-ignore
|
|
143
|
-
expect(component.inputWrapperEl).not.toHaveClass("focus");
|
|
144
|
-
component.handleFocus();
|
|
145
|
-
//@ts-ignore
|
|
146
|
-
expect(component.inputWrapperEl).toHaveClass("focus");
|
|
147
|
-
});
|
|
148
|
-
it("updates the live region announcement", () => {
|
|
149
|
-
// announce
|
|
150
|
-
const component = new Input();
|
|
151
|
-
let divEl = document.createElement("div");
|
|
152
|
-
//@ts-ignore
|
|
153
|
-
component.liveRegionEl = divEl;
|
|
154
|
-
component.announce("Message");
|
|
155
|
-
expect(component.announcement).toBe("Message");
|
|
156
|
-
//@ts-ignore
|
|
157
|
-
component.liveRegionEl.textContent = "Message";
|
|
158
|
-
component.announce("Message");
|
|
159
|
-
expect(component.announcement).toBe("Message" + "\u00A0");
|
|
160
|
-
});
|
|
161
|
-
it("generates the appropriate character limit warning", () => {
|
|
162
|
-
// generateCharacterLimitWarning
|
|
163
|
-
const component = new Input();
|
|
164
|
-
expect(component.generateCharacterLimitWarning(0, 10)).toBe("0 of 10 characters entered.");
|
|
165
|
-
expect(component.generateCharacterLimitWarning(5, 8)).toBe("5 of 8 characters entered.");
|
|
166
|
-
expect(component.generateCharacterLimitWarning(8, 8)).toBe("8 of 8 characters entered. No additional characters will be entered.");
|
|
167
|
-
});
|
|
168
|
-
it("sets input to required", async () => {
|
|
169
|
-
await page.setContent(`<wm-input label='input' required-field='true'></wm-input>`);
|
|
170
|
-
const input = await page.root.shadowRoot.querySelector("input");
|
|
171
|
-
expect(input).toEqualAttribute("aria-required", "true");
|
|
172
|
-
});
|
|
173
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
-
describe("wm-menuitem", () => {
|
|
3
|
-
let page;
|
|
4
|
-
beforeEach(async () => {
|
|
5
|
-
page = await newE2EPage();
|
|
6
|
-
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
7
|
-
<wm-action-menu id='menu' tooltip="menu name"><wm-menuitem id='first' disabled onClick='action()'>First action</wm-menuitem><wm-menuitem id='second'>Second action</wm-menuitem><wm-menuitem id='third'>Third action</wm-menuitem></wm-action-menu>
|
|
8
|
-
<script>function action() {document.getElementById('second').innerHTML = 'Changed text'}</script></main></body></html>`);
|
|
9
|
-
});
|
|
10
|
-
it("renders", async () => {
|
|
11
|
-
const element = await page.find("wm-menuitem");
|
|
12
|
-
expect(element).not.toBeNull();
|
|
13
|
-
});
|
|
14
|
-
it("prevents action on disabled item", async () => {
|
|
15
|
-
await page.keyboard.press("Tab");
|
|
16
|
-
await page.keyboard.press("Enter"); // open popup
|
|
17
|
-
await page.waitForChanges();
|
|
18
|
-
await page.keyboard.press("Enter");
|
|
19
|
-
await page.waitForChanges();
|
|
20
|
-
let changedMenuitem = await page.find("wm-menuitem#second");
|
|
21
|
-
expect(changedMenuitem.innerHTML).toEqual("Second action");
|
|
22
|
-
});
|
|
23
|
-
});
|