@watermarkinsights/ripple 3.14.1 → 3.15.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.
Files changed (263) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-0ea0888f.js → chartFunctions-08494c24.js} +419 -419
  3. package/dist/cjs/{functions-8d3ceccd.js → functions-e1b590e0.js} +528 -446
  4. package/dist/cjs/{global-12a09ffa.js → global-0a41410c.js} +62 -62
  5. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
  6. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +86 -86
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
  12. package/dist/cjs/ripple.cjs.js +2 -2
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +329 -335
  14. package/dist/cjs/wm-button.cjs.entry.js +248 -241
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +13 -13
  16. package/dist/cjs/wm-chart.cjs.entry.js +110 -110
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +265 -265
  18. package/dist/cjs/wm-input.cjs.entry.js +134 -134
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +36 -36
  21. package/dist/cjs/wm-modal.cjs.entry.js +163 -163
  22. package/dist/cjs/wm-navigation_3.cjs.entry.js +227 -227
  23. package/dist/cjs/wm-navigator.cjs.entry.js +268 -268
  24. package/dist/cjs/wm-network-uploader.cjs.entry.js +455 -454
  25. package/dist/cjs/wm-option_2.cjs.entry.js +720 -720
  26. package/dist/cjs/wm-pagination.cjs.entry.js +167 -167
  27. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +129 -129
  28. package/dist/cjs/wm-search.cjs.entry.js +232 -232
  29. package/dist/cjs/wm-snackbar.cjs.entry.js +170 -170
  30. package/dist/cjs/wm-tab-item_3.cjs.entry.js +296 -296
  31. package/dist/cjs/wm-tag-input.cjs.entry.js +579 -579
  32. package/dist/cjs/wm-timepicker.cjs.entry.js +383 -383
  33. package/dist/cjs/wm-toggletip.cjs.entry.js +124 -124
  34. package/dist/cjs/wm-uploader.cjs.entry.js +599 -629
  35. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  36. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +258 -258
  37. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +115 -115
  38. package/dist/collection/components/charts/wm-chart/wm-chart.js +328 -328
  39. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +195 -195
  40. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +88 -88
  41. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +111 -111
  42. package/dist/collection/components/wm-action-menu/wm-action-menu.js +442 -448
  43. package/dist/collection/components/wm-button/wm-button.js +545 -504
  44. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1024 -1024
  45. package/dist/collection/components/wm-datepicker/wm-datepicker.js +471 -471
  46. package/dist/collection/components/wm-input/wm-input.js +423 -423
  47. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  48. package/dist/collection/components/wm-modal/wm-modal-footer.js +136 -136
  49. package/dist/collection/components/wm-modal/wm-modal-header.js +87 -87
  50. package/dist/collection/components/wm-modal/wm-modal.js +461 -461
  51. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +162 -162
  52. package/dist/collection/components/wm-navigation/wm-navigation-item.js +121 -121
  53. package/dist/collection/components/wm-navigation/wm-navigation.js +218 -218
  54. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  55. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  56. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  57. package/dist/collection/components/wm-option/wm-option.js +428 -428
  58. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  59. package/dist/collection/components/wm-search/wm-search.js +480 -480
  60. package/dist/collection/components/wm-select/wm-select.js +1001 -1001
  61. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  62. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +216 -216
  63. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +330 -330
  64. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  65. package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -810
  66. package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -583
  67. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  68. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +788 -787
  69. package/dist/collection/components/wm-uploader/wm-uploader.js +1043 -1072
  70. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  71. package/dist/collection/dev/scripts.js +20 -20
  72. package/dist/collection/global/__mocks__/functions.js +6 -6
  73. package/dist/collection/global/chartFunctions.js +421 -421
  74. package/dist/collection/global/functions.js +441 -441
  75. package/dist/collection/global/global.js +69 -69
  76. package/dist/collection/global/interfaces.js +49 -49
  77. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  78. package/dist/collection/global/services/http-service.js +50 -50
  79. package/dist/collection/lang/lang.js +5 -5
  80. package/dist/collection/lang/missing.js +43 -43
  81. package/dist/collection/lang/piglatin.js +93 -93
  82. package/dist/esm/{chartFunctions-6f90586d.js → chartFunctions-a310b9d0.js} +419 -419
  83. package/dist/esm/{functions-11c0c4e2.js → functions-b4b62a23.js} +528 -446
  84. package/dist/esm/{global-5abca73e.js → global-e80a0ec8.js} +62 -62
  85. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  86. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  87. package/dist/esm/loader.js +2 -2
  88. package/dist/esm/polyfills/core-js.js +0 -0
  89. package/dist/esm/polyfills/dom.js +0 -0
  90. package/dist/esm/polyfills/es5-html-element.js +0 -0
  91. package/dist/esm/polyfills/index.js +0 -0
  92. package/dist/esm/polyfills/system.js +0 -0
  93. package/dist/esm/priv-chart-popover.entry.js +86 -86
  94. package/dist/esm/priv-datepicker.entry.js +657 -657
  95. package/dist/esm/priv-navigator-button.entry.js +18 -18
  96. package/dist/esm/priv-navigator-item.entry.js +23 -23
  97. package/dist/esm/ripple.js +2 -2
  98. package/dist/esm/wm-action-menu_2.entry.js +329 -335
  99. package/dist/esm/wm-button.entry.js +248 -241
  100. package/dist/esm/wm-chart-slice.entry.js +13 -13
  101. package/dist/esm/wm-chart.entry.js +110 -110
  102. package/dist/esm/wm-datepicker.entry.js +265 -265
  103. package/dist/esm/wm-input.entry.js +134 -134
  104. package/dist/esm/wm-modal-footer.entry.js +33 -33
  105. package/dist/esm/wm-modal-header.entry.js +36 -36
  106. package/dist/esm/wm-modal.entry.js +163 -163
  107. package/dist/esm/wm-navigation_3.entry.js +227 -227
  108. package/dist/esm/wm-navigator.entry.js +268 -268
  109. package/dist/esm/wm-network-uploader.entry.js +455 -454
  110. package/dist/esm/wm-option_2.entry.js +720 -720
  111. package/dist/esm/wm-pagination.entry.js +167 -167
  112. package/dist/esm/wm-progress-indicator_3.entry.js +129 -129
  113. package/dist/esm/wm-search.entry.js +232 -232
  114. package/dist/esm/wm-snackbar.entry.js +170 -170
  115. package/dist/esm/wm-tab-item_3.entry.js +296 -296
  116. package/dist/esm/wm-tag-input.entry.js +579 -579
  117. package/dist/esm/wm-timepicker.entry.js +383 -383
  118. package/dist/esm/wm-toggletip.entry.js +124 -124
  119. package/dist/esm/wm-uploader.entry.js +599 -629
  120. package/dist/esm/wm-wrapper.entry.js +12 -12
  121. package/dist/esm-es5/{chartFunctions-6f90586d.js → chartFunctions-a310b9d0.js} +1 -1
  122. package/dist/esm-es5/functions-b4b62a23.js +1 -0
  123. package/dist/esm-es5/global-e80a0ec8.js +1 -0
  124. package/dist/esm-es5/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +0 -0
  125. package/dist/esm-es5/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +0 -0
  126. package/dist/esm-es5/loader.js +1 -1
  127. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  128. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  129. package/dist/esm-es5/ripple.js +1 -1
  130. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  131. package/dist/esm-es5/wm-button.entry.js +1 -1
  132. package/dist/esm-es5/wm-chart.entry.js +1 -1
  133. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  134. package/dist/esm-es5/wm-input.entry.js +1 -1
  135. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  136. package/dist/esm-es5/wm-modal.entry.js +1 -1
  137. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  138. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  139. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  140. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  141. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  142. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  143. package/dist/esm-es5/wm-search.entry.js +1 -1
  144. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  145. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  146. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  147. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  148. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  149. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  150. package/dist/ripple/{p-07ebdcd4.system.entry.js → p-0f08a806.system.entry.js} +1 -1
  151. package/dist/ripple/{p-b793bc6f.system.entry.js → p-1ba2134b.system.entry.js} +1 -1
  152. package/dist/ripple/{p-626d5017.entry.js → p-1c75615f.entry.js} +1 -1
  153. package/dist/ripple/{p-42dbd978.entry.js → p-1cadcfc1.entry.js} +1 -1
  154. package/dist/ripple/{p-b2a9b5d6.system.entry.js → p-2531b343.system.entry.js} +1 -1
  155. package/dist/ripple/p-32da7cdf.entry.js +1 -0
  156. package/dist/ripple/p-375a850f.system.js +1 -0
  157. package/dist/ripple/p-3a71d9a3.entry.js +1 -0
  158. package/dist/ripple/{p-0e22a3a4.entry.js → p-428b8b24.entry.js} +1 -1
  159. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  160. package/dist/ripple/{p-80a00759.entry.js → p-477688c8.entry.js} +1 -1
  161. package/dist/ripple/{p-d927de70.system.entry.js → p-4be49461.system.entry.js} +1 -1
  162. package/dist/ripple/{p-7cb0035a.system.entry.js → p-51b60241.system.entry.js} +1 -1
  163. package/dist/ripple/p-5754e2b8.system.js +1 -0
  164. package/dist/ripple/{p-b5b7c71f.system.js → p-591fae61.system.js} +1 -1
  165. package/dist/ripple/p-5f589556.entry.js +1 -0
  166. package/dist/ripple/{p-b4837126.system.entry.js → p-617b738b.system.entry.js} +1 -1
  167. package/dist/ripple/{p-06012eb7.system.entry.js → p-61e2a39a.system.entry.js} +1 -1
  168. package/dist/ripple/{p-5018f8ae.entry.js → p-65d5f494.entry.js} +1 -1
  169. package/dist/ripple/{p-4f3f7b2b.entry.js → p-6ac734b7.entry.js} +1 -1
  170. package/dist/ripple/p-6d7a6954.js +1 -0
  171. package/dist/ripple/{p-97683ddc.entry.js → p-6ddfada6.entry.js} +1 -1
  172. package/dist/ripple/{p-57a718f0.system.entry.js → p-719864a5.system.entry.js} +1 -1
  173. package/dist/ripple/{p-caef11cc.entry.js → p-73a66a6c.entry.js} +1 -1
  174. package/dist/ripple/{p-c656fcf1.entry.js → p-75346877.entry.js} +1 -1
  175. package/dist/ripple/{p-dfa80ed1.entry.js → p-7833008a.entry.js} +1 -1
  176. package/dist/ripple/{p-08fc668c.system.entry.js → p-79542ae3.system.entry.js} +1 -1
  177. package/dist/ripple/{p-4073ac6a.entry.js → p-79b8e996.entry.js} +1 -1
  178. package/dist/ripple/{p-8b54c589.system.entry.js → p-7a07096b.system.entry.js} +1 -1
  179. package/dist/ripple/{p-c4c21c82.system.entry.js → p-93321f18.system.entry.js} +1 -1
  180. package/dist/ripple/p-96b47a13.js +1 -0
  181. package/dist/ripple/{p-c49ef079.system.entry.js → p-981788dd.system.entry.js} +1 -1
  182. package/dist/ripple/p-990db03b.system.entry.js +1 -0
  183. package/dist/ripple/p-99791f7a.system.js +1 -0
  184. package/dist/ripple/{p-e012273a.entry.js → p-9ad7db55.entry.js} +1 -1
  185. package/dist/ripple/{p-910b6dd5.system.entry.js → p-9caf189d.system.entry.js} +1 -1
  186. package/dist/ripple/{p-313b6073.system.js → p-9d02957d.system.js} +0 -0
  187. package/dist/ripple/{p-ffc34819.system.entry.js → p-9ef524df.system.entry.js} +1 -1
  188. package/dist/ripple/{p-84d0d2ff.system.entry.js → p-9fd29197.system.entry.js} +1 -1
  189. package/dist/ripple/{p-f0d3ceb1.system.entry.js → p-a2f8608f.system.entry.js} +1 -1
  190. package/dist/ripple/{p-dc7e5609.system.entry.js → p-aa35c9dd.system.entry.js} +1 -1
  191. package/dist/ripple/{p-6ffdab0d.system.entry.js → p-ab7ce269.system.entry.js} +1 -1
  192. package/dist/ripple/{p-410687ea.entry.js → p-b5a6aebc.entry.js} +1 -1
  193. package/dist/ripple/{p-4650a83c.system.entry.js → p-b6c197c7.system.entry.js} +1 -1
  194. package/dist/ripple/{p-9c60325b.entry.js → p-c5a3766f.entry.js} +1 -1
  195. package/dist/ripple/{p-2af0b657.system.entry.js → p-c95317b4.system.entry.js} +1 -1
  196. package/dist/ripple/p-ce696630.entry.js +1 -0
  197. package/dist/ripple/{p-17438cd5.entry.js → p-d3326191.entry.js} +1 -1
  198. package/dist/ripple/{p-fe4c1194.system.entry.js → p-e47b10b1.system.entry.js} +1 -1
  199. package/dist/ripple/{p-490dafa4.js → p-eb308bc7.js} +1 -1
  200. package/dist/ripple/{p-4afa52d4.entry.js → p-f5cec3d1.entry.js} +1 -1
  201. package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +0 -0
  202. package/dist/ripple/{p-8a2cabf2.entry.js → p-f7c2b508.entry.js} +1 -1
  203. package/dist/ripple/{p-cb357a84.entry.js → p-fcb81a4e.entry.js} +1 -1
  204. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
  205. package/dist/ripple/ripple.esm.js +1 -1
  206. package/dist/ripple/ripple.js +1 -1
  207. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
  208. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  209. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +36 -36
  210. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +27 -27
  211. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -17
  212. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  213. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +47 -47
  214. package/dist/types/components/wm-button/wm-button.d.ts +49 -43
  215. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  216. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  217. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  218. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  219. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
  220. package/dist/types/components/wm-modal/wm-modal-header.d.ts +11 -11
  221. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  222. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
  223. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  224. package/dist/types/components/wm-navigation/wm-navigation.d.ts +28 -28
  225. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  226. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  227. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  228. package/dist/types/components/wm-option/wm-option.d.ts +35 -35
  229. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  230. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  231. package/dist/types/components/wm-select/wm-select.d.ts +94 -94
  232. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  233. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  234. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  235. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  236. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -92
  237. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
  238. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  239. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  240. package/dist/types/components/wm-uploader/wm-uploader.d.ts +121 -118
  241. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  242. package/dist/types/components.d.ts +28 -24
  243. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  244. package/dist/types/global/chartFunctions.d.ts +29 -29
  245. package/dist/types/global/functions.d.ts +42 -42
  246. package/dist/types/global/global.d.ts +1 -1
  247. package/dist/types/global/interfaces.d.ts +44 -44
  248. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  249. package/dist/types/global/services/http-service.d.ts +4 -4
  250. package/dist/types/lang/lang.d.ts +5 -5
  251. package/package.json +47 -47
  252. package/dist/esm-es5/functions-11c0c4e2.js +0 -1
  253. package/dist/esm-es5/global-5abca73e.js +0 -1
  254. package/dist/ripple/p-37b0a23c.system.js +0 -1
  255. package/dist/ripple/p-3e875e87.system.entry.js +0 -1
  256. package/dist/ripple/p-42bf2cd4.system.js +0 -1
  257. package/dist/ripple/p-70d0e993.js +0 -1
  258. package/dist/ripple/p-80b62707.entry.js +0 -1
  259. package/dist/ripple/p-d2a11410.entry.js +0 -1
  260. package/dist/ripple/p-db899686.system.js +0 -1
  261. package/dist/ripple/p-e2d5f8bd.js +0 -1
  262. package/dist/ripple/p-e4cb8aad.entry.js +0 -1
  263. package/dist/ripple/p-fa632547.entry.js +0 -1
@@ -1,328 +1,328 @@
1
- import { Component, Element, h, Host, Prop, State, Listen } from "@stencil/core";
2
- import { forceUpdate } from "@stencil/core";
3
- import { debounce, generateId, intl } from "../../../global/functions";
4
- import { amountToPercent, exitChart, getData, handleChartKeydown, renderBar, renderCompletionMessage, renderDoughnut, renderLegend, types, } from "../../../global/chartFunctions";
5
- export class Chart {
6
- constructor() {
7
- this.chartType = "doughnut1";
8
- this.showLegend = true;
9
- this.notStartedColor = false;
10
- // left labels are a temporary solution for the lack of a stacked bar chart and is undocumented
11
- // it only works with bar4 and should be used without a legend
12
- this.labelPosition = "top";
13
- this.isTabbing = false;
14
- this.userIsNavigating = false;
15
- this.uid = generateId();
16
- this.slicesData = [];
17
- this.chartLabelMessage = intl.formatMessage({
18
- id: "chart.interactiveChart",
19
- defaultMessage: "Interactive chart. Use arrow keys to browse elements, press Tab to exit.",
20
- });
21
- /* LIFECYCLE METHODS + EVENTS FROM THE CHILDREN */
22
- this.debouncedResize = debounce(async () => {
23
- await getData.call(this, this.currentChartType);
24
- forceUpdate(this.el);
25
- }, 10);
26
- this.debouncedSliceUpdate = debounce(async () => {
27
- await getData.call(this, this.currentChartType);
28
- forceUpdate(this.el);
29
- }, 100);
30
- }
31
- get tempValueFormat() {
32
- // use of this getter should be replaced with dateFormat when showValues is fully phased out
33
- return this.valueFormat || this.showValues || "none";
34
- }
35
- get hybridType() {
36
- return window.innerWidth > 1340 ? "doughnut0" : "bar1";
37
- }
38
- get popoverEl() {
39
- return this.el.shadowRoot.querySelector("priv-chart-popover");
40
- }
41
- get sliceEls() {
42
- return Array.from(this.el.shadowRoot.querySelectorAll(".segment"));
43
- }
44
- get currentChartType() {
45
- return this.chartType === "hybrid" ? this.hybridType : this.chartType;
46
- }
47
- get chartData() {
48
- return types[this.currentChartType];
49
- }
50
- get ariaLabelText() {
51
- let text = `${this.label}, ${this.chartLabelMessage}`;
52
- if (this.subinfo) {
53
- text += ` ${this.subinfo}`;
54
- }
55
- return text;
56
- }
57
- toggleTabbingOn() {
58
- this.isTabbing = true;
59
- }
60
- toggleTabbingOff() {
61
- this.isTabbing = false;
62
- }
63
- handleKeydown(ev) {
64
- handleChartKeydown.call(this, ev);
65
- }
66
- handleResize() {
67
- if (this.chartType === "hybrid") {
68
- this.debouncedResize();
69
- }
70
- }
71
- async componentWillLoad() {
72
- if (!this.label) {
73
- throw new Error("For accessibility purposes, you must provide a label for the chart. See https://components.watermarkinsights.com/chart for more information.");
74
- }
75
- if (this.showValues) {
76
- console.warn("wm-chart: show-values has been deprecated as of v3.1.0. Please use value-format instead.");
77
- }
78
- await getData.call(this, this.currentChartType);
79
- }
80
- handleSliceUpdate() {
81
- this.debouncedSliceUpdate();
82
- }
83
- /* RENDERING */
84
- renderBarText(s, idx) {
85
- let val;
86
- if (this.tempValueFormat === "percentage") {
87
- val = s.perc + "%";
88
- }
89
- else if (this.tempValueFormat === "amount") {
90
- val = s.amount;
91
- }
92
- else {
93
- return;
94
- }
95
- return (h("span", { class: "value", style: {
96
- width: `calc(${amountToPercent(s.amount, this.total, false)}%
97
- ${idx !== this.slicesData.length - 1 ? " - 2px" : ""}`,
98
- } }, val));
99
- }
100
- drawAxis() {
101
- if (this.currentChartType === "bar3") {
102
- return (h("svg", { class: "axis" },
103
- h("line", { x1: "0", x2: "100%", y1: "0", y2: "0" }),
104
- h("line", { x1: "0", x2: "0", y1: "0", y2: "-85px" }),
105
- h("line", { class: "tick", x1: "0.5", x2: "0.5", y1: "0", y2: "6" }),
106
- h("text", { x: "0.5", y: "-6" }, "0%"),
107
- h("line", { class: "tick", x1: "100%", x2: "100%", y1: "0", y2: "6" }),
108
- h("text", { x: "100%", y: "-6" }, "100%")));
109
- }
110
- }
111
- render() {
112
- return (h(Host, { role: "application", "aria-label": this.ariaLabelText, tabindex: "0", onBlur: () => exitChart.call(this) },
113
- h("div", { class: `component-wrapper ${this.currentChartType} ${this.isTabbing && !this.userIsNavigating ? "user-is-tabbing" : ""} ${this.labelPosition === "left" && this.chartType === "bar4" ? "left-label" : ""}` },
114
- h("label", { class: "label", id: `label-${this.uid}`, htmlFor: `graphic-${this.uid}` },
115
- h("span", { class: "label-text" }, this.label),
116
- this.subinfo ? h("span", { class: "subinfo" }, this.subinfo) : ""),
117
- this.chartData.isBar ? renderLegend.call(this) : "",
118
- this.total > 0 && this.chartData.isBar
119
- ? renderBar.call(this, this.currentChartType)
120
- : renderDoughnut.call(this, this.currentChartType),
121
- !this.chartData.isBar ? renderLegend.call(this) : "",
122
- h("priv-chart-popover", { class: this.isTabbing ? "user-is-tabbing" : "" }),
123
- this.currentChartType === "doughnut0" ? renderCompletionMessage.call(this) : "")));
124
- }
125
- static get is() { return "wm-chart"; }
126
- static get encapsulation() { return "shadow"; }
127
- static get originalStyleUrls() { return {
128
- "$": ["wm-chart.scss"]
129
- }; }
130
- static get styleUrls() { return {
131
- "$": ["wm-chart.css"]
132
- }; }
133
- static get properties() { return {
134
- "chartType": {
135
- "type": "string",
136
- "mutable": false,
137
- "complexType": {
138
- "original": "\"doughnut1\" | \"doughnut2\" | \"doughnut3\" | \"hybrid\" | \"bar1\" | \"bar2\" | \"bar3\" | \"bar4\" | \"bar5\"",
139
- "resolved": "\"bar1\" | \"bar2\" | \"bar3\" | \"bar4\" | \"bar5\" | \"doughnut1\" | \"doughnut2\" | \"doughnut3\" | \"hybrid\"",
140
- "references": {}
141
- },
142
- "required": false,
143
- "optional": false,
144
- "docs": {
145
- "tags": [],
146
- "text": ""
147
- },
148
- "attribute": "chart-type",
149
- "reflect": false,
150
- "defaultValue": "\"doughnut1\""
151
- },
152
- "label": {
153
- "type": "string",
154
- "mutable": false,
155
- "complexType": {
156
- "original": "string",
157
- "resolved": "string | undefined",
158
- "references": {}
159
- },
160
- "required": false,
161
- "optional": true,
162
- "docs": {
163
- "tags": [],
164
- "text": ""
165
- },
166
- "attribute": "label",
167
- "reflect": false
168
- },
169
- "subinfo": {
170
- "type": "string",
171
- "mutable": false,
172
- "complexType": {
173
- "original": "string",
174
- "resolved": "string | undefined",
175
- "references": {}
176
- },
177
- "required": false,
178
- "optional": true,
179
- "docs": {
180
- "tags": [],
181
- "text": ""
182
- },
183
- "attribute": "subinfo",
184
- "reflect": false
185
- },
186
- "completionMessage": {
187
- "type": "string",
188
- "mutable": false,
189
- "complexType": {
190
- "original": "string",
191
- "resolved": "string | undefined",
192
- "references": {}
193
- },
194
- "required": false,
195
- "optional": true,
196
- "docs": {
197
- "tags": [],
198
- "text": ""
199
- },
200
- "attribute": "completion-message",
201
- "reflect": false
202
- },
203
- "valueFormat": {
204
- "type": "string",
205
- "mutable": false,
206
- "complexType": {
207
- "original": "\"percentage\" | \"amount\"",
208
- "resolved": "\"amount\" | \"percentage\" | undefined",
209
- "references": {}
210
- },
211
- "required": false,
212
- "optional": true,
213
- "docs": {
214
- "tags": [],
215
- "text": ""
216
- },
217
- "attribute": "value-format",
218
- "reflect": false
219
- },
220
- "showValues": {
221
- "type": "string",
222
- "mutable": false,
223
- "complexType": {
224
- "original": "\"percentage\" | \"amount\"",
225
- "resolved": "\"amount\" | \"percentage\" | undefined",
226
- "references": {}
227
- },
228
- "required": false,
229
- "optional": true,
230
- "docs": {
231
- "tags": [],
232
- "text": ""
233
- },
234
- "attribute": "show-values",
235
- "reflect": false
236
- },
237
- "showLegend": {
238
- "type": "boolean",
239
- "mutable": false,
240
- "complexType": {
241
- "original": "boolean",
242
- "resolved": "boolean",
243
- "references": {}
244
- },
245
- "required": false,
246
- "optional": false,
247
- "docs": {
248
- "tags": [],
249
- "text": ""
250
- },
251
- "attribute": "show-legend",
252
- "reflect": false,
253
- "defaultValue": "true"
254
- },
255
- "notStartedColor": {
256
- "type": "boolean",
257
- "mutable": false,
258
- "complexType": {
259
- "original": "boolean",
260
- "resolved": "boolean",
261
- "references": {}
262
- },
263
- "required": false,
264
- "optional": false,
265
- "docs": {
266
- "tags": [],
267
- "text": ""
268
- },
269
- "attribute": "not-started-color",
270
- "reflect": false,
271
- "defaultValue": "false"
272
- },
273
- "labelPosition": {
274
- "type": "string",
275
- "mutable": false,
276
- "complexType": {
277
- "original": "\"left\" | \"top\"",
278
- "resolved": "\"left\" | \"top\"",
279
- "references": {}
280
- },
281
- "required": false,
282
- "optional": false,
283
- "docs": {
284
- "tags": [],
285
- "text": ""
286
- },
287
- "attribute": "label-position",
288
- "reflect": false,
289
- "defaultValue": "\"top\""
290
- }
291
- }; }
292
- static get states() { return {
293
- "isTabbing": {},
294
- "userIsNavigating": {}
295
- }; }
296
- static get elementRef() { return "el"; }
297
- static get listeners() { return [{
298
- "name": "wmUserIsTabbing",
299
- "method": "toggleTabbingOn",
300
- "target": "window",
301
- "capture": false,
302
- "passive": false
303
- }, {
304
- "name": "wmUserIsNotTabbing",
305
- "method": "toggleTabbingOff",
306
- "target": "window",
307
- "capture": false,
308
- "passive": false
309
- }, {
310
- "name": "keydown",
311
- "method": "handleKeydown",
312
- "target": undefined,
313
- "capture": false,
314
- "passive": false
315
- }, {
316
- "name": "resize",
317
- "method": "handleResize",
318
- "target": "window",
319
- "capture": false,
320
- "passive": true
321
- }, {
322
- "name": "wmChartSliceUpdated",
323
- "method": "handleSliceUpdate",
324
- "target": undefined,
325
- "capture": false,
326
- "passive": false
327
- }]; }
328
- }
1
+ import { Component, Element, h, Host, Prop, State, Listen } from "@stencil/core";
2
+ import { forceUpdate } from "@stencil/core";
3
+ import { debounce, generateId, intl } from "../../../global/functions";
4
+ import { amountToPercent, exitChart, getData, handleChartKeydown, renderBar, renderCompletionMessage, renderDoughnut, renderLegend, types, } from "../../../global/chartFunctions";
5
+ export class Chart {
6
+ constructor() {
7
+ this.chartType = "doughnut1";
8
+ this.showLegend = true;
9
+ this.notStartedColor = false;
10
+ // left labels are a temporary solution for the lack of a stacked bar chart and is undocumented
11
+ // it only works with bar4 and should be used without a legend
12
+ this.labelPosition = "top";
13
+ this.isTabbing = false;
14
+ this.userIsNavigating = false;
15
+ this.uid = generateId();
16
+ this.slicesData = [];
17
+ this.chartLabelMessage = intl.formatMessage({
18
+ id: "chart.interactiveChart",
19
+ defaultMessage: "Interactive chart. Use arrow keys to browse elements, press Tab to exit.",
20
+ });
21
+ /* LIFECYCLE METHODS + EVENTS FROM THE CHILDREN */
22
+ this.debouncedResize = debounce(async () => {
23
+ await getData.call(this, this.currentChartType);
24
+ forceUpdate(this.el);
25
+ }, 10);
26
+ this.debouncedSliceUpdate = debounce(async () => {
27
+ await getData.call(this, this.currentChartType);
28
+ forceUpdate(this.el);
29
+ }, 100);
30
+ }
31
+ get tempValueFormat() {
32
+ // use of this getter should be replaced with dateFormat when showValues is fully phased out
33
+ return this.valueFormat || this.showValues || "none";
34
+ }
35
+ get hybridType() {
36
+ return window.innerWidth > 1340 ? "doughnut0" : "bar1";
37
+ }
38
+ get popoverEl() {
39
+ return this.el.shadowRoot.querySelector("priv-chart-popover");
40
+ }
41
+ get sliceEls() {
42
+ return Array.from(this.el.shadowRoot.querySelectorAll(".segment"));
43
+ }
44
+ get currentChartType() {
45
+ return this.chartType === "hybrid" ? this.hybridType : this.chartType;
46
+ }
47
+ get chartData() {
48
+ return types[this.currentChartType];
49
+ }
50
+ get ariaLabelText() {
51
+ let text = `${this.label}, ${this.chartLabelMessage}`;
52
+ if (this.subinfo) {
53
+ text += ` ${this.subinfo}`;
54
+ }
55
+ return text;
56
+ }
57
+ toggleTabbingOn() {
58
+ this.isTabbing = true;
59
+ }
60
+ toggleTabbingOff() {
61
+ this.isTabbing = false;
62
+ }
63
+ handleKeydown(ev) {
64
+ handleChartKeydown.call(this, ev);
65
+ }
66
+ handleResize() {
67
+ if (this.chartType === "hybrid") {
68
+ this.debouncedResize();
69
+ }
70
+ }
71
+ async componentWillLoad() {
72
+ if (!this.label) {
73
+ throw new Error("For accessibility purposes, you must provide a label for the chart. See https://components.watermarkinsights.com/chart for more information.");
74
+ }
75
+ if (this.showValues) {
76
+ console.warn("wm-chart: show-values has been deprecated as of v3.1.0. Please use value-format instead.");
77
+ }
78
+ await getData.call(this, this.currentChartType);
79
+ }
80
+ handleSliceUpdate() {
81
+ this.debouncedSliceUpdate();
82
+ }
83
+ /* RENDERING */
84
+ renderBarText(s, idx) {
85
+ let val;
86
+ if (this.tempValueFormat === "percentage") {
87
+ val = s.perc + "%";
88
+ }
89
+ else if (this.tempValueFormat === "amount") {
90
+ val = s.amount;
91
+ }
92
+ else {
93
+ return;
94
+ }
95
+ return (h("span", { class: "value", style: {
96
+ width: `calc(${amountToPercent(s.amount, this.total, false)}%
97
+ ${idx !== this.slicesData.length - 1 ? " - 2px" : ""}`,
98
+ } }, val));
99
+ }
100
+ drawAxis() {
101
+ if (this.currentChartType === "bar3") {
102
+ return (h("svg", { class: "axis" },
103
+ h("line", { x1: "0", x2: "100%", y1: "0", y2: "0" }),
104
+ h("line", { x1: "0", x2: "0", y1: "0", y2: "-85px" }),
105
+ h("line", { class: "tick", x1: "0.5", x2: "0.5", y1: "0", y2: "6" }),
106
+ h("text", { x: "0.5", y: "-6" }, "0%"),
107
+ h("line", { class: "tick", x1: "100%", x2: "100%", y1: "0", y2: "6" }),
108
+ h("text", { x: "100%", y: "-6" }, "100%")));
109
+ }
110
+ }
111
+ render() {
112
+ return (h(Host, { role: "application", "aria-label": this.ariaLabelText, tabindex: "0", onBlur: () => exitChart.call(this) },
113
+ h("div", { class: `component-wrapper ${this.currentChartType} ${this.isTabbing && !this.userIsNavigating ? "user-is-tabbing" : ""} ${this.labelPosition === "left" && this.chartType === "bar4" ? "left-label" : ""}` },
114
+ h("label", { class: "label", id: `label-${this.uid}`, htmlFor: `graphic-${this.uid}` },
115
+ h("span", { class: "label-text" }, this.label),
116
+ this.subinfo ? h("span", { class: "subinfo" }, this.subinfo) : ""),
117
+ this.chartData.isBar ? renderLegend.call(this) : "",
118
+ this.total > 0 && this.chartData.isBar
119
+ ? renderBar.call(this, this.currentChartType)
120
+ : renderDoughnut.call(this, this.currentChartType),
121
+ !this.chartData.isBar ? renderLegend.call(this) : "",
122
+ h("priv-chart-popover", { class: this.isTabbing ? "user-is-tabbing" : "" }),
123
+ this.currentChartType === "doughnut0" ? renderCompletionMessage.call(this) : "")));
124
+ }
125
+ static get is() { return "wm-chart"; }
126
+ static get encapsulation() { return "shadow"; }
127
+ static get originalStyleUrls() { return {
128
+ "$": ["wm-chart.scss"]
129
+ }; }
130
+ static get styleUrls() { return {
131
+ "$": ["wm-chart.css"]
132
+ }; }
133
+ static get properties() { return {
134
+ "chartType": {
135
+ "type": "string",
136
+ "mutable": false,
137
+ "complexType": {
138
+ "original": "\"doughnut1\" | \"doughnut2\" | \"doughnut3\" | \"hybrid\" | \"bar1\" | \"bar2\" | \"bar3\" | \"bar4\" | \"bar5\"",
139
+ "resolved": "\"bar1\" | \"bar2\" | \"bar3\" | \"bar4\" | \"bar5\" | \"doughnut1\" | \"doughnut2\" | \"doughnut3\" | \"hybrid\"",
140
+ "references": {}
141
+ },
142
+ "required": false,
143
+ "optional": false,
144
+ "docs": {
145
+ "tags": [],
146
+ "text": ""
147
+ },
148
+ "attribute": "chart-type",
149
+ "reflect": false,
150
+ "defaultValue": "\"doughnut1\""
151
+ },
152
+ "label": {
153
+ "type": "string",
154
+ "mutable": false,
155
+ "complexType": {
156
+ "original": "string",
157
+ "resolved": "string | undefined",
158
+ "references": {}
159
+ },
160
+ "required": false,
161
+ "optional": true,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": ""
165
+ },
166
+ "attribute": "label",
167
+ "reflect": false
168
+ },
169
+ "subinfo": {
170
+ "type": "string",
171
+ "mutable": false,
172
+ "complexType": {
173
+ "original": "string",
174
+ "resolved": "string | undefined",
175
+ "references": {}
176
+ },
177
+ "required": false,
178
+ "optional": true,
179
+ "docs": {
180
+ "tags": [],
181
+ "text": ""
182
+ },
183
+ "attribute": "subinfo",
184
+ "reflect": false
185
+ },
186
+ "completionMessage": {
187
+ "type": "string",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "string",
191
+ "resolved": "string | undefined",
192
+ "references": {}
193
+ },
194
+ "required": false,
195
+ "optional": true,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": ""
199
+ },
200
+ "attribute": "completion-message",
201
+ "reflect": false
202
+ },
203
+ "valueFormat": {
204
+ "type": "string",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "\"percentage\" | \"amount\"",
208
+ "resolved": "\"amount\" | \"percentage\" | undefined",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": true,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": ""
216
+ },
217
+ "attribute": "value-format",
218
+ "reflect": false
219
+ },
220
+ "showValues": {
221
+ "type": "string",
222
+ "mutable": false,
223
+ "complexType": {
224
+ "original": "\"percentage\" | \"amount\"",
225
+ "resolved": "\"amount\" | \"percentage\" | undefined",
226
+ "references": {}
227
+ },
228
+ "required": false,
229
+ "optional": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": ""
233
+ },
234
+ "attribute": "show-values",
235
+ "reflect": false
236
+ },
237
+ "showLegend": {
238
+ "type": "boolean",
239
+ "mutable": false,
240
+ "complexType": {
241
+ "original": "boolean",
242
+ "resolved": "boolean",
243
+ "references": {}
244
+ },
245
+ "required": false,
246
+ "optional": false,
247
+ "docs": {
248
+ "tags": [],
249
+ "text": ""
250
+ },
251
+ "attribute": "show-legend",
252
+ "reflect": false,
253
+ "defaultValue": "true"
254
+ },
255
+ "notStartedColor": {
256
+ "type": "boolean",
257
+ "mutable": false,
258
+ "complexType": {
259
+ "original": "boolean",
260
+ "resolved": "boolean",
261
+ "references": {}
262
+ },
263
+ "required": false,
264
+ "optional": false,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": ""
268
+ },
269
+ "attribute": "not-started-color",
270
+ "reflect": false,
271
+ "defaultValue": "false"
272
+ },
273
+ "labelPosition": {
274
+ "type": "string",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "\"left\" | \"top\"",
278
+ "resolved": "\"left\" | \"top\"",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": false,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": ""
286
+ },
287
+ "attribute": "label-position",
288
+ "reflect": false,
289
+ "defaultValue": "\"top\""
290
+ }
291
+ }; }
292
+ static get states() { return {
293
+ "isTabbing": {},
294
+ "userIsNavigating": {}
295
+ }; }
296
+ static get elementRef() { return "el"; }
297
+ static get listeners() { return [{
298
+ "name": "wmUserIsTabbing",
299
+ "method": "toggleTabbingOn",
300
+ "target": "window",
301
+ "capture": false,
302
+ "passive": false
303
+ }, {
304
+ "name": "wmUserIsNotTabbing",
305
+ "method": "toggleTabbingOff",
306
+ "target": "window",
307
+ "capture": false,
308
+ "passive": false
309
+ }, {
310
+ "name": "keydown",
311
+ "method": "handleKeydown",
312
+ "target": undefined,
313
+ "capture": false,
314
+ "passive": false
315
+ }, {
316
+ "name": "resize",
317
+ "method": "handleResize",
318
+ "target": "window",
319
+ "capture": false,
320
+ "passive": true
321
+ }, {
322
+ "name": "wmChartSliceUpdated",
323
+ "method": "handleSliceUpdate",
324
+ "target": undefined,
325
+ "capture": false,
326
+ "passive": false
327
+ }]; }
328
+ }