@watermarkinsights/ripple 5.3.0-0 → 5.3.0-2
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-9075d687.js → chartFunctions-246529c5.js} +3 -3
- package/dist/cjs/{functions-b73604c3.js → functions-be4156cf.js} +7 -104
- package/dist/{esm/app-globals-0c592c57.js → cjs/global-6b1a23e9.js} +2 -7
- package/dist/cjs/index-f8ef86de.js +2582 -0
- package/dist/cjs/{intl-b20d5420.js → intl-a13884e8.js} +1 -1
- package/dist/cjs/loader.cjs.js +3 -4
- 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/ripple.cjs.js +11 -12
- 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 +7 -8
- package/dist/cjs/wm-datepicker.cjs.entry.js +7 -8
- 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-footer.cjs.entry.js +3 -4
- package/dist/cjs/wm-modal-header.cjs.entry.js +5 -6
- package/dist/cjs/wm-modal.cjs.entry.js +5 -6
- 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-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 +69 -35
- 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 +5 -6
- 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 +12 -16
- 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 +12 -16
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -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-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-option/wm-option.e2e.js +22 -0
- package/dist/collection/components/wm-option/wm-option.js +1 -1
- package/dist/collection/components/wm-option/wm-option.spec.js +63 -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-select/wm-select.e2e.js +521 -0
- package/dist/collection/components/wm-select/wm-select.js +2 -2
- package/dist/collection/components/wm-select/wm-select.spec.js +271 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +69 -46
- package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +66 -31
- 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.e2e.js +69 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
- 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/dev/snackbar.js +48 -32
- package/dist/collection/global/functions.spec.js +126 -0
- package/dist/collection/lang/lang.spec.js +20 -0
- package/dist/esm/{chartFunctions-730742b7.js → chartFunctions-e2554a36.js} +3 -3
- package/dist/esm/{functions-eda88c5f.js → functions-f65dbb96.js} +8 -105
- package/dist/{cjs/app-globals-7025eb63.js → esm/global-b3bbb95e.js} +1 -10
- package/dist/esm/index-f164fbca.js +2552 -0
- package/dist/esm/{intl-de8432e2.js → intl-f7f77de7.js} +1 -1
- package/dist/esm/loader.js +4 -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 +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/ripple.js +12 -13
- 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 +7 -8
- package/dist/esm/wm-datepicker.entry.js +7 -8
- 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-footer.entry.js +3 -4
- package/dist/esm/wm-modal-header.entry.js +5 -6
- package/dist/esm/wm-modal.entry.js +5 -6
- package/dist/esm/wm-navigation_3.entry.js +10 -13
- package/dist/esm/wm-navigator.entry.js +3 -4
- 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 +69 -35
- 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 +5 -6
- package/dist/esm/wm-uploader.entry.js +6 -7
- package/dist/esm/wm-wrapper.entry.js +1 -1
- package/dist/esm-es5/{chartFunctions-730742b7.js → chartFunctions-e2554a36.js} +1 -1
- package/dist/esm-es5/functions-f65dbb96.js +1 -0
- package/dist/esm-es5/global-b3bbb95e.js +1 -0
- package/dist/esm-es5/index-f164fbca.js +1 -0
- package/dist/esm-es5/{intl-de8432e2.js → intl-f7f77de7.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 +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-04bf6c89.entry.js +1 -0
- package/dist/ripple/{p-98e77431.entry.js → p-0b77b2a1.entry.js} +1 -1
- package/dist/ripple/p-0fe97e85.system.js +2 -0
- package/dist/ripple/p-109684b1.entry.js +1 -0
- package/dist/ripple/p-11383396.system.entry.js +1 -0
- package/dist/ripple/{p-7b5ac088.entry.js → p-19dec591.entry.js} +1 -1
- package/dist/ripple/p-1cb6b37e.entry.js +1 -0
- package/dist/ripple/p-2197287c.entry.js +1 -0
- package/dist/ripple/{p-5ab8174c.entry.js → p-22e6104e.entry.js} +1 -1
- package/dist/ripple/p-24d88d8d.system.entry.js +1 -0
- package/dist/ripple/{p-ff095cec.entry.js → p-25446670.entry.js} +1 -1
- package/dist/ripple/p-2bac4b4e.system.entry.js +1 -0
- package/dist/ripple/p-30a9ba6e.entry.js +1 -0
- package/dist/ripple/p-32cf6907.system.entry.js +1 -0
- package/dist/ripple/p-379fe53e.entry.js +1 -0
- package/dist/ripple/{p-4aae5688.entry.js → p-3a070f35.entry.js} +1 -1
- package/dist/ripple/{p-181068af.system.entry.js → p-3db9e0d8.system.entry.js} +1 -1
- package/dist/ripple/p-41e8a079.entry.js +1 -0
- package/dist/ripple/p-4272aa37.system.js +1 -0
- package/dist/ripple/p-45126063.system.entry.js +1 -0
- package/dist/ripple/{p-fd34619f.system.entry.js → p-48a6acfa.system.entry.js} +1 -1
- package/dist/ripple/p-4de51706.js +2 -0
- package/dist/ripple/{p-245f0080.entry.js → p-4e616347.entry.js} +1 -1
- package/dist/ripple/p-577ea283.system.entry.js +1 -0
- package/dist/ripple/p-5a04c222.entry.js +1 -0
- package/dist/ripple/{p-3036a712.js → p-5b2c1bd1.js} +1 -1
- package/dist/ripple/{p-e0929c38.system.js → p-5bbf7fdc.system.js} +1 -1
- package/dist/ripple/p-5dbad2ff.entry.js +1 -0
- package/dist/ripple/p-625aeeec.system.entry.js +1 -0
- package/dist/ripple/p-635f40b1.entry.js +1 -0
- package/dist/ripple/p-63fabfed.entry.js +1 -0
- package/dist/ripple/p-6dc3ee86.system.js +1 -0
- package/dist/ripple/p-7144d185.system.entry.js +1 -0
- package/dist/ripple/p-720b6ab0.entry.js +1 -0
- package/dist/ripple/p-7573a2fa.entry.js +1 -0
- package/dist/ripple/p-76d2dada.entry.js +1 -0
- package/dist/ripple/{p-0f117524.system.entry.js → p-780d4673.system.entry.js} +1 -1
- package/dist/ripple/p-79af9baf.entry.js +1 -0
- package/dist/ripple/{p-b6dcc6d8.system.entry.js → p-7a9ffbcb.system.entry.js} +1 -1
- package/dist/ripple/{p-f170963b.system.entry.js → p-7e56da2e.system.entry.js} +1 -1
- package/dist/ripple/p-7f4b4071.system.entry.js +1 -0
- package/dist/ripple/{p-a36f5e7d.system.entry.js → p-8081f931.system.entry.js} +1 -1
- package/dist/ripple/p-84926b89.system.entry.js +1 -0
- package/dist/ripple/p-88406560.system.entry.js +1 -0
- package/dist/ripple/{p-f95bc54b.entry.js → p-8f38dc86.entry.js} +1 -1
- package/dist/ripple/p-92c1ff36.system.entry.js +1 -0
- package/dist/ripple/{p-0e1523db.entry.js → p-98120733.entry.js} +1 -1
- package/dist/ripple/p-9c6d6b26.system.entry.js +1 -0
- package/dist/ripple/{p-e3a15de3.system.entry.js → p-9d8c2a52.system.entry.js} +1 -1
- package/dist/ripple/{p-47d993b9.system.entry.js → p-a99b05de.system.entry.js} +1 -1
- package/dist/ripple/{p-ce028b38.system.js → p-ae32eb8d.system.js} +1 -1
- package/dist/ripple/p-ae8ad491.entry.js +1 -0
- package/dist/ripple/p-b0579a2a.system.entry.js +1 -0
- package/dist/ripple/p-b0f14557.system.entry.js +1 -0
- package/dist/ripple/p-ba751ca4.js +1 -0
- package/dist/ripple/{p-39f4fca0.system.entry.js → p-bd27ded2.system.entry.js} +1 -1
- package/dist/ripple/p-c38f2a00.system.entry.js +1 -0
- package/dist/ripple/p-c51293e2.entry.js +1 -0
- package/dist/ripple/p-c717d895.entry.js +1 -0
- package/dist/ripple/p-c8873e0c.system.entry.js +1 -0
- package/dist/ripple/p-ca9d9447.system.entry.js +1 -0
- package/dist/ripple/p-cda6c77e.entry.js +1 -0
- package/dist/ripple/{p-ecd26b33.system.entry.js → p-ce5455a3.system.entry.js} +1 -1
- package/dist/ripple/p-d265a41e.entry.js +1 -0
- package/dist/ripple/p-d325a37b.entry.js +1 -0
- package/dist/ripple/p-d7c47dc0.system.entry.js +1 -0
- package/dist/ripple/p-d88d806e.js +1 -0
- package/dist/ripple/p-dcfdbd30.entry.js +1 -0
- package/dist/ripple/p-eb649319.system.js +1 -0
- package/dist/ripple/p-ef3fe609.system.entry.js +1 -0
- package/dist/ripple/p-f6f29a56.entry.js +1 -0
- package/dist/ripple/{p-96cc3c63.js → p-f79a6e32.js} +1 -1
- package/dist/ripple/p-f93858ad.system.entry.js +1 -0
- package/dist/ripple/p-fc7e5296.entry.js +1 -0
- package/dist/ripple/p-ff80aadd.system.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +6 -3
- package/dist/types/global/interfaces.d.ts +3 -0
- package/dist/types/stencil-public-runtime.d.ts +10 -3
- package/package.json +1 -1
- package/dist/cjs/index-3c3d6c9f.js +0 -1810
- package/dist/esm/index-0ed3ed7d.js +0 -1780
- package/dist/esm-es5/app-globals-0c592c57.js +0 -1
- package/dist/esm-es5/functions-eda88c5f.js +0 -1
- package/dist/esm-es5/index-0ed3ed7d.js +0 -1
- package/dist/ripple/p-0096e233.system.entry.js +0 -1
- package/dist/ripple/p-0ad27de3.system.entry.js +0 -1
- package/dist/ripple/p-0ccf9f96.entry.js +0 -1
- package/dist/ripple/p-0f7a85f4.entry.js +0 -1
- package/dist/ripple/p-13760c2c.entry.js +0 -1
- package/dist/ripple/p-14bab3fa.system.entry.js +0 -1
- package/dist/ripple/p-1e536698.js +0 -1
- package/dist/ripple/p-2c18b6d1.system.entry.js +0 -1
- package/dist/ripple/p-340b18ea.entry.js +0 -1
- package/dist/ripple/p-37c39a40.system.entry.js +0 -1
- package/dist/ripple/p-3f5e94e3.system.js +0 -1
- package/dist/ripple/p-48beea19.system.js +0 -1
- package/dist/ripple/p-4ea963f3.system.entry.js +0 -1
- package/dist/ripple/p-501d3115.entry.js +0 -1
- package/dist/ripple/p-527581c5.entry.js +0 -1
- package/dist/ripple/p-563b5820.entry.js +0 -1
- package/dist/ripple/p-57695dba.js +0 -2
- package/dist/ripple/p-5c6c325e.system.entry.js +0 -1
- package/dist/ripple/p-5f4c8d63.system.entry.js +0 -1
- package/dist/ripple/p-68e3e7c0.entry.js +0 -1
- package/dist/ripple/p-68fec757.system.entry.js +0 -1
- package/dist/ripple/p-6982bc34.entry.js +0 -1
- package/dist/ripple/p-6a793c40.system.entry.js +0 -1
- package/dist/ripple/p-6c31f0ad.system.entry.js +0 -1
- package/dist/ripple/p-6daf1bd3.system.entry.js +0 -1
- package/dist/ripple/p-6e406e8b.entry.js +0 -1
- package/dist/ripple/p-77210f26.entry.js +0 -1
- package/dist/ripple/p-7a844f5d.system.js +0 -2
- package/dist/ripple/p-7d5aaa73.system.entry.js +0 -1
- package/dist/ripple/p-80c92919.system.entry.js +0 -1
- package/dist/ripple/p-81fd2ed5.system.entry.js +0 -1
- package/dist/ripple/p-84d294d1.system.js +0 -1
- package/dist/ripple/p-85178a0d.entry.js +0 -1
- package/dist/ripple/p-8768ba4d.system.entry.js +0 -1
- package/dist/ripple/p-8af21b69.entry.js +0 -1
- package/dist/ripple/p-a30eef53.entry.js +0 -1
- package/dist/ripple/p-ad6c979f.entry.js +0 -1
- package/dist/ripple/p-af8c1cfa.entry.js +0 -1
- package/dist/ripple/p-b19be746.entry.js +0 -1
- package/dist/ripple/p-b483ec14.entry.js +0 -1
- package/dist/ripple/p-b4a34241.entry.js +0 -1
- package/dist/ripple/p-be28a95e.system.entry.js +0 -1
- package/dist/ripple/p-c6d970a4.entry.js +0 -1
- package/dist/ripple/p-dba63006.system.entry.js +0 -1
- package/dist/ripple/p-dbb37269.system.entry.js +0 -1
- package/dist/ripple/p-e19f8c43.js +0 -1
- package/dist/ripple/p-e3d66797.entry.js +0 -1
- package/dist/ripple/p-e64276f2.entry.js +0 -1
- package/dist/ripple/p-e9978b2f.entry.js +0 -1
- package/dist/ripple/p-ecbd3ea9.system.entry.js +0 -1
- package/dist/ripple/p-ee49cb03.entry.js +0 -1
- package/dist/ripple/p-f0fbb86b.system.entry.js +0 -1
- package/dist/ripple/p-f4f3bf9f.system.entry.js +0 -1
- package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +0 -72
- package/dist/types/components/datepickers/wm-date-range.d.ts +0 -68
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
jest.mock("../../global/services/http-service");
|
|
2
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
3
|
+
//import { PrivNavigatorItem } from "./priv-navigator-item/priv-navigator-item";
|
|
4
|
+
import { Navigator } from "./wm-navigator";
|
|
5
|
+
describe("wm-navigator", () => {
|
|
6
|
+
it("builds (with props)", async () => {
|
|
7
|
+
const comp = await newSpecPage({
|
|
8
|
+
components: [Navigator],
|
|
9
|
+
html: `<wm-navigator
|
|
10
|
+
email="anna@user.com"
|
|
11
|
+
user-name="Anna User"
|
|
12
|
+
auth-type="3"
|
|
13
|
+
products='[{"samlLinkUrl":"https://aqua.taskstream.com/sso/samlLogin","linkUrl":"https://aqua.taskstream.com/sso/login","id":"aqua","iconUrl":"https://cdn.watermarkinsights.com/images/login/aqua.svg","name":"Aqua"},{"samlLinkUrl":"https://www.vialivetext.com/wm_sso/saml_login","linkUrl":"https://www.vialivetext.com/wm_sso/login","id":"via","iconUrl":"https://cdn.watermarkinsights.com/images/login/via.svg","name":"Via"},{"samlLinkUrl":"https://watermark.evaluationkit.com/Login/SAML","linkUrl":"https://watermark.evaluationkit.com/Login","id":"ek","iconUrl":"https://cdn.watermarkinsights.com/images/login/evaluationkit.svg","name":"Evaluation Kit"},{"samlLinkUrl":null,"linkUrl":"https://w.taskstream.com/WatermarkSSO/Authenticate/lat","id":"lat","iconUrl":"https://cdn.watermarkinsights.com/images/login/tslat.svg","name":"Taskstream LAT"},{"samlLinkUrl":null,"linkUrl":"https://w.taskstream.com/WatermarkSSO/Authenticate/ams","id":"ams","iconUrl":"https://cdn.watermarkinsights.com/images/login/tsams.svg","name":"Taskstream AMS"},{"samlLinkUrl":"https://www.digitalmeasures.com/login/sso/authenticate/saml","linkUrl":"https://www.digitalmeasures.com/login/sso/authenticate","id":"dm","iconUrl":"https://cdn.watermarkinsights.com/images/login/digitalmeasures.svg","name":"Digital Measures"},{"samlLinkUrl":"https://planning.watermarkinsights.com/login/sso/saml_login","linkUrl":"https://planning.watermarkinsights.com/login/sso","id":"planning","iconUrl":"https://cdn.watermarkinsights.com/images/login/planningselfstudy.svg","name":"Planning & Self-Study"}]'
|
|
14
|
+
></wm-navigator>`,
|
|
15
|
+
});
|
|
16
|
+
expect(comp.root).toMatchSnapshot();
|
|
17
|
+
});
|
|
18
|
+
it("builds (endpoint)", async () => {
|
|
19
|
+
const comp = await newSpecPage({
|
|
20
|
+
components: [Navigator],
|
|
21
|
+
html: `<wm-navigator
|
|
22
|
+
user-name="Bettie User"
|
|
23
|
+
load-from-userinfo="true"
|
|
24
|
+
></wm-navigator>`,
|
|
25
|
+
});
|
|
26
|
+
expect(comp.root).toMatchSnapshot();
|
|
27
|
+
});
|
|
28
|
+
it("returns the proper link", () => {
|
|
29
|
+
const nav = new Navigator();
|
|
30
|
+
nav.email = "a_user@company.com";
|
|
31
|
+
nav.userName = "Anna User";
|
|
32
|
+
nav.parsedProducts = [
|
|
33
|
+
{
|
|
34
|
+
name: "Aqua",
|
|
35
|
+
iconUrl: "aqua icon",
|
|
36
|
+
linkUrl: "aqua sso",
|
|
37
|
+
samlLinkUrl: "aqua saml",
|
|
38
|
+
id: "aqua",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "via",
|
|
42
|
+
iconUrl: "via icon",
|
|
43
|
+
linkUrl: "via sso",
|
|
44
|
+
samlLinkUrl: "via saml",
|
|
45
|
+
id: "via",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "ek",
|
|
49
|
+
iconUrl: "ek icon",
|
|
50
|
+
linkUrl: "ek sso",
|
|
51
|
+
samlLinkUrl: "ek saml",
|
|
52
|
+
id: "ek",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "lat",
|
|
56
|
+
iconUrl: "lat icon",
|
|
57
|
+
linkUrl: "lat sso",
|
|
58
|
+
samlLinkUrl: "lat saml",
|
|
59
|
+
id: "lat",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "ams",
|
|
63
|
+
iconUrl: "ams icon",
|
|
64
|
+
linkUrl: "ams sso",
|
|
65
|
+
samlLinkUrl: "ams saml",
|
|
66
|
+
id: "ams",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "dm",
|
|
70
|
+
iconUrl: "dm icon",
|
|
71
|
+
linkUrl: "dm sso",
|
|
72
|
+
samlLinkUrl: "dm saml",
|
|
73
|
+
id: "dm",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "planning",
|
|
77
|
+
iconUrl: "planning icon",
|
|
78
|
+
linkUrl: "planning sso",
|
|
79
|
+
samlLinkUrl: "planning saml",
|
|
80
|
+
id: "planning",
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
nav.connectionName = "xoxo"; // connection name only appended for saml
|
|
84
|
+
nav.authType = 2; // = sso
|
|
85
|
+
// setProductOnClick returns the onClick function
|
|
86
|
+
// we invoke it to test the string
|
|
87
|
+
expect(nav.setProductOnClick("aqua")()).toBe("aqua sso");
|
|
88
|
+
expect(nav.setProductOnClick("via")()).toBe("via sso");
|
|
89
|
+
expect(nav.setProductOnClick("ek")()).toBe("ek sso");
|
|
90
|
+
expect(nav.setProductOnClick("lat")()).toBe("lat sso");
|
|
91
|
+
expect(nav.setProductOnClick("ams")()).toBe("ams sso");
|
|
92
|
+
expect(nav.setProductOnClick("dm")()).toBe("dm sso");
|
|
93
|
+
expect(nav.setProductOnClick("planning")()).toBe("planning sso");
|
|
94
|
+
nav.authType = 3; // = saml
|
|
95
|
+
expect(nav.setProductOnClick("aqua")()).toBe("aqua saml/?connection_name=xoxo");
|
|
96
|
+
// if connection_name is not set, nothing is appended
|
|
97
|
+
nav.connectionName = "";
|
|
98
|
+
expect(nav.setProductOnClick("aqua")()).toBe("aqua saml");
|
|
99
|
+
});
|
|
100
|
+
it("handles unknown products (props mode)", async () => {
|
|
101
|
+
// in props mode the component checks a hard-coded list of products
|
|
102
|
+
// if the product is not in the list, it ignores it altogether
|
|
103
|
+
// 2 exceptions: "c1" is converted to "livetext", and anything with the name "admin" (e.g. "system_admin_sit", "platform_admin") is converted to "platform_admin"
|
|
104
|
+
const comp = await newSpecPage({
|
|
105
|
+
components: [Navigator],
|
|
106
|
+
html: `<wm-navigator
|
|
107
|
+
email="anna@user.com"
|
|
108
|
+
user-name="Anna User"
|
|
109
|
+
auth-type="3"
|
|
110
|
+
products='[{"samlLinkUrl":"something_weird.fakeurl","linkUrl":"something_weird.fakeurl","id":"something_weird"},{"samlLinkUrl":"livetext.fakeurl","linkUrl":"livetext.fakeurl","id":"c1"},{"samlLinkUrl":"platform.fakeurl","linkUrl":"platform.fakeurl","id":"something_with_admin_in_it"}]'
|
|
111
|
+
></wm-navigator>`,
|
|
112
|
+
});
|
|
113
|
+
expect(comp.root).toMatchSnapshot();
|
|
114
|
+
});
|
|
115
|
+
it("loads (userinfo mode)", async () => {
|
|
116
|
+
const page = await newSpecPage({
|
|
117
|
+
components: [Navigator],
|
|
118
|
+
html: `<wm-navigator user-name="User Name" load-from-userinfo="true"></wm-navigator>`,
|
|
119
|
+
});
|
|
120
|
+
expect(page.root).toMatchSnapshot();
|
|
121
|
+
const nav = page.body.querySelector("wm-navigator");
|
|
122
|
+
const items = nav.shadowRoot.querySelectorAll("priv-navigator-item");
|
|
123
|
+
expect(items.length).toBe(7);
|
|
124
|
+
items.forEach((i) => {
|
|
125
|
+
expect(i.id).not.toBeNull();
|
|
126
|
+
expect(i.onClick).not.toBeNull();
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
it("camel cases product keys", async () => {
|
|
130
|
+
const nav = new Navigator();
|
|
131
|
+
expect(nav.productKeysToCamelCase([
|
|
132
|
+
{
|
|
133
|
+
description: "desc1",
|
|
134
|
+
icon_url: "url1",
|
|
135
|
+
id: "id1",
|
|
136
|
+
link_url: "url1",
|
|
137
|
+
name: "name1",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
description: "desc2",
|
|
141
|
+
icon_url: "url2",
|
|
142
|
+
id: "id2",
|
|
143
|
+
link_url: "url2",
|
|
144
|
+
name: "name2",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
description: "desc3",
|
|
148
|
+
icon_url: "url3",
|
|
149
|
+
id: "id3",
|
|
150
|
+
link_url: "url3",
|
|
151
|
+
name: "name3",
|
|
152
|
+
},
|
|
153
|
+
])).toStrictEqual([
|
|
154
|
+
{
|
|
155
|
+
description: "desc1",
|
|
156
|
+
iconUrl: "url1",
|
|
157
|
+
id: "id1",
|
|
158
|
+
linkUrl: "url1",
|
|
159
|
+
name: "name1",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
description: "desc2",
|
|
163
|
+
iconUrl: "url2",
|
|
164
|
+
id: "id2",
|
|
165
|
+
linkUrl: "url2",
|
|
166
|
+
name: "name2",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
description: "desc3",
|
|
170
|
+
iconUrl: "url3",
|
|
171
|
+
id: "id3",
|
|
172
|
+
linkUrl: "url3",
|
|
173
|
+
name: "name3",
|
|
174
|
+
},
|
|
175
|
+
]);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
+
describe("wm-option", () => {
|
|
3
|
+
let page;
|
|
4
|
+
beforeEach(async () => {
|
|
5
|
+
page = await newE2EPage();
|
|
6
|
+
await page.setContent("<wm-select id='test' label='select something'><wm-option id='first' disabled onClick='action()'>First option</wm-option><wm-option id='second' disabled>Second option</wm-option><wm-option id='third'>Third option</wm-option></wm-select><script>function action() {document.getElementById('second').textContent = 'the function ran!'}</script>");
|
|
7
|
+
});
|
|
8
|
+
// RENDER
|
|
9
|
+
it("renders", async () => {
|
|
10
|
+
const element = await page.find("wm-option");
|
|
11
|
+
expect(element).not.toBeNull();
|
|
12
|
+
});
|
|
13
|
+
it("prevents action on disabled option", async () => {
|
|
14
|
+
await page.keyboard.press("Tab");
|
|
15
|
+
await page.keyboard.press("Enter"); // dropdown opens
|
|
16
|
+
await page.waitForChanges();
|
|
17
|
+
await page.keyboard.press("Enter"); // Enter on disabled option
|
|
18
|
+
await page.waitForChanges();
|
|
19
|
+
let changedOption = await page.find("wm-option#second");
|
|
20
|
+
expect(changedOption.textContent).toEqual("Second option"); // the function that shouldn't run replaces this text by: "the function ran!"
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -137,7 +137,7 @@ export class Option {
|
|
|
137
137
|
this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
|
|
138
138
|
}
|
|
139
139
|
render() {
|
|
140
|
-
return (h(Host, {
|
|
140
|
+
return (h(Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, h("span", { class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), h("span", { class: "sr-only" }, this.el.textContent)), h("div", { class: "subinfo" }, this.subinfo)));
|
|
141
141
|
}
|
|
142
142
|
static get is() { return "wm-option"; }
|
|
143
143
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { Option } from "./wm-option";
|
|
3
|
+
import { Select } from "../wm-select/wm-select";
|
|
4
|
+
// mock MutationObserver
|
|
5
|
+
global.MutationObserver = jest.fn().mockImplementation(() => ({
|
|
6
|
+
observe: jest.fn(),
|
|
7
|
+
unobserve: jest.fn(),
|
|
8
|
+
disconnect: jest.fn(),
|
|
9
|
+
}));
|
|
10
|
+
describe("wm-option", () => {
|
|
11
|
+
it("builds", async () => {
|
|
12
|
+
const page = await newSpecPage({
|
|
13
|
+
components: [Option],
|
|
14
|
+
html: `<wm-select label="abel">
|
|
15
|
+
<wm-option>1</wm-option>
|
|
16
|
+
<wm-option value="second">2</wm-option>
|
|
17
|
+
</wm-select>`,
|
|
18
|
+
});
|
|
19
|
+
expect(page.root).toMatchSnapshot();
|
|
20
|
+
});
|
|
21
|
+
it("has the role of option", async () => {
|
|
22
|
+
const page = await newSpecPage({
|
|
23
|
+
components: [Option],
|
|
24
|
+
html: `<wm-select label="label">
|
|
25
|
+
<wm-option>1</wm-option>
|
|
26
|
+
<wm-option value="second">2</wm-option>
|
|
27
|
+
</wm-select>`,
|
|
28
|
+
});
|
|
29
|
+
expect(page.root).toEqualAttribute("role", "option");
|
|
30
|
+
});
|
|
31
|
+
it("returns the value", async () => {
|
|
32
|
+
// if devs set the value attribute or property,
|
|
33
|
+
// the component should return it on comp.value
|
|
34
|
+
const page = await newSpecPage({
|
|
35
|
+
components: [Select, Option],
|
|
36
|
+
html: `<wm-select label="abel">
|
|
37
|
+
<wm-option>1</wm-option>
|
|
38
|
+
<wm-option value="second">2</wm-option>
|
|
39
|
+
</wm-select>`,
|
|
40
|
+
});
|
|
41
|
+
const select = page.root;
|
|
42
|
+
const options = select.querySelectorAll("wm-option");
|
|
43
|
+
expect(options[0].value).toBeUndefined();
|
|
44
|
+
expect(options[1].value).toBe("second");
|
|
45
|
+
});
|
|
46
|
+
it("handles disabled onClick function", async () => {
|
|
47
|
+
const page = await newSpecPage({
|
|
48
|
+
components: [Option],
|
|
49
|
+
html: `<wm-select label="label">
|
|
50
|
+
<wm-option>1</wm-option>
|
|
51
|
+
<wm-option value="second">2</wm-option>
|
|
52
|
+
</wm-select>`,
|
|
53
|
+
});
|
|
54
|
+
const menuItem = page.root;
|
|
55
|
+
const onClickFunc = () => console.log("Message");
|
|
56
|
+
menuItem.onclick = onClickFunc;
|
|
57
|
+
expect(menuItem.onclick).toEqual(onClickFunc);
|
|
58
|
+
menuItem.disabled = true;
|
|
59
|
+
expect(menuItem.onclick).toBe(null);
|
|
60
|
+
menuItem.disabled = false;
|
|
61
|
+
expect(menuItem.onclick).toEqual(onClickFunc);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
+
describe("wm-pagination", () => {
|
|
3
|
+
let page, el;
|
|
4
|
+
beforeEach(async () => {
|
|
5
|
+
page = await newE2EPage();
|
|
6
|
+
await page.setContent("<wm-pagination total-items='43' items-per-page='10' current-page='1'></wm-pagination>");
|
|
7
|
+
el = await page.find("wm-pagination");
|
|
8
|
+
await page.evaluate(async () => {
|
|
9
|
+
await document.addEventListener("wmPaginationPageClicked", function (ev) {
|
|
10
|
+
let pagin = document.querySelector("wm-pagination");
|
|
11
|
+
pagin.currentPage = +ev.target.value;
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
// HANDLES ONE PAGE (FALLBACK IF DEV'S CONDITIONAL RENDERING FAILS)
|
|
16
|
+
it("does not render pagination", async () => {
|
|
17
|
+
el.setAttribute("current-page", "1");
|
|
18
|
+
el.setAttribute("total-items", "5");
|
|
19
|
+
el.setAttribute("items-per-page", "10");
|
|
20
|
+
await page.waitForChanges();
|
|
21
|
+
const current = await page.find("wm-pagination >>> nav");
|
|
22
|
+
expect(current).toBe(null);
|
|
23
|
+
});
|
|
24
|
+
//HANDLES SHORT PAGINATION (FIVE PAGES OR LESS )
|
|
25
|
+
it("indicates the current page correctly", async () => {
|
|
26
|
+
el.setAttribute("current-page", "5");
|
|
27
|
+
el.setAttribute("total-items", "47");
|
|
28
|
+
el.setAttribute("items-per-page", "10");
|
|
29
|
+
await page.waitForChanges();
|
|
30
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
31
|
+
let val = await current.getProperty("value");
|
|
32
|
+
expect(val).toEqual("5");
|
|
33
|
+
});
|
|
34
|
+
it("displays the correct number of buttons", async () => {
|
|
35
|
+
el.setAttribute("current-page", "2");
|
|
36
|
+
el.setAttribute("total-items", "47");
|
|
37
|
+
el.setAttribute("items-per-page", "10");
|
|
38
|
+
await page.waitForChanges();
|
|
39
|
+
//There should be prev, five page numbers and next
|
|
40
|
+
let buttons = await page.findAll("wm-pagination >>> button");
|
|
41
|
+
expect(buttons.length).toBe(7);
|
|
42
|
+
el.setAttribute("current-page", "2");
|
|
43
|
+
el.setAttribute("total-items", "11");
|
|
44
|
+
el.setAttribute("items-per-page", "10");
|
|
45
|
+
await page.waitForChanges();
|
|
46
|
+
//There should now be prev, two page numbers, and next
|
|
47
|
+
buttons = await page.findAll("wm-pagination >>> button");
|
|
48
|
+
expect(buttons.length).toBe(4);
|
|
49
|
+
});
|
|
50
|
+
it("disables previous and next", async () => {
|
|
51
|
+
el.setAttribute("current-page", "5");
|
|
52
|
+
el.setAttribute("total-items", "47");
|
|
53
|
+
el.setAttribute("items-per-page", "10");
|
|
54
|
+
await page.waitForChanges();
|
|
55
|
+
let buttons = await page.findAll("wm-pagination >>> button");
|
|
56
|
+
let prev = await buttons[0];
|
|
57
|
+
let next = await buttons[6];
|
|
58
|
+
expect(prev).not.toHaveAttribute("disabled");
|
|
59
|
+
expect(next).toHaveAttribute("disabled");
|
|
60
|
+
el.setAttribute("current-page", "1");
|
|
61
|
+
await page.waitForChanges();
|
|
62
|
+
buttons = await page.findAll("wm-pagination >>> button");
|
|
63
|
+
prev = await buttons[0];
|
|
64
|
+
next = await buttons[6];
|
|
65
|
+
expect(next).not.toHaveAttribute("disabled");
|
|
66
|
+
expect(prev).toHaveAttribute("disabled");
|
|
67
|
+
});
|
|
68
|
+
//Add tests for keyboard navigation to simulate events that update the current page
|
|
69
|
+
// HANDLES LONG PAGINATION (SIX OR MORE PAGES)
|
|
70
|
+
it("indicates the current page correctly", async () => {
|
|
71
|
+
el.setAttribute("current-page", "6");
|
|
72
|
+
el.setAttribute("total-items", "147");
|
|
73
|
+
el.setAttribute("items-per-page", "10");
|
|
74
|
+
await page.waitForChanges();
|
|
75
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
76
|
+
let val = await current.getProperty("value");
|
|
77
|
+
expect(val).toEqual("6");
|
|
78
|
+
});
|
|
79
|
+
it("displays five page number buttons regardless of the current page", async () => {
|
|
80
|
+
el.setAttribute("current-page", "3");
|
|
81
|
+
el.setAttribute("total-items", "147");
|
|
82
|
+
el.setAttribute("items-per-page", "10");
|
|
83
|
+
await page.waitForChanges();
|
|
84
|
+
let buttons = await page.findAll("wm-pagination >>> button");
|
|
85
|
+
//five page number buttons, plus the two prev/next buttons that always render
|
|
86
|
+
expect(buttons.length).toBe(7);
|
|
87
|
+
el.setAttribute("current-page", "15");
|
|
88
|
+
el.setAttribute("total-items", "147");
|
|
89
|
+
el.setAttribute("items-per-page", "10");
|
|
90
|
+
await page.waitForChanges();
|
|
91
|
+
buttons = await page.findAll("wm-pagination >>> button");
|
|
92
|
+
//five page number buttons, plus the two prev/next buttons that always render
|
|
93
|
+
expect(buttons.length).toBe(7);
|
|
94
|
+
el.setAttribute("current-page", "7");
|
|
95
|
+
el.setAttribute("total-items", "147");
|
|
96
|
+
el.setAttribute("items-per-page", "10");
|
|
97
|
+
await page.waitForChanges();
|
|
98
|
+
buttons = await page.findAll("wm-pagination >>> button");
|
|
99
|
+
//five page number buttons, plus the two prev/next buttons that always render
|
|
100
|
+
expect(buttons.length).toBe(7);
|
|
101
|
+
});
|
|
102
|
+
it("displays only the right hand ellipsis when current page is within the first four pages", async () => {
|
|
103
|
+
el.setAttribute("current-page", "3");
|
|
104
|
+
el.setAttribute("total-items", "147");
|
|
105
|
+
el.setAttribute("items-per-page", "10");
|
|
106
|
+
await page.waitForChanges();
|
|
107
|
+
const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
|
|
108
|
+
//Check that page number, not left hand ellipsis, is displayed
|
|
109
|
+
expect(displayedElements.childNodes[2].innerHTML).toBe("2");
|
|
110
|
+
//Check that ellipsis is displayed in the right spot
|
|
111
|
+
expect(displayedElements.childNodes[5].innerHTML).toBe("...");
|
|
112
|
+
});
|
|
113
|
+
it("displays only the left hand ellipsis only when current page is within the last four pages", async () => {
|
|
114
|
+
el.setAttribute("current-page", "13");
|
|
115
|
+
el.setAttribute("total-items", "147");
|
|
116
|
+
el.setAttribute("items-per-page", "10");
|
|
117
|
+
await page.waitForChanges();
|
|
118
|
+
const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
|
|
119
|
+
//Check that page number, not right hand ellipsis, is displayed
|
|
120
|
+
expect(displayedElements.childNodes[5].innerHTML).toBe("14");
|
|
121
|
+
//Check that ellipsis is displayed in the right spot
|
|
122
|
+
expect(displayedElements.childNodes[2].innerHTML).toBe("...");
|
|
123
|
+
});
|
|
124
|
+
it("displays both sets of ellipsis when the total page count is greater than 6 and the current page is not within the first four or the last four pages", async () => {
|
|
125
|
+
el.setAttribute("current-page", "8");
|
|
126
|
+
el.setAttribute("total-items", "147");
|
|
127
|
+
el.setAttribute("items-per-page", "10");
|
|
128
|
+
await page.waitForChanges();
|
|
129
|
+
const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
|
|
130
|
+
//left ellipsis
|
|
131
|
+
expect(displayedElements.childNodes[2].innerHTML).toBe("...");
|
|
132
|
+
//right ellipsis
|
|
133
|
+
expect(displayedElements.childNodes[6].innerHTML).toBe("...");
|
|
134
|
+
});
|
|
135
|
+
it("fires an event when a button is triggered", async () => {
|
|
136
|
+
el.setAttribute("current-page", "3");
|
|
137
|
+
el.setAttribute("total-items", "147");
|
|
138
|
+
el.setAttribute("items-per-page", "10");
|
|
139
|
+
await page.waitForChanges();
|
|
140
|
+
await page.keyboard.press("Tab"); // Previous btn
|
|
141
|
+
await page.waitForChanges();
|
|
142
|
+
await page.keyboard.press("Enter");
|
|
143
|
+
await page.waitForChanges();
|
|
144
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
145
|
+
expect(current.id).toBe("wm-2");
|
|
146
|
+
});
|
|
147
|
+
// A11Y
|
|
148
|
+
// UX requirements, cf. https://watermarkinsights.atlassian.net/wiki/spaces/WDS/pages/51938484/Pagination
|
|
149
|
+
it("allows user to tab through the clickable pagination elements", async () => {
|
|
150
|
+
el.setAttribute("current-page", "5");
|
|
151
|
+
el.setAttribute("total-items", "97");
|
|
152
|
+
el.setAttribute("items-per-page", "10");
|
|
153
|
+
await page.waitForChanges();
|
|
154
|
+
// User should be able to tab through the clickable pagination elements. Navigating below to page 5
|
|
155
|
+
await page.keyboard.press("Tab");
|
|
156
|
+
await page.waitForChanges();
|
|
157
|
+
await page.keyboard.press("Tab");
|
|
158
|
+
await page.waitForChanges();
|
|
159
|
+
await page.keyboard.press("Tab");
|
|
160
|
+
await page.waitForChanges();
|
|
161
|
+
await page.keyboard.press("Tab");
|
|
162
|
+
await page.waitForChanges();
|
|
163
|
+
let activeElId = await page.evaluate(async () => {
|
|
164
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
165
|
+
return el.id;
|
|
166
|
+
});
|
|
167
|
+
expect(activeElId).toBe("wm-5");
|
|
168
|
+
//Navigating below to next button
|
|
169
|
+
await page.keyboard.press("Tab");
|
|
170
|
+
await page.waitForChanges();
|
|
171
|
+
await page.keyboard.press("Tab");
|
|
172
|
+
await page.waitForChanges();
|
|
173
|
+
await page.keyboard.press("Tab");
|
|
174
|
+
await page.waitForChanges();
|
|
175
|
+
activeElId = await page.evaluate(async () => {
|
|
176
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
177
|
+
return el.id;
|
|
178
|
+
});
|
|
179
|
+
expect(activeElId).toBe("next");
|
|
180
|
+
});
|
|
181
|
+
it("updates the current page when enter is pressed on a page button and keeps focus on the selected page", async () => {
|
|
182
|
+
el.setAttribute("current-page", "5");
|
|
183
|
+
el.setAttribute("total-items", "97");
|
|
184
|
+
el.setAttribute("items-per-page", "10");
|
|
185
|
+
await page.waitForChanges();
|
|
186
|
+
//Navigate to page 6 and click on it
|
|
187
|
+
await page.keyboard.press("Tab");
|
|
188
|
+
await page.waitForChanges();
|
|
189
|
+
await page.keyboard.press("Tab");
|
|
190
|
+
await page.waitForChanges();
|
|
191
|
+
await page.keyboard.press("Tab");
|
|
192
|
+
await page.waitForChanges();
|
|
193
|
+
await page.keyboard.press("Tab");
|
|
194
|
+
await page.waitForChanges();
|
|
195
|
+
await page.keyboard.press("Tab");
|
|
196
|
+
await page.waitForChanges();
|
|
197
|
+
await page.keyboard.press("Enter");
|
|
198
|
+
await page.waitForChanges();
|
|
199
|
+
//Current page should update to page 6
|
|
200
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
201
|
+
let val = await current.getProperty("value");
|
|
202
|
+
expect(val).toEqual("6");
|
|
203
|
+
//Focus should remain on 6 even though button arrangement changes
|
|
204
|
+
let activeElId = await page.evaluate(async () => {
|
|
205
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
206
|
+
return el.id;
|
|
207
|
+
});
|
|
208
|
+
expect(activeElId).toBe("wm-6");
|
|
209
|
+
});
|
|
210
|
+
it("decrements the current page when enter is pressed on the previous button, keeps focus on the previous button until it becomes disabled, and moves focus first page once it is disabled", async () => {
|
|
211
|
+
el.setAttribute("current-page", "3");
|
|
212
|
+
el.setAttribute("total-items", "97");
|
|
213
|
+
el.setAttribute("items-per-page", "10");
|
|
214
|
+
await page.waitForChanges();
|
|
215
|
+
//Navigate to previous button
|
|
216
|
+
await page.keyboard.press("Tab");
|
|
217
|
+
await page.waitForChanges();
|
|
218
|
+
await page.keyboard.press("Enter");
|
|
219
|
+
await page.waitForChanges();
|
|
220
|
+
//Current page should decrease by 1
|
|
221
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
222
|
+
let val = await current.getProperty("value");
|
|
223
|
+
expect(val).toEqual("2");
|
|
224
|
+
//Focus should remain on previous button
|
|
225
|
+
let activeElId = await page.evaluate(async () => {
|
|
226
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
227
|
+
return el.id;
|
|
228
|
+
});
|
|
229
|
+
expect(activeElId).toBe("previous");
|
|
230
|
+
//Press previous again, reaching first page and disabling previous button
|
|
231
|
+
await page.keyboard.press("Enter");
|
|
232
|
+
await page.waitForChanges();
|
|
233
|
+
current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
234
|
+
val = await current.getProperty("value");
|
|
235
|
+
expect(val).toEqual("1");
|
|
236
|
+
//Focus is shifted to first page button rather than flying out to body
|
|
237
|
+
activeElId = await page.evaluate(async () => {
|
|
238
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
239
|
+
return el.id;
|
|
240
|
+
});
|
|
241
|
+
expect(activeElId).toBe("wm-1");
|
|
242
|
+
});
|
|
243
|
+
it("increments the current page when enter is pressed on the next button, keeps focus on the next button until it becomes disabled, and moves focus back to last page once it is disabled", async () => {
|
|
244
|
+
el.setAttribute("current-page", "8");
|
|
245
|
+
el.setAttribute("total-items", "97");
|
|
246
|
+
el.setAttribute("items-per-page", "10");
|
|
247
|
+
await page.waitForChanges();
|
|
248
|
+
//Navigate to the next button and press enter
|
|
249
|
+
await page.keyboard.press("Tab");
|
|
250
|
+
await page.waitForChanges();
|
|
251
|
+
await page.keyboard.press("Tab");
|
|
252
|
+
await page.waitForChanges();
|
|
253
|
+
await page.keyboard.press("Tab");
|
|
254
|
+
await page.waitForChanges();
|
|
255
|
+
await page.keyboard.press("Tab");
|
|
256
|
+
await page.waitForChanges();
|
|
257
|
+
await page.keyboard.press("Tab");
|
|
258
|
+
await page.waitForChanges();
|
|
259
|
+
await page.keyboard.press("Tab");
|
|
260
|
+
await page.waitForChanges();
|
|
261
|
+
await page.keyboard.press("Tab");
|
|
262
|
+
await page.waitForChanges();
|
|
263
|
+
await page.keyboard.press("Enter");
|
|
264
|
+
await page.waitForChanges();
|
|
265
|
+
//Current page should increase by 1
|
|
266
|
+
let current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
267
|
+
let val = await current.getProperty("value");
|
|
268
|
+
expect(val).toEqual("9");
|
|
269
|
+
//Focus should remain on the next button
|
|
270
|
+
let activeElId = await page.evaluate(async () => {
|
|
271
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
272
|
+
return el.id;
|
|
273
|
+
});
|
|
274
|
+
expect(activeElId).toBe("next");
|
|
275
|
+
//Press next again
|
|
276
|
+
await page.keyboard.press("Enter");
|
|
277
|
+
await page.waitForChanges();
|
|
278
|
+
//Last page is reached, and next button becomes disabled
|
|
279
|
+
current = await page.find("wm-pagination >>> [aria-current='page']");
|
|
280
|
+
val = await current.getProperty("value");
|
|
281
|
+
expect(val).toEqual("10");
|
|
282
|
+
//Rather than the focus shifting to the body once it is disabled, focus is brought to last page button
|
|
283
|
+
activeElId = await page.evaluate(async () => {
|
|
284
|
+
let el = await document.activeElement.shadowRoot.activeElement;
|
|
285
|
+
return el.id;
|
|
286
|
+
});
|
|
287
|
+
expect(activeElId).toBe("wm-10");
|
|
288
|
+
});
|
|
289
|
+
it("sets labels dynamically so that screenreaders properly announce the navigable pagination elements", async () => {
|
|
290
|
+
el.setAttribute("current-page", "3");
|
|
291
|
+
el.setAttribute("total-items", "47");
|
|
292
|
+
el.setAttribute("items-per-page", "10");
|
|
293
|
+
await page.waitForChanges();
|
|
294
|
+
let buttons = await page.findAll("wm-pagination >>> button");
|
|
295
|
+
let notCurrentPage = buttons[2];
|
|
296
|
+
expect(notCurrentPage).toEqualAttribute("aria-label", "Go to page 2");
|
|
297
|
+
let currentPage = buttons[3];
|
|
298
|
+
expect(currentPage).toEqualAttribute("aria-label", "");
|
|
299
|
+
//Change current page number
|
|
300
|
+
await page.keyboard.press("Tab");
|
|
301
|
+
await page.waitForChanges();
|
|
302
|
+
await page.keyboard.press("Enter");
|
|
303
|
+
await page.waitForChanges();
|
|
304
|
+
buttons = await page.findAll("wm-pagination >>> button");
|
|
305
|
+
//Button 3 no longer as label indicating it's the current page
|
|
306
|
+
notCurrentPage = buttons[3];
|
|
307
|
+
expect(notCurrentPage).toEqualAttribute("aria-label", "Go to page 3");
|
|
308
|
+
//Button 2 now has current page label
|
|
309
|
+
currentPage = buttons[2];
|
|
310
|
+
expect(currentPage).toEqualAttribute("aria-label", "");
|
|
311
|
+
});
|
|
312
|
+
});
|
|
@@ -151,7 +151,7 @@ export class Pagination {
|
|
|
151
151
|
render() {
|
|
152
152
|
return (
|
|
153
153
|
// do not render the component if there's only one page
|
|
154
|
-
this.totalItems > this.itemsPerPage && (h("nav", {
|
|
154
|
+
this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
|
|
155
155
|
}
|
|
156
156
|
static get is() { return "wm-pagination"; }
|
|
157
157
|
static get encapsulation() { return "shadow"; }
|