@watermarkinsights/ripple 5.6.0-2 → 5.6.0-4
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-800ea87d.js → chartFunctions-fb38580b.js} +10 -7
- package/dist/cjs/{functions-c6e27c75.js → functions-a70fcff7.js} +7 -104
- package/dist/{esm/app-globals-bbc3f842.js → cjs/global-a72648f4.js} +2 -7
- package/dist/cjs/index-e86c28b6.js +2653 -0
- package/dist/cjs/{intl-9f836d29.js → intl-4a3a3a94.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/priv-option-list.cjs.entry.js +4 -5
- 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 +9 -12
- package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
- package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
- package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
- package/dist/cjs/wm-file.cjs.entry.js +4 -5
- package/dist/cjs/wm-input.cjs.entry.js +5 -6
- package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
- package/dist/cjs/wm-modal-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-nested-select.cjs.entry.js +7 -8
- package/dist/cjs/wm-optgroup.cjs.entry.js +4 -5
- package/dist/cjs/wm-option_2.cjs.entry.js +8 -10
- package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +8 -10
- package/dist/cjs/wm-search.cjs.entry.js +6 -7
- package/dist/cjs/wm-snackbar.cjs.entry.js +6 -7
- 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 +3 -3
- 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.css +13 -8
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.js +3 -5
- 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.css +13 -8
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
- package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
- package/dist/collection/components/datepickers/wm-date-range.js +13 -17
- package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
- package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
- package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +7 -10
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +3 -3
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +2 -2
- package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
- package/dist/collection/components/selects/wm-select/wm-select.js +2 -2
- package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
- package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
- package/dist/collection/components/wm-button/wm-button.js +1 -1
- package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
- package/dist/collection/components/wm-file/wm-file.js +1 -1
- package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
- package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
- package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
- package/dist/collection/components/wm-input/wm-input.js +1 -1
- package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
- package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
- package/dist/collection/components/wm-modal/wm-modal.js +2 -2
- package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
- package/dist/collection/components/wm-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-snackbar/wm-snackbar.e2e.js +112 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
- package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
- package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
- package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
- package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
- package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
- package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
- package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
- package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.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/global/functions.spec.js +126 -0
- package/dist/collection/lang/lang.spec.js +20 -0
- package/dist/esm/{chartFunctions-7e5619f6.js → chartFunctions-c07590f5.js} +10 -7
- package/dist/esm/{functions-046fc5a3.js → functions-dea8b0f6.js} +8 -105
- package/dist/{cjs/app-globals-2eb5411e.js → esm/global-f4891559.js} +1 -10
- package/dist/esm/index-558b5a82.js +2622 -0
- package/dist/esm/{intl-0822738a.js → intl-417d8b33.js} +1 -1
- package/dist/esm/loader.js +4 -5
- package/dist/esm/priv-calendar.entry.js +5 -6
- package/dist/esm/priv-chart-popover.entry.js +5 -6
- package/dist/esm/priv-navigator-button.entry.js +3 -4
- package/dist/esm/priv-navigator-item.entry.js +3 -4
- package/dist/esm/priv-option-list.entry.js +4 -5
- package/dist/esm/ripple.js +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 +9 -12
- package/dist/esm/wm-date-range.entry.js +8 -9
- package/dist/esm/wm-datepicker.entry.js +8 -9
- package/dist/esm/wm-file-list.entry.js +3 -4
- package/dist/esm/wm-file.entry.js +4 -5
- package/dist/esm/wm-input.entry.js +5 -6
- package/dist/esm/wm-line-chart.entry.js +14 -15
- package/dist/esm/wm-modal-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-nested-select.entry.js +7 -8
- package/dist/esm/wm-optgroup.entry.js +4 -5
- package/dist/esm/wm-option_2.entry.js +8 -10
- package/dist/esm/wm-pagination.entry.js +4 -5
- package/dist/esm/wm-progress-indicator_3.entry.js +8 -10
- package/dist/esm/wm-search.entry.js +6 -7
- package/dist/esm/wm-snackbar.entry.js +6 -7
- 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-7e5619f6.js → chartFunctions-c07590f5.js} +1 -1
- package/dist/esm-es5/functions-dea8b0f6.js +1 -0
- package/dist/esm-es5/global-f4891559.js +1 -0
- package/dist/esm-es5/index-558b5a82.js +1 -0
- package/dist/esm-es5/{intl-0822738a.js → intl-417d8b33.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
- package/dist/esm-es5/priv-option-list.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file-list.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-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-nested-select.entry.js +1 -1
- package/dist/esm-es5/wm-optgroup.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-wrapper.entry.js +1 -1
- package/dist/loader/cdn.js +2 -1
- package/dist/loader/index.cjs.js +2 -1
- package/dist/loader/index.d.ts +0 -3
- package/dist/loader/index.es2017.js +2 -1
- package/dist/loader/index.js +2 -1
- package/dist/ripple/p-021ff5fa.system.entry.js +1 -0
- package/dist/ripple/{p-1a474fb3.entry.js → p-0289e88d.entry.js} +1 -1
- package/dist/ripple/p-03a28fd8.entry.js +1 -0
- package/dist/ripple/p-10fffb96.entry.js +1 -0
- package/dist/ripple/p-182f1286.system.entry.js +1 -0
- package/dist/ripple/{p-fb3cfb8b.entry.js → p-1ae47d48.entry.js} +1 -1
- package/dist/ripple/p-1aead401.entry.js +1 -0
- package/dist/ripple/p-230cd6ec.system.entry.js +1 -0
- package/dist/ripple/p-24ba754f.entry.js +1 -0
- package/dist/ripple/p-24c56217.system.entry.js +1 -0
- package/dist/ripple/p-294b38ca.system.entry.js +1 -0
- package/dist/ripple/p-2c7bb996.system.entry.js +1 -0
- package/dist/ripple/p-2ed54dbc.entry.js +1 -0
- package/dist/ripple/p-2f899c05.system.entry.js +1 -0
- package/dist/ripple/p-311923b2.system.entry.js +1 -0
- package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
- package/dist/ripple/p-350223f1.entry.js +1 -0
- package/dist/ripple/p-3568472c.entry.js +1 -0
- package/dist/ripple/p-37687638.system.entry.js +1 -0
- package/dist/ripple/{p-e2c9204d.system.entry.js → p-37f39cd9.system.entry.js} +1 -1
- package/dist/ripple/p-3bdac9a4.entry.js +1 -0
- package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
- package/dist/ripple/{p-7135f074.system.entry.js → p-4df006b1.system.entry.js} +1 -1
- package/dist/ripple/p-4e1065d1.system.entry.js +1 -0
- package/dist/ripple/{p-18d3ad51.entry.js → p-503702ef.entry.js} +1 -1
- package/dist/ripple/{p-06792553.system.entry.js → p-5052c9dd.system.entry.js} +1 -1
- package/dist/ripple/p-568c595f.js +2 -0
- package/dist/ripple/p-588d678d.entry.js +1 -0
- package/dist/ripple/p-5b9babd9.system.entry.js +1 -0
- package/dist/ripple/p-61a19aa5.entry.js +1 -0
- package/dist/ripple/p-62744f66.entry.js +1 -0
- package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
- package/dist/ripple/p-6a6bfac8.entry.js +1 -0
- package/dist/ripple/{p-c171f37b.entry.js → p-6dd5fd2e.entry.js} +1 -1
- package/dist/ripple/p-71ed7e56.system.entry.js +1 -0
- package/dist/ripple/p-87d0933f.system.entry.js +1 -0
- package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
- package/dist/ripple/p-8c02e3a3.entry.js +1 -0
- package/dist/ripple/{p-05f0f2e9.entry.js → p-8c7d5cd9.entry.js} +1 -1
- package/dist/ripple/p-902a54c5.entry.js +1 -0
- package/dist/ripple/{p-e562e32d.system.entry.js → p-91b21054.system.entry.js} +1 -1
- package/dist/ripple/p-94db7841.entry.js +1 -0
- package/dist/ripple/p-9e9c9d20.entry.js +1 -0
- package/dist/ripple/p-a20333e9.entry.js +1 -0
- package/dist/ripple/p-a394d680.system.js +1 -0
- package/dist/ripple/p-ab8d78cc.system.js +2 -0
- package/dist/ripple/{p-1123b0fd.entry.js → p-ace05e0b.entry.js} +1 -1
- package/dist/ripple/p-ade3d9a9.entry.js +1 -0
- package/dist/ripple/p-b0a02b42.system.entry.js +1 -0
- package/dist/ripple/p-b8963e4d.system.entry.js +1 -0
- package/dist/ripple/{p-c2fc7204.system.entry.js → p-b918e97a.system.entry.js} +1 -1
- package/dist/ripple/p-bb884a44.js +1 -0
- package/dist/ripple/p-c10f3273.entry.js +1 -0
- package/dist/ripple/{p-98bf2ccb.system.js → p-c28863e7.system.js} +1 -1
- package/dist/ripple/p-c4df2809.entry.js +1 -0
- package/dist/ripple/p-c4ec5884.system.entry.js +1 -0
- package/dist/ripple/p-c51398ba.entry.js +1 -0
- package/dist/ripple/p-c7dfcc99.system.entry.js +1 -0
- package/dist/ripple/p-c885c7f9.entry.js +1 -0
- package/dist/ripple/p-c93275bd.system.entry.js +1 -0
- package/dist/ripple/p-c9543950.system.entry.js +1 -0
- package/dist/ripple/p-c999c1f7.system.entry.js +1 -0
- package/dist/ripple/{p-772c4fd2.system.entry.js → p-cb690d83.system.entry.js} +1 -1
- package/dist/ripple/{p-b6df0519.system.js → p-cd7cef47.system.js} +1 -1
- package/dist/ripple/{p-28169294.js → p-d32bf479.js} +1 -1
- package/dist/ripple/{p-ac47e6f5.system.entry.js → p-d52545c7.system.entry.js} +1 -1
- package/dist/ripple/p-d9122935.system.entry.js +1 -0
- package/dist/ripple/p-daf03315.entry.js +1 -0
- package/dist/ripple/p-de283385.system.js +1 -0
- package/dist/ripple/p-de35505c.entry.js +1 -0
- package/dist/ripple/p-e004b92b.system.entry.js +1 -0
- package/dist/ripple/p-e26a6bd0.entry.js +1 -0
- package/dist/ripple/p-e42eeb59.system.entry.js +1 -0
- package/dist/ripple/{p-58a073f2.js → p-e8c12272.js} +1 -1
- package/dist/ripple/p-e9395ac5.entry.js +1 -0
- package/dist/ripple/p-eeebc2c7.entry.js +1 -0
- package/dist/ripple/p-ef0f98fc.js +1 -0
- package/dist/ripple/p-f47cf5d4.system.js +1 -0
- package/dist/ripple/p-f69a16d4.system.entry.js +1 -0
- package/dist/ripple/p-f8c6fa96.system.entry.js +1 -0
- package/dist/ripple/{p-e25e8ed7.system.entry.js → p-fb3d5a64.system.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/stencil-public-runtime.d.ts +10 -3
- package/package.json +1 -1
- package/dist/cjs/index-788526f5.js +0 -1863
- package/dist/esm/index-130e07bb.js +0 -1832
- package/dist/esm-es5/app-globals-bbc3f842.js +0 -1
- package/dist/esm-es5/functions-046fc5a3.js +0 -1
- package/dist/esm-es5/index-130e07bb.js +0 -1
- package/dist/ripple/p-0b7a64cd.system.entry.js +0 -1
- package/dist/ripple/p-0db47768.system.entry.js +0 -1
- package/dist/ripple/p-140d2dad.system.entry.js +0 -1
- package/dist/ripple/p-1727c66e.entry.js +0 -1
- package/dist/ripple/p-179e4aee.entry.js +0 -1
- package/dist/ripple/p-1ed0a315.system.entry.js +0 -1
- package/dist/ripple/p-200298b3.entry.js +0 -1
- package/dist/ripple/p-22704516.system.entry.js +0 -1
- package/dist/ripple/p-28a88d69.entry.js +0 -1
- package/dist/ripple/p-28a89430.entry.js +0 -1
- package/dist/ripple/p-29388a85.entry.js +0 -1
- package/dist/ripple/p-2952dc73.entry.js +0 -1
- package/dist/ripple/p-2ec551cc.entry.js +0 -1
- package/dist/ripple/p-30aa965a.entry.js +0 -1
- package/dist/ripple/p-341d27c6.system.entry.js +0 -1
- package/dist/ripple/p-354a97f2.entry.js +0 -1
- package/dist/ripple/p-35f78ec6.system.entry.js +0 -1
- package/dist/ripple/p-381d004e.system.entry.js +0 -1
- package/dist/ripple/p-39de670a.entry.js +0 -1
- package/dist/ripple/p-3ad563c4.system.entry.js +0 -1
- package/dist/ripple/p-3ea3db64.system.entry.js +0 -1
- package/dist/ripple/p-42925871.entry.js +0 -1
- package/dist/ripple/p-46f449d2.system.js +0 -1
- package/dist/ripple/p-540f74b1.system.entry.js +0 -1
- package/dist/ripple/p-61666258.entry.js +0 -1
- package/dist/ripple/p-64449b64.entry.js +0 -1
- package/dist/ripple/p-68fc8da3.system.entry.js +0 -1
- package/dist/ripple/p-6e95e98c.system.js +0 -1
- package/dist/ripple/p-71ddeb97.system.js +0 -1
- package/dist/ripple/p-7b5be38a.js +0 -1
- package/dist/ripple/p-833c05ca.entry.js +0 -1
- package/dist/ripple/p-8789b4c9.js +0 -1
- package/dist/ripple/p-8dd54304.system.entry.js +0 -1
- package/dist/ripple/p-9420679d.entry.js +0 -1
- package/dist/ripple/p-96697a65.system.entry.js +0 -1
- package/dist/ripple/p-974ca7a4.system.entry.js +0 -1
- package/dist/ripple/p-97e62c9d.system.entry.js +0 -1
- package/dist/ripple/p-b116fb2d.entry.js +0 -1
- package/dist/ripple/p-bb28c2c7.system.entry.js +0 -1
- package/dist/ripple/p-c9dc5cfa.entry.js +0 -1
- package/dist/ripple/p-ca6bbd68.system.entry.js +0 -1
- package/dist/ripple/p-cb85c4a7.entry.js +0 -1
- package/dist/ripple/p-cc5b07b1.system.entry.js +0 -1
- package/dist/ripple/p-cef8a45b.system.js +0 -2
- package/dist/ripple/p-d6502e2e.entry.js +0 -1
- package/dist/ripple/p-d78dad3d.entry.js +0 -1
- package/dist/ripple/p-d7b7c350.entry.js +0 -1
- package/dist/ripple/p-d9da0502.js +0 -2
- package/dist/ripple/p-dde32280.entry.js +0 -1
- package/dist/ripple/p-dfaa6a61.system.entry.js +0 -1
- package/dist/ripple/p-e2de8541.system.entry.js +0 -1
- package/dist/ripple/p-ea407923.entry.js +0 -1
- package/dist/ripple/p-ea9c152f.entry.js +0 -1
- package/dist/ripple/p-f02dce0f.system.entry.js +0 -1
- package/dist/ripple/p-f38622dc.system.entry.js +0 -1
- package/dist/ripple/p-f8c7adab.system.entry.js +0 -1
- package/dist/ripple/p-fdb4cf9e.system.entry.js +0 -1
- package/dist/ripple/p-feb80dd1.entry.js +0 -1
- package/dist/ripple/p-ff0e05e4.entry.js +0 -1
- package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +0 -68
- package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +0 -55
- package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +0 -16
- package/dist/types/components/wm-option/wm-option.d.ts +0 -40
|
@@ -12,12 +12,12 @@ export class LineChart {
|
|
|
12
12
|
this.displayedXIntervals = [];
|
|
13
13
|
this.yIntervals = [];
|
|
14
14
|
this.lineStyles = [
|
|
15
|
-
{ color: "#8b86ca", icon: "f536" },
|
|
16
|
-
{ color: "#2e1b46", icon: "f12f" },
|
|
17
|
-
{ color: "#0089e4", icon: "f763" },
|
|
18
|
-
{ color: "#088000", icon: "f4ce" },
|
|
19
|
-
{ color: "#ea8500", icon: "f70a" },
|
|
20
|
-
{ color: "#d54f41", icon: "f536" },
|
|
15
|
+
{ color: "#8b86ca", icon: "f536" },
|
|
16
|
+
{ color: "#2e1b46", icon: "f12f" },
|
|
17
|
+
{ color: "#0089e4", icon: "f763" },
|
|
18
|
+
{ color: "#088000", icon: "f4ce" },
|
|
19
|
+
{ color: "#ea8500", icon: "f70a" },
|
|
20
|
+
{ color: "#d54f41", icon: "f536" },
|
|
21
21
|
{ color: "#146ca9", icon: "f6ff" }, // blue, upside down triangle
|
|
22
22
|
];
|
|
23
23
|
this.debouncedResize = debounce(async () => {
|
|
@@ -413,7 +413,7 @@ export class LineChart {
|
|
|
413
413
|
popoverStyle = {
|
|
414
414
|
"--leftPosition": `0%`,
|
|
415
415
|
"--topPosition": "0%",
|
|
416
|
-
maxWidth: Math.min(this.el.clientWidth - 2, 400) + "px",
|
|
416
|
+
maxWidth: Math.min(this.el.clientWidth - 2, 400) + "px",
|
|
417
417
|
transform: `translateX(calc(${displaceLeft}))`, // align with left edge of component
|
|
418
418
|
};
|
|
419
419
|
}
|
|
@@ -453,9 +453,9 @@ export class LineChart {
|
|
|
453
453
|
return h("div", { class: "highlight", style: highlightStyle });
|
|
454
454
|
}
|
|
455
455
|
render() {
|
|
456
|
-
return (h(Host, {
|
|
456
|
+
return (h(Host, { onBlur: () => this.resetDataPointFocus(), onMouseLeave: () => (this.popoverIndex = -1) }, h("div", { class: "component-wrapper", role: "application", "aria-roledescription": chartMessages.interactiveChart, "aria-label": this.label, "aria-describedby": "chart-description" }, this.renderLegend(), h("div", { class: "chart-wrapper" }, h("div", { class: "chart-label --y-axis", style: { "--labelWidth": this.labelWidth } }, this.yAxisLabel, this.parsedUnits[1] && ` (${this.parsedUnits[1]})`), this.renderYIntervals(), h("div", { ref: (el) => (this.plotAreaEl = el), class: `plot-area ${this.hasPartialInterval ? "" : "right-border"}`, style: {
|
|
457
457
|
"--backgroundSize": `${this.dataPointMatrix[0][this.xIntervals.indexOf(this.displayedXIntervals[1])].xPositionPercent}%`,
|
|
458
|
-
} }, this.highlightStart && this.renderHighlight(), this.renderData(), this.renderHoverAreas()), this.popoverIndex !== -1 && this.renderHoverIndicator(), this.popoverIndex !== -1 && this.renderPopover(), this.renderXIntervals(), h("div", {
|
|
458
|
+
} }, this.highlightStart && this.renderHighlight(), this.renderData(), this.renderHoverAreas()), this.popoverIndex !== -1 && this.renderHoverIndicator(), this.popoverIndex !== -1 && this.renderPopover(), this.renderXIntervals(), h("div", { class: "chart-label --x-axis" }, this.xAxisLabel, this.parsedUnits[0] && ` (${this.parsedUnits[0]})`)), h("div", { id: "chart-description", class: "sr-only" }, `${lineChartMessages.instructions} ${this.description}`), h("div", { ref: (el) => (this.liveRegionEl = el), "aria-live": "polite", class: "sr-only" }, this.announcement))));
|
|
459
459
|
}
|
|
460
460
|
static get is() { return "wm-line-chart"; }
|
|
461
461
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { LineChart } from "./wm-line-chart";
|
|
3
|
+
// import * as globalFuncs from "../../../global/functions";
|
|
4
|
+
// jest.spyOn(globalFuncs, "generateId");
|
|
5
|
+
// // @ts-ignore
|
|
6
|
+
// globalFuncs.generateId.mockImplementation(() => "random-id");
|
|
7
|
+
// mock ResizeObserver
|
|
8
|
+
global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
9
|
+
observe: jest.fn(),
|
|
10
|
+
unobserve: jest.fn(),
|
|
11
|
+
disconnect: jest.fn(),
|
|
12
|
+
}));
|
|
13
|
+
async function createPageHelper() {
|
|
14
|
+
return await newSpecPage({
|
|
15
|
+
components: [LineChart],
|
|
16
|
+
html: `<wm-line-chart
|
|
17
|
+
label="Regional Job Trends"
|
|
18
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
19
|
+
x-axis-label="Year"
|
|
20
|
+
y-axis-label="Change Since 2020"
|
|
21
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
|
|
22
|
+
units="year,%"
|
|
23
|
+
show-deltas="true"
|
|
24
|
+
y-range="0,25,50,75,100"
|
|
25
|
+
highlight-start="2026"
|
|
26
|
+
>
|
|
27
|
+
</wm-line-chart>`,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
describe("Line Chart", () => {
|
|
31
|
+
let page;
|
|
32
|
+
it("builds", async () => {
|
|
33
|
+
page = await createPageHelper();
|
|
34
|
+
expect(page.root).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
it("has proper aria properties and attributes", async () => {
|
|
37
|
+
page = await createPageHelper();
|
|
38
|
+
const componentWrapperEl = await page.root.shadowRoot.querySelector(".component-wrapper");
|
|
39
|
+
expect(componentWrapperEl).toEqualAttribute("role", "application");
|
|
40
|
+
expect(componentWrapperEl).toEqualAttribute("aria-roledescription", "Interactive chart");
|
|
41
|
+
expect(componentWrapperEl).toEqualAttribute("aria-label", "Regional Job Trends");
|
|
42
|
+
expect(componentWrapperEl).toEqualAttribute("aria-describedby", "chart-description");
|
|
43
|
+
const firstPointEl = await page.root.shadowRoot.querySelector(".point");
|
|
44
|
+
expect(firstPointEl).toEqualAttribute("role", "img");
|
|
45
|
+
});
|
|
46
|
+
it("plots all non-null data points", async () => {
|
|
47
|
+
page = await newSpecPage({
|
|
48
|
+
components: [LineChart],
|
|
49
|
+
html: `<wm-line-chart
|
|
50
|
+
label="Regional Job Trends"
|
|
51
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
52
|
+
x-axis-label="Year"
|
|
53
|
+
y-axis-label="Change Since 2020"
|
|
54
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": 15, "2024": 20}, "National": {"2020": 8, "2021": 13, "2022": null, "2023": 21, "2024": 23}, "International": {"2020": 8, "2021": null, "2022": null, "2023": 21, "2024": 23} }'
|
|
55
|
+
>
|
|
56
|
+
</wm-line-chart>`,
|
|
57
|
+
});
|
|
58
|
+
const allPointEls = await page.root.shadowRoot.querySelectorAll(".point");
|
|
59
|
+
const allLineEls = await page.root.shadowRoot.querySelectorAll(".line");
|
|
60
|
+
const firstLinePointEls = await allLineEls[0].querySelectorAll(".point");
|
|
61
|
+
const firstLineLineEls = await allLineEls[0].querySelectorAll("line");
|
|
62
|
+
const secondLinePointEls = await allLineEls[1].querySelectorAll(".point");
|
|
63
|
+
const secondLineLineEls = await allLineEls[1].querySelectorAll("line");
|
|
64
|
+
const thirdLinePointEls = await allLineEls[2].querySelectorAll(".point");
|
|
65
|
+
const thirdLineLineEls = await allLineEls[2].querySelectorAll("line");
|
|
66
|
+
// each line has 5 intervals
|
|
67
|
+
// first line has 0 nulls
|
|
68
|
+
// second line has 1 null
|
|
69
|
+
// third line has 2 nulls
|
|
70
|
+
expect(allPointEls.length).toBe(12);
|
|
71
|
+
expect(firstLinePointEls.length).toBe(5);
|
|
72
|
+
expect(firstLineLineEls.length).toBe(4);
|
|
73
|
+
expect(secondLinePointEls.length).toBe(4);
|
|
74
|
+
expect(secondLineLineEls.length).toBe(2);
|
|
75
|
+
expect(thirdLinePointEls.length).toBe(3);
|
|
76
|
+
expect(thirdLineLineEls.length).toBe(1);
|
|
77
|
+
});
|
|
78
|
+
it("calculates deltas correctly", async () => {
|
|
79
|
+
const component = await new LineChart();
|
|
80
|
+
let previousPoint = {
|
|
81
|
+
lineLabel: "fake label",
|
|
82
|
+
xValue: "2020",
|
|
83
|
+
yValue: 999,
|
|
84
|
+
xPositionPercent: 0,
|
|
85
|
+
yPositionPercent: 10,
|
|
86
|
+
highlighted: false,
|
|
87
|
+
};
|
|
88
|
+
let currentPoint = {
|
|
89
|
+
lineLabel: "fake label",
|
|
90
|
+
xValue: "2021",
|
|
91
|
+
yValue: 999,
|
|
92
|
+
xPositionPercent: 20,
|
|
93
|
+
yPositionPercent: 12,
|
|
94
|
+
highlighted: false,
|
|
95
|
+
};
|
|
96
|
+
previousPoint.yValue = 10;
|
|
97
|
+
currentPoint.yValue = 12;
|
|
98
|
+
expect(component.calcDelta(currentPoint, previousPoint)).toBe("+20%");
|
|
99
|
+
previousPoint.yValue = 10;
|
|
100
|
+
currentPoint.yValue = 7;
|
|
101
|
+
expect(component.calcDelta(currentPoint, previousPoint)).toBe("-30%");
|
|
102
|
+
previousPoint.yValue = 12;
|
|
103
|
+
currentPoint.yValue = 10;
|
|
104
|
+
expect(component.calcDelta(currentPoint, previousPoint)).toBe("-16.67%");
|
|
105
|
+
previousPoint.yValue = 0;
|
|
106
|
+
currentPoint.yValue = 1;
|
|
107
|
+
expect(component.calcDelta(currentPoint, previousPoint)).toBe("-");
|
|
108
|
+
previousPoint.yValue = 17;
|
|
109
|
+
currentPoint.yValue = 0;
|
|
110
|
+
expect(component.calcDelta(currentPoint, previousPoint)).toBe("-100%");
|
|
111
|
+
});
|
|
112
|
+
it("uses label-width to set y-axis label width", async () => {
|
|
113
|
+
page = await newSpecPage({
|
|
114
|
+
components: [LineChart],
|
|
115
|
+
html: `<wm-line-chart
|
|
116
|
+
label="Regional Job Trends"
|
|
117
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
118
|
+
x-axis-label="Year"
|
|
119
|
+
y-axis-label="Change Since 2020"
|
|
120
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
|
|
121
|
+
>
|
|
122
|
+
</wm-line-chart>`,
|
|
123
|
+
});
|
|
124
|
+
let yAxisLabel = await page.root.shadowRoot.querySelector(".--y-axis");
|
|
125
|
+
expect(yAxisLabel.style.cssText).toBe("--labelWidth: 120px;");
|
|
126
|
+
page = await newSpecPage({
|
|
127
|
+
components: [LineChart],
|
|
128
|
+
html: `<wm-line-chart
|
|
129
|
+
label="Regional Job Trends"
|
|
130
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
131
|
+
x-axis-label="Year"
|
|
132
|
+
y-axis-label="Change Since 2020"
|
|
133
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
|
|
134
|
+
label-width="23%"
|
|
135
|
+
>
|
|
136
|
+
</wm-line-chart>`,
|
|
137
|
+
});
|
|
138
|
+
yAxisLabel = await page.root.shadowRoot.querySelector(".--y-axis");
|
|
139
|
+
expect(yAxisLabel.style.cssText).toBe("--labelWidth: 23%;");
|
|
140
|
+
});
|
|
141
|
+
it("sets custom y-range if provided, abbreviates y-axis numbers of thousands", async () => {
|
|
142
|
+
page = await newSpecPage({
|
|
143
|
+
components: [LineChart],
|
|
144
|
+
html: `<wm-line-chart
|
|
145
|
+
label="Regional Job Trends"
|
|
146
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
147
|
+
x-axis-label="Year"
|
|
148
|
+
y-axis-label="Change Since 2020"
|
|
149
|
+
line-data='{"Regional": {"2020": -10000, "2021": 10900, "2022": 40200} }'
|
|
150
|
+
y-range="-13300,0,100,10000,20945,30099,40520"
|
|
151
|
+
>
|
|
152
|
+
</wm-line-chart>`,
|
|
153
|
+
});
|
|
154
|
+
const yIntervals = await page.root.shadowRoot.querySelectorAll(".y-interval");
|
|
155
|
+
expect(yIntervals[0].textContent).toBe("40.5K");
|
|
156
|
+
expect(yIntervals[1].textContent).toBe("30.1K");
|
|
157
|
+
expect(yIntervals[2].textContent).toBe("20.9K");
|
|
158
|
+
expect(yIntervals[3].textContent).toBe("10K");
|
|
159
|
+
expect(yIntervals[4].textContent).toBe("100");
|
|
160
|
+
expect(yIntervals[5].textContent).toBe("0");
|
|
161
|
+
expect(yIntervals[6].textContent).toBe("-13.3K");
|
|
162
|
+
});
|
|
163
|
+
});
|
|
@@ -87,6 +87,9 @@
|
|
|
87
87
|
gap: 2px;
|
|
88
88
|
margin-bottom: 8px;
|
|
89
89
|
}
|
|
90
|
+
:host .component-wrapper .bar-wrapper .inner-stacked-bar-wrapper .values.none {
|
|
91
|
+
margin: 0;
|
|
92
|
+
}
|
|
90
93
|
:host .component-wrapper .bar-wrapper .inner-stacked-bar-wrapper .stacked-bar-segments-wrapper {
|
|
91
94
|
display: flex;
|
|
92
95
|
gap: 2px;
|
|
@@ -262,7 +265,7 @@
|
|
|
262
265
|
}
|
|
263
266
|
:host .component-wrapper.bar3 .chart-wrapper {
|
|
264
267
|
position: relative;
|
|
265
|
-
height:
|
|
268
|
+
height: 116px;
|
|
266
269
|
}
|
|
267
270
|
:host .component-wrapper.bar3 .chart-wrapper .inner-stacked-bar-wrapper {
|
|
268
271
|
position: absolute;
|
|
@@ -276,22 +279,24 @@
|
|
|
276
279
|
position: absolute;
|
|
277
280
|
top: 0;
|
|
278
281
|
left: 0;
|
|
279
|
-
|
|
280
|
-
width: 100%;
|
|
282
|
+
width: calc(100% + 4px);
|
|
281
283
|
overflow: visible;
|
|
282
|
-
transform:
|
|
284
|
+
transform: translate(-4px, 96px);
|
|
283
285
|
}
|
|
284
286
|
:host .component-wrapper.bar3 .chart-wrapper .axis line {
|
|
285
287
|
stroke: var(--wmcolor-chart-gridline);
|
|
286
288
|
stroke-width: 1px;
|
|
287
289
|
}
|
|
288
|
-
:host .component-wrapper.bar3 .chart-wrapper .axis text {
|
|
289
|
-
transform: translate(4px, 24px);
|
|
290
|
-
text-anchor: middle;
|
|
291
|
-
}
|
|
292
290
|
:host .component-wrapper.bar3 .hidden-values-warning {
|
|
293
291
|
margin-top: 1.25rem;
|
|
294
292
|
}
|
|
293
|
+
:host .component-wrapper.bar3 .bar3-axis-label {
|
|
294
|
+
position: absolute;
|
|
295
|
+
bottom: 0px;
|
|
296
|
+
width: 100%;
|
|
297
|
+
display: flex;
|
|
298
|
+
justify-content: space-between;
|
|
299
|
+
}
|
|
295
300
|
:host .component-wrapper.bar6, :host .component-wrapper.bar7 {
|
|
296
301
|
--chartPadding: 48px;
|
|
297
302
|
align-items: flex-start;
|
|
@@ -90,7 +90,7 @@ export class ProgressIndicator {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
render() {
|
|
93
|
-
return (h(Host, {
|
|
93
|
+
return (h(Host, { onBlur: () => exitChart.call(this) }, h("div", { ref: (el) => (this.componentWrapperEl = el), class: `component-wrapper ${this.mode} ${this.isTabbing && !this.userIsNavigating ? "user-is-tabbing" : ""}`, role: "application", "aria-label": this.ariaLabelText, tabindex: "0", "aria-roledescription": this.chartRoleDescription, "aria-describedby": `chart-instructions` }, h("label", { id: `label-${this.uid}`, class: `label ${this.barLabelsWidth && this.mode === "bar" ? "custom-width" : ""}`, style: { "--custom-label-width": this.barLabelsWidth }, htmlFor: `graphic-${this.uid}` }, h("span", { class: "label-text" }, this.label), this.subinfo ? h("span", { class: "subinfo" }, this.subinfo) : ""), this.mode && this.renderBarOrDoughnut(), this.mode === "doughnut" ? renderLegend.call(this, this.mode) : "", h("priv-chart-popover", { class: this.isTabbing ? "user-is-tabbing" : "", onIntChartPopoverOpenChanged: (ev) => this.handlePopoverOpenChanged(ev) }), this.mode === "doughnut" ? renderCompletionMessage.call(this) : ""), renderInstructionsText()));
|
|
94
94
|
}
|
|
95
95
|
static get is() { return "wm-progress-indicator"; }
|
|
96
96
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
+
import { AxePuppeteer } from "@axe-core/puppeteer";
|
|
3
|
+
describe("Progress Monitor", () => {
|
|
4
|
+
let page;
|
|
5
|
+
async function createPageHelper() {
|
|
6
|
+
page = await newE2EPage();
|
|
7
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
8
|
+
<wm-progress-monitor id="first-monitor">
|
|
9
|
+
<wm-progress-indicator label="First Indicator">
|
|
10
|
+
<wm-progress-slice amount="5" popover-title="5/20 Completed" popover-text="Popover text" popover-button-text="Button text" legend="completed" </wm-progress-slice>
|
|
11
|
+
<wm-progress-slice amount="15" popover-title="15/20 Not completed" popover-text="Popover text" popover-button-text="Button text" legend="not completed" </wm-progress-slice>
|
|
12
|
+
</wm-progress-indicator>
|
|
13
|
+
<wm-progress-indicator label="Second Indicator">
|
|
14
|
+
<wm-progress-slice amount="3" popover-title="3/20 Completed" popover-text="Popover text" popover-button-text="Button text" legend="completed" </wm-progress-slice>
|
|
15
|
+
<wm-progress-slice amount="17" popover-title="17/20 Not completed" popover-text="Popover text" popover-button-text="Button text" legend="not completed" </wm-progress-slice>
|
|
16
|
+
</wm-progress-indicator>
|
|
17
|
+
</wm-progress-monitor>
|
|
18
|
+
</main></body></html>`);
|
|
19
|
+
}
|
|
20
|
+
it("passes Axe checks", async () => {
|
|
21
|
+
await createPageHelper();
|
|
22
|
+
const results = await new AxePuppeteer(page).analyze();
|
|
23
|
+
expect(results.violations.length).toBe(0);
|
|
24
|
+
});
|
|
25
|
+
// Monitor toggles Indicator modes
|
|
26
|
+
it("toggles indicator modes", async () => {
|
|
27
|
+
await createPageHelper();
|
|
28
|
+
const indicator = await page.find("wm-progress-indicator");
|
|
29
|
+
page.setViewport({ width: 500, height: 900 });
|
|
30
|
+
await page.waitForChanges();
|
|
31
|
+
let classes = indicator.shadowRoot.querySelector(".component-wrapper").getAttribute("class");
|
|
32
|
+
expect(classes).toContain("bar");
|
|
33
|
+
page.setViewport({ width: 700, height: 900 });
|
|
34
|
+
await page.waitForChanges();
|
|
35
|
+
classes = indicator.shadowRoot.querySelector(".component-wrapper").getAttribute("class");
|
|
36
|
+
expect(classes).toContain("doughnut");
|
|
37
|
+
});
|
|
38
|
+
/* can't get the popover to show
|
|
39
|
+
// Slices read x of y {{popover text}}
|
|
40
|
+
it("announces the slice to SR", async () => {
|
|
41
|
+
await createPageHelper();
|
|
42
|
+
const indicator = await page.find("wm-progress-indicator");
|
|
43
|
+
await page.keyboard.press("Tab");
|
|
44
|
+
await page.waitForChanges();
|
|
45
|
+
await page.keyboard.press("ArrowDown");
|
|
46
|
+
await page.waitForChanges();
|
|
47
|
+
const popover = indicator.shadowRoot.querySelector("priv-chart-popover");
|
|
48
|
+
const results = await page.compareScreenshot();
|
|
49
|
+
expect(results).toMatchScreenshot({ allowableMismatchedPixels: 100 });
|
|
50
|
+
|
|
51
|
+
popover.open = true;
|
|
52
|
+
const liveRegion = popover.querySelector(".live-region");
|
|
53
|
+
expect(liveRegion.textContent).toBe("");
|
|
54
|
+
});
|
|
55
|
+
*/
|
|
56
|
+
/*** E2E ***/
|
|
57
|
+
// Doughnuts display in row, bars display in column
|
|
58
|
+
// Popovers automatically appear when navigating via keyboard
|
|
59
|
+
// Popovers emit wmProgressIndicatorButtonTriggered
|
|
60
|
+
// Tab navigates through indicators, no tab stop on Monitor
|
|
61
|
+
// Clicking a slice opens the popover
|
|
62
|
+
// Clicking outside or hitting escape closes the popover
|
|
63
|
+
/*** CAN'T BE TESTED? ***/
|
|
64
|
+
// Default breakpoint is the width of all children
|
|
65
|
+
// Breakpoint is customizable
|
|
66
|
+
//// including "px" makes it px
|
|
67
|
+
//// # less than 100 refers to # of charts
|
|
68
|
+
//// # greater than 100 refers to px
|
|
69
|
+
});
|
|
@@ -59,7 +59,7 @@ export class ProgressMonitor {
|
|
|
59
59
|
}))));
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
|
-
return (h(Host, {
|
|
62
|
+
return (h(Host, { class: this.mode === "doughnut" ? "row" : "column" }, this.modeInitialized && this.groupLegend && this.mode === "bar" && this.renderLegend(), this.modeInitialized && h("slot", null)));
|
|
63
63
|
}
|
|
64
64
|
static get is() { return "wm-progress-monitor"; }
|
|
65
65
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { ProgressMonitor } from "./wm-progress-monitor";
|
|
3
|
+
import { ProgressIndicator } from "./wm-progress-indicator";
|
|
4
|
+
import { ProgressSlice } from "./wm-progress-slice";
|
|
5
|
+
import * as globalFuncs from "../../../global/functions";
|
|
6
|
+
jest.spyOn(globalFuncs, "generateId");
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
globalFuncs.generateId.mockImplementation(() => "random-id");
|
|
9
|
+
// mock ResizeObserver
|
|
10
|
+
global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
11
|
+
observe: jest.fn(),
|
|
12
|
+
unobserve: jest.fn(),
|
|
13
|
+
disconnect: jest.fn(),
|
|
14
|
+
}));
|
|
15
|
+
async function createPageHelper() {
|
|
16
|
+
return await newSpecPage({
|
|
17
|
+
components: [ProgressMonitor, ProgressIndicator, ProgressSlice],
|
|
18
|
+
html: `<wm-progress-monitor id="first-monitor">
|
|
19
|
+
<wm-progress-indicator label="First Indicator">
|
|
20
|
+
<wm-progress-slice
|
|
21
|
+
amount="5"
|
|
22
|
+
popover-title="5/20 Completed"
|
|
23
|
+
popover-text="Popover text"
|
|
24
|
+
popover-button-text="Button text"
|
|
25
|
+
legend="completed"
|
|
26
|
+
></wm-progress-slice>
|
|
27
|
+
<wm-progress-slice
|
|
28
|
+
amount="15"
|
|
29
|
+
popover-title="15/20 Not completed"
|
|
30
|
+
popover-text="Popover text"
|
|
31
|
+
popover-button-text="Button text"
|
|
32
|
+
legend="not completed"
|
|
33
|
+
></wm-progress-slice>
|
|
34
|
+
</wm-progress-indicator>
|
|
35
|
+
<wm-progress-indicator label="Second Indicator">
|
|
36
|
+
<wm-progress-slice
|
|
37
|
+
amount="3"
|
|
38
|
+
popover-title="3/20 Completed"
|
|
39
|
+
popover-text="Popover text"
|
|
40
|
+
popover-button-text="Button text"
|
|
41
|
+
legend="completed"
|
|
42
|
+
></wm-progress-slice>
|
|
43
|
+
<wm-progress-slice
|
|
44
|
+
amount="17"
|
|
45
|
+
popover-title="17/20 Not completed"
|
|
46
|
+
popover-text="Popover text"
|
|
47
|
+
popover-button-text="Button text"
|
|
48
|
+
legend="not completed"
|
|
49
|
+
></wm-progress-slice>
|
|
50
|
+
</wm-progress-indicator>
|
|
51
|
+
</wm-progress-monitor>`,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
describe("Progress Monitor", () => {
|
|
55
|
+
it("builds", async () => {
|
|
56
|
+
const page = await createPageHelper();
|
|
57
|
+
expect(page.root).toMatchSnapshot();
|
|
58
|
+
});
|
|
59
|
+
it("properties and attributes", async () => {
|
|
60
|
+
var _a;
|
|
61
|
+
const page = await createPageHelper();
|
|
62
|
+
const indicator = page.root.querySelector("wm-progress-indicator");
|
|
63
|
+
expect(indicator).toHaveProperty("label");
|
|
64
|
+
expect(indicator).toHaveProperty("subinfo");
|
|
65
|
+
expect(indicator).toHaveProperty("completionMessage");
|
|
66
|
+
expect(indicator).toHaveProperty("showLegend");
|
|
67
|
+
const indicatorComponentWrapper = (_a = indicator.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".component-wrapper");
|
|
68
|
+
expect(indicatorComponentWrapper).toEqualAttribute("role", "application");
|
|
69
|
+
expect(indicatorComponentWrapper).toEqualAttribute("aria-label", "First Indicator");
|
|
70
|
+
expect(indicatorComponentWrapper).toEqualAttribute("aria-roledescription", "Interactive chart");
|
|
71
|
+
expect(indicatorComponentWrapper).toEqualAttribute("aria-describedby", "chart-instructions");
|
|
72
|
+
const slice = page.root.querySelector("wm-progress-slice");
|
|
73
|
+
expect(slice).toHaveProperty("amount");
|
|
74
|
+
expect(slice).toHaveProperty("legend");
|
|
75
|
+
expect(slice).toHaveProperty("popoverTitle");
|
|
76
|
+
expect(slice).toHaveProperty("popoverText");
|
|
77
|
+
expect(slice).toHaveProperty("popoverButtonText");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -544,11 +544,11 @@ export class PrivCalendar {
|
|
|
544
544
|
}), class: "header-btn arw-btn" }, h("span", { class: "mdi" }, "\uF142"))), h("div", { "aria-labelledby": "popup-title-year", role: "grid", class: "months" }, h("div", { role: "row", class: "month-row" }, calendar_months.slice(0, 3).map((month, index) => this.renderMonth(month, index))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(3, 6).map((month, index) => this.renderMonth(month, index + 3))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(6, 9).map((month, index) => this.renderMonth(month, index + 6))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(9).map((month, index) => this.renderMonth(month, index + 9))))));
|
|
545
545
|
}
|
|
546
546
|
render() {
|
|
547
|
-
return (h(Host, {
|
|
547
|
+
return (h(Host, { onMouseOut: (ev) => {
|
|
548
548
|
// @ts-ignore
|
|
549
549
|
if (!this.el.parentElement.contains(ev.toElement))
|
|
550
550
|
this.outOfCal.emit();
|
|
551
|
-
}, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", {
|
|
551
|
+
}, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", { id: "application", class: "sr-only" }, this.calName, this.calInstructions)));
|
|
552
552
|
}
|
|
553
553
|
static get is() { return "priv-calendar"; }
|
|
554
554
|
static get originalStyleUrls() {
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { PrivCalendar } from "./priv-calendar";
|
|
3
|
+
import { dateFind, getMonthLength } from "../../../global/functions";
|
|
4
|
+
describe("priv-calendar", () => {
|
|
5
|
+
// ts erroneously prints a warning (unused var)
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
let page, privCalendar;
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
page = await newSpecPage({
|
|
10
|
+
components: [PrivCalendar],
|
|
11
|
+
html: "<priv-calendar></priv-calendar>",
|
|
12
|
+
});
|
|
13
|
+
privCalendar = page.root;
|
|
14
|
+
});
|
|
15
|
+
it("gets the number of days in a month", async () => {
|
|
16
|
+
expect(getMonthLength(1, 2021)).toBe(31);
|
|
17
|
+
expect(getMonthLength(2, 2021)).toBe(28);
|
|
18
|
+
expect(getMonthLength(2, 2020)).toBe(29);
|
|
19
|
+
expect(getMonthLength(11, 2067)).toBe(30);
|
|
20
|
+
expect(getMonthLength(13, 2)).toBe(31); // returns 31 by default
|
|
21
|
+
});
|
|
22
|
+
it("removes leading zeroes", async () => {
|
|
23
|
+
const pd = new PrivCalendar();
|
|
24
|
+
expect(pd.removeZeroes("12")).toBe(12);
|
|
25
|
+
expect(pd.removeZeroes("01")).toBe(1);
|
|
26
|
+
expect(pd.removeZeroes("0001312")).toBe(1312);
|
|
27
|
+
// note that the function only works for integers
|
|
28
|
+
// the following would fail
|
|
29
|
+
// expect(pd.removeZeroes("3.1415")).toBe(3.1415);
|
|
30
|
+
});
|
|
31
|
+
it("finds the first weekday of the month", async () => {
|
|
32
|
+
// 1 = Sunday, 7 = Saturday
|
|
33
|
+
const pd = new PrivCalendar();
|
|
34
|
+
expect(pd.getMonthFirstDay(2, 2021)).toBe(2); // Mon
|
|
35
|
+
expect(pd.getMonthFirstDay(7, 1986)).toBe(3); // Tue
|
|
36
|
+
expect(pd.getMonthFirstDay(12, 2030)).toBe(1); // Sun
|
|
37
|
+
});
|
|
38
|
+
it("generates the calendar dates", async () => {
|
|
39
|
+
const pd = new PrivCalendar();
|
|
40
|
+
expect(pd.getCalendarDates("2021-08-14")).toMatchSnapshot();
|
|
41
|
+
});
|
|
42
|
+
// dateFind helper
|
|
43
|
+
it("gets the right dates", async () => {
|
|
44
|
+
expect(dateFind.year.asString("2000-03-23")).toStrictEqual("2000");
|
|
45
|
+
expect(dateFind.year.asInt("2000-03-23")).toStrictEqual(2000);
|
|
46
|
+
expect(dateFind.month.asString("2000-03-23")).toStrictEqual("03");
|
|
47
|
+
expect(dateFind.month.asInt("2000-03-23")).toStrictEqual(3);
|
|
48
|
+
expect(dateFind.day.asString("2000-03-23")).toStrictEqual("23");
|
|
49
|
+
expect(dateFind.day.asInt("2000-03-23")).toStrictEqual(23);
|
|
50
|
+
let res;
|
|
51
|
+
res = dateFind.year.decrease("2000-03-23", 2);
|
|
52
|
+
expect(res).toStrictEqual("1998-03-23");
|
|
53
|
+
res = dateFind.year.increase("1998-03-23", 2);
|
|
54
|
+
expect(res).toStrictEqual("2000-03-23");
|
|
55
|
+
res = dateFind.month.decrease("2000-03-23", 3);
|
|
56
|
+
expect(res).toStrictEqual("1999-12-23");
|
|
57
|
+
res = dateFind.month.increase("2000-11-23", 2);
|
|
58
|
+
expect(res).toStrictEqual("2001-01-23");
|
|
59
|
+
res = dateFind.month.increase("2024-10-01", 1);
|
|
60
|
+
expect(res).toStrictEqual("2024-11-01");
|
|
61
|
+
res = dateFind.day.decrease("2024-03-03", 3);
|
|
62
|
+
expect(res).toStrictEqual("2024-02-29");
|
|
63
|
+
res = dateFind.day.increase("2024-09-29", 5);
|
|
64
|
+
expect(res).toStrictEqual("2024-10-04");
|
|
65
|
+
});
|
|
66
|
+
// _focus accessor
|
|
67
|
+
it("gets the right focus dates", async () => {
|
|
68
|
+
const c = new PrivCalendar();
|
|
69
|
+
c.focusDate = "2000-01-02";
|
|
70
|
+
expect(c._focus.year.asString()).toStrictEqual("2000");
|
|
71
|
+
expect(c._focus.year.asInt()).toStrictEqual(2000);
|
|
72
|
+
expect(c._focus.month.asString()).toStrictEqual("01");
|
|
73
|
+
expect(c._focus.month.asInt()).toStrictEqual(1);
|
|
74
|
+
expect(c._focus.day.asString()).toStrictEqual("02");
|
|
75
|
+
expect(c._focus.day.asInt()).toStrictEqual(2);
|
|
76
|
+
c._focus.year.decrease(2);
|
|
77
|
+
expect(c.focusDate).toStrictEqual("1998-01-02");
|
|
78
|
+
c._focus.year.increase(2);
|
|
79
|
+
expect(c.focusDate).toStrictEqual("2000-01-02");
|
|
80
|
+
c._focus.month.decrease(2);
|
|
81
|
+
expect(c.focusDate).toStrictEqual("1999-11-02");
|
|
82
|
+
c._focus.month.increase(2);
|
|
83
|
+
expect(c.focusDate).toStrictEqual("2000-01-02");
|
|
84
|
+
c._focus.day.decrease(2);
|
|
85
|
+
expect(c.focusDate).toStrictEqual("1999-12-31");
|
|
86
|
+
c._focus.day.increase(2);
|
|
87
|
+
expect(c.focusDate).toStrictEqual("2000-01-02");
|
|
88
|
+
});
|
|
89
|
+
});
|