@watermarkinsights/ripple 3.9.0 → 3.10.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/README.md +3 -3
- package/dist/cjs/{chartFunctions-dbbea5a8.js → chartFunctions-05b9dcc7.js} +418 -417
- package/dist/cjs/{functions-15e21d53.js → functions-71c85bae.js} +506 -532
- package/dist/cjs/{global-b0e0eac2.js → global-f98992f4.js} +60 -60
- package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
- package/dist/cjs/{index-acad7ab3.js → index-98c6524c.js} +64 -96
- package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/priv-chart-popover.cjs.entry.js +87 -87
- package/dist/cjs/priv-datepicker.cjs.entry.js +659 -659
- package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
- package/dist/cjs/priv-navigator-item.cjs.entry.js +24 -24
- package/dist/cjs/ripple.cjs.js +3 -3
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +342 -342
- package/dist/cjs/wm-button.cjs.entry.js +228 -228
- package/dist/cjs/wm-chart-slice.cjs.entry.js +14 -14
- package/dist/cjs/wm-chart.cjs.entry.js +117 -117
- package/dist/cjs/wm-datepicker.cjs.entry.js +267 -267
- package/dist/cjs/wm-input.cjs.entry.js +136 -136
- package/dist/cjs/wm-modal-footer.cjs.entry.js +32 -32
- package/dist/cjs/wm-modal-header.cjs.entry.js +35 -35
- package/dist/cjs/wm-modal.cjs.entry.js +164 -164
- package/dist/cjs/wm-navigation_3.cjs.entry.js +222 -222
- package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
- package/dist/cjs/wm-network-uploader.cjs.entry.js +454 -454
- package/dist/cjs/wm-option_2.cjs.entry.js +487 -487
- package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +136 -136
- package/dist/cjs/wm-search.cjs.entry.js +233 -233
- package/dist/cjs/wm-snackbar.cjs.entry.js +172 -172
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +298 -298
- package/dist/cjs/wm-tag-input.cjs.entry.js +581 -581
- package/dist/cjs/wm-timepicker.cjs.entry.js +385 -385
- package/dist/cjs/wm-toggletip.cjs.entry.js +126 -126
- package/dist/cjs/wm-uploader.cjs.entry.js +380 -380
- package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +0 -1
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +258 -258
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +115 -115
- package/dist/collection/components/charts/wm-chart/wm-chart.css +6 -15
- package/dist/collection/components/charts/wm-chart/wm-chart.js +332 -332
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +6 -15
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +199 -199
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +88 -88
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +111 -111
- package/dist/collection/components/wm-action-menu/wm-action-menu.css +0 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
- package/dist/collection/components/wm-button/wm-button.css +33 -25
- package/dist/collection/components/wm-button/wm-button.js +491 -491
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +4 -4
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1024 -1024
- package/dist/collection/components/wm-datepicker/wm-datepicker.css +2 -2
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +471 -471
- package/dist/collection/components/wm-input/wm-input.css +2 -2
- package/dist/collection/components/wm-input/wm-input.js +423 -423
- package/dist/collection/components/wm-menuitem/wm-menuitem.css +0 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
- package/dist/collection/components/wm-modal/wm-modal-footer.css +0 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
- package/dist/collection/components/wm-modal/wm-modal-header.css +0 -1
- package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
- package/dist/collection/components/wm-modal/wm-modal.css +0 -1
- package/dist/collection/components/wm-modal/wm-modal.js +461 -461
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +2 -2
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +162 -162
- package/dist/collection/components/wm-navigation/wm-navigation-item.css +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +121 -121
- package/dist/collection/components/wm-navigation/wm-navigation.css +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation.js +211 -211
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
- package/dist/collection/components/wm-navigator/wm-navigator.css +0 -1
- package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
- package/dist/collection/components/wm-option/wm-option.css +3 -3
- package/dist/collection/components/wm-option/wm-option.js +414 -414
- package/dist/collection/components/wm-pagination/wm-pagination.css +0 -1
- package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
- package/dist/collection/components/wm-search/wm-search.css +0 -1
- package/dist/collection/components/wm-search/wm-search.js +480 -480
- package/dist/collection/components/wm-select/wm-select.css +3 -3
- package/dist/collection/components/wm-select/wm-select.js +718 -718
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +3 -3
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +2 -3
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +216 -216
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +330 -330
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +3 -3
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -810
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +3 -3
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -583
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +2 -2
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +33 -25
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +785 -785
- package/dist/collection/components/wm-uploader/wm-uploader.css +33 -25
- package/dist/collection/components/wm-uploader/wm-uploader.js +780 -780
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
- package/dist/collection/dev/scripts.js +20 -20
- package/dist/collection/global/__mocks__/functions.js +6 -6
- package/dist/collection/global/chartFunctions.js +418 -418
- package/dist/collection/global/functions.js +468 -468
- package/dist/collection/global/global.js +67 -67
- package/dist/collection/global/interfaces.js +49 -49
- package/dist/collection/global/services/__mocks__/http-service.js +130 -130
- package/dist/collection/global/services/http-service.js +50 -50
- package/dist/collection/lang/lang.js +5 -5
- package/dist/collection/lang/missing.js +43 -43
- package/dist/collection/lang/piglatin.js +93 -93
- package/dist/esm/{chartFunctions-303e1644.js → chartFunctions-b24ba065.js} +418 -418
- package/dist/esm/{functions-e552a8b5.js → functions-117d1a51.js} +506 -532
- package/dist/esm/{global-fa341013.js → global-6a9c8257.js} +60 -60
- package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
- package/dist/esm/{index-7603f98e.js → index-d649a861.js} +64 -96
- package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
- package/dist/esm/loader.js +3 -3
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/priv-chart-popover.entry.js +87 -87
- package/dist/esm/priv-datepicker.entry.js +659 -659
- package/dist/esm/priv-navigator-button.entry.js +19 -19
- package/dist/esm/priv-navigator-item.entry.js +24 -24
- package/dist/esm/ripple.js +3 -3
- package/dist/esm/wm-action-menu_2.entry.js +342 -342
- package/dist/esm/wm-button.entry.js +228 -228
- package/dist/esm/wm-chart-slice.entry.js +14 -14
- package/dist/esm/wm-chart.entry.js +117 -117
- package/dist/esm/wm-datepicker.entry.js +267 -267
- package/dist/esm/wm-input.entry.js +136 -136
- package/dist/esm/wm-modal-footer.entry.js +32 -32
- package/dist/esm/wm-modal-header.entry.js +35 -35
- package/dist/esm/wm-modal.entry.js +164 -164
- package/dist/esm/wm-navigation_3.entry.js +222 -222
- package/dist/esm/wm-navigator.entry.js +269 -269
- package/dist/esm/wm-network-uploader.entry.js +454 -454
- package/dist/esm/wm-option_2.entry.js +487 -487
- package/dist/esm/wm-pagination.entry.js +168 -168
- package/dist/esm/wm-progress-indicator_3.entry.js +136 -136
- package/dist/esm/wm-search.entry.js +233 -233
- package/dist/esm/wm-snackbar.entry.js +172 -172
- package/dist/esm/wm-tab-item_3.entry.js +298 -298
- package/dist/esm/wm-tag-input.entry.js +581 -581
- package/dist/esm/wm-timepicker.entry.js +385 -385
- package/dist/esm/wm-toggletip.entry.js +126 -126
- package/dist/esm/wm-uploader.entry.js +380 -380
- package/dist/esm/wm-wrapper.entry.js +13 -13
- package/dist/esm-es5/chartFunctions-b24ba065.js +1 -0
- package/dist/esm-es5/functions-117d1a51.js +15 -0
- package/dist/esm-es5/global-6a9c8257.js +1 -0
- package/dist/esm-es5/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +1 -1
- package/dist/esm-es5/index-d649a861.js +1 -0
- package/dist/esm-es5/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +0 -0
- 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-input.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-network-uploader.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-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 -0
- package/dist/ripple/{p-aa104594.system.entry.js → p-03d6014a.system.entry.js} +1 -1
- package/dist/ripple/{p-90ed3268.system.entry.js → p-099df7b7.system.entry.js} +1 -1
- package/dist/ripple/p-0cffec65.entry.js +1 -0
- package/dist/ripple/p-0ebed4b8.system.entry.js +1 -0
- package/dist/ripple/p-13e2891c.system.js +1 -0
- package/dist/ripple/p-18261104.system.entry.js +1 -0
- package/dist/ripple/p-1b1e006a.entry.js +1 -0
- package/dist/ripple/p-1e7fc028.entry.js +1 -0
- package/dist/ripple/{p-32336c78.system.entry.js → p-210039cc.system.entry.js} +1 -1
- package/dist/ripple/p-22759dd5.entry.js +1 -0
- package/dist/ripple/p-25b81952.entry.js +1 -0
- package/dist/ripple/{p-e490e37f.system.entry.js → p-269fa39c.system.entry.js} +1 -1
- package/dist/ripple/p-26c9f5af.entry.js +1 -0
- package/dist/ripple/p-276ed011.js +16 -0
- package/dist/ripple/p-2b6246d9.entry.js +1 -0
- package/dist/ripple/{p-3b3e847c.system.entry.js → p-2b63995f.system.entry.js} +1 -1
- package/dist/ripple/p-2c8a26f2.js +1 -0
- package/dist/ripple/p-38bb7f05.system.entry.js +1 -0
- package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
- package/dist/ripple/p-4f581ab3.entry.js +1 -0
- package/dist/ripple/p-50be3b44.js +1 -0
- package/dist/ripple/p-5176b826.system.js +15 -0
- package/dist/ripple/p-5627e44d.entry.js +1 -0
- package/dist/ripple/p-570fb53b.entry.js +1 -0
- package/dist/ripple/p-57f2feb0.entry.js +1 -0
- package/dist/ripple/p-5d6cc9da.system.js +1 -0
- package/dist/ripple/p-5e164260.system.entry.js +1 -0
- package/dist/ripple/{p-64053e24.system.entry.js → p-64e8fb6e.system.entry.js} +1 -1
- package/dist/ripple/p-6c295beb.entry.js +1 -0
- package/dist/ripple/p-6c751341.entry.js +1 -0
- package/dist/ripple/p-6cf47163.entry.js +1 -0
- package/dist/ripple/{p-6bc557fa.js → p-6f59ed45.js} +1 -1
- package/dist/ripple/p-772576d7.system.entry.js +1 -0
- package/dist/ripple/p-7779bfbe.system.entry.js +1 -0
- package/dist/ripple/p-7c2b1682.entry.js +1 -0
- package/dist/ripple/p-81ddf5a0.entry.js +1 -0
- package/dist/ripple/p-83d22032.system.entry.js +1 -0
- package/dist/ripple/p-846e9391.entry.js +1 -0
- package/dist/ripple/{p-7d26d093.system.entry.js → p-8a96b188.system.entry.js} +1 -1
- package/dist/ripple/p-8cf7ce7e.system.entry.js +1 -0
- package/dist/ripple/p-969af068.system.entry.js +1 -0
- package/dist/ripple/p-9a4aca88.system.entry.js +1 -0
- package/dist/ripple/p-9aa6cd9f.entry.js +1 -0
- package/dist/ripple/p-9c20bc1f.system.entry.js +1 -0
- package/dist/ripple/p-9d02957d.system.js +1 -0
- package/dist/ripple/p-9d49f21e.entry.js +1 -0
- package/dist/ripple/p-9d8c246d.system.entry.js +1 -0
- package/dist/ripple/p-9df8a520.entry.js +1 -0
- package/dist/ripple/{p-ae6cfbca.system.entry.js → p-a1511315.system.entry.js} +1 -1
- package/dist/ripple/p-a1a2efca.system.entry.js +1 -0
- package/dist/ripple/{p-1a7a33e0.system.js → p-a224d536.system.js} +1 -1
- package/dist/ripple/p-a5a47a23.entry.js +1 -0
- package/dist/ripple/p-b16373b9.system.entry.js +1 -0
- package/dist/ripple/p-b547bcf2.entry.js +1 -0
- package/dist/ripple/{p-1df2adee.system.entry.js → p-bfc1ab2e.system.entry.js} +1 -1
- package/dist/ripple/p-c8bb4b2b.entry.js +1 -0
- package/dist/ripple/p-d09fb6b5.entry.js +1 -0
- package/dist/ripple/{p-b4efa7d1.system.entry.js → p-ddf157c8.system.entry.js} +1 -1
- package/dist/ripple/p-e1b076be.entry.js +1 -0
- package/dist/ripple/p-e7a7d732.entry.js +1 -0
- package/dist/ripple/p-e8e2228d.system.entry.js +1 -0
- package/dist/ripple/p-ebae8cae.system.entry.js +1 -0
- package/dist/ripple/p-efe7728e.entry.js +1 -0
- package/dist/ripple/p-f54c4b0e.system.js +1 -0
- package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +0 -0
- package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
- package/dist/ripple/{p-fda5a778.system.entry.js → p-ffb97b6d.system.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +35 -35
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
- package/dist/types/components/wm-button/wm-button.d.ts +43 -43
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
- package/dist/types/components/wm-input/wm-input.d.ts +46 -46
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
- package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +30 -30
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
- package/dist/types/components/wm-option/wm-option.d.ts +32 -32
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
- package/dist/types/components/wm-search/wm-search.d.ts +86 -86
- package/dist/types/components/wm-select/wm-select.d.ts +66 -66
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -92
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
- package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
- package/dist/types/components.d.ts +24 -24
- package/dist/types/global/__mocks__/functions.d.ts +6 -6
- package/dist/types/global/chartFunctions.d.ts +29 -28
- package/dist/types/global/functions.d.ts +42 -42
- package/dist/types/global/global.d.ts +1 -1
- package/dist/types/global/interfaces.d.ts +44 -44
- package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
- package/dist/types/global/services/http-service.d.ts +4 -4
- package/dist/types/lang/lang.d.ts +5 -5
- package/dist/types/stencil-public-runtime.d.ts +4 -6
- package/package.json +47 -47
- package/dist/esm-es5/chartFunctions-303e1644.js +0 -1
- package/dist/esm-es5/functions-e552a8b5.js +0 -15
- package/dist/esm-es5/global-fa341013.js +0 -1
- package/dist/esm-es5/index-7603f98e.js +0 -1
- package/dist/ripple/p-01d2c1ab.entry.js +0 -1
- package/dist/ripple/p-02a3c14f.entry.js +0 -1
- package/dist/ripple/p-1116a297.entry.js +0 -1
- package/dist/ripple/p-13a746ea.entry.js +0 -1
- package/dist/ripple/p-175eba9d.system.js +0 -15
- package/dist/ripple/p-1d0742b0.entry.js +0 -1
- package/dist/ripple/p-2409192f.entry.js +0 -1
- package/dist/ripple/p-313b6073.system.js +0 -1
- package/dist/ripple/p-358bde27.entry.js +0 -1
- package/dist/ripple/p-35ce3ff8.entry.js +0 -1
- package/dist/ripple/p-3bed42bf.entry.js +0 -1
- package/dist/ripple/p-3fa5f0f0.system.entry.js +0 -1
- package/dist/ripple/p-431220d3.entry.js +0 -1
- package/dist/ripple/p-461f08d4.entry.js +0 -1
- package/dist/ripple/p-4d59fe86.entry.js +0 -1
- package/dist/ripple/p-4f42da30.system.entry.js +0 -1
- package/dist/ripple/p-50db2d6a.system.entry.js +0 -1
- package/dist/ripple/p-5c099280.entry.js +0 -1
- package/dist/ripple/p-6910f965.entry.js +0 -1
- package/dist/ripple/p-69f21f1a.system.entry.js +0 -1
- package/dist/ripple/p-6a6408b8.system.js +0 -1
- package/dist/ripple/p-7fae0cc2.entry.js +0 -1
- package/dist/ripple/p-823380c1.system.entry.js +0 -1
- package/dist/ripple/p-83fe767e.entry.js +0 -1
- package/dist/ripple/p-89372ba5.system.entry.js +0 -1
- package/dist/ripple/p-936fbfff.entry.js +0 -1
- package/dist/ripple/p-9d69aa46.system.entry.js +0 -1
- package/dist/ripple/p-a0c3ef16.system.js +0 -1
- package/dist/ripple/p-a216c161.system.entry.js +0 -1
- package/dist/ripple/p-a51453f6.entry.js +0 -1
- package/dist/ripple/p-a9e0ce88.entry.js +0 -1
- package/dist/ripple/p-b3c71506.js +0 -1
- package/dist/ripple/p-b4724251.entry.js +0 -1
- package/dist/ripple/p-b6b5c946.entry.js +0 -1
- package/dist/ripple/p-b786a5fd.system.entry.js +0 -1
- package/dist/ripple/p-ba76563e.system.entry.js +0 -1
- package/dist/ripple/p-bd5a6394.entry.js +0 -1
- package/dist/ripple/p-c77d79be.entry.js +0 -1
- package/dist/ripple/p-c9541d4d.system.entry.js +0 -1
- package/dist/ripple/p-ca7c628f.entry.js +0 -1
- package/dist/ripple/p-cae4ebf4.system.entry.js +0 -1
- package/dist/ripple/p-cf648440.entry.js +0 -1
- package/dist/ripple/p-d93d5885.entry.js +0 -1
- package/dist/ripple/p-d9d82a0d.js +0 -1
- package/dist/ripple/p-e51562cd.system.entry.js +0 -1
- package/dist/ripple/p-eaedb11d.system.entry.js +0 -1
- package/dist/ripple/p-ed8115b9.system.entry.js +0 -1
- package/dist/ripple/p-f24ff348.system.js +0 -1
- package/dist/ripple/p-f37b54be.js +0 -16
- package/dist/ripple/p-f5f8bb25.system.entry.js +0 -1
- package/dist/ripple/p-f9c3a2ce.entry.js +0 -1
- package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +0 -27
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +0 -26
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +0 -17
|
@@ -3950,17 +3950,11 @@ function icuUnitToEcma(unit) {
|
|
|
3950
3950
|
return unit.replace(/^(.*?)-/, '');
|
|
3951
3951
|
}
|
|
3952
3952
|
var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
|
|
3953
|
-
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)
|
|
3953
|
+
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?$/g;
|
|
3954
3954
|
var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g;
|
|
3955
3955
|
var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;
|
|
3956
3956
|
function parseSignificantPrecision(str) {
|
|
3957
3957
|
var result = {};
|
|
3958
|
-
if (str[str.length - 1] === 'r') {
|
|
3959
|
-
result.roundingPriority = 'morePrecision';
|
|
3960
|
-
}
|
|
3961
|
-
else if (str[str.length - 1] === 's') {
|
|
3962
|
-
result.roundingPriority = 'lessPrecision';
|
|
3963
|
-
}
|
|
3964
3958
|
str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {
|
|
3965
3959
|
// @@@ case
|
|
3966
3960
|
if (typeof g2 !== 'string') {
|
|
@@ -4187,13 +4181,8 @@ function parseNumberSkeleton(tokens) {
|
|
|
4187
4181
|
}
|
|
4188
4182
|
return '';
|
|
4189
4183
|
});
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
if (opt === 'w') {
|
|
4193
|
-
result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });
|
|
4194
|
-
}
|
|
4195
|
-
else if (opt) {
|
|
4196
|
-
result = __assign(__assign({}, result), parseSignificantPrecision(opt));
|
|
4184
|
+
if (token.options.length) {
|
|
4185
|
+
result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));
|
|
4197
4186
|
}
|
|
4198
4187
|
continue;
|
|
4199
4188
|
}
|
|
@@ -4215,8 +4204,8 @@ function parseNumberSkeleton(tokens) {
|
|
|
4215
4204
|
}
|
|
4216
4205
|
|
|
4217
4206
|
var _a;
|
|
4218
|
-
var SPACE_SEPARATOR_START_REGEX = new RegExp("^"
|
|
4219
|
-
var SPACE_SEPARATOR_END_REGEX = new RegExp(
|
|
4207
|
+
var SPACE_SEPARATOR_START_REGEX = new RegExp("^" + SPACE_SEPARATOR_REGEX.source + "*");
|
|
4208
|
+
var SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + "*$");
|
|
4220
4209
|
function createLocation(start, end) {
|
|
4221
4210
|
return { start: start, end: end };
|
|
4222
4211
|
}
|
|
@@ -4463,7 +4452,7 @@ var Parser = /** @class */ (function () {
|
|
|
4463
4452
|
return {
|
|
4464
4453
|
val: {
|
|
4465
4454
|
type: TYPE.literal,
|
|
4466
|
-
value: "<"
|
|
4455
|
+
value: "<" + tagName + "/>",
|
|
4467
4456
|
location: createLocation(startPosition, this.clonePosition()),
|
|
4468
4457
|
},
|
|
4469
4458
|
err: null,
|
|
@@ -5068,7 +5057,7 @@ var Parser = /** @class */ (function () {
|
|
|
5068
5057
|
}
|
|
5069
5058
|
var code = codePointAt(this.message, offset);
|
|
5070
5059
|
if (code === undefined) {
|
|
5071
|
-
throw Error("Offset "
|
|
5060
|
+
throw Error("Offset " + offset + " is at invalid UTF-16 code unit boundary");
|
|
5072
5061
|
}
|
|
5073
5062
|
return code;
|
|
5074
5063
|
};
|
|
@@ -5136,7 +5125,7 @@ var Parser = /** @class */ (function () {
|
|
|
5136
5125
|
*/
|
|
5137
5126
|
Parser.prototype.bumpTo = function (targetOffset) {
|
|
5138
5127
|
if (this.offset() > targetOffset) {
|
|
5139
|
-
throw Error("targetOffset "
|
|
5128
|
+
throw Error("targetOffset " + targetOffset + " must be greater than or equal to the current offset " + this.offset());
|
|
5140
5129
|
}
|
|
5141
5130
|
targetOffset = Math.min(targetOffset, this.message.length);
|
|
5142
5131
|
while (true) {
|
|
@@ -5145,7 +5134,7 @@ var Parser = /** @class */ (function () {
|
|
|
5145
5134
|
break;
|
|
5146
5135
|
}
|
|
5147
5136
|
if (offset > targetOffset) {
|
|
5148
|
-
throw Error("targetOffset "
|
|
5137
|
+
throw Error("targetOffset " + targetOffset + " is at invalid UTF-16 code unit boundary");
|
|
5149
5138
|
}
|
|
5150
5139
|
this.bump();
|
|
5151
5140
|
if (this.isEOF()) {
|
|
@@ -5611,28 +5600,28 @@ var FormatError = /** @class */ (function (_super) {
|
|
|
5611
5600
|
return _this;
|
|
5612
5601
|
}
|
|
5613
5602
|
FormatError.prototype.toString = function () {
|
|
5614
|
-
return "[formatjs Error: "
|
|
5603
|
+
return "[formatjs Error: " + this.code + "] " + this.message;
|
|
5615
5604
|
};
|
|
5616
5605
|
return FormatError;
|
|
5617
5606
|
}(Error));
|
|
5618
5607
|
var InvalidValueError = /** @class */ (function (_super) {
|
|
5619
5608
|
__extends(InvalidValueError, _super);
|
|
5620
5609
|
function InvalidValueError(variableId, value, options, originalMessage) {
|
|
5621
|
-
return _super.call(this, "Invalid values for \""
|
|
5610
|
+
return _super.call(this, "Invalid values for \"" + variableId + "\": \"" + value + "\". Options are \"" + Object.keys(options).join('", "') + "\"", ErrorCode.INVALID_VALUE, originalMessage) || this;
|
|
5622
5611
|
}
|
|
5623
5612
|
return InvalidValueError;
|
|
5624
5613
|
}(FormatError));
|
|
5625
5614
|
var InvalidValueTypeError = /** @class */ (function (_super) {
|
|
5626
5615
|
__extends(InvalidValueTypeError, _super);
|
|
5627
5616
|
function InvalidValueTypeError(value, type, originalMessage) {
|
|
5628
|
-
return _super.call(this, "Value for \""
|
|
5617
|
+
return _super.call(this, "Value for \"" + value + "\" must be of type " + type, ErrorCode.INVALID_VALUE, originalMessage) || this;
|
|
5629
5618
|
}
|
|
5630
5619
|
return InvalidValueTypeError;
|
|
5631
5620
|
}(FormatError));
|
|
5632
5621
|
var MissingValueError = /** @class */ (function (_super) {
|
|
5633
5622
|
__extends(MissingValueError, _super);
|
|
5634
5623
|
function MissingValueError(variableId, originalMessage) {
|
|
5635
|
-
return _super.call(this, "The intl string context variable \""
|
|
5624
|
+
return _super.call(this, "The intl string context variable \"" + variableId + "\" was not provided to the string \"" + originalMessage + "\"", ErrorCode.MISSING_VALUE, originalMessage) || this;
|
|
5636
5625
|
}
|
|
5637
5626
|
return MissingValueError;
|
|
5638
5627
|
}(FormatError));
|
|
@@ -5793,7 +5782,7 @@ originalMessage) {
|
|
|
5793
5782
|
continue;
|
|
5794
5783
|
}
|
|
5795
5784
|
if (isPluralElement(el)) {
|
|
5796
|
-
var opt = el.options["="
|
|
5785
|
+
var opt = el.options["=" + value];
|
|
5797
5786
|
if (!opt) {
|
|
5798
5787
|
if (!Intl.PluralRules) {
|
|
5799
5788
|
throw new FormatError("Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n", ErrorCode.MISSING_INTL_API, originalMessage);
|
|
@@ -5864,7 +5853,7 @@ function createDefaultFormatters(cache) {
|
|
|
5864
5853
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5865
5854
|
args[_i] = arguments[_i];
|
|
5866
5855
|
}
|
|
5867
|
-
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args
|
|
5856
|
+
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
5868
5857
|
}, {
|
|
5869
5858
|
cache: createFastMemoizeCache$1(cache.number),
|
|
5870
5859
|
strategy: strategies.variadic,
|
|
@@ -5875,7 +5864,7 @@ function createDefaultFormatters(cache) {
|
|
|
5875
5864
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5876
5865
|
args[_i] = arguments[_i];
|
|
5877
5866
|
}
|
|
5878
|
-
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args
|
|
5867
|
+
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
5879
5868
|
}, {
|
|
5880
5869
|
cache: createFastMemoizeCache$1(cache.dateTime),
|
|
5881
5870
|
strategy: strategies.variadic,
|
|
@@ -5886,7 +5875,7 @@ function createDefaultFormatters(cache) {
|
|
|
5886
5875
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5887
5876
|
args[_i] = arguments[_i];
|
|
5888
5877
|
}
|
|
5889
|
-
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args
|
|
5878
|
+
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
5890
5879
|
}, {
|
|
5891
5880
|
cache: createFastMemoizeCache$1(cache.pluralRules),
|
|
5892
5881
|
strategy: strategies.variadic,
|
|
@@ -6044,13 +6033,7 @@ var IntlErrorCode;
|
|
|
6044
6033
|
var IntlError = /** @class */ (function (_super) {
|
|
6045
6034
|
__extends(IntlError, _super);
|
|
6046
6035
|
function IntlError(code, message, exception) {
|
|
6047
|
-
var _this = this;
|
|
6048
|
-
var err = exception
|
|
6049
|
-
? exception instanceof Error
|
|
6050
|
-
? exception
|
|
6051
|
-
: new Error(String(exception))
|
|
6052
|
-
: undefined;
|
|
6053
|
-
_this = _super.call(this, "[@formatjs/intl Error ".concat(code, "] ").concat(message, " \n").concat(err ? "\n".concat(err.message, "\n").concat(err.stack) : '')) || this;
|
|
6036
|
+
var _this = _super.call(this, "[@formatjs/intl Error " + code + "] " + message + " \n" + (exception ? "\n" + exception.message + "\n" + exception.stack : '')) || this;
|
|
6054
6037
|
_this.code = code;
|
|
6055
6038
|
// @ts-ignore just so we don't need to declare dep on @types/node
|
|
6056
6039
|
if (typeof Error.captureStackTrace === 'function') {
|
|
@@ -6082,26 +6065,19 @@ var MissingDataError = /** @class */ (function (_super) {
|
|
|
6082
6065
|
}
|
|
6083
6066
|
return MissingDataError;
|
|
6084
6067
|
}(IntlError));
|
|
6085
|
-
var IntlFormatError = /** @class */ (function (_super) {
|
|
6086
|
-
__extends(IntlFormatError, _super);
|
|
6087
|
-
function IntlFormatError(message, locale, exception) {
|
|
6088
|
-
return _super.call(this, IntlErrorCode.FORMAT_ERROR, "".concat(message, " \nLocale: ").concat(locale, "\n"), exception) || this;
|
|
6089
|
-
}
|
|
6090
|
-
return IntlFormatError;
|
|
6091
|
-
}(IntlError));
|
|
6092
6068
|
var MessageFormatError = /** @class */ (function (_super) {
|
|
6093
6069
|
__extends(MessageFormatError, _super);
|
|
6094
6070
|
function MessageFormatError(message, locale, descriptor, exception) {
|
|
6095
|
-
var _this = _super.call(this,
|
|
6071
|
+
var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, message + " \nLocale: " + locale + "\nMessageID: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + "\nDefault Message: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + "\nDescription: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + " \n", exception) || this;
|
|
6096
6072
|
_this.descriptor = descriptor;
|
|
6097
6073
|
return _this;
|
|
6098
6074
|
}
|
|
6099
6075
|
return MessageFormatError;
|
|
6100
|
-
}(
|
|
6076
|
+
}(IntlError));
|
|
6101
6077
|
var MissingTranslationError = /** @class */ (function (_super) {
|
|
6102
6078
|
__extends(MissingTranslationError, _super);
|
|
6103
6079
|
function MissingTranslationError(descriptor, locale) {
|
|
6104
|
-
var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, "Missing message: \""
|
|
6080
|
+
var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, "Missing message: \"" + descriptor.id + "\" for locale \"" + locale + "\", using " + (descriptor.defaultMessage ? 'default message' : 'id') + " as fallback.") || this;
|
|
6105
6081
|
_this.descriptor = descriptor;
|
|
6106
6082
|
return _this;
|
|
6107
6083
|
}
|
|
@@ -6128,7 +6104,6 @@ var DEFAULT_INTL_CONFIG = {
|
|
|
6128
6104
|
timeZone: undefined,
|
|
6129
6105
|
defaultLocale: 'en',
|
|
6130
6106
|
defaultFormats: {},
|
|
6131
|
-
fallbackOnEmptyString: true,
|
|
6132
6107
|
onError: defaultErrorHandler,
|
|
6133
6108
|
};
|
|
6134
6109
|
function createIntlCache() {
|
|
@@ -6171,7 +6146,7 @@ function createFormatters(cache) {
|
|
|
6171
6146
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6172
6147
|
args[_i] = arguments[_i];
|
|
6173
6148
|
}
|
|
6174
|
-
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args
|
|
6149
|
+
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
6175
6150
|
}, {
|
|
6176
6151
|
cache: createFastMemoizeCache(cache.dateTime),
|
|
6177
6152
|
strategy: strategies.variadic,
|
|
@@ -6182,7 +6157,7 @@ function createFormatters(cache) {
|
|
|
6182
6157
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6183
6158
|
args[_i] = arguments[_i];
|
|
6184
6159
|
}
|
|
6185
|
-
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args
|
|
6160
|
+
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
6186
6161
|
}, {
|
|
6187
6162
|
cache: createFastMemoizeCache(cache.number),
|
|
6188
6163
|
strategy: strategies.variadic,
|
|
@@ -6193,7 +6168,7 @@ function createFormatters(cache) {
|
|
|
6193
6168
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6194
6169
|
args[_i] = arguments[_i];
|
|
6195
6170
|
}
|
|
6196
|
-
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args
|
|
6171
|
+
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
6197
6172
|
}, {
|
|
6198
6173
|
cache: createFastMemoizeCache(cache.pluralRules),
|
|
6199
6174
|
strategy: strategies.variadic,
|
|
@@ -6216,7 +6191,7 @@ function createFormatters(cache) {
|
|
|
6216
6191
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6217
6192
|
args[_i] = arguments[_i];
|
|
6218
6193
|
}
|
|
6219
|
-
return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args
|
|
6194
|
+
return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args)))();
|
|
6220
6195
|
}, {
|
|
6221
6196
|
cache: createFastMemoizeCache(cache.relativeTime),
|
|
6222
6197
|
strategy: strategies.variadic,
|
|
@@ -6227,7 +6202,7 @@ function createFormatters(cache) {
|
|
|
6227
6202
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6228
6203
|
args[_i] = arguments[_i];
|
|
6229
6204
|
}
|
|
6230
|
-
return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args
|
|
6205
|
+
return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args)))();
|
|
6231
6206
|
}, {
|
|
6232
6207
|
cache: createFastMemoizeCache(cache.list),
|
|
6233
6208
|
strategy: strategies.variadic,
|
|
@@ -6237,7 +6212,7 @@ function createFormatters(cache) {
|
|
|
6237
6212
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
6238
6213
|
args[_i] = arguments[_i];
|
|
6239
6214
|
}
|
|
6240
|
-
return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args
|
|
6215
|
+
return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args)))();
|
|
6241
6216
|
}, {
|
|
6242
6217
|
cache: createFastMemoizeCache(cache.displayNames),
|
|
6243
6218
|
strategy: strategies.variadic,
|
|
@@ -6253,7 +6228,7 @@ function getNamedFormat(formats, type, name, onError) {
|
|
|
6253
6228
|
if (format) {
|
|
6254
6229
|
return format;
|
|
6255
6230
|
}
|
|
6256
|
-
onError(new UnsupportedFormatterError("No "
|
|
6231
|
+
onError(new UnsupportedFormatterError("No " + type + " format named: " + name));
|
|
6257
6232
|
}
|
|
6258
6233
|
|
|
6259
6234
|
/**
|
|
@@ -6288,7 +6263,7 @@ function deepMergeFormatsAndSetTimeZone(f1, timeZone) {
|
|
|
6288
6263
|
return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });
|
|
6289
6264
|
}
|
|
6290
6265
|
function formatMessage(_a, state, messageDescriptor, values, opts) {
|
|
6291
|
-
var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats,
|
|
6266
|
+
var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;
|
|
6292
6267
|
if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }
|
|
6293
6268
|
var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;
|
|
6294
6269
|
// `id` is a required field of a Message Descriptor.
|
|
@@ -6318,9 +6293,6 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
|
|
|
6318
6293
|
formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);
|
|
6319
6294
|
defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);
|
|
6320
6295
|
if (!message) {
|
|
6321
|
-
if (fallbackOnEmptyString === false && message === '') {
|
|
6322
|
-
return message;
|
|
6323
|
-
}
|
|
6324
6296
|
if (!defaultMessage ||
|
|
6325
6297
|
(locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {
|
|
6326
6298
|
// This prevents warnings from littering the console in development
|
|
@@ -6334,7 +6306,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
|
|
|
6334
6306
|
return formatter.format(values);
|
|
6335
6307
|
}
|
|
6336
6308
|
catch (e) {
|
|
6337
|
-
onError(new MessageFormatError("Error formatting default message for: \""
|
|
6309
|
+
onError(new MessageFormatError("Error formatting default message for: \"" + id + "\", rendering default message verbatim", locale, messageDescriptor, e));
|
|
6338
6310
|
return typeof defaultMessage === 'string' ? defaultMessage : id;
|
|
6339
6311
|
}
|
|
6340
6312
|
}
|
|
@@ -6346,7 +6318,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
|
|
|
6346
6318
|
return formatter.format(values);
|
|
6347
6319
|
}
|
|
6348
6320
|
catch (e) {
|
|
6349
|
-
onError(new MessageFormatError("Error formatting message: \""
|
|
6321
|
+
onError(new MessageFormatError("Error formatting message: \"" + id + "\", using " + (defaultMessage ? 'default message' : 'id') + " as fallback.", locale, messageDescriptor, e));
|
|
6350
6322
|
}
|
|
6351
6323
|
if (defaultMessage) {
|
|
6352
6324
|
try {
|
|
@@ -6354,7 +6326,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
|
|
|
6354
6326
|
return formatter.format(values);
|
|
6355
6327
|
}
|
|
6356
6328
|
catch (e) {
|
|
6357
|
-
onError(new MessageFormatError("Error formatting the default message for: \""
|
|
6329
|
+
onError(new MessageFormatError("Error formatting the default message for: \"" + id + "\", rendering message verbatim", locale, messageDescriptor, e));
|
|
6358
6330
|
}
|
|
6359
6331
|
}
|
|
6360
6332
|
if (typeof message === 'string') {
|
|
@@ -6392,7 +6364,9 @@ function getFormatter$2(_a, type, getDateTimeFormat, options) {
|
|
|
6392
6364
|
if (options === void 0) { options = {}; }
|
|
6393
6365
|
var format = options.format;
|
|
6394
6366
|
var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));
|
|
6395
|
-
var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS,
|
|
6367
|
+
var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS,
|
|
6368
|
+
// @ts-expect-error es2020 has a lot stuff from es2021 bleed in
|
|
6369
|
+
defaults);
|
|
6396
6370
|
if (type === 'time' &&
|
|
6397
6371
|
!filteredOptions.hour &&
|
|
6398
6372
|
!filteredOptions.minute &&
|
|
@@ -6509,7 +6483,7 @@ var LIST_FORMAT_OPTIONS = [
|
|
|
6509
6483
|
];
|
|
6510
6484
|
var now = Date.now();
|
|
6511
6485
|
function generateToken(i) {
|
|
6512
|
-
return
|
|
6486
|
+
return now + "_" + i + "_" + now;
|
|
6513
6487
|
}
|
|
6514
6488
|
function formatList(opts, getListFormat, values, options) {
|
|
6515
6489
|
if (options === void 0) { options = {}; }
|
|
@@ -6576,7 +6550,7 @@ function formatPlural(_a, getPluralRules, value, options) {
|
|
|
6576
6550
|
return getPluralRules(locale, filteredOptions).select(value);
|
|
6577
6551
|
}
|
|
6578
6552
|
catch (e) {
|
|
6579
|
-
onError(new
|
|
6553
|
+
onError(new MessageFormatError('Error formatting plural.', e));
|
|
6580
6554
|
}
|
|
6581
6555
|
return 'other';
|
|
6582
6556
|
}
|
|
@@ -6603,7 +6577,7 @@ function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options)
|
|
|
6603
6577
|
return getFormatter$1(config, getRelativeTimeFormat, options).format(value, unit);
|
|
6604
6578
|
}
|
|
6605
6579
|
catch (e) {
|
|
6606
|
-
config.onError(new
|
|
6580
|
+
config.onError(new MessageFormatError('Error formatting relative time.', e));
|
|
6607
6581
|
}
|
|
6608
6582
|
return String(value);
|
|
6609
6583
|
}
|
|
@@ -6683,7 +6657,7 @@ function createIntl(config, cache) {
|
|
|
6683
6657
|
var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;
|
|
6684
6658
|
if (!locale) {
|
|
6685
6659
|
if (onError) {
|
|
6686
|
-
onError(new InvalidConfigError("\"locale\" was not configured, using \""
|
|
6660
|
+
onError(new InvalidConfigError("\"locale\" was not configured, using \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details"));
|
|
6687
6661
|
}
|
|
6688
6662
|
// Since there's no registered locale data for `locale`, this will
|
|
6689
6663
|
// fallback to the `defaultLocale` to make sure things can render.
|
|
@@ -6693,481 +6667,481 @@ function createIntl(config, cache) {
|
|
|
6693
6667
|
resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';
|
|
6694
6668
|
}
|
|
6695
6669
|
else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {
|
|
6696
|
-
onError(new MissingDataError("Missing locale data for locale: \""
|
|
6670
|
+
onError(new MissingDataError("Missing locale data for locale: \"" + locale + "\" in Intl.NumberFormat. Using default locale: \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details"));
|
|
6697
6671
|
}
|
|
6698
6672
|
else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&
|
|
6699
6673
|
onError) {
|
|
6700
|
-
onError(new MissingDataError("Missing locale data for locale: \""
|
|
6674
|
+
onError(new MissingDataError("Missing locale data for locale: \"" + locale + "\" in Intl.DateTimeFormat. Using default locale: \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details"));
|
|
6701
6675
|
}
|
|
6702
6676
|
verifyConfigMessages(resolvedConfig);
|
|
6703
6677
|
return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });
|
|
6704
6678
|
}
|
|
6705
6679
|
|
|
6706
|
-
const DEFAULT_LANGUAGE = "en";
|
|
6707
|
-
function getBrowserLang() {
|
|
6708
|
-
const langAttr = document.documentElement.getAttribute("lang");
|
|
6709
|
-
if (!!langAttr) {
|
|
6710
|
-
return langAttr;
|
|
6711
|
-
}
|
|
6712
|
-
else if (window.navigator && window.navigator.language) {
|
|
6713
|
-
const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
|
|
6714
|
-
return lang.slice(0, 2);
|
|
6715
|
-
}
|
|
6716
|
-
else {
|
|
6717
|
-
return DEFAULT_LANGUAGE;
|
|
6718
|
-
}
|
|
6719
|
-
}
|
|
6720
|
-
// prevents memory leak
|
|
6721
|
-
const cache = createIntlCache();
|
|
6722
|
-
const locale = getBrowserLang();
|
|
6723
|
-
const intl = createIntl({
|
|
6724
|
-
locale: locale,
|
|
6725
|
-
defaultLocale: "en",
|
|
6726
|
-
messages: lang[locale] || en,
|
|
6727
|
-
}, cache);
|
|
6728
|
-
function generateId() {
|
|
6729
|
-
return "wmcl-" + Math.random().toString(36).substr(2, 10);
|
|
6730
|
-
}
|
|
6731
|
-
// limits how many times a function fires
|
|
6732
|
-
// use when the function should run periodically, but not too often (e.g. window resize)
|
|
6733
|
-
function throttle(fn, wait) {
|
|
6734
|
-
let timeout;
|
|
6735
|
-
let shouldWait = false;
|
|
6736
|
-
return function () {
|
|
6737
|
-
const context = this;
|
|
6738
|
-
if (!shouldWait) {
|
|
6739
|
-
fn.apply(context, arguments);
|
|
6740
|
-
shouldWait = true;
|
|
6741
|
-
clearTimeout(timeout);
|
|
6742
|
-
timeout = setTimeout(function () {
|
|
6743
|
-
shouldWait = false;
|
|
6744
|
-
}, wait);
|
|
6745
|
-
}
|
|
6746
|
-
};
|
|
6747
|
-
}
|
|
6748
|
-
// waits until it hasn't been called for [timeout] ms.
|
|
6749
|
-
// use when the function should run only after something (event) is done firing
|
|
6750
|
-
function debounce(fn, wait) {
|
|
6751
|
-
let timeout;
|
|
6752
|
-
return function () {
|
|
6753
|
-
const context = this;
|
|
6754
|
-
const functionCall = () => fn.apply(context, arguments);
|
|
6755
|
-
clearTimeout(timeout);
|
|
6756
|
-
timeout = setTimeout(functionCall, wait);
|
|
6757
|
-
};
|
|
6758
|
-
}
|
|
6759
|
-
function getTextDir() {
|
|
6760
|
-
const dir = document.querySelector("html").getAttribute("dir");
|
|
6761
|
-
return dir ? dir.toLowerCase() : "";
|
|
6762
|
-
}
|
|
6763
|
-
function getPosition(el) {
|
|
6764
|
-
const coords = el.getBoundingClientRect();
|
|
6765
|
-
let x = coords.x;
|
|
6766
|
-
let y = coords.y;
|
|
6767
|
-
// Edge doesn't have x and y
|
|
6768
|
-
if (!x) {
|
|
6769
|
-
if (getTextDir() === "rtl") {
|
|
6770
|
-
x = coords.right;
|
|
6771
|
-
}
|
|
6772
|
-
else {
|
|
6773
|
-
x = coords.left;
|
|
6774
|
-
}
|
|
6775
|
-
y = coords.top;
|
|
6776
|
-
}
|
|
6777
|
-
return { x, y };
|
|
6778
|
-
}
|
|
6779
|
-
function findParentWithScrollbar(el) {
|
|
6780
|
-
while (!!el) {
|
|
6781
|
-
if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
|
|
6782
|
-
return el;
|
|
6783
|
-
}
|
|
6784
|
-
el = el.parentElement;
|
|
6785
|
-
}
|
|
6786
|
-
}
|
|
6787
|
-
function findParentWithHiddenOverflow(el) {
|
|
6788
|
-
while (!!el) {
|
|
6789
|
-
if (window.getComputedStyle(el).overflowY !== "visible") {
|
|
6790
|
-
return el;
|
|
6791
|
-
}
|
|
6792
|
-
el = el.parentElement;
|
|
6793
|
-
}
|
|
6794
|
-
}
|
|
6795
|
-
function getClosableElementMeasurements(fixedEl, closableEl) {
|
|
6796
|
-
const parent = findParentWithHiddenOverflow(fixedEl);
|
|
6797
|
-
// if parent is not found, measurements are checked against the viewport
|
|
6798
|
-
return {
|
|
6799
|
-
closableElHeight: closableEl.clientHeight,
|
|
6800
|
-
closableElWidth: closableEl.clientWidth,
|
|
6801
|
-
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6802
|
-
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6803
|
-
spaceAbove: parent
|
|
6804
|
-
? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
|
|
6805
|
-
: fixedEl.getBoundingClientRect().top,
|
|
6806
|
-
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6807
|
-
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6808
|
-
spaceBelow: parent
|
|
6809
|
-
? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
|
|
6810
|
-
: document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
|
|
6811
|
-
spaceLeft: parent
|
|
6812
|
-
? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
|
|
6813
|
-
: fixedEl.getBoundingClientRect().left,
|
|
6814
|
-
spaceRight: parent
|
|
6815
|
-
? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
|
|
6816
|
-
: document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
|
|
6817
|
-
};
|
|
6818
|
-
}
|
|
6819
|
-
function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
|
|
6820
|
-
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6821
|
-
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6822
|
-
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6823
|
-
) {
|
|
6824
|
-
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6825
|
-
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6826
|
-
const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
|
|
6827
|
-
return openUp;
|
|
6828
|
-
}
|
|
6829
|
-
function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
|
|
6830
|
-
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6831
|
-
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6832
|
-
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6833
|
-
) {
|
|
6834
|
-
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6835
|
-
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6836
|
-
const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
|
|
6837
|
-
return openDown;
|
|
6838
|
-
}
|
|
6839
|
-
function shouldShiftRight(fixedEl, closableEl) {
|
|
6840
|
-
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6841
|
-
const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
|
|
6842
|
-
return needsSpaceLeft;
|
|
6843
|
-
}
|
|
6844
|
-
function shouldShiftLeft(fixedEl, closableEl) {
|
|
6845
|
-
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6846
|
-
const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
|
|
6847
|
-
return needsSpaceRight;
|
|
6848
|
-
}
|
|
6849
|
-
function adjustTooltipPosition(tPos, el, tooltipEl) {
|
|
6850
|
-
// position must be reset before measurements are taken in adjustTooltipPosition
|
|
6851
|
-
// otherwise text-wrapping from previous position makes width measurement inconsistent
|
|
6852
|
-
tooltipEl.style.top = "";
|
|
6853
|
-
tooltipEl.style.left = "";
|
|
6854
|
-
const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
|
|
6855
|
-
const tooltipWidth = tooltipEl.getBoundingClientRect().width;
|
|
6856
|
-
const tooltipHeight = tooltipEl.getBoundingClientRect().height;
|
|
6857
|
-
const enoughSpaceAbove = spaceAbove > tooltipHeight;
|
|
6858
|
-
const enoughSpaceBelow = spaceBelow > tooltipHeight;
|
|
6859
|
-
// a tooltip should never be closer than 24px to the edge of a screen
|
|
6860
|
-
const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
|
|
6861
|
-
const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
|
|
6862
|
-
const swapAbove = (position) => {
|
|
6863
|
-
return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
|
|
6864
|
-
};
|
|
6865
|
-
const swapBelow = (position) => {
|
|
6866
|
-
return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
|
|
6867
|
-
};
|
|
6868
|
-
const swapLeft = (position, centeredPosition) => {
|
|
6869
|
-
if (!enoughSpaceLeft && enoughSpaceRight) {
|
|
6870
|
-
position = position.replace("left", "right");
|
|
6871
|
-
}
|
|
6872
|
-
else if (!enoughSpaceLeft && !enoughSpaceRight) {
|
|
6873
|
-
position = centeredPosition;
|
|
6874
|
-
}
|
|
6875
|
-
return position;
|
|
6876
|
-
};
|
|
6877
|
-
const swapRight = (position, centeredPosition) => {
|
|
6878
|
-
if (!enoughSpaceRight && enoughSpaceLeft) {
|
|
6879
|
-
position = position.replace("right", "left");
|
|
6880
|
-
}
|
|
6881
|
-
else if (!enoughSpaceRight && !enoughSpaceLeft) {
|
|
6882
|
-
position = centeredPosition;
|
|
6883
|
-
}
|
|
6884
|
-
return position;
|
|
6885
|
-
};
|
|
6886
|
-
// horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
|
|
6887
|
-
switch (tPos) {
|
|
6888
|
-
case "left":
|
|
6889
|
-
tPos = swapLeft(tPos, "bottom");
|
|
6890
|
-
case "right":
|
|
6891
|
-
tPos = swapRight(tPos, "bottom");
|
|
6892
|
-
case "top-left":
|
|
6893
|
-
tPos = swapLeft(tPos, "top");
|
|
6894
|
-
tPos = swapAbove(tPos);
|
|
6895
|
-
case "top-right":
|
|
6896
|
-
tPos = swapRight(tPos, "top");
|
|
6897
|
-
tPos = swapAbove(tPos);
|
|
6898
|
-
case "bottom-left":
|
|
6899
|
-
tPos = swapLeft(tPos, "bottom");
|
|
6900
|
-
tPos = swapBelow(tPos);
|
|
6901
|
-
case "bottom-right":
|
|
6902
|
-
tPos = swapRight(tPos, "bottom");
|
|
6903
|
-
tPos = swapBelow(tPos);
|
|
6904
|
-
case "top":
|
|
6905
|
-
tPos = swapAbove(tPos);
|
|
6906
|
-
case "bottom":
|
|
6907
|
-
tPos = swapBelow(tPos);
|
|
6908
|
-
}
|
|
6909
|
-
return tPos;
|
|
6910
|
-
}
|
|
6911
|
-
function hasRoomRight(x, spaceNeeded) {
|
|
6912
|
-
let horizOffset = 0;
|
|
6913
|
-
// if (getTextDir() === "ltr") {
|
|
6914
|
-
if (x.type === "click") {
|
|
6915
|
-
// if it's a mouse event, deal with mouse coords
|
|
6916
|
-
horizOffset = x.clientX;
|
|
6917
|
-
// if it's a focus event, the offset is 0
|
|
6918
|
-
}
|
|
6919
|
-
else if (x.type === "focus") {
|
|
6920
|
-
horizOffset = 0;
|
|
6921
|
-
}
|
|
6922
|
-
else {
|
|
6923
|
-
// otherwise an element was passed, calculate how far it is from the edge of the window
|
|
6924
|
-
let el = x; // re-assignment is for clarity
|
|
6925
|
-
while (el) {
|
|
6926
|
-
if (el.tagName == "BODY") {
|
|
6927
|
-
// deal with browser quirks with body/window/document and page scroll
|
|
6928
|
-
var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
|
|
6929
|
-
horizOffset += el.offsetLeft - xScroll + el.clientLeft;
|
|
6930
|
-
}
|
|
6931
|
-
else {
|
|
6932
|
-
// for all other non-BODY elements
|
|
6933
|
-
horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
|
|
6934
|
-
}
|
|
6935
|
-
el = el.offsetParent;
|
|
6936
|
-
}
|
|
6937
|
-
// }
|
|
6938
|
-
}
|
|
6939
|
-
return window.innerWidth - horizOffset >= spaceNeeded;
|
|
6940
|
-
}
|
|
6941
|
-
function checkForActiveElInShadow(element) {
|
|
6942
|
-
while (element && element.shadowRoot) {
|
|
6943
|
-
element = element.shadowRoot.activeElement;
|
|
6944
|
-
}
|
|
6945
|
-
return element;
|
|
6946
|
-
}
|
|
6947
|
-
function checkForFocusableElInShadow(element) {
|
|
6948
|
-
const selectors = [
|
|
6949
|
-
"button",
|
|
6950
|
-
"a",
|
|
6951
|
-
"input",
|
|
6952
|
-
"select",
|
|
6953
|
-
"textarea",
|
|
6954
|
-
"wm-button",
|
|
6955
|
-
"wm-search",
|
|
6956
|
-
"wm-select",
|
|
6957
|
-
"wm-action-menu",
|
|
6958
|
-
"wm-tab-item",
|
|
6959
|
-
"wm-datepicker",
|
|
6960
|
-
];
|
|
6961
|
-
let focusableEl = element;
|
|
6962
|
-
selectors.forEach((selector) => {
|
|
6963
|
-
if (focusableEl && focusableEl.shadowRoot) {
|
|
6964
|
-
let elInShadow = focusableEl.shadowRoot.querySelector(selector);
|
|
6965
|
-
if (elInShadow) {
|
|
6966
|
-
if (selector.startsWith("wm-")) {
|
|
6967
|
-
focusableEl = checkForFocusableElInShadow(elInShadow);
|
|
6968
|
-
}
|
|
6969
|
-
else {
|
|
6970
|
-
focusableEl = elInShadow;
|
|
6971
|
-
}
|
|
6972
|
-
}
|
|
6973
|
-
}
|
|
6974
|
-
});
|
|
6975
|
-
return focusableEl;
|
|
6976
|
-
}
|
|
6977
|
-
function isFocusable(element) {
|
|
6978
|
-
if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
|
|
6979
|
-
return true;
|
|
6980
|
-
}
|
|
6981
|
-
if (element.disabled) {
|
|
6982
|
-
return false;
|
|
6983
|
-
}
|
|
6984
|
-
switch (element.nodeName) {
|
|
6985
|
-
case "A":
|
|
6986
|
-
return !!element.href && element.rel != "ignore";
|
|
6987
|
-
case "INPUT":
|
|
6988
|
-
return element.type != "hidden" && element.type != "file";
|
|
6989
|
-
case "BUTTON":
|
|
6990
|
-
case "SELECT":
|
|
6991
|
-
case "TEXTAREA":
|
|
6992
|
-
case "WM-BUTTON":
|
|
6993
|
-
case "WM-SELECT":
|
|
6994
|
-
case "WM-ACTION-MENU":
|
|
6995
|
-
case "WM-DATEPICKER":
|
|
6996
|
-
case "WM-TIMEPICKER":
|
|
6997
|
-
case "WM-INPUT":
|
|
6998
|
-
case "WM-TAG-INPUT":
|
|
6999
|
-
case "WM-TAB-ITEM":
|
|
7000
|
-
case "WM-SEARCH":
|
|
7001
|
-
return true;
|
|
7002
|
-
default:
|
|
7003
|
-
return false;
|
|
7004
|
-
}
|
|
7005
|
-
}
|
|
7006
|
-
function getFirstFocusableDescendant(element) {
|
|
7007
|
-
if (isFocusable(element)) {
|
|
7008
|
-
return checkForFocusableElInShadow(element);
|
|
7009
|
-
}
|
|
7010
|
-
else if (element.childNodes.length > 0) {
|
|
7011
|
-
element.childNodes.forEach((i) => {
|
|
7012
|
-
const childEl = getFirstFocusableDescendant(i);
|
|
7013
|
-
return childEl && checkForFocusableElInShadow(childEl);
|
|
7014
|
-
});
|
|
7015
|
-
}
|
|
7016
|
-
}
|
|
7017
|
-
function hasValidType(file, types) {
|
|
7018
|
-
const acceptedExtensions = types.split(" ");
|
|
7019
|
-
const parts = file.name && file.name.split(".");
|
|
7020
|
-
const ext = parts && parts.length > 1 && parts[parts.length - 1];
|
|
7021
|
-
return ext
|
|
7022
|
-
? acceptedExtensions.includes(ext.toLowerCase())
|
|
7023
|
-
: // fallback: if we couldn't obtain an extension,
|
|
7024
|
-
// validate based on MIME type...
|
|
7025
|
-
!!file.type
|
|
7026
|
-
? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
|
|
7027
|
-
: // ...and if that failed too, accept the file
|
|
7028
|
-
// as it's preferable to accept an invalid file
|
|
7029
|
-
// than refusing a valid one (back-end will take care of what slips through)
|
|
7030
|
-
true;
|
|
7031
|
-
}
|
|
7032
|
-
// takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
|
|
7033
|
-
function getAcceptedMimeTypesList(acceptedExtensions) {
|
|
7034
|
-
// this is just a list of common file types (regardless of whether they are/can be valid or not)
|
|
7035
|
-
// front end checks are just a convenience to users, independent of security.
|
|
7036
|
-
// it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
|
|
7037
|
-
const lookupTable = {
|
|
7038
|
-
aac: ["audio/aac"],
|
|
7039
|
-
abw: ["application/x-abiword"],
|
|
7040
|
-
arc: ["application/x-freearc"],
|
|
7041
|
-
avi: ["video/x-msvideo"],
|
|
7042
|
-
azw: ["application/vnd.amazon.ebook"],
|
|
7043
|
-
bin: ["application/octet-stream"],
|
|
7044
|
-
bmp: ["image/bmp"],
|
|
7045
|
-
bz: ["application/x-bzip"],
|
|
7046
|
-
bz2: ["application/x-bzip2"],
|
|
7047
|
-
csh: ["application/x-csh"],
|
|
7048
|
-
css: ["text/css"],
|
|
7049
|
-
csv: ["text/csv"],
|
|
7050
|
-
doc: ["application/msword"],
|
|
7051
|
-
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
7052
|
-
eot: ["application/vnd.ms-fontobject"],
|
|
7053
|
-
epub: ["application/epub+zip"],
|
|
7054
|
-
gz: ["application/gzip"],
|
|
7055
|
-
gif: ["image/gif"],
|
|
7056
|
-
htm: ["text/html"],
|
|
7057
|
-
html: ["text/html"],
|
|
7058
|
-
ico: ["image/vnd.microsoft.icon"],
|
|
7059
|
-
ics: ["text/calendar"],
|
|
7060
|
-
jar: ["application/java-archive"],
|
|
7061
|
-
jpeg: ["image/jpeg"],
|
|
7062
|
-
jpg: ["image/jpeg"],
|
|
7063
|
-
js: ["text/javascript"],
|
|
7064
|
-
json: ["application/json"],
|
|
7065
|
-
jsonld: ["application/ld+json"],
|
|
7066
|
-
log: ["text/plain"],
|
|
7067
|
-
mid: ["audio/x-midi"],
|
|
7068
|
-
midi: ["audio/x-midi"],
|
|
7069
|
-
mjs: ["text/javascript"],
|
|
7070
|
-
mp3: ["audio/mpeg"],
|
|
7071
|
-
mpeg: ["video/mpeg"],
|
|
7072
|
-
mpkg: ["application/vnd.apple.installer+xml"],
|
|
7073
|
-
odp: ["application/vnd.oasis.opendocument.presentation"],
|
|
7074
|
-
ods: ["application/vnd.oasis.opendocument.spreadsheet"],
|
|
7075
|
-
odt: ["application/vnd.oasis.opendocument.text"],
|
|
7076
|
-
oga: ["audio/ogg"],
|
|
7077
|
-
ogv: ["video/ogg"],
|
|
7078
|
-
ogx: ["application/ogg"],
|
|
7079
|
-
opus: ["audio/opus"],
|
|
7080
|
-
otf: ["font/otf"],
|
|
7081
|
-
png: ["image/png"],
|
|
7082
|
-
pdf: ["application/pdf"],
|
|
7083
|
-
php: ["application/php"],
|
|
7084
|
-
ppt: ["application/vnd.ms-powerpoint"],
|
|
7085
|
-
pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
|
|
7086
|
-
rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
|
|
7087
|
-
rtf: ["application/rtf"],
|
|
7088
|
-
sh: ["application/x-sh"],
|
|
7089
|
-
svg: ["image/svg+xml"],
|
|
7090
|
-
swf: ["application/x-shockwave-flash"],
|
|
7091
|
-
tar: ["application/x-tar"],
|
|
7092
|
-
tif: ["image/tiff"],
|
|
7093
|
-
tiff: ["image/tiff"],
|
|
7094
|
-
ts: ["video/mp2t"],
|
|
7095
|
-
ttf: ["font/ttf"],
|
|
7096
|
-
txt: ["text/plain"],
|
|
7097
|
-
vsd: ["application/vnd.visio"],
|
|
7098
|
-
wav: ["audio/wav"],
|
|
7099
|
-
weba: ["audio/webm"],
|
|
7100
|
-
webm: ["video/webm"],
|
|
7101
|
-
webp: ["image/webp"],
|
|
7102
|
-
woff: ["font/woff"],
|
|
7103
|
-
woff2: ["font/woff2"],
|
|
7104
|
-
xhtml: ["application/xhtml+xml"],
|
|
7105
|
-
xls: ["application/vnd.ms-excel"],
|
|
7106
|
-
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
7107
|
-
xml: ["application/xml", "text/xml"],
|
|
7108
|
-
xul: ["application/vnd.mozilla.xul+xml"],
|
|
7109
|
-
zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
|
|
7110
|
-
"3gp": ["video/3gpp", "audio/3gpp"],
|
|
7111
|
-
"3g2": ["video/3gpp2", "audio/3gpp2"],
|
|
7112
|
-
"7z": ["application/x-7z-compressed"],
|
|
7113
|
-
};
|
|
7114
|
-
return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
|
|
7115
|
-
}
|
|
7116
|
-
function snakeCaseToCamelCase(str) {
|
|
7117
|
-
const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
|
|
7118
|
-
if (snakeCaseRegexp.test(str)) {
|
|
7119
|
-
let camelCase = "";
|
|
7120
|
-
let arr = str.split("_");
|
|
7121
|
-
arr.forEach((word, idx) => {
|
|
7122
|
-
camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
|
|
7123
|
-
});
|
|
7124
|
-
return camelCase;
|
|
7125
|
-
}
|
|
7126
|
-
else {
|
|
7127
|
-
return str;
|
|
7128
|
-
}
|
|
7129
|
-
}
|
|
7130
|
-
function getNewIndexToFocus(currentIndex, direction, listLength) {
|
|
7131
|
-
let newIndex = currentIndex;
|
|
7132
|
-
if (direction === "ArrowDown") {
|
|
7133
|
-
newIndex = (currentIndex + 1) % listLength;
|
|
7134
|
-
}
|
|
7135
|
-
if (direction === "ArrowUp") {
|
|
7136
|
-
newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
|
|
7137
|
-
}
|
|
7138
|
-
return newIndex;
|
|
7139
|
-
}
|
|
7140
|
-
function isRelatedTarget(ev, id) {
|
|
7141
|
-
// used for onBlur events to check the element that has been clicked
|
|
7142
|
-
const ids = id.split(" ");
|
|
7143
|
-
return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
|
|
7144
|
-
}
|
|
7145
|
-
function toBool(val) {
|
|
7146
|
-
// string "false" needs to be treated as bool False because react wrappers convert bool to string.
|
|
7147
|
-
return val == "false" ? false : !!val;
|
|
7148
|
-
}
|
|
7149
|
-
/*
|
|
7150
|
-
* this is going to be needed to solve the extra tabbing on navigator
|
|
7151
|
-
* and for programmatic focus of tabs
|
|
7152
|
-
* Here's a draft, not bug proof, see:
|
|
7153
|
-
* https://stackoverflow.com/a/10730308/3741713
|
|
7154
|
-
|
|
7155
|
-
function getKeyboardFocusableElements(element = document) {
|
|
7156
|
-
const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
|
|
7157
|
-
return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
|
|
7158
|
-
}
|
|
7159
|
-
|
|
7160
|
-
export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
|
|
7161
|
-
const els = getKeyboardFocusableElements();
|
|
7162
|
-
const current = els.indexOf(element);
|
|
7163
|
-
return els[current - 1] as HTMLElement;
|
|
7164
|
-
}
|
|
7165
|
-
|
|
7166
|
-
export function getNextKeyboardFocusableElement(element: HTMLElement) {
|
|
7167
|
-
const els = getKeyboardFocusableElements();
|
|
7168
|
-
const current = els.indexOf(element);
|
|
7169
|
-
return els[current + 1] as HTMLElement;
|
|
7170
|
-
}
|
|
6680
|
+
const DEFAULT_LANGUAGE = "en";
|
|
6681
|
+
function getBrowserLang() {
|
|
6682
|
+
const langAttr = document.documentElement.getAttribute("lang");
|
|
6683
|
+
if (!!langAttr) {
|
|
6684
|
+
return langAttr;
|
|
6685
|
+
}
|
|
6686
|
+
else if (window.navigator && window.navigator.language) {
|
|
6687
|
+
const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
|
|
6688
|
+
return lang.slice(0, 2);
|
|
6689
|
+
}
|
|
6690
|
+
else {
|
|
6691
|
+
return DEFAULT_LANGUAGE;
|
|
6692
|
+
}
|
|
6693
|
+
}
|
|
6694
|
+
// prevents memory leak
|
|
6695
|
+
const cache = createIntlCache();
|
|
6696
|
+
const locale = getBrowserLang();
|
|
6697
|
+
const intl = createIntl({
|
|
6698
|
+
locale: locale,
|
|
6699
|
+
defaultLocale: "en",
|
|
6700
|
+
messages: lang[locale] || en,
|
|
6701
|
+
}, cache);
|
|
6702
|
+
function generateId() {
|
|
6703
|
+
return "wmcl-" + Math.random().toString(36).substr(2, 10);
|
|
6704
|
+
}
|
|
6705
|
+
// limits how many times a function fires
|
|
6706
|
+
// use when the function should run periodically, but not too often (e.g. window resize)
|
|
6707
|
+
function throttle(fn, wait) {
|
|
6708
|
+
let timeout;
|
|
6709
|
+
let shouldWait = false;
|
|
6710
|
+
return function () {
|
|
6711
|
+
const context = this;
|
|
6712
|
+
if (!shouldWait) {
|
|
6713
|
+
fn.apply(context, arguments);
|
|
6714
|
+
shouldWait = true;
|
|
6715
|
+
clearTimeout(timeout);
|
|
6716
|
+
timeout = setTimeout(function () {
|
|
6717
|
+
shouldWait = false;
|
|
6718
|
+
}, wait);
|
|
6719
|
+
}
|
|
6720
|
+
};
|
|
6721
|
+
}
|
|
6722
|
+
// waits until it hasn't been called for [timeout] ms.
|
|
6723
|
+
// use when the function should run only after something (event) is done firing
|
|
6724
|
+
function debounce(fn, wait) {
|
|
6725
|
+
let timeout;
|
|
6726
|
+
return function () {
|
|
6727
|
+
const context = this;
|
|
6728
|
+
const functionCall = () => fn.apply(context, arguments);
|
|
6729
|
+
clearTimeout(timeout);
|
|
6730
|
+
timeout = setTimeout(functionCall, wait);
|
|
6731
|
+
};
|
|
6732
|
+
}
|
|
6733
|
+
function getTextDir() {
|
|
6734
|
+
const dir = document.querySelector("html").getAttribute("dir");
|
|
6735
|
+
return dir ? dir.toLowerCase() : "";
|
|
6736
|
+
}
|
|
6737
|
+
function getPosition(el) {
|
|
6738
|
+
const coords = el.getBoundingClientRect();
|
|
6739
|
+
let x = coords.x;
|
|
6740
|
+
let y = coords.y;
|
|
6741
|
+
// Edge doesn't have x and y
|
|
6742
|
+
if (!x) {
|
|
6743
|
+
if (getTextDir() === "rtl") {
|
|
6744
|
+
x = coords.right;
|
|
6745
|
+
}
|
|
6746
|
+
else {
|
|
6747
|
+
x = coords.left;
|
|
6748
|
+
}
|
|
6749
|
+
y = coords.top;
|
|
6750
|
+
}
|
|
6751
|
+
return { x, y };
|
|
6752
|
+
}
|
|
6753
|
+
function findParentWithScrollbar(el) {
|
|
6754
|
+
while (!!el) {
|
|
6755
|
+
if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
|
|
6756
|
+
return el;
|
|
6757
|
+
}
|
|
6758
|
+
el = el.parentElement;
|
|
6759
|
+
}
|
|
6760
|
+
}
|
|
6761
|
+
function findParentWithHiddenOverflow(el) {
|
|
6762
|
+
while (!!el) {
|
|
6763
|
+
if (window.getComputedStyle(el).overflowY !== "visible") {
|
|
6764
|
+
return el;
|
|
6765
|
+
}
|
|
6766
|
+
el = el.parentElement;
|
|
6767
|
+
}
|
|
6768
|
+
}
|
|
6769
|
+
function getClosableElementMeasurements(fixedEl, closableEl) {
|
|
6770
|
+
const parent = findParentWithHiddenOverflow(fixedEl);
|
|
6771
|
+
// if parent is not found, measurements are checked against the viewport
|
|
6772
|
+
return {
|
|
6773
|
+
closableElHeight: closableEl.clientHeight,
|
|
6774
|
+
closableElWidth: closableEl.clientWidth,
|
|
6775
|
+
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6776
|
+
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6777
|
+
spaceAbove: parent
|
|
6778
|
+
? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
|
|
6779
|
+
: fixedEl.getBoundingClientRect().top,
|
|
6780
|
+
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6781
|
+
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6782
|
+
spaceBelow: parent
|
|
6783
|
+
? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
|
|
6784
|
+
: document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
|
|
6785
|
+
spaceLeft: parent
|
|
6786
|
+
? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
|
|
6787
|
+
: fixedEl.getBoundingClientRect().left,
|
|
6788
|
+
spaceRight: parent
|
|
6789
|
+
? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
|
|
6790
|
+
: document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
|
|
6791
|
+
};
|
|
6792
|
+
}
|
|
6793
|
+
function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
|
|
6794
|
+
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6795
|
+
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6796
|
+
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6797
|
+
) {
|
|
6798
|
+
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6799
|
+
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6800
|
+
const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
|
|
6801
|
+
return openUp;
|
|
6802
|
+
}
|
|
6803
|
+
function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
|
|
6804
|
+
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6805
|
+
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6806
|
+
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6807
|
+
) {
|
|
6808
|
+
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6809
|
+
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6810
|
+
const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
|
|
6811
|
+
return openDown;
|
|
6812
|
+
}
|
|
6813
|
+
function shouldShiftRight(fixedEl, closableEl) {
|
|
6814
|
+
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6815
|
+
const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
|
|
6816
|
+
return needsSpaceLeft;
|
|
6817
|
+
}
|
|
6818
|
+
function shouldShiftLeft(fixedEl, closableEl) {
|
|
6819
|
+
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6820
|
+
const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
|
|
6821
|
+
return needsSpaceRight;
|
|
6822
|
+
}
|
|
6823
|
+
function adjustTooltipPosition(tPos, el, tooltipEl) {
|
|
6824
|
+
// position must be reset before measurements are taken in adjustTooltipPosition
|
|
6825
|
+
// otherwise text-wrapping from previous position makes width measurement inconsistent
|
|
6826
|
+
tooltipEl.style.top = "";
|
|
6827
|
+
tooltipEl.style.left = "";
|
|
6828
|
+
const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
|
|
6829
|
+
const tooltipWidth = tooltipEl.getBoundingClientRect().width;
|
|
6830
|
+
const tooltipHeight = tooltipEl.getBoundingClientRect().height;
|
|
6831
|
+
const enoughSpaceAbove = spaceAbove > tooltipHeight;
|
|
6832
|
+
const enoughSpaceBelow = spaceBelow > tooltipHeight;
|
|
6833
|
+
// a tooltip should never be closer than 24px to the edge of a screen
|
|
6834
|
+
const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
|
|
6835
|
+
const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
|
|
6836
|
+
const swapAbove = (position) => {
|
|
6837
|
+
return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
|
|
6838
|
+
};
|
|
6839
|
+
const swapBelow = (position) => {
|
|
6840
|
+
return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
|
|
6841
|
+
};
|
|
6842
|
+
const swapLeft = (position, centeredPosition) => {
|
|
6843
|
+
if (!enoughSpaceLeft && enoughSpaceRight) {
|
|
6844
|
+
position = position.replace("left", "right");
|
|
6845
|
+
}
|
|
6846
|
+
else if (!enoughSpaceLeft && !enoughSpaceRight) {
|
|
6847
|
+
position = centeredPosition;
|
|
6848
|
+
}
|
|
6849
|
+
return position;
|
|
6850
|
+
};
|
|
6851
|
+
const swapRight = (position, centeredPosition) => {
|
|
6852
|
+
if (!enoughSpaceRight && enoughSpaceLeft) {
|
|
6853
|
+
position = position.replace("right", "left");
|
|
6854
|
+
}
|
|
6855
|
+
else if (!enoughSpaceRight && !enoughSpaceLeft) {
|
|
6856
|
+
position = centeredPosition;
|
|
6857
|
+
}
|
|
6858
|
+
return position;
|
|
6859
|
+
};
|
|
6860
|
+
// horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
|
|
6861
|
+
switch (tPos) {
|
|
6862
|
+
case "left":
|
|
6863
|
+
tPos = swapLeft(tPos, "bottom");
|
|
6864
|
+
case "right":
|
|
6865
|
+
tPos = swapRight(tPos, "bottom");
|
|
6866
|
+
case "top-left":
|
|
6867
|
+
tPos = swapLeft(tPos, "top");
|
|
6868
|
+
tPos = swapAbove(tPos);
|
|
6869
|
+
case "top-right":
|
|
6870
|
+
tPos = swapRight(tPos, "top");
|
|
6871
|
+
tPos = swapAbove(tPos);
|
|
6872
|
+
case "bottom-left":
|
|
6873
|
+
tPos = swapLeft(tPos, "bottom");
|
|
6874
|
+
tPos = swapBelow(tPos);
|
|
6875
|
+
case "bottom-right":
|
|
6876
|
+
tPos = swapRight(tPos, "bottom");
|
|
6877
|
+
tPos = swapBelow(tPos);
|
|
6878
|
+
case "top":
|
|
6879
|
+
tPos = swapAbove(tPos);
|
|
6880
|
+
case "bottom":
|
|
6881
|
+
tPos = swapBelow(tPos);
|
|
6882
|
+
}
|
|
6883
|
+
return tPos;
|
|
6884
|
+
}
|
|
6885
|
+
function hasRoomRight(x, spaceNeeded) {
|
|
6886
|
+
let horizOffset = 0;
|
|
6887
|
+
// if (getTextDir() === "ltr") {
|
|
6888
|
+
if (x.type === "click") {
|
|
6889
|
+
// if it's a mouse event, deal with mouse coords
|
|
6890
|
+
horizOffset = x.clientX;
|
|
6891
|
+
// if it's a focus event, the offset is 0
|
|
6892
|
+
}
|
|
6893
|
+
else if (x.type === "focus") {
|
|
6894
|
+
horizOffset = 0;
|
|
6895
|
+
}
|
|
6896
|
+
else {
|
|
6897
|
+
// otherwise an element was passed, calculate how far it is from the edge of the window
|
|
6898
|
+
let el = x; // re-assignment is for clarity
|
|
6899
|
+
while (el) {
|
|
6900
|
+
if (el.tagName == "BODY") {
|
|
6901
|
+
// deal with browser quirks with body/window/document and page scroll
|
|
6902
|
+
var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
|
|
6903
|
+
horizOffset += el.offsetLeft - xScroll + el.clientLeft;
|
|
6904
|
+
}
|
|
6905
|
+
else {
|
|
6906
|
+
// for all other non-BODY elements
|
|
6907
|
+
horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
|
|
6908
|
+
}
|
|
6909
|
+
el = el.offsetParent;
|
|
6910
|
+
}
|
|
6911
|
+
// }
|
|
6912
|
+
}
|
|
6913
|
+
return window.innerWidth - horizOffset >= spaceNeeded;
|
|
6914
|
+
}
|
|
6915
|
+
function checkForActiveElInShadow(element) {
|
|
6916
|
+
while (element && element.shadowRoot) {
|
|
6917
|
+
element = element.shadowRoot.activeElement;
|
|
6918
|
+
}
|
|
6919
|
+
return element;
|
|
6920
|
+
}
|
|
6921
|
+
function checkForFocusableElInShadow(element) {
|
|
6922
|
+
const selectors = [
|
|
6923
|
+
"button",
|
|
6924
|
+
"a",
|
|
6925
|
+
"input",
|
|
6926
|
+
"select",
|
|
6927
|
+
"textarea",
|
|
6928
|
+
"wm-button",
|
|
6929
|
+
"wm-search",
|
|
6930
|
+
"wm-select",
|
|
6931
|
+
"wm-action-menu",
|
|
6932
|
+
"wm-tab-item",
|
|
6933
|
+
"wm-datepicker",
|
|
6934
|
+
];
|
|
6935
|
+
let focusableEl = element;
|
|
6936
|
+
selectors.forEach((selector) => {
|
|
6937
|
+
if (focusableEl && focusableEl.shadowRoot) {
|
|
6938
|
+
let elInShadow = focusableEl.shadowRoot.querySelector(selector);
|
|
6939
|
+
if (elInShadow) {
|
|
6940
|
+
if (selector.startsWith("wm-")) {
|
|
6941
|
+
focusableEl = checkForFocusableElInShadow(elInShadow);
|
|
6942
|
+
}
|
|
6943
|
+
else {
|
|
6944
|
+
focusableEl = elInShadow;
|
|
6945
|
+
}
|
|
6946
|
+
}
|
|
6947
|
+
}
|
|
6948
|
+
});
|
|
6949
|
+
return focusableEl;
|
|
6950
|
+
}
|
|
6951
|
+
function isFocusable(element) {
|
|
6952
|
+
if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
|
|
6953
|
+
return true;
|
|
6954
|
+
}
|
|
6955
|
+
if (element.disabled) {
|
|
6956
|
+
return false;
|
|
6957
|
+
}
|
|
6958
|
+
switch (element.nodeName) {
|
|
6959
|
+
case "A":
|
|
6960
|
+
return !!element.href && element.rel != "ignore";
|
|
6961
|
+
case "INPUT":
|
|
6962
|
+
return element.type != "hidden" && element.type != "file";
|
|
6963
|
+
case "BUTTON":
|
|
6964
|
+
case "SELECT":
|
|
6965
|
+
case "TEXTAREA":
|
|
6966
|
+
case "WM-BUTTON":
|
|
6967
|
+
case "WM-SELECT":
|
|
6968
|
+
case "WM-ACTION-MENU":
|
|
6969
|
+
case "WM-DATEPICKER":
|
|
6970
|
+
case "WM-TIMEPICKER":
|
|
6971
|
+
case "WM-INPUT":
|
|
6972
|
+
case "WM-TAG-INPUT":
|
|
6973
|
+
case "WM-TAB-ITEM":
|
|
6974
|
+
case "WM-SEARCH":
|
|
6975
|
+
return true;
|
|
6976
|
+
default:
|
|
6977
|
+
return false;
|
|
6978
|
+
}
|
|
6979
|
+
}
|
|
6980
|
+
function getFirstFocusableDescendant(element) {
|
|
6981
|
+
if (isFocusable(element)) {
|
|
6982
|
+
return checkForFocusableElInShadow(element);
|
|
6983
|
+
}
|
|
6984
|
+
else if (element.childNodes.length > 0) {
|
|
6985
|
+
element.childNodes.forEach((i) => {
|
|
6986
|
+
const childEl = getFirstFocusableDescendant(i);
|
|
6987
|
+
return childEl && checkForFocusableElInShadow(childEl);
|
|
6988
|
+
});
|
|
6989
|
+
}
|
|
6990
|
+
}
|
|
6991
|
+
function hasValidType(file, types) {
|
|
6992
|
+
const acceptedExtensions = types.split(" ");
|
|
6993
|
+
const parts = file.name && file.name.split(".");
|
|
6994
|
+
const ext = parts && parts.length > 1 && parts[parts.length - 1];
|
|
6995
|
+
return ext
|
|
6996
|
+
? acceptedExtensions.includes(ext.toLowerCase())
|
|
6997
|
+
: // fallback: if we couldn't obtain an extension,
|
|
6998
|
+
// validate based on MIME type...
|
|
6999
|
+
!!file.type
|
|
7000
|
+
? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
|
|
7001
|
+
: // ...and if that failed too, accept the file
|
|
7002
|
+
// as it's preferable to accept an invalid file
|
|
7003
|
+
// than refusing a valid one (back-end will take care of what slips through)
|
|
7004
|
+
true;
|
|
7005
|
+
}
|
|
7006
|
+
// takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
|
|
7007
|
+
function getAcceptedMimeTypesList(acceptedExtensions) {
|
|
7008
|
+
// this is just a list of common file types (regardless of whether they are/can be valid or not)
|
|
7009
|
+
// front end checks are just a convenience to users, independent of security.
|
|
7010
|
+
// it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
|
|
7011
|
+
const lookupTable = {
|
|
7012
|
+
aac: ["audio/aac"],
|
|
7013
|
+
abw: ["application/x-abiword"],
|
|
7014
|
+
arc: ["application/x-freearc"],
|
|
7015
|
+
avi: ["video/x-msvideo"],
|
|
7016
|
+
azw: ["application/vnd.amazon.ebook"],
|
|
7017
|
+
bin: ["application/octet-stream"],
|
|
7018
|
+
bmp: ["image/bmp"],
|
|
7019
|
+
bz: ["application/x-bzip"],
|
|
7020
|
+
bz2: ["application/x-bzip2"],
|
|
7021
|
+
csh: ["application/x-csh"],
|
|
7022
|
+
css: ["text/css"],
|
|
7023
|
+
csv: ["text/csv"],
|
|
7024
|
+
doc: ["application/msword"],
|
|
7025
|
+
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
7026
|
+
eot: ["application/vnd.ms-fontobject"],
|
|
7027
|
+
epub: ["application/epub+zip"],
|
|
7028
|
+
gz: ["application/gzip"],
|
|
7029
|
+
gif: ["image/gif"],
|
|
7030
|
+
htm: ["text/html"],
|
|
7031
|
+
html: ["text/html"],
|
|
7032
|
+
ico: ["image/vnd.microsoft.icon"],
|
|
7033
|
+
ics: ["text/calendar"],
|
|
7034
|
+
jar: ["application/java-archive"],
|
|
7035
|
+
jpeg: ["image/jpeg"],
|
|
7036
|
+
jpg: ["image/jpeg"],
|
|
7037
|
+
js: ["text/javascript"],
|
|
7038
|
+
json: ["application/json"],
|
|
7039
|
+
jsonld: ["application/ld+json"],
|
|
7040
|
+
log: ["text/plain"],
|
|
7041
|
+
mid: ["audio/x-midi"],
|
|
7042
|
+
midi: ["audio/x-midi"],
|
|
7043
|
+
mjs: ["text/javascript"],
|
|
7044
|
+
mp3: ["audio/mpeg"],
|
|
7045
|
+
mpeg: ["video/mpeg"],
|
|
7046
|
+
mpkg: ["application/vnd.apple.installer+xml"],
|
|
7047
|
+
odp: ["application/vnd.oasis.opendocument.presentation"],
|
|
7048
|
+
ods: ["application/vnd.oasis.opendocument.spreadsheet"],
|
|
7049
|
+
odt: ["application/vnd.oasis.opendocument.text"],
|
|
7050
|
+
oga: ["audio/ogg"],
|
|
7051
|
+
ogv: ["video/ogg"],
|
|
7052
|
+
ogx: ["application/ogg"],
|
|
7053
|
+
opus: ["audio/opus"],
|
|
7054
|
+
otf: ["font/otf"],
|
|
7055
|
+
png: ["image/png"],
|
|
7056
|
+
pdf: ["application/pdf"],
|
|
7057
|
+
php: ["application/php"],
|
|
7058
|
+
ppt: ["application/vnd.ms-powerpoint"],
|
|
7059
|
+
pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
|
|
7060
|
+
rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
|
|
7061
|
+
rtf: ["application/rtf"],
|
|
7062
|
+
sh: ["application/x-sh"],
|
|
7063
|
+
svg: ["image/svg+xml"],
|
|
7064
|
+
swf: ["application/x-shockwave-flash"],
|
|
7065
|
+
tar: ["application/x-tar"],
|
|
7066
|
+
tif: ["image/tiff"],
|
|
7067
|
+
tiff: ["image/tiff"],
|
|
7068
|
+
ts: ["video/mp2t"],
|
|
7069
|
+
ttf: ["font/ttf"],
|
|
7070
|
+
txt: ["text/plain"],
|
|
7071
|
+
vsd: ["application/vnd.visio"],
|
|
7072
|
+
wav: ["audio/wav"],
|
|
7073
|
+
weba: ["audio/webm"],
|
|
7074
|
+
webm: ["video/webm"],
|
|
7075
|
+
webp: ["image/webp"],
|
|
7076
|
+
woff: ["font/woff"],
|
|
7077
|
+
woff2: ["font/woff2"],
|
|
7078
|
+
xhtml: ["application/xhtml+xml"],
|
|
7079
|
+
xls: ["application/vnd.ms-excel"],
|
|
7080
|
+
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
7081
|
+
xml: ["application/xml", "text/xml"],
|
|
7082
|
+
xul: ["application/vnd.mozilla.xul+xml"],
|
|
7083
|
+
zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
|
|
7084
|
+
"3gp": ["video/3gpp", "audio/3gpp"],
|
|
7085
|
+
"3g2": ["video/3gpp2", "audio/3gpp2"],
|
|
7086
|
+
"7z": ["application/x-7z-compressed"],
|
|
7087
|
+
};
|
|
7088
|
+
return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
|
|
7089
|
+
}
|
|
7090
|
+
function snakeCaseToCamelCase(str) {
|
|
7091
|
+
const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
|
|
7092
|
+
if (snakeCaseRegexp.test(str)) {
|
|
7093
|
+
let camelCase = "";
|
|
7094
|
+
let arr = str.split("_");
|
|
7095
|
+
arr.forEach((word, idx) => {
|
|
7096
|
+
camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
|
|
7097
|
+
});
|
|
7098
|
+
return camelCase;
|
|
7099
|
+
}
|
|
7100
|
+
else {
|
|
7101
|
+
return str;
|
|
7102
|
+
}
|
|
7103
|
+
}
|
|
7104
|
+
function getNewIndexToFocus(currentIndex, direction, listLength) {
|
|
7105
|
+
let newIndex = currentIndex;
|
|
7106
|
+
if (direction === "ArrowDown") {
|
|
7107
|
+
newIndex = (currentIndex + 1) % listLength;
|
|
7108
|
+
}
|
|
7109
|
+
if (direction === "ArrowUp") {
|
|
7110
|
+
newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
|
|
7111
|
+
}
|
|
7112
|
+
return newIndex;
|
|
7113
|
+
}
|
|
7114
|
+
function isRelatedTarget(ev, id) {
|
|
7115
|
+
// used for onBlur events to check the element that has been clicked
|
|
7116
|
+
const ids = id.split(" ");
|
|
7117
|
+
return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
|
|
7118
|
+
}
|
|
7119
|
+
function toBool(val) {
|
|
7120
|
+
// string "false" needs to be treated as bool False because react wrappers convert bool to string.
|
|
7121
|
+
return val == "false" ? false : !!val;
|
|
7122
|
+
}
|
|
7123
|
+
/*
|
|
7124
|
+
* this is going to be needed to solve the extra tabbing on navigator
|
|
7125
|
+
* and for programmatic focus of tabs
|
|
7126
|
+
* Here's a draft, not bug proof, see:
|
|
7127
|
+
* https://stackoverflow.com/a/10730308/3741713
|
|
7128
|
+
|
|
7129
|
+
function getKeyboardFocusableElements(element = document) {
|
|
7130
|
+
const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
|
|
7131
|
+
return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
|
|
7132
|
+
}
|
|
7133
|
+
|
|
7134
|
+
export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
|
|
7135
|
+
const els = getKeyboardFocusableElements();
|
|
7136
|
+
const current = els.indexOf(element);
|
|
7137
|
+
return els[current - 1] as HTMLElement;
|
|
7138
|
+
}
|
|
7139
|
+
|
|
7140
|
+
export function getNextKeyboardFocusableElement(element: HTMLElement) {
|
|
7141
|
+
const els = getKeyboardFocusableElements();
|
|
7142
|
+
const current = els.indexOf(element);
|
|
7143
|
+
return els[current + 1] as HTMLElement;
|
|
7144
|
+
}
|
|
7171
7145
|
*/
|
|
7172
7146
|
|
|
7173
7147
|
export { adjustTooltipPosition as a, getPosition as b, checkForActiveElInShadow as c, debounce as d, isRelatedTarget as e, findParentWithScrollbar as f, generateId as g, checkForFocusableElInShadow as h, intl as i, getFirstFocusableDescendant as j, getNewIndexToFocus as k, shouldOpenUp as l, shouldOpenDown as m, shouldShiftRight as n, shouldShiftLeft as o, hasValidType as p, getTextDir as q, throttle as r, snakeCaseToCamelCase as s, toBool as t, hasRoomRight as u };
|