@watermarkinsights/ripple 0.0.0 → 3.0.1-1

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 (282) hide show
  1. package/dist/{esm/app-globals-18876ad3.js → ripple/app-globals-b5693c90.js} +1 -1
  2. package/dist/{componentlibrary → ripple}/css-shim-bbdf0cc6.js +0 -0
  3. package/dist/{componentlibrary → ripple}/dom-1f98a75f.js +0 -0
  4. package/dist/{componentlibrary → ripple}/functions-316c1b23.js +0 -0
  5. package/dist/{componentlibrary → ripple}/http-service-5d037e16.js +0 -0
  6. package/dist/{esm/index-d5997567.js → ripple/index-20b65f86.js} +3 -3
  7. package/dist/ripple/index.esm.js +1 -0
  8. package/dist/{componentlibrary → ripple}/interfaces-50753346.js +0 -0
  9. package/dist/{componentlibrary → ripple}/priv-chart-popover.entry.js +1 -1
  10. package/dist/{componentlibrary → ripple}/priv-datepicker.entry.js +1 -1
  11. package/dist/{componentlibrary → ripple}/priv-navigator-button.entry.js +1 -1
  12. package/dist/{componentlibrary → ripple}/priv-navigator-item.entry.js +1 -1
  13. package/dist/{componentlibrary/componentlibrary.css → ripple/ripple.css} +0 -0
  14. package/dist/ripple/ripple.esm.js +125 -0
  15. package/dist/{componentlibrary → ripple}/shadow-css-67b66845.js +0 -0
  16. package/dist/{esm → ripple}/wm-action-menu.entry.js +1 -1
  17. package/dist/{componentlibrary → ripple}/wm-button.entry.js +1 -1
  18. package/dist/{componentlibrary → ripple}/wm-chart-slice.entry.js +1 -1
  19. package/dist/{componentlibrary → ripple}/wm-chart.entry.js +1 -1
  20. package/dist/{componentlibrary → ripple}/wm-datepicker.entry.js +1 -1
  21. package/dist/{componentlibrary → ripple}/wm-input.entry.js +1 -1
  22. package/dist/{componentlibrary → ripple}/wm-menuitem.entry.js +1 -1
  23. package/dist/{componentlibrary → ripple}/wm-modal-footer.entry.js +1 -1
  24. package/dist/{componentlibrary → ripple}/wm-modal-header.entry.js +1 -1
  25. package/dist/{componentlibrary → ripple}/wm-modal.entry.js +1 -1
  26. package/dist/{componentlibrary → ripple}/wm-navigator.entry.js +1 -1
  27. package/dist/{componentlibrary → ripple}/wm-network-uploader.entry.js +1 -1
  28. package/dist/{componentlibrary → ripple}/wm-option.entry.js +1 -1
  29. package/dist/{componentlibrary → ripple}/wm-pagination.entry.js +1 -1
  30. package/dist/{componentlibrary → ripple}/wm-search.entry.js +1 -1
  31. package/dist/{componentlibrary → ripple}/wm-select.entry.js +1 -1
  32. package/dist/{componentlibrary → ripple}/wm-snackbar.entry.js +1 -1
  33. package/dist/{esm → ripple}/wm-tab-item.entry.js +1 -1
  34. package/dist/{componentlibrary → ripple}/wm-tab-list.entry.js +1 -1
  35. package/dist/{componentlibrary → ripple}/wm-tab-panel.entry.js +1 -1
  36. package/dist/{componentlibrary → ripple}/wm-tag-input.entry.js +31 -6
  37. package/dist/{componentlibrary → ripple}/wm-timepicker.entry.js +1 -1
  38. package/dist/{componentlibrary → ripple}/wm-toggletip.entry.js +1 -1
  39. package/dist/{componentlibrary → ripple}/wm-uploader.entry.js +1 -1
  40. package/dist/{componentlibrary → ripple}/wm-wrapper.entry.js +1 -1
  41. package/dist/types/components/wm-tag-input/{wm-tag-input.d.ts → wm-tag-input.d.ts~ds312_tagInputMaxTags} +4 -0
  42. package/dist/types/{components.d.ts → components.d.ts~ds312_tagInputMaxTags} +2 -0
  43. package/dist/types/{stencil-public-runtime.d.ts → stencil-public-runtime.d.ts~ds312_tagInputMaxTags} +0 -0
  44. package/package.json +3 -3
  45. package/dist/cjs/app-globals-6b0c6e80.js +0 -110
  46. package/dist/cjs/app-globals-f1dd8fda.js +0 -47
  47. package/dist/cjs/componentlibrary.cjs.js +0 -20
  48. package/dist/cjs/css-shim-a7379e2b.js +0 -6
  49. package/dist/cjs/dom-3e7d9c3b.js +0 -75
  50. package/dist/cjs/functions-65513c61.js +0 -8360
  51. package/dist/cjs/functions-f2333f02.js +0 -6129
  52. package/dist/cjs/global-6849642d.js +0 -38
  53. package/dist/cjs/http-service-494d81de.js +0 -57
  54. package/dist/cjs/http-service-9e8c4dd5.js +0 -57
  55. package/dist/cjs/index-298ebef1.js +0 -2976
  56. package/dist/cjs/index.cjs.js +0 -2
  57. package/dist/cjs/interfaces-a3338581.js +0 -35
  58. package/dist/cjs/interfaces-b2beb752.js +0 -54
  59. package/dist/cjs/loader.cjs.js +0 -22
  60. package/dist/cjs/priv-chart-popover.cjs.entry.js +0 -89
  61. package/dist/cjs/priv-datepicker.cjs.entry.js +0 -672
  62. package/dist/cjs/priv-navigator-button.cjs.entry.js +0 -29
  63. package/dist/cjs/priv-navigator-item.cjs.entry.js +0 -34
  64. package/dist/cjs/shadow-css-09555044.js +0 -391
  65. package/dist/cjs/wm-action-menu.cjs.entry.js +0 -206
  66. package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -318
  67. package/dist/cjs/wm-button.cjs.entry.js +0 -152
  68. package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -22
  69. package/dist/cjs/wm-chart.cjs.entry.js +0 -508
  70. package/dist/cjs/wm-datepicker.cjs.entry.js +0 -262
  71. package/dist/cjs/wm-input.cjs.entry.js +0 -110
  72. package/dist/cjs/wm-menuitem.cjs.entry.js +0 -118
  73. package/dist/cjs/wm-modal-footer.cjs.entry.js +0 -43
  74. package/dist/cjs/wm-modal-header.cjs.entry.js +0 -45
  75. package/dist/cjs/wm-modal.cjs.entry.js +0 -149
  76. package/dist/cjs/wm-navigator.cjs.entry.js +0 -279
  77. package/dist/cjs/wm-network-uploader.cjs.entry.js +0 -431
  78. package/dist/cjs/wm-option.cjs.entry.js +0 -123
  79. package/dist/cjs/wm-option_2.cjs.entry.js +0 -483
  80. package/dist/cjs/wm-pagination.cjs.entry.js +0 -176
  81. package/dist/cjs/wm-search.cjs.entry.js +0 -231
  82. package/dist/cjs/wm-select.cjs.entry.js +0 -366
  83. package/dist/cjs/wm-snackbar.cjs.entry.js +0 -160
  84. package/dist/cjs/wm-tab-item.cjs.entry.js +0 -82
  85. package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -316
  86. package/dist/cjs/wm-tab-list.cjs.entry.js +0 -205
  87. package/dist/cjs/wm-tab-panel.cjs.entry.js +0 -42
  88. package/dist/cjs/wm-tag-input.cjs.entry.js +0 -513
  89. package/dist/cjs/wm-timepicker.cjs.entry.js +0 -386
  90. package/dist/cjs/wm-toggletip.cjs.entry.js +0 -128
  91. package/dist/cjs/wm-uploader.cjs.entry.js +0 -342
  92. package/dist/cjs/wm-wrapper.cjs.entry.js +0 -21
  93. package/dist/collection/collection-manifest.json +0 -131
  94. package/dist/collection/components/wm-action-menu/wm-action-menu.css +0 -122
  95. package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -392
  96. package/dist/collection/components/wm-button/wm-button.css +0 -572
  97. package/dist/collection/components/wm-button/wm-button.js +0 -365
  98. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +0 -132
  99. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +0 -232
  100. package/dist/collection/components/wm-chart/wm-chart-slice.js +0 -64
  101. package/dist/collection/components/wm-chart/wm-chart.css +0 -337
  102. package/dist/collection/components/wm-chart/wm-chart.js +0 -710
  103. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +0 -365
  104. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +0 -1003
  105. package/dist/collection/components/wm-datepicker/wm-datepicker.css +0 -211
  106. package/dist/collection/components/wm-datepicker/wm-datepicker.js +0 -445
  107. package/dist/collection/components/wm-input/wm-input.css +0 -220
  108. package/dist/collection/components/wm-input/wm-input.js +0 -302
  109. package/dist/collection/components/wm-menuitem/wm-menuitem.css +0 -118
  110. package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -411
  111. package/dist/collection/components/wm-modal/wm-modal-footer.css +0 -84
  112. package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -159
  113. package/dist/collection/components/wm-modal/wm-modal-header.css +0 -78
  114. package/dist/collection/components/wm-modal/wm-modal-header.js +0 -109
  115. package/dist/collection/components/wm-modal/wm-modal.css +0 -155
  116. package/dist/collection/components/wm-modal/wm-modal.js +0 -356
  117. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +0 -94
  118. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -97
  119. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +0 -67
  120. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -114
  121. package/dist/collection/components/wm-navigator/wm-navigator.css +0 -137
  122. package/dist/collection/components/wm-navigator/wm-navigator.js +0 -468
  123. package/dist/collection/components/wm-option/wm-option.css +0 -162
  124. package/dist/collection/components/wm-option/wm-option.js +0 -394
  125. package/dist/collection/components/wm-pagination/wm-pagination.css +0 -217
  126. package/dist/collection/components/wm-pagination/wm-pagination.js +0 -348
  127. package/dist/collection/components/wm-search/wm-search.css +0 -155
  128. package/dist/collection/components/wm-search/wm-search.js +0 -439
  129. package/dist/collection/components/wm-select/wm-select.css +0 -315
  130. package/dist/collection/components/wm-select/wm-select.js +0 -676
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.css +0 -331
  132. package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -240
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +0 -104
  134. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -202
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +0 -73
  136. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -315
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +0 -57
  138. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -104
  139. package/dist/collection/components/wm-tag-input/wm-tag-input.css +0 -408
  140. package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -707
  141. package/dist/collection/components/wm-timepicker/wm-timepicker.css +0 -370
  142. package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -567
  143. package/dist/collection/components/wm-toggletip/wm-toggletip.css +0 -350
  144. package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -217
  145. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +0 -642
  146. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +0 -753
  147. package/dist/collection/components/wm-uploader/wm-uploader.css +0 -666
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +0 -673
  149. package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -27
  150. package/dist/collection/dev/scripts.js +0 -20
  151. package/dist/collection/global/__mocks__/functions.js +0 -5
  152. package/dist/collection/global/functions.js +0 -420
  153. package/dist/collection/global/global.js +0 -39
  154. package/dist/collection/global/interfaces.js +0 -49
  155. package/dist/collection/global/services/__mocks__/http-service.js +0 -130
  156. package/dist/collection/global/services/http-service.js +0 -50
  157. package/dist/collection/lang/lang.js +0 -5
  158. package/dist/collection/lang/piglatin.js +0 -93
  159. package/dist/componentlibrary/app-globals-18876ad3.js +0 -45
  160. package/dist/componentlibrary/app-globals-307a1083.js +0 -108
  161. package/dist/componentlibrary/componentlibrary.esm.js +0 -1
  162. package/dist/componentlibrary/index-d5997567.js +0 -2938
  163. package/dist/componentlibrary/index.esm.js +0 -0
  164. package/dist/componentlibrary/p-01bdfed8.js +0 -16
  165. package/dist/componentlibrary/p-0ca70ed4.entry.js +0 -1
  166. package/dist/componentlibrary/p-126bde92.entry.js +0 -1
  167. package/dist/componentlibrary/p-12a67d93.entry.js +0 -1
  168. package/dist/componentlibrary/p-188deaf5.entry.js +0 -1
  169. package/dist/componentlibrary/p-2514df6f.entry.js +0 -1
  170. package/dist/componentlibrary/p-269b8a5f.entry.js +0 -1
  171. package/dist/componentlibrary/p-35e57079.entry.js +0 -1
  172. package/dist/componentlibrary/p-414e20f7.entry.js +0 -1
  173. package/dist/componentlibrary/p-43f1298b.js +0 -1
  174. package/dist/componentlibrary/p-4d387ec6.entry.js +0 -1
  175. package/dist/componentlibrary/p-59ba81d6.entry.js +0 -1
  176. package/dist/componentlibrary/p-5e3cbec8.entry.js +0 -1
  177. package/dist/componentlibrary/p-5e81e830.entry.js +0 -1
  178. package/dist/componentlibrary/p-64ff5040.js +0 -1
  179. package/dist/componentlibrary/p-68a871d3.entry.js +0 -1
  180. package/dist/componentlibrary/p-996a7395.entry.js +0 -1
  181. package/dist/componentlibrary/p-9b460452.entry.js +0 -1
  182. package/dist/componentlibrary/p-a416e410.entry.js +0 -1
  183. package/dist/componentlibrary/p-d550a94f.entry.js +0 -1
  184. package/dist/componentlibrary/p-e4735c23.entry.js +0 -1
  185. package/dist/componentlibrary/p-e725f388.entry.js +0 -1
  186. package/dist/componentlibrary/p-e9532ae5.entry.js +0 -1
  187. package/dist/componentlibrary/p-edf6f848.entry.js +0 -1
  188. package/dist/componentlibrary/p-fd8070fb.js +0 -1
  189. package/dist/componentlibrary/wm-action-menu.entry.js +0 -202
  190. package/dist/componentlibrary/wm-tab-item.entry.js +0 -78
  191. package/dist/esm/app-globals-307a1083.js +0 -108
  192. package/dist/esm/componentlibrary.js +0 -18
  193. package/dist/esm/css-shim-bbdf0cc6.js +0 -4
  194. package/dist/esm/dom-1f98a75f.js +0 -73
  195. package/dist/esm/functions-316c1b23.js +0 -8340
  196. package/dist/esm/functions-60034bf7.js +0 -6109
  197. package/dist/esm/global-430cb201.js +0 -36
  198. package/dist/esm/http-service-3dc3b3e7.js +0 -52
  199. package/dist/esm/http-service-5d037e16.js +0 -52
  200. package/dist/esm/index.js +0 -1
  201. package/dist/esm/interfaces-2b97fab2.js +0 -32
  202. package/dist/esm/interfaces-50753346.js +0 -51
  203. package/dist/esm/loader.js +0 -18
  204. package/dist/esm/polyfills/core-js.js +0 -11
  205. package/dist/esm/polyfills/css-shim.js +0 -1
  206. package/dist/esm/polyfills/dom.js +0 -79
  207. package/dist/esm/polyfills/es5-html-element.js +0 -1
  208. package/dist/esm/polyfills/index.js +0 -34
  209. package/dist/esm/polyfills/system.js +0 -6
  210. package/dist/esm/priv-chart-popover.entry.js +0 -85
  211. package/dist/esm/priv-datepicker.entry.js +0 -668
  212. package/dist/esm/priv-navigator-button.entry.js +0 -25
  213. package/dist/esm/priv-navigator-item.entry.js +0 -30
  214. package/dist/esm/shadow-css-67b66845.js +0 -389
  215. package/dist/esm/wm-action-menu_2.entry.js +0 -313
  216. package/dist/esm/wm-button.entry.js +0 -148
  217. package/dist/esm/wm-chart-slice.entry.js +0 -18
  218. package/dist/esm/wm-chart.entry.js +0 -504
  219. package/dist/esm/wm-datepicker.entry.js +0 -258
  220. package/dist/esm/wm-input.entry.js +0 -106
  221. package/dist/esm/wm-menuitem.entry.js +0 -114
  222. package/dist/esm/wm-modal-footer.entry.js +0 -39
  223. package/dist/esm/wm-modal-header.entry.js +0 -41
  224. package/dist/esm/wm-modal.entry.js +0 -145
  225. package/dist/esm/wm-navigator.entry.js +0 -275
  226. package/dist/esm/wm-network-uploader.entry.js +0 -427
  227. package/dist/esm/wm-option.entry.js +0 -119
  228. package/dist/esm/wm-option_2.entry.js +0 -478
  229. package/dist/esm/wm-pagination.entry.js +0 -172
  230. package/dist/esm/wm-search.entry.js +0 -227
  231. package/dist/esm/wm-select.entry.js +0 -362
  232. package/dist/esm/wm-snackbar.entry.js +0 -156
  233. package/dist/esm/wm-tab-item_3.entry.js +0 -310
  234. package/dist/esm/wm-tab-list.entry.js +0 -201
  235. package/dist/esm/wm-tab-panel.entry.js +0 -38
  236. package/dist/esm/wm-tag-input.entry.js +0 -509
  237. package/dist/esm/wm-timepicker.entry.js +0 -382
  238. package/dist/esm/wm-toggletip.entry.js +0 -124
  239. package/dist/esm/wm-uploader.entry.js +0 -338
  240. package/dist/esm/wm-wrapper.entry.js +0 -17
  241. package/dist/index.cjs.js +0 -1
  242. package/dist/index.js +0 -1
  243. package/dist/loader/cdn.js +0 -3
  244. package/dist/loader/index.cjs.js +0 -3
  245. package/dist/loader/index.d.ts +0 -13
  246. package/dist/loader/index.es2017.js +0 -3
  247. package/dist/loader/index.js +0 -4
  248. package/dist/loader/package.json +0 -10
  249. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +0 -43
  250. package/dist/types/components/wm-button/wm-button.d.ts +0 -36
  251. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +0 -23
  252. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +0 -8
  253. package/dist/types/components/wm-chart/wm-chart.d.ts +0 -77
  254. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +0 -75
  255. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +0 -39
  256. package/dist/types/components/wm-input/wm-input.d.ts +0 -30
  257. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +0 -30
  258. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +0 -15
  259. package/dist/types/components/wm-modal/wm-modal-header.d.ts +0 -12
  260. package/dist/types/components/wm-modal/wm-modal.d.ts +0 -34
  261. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +0 -10
  262. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +0 -13
  263. package/dist/types/components/wm-navigator/wm-navigator.d.ts +0 -61
  264. package/dist/types/components/wm-option/wm-option.d.ts +0 -28
  265. package/dist/types/components/wm-pagination/wm-pagination.d.ts +0 -31
  266. package/dist/types/components/wm-search/wm-search.d.ts +0 -78
  267. package/dist/types/components/wm-select/wm-select.d.ts +0 -63
  268. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +0 -32
  269. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +0 -35
  270. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +0 -50
  271. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +0 -20
  272. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +0 -59
  273. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +0 -25
  274. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +0 -85
  275. package/dist/types/components/wm-uploader/wm-uploader.d.ts +0 -75
  276. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +0 -7
  277. package/dist/types/global/__mocks__/functions.d.ts +0 -5
  278. package/dist/types/global/global.d.ts +0 -1
  279. package/dist/types/global/interfaces.d.ts +0 -33
  280. package/dist/types/global/services/__mocks__/http-service.d.ts +0 -6
  281. package/dist/types/global/services/http-service.d.ts +0 -4
  282. package/dist/types/lang/lang.d.ts +0 -5
@@ -1,508 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-e5aef9f9.js');
6
- const functions = require('./functions-f2333f02.js');
7
-
8
- const wmChartCss = ".component-wrapper{display:flex;flex-direction:column;align-items:center;font-size:0.875rem;position:relative;}.component-wrapper .label{display:block;margin:0;padding-bottom:0.25rem;font-weight:500;position:relative}.component-wrapper .label .subinfo{display:block;font-weight:normal;font-style:italic;bottom:0.25rem;width:100%;color:#6b6b6b}.component-wrapper .legend-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.component-wrapper .legend-wrapper .legend{display:flex;align-items:center;flex-wrap:wrap;text-align:center;padding-top:0.25rem;padding-bottom:0.75rem;box-sizing:border-box}.component-wrapper .legend-wrapper .legend.--top{margin-top:-0.75rem}.component-wrapper .legend-wrapper .legend.--top .legend-item{padding-top:0.75rem}.component-wrapper .legend-wrapper .legend.--top .legend-color{top:0.75rem}.component-wrapper .legend-wrapper .legend.--bottom{margin-bottom:-0.75rem}.component-wrapper .legend-wrapper .legend.--bottom .legend-item{padding-bottom:0.75rem}.component-wrapper .legend-wrapper .legend.--bottom .legend-color{top:-0.75rem}.component-wrapper .legend-wrapper .legend .legend-item{position:relative}.component-wrapper .legend-wrapper .legend .legend-item:not(:last-of-type){padding-right:1.25rem}.component-wrapper .legend-wrapper .legend .legend-text{padding-left:1rem;line-height:1}.component-wrapper .legend-wrapper .legend .legend-color{position:absolute;left:0;bottom:0;margin:auto;width:0.6875rem;height:0.6875rem}.component-wrapper .legend-wrapper .cluster-warning{font-size:0.75rem;font-style:italic;max-width:100%}.component-wrapper .chart-svg{overflow:visible}.component-wrapper .chart-svg:active,.component-wrapper .chart-svg:hover,.component-wrapper .chart-svg:focus{outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.component-wrapper .chart-svg::-moz-focus-inner{border:0;outline:none}.component-wrapper .chart-svg path:active,.component-wrapper .chart-svg path:hover,.component-wrapper .chart-svg path:focus,.component-wrapper .chart-svg rect:active,.component-wrapper .chart-svg rect:hover,.component-wrapper .chart-svg rect:focus{outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:url(#wmHoverDropShadow)}.component-wrapper .chart-svg path::-moz-focus-inner,.component-wrapper .chart-svg rect::-moz-focus-inner{border:0;outline:none}.component-wrapper .bar-wrapper{flex-grow:1;width:100%}.component-wrapper .bar-wrapper rect{height:30px}.component-wrapper .doughnut-wrapper .chart-svg{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px}.component-wrapper.doughnut1 label,.component-wrapper.doughnut1 .label-text,.component-wrapper.doughnut2 label,.component-wrapper.doughnut2 .label-text,.component-wrapper.doughnut3 label,.component-wrapper.doughnut3 .label-text{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.component-wrapper.doughnut0{align-items:center}.component-wrapper.doughnut0 label{text-align:center;width:100%;padding-bottom:1.5rem}.component-wrapper.doughnut0 label .subinfo{position:absolute}.component-wrapper.doughnut0 .legend{display:flex}.component-wrapper.doughnut0 .completion-message{padding-top:0.625rem}.component-wrapper .bar-svg{width:100%}.component-wrapper .bar-svg foreignObject{width:100%;height:30px;overflow:visible}.component-wrapper.bar1{padding:1.25rem;position:relative;align-items:flex-start}.component-wrapper.bar1 label{display:flex;flex-direction:column}.component-wrapper.bar1 label .subinfo{position:initial}.component-wrapper.bar1 .legend{display:none}.component-wrapper.bar1 .completion-message{position:absolute;right:1.25rem;bottom:0}.component-wrapper.bar1 .bar-wrapper{display:flex;align-items:center}.component-wrapper.bar1 .bar-wrapper .single-perc{width:4rem}.component-wrapper.bar1 .bar-wrapper .chart-svg{flex:1;height:30px}@media screen and (min-width: 768px){.component-wrapper.bar1{flex-direction:row;align-items:center}.component-wrapper.bar1 label{width:12rem;text-align:left;padding-right:1.25rem;padding-bottom:0}.component-wrapper.bar1 .completion-message{right:5.75rem}.component-wrapper.bar1 .bar-wrapper{flex-direction:row-reverse}.component-wrapper.bar1 .bar-wrapper .single-perc{text-align:center;padding-left:0.5rem}}.component-wrapper.bar2,.component-wrapper.bar3,.component-wrapper.bar4,.component-wrapper.bar5{align-items:flex-start}.component-wrapper.bar2 .legend,.component-wrapper.bar4 .legend,.component-wrapper.bar5 .legend{padding-bottom:0}.component-wrapper.bar2 .chart-svg,.component-wrapper.bar4 .chart-svg,.component-wrapper.bar5 .chart-svg{height:30px;margin-top:20px;margin-bottom:0}.component-wrapper.bar2 .chart-svg.show-values,.component-wrapper.bar4 .chart-svg.show-values,.component-wrapper.bar5 .chart-svg.show-values{height:60px;margin-top:0;margin-bottom:0}.component-wrapper.bar2 .chart-svg .percs,.component-wrapper.bar4 .chart-svg .percs,.component-wrapper.bar5 .chart-svg .percs{transform:translateY(24px);text-anchor:middle}.component-wrapper.bar3 .legend{padding-bottom:1.25rem}.component-wrapper.bar3 .svg-wrapper{position:relative;height:100px}.component-wrapper.bar3 .svg-wrapper .chart-svg{position:absolute;top:35px;left:0;right:0;bottom:0;height:30px}.component-wrapper.bar3 .svg-wrapper .chart-svg text{fill:#4a4a4a}.component-wrapper.bar3 .svg-wrapper .chart-svg .percs{transform:translateY(-4px);text-anchor:middle}.component-wrapper.bar3 .svg-wrapper .axis{position:absolute;top:0;left:0;height:90px;width:100%;overflow:visible;transform:translateY(90px)}.component-wrapper.bar3 .svg-wrapper .axis line{stroke:#eeedf4;stroke-width:1px}.component-wrapper.bar3 .svg-wrapper .axis text{transform:translate(4px, 24px);text-anchor:middle}:host(:focus){outline:none}:host(:focus) .chart-svg.user-is-tabbing:not(.show-values){-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e}:host(:focus) .chart-svg.user-is-tabbing:not(.show-values)::-moz-focus-inner{border:0}:host(:focus) .chart-svg.user-is-tabbing.show-values .tabbing-focus{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;width:100%;height:30px}:host(:focus) .chart-svg.user-is-tabbing.show-values .tabbing-focus::-moz-focus-inner{border:0}:host(:focus) .chart-svg.user-is-tabbing.show-values .focus-offset{transform:translateY(30px)}";
9
-
10
- const Chart = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.chartType = "doughnut1";
14
- this.showLegend = true;
15
- this.notStartedColor = false;
16
- this.isTabbing = false;
17
- this.uid = functions.generateId();
18
- this.slicesData = [];
19
- this.colors = {
20
- salmon: "#ff5f4e",
21
- cyan: "#19a1a9",
22
- sleet: "#7f97ad",
23
- midnight: "#2e1b46",
24
- lavender: "#8b86ca",
25
- };
26
- this.types = {
27
- doughnut0: {
28
- size: 155,
29
- colors: [this.colors.cyan, "#bfbfbf"],
30
- thickness: 0.73,
31
- padding: 25,
32
- isBar: false,
33
- },
34
- doughnut1: {
35
- size: 130,
36
- colors: [this.colors.lavender, this.colors.midnight, "#d4d4d4"],
37
- thickness: 0.5,
38
- padding: 90,
39
- isBar: false,
40
- },
41
- doughnut2: {
42
- size: 130,
43
- colors: [this.colors.cyan, this.colors.salmon, "#d4d4d4"],
44
- thickness: 0.5,
45
- padding: 90,
46
- isBar: false,
47
- },
48
- doughnut3: {
49
- size: 130,
50
- colors: [this.colors.lavender, this.colors.midnight, "#919834", "#c177cf", "#c16e00", "#029af2", "#2a6993"],
51
- thickness: 0.5,
52
- padding: 90,
53
- isBar: false,
54
- },
55
- bar1: {
56
- size: 350,
57
- colors: [this.colors.cyan, "#bfbfbf"],
58
- padding: 0,
59
- isBar: true,
60
- },
61
- bar2: {
62
- size: 400,
63
- colors: ["#d4d4d4", this.colors.sleet, this.colors.cyan, this.colors.salmon],
64
- padding: 0,
65
- isBar: true,
66
- },
67
- bar3: {
68
- size: 300,
69
- colors: ["#0d696e", this.colors.cyan, "#8e4129", this.colors.salmon],
70
- padding: 0,
71
- isBar: true,
72
- },
73
- bar4: {
74
- size: 400,
75
- colors: ["#d4d4d4", this.colors.sleet, "#33a919"],
76
- padding: 0,
77
- isBar: true,
78
- },
79
- bar5: {
80
- size: 400,
81
- colors: [
82
- "#d4d4d4",
83
- this.colors.lavender,
84
- this.colors.midnight,
85
- "#919834",
86
- "#c177cf",
87
- "#c16e00",
88
- "#029af2",
89
- "#2a6993",
90
- ],
91
- padding: 0,
92
- isBar: true,
93
- },
94
- };
95
- /* LIFECYCLE METHODS + EVENTS FROM THE CHILDREN */
96
- this.debouncedUpdate = functions.debounce(async () => {
97
- this.setHybridType();
98
- await this.getData();
99
- index.forceUpdate(this.el);
100
- }, 30);
101
- this.debouncedSliceUpdate = functions.debounce(async () => {
102
- await this.getData();
103
- index.forceUpdate(this.el);
104
- }, 100);
105
- }
106
- toggleTabbingOn() {
107
- this.isTabbing = true;
108
- }
109
- toggleTabbingOff() {
110
- this.isTabbing = false;
111
- }
112
- handleKeydown(ev) {
113
- switch (ev.keyCode) {
114
- // arrow up / left
115
- case 37:
116
- case 38:
117
- ev.preventDefault();
118
- this.isTabbing = true; // shd already be true. just in case user clicked on chart then pressed an arrow key
119
- this.focusPrevious();
120
- break;
121
- // arrow right / down
122
- case 39:
123
- case 40:
124
- ev.preventDefault();
125
- this.isTabbing = true; // shd already be true. just in case user clicked on chart then pressed an arrow key
126
- this.focusNext();
127
- break;
128
- // tab
129
- case 9:
130
- this.exitChart();
131
- break;
132
- case 27:
133
- this.popoverEl.open = false;
134
- break;
135
- }
136
- }
137
- focusNext() {
138
- const activeEl = functions.checkForActiveElInShadow(document.activeElement);
139
- const index =
140
- // if the active el is not in the array the first element gets focused
141
- (this.sliceEls.indexOf(activeEl) + 1) % this.sliceEls.length;
142
- this.focusSlice(index);
143
- }
144
- focusPrevious() {
145
- if (this.sliceEls) {
146
- const activeEl = functions.checkForActiveElInShadow(document.activeElement);
147
- let index = this.sliceEls.indexOf(activeEl);
148
- if (index === -1) {
149
- // not in the array : focus the first slice
150
- index = 0;
151
- }
152
- else if (index === 0) {
153
- // first slice : focus the last slice
154
- index = this.sliceEls.length - 1;
155
- }
156
- else {
157
- // anything else: focus previous
158
- index -= 1;
159
- }
160
- this.focusSlice(index);
161
- }
162
- }
163
- focusSlice(index) {
164
- if (this.sliceEls && this.el) {
165
- if (this.popoverEl) {
166
- this.popoverEl.open = false;
167
- }
168
- this.el.tabIndex = -1;
169
- // @ts-ignore
170
- this.el.focusable = false; // for Edge
171
- this.sliceEls.map((p) => {
172
- p.tabIndex = -1;
173
- // @ts-ignore
174
- p.focusable = false; // for Edge
175
- });
176
- this.sliceEls[index].tabIndex = 0;
177
- // @ts-ignore
178
- this.sliceEls[index].focusable = true; // for Edge
179
- this.sliceEls[index].focus();
180
- window.setTimeout(() => {
181
- if (this.popoverEl) {
182
- this.popoverEl.open = true;
183
- }
184
- }, 10);
185
- }
186
- }
187
- exitChart() {
188
- this.sliceEls &&
189
- this.sliceEls.map((p) => {
190
- p.tabIndex = -1;
191
- // @ts-ignore
192
- p.focusable = false; // for Edge
193
- });
194
- // delay so that we can tab out of component before chart becomes focusable again
195
- // and in case user was still pressing an arrow key when they pressed tab
196
- window.setTimeout(() => {
197
- if (this.el) {
198
- this.el.tabIndex = 0;
199
- // @ts-ignore
200
- this.el.focusable = true; // for Edge
201
- if (this.popoverEl) {
202
- this.popoverEl.open = false;
203
- }
204
- }
205
- }, 100);
206
- }
207
- openPopover(s) {
208
- if (!!this.popoverEl && !!s.title && !!s.text) {
209
- this.popoverEl.popoverTitle = s.title;
210
- this.popoverEl.popoverText = s.text;
211
- this.popoverEl.buttonText = s.buttonText;
212
- this.popoverEl.coords = s.coords;
213
- this.popoverEl.sliceRef = s.sliceRef;
214
- window.setTimeout(() => {
215
- if (this.popoverEl) {
216
- this.popoverEl.open = true;
217
- }
218
- }, 30);
219
- const debouncedClosePopover = functions.debounce(async () => {
220
- this.popoverEl.open = false;
221
- }, 10);
222
- // set up event listeners for scrolling
223
- // to close popover on page scroll
224
- document.addEventListener("scroll", () => {
225
- debouncedClosePopover();
226
- });
227
- // ... and on parent scroll
228
- const scrollableParent = functions.findParentWithScrollbar(this.el);
229
- if (!!scrollableParent) {
230
- scrollableParent.addEventListener("scroll", () => {
231
- debouncedClosePopover();
232
- });
233
- }
234
- }
235
- }
236
- /* UTILS */
237
- amountToPercent(val, asInt) {
238
- return asInt ? Math.round((val * 100) / this.total) : Math.round((val * 10000) / this.total) / 100; // with 2 decimals
239
- }
240
- amountToDegree(val) {
241
- return (val * 360) / this.total;
242
- }
243
- toFixed(number) {
244
- var val = parseFloat((Math.floor(number * 100) / 100).toFixed(2));
245
- return val;
246
- }
247
- polarToCartesian(half, radius, startAngle, endAngle) {
248
- var x = this.toFixed(half + half * radius * Math.cos((Math.PI * startAngle) / 180));
249
- var y = this.toFixed(half + half * radius * Math.sin((Math.PI * startAngle) / 180));
250
- if (endAngle !== undefined) {
251
- // if a 2nd angle value was passed, return 2 pairs of coords
252
- var x2 = this.toFixed(half + half * radius * Math.cos((Math.PI * endAngle) / 180));
253
- var y2 = this.toFixed(half + half * radius * Math.sin((Math.PI * endAngle) / 180));
254
- return { x1: x, y1: y, x2, y2 };
255
- }
256
- return { x, y };
257
- }
258
- /* CRUNCH THE NUMBERS */
259
- getPathData(amount, offset) {
260
- var startAngle = this.amountToDegree(offset) - 90; // start at noon, not at 3 o'clock
261
- var activeAngle = (amount / this.total) * 360;
262
- var endAngle = startAngle + activeAngle;
263
- var largeArcFlagOuter = activeAngle > 180 ? "1 1" : "0 1";
264
- var largeArcFlagInner = activeAngle > 180 ? "1 0" : "0 0";
265
- var half = this.chartData.size / 2;
266
- var innerRadius = this.chartData.thickness;
267
- var outerRadius = 1;
268
- if (activeAngle === 360) {
269
- // fix to avoid bad svg shape when the path goes all around (100%)
270
- endAngle -= 0.01;
271
- }
272
- var outerCoords = this.polarToCartesian(half, outerRadius, startAngle + 1.5, // 1.5 for slice separator
273
- endAngle);
274
- var innerCoords = this.polarToCartesian(half, innerRadius, startAngle + 3, // 3 for slice separator
275
- endAngle);
276
- const moveTo = `M ${outerCoords.x1}, ${outerCoords.y1} `;
277
- const arc1 = this.getArc(outerRadius, largeArcFlagOuter, outerCoords.x2, outerCoords.y2);
278
- const line = ` L ${innerCoords.x2}, ${innerCoords.y2} `;
279
- const arc2 = this.getArc(innerRadius, largeArcFlagInner, innerCoords.x1, innerCoords.y1);
280
- return moveTo + arc1 + line + arc2 + " z";
281
- }
282
- getArc(radius, largeArcFlag, x, y) {
283
- var z = this.toFixed((this.chartData.size / 2) * radius);
284
- return `A ${z}, ${z} 0 ${largeArcFlag} ${this.toFixed(x)}, ${this.toFixed(y)}`;
285
- }
286
- setHybridType() {
287
- this.hybridType = window.innerWidth > 1340 ? "doughnut0" : "bar1";
288
- }
289
- getType() {
290
- return this.chartType === "hybrid" ? this.hybridType : this.chartType;
291
- }
292
- /* GET THE DATA */
293
- async getData() {
294
- this.slicesData = [];
295
- let acc = 0;
296
- const children = this.el.querySelectorAll("wm-chart-slice");
297
- this.total = Array.from(children).reduce((total, slice) => (total += parseInt(slice.getAttribute("amount") || "0")), 0);
298
- children.forEach((c, i) => {
299
- const amount = parseInt(c.getAttribute("amount") || "0");
300
- const perc = this.amountToPercent(amount, true);
301
- // determine whether the slice is in a cluster of small values
302
- // to avoid percentage text overlap for small values
303
- const prev = children[i === 0 ? children.length - 1 : i - 1];
304
- const prevPerc = this.amountToPercent(parseInt(prev.getAttribute("amount") || "0"), true);
305
- const next = children[i === children.length - 1 ? 0 : i + 1];
306
- const nextPerc = this.amountToPercent(parseInt(next.getAttribute("amount") || "0"), true);
307
- const isSmall = perc < 4;
308
- const prevIsSmall = prevPerc < 5;
309
- const nextIsSmall = nextPerc < 5;
310
- let inSmallCluster = isSmall && (prevIsSmall || nextIsSmall);
311
- // because <1% slice percentage text has an additional character
312
- // the inSmallCluster threshold needs to be widened for that slice only
313
- const lessThanOnePerc = perc === 0 && amount > 0;
314
- if (lessThanOnePerc && (nextPerc < 8 || prevPerc < 8)) {
315
- inSmallCluster = true;
316
- }
317
- // for bar5, first color should be skipped unless notStartedColor is set to true
318
- const ind = this.getType() === "bar5" ? (this.notStartedColor ? i : i + 1) : i;
319
- const color = this.types[this.getType()].colors[ind];
320
- const sliceData = {
321
- amount: amount,
322
- perc: perc,
323
- legend: c.getAttribute("legend"),
324
- color: color || "#d4d4d4",
325
- offset: acc,
326
- id: `${this.uid}-${i + 1}`,
327
- title: c.getAttribute("popover-title"),
328
- text: c.getAttribute("popover-text"),
329
- buttonText: c.getAttribute("popover-button-text"),
330
- sliceRef: c,
331
- inSmallCluster: inSmallCluster,
332
- };
333
- acc += amount;
334
- this.slicesData.push(sliceData);
335
- });
336
- this.chartData = this.types[this.getType()];
337
- }
338
- getSliceEls() {
339
- if (this.svgEl) {
340
- this.sliceEls = Array.from(this.svgEl.querySelectorAll(this.chartData.isBar ? "rect" : "path"));
341
- }
342
- }
343
- handleResize() {
344
- if (this.chartType === "hybrid") {
345
- this.debouncedUpdate();
346
- }
347
- }
348
- async componentWillLoad() {
349
- if (!this.label) {
350
- throw new Error("For accessibility purposes, you must provide a label for the chart. See https://components.watermarkinsights.com/chart for more information.");
351
- }
352
- if (this.chartType === "hybrid") {
353
- this.setHybridType();
354
- }
355
- await this.getData();
356
- }
357
- componentDidLoad() {
358
- this.getSliceEls();
359
- }
360
- componentDidUpdate() {
361
- this.getSliceEls();
362
- }
363
- handleSliceUpdate() {
364
- this.debouncedSliceUpdate();
365
- }
366
- /* RENDERING */
367
- renderFilter() {
368
- return (index.h("defs", null, index.h("filter", { id: "wmHoverDropShadow" }, index.h("feGaussianBlur", { stdDeviation: "3" }), index.h("feOffset", { result: "offsetblur" }), index.h("feFlood", { "flood-color": "#333" }), index.h("feComposite", { operator: "in", in2: "offsetblur" }), index.h("feMerge", null, index.h("feMergeNode", null), index.h("feMergeNode", { in: "SourceGraphic" })))));
369
- }
370
- // DOUGHNUT
371
- renderDoughnut() {
372
- const outerSize = this.chartData.size + this.chartData.padding;
373
- return (index.h("div", { class: "svg-wrapper doughnut-wrapper" }, index.h("svg", { width: outerSize + "px", height: outerSize + "px", ref: (el) => (this.svgEl = el), id: `graphic-${this.uid}`, class: `chart-svg doughnut-svg ${this.isTabbing ? "user-is-tabbing" : ""}` }, this.renderFilter(), this.slicesData.map((s) => this.renderPath(s)), this.getType() === "doughnut0" ? (index.h("text", { class: "value", x: "50%", y: "50%", "font-size": "1.5rem", "font-weight": "500", "text-anchor": "middle", "dominant-baseline": "middle" }, this.amountToPercent(this.slicesData[0].amount, true) + "%")) : (index.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 ? this.renderDoughnutText(s) : "")))))));
374
- }
375
- renderPath(s) {
376
- return (index.h("g", { transform: `translate(${this.chartData.padding / 2}, ${this.chartData.padding / 2})` }, index.h("path", { id: s.id, fill: s.amount ? s.color : "transparent", d: this.getPathData(s.amount, s.offset), onClick: (ev) => {
377
- if (this.popoverEl) {
378
- if (!this.isTabbing) {
379
- s.coords = { x: ev.clientX, y: ev.clientY };
380
- this.openPopover(s);
381
- }
382
- }
383
- }, onFocus: (ev) => {
384
- if (this.popoverEl) {
385
- if (this.isTabbing) {
386
- s.coords = functions.getPosition(ev.target);
387
- this.openPopover(s);
388
- }
389
- }
390
- }, onKeyDown: (ev) => {
391
- if (this.popoverEl && this.popoverEl.open && ev.keyCode === 13) {
392
- const popoverBtn = this.popoverEl.querySelector("button");
393
- popoverBtn && popoverBtn.click();
394
- }
395
- } }), index.h("text", { class: "sr-only" }, s.legend)));
396
- }
397
- renderDoughnutText(s) {
398
- if (!s.inSmallCluster) {
399
- const arcMiddle = this.amountToDegree(s.offset + s.amount / 2);
400
- let { x, y } = this.polarToCartesian(this.chartData.size / 2, 1.4, arcMiddle - 90);
401
- return (index.h("text", { class: "value", x: x + "px", y: y + "px" }, `${s.perc > 0 ? s.perc : "<1"}%`));
402
- }
403
- }
404
- // BAR
405
- renderBar() {
406
- return (index.h("div", { class: "svg-wrapper bar-wrapper" }, this.getType() === "bar1" ? (index.h("div", { class: "single-perc" }, this.amountToPercent(this.slicesData[0].amount, true) + "%")) : (""), this.drawAxis(), index.h("svg", { ref: (el) => (this.svgEl = el), id: `graphic-${this.uid}`, class: {
407
- "chart-svg bar-svg": true,
408
- "user-is-tabbing": this.isTabbing,
409
- "show-values": this.showValues === "percentage" || this.showValues === "amount",
410
- } }, this.renderFilter(), index.h("foreignObject", { class: this.getType() === "bar2" || this.getType() === "bar4" || this.getType() === "bar5" ? "focus-offset" : "" }, index.h("div", {
411
- // @ts-ignore
412
- xmlns: "http://www.w3.org/1999/xhtml", class: "tabbing-focus"
413
- })), this.slicesData.map((s, idx) => this.renderRect(s, idx)), this.getType() !== "bar1" ? (index.h("g", { class: "percs" }, this.slicesData.map((s) => (s.perc > 0 ? this.renderBarText(s) : "")))) : (""))));
414
- }
415
- renderRect(s, idx) {
416
- let y;
417
- switch (this.getType()) {
418
- case "bar2":
419
- case "bar4":
420
- case "bar5":
421
- y = this.showValues === "percentage" || this.showValues === "amount" ? "30px" : "0";
422
- break;
423
- default:
424
- y = "0";
425
- }
426
- return (index.h("g", { class: "barcontainer" }, index.h("style", null, ` #${s.id} {
427
- fill:${s.color};
428
- x: ${`${this.amountToPercent(s.offset, false)}%`};
429
- y: ${y};
430
- height: 30px;
431
- width: calc(${this.amountToPercent(s.amount, false)}%${idx !== this.slicesData.length - 1 ? " - 2px" : ""});
432
- }`), index.h("rect", { id: s.id, onClick: (ev) => {
433
- if (this.popoverEl) {
434
- if (!this.isTabbing) {
435
- s.coords = { x: ev.clientX, y: ev.clientY };
436
- this.openPopover(s);
437
- }
438
- }
439
- }, onFocus: (ev) => {
440
- if (this.popoverEl) {
441
- if (this.isTabbing) {
442
- s.coords = functions.getPosition(ev.target);
443
- this.openPopover(s);
444
- }
445
- }
446
- }, onKeyDown: (ev) => {
447
- if (this.popoverEl && this.popoverEl.open && ev.keyCode === 13) {
448
- const popoverBtn = this.popoverEl.querySelector("button");
449
- popoverBtn && popoverBtn.click();
450
- }
451
- } }), index.h("text", { class: "sr-only" }, s.legend)));
452
- }
453
- renderBarText(s) {
454
- let val;
455
- if (this.showValues === "percentage") {
456
- val = s.perc + "%";
457
- }
458
- else if (this.showValues === "amount") {
459
- val = s.amount;
460
- }
461
- else {
462
- return;
463
- }
464
- return (index.h("text", { class: "value", x: `${this.amountToPercent(s.offset, false) + this.amountToPercent(s.amount, false) / 2}%` }, val));
465
- }
466
- drawAxis() {
467
- if (this.getType() === "bar3") {
468
- return (index.h("svg", { class: "axis" }, index.h("line", { x1: "0", x2: "100%", y1: "0", y2: "0" }), index.h("line", { x1: "0", x2: "0", y1: "0", y2: "-85px" }), index.h("line", { class: "tick", x1: "0.5", x2: "0.5", y1: "0", y2: "6" }), index.h("text", { x: "0.5", y: "-6" }, "0%"), index.h("line", { class: "tick", x1: "100%", x2: "100%", y1: "0", y2: "6" }), index.h("text", { x: "100%", y: "-6" }, "100%")));
469
- }
470
- }
471
- renderCompletionMessage() {
472
- if (this.chartType === "hybrid" && this.completionMessage) {
473
- return index.h("span", { class: "completion-message" }, this.completionMessage);
474
- }
475
- }
476
- renderLegend() {
477
- // legend is hidden for bar1 type regardless of showLegend value
478
- if (this.showLegend) {
479
- const hasCluster = this.slicesData.reduce((hasCluster, cur) => (hasCluster = cur.inSmallCluster ? true : hasCluster), false);
480
- return (index.h("div", { class: "legend-wrapper" }, index.h("div", { class: `legend ${this.chartData.isBar ? "--top" : "--bottom"}`, "aria-hidden": "true" }, this.total > 0
481
- ? this.slicesData.map((s) => {
482
- // when both legend and amount are omitted, the legend is not shown for that particular option (it's been deactivated by the user)
483
- if (!!s.amount || !!s.legend) {
484
- return (index.h("div", { class: "legend-item" }, index.h("div", { class: "legend-color", style: { "background-color": s.color } }), index.h("div", { class: "legend-text" }, s.legend)));
485
- }
486
- })
487
- : ""), !this.chartData.isBar && hasCluster ? (index.h("div", { class: "cluster-warning" }, functions.intl.formatMessage({
488
- id: "chart.hiddenPercentages",
489
- defaultMessage: "Percentages smaller than 5% are not shown when too close to each other.",
490
- }), index.h("br", null), functions.intl.formatMessage({
491
- id: "chart.clickToSeeDetails",
492
- defaultMessage: "Click or use arrow keys to see details.",
493
- }))) : ("")));
494
- }
495
- }
496
- render() {
497
- return (index.h(index.Host, { role: "application", "aria-label": this.label +
498
- ", " +
499
- functions.intl.formatMessage({
500
- id: "chart.interactiveChart",
501
- defaultMessage: "Interactive chart. Use arrow keys to browse elements, press Tab to exit.",
502
- }), tabindex: "0" }, index.h("div", { class: `component-wrapper ${this.getType()}` }, index.h("label", { class: "label", id: `label-${this.uid}`, htmlFor: `graphic-${this.uid}` }, index.h("span", { class: "label-text" }, this.label), this.subinfo ? index.h("span", { class: "subinfo" }, this.subinfo) : ""), this.chartData.isBar ? this.renderLegend() : "", this.total > 0 && this.chartData.isBar ? this.renderBar() : this.renderDoughnut(), !this.chartData.isBar ? this.renderLegend() : "", index.h("priv-chart-popover", { class: this.isTabbing ? "user-is-tabbing" : "", ref: (el) => (this.popoverEl = el) }), this.renderCompletionMessage())));
503
- }
504
- get el() { return index.getElement(this); }
505
- };
506
- Chart.style = wmChartCss;
507
-
508
- exports.wm_chart = Chart;