@watermarkinsights/ripple 5.7.0-8 → 5.7.0-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chartFunctions-d2a1f4c7.js → chartFunctions-995023b1.js} +3 -3
- package/dist/cjs/{functions-5ac8a62f.js → functions-e24249e6.js} +7 -104
- package/dist/{esm/app-globals-0f27630e.js → cjs/global-80ed0881.js} +2 -7
- package/dist/cjs/index-e86c28b6.js +2649 -0
- package/dist/cjs/{intl-57d1cfd1.js → intl-5aeba788.js} +1 -1
- package/dist/cjs/loader.cjs.js +4 -5
- package/dist/cjs/priv-calendar.cjs.entry.js +5 -6
- package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
- package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
- package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
- package/dist/cjs/priv-option-list.cjs.entry.js +9 -6
- package/dist/cjs/ripple.cjs.js +12 -13
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
- package/dist/cjs/wm-button.cjs.entry.js +4 -5
- package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +6 -7
- package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
- package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
- package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
- package/dist/cjs/wm-file.cjs.entry.js +4 -5
- package/dist/cjs/wm-input.cjs.entry.js +5 -6
- package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +8 -11
- package/dist/cjs/wm-modal_3.cjs.entry.js +10 -13
- package/dist/cjs/wm-navigation_3.cjs.entry.js +10 -13
- package/dist/cjs/wm-navigator.cjs.entry.js +3 -4
- package/dist/cjs/wm-nested-select.cjs.entry.js +29 -21
- package/dist/cjs/wm-optgroup.cjs.entry.js +4 -5
- package/dist/cjs/wm-option_2.cjs.entry.js +9 -11
- 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 +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 +1 -1
- package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
- package/dist/collection/components/charts/screenshots.e2e.js +96 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
- package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
- package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
- package/dist/collection/components/datepickers/wm-date-range.js +13 -17
- package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
- package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
- package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
- package/dist/collection/components/selects/priv-option-list/priv-option-list.css +16 -6
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +9 -7
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +5 -5
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +26 -16
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +1 -1
- package/dist/collection/components/selects/wm-option/wm-option.e2e.js +22 -0
- package/dist/collection/components/selects/wm-option/wm-option.js +1 -1
- package/dist/collection/components/selects/wm-option/wm-option.spec.js +63 -0
- package/dist/collection/components/selects/wm-select/wm-select.css +3 -3
- package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
- package/dist/collection/components/selects/wm-select/wm-select.js +2 -2
- package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
- package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
- package/dist/collection/components/wm-button/wm-button.js +1 -1
- package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
- package/dist/collection/components/wm-file/wm-file.js +1 -1
- package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
- package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
- package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
- package/dist/collection/components/wm-input/wm-input.js +1 -1
- package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
- package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
- package/dist/collection/components/wm-modal/wm-modal.js +2 -2
- package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +1 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +1 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +2 -2
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
- package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
- package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
- package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
- package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
- package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
- package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
- package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
- package/dist/collection/components/wm-search/wm-search.js +4 -5
- package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.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-6666ced3.js → chartFunctions-dfcb1edf.js} +3 -3
- package/dist/esm/{functions-03966124.js → functions-b791a892.js} +8 -105
- package/dist/{cjs/app-globals-1f689ab3.js → esm/global-525745d2.js} +1 -10
- package/dist/esm/index-558b5a82.js +2618 -0
- package/dist/esm/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
- package/dist/esm/loader.js +5 -6
- package/dist/esm/priv-calendar.entry.js +5 -6
- package/dist/esm/priv-chart-popover.entry.js +5 -6
- package/dist/esm/priv-navigator-button.entry.js +3 -4
- package/dist/esm/priv-navigator-item.entry.js +3 -4
- package/dist/esm/priv-option-list.entry.js +9 -6
- package/dist/esm/ripple.js +13 -14
- package/dist/esm/wm-action-menu_2.entry.js +6 -8
- package/dist/esm/wm-button.entry.js +4 -5
- package/dist/esm/wm-chart-slice.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +6 -7
- package/dist/esm/wm-date-range.entry.js +8 -9
- package/dist/esm/wm-datepicker.entry.js +8 -9
- package/dist/esm/wm-file-list.entry.js +3 -4
- package/dist/esm/wm-file.entry.js +4 -5
- package/dist/esm/wm-input.entry.js +5 -6
- package/dist/esm/wm-line-chart.entry.js +14 -15
- package/dist/esm/wm-modal-pss_3.entry.js +8 -11
- package/dist/esm/wm-modal_3.entry.js +10 -13
- package/dist/esm/wm-navigation_3.entry.js +10 -13
- package/dist/esm/wm-navigator.entry.js +3 -4
- package/dist/esm/wm-nested-select.entry.js +29 -21
- package/dist/esm/wm-optgroup.entry.js +4 -5
- package/dist/esm/wm-option_2.entry.js +9 -11
- 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 +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-6666ced3.js → chartFunctions-dfcb1edf.js} +1 -1
- package/dist/esm-es5/functions-b791a892.js +1 -0
- package/dist/esm-es5/global-525745d2.js +1 -0
- package/dist/esm-es5/index-558b5a82.js +1 -0
- package/dist/esm-es5/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
- package/dist/esm-es5/priv-option-list.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file-list.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
- package/dist/esm-es5/wm-modal_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-nested-select.entry.js +1 -1
- package/dist/esm-es5/wm-optgroup.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-wrapper.entry.js +1 -1
- package/dist/loader/cdn.js +2 -1
- package/dist/loader/index.cjs.js +2 -1
- package/dist/loader/index.d.ts +0 -3
- package/dist/loader/index.es2017.js +2 -1
- package/dist/loader/index.js +2 -1
- package/dist/ripple/p-01035c8e.system.js +1 -0
- package/dist/ripple/p-012cab20.entry.js +1 -0
- package/dist/ripple/p-021ff5fa.system.entry.js +1 -0
- package/dist/ripple/p-02deae76.entry.js +1 -0
- package/dist/ripple/p-0b1c6965.system.entry.js +1 -0
- package/dist/ripple/p-1092e5ce.js +1 -0
- package/dist/ripple/p-1389302e.system.entry.js +1 -0
- package/dist/ripple/p-149a22bf.entry.js +1 -0
- package/dist/ripple/p-16f65bf4.js +1 -0
- package/dist/ripple/p-1d18d9d2.system.entry.js +1 -0
- package/dist/ripple/p-1e625a5e.entry.js +1 -0
- package/dist/ripple/p-215793a4.entry.js +1 -0
- package/dist/ripple/{p-b4e4479b.js → p-21d372ed.js} +1 -1
- package/dist/ripple/p-226fe4e0.entry.js +1 -0
- package/dist/ripple/p-236af552.entry.js +1 -0
- package/dist/ripple/p-249add87.system.entry.js +1 -0
- package/dist/ripple/p-2e79fa49.entry.js +1 -0
- package/dist/ripple/p-30b905eb.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-3d50db36.entry.js +1 -0
- package/dist/ripple/p-3deaf4d9.system.entry.js +1 -0
- package/dist/ripple/{p-236ee735.system.entry.js → p-3e415c49.system.entry.js} +1 -1
- package/dist/ripple/p-41550baa.entry.js +1 -0
- package/dist/ripple/{p-b47aa85a.entry.js → p-45f9ad09.entry.js} +1 -1
- package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
- package/dist/ripple/{p-26e42263.system.entry.js → p-505eca1c.system.entry.js} +1 -1
- package/dist/ripple/p-5254f902.entry.js +1 -0
- package/dist/ripple/{p-524f0531.entry.js → p-5284791c.entry.js} +1 -1
- package/dist/ripple/{p-da3e143d.entry.js → p-5300b15d.entry.js} +1 -1
- package/dist/ripple/p-568c595f.js +2 -0
- package/dist/ripple/{p-f573e60c.system.entry.js → p-5a9e3108.system.entry.js} +1 -1
- package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
- package/dist/ripple/p-6cc07645.system.entry.js +1 -0
- package/dist/ripple/p-6d129ef8.system.entry.js +1 -0
- package/dist/ripple/p-6e725656.system.entry.js +1 -0
- package/dist/ripple/p-6fdfe9f4.system.entry.js +1 -0
- package/dist/ripple/{p-4b29da45.entry.js → p-72165bd2.entry.js} +1 -1
- package/dist/ripple/p-725230dd.system.entry.js +1 -0
- package/dist/ripple/p-749597da.system.entry.js +1 -0
- package/dist/ripple/{p-b8a3612c.system.js → p-81c2df85.system.js} +1 -1
- package/dist/ripple/{p-094883e1.system.js → p-828adbf1.system.js} +1 -1
- package/dist/ripple/p-83be63f6.entry.js +1 -0
- package/dist/ripple/p-84ba5b74.entry.js +1 -0
- package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
- package/dist/ripple/p-902a54c5.entry.js +1 -0
- package/dist/ripple/p-a0ecb6d7.system.entry.js +1 -0
- package/dist/ripple/{p-0ba0c194.system.entry.js → p-a3c01e10.system.entry.js} +1 -1
- package/dist/ripple/p-ab8d78cc.system.js +2 -0
- package/dist/ripple/p-ade3d9a9.entry.js +1 -0
- package/dist/ripple/p-ae82b3d2.system.js +1 -0
- package/dist/ripple/p-aea13873.entry.js +1 -0
- package/dist/ripple/p-b01f9998.system.entry.js +1 -0
- package/dist/ripple/p-b9dbf1f4.entry.js +1 -0
- package/dist/ripple/p-bf7d98d8.entry.js +1 -0
- package/dist/ripple/{p-dba15615.entry.js → p-c1e3c2fb.entry.js} +1 -1
- package/dist/ripple/{p-4fa245d4.system.entry.js → p-c2e00d4a.system.entry.js} +1 -1
- package/dist/ripple/p-c47fab48.entry.js +1 -0
- package/dist/ripple/{p-6bb9402a.system.entry.js → p-c853e185.system.entry.js} +1 -1
- package/dist/ripple/p-c885c7f9.entry.js +1 -0
- package/dist/ripple/p-c9543950.system.entry.js +1 -0
- package/dist/ripple/{p-e2910f91.system.entry.js → p-ca971eac.system.entry.js} +1 -1
- package/dist/ripple/p-cad0c5f9.system.entry.js +1 -0
- package/dist/ripple/p-cff5d7e9.system.entry.js +1 -0
- package/dist/ripple/{p-60206085.system.entry.js → p-db9657eb.system.entry.js} +1 -1
- package/dist/ripple/p-df157138.entry.js +1 -0
- package/dist/ripple/p-e081fdc2.system.entry.js +1 -0
- package/dist/ripple/{p-2c70503a.entry.js → p-e687176d.entry.js} +1 -1
- package/dist/ripple/p-ed1f6b8d.system.entry.js +1 -0
- package/dist/ripple/{p-785fda3d.js → p-eddbcb21.js} +1 -1
- package/dist/ripple/p-eefbca0e.system.js +1 -0
- package/dist/ripple/p-f13b034e.entry.js +1 -0
- package/dist/ripple/p-f2101a0d.entry.js +1 -0
- package/dist/ripple/p-f24572f5.entry.js +1 -0
- package/dist/ripple/p-f40e1468.system.entry.js +1 -0
- package/dist/ripple/p-f4bcee58.system.entry.js +1 -0
- package/dist/ripple/{p-9511f0c3.entry.js → p-f90e4094.entry.js} +1 -1
- package/dist/ripple/{p-664dc79d.system.entry.js → p-fa4f1030.system.entry.js} +1 -1
- package/dist/ripple/p-ff1ed90f.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +1 -0
- package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +3 -0
- package/dist/types/stencil-public-runtime.d.ts +10 -3
- package/package.json +1 -1
- package/dist/cjs/index-788526f5.js +0 -1859
- package/dist/esm/index-130e07bb.js +0 -1828
- package/dist/esm-es5/app-globals-0f27630e.js +0 -1
- package/dist/esm-es5/functions-03966124.js +0 -1
- package/dist/esm-es5/index-130e07bb.js +0 -1
- package/dist/ripple/p-04c5af17.entry.js +0 -1
- package/dist/ripple/p-1073ab75.system.entry.js +0 -1
- package/dist/ripple/p-1344f4d2.entry.js +0 -1
- package/dist/ripple/p-202cc2fe.system.js +0 -1
- package/dist/ripple/p-2261e8d4.entry.js +0 -1
- package/dist/ripple/p-2300c07b.entry.js +0 -1
- package/dist/ripple/p-2716532e.system.entry.js +0 -1
- package/dist/ripple/p-2903ce15.system.entry.js +0 -1
- package/dist/ripple/p-30f148a7.entry.js +0 -1
- package/dist/ripple/p-39484b51.system.entry.js +0 -1
- package/dist/ripple/p-3e7e6493.system.entry.js +0 -1
- package/dist/ripple/p-4fae07d6.entry.js +0 -1
- package/dist/ripple/p-563f37e8.entry.js +0 -1
- package/dist/ripple/p-5a2431e1.system.entry.js +0 -1
- package/dist/ripple/p-60cb3adc.entry.js +0 -1
- package/dist/ripple/p-618b27e6.entry.js +0 -1
- package/dist/ripple/p-62bb8827.system.entry.js +0 -1
- package/dist/ripple/p-695391a9.system.entry.js +0 -1
- package/dist/ripple/p-6d9acebc.system.entry.js +0 -1
- package/dist/ripple/p-7136efd0.entry.js +0 -1
- package/dist/ripple/p-79979fb1.entry.js +0 -1
- package/dist/ripple/p-7c2846e4.system.entry.js +0 -1
- package/dist/ripple/p-7f162296.system.entry.js +0 -1
- package/dist/ripple/p-7fba9e61.system.entry.js +0 -1
- package/dist/ripple/p-877d35f8.system.entry.js +0 -1
- package/dist/ripple/p-89a862ae.system.entry.js +0 -1
- package/dist/ripple/p-8ef8c943.system.entry.js +0 -1
- package/dist/ripple/p-9062cb9a.entry.js +0 -1
- package/dist/ripple/p-a6466fd1.entry.js +0 -1
- package/dist/ripple/p-ae2b2056.entry.js +0 -1
- package/dist/ripple/p-afa807a5.entry.js +0 -1
- package/dist/ripple/p-b5e7db7f.system.entry.js +0 -1
- package/dist/ripple/p-b8e97d05.system.js +0 -1
- package/dist/ripple/p-b9a8d85b.entry.js +0 -1
- package/dist/ripple/p-bbcc61cf.entry.js +0 -1
- package/dist/ripple/p-c0ccce22.system.entry.js +0 -1
- package/dist/ripple/p-c499cfaf.entry.js +0 -1
- package/dist/ripple/p-c61b29cd.system.entry.js +0 -1
- package/dist/ripple/p-c94976c8.system.entry.js +0 -1
- package/dist/ripple/p-cef8a45b.system.js +0 -2
- package/dist/ripple/p-d307a2d5.system.entry.js +0 -1
- package/dist/ripple/p-d9da0502.js +0 -2
- package/dist/ripple/p-dd23c135.entry.js +0 -1
- package/dist/ripple/p-ded71900.entry.js +0 -1
- package/dist/ripple/p-dfcf2302.system.js +0 -1
- package/dist/ripple/p-e4c40125.js +0 -1
- package/dist/ripple/p-e5f7fbe7.js +0 -1
- package/dist/ripple/p-eaf16578.system.entry.js +0 -1
- package/dist/ripple/p-ed2f0946.entry.js +0 -1
- package/dist/ripple/p-f78d5bc3.entry.js +0 -1
- package/dist/ripple/p-f9df9765.system.entry.js +0 -1
- package/dist/ripple/p-faae9ebb.entry.js +0 -1
- package/dist/ripple/p-fada6923.entry.js +0 -1
- package/dist/ripple/p-fe6522b9.entry.js +0 -1
- package/dist/ripple/p-ff74ec46.system.entry.js +0 -1
- package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +0 -33
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
+
import { AxePuppeteer } from "@axe-core/puppeteer";
|
|
3
|
+
describe("wm-line-chart", () => {
|
|
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-line-chart
|
|
9
|
+
label="Regional Job Trends"
|
|
10
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
11
|
+
x-axis-label="Year"
|
|
12
|
+
y-axis-label="Change Since 2020"
|
|
13
|
+
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} }'
|
|
14
|
+
units="year,%"
|
|
15
|
+
show-deltas="true"
|
|
16
|
+
y-range="0,25,50,75,100"
|
|
17
|
+
highlight-start="2026"
|
|
18
|
+
visibility-toggles="true"
|
|
19
|
+
>
|
|
20
|
+
</wm-line-chart>
|
|
21
|
+
</main></body></html>`);
|
|
22
|
+
}
|
|
23
|
+
it("passes Axe tests", async () => {
|
|
24
|
+
await createPageHelper();
|
|
25
|
+
const results = await new AxePuppeteer(page).analyze();
|
|
26
|
+
expect(results.violations.length).toBe(0);
|
|
27
|
+
});
|
|
28
|
+
it("has keyboard navigation for legend", async () => {
|
|
29
|
+
await createPageHelper();
|
|
30
|
+
// first focus goes to first button
|
|
31
|
+
await page.keyboard.press("Tab");
|
|
32
|
+
await page.waitForChanges();
|
|
33
|
+
let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
34
|
+
await page.waitForChanges();
|
|
35
|
+
expect(activeElId).toBe("visibility-button-0");
|
|
36
|
+
// wraps right
|
|
37
|
+
await page.keyboard.press("ArrowLeft");
|
|
38
|
+
await page.waitForChanges();
|
|
39
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
40
|
+
await page.waitForChanges();
|
|
41
|
+
expect(activeElId).toBe("visibility-button-1");
|
|
42
|
+
await page.keyboard.press("ArrowLeft");
|
|
43
|
+
await page.waitForChanges();
|
|
44
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
45
|
+
await page.waitForChanges();
|
|
46
|
+
expect(activeElId).toBe("visibility-button-0");
|
|
47
|
+
await page.keyboard.press("ArrowRight");
|
|
48
|
+
await page.waitForChanges();
|
|
49
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
50
|
+
await page.waitForChanges();
|
|
51
|
+
expect(activeElId).toBe("visibility-button-1");
|
|
52
|
+
// wraps left
|
|
53
|
+
await page.keyboard.press("ArrowRight");
|
|
54
|
+
await page.waitForChanges();
|
|
55
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
56
|
+
await page.waitForChanges();
|
|
57
|
+
expect(activeElId).toBe("visibility-button-0");
|
|
58
|
+
});
|
|
59
|
+
it("has keyboard navigation for data points", async () => {
|
|
60
|
+
page = await newE2EPage();
|
|
61
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
62
|
+
<wm-line-chart
|
|
63
|
+
label="Regional Job Trends"
|
|
64
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
65
|
+
x-axis-label="Year"
|
|
66
|
+
y-axis-label="Change Since 2020"
|
|
67
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13}, "National": {"2020": 8, "2021": null, "2022": 16}}'
|
|
68
|
+
y-range="0,25,50,75,100"
|
|
69
|
+
>
|
|
70
|
+
</wm-line-chart>
|
|
71
|
+
</main></body></html>`);
|
|
72
|
+
await page.keyboard.press("Tab");
|
|
73
|
+
await page.waitForChanges();
|
|
74
|
+
let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
75
|
+
expect(activeElId).toBe("Regional-0");
|
|
76
|
+
await page.keyboard.press("ArrowRight");
|
|
77
|
+
await page.waitForChanges();
|
|
78
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
79
|
+
await page.waitForChanges();
|
|
80
|
+
expect(activeElId).toBe("Regional-1");
|
|
81
|
+
await page.keyboard.press("ArrowRight");
|
|
82
|
+
await page.waitForChanges();
|
|
83
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
84
|
+
expect(activeElId).toBe("Regional-2");
|
|
85
|
+
// wraps left
|
|
86
|
+
await page.keyboard.press("ArrowRight");
|
|
87
|
+
await page.waitForChanges();
|
|
88
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
89
|
+
expect(activeElId).toBe("Regional-0");
|
|
90
|
+
// wraps Left
|
|
91
|
+
await page.keyboard.press("ArrowLeft");
|
|
92
|
+
await page.waitForChanges();
|
|
93
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
94
|
+
expect(activeElId).toBe("Regional-2");
|
|
95
|
+
await page.keyboard.press("ArrowLeft");
|
|
96
|
+
await page.waitForChanges();
|
|
97
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
98
|
+
expect(activeElId).toBe("Regional-1");
|
|
99
|
+
// next line
|
|
100
|
+
await page.keyboard.press("ArrowLeft");
|
|
101
|
+
await page.waitForChanges();
|
|
102
|
+
await page.keyboard.press("ArrowDown");
|
|
103
|
+
await page.waitForChanges();
|
|
104
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
105
|
+
expect(activeElId).toBe("National-0");
|
|
106
|
+
// skips null data point
|
|
107
|
+
await page.keyboard.press("ArrowLeft");
|
|
108
|
+
await page.waitForChanges();
|
|
109
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
110
|
+
expect(activeElId).toBe("National-2");
|
|
111
|
+
// wraps to first line
|
|
112
|
+
await page.keyboard.press("ArrowLeft");
|
|
113
|
+
await page.waitForChanges();
|
|
114
|
+
await page.keyboard.press("ArrowDown");
|
|
115
|
+
await page.waitForChanges();
|
|
116
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
117
|
+
expect(activeElId).toBe("Regional-0");
|
|
118
|
+
// wraps to last line
|
|
119
|
+
await page.keyboard.press("ArrowUp");
|
|
120
|
+
await page.waitForChanges();
|
|
121
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
122
|
+
expect(activeElId).toBe("National-0");
|
|
123
|
+
await page.keyboard.press("ArrowUp");
|
|
124
|
+
await page.waitForChanges();
|
|
125
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
126
|
+
expect(activeElId).toBe("Regional-0");
|
|
127
|
+
});
|
|
128
|
+
it("visibility toggle hides lines, data points are skipped by navigation", async () => {
|
|
129
|
+
page = await newE2EPage();
|
|
130
|
+
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
131
|
+
<wm-line-chart
|
|
132
|
+
label="Regional Job Trends"
|
|
133
|
+
description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
|
|
134
|
+
x-axis-label="Year"
|
|
135
|
+
y-axis-label="Change Since 2020"
|
|
136
|
+
line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13}, "National": {"2020": 8, "2021": 12, "2022": 16}, "International": {"2020": 8, "2021": 12, "2022": 16}}'
|
|
137
|
+
visibility-toggles="true"
|
|
138
|
+
>
|
|
139
|
+
</wm-line-chart>
|
|
140
|
+
</main></body></html>`);
|
|
141
|
+
const allLineEls = await page.findAll("wm-line-chart >>> .line");
|
|
142
|
+
expect(allLineEls[0]).not.toHaveClass("hidden");
|
|
143
|
+
await page.keyboard.press("Tab");
|
|
144
|
+
await page.waitForChanges();
|
|
145
|
+
// Enter key toggles button
|
|
146
|
+
await page.keyboard.press("Enter");
|
|
147
|
+
await page.waitForChanges();
|
|
148
|
+
expect(allLineEls[0]).toHaveClass("hidden");
|
|
149
|
+
// Space key toggles button
|
|
150
|
+
await page.keyboard.press("Space");
|
|
151
|
+
await page.waitForChanges();
|
|
152
|
+
expect(allLineEls[0]).not.toHaveClass("hidden");
|
|
153
|
+
await page.keyboard.press("Space");
|
|
154
|
+
await page.waitForChanges();
|
|
155
|
+
expect(allLineEls[0]).toHaveClass("hidden");
|
|
156
|
+
// tab focuses first visible data point
|
|
157
|
+
await page.keyboard.press("Tab");
|
|
158
|
+
await page.waitForChanges();
|
|
159
|
+
let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
160
|
+
expect(activeElId).toBe("National-0");
|
|
161
|
+
await page.keyboard.press("ArrowDown");
|
|
162
|
+
await page.waitForChanges();
|
|
163
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
164
|
+
expect(activeElId).toBe("International-0");
|
|
165
|
+
// data point nav skips hidden line
|
|
166
|
+
await page.keyboard.press("ArrowDown");
|
|
167
|
+
await page.waitForChanges();
|
|
168
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
169
|
+
expect(activeElId).toBe("National-0");
|
|
170
|
+
// data point nav skips hidden line
|
|
171
|
+
await page.keyboard.press("ArrowUp");
|
|
172
|
+
await page.waitForChanges();
|
|
173
|
+
activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
174
|
+
expect(activeElId).toBe("International-0");
|
|
175
|
+
});
|
|
176
|
+
});
|
|
@@ -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
|
+
});
|
|
@@ -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() {
|