@watermarkinsights/ripple 5.2.0 → 5.3.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/{esm/global-cb4fb91c.js → cjs/app-globals-7025eb63.js} +10 -1
  2. package/dist/cjs/{chartFunctions-2195a9d2.js → chartFunctions-9075d687.js} +3 -3
  3. package/dist/cjs/{functions-48a748f0.js → functions-b73604c3.js} +297 -7
  4. package/dist/cjs/index-3c3d6c9f.js +1810 -0
  5. package/dist/cjs/{interfaces-ad9e80a6.js → interfaces-85d78ae9.js} +3 -4
  6. package/dist/cjs/{intl-29d2cc42.js → intl-b20d5420.js} +1 -1
  7. package/dist/cjs/loader.cjs.js +5 -4
  8. package/dist/cjs/priv-calendar.cjs.entry.js +554 -0
  9. package/dist/cjs/priv-chart-popover.cjs.entry.js +6 -5
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +4 -3
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +4 -3
  12. package/dist/cjs/ripple.cjs.js +13 -12
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +9 -7
  14. package/dist/cjs/wm-button.cjs.entry.js +6 -5
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
  16. package/dist/cjs/wm-chart.cjs.entry.js +7 -6
  17. package/dist/cjs/wm-date-range.cjs.entry.js +446 -0
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +90 -20
  19. package/dist/cjs/wm-file-list.cjs.entry.js +5 -4
  20. package/dist/cjs/wm-file.cjs.entry.js +5 -4
  21. package/dist/cjs/wm-input.cjs.entry.js +6 -5
  22. package/dist/cjs/wm-line-chart.cjs.entry.js +15 -14
  23. package/dist/cjs/wm-modal-footer.cjs.entry.js +4 -3
  24. package/dist/cjs/wm-modal-header.cjs.entry.js +6 -5
  25. package/dist/cjs/wm-modal.cjs.entry.js +6 -5
  26. package/dist/cjs/wm-navigation_3.cjs.entry.js +13 -10
  27. package/dist/cjs/wm-navigator.cjs.entry.js +5 -4
  28. package/dist/cjs/wm-option_2.cjs.entry.js +10 -8
  29. package/dist/cjs/wm-pagination.cjs.entry.js +5 -4
  30. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +9 -7
  31. package/dist/cjs/wm-search.cjs.entry.js +7 -6
  32. package/dist/cjs/wm-snackbar.cjs.entry.js +7 -6
  33. package/dist/cjs/wm-tab-item_3.cjs.entry.js +11 -8
  34. package/dist/cjs/wm-tag-input.cjs.entry.js +8 -7
  35. package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
  36. package/dist/cjs/wm-textarea.cjs.entry.js +6 -5
  37. package/dist/cjs/wm-timepicker.cjs.entry.js +6 -5
  38. package/dist/cjs/wm-toggletip.cjs.entry.js +6 -5
  39. package/dist/cjs/wm-uploader.cjs.entry.js +7 -6
  40. package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
  41. package/dist/collection/collection-manifest.json +5 -4
  42. package/dist/collection/components/charts/chartFunctions.js +1 -1
  43. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
  44. package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
  45. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
  46. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
  47. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  48. package/dist/collection/components/{wm-datepicker/wm-datepicker.css → datepickers/datepicker.css} +40 -28
  49. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +479 -0
  50. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +816 -0
  51. package/dist/collection/components/datepickers/wm-date-range.js +804 -0
  52. package/dist/collection/components/{wm-datepicker → datepickers}/wm-datepicker.js +114 -29
  53. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  54. package/dist/collection/components/wm-button/wm-button.js +1 -1
  55. package/dist/collection/components/wm-file/wm-file.js +1 -1
  56. package/dist/collection/components/wm-file-list/wm-file-list.js +5 -5
  57. package/dist/collection/components/wm-input/wm-input.js +1 -1
  58. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  59. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  60. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  61. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  62. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  63. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  64. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  65. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  66. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  67. package/dist/collection/components/wm-option/wm-option.js +1 -1
  68. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  69. package/dist/collection/components/wm-search/wm-search.js +5 -4
  70. package/dist/collection/components/wm-select/wm-select.js +2 -2
  71. package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
  72. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  73. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  74. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  75. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  76. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  77. package/dist/collection/components/wm-timepicker/wm-timepicker.js +11 -8
  78. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  79. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  80. package/dist/collection/dev/action-menu.js +0 -0
  81. package/dist/collection/dev/button.js +0 -0
  82. package/dist/collection/dev/chart-small.js +56 -0
  83. package/dist/collection/dev/chart.js +37 -0
  84. package/dist/collection/dev/date-range.js +6 -0
  85. package/dist/collection/dev/datepicker.js +46 -0
  86. package/dist/collection/dev/file-list.js +16 -0
  87. package/dist/collection/dev/file.js +0 -0
  88. package/dist/collection/dev/input.js +6 -0
  89. package/dist/collection/dev/line-chart.js +0 -0
  90. package/dist/collection/dev/modal.js +75 -0
  91. package/dist/collection/dev/navigation.js +13 -0
  92. package/dist/collection/dev/navigator.js +34 -0
  93. package/dist/collection/dev/pagination.js +7 -0
  94. package/dist/collection/dev/progress-monitor.js +0 -0
  95. package/dist/collection/dev/scripts.js +31 -748
  96. package/dist/collection/dev/search.js +72 -0
  97. package/dist/collection/dev/select.js +57 -0
  98. package/dist/collection/dev/snackbar.js +38 -0
  99. package/dist/collection/dev/tabs.js +44 -0
  100. package/dist/collection/dev/tag-input.js +32 -0
  101. package/dist/collection/dev/textarea.js +28 -0
  102. package/dist/collection/dev/timepicker.js +32 -0
  103. package/dist/collection/dev/toggletip.js +0 -0
  104. package/dist/collection/dev/uploader.js +139 -0
  105. package/dist/collection/global/functions.js +187 -0
  106. package/dist/collection/global/interfaces.js +3 -4
  107. package/dist/{cjs/global-d5e26274.js → esm/app-globals-0c592c57.js} +7 -2
  108. package/dist/esm/{chartFunctions-d2d8f1b2.js → chartFunctions-730742b7.js} +3 -3
  109. package/dist/esm/{functions-58918a32.js → functions-eda88c5f.js} +292 -8
  110. package/dist/esm/index-0ed3ed7d.js +1780 -0
  111. package/dist/esm/{interfaces-9b75fb61.js → interfaces-cc5b177f.js} +3 -4
  112. package/dist/esm/{intl-f9d79dff.js → intl-de8432e2.js} +1 -1
  113. package/dist/esm/loader.js +6 -5
  114. package/dist/esm/polyfills/core-js.js +0 -0
  115. package/dist/esm/polyfills/dom.js +0 -0
  116. package/dist/esm/polyfills/es5-html-element.js +0 -0
  117. package/dist/esm/polyfills/index.js +0 -0
  118. package/dist/esm/polyfills/system.js +0 -0
  119. package/dist/esm/priv-calendar.entry.js +550 -0
  120. package/dist/esm/priv-chart-popover.entry.js +6 -5
  121. package/dist/esm/priv-navigator-button.entry.js +4 -3
  122. package/dist/esm/priv-navigator-item.entry.js +4 -3
  123. package/dist/esm/ripple.js +14 -13
  124. package/dist/esm/wm-action-menu_2.entry.js +9 -7
  125. package/dist/esm/wm-button.entry.js +6 -5
  126. package/dist/esm/wm-chart-slice.entry.js +1 -1
  127. package/dist/esm/wm-chart.entry.js +7 -6
  128. package/dist/esm/wm-date-range.entry.js +442 -0
  129. package/dist/esm/wm-datepicker.entry.js +90 -20
  130. package/dist/esm/wm-file-list.entry.js +5 -4
  131. package/dist/esm/wm-file.entry.js +5 -4
  132. package/dist/esm/wm-input.entry.js +6 -5
  133. package/dist/esm/wm-line-chart.entry.js +15 -14
  134. package/dist/esm/wm-modal-footer.entry.js +4 -3
  135. package/dist/esm/wm-modal-header.entry.js +6 -5
  136. package/dist/esm/wm-modal.entry.js +6 -5
  137. package/dist/esm/wm-navigation_3.entry.js +13 -10
  138. package/dist/esm/wm-navigator.entry.js +5 -4
  139. package/dist/esm/wm-option_2.entry.js +10 -8
  140. package/dist/esm/wm-pagination.entry.js +5 -4
  141. package/dist/esm/wm-progress-indicator_3.entry.js +9 -7
  142. package/dist/esm/wm-search.entry.js +7 -6
  143. package/dist/esm/wm-snackbar.entry.js +7 -6
  144. package/dist/esm/wm-tab-item_3.entry.js +11 -8
  145. package/dist/esm/wm-tag-input.entry.js +8 -7
  146. package/dist/esm/wm-tag-option.entry.js +2 -2
  147. package/dist/esm/wm-textarea.entry.js +6 -5
  148. package/dist/esm/wm-timepicker.entry.js +6 -5
  149. package/dist/esm/wm-toggletip.entry.js +6 -5
  150. package/dist/esm/wm-uploader.entry.js +7 -6
  151. package/dist/esm/wm-wrapper.entry.js +1 -1
  152. package/dist/esm-es5/app-globals-0c592c57.js +1 -0
  153. package/dist/esm-es5/{chartFunctions-d2d8f1b2.js → chartFunctions-730742b7.js} +1 -1
  154. package/dist/esm-es5/functions-eda88c5f.js +1 -0
  155. package/dist/esm-es5/index-0ed3ed7d.js +1 -0
  156. package/dist/esm-es5/{intl-f9d79dff.js → intl-de8432e2.js} +1 -1
  157. package/dist/esm-es5/loader.js +1 -1
  158. package/dist/esm-es5/priv-calendar.entry.js +1 -0
  159. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  160. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  161. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  162. package/dist/esm-es5/ripple.js +1 -1
  163. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  164. package/dist/esm-es5/wm-button.entry.js +1 -1
  165. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  166. package/dist/esm-es5/wm-chart.entry.js +1 -1
  167. package/dist/esm-es5/wm-date-range.entry.js +1 -0
  168. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  169. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  170. package/dist/esm-es5/wm-file.entry.js +1 -1
  171. package/dist/esm-es5/wm-input.entry.js +1 -1
  172. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  173. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  174. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  175. package/dist/esm-es5/wm-modal.entry.js +1 -1
  176. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  177. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  178. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  179. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  180. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  181. package/dist/esm-es5/wm-search.entry.js +1 -1
  182. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  183. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  184. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  185. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  186. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  187. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  188. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  189. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  190. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  191. package/dist/loader/cdn.js +1 -2
  192. package/dist/loader/index.cjs.js +1 -2
  193. package/dist/loader/index.d.ts +3 -0
  194. package/dist/loader/index.es2017.js +1 -2
  195. package/dist/loader/index.js +1 -2
  196. package/dist/ripple/p-0096e233.system.entry.js +1 -0
  197. package/dist/ripple/p-0ad27de3.system.entry.js +1 -0
  198. package/dist/ripple/p-0ccf9f96.entry.js +1 -0
  199. package/dist/ripple/{p-65420b71.entry.js → p-0e1523db.entry.js} +1 -1
  200. package/dist/ripple/{p-406f1e79.system.entry.js → p-0f117524.system.entry.js} +1 -1
  201. package/dist/ripple/p-0f7a85f4.entry.js +1 -0
  202. package/dist/ripple/p-13760c2c.entry.js +1 -0
  203. package/dist/ripple/p-14bab3fa.system.entry.js +1 -0
  204. package/dist/ripple/{p-add75652.system.entry.js → p-181068af.system.entry.js} +1 -1
  205. package/dist/ripple/p-1e536698.js +1 -0
  206. package/dist/ripple/{p-f9689d7a.entry.js → p-245f0080.entry.js} +1 -1
  207. package/dist/ripple/p-2c18b6d1.system.entry.js +1 -0
  208. package/dist/ripple/{p-fa3d10db.js → p-3036a712.js} +1 -1
  209. package/dist/ripple/p-340b18ea.entry.js +1 -0
  210. package/dist/ripple/p-37c39a40.system.entry.js +1 -0
  211. package/dist/ripple/{p-011a4acc.system.entry.js → p-39f4fca0.system.entry.js} +1 -1
  212. package/dist/ripple/p-3f5e94e3.system.js +1 -0
  213. package/dist/ripple/{p-a99b05de.system.entry.js → p-47d993b9.system.entry.js} +1 -1
  214. package/dist/ripple/p-48beea19.system.js +1 -0
  215. package/dist/ripple/{p-3a070f35.entry.js → p-4aae5688.entry.js} +1 -1
  216. package/dist/ripple/p-4ea963f3.system.entry.js +1 -0
  217. package/dist/ripple/p-501d3115.entry.js +1 -0
  218. package/dist/ripple/p-527581c5.entry.js +1 -0
  219. package/dist/ripple/p-563b5820.entry.js +1 -0
  220. package/dist/ripple/p-57695dba.js +2 -0
  221. package/dist/ripple/{p-6a9f7651.entry.js → p-5ab8174c.entry.js} +1 -1
  222. package/dist/ripple/p-5c6c325e.system.entry.js +1 -0
  223. package/dist/ripple/p-5f4c8d63.system.entry.js +1 -0
  224. package/dist/ripple/p-68e3e7c0.entry.js +1 -0
  225. package/dist/ripple/p-68fec757.system.entry.js +1 -0
  226. package/dist/ripple/p-6982bc34.entry.js +1 -0
  227. package/dist/ripple/p-6a793c40.system.entry.js +1 -0
  228. package/dist/ripple/p-6c31f0ad.system.entry.js +1 -0
  229. package/dist/ripple/p-6daf1bd3.system.entry.js +1 -0
  230. package/dist/ripple/p-6e406e8b.entry.js +1 -0
  231. package/dist/ripple/p-77210f26.entry.js +1 -0
  232. package/dist/ripple/p-7a844f5d.system.js +2 -0
  233. package/dist/ripple/{p-a03df46c.entry.js → p-7b5ac088.entry.js} +1 -1
  234. package/dist/ripple/p-7d5aaa73.system.entry.js +1 -0
  235. package/dist/ripple/p-80c92919.system.entry.js +1 -0
  236. package/dist/ripple/p-81fd2ed5.system.entry.js +1 -0
  237. package/dist/ripple/p-84d294d1.system.js +1 -0
  238. package/dist/ripple/p-85178a0d.entry.js +1 -0
  239. package/dist/ripple/p-8768ba4d.system.entry.js +1 -0
  240. package/dist/ripple/p-8af21b69.entry.js +1 -0
  241. package/dist/ripple/{p-eda4d59c.js → p-96cc3c63.js} +1 -1
  242. package/dist/ripple/{p-abe3242c.entry.js → p-98e77431.entry.js} +1 -1
  243. package/dist/ripple/p-a30eef53.entry.js +1 -0
  244. package/dist/ripple/{p-0ba8d3b6.system.entry.js → p-a36f5e7d.system.entry.js} +1 -1
  245. package/dist/ripple/p-ad6c979f.entry.js +1 -0
  246. package/dist/ripple/p-af8c1cfa.entry.js +1 -0
  247. package/dist/ripple/p-b19be746.entry.js +1 -0
  248. package/dist/ripple/p-b483ec14.entry.js +1 -0
  249. package/dist/ripple/p-b4a34241.entry.js +1 -0
  250. package/dist/ripple/{p-c9943d2e.system.entry.js → p-b6dcc6d8.system.entry.js} +1 -1
  251. package/dist/ripple/p-be28a95e.system.entry.js +1 -0
  252. package/dist/ripple/p-c6d970a4.entry.js +1 -0
  253. package/dist/ripple/{p-0d15e3f0.system.js → p-ce028b38.system.js} +1 -1
  254. package/dist/ripple/p-dba63006.system.entry.js +1 -0
  255. package/dist/ripple/p-dbb37269.system.entry.js +1 -0
  256. package/dist/ripple/{p-aecd5a1a.system.js → p-e0929c38.system.js} +1 -1
  257. package/dist/ripple/p-e19f8c43.js +1 -0
  258. package/dist/ripple/{p-02b625f6.system.entry.js → p-e3a15de3.system.entry.js} +1 -1
  259. package/dist/ripple/p-e3d66797.entry.js +1 -0
  260. package/dist/ripple/p-e64276f2.entry.js +1 -0
  261. package/dist/ripple/p-e9978b2f.entry.js +1 -0
  262. package/dist/ripple/p-ecbd3ea9.system.entry.js +1 -0
  263. package/dist/ripple/p-ecd26b33.system.entry.js +1 -0
  264. package/dist/ripple/p-ee49cb03.entry.js +1 -0
  265. package/dist/ripple/p-f0fbb86b.system.entry.js +1 -0
  266. package/dist/ripple/{p-7e56da2e.system.entry.js → p-f170963b.system.entry.js} +1 -1
  267. package/dist/ripple/{p-29509665.system.entry.js → p-f4f3bf9f.system.entry.js} +1 -1
  268. package/dist/ripple/{p-3e9fcb47.entry.js → p-f95bc54b.entry.js} +1 -1
  269. package/dist/ripple/{p-4fc6019b.system.entry.js → p-fd34619f.system.entry.js} +1 -1
  270. package/dist/ripple/{p-25446670.entry.js → p-ff095cec.entry.js} +1 -1
  271. package/dist/ripple/ripple.esm.js +1 -1
  272. package/dist/ripple/ripple.js +1 -1
  273. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +72 -0
  274. package/dist/types/components/datepickers/wm-date-range.d.ts +68 -0
  275. package/dist/types/components/{wm-datepicker → datepickers}/wm-datepicker.d.ts +16 -2
  276. package/dist/types/components/wm-file-list/wm-file-list.d.ts +1 -1
  277. package/dist/types/components.d.ts +111 -57
  278. package/dist/types/global/functions.d.ts +25 -0
  279. package/dist/types/global/interfaces.d.ts +14 -0
  280. package/dist/types/stencil-public-runtime.d.ts +3 -10
  281. package/package.json +1 -1
  282. package/dist/cjs/index-f8ef86de.js +0 -2578
  283. package/dist/cjs/priv-datepicker.cjs.entry.js +0 -654
  284. package/dist/collection/components/charts/chartFunctions.spec.js +0 -16
  285. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +0 -81
  286. package/dist/collection/components/charts/screenshots.e2e.js +0 -96
  287. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +0 -213
  288. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +0 -37
  289. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +0 -176
  290. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +0 -163
  291. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +0 -69
  292. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +0 -79
  293. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +0 -200
  294. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +0 -48
  295. package/dist/collection/components/wm-button/wm-button.e2e.js +0 -55
  296. package/dist/collection/components/wm-button/wm-button.spec.js +0 -74
  297. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +0 -323
  298. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +0 -942
  299. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.spec.js +0 -76
  300. package/dist/collection/components/wm-datepicker/wm-datepicker.e2e.js +0 -382
  301. package/dist/collection/components/wm-datepicker/wm-datepicker.spec.js +0 -21
  302. package/dist/collection/components/wm-file/wm-file.spec.js +0 -194
  303. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +0 -69
  304. package/dist/collection/components/wm-input/wm-input.e2e.js +0 -32
  305. package/dist/collection/components/wm-input/wm-input.spec.js +0 -173
  306. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +0 -23
  307. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +0 -54
  308. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +0 -11
  309. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +0 -8
  310. package/dist/collection/components/wm-modal/wm-modal.e2e.js +0 -104
  311. package/dist/collection/components/wm-modal/wm-modal.spec.js +0 -30
  312. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +0 -102
  313. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +0 -91
  314. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +0 -50
  315. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +0 -209
  316. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +0 -177
  317. package/dist/collection/components/wm-option/wm-option.e2e.js +0 -22
  318. package/dist/collection/components/wm-option/wm-option.spec.js +0 -63
  319. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +0 -312
  320. package/dist/collection/components/wm-search/wm-search.e2e.js +0 -76
  321. package/dist/collection/components/wm-search/wm-search.spec.js +0 -71
  322. package/dist/collection/components/wm-select/wm-select.e2e.js +0 -521
  323. package/dist/collection/components/wm-select/wm-select.spec.js +0 -271
  324. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +0 -112
  325. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +0 -9
  326. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +0 -91
  327. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +0 -12
  328. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +0 -204
  329. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +0 -195
  330. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +0 -41
  331. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +0 -79
  332. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +0 -163
  333. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +0 -147
  334. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +0 -69
  335. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +0 -21
  336. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +0 -70
  337. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +0 -234
  338. package/dist/collection/global/functions.spec.js +0 -126
  339. package/dist/collection/lang/lang.spec.js +0 -20
  340. package/dist/esm/index-f164fbca.js +0 -2548
  341. package/dist/esm/priv-datepicker.entry.js +0 -650
  342. package/dist/esm-es5/functions-58918a32.js +0 -1
  343. package/dist/esm-es5/global-cb4fb91c.js +0 -1
  344. package/dist/esm-es5/index-f164fbca.js +0 -1
  345. package/dist/esm-es5/priv-datepicker.entry.js +0 -1
  346. package/dist/ripple/p-0fe97e85.system.js +0 -2
  347. package/dist/ripple/p-105f479a.system.entry.js +0 -1
  348. package/dist/ripple/p-1453ea51.system.entry.js +0 -1
  349. package/dist/ripple/p-194bdaa4.system.entry.js +0 -1
  350. package/dist/ripple/p-30a9ba6e.entry.js +0 -1
  351. package/dist/ripple/p-31f97455.system.entry.js +0 -1
  352. package/dist/ripple/p-39dc88f3.system.entry.js +0 -1
  353. package/dist/ripple/p-3dfc4242.entry.js +0 -1
  354. package/dist/ripple/p-4428c4f0.entry.js +0 -1
  355. package/dist/ripple/p-45126063.system.entry.js +0 -1
  356. package/dist/ripple/p-4bc27adf.entry.js +0 -1
  357. package/dist/ripple/p-4de51706.js +0 -2
  358. package/dist/ripple/p-4fb3748d.js +0 -1
  359. package/dist/ripple/p-5a4f76e1.entry.js +0 -1
  360. package/dist/ripple/p-5ca67373.entry.js +0 -1
  361. package/dist/ripple/p-5ceb9894.entry.js +0 -1
  362. package/dist/ripple/p-5f89831f.system.entry.js +0 -1
  363. package/dist/ripple/p-63d5db34.entry.js +0 -1
  364. package/dist/ripple/p-63fabfed.entry.js +0 -1
  365. package/dist/ripple/p-75592b7a.entry.js +0 -1
  366. package/dist/ripple/p-7e8daaac.entry.js +0 -1
  367. package/dist/ripple/p-7ea95937.entry.js +0 -1
  368. package/dist/ripple/p-7f1efb21.entry.js +0 -1
  369. package/dist/ripple/p-82d5ea8d.system.entry.js +0 -1
  370. package/dist/ripple/p-82f7eca7.entry.js +0 -1
  371. package/dist/ripple/p-88406560.system.entry.js +0 -1
  372. package/dist/ripple/p-895bfa1f.system.js +0 -1
  373. package/dist/ripple/p-8d840770.system.js +0 -1
  374. package/dist/ripple/p-8e1fd831.entry.js +0 -1
  375. package/dist/ripple/p-95e3ee3d.js +0 -1
  376. package/dist/ripple/p-994dc497.system.entry.js +0 -1
  377. package/dist/ripple/p-9dff37db.system.entry.js +0 -1
  378. package/dist/ripple/p-a71bc14f.entry.js +0 -1
  379. package/dist/ripple/p-b0579a2a.system.entry.js +0 -1
  380. package/dist/ripple/p-b1a4f626.system.entry.js +0 -1
  381. package/dist/ripple/p-b3dfb34a.entry.js +0 -1
  382. package/dist/ripple/p-b4cb2b12.entry.js +0 -1
  383. package/dist/ripple/p-c717d895.entry.js +0 -1
  384. package/dist/ripple/p-cd5fdcb1.entry.js +0 -1
  385. package/dist/ripple/p-cd659e3e.system.entry.js +0 -1
  386. package/dist/ripple/p-d02bc2f2.system.entry.js +0 -1
  387. package/dist/ripple/p-d87de822.system.entry.js +0 -1
  388. package/dist/ripple/p-da9937f5.system.js +0 -1
  389. package/dist/ripple/p-dd479c47.entry.js +0 -1
  390. package/dist/ripple/p-df78942e.entry.js +0 -1
  391. package/dist/ripple/p-e1b60b9e.system.entry.js +0 -1
  392. package/dist/ripple/p-e5de7cae.system.entry.js +0 -1
  393. package/dist/ripple/p-eb9cb021.system.entry.js +0 -1
  394. package/dist/ripple/p-ef3e35fa.entry.js +0 -1
  395. package/dist/ripple/p-f2556f03.system.entry.js +0 -1
  396. package/dist/ripple/p-f7ac9698.system.entry.js +0 -1
  397. /package/dist/esm-es5/{interfaces-9b75fb61.js → interfaces-cc5b177f.js} +0 -0
  398. /package/dist/ripple/{p-196eb2f3.js → p-2732bddd.js} +0 -0
  399. /package/dist/ripple/{p-1402cfa2.system.js → p-42fa7a77.system.js} +0 -0
@@ -1,163 +0,0 @@
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
- });
@@ -1,69 +0,0 @@
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
- });
@@ -1,79 +0,0 @@
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
- });
@@ -1,200 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- import { AxePuppeteer } from "@axe-core/puppeteer";
3
- describe("wm-action-menu", () => {
4
- let page;
5
- beforeEach(async () => {
6
- page = await newE2EPage();
7
- await page.setContent("<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1><wm-action-menu id='test' tooltip='menu name'><wm-menuitem id='first' onClick='action()'>First action</wm-menuitem><wm-menuitem id='second'>Second action</wm-menuitem><wm-menuitem id='third'>Third action</wm-menuitem></wm-action-menu><script>function action() {document.getElementById('first').innerHTML = 'Changed text'}</script></main></body></html>");
8
- });
9
- it("passes Axe checks", async () => {
10
- const results = await new AxePuppeteer(page).analyze();
11
- expect(results.violations.length).toBe(0);
12
- });
13
- //ATTRIBUTES;
14
- it("has the right WAI_ARIA roles, states and properties", async () => {
15
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
16
- const menu = await page.find("wm-action-menu >>> #menu-test");
17
- const second = await page.find("#second");
18
- const third = await page.find("#third");
19
- await page.waitForChanges();
20
- // check aria-expanded attribute
21
- expect(wmbtn).toEqualAttribute("aria-expanded", "false");
22
- // If the element with the aria-expanded attribute controls the expansion of another grouping container that is not 'owned by' the element, the author SHOULD reference the container by using the aria-controls attribute.
23
- // src: https://www.w3.org/WAI/PF/aria/states_and_properties#aria-expanded
24
- expect(wmbtn).toEqualAttribute("aria-controls", "menu-test");
25
- // An element that contains or owns all the menu items has role menu.
26
- expect(menu).toEqualAttribute("role", "menu");
27
- expect(menu).toEqualAttribute("tabindex", "-1");
28
- // Each menuitem in the menu has role menuitem.
29
- expect(second).toEqualAttribute("role", "menuitem"); // just checking one randomly
30
- expect(third).toEqualAttribute("tabindex", "-1");
31
- });
32
- // Down Arrow: Moves focus to the first menuitem. If the dropdown is collapsed, it also expands the list.
33
- // Up Arrow: Moves focus to the last menuitem. If the dropdown is collapsed, it also expands the list.
34
- it("handles Up and Down Arrow keys", async () => {
35
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
36
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
37
- await page.keyboard.press("Tab");
38
- await page.waitForChanges();
39
- await page.keyboard.press("ArrowDown");
40
- await page.waitForChanges();
41
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
42
- const first = await page.find("wm-menuitem#first >>> div");
43
- const second = await page.find("wm-menuitem#second >>> div");
44
- expect(first).toHaveClass("focus");
45
- await page.keyboard.press("ArrowDown");
46
- await page.waitForChanges();
47
- expect(second).toHaveClass("focus");
48
- await page.keyboard.press("ArrowUp");
49
- await page.waitForChanges();
50
- expect(first).toHaveClass("focus");
51
- await page.keyboard.press("Enter");
52
- await page.waitForChanges();
53
- await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
54
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
55
- await page.keyboard.press("ArrowUp");
56
- await page.waitForChanges();
57
- // after the action runs the dropdown close and the dev should focus the relevant element.
58
- // in case they don't, focus will return to the body. The component checks that and brings focus
59
- // back to the button when that's the case.
60
- // Things seem to happen differently with headless chrome / puppeteer. Focus stays on the menuitem even after
61
- // it has become unable to have focus in normal browsers (after dropdown closes). Focus never gets to body.
62
- // So here we simply test that the active el is not the body
63
- const activeEl = await page.evaluate(() => document.activeElement.tagName);
64
- expect(activeEl).not.toEqual("BODY");
65
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
66
- await page.keyboard.press("ArrowUp");
67
- await page.waitForChanges();
68
- expect(second).toHaveClass("focus");
69
- });
70
- // Home: If the dropdown is displayed, moves focus to first menuitem.
71
- // End: If the dropdown is displayed, moves focus to last menuitem.
72
- it("handles Home and End keys", async () => {
73
- await page.keyboard.press("Tab");
74
- await page.keyboard.press("Enter");
75
- await page.waitForTimeout(40);
76
- await page.keyboard.press("ArrowDown");
77
- await page.keyboard.press("ArrowDown");
78
- await page.waitForChanges();
79
- const focusedEl = await page.find("wm-menuitem#third >>> div");
80
- expect(focusedEl).toHaveClass("focus");
81
- await page.keyboard.press("Home");
82
- await page.waitForChanges();
83
- const homefocusedEl = await page.find("wm-menuitem#first >>> div");
84
- expect(focusedEl).not.toHaveClass("focus");
85
- expect(homefocusedEl).toHaveClass("focus");
86
- await page.keyboard.press("End");
87
- await page.waitForChanges();
88
- const endfocusedEl = await page.find("wm-menuitem#third >>> div");
89
- expect(endfocusedEl).toHaveClass("focus");
90
- });
91
- // - Type a character: focus moves to the next menuitem with a name that starts with the typed character.
92
- // - Type multiple characters in rapid succession: focus moves to the next menuitem with a name that starts with the string of characters typed
93
- it("handles typing", async () => {
94
- await page.keyboard.press("Tab");
95
- await page.keyboard.press("Enter");
96
- await page.waitForChanges();
97
- await page.keyboard.press("t");
98
- await page.waitForChanges();
99
- const focusedEl = await page.find("wm-menuitem#third >>> div");
100
- expect(focusedEl).toHaveClass("focus");
101
- });
102
- // OPEN / CLOSE
103
- // Spacebar: Should open the popup (we didn't implement, comes for free. Test is to make sure we don't break it)
104
- it("handles the Spacebar key", async () => {
105
- await page.keyboard.press("Tab");
106
- await page.keyboard.press("Space");
107
- await page.waitForChanges();
108
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
109
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
110
- });
111
- // Escape: If the menu is displayed, closes the popup and returns focus to the button.
112
- it("handles the Escape key", async () => {
113
- await page.keyboard.press("Tab");
114
- await page.keyboard.press("Enter");
115
- await page.waitForChanges();
116
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
117
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
118
- await page.keyboard.press("ArrowDown");
119
- await page.keyboard.press("Escape");
120
- await page.waitForChanges();
121
- await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
122
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
123
- const activeElId = await page.evaluate(() => document.activeElement.id);
124
- expect(activeElId).toEqual("test");
125
- //When dropdown reopens, focus returns to first element
126
- await page.keyboard.press("Enter");
127
- await page.waitForChanges();
128
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
129
- const focusedEl = await page.find("wm-menuitem#first >>> div");
130
- expect(focusedEl).toHaveClass("focus"); //
131
- });
132
- // Enter:
133
- // - If the focus is on the button, it expands the dropdown and places focuses on the first menuitem.
134
- // - If the dropdown is open, it closes the dropdown.
135
- it("opens and closes the dropdown when enter key is pressed", async () => {
136
- await page.keyboard.press("Tab");
137
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
138
- await page.keyboard.press("Enter");
139
- await page.waitForChanges();
140
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
141
- await page.keyboard.press("Enter");
142
- await page.waitForChanges();
143
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
144
- });
145
- it("runs the onClick function passed to the menuitem when clicked or key pressed", async () => {
146
- page = await newE2EPage();
147
- await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
148
- <wm-action-menu id='test' tooltip='menu name'>
149
- <wm-menuitem id='first' onClick='action()'>First action</wm-menuitem>
150
- </wm-action-menu>
151
- <div id='changeMe'>default</div>
152
- <script>
153
- function action() {
154
- document.getElementById('changeMe').textContent += "&"
155
- }
156
- </script></main></body></html>`);
157
- const div = await page.find("#changeMe");
158
- await page.keyboard.press("Tab");
159
- await page.waitForChanges();
160
- await page.keyboard.press("Enter");
161
- await page.waitForChanges();
162
- await page.keyboard.press("Enter");
163
- await page.waitForChanges();
164
- expect(div.textContent).toBe("default&");
165
- await page.waitForTimeout(300); // make sure menu is closed before reopening (closes after the 250ms animation)
166
- await page.keyboard.press("Enter");
167
- await page.waitForChanges();
168
- await page.click("#first");
169
- await page.waitForChanges();
170
- expect(div.textContent).toBe("default&&");
171
- });
172
- it("doesn't open the dropdown if the dropdown is disabled", async () => {
173
- await page.evaluate(() => document.querySelector("wm-action-menu").setAttribute("disabled", "true"));
174
- await page.keyboard.press("Tab");
175
- await page.keyboard.press("Enter");
176
- await page.waitForChanges();
177
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
178
- await page.waitForChanges();
179
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
180
- });
181
- // TOOLTIP
182
- it("renders a tooltip when type is icon", async () => {
183
- await page.keyboard.press("Tab");
184
- await page.waitForChanges();
185
- const tooltipEl = await page.find("#wm-tooltip");
186
- expect(tooltipEl.textContent).toBe("menu name");
187
- });
188
- it("uses the label instead of tooltip text", async () => {
189
- page = await newE2EPage();
190
- await page.setContent("<wm-action-menu icon='f1c0' action-menu-type='icon' tooltip='delete' label-for-identical-buttons='delete this particular thing'><wm-menuitem>1</wm-menuitem></wm-action-menu>");
191
- // use case: when the tooltip is something like "edit" and there are several buttons on a page, the aria label should be more specific than the tooltip
192
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
193
- const btn = wmbtn.shadowRoot.querySelector("button");
194
- await page.keyboard.press("Tab");
195
- await page.waitForChanges();
196
- const tooltipEl = await page.find("#wm-tooltip");
197
- expect(tooltipEl.textContent).toEqual("delete");
198
- expect(btn).toEqualAttribute("aria-label", "delete this particular thing");
199
- });
200
- });
@@ -1,48 +0,0 @@
1
- import { newSpecPage } from "@stencil/core/testing";
2
- import { ActionMenu } from "./wm-action-menu";
3
- import { Menuitem } from "../wm-menuitem/wm-menuitem";
4
- import * as globalFuncs from "../../global/functions";
5
- jest.spyOn(globalFuncs, "getTextDir").mockImplementation(() => "rtl");
6
- jest.spyOn(globalFuncs, "generateId");
7
- // @ts-ignore
8
- globalFuncs.generateId.mockImplementation(() => "random-id");
9
- describe("wm-action-menu", () => {
10
- it("builds", async () => {
11
- const page = await newSpecPage({
12
- components: [ActionMenu, Menuitem],
13
- html: "<wm-action-menu action-menu-type='icon' tooltip='Menu Name'><wm-menuitem icon='f3eb' onClick='someFunction()'>Menuitem one</wm-menuitem></wm-action-menu>",
14
- });
15
- expect(page.root).toMatchSnapshot();
16
- });
17
- it("has the right props", () => {
18
- const menu = new ActionMenu();
19
- expect(menu).toHaveProperty("childItems");
20
- expect(menu).toHaveProperty("keysSoFar");
21
- expect(menu).toHaveProperty("searchIndex");
22
- expect(menu).toHaveProperty("tooltipPosition");
23
- expect(menu).toHaveProperty("actionMenuType");
24
- expect(menu).toHaveProperty("buttonText");
25
- expect(menu).toHaveProperty("tooltip");
26
- expect(menu).toHaveProperty("labelForIdenticalButtons");
27
- });
28
- describe("error throwing", () => {
29
- it("throws error when action-menu-type is text/selector but no button-text is passed", async () => {
30
- const mockFunc = jest.fn();
31
- console.error = mockFunc;
32
- await newSpecPage({
33
- components: [ActionMenu, Menuitem],
34
- html: "<wm-action-menu action-menu-type='text'><wm-menuitem icon='f3eb' onClick='someFunction()'>Menuitem one</wm-menuitem></wm-action-menu>",
35
- });
36
- expect(mockFunc).toHaveBeenCalledWith("wm-action-menu should have a valid button-text property when action-menu-type is set to 'text' or 'selector'");
37
- });
38
- it("throws error when action-menu-type is icon but no tooltip is passed", async () => {
39
- const mockFunc = jest.fn();
40
- console.error = mockFunc;
41
- await newSpecPage({
42
- components: [ActionMenu, Menuitem],
43
- html: "<wm-action-menu action-menu-type='icon'><wm-menuitem icon='f3eb' onClick='someFunction()'>Menuitem one</wm-menuitem></wm-action-menu>",
44
- });
45
- expect(mockFunc).toHaveBeenCalledWith("wm-action-menu should have a valid tooltip when action-menu-type is set to 'icon'");
46
- });
47
- });
48
- });
@@ -1,55 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- import { AxePuppeteer } from "@axe-core/puppeteer";
3
- describe("wm-button", () => {
4
- let page;
5
- beforeEach(async () => {
6
- page = await newE2EPage();
7
- });
8
- it("passes Axe checks", async () => {
9
- await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
10
- <wm-button>Click me</wm-button>
11
- </main></body></html>`);
12
- const results = await new AxePuppeteer(page).analyze();
13
- expect(results.violations.length).toBe(0);
14
- });
15
- it("renders a button", async () => {
16
- await page.setContent("<wm-button></wm-button>");
17
- const element = await page.find("wm-button >>> button");
18
- expect(element).not.toBeNull();
19
- });
20
- it("delegates focus", async () => {
21
- await page.setContent("<wm-button>click here</wm-button>");
22
- const wmButton = await page.find("wm-button");
23
- wmButton.focus();
24
- let activeEl = await page.evaluate(async () => {
25
- let el = await document.activeElement.shadowRoot.activeElement;
26
- return el.nodeName;
27
- });
28
- expect(activeEl).toBe("BUTTON");
29
- });
30
- it("renders a tooltip for text-only buttons if text is truncated", async () => {
31
- await page.setContent("<wm-button text-wrap='false' style='width: 100px' button-type='textonly'>Text-only button with a very long text and text-wrap set to false</wm-button>");
32
- await page.waitForChanges();
33
- await page.keyboard.press("Tab");
34
- await page.waitForChanges();
35
- const tooltip = await page.find("#wm-tooltip");
36
- expect(tooltip.textContent).toEqual("Text-only button with a very long text and text-wrap set to false");
37
- });
38
- it("uses the label instead of tooltip text", async () => {
39
- // use case: when the tooltip is something like "edit" and there are several buttons on a page, the aria label should be more specific than the tooltip
40
- await page.setContent("<wm-button button-type='icononly' icon='f1c0' tooltip='delete' label-for-identical-buttons='Delete item 37' ></wm-button>");
41
- await page.waitForChanges();
42
- const btn = await page.find("wm-button >>> button");
43
- expect(btn.getAttribute("aria-label")).toBe("Delete item 37");
44
- });
45
- it("renders the passed-in property button type property as a class", async () => {
46
- await page.setContent("<wm-button></wm-button>");
47
- const component = await page.find("wm-button");
48
- const defaultButton = await page.find("wm-button >>> button");
49
- expect(defaultButton).toHaveClass("-secondary");
50
- component.setProperty("buttonType", "primary");
51
- const primaryButton = await page.find("wm-button >>> button");
52
- await page.waitForChanges();
53
- expect(primaryButton).toHaveClass("-primary");
54
- });
55
- });