@watermarkinsights/ripple 5.12.0 → 5.13.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/components/index.d.ts +33 -0
- package/dist/components/priv-calendar.d.ts +11 -0
- package/dist/components/priv-chart-popover.d.ts +11 -0
- package/dist/components/priv-navigator-button.d.ts +11 -0
- package/dist/components/priv-navigator-item.d.ts +11 -0
- package/dist/components/priv-option-list.d.ts +11 -0
- package/dist/components/wm-action-menu.d.ts +11 -0
- package/dist/components/wm-button.d.ts +11 -0
- package/dist/components/wm-chart-slice.d.ts +11 -0
- package/dist/components/wm-chart.d.ts +11 -0
- package/dist/components/wm-date-range.d.ts +11 -0
- package/dist/components/wm-datepicker.d.ts +11 -0
- package/dist/components/wm-file-list.d.ts +11 -0
- package/dist/components/wm-file.d.ts +11 -0
- package/dist/components/wm-input.d.ts +11 -0
- package/dist/components/wm-line-chart.d.ts +11 -0
- package/dist/components/wm-menuitem.d.ts +11 -0
- package/dist/components/wm-modal-footer.d.ts +11 -0
- package/dist/components/wm-modal-header.d.ts +11 -0
- package/dist/components/wm-modal-pss-footer.d.ts +11 -0
- package/dist/components/wm-modal-pss-header.d.ts +11 -0
- package/dist/components/wm-modal-pss.d.ts +11 -0
- package/dist/components/wm-modal.d.ts +11 -0
- package/dist/components/wm-navigation-hamburger.d.ts +11 -0
- package/dist/components/wm-navigation-item.d.ts +11 -0
- package/dist/components/wm-navigation.d.ts +11 -0
- package/dist/components/wm-navigator.d.ts +11 -0
- package/dist/components/wm-nested-select.d.ts +11 -0
- package/dist/components/wm-optgroup.d.ts +11 -0
- package/dist/components/wm-option.d.ts +11 -0
- package/dist/components/wm-pagination.d.ts +11 -0
- package/dist/components/wm-progress-indicator.d.ts +11 -0
- package/dist/components/wm-progress-monitor.d.ts +11 -0
- package/dist/components/wm-progress-slice.d.ts +11 -0
- package/dist/components/wm-search.d.ts +11 -0
- package/dist/components/wm-select.d.ts +11 -0
- package/dist/components/wm-snackbar.d.ts +11 -0
- package/dist/components/wm-tab-item.d.ts +11 -0
- package/dist/components/wm-tab-list.d.ts +11 -0
- package/dist/components/wm-tab-panel.d.ts +11 -0
- package/dist/components/wm-tag-input.d.ts +11 -0
- package/dist/components/wm-tag-option.d.ts +11 -0
- package/dist/components/wm-textarea.d.ts +11 -0
- package/dist/components/wm-timepicker.d.ts +11 -0
- package/dist/components/wm-toggletip.d.ts +11 -0
- package/dist/components/wm-uploader.d.ts +11 -0
- package/dist/components/wm-wrapper.d.ts +11 -0
- package/dist/types/stencil-public-runtime.d.ts +31 -10
- package/package.json +4 -8
- package/dist/cjs/chartFunctions-a1981e06.js +0 -732
- package/dist/cjs/functions-4b187487.js +0 -9679
- package/dist/cjs/global-4e034486.js +0 -85
- package/dist/cjs/index-e86c28b6.js +0 -2649
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/interfaces-85d78ae9.js +0 -37
- package/dist/cjs/intl-7fd0760e.js +0 -283
- package/dist/cjs/loader.cjs.js +0 -14
- package/dist/cjs/priv-calendar.cjs.entry.js +0 -573
- package/dist/cjs/priv-chart-popover.cjs.entry.js +0 -139
- package/dist/cjs/priv-navigator-button.cjs.entry.js +0 -28
- package/dist/cjs/priv-navigator-item.cjs.entry.js +0 -34
- package/dist/cjs/priv-option-list.cjs.entry.js +0 -392
- package/dist/cjs/ripple.cjs.js +0 -24
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -333
- package/dist/cjs/wm-button.cjs.entry.js +0 -206
- package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -27
- package/dist/cjs/wm-chart.cjs.entry.js +0 -162
- package/dist/cjs/wm-date-range.cjs.entry.js +0 -483
- package/dist/cjs/wm-datepicker.cjs.entry.js +0 -253
- package/dist/cjs/wm-file-list.cjs.entry.js +0 -22
- package/dist/cjs/wm-file.cjs.entry.js +0 -193
- package/dist/cjs/wm-input.cjs.entry.js +0 -124
- package/dist/cjs/wm-line-chart.cjs.entry.js +0 -460
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +0 -214
- package/dist/cjs/wm-modal_3.cjs.entry.js +0 -212
- package/dist/cjs/wm-navigation_3.cjs.entry.js +0 -185
- package/dist/cjs/wm-navigator.cjs.entry.js +0 -326
- package/dist/cjs/wm-nested-select.cjs.entry.js +0 -314
- package/dist/cjs/wm-optgroup.cjs.entry.js +0 -73
- package/dist/cjs/wm-option_2.cjs.entry.js +0 -425
- package/dist/cjs/wm-pagination.cjs.entry.js +0 -227
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +0 -202
- package/dist/cjs/wm-search.cjs.entry.js +0 -193
- package/dist/cjs/wm-snackbar.cjs.entry.js +0 -181
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -260
- package/dist/cjs/wm-tag-input.cjs.entry.js +0 -891
- package/dist/cjs/wm-tag-option.cjs.entry.js +0 -43
- package/dist/cjs/wm-textarea.cjs.entry.js +0 -87
- package/dist/cjs/wm-timepicker.cjs.entry.js +0 -306
- package/dist/cjs/wm-toggletip.cjs.entry.js +0 -182
- package/dist/cjs/wm-uploader.cjs.entry.js +0 -324
- package/dist/cjs/wm-wrapper.cjs.entry.js +0 -21
- package/dist/collection/collection-manifest.json +0 -191
- package/dist/collection/components/charts/chartFunctions.js +0 -665
- package/dist/collection/components/charts/chartFunctions.spec.js +0 -16
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +0 -908
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +0 -81
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +0 -257
- package/dist/collection/components/charts/screenshots.e2e.js +0 -96
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +0 -125
- package/dist/collection/components/charts/wm-chart/wm-chart.css +0 -1274
- package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +0 -213
- package/dist/collection/components/charts/wm-chart/wm-chart.js +0 -422
- package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +0 -37
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +0 -1067
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +0 -176
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +0 -723
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +0 -163
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +0 -1274
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +0 -264
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +0 -909
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +0 -69
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +0 -151
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +0 -79
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +0 -121
- package/dist/collection/components/datepickers/datepicker.css +0 -1043
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +0 -1279
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +0 -840
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +0 -89
- package/dist/collection/components/datepickers/wm-date-range.e2e.js +0 -443
- package/dist/collection/components/datepickers/wm-date-range.js +0 -845
- package/dist/collection/components/datepickers/wm-date-range.spec.js +0 -22
- package/dist/collection/components/datepickers/wm-datepicker.e2e.js +0 -382
- package/dist/collection/components/datepickers/wm-datepicker.js +0 -520
- package/dist/collection/components/datepickers/wm-datepicker.spec.js +0 -21
- package/dist/collection/components/selects/priv-option-list/priv-option-list.css +0 -918
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +0 -778
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +0 -1181
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +0 -620
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +0 -830
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +0 -258
- package/dist/collection/components/selects/wm-option/wm-option.css +0 -931
- package/dist/collection/components/selects/wm-option/wm-option.e2e.js +0 -22
- package/dist/collection/components/selects/wm-option/wm-option.js +0 -530
- package/dist/collection/components/selects/wm-option/wm-option.spec.js +0 -63
- package/dist/collection/components/selects/wm-select/wm-select.css +0 -1104
- package/dist/collection/components/selects/wm-select/wm-select.e2e.js +0 -521
- package/dist/collection/components/selects/wm-select/wm-select.js +0 -584
- package/dist/collection/components/selects/wm-select/wm-select.spec.js +0 -271
- package/dist/collection/components/wm-action-menu/wm-action-menu.css +0 -891
- package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +0 -200
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -435
- package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +0 -48
- package/dist/collection/components/wm-button/wm-button.css +0 -1261
- package/dist/collection/components/wm-button/wm-button.e2e.js +0 -55
- package/dist/collection/components/wm-button/wm-button.js +0 -489
- package/dist/collection/components/wm-button/wm-button.spec.js +0 -74
- package/dist/collection/components/wm-file/wm-file.css +0 -927
- package/dist/collection/components/wm-file/wm-file.js +0 -412
- package/dist/collection/components/wm-file/wm-file.spec.js +0 -194
- package/dist/collection/components/wm-file-list/wm-file-list.css +0 -820
- package/dist/collection/components/wm-file-list/wm-file-list.js +0 -45
- package/dist/collection/components/wm-file-list/wm-file-list.spec.js +0 -69
- package/dist/collection/components/wm-input/wm-input.css +0 -992
- package/dist/collection/components/wm-input/wm-input.e2e.js +0 -32
- package/dist/collection/components/wm-input/wm-input.js +0 -471
- package/dist/collection/components/wm-input/wm-input.spec.js +0 -173
- package/dist/collection/components/wm-menuitem/wm-menuitem.css +0 -891
- package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +0 -23
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -419
- package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +0 -54
- package/dist/collection/components/wm-modal/wm-modal-footer.css +0 -845
- package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -141
- package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +0 -11
- package/dist/collection/components/wm-modal/wm-modal-header.css +0 -844
- package/dist/collection/components/wm-modal/wm-modal-header.js +0 -78
- package/dist/collection/components/wm-modal/wm-modal-header.spec.js +0 -8
- package/dist/collection/components/wm-modal/wm-modal.css +0 -891
- package/dist/collection/components/wm-modal/wm-modal.e2e.js +0 -104
- package/dist/collection/components/wm-modal/wm-modal.js +0 -350
- package/dist/collection/components/wm-modal/wm-modal.spec.js +0 -30
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +0 -852
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +0 -138
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +0 -846
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +0 -82
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +0 -927
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +0 -362
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -847
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +0 -119
- package/dist/collection/components/wm-navigation/wm-navigation-item.css +0 -856
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +0 -98
- package/dist/collection/components/wm-navigation/wm-navigation.css +0 -898
- package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +0 -102
- package/dist/collection/components/wm-navigation/wm-navigation.js +0 -190
- package/dist/collection/components/wm-navigation/wm-navigation.spec.js +0 -91
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +0 -849
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +0 -50
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -86
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +0 -830
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -124
- package/dist/collection/components/wm-navigator/wm-navigator.css +0 -903
- package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +0 -209
- package/dist/collection/components/wm-navigator/wm-navigator.js +0 -496
- package/dist/collection/components/wm-navigator/wm-navigator.spec.js +0 -177
- package/dist/collection/components/wm-pagination/wm-pagination.css +0 -971
- package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +0 -312
- package/dist/collection/components/wm-pagination/wm-pagination.js +0 -363
- package/dist/collection/components/wm-search/wm-search.css +0 -895
- package/dist/collection/components/wm-search/wm-search.e2e.js +0 -76
- package/dist/collection/components/wm-search/wm-search.js +0 -426
- package/dist/collection/components/wm-search/wm-search.spec.js +0 -71
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +0 -1077
- package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +0 -112
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -269
- package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +0 -9
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +0 -868
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -175
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +0 -840
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -273
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +0 -825
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -87
- package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +0 -91
- package/dist/collection/components/wm-tabs/wm-tabs.spec.js +0 -12
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +0 -1275
- package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +0 -204
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -1227
- package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +0 -195
- package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +0 -243
- package/dist/collection/components/wm-textarea/wm-textarea.css +0 -979
- package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +0 -41
- package/dist/collection/components/wm-textarea/wm-textarea.js +0 -313
- package/dist/collection/components/wm-textarea/wm-textarea.spec.js +0 -79
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +0 -1093
- package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +0 -163
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -544
- package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +0 -147
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +0 -1152
- package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +0 -69
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -289
- package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +0 -21
- package/dist/collection/components/wm-uploader/wm-uploader.css +0 -1563
- package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +0 -70
- package/dist/collection/components/wm-uploader/wm-uploader.js +0 -603
- package/dist/collection/components/wm-uploader/wm-uploader.spec.js +0 -234
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -28
- package/dist/collection/dev/button.js +0 -0
- package/dist/collection/dev/chart-small.js +0 -56
- package/dist/collection/dev/chart.js +0 -18
- package/dist/collection/dev/date-range.js +0 -6
- package/dist/collection/dev/datepicker.js +0 -46
- package/dist/collection/dev/file-list.js +0 -16
- package/dist/collection/dev/file.js +0 -0
- package/dist/collection/dev/input.js +0 -6
- package/dist/collection/dev/line-chart.js +0 -0
- package/dist/collection/dev/modal.js +0 -48
- package/dist/collection/dev/navigation.js +0 -13
- package/dist/collection/dev/navigator.js +0 -34
- package/dist/collection/dev/nested-select.js +0 -36
- package/dist/collection/dev/pagination.js +0 -7
- package/dist/collection/dev/progress-monitor.js +0 -0
- package/dist/collection/dev/pss-modal.js +0 -8
- package/dist/collection/dev/scripts.js +0 -49
- package/dist/collection/dev/search.js +0 -72
- package/dist/collection/dev/select.js +0 -57
- package/dist/collection/dev/snackbar.js +0 -54
- package/dist/collection/dev/tabs.js +0 -44
- package/dist/collection/dev/tag-input.js +0 -32
- package/dist/collection/dev/textarea.js +0 -28
- package/dist/collection/dev/timepicker.js +0 -32
- package/dist/collection/dev/toggletip.js +0 -9
- package/dist/collection/dev/uploader.js +0 -139
- package/dist/collection/global/__mocks__/functions.js +0 -6
- package/dist/collection/global/functions.js +0 -825
- package/dist/collection/global/functions.spec.js +0 -126
- package/dist/collection/global/global.js +0 -88
- package/dist/collection/global/interfaces.js +0 -51
- package/dist/collection/global/intl.js +0 -274
- package/dist/collection/global/services/__mocks__/http-service.js +0 -130
- package/dist/collection/global/services/http-service.js +0 -50
- package/dist/collection/lang/lang.js +0 -5
- package/dist/collection/lang/lang.spec.js +0 -20
- package/dist/collection/lang/missing.js +0 -43
- package/dist/collection/lang/piglatin.js +0 -101
- package/dist/esm/chartFunctions-9099c7e9.js +0 -715
- package/dist/esm/functions-00e1916b.js +0 -9639
- package/dist/esm/global-c76064cb.js +0 -83
- package/dist/esm/index-558b5a82.js +0 -2618
- package/dist/esm/index.js +0 -1
- package/dist/esm/interfaces-cc5b177f.js +0 -34
- package/dist/esm/intl-a6f16883.js +0 -277
- package/dist/esm/loader.js +0 -10
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/priv-calendar.entry.js +0 -569
- package/dist/esm/priv-chart-popover.entry.js +0 -135
- package/dist/esm/priv-navigator-button.entry.js +0 -24
- package/dist/esm/priv-navigator-item.entry.js +0 -30
- package/dist/esm/priv-option-list.entry.js +0 -388
- package/dist/esm/ripple.js +0 -19
- package/dist/esm/wm-action-menu_2.entry.js +0 -328
- package/dist/esm/wm-button.entry.js +0 -202
- package/dist/esm/wm-chart-slice.entry.js +0 -23
- package/dist/esm/wm-chart.entry.js +0 -158
- package/dist/esm/wm-date-range.entry.js +0 -479
- package/dist/esm/wm-datepicker.entry.js +0 -249
- package/dist/esm/wm-file-list.entry.js +0 -18
- package/dist/esm/wm-file.entry.js +0 -189
- package/dist/esm/wm-input.entry.js +0 -120
- package/dist/esm/wm-line-chart.entry.js +0 -456
- package/dist/esm/wm-modal-pss_3.entry.js +0 -208
- package/dist/esm/wm-modal_3.entry.js +0 -206
- package/dist/esm/wm-navigation_3.entry.js +0 -179
- package/dist/esm/wm-navigator.entry.js +0 -322
- package/dist/esm/wm-nested-select.entry.js +0 -310
- package/dist/esm/wm-optgroup.entry.js +0 -69
- package/dist/esm/wm-option_2.entry.js +0 -420
- package/dist/esm/wm-pagination.entry.js +0 -223
- package/dist/esm/wm-progress-indicator_3.entry.js +0 -196
- package/dist/esm/wm-search.entry.js +0 -189
- package/dist/esm/wm-snackbar.entry.js +0 -177
- package/dist/esm/wm-tab-item_3.entry.js +0 -254
- package/dist/esm/wm-tag-input.entry.js +0 -887
- package/dist/esm/wm-tag-option.entry.js +0 -39
- package/dist/esm/wm-textarea.entry.js +0 -83
- package/dist/esm/wm-timepicker.entry.js +0 -302
- package/dist/esm/wm-toggletip.entry.js +0 -178
- package/dist/esm/wm-uploader.entry.js +0 -320
- package/dist/esm/wm-wrapper.entry.js +0 -17
- package/dist/esm-es5/chartFunctions-9099c7e9.js +0 -1
- package/dist/esm-es5/functions-00e1916b.js +0 -1
- package/dist/esm-es5/global-c76064cb.js +0 -1
- package/dist/esm-es5/index-558b5a82.js +0 -1
- package/dist/esm-es5/index.js +0 -0
- package/dist/esm-es5/interfaces-cc5b177f.js +0 -1
- package/dist/esm-es5/intl-a6f16883.js +0 -1
- package/dist/esm-es5/loader.js +0 -1
- package/dist/esm-es5/priv-calendar.entry.js +0 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +0 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +0 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +0 -1
- package/dist/esm-es5/priv-option-list.entry.js +0 -1
- package/dist/esm-es5/ripple.js +0 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +0 -1
- package/dist/esm-es5/wm-button.entry.js +0 -1
- package/dist/esm-es5/wm-chart-slice.entry.js +0 -1
- package/dist/esm-es5/wm-chart.entry.js +0 -1
- package/dist/esm-es5/wm-date-range.entry.js +0 -1
- package/dist/esm-es5/wm-datepicker.entry.js +0 -1
- package/dist/esm-es5/wm-file-list.entry.js +0 -1
- package/dist/esm-es5/wm-file.entry.js +0 -1
- package/dist/esm-es5/wm-input.entry.js +0 -1
- package/dist/esm-es5/wm-line-chart.entry.js +0 -1
- package/dist/esm-es5/wm-modal-pss_3.entry.js +0 -1
- package/dist/esm-es5/wm-modal_3.entry.js +0 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +0 -1
- package/dist/esm-es5/wm-navigator.entry.js +0 -1
- package/dist/esm-es5/wm-nested-select.entry.js +0 -1
- package/dist/esm-es5/wm-optgroup.entry.js +0 -1
- package/dist/esm-es5/wm-option_2.entry.js +0 -1
- package/dist/esm-es5/wm-pagination.entry.js +0 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +0 -1
- package/dist/esm-es5/wm-search.entry.js +0 -1
- package/dist/esm-es5/wm-snackbar.entry.js +0 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +0 -1
- package/dist/esm-es5/wm-tag-input.entry.js +0 -1
- package/dist/esm-es5/wm-tag-option.entry.js +0 -1
- package/dist/esm-es5/wm-textarea.entry.js +0 -1
- package/dist/esm-es5/wm-timepicker.entry.js +0 -1
- package/dist/esm-es5/wm-toggletip.entry.js +0 -1
- package/dist/esm-es5/wm-uploader.entry.js +0 -1
- package/dist/esm-es5/wm-wrapper.entry.js +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/loader/cdn.js +0 -3
- package/dist/loader/index.cjs.js +0 -3
- package/dist/loader/index.d.ts +0 -21
- package/dist/loader/index.es2017.js +0 -3
- package/dist/loader/index.js +0 -4
- package/dist/loader/package.json +0 -11
- package/dist/ripple/index.esm.js +0 -0
- package/dist/ripple/p-05ae54d7.entry.js +0 -1
- package/dist/ripple/p-0d89d63c.system.entry.js +0 -1
- package/dist/ripple/p-118c47eb.system.entry.js +0 -1
- package/dist/ripple/p-1a4b6b02.system.entry.js +0 -1
- package/dist/ripple/p-1a4b7504.system.entry.js +0 -1
- package/dist/ripple/p-1a71d867.system.entry.js +0 -1
- package/dist/ripple/p-1a951dfb.entry.js +0 -1
- package/dist/ripple/p-1c8f550f.system.entry.js +0 -1
- package/dist/ripple/p-1f751b87.js +0 -1
- package/dist/ripple/p-1fac5bf9.js +0 -1
- package/dist/ripple/p-20a8f732.system.entry.js +0 -1
- package/dist/ripple/p-249b56fb.entry.js +0 -1
- package/dist/ripple/p-249d13a1.system.entry.js +0 -1
- package/dist/ripple/p-26906899.entry.js +0 -1
- package/dist/ripple/p-2732bddd.js +0 -1
- package/dist/ripple/p-28119645.system.entry.js +0 -1
- package/dist/ripple/p-2f37f3ee.system.js +0 -1
- package/dist/ripple/p-32bf3f5b.system.entry.js +0 -1
- package/dist/ripple/p-335c03d3.system.entry.js +0 -1
- package/dist/ripple/p-363b534b.entry.js +0 -1
- package/dist/ripple/p-393e4636.js +0 -1
- package/dist/ripple/p-39f79d71.system.entry.js +0 -1
- package/dist/ripple/p-3a231f4b.system.entry.js +0 -1
- package/dist/ripple/p-3d4bb85f.entry.js +0 -1
- package/dist/ripple/p-4228de00.entry.js +0 -1
- package/dist/ripple/p-42fa7a77.system.js +0 -1
- package/dist/ripple/p-48e09589.entry.js +0 -1
- package/dist/ripple/p-4f8fe1d1.system.js +0 -1
- package/dist/ripple/p-50ea2036.system.js +0 -1
- package/dist/ripple/p-522ecb7d.system.entry.js +0 -1
- package/dist/ripple/p-54d6f0f9.entry.js +0 -1
- package/dist/ripple/p-568c595f.js +0 -2
- package/dist/ripple/p-56aeee6e.system.entry.js +0 -1
- package/dist/ripple/p-5e6a4f70.system.js +0 -1
- package/dist/ripple/p-5f082360.system.entry.js +0 -1
- package/dist/ripple/p-5f5fe905.js +0 -1
- package/dist/ripple/p-617c2c75.entry.js +0 -1
- package/dist/ripple/p-6524c53e.system.entry.js +0 -1
- package/dist/ripple/p-65d26233.system.entry.js +0 -1
- package/dist/ripple/p-6834a6d3.entry.js +0 -1
- package/dist/ripple/p-68e04222.entry.js +0 -1
- package/dist/ripple/p-68fddfaa.system.entry.js +0 -1
- package/dist/ripple/p-694903e6.system.entry.js +0 -1
- package/dist/ripple/p-73ca2f26.system.js +0 -1
- package/dist/ripple/p-7b6a65f8.system.entry.js +0 -1
- package/dist/ripple/p-7b7e1eb5.system.entry.js +0 -1
- package/dist/ripple/p-88ebddd7.entry.js +0 -1
- package/dist/ripple/p-8c1d27a7.entry.js +0 -1
- package/dist/ripple/p-8e9c24f3.entry.js +0 -1
- package/dist/ripple/p-8f836507.system.entry.js +0 -1
- package/dist/ripple/p-94495341.entry.js +0 -1
- package/dist/ripple/p-958331bf.entry.js +0 -1
- package/dist/ripple/p-9872623b.entry.js +0 -1
- package/dist/ripple/p-9ab3c088.system.entry.js +0 -1
- package/dist/ripple/p-9aedd599.entry.js +0 -1
- package/dist/ripple/p-9b848151.entry.js +0 -1
- package/dist/ripple/p-a04ef164.system.entry.js +0 -1
- package/dist/ripple/p-a78bb423.system.entry.js +0 -1
- package/dist/ripple/p-a880d9a0.system.entry.js +0 -1
- package/dist/ripple/p-ab8d78cc.system.js +0 -2
- package/dist/ripple/p-adc254e6.entry.js +0 -1
- package/dist/ripple/p-b165d61a.entry.js +0 -1
- package/dist/ripple/p-b39377c7.entry.js +0 -1
- package/dist/ripple/p-b9bca547.entry.js +0 -1
- package/dist/ripple/p-bae2c236.entry.js +0 -1
- package/dist/ripple/p-c53f3704.system.entry.js +0 -1
- package/dist/ripple/p-c56ff16f.entry.js +0 -1
- package/dist/ripple/p-c8cf09a2.system.entry.js +0 -1
- package/dist/ripple/p-cbdceb6e.entry.js +0 -1
- package/dist/ripple/p-cc813406.system.js +0 -1
- package/dist/ripple/p-d20a0f0c.system.entry.js +0 -1
- package/dist/ripple/p-d6111226.entry.js +0 -1
- package/dist/ripple/p-da68c87c.entry.js +0 -1
- package/dist/ripple/p-ddef82fa.system.entry.js +0 -1
- package/dist/ripple/p-dee6d5a3.entry.js +0 -1
- package/dist/ripple/p-e55d5371.entry.js +0 -1
- package/dist/ripple/p-e8c22f01.system.entry.js +0 -1
- package/dist/ripple/p-f555831b.entry.js +0 -1
- package/dist/ripple/p-f5c40e9e.system.entry.js +0 -1
- package/dist/ripple/p-f9cade98.entry.js +0 -1
- package/dist/ripple/p-fa09191b.system.entry.js +0 -1
- package/dist/ripple/p-fdfca58b.entry.js +0 -1
- package/dist/ripple/ripple.css +0 -1
- package/dist/ripple/ripple.esm.js +0 -1
- package/dist/ripple/ripple.js +0 -127
- /package/dist/{collection/dev/action-menu.js → types/test-setup.d.ts} +0 -0
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
-
import { AxePuppeteer } from "@axe-core/puppeteer";
|
|
3
|
-
describe("wm-action-menu", () => {
|
|
4
|
-
let page;
|
|
5
|
-
beforeEach(async () => {
|
|
6
|
-
page = await newE2EPage();
|
|
7
|
-
await page.setContent("<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1><wm-action-menu id='test' tooltip='menu name'><wm-menuitem id='first' onClick='action()'>First action</wm-menuitem><wm-menuitem id='second'>Second action</wm-menuitem><wm-menuitem id='third'>Third action</wm-menuitem></wm-action-menu><script>function action() {document.getElementById('first').innerHTML = 'Changed text'}</script></main></body></html>");
|
|
8
|
-
});
|
|
9
|
-
it("passes Axe checks", async () => {
|
|
10
|
-
const results = await new AxePuppeteer(page).analyze();
|
|
11
|
-
expect(results.violations.length).toBe(0);
|
|
12
|
-
});
|
|
13
|
-
//ATTRIBUTES;
|
|
14
|
-
it("has the right WAI_ARIA roles, states and properties", async () => {
|
|
15
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
16
|
-
const menu = await page.find("wm-action-menu >>> #menu-test");
|
|
17
|
-
const second = await page.find("#second");
|
|
18
|
-
const third = await page.find("#third");
|
|
19
|
-
await page.waitForChanges();
|
|
20
|
-
// check aria-expanded attribute
|
|
21
|
-
expect(wmbtn).toEqualAttribute("aria-expanded", "false");
|
|
22
|
-
// If the element with the aria-expanded attribute controls the expansion of another grouping container that is not 'owned by' the element, the author SHOULD reference the container by using the aria-controls attribute.
|
|
23
|
-
// src: https://www.w3.org/WAI/PF/aria/states_and_properties#aria-expanded
|
|
24
|
-
expect(wmbtn).toEqualAttribute("aria-controls", "menu-test");
|
|
25
|
-
// An element that contains or owns all the menu items has role menu.
|
|
26
|
-
expect(menu).toEqualAttribute("role", "menu");
|
|
27
|
-
expect(menu).toEqualAttribute("tabindex", "-1");
|
|
28
|
-
// Each menuitem in the menu has role menuitem.
|
|
29
|
-
expect(second).toEqualAttribute("role", "menuitem"); // just checking one randomly
|
|
30
|
-
expect(third).toEqualAttribute("tabindex", "-1");
|
|
31
|
-
});
|
|
32
|
-
// Down Arrow: Moves focus to the first menuitem. If the dropdown is collapsed, it also expands the list.
|
|
33
|
-
// Up Arrow: Moves focus to the last menuitem. If the dropdown is collapsed, it also expands the list.
|
|
34
|
-
it("handles Up and Down Arrow keys", async () => {
|
|
35
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
36
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
|
|
37
|
-
await page.keyboard.press("Tab");
|
|
38
|
-
await page.waitForChanges();
|
|
39
|
-
await page.keyboard.press("ArrowDown");
|
|
40
|
-
await page.waitForChanges();
|
|
41
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
42
|
-
const first = await page.find("wm-menuitem#first >>> div");
|
|
43
|
-
const second = await page.find("wm-menuitem#second >>> div");
|
|
44
|
-
expect(first).toHaveClass("focus");
|
|
45
|
-
await page.keyboard.press("ArrowDown");
|
|
46
|
-
await page.waitForChanges();
|
|
47
|
-
expect(second).toHaveClass("focus");
|
|
48
|
-
await page.keyboard.press("ArrowUp");
|
|
49
|
-
await page.waitForChanges();
|
|
50
|
-
expect(first).toHaveClass("focus");
|
|
51
|
-
await page.keyboard.press("Enter");
|
|
52
|
-
await page.waitForChanges();
|
|
53
|
-
await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
|
|
54
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
|
|
55
|
-
await page.keyboard.press("ArrowUp");
|
|
56
|
-
await page.waitForChanges();
|
|
57
|
-
// after the action runs the dropdown close and the dev should focus the relevant element.
|
|
58
|
-
// in case they don't, focus will return to the body. The component checks that and brings focus
|
|
59
|
-
// back to the button when that's the case.
|
|
60
|
-
// Things seem to happen differently with headless chrome / puppeteer. Focus stays on the menuitem even after
|
|
61
|
-
// it has become unable to have focus in normal browsers (after dropdown closes). Focus never gets to body.
|
|
62
|
-
// So here we simply test that the active el is not the body
|
|
63
|
-
const activeEl = await page.evaluate(() => document.activeElement.tagName);
|
|
64
|
-
expect(activeEl).not.toEqual("BODY");
|
|
65
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
66
|
-
await page.keyboard.press("ArrowUp");
|
|
67
|
-
await page.waitForChanges();
|
|
68
|
-
expect(second).toHaveClass("focus");
|
|
69
|
-
});
|
|
70
|
-
// Home: If the dropdown is displayed, moves focus to first menuitem.
|
|
71
|
-
// End: If the dropdown is displayed, moves focus to last menuitem.
|
|
72
|
-
it("handles Home and End keys", async () => {
|
|
73
|
-
await page.keyboard.press("Tab");
|
|
74
|
-
await page.keyboard.press("Enter");
|
|
75
|
-
await page.waitForTimeout(40);
|
|
76
|
-
await page.keyboard.press("ArrowDown");
|
|
77
|
-
await page.keyboard.press("ArrowDown");
|
|
78
|
-
await page.waitForChanges();
|
|
79
|
-
const focusedEl = await page.find("wm-menuitem#third >>> div");
|
|
80
|
-
expect(focusedEl).toHaveClass("focus");
|
|
81
|
-
await page.keyboard.press("Home");
|
|
82
|
-
await page.waitForChanges();
|
|
83
|
-
const homefocusedEl = await page.find("wm-menuitem#first >>> div");
|
|
84
|
-
expect(focusedEl).not.toHaveClass("focus");
|
|
85
|
-
expect(homefocusedEl).toHaveClass("focus");
|
|
86
|
-
await page.keyboard.press("End");
|
|
87
|
-
await page.waitForChanges();
|
|
88
|
-
const endfocusedEl = await page.find("wm-menuitem#third >>> div");
|
|
89
|
-
expect(endfocusedEl).toHaveClass("focus");
|
|
90
|
-
});
|
|
91
|
-
// - Type a character: focus moves to the next menuitem with a name that starts with the typed character.
|
|
92
|
-
// - Type multiple characters in rapid succession: focus moves to the next menuitem with a name that starts with the string of characters typed
|
|
93
|
-
it("handles typing", async () => {
|
|
94
|
-
await page.keyboard.press("Tab");
|
|
95
|
-
await page.keyboard.press("Enter");
|
|
96
|
-
await page.waitForChanges();
|
|
97
|
-
await page.keyboard.press("t");
|
|
98
|
-
await page.waitForChanges();
|
|
99
|
-
const focusedEl = await page.find("wm-menuitem#third >>> div");
|
|
100
|
-
expect(focusedEl).toHaveClass("focus");
|
|
101
|
-
});
|
|
102
|
-
// OPEN / CLOSE
|
|
103
|
-
// Spacebar: Should open the popup (we didn't implement, comes for free. Test is to make sure we don't break it)
|
|
104
|
-
it("handles the Spacebar key", async () => {
|
|
105
|
-
await page.keyboard.press("Tab");
|
|
106
|
-
await page.keyboard.press("Space");
|
|
107
|
-
await page.waitForChanges();
|
|
108
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
109
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
110
|
-
});
|
|
111
|
-
// Escape: If the menu is displayed, closes the popup and returns focus to the button.
|
|
112
|
-
it("handles the Escape key", async () => {
|
|
113
|
-
await page.keyboard.press("Tab");
|
|
114
|
-
await page.keyboard.press("Enter");
|
|
115
|
-
await page.waitForChanges();
|
|
116
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
117
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
118
|
-
await page.keyboard.press("ArrowDown");
|
|
119
|
-
await page.keyboard.press("Escape");
|
|
120
|
-
await page.waitForChanges();
|
|
121
|
-
await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
|
|
122
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
|
|
123
|
-
const activeElId = await page.evaluate(() => document.activeElement.id);
|
|
124
|
-
expect(activeElId).toEqual("test");
|
|
125
|
-
//When dropdown reopens, focus returns to first element
|
|
126
|
-
await page.keyboard.press("Enter");
|
|
127
|
-
await page.waitForChanges();
|
|
128
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
129
|
-
const focusedEl = await page.find("wm-menuitem#first >>> div");
|
|
130
|
-
expect(focusedEl).toHaveClass("focus"); //
|
|
131
|
-
});
|
|
132
|
-
// Enter:
|
|
133
|
-
// - If the focus is on the button, it expands the dropdown and places focuses on the first menuitem.
|
|
134
|
-
// - If the dropdown is open, it closes the dropdown.
|
|
135
|
-
it("opens and closes the dropdown when enter key is pressed", async () => {
|
|
136
|
-
await page.keyboard.press("Tab");
|
|
137
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
138
|
-
await page.keyboard.press("Enter");
|
|
139
|
-
await page.waitForChanges();
|
|
140
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
|
|
141
|
-
await page.keyboard.press("Enter");
|
|
142
|
-
await page.waitForChanges();
|
|
143
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
|
|
144
|
-
});
|
|
145
|
-
it("runs the onClick function passed to the menuitem when clicked or key pressed", async () => {
|
|
146
|
-
page = await newE2EPage();
|
|
147
|
-
await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
|
|
148
|
-
<wm-action-menu id='test' tooltip='menu name'>
|
|
149
|
-
<wm-menuitem id='first' onClick='action()'>First action</wm-menuitem>
|
|
150
|
-
</wm-action-menu>
|
|
151
|
-
<div id='changeMe'>default</div>
|
|
152
|
-
<script>
|
|
153
|
-
function action() {
|
|
154
|
-
document.getElementById('changeMe').textContent += "&"
|
|
155
|
-
}
|
|
156
|
-
</script></main></body></html>`);
|
|
157
|
-
const div = await page.find("#changeMe");
|
|
158
|
-
await page.keyboard.press("Tab");
|
|
159
|
-
await page.waitForChanges();
|
|
160
|
-
await page.keyboard.press("Enter");
|
|
161
|
-
await page.waitForChanges();
|
|
162
|
-
await page.keyboard.press("Enter");
|
|
163
|
-
await page.waitForChanges();
|
|
164
|
-
expect(div.textContent).toBe("default&");
|
|
165
|
-
await page.waitForTimeout(300); // make sure menu is closed before reopening (closes after the 250ms animation)
|
|
166
|
-
await page.keyboard.press("Enter");
|
|
167
|
-
await page.waitForChanges();
|
|
168
|
-
await page.click("#first");
|
|
169
|
-
await page.waitForChanges();
|
|
170
|
-
expect(div.textContent).toBe("default&&");
|
|
171
|
-
});
|
|
172
|
-
it("doesn't open the dropdown if the dropdown is disabled", async () => {
|
|
173
|
-
await page.evaluate(() => document.querySelector("wm-action-menu").setAttribute("disabled", "true"));
|
|
174
|
-
await page.keyboard.press("Tab");
|
|
175
|
-
await page.keyboard.press("Enter");
|
|
176
|
-
await page.waitForChanges();
|
|
177
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
178
|
-
await page.waitForChanges();
|
|
179
|
-
expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
|
|
180
|
-
});
|
|
181
|
-
// TOOLTIP
|
|
182
|
-
it("renders a tooltip when type is icon", async () => {
|
|
183
|
-
await page.keyboard.press("Tab");
|
|
184
|
-
await page.waitForChanges();
|
|
185
|
-
const tooltipEl = await page.find("#wm-tooltip");
|
|
186
|
-
expect(tooltipEl.textContent).toBe("menu name");
|
|
187
|
-
});
|
|
188
|
-
it("uses the label instead of tooltip text", async () => {
|
|
189
|
-
page = await newE2EPage();
|
|
190
|
-
await page.setContent("<wm-action-menu icon='f1c0' action-menu-type='icon' tooltip='delete' label-for-identical-buttons='delete this particular thing'><wm-menuitem>1</wm-menuitem></wm-action-menu>");
|
|
191
|
-
// use case: when the tooltip is something like "edit" and there are several buttons on a page, the aria label should be more specific than the tooltip
|
|
192
|
-
const wmbtn = await page.find("wm-action-menu >>> wm-button");
|
|
193
|
-
const btn = wmbtn.shadowRoot.querySelector("button");
|
|
194
|
-
await page.keyboard.press("Tab");
|
|
195
|
-
await page.waitForChanges();
|
|
196
|
-
const tooltipEl = await page.find("#wm-tooltip");
|
|
197
|
-
expect(tooltipEl.textContent).toEqual("delete");
|
|
198
|
-
expect(btn).toEqualAttribute("aria-label", "delete this particular thing");
|
|
199
|
-
});
|
|
200
|
-
});
|
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
import { h, Host } from "@stencil/core";
|
|
2
|
-
import { debounce, getTextDir, shouldOpenUp, shouldShiftRight } from "../../global/functions";
|
|
3
|
-
export class ActionMenu {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.openUp = false;
|
|
6
|
-
this.keysSoFar = "";
|
|
7
|
-
this.searchIndex = 0;
|
|
8
|
-
this.debouncedClearKeysSoFar = debounce(() => {
|
|
9
|
-
this.keysSoFar = "";
|
|
10
|
-
}, 500);
|
|
11
|
-
this.isExpanded = false;
|
|
12
|
-
this.tooltipPosition = undefined;
|
|
13
|
-
this.actionMenuType = "icon";
|
|
14
|
-
this.buttonText = undefined;
|
|
15
|
-
this.disabled = false;
|
|
16
|
-
this.tooltip = undefined;
|
|
17
|
-
this.labelForIdenticalButtons = undefined;
|
|
18
|
-
this.darkMode = undefined;
|
|
19
|
-
}
|
|
20
|
-
get horizontalPosition() {
|
|
21
|
-
return !!this.el && !!this.itemsEl && shouldShiftRight(this.el, this.itemsEl.clientWidth) ? "right" : "left";
|
|
22
|
-
}
|
|
23
|
-
get childItems() {
|
|
24
|
-
return Array.from(this.el.querySelectorAll("wm-menuitem"));
|
|
25
|
-
}
|
|
26
|
-
get internalButtonType() {
|
|
27
|
-
return this.actionMenuType === "icon" || this.actionMenuType === "text"
|
|
28
|
-
? this.actionMenuType + "only"
|
|
29
|
-
: this.actionMenuType;
|
|
30
|
-
}
|
|
31
|
-
handleClickedItem() {
|
|
32
|
-
this.close();
|
|
33
|
-
}
|
|
34
|
-
handleKeyUp(ev) {
|
|
35
|
-
this.moveUp(ev.target);
|
|
36
|
-
}
|
|
37
|
-
handleKeyDown(ev) {
|
|
38
|
-
this.moveDown(ev.detail);
|
|
39
|
-
}
|
|
40
|
-
handleHomeKey() {
|
|
41
|
-
this.focusFirstItem();
|
|
42
|
-
}
|
|
43
|
-
handleEndKey() {
|
|
44
|
-
this.focusLastItem();
|
|
45
|
-
}
|
|
46
|
-
handleTabKey() {
|
|
47
|
-
if (this.isExpanded) {
|
|
48
|
-
this.close();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
handleEscKey() {
|
|
52
|
-
this.close();
|
|
53
|
-
this.wmButtonEl.focus();
|
|
54
|
-
}
|
|
55
|
-
handleKey(ev) {
|
|
56
|
-
switch (ev.key) {
|
|
57
|
-
case "ArrowDown":
|
|
58
|
-
if (!this.isExpanded) {
|
|
59
|
-
ev.preventDefault();
|
|
60
|
-
this.open();
|
|
61
|
-
window.requestAnimationFrame(() => this.focusFirstItem());
|
|
62
|
-
}
|
|
63
|
-
break;
|
|
64
|
-
case "ArrowUp":
|
|
65
|
-
if (!this.isExpanded) {
|
|
66
|
-
ev.preventDefault();
|
|
67
|
-
this.open();
|
|
68
|
-
window.requestAnimationFrame(() => this.focusLastItem());
|
|
69
|
-
}
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
handleMenuitemBlur(ev) {
|
|
74
|
-
const toElOrChild = ev.detail.relatedTarget === this.el || this.el.contains(ev.detail.relatedTarget);
|
|
75
|
-
// if the Menuitem is blurred to something other than the component, emit a blur event with the appropriate relatedTarget
|
|
76
|
-
// keeps our component's blur events accurate, and closes when focusing browser address bar
|
|
77
|
-
if (!toElOrChild) {
|
|
78
|
-
const event = new CustomEvent("blur");
|
|
79
|
-
// @ts-ignore
|
|
80
|
-
event.relatedTarget = ev.detail.relatedTarget;
|
|
81
|
-
this.el.dispatchEvent(event);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
handleButtonBlur(ev) {
|
|
85
|
-
const toElOrChild = ev.relatedTarget === this.el || this.el.contains(ev.relatedTarget);
|
|
86
|
-
if (toElOrChild) {
|
|
87
|
-
// do not emit a blur event when opening the dropdown and focusing the Menuitems
|
|
88
|
-
ev.stopPropagation();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
componentDidLoad() {
|
|
92
|
-
if (this.actionMenuType !== "icon" && !this.buttonText) {
|
|
93
|
-
console.error("wm-action-menu should have a valid button-text property when action-menu-type is set to 'text' or 'selector'");
|
|
94
|
-
}
|
|
95
|
-
if (this.actionMenuType === "icon" && !this.tooltip) {
|
|
96
|
-
console.error("wm-action-menu should have a valid tooltip when action-menu-type is set to 'icon'");
|
|
97
|
-
}
|
|
98
|
-
this.wmActionMenuLoaded.emit();
|
|
99
|
-
this.menuLoaded.emit(); // deprecated
|
|
100
|
-
}
|
|
101
|
-
moveUp(el) {
|
|
102
|
-
const index = this.childItems.indexOf(el);
|
|
103
|
-
if (index === 0) {
|
|
104
|
-
this.focusLastItem();
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.childItems[index - 1].focus();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
moveDown(el) {
|
|
111
|
-
const index = this.childItems.indexOf(el);
|
|
112
|
-
if (index === this.childItems.length - 1) {
|
|
113
|
-
this.focusFirstItem();
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
this.childItems[index + 1].focus();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
open() {
|
|
120
|
-
if (!this.disabled) {
|
|
121
|
-
this.openUp = shouldOpenUp(this.el, this.itemsEl.clientHeight);
|
|
122
|
-
// action menu usually is on the right side of the screen,
|
|
123
|
-
// so dropdown opens to the left (is anchored on the right corner)
|
|
124
|
-
// if there is not enough space on the left and enough on the right though,
|
|
125
|
-
// it will open on the right side
|
|
126
|
-
this.isExpanded = true;
|
|
127
|
-
this.itemsEl.classList.remove("hidden");
|
|
128
|
-
window.requestAnimationFrame(() => this.focusFirstItem());
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
close(returnFocus = true) {
|
|
132
|
-
this.isExpanded = false;
|
|
133
|
-
window.setTimeout(() => {
|
|
134
|
-
this.itemsEl.classList.add("hidden");
|
|
135
|
-
}, 150);
|
|
136
|
-
window.setTimeout(() => {
|
|
137
|
-
// if dev omits to assign focus after an action is triggered,
|
|
138
|
-
// the component brings the focus back on the button
|
|
139
|
-
// Focus will only be lost (and go to the body) once the menuitem
|
|
140
|
-
// is not visible anymore, so we need to wait for the transition to
|
|
141
|
-
// finish and the hidden class to be applied.
|
|
142
|
-
// also checking if focus stayed on the menuitem
|
|
143
|
-
if (returnFocus &&
|
|
144
|
-
(document.activeElement.tagName === "BODY" || document.activeElement.tagName === "WM-MENUITEM")) {
|
|
145
|
-
this.wmButtonEl.focus();
|
|
146
|
-
}
|
|
147
|
-
}, 250);
|
|
148
|
-
}
|
|
149
|
-
focusFirstItem() {
|
|
150
|
-
this.childItems[0].focus();
|
|
151
|
-
}
|
|
152
|
-
focusLastItem() {
|
|
153
|
-
this.childItems[this.childItems.length - 1].focus();
|
|
154
|
-
}
|
|
155
|
-
findAndFocusItem(ev) {
|
|
156
|
-
if (!this.keysSoFar && ev.detail == " ") {
|
|
157
|
-
// if the first key entered is space, treat as a click. Otherwise include in
|
|
158
|
-
ev.target.click();
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
const character = ev.detail.toLowerCase();
|
|
162
|
-
this.focusFirstItem();
|
|
163
|
-
if (!this.keysSoFar) {
|
|
164
|
-
this.childItems.forEach((item, idx) => {
|
|
165
|
-
if (item === document.activeElement) {
|
|
166
|
-
this.searchIndex = idx;
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
this.keysSoFar += character;
|
|
171
|
-
let nextMatch = this.findMatchInRange(this.childItems, this.searchIndex + 1, this.childItems.length);
|
|
172
|
-
if (!nextMatch) {
|
|
173
|
-
nextMatch = this.findMatchInRange(this.childItems, 0, this.searchIndex);
|
|
174
|
-
}
|
|
175
|
-
if (nextMatch) {
|
|
176
|
-
nextMatch.focus();
|
|
177
|
-
}
|
|
178
|
-
this.debouncedClearKeysSoFar();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
findMatchInRange(list, startIndex, endIndex) {
|
|
182
|
-
// Find the first item starting with the keysSoFar substring, searching in
|
|
183
|
-
// the specified range of items
|
|
184
|
-
for (var n = startIndex; n < endIndex; n++) {
|
|
185
|
-
var label = list[n].textContent;
|
|
186
|
-
if (label && label.toLowerCase().indexOf(this.keysSoFar) === 0) {
|
|
187
|
-
return list[n];
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
render() {
|
|
193
|
-
return (h(Host, { onBlur: () => this.close(false) }, h("div", { class: getTextDir() }, h("wm-button", { "button-type": this.internalButtonType, tooltip: this.tooltip, "custom-background": this.darkMode ? "dark" : undefined, "label-for-identical-buttons": this.labelForIdenticalButtons, icon: this.actionMenuType === "icon" ? "#more-options" : "", iconSize: this.actionMenuType === "icon" ? "24px" : undefined, id: "menubtn", onClick: () => (this.isExpanded ? this.close() : this.open()), onBlur: (ev) => this.handleButtonBlur(ev), disabled: this.disabled, ref: (el) => (this.wmButtonEl = el), "tooltip-position": this.tooltipPosition || this.horizontalPosition, "aria-haspopup": "true", "aria-expanded": this.isExpanded ? "true" : "false", "aria-controls": "menu" }, this.buttonText), h("div", { class: `dropdown ${this.openUp ? "open-up" : ""} ${this.horizontalPosition} ${this.isExpanded ? "open" : ""} hidden`, id: "menu", tabindex: -1, role: "menu", ref: (el) => (this.itemsEl = el) }, h("slot", null)))));
|
|
194
|
-
}
|
|
195
|
-
static get is() { return "wm-action-menu"; }
|
|
196
|
-
static get encapsulation() { return "shadow"; }
|
|
197
|
-
static get delegatesFocus() { return true; }
|
|
198
|
-
static get originalStyleUrls() {
|
|
199
|
-
return {
|
|
200
|
-
"$": ["wm-action-menu.scss"]
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
static get styleUrls() {
|
|
204
|
-
return {
|
|
205
|
-
"$": ["wm-action-menu.css"]
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
static get properties() {
|
|
209
|
-
return {
|
|
210
|
-
"tooltipPosition": {
|
|
211
|
-
"type": "string",
|
|
212
|
-
"mutable": false,
|
|
213
|
-
"complexType": {
|
|
214
|
-
"original": "| \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-right\"\n | \"top-left\"",
|
|
215
|
-
"resolved": "\"bottom\" | \"bottom-left\" | \"bottom-right\" | \"left\" | \"right\" | \"top\" | \"top-left\" | \"top-right\" | undefined",
|
|
216
|
-
"references": {}
|
|
217
|
-
},
|
|
218
|
-
"required": false,
|
|
219
|
-
"optional": true,
|
|
220
|
-
"docs": {
|
|
221
|
-
"tags": [],
|
|
222
|
-
"text": ""
|
|
223
|
-
},
|
|
224
|
-
"attribute": "tooltip-position",
|
|
225
|
-
"reflect": false
|
|
226
|
-
},
|
|
227
|
-
"actionMenuType": {
|
|
228
|
-
"type": "string",
|
|
229
|
-
"mutable": false,
|
|
230
|
-
"complexType": {
|
|
231
|
-
"original": "\"icon\" | \"text\" | \"selector\" | \"selector-primary\"",
|
|
232
|
-
"resolved": "\"icon\" | \"selector\" | \"selector-primary\" | \"text\"",
|
|
233
|
-
"references": {}
|
|
234
|
-
},
|
|
235
|
-
"required": false,
|
|
236
|
-
"optional": false,
|
|
237
|
-
"docs": {
|
|
238
|
-
"tags": [],
|
|
239
|
-
"text": ""
|
|
240
|
-
},
|
|
241
|
-
"attribute": "action-menu-type",
|
|
242
|
-
"reflect": false,
|
|
243
|
-
"defaultValue": "\"icon\""
|
|
244
|
-
},
|
|
245
|
-
"buttonText": {
|
|
246
|
-
"type": "string",
|
|
247
|
-
"mutable": false,
|
|
248
|
-
"complexType": {
|
|
249
|
-
"original": "string",
|
|
250
|
-
"resolved": "string | undefined",
|
|
251
|
-
"references": {}
|
|
252
|
-
},
|
|
253
|
-
"required": false,
|
|
254
|
-
"optional": true,
|
|
255
|
-
"docs": {
|
|
256
|
-
"tags": [],
|
|
257
|
-
"text": ""
|
|
258
|
-
},
|
|
259
|
-
"attribute": "button-text",
|
|
260
|
-
"reflect": false
|
|
261
|
-
},
|
|
262
|
-
"disabled": {
|
|
263
|
-
"type": "boolean",
|
|
264
|
-
"mutable": false,
|
|
265
|
-
"complexType": {
|
|
266
|
-
"original": "boolean",
|
|
267
|
-
"resolved": "boolean",
|
|
268
|
-
"references": {}
|
|
269
|
-
},
|
|
270
|
-
"required": false,
|
|
271
|
-
"optional": false,
|
|
272
|
-
"docs": {
|
|
273
|
-
"tags": [],
|
|
274
|
-
"text": ""
|
|
275
|
-
},
|
|
276
|
-
"attribute": "disabled",
|
|
277
|
-
"reflect": true,
|
|
278
|
-
"defaultValue": "false"
|
|
279
|
-
},
|
|
280
|
-
"tooltip": {
|
|
281
|
-
"type": "string",
|
|
282
|
-
"mutable": false,
|
|
283
|
-
"complexType": {
|
|
284
|
-
"original": "string",
|
|
285
|
-
"resolved": "string | undefined",
|
|
286
|
-
"references": {}
|
|
287
|
-
},
|
|
288
|
-
"required": false,
|
|
289
|
-
"optional": true,
|
|
290
|
-
"docs": {
|
|
291
|
-
"tags": [],
|
|
292
|
-
"text": ""
|
|
293
|
-
},
|
|
294
|
-
"attribute": "tooltip",
|
|
295
|
-
"reflect": false
|
|
296
|
-
},
|
|
297
|
-
"labelForIdenticalButtons": {
|
|
298
|
-
"type": "string",
|
|
299
|
-
"mutable": false,
|
|
300
|
-
"complexType": {
|
|
301
|
-
"original": "string",
|
|
302
|
-
"resolved": "string | undefined",
|
|
303
|
-
"references": {}
|
|
304
|
-
},
|
|
305
|
-
"required": false,
|
|
306
|
-
"optional": true,
|
|
307
|
-
"docs": {
|
|
308
|
-
"tags": [],
|
|
309
|
-
"text": ""
|
|
310
|
-
},
|
|
311
|
-
"attribute": "label-for-identical-buttons",
|
|
312
|
-
"reflect": false
|
|
313
|
-
},
|
|
314
|
-
"darkMode": {
|
|
315
|
-
"type": "boolean",
|
|
316
|
-
"mutable": false,
|
|
317
|
-
"complexType": {
|
|
318
|
-
"original": "boolean",
|
|
319
|
-
"resolved": "boolean | undefined",
|
|
320
|
-
"references": {}
|
|
321
|
-
},
|
|
322
|
-
"required": false,
|
|
323
|
-
"optional": true,
|
|
324
|
-
"docs": {
|
|
325
|
-
"tags": [],
|
|
326
|
-
"text": ""
|
|
327
|
-
},
|
|
328
|
-
"attribute": "dark-mode",
|
|
329
|
-
"reflect": false
|
|
330
|
-
}
|
|
331
|
-
};
|
|
332
|
-
}
|
|
333
|
-
static get states() {
|
|
334
|
-
return {
|
|
335
|
-
"isExpanded": {}
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
static get events() {
|
|
339
|
-
return [{
|
|
340
|
-
"method": "wmActionMenuLoaded",
|
|
341
|
-
"name": "wmActionMenuLoaded",
|
|
342
|
-
"bubbles": true,
|
|
343
|
-
"cancelable": true,
|
|
344
|
-
"composed": true,
|
|
345
|
-
"docs": {
|
|
346
|
-
"tags": [],
|
|
347
|
-
"text": ""
|
|
348
|
-
},
|
|
349
|
-
"complexType": {
|
|
350
|
-
"original": "any",
|
|
351
|
-
"resolved": "any",
|
|
352
|
-
"references": {}
|
|
353
|
-
}
|
|
354
|
-
}, {
|
|
355
|
-
"method": "menuLoaded",
|
|
356
|
-
"name": "menuLoaded",
|
|
357
|
-
"bubbles": true,
|
|
358
|
-
"cancelable": true,
|
|
359
|
-
"composed": true,
|
|
360
|
-
"docs": {
|
|
361
|
-
"tags": [],
|
|
362
|
-
"text": ""
|
|
363
|
-
},
|
|
364
|
-
"complexType": {
|
|
365
|
-
"original": "any",
|
|
366
|
-
"resolved": "any",
|
|
367
|
-
"references": {}
|
|
368
|
-
}
|
|
369
|
-
}];
|
|
370
|
-
}
|
|
371
|
-
static get elementRef() { return "el"; }
|
|
372
|
-
static get listeners() {
|
|
373
|
-
return [{
|
|
374
|
-
"name": "wmMenuitemClicked",
|
|
375
|
-
"method": "handleClickedItem",
|
|
376
|
-
"target": undefined,
|
|
377
|
-
"capture": false,
|
|
378
|
-
"passive": false
|
|
379
|
-
}, {
|
|
380
|
-
"name": "wmKeyUpPressed",
|
|
381
|
-
"method": "handleKeyUp",
|
|
382
|
-
"target": undefined,
|
|
383
|
-
"capture": false,
|
|
384
|
-
"passive": false
|
|
385
|
-
}, {
|
|
386
|
-
"name": "wmKeyDownPressed",
|
|
387
|
-
"method": "handleKeyDown",
|
|
388
|
-
"target": undefined,
|
|
389
|
-
"capture": false,
|
|
390
|
-
"passive": false
|
|
391
|
-
}, {
|
|
392
|
-
"name": "wmHomeKeyPressed",
|
|
393
|
-
"method": "handleHomeKey",
|
|
394
|
-
"target": undefined,
|
|
395
|
-
"capture": false,
|
|
396
|
-
"passive": false
|
|
397
|
-
}, {
|
|
398
|
-
"name": "wmEndKeyPressed",
|
|
399
|
-
"method": "handleEndKey",
|
|
400
|
-
"target": undefined,
|
|
401
|
-
"capture": false,
|
|
402
|
-
"passive": false
|
|
403
|
-
}, {
|
|
404
|
-
"name": "wmTabKeyPressed",
|
|
405
|
-
"method": "handleTabKey",
|
|
406
|
-
"target": undefined,
|
|
407
|
-
"capture": false,
|
|
408
|
-
"passive": false
|
|
409
|
-
}, {
|
|
410
|
-
"name": "wmEscKeyPressed",
|
|
411
|
-
"method": "handleEscKey",
|
|
412
|
-
"target": undefined,
|
|
413
|
-
"capture": false,
|
|
414
|
-
"passive": false
|
|
415
|
-
}, {
|
|
416
|
-
"name": "keydown",
|
|
417
|
-
"method": "handleKey",
|
|
418
|
-
"target": undefined,
|
|
419
|
-
"capture": false,
|
|
420
|
-
"passive": false
|
|
421
|
-
}, {
|
|
422
|
-
"name": "wmMenuitemBlurred",
|
|
423
|
-
"method": "handleMenuitemBlur",
|
|
424
|
-
"target": undefined,
|
|
425
|
-
"capture": false,
|
|
426
|
-
"passive": false
|
|
427
|
-
}, {
|
|
428
|
-
"name": "wmLetterPressed",
|
|
429
|
-
"method": "findAndFocusItem",
|
|
430
|
-
"target": undefined,
|
|
431
|
-
"capture": false,
|
|
432
|
-
"passive": false
|
|
433
|
-
}];
|
|
434
|
-
}
|
|
435
|
-
}
|