@watermarkinsights/ripple 5.22.0-alpha.2 → 5.22.0-alpha.4

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 (269) hide show
  1. package/dist/cjs/{app-globals-70cb4536.js → app-globals-054d0c9e.js} +1 -1
  2. package/dist/cjs/{chartFunctions-369d5c6e.js → chartFunctions-d9aa9891.js} +39 -0
  3. package/dist/cjs/index-788526f5.js +10 -2
  4. package/dist/cjs/{interfaces-85d78ae9.js → interfaces-069f135e.js} +21 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/priv-calendar.cjs.entry.js +2 -2
  7. package/dist/{ripple/p-71a3be1c.entry.js → cjs/priv-chart-popover-old.cjs.entry.js} +145 -1
  8. package/dist/{ripple/p-0eb56759.entry.js → cjs/priv-chart-popover_2.cjs.entry.js} +175 -1
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +1 -1
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +1 -1
  11. package/dist/cjs/priv-option-list.cjs.entry.js +1 -1
  12. package/dist/cjs/ripple.cjs.js +2 -2
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +3 -3
  14. package/dist/cjs/wm-button.cjs.entry.js +2 -2
  15. package/dist/cjs/wm-chart-bar.cjs.entry.js +299 -0
  16. package/dist/cjs/wm-chart.cjs.entry.js +3 -3
  17. package/dist/cjs/wm-date-range.cjs.entry.js +5 -5
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +5 -5
  19. package/dist/cjs/wm-file-list.cjs.entry.js +1 -1
  20. package/dist/cjs/wm-file.cjs.entry.js +1 -1
  21. package/dist/cjs/wm-flyout.cjs.entry.js +1 -1
  22. package/dist/cjs/wm-input.cjs.entry.js +1 -1
  23. package/dist/cjs/wm-line-chart.cjs.entry.js +3 -3
  24. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +4 -4
  25. package/dist/cjs/wm-modal_3.cjs.entry.js +4 -4
  26. package/dist/cjs/wm-navigation_3.cjs.entry.js +4 -4
  27. package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
  28. package/dist/cjs/wm-nested-select.cjs.entry.js +3 -3
  29. package/dist/cjs/wm-optgroup.cjs.entry.js +1 -1
  30. package/dist/cjs/wm-option_2.cjs.entry.js +5 -5
  31. package/dist/cjs/wm-pagination.cjs.entry.js +1 -1
  32. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +4 -4
  33. package/dist/cjs/wm-search.cjs.entry.js +2 -2
  34. package/dist/cjs/wm-snackbar.cjs.entry.js +2 -2
  35. package/dist/cjs/wm-tab-item_3.cjs.entry.js +6 -6
  36. package/dist/cjs/wm-tag-input.cjs.entry.js +2 -2
  37. package/dist/cjs/wm-textarea.cjs.entry.js +1 -1
  38. package/dist/cjs/wm-timepicker.cjs.entry.js +2 -2
  39. package/dist/cjs/wm-toggletip.cjs.entry.js +3 -3
  40. package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
  41. package/dist/collection/collection-manifest.json +3 -0
  42. package/dist/collection/components/charts/chartFunctions.js +36 -1
  43. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +11 -9
  44. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +190 -112
  45. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +961 -0
  46. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +262 -0
  47. package/dist/collection/components/charts/wm-chart/wm-chart.js +2 -2
  48. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1071 -0
  49. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +423 -0
  50. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +903 -0
  51. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +155 -0
  52. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +2 -2
  53. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +2 -2
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  55. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
  56. package/dist/collection/components/datepickers/wm-date-range.js +5 -5
  57. package/dist/collection/components/datepickers/wm-datepicker.js +5 -5
  58. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +1 -1
  59. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +3 -3
  60. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +1 -1
  61. package/dist/collection/components/selects/wm-option/wm-option.js +1 -1
  62. package/dist/collection/components/selects/wm-select/wm-select.js +4 -4
  63. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  64. package/dist/collection/components/wm-button/wm-button.js +1 -1
  65. package/dist/collection/components/wm-file/wm-file.js +1 -1
  66. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  67. package/dist/collection/components/wm-flyout/wm-flyout.js +1 -1
  68. package/dist/collection/components/wm-input/wm-input.js +1 -1
  69. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  70. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  71. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  72. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  73. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +1 -1
  74. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +1 -1
  75. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +2 -2
  76. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  77. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  78. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  79. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  80. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  81. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  82. package/dist/collection/components/wm-search/wm-search.js +2 -2
  83. package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
  84. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +2 -2
  85. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +3 -3
  86. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  87. package/dist/collection/components/wm-tag-input/wm-tag-input.js +2 -2
  88. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  89. package/dist/collection/components/wm-timepicker/wm-timepicker.js +2 -2
  90. package/dist/collection/components/wm-toggletip/wm-toggletip.js +3 -3
  91. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  92. package/dist/collection/dev/chart-bar.js +110 -0
  93. package/dist/collection/global/interfaces.js +19 -0
  94. package/dist/esm/{app-globals-26c45c58.js → app-globals-20ff89a4.js} +1 -1
  95. package/dist/esm/{chartFunctions-02a60556.js → chartFunctions-f22160b5.js} +36 -1
  96. package/dist/esm/index-130e07bb.js +10 -2
  97. package/dist/esm/{interfaces-cc5b177f.js → interfaces-16deca17.js} +20 -1
  98. package/dist/esm/loader.js +2 -2
  99. package/dist/esm/priv-calendar.entry.js +2 -2
  100. package/dist/esm/priv-chart-popover-old.entry.js +141 -0
  101. package/dist/esm/priv-chart-popover_2.entry.js +170 -0
  102. package/dist/esm/priv-navigator-button.entry.js +1 -1
  103. package/dist/esm/priv-navigator-item.entry.js +1 -1
  104. package/dist/esm/priv-option-list.entry.js +1 -1
  105. package/dist/esm/ripple.js +2 -2
  106. package/dist/esm/wm-action-menu_2.entry.js +3 -3
  107. package/dist/esm/wm-button.entry.js +2 -2
  108. package/dist/esm/wm-chart-bar.entry.js +295 -0
  109. package/dist/esm/wm-chart.entry.js +3 -3
  110. package/dist/esm/wm-date-range.entry.js +5 -5
  111. package/dist/esm/wm-datepicker.entry.js +5 -5
  112. package/dist/esm/wm-file-list.entry.js +1 -1
  113. package/dist/esm/wm-file.entry.js +1 -1
  114. package/dist/esm/wm-flyout.entry.js +1 -1
  115. package/dist/esm/wm-input.entry.js +1 -1
  116. package/dist/esm/wm-line-chart.entry.js +3 -3
  117. package/dist/esm/wm-modal-pss_3.entry.js +4 -4
  118. package/dist/esm/wm-modal_3.entry.js +4 -4
  119. package/dist/esm/wm-navigation_3.entry.js +4 -4
  120. package/dist/esm/wm-navigator.entry.js +1 -1
  121. package/dist/esm/wm-nested-select.entry.js +3 -3
  122. package/dist/esm/wm-optgroup.entry.js +1 -1
  123. package/dist/esm/wm-option_2.entry.js +5 -5
  124. package/dist/esm/wm-pagination.entry.js +1 -1
  125. package/dist/esm/wm-progress-indicator_3.entry.js +4 -4
  126. package/dist/esm/wm-search.entry.js +2 -2
  127. package/dist/esm/wm-snackbar.entry.js +2 -2
  128. package/dist/esm/wm-tab-item_3.entry.js +6 -6
  129. package/dist/esm/wm-tag-input.entry.js +2 -2
  130. package/dist/esm/wm-textarea.entry.js +1 -1
  131. package/dist/esm/wm-timepicker.entry.js +2 -2
  132. package/dist/esm/wm-toggletip.entry.js +3 -3
  133. package/dist/esm/wm-uploader.entry.js +2 -2
  134. package/dist/esm-es5/{app-globals-26c45c58.js → app-globals-20ff89a4.js} +1 -1
  135. package/dist/esm-es5/{chartFunctions-02a60556.js → chartFunctions-f22160b5.js} +1 -1
  136. package/dist/esm-es5/index-130e07bb.js +1 -1
  137. package/dist/esm-es5/interfaces-16deca17.js +1 -0
  138. package/dist/esm-es5/loader.js +1 -1
  139. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  140. package/dist/esm-es5/priv-chart-popover-old.entry.js +1 -0
  141. package/dist/esm-es5/priv-chart-popover_2.entry.js +1 -0
  142. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  143. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  144. package/dist/esm-es5/priv-option-list.entry.js +1 -1
  145. package/dist/esm-es5/ripple.js +1 -1
  146. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  147. package/dist/esm-es5/wm-button.entry.js +1 -1
  148. package/dist/esm-es5/wm-chart-bar.entry.js +1 -0
  149. package/dist/esm-es5/wm-chart.entry.js +1 -1
  150. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  151. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  152. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  153. package/dist/esm-es5/wm-file.entry.js +1 -1
  154. package/dist/esm-es5/wm-flyout.entry.js +1 -1
  155. package/dist/esm-es5/wm-input.entry.js +1 -1
  156. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  157. package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
  158. package/dist/esm-es5/wm-modal_3.entry.js +1 -1
  159. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  160. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  161. package/dist/esm-es5/wm-nested-select.entry.js +1 -1
  162. package/dist/esm-es5/wm-optgroup.entry.js +1 -1
  163. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  164. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  165. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  166. package/dist/esm-es5/wm-search.entry.js +1 -1
  167. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  168. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  169. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  170. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  171. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  172. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  173. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  174. package/dist/ripple/{p-7176d77c.system.entry.js → p-04f8cae1.system.entry.js} +1 -1
  175. package/dist/ripple/{p-be4f76b4.entry.js → p-093dd5b3.entry.js} +1 -1
  176. package/dist/ripple/{p-f1dea7a8.system.entry.js → p-0b2a0825.system.entry.js} +1 -1
  177. package/dist/ripple/p-0b5e5682.js +1 -0
  178. package/dist/ripple/p-0d5884f6.system.entry.js +1 -0
  179. package/dist/ripple/{p-4e9f0f73.system.entry.js → p-1124978e.system.entry.js} +1 -1
  180. package/dist/ripple/{p-80554ae6.entry.js → p-12eaf2d7.entry.js} +1 -1
  181. package/dist/ripple/{p-f3216137.entry.js → p-1b7774ab.entry.js} +1 -1
  182. package/dist/ripple/p-1c133402.system.entry.js +1 -0
  183. package/dist/ripple/{p-e73d5896.entry.js → p-1c86be31.entry.js} +1 -1
  184. package/dist/ripple/{p-886b50fb.entry.js → p-21114d99.entry.js} +1 -1
  185. package/dist/ripple/{p-466e929a.system.entry.js → p-221dedba.system.entry.js} +1 -1
  186. package/dist/ripple/{p-ecafbfba.entry.js → p-22cbc43b.entry.js} +1 -1
  187. package/dist/ripple/{p-6eeec16f.entry.js → p-241c2d63.entry.js} +1 -1
  188. package/dist/ripple/p-25e10302.system.js +1 -0
  189. package/dist/ripple/{p-1ea4427b.entry.js → p-28890409.entry.js} +1 -1
  190. package/dist/ripple/{p-8f6aa68c.system.entry.js → p-2b15945c.system.entry.js} +1 -1
  191. package/dist/ripple/p-30874e40.entry.js +1 -0
  192. package/dist/ripple/{p-a0acef05.system.entry.js → p-30c0aa58.system.entry.js} +1 -1
  193. package/dist/ripple/{p-4cc3a15f.entry.js → p-31468e67.entry.js} +1 -1
  194. package/dist/ripple/{p-57abd67f.entry.js → p-366f253f.entry.js} +1 -1
  195. package/dist/ripple/{p-78339dc5.system.entry.js → p-37fbdcf9.system.entry.js} +1 -1
  196. package/dist/ripple/{p-579e1c9d.system.entry.js → p-3d1098fb.system.entry.js} +1 -1
  197. package/dist/ripple/p-403e834e.entry.js +1 -0
  198. package/dist/ripple/{p-b3682bbf.system.entry.js → p-43b61559.system.entry.js} +1 -1
  199. package/dist/ripple/{p-1d1952d9.system.js → p-4869f367.system.js} +1 -1
  200. package/dist/ripple/{p-1f71cd3d.entry.js → p-4ba001c1.entry.js} +1 -1
  201. package/dist/ripple/{p-da6363c6.js → p-55f2245c.js} +1 -1
  202. package/dist/ripple/{p-86113458.system.entry.js → p-6643047f.system.entry.js} +1 -1
  203. package/dist/ripple/{p-f496570f.system.entry.js → p-6a18191e.system.entry.js} +1 -1
  204. package/dist/ripple/{p-f7543de4.entry.js → p-6ae45e19.entry.js} +1 -1
  205. package/dist/ripple/{p-52809f00.entry.js → p-6e6a9598.entry.js} +1 -1
  206. package/dist/ripple/{p-4b427510.entry.js → p-72643f00.entry.js} +1 -1
  207. package/dist/ripple/{p-b1b9f0de.system.entry.js → p-743536ae.system.entry.js} +1 -1
  208. package/dist/ripple/{p-2e6a00b8.system.entry.js → p-7568137d.system.entry.js} +1 -1
  209. package/dist/ripple/{p-0339b464.entry.js → p-7781f941.entry.js} +1 -1
  210. package/dist/ripple/{p-241e4847.system.entry.js → p-780de72e.system.entry.js} +1 -1
  211. package/dist/ripple/p-784fc89d.system.js +1 -0
  212. package/dist/ripple/{p-be8f0d4c.entry.js → p-7a6d6c76.entry.js} +1 -1
  213. package/dist/ripple/p-7b6a4bd6.entry.js +1 -0
  214. package/dist/ripple/{p-c9c76589.entry.js → p-7cd03a52.entry.js} +1 -1
  215. package/dist/ripple/{p-2fc989aa.system.entry.js → p-87992e3d.system.entry.js} +1 -1
  216. package/dist/ripple/p-87e8cef4.system.js +1 -0
  217. package/dist/ripple/{p-0c737405.system.entry.js → p-8bb49d8f.system.entry.js} +1 -1
  218. package/dist/ripple/{p-4edc18b1.system.entry.js → p-8c378a26.system.entry.js} +1 -1
  219. package/dist/ripple/{p-6d0f7f1d.system.entry.js → p-8d858325.system.entry.js} +1 -1
  220. package/dist/ripple/{p-5f54cc72.entry.js → p-8f96f4f8.entry.js} +1 -1
  221. package/dist/ripple/{p-f5c59ec1.entry.js → p-909f8797.entry.js} +1 -1
  222. package/dist/ripple/{p-0ed21cab.system.entry.js → p-91145304.system.entry.js} +1 -1
  223. package/dist/ripple/{p-cc85cd9b.entry.js → p-94ec4e2c.entry.js} +1 -1
  224. package/dist/ripple/{p-e9038796.entry.js → p-966f2c9e.entry.js} +1 -1
  225. package/dist/ripple/{p-ab72ce56.system.entry.js → p-984b3aa2.system.entry.js} +1 -1
  226. package/dist/ripple/{p-de03a626.entry.js → p-99f4dc24.entry.js} +1 -1
  227. package/dist/ripple/{p-c4648757.system.entry.js → p-9ea227e3.system.entry.js} +1 -1
  228. package/dist/ripple/{p-87e4a0d5.system.entry.js → p-9f089a36.system.entry.js} +1 -1
  229. package/dist/ripple/{p-5b225f21.system.entry.js → p-a7bddbfd.system.entry.js} +1 -1
  230. package/dist/ripple/{p-f546eefa.entry.js → p-b00cdcc6.entry.js} +1 -1
  231. package/dist/ripple/{p-cd77c8a1.system.entry.js → p-b2875298.system.entry.js} +1 -1
  232. package/dist/ripple/{p-22b8d0a4.system.entry.js → p-b41dfeea.system.entry.js} +1 -1
  233. package/dist/ripple/{p-22cbfae3.entry.js → p-b52e3001.entry.js} +1 -1
  234. package/dist/ripple/{p-822d0762.system.entry.js → p-b6d2b2c9.system.entry.js} +1 -1
  235. package/dist/ripple/{p-d8e7f0ab.system.entry.js → p-b8d69c73.system.entry.js} +1 -1
  236. package/dist/ripple/{p-5a38e30d.system.entry.js → p-bd7a5b99.system.entry.js} +1 -1
  237. package/dist/ripple/{p-6324b988.entry.js → p-c1cbb630.entry.js} +1 -1
  238. package/dist/ripple/{p-65b87f9b.entry.js → p-c24b745f.entry.js} +1 -1
  239. package/dist/ripple/p-c464dfd1.entry.js +1 -0
  240. package/dist/ripple/{p-b5bfb1a3.system.entry.js → p-c5c98974.system.entry.js} +1 -1
  241. package/dist/ripple/{p-07dd157d.entry.js → p-cc0cbbac.entry.js} +1 -1
  242. package/dist/ripple/{p-223efa2f.system.entry.js → p-d2ed3598.system.entry.js} +1 -1
  243. package/dist/ripple/{p-d05bd699.entry.js → p-d6e81f61.entry.js} +1 -1
  244. package/dist/ripple/{p-365ab12b.entry.js → p-e0743224.entry.js} +1 -1
  245. package/dist/ripple/{p-cc1ab21b.entry.js → p-e50d77b9.entry.js} +1 -1
  246. package/dist/ripple/{p-a2646792.system.entry.js → p-e5af888f.system.entry.js} +1 -1
  247. package/dist/ripple/p-efa7cdcc.js +1 -0
  248. package/dist/ripple/{p-d66d99cd.system.entry.js → p-f381b796.system.entry.js} +1 -1
  249. package/dist/ripple/ripple.esm.js +1 -1
  250. package/dist/ripple/ripple.js +1 -1
  251. package/dist/types/components/charts/chartFunctions.d.ts +9 -1
  252. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +20 -11
  253. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +26 -0
  254. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +1 -1
  255. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +58 -0
  256. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +19 -0
  257. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +1 -1
  258. package/dist/types/components.d.ts +124 -6
  259. package/dist/types/global/interfaces.d.ts +41 -0
  260. package/package.json +2 -2
  261. package/dist/cjs/priv-chart-popover.cjs.entry.js +0 -145
  262. package/dist/esm/priv-chart-popover.entry.js +0 -141
  263. package/dist/esm-es5/interfaces-cc5b177f.js +0 -1
  264. package/dist/esm-es5/priv-chart-popover.entry.js +0 -1
  265. package/dist/ripple/p-18395d35.system.js +0 -1
  266. package/dist/ripple/p-2732bddd.js +0 -1
  267. package/dist/ripple/p-2ecde7a9.system.js +0 -1
  268. package/dist/ripple/p-42fa7a77.system.js +0 -1
  269. package/dist/ripple/p-9f10c71b.js +0 -1
@@ -0,0 +1,423 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { chartPaletteDiscrete, chartPaletteSemantic, } from "../../../global/interfaces";
3
+ import { formatDisplayValue, suffixNumber, renderInstructionsText, findLargestNiceInterval, getMaxTicks, } from "../chartFunctions";
4
+ import { chartMessages } from "../../../global/intl";
5
+ export class ChartBar {
6
+ constructor() {
7
+ this.gridMax = 0;
8
+ this.config = undefined;
9
+ this.data = undefined;
10
+ this.printMode = undefined;
11
+ this.subinfo = undefined;
12
+ this.processedData = [];
13
+ this.gridInfo = undefined;
14
+ }
15
+ ////////////////////////////////////////////////////////////
16
+ // #region Getters
17
+ ////////////////////////////////////////////////////////////
18
+ get colorPalette() {
19
+ var _a, _b;
20
+ let palette = chartPaletteDiscrete; // default to discrete palette
21
+ if (((_a = this.config) === null || _a === void 0 ? void 0 : _a.colors) === "semantic") {
22
+ palette = chartPaletteSemantic;
23
+ }
24
+ else if (((_b = this.config) === null || _b === void 0 ? void 0 : _b.colors) === "discrete") {
25
+ palette = chartPaletteDiscrete;
26
+ }
27
+ return palette;
28
+ }
29
+ get sort() {
30
+ var _a;
31
+ return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.sort) || "none"; // default to none
32
+ }
33
+ get showLegend() {
34
+ var _a;
35
+ return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.showLegend) || "none"; // default to none
36
+ }
37
+ get subinfoText() {
38
+ var _a;
39
+ return this.subinfo || ((_a = this.config) === null || _a === void 0 ? void 0 : _a.subinfo) || "";
40
+ }
41
+ // #endregion getters
42
+ ////////////////////////////////////////////////////////////
43
+ // #region Component lifecycle
44
+ ////////////////////////////////////////////////////////////
45
+ componentDidLoad() {
46
+ const resizeObserver = new ResizeObserver(() => {
47
+ if (this.processedData) {
48
+ this.gridInfo = this.calculateGridInfo();
49
+ }
50
+ });
51
+ resizeObserver.observe(this.barAreaEl);
52
+ }
53
+ // #endregion component lifecycle
54
+ ////////////////////////////////////////////////////////////
55
+ // #region Data processing
56
+ ////////////////////////////////////////////////////////////
57
+ processData() {
58
+ if (this.config && this.data) {
59
+ const itemTotal = this.data.reduce((acc, item) => acc + item.amount, 0);
60
+ const largest = Math.max(...this.data.map((item) => item.amount));
61
+ // Use config.gridMax if specified, otherwise calculate from data
62
+ // Even when the grid is not displayed (undefined), we need a gridMax to calculate the bar widths
63
+ this.gridMax =
64
+ this.config.gridMax === "auto" || this.config.gridMax === undefined ? largest : this.config.gridMax;
65
+ const processedItems = this.processItems(itemTotal);
66
+ if (this.sort === "ascending") {
67
+ processedItems.sort((a, b) => a.amount - b.amount);
68
+ }
69
+ else if (this.sort === "descending") {
70
+ processedItems.sort((a, b) => b.amount - a.amount);
71
+ }
72
+ this.processedData = processedItems;
73
+ }
74
+ }
75
+ processItems(itemTotal) {
76
+ var _a, _b;
77
+ const valueFormat = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.valueFormat) || "amount"; // default to amount
78
+ const printModeFormat = ((_b = this.config) === null || _b === void 0 ? void 0 : _b.printModeFormat) || "amount"; // default to amount
79
+ const defaultColor = "wmcolor-dataviz-discrete-01";
80
+ return this.data.map((item, index) => ({
81
+ label: item.label,
82
+ amount: item.amount,
83
+ gridPercent: (item.amount / this.gridMax) * 100,
84
+ displayValue: formatDisplayValue(item.amount, itemTotal, valueFormat),
85
+ printValue: formatDisplayValue(item.amount, itemTotal, printModeFormat),
86
+ color: item.color || (index < this.colorPalette.length ? this.colorPalette[index] : defaultColor),
87
+ popoverTitle: item.popoverTitle,
88
+ popoverText: item.popoverText,
89
+ popoverButtonText: item.popoverButtonText,
90
+ }));
91
+ }
92
+ propogateExternalLegendData() {
93
+ document.querySelectorAll("wm-chart-legend").forEach((legend) => {
94
+ if (legend.chartIds.includes(this.el.id)) {
95
+ legend.processedData = this.processedData;
96
+ }
97
+ });
98
+ }
99
+ calculateGridInfo() {
100
+ const barAreaWidth = this.barAreaEl.getBoundingClientRect().width;
101
+ const maxTicks = barAreaWidth > 0 ? getMaxTicks(barAreaWidth) : 1;
102
+ const { numIntervals, interval } = findLargestNiceInterval(maxTicks, this.gridMax);
103
+ const tickLabels = [];
104
+ for (let i = 1; i <= numIntervals; i++) {
105
+ tickLabels.push(suffixNumber(i * interval));
106
+ }
107
+ return {
108
+ numTicks: numIntervals,
109
+ interval: interval,
110
+ backgroundSize: `${100 / numIntervals}%`,
111
+ tickLabels: tickLabels,
112
+ };
113
+ }
114
+ // #endregion data processing
115
+ ////////////////////////////////////////////////////////////
116
+ // #region Keyboard interaction and Event handling
117
+ ////////////////////////////////////////////////////////////
118
+ handleChartKeyDown(ev) {
119
+ switch (ev.key) {
120
+ case "ArrowDown":
121
+ ev.preventDefault();
122
+ this.focusBar(0);
123
+ break;
124
+ case "Tab":
125
+ this.clearFocus();
126
+ break;
127
+ case "Escape":
128
+ ev.preventDefault();
129
+ ev.stopPropagation();
130
+ if (this.popoverEl.open) {
131
+ this.popoverEl.open = false;
132
+ }
133
+ break;
134
+ }
135
+ }
136
+ handleBarKeyDown(ev, barIdx) {
137
+ switch (ev.key) {
138
+ case "ArrowUp":
139
+ ev.preventDefault();
140
+ ev.stopPropagation();
141
+ this.focusBar(barIdx - 1);
142
+ break;
143
+ case "ArrowDown":
144
+ ev.preventDefault();
145
+ ev.stopPropagation();
146
+ this.focusBar(barIdx + 1);
147
+ break;
148
+ case "Enter":
149
+ if (this.popoverEl.open) {
150
+ const popoverBtn = this.popoverEl.querySelector("button");
151
+ popoverBtn && popoverBtn.click();
152
+ }
153
+ break;
154
+ }
155
+ }
156
+ handleBarClick(ev, idx) {
157
+ if (this.processedData) {
158
+ this.openPopover(this.processedData[idx], { x: ev.clientX, y: ev.clientY });
159
+ this.highlightBar(idx);
160
+ }
161
+ }
162
+ handleExternalLegendItemClick(ev) {
163
+ if (ev.target.nodeName === "WM-CHART-LEGEND") {
164
+ // Only considers external legends, event target of internal legends is the chart
165
+ const legendEl = ev.target;
166
+ if (legendEl.chartIds.includes(this.el.id)) {
167
+ this.highlightBar(ev.detail.idx);
168
+ }
169
+ }
170
+ }
171
+ handleInternalLegendItemClick(ev) {
172
+ const legendEl = ev.target;
173
+ if (legendEl.chartIds.includes(this.el.id)) {
174
+ this.highlightBar(ev.detail.idx);
175
+ }
176
+ }
177
+ handleDocumentClick(_ev) {
178
+ // Clear highlights when highlight is set from an external legend (not opening a popover)
179
+ if (!this.popoverEl.open) {
180
+ this.clearHighlights();
181
+ }
182
+ }
183
+ // #endregion keyboard interaction and event handling
184
+ ////////////////////////////////////////////////////////////
185
+ // #region Focus and Highlighting
186
+ ////////////////////////////////////////////////////////////
187
+ focusBar(barIdx) {
188
+ const bars = this.el.shadowRoot.querySelectorAll(".bar");
189
+ const wrappedIdx = ((barIdx % bars.length) + bars.length) % bars.length;
190
+ const barToFocus = bars[wrappedIdx];
191
+ barToFocus.focus();
192
+ this.highlightBar(wrappedIdx);
193
+ const cornerOffset = 12;
194
+ const processedItem = this.processedData[wrappedIdx];
195
+ this.openPopover(processedItem, {
196
+ x: barToFocus.getBoundingClientRect().left + cornerOffset,
197
+ y: barToFocus.getBoundingClientRect().top + cornerOffset,
198
+ });
199
+ }
200
+ handlePopoverOpenChanged(_ev) {
201
+ setTimeout(() => {
202
+ // allow time for the popover to reopen if the click that closed it was on a bar, to prevent flash
203
+ if (this.popoverEl.open) {
204
+ this.highlightBar(this.processedData.findIndex((item) => { var _a; return item.label === ((_a = this.popoverEl.chartData) === null || _a === void 0 ? void 0 : _a.label); }));
205
+ }
206
+ else {
207
+ this.clearHighlights();
208
+ }
209
+ }, 30);
210
+ }
211
+ openPopover(clickedProcessedData, coords) {
212
+ let matchingChartData = this.data.find((item) => item.label === clickedProcessedData.label);
213
+ if (matchingChartData) {
214
+ this.popoverEl.chartData = matchingChartData;
215
+ this.popoverEl.header = matchingChartData.popoverTitle || this.config.popoverTitle || "";
216
+ this.popoverEl.text = matchingChartData.popoverText || this.config.popoverText || "";
217
+ this.popoverEl.buttonText = matchingChartData.popoverButtonText || this.config.popoverButtonText || "";
218
+ this.popoverEl.coords = coords;
219
+ window.setTimeout(() => {
220
+ this.popoverEl.open = true;
221
+ this.popoverEl.announceContents();
222
+ }, 30);
223
+ }
224
+ }
225
+ clearHighlights() {
226
+ const barItems = this.el.shadowRoot.querySelectorAll(".bar-wrapper");
227
+ barItems.forEach((barItem) => {
228
+ barItem.classList.remove("faded");
229
+ });
230
+ this.wmChartBarHighlighted.emit({ idx: -1 });
231
+ }
232
+ highlightBar(idx) {
233
+ const barItems = this.el.shadowRoot.querySelectorAll(".bar-wrapper");
234
+ barItems.forEach((barItem) => {
235
+ barItem.classList.add("faded");
236
+ });
237
+ barItems[idx].classList.remove("faded");
238
+ this.wmChartBarHighlighted.emit({ idx: idx });
239
+ }
240
+ clearFocus() {
241
+ if (this.popoverEl.open) {
242
+ this.popoverEl.open = false;
243
+ }
244
+ this.clearHighlights();
245
+ }
246
+ // #endregion focus and highlighting
247
+ ////////////////////////////////////////////////////////////
248
+ // #region Rendering
249
+ ////////////////////////////////////////////////////////////
250
+ renderBarLegends() {
251
+ return this.processedData.map((item) => (h("div", { key: `legend-${item.label}`, class: "bar-legend" }, item.label)));
252
+ }
253
+ renderBars() {
254
+ // Use effective grid max (numTicks * interval) for accurate bar sizing
255
+ const effectiveGridMax = this.gridInfo.numTicks * this.gridInfo.interval;
256
+ return this.processedData.map((item, idx) => {
257
+ const barPercent = effectiveGridMax > 0 ? (item.amount / effectiveGridMax) * 100 : 0;
258
+ return (h("div", { key: `bar-${item.label}`, class: "bar-wrapper" }, h("div", { class: "bar", style: { width: `${barPercent}%`, backgroundColor: `var(--${item.color})` }, onClick: (ev) => this.handleBarClick(ev, idx), onKeyDown: (ev) => this.handleBarKeyDown(ev, idx), tabindex: "-1", "aria-label": `${item.label} ${item.displayValue}` }), h("span", { class: "value", style: { insetInlineStart: `${barPercent}%` } }, item.displayValue)));
259
+ });
260
+ }
261
+ renderXAxis() {
262
+ var _a;
263
+ return (h("div", { class: "x-axis", "aria-hidden": "true" }, h("div", { class: "tick zero" }, h("span", null, "0")), (_a = this.gridInfo) === null || _a === void 0 ? void 0 :
264
+ _a.tickLabels.map((label) => (h("div", { class: "tick", key: label }, h("span", null, label))))));
265
+ }
266
+ renderGrid() {
267
+ return h("div", { class: "grid-lines", style: { "--background-size": this.gridInfo.backgroundSize } });
268
+ }
269
+ renderLegend(orientation) {
270
+ var _a, _b, _c;
271
+ return (h("div", { class: `legend --${orientation} --${this.showLegend}` }, h("wm-chart-legend", { orientation: orientation, chartIds: this.el.id, processedData: this.processedData, printMode: (_c = (_a = this.printMode) !== null && _a !== void 0 ? _a : (_b = this.config) === null || _b === void 0 ? void 0 : _b.printMode) !== null && _c !== void 0 ? _c : false, onWmLegendItemClick: (ev) => this.handleInternalLegendItemClick(ev) })));
272
+ }
273
+ // #endregion rendering
274
+ render() {
275
+ var _a, _b, _c, _d, _e, _f, _g;
276
+ const rowCount = this.processedData.length || 1;
277
+ return (h(Host, { key: '0f82b57689d5de9f34d1fb2ea87789d84074c293' }, h("div", { key: 'fd9fe549a2b47456e5d20ee83aea0ca0e70d01cb', class: "component-wrapper", tabindex: "0", role: "application", onKeyDown: (ev) => this.handleChartKeyDown(ev), onBlur: () => this.clearFocus(), "aria-roledescription": chartMessages.interactiveChart, "aria-describedby": "chart-instructions", "aria-label": (_a = this.config) === null || _a === void 0 ? void 0 : _a.label }, h("div", { key: '953243f03efeb1e5f32e5f6009ad5194b21c6cba', class: "popover-wrapper" }, h("priv-chart-popover", { key: '94d6fee18be1b2fe7b8fbfdcc0e9bb50c3f3c4d4', ref: (el) => (this.popoverEl = el), onIntChartPopoverOpenChanged: (ev) => this.handlePopoverOpenChanged(ev) })), h("label", { key: '6058b7bbb9611712bd5e2e27506b9351059e3b5b', id: "label", class: `label --${(_b = this.config) === null || _b === void 0 ? void 0 : _b.labelPosition}` }, h("span", { key: '33b1894e82130d95538f9fc1972f6514ac172ea5', class: "label-text" }, (_c = this.config) === null || _c === void 0 ? void 0 : _c.label), this.subinfoText ? h("span", { class: "subinfo" }, this.subinfoText) : ""), this.showLegend === "top" && this.renderLegend("horizontal"), h("div", { key: '291776c96a78d58b9a8de6d1ccf19fb50f9da1b9', class: "chart-wrapper" }, h("div", { key: 'c93c357c6dc21f65854bdabfefb87fb6212a7dcc', class: "chart-left-side" }, this.showLegend === "left" && this.renderLegend("vertical"), h("div", { key: '80d55c2a55738e4f1c4ef86719896b4defebf02c', class: "category-axis-label" }, h("span", { key: '44e43a5721b32446e3947f95596cc3450909832b', class: "axis-label-text" }, (_d = this.config) === null || _d === void 0 ? void 0 : _d.categoryAxisLabel))), h("div", { key: '631d8f398a748e4f5443c0ac990771ac1cfacbd3', class: "chart-center" }, h("div", { key: '23ad663df36824c05d9cc9cd0a1bc1c5d483612b', class: "chart-area", style: { "--row-count": rowCount.toString() } }, this.processedData && this.renderBarLegends(), h("div", { key: '4d6c68f1a3524bc0ede3abeda145a144442f36ae', class: "bar-area", ref: (el) => (this.barAreaEl = el) }, this.gridInfo && ((_e = this.config) === null || _e === void 0 ? void 0 : _e.gridMax) != undefined && this.renderGrid(), this.gridInfo && this.processedData && this.renderBars())), h("div", { key: 'ece79d8b04cb8d3cca95ef1df38f6abd3dd24a7a', class: "value-axis-label" }, h("span", { key: 'c06ddae664f516a6f06118c5903526008056c96c', class: "axis-label-text" }, (_f = this.config) === null || _f === void 0 ? void 0 : _f.valueAxisLabel)), this.gridInfo && ((_g = this.config) === null || _g === void 0 ? void 0 : _g.gridMax) != undefined && this.renderXAxis()), h("div", { key: '44c3d8572a7c30ff4b04202cf08251b18882547f', class: "chart-right-side" }, this.showLegend === "right" && this.renderLegend("vertical"))), this.showLegend === "bottom" && this.renderLegend("horizontal"), renderInstructionsText())));
278
+ }
279
+ static get is() { return "wm-chart-bar"; }
280
+ static get encapsulation() { return "shadow"; }
281
+ static get originalStyleUrls() {
282
+ return {
283
+ "$": ["wm-chart-bar.scss"]
284
+ };
285
+ }
286
+ static get styleUrls() {
287
+ return {
288
+ "$": ["wm-chart-bar.css"]
289
+ };
290
+ }
291
+ static get properties() {
292
+ return {
293
+ "config": {
294
+ "type": "unknown",
295
+ "mutable": false,
296
+ "complexType": {
297
+ "original": "ChartConfig",
298
+ "resolved": "undefined | { label: string; labelPosition: \"top\" | \"none\"; labelWidth: string; valueAxisLabel: string; categoryAxisLabel: string; printMode: boolean; printModeFormat: \"amount\" | \"percentage\"; gridMax?: number | \"auto\" | undefined; sort?: \"none\" | \"ascending\" | \"descending\" | undefined; showLegend?: \"top\" | \"bottom\" | \"left\" | \"right\" | \"none\" | undefined; subinfo?: string | undefined; completionMessage?: string | undefined; valueFormat?: \"none\" | \"amount\" | \"percentage\" | undefined; colors?: \"discrete\" | \"semantic\" | undefined; popoverTitle?: string | undefined; popoverText?: string | undefined; popoverButtonText?: string | undefined; }",
299
+ "references": {
300
+ "ChartConfig": {
301
+ "location": "import",
302
+ "path": "../../../global/interfaces",
303
+ "id": "src/global/interfaces.ts::ChartConfig"
304
+ }
305
+ }
306
+ },
307
+ "required": false,
308
+ "optional": true,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": ""
312
+ }
313
+ },
314
+ "data": {
315
+ "type": "unknown",
316
+ "mutable": false,
317
+ "complexType": {
318
+ "original": "ChartData[]",
319
+ "resolved": "ChartData[] | undefined",
320
+ "references": {
321
+ "ChartData": {
322
+ "location": "import",
323
+ "path": "../../../global/interfaces",
324
+ "id": "src/global/interfaces.ts::ChartData"
325
+ }
326
+ }
327
+ },
328
+ "required": false,
329
+ "optional": true,
330
+ "docs": {
331
+ "tags": [],
332
+ "text": ""
333
+ }
334
+ },
335
+ "printMode": {
336
+ "type": "boolean",
337
+ "mutable": false,
338
+ "complexType": {
339
+ "original": "boolean",
340
+ "resolved": "boolean | undefined",
341
+ "references": {}
342
+ },
343
+ "required": false,
344
+ "optional": true,
345
+ "docs": {
346
+ "tags": [],
347
+ "text": ""
348
+ },
349
+ "attribute": "print-mode",
350
+ "reflect": false
351
+ },
352
+ "subinfo": {
353
+ "type": "string",
354
+ "mutable": false,
355
+ "complexType": {
356
+ "original": "string",
357
+ "resolved": "string | undefined",
358
+ "references": {}
359
+ },
360
+ "required": false,
361
+ "optional": true,
362
+ "docs": {
363
+ "tags": [],
364
+ "text": ""
365
+ },
366
+ "attribute": "subinfo",
367
+ "reflect": false
368
+ }
369
+ };
370
+ }
371
+ static get states() {
372
+ return {
373
+ "processedData": {},
374
+ "gridInfo": {}
375
+ };
376
+ }
377
+ static get events() {
378
+ return [{
379
+ "method": "wmChartBarHighlighted",
380
+ "name": "wmChartBarHighlighted",
381
+ "bubbles": true,
382
+ "cancelable": true,
383
+ "composed": true,
384
+ "docs": {
385
+ "tags": [],
386
+ "text": ""
387
+ },
388
+ "complexType": {
389
+ "original": "{ idx: number }",
390
+ "resolved": "{ idx: number; }",
391
+ "references": {}
392
+ }
393
+ }];
394
+ }
395
+ static get elementRef() { return "el"; }
396
+ static get watchers() {
397
+ return [{
398
+ "propName": "config",
399
+ "methodName": "processData"
400
+ }, {
401
+ "propName": "data",
402
+ "methodName": "processData"
403
+ }, {
404
+ "propName": "processedData",
405
+ "methodName": "propogateExternalLegendData"
406
+ }];
407
+ }
408
+ static get listeners() {
409
+ return [{
410
+ "name": "wmLegendItemClick",
411
+ "method": "handleExternalLegendItemClick",
412
+ "target": "document",
413
+ "capture": false,
414
+ "passive": false
415
+ }, {
416
+ "name": "click",
417
+ "method": "handleDocumentClick",
418
+ "target": "document",
419
+ "capture": true,
420
+ "passive": false
421
+ }];
422
+ }
423
+ }