@watermarkinsights/ripple 5.3.0-11 → 5.3.0-13

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 (363) hide show
  1. package/dist/cjs/{chartFunctions-86227b27.js → chartFunctions-0238043b.js} +3 -3
  2. package/dist/cjs/{functions-05e7ad5a.js → functions-3be85c6d.js} +7 -104
  3. package/dist/{esm/app-globals-60cf5693.js → cjs/global-042bb995.js} +2 -7
  4. package/dist/cjs/index-e86c28b6.js +2641 -0
  5. package/dist/cjs/{intl-2b550151.js → intl-567eb9d8.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +3 -4
  7. package/dist/cjs/priv-calendar.cjs.entry.js +26 -27
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +17 -16
  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/ripple.cjs.js +11 -12
  12. package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
  13. package/dist/cjs/wm-button.cjs.entry.js +4 -5
  14. package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
  15. package/dist/cjs/wm-chart.cjs.entry.js +6 -7
  16. package/dist/cjs/wm-date-range.cjs.entry.js +9 -11
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +7 -8
  18. package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
  19. package/dist/cjs/wm-file.cjs.entry.js +4 -5
  20. package/dist/cjs/wm-input.cjs.entry.js +5 -6
  21. package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
  22. package/dist/cjs/wm-modal-footer.cjs.entry.js +3 -4
  23. package/dist/cjs/wm-modal-header.cjs.entry.js +5 -6
  24. package/dist/cjs/wm-modal.cjs.entry.js +5 -6
  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-option_2.cjs.entry.js +8 -10
  28. package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
  29. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +7 -9
  30. package/dist/cjs/wm-search.cjs.entry.js +6 -7
  31. package/dist/cjs/wm-snackbar.cjs.entry.js +22 -23
  32. package/dist/cjs/wm-tab-item_3.cjs.entry.js +8 -11
  33. package/dist/cjs/wm-tag-input.cjs.entry.js +7 -8
  34. package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
  35. package/dist/cjs/wm-textarea.cjs.entry.js +5 -6
  36. package/dist/cjs/wm-timepicker.cjs.entry.js +5 -6
  37. package/dist/cjs/wm-toggletip.cjs.entry.js +5 -6
  38. package/dist/cjs/wm-uploader.cjs.entry.js +6 -7
  39. package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
  40. package/dist/collection/collection-manifest.json +2 -2
  41. package/dist/collection/components/charts/chartFunctions.js +1 -1
  42. package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
  43. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
  44. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +14 -12
  45. package/dist/collection/components/charts/screenshots.e2e.js +96 -0
  46. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
  47. package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
  48. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
  49. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
  50. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
  51. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
  52. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
  53. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  55. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
  56. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +23 -17
  57. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +22 -22
  58. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
  59. package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
  60. package/dist/collection/components/datepickers/wm-date-range.js +14 -19
  61. package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
  62. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
  63. package/dist/collection/components/datepickers/wm-datepicker.js +12 -16
  64. package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
  65. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
  66. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  67. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
  68. package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
  69. package/dist/collection/components/wm-button/wm-button.js +1 -1
  70. package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
  71. package/dist/collection/components/wm-file/wm-file.js +1 -1
  72. package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
  73. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  74. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
  75. package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
  76. package/dist/collection/components/wm-input/wm-input.js +1 -1
  77. package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
  78. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
  79. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  80. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
  81. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  82. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
  83. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  84. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
  85. package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
  86. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  87. package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
  88. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  89. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  90. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
  91. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  92. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
  93. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
  94. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  95. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  96. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
  97. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
  98. package/dist/collection/components/wm-option/wm-option.e2e.js +22 -0
  99. package/dist/collection/components/wm-option/wm-option.js +1 -1
  100. package/dist/collection/components/wm-option/wm-option.spec.js +63 -0
  101. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
  102. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  103. package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
  104. package/dist/collection/components/wm-search/wm-search.js +4 -5
  105. package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
  106. package/dist/collection/components/wm-select/wm-select.e2e.js +521 -0
  107. package/dist/collection/components/wm-select/wm-select.js +2 -2
  108. package/dist/collection/components/wm-select/wm-select.spec.js +271 -0
  109. package/dist/collection/components/wm-snackbar/wm-snackbar.css +17 -17
  110. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
  111. package/dist/collection/components/wm-snackbar/wm-snackbar.js +17 -17
  112. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
  113. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  114. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  115. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  116. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
  117. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
  118. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
  119. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  120. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
  121. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
  122. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  123. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
  124. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
  125. package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
  126. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
  127. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
  128. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  129. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
  130. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
  131. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  132. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
  133. package/dist/collection/global/functions.spec.js +126 -0
  134. package/dist/collection/lang/lang.spec.js +20 -0
  135. package/dist/esm/{chartFunctions-da985798.js → chartFunctions-036fdb89.js} +3 -3
  136. package/dist/esm/{functions-25781571.js → functions-46843ea0.js} +8 -105
  137. package/dist/{cjs/app-globals-c8de33b7.js → esm/global-570a3fbb.js} +1 -10
  138. package/dist/esm/index-558b5a82.js +2610 -0
  139. package/dist/esm/{intl-df3d34d1.js → intl-8b8740b9.js} +1 -1
  140. package/dist/esm/loader.js +4 -5
  141. package/dist/esm/polyfills/core-js.js +0 -0
  142. package/dist/esm/polyfills/dom.js +0 -0
  143. package/dist/esm/polyfills/es5-html-element.js +0 -0
  144. package/dist/esm/polyfills/index.js +0 -0
  145. package/dist/esm/polyfills/system.js +0 -0
  146. package/dist/esm/priv-calendar.entry.js +26 -27
  147. package/dist/esm/priv-chart-popover.entry.js +17 -16
  148. package/dist/esm/priv-navigator-button.entry.js +3 -4
  149. package/dist/esm/priv-navigator-item.entry.js +3 -4
  150. package/dist/esm/ripple.js +12 -13
  151. package/dist/esm/wm-action-menu_2.entry.js +6 -8
  152. package/dist/esm/wm-button.entry.js +4 -5
  153. package/dist/esm/wm-chart-slice.entry.js +1 -1
  154. package/dist/esm/wm-chart.entry.js +6 -7
  155. package/dist/esm/wm-date-range.entry.js +9 -11
  156. package/dist/esm/wm-datepicker.entry.js +7 -8
  157. package/dist/esm/wm-file-list.entry.js +3 -4
  158. package/dist/esm/wm-file.entry.js +4 -5
  159. package/dist/esm/wm-input.entry.js +5 -6
  160. package/dist/esm/wm-line-chart.entry.js +14 -15
  161. package/dist/esm/wm-modal-footer.entry.js +3 -4
  162. package/dist/esm/wm-modal-header.entry.js +5 -6
  163. package/dist/esm/wm-modal.entry.js +5 -6
  164. package/dist/esm/wm-navigation_3.entry.js +10 -13
  165. package/dist/esm/wm-navigator.entry.js +3 -4
  166. package/dist/esm/wm-option_2.entry.js +8 -10
  167. package/dist/esm/wm-pagination.entry.js +4 -5
  168. package/dist/esm/wm-progress-indicator_3.entry.js +7 -9
  169. package/dist/esm/wm-search.entry.js +6 -7
  170. package/dist/esm/wm-snackbar.entry.js +22 -23
  171. package/dist/esm/wm-tab-item_3.entry.js +8 -11
  172. package/dist/esm/wm-tag-input.entry.js +7 -8
  173. package/dist/esm/wm-tag-option.entry.js +2 -2
  174. package/dist/esm/wm-textarea.entry.js +5 -6
  175. package/dist/esm/wm-timepicker.entry.js +5 -6
  176. package/dist/esm/wm-toggletip.entry.js +5 -6
  177. package/dist/esm/wm-uploader.entry.js +6 -7
  178. package/dist/esm/wm-wrapper.entry.js +1 -1
  179. package/dist/esm-es5/{chartFunctions-da985798.js → chartFunctions-036fdb89.js} +1 -1
  180. package/dist/esm-es5/functions-46843ea0.js +1 -0
  181. package/dist/esm-es5/global-570a3fbb.js +1 -0
  182. package/dist/esm-es5/index-558b5a82.js +1 -0
  183. package/dist/esm-es5/{intl-df3d34d1.js → intl-8b8740b9.js} +1 -1
  184. package/dist/esm-es5/loader.js +1 -1
  185. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  186. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  187. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  188. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  189. package/dist/esm-es5/ripple.js +1 -1
  190. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  191. package/dist/esm-es5/wm-button.entry.js +1 -1
  192. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  193. package/dist/esm-es5/wm-chart.entry.js +1 -1
  194. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  195. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  196. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  197. package/dist/esm-es5/wm-file.entry.js +1 -1
  198. package/dist/esm-es5/wm-input.entry.js +1 -1
  199. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  200. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  201. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  202. package/dist/esm-es5/wm-modal.entry.js +1 -1
  203. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  204. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  205. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  206. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  207. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  208. package/dist/esm-es5/wm-search.entry.js +1 -1
  209. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  210. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  211. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  212. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  213. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  214. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  215. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  216. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  217. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  218. package/dist/loader/cdn.js +2 -1
  219. package/dist/loader/index.cjs.js +2 -1
  220. package/dist/loader/index.d.ts +0 -3
  221. package/dist/loader/index.es2017.js +2 -1
  222. package/dist/loader/index.js +2 -1
  223. package/dist/ripple/p-09a31f0c.entry.js +1 -0
  224. package/dist/ripple/p-09dd7f17.system.entry.js +1 -0
  225. package/dist/ripple/p-0dc51fad.entry.js +1 -0
  226. package/dist/ripple/p-0ea8609b.system.entry.js +1 -0
  227. package/dist/ripple/{p-a9d89ac8.system.js → p-1ac66a15.system.js} +1 -1
  228. package/dist/ripple/p-240124b0.system.entry.js +1 -0
  229. package/dist/ripple/p-26fbc7f5.system.entry.js +1 -0
  230. package/dist/ripple/p-294b38ca.system.entry.js +1 -0
  231. package/dist/ripple/p-2b05bf05.entry.js +1 -0
  232. package/dist/ripple/{p-72bdebb5.system.entry.js → p-2ba7e68e.system.entry.js} +1 -1
  233. package/dist/ripple/p-311923b2.system.entry.js +1 -0
  234. package/dist/ripple/p-3183bba8.entry.js +1 -0
  235. package/dist/ripple/p-31976813.entry.js +1 -0
  236. package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
  237. package/dist/ripple/p-33679b9d.entry.js +1 -0
  238. package/dist/ripple/p-34b5830f.system.js +1 -0
  239. package/dist/ripple/p-3568472c.entry.js +1 -0
  240. package/dist/ripple/p-359d45dc.entry.js +1 -0
  241. package/dist/ripple/{p-67a7f0b0.entry.js → p-3a44e1c8.entry.js} +1 -1
  242. package/dist/ripple/{p-672ae2cb.entry.js → p-42d1c301.entry.js} +1 -1
  243. package/dist/ripple/{p-041e579b.entry.js → p-45abd8fe.entry.js} +1 -1
  244. package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
  245. package/dist/ripple/p-4e56f3f5.system.entry.js +1 -0
  246. package/dist/ripple/{p-9f06ed3b.system.entry.js → p-5029fcd8.system.entry.js} +1 -1
  247. package/dist/ripple/p-568c595f.js +2 -0
  248. package/dist/ripple/p-591918a4.entry.js +1 -0
  249. package/dist/ripple/p-5ea5c0e6.system.entry.js +1 -0
  250. package/dist/ripple/p-5ef5081f.entry.js +1 -0
  251. package/dist/ripple/{p-bee8ab6e.entry.js → p-624a2812.entry.js} +1 -1
  252. package/dist/ripple/p-62a8f09c.entry.js +1 -0
  253. package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
  254. package/dist/ripple/p-75ba63ba.entry.js +1 -0
  255. package/dist/ripple/{p-ac40417b.system.entry.js → p-79106e23.system.entry.js} +1 -1
  256. package/dist/ripple/p-7e6f5a1e.system.entry.js +1 -0
  257. package/dist/ripple/p-8029af07.system.entry.js +1 -0
  258. package/dist/ripple/{p-8e72de50.entry.js → p-8159cdf5.entry.js} +1 -1
  259. package/dist/ripple/p-822618d7.entry.js +1 -0
  260. package/dist/ripple/p-86d655fb.system.entry.js +1 -0
  261. package/dist/ripple/p-884294c6.entry.js +1 -0
  262. package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
  263. package/dist/ripple/p-8fbddb6c.system.entry.js +1 -0
  264. package/dist/ripple/p-902a54c5.entry.js +1 -0
  265. package/dist/ripple/p-905dd4da.system.entry.js +1 -0
  266. package/dist/ripple/{p-aab56a37.system.entry.js → p-a152cf3a.system.entry.js} +1 -1
  267. package/dist/ripple/{p-468a0218.entry.js → p-a37cf34a.entry.js} +1 -1
  268. package/dist/ripple/p-a8524a48.entry.js +1 -0
  269. package/dist/ripple/p-ab8d78cc.system.js +2 -0
  270. package/dist/ripple/{p-6fe35d1e.system.entry.js → p-b7ead395.system.entry.js} +1 -1
  271. package/dist/ripple/p-bc5e9d24.entry.js +1 -0
  272. package/dist/ripple/p-c4b9d46d.entry.js +1 -0
  273. package/dist/ripple/p-c885c7f9.entry.js +1 -0
  274. package/dist/ripple/p-c91b10f3.system.entry.js +1 -0
  275. package/dist/ripple/p-c9543950.system.entry.js +1 -0
  276. package/dist/ripple/p-cacfbaf1.system.entry.js +1 -0
  277. package/dist/ripple/{p-2e3728f1.entry.js → p-cc4a429b.entry.js} +1 -1
  278. package/dist/ripple/p-ce9a8bd1.entry.js +1 -0
  279. package/dist/ripple/p-d24882a7.system.entry.js +1 -0
  280. package/dist/ripple/p-d33d6e96.system.entry.js +1 -0
  281. package/dist/ripple/{p-777b8ebc.system.js → p-d4b209ec.system.js} +1 -1
  282. package/dist/ripple/p-d6ce9a49.system.js +1 -0
  283. package/dist/ripple/{p-f54e9ed0.js → p-d79fdf0b.js} +1 -1
  284. package/dist/ripple/{p-fcf76854.js → p-d837c1f5.js} +1 -1
  285. package/dist/ripple/{p-d93c51dd.system.entry.js → p-df1a11f1.system.entry.js} +1 -1
  286. package/dist/ripple/p-df2560f3.system.entry.js +1 -0
  287. package/dist/ripple/p-dfa61ff5.entry.js +1 -0
  288. package/dist/ripple/p-e3bcdde8.system.entry.js +1 -0
  289. package/dist/ripple/p-e7a64841.system.entry.js +1 -0
  290. package/dist/ripple/p-e83a98d3.entry.js +1 -0
  291. package/dist/ripple/p-e995f7f0.js +1 -0
  292. package/dist/ripple/p-e9b9c587.js +1 -0
  293. package/dist/ripple/p-eaac6bcd.entry.js +1 -0
  294. package/dist/ripple/p-f42c3b8c.system.js +1 -0
  295. package/dist/ripple/p-f67fd802.system.entry.js +1 -0
  296. package/dist/ripple/p-fe8d02c3.system.entry.js +1 -0
  297. package/dist/ripple/{p-b0c566b5.system.entry.js → p-ffb31979.system.entry.js} +1 -1
  298. package/dist/ripple/ripple.esm.js +1 -1
  299. package/dist/ripple/ripple.js +1 -1
  300. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +1 -2
  301. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +2 -2
  302. package/dist/types/stencil-public-runtime.d.ts +10 -3
  303. package/package.json +1 -1
  304. package/dist/cjs/index-788526f5.js +0 -1851
  305. package/dist/esm/index-130e07bb.js +0 -1820
  306. package/dist/esm-es5/app-globals-60cf5693.js +0 -1
  307. package/dist/esm-es5/functions-25781571.js +0 -1
  308. package/dist/esm-es5/index-130e07bb.js +0 -1
  309. package/dist/ripple/p-0abc9300.entry.js +0 -1
  310. package/dist/ripple/p-0af94825.entry.js +0 -1
  311. package/dist/ripple/p-0ff41567.system.entry.js +0 -1
  312. package/dist/ripple/p-13fc2164.entry.js +0 -1
  313. package/dist/ripple/p-155224a2.system.entry.js +0 -1
  314. package/dist/ripple/p-1f09134c.entry.js +0 -1
  315. package/dist/ripple/p-298c2675.entry.js +0 -1
  316. package/dist/ripple/p-31781d88.system.entry.js +0 -1
  317. package/dist/ripple/p-31d7ecf9.system.entry.js +0 -1
  318. package/dist/ripple/p-341ebafa.entry.js +0 -1
  319. package/dist/ripple/p-35f209d9.system.entry.js +0 -1
  320. package/dist/ripple/p-376efca9.entry.js +0 -1
  321. package/dist/ripple/p-3b5f4364.system.entry.js +0 -1
  322. package/dist/ripple/p-3ecaf698.system.js +0 -1
  323. package/dist/ripple/p-418ed08c.system.entry.js +0 -1
  324. package/dist/ripple/p-4539ec98.js +0 -1
  325. package/dist/ripple/p-4670ccb4.system.js +0 -1
  326. package/dist/ripple/p-488e1690.entry.js +0 -1
  327. package/dist/ripple/p-4978eebe.entry.js +0 -1
  328. package/dist/ripple/p-4b7a444c.system.entry.js +0 -1
  329. package/dist/ripple/p-4baaf026.entry.js +0 -1
  330. package/dist/ripple/p-56766bb2.entry.js +0 -1
  331. package/dist/ripple/p-5c54b549.system.js +0 -1
  332. package/dist/ripple/p-5caaf651.system.entry.js +0 -1
  333. package/dist/ripple/p-5d5f6511.entry.js +0 -1
  334. package/dist/ripple/p-5ece78e5.system.entry.js +0 -1
  335. package/dist/ripple/p-691ecf14.entry.js +0 -1
  336. package/dist/ripple/p-6d0e5159.system.entry.js +0 -1
  337. package/dist/ripple/p-6d56676e.system.entry.js +0 -1
  338. package/dist/ripple/p-71a18f64.entry.js +0 -1
  339. package/dist/ripple/p-799d06ad.system.entry.js +0 -1
  340. package/dist/ripple/p-7eab6bea.system.entry.js +0 -1
  341. package/dist/ripple/p-7fb95b89.entry.js +0 -1
  342. package/dist/ripple/p-85cbeb7d.system.entry.js +0 -1
  343. package/dist/ripple/p-88cfd58d.js +0 -1
  344. package/dist/ripple/p-8d075bcf.system.entry.js +0 -1
  345. package/dist/ripple/p-a2b807ba.system.entry.js +0 -1
  346. package/dist/ripple/p-a62e7532.entry.js +0 -1
  347. package/dist/ripple/p-b7307be6.system.entry.js +0 -1
  348. package/dist/ripple/p-baa713f1.system.entry.js +0 -1
  349. package/dist/ripple/p-c2181de0.entry.js +0 -1
  350. package/dist/ripple/p-ca76dc92.entry.js +0 -1
  351. package/dist/ripple/p-cef8a45b.system.js +0 -2
  352. package/dist/ripple/p-d5ba9de1.system.entry.js +0 -1
  353. package/dist/ripple/p-d9da0502.js +0 -2
  354. package/dist/ripple/p-db10990a.entry.js +0 -1
  355. package/dist/ripple/p-e2fe86a7.system.entry.js +0 -1
  356. package/dist/ripple/p-e85b1f40.entry.js +0 -1
  357. package/dist/ripple/p-ea0dfadf.system.entry.js +0 -1
  358. package/dist/ripple/p-eb14b354.entry.js +0 -1
  359. package/dist/ripple/p-f17fd62b.entry.js +0 -1
  360. package/dist/ripple/p-fabe4ca4.entry.js +0 -1
  361. package/dist/ripple/p-fbaae34d.system.entry.js +0 -1
  362. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +0 -77
  363. package/dist/types/components/datepickers/wm-date-range.d.ts +0 -73
@@ -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
+ });
@@ -351,12 +351,16 @@
351
351
  .popup-wrapper .day-view .date-grid .date-cell.in-range.preview-end, .popup-wrapper .day-view .date-grid .date-cell.in-range.preview-start {
352
352
  background-image: radial-gradient(var(--wmcolor-datepicker-range-background-hover) 17px, var(--wmcolor-calendar-day-border-hover) 18px, var(--wmcolor-calendar-day-border-hover) 20px, transparent 21px), var(--range-background-hover);
353
353
  }
354
- .popup-wrapper .day-view .date-grid .date-cell.in-range:first-of-type:not(.preview-start, .preview-end, .range-start, .range-end), .popup-wrapper .day-view .date-grid .date-cell.in-range:first-child:not(.preview-start, .preview-end, .range-start, .range-end) {
354
+ .popup-wrapper .day-view .date-grid .date-cell.in-range.preview-end:focus-visible, .popup-wrapper .day-view .date-grid .date-cell.in-range.preview-start:focus-visible {
355
+ outline: none;
356
+ border: none;
357
+ }
358
+ .popup-wrapper .day-view .date-grid .date-cell.in-range:first-of-type:not(.preview-start, .preview-end, .range-start, .range-end), .popup-wrapper .day-view .date-grid .date-cell.in-range:first-child:not(.preview-start, .preview-end, .range-start, .range-end), .popup-wrapper .day-view .date-grid .date-cell.in-range.first-of-month:not(.preview-start, .preview-end, .range-start, .range-end) {
355
359
  background-image: radial-gradient(var(--wmcolor-datepicker-range-background-selected) 16px, transparent 17px), var(--range-background-selected);
356
360
  background-position: -5px center, center left 17px;
357
361
  background-repeat: no-repeat;
358
362
  }
359
- .popup-wrapper .day-view .date-grid .date-cell.in-range:first-of-type:not(.preview-start, .preview-end, .range-start, .range-end):hover, .popup-wrapper .day-view .date-grid .date-cell.in-range:first-child:not(.preview-start, .preview-end, .range-start, .range-end):hover {
363
+ .popup-wrapper .day-view .date-grid .date-cell.in-range:first-of-type:not(.preview-start, .preview-end, .range-start, .range-end):hover, .popup-wrapper .day-view .date-grid .date-cell.in-range:first-child:not(.preview-start, .preview-end, .range-start, .range-end):hover, .popup-wrapper .day-view .date-grid .date-cell.in-range.first-of-month:not(.preview-start, .preview-end, .range-start, .range-end):hover {
360
364
  background-image: radial-gradient(#dbd9ef 20px, transparent 21px), radial-gradient(var(--wmcolor-datepicker-range-background-selected) 16px, transparent 17px), var(--range-background-selected);
361
365
  background-position: center, -5px center, center left 17px;
362
366
  background-repeat: no-repeat;
@@ -394,6 +398,15 @@
394
398
  font-weight: 600;
395
399
  color: var(--wmcolor-datepicker-day-text-selected);
396
400
  }
401
+ .popup-wrapper .day-view .date-grid .date-cell.range-start:focus-visible, .popup-wrapper .day-view .date-grid .date-cell.range-end:focus-visible {
402
+ outline: 3px solid var(--wmcolor-interactive-focus);
403
+ outline-offset: -2px;
404
+ border: none;
405
+ z-index: 11;
406
+ }
407
+ .popup-wrapper .day-view .date-grid .date-cell.range-start:focus-visible[aria-selected=true], .popup-wrapper .day-view .date-grid .date-cell.range-end:focus-visible[aria-selected=true] {
408
+ outline-offset: 2px;
409
+ }
397
410
  .popup-wrapper .day-view .date-grid .date-cell.range-start {
398
411
  background-image: var(--range-start-svg);
399
412
  padding-inline-end: 2px;
@@ -470,26 +483,19 @@
470
483
  background-color: var(--wmcolor-datepicker-month-background-selected);
471
484
  color: var(--wmcolor-datepicker-month-text-selected);
472
485
  }
473
- .popup-wrapper .month.focused:focus-visible {
474
- outline: 3px solid var(--wmcolor-interactive-focus);
475
- outline-offset: -2px;
476
- border: none;
477
- z-index: 11;
478
- }
479
- .popup-wrapper .month.focused:focus-visible[aria-selected=true] {
480
- outline-offset: 2px;
481
- }
482
- .popup-wrapper button:focus-visible,
483
- .popup-wrapper .title-box:focus-visible,
484
- .popup-wrapper .date-cell:focus-visible {
486
+ .popup-wrapper button:focus-visible:not(.preview-start, .preview-end),
487
+ .popup-wrapper .title-box:focus-visible:not(.preview-start, .preview-end),
488
+ .popup-wrapper .month.focused:focus-visible:not(.preview-start, .preview-end),
489
+ .popup-wrapper .date-cell:focus-visible:not(.preview-start, .preview-end) {
485
490
  outline: 3px solid var(--wmcolor-interactive-focus);
486
491
  outline-offset: -2px;
487
492
  border: none;
488
493
  z-index: 11;
489
494
  }
490
- .popup-wrapper button:focus-visible[aria-selected=true],
491
- .popup-wrapper .title-box:focus-visible[aria-selected=true],
492
- .popup-wrapper .date-cell:focus-visible[aria-selected=true] {
495
+ .popup-wrapper button:focus-visible:not(.preview-start, .preview-end)[aria-selected=true],
496
+ .popup-wrapper .title-box:focus-visible:not(.preview-start, .preview-end)[aria-selected=true],
497
+ .popup-wrapper .month.focused:focus-visible:not(.preview-start, .preview-end)[aria-selected=true],
498
+ .popup-wrapper .date-cell:focus-visible:not(.preview-start, .preview-end)[aria-selected=true] {
493
499
  outline-offset: 2px;
494
500
  }
495
501
 
@@ -111,7 +111,7 @@ export class PrivCalendar {
111
111
  const monthOfDate = dateFind.month.asInt(date);
112
112
  const dayOfDate = dateFind.day.asInt(date);
113
113
  const yearOfDate = dateFind.year.asInt(date);
114
- const isStartDate = this.startDate && this.startDate === date;
114
+ const isStartDate = eitherStart && eitherStart === date;
115
115
  let selected = isStartDate ? "true" : "false";
116
116
  const classesArr = ["date-cell"];
117
117
  const isFocused = date === this.focusDate;
@@ -119,7 +119,7 @@ export class PrivCalendar {
119
119
  if (isToday)
120
120
  classesArr.push("today");
121
121
  if (this.calType === "range") {
122
- const isEndDate = eitherStart && this.endDate && this.endDate === date && eitherStart < this.endDate;
122
+ const isEndDate = eitherStart && eitherEnd && eitherEnd === date && eitherStart < eitherEnd;
123
123
  selected = isEndDate ? "true" : selected;
124
124
  const isFirstOfMonth = dayOfDate === 1;
125
125
  const isLastOfMonth = dayOfDate === getMonthLength(monthOfDate, yearOfDate);
@@ -133,7 +133,7 @@ export class PrivCalendar {
133
133
  if (isLastOfMonth)
134
134
  classesArr.push("last-of-month");
135
135
  if (isStartDate) {
136
- if (isInRangePreview && !isEndDate && this.hoverDate && this.hoverDate < this.startDate) {
136
+ if (isInRangePreview && !isEndDate && this.hoverDate && this.hoverDate < eitherStart) {
137
137
  // invert the arrow direction if user mouses over a prior date
138
138
  classesArr.push("range-end");
139
139
  }
@@ -360,42 +360,42 @@ export class PrivCalendar {
360
360
  }
361
361
  isInRange(date) {
362
362
  if (this.otherCalEl) {
363
- const _startDate = this.startDate || this.otherCalEl.startDate;
364
- const _endDate = this.endDate || this.otherCalEl.endDate;
365
- if (_startDate && _endDate) {
363
+ const eitherStart = this.startDate || this.otherCalEl.startDate;
364
+ const eitherEnd = this.endDate || this.otherCalEl.endDate;
365
+ if (eitherStart && eitherEnd) {
366
366
  // if both dates exist the range is shown
367
- return _startDate <= date && date <= _endDate;
367
+ return eitherStart <= date && date <= eitherEnd;
368
368
  }
369
369
  }
370
370
  return false;
371
371
  }
372
372
  isInRangePreview(date) {
373
373
  if (this.otherCalEl) {
374
- const _startDate = this.startDate || this.otherCalEl.startDate;
375
- const _endDate = this.endDate || this.otherCalEl.endDate;
374
+ const eitherStart = this.startDate || this.otherCalEl.startDate;
375
+ const eitherEnd = this.endDate || this.otherCalEl.endDate;
376
376
  // no preview if there's an existing range
377
- if (_startDate && _endDate)
377
+ if (eitherStart && eitherEnd)
378
378
  return false;
379
- if (_startDate && this.hoverDate) {
379
+ if (eitherStart && this.hoverDate) {
380
380
  // if only startDate exists, the hovered date functions as the other end of the range
381
- if (this.hoverDate > _startDate) {
382
- return _startDate <= date && date <= this.hoverDate;
381
+ if (this.hoverDate > eitherStart) {
382
+ return eitherStart <= date && date <= this.hoverDate;
383
383
  }
384
- else if (this.hoverDate < _startDate) {
384
+ else if (this.hoverDate < eitherStart) {
385
385
  // user is mousing over a date prior to the start date
386
386
  // start date considered as end of range
387
- return this.hoverDate <= date && date <= _startDate;
387
+ return this.hoverDate <= date && date <= eitherStart;
388
388
  } // if neither < or > then it's the same date and should return false
389
389
  }
390
- else if (_endDate && this.hoverDate) {
390
+ else if (eitherEnd && this.hoverDate) {
391
391
  // if only endDate exists, the hovered date functions as the other end of the range
392
- if (this.hoverDate < _endDate) {
393
- return this.hoverDate <= date && date <= _endDate;
392
+ if (this.hoverDate < eitherEnd) {
393
+ return this.hoverDate <= date && date <= eitherEnd;
394
394
  }
395
- else if (this.hoverDate > _endDate) {
395
+ else if (this.hoverDate > eitherEnd) {
396
396
  // user is mousing over a date later than the end date
397
397
  // end date considered as beggining of range
398
- return _endDate <= date && date <= this.hoverDate;
398
+ return eitherEnd <= date && date <= this.hoverDate;
399
399
  }
400
400
  }
401
401
  }
@@ -540,11 +540,11 @@ export class PrivCalendar {
540
540
  }), 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))))));
541
541
  }
542
542
  render() {
543
- return (h(Host, { key: 'e1269b7069d6b870cd9e873a046b24ddff6ac6cb', onMouseOut: (ev) => {
543
+ return (h(Host, { onMouseOut: (ev) => {
544
544
  // @ts-ignore
545
545
  if (!this.el.parentElement.contains(ev.toElement))
546
546
  this.outOfCal.emit();
547
- }, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", { key: '3cf3a1b225b865ae1f02367ac318fb29b70a3acd', id: "application", class: "sr-only" }, this.calName, this.calInstructions)));
547
+ }, role: "application", "aria-describedby": "application" }, this.view === "day" ? this.renderDayView() : this.renderMonthView(), h("div", { id: "application", class: "sr-only" }, this.calName, this.calInstructions)));
548
548
  }
549
549
  static get is() { return "priv-calendar"; }
550
550
  static get originalStyleUrls() {
@@ -0,0 +1,89 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { PrivCalendar } from "./priv-calendar";
3
+ import { dateFind, getMonthLength } from "../../../global/functions";
4
+ describe("priv-calendar", () => {
5
+ // ts erroneously prints a warning (unused var)
6
+ // @ts-ignore
7
+ let page, privCalendar;
8
+ beforeEach(async () => {
9
+ page = await newSpecPage({
10
+ components: [PrivCalendar],
11
+ html: "<priv-calendar></priv-calendar>",
12
+ });
13
+ privCalendar = page.root;
14
+ });
15
+ it("gets the number of days in a month", async () => {
16
+ expect(getMonthLength(1, 2021)).toBe(31);
17
+ expect(getMonthLength(2, 2021)).toBe(28);
18
+ expect(getMonthLength(2, 2020)).toBe(29);
19
+ expect(getMonthLength(11, 2067)).toBe(30);
20
+ expect(getMonthLength(13, 2)).toBe(31); // returns 31 by default
21
+ });
22
+ it("removes leading zeroes", async () => {
23
+ const pd = new PrivCalendar();
24
+ expect(pd.removeZeroes("12")).toBe(12);
25
+ expect(pd.removeZeroes("01")).toBe(1);
26
+ expect(pd.removeZeroes("0001312")).toBe(1312);
27
+ // note that the function only works for integers
28
+ // the following would fail
29
+ // expect(pd.removeZeroes("3.1415")).toBe(3.1415);
30
+ });
31
+ it("finds the first weekday of the month", async () => {
32
+ // 1 = Sunday, 7 = Saturday
33
+ const pd = new PrivCalendar();
34
+ expect(pd.getMonthFirstDay(2, 2021)).toBe(2); // Mon
35
+ expect(pd.getMonthFirstDay(7, 1986)).toBe(3); // Tue
36
+ expect(pd.getMonthFirstDay(12, 2030)).toBe(1); // Sun
37
+ });
38
+ it("generates the calendar dates", async () => {
39
+ const pd = new PrivCalendar();
40
+ expect(pd.getCalendarDates("2021-08-14")).toMatchSnapshot();
41
+ });
42
+ // dateFind helper
43
+ it("gets the right dates", async () => {
44
+ expect(dateFind.year.asString("2000-03-23")).toStrictEqual("2000");
45
+ expect(dateFind.year.asInt("2000-03-23")).toStrictEqual(2000);
46
+ expect(dateFind.month.asString("2000-03-23")).toStrictEqual("03");
47
+ expect(dateFind.month.asInt("2000-03-23")).toStrictEqual(3);
48
+ expect(dateFind.day.asString("2000-03-23")).toStrictEqual("23");
49
+ expect(dateFind.day.asInt("2000-03-23")).toStrictEqual(23);
50
+ let res;
51
+ res = dateFind.year.decrease("2000-03-23", 2);
52
+ expect(res).toStrictEqual("1998-03-23");
53
+ res = dateFind.year.increase("1998-03-23", 2);
54
+ expect(res).toStrictEqual("2000-03-23");
55
+ res = dateFind.month.decrease("2000-03-23", 3);
56
+ expect(res).toStrictEqual("1999-12-23");
57
+ res = dateFind.month.increase("2000-11-23", 2);
58
+ expect(res).toStrictEqual("2001-01-23");
59
+ res = dateFind.month.increase("2024-10-01", 1);
60
+ expect(res).toStrictEqual("2024-11-01");
61
+ res = dateFind.day.decrease("2024-03-03", 3);
62
+ expect(res).toStrictEqual("2024-02-29");
63
+ res = dateFind.day.increase("2024-09-29", 5);
64
+ expect(res).toStrictEqual("2024-10-04");
65
+ });
66
+ // _focus accessor
67
+ it("gets the right focus dates", async () => {
68
+ const c = new PrivCalendar();
69
+ c.focusDate = "2000-01-02";
70
+ expect(c._focus.year.asString()).toStrictEqual("2000");
71
+ expect(c._focus.year.asInt()).toStrictEqual(2000);
72
+ expect(c._focus.month.asString()).toStrictEqual("01");
73
+ expect(c._focus.month.asInt()).toStrictEqual(1);
74
+ expect(c._focus.day.asString()).toStrictEqual("02");
75
+ expect(c._focus.day.asInt()).toStrictEqual(2);
76
+ c._focus.year.decrease(2);
77
+ expect(c.focusDate).toStrictEqual("1998-01-02");
78
+ c._focus.year.increase(2);
79
+ expect(c.focusDate).toStrictEqual("2000-01-02");
80
+ c._focus.month.decrease(2);
81
+ expect(c.focusDate).toStrictEqual("1999-11-02");
82
+ c._focus.month.increase(2);
83
+ expect(c.focusDate).toStrictEqual("2000-01-02");
84
+ c._focus.day.decrease(2);
85
+ expect(c.focusDate).toStrictEqual("1999-12-31");
86
+ c._focus.day.increase(2);
87
+ expect(c.focusDate).toStrictEqual("2000-01-02");
88
+ });
89
+ });