@watermarkinsights/ripple 3.8.2 → 3.9.0-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/README.md +3 -3
- package/dist/cjs/chartFunctions-a1dd1291.js +429 -0
- package/dist/cjs/{functions-b90816b8.js → functions-0750b767.js} +506 -532
- package/dist/cjs/{global-cf9485c4.js → global-0a6b313f.js} +60 -60
- package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
- package/dist/cjs/{index-0e7e3668.js → index-98c6524c.js} +69 -96
- package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/priv-chart-popover.cjs.entry.js +87 -79
- 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 +4 -4
- 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 -473
- 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 +422 -422
- 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.cjs.entry.js +92 -0
- package/dist/cjs/wm-progress-monitor.cjs.entry.js +57 -0
- package/dist/cjs/wm-progress-slice.cjs.entry.js +17 -0
- 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 +348 -348
- package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
- package/dist/collection/collection-manifest.json +8 -5
- package/dist/collection/components/{wm-chart → charts}/priv-chart-popover/priv-chart-popover.css +0 -0
- package/dist/collection/components/{wm-chart → charts}/priv-chart-popover/priv-chart-popover.js +258 -232
- package/dist/collection/components/{wm-chart → charts/wm-chart}/wm-chart-slice.js +115 -115
- package/dist/collection/components/charts/wm-chart/wm-chart.css +460 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.js +332 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +460 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +199 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +53 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +95 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +111 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
- package/dist/collection/components/wm-button/wm-button.css +2 -1
- package/dist/collection/components/wm-button/wm-button.js +491 -491
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +4 -3
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1024 -1024
- package/dist/collection/components/wm-datepicker/wm-datepicker.css +2 -1
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +471 -471
- package/dist/collection/components/wm-input/wm-input.css +2 -1
- package/dist/collection/components/wm-input/wm-input.js +423 -423
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
- package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
- package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
- package/dist/collection/components/wm-modal/wm-modal.js +461 -461
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +2 -1
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +162 -162
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +121 -121
- package/dist/collection/components/wm-navigation/wm-navigation.js +211 -211
- 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.js +114 -114
- package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
- package/dist/collection/components/wm-option/wm-option.css +3 -2
- package/dist/collection/components/wm-option/wm-option.js +414 -414
- package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
- package/dist/collection/components/wm-search/wm-search.js +480 -480
- package/dist/collection/components/wm-select/wm-select.css +3 -2
- package/dist/collection/components/wm-select/wm-select.js +718 -718
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +3 -2
- 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 -2
- 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.js +330 -330
- 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 -2
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -810
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +3 -2
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -583
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +2 -1
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +2 -1
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -753
- package/dist/collection/components/wm-uploader/wm-uploader.css +2 -1
- package/dist/collection/components/wm-uploader/wm-uploader.js +748 -748
- 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 +417 -0
- 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 +39 -39
- package/dist/collection/lang/piglatin.js +93 -93
- package/dist/esm/chartFunctions-fc11df2b.js +420 -0
- package/dist/esm/{functions-8d09a511.js → functions-b478ef24.js} +506 -532
- package/dist/esm/{global-d1d68bab.js → global-b8be90a6.js} +60 -60
- package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
- package/dist/esm/{index-cd8f9ae2.js → index-d649a861.js} +69 -96
- package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
- package/dist/esm/loader.js +4 -4
- 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 -79
- 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 +4 -4
- 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 -473
- 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 +422 -422
- 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.entry.js +88 -0
- package/dist/esm/wm-progress-monitor.entry.js +53 -0
- package/dist/esm/wm-progress-slice.entry.js +13 -0
- 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 +348 -348
- package/dist/esm/wm-wrapper.entry.js +13 -13
- package/dist/esm-es5/chartFunctions-fc11df2b.js +1 -0
- package/dist/esm-es5/functions-b478ef24.js +15 -0
- package/dist/esm-es5/global-b8be90a6.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.entry.js +1 -0
- package/dist/esm-es5/wm-progress-monitor.entry.js +1 -0
- package/dist/esm-es5/wm-progress-slice.entry.js +1 -0
- 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-063bc67c.system.entry.js +1 -0
- package/dist/ripple/{p-504579c2.system.entry.js → p-099df7b7.system.entry.js} +1 -1
- package/dist/ripple/p-0b23a4fe.entry.js +1 -0
- package/dist/ripple/p-1b2c3251.system.entry.js +1 -0
- package/dist/ripple/{p-34e0410e.system.entry.js → p-1b7be30d.system.entry.js} +1 -1
- package/dist/ripple/p-1e2c46f1.entry.js +1 -0
- package/dist/ripple/p-1e7fc028.entry.js +1 -0
- package/dist/ripple/p-2296c2c3.entry.js +1 -0
- package/dist/ripple/p-24cd6213.system.entry.js +1 -0
- package/dist/ripple/p-2587031d.system.entry.js +1 -0
- package/dist/ripple/p-29d527c8.entry.js +1 -0
- package/dist/ripple/p-2b6246d9.entry.js +1 -0
- package/dist/ripple/{p-a5177480.system.entry.js → p-2b63995f.system.entry.js} +1 -1
- package/dist/ripple/p-2b9c54e7.system.entry.js +1 -0
- package/dist/ripple/p-2cc9e6cf.system.entry.js +1 -0
- package/dist/ripple/p-30db4ad7.entry.js +1 -0
- package/dist/ripple/{p-dc0e6d55.system.entry.js → p-30e1daf7.system.entry.js} +1 -1
- package/dist/ripple/p-3388ca40.entry.js +1 -0
- package/dist/ripple/p-34736928.entry.js +1 -0
- package/dist/ripple/p-366e00f9.js +1 -0
- package/dist/ripple/p-36be0612.js +1 -0
- package/dist/ripple/p-3b31eaec.system.js +1 -0
- package/dist/ripple/p-3eb3a1f8.entry.js +1 -0
- package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
- package/dist/ripple/p-492ad5d0.system.entry.js +1 -0
- package/dist/ripple/p-4f23cdc6.entry.js +1 -0
- package/dist/ripple/p-50be3b44.js +1 -0
- package/dist/ripple/p-5743d4bc.system.entry.js +1 -0
- package/dist/ripple/p-59963be9.system.entry.js +1 -0
- package/dist/ripple/p-5d6cc9da.system.js +1 -0
- package/dist/ripple/p-5e5f162c.system.entry.js +1 -0
- package/dist/ripple/{p-53caf7e4.system.entry.js → p-647edff3.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-6f9e8fbc.entry.js +1 -0
- package/dist/ripple/p-70ececb5.entry.js +1 -0
- package/dist/ripple/p-7674c9b0.system.entry.js +1 -0
- package/dist/ripple/p-76b96f77.entry.js +1 -0
- package/dist/ripple/p-7a2a0d2e.js +16 -0
- package/dist/ripple/p-7c2b1682.entry.js +1 -0
- package/dist/ripple/p-7f0c64ac.entry.js +1 -0
- package/dist/ripple/p-803f1f22.entry.js +1 -0
- package/dist/ripple/p-84fb34b5.entry.js +1 -0
- package/dist/ripple/p-8a583f84.entry.js +1 -0
- package/dist/ripple/p-8daa2613.system.entry.js +1 -0
- package/dist/ripple/p-935a266f.entry.js +1 -0
- package/dist/ripple/p-9d02957d.system.js +1 -0
- package/dist/ripple/p-a14ac623.entry.js +1 -0
- package/dist/ripple/{p-e758db14.system.entry.js → p-a1511315.system.entry.js} +1 -1
- package/dist/ripple/p-b325c35a.system.entry.js +1 -0
- package/dist/ripple/{p-9a9743f5.system.entry.js → p-bfc1ab2e.system.entry.js} +1 -1
- package/dist/ripple/p-bfe93d8d.system.entry.js +1 -0
- package/dist/ripple/p-c1c7b0b1.system.js +15 -0
- package/dist/ripple/p-c20a179f.system.entry.js +1 -0
- package/dist/ripple/p-c8bbf15e.entry.js +1 -0
- package/dist/ripple/{p-7913283e.system.entry.js → p-cb7d8ade.system.entry.js} +1 -1
- package/dist/ripple/p-cfb62ded.entry.js +1 -0
- package/dist/ripple/p-d12e0f49.system.js +1 -0
- package/dist/ripple/p-d648d193.entry.js +1 -0
- package/dist/ripple/p-d7ff84eb.entry.js +1 -0
- package/dist/ripple/{p-c19298a5.system.entry.js → p-ddf157c8.system.entry.js} +1 -1
- package/dist/ripple/p-e90f6915.system.js +1 -0
- package/dist/ripple/p-ea33bda7.system.entry.js +1 -0
- package/dist/ripple/p-f2566a42.system.entry.js +1 -0
- package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +0 -0
- package/dist/ripple/p-f62fc5ea.system.entry.js +1 -0
- package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
- package/dist/ripple/{p-dcfe93ea.system.entry.js → p-fd9380f2.system.entry.js} +1 -1
- package/dist/ripple/p-fe0abd10.system.entry.js +1 -0
- package/dist/ripple/p-fe2a30d3.entry.js +1 -0
- package/dist/ripple/p-ffbc5db3.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/{wm-chart → charts}/priv-chart-popover/priv-chart-popover.d.ts +27 -23
- package/dist/types/components/{wm-chart → charts/wm-chart}/wm-chart-slice.d.ts +11 -11
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +35 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +26 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -0
- 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 +86 -24
- package/dist/types/global/__mocks__/functions.d.ts +6 -6
- package/dist/types/global/chartFunctions.d.ts +28 -0
- 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 -34
- 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/collection/components/wm-chart/wm-chart.css +0 -346
- package/dist/collection/components/wm-chart/wm-chart.js +0 -715
- package/dist/esm-es5/functions-8d09a511.js +0 -15
- package/dist/esm-es5/global-d1d68bab.js +0 -1
- package/dist/esm-es5/index-cd8f9ae2.js +0 -1
- package/dist/ripple/p-09508c2d.entry.js +0 -1
- package/dist/ripple/p-0a916c6e.entry.js +0 -1
- package/dist/ripple/p-11a9ce3f.system.js +0 -1
- package/dist/ripple/p-1ef19ec1.entry.js +0 -1
- package/dist/ripple/p-20856a2d.system.js +0 -1
- package/dist/ripple/p-244877c8.entry.js +0 -1
- package/dist/ripple/p-253a08fe.system.js +0 -15
- package/dist/ripple/p-268622b5.system.entry.js +0 -1
- package/dist/ripple/p-27f0d9be.entry.js +0 -1
- package/dist/ripple/p-29d3ca15.system.entry.js +0 -1
- package/dist/ripple/p-2a27dba5.entry.js +0 -1
- package/dist/ripple/p-2b209cf3.js +0 -1
- package/dist/ripple/p-313b6073.system.js +0 -1
- package/dist/ripple/p-38062c39.js +0 -1
- package/dist/ripple/p-39eea6bd.system.entry.js +0 -1
- package/dist/ripple/p-3b6b7618.entry.js +0 -1
- package/dist/ripple/p-3ba3afca.entry.js +0 -1
- package/dist/ripple/p-4de0799d.entry.js +0 -1
- package/dist/ripple/p-56963e2f.system.entry.js +0 -1
- package/dist/ripple/p-597985b9.entry.js +0 -1
- package/dist/ripple/p-5adc422a.entry.js +0 -1
- package/dist/ripple/p-5e0d47b9.system.entry.js +0 -1
- package/dist/ripple/p-67f74636.entry.js +0 -1
- package/dist/ripple/p-69735b23.system.entry.js +0 -1
- package/dist/ripple/p-6c65643e.system.entry.js +0 -1
- package/dist/ripple/p-7484c4e6.system.entry.js +0 -1
- package/dist/ripple/p-764fa608.entry.js +0 -1
- package/dist/ripple/p-81c023a7.entry.js +0 -1
- package/dist/ripple/p-8a0450fd.entry.js +0 -1
- package/dist/ripple/p-8e2cbae6.system.entry.js +0 -1
- package/dist/ripple/p-93b1c864.system.entry.js +0 -1
- package/dist/ripple/p-991abdb9.system.entry.js +0 -1
- package/dist/ripple/p-99d610f9.entry.js +0 -1
- package/dist/ripple/p-a8d66745.js +0 -16
- package/dist/ripple/p-b53962af.entry.js +0 -1
- package/dist/ripple/p-b53cecad.system.entry.js +0 -1
- package/dist/ripple/p-bdbc14ee.system.entry.js +0 -1
- package/dist/ripple/p-bf3c22d9.entry.js +0 -1
- package/dist/ripple/p-c58520e4.entry.js +0 -1
- package/dist/ripple/p-c7660ed9.entry.js +0 -1
- package/dist/ripple/p-c8040acd.system.entry.js +0 -1
- package/dist/ripple/p-c9284e6b.entry.js +0 -1
- package/dist/ripple/p-cd75be7a.entry.js +0 -1
- package/dist/ripple/p-cdd5ce00.entry.js +0 -1
- package/dist/ripple/p-d680d98f.entry.js +0 -1
- package/dist/ripple/p-e597d7bb.system.entry.js +0 -1
- package/dist/ripple/p-e6bcfdd5.entry.js +0 -1
- package/dist/ripple/p-e8761ba1.system.js +0 -1
- package/dist/ripple/p-ef344252.entry.js +0 -1
- package/dist/ripple/p-fc254870.system.entry.js +0 -1
- package/dist/types/components/wm-chart/wm-chart.d.ts +0 -82
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/* This script is useful when we translate internally, so we know which keys to translate.
|
|
2
|
-
* Currently Martin Maugeais translates to French and Kristian Manrique to Spanish.
|
|
3
|
-
* This script should be run with `npm run missing`. It may fail otherwise, as fs paths are relative to project root.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const fs = require("fs");
|
|
7
|
-
const en = require("./en.json");
|
|
8
|
-
const fr = require("./fr.json");
|
|
9
|
-
const es = require("./es.json");
|
|
10
|
-
|
|
11
|
-
const keys = Object.keys(en);
|
|
12
|
-
|
|
13
|
-
let missingFR = {};
|
|
14
|
-
let missingES = {};
|
|
15
|
-
|
|
16
|
-
keys.map((key) => {
|
|
17
|
-
if (!fr[key]) {
|
|
18
|
-
missingFR[key] = en[key];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (!es[key]) {
|
|
22
|
-
missingES[key] = en[key];
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
const dataFR = JSON.stringify(missingFR, null, 2);
|
|
27
|
-
const dataES = JSON.stringify(missingES, null, 2);
|
|
28
|
-
|
|
29
|
-
if (Object.entries(missingFR).length > 0) {
|
|
30
|
-
fs.writeFile("src/lang/missingTranslationsFR.json", dataFR, (err) => {
|
|
31
|
-
!!err && console.log(err);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (Object.entries(missingES).length > 0) {
|
|
36
|
-
fs.writeFile("missingTranslationsES.json", dataES, (err) => {
|
|
37
|
-
!!err && console.log(err);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
1
|
+
/* This script is useful when we translate internally, so we know which keys to translate.
|
|
2
|
+
* Currently Martin Maugeais translates to French and Kristian Manrique to Spanish.
|
|
3
|
+
* This script should be run with `npm run missing`. It may fail otherwise, as fs paths are relative to project root.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const en = require("./en.json");
|
|
8
|
+
const fr = require("./fr.json");
|
|
9
|
+
const es = require("./es.json");
|
|
10
|
+
|
|
11
|
+
const keys = Object.keys(en);
|
|
12
|
+
|
|
13
|
+
let missingFR = {};
|
|
14
|
+
let missingES = {};
|
|
15
|
+
|
|
16
|
+
keys.map((key) => {
|
|
17
|
+
if (!fr[key]) {
|
|
18
|
+
missingFR[key] = en[key];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!es[key]) {
|
|
22
|
+
missingES[key] = en[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const dataFR = JSON.stringify(missingFR, null, 2);
|
|
27
|
+
const dataES = JSON.stringify(missingES, null, 2);
|
|
28
|
+
|
|
29
|
+
if (Object.entries(missingFR).length > 0) {
|
|
30
|
+
fs.writeFile("src/lang/missingTranslationsFR.json", dataFR, (err) => {
|
|
31
|
+
!!err && console.log(err);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (Object.entries(missingES).length > 0) {
|
|
36
|
+
fs.writeFile("missingTranslationsES.json", dataES, (err) => {
|
|
37
|
+
!!err && console.log(err);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const en = require("./en.json");
|
|
3
|
-
|
|
4
|
-
const pig = {};
|
|
5
|
-
Object.keys(en).map((k) => {
|
|
6
|
-
let string = en[k].defaultMessage;
|
|
7
|
-
const interpStart = string.indexOf("{");
|
|
8
|
-
const interpEnd = string.lastIndexOf("}") + 1;
|
|
9
|
-
|
|
10
|
-
// if there is an interpolation pattern
|
|
11
|
-
if (interpStart >= 0 && interpEnd > 2) {
|
|
12
|
-
let translInterp = translateSentence(string.slice(0, interpStart));
|
|
13
|
-
|
|
14
|
-
const interp = string.slice(interpStart, interpEnd);
|
|
15
|
-
// what's inside the braces shouldn't be translated
|
|
16
|
-
// unless it's in nested translated, and so on
|
|
17
|
-
// we can set flags to cut the string into pieces
|
|
18
|
-
// which should or should not be translated
|
|
19
|
-
const flags = [];
|
|
20
|
-
for (x = 0; x < interp.length; x++) {
|
|
21
|
-
if (interp[x] == "{") {
|
|
22
|
-
flags.push(x);
|
|
23
|
-
} else if (interp[x] == "}") {
|
|
24
|
-
flags.push(x);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
splits = flags.map((_, i) => {
|
|
29
|
-
if (i < flags.length) return interp.slice(flags[i], flags[i + 1]);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
splits.map((split, i) => {
|
|
33
|
-
translInterp += i % 2 ? translateSentence(split) : split; // only translate even ones (the odd ones are params)
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
translInterp += translateSentence(string.slice(interpEnd, string.length));
|
|
37
|
-
|
|
38
|
-
const dm = { defaultMessage: translInterp };
|
|
39
|
-
pig[k] = dm;
|
|
40
|
-
} else {
|
|
41
|
-
const dm = { defaultMessage: translateSentence(string) };
|
|
42
|
-
pig[k] = dm;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
data = JSON.stringify(pig, null, 2);
|
|
46
|
-
|
|
47
|
-
fs.writeFile("src/lang/pig.json", data, (err) => {
|
|
48
|
-
!!err && console.log(err);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
function pigLatinize(word) {
|
|
52
|
-
const isVowel = (char) => ["a", "e", "i", "o", "u"].includes(char.toLowerCase());
|
|
53
|
-
const isLetter = (char) => RegExp(/^\p{L}/, "u").test(char);
|
|
54
|
-
|
|
55
|
-
const firstLetter = Array.from(word).reduce((l, char, i) => (isLetter(char) && l < 0 ? i : l), -1);
|
|
56
|
-
|
|
57
|
-
const lastLetter = Array.from(word).reduce((l, char, i) => (isLetter(char) ? i : l), -1);
|
|
58
|
-
|
|
59
|
-
if (firstLetter == -1 && lastLetter == -1) return word; // only special chars, don't translate
|
|
60
|
-
|
|
61
|
-
const specialKBefore = word.slice(0, firstLetter) || "";
|
|
62
|
-
const specialKAfter = word.slice(lastLetter + 1, word.length + 1) || "";
|
|
63
|
-
word = word.slice(firstLetter, lastLetter + 1) || "";
|
|
64
|
-
|
|
65
|
-
if (word) {
|
|
66
|
-
if (isVowel(word[0])) {
|
|
67
|
-
word += "yay";
|
|
68
|
-
} else {
|
|
69
|
-
const firstVowel = Array.from(word).reduce((firstV, char, i) => {
|
|
70
|
-
return isVowel(char) && firstV < 0 ? i : firstV;
|
|
71
|
-
}, -1);
|
|
72
|
-
if (word[0] == word[0].toUpperCase()) {
|
|
73
|
-
word =
|
|
74
|
-
word.substring(firstVowel, firstVowel + 1).toUpperCase() +
|
|
75
|
-
word.substring(firstVowel + 1, word.length) +
|
|
76
|
-
word.substring(0, firstVowel).toLowerCase() +
|
|
77
|
-
"ay";
|
|
78
|
-
} else {
|
|
79
|
-
word = word.substring(firstVowel, word.length) + word.substring(0, firstVowel) + "ay";
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return specialKBefore + word + specialKAfter;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function translateSentence(string) {
|
|
87
|
-
let words = string.split(" ");
|
|
88
|
-
return words
|
|
89
|
-
.reduce((acc, word) => {
|
|
90
|
-
return acc + " " + pigLatinize(word);
|
|
91
|
-
}, "")
|
|
92
|
-
.substring(1); // rm leading space
|
|
93
|
-
}
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
const en = require("./en.json");
|
|
3
|
+
|
|
4
|
+
const pig = {};
|
|
5
|
+
Object.keys(en).map((k) => {
|
|
6
|
+
let string = en[k].defaultMessage;
|
|
7
|
+
const interpStart = string.indexOf("{");
|
|
8
|
+
const interpEnd = string.lastIndexOf("}") + 1;
|
|
9
|
+
|
|
10
|
+
// if there is an interpolation pattern
|
|
11
|
+
if (interpStart >= 0 && interpEnd > 2) {
|
|
12
|
+
let translInterp = translateSentence(string.slice(0, interpStart));
|
|
13
|
+
|
|
14
|
+
const interp = string.slice(interpStart, interpEnd);
|
|
15
|
+
// what's inside the braces shouldn't be translated
|
|
16
|
+
// unless it's in nested translated, and so on
|
|
17
|
+
// we can set flags to cut the string into pieces
|
|
18
|
+
// which should or should not be translated
|
|
19
|
+
const flags = [];
|
|
20
|
+
for (x = 0; x < interp.length; x++) {
|
|
21
|
+
if (interp[x] == "{") {
|
|
22
|
+
flags.push(x);
|
|
23
|
+
} else if (interp[x] == "}") {
|
|
24
|
+
flags.push(x);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
splits = flags.map((_, i) => {
|
|
29
|
+
if (i < flags.length) return interp.slice(flags[i], flags[i + 1]);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
splits.map((split, i) => {
|
|
33
|
+
translInterp += i % 2 ? translateSentence(split) : split; // only translate even ones (the odd ones are params)
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
translInterp += translateSentence(string.slice(interpEnd, string.length));
|
|
37
|
+
|
|
38
|
+
const dm = { defaultMessage: translInterp };
|
|
39
|
+
pig[k] = dm;
|
|
40
|
+
} else {
|
|
41
|
+
const dm = { defaultMessage: translateSentence(string) };
|
|
42
|
+
pig[k] = dm;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
data = JSON.stringify(pig, null, 2);
|
|
46
|
+
|
|
47
|
+
fs.writeFile("src/lang/pig.json", data, (err) => {
|
|
48
|
+
!!err && console.log(err);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
function pigLatinize(word) {
|
|
52
|
+
const isVowel = (char) => ["a", "e", "i", "o", "u"].includes(char.toLowerCase());
|
|
53
|
+
const isLetter = (char) => RegExp(/^\p{L}/, "u").test(char);
|
|
54
|
+
|
|
55
|
+
const firstLetter = Array.from(word).reduce((l, char, i) => (isLetter(char) && l < 0 ? i : l), -1);
|
|
56
|
+
|
|
57
|
+
const lastLetter = Array.from(word).reduce((l, char, i) => (isLetter(char) ? i : l), -1);
|
|
58
|
+
|
|
59
|
+
if (firstLetter == -1 && lastLetter == -1) return word; // only special chars, don't translate
|
|
60
|
+
|
|
61
|
+
const specialKBefore = word.slice(0, firstLetter) || "";
|
|
62
|
+
const specialKAfter = word.slice(lastLetter + 1, word.length + 1) || "";
|
|
63
|
+
word = word.slice(firstLetter, lastLetter + 1) || "";
|
|
64
|
+
|
|
65
|
+
if (word) {
|
|
66
|
+
if (isVowel(word[0])) {
|
|
67
|
+
word += "yay";
|
|
68
|
+
} else {
|
|
69
|
+
const firstVowel = Array.from(word).reduce((firstV, char, i) => {
|
|
70
|
+
return isVowel(char) && firstV < 0 ? i : firstV;
|
|
71
|
+
}, -1);
|
|
72
|
+
if (word[0] == word[0].toUpperCase()) {
|
|
73
|
+
word =
|
|
74
|
+
word.substring(firstVowel, firstVowel + 1).toUpperCase() +
|
|
75
|
+
word.substring(firstVowel + 1, word.length) +
|
|
76
|
+
word.substring(0, firstVowel).toLowerCase() +
|
|
77
|
+
"ay";
|
|
78
|
+
} else {
|
|
79
|
+
word = word.substring(firstVowel, word.length) + word.substring(0, firstVowel) + "ay";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return specialKBefore + word + specialKAfter;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function translateSentence(string) {
|
|
87
|
+
let words = string.split(" ");
|
|
88
|
+
return words
|
|
89
|
+
.reduce((acc, word) => {
|
|
90
|
+
return acc + " " + pigLatinize(word);
|
|
91
|
+
}, "")
|
|
92
|
+
.substring(1); // rm leading space
|
|
93
|
+
}
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import { h } from './index-d649a861.js';
|
|
2
|
+
import { c as checkForActiveElInShadow, i as intl, b as getPosition, f as findParentWithScrollbar, d as debounce } from './functions-b478ef24.js';
|
|
3
|
+
|
|
4
|
+
// Components wm-chart and wm-progress-indicator share a significant
|
|
5
|
+
// portion of their code. It has been extracted here
|
|
6
|
+
const colors = {
|
|
7
|
+
salmon: "#ff5f4e",
|
|
8
|
+
cyan: "#19a1a9",
|
|
9
|
+
forest: "#088000",
|
|
10
|
+
sleet: "#7f97ad",
|
|
11
|
+
midnight: "#2e1b46",
|
|
12
|
+
lavender: "#8b86ca",
|
|
13
|
+
};
|
|
14
|
+
const types = {
|
|
15
|
+
doughnut: {
|
|
16
|
+
size: 155,
|
|
17
|
+
colors: [colors.forest, "#bfbfbf"],
|
|
18
|
+
thickness: 0.73,
|
|
19
|
+
padding: 25,
|
|
20
|
+
isBar: false,
|
|
21
|
+
},
|
|
22
|
+
// deprecated hybrid chart type, should use Progress Indicator's "doughnut" instead
|
|
23
|
+
doughnut0: {
|
|
24
|
+
size: 155,
|
|
25
|
+
colors: [colors.forest, "#bfbfbf"],
|
|
26
|
+
thickness: 0.73,
|
|
27
|
+
padding: 25,
|
|
28
|
+
isBar: false,
|
|
29
|
+
},
|
|
30
|
+
doughnut1: {
|
|
31
|
+
size: 130,
|
|
32
|
+
colors: [colors.lavender, colors.midnight, "#d4d4d4"],
|
|
33
|
+
thickness: 0.5,
|
|
34
|
+
padding: 90,
|
|
35
|
+
isBar: false,
|
|
36
|
+
},
|
|
37
|
+
doughnut2: {
|
|
38
|
+
size: 130,
|
|
39
|
+
colors: [colors.cyan, colors.salmon, "#d4d4d4"],
|
|
40
|
+
thickness: 0.5,
|
|
41
|
+
padding: 90,
|
|
42
|
+
isBar: false,
|
|
43
|
+
},
|
|
44
|
+
doughnut3: {
|
|
45
|
+
size: 130,
|
|
46
|
+
colors: [colors.lavender, colors.midnight, "#919834", "#c177cf", "#c16e00", "#029af2", "#2a6993"],
|
|
47
|
+
thickness: 0.5,
|
|
48
|
+
padding: 90,
|
|
49
|
+
isBar: false,
|
|
50
|
+
},
|
|
51
|
+
bar: {
|
|
52
|
+
size: 350,
|
|
53
|
+
colors: [colors.forest, "#bfbfbf"],
|
|
54
|
+
padding: 0,
|
|
55
|
+
isBar: true,
|
|
56
|
+
},
|
|
57
|
+
// deprecated hybrid chart type, should use Progress Indicator's "bar" instead
|
|
58
|
+
bar1: {
|
|
59
|
+
size: 350,
|
|
60
|
+
colors: [colors.forest, "#bfbfbf"],
|
|
61
|
+
padding: 0,
|
|
62
|
+
isBar: true,
|
|
63
|
+
},
|
|
64
|
+
bar2: {
|
|
65
|
+
size: 400,
|
|
66
|
+
colors: ["#d4d4d4", colors.sleet, colors.cyan, colors.salmon],
|
|
67
|
+
padding: 0,
|
|
68
|
+
isBar: true,
|
|
69
|
+
},
|
|
70
|
+
bar3: {
|
|
71
|
+
size: 300,
|
|
72
|
+
colors: ["#0d696e", colors.cyan, "#8e4129", colors.salmon],
|
|
73
|
+
padding: 0,
|
|
74
|
+
isBar: true,
|
|
75
|
+
},
|
|
76
|
+
bar4: {
|
|
77
|
+
size: 400,
|
|
78
|
+
colors: ["#d4d4d4", colors.sleet, "#33a919"],
|
|
79
|
+
padding: 0,
|
|
80
|
+
isBar: true,
|
|
81
|
+
},
|
|
82
|
+
bar5: {
|
|
83
|
+
size: 400,
|
|
84
|
+
colors: [
|
|
85
|
+
"#d4d4d4",
|
|
86
|
+
colors.lavender,
|
|
87
|
+
colors.midnight,
|
|
88
|
+
"#919834",
|
|
89
|
+
"#c177cf",
|
|
90
|
+
"#c16e00",
|
|
91
|
+
"#029af2",
|
|
92
|
+
"#2a6993",
|
|
93
|
+
],
|
|
94
|
+
padding: 0,
|
|
95
|
+
isBar: true,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
function amountToPercent(val, total, asInt) {
|
|
99
|
+
return asInt ? Math.round((val * 100) / total) : Math.round((val * 10000) / total) / 100; // with 2 decimals
|
|
100
|
+
}
|
|
101
|
+
function amountToDegree(val, total) {
|
|
102
|
+
// In a circle of {total}, determine degrees of slice {val}
|
|
103
|
+
return (val * 360) / total;
|
|
104
|
+
}
|
|
105
|
+
function toFixed(number) {
|
|
106
|
+
return parseFloat((Math.floor(number * 100) / 100).toFixed(2));
|
|
107
|
+
}
|
|
108
|
+
function polarToCartesian(half, radius, startAngle, endAngle) {
|
|
109
|
+
var x = toFixed(half + half * radius * Math.cos((Math.PI * startAngle) / 180));
|
|
110
|
+
var y = toFixed(half + half * radius * Math.sin((Math.PI * startAngle) / 180));
|
|
111
|
+
if (endAngle !== undefined) {
|
|
112
|
+
// if a 2nd angle value was passed, return 2 pairs of coords
|
|
113
|
+
var x2 = toFixed(half + half * radius * Math.cos((Math.PI * endAngle) / 180));
|
|
114
|
+
var y2 = toFixed(half + half * radius * Math.sin((Math.PI * endAngle) / 180));
|
|
115
|
+
return { x1: x, y1: y, x2, y2 };
|
|
116
|
+
}
|
|
117
|
+
return { x, y };
|
|
118
|
+
}
|
|
119
|
+
function getArc(radius, largeArcFlag, x, y, chartSize) {
|
|
120
|
+
var z = toFixed((chartSize / 2) * radius);
|
|
121
|
+
return `A ${z}, ${z} 0 ${largeArcFlag} ${toFixed(x)}, ${toFixed(y)}`;
|
|
122
|
+
}
|
|
123
|
+
function handleSliceKeyDown(ev) {
|
|
124
|
+
if (this.popoverEl && this.popoverEl.open && ev.key === "Enter") {
|
|
125
|
+
const popoverBtn = this.popoverEl.querySelector("button");
|
|
126
|
+
popoverBtn && popoverBtn.click();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function handleSliceClick(ev, s) {
|
|
130
|
+
if (this.popoverEl && !this.isTabbing) {
|
|
131
|
+
s.coords = { x: ev.clientX, y: ev.clientY };
|
|
132
|
+
openPopover.call(this, s);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function handleSliceFocus(ev, s) {
|
|
136
|
+
if (this.popoverEl && this.isTabbing) {
|
|
137
|
+
s.coords = getPosition(ev.target);
|
|
138
|
+
openPopover.call(this, s);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function handleChartKeydown(ev) {
|
|
142
|
+
switch (ev.key) {
|
|
143
|
+
// arrow up / left
|
|
144
|
+
case "ArrowUp":
|
|
145
|
+
case "ArrowLeft":
|
|
146
|
+
ev.preventDefault();
|
|
147
|
+
this.isTabbing = true; // shd already be true. just in case user clicked on chart then pressed an arrow key
|
|
148
|
+
focusPrevious.call(this);
|
|
149
|
+
break;
|
|
150
|
+
// arrow right / down
|
|
151
|
+
case "ArrowRight":
|
|
152
|
+
case "ArrowDown":
|
|
153
|
+
ev.preventDefault();
|
|
154
|
+
this.isTabbing = true; // shd already be true. just in case user clicked on chart then pressed an arrow key
|
|
155
|
+
focusNext.call(this);
|
|
156
|
+
break;
|
|
157
|
+
// tab
|
|
158
|
+
case "Tab":
|
|
159
|
+
exitChart.call(this);
|
|
160
|
+
break;
|
|
161
|
+
case "Escape":
|
|
162
|
+
this.popoverEl.open = false;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function openPopover(s) {
|
|
167
|
+
if (!!this.popoverEl && !!s.title && !!s.text) {
|
|
168
|
+
this.popoverEl.popoverTitle = s.title;
|
|
169
|
+
this.popoverEl.popoverText = s.text;
|
|
170
|
+
this.popoverEl.buttonText = s.buttonText;
|
|
171
|
+
this.popoverEl.coords = s.coords;
|
|
172
|
+
this.popoverEl.sliceRef = s.sliceRef;
|
|
173
|
+
window.setTimeout(() => {
|
|
174
|
+
if (this.popoverEl) {
|
|
175
|
+
this.popoverEl.open = true;
|
|
176
|
+
}
|
|
177
|
+
}, 30);
|
|
178
|
+
const debouncedClosePopover = debounce(async () => {
|
|
179
|
+
this.popoverEl.open = false;
|
|
180
|
+
}, 10);
|
|
181
|
+
// set up event listeners for scrolling
|
|
182
|
+
// to close popover on page scroll
|
|
183
|
+
document.addEventListener("scroll", () => {
|
|
184
|
+
debouncedClosePopover();
|
|
185
|
+
});
|
|
186
|
+
// ... and on parent scroll
|
|
187
|
+
const scrollableParent = findParentWithScrollbar(this.el);
|
|
188
|
+
if (!!scrollableParent) {
|
|
189
|
+
scrollableParent.addEventListener("scroll", () => {
|
|
190
|
+
debouncedClosePopover();
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function focusNext() {
|
|
196
|
+
const activeEl = checkForActiveElInShadow(document.activeElement);
|
|
197
|
+
const index =
|
|
198
|
+
// if the active el is not in the array the first element gets focused
|
|
199
|
+
(this.sliceEls.indexOf(activeEl) + 1) % this.sliceEls.length;
|
|
200
|
+
focusSlice.call(this, index);
|
|
201
|
+
}
|
|
202
|
+
function focusPrevious() {
|
|
203
|
+
if (this.sliceEls) {
|
|
204
|
+
const activeEl = checkForActiveElInShadow(document.activeElement);
|
|
205
|
+
let index = this.sliceEls.indexOf(activeEl);
|
|
206
|
+
if (index === -1) {
|
|
207
|
+
// not in the array : focus the first slice
|
|
208
|
+
index = 0;
|
|
209
|
+
}
|
|
210
|
+
else if (index === 0) {
|
|
211
|
+
// first slice : focus the last slice
|
|
212
|
+
index = this.sliceEls.length - 1;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// anything else: focus previous
|
|
216
|
+
index -= 1;
|
|
217
|
+
}
|
|
218
|
+
focusSlice.call(this, index);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function focusSlice(index) {
|
|
222
|
+
if (this.sliceEls && this.el) {
|
|
223
|
+
if (this.popoverEl) {
|
|
224
|
+
this.popoverEl.open = false;
|
|
225
|
+
}
|
|
226
|
+
this.el.tabIndex = -1;
|
|
227
|
+
// @ts-ignore
|
|
228
|
+
this.el.focusable = false; // for Edge
|
|
229
|
+
this.sliceEls.map((p) => {
|
|
230
|
+
p.tabIndex = -1;
|
|
231
|
+
// @ts-ignore
|
|
232
|
+
p.focusable = false; // for Edge
|
|
233
|
+
});
|
|
234
|
+
this.sliceEls[index].tabIndex = 0;
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
this.sliceEls[index].focusable = true; // for Edge
|
|
237
|
+
this.sliceEls[index].focus();
|
|
238
|
+
window.setTimeout(() => {
|
|
239
|
+
if (this.popoverEl) {
|
|
240
|
+
this.popoverEl.open = true;
|
|
241
|
+
}
|
|
242
|
+
}, 10);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
function exitChart() {
|
|
246
|
+
this.sliceEls &&
|
|
247
|
+
this.sliceEls.map((p) => {
|
|
248
|
+
p.tabIndex = -1;
|
|
249
|
+
// @ts-ignore
|
|
250
|
+
p.focusable = false; // for Edge
|
|
251
|
+
});
|
|
252
|
+
// delay so that we can tab out of component before chart becomes focusable again
|
|
253
|
+
// and in case user was still pressing an arrow key when they pressed tab
|
|
254
|
+
window.setTimeout(() => {
|
|
255
|
+
if (this.el) {
|
|
256
|
+
this.el.tabIndex = 0;
|
|
257
|
+
// @ts-ignore
|
|
258
|
+
this.el.focusable = true; // for Edge
|
|
259
|
+
if (this.popoverEl) {
|
|
260
|
+
this.popoverEl.open = false;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}, 100);
|
|
264
|
+
}
|
|
265
|
+
async function getData(chartType) {
|
|
266
|
+
this.slicesData = [];
|
|
267
|
+
let acc = 0;
|
|
268
|
+
const children = Array.from(this.el.children);
|
|
269
|
+
this.total = children.reduce((total, slice) => (total += parseInt(slice.getAttribute("amount") || "0")), 0);
|
|
270
|
+
children.forEach((c, i) => {
|
|
271
|
+
const amount = parseInt(c.getAttribute("amount") || "0");
|
|
272
|
+
const perc = amountToPercent(amount, this.total, true);
|
|
273
|
+
// determine whether the slice is in a cluster of small values
|
|
274
|
+
// to avoid percentage text overlap for small values
|
|
275
|
+
const prev = children[i === 0 ? children.length - 1 : i - 1];
|
|
276
|
+
const prevPerc = amountToPercent(parseInt(prev.getAttribute("amount") || "0"), this.total, true);
|
|
277
|
+
const next = children[i === children.length - 1 ? 0 : i + 1];
|
|
278
|
+
const nextPerc = amountToPercent(parseInt(next.getAttribute("amount") || "0"), this.total, true);
|
|
279
|
+
const isSmall = perc < 4;
|
|
280
|
+
const prevIsSmall = prevPerc < 5;
|
|
281
|
+
const nextIsSmall = nextPerc < 5;
|
|
282
|
+
let inSmallCluster = isSmall && (prevIsSmall || nextIsSmall);
|
|
283
|
+
// because <1% slice percentage text has an additional character
|
|
284
|
+
// the inSmallCluster threshold needs to be widened for that slice only
|
|
285
|
+
const lessThanOnePerc = perc === 0 && amount > 0;
|
|
286
|
+
if (lessThanOnePerc && (nextPerc < 8 || prevPerc < 8)) {
|
|
287
|
+
inSmallCluster = true;
|
|
288
|
+
}
|
|
289
|
+
// for bar5, first color should be skipped unless notStartedColor is set to true
|
|
290
|
+
const ind = chartType === "bar5" ? (this.notStartedColor ? i : i + 1) : i;
|
|
291
|
+
const color = types[chartType].colors[ind];
|
|
292
|
+
const sliceData = {
|
|
293
|
+
amount: amount,
|
|
294
|
+
perc: perc,
|
|
295
|
+
legend: c.getAttribute("legend"),
|
|
296
|
+
color: color || "#d4d4d4",
|
|
297
|
+
offset: acc,
|
|
298
|
+
id: `${this.uid}-${i + 1}`,
|
|
299
|
+
title: c.getAttribute("popover-title"),
|
|
300
|
+
text: c.getAttribute("popover-text"),
|
|
301
|
+
buttonText: c.getAttribute("popover-button-text"),
|
|
302
|
+
sliceRef: c,
|
|
303
|
+
inSmallCluster: inSmallCluster,
|
|
304
|
+
};
|
|
305
|
+
acc += amount;
|
|
306
|
+
this.slicesData.push(sliceData);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
function getPathData(amount, offset) {
|
|
310
|
+
var startAngle = amountToDegree(offset, this.total) - 90; // start at noon, not at 3 o'clock
|
|
311
|
+
var activeAngle = (amount / this.total) * 360;
|
|
312
|
+
var endAngle = startAngle + activeAngle;
|
|
313
|
+
var largeArcFlagOuter = activeAngle > 180 ? "1 1" : "0 1";
|
|
314
|
+
var largeArcFlagInner = activeAngle > 180 ? "1 0" : "0 0";
|
|
315
|
+
var half = this.chartData.size / 2;
|
|
316
|
+
var innerRadius = this.chartData.thickness;
|
|
317
|
+
var outerRadius = 1;
|
|
318
|
+
if (activeAngle === 360) {
|
|
319
|
+
// fix to avoid bad svg shape when the path goes all around (100%)
|
|
320
|
+
endAngle -= 0.01;
|
|
321
|
+
}
|
|
322
|
+
var outerCoords = polarToCartesian(half, outerRadius, startAngle + 1.5, // Addition for slice separator
|
|
323
|
+
endAngle);
|
|
324
|
+
var innerCoords = polarToCartesian(half, innerRadius,
|
|
325
|
+
// Calculation below "just works", revisit
|
|
326
|
+
startAngle + 1.5 + (1 - innerRadius) * 3, // Addition for slice separator
|
|
327
|
+
endAngle);
|
|
328
|
+
const moveTo = `M ${outerCoords.x1}, ${outerCoords.y1} `;
|
|
329
|
+
const arc1 = getArc(outerRadius, largeArcFlagOuter, outerCoords.x2, outerCoords.y2, this.chartData.size);
|
|
330
|
+
const line = ` L ${innerCoords.x2}, ${innerCoords.y2} `;
|
|
331
|
+
const arc2 = getArc(innerRadius, largeArcFlagInner, innerCoords.x1, innerCoords.y1, this.chartData.size);
|
|
332
|
+
return moveTo + arc1 + line + arc2 + " z";
|
|
333
|
+
}
|
|
334
|
+
function renderFilter() {
|
|
335
|
+
return (h("defs", null,
|
|
336
|
+
h("filter", { id: "wmHoverDropShadow" },
|
|
337
|
+
h("feGaussianBlur", { stdDeviation: "3" }),
|
|
338
|
+
h("feOffset", { result: "offsetblur" }),
|
|
339
|
+
h("feFlood", { "flood-color": "#333" }),
|
|
340
|
+
h("feComposite", { operator: "in", in2: "offsetblur" }),
|
|
341
|
+
h("feMerge", null,
|
|
342
|
+
h("feMergeNode", null),
|
|
343
|
+
h("feMergeNode", { in: "SourceGraphic" })))));
|
|
344
|
+
}
|
|
345
|
+
function renderDoughnut(chartType) {
|
|
346
|
+
const outerSize = this.chartData.size + this.chartData.padding;
|
|
347
|
+
const isHybridDoughnut = chartType === "doughnut0" || chartType === "doughnut";
|
|
348
|
+
return (h("div", { class: "chart-wrapper doughnut-wrapper" },
|
|
349
|
+
h("svg", { width: outerSize + "px", height: outerSize + "px", id: `graphic-${this.uid}`, class: "doughnut-svg" },
|
|
350
|
+
renderFilter(),
|
|
351
|
+
this.slicesData.map((s) => renderPath.call(this, s)),
|
|
352
|
+
isHybridDoughnut ? (h("text", { class: "value", x: "50%", y: "50%", "font-size": "1.5rem", "font-weight": "500", "text-anchor": "middle", "dominant-baseline": "middle" }, amountToPercent(this.slicesData[0].amount, this.total, true) + "%")) : (h("g", { transform: `translate(${this.chartData.padding / 2}, ${this.chartData.padding / 2})`, "text-anchor": "middle", "dominant-baseline": "middle" }, this.slicesData.map((s) => (s.amount > 0 ? renderDoughnutText.call(this, s) : "")))))));
|
|
353
|
+
}
|
|
354
|
+
function renderPath(s) {
|
|
355
|
+
return (h("g", { transform: `translate(${this.chartData.padding / 2}, ${this.chartData.padding / 2})` },
|
|
356
|
+
h("path", { id: s.id, class: "doughnut-segment", fill: s.amount ? s.color : "transparent", d: getPathData.call(this, s.amount, s.offset), onClick: (ev) => handleSliceClick.call(this, ev, s), onFocus: (ev) => handleSliceFocus.call(this, ev, s), onKeyDown: (ev) => handleSliceKeyDown.call(this, ev), role: "img", "aria-label": s.legend })));
|
|
357
|
+
}
|
|
358
|
+
function renderDoughnutText(s) {
|
|
359
|
+
if (!s.inSmallCluster) {
|
|
360
|
+
const arcMiddle = amountToDegree(s.offset + s.amount / 2, this.total);
|
|
361
|
+
let { x, y } = polarToCartesian(this.chartData.size / 2, 1.4, arcMiddle - 90);
|
|
362
|
+
return (h("text", { class: "value", x: x + "px", y: y + "px" }, `${s.perc > 0 ? s.perc : "<1"}%`));
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function renderBar(chartType) {
|
|
366
|
+
const isHybridBar = chartType === "bar1" || chartType === "bar";
|
|
367
|
+
return (h("div", { class: "chart-wrapper bar-wrapper" },
|
|
368
|
+
isHybridBar ? (h("div", { class: "single-perc" }, amountToPercent(this.slicesData[0].amount, this.total, true) + "%")) : (""),
|
|
369
|
+
this.chartType === "bar3" && this.drawAxis(),
|
|
370
|
+
h("div", { class: {
|
|
371
|
+
"inner-bar-wrapper": true,
|
|
372
|
+
"show-values": this.tempValueFormat === "percentage" || this.tempValueFormat === "amount",
|
|
373
|
+
} },
|
|
374
|
+
!isHybridBar ? (h("div", { class: "values" }, this.slicesData.map((s, idx) => (s.perc > 0 ? this.renderBarText(s, idx) : "")))) : (""),
|
|
375
|
+
h("div", { class: "bar-segments-wrapper" }, this.slicesData.map((s, idx) => renderBarSegment.call(this, s, idx))),
|
|
376
|
+
isHybridBar ? renderCompletionMessage.call(this) : "")));
|
|
377
|
+
}
|
|
378
|
+
function renderBarSegment(s, idx) {
|
|
379
|
+
const isLastSlice = idx !== this.slicesData.length - 1;
|
|
380
|
+
const width = `calc(${amountToPercent(s.amount, this.total, false)}%${isLastSlice ? " - 2px" : ""})`;
|
|
381
|
+
return (h("div", { class: `bar-segment ${amountToPercent(s.amount, this.total, false) === 0 ? "zero" : ""}`, style: {
|
|
382
|
+
backgroundColor: s.color,
|
|
383
|
+
width: width,
|
|
384
|
+
}, onClick: (ev) => handleSliceClick.call(this, ev, s), onFocus: (ev) => handleSliceFocus.call(this, ev, s), onKeyDown: (ev) => handleSliceKeyDown.call(this, ev) },
|
|
385
|
+
h("text", { class: "sr-only" }, s.legend)));
|
|
386
|
+
}
|
|
387
|
+
function renderLegend() {
|
|
388
|
+
// legend is hidden for bar1 type regardless of showLegend value
|
|
389
|
+
if (this.showLegend) {
|
|
390
|
+
const hasCluster = this.slicesData.reduce((hasCluster, cur) => (hasCluster = cur.inSmallCluster ? true : hasCluster), false);
|
|
391
|
+
return (h("div", { class: "legend-wrapper" },
|
|
392
|
+
h("div", { class: `legend ${this.mode === "bar" ? "--top" : "--bottom"}`, "aria-hidden": "true" }, this.total > 0
|
|
393
|
+
? this.slicesData.map((s) => {
|
|
394
|
+
// when both legend and amount are omitted, the legend is not shown for that particular option (it's been deactivated by the user)
|
|
395
|
+
if (!!s.amount || !!s.legend) {
|
|
396
|
+
return (h("div", { class: "legend-item" },
|
|
397
|
+
h("div", { class: "legend-color", style: { "background-color": s.color } }),
|
|
398
|
+
h("div", { class: "legend-text" }, s.legend)));
|
|
399
|
+
}
|
|
400
|
+
})
|
|
401
|
+
: ""),
|
|
402
|
+
!this.chartData.isBar && hasCluster ? (h("div", { class: "cluster-warning" },
|
|
403
|
+
intl.formatMessage({
|
|
404
|
+
id: "chart.hiddenPercentages",
|
|
405
|
+
defaultMessage: "Percentages smaller than 5% are not shown when too close to each other.",
|
|
406
|
+
}),
|
|
407
|
+
h("br", null),
|
|
408
|
+
intl.formatMessage({
|
|
409
|
+
id: "chart.clickToSeeDetails",
|
|
410
|
+
defaultMessage: "Click or use arrow keys to see details.",
|
|
411
|
+
}))) : ("")));
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
function renderCompletionMessage() {
|
|
415
|
+
if (this.completionMessage) {
|
|
416
|
+
return h("div", { class: "completion-message" }, this.completionMessage);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
export { renderBar as a, renderDoughnut as b, renderCompletionMessage as c, amountToPercent as d, getData as g, handleChartKeydown as h, renderLegend as r, types as t };
|