@watermarkinsights/ripple 5.7.0-8 → 5.7.0-9

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 (376) hide show
  1. package/dist/cjs/{chartFunctions-d2a1f4c7.js → chartFunctions-995023b1.js} +3 -3
  2. package/dist/cjs/{functions-5ac8a62f.js → functions-e24249e6.js} +7 -104
  3. package/dist/{esm/app-globals-0f27630e.js → cjs/global-80ed0881.js} +2 -7
  4. package/dist/cjs/index-e86c28b6.js +2649 -0
  5. package/dist/cjs/{intl-57d1cfd1.js → intl-5aeba788.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +4 -5
  7. package/dist/cjs/priv-calendar.cjs.entry.js +5 -6
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
  11. package/dist/cjs/priv-option-list.cjs.entry.js +9 -6
  12. package/dist/cjs/ripple.cjs.js +12 -13
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
  14. package/dist/cjs/wm-button.cjs.entry.js +4 -5
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
  16. package/dist/cjs/wm-chart.cjs.entry.js +6 -7
  17. package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
  19. package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
  20. package/dist/cjs/wm-file.cjs.entry.js +4 -5
  21. package/dist/cjs/wm-input.cjs.entry.js +5 -6
  22. package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
  23. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +8 -11
  24. package/dist/cjs/wm-modal_3.cjs.entry.js +10 -13
  25. package/dist/cjs/wm-navigation_3.cjs.entry.js +10 -13
  26. package/dist/cjs/wm-navigator.cjs.entry.js +3 -4
  27. package/dist/cjs/wm-nested-select.cjs.entry.js +29 -21
  28. package/dist/cjs/wm-optgroup.cjs.entry.js +4 -5
  29. package/dist/cjs/wm-option_2.cjs.entry.js +9 -11
  30. package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
  31. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +7 -9
  32. package/dist/cjs/wm-search.cjs.entry.js +6 -7
  33. package/dist/cjs/wm-snackbar.cjs.entry.js +6 -7
  34. package/dist/cjs/wm-tab-item_3.cjs.entry.js +8 -11
  35. package/dist/cjs/wm-tag-input.cjs.entry.js +7 -8
  36. package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
  37. package/dist/cjs/wm-textarea.cjs.entry.js +5 -6
  38. package/dist/cjs/wm-timepicker.cjs.entry.js +5 -6
  39. package/dist/cjs/wm-toggletip.cjs.entry.js +5 -6
  40. package/dist/cjs/wm-uploader.cjs.entry.js +6 -7
  41. package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
  42. package/dist/collection/collection-manifest.json +2 -2
  43. package/dist/collection/components/charts/chartFunctions.js +1 -1
  44. package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
  45. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
  46. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
  47. package/dist/collection/components/charts/screenshots.e2e.js +96 -0
  48. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
  49. package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
  50. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
  51. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
  52. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
  53. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
  55. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
  56. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  57. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
  58. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
  59. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
  60. package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
  61. package/dist/collection/components/datepickers/wm-date-range.js +13 -17
  62. package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
  63. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
  64. package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
  65. package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
  66. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +16 -6
  67. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +9 -7
  68. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +5 -5
  69. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +26 -16
  70. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +1 -1
  71. package/dist/collection/components/selects/wm-option/wm-option.e2e.js +22 -0
  72. package/dist/collection/components/selects/wm-option/wm-option.js +1 -1
  73. package/dist/collection/components/selects/wm-option/wm-option.spec.js +63 -0
  74. package/dist/collection/components/selects/wm-select/wm-select.css +3 -3
  75. package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
  76. package/dist/collection/components/selects/wm-select/wm-select.js +2 -2
  77. package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
  78. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
  79. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  80. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
  81. package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
  82. package/dist/collection/components/wm-button/wm-button.js +1 -1
  83. package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
  84. package/dist/collection/components/wm-file/wm-file.js +1 -1
  85. package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
  86. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  87. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
  88. package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
  89. package/dist/collection/components/wm-input/wm-input.js +1 -1
  90. package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
  91. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
  92. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  93. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
  94. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  95. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
  96. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  97. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
  98. package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
  99. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  100. package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
  101. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +1 -1
  102. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +1 -1
  103. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +2 -2
  104. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  105. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  106. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
  107. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  108. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
  109. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
  110. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  111. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  112. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
  113. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
  114. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
  115. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  116. package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
  117. package/dist/collection/components/wm-search/wm-search.js +4 -5
  118. package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
  119. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
  120. package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
  121. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
  122. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  123. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  124. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  125. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
  126. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
  127. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
  128. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  129. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
  130. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
  131. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  132. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
  133. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
  134. package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
  135. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
  136. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
  137. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  138. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
  139. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
  140. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  141. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
  142. package/dist/collection/global/functions.spec.js +126 -0
  143. package/dist/collection/lang/lang.spec.js +20 -0
  144. package/dist/esm/{chartFunctions-6666ced3.js → chartFunctions-dfcb1edf.js} +3 -3
  145. package/dist/esm/{functions-03966124.js → functions-b791a892.js} +8 -105
  146. package/dist/{cjs/app-globals-1f689ab3.js → esm/global-525745d2.js} +1 -10
  147. package/dist/esm/index-558b5a82.js +2618 -0
  148. package/dist/esm/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
  149. package/dist/esm/loader.js +5 -6
  150. package/dist/esm/priv-calendar.entry.js +5 -6
  151. package/dist/esm/priv-chart-popover.entry.js +5 -6
  152. package/dist/esm/priv-navigator-button.entry.js +3 -4
  153. package/dist/esm/priv-navigator-item.entry.js +3 -4
  154. package/dist/esm/priv-option-list.entry.js +9 -6
  155. package/dist/esm/ripple.js +13 -14
  156. package/dist/esm/wm-action-menu_2.entry.js +6 -8
  157. package/dist/esm/wm-button.entry.js +4 -5
  158. package/dist/esm/wm-chart-slice.entry.js +1 -1
  159. package/dist/esm/wm-chart.entry.js +6 -7
  160. package/dist/esm/wm-date-range.entry.js +8 -9
  161. package/dist/esm/wm-datepicker.entry.js +8 -9
  162. package/dist/esm/wm-file-list.entry.js +3 -4
  163. package/dist/esm/wm-file.entry.js +4 -5
  164. package/dist/esm/wm-input.entry.js +5 -6
  165. package/dist/esm/wm-line-chart.entry.js +14 -15
  166. package/dist/esm/wm-modal-pss_3.entry.js +8 -11
  167. package/dist/esm/wm-modal_3.entry.js +10 -13
  168. package/dist/esm/wm-navigation_3.entry.js +10 -13
  169. package/dist/esm/wm-navigator.entry.js +3 -4
  170. package/dist/esm/wm-nested-select.entry.js +29 -21
  171. package/dist/esm/wm-optgroup.entry.js +4 -5
  172. package/dist/esm/wm-option_2.entry.js +9 -11
  173. package/dist/esm/wm-pagination.entry.js +4 -5
  174. package/dist/esm/wm-progress-indicator_3.entry.js +7 -9
  175. package/dist/esm/wm-search.entry.js +6 -7
  176. package/dist/esm/wm-snackbar.entry.js +6 -7
  177. package/dist/esm/wm-tab-item_3.entry.js +8 -11
  178. package/dist/esm/wm-tag-input.entry.js +7 -8
  179. package/dist/esm/wm-tag-option.entry.js +2 -2
  180. package/dist/esm/wm-textarea.entry.js +5 -6
  181. package/dist/esm/wm-timepicker.entry.js +5 -6
  182. package/dist/esm/wm-toggletip.entry.js +5 -6
  183. package/dist/esm/wm-uploader.entry.js +6 -7
  184. package/dist/esm/wm-wrapper.entry.js +1 -1
  185. package/dist/esm-es5/{chartFunctions-6666ced3.js → chartFunctions-dfcb1edf.js} +1 -1
  186. package/dist/esm-es5/functions-b791a892.js +1 -0
  187. package/dist/esm-es5/global-525745d2.js +1 -0
  188. package/dist/esm-es5/index-558b5a82.js +1 -0
  189. package/dist/esm-es5/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
  190. package/dist/esm-es5/loader.js +1 -1
  191. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  192. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  193. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  194. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  195. package/dist/esm-es5/priv-option-list.entry.js +1 -1
  196. package/dist/esm-es5/ripple.js +1 -1
  197. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  198. package/dist/esm-es5/wm-button.entry.js +1 -1
  199. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  200. package/dist/esm-es5/wm-chart.entry.js +1 -1
  201. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  202. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  203. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  204. package/dist/esm-es5/wm-file.entry.js +1 -1
  205. package/dist/esm-es5/wm-input.entry.js +1 -1
  206. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  207. package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
  208. package/dist/esm-es5/wm-modal_3.entry.js +1 -1
  209. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  210. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  211. package/dist/esm-es5/wm-nested-select.entry.js +1 -1
  212. package/dist/esm-es5/wm-optgroup.entry.js +1 -1
  213. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  214. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  215. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  216. package/dist/esm-es5/wm-search.entry.js +1 -1
  217. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  218. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  219. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  220. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  221. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  222. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  223. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  224. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  225. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  226. package/dist/loader/cdn.js +2 -1
  227. package/dist/loader/index.cjs.js +2 -1
  228. package/dist/loader/index.d.ts +0 -3
  229. package/dist/loader/index.es2017.js +2 -1
  230. package/dist/loader/index.js +2 -1
  231. package/dist/ripple/p-01035c8e.system.js +1 -0
  232. package/dist/ripple/p-012cab20.entry.js +1 -0
  233. package/dist/ripple/p-021ff5fa.system.entry.js +1 -0
  234. package/dist/ripple/p-02deae76.entry.js +1 -0
  235. package/dist/ripple/p-0b1c6965.system.entry.js +1 -0
  236. package/dist/ripple/p-1092e5ce.js +1 -0
  237. package/dist/ripple/p-1389302e.system.entry.js +1 -0
  238. package/dist/ripple/p-149a22bf.entry.js +1 -0
  239. package/dist/ripple/p-16f65bf4.js +1 -0
  240. package/dist/ripple/p-1d18d9d2.system.entry.js +1 -0
  241. package/dist/ripple/p-1e625a5e.entry.js +1 -0
  242. package/dist/ripple/p-215793a4.entry.js +1 -0
  243. package/dist/ripple/{p-b4e4479b.js → p-21d372ed.js} +1 -1
  244. package/dist/ripple/p-226fe4e0.entry.js +1 -0
  245. package/dist/ripple/p-236af552.entry.js +1 -0
  246. package/dist/ripple/p-249add87.system.entry.js +1 -0
  247. package/dist/ripple/p-2e79fa49.entry.js +1 -0
  248. package/dist/ripple/p-30b905eb.system.entry.js +1 -0
  249. package/dist/ripple/p-311923b2.system.entry.js +1 -0
  250. package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
  251. package/dist/ripple/p-3d50db36.entry.js +1 -0
  252. package/dist/ripple/p-3deaf4d9.system.entry.js +1 -0
  253. package/dist/ripple/{p-236ee735.system.entry.js → p-3e415c49.system.entry.js} +1 -1
  254. package/dist/ripple/p-41550baa.entry.js +1 -0
  255. package/dist/ripple/{p-b47aa85a.entry.js → p-45f9ad09.entry.js} +1 -1
  256. package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
  257. package/dist/ripple/{p-26e42263.system.entry.js → p-505eca1c.system.entry.js} +1 -1
  258. package/dist/ripple/p-5254f902.entry.js +1 -0
  259. package/dist/ripple/{p-524f0531.entry.js → p-5284791c.entry.js} +1 -1
  260. package/dist/ripple/{p-da3e143d.entry.js → p-5300b15d.entry.js} +1 -1
  261. package/dist/ripple/p-568c595f.js +2 -0
  262. package/dist/ripple/{p-f573e60c.system.entry.js → p-5a9e3108.system.entry.js} +1 -1
  263. package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
  264. package/dist/ripple/p-6cc07645.system.entry.js +1 -0
  265. package/dist/ripple/p-6d129ef8.system.entry.js +1 -0
  266. package/dist/ripple/p-6e725656.system.entry.js +1 -0
  267. package/dist/ripple/p-6fdfe9f4.system.entry.js +1 -0
  268. package/dist/ripple/{p-4b29da45.entry.js → p-72165bd2.entry.js} +1 -1
  269. package/dist/ripple/p-725230dd.system.entry.js +1 -0
  270. package/dist/ripple/p-749597da.system.entry.js +1 -0
  271. package/dist/ripple/{p-b8a3612c.system.js → p-81c2df85.system.js} +1 -1
  272. package/dist/ripple/{p-094883e1.system.js → p-828adbf1.system.js} +1 -1
  273. package/dist/ripple/p-83be63f6.entry.js +1 -0
  274. package/dist/ripple/p-84ba5b74.entry.js +1 -0
  275. package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
  276. package/dist/ripple/p-902a54c5.entry.js +1 -0
  277. package/dist/ripple/p-a0ecb6d7.system.entry.js +1 -0
  278. package/dist/ripple/{p-0ba0c194.system.entry.js → p-a3c01e10.system.entry.js} +1 -1
  279. package/dist/ripple/p-ab8d78cc.system.js +2 -0
  280. package/dist/ripple/p-ade3d9a9.entry.js +1 -0
  281. package/dist/ripple/p-ae82b3d2.system.js +1 -0
  282. package/dist/ripple/p-aea13873.entry.js +1 -0
  283. package/dist/ripple/p-b01f9998.system.entry.js +1 -0
  284. package/dist/ripple/p-b9dbf1f4.entry.js +1 -0
  285. package/dist/ripple/p-bf7d98d8.entry.js +1 -0
  286. package/dist/ripple/{p-dba15615.entry.js → p-c1e3c2fb.entry.js} +1 -1
  287. package/dist/ripple/{p-4fa245d4.system.entry.js → p-c2e00d4a.system.entry.js} +1 -1
  288. package/dist/ripple/p-c47fab48.entry.js +1 -0
  289. package/dist/ripple/{p-6bb9402a.system.entry.js → p-c853e185.system.entry.js} +1 -1
  290. package/dist/ripple/p-c885c7f9.entry.js +1 -0
  291. package/dist/ripple/p-c9543950.system.entry.js +1 -0
  292. package/dist/ripple/{p-e2910f91.system.entry.js → p-ca971eac.system.entry.js} +1 -1
  293. package/dist/ripple/p-cad0c5f9.system.entry.js +1 -0
  294. package/dist/ripple/p-cff5d7e9.system.entry.js +1 -0
  295. package/dist/ripple/{p-60206085.system.entry.js → p-db9657eb.system.entry.js} +1 -1
  296. package/dist/ripple/p-df157138.entry.js +1 -0
  297. package/dist/ripple/p-e081fdc2.system.entry.js +1 -0
  298. package/dist/ripple/{p-2c70503a.entry.js → p-e687176d.entry.js} +1 -1
  299. package/dist/ripple/p-ed1f6b8d.system.entry.js +1 -0
  300. package/dist/ripple/{p-785fda3d.js → p-eddbcb21.js} +1 -1
  301. package/dist/ripple/p-eefbca0e.system.js +1 -0
  302. package/dist/ripple/p-f13b034e.entry.js +1 -0
  303. package/dist/ripple/p-f2101a0d.entry.js +1 -0
  304. package/dist/ripple/p-f24572f5.entry.js +1 -0
  305. package/dist/ripple/p-f40e1468.system.entry.js +1 -0
  306. package/dist/ripple/p-f4bcee58.system.entry.js +1 -0
  307. package/dist/ripple/{p-9511f0c3.entry.js → p-f90e4094.entry.js} +1 -1
  308. package/dist/ripple/{p-664dc79d.system.entry.js → p-fa4f1030.system.entry.js} +1 -1
  309. package/dist/ripple/p-ff1ed90f.entry.js +1 -0
  310. package/dist/ripple/ripple.esm.js +1 -1
  311. package/dist/ripple/ripple.js +1 -1
  312. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +1 -0
  313. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +3 -0
  314. package/dist/types/stencil-public-runtime.d.ts +10 -3
  315. package/package.json +1 -1
  316. package/dist/cjs/index-788526f5.js +0 -1859
  317. package/dist/esm/index-130e07bb.js +0 -1828
  318. package/dist/esm-es5/app-globals-0f27630e.js +0 -1
  319. package/dist/esm-es5/functions-03966124.js +0 -1
  320. package/dist/esm-es5/index-130e07bb.js +0 -1
  321. package/dist/ripple/p-04c5af17.entry.js +0 -1
  322. package/dist/ripple/p-1073ab75.system.entry.js +0 -1
  323. package/dist/ripple/p-1344f4d2.entry.js +0 -1
  324. package/dist/ripple/p-202cc2fe.system.js +0 -1
  325. package/dist/ripple/p-2261e8d4.entry.js +0 -1
  326. package/dist/ripple/p-2300c07b.entry.js +0 -1
  327. package/dist/ripple/p-2716532e.system.entry.js +0 -1
  328. package/dist/ripple/p-2903ce15.system.entry.js +0 -1
  329. package/dist/ripple/p-30f148a7.entry.js +0 -1
  330. package/dist/ripple/p-39484b51.system.entry.js +0 -1
  331. package/dist/ripple/p-3e7e6493.system.entry.js +0 -1
  332. package/dist/ripple/p-4fae07d6.entry.js +0 -1
  333. package/dist/ripple/p-563f37e8.entry.js +0 -1
  334. package/dist/ripple/p-5a2431e1.system.entry.js +0 -1
  335. package/dist/ripple/p-60cb3adc.entry.js +0 -1
  336. package/dist/ripple/p-618b27e6.entry.js +0 -1
  337. package/dist/ripple/p-62bb8827.system.entry.js +0 -1
  338. package/dist/ripple/p-695391a9.system.entry.js +0 -1
  339. package/dist/ripple/p-6d9acebc.system.entry.js +0 -1
  340. package/dist/ripple/p-7136efd0.entry.js +0 -1
  341. package/dist/ripple/p-79979fb1.entry.js +0 -1
  342. package/dist/ripple/p-7c2846e4.system.entry.js +0 -1
  343. package/dist/ripple/p-7f162296.system.entry.js +0 -1
  344. package/dist/ripple/p-7fba9e61.system.entry.js +0 -1
  345. package/dist/ripple/p-877d35f8.system.entry.js +0 -1
  346. package/dist/ripple/p-89a862ae.system.entry.js +0 -1
  347. package/dist/ripple/p-8ef8c943.system.entry.js +0 -1
  348. package/dist/ripple/p-9062cb9a.entry.js +0 -1
  349. package/dist/ripple/p-a6466fd1.entry.js +0 -1
  350. package/dist/ripple/p-ae2b2056.entry.js +0 -1
  351. package/dist/ripple/p-afa807a5.entry.js +0 -1
  352. package/dist/ripple/p-b5e7db7f.system.entry.js +0 -1
  353. package/dist/ripple/p-b8e97d05.system.js +0 -1
  354. package/dist/ripple/p-b9a8d85b.entry.js +0 -1
  355. package/dist/ripple/p-bbcc61cf.entry.js +0 -1
  356. package/dist/ripple/p-c0ccce22.system.entry.js +0 -1
  357. package/dist/ripple/p-c499cfaf.entry.js +0 -1
  358. package/dist/ripple/p-c61b29cd.system.entry.js +0 -1
  359. package/dist/ripple/p-c94976c8.system.entry.js +0 -1
  360. package/dist/ripple/p-cef8a45b.system.js +0 -2
  361. package/dist/ripple/p-d307a2d5.system.entry.js +0 -1
  362. package/dist/ripple/p-d9da0502.js +0 -2
  363. package/dist/ripple/p-dd23c135.entry.js +0 -1
  364. package/dist/ripple/p-ded71900.entry.js +0 -1
  365. package/dist/ripple/p-dfcf2302.system.js +0 -1
  366. package/dist/ripple/p-e4c40125.js +0 -1
  367. package/dist/ripple/p-e5f7fbe7.js +0 -1
  368. package/dist/ripple/p-eaf16578.system.entry.js +0 -1
  369. package/dist/ripple/p-ed2f0946.entry.js +0 -1
  370. package/dist/ripple/p-f78d5bc3.entry.js +0 -1
  371. package/dist/ripple/p-f9df9765.system.entry.js +0 -1
  372. package/dist/ripple/p-faae9ebb.entry.js +0 -1
  373. package/dist/ripple/p-fada6923.entry.js +0 -1
  374. package/dist/ripple/p-fe6522b9.entry.js +0 -1
  375. package/dist/ripple/p-ff74ec46.system.entry.js +0 -1
  376. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +0 -33
@@ -0,0 +1,176 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ import { AxePuppeteer } from "@axe-core/puppeteer";
3
+ describe("wm-line-chart", () => {
4
+ let page;
5
+ async function createPageHelper() {
6
+ page = await newE2EPage();
7
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
8
+ <wm-line-chart
9
+ label="Regional Job Trends"
10
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
11
+ x-axis-label="Year"
12
+ y-axis-label="Change Since 2020"
13
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
14
+ units="year,%"
15
+ show-deltas="true"
16
+ y-range="0,25,50,75,100"
17
+ highlight-start="2026"
18
+ visibility-toggles="true"
19
+ >
20
+ </wm-line-chart>
21
+ </main></body></html>`);
22
+ }
23
+ it("passes Axe tests", async () => {
24
+ await createPageHelper();
25
+ const results = await new AxePuppeteer(page).analyze();
26
+ expect(results.violations.length).toBe(0);
27
+ });
28
+ it("has keyboard navigation for legend", async () => {
29
+ await createPageHelper();
30
+ // first focus goes to first button
31
+ await page.keyboard.press("Tab");
32
+ await page.waitForChanges();
33
+ let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
34
+ await page.waitForChanges();
35
+ expect(activeElId).toBe("visibility-button-0");
36
+ // wraps right
37
+ await page.keyboard.press("ArrowLeft");
38
+ await page.waitForChanges();
39
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
40
+ await page.waitForChanges();
41
+ expect(activeElId).toBe("visibility-button-1");
42
+ await page.keyboard.press("ArrowLeft");
43
+ await page.waitForChanges();
44
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
45
+ await page.waitForChanges();
46
+ expect(activeElId).toBe("visibility-button-0");
47
+ await page.keyboard.press("ArrowRight");
48
+ await page.waitForChanges();
49
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
50
+ await page.waitForChanges();
51
+ expect(activeElId).toBe("visibility-button-1");
52
+ // wraps left
53
+ await page.keyboard.press("ArrowRight");
54
+ await page.waitForChanges();
55
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
56
+ await page.waitForChanges();
57
+ expect(activeElId).toBe("visibility-button-0");
58
+ });
59
+ it("has keyboard navigation for data points", async () => {
60
+ page = await newE2EPage();
61
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
62
+ <wm-line-chart
63
+ label="Regional Job Trends"
64
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
65
+ x-axis-label="Year"
66
+ y-axis-label="Change Since 2020"
67
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13}, "National": {"2020": 8, "2021": null, "2022": 16}}'
68
+ y-range="0,25,50,75,100"
69
+ >
70
+ </wm-line-chart>
71
+ </main></body></html>`);
72
+ await page.keyboard.press("Tab");
73
+ await page.waitForChanges();
74
+ let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
75
+ expect(activeElId).toBe("Regional-0");
76
+ await page.keyboard.press("ArrowRight");
77
+ await page.waitForChanges();
78
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
79
+ await page.waitForChanges();
80
+ expect(activeElId).toBe("Regional-1");
81
+ await page.keyboard.press("ArrowRight");
82
+ await page.waitForChanges();
83
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
84
+ expect(activeElId).toBe("Regional-2");
85
+ // wraps left
86
+ await page.keyboard.press("ArrowRight");
87
+ await page.waitForChanges();
88
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
89
+ expect(activeElId).toBe("Regional-0");
90
+ // wraps Left
91
+ await page.keyboard.press("ArrowLeft");
92
+ await page.waitForChanges();
93
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
94
+ expect(activeElId).toBe("Regional-2");
95
+ await page.keyboard.press("ArrowLeft");
96
+ await page.waitForChanges();
97
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
98
+ expect(activeElId).toBe("Regional-1");
99
+ // next line
100
+ await page.keyboard.press("ArrowLeft");
101
+ await page.waitForChanges();
102
+ await page.keyboard.press("ArrowDown");
103
+ await page.waitForChanges();
104
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
105
+ expect(activeElId).toBe("National-0");
106
+ // skips null data point
107
+ await page.keyboard.press("ArrowLeft");
108
+ await page.waitForChanges();
109
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
110
+ expect(activeElId).toBe("National-2");
111
+ // wraps to first line
112
+ await page.keyboard.press("ArrowLeft");
113
+ await page.waitForChanges();
114
+ await page.keyboard.press("ArrowDown");
115
+ await page.waitForChanges();
116
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
117
+ expect(activeElId).toBe("Regional-0");
118
+ // wraps to last line
119
+ await page.keyboard.press("ArrowUp");
120
+ await page.waitForChanges();
121
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
122
+ expect(activeElId).toBe("National-0");
123
+ await page.keyboard.press("ArrowUp");
124
+ await page.waitForChanges();
125
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
126
+ expect(activeElId).toBe("Regional-0");
127
+ });
128
+ it("visibility toggle hides lines, data points are skipped by navigation", async () => {
129
+ page = await newE2EPage();
130
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
131
+ <wm-line-chart
132
+ label="Regional Job Trends"
133
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
134
+ x-axis-label="Year"
135
+ y-axis-label="Change Since 2020"
136
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13}, "National": {"2020": 8, "2021": 12, "2022": 16}, "International": {"2020": 8, "2021": 12, "2022": 16}}'
137
+ visibility-toggles="true"
138
+ >
139
+ </wm-line-chart>
140
+ </main></body></html>`);
141
+ const allLineEls = await page.findAll("wm-line-chart >>> .line");
142
+ expect(allLineEls[0]).not.toHaveClass("hidden");
143
+ await page.keyboard.press("Tab");
144
+ await page.waitForChanges();
145
+ // Enter key toggles button
146
+ await page.keyboard.press("Enter");
147
+ await page.waitForChanges();
148
+ expect(allLineEls[0]).toHaveClass("hidden");
149
+ // Space key toggles button
150
+ await page.keyboard.press("Space");
151
+ await page.waitForChanges();
152
+ expect(allLineEls[0]).not.toHaveClass("hidden");
153
+ await page.keyboard.press("Space");
154
+ await page.waitForChanges();
155
+ expect(allLineEls[0]).toHaveClass("hidden");
156
+ // tab focuses first visible data point
157
+ await page.keyboard.press("Tab");
158
+ await page.waitForChanges();
159
+ let activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
160
+ expect(activeElId).toBe("National-0");
161
+ await page.keyboard.press("ArrowDown");
162
+ await page.waitForChanges();
163
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
164
+ expect(activeElId).toBe("International-0");
165
+ // data point nav skips hidden line
166
+ await page.keyboard.press("ArrowDown");
167
+ await page.waitForChanges();
168
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
169
+ expect(activeElId).toBe("National-0");
170
+ // data point nav skips hidden line
171
+ await page.keyboard.press("ArrowUp");
172
+ await page.waitForChanges();
173
+ activeElId = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.id);
174
+ expect(activeElId).toBe("International-0");
175
+ });
176
+ });
@@ -12,12 +12,12 @@ export class LineChart {
12
12
  this.displayedXIntervals = [];
13
13
  this.yIntervals = [];
14
14
  this.lineStyles = [
15
- { color: "#8b86ca", icon: "f536" }, // lavender, triangle
16
- { color: "#2e1b46", icon: "f12f" }, // midnight, circle
17
- { color: "#0089e4", icon: "f763" }, // blue, square
18
- { color: "#088000", icon: "f4ce" }, // forest, star
19
- { color: "#ea8500", icon: "f70a" }, // orange, rhombus
20
- { color: "#d54f41", icon: "f536" }, // red, upside down triangle
15
+ { color: "#8b86ca", icon: "f536" },
16
+ { color: "#2e1b46", icon: "f12f" },
17
+ { color: "#0089e4", icon: "f763" },
18
+ { color: "#088000", icon: "f4ce" },
19
+ { color: "#ea8500", icon: "f70a" },
20
+ { color: "#d54f41", icon: "f536" },
21
21
  { color: "#146ca9", icon: "f6ff" }, // blue, upside down triangle
22
22
  ];
23
23
  this.debouncedResize = debounce(async () => {
@@ -413,7 +413,7 @@ export class LineChart {
413
413
  popoverStyle = {
414
414
  "--leftPosition": `0%`,
415
415
  "--topPosition": "0%",
416
- maxWidth: Math.min(this.el.clientWidth - 2, 400) + "px", // take up no more max-width than is visually available
416
+ maxWidth: Math.min(this.el.clientWidth - 2, 400) + "px",
417
417
  transform: `translateX(calc(${displaceLeft}))`, // align with left edge of component
418
418
  };
419
419
  }
@@ -453,9 +453,9 @@ export class LineChart {
453
453
  return h("div", { class: "highlight", style: highlightStyle });
454
454
  }
455
455
  render() {
456
- return (h(Host, { key: '9817eea8765cce513a0848cd222a6409c8f1f912', onBlur: () => this.resetDataPointFocus(), onMouseLeave: () => (this.popoverIndex = -1) }, h("div", { key: '60de41437bb425483be4b5a24fc2468c8e8f8d4e', class: "component-wrapper", role: "application", "aria-roledescription": chartMessages.interactiveChart, "aria-label": this.label, "aria-describedby": "chart-description" }, this.renderLegend(), h("div", { key: '2029ed03f09b8c133ee430f7b1d70c9dded326f3', class: "chart-wrapper" }, h("div", { key: '4e9123177b8c02cf1fef010d370b2b1a23b2015c', class: "chart-label --y-axis", style: { "--labelWidth": this.labelWidth } }, this.yAxisLabel, this.parsedUnits[1] && ` (${this.parsedUnits[1]})`), this.renderYIntervals(), h("div", { key: '3cbe51169818095cd830e7b8099d3a10980e3cf2', ref: (el) => (this.plotAreaEl = el), class: `plot-area ${this.hasPartialInterval ? "" : "right-border"}`, style: {
456
+ return (h(Host, { onBlur: () => this.resetDataPointFocus(), onMouseLeave: () => (this.popoverIndex = -1) }, h("div", { class: "component-wrapper", role: "application", "aria-roledescription": chartMessages.interactiveChart, "aria-label": this.label, "aria-describedby": "chart-description" }, this.renderLegend(), h("div", { class: "chart-wrapper" }, h("div", { class: "chart-label --y-axis", style: { "--labelWidth": this.labelWidth } }, this.yAxisLabel, this.parsedUnits[1] && ` (${this.parsedUnits[1]})`), this.renderYIntervals(), h("div", { ref: (el) => (this.plotAreaEl = el), class: `plot-area ${this.hasPartialInterval ? "" : "right-border"}`, style: {
457
457
  "--backgroundSize": `${this.dataPointMatrix[0][this.xIntervals.indexOf(this.displayedXIntervals[1])].xPositionPercent}%`,
458
- } }, this.highlightStart && this.renderHighlight(), this.renderData(), this.renderHoverAreas()), this.popoverIndex !== -1 && this.renderHoverIndicator(), this.popoverIndex !== -1 && this.renderPopover(), this.renderXIntervals(), h("div", { key: 'dad130dfb9063769dd36316cb060c90a8f1c8cb8', class: "chart-label --x-axis" }, this.xAxisLabel, this.parsedUnits[0] && ` (${this.parsedUnits[0]})`)), h("div", { key: 'bb4ffc7fbae6ab63e6f3e16c1d7e8a98c382e243', id: "chart-description", class: "sr-only" }, `${lineChartMessages.instructions} ${this.description}`), h("div", { key: 'de40d0eecd0db387912b45fb2b4576b37e3876aa', ref: (el) => (this.liveRegionEl = el), "aria-live": "polite", class: "sr-only" }, this.announcement))));
458
+ } }, this.highlightStart && this.renderHighlight(), this.renderData(), this.renderHoverAreas()), this.popoverIndex !== -1 && this.renderHoverIndicator(), this.popoverIndex !== -1 && this.renderPopover(), this.renderXIntervals(), h("div", { class: "chart-label --x-axis" }, this.xAxisLabel, this.parsedUnits[0] && ` (${this.parsedUnits[0]})`)), h("div", { id: "chart-description", class: "sr-only" }, `${lineChartMessages.instructions} ${this.description}`), h("div", { ref: (el) => (this.liveRegionEl = el), "aria-live": "polite", class: "sr-only" }, this.announcement))));
459
459
  }
460
460
  static get is() { return "wm-line-chart"; }
461
461
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,163 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { LineChart } from "./wm-line-chart";
3
+ // import * as globalFuncs from "../../../global/functions";
4
+ // jest.spyOn(globalFuncs, "generateId");
5
+ // // @ts-ignore
6
+ // globalFuncs.generateId.mockImplementation(() => "random-id");
7
+ // mock ResizeObserver
8
+ global.ResizeObserver = jest.fn().mockImplementation(() => ({
9
+ observe: jest.fn(),
10
+ unobserve: jest.fn(),
11
+ disconnect: jest.fn(),
12
+ }));
13
+ async function createPageHelper() {
14
+ return await newSpecPage({
15
+ components: [LineChart],
16
+ html: `<wm-line-chart
17
+ label="Regional Job Trends"
18
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
19
+ x-axis-label="Year"
20
+ y-axis-label="Change Since 2020"
21
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
22
+ units="year,%"
23
+ show-deltas="true"
24
+ y-range="0,25,50,75,100"
25
+ highlight-start="2026"
26
+ >
27
+ </wm-line-chart>`,
28
+ });
29
+ }
30
+ describe("Line Chart", () => {
31
+ let page;
32
+ it("builds", async () => {
33
+ page = await createPageHelper();
34
+ expect(page.root).toMatchSnapshot();
35
+ });
36
+ it("has proper aria properties and attributes", async () => {
37
+ page = await createPageHelper();
38
+ const componentWrapperEl = await page.root.shadowRoot.querySelector(".component-wrapper");
39
+ expect(componentWrapperEl).toEqualAttribute("role", "application");
40
+ expect(componentWrapperEl).toEqualAttribute("aria-roledescription", "Interactive chart");
41
+ expect(componentWrapperEl).toEqualAttribute("aria-label", "Regional Job Trends");
42
+ expect(componentWrapperEl).toEqualAttribute("aria-describedby", "chart-description");
43
+ const firstPointEl = await page.root.shadowRoot.querySelector(".point");
44
+ expect(firstPointEl).toEqualAttribute("role", "img");
45
+ });
46
+ it("plots all non-null data points", async () => {
47
+ page = await newSpecPage({
48
+ components: [LineChart],
49
+ html: `<wm-line-chart
50
+ label="Regional Job Trends"
51
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
52
+ x-axis-label="Year"
53
+ y-axis-label="Change Since 2020"
54
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": 15, "2024": 20}, "National": {"2020": 8, "2021": 13, "2022": null, "2023": 21, "2024": 23}, "International": {"2020": 8, "2021": null, "2022": null, "2023": 21, "2024": 23} }'
55
+ >
56
+ </wm-line-chart>`,
57
+ });
58
+ const allPointEls = await page.root.shadowRoot.querySelectorAll(".point");
59
+ const allLineEls = await page.root.shadowRoot.querySelectorAll(".line");
60
+ const firstLinePointEls = await allLineEls[0].querySelectorAll(".point");
61
+ const firstLineLineEls = await allLineEls[0].querySelectorAll("line");
62
+ const secondLinePointEls = await allLineEls[1].querySelectorAll(".point");
63
+ const secondLineLineEls = await allLineEls[1].querySelectorAll("line");
64
+ const thirdLinePointEls = await allLineEls[2].querySelectorAll(".point");
65
+ const thirdLineLineEls = await allLineEls[2].querySelectorAll("line");
66
+ // each line has 5 intervals
67
+ // first line has 0 nulls
68
+ // second line has 1 null
69
+ // third line has 2 nulls
70
+ expect(allPointEls.length).toBe(12);
71
+ expect(firstLinePointEls.length).toBe(5);
72
+ expect(firstLineLineEls.length).toBe(4);
73
+ expect(secondLinePointEls.length).toBe(4);
74
+ expect(secondLineLineEls.length).toBe(2);
75
+ expect(thirdLinePointEls.length).toBe(3);
76
+ expect(thirdLineLineEls.length).toBe(1);
77
+ });
78
+ it("calculates deltas correctly", async () => {
79
+ const component = await new LineChart();
80
+ let previousPoint = {
81
+ lineLabel: "fake label",
82
+ xValue: "2020",
83
+ yValue: 999,
84
+ xPositionPercent: 0,
85
+ yPositionPercent: 10,
86
+ highlighted: false,
87
+ };
88
+ let currentPoint = {
89
+ lineLabel: "fake label",
90
+ xValue: "2021",
91
+ yValue: 999,
92
+ xPositionPercent: 20,
93
+ yPositionPercent: 12,
94
+ highlighted: false,
95
+ };
96
+ previousPoint.yValue = 10;
97
+ currentPoint.yValue = 12;
98
+ expect(component.calcDelta(currentPoint, previousPoint)).toBe("+20%");
99
+ previousPoint.yValue = 10;
100
+ currentPoint.yValue = 7;
101
+ expect(component.calcDelta(currentPoint, previousPoint)).toBe("-30%");
102
+ previousPoint.yValue = 12;
103
+ currentPoint.yValue = 10;
104
+ expect(component.calcDelta(currentPoint, previousPoint)).toBe("-16.67%");
105
+ previousPoint.yValue = 0;
106
+ currentPoint.yValue = 1;
107
+ expect(component.calcDelta(currentPoint, previousPoint)).toBe("-");
108
+ previousPoint.yValue = 17;
109
+ currentPoint.yValue = 0;
110
+ expect(component.calcDelta(currentPoint, previousPoint)).toBe("-100%");
111
+ });
112
+ it("uses label-width to set y-axis label width", async () => {
113
+ page = await newSpecPage({
114
+ components: [LineChart],
115
+ html: `<wm-line-chart
116
+ label="Regional Job Trends"
117
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
118
+ x-axis-label="Year"
119
+ y-axis-label="Change Since 2020"
120
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
121
+ >
122
+ </wm-line-chart>`,
123
+ });
124
+ let yAxisLabel = await page.root.shadowRoot.querySelector(".--y-axis");
125
+ expect(yAxisLabel.style.cssText).toBe("--labelWidth: 120px;");
126
+ page = await newSpecPage({
127
+ components: [LineChart],
128
+ html: `<wm-line-chart
129
+ label="Regional Job Trends"
130
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
131
+ x-axis-label="Year"
132
+ y-axis-label="Change Since 2020"
133
+ line-data='{"Regional": {"2020": 5, "2021": 10, "2022": 13, "2023": null, "2024": 20, "2025": 23, "2026": 25, "2027": 32, "2028": 35, "2029": 40, "2030": 42, "2031": 52, "2032": 54, "2033": 61}, "National": {"2020": 8, "2021": 13, "2022": 16, "2023": 21, "2024": 23, "2025": 26, "2026": 28, "2027": 29, "2028": 32, "2029": 35, "2030": 39, "2031": 49, "2032": 51, "2033": 58} }'
134
+ label-width="23%"
135
+ >
136
+ </wm-line-chart>`,
137
+ });
138
+ yAxisLabel = await page.root.shadowRoot.querySelector(".--y-axis");
139
+ expect(yAxisLabel.style.cssText).toBe("--labelWidth: 23%;");
140
+ });
141
+ it("sets custom y-range if provided, abbreviates y-axis numbers of thousands", async () => {
142
+ page = await newSpecPage({
143
+ components: [LineChart],
144
+ html: `<wm-line-chart
145
+ label="Regional Job Trends"
146
+ description="View job trends for your region compared to national tends from the past 3 years with a 3 year projection"
147
+ x-axis-label="Year"
148
+ y-axis-label="Change Since 2020"
149
+ line-data='{"Regional": {"2020": -10000, "2021": 10900, "2022": 40200} }'
150
+ y-range="-13300,0,100,10000,20945,30099,40520"
151
+ >
152
+ </wm-line-chart>`,
153
+ });
154
+ const yIntervals = await page.root.shadowRoot.querySelectorAll(".y-interval");
155
+ expect(yIntervals[0].textContent).toBe("40.5K");
156
+ expect(yIntervals[1].textContent).toBe("30.1K");
157
+ expect(yIntervals[2].textContent).toBe("20.9K");
158
+ expect(yIntervals[3].textContent).toBe("10K");
159
+ expect(yIntervals[4].textContent).toBe("100");
160
+ expect(yIntervals[5].textContent).toBe("0");
161
+ expect(yIntervals[6].textContent).toBe("-13.3K");
162
+ });
163
+ });
@@ -90,7 +90,7 @@ export class ProgressIndicator {
90
90
  }
91
91
  }
92
92
  render() {
93
- return (h(Host, { key: '16620db2087213bc753d2d757c7790a41670b1ab', onBlur: () => exitChart.call(this) }, h("div", { key: 'c676d6afdd78059bff7ae59f8ee275886e5bf22a', ref: (el) => (this.componentWrapperEl = el), class: `component-wrapper ${this.mode} ${this.isTabbing && !this.userIsNavigating ? "user-is-tabbing" : ""}`, role: "application", "aria-label": this.ariaLabelText, tabindex: "0", "aria-roledescription": this.chartRoleDescription, "aria-describedby": `chart-instructions` }, h("label", { key: '1b863341957baf0839d36be915d0aa632d03873f', id: `label-${this.uid}`, class: `label ${this.barLabelsWidth && this.mode === "bar" ? "custom-width" : ""}`, style: { "--custom-label-width": this.barLabelsWidth }, htmlFor: `graphic-${this.uid}` }, h("span", { key: 'be37ff1bc3863b7603944139fd78a0d7a6884e46', class: "label-text" }, this.label), this.subinfo ? h("span", { class: "subinfo" }, this.subinfo) : ""), this.mode && this.renderBarOrDoughnut(), this.mode === "doughnut" ? renderLegend.call(this, this.mode) : "", h("priv-chart-popover", { key: '8541969e643c69fd8e0090f69efd7c038ea1e2ea', class: this.isTabbing ? "user-is-tabbing" : "", onIntChartPopoverOpenChanged: (ev) => this.handlePopoverOpenChanged(ev) }), this.mode === "doughnut" ? renderCompletionMessage.call(this) : ""), renderInstructionsText()));
93
+ return (h(Host, { onBlur: () => exitChart.call(this) }, h("div", { ref: (el) => (this.componentWrapperEl = el), class: `component-wrapper ${this.mode} ${this.isTabbing && !this.userIsNavigating ? "user-is-tabbing" : ""}`, role: "application", "aria-label": this.ariaLabelText, tabindex: "0", "aria-roledescription": this.chartRoleDescription, "aria-describedby": `chart-instructions` }, h("label", { id: `label-${this.uid}`, class: `label ${this.barLabelsWidth && this.mode === "bar" ? "custom-width" : ""}`, style: { "--custom-label-width": this.barLabelsWidth }, htmlFor: `graphic-${this.uid}` }, h("span", { class: "label-text" }, this.label), this.subinfo ? h("span", { class: "subinfo" }, this.subinfo) : ""), this.mode && this.renderBarOrDoughnut(), this.mode === "doughnut" ? renderLegend.call(this, this.mode) : "", h("priv-chart-popover", { class: this.isTabbing ? "user-is-tabbing" : "", onIntChartPopoverOpenChanged: (ev) => this.handlePopoverOpenChanged(ev) }), this.mode === "doughnut" ? renderCompletionMessage.call(this) : ""), renderInstructionsText()));
94
94
  }
95
95
  static get is() { return "wm-progress-indicator"; }
96
96
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,69 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ import { AxePuppeteer } from "@axe-core/puppeteer";
3
+ describe("Progress Monitor", () => {
4
+ let page;
5
+ async function createPageHelper() {
6
+ page = await newE2EPage();
7
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
8
+ <wm-progress-monitor id="first-monitor">
9
+ <wm-progress-indicator label="First Indicator">
10
+ <wm-progress-slice amount="5" popover-title="5/20 Completed" popover-text="Popover text" popover-button-text="Button text" legend="completed" </wm-progress-slice>
11
+ <wm-progress-slice amount="15" popover-title="15/20 Not completed" popover-text="Popover text" popover-button-text="Button text" legend="not completed" </wm-progress-slice>
12
+ </wm-progress-indicator>
13
+ <wm-progress-indicator label="Second Indicator">
14
+ <wm-progress-slice amount="3" popover-title="3/20 Completed" popover-text="Popover text" popover-button-text="Button text" legend="completed" </wm-progress-slice>
15
+ <wm-progress-slice amount="17" popover-title="17/20 Not completed" popover-text="Popover text" popover-button-text="Button text" legend="not completed" </wm-progress-slice>
16
+ </wm-progress-indicator>
17
+ </wm-progress-monitor>
18
+ </main></body></html>`);
19
+ }
20
+ it("passes Axe checks", async () => {
21
+ await createPageHelper();
22
+ const results = await new AxePuppeteer(page).analyze();
23
+ expect(results.violations.length).toBe(0);
24
+ });
25
+ // Monitor toggles Indicator modes
26
+ it("toggles indicator modes", async () => {
27
+ await createPageHelper();
28
+ const indicator = await page.find("wm-progress-indicator");
29
+ page.setViewport({ width: 500, height: 900 });
30
+ await page.waitForChanges();
31
+ let classes = indicator.shadowRoot.querySelector(".component-wrapper").getAttribute("class");
32
+ expect(classes).toContain("bar");
33
+ page.setViewport({ width: 700, height: 900 });
34
+ await page.waitForChanges();
35
+ classes = indicator.shadowRoot.querySelector(".component-wrapper").getAttribute("class");
36
+ expect(classes).toContain("doughnut");
37
+ });
38
+ /* can't get the popover to show
39
+ // Slices read x of y {{popover text}}
40
+ it("announces the slice to SR", async () => {
41
+ await createPageHelper();
42
+ const indicator = await page.find("wm-progress-indicator");
43
+ await page.keyboard.press("Tab");
44
+ await page.waitForChanges();
45
+ await page.keyboard.press("ArrowDown");
46
+ await page.waitForChanges();
47
+ const popover = indicator.shadowRoot.querySelector("priv-chart-popover");
48
+ const results = await page.compareScreenshot();
49
+ expect(results).toMatchScreenshot({ allowableMismatchedPixels: 100 });
50
+
51
+ popover.open = true;
52
+ const liveRegion = popover.querySelector(".live-region");
53
+ expect(liveRegion.textContent).toBe("");
54
+ });
55
+ */
56
+ /*** E2E ***/
57
+ // Doughnuts display in row, bars display in column
58
+ // Popovers automatically appear when navigating via keyboard
59
+ // Popovers emit wmProgressIndicatorButtonTriggered
60
+ // Tab navigates through indicators, no tab stop on Monitor
61
+ // Clicking a slice opens the popover
62
+ // Clicking outside or hitting escape closes the popover
63
+ /*** CAN'T BE TESTED? ***/
64
+ // Default breakpoint is the width of all children
65
+ // Breakpoint is customizable
66
+ //// including "px" makes it px
67
+ //// # less than 100 refers to # of charts
68
+ //// # greater than 100 refers to px
69
+ });
@@ -59,7 +59,7 @@ export class ProgressMonitor {
59
59
  }))));
60
60
  }
61
61
  render() {
62
- return (h(Host, { key: '6b654a2da62f9ca402ba16163e1d1497c5c99be8', class: this.mode === "doughnut" ? "row" : "column" }, this.modeInitialized && this.groupLegend && this.mode === "bar" && this.renderLegend(), this.modeInitialized && h("slot", { key: 'd3b70aa0e0c409bc0bcf2d6b20ad2b9c44c8eb11' })));
62
+ return (h(Host, { class: this.mode === "doughnut" ? "row" : "column" }, this.modeInitialized && this.groupLegend && this.mode === "bar" && this.renderLegend(), this.modeInitialized && h("slot", null)));
63
63
  }
64
64
  static get is() { return "wm-progress-monitor"; }
65
65
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,79 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { ProgressMonitor } from "./wm-progress-monitor";
3
+ import { ProgressIndicator } from "./wm-progress-indicator";
4
+ import { ProgressSlice } from "./wm-progress-slice";
5
+ import * as globalFuncs from "../../../global/functions";
6
+ jest.spyOn(globalFuncs, "generateId");
7
+ // @ts-ignore
8
+ globalFuncs.generateId.mockImplementation(() => "random-id");
9
+ // mock ResizeObserver
10
+ global.ResizeObserver = jest.fn().mockImplementation(() => ({
11
+ observe: jest.fn(),
12
+ unobserve: jest.fn(),
13
+ disconnect: jest.fn(),
14
+ }));
15
+ async function createPageHelper() {
16
+ return await newSpecPage({
17
+ components: [ProgressMonitor, ProgressIndicator, ProgressSlice],
18
+ html: `<wm-progress-monitor id="first-monitor">
19
+ <wm-progress-indicator label="First Indicator">
20
+ <wm-progress-slice
21
+ amount="5"
22
+ popover-title="5/20 Completed"
23
+ popover-text="Popover text"
24
+ popover-button-text="Button text"
25
+ legend="completed"
26
+ ></wm-progress-slice>
27
+ <wm-progress-slice
28
+ amount="15"
29
+ popover-title="15/20 Not completed"
30
+ popover-text="Popover text"
31
+ popover-button-text="Button text"
32
+ legend="not completed"
33
+ ></wm-progress-slice>
34
+ </wm-progress-indicator>
35
+ <wm-progress-indicator label="Second Indicator">
36
+ <wm-progress-slice
37
+ amount="3"
38
+ popover-title="3/20 Completed"
39
+ popover-text="Popover text"
40
+ popover-button-text="Button text"
41
+ legend="completed"
42
+ ></wm-progress-slice>
43
+ <wm-progress-slice
44
+ amount="17"
45
+ popover-title="17/20 Not completed"
46
+ popover-text="Popover text"
47
+ popover-button-text="Button text"
48
+ legend="not completed"
49
+ ></wm-progress-slice>
50
+ </wm-progress-indicator>
51
+ </wm-progress-monitor>`,
52
+ });
53
+ }
54
+ describe("Progress Monitor", () => {
55
+ it("builds", async () => {
56
+ const page = await createPageHelper();
57
+ expect(page.root).toMatchSnapshot();
58
+ });
59
+ it("properties and attributes", async () => {
60
+ var _a;
61
+ const page = await createPageHelper();
62
+ const indicator = page.root.querySelector("wm-progress-indicator");
63
+ expect(indicator).toHaveProperty("label");
64
+ expect(indicator).toHaveProperty("subinfo");
65
+ expect(indicator).toHaveProperty("completionMessage");
66
+ expect(indicator).toHaveProperty("showLegend");
67
+ const indicatorComponentWrapper = (_a = indicator.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".component-wrapper");
68
+ expect(indicatorComponentWrapper).toEqualAttribute("role", "application");
69
+ expect(indicatorComponentWrapper).toEqualAttribute("aria-label", "First Indicator");
70
+ expect(indicatorComponentWrapper).toEqualAttribute("aria-roledescription", "Interactive chart");
71
+ expect(indicatorComponentWrapper).toEqualAttribute("aria-describedby", "chart-instructions");
72
+ const slice = page.root.querySelector("wm-progress-slice");
73
+ expect(slice).toHaveProperty("amount");
74
+ expect(slice).toHaveProperty("legend");
75
+ expect(slice).toHaveProperty("popoverTitle");
76
+ expect(slice).toHaveProperty("popoverText");
77
+ expect(slice).toHaveProperty("popoverButtonText");
78
+ });
79
+ });
@@ -544,11 +544,11 @@ export class PrivCalendar {
544
544
  }), class: "header-btn arw-btn" }, h("span", { class: "mdi" }, "\uF142"))), h("div", { "aria-labelledby": "popup-title-year", role: "grid", class: "months" }, h("div", { role: "row", class: "month-row" }, calendar_months.slice(0, 3).map((month, index) => this.renderMonth(month, index))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(3, 6).map((month, index) => this.renderMonth(month, index + 3))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(6, 9).map((month, index) => this.renderMonth(month, index + 6))), h("div", { role: "row", class: "month-row" }, calendar_months.slice(9).map((month, index) => this.renderMonth(month, index + 9))))));
545
545
  }
546
546
  render() {
547
- return (h(Host, { key: 'bf3b27c085d62d04e59c469103af514a5652ca39', onMouseOut: (ev) => {
547
+ return (h(Host, { onMouseOut: (ev) => {
548
548
  // @ts-ignore
549
549
  if (!this.el.parentElement.contains(ev.toElement))
550
550
  this.outOfCal.emit();
551
- }, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", { key: '3433d2109b066f3e3446cc6d8c486a5e303d6939', id: "application", class: "sr-only" }, this.calName, this.calInstructions)));
551
+ }, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", { id: "application", class: "sr-only" }, this.calName, this.calInstructions)));
552
552
  }
553
553
  static get is() { return "priv-calendar"; }
554
554
  static get originalStyleUrls() {