@watermarkinsights/ripple 5.13.0 → 5.13.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/dist/cjs/app-globals-6l2OXl3R.js +92 -0
  2. package/dist/cjs/chartFunctions-uCzSt0yo.js +741 -0
  3. package/dist/cjs/functions-CqAwq8Fq.js +10526 -0
  4. package/dist/cjs/index-Cig4P4gJ.js +2086 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-C7YbtGnk.js +37 -0
  7. package/dist/cjs/intl-BUs7ck9m.js +283 -0
  8. package/dist/cjs/loader.cjs.js +13 -0
  9. package/dist/cjs/priv-calendar.cjs.entry.js +568 -0
  10. package/dist/cjs/priv-chart-popover.cjs.entry.js +136 -0
  11. package/dist/cjs/priv-navigator-button_2.cjs.entry.js +54 -0
  12. package/dist/cjs/priv-option-list_2.cjs.entry.js +556 -0
  13. package/dist/cjs/ripple.cjs.js +25 -0
  14. package/dist/cjs/wm-action-menu_4.cjs.entry.js +701 -0
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +20 -0
  16. package/dist/cjs/wm-chart.cjs.entry.js +159 -0
  17. package/dist/cjs/wm-date-range.cjs.entry.js +479 -0
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +249 -0
  19. package/dist/cjs/wm-file-list.cjs.entry.js +20 -0
  20. package/dist/cjs/wm-file.cjs.entry.js +184 -0
  21. package/dist/cjs/wm-flyout.cjs.entry.js +169 -0
  22. package/dist/cjs/wm-input.cjs.entry.js +113 -0
  23. package/dist/cjs/wm-line-chart.cjs.entry.js +451 -0
  24. package/dist/cjs/wm-modal-footer.cjs.entry.js +46 -0
  25. package/dist/cjs/wm-modal-header.cjs.entry.js +38 -0
  26. package/dist/cjs/wm-modal-pss-footer.cjs.entry.js +42 -0
  27. package/dist/cjs/wm-modal-pss-header.cjs.entry.js +41 -0
  28. package/dist/cjs/wm-modal-pss.cjs.entry.js +137 -0
  29. package/dist/cjs/wm-modal.cjs.entry.js +135 -0
  30. package/dist/cjs/wm-navigation-hamburger.cjs.entry.js +50 -0
  31. package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-navigation-item.cjs.entry.js} +12 -24
  32. package/dist/cjs/wm-navigation.cjs.entry.js +118 -0
  33. package/dist/cjs/wm-navigator.cjs.entry.js +329 -0
  34. package/dist/{ripple/wm-search.entry.js → cjs/wm-nested-select.cjs.entry.js} +273 -171
  35. package/dist/cjs/wm-optgroup.cjs.entry.js +70 -0
  36. package/dist/cjs/wm-pagination.cjs.entry.js +225 -0
  37. package/dist/cjs/wm-progress-indicator.cjs.entry.js +109 -0
  38. package/dist/cjs/wm-progress-monitor.cjs.entry.js +73 -0
  39. package/dist/cjs/wm-progress-slice.cjs.entry.js +15 -0
  40. package/dist/cjs/wm-search.cjs.entry.js +210 -0
  41. package/dist/cjs/wm-select.cjs.entry.js +251 -0
  42. package/dist/cjs/wm-tab-item.cjs.entry.js +65 -0
  43. package/dist/cjs/wm-tab-list.cjs.entry.js +177 -0
  44. package/dist/cjs/wm-tab-panel.cjs.entry.js +34 -0
  45. package/dist/cjs/wm-tag-input.cjs.entry.js +879 -0
  46. package/dist/cjs/wm-tag-option.cjs.entry.js +37 -0
  47. package/dist/cjs/wm-textarea.cjs.entry.js +81 -0
  48. package/dist/cjs/wm-timepicker.cjs.entry.js +302 -0
  49. package/dist/cjs/wm-toggletip.cjs.entry.js +178 -0
  50. package/dist/cjs/wm-uploader.cjs.entry.js +315 -0
  51. package/dist/cjs/wm-wrapper.cjs.entry.js +19 -0
  52. package/dist/collection/collection-manifest.json +59 -0
  53. package/dist/collection/components/charts/chartFunctions.js +675 -0
  54. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +922 -0
  55. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +261 -0
  56. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +128 -0
  57. package/dist/collection/components/charts/wm-chart/wm-chart.css +1288 -0
  58. package/dist/collection/components/charts/wm-chart/wm-chart.js +445 -0
  59. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1080 -0
  60. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +742 -0
  61. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1288 -0
  62. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +271 -0
  63. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +922 -0
  64. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +154 -0
  65. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +124 -0
  66. package/dist/collection/components/datepickers/datepicker.css +1057 -0
  67. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1292 -0
  68. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +849 -0
  69. package/dist/collection/components/datepickers/wm-date-range.js +869 -0
  70. package/dist/collection/components/datepickers/wm-datepicker.js +538 -0
  71. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +931 -0
  72. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +791 -0
  73. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1194 -0
  74. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +644 -0
  75. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +843 -0
  76. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +265 -0
  77. package/dist/collection/components/selects/wm-option/wm-option.css +944 -0
  78. package/dist/collection/components/selects/wm-option/wm-option.js +539 -0
  79. package/dist/collection/components/selects/wm-select/wm-select.css +1117 -0
  80. package/dist/collection/components/selects/wm-select/wm-select.js +606 -0
  81. package/dist/collection/components/wm-action-menu/wm-action-menu.css +904 -0
  82. package/dist/collection/components/wm-action-menu/wm-action-menu.js +444 -0
  83. package/dist/collection/components/wm-button/wm-button.css +1371 -0
  84. package/dist/collection/components/wm-button/wm-button.js +510 -0
  85. package/dist/collection/components/wm-file/wm-file.css +940 -0
  86. package/dist/collection/components/wm-file/wm-file.js +423 -0
  87. package/dist/collection/components/wm-file-list/wm-file-list.css +833 -0
  88. package/dist/collection/components/wm-file-list/wm-file-list.js +47 -0
  89. package/dist/collection/components/wm-flyout/wm-flyout.css +1027 -0
  90. package/dist/collection/components/wm-flyout/wm-flyout.js +460 -0
  91. package/dist/collection/components/wm-input/wm-input.css +1017 -0
  92. package/dist/collection/components/wm-input/wm-input.js +498 -0
  93. package/dist/collection/components/wm-menuitem/wm-menuitem.css +904 -0
  94. package/dist/collection/components/wm-menuitem/wm-menuitem.js +425 -0
  95. package/dist/collection/components/wm-modal/wm-modal-footer.css +858 -0
  96. package/dist/collection/components/wm-modal/wm-modal-footer.js +152 -0
  97. package/dist/collection/components/wm-modal/wm-modal-header.css +857 -0
  98. package/dist/collection/components/wm-modal/wm-modal-header.js +83 -0
  99. package/dist/collection/components/wm-modal/wm-modal.css +905 -0
  100. package/dist/collection/components/wm-modal/wm-modal.js +356 -0
  101. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +865 -0
  102. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +148 -0
  103. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +859 -0
  104. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
  105. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +941 -0
  106. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
  107. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +860 -0
  108. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +120 -0
  109. package/dist/collection/components/wm-navigation/wm-navigation-item.css +869 -0
  110. package/dist/collection/components/wm-navigation/wm-navigation-item.js +99 -0
  111. package/dist/collection/components/wm-navigation/wm-navigation.css +911 -0
  112. package/dist/collection/components/wm-navigation/wm-navigation.js +192 -0
  113. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +863 -0
  114. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
  115. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +843 -0
  116. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +130 -0
  117. package/dist/collection/components/wm-navigator/wm-navigator.css +916 -0
  118. package/dist/collection/components/wm-navigator/wm-navigator.js +515 -0
  119. package/dist/collection/components/wm-pagination/wm-pagination.css +984 -0
  120. package/dist/collection/components/wm-pagination/wm-pagination.js +373 -0
  121. package/dist/collection/components/wm-search/wm-search.css +909 -0
  122. package/dist/collection/components/wm-search/wm-search.js +462 -0
  123. package/dist/collection/components/wm-snackbar/wm-snackbar.css +1091 -0
  124. package/dist/collection/components/wm-snackbar/wm-snackbar.js +279 -0
  125. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +882 -0
  126. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +187 -0
  127. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +854 -0
  128. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +276 -0
  129. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +838 -0
  130. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +97 -0
  131. package/dist/collection/components/wm-tag-input/wm-tag-input.css +1289 -0
  132. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1245 -0
  133. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +251 -0
  134. package/dist/collection/components/wm-textarea/wm-textarea.css +993 -0
  135. package/dist/collection/components/wm-textarea/wm-textarea.js +331 -0
  136. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1107 -0
  137. package/dist/collection/components/wm-timepicker/wm-timepicker.js +559 -0
  138. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1165 -0
  139. package/dist/collection/components/wm-toggletip/wm-toggletip.js +295 -0
  140. package/dist/collection/components/wm-uploader/wm-uploader.css +1673 -0
  141. package/dist/collection/components/wm-uploader/wm-uploader.js +618 -0
  142. package/dist/collection/components/wm-wrapper/wm-wrapper.js +28 -0
  143. package/dist/collection/dev/action-menu.js +0 -0
  144. package/dist/collection/dev/button.js +0 -0
  145. package/dist/collection/dev/chart-small.js +56 -0
  146. package/dist/collection/dev/chart.js +18 -0
  147. package/dist/collection/dev/date-range.js +6 -0
  148. package/dist/collection/dev/datepicker.js +46 -0
  149. package/dist/collection/dev/file-list.js +16 -0
  150. package/dist/collection/dev/file.js +0 -0
  151. package/dist/collection/dev/flyout.js +194 -0
  152. package/dist/collection/dev/input.js +6 -0
  153. package/dist/collection/dev/line-chart.js +0 -0
  154. package/dist/collection/dev/modal.js +48 -0
  155. package/dist/collection/dev/navigation.js +13 -0
  156. package/dist/collection/dev/navigator.js +34 -0
  157. package/dist/collection/dev/nested-select.js +36 -0
  158. package/dist/collection/dev/pagination.js +7 -0
  159. package/dist/collection/dev/progress-monitor.js +0 -0
  160. package/dist/collection/dev/pss-modal.js +8 -0
  161. package/dist/collection/dev/scripts.js +49 -0
  162. package/dist/collection/dev/search.js +72 -0
  163. package/dist/collection/dev/select.js +57 -0
  164. package/dist/collection/dev/snackbar.js +60 -0
  165. package/dist/collection/dev/tabs.js +44 -0
  166. package/dist/collection/dev/tag-input.js +32 -0
  167. package/dist/collection/dev/textarea.js +28 -0
  168. package/dist/collection/dev/timepicker.js +32 -0
  169. package/dist/collection/dev/toggletip.js +9 -0
  170. package/dist/collection/dev/uploader.js +139 -0
  171. package/dist/collection/global/__mocks__/functions.js +6 -0
  172. package/dist/collection/global/functions.js +841 -0
  173. package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +2 -84
  174. package/dist/{ripple/interfaces-CrANcZM9.js → collection/global/interfaces.js} +4 -6
  175. package/dist/collection/global/intl.js +274 -0
  176. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  177. package/dist/collection/global/services/http-service.js +50 -0
  178. package/dist/collection/lang/lang.js +5 -0
  179. package/dist/collection/lang/missing.js +43 -0
  180. package/dist/collection/lang/piglatin.js +101 -0
  181. package/dist/components/index.js +85 -0
  182. package/dist/components/p-BlQdbOh_.js +294 -0
  183. package/dist/components/p-BvE5BEYe.js +146 -0
  184. package/dist/components/p-BzGDMpdL.js +592 -0
  185. package/dist/{ripple/wm-modal-header.entry.js → components/p-CLem5EoD.js} +35 -29
  186. package/dist/components/p-COwzv5zO.js +34 -0
  187. package/dist/components/p-CWx2NF6K.js +231 -0
  188. package/dist/{ripple/wm-progress-monitor.entry.js → components/p-D9GMUh0-.js} +217 -57
  189. package/dist/{ripple/wm-option.entry.js → components/p-DCSxoWXP.js} +384 -134
  190. package/dist/components/p-DG_w4q3M.js +196 -0
  191. package/dist/{ripple/intl-7p27BJSM.js → components/p-DStPjkvu.js} +1 -1
  192. package/dist/components/p-DdlNyc6u.js +10485 -0
  193. package/dist/{ripple/wm-toggletip.entry.js → components/p-DvXS4oTB.js} +44 -171
  194. package/dist/components/p-HPnDWE3g.js +1686 -0
  195. package/dist/components/p-K9lgwbAO.js +724 -0
  196. package/dist/{ripple/wm-textarea.entry.js → components/p-e_A35rK5.js} +132 -57
  197. package/dist/components/priv-calendar.js +6 -0
  198. package/dist/components/priv-chart-popover.js +6 -0
  199. package/dist/components/priv-navigator-button.js +6 -0
  200. package/dist/components/priv-navigator-item.js +6 -0
  201. package/dist/components/priv-option-list.js +6 -0
  202. package/dist/components/wm-action-menu.js +6 -0
  203. package/dist/components/wm-button.js +6 -0
  204. package/dist/components/wm-chart-slice.js +41 -0
  205. package/dist/components/wm-chart.js +197 -0
  206. package/dist/components/wm-date-range.js +522 -0
  207. package/dist/components/wm-datepicker.js +287 -0
  208. package/dist/components/wm-file-list.js +38 -0
  209. package/dist/components/wm-file.js +228 -0
  210. package/dist/components/wm-flyout.js +208 -0
  211. package/dist/components/wm-input.js +152 -0
  212. package/dist/components/wm-line-chart.js +497 -0
  213. package/dist/components/wm-menuitem.js +6 -0
  214. package/dist/components/wm-modal-footer.js +73 -0
  215. package/dist/components/wm-modal-header.js +61 -0
  216. package/dist/components/wm-modal-pss-footer.js +69 -0
  217. package/dist/components/wm-modal-pss-header.js +64 -0
  218. package/dist/components/wm-modal-pss.js +162 -0
  219. package/dist/components/wm-modal.js +161 -0
  220. package/dist/components/wm-navigation-hamburger.js +70 -0
  221. package/dist/components/wm-navigation-item.js +40 -0
  222. package/dist/components/wm-navigation.js +144 -0
  223. package/dist/components/wm-navigator.js +369 -0
  224. package/dist/{ripple/wm-flyout.entry.js → components/wm-nested-select.js} +313 -137
  225. package/dist/components/wm-optgroup.js +107 -0
  226. package/dist/components/wm-option.js +6 -0
  227. package/dist/components/wm-pagination.js +251 -0
  228. package/dist/components/wm-progress-indicator.js +144 -0
  229. package/dist/components/wm-progress-monitor.js +93 -0
  230. package/dist/components/wm-progress-slice.js +37 -0
  231. package/dist/components/wm-search.js +250 -0
  232. package/dist/components/wm-select.js +6 -0
  233. package/dist/components/wm-snackbar.js +209 -0
  234. package/dist/components/wm-tab-item.js +85 -0
  235. package/dist/components/wm-tab-list.js +217 -0
  236. package/dist/components/wm-tab-panel.js +52 -0
  237. package/dist/components/wm-tag-input.js +919 -0
  238. package/dist/components/wm-tag-option.js +63 -0
  239. package/dist/components/wm-textarea.js +113 -0
  240. package/dist/components/wm-timepicker.js +333 -0
  241. package/dist/components/wm-toggletip.js +200 -0
  242. package/dist/components/wm-uploader.js +348 -0
  243. package/dist/components/wm-wrapper.js +34 -0
  244. package/dist/esm/app-globals-eAJzxs1b.js +90 -0
  245. package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-C4yzutWl.js} +3 -4
  246. package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-CU95tthb.js} +144 -7767
  247. package/dist/esm/index-EopL5zo4.js +2075 -0
  248. package/dist/esm/index.js +1 -0
  249. package/dist/esm/interfaces-CyJHzEjr.js +34 -0
  250. package/dist/esm/intl-CN471tL5.js +277 -0
  251. package/dist/esm/loader.js +11 -0
  252. package/dist/esm/polyfills/core-js.js +11 -0
  253. package/dist/esm/polyfills/dom.js +79 -0
  254. package/dist/esm/polyfills/es5-html-element.js +1 -0
  255. package/dist/esm/polyfills/index.js +34 -0
  256. package/dist/esm/polyfills/system.js +6 -0
  257. package/dist/esm/priv-calendar.entry.js +566 -0
  258. package/dist/esm/priv-chart-popover.entry.js +134 -0
  259. package/dist/esm/priv-navigator-button_2.entry.js +51 -0
  260. package/dist/esm/priv-option-list_2.entry.js +553 -0
  261. package/dist/esm/ripple.js +21 -0
  262. package/dist/esm/wm-action-menu_4.entry.js +696 -0
  263. package/dist/{ripple → esm}/wm-chart-slice.entry.js +1 -1
  264. package/dist/esm/wm-chart.entry.js +157 -0
  265. package/dist/esm/wm-date-range.entry.js +477 -0
  266. package/dist/esm/wm-datepicker.entry.js +247 -0
  267. package/dist/esm/wm-file-list.entry.js +18 -0
  268. package/dist/{ripple/wm-chart.entry.js → esm/wm-file.entry.js} +161 -136
  269. package/dist/esm/wm-flyout.entry.js +167 -0
  270. package/dist/esm/wm-input.entry.js +111 -0
  271. package/dist/esm/wm-line-chart.entry.js +449 -0
  272. package/dist/{ripple/wm-modal.entry.js → esm/wm-modal-footer.entry.js} +28 -117
  273. package/dist/{ripple/wm-input.entry.js → esm/wm-modal-header.entry.js} +24 -99
  274. package/dist/{ripple/wm-menuitem.entry.js → esm/wm-modal-pss-footer.entry.js} +28 -113
  275. package/dist/{ripple/wm-optgroup.entry.js → esm/wm-modal-pss-header.entry.js} +28 -57
  276. package/dist/esm/wm-modal-pss.entry.js +135 -0
  277. package/dist/esm/wm-modal.entry.js +133 -0
  278. package/dist/esm/wm-navigation-hamburger.entry.js +48 -0
  279. package/dist/{ripple/wm-file-list.entry.js → esm/wm-navigation-item.entry.js} +7 -7
  280. package/dist/{ripple/wm-file.entry.js → esm/wm-navigation.entry.js} +91 -157
  281. package/dist/esm/wm-navigator.entry.js +327 -0
  282. package/dist/{ripple/wm-select.entry.js → esm/wm-nested-select.entry.js} +193 -134
  283. package/dist/esm/wm-optgroup.entry.js +68 -0
  284. package/dist/esm/wm-pagination.entry.js +223 -0
  285. package/dist/esm/wm-progress-indicator.entry.js +107 -0
  286. package/dist/esm/wm-progress-monitor.entry.js +71 -0
  287. package/dist/{ripple → esm}/wm-progress-slice.entry.js +1 -1
  288. package/dist/esm/wm-search.entry.js +208 -0
  289. package/dist/esm/wm-select.entry.js +249 -0
  290. package/dist/esm/wm-tab-item.entry.js +63 -0
  291. package/dist/esm/wm-tab-list.entry.js +175 -0
  292. package/dist/esm/wm-tab-panel.entry.js +32 -0
  293. package/dist/esm/wm-tag-input.entry.js +877 -0
  294. package/dist/{ripple → esm}/wm-tag-option.entry.js +2 -2
  295. package/dist/esm/wm-textarea.entry.js +79 -0
  296. package/dist/esm/wm-timepicker.entry.js +300 -0
  297. package/dist/esm/wm-toggletip.entry.js +176 -0
  298. package/dist/esm/wm-uploader.entry.js +313 -0
  299. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  300. package/dist/esm-es5/app-globals-eAJzxs1b.js +1 -0
  301. package/dist/esm-es5/chartFunctions-C4yzutWl.js +1 -0
  302. package/dist/esm-es5/functions-CU95tthb.js +1 -0
  303. package/dist/esm-es5/index-EopL5zo4.js +1 -0
  304. package/dist/esm-es5/index.js +0 -0
  305. package/dist/esm-es5/interfaces-CyJHzEjr.js +1 -0
  306. package/dist/esm-es5/intl-CN471tL5.js +1 -0
  307. package/dist/esm-es5/loader.js +1 -0
  308. package/dist/esm-es5/priv-calendar.entry.js +1 -0
  309. package/dist/esm-es5/priv-chart-popover.entry.js +1 -0
  310. package/dist/esm-es5/priv-navigator-button_2.entry.js +1 -0
  311. package/dist/esm-es5/priv-option-list_2.entry.js +1 -0
  312. package/dist/esm-es5/ripple.js +1 -0
  313. package/dist/esm-es5/wm-action-menu_4.entry.js +1 -0
  314. package/dist/esm-es5/wm-chart-slice.entry.js +1 -0
  315. package/dist/esm-es5/wm-chart.entry.js +1 -0
  316. package/dist/esm-es5/wm-date-range.entry.js +1 -0
  317. package/dist/{ripple/wm-uploader.entry.js → esm-es5/wm-datepicker.entry.js} +1 -313
  318. package/dist/{ripple/wm-tab-item.entry.js → esm-es5/wm-file-list.entry.js} +1 -63
  319. package/dist/esm-es5/wm-file.entry.js +1 -0
  320. package/dist/esm-es5/wm-flyout.entry.js +1 -0
  321. package/dist/esm-es5/wm-input.entry.js +1 -0
  322. package/dist/esm-es5/wm-line-chart.entry.js +1 -0
  323. package/dist/{ripple/wm-navigation.entry.js → esm-es5/wm-modal-footer.entry.js} +1 -116
  324. package/dist/esm-es5/wm-modal-header.entry.js +1 -0
  325. package/dist/esm-es5/wm-modal-pss-footer.entry.js +1 -0
  326. package/dist/esm-es5/wm-modal-pss-header.entry.js +1 -0
  327. package/dist/esm-es5/wm-modal-pss.entry.js +1 -0
  328. package/dist/esm-es5/wm-modal.entry.js +1 -0
  329. package/dist/esm-es5/wm-navigation-hamburger.entry.js +1 -0
  330. package/dist/esm-es5/wm-navigation-item.entry.js +1 -0
  331. package/dist/esm-es5/wm-navigation.entry.js +1 -0
  332. package/dist/esm-es5/wm-navigator.entry.js +1 -0
  333. package/dist/esm-es5/wm-nested-select.entry.js +1 -0
  334. package/dist/esm-es5/wm-optgroup.entry.js +1 -0
  335. package/dist/esm-es5/wm-pagination.entry.js +1 -0
  336. package/dist/{ripple/wm-modal-footer.entry.js → esm-es5/wm-progress-indicator.entry.js} +1 -44
  337. package/dist/esm-es5/wm-progress-monitor.entry.js +1 -0
  338. package/dist/esm-es5/wm-progress-slice.entry.js +1 -0
  339. package/dist/esm-es5/wm-search.entry.js +1 -0
  340. package/dist/esm-es5/wm-select.entry.js +1 -0
  341. package/dist/esm-es5/wm-tab-item.entry.js +1 -0
  342. package/dist/esm-es5/wm-tab-list.entry.js +1 -0
  343. package/dist/esm-es5/wm-tab-panel.entry.js +1 -0
  344. package/dist/esm-es5/wm-tag-input.entry.js +1 -0
  345. package/dist/esm-es5/wm-tag-option.entry.js +1 -0
  346. package/dist/esm-es5/wm-textarea.entry.js +1 -0
  347. package/dist/esm-es5/wm-timepicker.entry.js +1 -0
  348. package/dist/esm-es5/wm-toggletip.entry.js +1 -0
  349. package/dist/esm-es5/wm-uploader.entry.js +1 -0
  350. package/dist/esm-es5/wm-wrapper.entry.js +1 -0
  351. package/dist/index.cjs.js +1 -0
  352. package/dist/index.js +1 -0
  353. package/dist/loader/cdn.js +2 -0
  354. package/dist/loader/index.cjs.js +2 -0
  355. package/dist/loader/index.d.ts +24 -0
  356. package/dist/loader/index.es2017.js +2 -0
  357. package/dist/loader/index.js +3 -0
  358. package/dist/ripple/index.esm.js +0 -1
  359. package/dist/ripple/p-007883c7.entry.js +1 -0
  360. package/dist/ripple/p-01456c1a.system.entry.js +1 -0
  361. package/dist/ripple/p-0b716fc3.system.entry.js +1 -0
  362. package/dist/ripple/p-11c9e7ee.system.entry.js +1 -0
  363. package/dist/ripple/p-176778bc.system.entry.js +1 -0
  364. package/dist/ripple/p-1f7e1851.entry.js +1 -0
  365. package/dist/ripple/p-28e8965b.system.entry.js +1 -0
  366. package/dist/ripple/p-29302f19.entry.js +1 -0
  367. package/dist/ripple/p-2bd007af.system.entry.js +1 -0
  368. package/dist/ripple/p-2f629074.system.entry.js +1 -0
  369. package/dist/ripple/{priv-navigator-item.entry.js → p-3042aae4.entry.js} +1 -30
  370. package/dist/ripple/p-340b73a9.system.entry.js +1 -0
  371. package/dist/ripple/p-369b764a.entry.js +1 -0
  372. package/dist/ripple/p-384d9208.system.entry.js +1 -0
  373. package/dist/ripple/p-3b08f15d.system.entry.js +1 -0
  374. package/dist/ripple/p-3d459e5a.entry.js +1 -0
  375. package/dist/ripple/p-3e1202c6.entry.js +1 -0
  376. package/dist/ripple/p-3e9a2ef6.system.entry.js +1 -0
  377. package/dist/ripple/p-418e3d1a.system.entry.js +1 -0
  378. package/dist/ripple/p-44d2ecd5.entry.js +1 -0
  379. package/dist/ripple/p-4841e9cd.entry.js +1 -0
  380. package/dist/ripple/p-492a8a9f.entry.js +1 -0
  381. package/dist/ripple/p-4a28da80.system.entry.js +1 -0
  382. package/dist/ripple/{priv-option-list.entry.js → p-4b264fb2.entry.js} +1 -385
  383. package/dist/ripple/p-4b4671e7.entry.js +1 -0
  384. package/dist/ripple/p-4b5bb9c8.entry.js +1 -0
  385. package/dist/ripple/{wm-modal-pss-header.entry.js → p-4f4868cb.system.entry.js} +1 -39
  386. package/dist/ripple/p-54aeadde.entry.js +1 -0
  387. package/dist/ripple/p-56422175.entry.js +1 -0
  388. package/dist/ripple/p-568bb1f9.entry.js +1 -0
  389. package/dist/ripple/p-5802a317.system.entry.js +1 -0
  390. package/dist/ripple/p-5ae17300.system.entry.js +1 -0
  391. package/dist/ripple/p-5e3fbe45.entry.js +1 -0
  392. package/dist/ripple/p-60363868.entry.js +1 -0
  393. package/dist/ripple/p-792f7c79.entry.js +1 -0
  394. package/dist/ripple/p-7aa1c452.system.entry.js +1 -0
  395. package/dist/ripple/p-7fbbb63a.system.entry.js +1 -0
  396. package/dist/ripple/p-812615ae.entry.js +1 -0
  397. package/dist/ripple/{wm-snackbar.entry.js → p-86b22f7b.entry.js} +1 -185
  398. package/dist/ripple/p-8cbefd04.entry.js +1 -0
  399. package/dist/ripple/{wm-progress-indicator.entry.js → p-8ee4401f.entry.js} +1 -107
  400. package/dist/ripple/{priv-chart-popover.entry.js → p-94e4dc77.system.entry.js} +1 -134
  401. package/dist/ripple/p-9a8e3525.entry.js +1 -0
  402. package/dist/ripple/p-9c14176e.system.entry.js +1 -0
  403. package/dist/ripple/p-9c993a3e.system.entry.js +1 -0
  404. package/dist/ripple/p-BIzU753x.system.js +1 -0
  405. package/dist/ripple/p-BNmjUWhs.js +1 -0
  406. package/dist/ripple/p-CDk__KSi.system.js +1 -0
  407. package/dist/ripple/p-CFV9VgE2.system.js +1 -0
  408. package/dist/ripple/p-CGHKc6U6.js +1 -0
  409. package/dist/ripple/p-CTau6pR2.system.js +2 -0
  410. package/dist/ripple/p-CU95tthb.js +1 -0
  411. package/dist/ripple/p-CcozwjO1.js +1 -0
  412. package/dist/ripple/p-CwkTkxrj.system.js +1 -0
  413. package/dist/ripple/p-CyJHzEjr.js +1 -0
  414. package/dist/ripple/p-EopL5zo4.js +2 -0
  415. package/dist/ripple/p-GtT-372c.system.js +1 -0
  416. package/dist/ripple/p-YWpyar7R.system.js +1 -0
  417. package/dist/ripple/p-a4d4a752.entry.js +1 -0
  418. package/dist/ripple/p-a7b4f720.system.entry.js +1 -0
  419. package/dist/ripple/p-adffc8d9.system.entry.js +1 -0
  420. package/dist/ripple/p-b53e397f.entry.js +1 -0
  421. package/dist/ripple/p-b6956929.system.entry.js +1 -0
  422. package/dist/ripple/p-b79f5594.system.entry.js +1 -0
  423. package/dist/ripple/p-b94e08f4.system.entry.js +1 -0
  424. package/dist/ripple/p-bb930411.entry.js +1 -0
  425. package/dist/ripple/p-bd0f8d31.system.entry.js +1 -0
  426. package/dist/ripple/p-be146306.system.entry.js +1 -0
  427. package/dist/ripple/p-c59fa446.system.entry.js +1 -0
  428. package/dist/ripple/p-c7269416.entry.js +1 -0
  429. package/dist/ripple/p-c7f446e9.system.entry.js +1 -0
  430. package/dist/ripple/p-ca8c26b0.entry.js +1 -0
  431. package/dist/ripple/p-cccfdbb8.entry.js +1 -0
  432. package/dist/ripple/p-cfb2bbf1.system.entry.js +1 -0
  433. package/dist/ripple/p-d298ef0a.system.entry.js +1 -0
  434. package/dist/ripple/p-d66f8dfc.system.entry.js +1 -0
  435. package/dist/ripple/p-d715f567.system.entry.js +1 -0
  436. package/dist/ripple/p-d8cd69fb.entry.js +1 -0
  437. package/dist/ripple/p-d9033c6b.entry.js +1 -0
  438. package/dist/ripple/p-da5ad94c.system.entry.js +1 -0
  439. package/dist/ripple/p-da6646bf.entry.js +1 -0
  440. package/dist/ripple/p-dc44a726.entry.js +1 -0
  441. package/dist/ripple/p-e04561b5.system.entry.js +1 -0
  442. package/dist/ripple/p-e8cdf66c.entry.js +1 -0
  443. package/dist/ripple/p-ec1c0b3e.system.entry.js +1 -0
  444. package/dist/ripple/p-ef9c66dd.entry.js +1 -0
  445. package/dist/ripple/p-f44dafc1.entry.js +1 -0
  446. package/dist/ripple/p-f4c59921.system.entry.js +1 -0
  447. package/dist/ripple/p-f6e9cb0e.entry.js +1 -0
  448. package/dist/ripple/p-faa45b92.system.entry.js +1 -0
  449. package/dist/ripple/p-faf34fd1.system.entry.js +1 -0
  450. package/dist/ripple/{wm-tab-list.entry.js → p-fd006ae2.entry.js} +1 -175
  451. package/dist/ripple/p-fd9c8220.system.entry.js +1 -0
  452. package/dist/ripple/p-fe1ac4e0.entry.js +1 -0
  453. package/dist/ripple/p-fe5c9681.entry.js +1 -0
  454. package/dist/ripple/p-feb343ad.system.entry.js +1 -0
  455. package/dist/ripple/p-ff3cbb1d.entry.js +1 -0
  456. package/dist/ripple/p-rbkCjczS.system.js +1 -0
  457. package/dist/ripple/ripple.esm.js +1 -48
  458. package/dist/ripple/ripple.js +127 -0
  459. package/package.json +2 -2
  460. package/dist/ripple/index-CU5QNCKv.js +0 -4167
  461. package/dist/ripple/priv-calendar.entry.js +0 -566
  462. package/dist/ripple/priv-navigator-button.entry.js +0 -24
  463. package/dist/ripple/wm-action-menu.entry.js +0 -201
  464. package/dist/ripple/wm-button.entry.js +0 -197
  465. package/dist/ripple/wm-date-range.entry.js +0 -477
  466. package/dist/ripple/wm-datepicker.entry.js +0 -247
  467. package/dist/ripple/wm-line-chart.entry.js +0 -449
  468. package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
  469. package/dist/ripple/wm-modal-pss.entry.js +0 -135
  470. package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
  471. package/dist/ripple/wm-navigation-item.entry.js +0 -18
  472. package/dist/ripple/wm-navigator.entry.js +0 -368
  473. package/dist/ripple/wm-nested-select.entry.js +0 -308
  474. package/dist/ripple/wm-pagination.entry.js +0 -223
  475. package/dist/ripple/wm-tag-input.entry.js +0 -877
  476. package/dist/ripple/wm-timepicker.entry.js +0 -300
@@ -0,0 +1,742 @@
1
+ import { h, Host, forceUpdate } from "@stencil/core";
2
+ import { csvToArray, debounce, transposeMatrix, getSmallestSkipInterval, wrapAround, calcPercentageInRange, } from "../../../global/functions";
3
+ import { abbrNumber, getInterval } from "../chartFunctions";
4
+ import { chartMessages, globalMessages, lineChartMessages } from "../../../global/intl";
5
+ export class LineChart {
6
+ constructor() {
7
+ this.description = "";
8
+ this.units = "null,null";
9
+ this.labelWidth = "120px";
10
+ this.highlightQualifier = lineChartMessages.highlightQualifier;
11
+ this.visibilityToggles = false;
12
+ this.showDeltas = false;
13
+ this.parsedLineData = {};
14
+ this.popoverIndex = -1;
15
+ this.focusedLine = -1;
16
+ this.hiddenLines = [];
17
+ this.isTabbing = false;
18
+ this.intervalSkip = 0;
19
+ this.announcement = "";
20
+ this.minTickWidth = 120;
21
+ this.popoverData = [];
22
+ this.dataPointMatrix = [];
23
+ this.xIntervals = [];
24
+ this.displayedXIntervals = [];
25
+ this.yIntervals = [];
26
+ this.lineStyles = [
27
+ { color: "#8b86ca", icon: "triangle" }, // lavender
28
+ { color: "#2e1b46", icon: "circle" }, // midnight
29
+ { color: "#0089e4", icon: "square" }, // blue
30
+ { color: "#088000", icon: "star" }, // forest
31
+ { color: "#ea8500", icon: "rhombus" }, // orange
32
+ { color: "#d54f41", icon: "triangle-inverted" }, // red
33
+ { color: "#146ca9", icon: "pentagon" }, // blue
34
+ ];
35
+ this.debouncedResize = debounce(async () => {
36
+ this.displayedXIntervals = this.determineDisplayedXIntervals();
37
+ }, 100);
38
+ }
39
+ parseData() {
40
+ this.parsedLineData = JSON.parse(this.lineData);
41
+ this.yIntervals = this.calcYIntervals().reverse(); // needed before building dataPointMatrix
42
+ this.xIntervals = Object.keys(Object.values(this.parsedLineData)[0]);
43
+ this.displayedXIntervals = this.determineDisplayedXIntervals();
44
+ this.dataPointMatrix = Object.entries(this.parsedLineData).map((entry) => this.buildLineDataPointDetails(entry[0], entry[1]));
45
+ this.popoverData = transposeMatrix(this.dataPointMatrix);
46
+ }
47
+ handleIntervalSkip() {
48
+ // if intervalSkip ever changes, dataPointMatrix must be regenerated to account for chart spacers
49
+ this.parseData();
50
+ }
51
+ get hasPartialInterval() {
52
+ // if chart width is too small, an odd # of intervals like 1,2,3,4,5,6,7 can be shortened to 1,3,5,7 or 1,4,7
53
+ // but an even # like 1,2,3,4,5,6,7,8 will be shortened to 1,3,5,7 (can't show first and last interval)
54
+ // in these cases, show a partial interval must be shown in order to still provide space to plot the 8th data point
55
+ // e.g intervals will be 1-3, 3-5, 5-7, 7-8
56
+ return this.intervalSkip > 0 && this.xIntervals.length % 2 === 0;
57
+ }
58
+ get parsedUnits() {
59
+ return csvToArray(this.units).map((unit) => (unit === "null" ? null : unit));
60
+ }
61
+ get visibilityToggleEls() {
62
+ return this.legendEl.querySelectorAll("wm-button");
63
+ }
64
+ get lineEls() {
65
+ return this.plotAreaEl.querySelectorAll(".line");
66
+ }
67
+ get firstVisibleLineIdx() {
68
+ let firstVisibleLineIdx = 0;
69
+ while (this.hiddenLines.includes(firstVisibleLineIdx)) {
70
+ firstVisibleLineIdx++;
71
+ }
72
+ return firstVisibleLineIdx < this.dataPointMatrix.length ? firstVisibleLineIdx : -1;
73
+ }
74
+ get pointEls() {
75
+ return this.plotAreaEl.querySelectorAll(".point");
76
+ }
77
+ toggleTabbingOn() {
78
+ this.isTabbing = true;
79
+ }
80
+ toggleTabbingOff() {
81
+ this.isTabbing = false;
82
+ }
83
+ componentWillLoad() {
84
+ this.parseData();
85
+ }
86
+ componentDidLoad() {
87
+ const resizeObserver = new ResizeObserver(() => this.debouncedResize());
88
+ resizeObserver.observe(this.el);
89
+ }
90
+ handleVisibilityToggleKeydown(ev, toggleIdx) {
91
+ switch (ev.key) {
92
+ case "Tab":
93
+ if (!ev.shiftKey && this.firstVisibleLineIdx !== -1) {
94
+ ev.preventDefault();
95
+ this.announce(this.lineFocusMessage(this.firstVisibleLineIdx));
96
+ this.focusDataPointByEl(this.lineEls[this.firstVisibleLineIdx].querySelector(".point"));
97
+ }
98
+ break;
99
+ case "ArrowUp":
100
+ case "ArrowLeft":
101
+ ev.preventDefault();
102
+ const prevToggleIdx = wrapAround(toggleIdx, -1, this.dataPointMatrix.length - 1);
103
+ this.visibilityToggleEls[prevToggleIdx].focus();
104
+ break;
105
+ case "ArrowDown":
106
+ case "ArrowRight":
107
+ ev.preventDefault();
108
+ const nextToggleIdx = wrapAround(toggleIdx, 1, this.dataPointMatrix.length - 1);
109
+ this.visibilityToggleEls[nextToggleIdx].focus();
110
+ break;
111
+ }
112
+ }
113
+ handleDataPointKeydown(ev) {
114
+ const curPointEl = ev.target;
115
+ switch (ev.key) {
116
+ case "Tab":
117
+ if (ev.shiftKey && this.visibilityToggles) {
118
+ ev.preventDefault();
119
+ this.visibilityToggleEls[0].focus();
120
+ }
121
+ break;
122
+ case "ArrowUp":
123
+ ev.preventDefault();
124
+ this.navigatePointsVertically(curPointEl, -1);
125
+ break;
126
+ case "ArrowDown":
127
+ ev.preventDefault();
128
+ this.navigatePointsVertically(curPointEl, 1);
129
+ break;
130
+ case "ArrowLeft":
131
+ ev.preventDefault();
132
+ this.navigatePointsHorizontally(curPointEl, -1);
133
+ break;
134
+ case "ArrowRight":
135
+ ev.preventDefault();
136
+ this.navigatePointsHorizontally(curPointEl, 1);
137
+ break;
138
+ }
139
+ }
140
+ navigatePointsVertically(originPoint, stepAmount) {
141
+ const pointElsInColumn = Array.from(this.pointEls).filter((p) => p.dataset.pointidx == originPoint.dataset.pointidx);
142
+ if (pointElsInColumn.length > 1) {
143
+ const nextPointIdx = wrapAround(pointElsInColumn.indexOf(originPoint), stepAmount, pointElsInColumn.length - 1);
144
+ const nextVerticalPoint = pointElsInColumn[nextPointIdx];
145
+ this.announce(this.lineFocusMessage(parseInt(nextVerticalPoint.dataset.lineidx)));
146
+ this.focusDataPointByEl(nextVerticalPoint);
147
+ }
148
+ }
149
+ navigatePointsHorizontally(originPoint, stepAmount) {
150
+ const linePoints = Array.from(originPoint.parentElement.querySelectorAll(".point"));
151
+ if (linePoints.length > 1) {
152
+ const nextPointIdxInDirection = wrapAround(linePoints.indexOf(originPoint), stepAmount, linePoints.length - 1);
153
+ const nextHorizontalPoint = linePoints[nextPointIdxInDirection];
154
+ this.focusDataPointByEl(nextHorizontalPoint);
155
+ }
156
+ }
157
+ announce(message) {
158
+ // \u00A0 is a non-breaking space character, which causes the message to be read as a new one
159
+ if (this.liveRegionEl.textContent === message) {
160
+ message += "\u00A0";
161
+ }
162
+ this.announcement = message;
163
+ }
164
+ lineFocusMessage(lineIdx) {
165
+ const label = this.dataPointMatrix[lineIdx][0].lineLabel;
166
+ const numDataPoints = this.dataPointMatrix[lineIdx].filter((datapoint) => datapoint.yValue !== null).length;
167
+ const focusMessage = lineChartMessages.getLineFocusAnnouncement(label, lineIdx + 1, this.dataPointMatrix.length, numDataPoints);
168
+ return focusMessage;
169
+ }
170
+ focusDataPointByEl(pointEl) {
171
+ this.pointEls.forEach((point) => (point.tabIndex = -1));
172
+ pointEl.tabIndex = 0;
173
+ pointEl.focus();
174
+ }
175
+ calcYIntervals() {
176
+ let yIntervals = [];
177
+ if (this.yRange) {
178
+ yIntervals = csvToArray(this.yRange).map((val) => parseInt(val));
179
+ }
180
+ else {
181
+ // gather all yValues
182
+ let allYValues = [];
183
+ const lines = Object.values(this.parsedLineData).flat();
184
+ lines.forEach((line) => allYValues.push(...Object.values(line)));
185
+ const filteredYValues = allYValues.filter((val) => val !== null);
186
+ // get max and min yValues in data
187
+ let minYValue = Math.min(...filteredYValues);
188
+ const maxYValue = Math.max(...filteredYValues);
189
+ // calculate neat yInterval
190
+ let interval = getInterval(maxYValue - minYValue, 4);
191
+ // find new min below smallest yValue that divides cleanly by interval
192
+ let counter = interval;
193
+ while (minYValue % interval !== 0 && counter > 0) {
194
+ minYValue--;
195
+ counter--;
196
+ }
197
+ // calculate new interval using new min
198
+ interval = getInterval(maxYValue - minYValue, 4);
199
+ let current = minYValue;
200
+ // determine top interval, no more than one tick above max yValue
201
+ while (current <= maxYValue + interval) {
202
+ yIntervals.push(current);
203
+ current += interval;
204
+ }
205
+ }
206
+ return yIntervals;
207
+ }
208
+ determineDisplayedXIntervals() {
209
+ // if component has display: none, plotAreaEl is truthy, but it's clientWidth is 0. This caused a crash when component was hidden in a tab
210
+ const maxTicks = this.plotAreaEl && this.plotAreaEl.clientWidth > 0
211
+ ? Math.round(this.plotAreaEl.clientWidth / this.minTickWidth)
212
+ : this.xIntervals.length;
213
+ const { skipInterval, skippedList } = getSmallestSkipInterval(this.xIntervals, maxTicks);
214
+ this.intervalSkip = skipInterval;
215
+ return skippedList;
216
+ }
217
+ buildLineDataPointDetails(lineLabel, line) {
218
+ let dataPointDetailsList = [];
219
+ const lineDataPoints = Object.entries(line);
220
+ let isHighlighted;
221
+ lineDataPoints.forEach((entry, pointIdx) => {
222
+ const [xValue, yValue] = entry;
223
+ let xPositionPercent = (100 / (lineDataPoints.length - 1)) * pointIdx;
224
+ const yPositionPercent = yValue === null
225
+ ? null
226
+ : 100 - calcPercentageInRange(yValue, this.yIntervals[this.yIntervals.length - 1], this.yIntervals[0]);
227
+ // add space between first points and y-axis
228
+ if (pointIdx === 0) {
229
+ xPositionPercent +=
230
+ this.plotAreaEl && this.plotAreaEl.clientWidth > 0 ? (8 / this.plotAreaEl.clientWidth) * 100 : 1;
231
+ }
232
+ if (xValue === this.highlightStart && !isHighlighted) {
233
+ isHighlighted = true;
234
+ }
235
+ dataPointDetailsList.push({
236
+ lineLabel: lineLabel,
237
+ xValue: xValue,
238
+ yValue: yValue,
239
+ xPositionPercent: xPositionPercent,
240
+ yPositionPercent: yPositionPercent,
241
+ highlighted: isHighlighted,
242
+ });
243
+ // because highlight range is inclusive, disable after pushing details
244
+ if (xValue === this.highlightEnd && isHighlighted) {
245
+ isHighlighted = false;
246
+ }
247
+ });
248
+ return dataPointDetailsList;
249
+ }
250
+ toggleLineVisibility(lineIdx) {
251
+ if (this.hiddenLines.includes(lineIdx)) {
252
+ this.hiddenLines = this.hiddenLines.filter((num) => num !== lineIdx);
253
+ }
254
+ else {
255
+ this.hiddenLines.push(lineIdx);
256
+ }
257
+ forceUpdate(this.el);
258
+ }
259
+ resetDataPointFocus() {
260
+ this.popoverIndex = -1;
261
+ this.pointEls.forEach((point) => (point.tabIndex = -1));
262
+ if (this.firstVisibleLineIdx !== -1) {
263
+ const lineEl = this.lineEls[this.firstVisibleLineIdx];
264
+ const linePointEl = lineEl.querySelectorAll(".point")[0];
265
+ linePointEl.tabIndex = 0;
266
+ }
267
+ }
268
+ calcDelta(dataPoint, prevDataPoint) {
269
+ let delta;
270
+ if (dataPoint.yValue === null || prevDataPoint.yValue === null) {
271
+ // display "No data" when either of the datapoints is missing
272
+ delta = lineChartMessages.noData;
273
+ }
274
+ else if (dataPoint.yValue == prevDataPoint.yValue) {
275
+ // display "0%" if datapoints are equal
276
+ delta = "0%";
277
+ }
278
+ else if (prevDataPoint.yValue == 0) {
279
+ // display "-" for % increase if prev data point is 0, as the technical number would be infinity
280
+ delta = "-";
281
+ }
282
+ else {
283
+ const changePercent = ((dataPoint.yValue - prevDataPoint.yValue) / prevDataPoint.yValue) * 100;
284
+ const roundedPercent = Math.round(changePercent * 100) / 100;
285
+ delta = `${roundedPercent > 0 ? "+" : ""}${roundedPercent}%`;
286
+ }
287
+ return delta;
288
+ }
289
+ renderLegend() {
290
+ const lineLabels = Object.keys(this.parsedLineData);
291
+ return (h("div", { ref: (el) => (this.legendEl = el), class: "legend" }, lineLabels.map((lineLabel, lineIdx) => {
292
+ const isHidden = this.hiddenLines.includes(lineIdx);
293
+ const isFaded = this.focusedLine !== -1 && this.focusedLine !== lineIdx;
294
+ return (h("div", { id: `legend-label-${lineIdx}`, class: `legend-label ${isFaded ? "faded" : ""}`, onMouseEnter: () => (this.focusedLine = isHidden ? -1 : lineIdx), onMouseLeave: () => (this.focusedLine = -1) }, this.renderIcon(lineIdx), lineLabel, this.visibilityToggles && this.renderVisibilityToggle(lineLabel, lineIdx, isHidden)));
295
+ })));
296
+ }
297
+ renderVisibilityToggle(lineLabel, lineIdx, isHidden) {
298
+ return (h("wm-button", { id: `visibility-button-${lineIdx}`, class: "visibility-toggle", "label-for-identical-buttons": `${lineIdx === 0 ? lineChartMessages.getToggleButtonLabel(this.dataPointMatrix.length) : ""} ${isHidden ? globalMessages.show : globalMessages.hide} ${lineLabel} ${lineChartMessages.getToggleButtonState(isHidden)}`, "button-type": "navigational", tooltip: isHidden ? globalMessages.show : globalMessages.hide, tooltipPosition: "bottom", icon: isHidden ? "#hide" : "#show", onClick: () => this.toggleLineVisibility(lineIdx), onKeyDown: (ev) => this.handleVisibilityToggleKeydown(ev, lineIdx), onFocus: () => (this.popoverIndex = -1) }));
299
+ }
300
+ renderIcon(lineIdx) {
301
+ const { color, icon } = this.lineStyles[lineIdx];
302
+ return h("div", { style: { color: color }, class: `svg-icon svg-shape-${icon}` });
303
+ }
304
+ renderXIntervals() {
305
+ const gridStyle = {
306
+ "--columns": `.5fr repeat(${this.xIntervals.length - 2}, 1fr) .5fr`,
307
+ };
308
+ return (h("div", { class: "x-intervals", style: gridStyle }, this.xIntervals.map((interval) => (h("span", { class: `x-interval ${this.displayedXIntervals.includes(interval) ? "" : "hidden"}` }, interval)))));
309
+ }
310
+ renderYIntervals() {
311
+ return (h("div", { ref: (el) => (this.yIntervalsEl = el), class: "y-intervals" }, this.yIntervals.map((yInterval) => (h("span", { class: "y-interval" }, abbrNumber(yInterval))))));
312
+ }
313
+ renderData() {
314
+ return this.dataPointMatrix.map((_, lineIdx) => {
315
+ let focusState = this.focusedLine === lineIdx ? "focused" : "faded";
316
+ const isHidden = this.hiddenLines.includes(lineIdx);
317
+ return (h("div", { class: `line ${this.focusedLine !== -1 ? focusState : ""} ${isHidden ? "hidden" : ""}` }, this.renderLines(lineIdx), this.renderPoints(lineIdx)));
318
+ });
319
+ }
320
+ renderPoints(lineIdx) {
321
+ const lineDataPoints = this.dataPointMatrix[lineIdx];
322
+ return (h("div", { class: "line-icons" }, lineDataPoints.map((dataPoint, pointIdx) => {
323
+ const { lineLabel, xValue, yValue, xPositionPercent, yPositionPercent, highlighted } = dataPoint;
324
+ if (yValue !== null) {
325
+ const { color, icon } = this.lineStyles[lineIdx];
326
+ const firstPointTabIndex = lineIdx === 0 && pointIdx === 0 ? 0 : undefined;
327
+ const iconStyle = {
328
+ color: color,
329
+ "--xPosition": xPositionPercent + "%",
330
+ "--yPosition": yPositionPercent + "%",
331
+ };
332
+ let ariaLabel = `${lineLabel} ${highlighted ? this.highlightQualifier : ""} ${this.xAxisLabel} ${xValue + (this.parsedUnits[0] ? this.parsedUnits[0] : "")}, ${this.yAxisLabel}: ${yValue + (this.parsedUnits[1] ? this.parsedUnits[1] : "")}`;
333
+ if (this.showDeltas && pointIdx > 0) {
334
+ const prevDataPoint = lineDataPoints[pointIdx - 1];
335
+ const changeSinceMessage = lineChartMessages.getChangeSince(prevDataPoint.xValue);
336
+ ariaLabel += `, ${changeSinceMessage} ${this.calcDelta(dataPoint, prevDataPoint)}`;
337
+ }
338
+ return (h("span", { id: `${lineLabel}-${pointIdx}`, role: "img", "aria-label": ariaLabel, tabIndex: firstPointTabIndex, class: `point svg-icon svg-shape-${icon}`, style: iconStyle, "data-lineidx": lineIdx, "data-pointidx": pointIdx, "data-xvalue": xValue, onKeyDown: (ev) => this.handleDataPointKeydown(ev), onFocus: () => (this.popoverIndex = pointIdx), onClick: (ev) => this.focusDataPointByEl(ev.target), onMouseEnter: () => (this.popoverIndex = pointIdx) }, h("span", { class: `point-bg svg-icon svg-shape-${icon}` })));
339
+ }
340
+ })));
341
+ }
342
+ renderLines(lineIdx) {
343
+ const lineDataPoints = this.dataPointMatrix[lineIdx];
344
+ return (h("svg", { class: "line-svg" }, lineDataPoints.map((dataPoint, pointIdx) => {
345
+ const shouldDraw = dataPoint.yValue !== null &&
346
+ pointIdx !== lineDataPoints.length - 1 &&
347
+ lineDataPoints[pointIdx + 1].yValue !== null;
348
+ if (shouldDraw) {
349
+ const { color } = this.lineStyles[lineIdx];
350
+ const { xPositionPercent: xStart, yPositionPercent: yStart } = dataPoint;
351
+ const { xPositionPercent: xEnd, yPositionPercent: yEnd } = lineDataPoints[pointIdx + 1];
352
+ return (h("line", { x1: xStart + "%", y1: yStart + "%", x2: xEnd + "%", y2: yEnd + "%", stroke: color, "stroke-width": "2px" }));
353
+ }
354
+ })));
355
+ }
356
+ renderHoverAreas() {
357
+ const hoverAreaStyle = { "--columns": `.5fr repeat(${this.xIntervals.length - 2}, 1fr) .5fr` };
358
+ return (h("div", { class: "hover-area-wrapper", style: hoverAreaStyle, onMouseLeave: () => (this.popoverIndex = -1) }, this.xIntervals.map((_, idx) => (h("div", { onMouseEnter: () => (this.popoverIndex = idx) })))));
359
+ }
360
+ renderPopover() {
361
+ const hasPopoverData = this.popoverData &&
362
+ this.popoverData[this.popoverIndex] &&
363
+ this.plotAreaEl.querySelector(`.point[data-xvalue="${this.dataPointMatrix[0][this.popoverIndex].xValue}"]`);
364
+ if (!hasPopoverData) {
365
+ return "";
366
+ }
367
+ const displayedPopoverData = this.popoverData[this.popoverIndex];
368
+ const xPosition = displayedPopoverData[0].xPositionPercent;
369
+ const yPositions = displayedPopoverData
370
+ .map((point) => point.yPositionPercent)
371
+ .filter((yPosition) => yPosition !== null);
372
+ const averageYPosition = yPositions.reduce((acc, cur) => acc + cur, 0) / yPositions.length;
373
+ const referencePointEl = this.plotAreaEl.querySelector(`.point[data-xvalue="${this.dataPointMatrix[0][this.popoverIndex].xValue}"]`);
374
+ const componentBoundingClientRect = this.el.getBoundingClientRect();
375
+ const referencePointBoundingClientRect = referencePointEl.getBoundingClientRect();
376
+ const rightSpaceAvailable = componentBoundingClientRect.right - referencePointBoundingClientRect.right;
377
+ const leftSpaceAvailable = referencePointBoundingClientRect.left - componentBoundingClientRect.left;
378
+ const hasRoomRight = rightSpaceAvailable >= (this.popoverEl ? Math.min(this.popoverEl.clientWidth, 400) : 400);
379
+ const hasRoomLeft = leftSpaceAvailable >= (this.popoverEl ? Math.min(this.popoverEl.clientWidth, 400) : 400);
380
+ const percentMargin = (8 / this.plotAreaEl.clientWidth) * 100;
381
+ let popoverStyle = {
382
+ "--leftPosition": hasRoomRight ? xPosition + percentMargin + "%" : "unset",
383
+ "--rightPosition": hasRoomLeft ? 100 - xPosition + percentMargin + "%" : "unset",
384
+ "--topPosition": averageYPosition + "%",
385
+ transform: "translateY(-50%)", // vertically center for averageYPosition
386
+ };
387
+ if (!hasRoomLeft && !hasRoomRight) {
388
+ // if there's not enough room to the left and right, position "detached" from the data points towards the top of the chart
389
+ const displaceLeft = `0px - ${this.labelWidth} - 20px - ${this.yIntervalsEl.clientWidth + "px"} + ${this.el.scrollLeft + "px"} + 2px`;
390
+ popoverStyle = {
391
+ "--leftPosition": `0%`,
392
+ "--topPosition": "0%",
393
+ maxWidth: Math.min(this.el.clientWidth - 2, 400) + "px", // take up no more max-width than is visually available
394
+ transform: `translateX(calc(${displaceLeft}))`, // align with left edge of component
395
+ };
396
+ }
397
+ return (h("div", { ref: (el) => (this.popoverEl = el), class: "popover", style: popoverStyle }, h("div", { class: "title" }, displayedPopoverData[0].xValue, this.parsedUnits[0] && h("span", { class: "unit --x" }, "(", this.parsedUnits[0], ")")), this.showDeltas && this.popoverIndex > 0 && (h("div", { class: "comparison-title" }, lineChartMessages.getChangeSince(this.popoverData[this.popoverIndex - 1][0].xValue))), this.renderPopoverTable()));
398
+ }
399
+ renderPopoverTable() {
400
+ const displayedPopoverData = this.popoverData[this.popoverIndex];
401
+ return (h("table", { class: "popover-table" }, displayedPopoverData.map((dataPoint, lineIdx) => {
402
+ if (!this.hiddenLines.includes(lineIdx)) {
403
+ const { lineLabel, yValue } = dataPoint;
404
+ const prevDataPoint = this.popoverIndex > 0 ? this.popoverData[this.popoverIndex - 1][lineIdx] : null;
405
+ const localizedYValue = yValue !== null ? new Intl.NumberFormat().format(yValue) : null;
406
+ return (h("tr", { class: "popover-row" }, h("td", null, this.renderIcon(lineIdx)), h("td", { class: "row-label" }, lineLabel), h("td", { class: "row-value" }, yValue === null ? lineChartMessages.noData : localizedYValue, yValue !== null && this.parsedUnits[1] && h("span", { class: "unit --y" }, this.parsedUnits[1])), this.showDeltas && prevDataPoint && this.renderDeltas(dataPoint, prevDataPoint)));
407
+ }
408
+ })));
409
+ }
410
+ renderDeltas(dataPoint, prevDataPoint) {
411
+ const delta = this.calcDelta(dataPoint, prevDataPoint);
412
+ const deltaColor = delta.toString()[0] == "+" || delta == "-" ? "positive" : delta.toString()[0] == "-" ? "negative" : "";
413
+ return prevDataPoint && h("td", { class: `delta --${deltaColor}` }, delta);
414
+ }
415
+ renderHoverIndicator() {
416
+ const hasIndicatorData = this.dataPointMatrix.length > 0 && this.dataPointMatrix[0][this.popoverIndex];
417
+ if (!hasIndicatorData) {
418
+ return "";
419
+ }
420
+ const xPosition = this.dataPointMatrix[0][this.popoverIndex].xPositionPercent;
421
+ const indicatorStyle = { "--xPosition": xPosition + "%" };
422
+ return h("div", { class: "hover-indicator", style: indicatorStyle });
423
+ }
424
+ renderHighlight() {
425
+ const startPercentage = this.dataPointMatrix[0][this.xIntervals.indexOf(this.highlightStart)].xPositionPercent;
426
+ const endPercentage = this.highlightEnd
427
+ ? 100 - this.dataPointMatrix[0][this.xIntervals.indexOf(this.highlightEnd)].xPositionPercent
428
+ : 0;
429
+ const highlightStyle = { "--startPercentage": startPercentage + "%", "--endPercentage": endPercentage + "%" };
430
+ return h("div", { class: "highlight", style: highlightStyle });
431
+ }
432
+ render() {
433
+ return (h(Host, { key: 'fb0d9a5d98e31e44e873a45a057151abf8422af2', onBlur: () => this.resetDataPointFocus(), onMouseLeave: () => (this.popoverIndex = -1) }, h("div", { key: '8ad9a77f2ed681fe3e0e12d22e478f578a5f5378', class: "component-wrapper", role: "application", "aria-roledescription": chartMessages.interactiveChart, "aria-label": this.label, "aria-describedby": "chart-description" }, this.renderLegend(), h("div", { key: '8c75ab0d44e8b843bd00ac7c884010f86a7c32ed', class: "chart-wrapper" }, h("div", { key: '733592d351ba71b9e48591ccc87406c90ba6ee1c', class: "chart-label --y-axis", style: { "--labelWidth": this.labelWidth } }, this.yAxisLabel, this.parsedUnits[1] && ` (${this.parsedUnits[1]})`), this.renderYIntervals(), h("div", { key: 'a5d35aca9eb498bf41641978206cda9504d26531', ref: (el) => (this.plotAreaEl = el), class: `plot-area ${this.hasPartialInterval ? "" : "right-border"}`, style: {
434
+ "--backgroundSize": `${this.dataPointMatrix[0][this.xIntervals.indexOf(this.displayedXIntervals[1])].xPositionPercent}%`,
435
+ } }, this.highlightStart && this.renderHighlight(), this.renderData(), this.renderHoverAreas()), this.popoverIndex !== -1 && this.renderHoverIndicator(), this.popoverIndex !== -1 && this.renderPopover(), this.renderXIntervals(), h("div", { key: '848ec2e4cc1342d06c771dd5043e663c274862d2', class: "chart-label --x-axis" }, this.xAxisLabel, this.parsedUnits[0] && ` (${this.parsedUnits[0]})`)), h("div", { key: 'd9db30e4e1d3eaec8a9fd16a60dc6d15dff0d352', id: "chart-description", class: "sr-only" }, `${lineChartMessages.instructions} ${this.description}`), h("div", { key: '7042ad9fe099a30dde2385a71a4a78d9eb022b73', ref: (el) => (this.liveRegionEl = el), "aria-live": "polite", class: "sr-only" }, this.announcement))));
436
+ }
437
+ static get is() { return "wm-line-chart"; }
438
+ static get encapsulation() { return "shadow"; }
439
+ static get originalStyleUrls() {
440
+ return {
441
+ "$": ["wm-line-chart.scss"]
442
+ };
443
+ }
444
+ static get styleUrls() {
445
+ return {
446
+ "$": ["wm-line-chart.css"]
447
+ };
448
+ }
449
+ static get properties() {
450
+ return {
451
+ "label": {
452
+ "type": "string",
453
+ "attribute": "label",
454
+ "mutable": false,
455
+ "complexType": {
456
+ "original": "string",
457
+ "resolved": "string",
458
+ "references": {}
459
+ },
460
+ "required": true,
461
+ "optional": false,
462
+ "docs": {
463
+ "tags": [],
464
+ "text": ""
465
+ },
466
+ "getter": false,
467
+ "setter": false,
468
+ "reflect": false
469
+ },
470
+ "description": {
471
+ "type": "string",
472
+ "attribute": "description",
473
+ "mutable": false,
474
+ "complexType": {
475
+ "original": "string",
476
+ "resolved": "string",
477
+ "references": {}
478
+ },
479
+ "required": false,
480
+ "optional": false,
481
+ "docs": {
482
+ "tags": [],
483
+ "text": ""
484
+ },
485
+ "getter": false,
486
+ "setter": false,
487
+ "reflect": false,
488
+ "defaultValue": "\"\""
489
+ },
490
+ "xAxisLabel": {
491
+ "type": "string",
492
+ "attribute": "x-axis-label",
493
+ "mutable": false,
494
+ "complexType": {
495
+ "original": "string",
496
+ "resolved": "string",
497
+ "references": {}
498
+ },
499
+ "required": true,
500
+ "optional": false,
501
+ "docs": {
502
+ "tags": [],
503
+ "text": ""
504
+ },
505
+ "getter": false,
506
+ "setter": false,
507
+ "reflect": false
508
+ },
509
+ "yAxisLabel": {
510
+ "type": "string",
511
+ "attribute": "y-axis-label",
512
+ "mutable": false,
513
+ "complexType": {
514
+ "original": "string",
515
+ "resolved": "string",
516
+ "references": {}
517
+ },
518
+ "required": true,
519
+ "optional": false,
520
+ "docs": {
521
+ "tags": [],
522
+ "text": ""
523
+ },
524
+ "getter": false,
525
+ "setter": false,
526
+ "reflect": false
527
+ },
528
+ "lineData": {
529
+ "type": "string",
530
+ "attribute": "line-data",
531
+ "mutable": false,
532
+ "complexType": {
533
+ "original": "string",
534
+ "resolved": "string",
535
+ "references": {}
536
+ },
537
+ "required": true,
538
+ "optional": false,
539
+ "docs": {
540
+ "tags": [],
541
+ "text": ""
542
+ },
543
+ "getter": false,
544
+ "setter": false,
545
+ "reflect": true
546
+ },
547
+ "units": {
548
+ "type": "string",
549
+ "attribute": "units",
550
+ "mutable": false,
551
+ "complexType": {
552
+ "original": "string",
553
+ "resolved": "string",
554
+ "references": {}
555
+ },
556
+ "required": false,
557
+ "optional": false,
558
+ "docs": {
559
+ "tags": [],
560
+ "text": ""
561
+ },
562
+ "getter": false,
563
+ "setter": false,
564
+ "reflect": false,
565
+ "defaultValue": "\"null,null\""
566
+ },
567
+ "labelWidth": {
568
+ "type": "string",
569
+ "attribute": "label-width",
570
+ "mutable": false,
571
+ "complexType": {
572
+ "original": "string",
573
+ "resolved": "string",
574
+ "references": {}
575
+ },
576
+ "required": false,
577
+ "optional": false,
578
+ "docs": {
579
+ "tags": [],
580
+ "text": ""
581
+ },
582
+ "getter": false,
583
+ "setter": false,
584
+ "reflect": false,
585
+ "defaultValue": "\"120px\""
586
+ },
587
+ "highlightQualifier": {
588
+ "type": "string",
589
+ "attribute": "highlight-qualifier",
590
+ "mutable": false,
591
+ "complexType": {
592
+ "original": "string",
593
+ "resolved": "string",
594
+ "references": {}
595
+ },
596
+ "required": false,
597
+ "optional": false,
598
+ "docs": {
599
+ "tags": [],
600
+ "text": ""
601
+ },
602
+ "getter": false,
603
+ "setter": false,
604
+ "reflect": false,
605
+ "defaultValue": "lineChartMessages.highlightQualifier"
606
+ },
607
+ "highlightStart": {
608
+ "type": "string",
609
+ "attribute": "highlight-start",
610
+ "mutable": false,
611
+ "complexType": {
612
+ "original": "string",
613
+ "resolved": "string | undefined",
614
+ "references": {}
615
+ },
616
+ "required": false,
617
+ "optional": true,
618
+ "docs": {
619
+ "tags": [],
620
+ "text": ""
621
+ },
622
+ "getter": false,
623
+ "setter": false,
624
+ "reflect": false
625
+ },
626
+ "highlightEnd": {
627
+ "type": "string",
628
+ "attribute": "highlight-end",
629
+ "mutable": false,
630
+ "complexType": {
631
+ "original": "string",
632
+ "resolved": "string | undefined",
633
+ "references": {}
634
+ },
635
+ "required": false,
636
+ "optional": true,
637
+ "docs": {
638
+ "tags": [],
639
+ "text": ""
640
+ },
641
+ "getter": false,
642
+ "setter": false,
643
+ "reflect": false
644
+ },
645
+ "visibilityToggles": {
646
+ "type": "boolean",
647
+ "attribute": "visibility-toggles",
648
+ "mutable": false,
649
+ "complexType": {
650
+ "original": "boolean",
651
+ "resolved": "boolean",
652
+ "references": {}
653
+ },
654
+ "required": false,
655
+ "optional": false,
656
+ "docs": {
657
+ "tags": [],
658
+ "text": ""
659
+ },
660
+ "getter": false,
661
+ "setter": false,
662
+ "reflect": false,
663
+ "defaultValue": "false"
664
+ },
665
+ "showDeltas": {
666
+ "type": "boolean",
667
+ "attribute": "show-deltas",
668
+ "mutable": false,
669
+ "complexType": {
670
+ "original": "boolean",
671
+ "resolved": "boolean",
672
+ "references": {}
673
+ },
674
+ "required": false,
675
+ "optional": false,
676
+ "docs": {
677
+ "tags": [],
678
+ "text": ""
679
+ },
680
+ "getter": false,
681
+ "setter": false,
682
+ "reflect": false,
683
+ "defaultValue": "false"
684
+ },
685
+ "yRange": {
686
+ "type": "string",
687
+ "attribute": "y-range",
688
+ "mutable": false,
689
+ "complexType": {
690
+ "original": "string",
691
+ "resolved": "string | undefined",
692
+ "references": {}
693
+ },
694
+ "required": false,
695
+ "optional": true,
696
+ "docs": {
697
+ "tags": [],
698
+ "text": ""
699
+ },
700
+ "getter": false,
701
+ "setter": false,
702
+ "reflect": false
703
+ }
704
+ };
705
+ }
706
+ static get states() {
707
+ return {
708
+ "parsedLineData": {},
709
+ "popoverIndex": {},
710
+ "focusedLine": {},
711
+ "hiddenLines": {},
712
+ "isTabbing": {},
713
+ "intervalSkip": {},
714
+ "announcement": {}
715
+ };
716
+ }
717
+ static get elementRef() { return "el"; }
718
+ static get watchers() {
719
+ return [{
720
+ "propName": "lineData",
721
+ "methodName": "parseData"
722
+ }, {
723
+ "propName": "intervalSkip",
724
+ "methodName": "handleIntervalSkip"
725
+ }];
726
+ }
727
+ static get listeners() {
728
+ return [{
729
+ "name": "wmUserIsTabbing",
730
+ "method": "toggleTabbingOn",
731
+ "target": "window",
732
+ "capture": false,
733
+ "passive": false
734
+ }, {
735
+ "name": "wmUserIsNotTabbing",
736
+ "method": "toggleTabbingOff",
737
+ "target": "window",
738
+ "capture": false,
739
+ "passive": false
740
+ }];
741
+ }
742
+ }