@watermarkinsights/ripple 4.3.0 → 4.4.0-0
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-cecf8134.js +600 -0
- package/dist/cjs/{functions-91da05e9.js → functions-4208c444.js} +362 -362
- package/dist/cjs/{global-20d48c6c.js → global-bd289a67.js} +24 -24
- package/dist/cjs/{index-fae02cd7.js → index-f8ef86de.js} +436 -150
- package/dist/cjs/interfaces-ad9e80a6.js +38 -0
- package/dist/cjs/intl-3fafc6d1.js +179 -0
- package/dist/cjs/loader.cjs.js +4 -13
- package/dist/cjs/priv-chart-popover.cjs.entry.js +85 -85
- package/dist/cjs/priv-datepicker.cjs.entry.js +637 -637
- package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
- package/dist/cjs/priv-navigator-item.cjs.entry.js +21 -21
- package/dist/cjs/ripple.cjs.js +4 -7
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +314 -314
- package/dist/cjs/wm-button.cjs.entry.js +174 -174
- package/dist/cjs/wm-chart-slice.cjs.entry.js +17 -17
- package/dist/cjs/wm-chart.cjs.entry.js +164 -164
- package/dist/cjs/wm-datepicker.cjs.entry.js +160 -160
- package/dist/cjs/wm-file-list.cjs.entry.js +10 -10
- package/dist/cjs/wm-file.cjs.entry.js +178 -178
- package/dist/cjs/wm-input.cjs.entry.js +102 -102
- package/dist/cjs/wm-line-chart.cjs.entry.js +462 -462
- package/dist/cjs/wm-modal-footer.cjs.entry.js +27 -27
- package/dist/cjs/wm-modal-header.cjs.entry.js +21 -21
- package/dist/cjs/wm-modal.cjs.entry.js +92 -92
- package/dist/cjs/wm-navigation_3.cjs.entry.js +179 -179
- package/dist/cjs/wm-navigator.cjs.entry.js +255 -251
- package/dist/cjs/wm-option_2.cjs.entry.js +710 -710
- package/dist/cjs/wm-pagination.cjs.entry.js +169 -169
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +151 -151
- package/dist/cjs/wm-search.cjs.entry.js +192 -192
- package/dist/cjs/wm-snackbar.cjs.entry.js +114 -114
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +247 -247
- package/dist/cjs/wm-tag-input.cjs.entry.js +849 -849
- package/dist/cjs/wm-tag-option.cjs.entry.js +33 -33
- package/dist/cjs/wm-timepicker.cjs.entry.js +270 -270
- package/dist/cjs/wm-toggletip.cjs.entry.js +99 -99
- package/dist/cjs/wm-uploader.cjs.entry.js +198 -198
- package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
- package/dist/collection/collection-manifest.json +41 -41
- package/dist/collection/components/charts/chartFunctions.js +456 -456
- package/dist/collection/components/charts/chartFunctions.spec.js +13 -13
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +73 -73
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +257 -254
- package/dist/collection/components/charts/screenshots.e2e.js +30 -30
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +121 -121
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +160 -160
- package/dist/collection/components/charts/wm-chart/wm-chart.js +382 -381
- package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +26 -26
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1 -2
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +138 -138
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +731 -731
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +106 -106
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +202 -202
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +54 -54
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +136 -136
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +31 -31
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +119 -119
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +187 -187
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +435 -435
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +35 -35
- package/dist/collection/components/wm-button/wm-button.e2e.js +58 -58
- package/dist/collection/components/wm-button/wm-button.js +454 -452
- package/dist/collection/components/wm-button/wm-button.spec.js +63 -63
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +943 -939
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.spec.js +71 -71
- package/dist/collection/components/wm-datepicker/wm-datepicker.css +1 -2
- package/dist/collection/components/wm-datepicker/wm-datepicker.e2e.js +359 -359
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +415 -413
- package/dist/collection/components/wm-datepicker/wm-datepicker.spec.js +13 -13
- package/dist/collection/components/wm-file/wm-file.js +380 -380
- package/dist/collection/components/wm-file/wm-file.spec.js +107 -107
- package/dist/collection/components/wm-file-list/wm-file-list.js +42 -42
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +47 -47
- package/dist/collection/components/wm-input/wm-input.e2e.js +26 -26
- package/dist/collection/components/wm-input/wm-input.js +453 -453
- package/dist/collection/components/wm-input/wm-input.spec.js +168 -168
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +18 -18
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +446 -436
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +46 -46
- package/dist/collection/components/wm-modal/wm-modal-footer.js +130 -130
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +8 -8
- package/dist/collection/components/wm-modal/wm-modal-header.js +68 -68
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +5 -5
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +65 -65
- package/dist/collection/components/wm-modal/wm-modal.js +299 -296
- package/dist/collection/components/wm-modal/wm-modal.spec.js +22 -22
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +112 -112
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +125 -125
- package/dist/collection/components/wm-navigation/wm-navigation.css +0 -2
- package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +86 -86
- package/dist/collection/components/wm-navigation/wm-navigation.js +209 -209
- package/dist/collection/components/wm-navigation/wm-navigation.spec.js +79 -79
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +30 -30
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +103 -103
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +119 -118
- package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +180 -180
- package/dist/collection/components/wm-navigator/wm-navigator.js +458 -454
- package/dist/collection/components/wm-navigator/wm-navigator.spec.js +153 -153
- package/dist/collection/components/wm-option/wm-option.e2e.js +19 -19
- package/dist/collection/components/wm-option/wm-option.js +474 -463
- package/dist/collection/components/wm-option/wm-option.spec.js +39 -39
- package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +301 -301
- package/dist/collection/components/wm-pagination/wm-pagination.js +327 -327
- package/dist/collection/components/wm-search/wm-search.e2e.js +69 -69
- package/dist/collection/components/wm-search/wm-search.js +415 -414
- package/dist/collection/components/wm-search/wm-search.spec.js +64 -64
- package/dist/collection/components/wm-select/wm-select.e2e.js +443 -443
- package/dist/collection/components/wm-select/wm-select.js +967 -966
- package/dist/collection/components/wm-select/wm-select.spec.js +250 -250
- package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +114 -114
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +209 -207
- package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +4 -4
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +190 -188
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +261 -261
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
- package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +79 -79
- package/dist/collection/components/wm-tabs/wm-tabs.spec.js +6 -6
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +2 -4
- package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +168 -168
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +1159 -1159
- package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +147 -147
- package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +236 -234
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +1 -2
- package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +147 -147
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +531 -527
- package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +151 -151
- package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +61 -61
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +209 -208
- package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +16 -16
- package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +56 -56
- package/dist/collection/components/wm-uploader/wm-uploader.js +423 -422
- package/dist/collection/components/wm-uploader/wm-uploader.spec.js +149 -149
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +26 -26
- package/dist/collection/global/__mocks__/functions.js +1 -1
- package/dist/collection/global/functions.js +510 -510
- package/dist/collection/global/functions.spec.js +123 -123
- package/dist/collection/global/global.js +16 -16
- package/dist/collection/global/interfaces.js +39 -39
- package/dist/collection/global/intl.js +162 -162
- package/dist/collection/global/services/__mocks__/http-service.js +112 -112
- package/dist/collection/global/services/http-service.js +41 -41
- package/dist/collection/global/themes/default.js +4 -4
- package/dist/collection/global/themes/neutral.js +4 -4
- package/dist/collection/lang/lang.spec.js +13 -13
- package/dist/esm/chartFunctions-23173fce.js +584 -0
- package/dist/esm/{functions-5afd09f4.js → functions-d0e70094.js} +362 -362
- package/dist/esm/{global-d4a9e80e.js → global-4569c7b8.js} +24 -24
- package/dist/esm/{index-7e11ea42.js → index-f164fbca.js} +436 -150
- package/dist/esm/interfaces-9b75fb61.js +35 -0
- package/dist/esm/intl-05c9e0c9.js +174 -0
- package/dist/esm/loader.js +5 -14
- package/dist/esm/priv-chart-popover.entry.js +85 -85
- package/dist/esm/priv-datepicker.entry.js +637 -637
- package/dist/esm/priv-navigator-button.entry.js +18 -18
- package/dist/esm/priv-navigator-item.entry.js +21 -21
- package/dist/esm/ripple.js +5 -8
- package/dist/esm/wm-action-menu_2.entry.js +314 -314
- package/dist/esm/wm-button.entry.js +174 -174
- package/dist/esm/wm-chart-slice.entry.js +17 -17
- package/dist/esm/wm-chart.entry.js +164 -164
- package/dist/esm/wm-datepicker.entry.js +160 -160
- package/dist/esm/wm-file-list.entry.js +10 -10
- package/dist/esm/wm-file.entry.js +178 -178
- package/dist/esm/wm-input.entry.js +102 -102
- package/dist/esm/wm-line-chart.entry.js +462 -462
- package/dist/esm/wm-modal-footer.entry.js +27 -27
- package/dist/esm/wm-modal-header.entry.js +21 -21
- package/dist/esm/wm-modal.entry.js +92 -92
- package/dist/esm/wm-navigation_3.entry.js +179 -179
- package/dist/esm/wm-navigator.entry.js +255 -251
- package/dist/esm/wm-option_2.entry.js +710 -710
- package/dist/esm/wm-pagination.entry.js +169 -169
- package/dist/esm/wm-progress-indicator_3.entry.js +151 -151
- package/dist/esm/wm-search.entry.js +192 -192
- package/dist/esm/wm-snackbar.entry.js +114 -114
- package/dist/esm/wm-tab-item_3.entry.js +247 -247
- package/dist/esm/wm-tag-input.entry.js +849 -849
- package/dist/esm/wm-tag-option.entry.js +33 -33
- package/dist/esm/wm-timepicker.entry.js +270 -270
- package/dist/esm/wm-toggletip.entry.js +99 -99
- package/dist/esm/wm-uploader.entry.js +198 -198
- package/dist/esm/wm-wrapper.entry.js +12 -12
- package/dist/esm-es5/chartFunctions-23173fce.js +1 -0
- package/dist/esm-es5/functions-d0e70094.js +1 -0
- package/dist/esm-es5/global-4569c7b8.js +1 -0
- package/dist/esm-es5/index-f164fbca.js +2 -0
- package/dist/esm-es5/{intl-e2da750a.js → intl-05c9e0c9.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-datepicker.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file-list.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js +1 -1
- package/dist/esm-es5/wm-modal.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-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/index.d.ts +1 -1
- package/dist/ripple/p-028ef6db.system.entry.js +1 -0
- package/dist/ripple/{p-863e737a.js → p-05d4e49b.js} +1 -1
- package/dist/ripple/{p-a1e95b05.system.entry.js → p-06776596.system.entry.js} +1 -1
- package/dist/ripple/{p-622a7791.system.entry.js → p-067d7922.system.entry.js} +1 -1
- package/dist/ripple/p-09d62ddd.entry.js +1 -0
- package/dist/ripple/{p-f30839a1.system.entry.js → p-0ecbf569.system.entry.js} +1 -1
- package/dist/ripple/p-0fe97e85.system.js +2 -0
- package/dist/ripple/{p-24b08e1f.js → p-13ca30d8.js} +1 -1
- package/dist/ripple/{p-8f3f903f.system.js → p-1402cfa2.system.js} +1 -1
- package/dist/ripple/p-1453ea51.system.entry.js +1 -0
- package/dist/ripple/{p-6abb903c.entry.js → p-153701f9.entry.js} +1 -1
- package/dist/ripple/p-1cc91907.system.js +1 -0
- package/dist/ripple/{p-ad37cdfd.entry.js → p-1d8b0039.entry.js} +1 -1
- package/dist/ripple/{p-d0f1b8c4.system.entry.js → p-1fa2a756.system.entry.js} +1 -1
- package/dist/ripple/{p-a52c5a1c.entry.js → p-25446670.entry.js} +1 -1
- package/dist/ripple/{p-1283e85d.entry.js → p-27f47edc.entry.js} +1 -1
- package/dist/ripple/{p-32b1126c.system.entry.js → p-28e4583c.system.entry.js} +1 -1
- package/dist/ripple/{p-a5b23781.system.entry.js → p-2c4f312d.system.entry.js} +1 -1
- package/dist/ripple/p-30b17818.system.entry.js +1 -0
- package/dist/ripple/{p-0631be01.system.entry.js → p-3446852f.system.entry.js} +1 -1
- package/dist/ripple/{p-ae674a54.entry.js → p-350fe5da.entry.js} +1 -1
- package/dist/ripple/{p-d04ba5f8.system.entry.js → p-3583d113.system.entry.js} +1 -1
- package/dist/ripple/{p-cbd8a60b.system.entry.js → p-361cc8fc.system.entry.js} +1 -1
- package/dist/ripple/{p-7529706d.entry.js → p-372faf33.entry.js} +1 -1
- package/dist/ripple/{p-19773c40.entry.js → p-3a070f35.entry.js} +1 -1
- package/dist/ripple/{p-c7b5ac39.js → p-3af72848.js} +1 -1
- package/dist/ripple/{p-c41603e6.entry.js → p-42ebfcfa.entry.js} +1 -1
- package/dist/ripple/{p-13594c2e.entry.js → p-43e2a49a.entry.js} +1 -1
- package/dist/ripple/{p-ed942b42.entry.js → p-49118468.entry.js} +1 -1
- package/dist/ripple/p-49c85d1a.system.js +1 -0
- package/dist/ripple/p-4de51706.js +2 -0
- package/dist/ripple/{p-3c80bf67.entry.js → p-58174f4e.entry.js} +1 -1
- package/dist/ripple/{p-c5e8f8a5.system.entry.js → p-5a4d9897.system.entry.js} +1 -1
- package/dist/ripple/{p-e3f0b57f.system.entry.js → p-5ac980e2.system.entry.js} +1 -1
- package/dist/ripple/{p-3becce62.system.entry.js → p-633cd89a.system.entry.js} +1 -1
- package/dist/ripple/{p-1205fdc1.entry.js → p-63f75d43.entry.js} +1 -1
- package/dist/ripple/{p-90ea7e3a.system.entry.js → p-67d48c33.system.entry.js} +1 -1
- package/dist/ripple/{p-8ef87907.entry.js → p-6caaf85f.entry.js} +1 -1
- package/dist/ripple/{p-935513f8.entry.js → p-6cf7a34a.entry.js} +1 -1
- package/dist/ripple/p-73289c2c.system.js +1 -0
- package/dist/ripple/{p-c76bbedf.system.entry.js → p-7a8816d9.system.entry.js} +1 -1
- package/dist/ripple/{p-8ea68cb3.system.entry.js → p-7e56da2e.system.entry.js} +1 -1
- package/dist/ripple/{p-deb4f5a2.entry.js → p-7e8daaac.entry.js} +1 -1
- package/dist/ripple/p-88406560.system.entry.js +1 -0
- package/dist/ripple/{p-84a7e757.entry.js → p-8cace32f.entry.js} +1 -1
- package/dist/ripple/{p-80aef387.entry.js → p-8d4734ad.entry.js} +1 -1
- package/dist/ripple/p-8f76a838.system.entry.js +1 -0
- package/dist/ripple/p-934c1b6b.js +1 -0
- package/dist/ripple/{p-85f744ed.system.js → p-9fecbc8a.system.js} +1 -1
- package/dist/ripple/{p-b71a83e3.entry.js → p-a69c37e0.entry.js} +1 -1
- package/dist/ripple/{p-9288659b.entry.js → p-a82a8931.entry.js} +1 -1
- package/dist/ripple/p-a99b05de.system.entry.js +1 -0
- package/dist/ripple/{p-36049d2f.entry.js → p-aadf8c59.entry.js} +1 -1
- package/dist/ripple/{p-676c1089.system.entry.js → p-aba5a00e.system.entry.js} +1 -1
- package/dist/ripple/{p-0aecac86.entry.js → p-ad6dc751.entry.js} +1 -1
- package/dist/ripple/{p-0f1ff645.entry.js → p-b253d2fc.entry.js} +1 -1
- package/dist/ripple/p-b2ff4723.system.entry.js +1 -0
- package/dist/ripple/{p-a0bf5eef.entry.js → p-b452d1d7.entry.js} +1 -1
- package/dist/ripple/{p-1cde16a7.system.entry.js → p-b4d862e1.system.entry.js} +1 -1
- package/dist/ripple/{p-d496bc44.system.entry.js → p-bdd4f919.system.entry.js} +1 -1
- package/dist/ripple/p-c18b398c.system.js +1 -0
- package/dist/ripple/{p-8f8c3705.entry.js → p-c249063c.entry.js} +1 -1
- package/dist/ripple/p-c344a69c.entry.js +1 -0
- package/dist/ripple/{p-0d9f70ab.entry.js → p-c717d895.entry.js} +1 -1
- package/dist/ripple/{p-2e773564.system.entry.js → p-c96a5c94.system.entry.js} +1 -1
- package/dist/ripple/{p-15497721.system.entry.js → p-ceced3d9.system.entry.js} +1 -1
- package/dist/ripple/{p-d428e9bb.system.entry.js → p-d16f91e9.system.entry.js} +1 -1
- package/dist/ripple/{p-ff14e4ec.system.entry.js → p-d3f9d028.system.entry.js} +1 -1
- package/dist/ripple/{p-7962f562.entry.js → p-de349bee.entry.js} +1 -1
- package/dist/ripple/{p-b3c73bc9.entry.js → p-e24ddae1.entry.js} +1 -1
- package/dist/ripple/{p-b3e08b14.system.entry.js → p-e8b58666.system.entry.js} +1 -1
- package/dist/ripple/{p-a9c096b5.entry.js → p-fa87bce3.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +16 -20
- package/dist/types/components/charts/chartFunctions.d.ts +13 -13
- package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +24 -24
- package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +8 -8
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +39 -39
- package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +74 -74
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +26 -26
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -17
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +7 -7
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -43
- package/dist/types/components/wm-button/wm-button.d.ts +40 -40
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +31 -31
- package/dist/types/components/wm-file/wm-file.d.ts +40 -40
- package/dist/types/components/wm-file-list/wm-file-list.d.ts +3 -3
- package/dist/types/components/wm-input/wm-input.d.ts +46 -46
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +31 -31
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +11 -11
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +7 -7
- package/dist/types/components/wm-modal/wm-modal.d.ts +24 -24
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +13 -13
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +10 -10
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +23 -23
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +7 -7
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +10 -10
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +57 -57
- package/dist/types/components/wm-option/wm-option.d.ts +36 -36
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +27 -27
- package/dist/types/components/wm-search/wm-search.d.ts +73 -73
- package/dist/types/components/wm-select/wm-select.d.ts +99 -99
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +24 -24
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +30 -30
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +41 -41
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +16 -16
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +114 -114
- package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +15 -15
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +48 -48
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +20 -20
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +47 -47
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +4 -4
- package/dist/types/components.d.ts +382 -0
- package/dist/types/global/__mocks__/functions.d.ts +1 -1
- package/dist/types/global/functions.d.ts +4 -4
- package/dist/types/global/interfaces.d.ts +49 -49
- package/dist/types/global/intl.d.ts +31 -31
- package/dist/types/global/services/__mocks__/http-service.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +46 -5
- package/package.json +1 -1
- package/dist/cjs/chartFunctions-2c3e010e.js +0 -600
- package/dist/cjs/interfaces-245d7bff.js +0 -38
- package/dist/cjs/intl-fa3bb4ae.js +0 -179
- package/dist/esm/chartFunctions-36634c04.js +0 -584
- package/dist/esm/interfaces-89cad2fc.js +0 -35
- package/dist/esm/intl-e2da750a.js +0 -174
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm-es5/chartFunctions-36634c04.js +0 -1
- package/dist/esm-es5/functions-5afd09f4.js +0 -1
- package/dist/esm-es5/global-d4a9e80e.js +0 -1
- package/dist/esm-es5/index-7e11ea42.js +0 -2
- package/dist/ripple/p-00acacbe.system.entry.js +0 -1
- package/dist/ripple/p-0f889b84.system.js +0 -1
- package/dist/ripple/p-13af8346.entry.js +0 -1
- package/dist/ripple/p-16363e1c.system.entry.js +0 -1
- package/dist/ripple/p-2a95b63f.system.entry.js +0 -1
- package/dist/ripple/p-30bf24f8.system.js +0 -2
- package/dist/ripple/p-3248c0fa.system.entry.js +0 -1
- package/dist/ripple/p-47c20b05.entry.js +0 -1
- package/dist/ripple/p-56d64283.system.entry.js +0 -1
- package/dist/ripple/p-5e85967a.system.js +0 -1
- package/dist/ripple/p-9b2034f6.js +0 -1
- package/dist/ripple/p-a3d07be5.system.js +0 -1
- package/dist/ripple/p-a6be3cca.system.entry.js +0 -1
- package/dist/ripple/p-aafa111a.system.js +0 -1
- package/dist/ripple/p-b5bedd63.js +0 -2
- package/dist/ripple/p-bd537299.system.entry.js +0 -1
- /package/dist/esm-es5/{interfaces-89cad2fc.js → interfaces-9b75fb61.js} +0 -0
- /package/dist/ripple/{p-c0c111fd.js → p-196eb2f3.js} +0 -0
|
@@ -1,120 +1,120 @@
|
|
|
1
1
|
import { newE2EPage } from "@stencil/core/testing";
|
|
2
2
|
describe("wm-snackbar", () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
3
|
+
let page;
|
|
4
|
+
beforeEach(async () => {
|
|
5
|
+
page = await newE2EPage();
|
|
6
|
+
await page.setContent("<wm-button id='create-snack' onclick='generateSnackbar()'></wm-button><wm-snackbar notifications='[]' id='snack'></wm-snackbar ><script>function generateSnackbar() { const snackbar = document.getElementById('snack'); const id = '3'; let notifications = JSON.parse(snackbar.notifications); let newNotification = {'id': id, message: 'You did something', link: 'Undo'}; let updatedNotifications = [ ...notifications, newNotification ]; snackbar.notifications = JSON.stringify(updatedNotifications); }</script>");
|
|
7
|
+
await page.evaluate(async () => {
|
|
8
|
+
document.addEventListener("keydown", (ev) => {
|
|
9
|
+
if (ev.key == "Tab") {
|
|
10
|
+
document.body.classList.add("user-is-tabbing");
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
document.addEventListener("mousedown", () => {
|
|
14
|
+
document.body.classList.remove("user-is-tabbing");
|
|
15
|
+
});
|
|
16
|
+
document.addEventListener("wmSnackbarSnackFinished", (ev) => {
|
|
17
|
+
const snackbar = document.querySelector("wm-snackbar");
|
|
18
|
+
let newSnacks = JSON.parse(snackbar.notifications).filter((snack) => +snack.id !== +ev.detail.id);
|
|
19
|
+
snackbar.notifications = JSON.stringify(newSnacks);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
21
22
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
jest.clearAllTimers();
|
|
25
|
-
});
|
|
26
|
-
// RENDER
|
|
27
|
-
it("it displays a snackbar when it receives a notification", async () => {
|
|
28
|
-
//generate snackbar
|
|
29
|
-
const button = await page.find("wm-button");
|
|
30
|
-
button.click(); //perform action that generates a notification
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
33
|
-
expect(snackbar).not.toBeNull();
|
|
34
|
-
});
|
|
35
|
-
it("it displays multiple snackbars when it receives more than one notification", async () => {
|
|
36
|
-
//generate snackbars
|
|
37
|
-
const button = await page.find("wm-button");
|
|
38
|
-
button.click();
|
|
39
|
-
await page.waitForChanges();
|
|
40
|
-
button.click();
|
|
41
|
-
await page.waitForChanges();
|
|
42
|
-
const snackbars = await page.findAll("wm-snackbar >>> .wm-snackbarmsg");
|
|
43
|
-
expect(snackbars.length).toBe(2);
|
|
44
|
-
});
|
|
45
|
-
it("dismisses the snackbar after 20 seconds if the user is clicking and not tabbing", async () => {
|
|
46
|
-
//generate snackbar
|
|
47
|
-
const snackExpired = await page.spyOnEvent("wmSnackbarSnackFinished");
|
|
48
|
-
const button = await page.find("wm-button");
|
|
49
|
-
button.click();
|
|
50
|
-
await page.waitForChanges();
|
|
51
|
-
let snack = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
52
|
-
expect(snack).not.toBeNull();
|
|
53
|
-
await new Promise((resolve) => {
|
|
54
|
-
setTimeout(() => {
|
|
55
|
-
resolve("");
|
|
56
|
-
}, 21000);
|
|
23
|
+
afterEach(async () => {
|
|
24
|
+
jest.clearAllTimers();
|
|
57
25
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
26
|
+
// RENDER
|
|
27
|
+
it("it displays a snackbar when it receives a notification", async () => {
|
|
28
|
+
//generate snackbar
|
|
29
|
+
const button = await page.find("wm-button");
|
|
30
|
+
button.click(); //perform action that generates a notification
|
|
31
|
+
await page.waitForChanges();
|
|
32
|
+
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
33
|
+
expect(snackbar).not.toBeNull();
|
|
34
|
+
});
|
|
35
|
+
it("it displays multiple snackbars when it receives more than one notification", async () => {
|
|
36
|
+
//generate snackbars
|
|
37
|
+
const button = await page.find("wm-button");
|
|
38
|
+
button.click();
|
|
39
|
+
await page.waitForChanges();
|
|
40
|
+
button.click();
|
|
41
|
+
await page.waitForChanges();
|
|
42
|
+
const snackbars = await page.findAll("wm-snackbar >>> .wm-snackbarmsg");
|
|
43
|
+
expect(snackbars.length).toBe(2);
|
|
44
|
+
});
|
|
45
|
+
it("dismisses the snackbar after 20 seconds if the user is clicking and not tabbing", async () => {
|
|
46
|
+
//generate snackbar
|
|
47
|
+
const snackExpired = await page.spyOnEvent("wmSnackbarSnackFinished");
|
|
48
|
+
const button = await page.find("wm-button");
|
|
49
|
+
button.click();
|
|
50
|
+
await page.waitForChanges();
|
|
51
|
+
let snack = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
52
|
+
expect(snack).not.toBeNull();
|
|
53
|
+
await new Promise((resolve) => {
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
resolve("");
|
|
56
|
+
}, 21000);
|
|
57
|
+
});
|
|
58
|
+
snack = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
59
|
+
expect(snack).toBeNull();
|
|
60
|
+
expect(snackExpired).toHaveReceivedEventDetail({
|
|
61
|
+
id: "3",
|
|
62
|
+
message: "You did something",
|
|
63
|
+
link: "Undo",
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it("dismisses the snackbar when the close button is clicked", async () => {
|
|
67
|
+
//generate snackbar
|
|
68
|
+
const triggerButton = await page.find("wm-button");
|
|
69
|
+
triggerButton.click();
|
|
70
|
+
await page.waitForChanges();
|
|
71
|
+
//press close button
|
|
72
|
+
const closeButton = await page.find("wm-snackbar >>> button");
|
|
73
|
+
closeButton.click();
|
|
74
|
+
await page.waitForChanges();
|
|
75
|
+
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
76
|
+
expect(snackbar).toBeNull();
|
|
77
|
+
});
|
|
78
|
+
//ACCESSIBILITY
|
|
79
|
+
it("renders an aria-live region", async () => {
|
|
80
|
+
const element = await page.find("wm-snackbar >>> #wm-live-region-snack");
|
|
81
|
+
expect(element).toEqualAttribute("aria-live", "polite");
|
|
82
|
+
});
|
|
83
|
+
it("focuses the action link in snackbar if the user is tabbing", async () => {
|
|
84
|
+
//generate snackbar
|
|
85
|
+
await page.keyboard.press("Tab");
|
|
86
|
+
await page.keyboard.press("Enter");
|
|
87
|
+
await page.waitForChanges();
|
|
88
|
+
const focusedElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
89
|
+
const link = await page.find("wm-snackbar >>> .link");
|
|
90
|
+
expect(focusedElId).toBe(link.id);
|
|
91
|
+
});
|
|
92
|
+
it("dismisses the snackbar when enter is pressed on close button and returns focus to last active element before snackbar was created", async () => {
|
|
93
|
+
//generate snackbar
|
|
94
|
+
await page.keyboard.press("Tab");
|
|
95
|
+
await page.keyboard.press("Enter");
|
|
96
|
+
await page.waitForChanges();
|
|
97
|
+
//press close button
|
|
98
|
+
await page.keyboard.press("Tab");
|
|
99
|
+
await page.keyboard.press("Enter");
|
|
100
|
+
await page.waitForChanges();
|
|
101
|
+
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
102
|
+
expect(snackbar).toBeNull();
|
|
103
|
+
const focusedElId = await page.evaluate(() => document.activeElement.id);
|
|
104
|
+
expect(focusedElId).toBe("create-snack");
|
|
105
|
+
});
|
|
106
|
+
it("dismisses the snackbar if the user tabs out of it and it returns focus to last active element before snackbar was created", async () => {
|
|
107
|
+
//generate snackbar
|
|
108
|
+
await page.keyboard.press("Tab");
|
|
109
|
+
await page.keyboard.press("Enter");
|
|
110
|
+
await page.waitForChanges();
|
|
111
|
+
//tab out
|
|
112
|
+
await page.keyboard.press("Tab");
|
|
113
|
+
await page.keyboard.press("Tab");
|
|
114
|
+
await page.waitForChanges();
|
|
115
|
+
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
116
|
+
expect(snackbar).toBeNull();
|
|
117
|
+
const focusedElId = await page.evaluate(() => document.activeElement.id);
|
|
118
|
+
expect(focusedElId).toBe("create-snack");
|
|
64
119
|
});
|
|
65
|
-
});
|
|
66
|
-
it("dismisses the snackbar when the close button is clicked", async () => {
|
|
67
|
-
//generate snackbar
|
|
68
|
-
const triggerButton = await page.find("wm-button");
|
|
69
|
-
triggerButton.click();
|
|
70
|
-
await page.waitForChanges();
|
|
71
|
-
//press close button
|
|
72
|
-
const closeButton = await page.find("wm-snackbar >>> button");
|
|
73
|
-
closeButton.click();
|
|
74
|
-
await page.waitForChanges();
|
|
75
|
-
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
76
|
-
expect(snackbar).toBeNull();
|
|
77
|
-
});
|
|
78
|
-
//ACCESSIBILITY
|
|
79
|
-
it("renders an aria-live region", async () => {
|
|
80
|
-
const element = await page.find("wm-snackbar >>> #wm-live-region-snack");
|
|
81
|
-
expect(element).toEqualAttribute("aria-live", "polite");
|
|
82
|
-
});
|
|
83
|
-
it("focuses the action link in snackbar if the user is tabbing", async () => {
|
|
84
|
-
//generate snackbar
|
|
85
|
-
await page.keyboard.press("Tab");
|
|
86
|
-
await page.keyboard.press("Enter");
|
|
87
|
-
await page.waitForChanges();
|
|
88
|
-
const focusedElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
|
|
89
|
-
const link = await page.find("wm-snackbar >>> .link");
|
|
90
|
-
expect(focusedElId).toBe(link.id);
|
|
91
|
-
});
|
|
92
|
-
it("dismisses the snackbar when enter is pressed on close button and returns focus to last active element before snackbar was created", async () => {
|
|
93
|
-
//generate snackbar
|
|
94
|
-
await page.keyboard.press("Tab");
|
|
95
|
-
await page.keyboard.press("Enter");
|
|
96
|
-
await page.waitForChanges();
|
|
97
|
-
//press close button
|
|
98
|
-
await page.keyboard.press("Tab");
|
|
99
|
-
await page.keyboard.press("Enter");
|
|
100
|
-
await page.waitForChanges();
|
|
101
|
-
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
102
|
-
expect(snackbar).toBeNull();
|
|
103
|
-
const focusedElId = await page.evaluate(() => document.activeElement.id);
|
|
104
|
-
expect(focusedElId).toBe("create-snack");
|
|
105
|
-
});
|
|
106
|
-
it("dismisses the snackbar if the user tabs out of it and it returns focus to last active element before snackbar was created", async () => {
|
|
107
|
-
//generate snackbar
|
|
108
|
-
await page.keyboard.press("Tab");
|
|
109
|
-
await page.keyboard.press("Enter");
|
|
110
|
-
await page.waitForChanges();
|
|
111
|
-
//tab out
|
|
112
|
-
await page.keyboard.press("Tab");
|
|
113
|
-
await page.keyboard.press("Tab");
|
|
114
|
-
await page.waitForChanges();
|
|
115
|
-
const snackbar = await page.find("wm-snackbar >>> .wm-snackbarmsg");
|
|
116
|
-
expect(snackbar).toBeNull();
|
|
117
|
-
const focusedElId = await page.evaluate(() => document.activeElement.id);
|
|
118
|
-
expect(focusedElId).toBe("create-snack");
|
|
119
|
-
});
|
|
120
120
|
});
|
|
@@ -2,216 +2,218 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
import { generateId, hideTooltip, showTooltip } from "../../global/functions";
|
|
3
3
|
import { globalMessages } from "../../global/intl";
|
|
4
4
|
export class Snackbar {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
5
|
+
constructor() {
|
|
6
|
+
this.parsedNotifications = [];
|
|
7
|
+
this.uid = this.el.id ? this.el.id : generateId();
|
|
8
|
+
this.focusOnDismiss = null;
|
|
9
|
+
this.timers = [];
|
|
10
|
+
this.notifications = "[]";
|
|
11
|
+
this.isTabbing = false;
|
|
12
|
+
this.announcement = "";
|
|
13
|
+
}
|
|
14
|
+
updateSnacks(newValue) {
|
|
15
|
+
const prevNotificationsLength = this.parsedNotifications.length;
|
|
16
|
+
this.parsedNotifications = [...JSON.parse(newValue)];
|
|
17
|
+
if (prevNotificationsLength < this.parsedNotifications.length) {
|
|
18
|
+
const latestNotification = this.parsedNotifications[0];
|
|
19
|
+
const newTimer = window.setTimeout(() => this.snackExpired(), 20000);
|
|
20
|
+
this.timers = [newTimer, ...this.timers];
|
|
21
|
+
// don't announce link if user is tabbing because link is focused after announcement
|
|
22
|
+
this.announce(`${latestNotification.message} ${this.isTabbing ? "" : latestNotification.link}`);
|
|
23
|
+
if (this.isTabbing && latestNotification.link) {
|
|
24
|
+
this.focusOnDismiss = document.activeElement ? document.activeElement : null;
|
|
25
|
+
this.stopTimer(latestNotification);
|
|
26
|
+
// allow snack to render before focusing
|
|
27
|
+
window.requestAnimationFrame(() => {
|
|
28
|
+
const link = this.el.shadowRoot.querySelector(`#action-${latestNotification.id}`);
|
|
29
|
+
link.focus();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
toggleTabbingOn() {
|
|
35
|
+
this.isTabbing = true;
|
|
36
|
+
}
|
|
37
|
+
toggleTabbingOff() {
|
|
38
|
+
this.isTabbing = false;
|
|
39
|
+
}
|
|
40
|
+
checkForTabbing(ev) {
|
|
41
|
+
if (ev.key === "Tab") {
|
|
42
|
+
this.toggleTabbingOn();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Workaround for screenreader's triggering click event on "enter"
|
|
46
|
+
// This is why we manually handle this.isTabbing instead of listening to wmUserIsTabbing
|
|
47
|
+
handleMouse() {
|
|
48
|
+
this.toggleTabbingOff();
|
|
49
|
+
}
|
|
50
|
+
snackDismissed(notification) {
|
|
51
|
+
this.endSnack(notification);
|
|
52
|
+
// Focus should only be returned if it was moved in the first place, i.e., there was a link and the user was tabbing. Otherwise, for a mouse user, the user's focus would jump back to the triggering element.
|
|
53
|
+
if (notification.link && this.isTabbing && this.focusOnDismiss) {
|
|
54
|
+
this.focusOnDismiss.focus();
|
|
55
|
+
this.focusOnDismiss = null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//Remove snack from notification list once timer runs out
|
|
59
|
+
snackExpired() {
|
|
60
|
+
const notification = this.parsedNotifications[this.parsedNotifications.length - 1];
|
|
61
|
+
this.endSnack(notification);
|
|
62
|
+
}
|
|
63
|
+
endSnack(notification) {
|
|
64
|
+
//App listens for wmSnackbarSnackFinished event and deletes the emitted notification.
|
|
65
|
+
this.stopTimer(notification);
|
|
66
|
+
this.wmSnackbarSnackFinished.emit({
|
|
67
|
+
id: notification.id,
|
|
68
|
+
message: notification.message,
|
|
69
|
+
link: notification.link,
|
|
70
|
+
newWindow: notification.newWindow,
|
|
30
71
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
checkForTabbing(ev) {
|
|
41
|
-
if (ev.key === "Tab") {
|
|
42
|
-
this.toggleTabbingOn();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Workaround for screenreader's triggering click event on "enter"
|
|
46
|
-
// This is why we manually handle this.isTabbing instead of listening to wmUserIsTabbing
|
|
47
|
-
handleMouse() {
|
|
48
|
-
this.toggleTabbingOff();
|
|
49
|
-
}
|
|
50
|
-
snackDismissed(notification) {
|
|
51
|
-
this.endSnack(notification);
|
|
52
|
-
// Focus should only be returned if it was moved in the first place, i.e., there was a link and the user was tabbing. Otherwise, for a mouse user, the user's focus would jump back to the triggering element.
|
|
53
|
-
if (notification.link && this.isTabbing && this.focusOnDismiss) {
|
|
54
|
-
this.focusOnDismiss.focus();
|
|
55
|
-
this.focusOnDismiss = null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//Remove snack from notification list once timer runs out
|
|
59
|
-
snackExpired() {
|
|
60
|
-
const notification = this.parsedNotifications[this.parsedNotifications.length - 1];
|
|
61
|
-
this.endSnack(notification);
|
|
62
|
-
}
|
|
63
|
-
endSnack(notification) {
|
|
64
|
-
//App listens for wmSnackbarSnackFinished event and deletes the emitted notification.
|
|
65
|
-
this.stopTimer(notification);
|
|
66
|
-
this.wmSnackbarSnackFinished.emit({
|
|
67
|
-
id: notification.id,
|
|
68
|
-
message: notification.message,
|
|
69
|
-
link: notification.link,
|
|
70
|
-
newWindow: notification.newWindow,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
snackLinkClicked(notification) {
|
|
74
|
-
//App listens for wmSnackbarActionTriggered event, deletes emitted notification, and takes over focus.
|
|
75
|
-
this.stopTimer(notification);
|
|
76
|
-
this.wmSnackbarActionTriggered.emit({
|
|
77
|
-
id: notification.id,
|
|
78
|
-
message: notification.message,
|
|
79
|
-
link: notification.link,
|
|
80
|
-
newWindow: notification.newWindow,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
//Delete the timer corresponding to the dismissed notification
|
|
84
|
-
stopTimer(notification) {
|
|
85
|
-
this.parsedNotifications.forEach((notif, index) => {
|
|
86
|
-
if (notif.id === notification.id) {
|
|
87
|
-
clearTimeout(this.timers[index]);
|
|
88
|
-
this.timers = this.timers.filter((timer, ind) => {
|
|
89
|
-
if (ind !== index) {
|
|
90
|
-
return timer;
|
|
91
|
-
}
|
|
72
|
+
}
|
|
73
|
+
snackLinkClicked(notification) {
|
|
74
|
+
//App listens for wmSnackbarActionTriggered event, deletes emitted notification, and takes over focus.
|
|
75
|
+
this.stopTimer(notification);
|
|
76
|
+
this.wmSnackbarActionTriggered.emit({
|
|
77
|
+
id: notification.id,
|
|
78
|
+
message: notification.message,
|
|
79
|
+
link: notification.link,
|
|
80
|
+
newWindow: notification.newWindow,
|
|
92
81
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
this.snackLinkClicked(notification);
|
|
105
|
-
}, onKeyDown: (ev) => ev.key === "Enter" && this.snackLinkClicked(notification) }, h("span", { "aria-hidden": "true" }, notification.link)))), h("button", { id: `close-button-${notification.id}`, "aria-label": "Close this notification", class: "closesnack", tabindex: notification.link ? 0 : -1, onClick: () => this.snackDismissed(notification), onMouseEnter: (ev) => showTooltip("bottom", ev.target, globalMessages.close), onMouseLeave: () => hideTooltip(), onFocus: (ev) => this.isTabbing && showTooltip("bottom", ev.target, globalMessages.close), onBlur: () => hideTooltip() })), h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) })))));
|
|
106
|
-
}
|
|
107
|
-
render() {
|
|
108
|
-
return (h("div", { class: {
|
|
109
|
-
"wm-snackbars": true,
|
|
110
|
-
empty: this.parsedNotifications.length === 0,
|
|
111
|
-
"user-is-tabbing": this.isTabbing,
|
|
112
|
-
} }, h("div", { class: "sr-only", "aria-live": "polite", "aria-atomic": "false", id: `wm-live-region-${this.uid}`, ref: (el) => (this.liveRegionEl = el) }, this.announcement), this.renderSnackbars()));
|
|
113
|
-
}
|
|
114
|
-
static get is() { return "wm-snackbar"; }
|
|
115
|
-
static get encapsulation() { return "shadow"; }
|
|
116
|
-
static get originalStyleUrls() {
|
|
117
|
-
return {
|
|
118
|
-
"$": ["wm-snackbar.scss"]
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
static get styleUrls() {
|
|
122
|
-
return {
|
|
123
|
-
"$": ["wm-snackbar.css"]
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
static get properties() {
|
|
127
|
-
return {
|
|
128
|
-
"notifications": {
|
|
129
|
-
"type": "string",
|
|
130
|
-
"mutable": true,
|
|
131
|
-
"complexType": {
|
|
132
|
-
"original": "string",
|
|
133
|
-
"resolved": "string",
|
|
134
|
-
"references": {}
|
|
135
|
-
},
|
|
136
|
-
"required": false,
|
|
137
|
-
"optional": false,
|
|
138
|
-
"docs": {
|
|
139
|
-
"tags": [],
|
|
140
|
-
"text": ""
|
|
141
|
-
},
|
|
142
|
-
"attribute": "notifications",
|
|
143
|
-
"reflect": true,
|
|
144
|
-
"defaultValue": "\"[]\""
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
static get states() {
|
|
149
|
-
return {
|
|
150
|
-
"isTabbing": {},
|
|
151
|
-
"announcement": {}
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
static get events() {
|
|
155
|
-
return [{
|
|
156
|
-
"method": "wmSnackbarSnackFinished",
|
|
157
|
-
"name": "wmSnackbarSnackFinished",
|
|
158
|
-
"bubbles": true,
|
|
159
|
-
"cancelable": true,
|
|
160
|
-
"composed": true,
|
|
161
|
-
"docs": {
|
|
162
|
-
"tags": [],
|
|
163
|
-
"text": ""
|
|
164
|
-
},
|
|
165
|
-
"complexType": {
|
|
166
|
-
"original": "Object",
|
|
167
|
-
"resolved": "Object",
|
|
168
|
-
"references": {
|
|
169
|
-
"Object": {
|
|
170
|
-
"location": "global"
|
|
82
|
+
}
|
|
83
|
+
//Delete the timer corresponding to the dismissed notification
|
|
84
|
+
stopTimer(notification) {
|
|
85
|
+
this.parsedNotifications.forEach((notif, index) => {
|
|
86
|
+
if (notif.id === notification.id) {
|
|
87
|
+
clearTimeout(this.timers[index]);
|
|
88
|
+
this.timers = this.timers.filter((timer, ind) => {
|
|
89
|
+
if (ind !== index) {
|
|
90
|
+
return timer;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
171
93
|
}
|
|
172
|
-
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
announce(message) {
|
|
97
|
+
if (this.liveRegionEl.textContent === message) {
|
|
98
|
+
message += "\u00A0";
|
|
173
99
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
"
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
100
|
+
this.announcement = message;
|
|
101
|
+
}
|
|
102
|
+
renderSnackbars() {
|
|
103
|
+
return this.parsedNotifications.map((notification) => (h("div", { class: "wm-snack-wrapper" }, h("div", { id: `snack-${this.uid}`, class: "wm-snackbar active neutral" }, h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) }), h("div", { class: "wm-snackbarmsg" }, h("div", { class: "msgtext" }, h("span", null, notification.message), notification.link && (h("a", { id: `action-${notification.id}`, class: `link ${notification.newWindow ? "new-window" : ""}`, "aria-label": `Click to ${notification.link}...${notification.newWindow ? " " + globalMessages.newWindow : ""}`, tabindex: 0, onClick: () => {
|
|
104
|
+
this.snackLinkClicked(notification);
|
|
105
|
+
}, onKeyDown: (ev) => ev.key === "Enter" && this.snackLinkClicked(notification) }, h("span", { "aria-hidden": "true" }, notification.link)))), h("button", { id: `close-button-${notification.id}`, "aria-label": "Close this notification", class: "closesnack", tabindex: notification.link ? 0 : -1, onClick: () => this.snackDismissed(notification), onMouseEnter: (ev) => showTooltip("bottom", ev.target, globalMessages.close), onMouseLeave: () => hideTooltip(), onFocus: (ev) => this.isTabbing && showTooltip("bottom", ev.target, globalMessages.close), onBlur: () => hideTooltip() })), h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) })))));
|
|
106
|
+
}
|
|
107
|
+
render() {
|
|
108
|
+
return (h("div", { class: {
|
|
109
|
+
"wm-snackbars": true,
|
|
110
|
+
empty: this.parsedNotifications.length === 0,
|
|
111
|
+
"user-is-tabbing": this.isTabbing,
|
|
112
|
+
} }, h("div", { class: "sr-only", "aria-live": "polite", "aria-atomic": "false", id: `wm-live-region-${this.uid}`, ref: (el) => (this.liveRegionEl = el) }, this.announcement), this.renderSnackbars()));
|
|
113
|
+
}
|
|
114
|
+
static get is() { return "wm-snackbar"; }
|
|
115
|
+
static get encapsulation() { return "shadow"; }
|
|
116
|
+
static get originalStyleUrls() {
|
|
117
|
+
return {
|
|
118
|
+
"$": ["wm-snackbar.scss"]
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
static get styleUrls() {
|
|
122
|
+
return {
|
|
123
|
+
"$": ["wm-snackbar.css"]
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
static get properties() {
|
|
127
|
+
return {
|
|
128
|
+
"notifications": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"mutable": true,
|
|
131
|
+
"complexType": {
|
|
132
|
+
"original": "string",
|
|
133
|
+
"resolved": "string",
|
|
134
|
+
"references": {}
|
|
135
|
+
},
|
|
136
|
+
"required": false,
|
|
137
|
+
"optional": false,
|
|
138
|
+
"docs": {
|
|
139
|
+
"tags": [],
|
|
140
|
+
"text": ""
|
|
141
|
+
},
|
|
142
|
+
"attribute": "notifications",
|
|
143
|
+
"reflect": true,
|
|
144
|
+
"defaultValue": "\"[]\""
|
|
190
145
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
static get states() {
|
|
149
|
+
return {
|
|
150
|
+
"isTabbing": {},
|
|
151
|
+
"announcement": {}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
static get events() {
|
|
155
|
+
return [{
|
|
156
|
+
"method": "wmSnackbarSnackFinished",
|
|
157
|
+
"name": "wmSnackbarSnackFinished",
|
|
158
|
+
"bubbles": true,
|
|
159
|
+
"cancelable": true,
|
|
160
|
+
"composed": true,
|
|
161
|
+
"docs": {
|
|
162
|
+
"tags": [],
|
|
163
|
+
"text": ""
|
|
164
|
+
},
|
|
165
|
+
"complexType": {
|
|
166
|
+
"original": "Object",
|
|
167
|
+
"resolved": "Object",
|
|
168
|
+
"references": {
|
|
169
|
+
"Object": {
|
|
170
|
+
"location": "global",
|
|
171
|
+
"id": "global::Object"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
"method": "wmSnackbarActionTriggered",
|
|
177
|
+
"name": "wmSnackbarActionTriggered",
|
|
178
|
+
"bubbles": true,
|
|
179
|
+
"cancelable": true,
|
|
180
|
+
"composed": true,
|
|
181
|
+
"docs": {
|
|
182
|
+
"tags": [],
|
|
183
|
+
"text": ""
|
|
184
|
+
},
|
|
185
|
+
"complexType": {
|
|
186
|
+
"original": "Object",
|
|
187
|
+
"resolved": "Object",
|
|
188
|
+
"references": {
|
|
189
|
+
"Object": {
|
|
190
|
+
"location": "global",
|
|
191
|
+
"id": "global::Object"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}];
|
|
196
|
+
}
|
|
197
|
+
static get elementRef() { return "el"; }
|
|
198
|
+
static get watchers() {
|
|
199
|
+
return [{
|
|
200
|
+
"propName": "notifications",
|
|
201
|
+
"methodName": "updateSnacks"
|
|
202
|
+
}];
|
|
203
|
+
}
|
|
204
|
+
static get listeners() {
|
|
205
|
+
return [{
|
|
206
|
+
"name": "keydown",
|
|
207
|
+
"method": "checkForTabbing",
|
|
208
|
+
"target": "document",
|
|
209
|
+
"capture": false,
|
|
210
|
+
"passive": false
|
|
211
|
+
}, {
|
|
212
|
+
"name": "mouseover",
|
|
213
|
+
"method": "handleMouse",
|
|
214
|
+
"target": "document",
|
|
215
|
+
"capture": false,
|
|
216
|
+
"passive": true
|
|
217
|
+
}];
|
|
218
|
+
}
|
|
217
219
|
}
|