@watermarkinsights/ripple 5.3.0 → 5.3.1-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 (357) 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-4021eaa9.js → cjs/global-c7fa7be9.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 +5 -6
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
  11. package/dist/cjs/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 +7 -8
  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 +8 -8
  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 +2 -2
  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.js +2 -2
  57. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
  58. package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
  59. package/dist/collection/components/datepickers/wm-date-range.js +12 -16
  60. package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
  61. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
  62. package/dist/collection/components/datepickers/wm-datepicker.js +12 -16
  63. package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
  64. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
  65. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  66. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
  67. package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
  68. package/dist/collection/components/wm-button/wm-button.js +1 -1
  69. package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
  70. package/dist/collection/components/wm-file/wm-file.js +1 -1
  71. package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
  72. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  73. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
  74. package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
  75. package/dist/collection/components/wm-input/wm-input.js +1 -1
  76. package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
  77. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
  78. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  79. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
  80. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  81. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
  82. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  83. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
  84. package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
  85. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  86. package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
  87. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  88. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  89. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
  90. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  91. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
  92. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
  93. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  94. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  95. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
  96. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
  97. package/dist/collection/components/wm-option/wm-option.e2e.js +22 -0
  98. package/dist/collection/components/wm-option/wm-option.js +1 -1
  99. package/dist/collection/components/wm-option/wm-option.spec.js +63 -0
  100. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
  101. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  102. package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
  103. package/dist/collection/components/wm-search/wm-search.js +4 -5
  104. package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
  105. package/dist/collection/components/wm-select/wm-select.e2e.js +521 -0
  106. package/dist/collection/components/wm-select/wm-select.js +2 -2
  107. package/dist/collection/components/wm-select/wm-select.spec.js +271 -0
  108. package/dist/collection/components/wm-snackbar/wm-snackbar.css +8 -4
  109. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
  110. package/dist/collection/components/wm-snackbar/wm-snackbar.js +3 -2
  111. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
  112. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  113. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  114. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  115. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
  116. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
  117. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
  118. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  119. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
  120. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
  121. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  122. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
  123. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
  124. package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
  125. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
  126. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
  127. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  128. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
  129. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
  130. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  131. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
  132. package/dist/collection/global/functions.spec.js +126 -0
  133. package/dist/collection/lang/lang.spec.js +20 -0
  134. package/dist/esm/{chartFunctions-da985798.js → chartFunctions-036fdb89.js} +3 -3
  135. package/dist/esm/{functions-25781571.js → functions-46843ea0.js} +8 -105
  136. package/dist/{cjs/app-globals-7e0e393a.js → esm/global-56d6c80b.js} +1 -10
  137. package/dist/esm/index-558b5a82.js +2610 -0
  138. package/dist/esm/{intl-df3d34d1.js → intl-8b8740b9.js} +1 -1
  139. package/dist/esm/loader.js +4 -5
  140. package/dist/esm/polyfills/core-js.js +0 -0
  141. package/dist/esm/polyfills/dom.js +0 -0
  142. package/dist/esm/polyfills/es5-html-element.js +0 -0
  143. package/dist/esm/polyfills/index.js +0 -0
  144. package/dist/esm/polyfills/system.js +0 -0
  145. package/dist/esm/priv-calendar.entry.js +5 -6
  146. package/dist/esm/priv-chart-popover.entry.js +5 -6
  147. package/dist/esm/priv-navigator-button.entry.js +3 -4
  148. package/dist/esm/priv-navigator-item.entry.js +3 -4
  149. package/dist/esm/ripple.js +12 -13
  150. package/dist/esm/wm-action-menu_2.entry.js +6 -8
  151. package/dist/esm/wm-button.entry.js +4 -5
  152. package/dist/esm/wm-chart-slice.entry.js +1 -1
  153. package/dist/esm/wm-chart.entry.js +6 -7
  154. package/dist/esm/wm-date-range.entry.js +7 -8
  155. package/dist/esm/wm-datepicker.entry.js +7 -8
  156. package/dist/esm/wm-file-list.entry.js +3 -4
  157. package/dist/esm/wm-file.entry.js +4 -5
  158. package/dist/esm/wm-input.entry.js +5 -6
  159. package/dist/esm/wm-line-chart.entry.js +14 -15
  160. package/dist/esm/wm-modal-footer.entry.js +3 -4
  161. package/dist/esm/wm-modal-header.entry.js +5 -6
  162. package/dist/esm/wm-modal.entry.js +5 -6
  163. package/dist/esm/wm-navigation_3.entry.js +10 -13
  164. package/dist/esm/wm-navigator.entry.js +3 -4
  165. package/dist/esm/wm-option_2.entry.js +8 -10
  166. package/dist/esm/wm-pagination.entry.js +4 -5
  167. package/dist/esm/wm-progress-indicator_3.entry.js +7 -9
  168. package/dist/esm/wm-search.entry.js +6 -7
  169. package/dist/esm/wm-snackbar.entry.js +8 -8
  170. package/dist/esm/wm-tab-item_3.entry.js +8 -11
  171. package/dist/esm/wm-tag-input.entry.js +7 -8
  172. package/dist/esm/wm-tag-option.entry.js +2 -2
  173. package/dist/esm/wm-textarea.entry.js +5 -6
  174. package/dist/esm/wm-timepicker.entry.js +5 -6
  175. package/dist/esm/wm-toggletip.entry.js +5 -6
  176. package/dist/esm/wm-uploader.entry.js +6 -7
  177. package/dist/esm/wm-wrapper.entry.js +1 -1
  178. package/dist/esm-es5/{chartFunctions-da985798.js → chartFunctions-036fdb89.js} +1 -1
  179. package/dist/esm-es5/functions-46843ea0.js +1 -0
  180. package/dist/esm-es5/global-56d6c80b.js +1 -0
  181. package/dist/esm-es5/index-558b5a82.js +1 -0
  182. package/dist/esm-es5/{intl-df3d34d1.js → intl-8b8740b9.js} +1 -1
  183. package/dist/esm-es5/loader.js +1 -1
  184. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  185. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  186. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  187. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  188. package/dist/esm-es5/ripple.js +1 -1
  189. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  190. package/dist/esm-es5/wm-button.entry.js +1 -1
  191. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  192. package/dist/esm-es5/wm-chart.entry.js +1 -1
  193. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  194. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  195. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  196. package/dist/esm-es5/wm-file.entry.js +1 -1
  197. package/dist/esm-es5/wm-input.entry.js +1 -1
  198. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  199. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  200. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  201. package/dist/esm-es5/wm-modal.entry.js +1 -1
  202. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  203. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  204. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  205. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  206. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  207. package/dist/esm-es5/wm-search.entry.js +1 -1
  208. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  209. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  210. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  211. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  212. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  213. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  214. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  215. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  216. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  217. package/dist/loader/cdn.js +2 -1
  218. package/dist/loader/index.cjs.js +2 -1
  219. package/dist/loader/index.d.ts +0 -3
  220. package/dist/loader/index.es2017.js +2 -1
  221. package/dist/loader/index.js +2 -1
  222. package/dist/ripple/p-09a31f0c.entry.js +1 -0
  223. package/dist/ripple/p-0aa17cac.entry.js +1 -0
  224. package/dist/ripple/p-0dc51fad.entry.js +1 -0
  225. package/dist/ripple/p-0ea8609b.system.entry.js +1 -0
  226. package/dist/ripple/{p-a9d89ac8.system.js → p-1ac66a15.system.js} +1 -1
  227. package/dist/ripple/p-22ed3b52.system.js +1 -0
  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-bee8ab6e.entry.js → p-624a2812.entry.js} +1 -1
  250. package/dist/ripple/p-62a8f09c.entry.js +1 -0
  251. package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
  252. package/dist/ripple/p-75ba63ba.entry.js +1 -0
  253. package/dist/ripple/{p-ac40417b.system.entry.js → p-79106e23.system.entry.js} +1 -1
  254. package/dist/ripple/p-7e6f5a1e.system.entry.js +1 -0
  255. package/dist/ripple/p-8029af07.system.entry.js +1 -0
  256. package/dist/ripple/{p-8e72de50.entry.js → p-8159cdf5.entry.js} +1 -1
  257. package/dist/ripple/p-822618d7.entry.js +1 -0
  258. package/dist/ripple/p-86d655fb.system.entry.js +1 -0
  259. package/dist/ripple/p-884294c6.entry.js +1 -0
  260. package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
  261. package/dist/ripple/p-8fbddb6c.system.entry.js +1 -0
  262. package/dist/ripple/p-902a54c5.entry.js +1 -0
  263. package/dist/ripple/p-905dd4da.system.entry.js +1 -0
  264. package/dist/ripple/{p-aab56a37.system.entry.js → p-a152cf3a.system.entry.js} +1 -1
  265. package/dist/ripple/{p-468a0218.entry.js → p-a37cf34a.entry.js} +1 -1
  266. package/dist/ripple/p-a8524a48.entry.js +1 -0
  267. package/dist/ripple/p-ab8d78cc.system.js +2 -0
  268. package/dist/ripple/p-afe08b14.entry.js +1 -0
  269. package/dist/ripple/p-b2214a37.system.js +1 -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-c3ac0ad7.system.entry.js +1 -0
  273. package/dist/ripple/p-c4b9d46d.entry.js +1 -0
  274. package/dist/ripple/p-c885c7f9.entry.js +1 -0
  275. package/dist/ripple/p-c91b10f3.system.entry.js +1 -0
  276. package/dist/ripple/p-c9543950.system.entry.js +1 -0
  277. package/dist/ripple/p-cacfbaf1.system.entry.js +1 -0
  278. package/dist/ripple/{p-2e3728f1.entry.js → p-cc4a429b.entry.js} +1 -1
  279. package/dist/ripple/p-ce9a8bd1.entry.js +1 -0
  280. package/dist/ripple/p-d24882a7.system.entry.js +1 -0
  281. package/dist/ripple/p-d33d6e96.system.entry.js +1 -0
  282. package/dist/ripple/{p-777b8ebc.system.js → p-d4b209ec.system.js} +1 -1
  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-e3bcdde8.system.entry.js +1 -0
  288. package/dist/ripple/p-e3de5bbd.system.entry.js +1 -0
  289. package/dist/ripple/{p-ca35a8b7.system.entry.js → p-e7a64841.system.entry.js} +1 -1
  290. package/dist/ripple/p-e83a98d3.entry.js +1 -0
  291. package/dist/ripple/p-e995f7f0.js +1 -0
  292. package/dist/ripple/p-eaac6bcd.entry.js +1 -0
  293. package/dist/ripple/p-f67fd802.system.entry.js +1 -0
  294. package/dist/ripple/p-fd9cb5b7.js +1 -0
  295. package/dist/ripple/p-fe8d02c3.system.entry.js +1 -0
  296. package/dist/ripple/{p-b0c566b5.system.entry.js → p-ffb31979.system.entry.js} +1 -1
  297. package/dist/ripple/ripple.esm.js +1 -1
  298. package/dist/ripple/ripple.js +1 -1
  299. package/dist/types/stencil-public-runtime.d.ts +10 -3
  300. package/package.json +1 -1
  301. package/dist/cjs/index-788526f5.js +0 -1851
  302. package/dist/esm/index-130e07bb.js +0 -1820
  303. package/dist/esm-es5/app-globals-4021eaa9.js +0 -1
  304. package/dist/esm-es5/functions-25781571.js +0 -1
  305. package/dist/esm-es5/index-130e07bb.js +0 -1
  306. package/dist/ripple/p-0af94825.entry.js +0 -1
  307. package/dist/ripple/p-0ff41567.system.entry.js +0 -1
  308. package/dist/ripple/p-13fc2164.entry.js +0 -1
  309. package/dist/ripple/p-155224a2.system.entry.js +0 -1
  310. package/dist/ripple/p-1f09134c.entry.js +0 -1
  311. package/dist/ripple/p-298c2675.entry.js +0 -1
  312. package/dist/ripple/p-2d619f83.entry.js +0 -1
  313. package/dist/ripple/p-31781d88.system.entry.js +0 -1
  314. package/dist/ripple/p-31d7ecf9.system.entry.js +0 -1
  315. package/dist/ripple/p-341ebafa.entry.js +0 -1
  316. package/dist/ripple/p-3423a9b6.system.entry.js +0 -1
  317. package/dist/ripple/p-376efca9.entry.js +0 -1
  318. package/dist/ripple/p-3b5f4364.system.entry.js +0 -1
  319. package/dist/ripple/p-418ed08c.system.entry.js +0 -1
  320. package/dist/ripple/p-4670ccb4.system.js +0 -1
  321. package/dist/ripple/p-488e1690.entry.js +0 -1
  322. package/dist/ripple/p-4b7a444c.system.entry.js +0 -1
  323. package/dist/ripple/p-4baaf026.entry.js +0 -1
  324. package/dist/ripple/p-56766bb2.entry.js +0 -1
  325. package/dist/ripple/p-5caaf651.system.entry.js +0 -1
  326. package/dist/ripple/p-5ece78e5.system.entry.js +0 -1
  327. package/dist/ripple/p-691ecf14.entry.js +0 -1
  328. package/dist/ripple/p-6d0e5159.system.entry.js +0 -1
  329. package/dist/ripple/p-6d56676e.system.entry.js +0 -1
  330. package/dist/ripple/p-7eab6bea.system.entry.js +0 -1
  331. package/dist/ripple/p-7fb95b89.entry.js +0 -1
  332. package/dist/ripple/p-85cbeb7d.system.entry.js +0 -1
  333. package/dist/ripple/p-88cfd58d.js +0 -1
  334. package/dist/ripple/p-8af06db6.system.entry.js +0 -1
  335. package/dist/ripple/p-8d075bcf.system.entry.js +0 -1
  336. package/dist/ripple/p-a62e7532.entry.js +0 -1
  337. package/dist/ripple/p-a70a261c.entry.js +0 -1
  338. package/dist/ripple/p-ad4529d2.entry.js +0 -1
  339. package/dist/ripple/p-b7307be6.system.entry.js +0 -1
  340. package/dist/ripple/p-bafefea3.js +0 -1
  341. package/dist/ripple/p-c2181de0.entry.js +0 -1
  342. package/dist/ripple/p-ca76dc92.entry.js +0 -1
  343. package/dist/ripple/p-cb33f410.system.js +0 -1
  344. package/dist/ripple/p-cef8a45b.system.js +0 -2
  345. package/dist/ripple/p-d5ba9de1.system.entry.js +0 -1
  346. package/dist/ripple/p-d5d04b09.system.js +0 -1
  347. package/dist/ripple/p-d9da0502.js +0 -2
  348. package/dist/ripple/p-db10990a.entry.js +0 -1
  349. package/dist/ripple/p-de0e138f.system.entry.js +0 -1
  350. package/dist/ripple/p-e2fe86a7.system.entry.js +0 -1
  351. package/dist/ripple/p-e85b1f40.entry.js +0 -1
  352. package/dist/ripple/p-ea0dfadf.system.entry.js +0 -1
  353. package/dist/ripple/p-eb14b354.entry.js +0 -1
  354. package/dist/ripple/p-f17fd62b.entry.js +0 -1
  355. package/dist/ripple/p-f836a5e8.entry.js +0 -1
  356. package/dist/ripple/p-fabe4ca4.entry.js +0 -1
  357. package/dist/ripple/p-fbaae34d.system.entry.js +0 -1
@@ -0,0 +1,177 @@
1
+ jest.mock("../../global/services/http-service");
2
+ import { newSpecPage } from "@stencil/core/testing";
3
+ //import { PrivNavigatorItem } from "./priv-navigator-item/priv-navigator-item";
4
+ import { Navigator } from "./wm-navigator";
5
+ describe("wm-navigator", () => {
6
+ it("builds (with props)", async () => {
7
+ const comp = await newSpecPage({
8
+ components: [Navigator],
9
+ html: `<wm-navigator
10
+ email="anna@user.com"
11
+ user-name="Anna User"
12
+ auth-type="3"
13
+ products='[{"samlLinkUrl":"https://aqua.taskstream.com/sso/samlLogin","linkUrl":"https://aqua.taskstream.com/sso/login","id":"aqua","iconUrl":"https://cdn.watermarkinsights.com/images/login/aqua.svg","name":"Aqua"},{"samlLinkUrl":"https://www.vialivetext.com/wm_sso/saml_login","linkUrl":"https://www.vialivetext.com/wm_sso/login","id":"via","iconUrl":"https://cdn.watermarkinsights.com/images/login/via.svg","name":"Via"},{"samlLinkUrl":"https://watermark.evaluationkit.com/Login/SAML","linkUrl":"https://watermark.evaluationkit.com/Login","id":"ek","iconUrl":"https://cdn.watermarkinsights.com/images/login/evaluationkit.svg","name":"Evaluation Kit"},{"samlLinkUrl":null,"linkUrl":"https://w.taskstream.com/WatermarkSSO/Authenticate/lat","id":"lat","iconUrl":"https://cdn.watermarkinsights.com/images/login/tslat.svg","name":"Taskstream LAT"},{"samlLinkUrl":null,"linkUrl":"https://w.taskstream.com/WatermarkSSO/Authenticate/ams","id":"ams","iconUrl":"https://cdn.watermarkinsights.com/images/login/tsams.svg","name":"Taskstream AMS"},{"samlLinkUrl":"https://www.digitalmeasures.com/login/sso/authenticate/saml","linkUrl":"https://www.digitalmeasures.com/login/sso/authenticate","id":"dm","iconUrl":"https://cdn.watermarkinsights.com/images/login/digitalmeasures.svg","name":"Digital Measures"},{"samlLinkUrl":"https://planning.watermarkinsights.com/login/sso/saml_login","linkUrl":"https://planning.watermarkinsights.com/login/sso","id":"planning","iconUrl":"https://cdn.watermarkinsights.com/images/login/planningselfstudy.svg","name":"Planning & Self-Study"}]'
14
+ ></wm-navigator>`,
15
+ });
16
+ expect(comp.root).toMatchSnapshot();
17
+ });
18
+ it("builds (endpoint)", async () => {
19
+ const comp = await newSpecPage({
20
+ components: [Navigator],
21
+ html: `<wm-navigator
22
+ user-name="Bettie User"
23
+ load-from-userinfo="true"
24
+ ></wm-navigator>`,
25
+ });
26
+ expect(comp.root).toMatchSnapshot();
27
+ });
28
+ it("returns the proper link", () => {
29
+ const nav = new Navigator();
30
+ nav.email = "a_user@company.com";
31
+ nav.userName = "Anna User";
32
+ nav.parsedProducts = [
33
+ {
34
+ name: "Aqua",
35
+ iconUrl: "aqua icon",
36
+ linkUrl: "aqua sso",
37
+ samlLinkUrl: "aqua saml",
38
+ id: "aqua",
39
+ },
40
+ {
41
+ name: "via",
42
+ iconUrl: "via icon",
43
+ linkUrl: "via sso",
44
+ samlLinkUrl: "via saml",
45
+ id: "via",
46
+ },
47
+ {
48
+ name: "ek",
49
+ iconUrl: "ek icon",
50
+ linkUrl: "ek sso",
51
+ samlLinkUrl: "ek saml",
52
+ id: "ek",
53
+ },
54
+ {
55
+ name: "lat",
56
+ iconUrl: "lat icon",
57
+ linkUrl: "lat sso",
58
+ samlLinkUrl: "lat saml",
59
+ id: "lat",
60
+ },
61
+ {
62
+ name: "ams",
63
+ iconUrl: "ams icon",
64
+ linkUrl: "ams sso",
65
+ samlLinkUrl: "ams saml",
66
+ id: "ams",
67
+ },
68
+ {
69
+ name: "dm",
70
+ iconUrl: "dm icon",
71
+ linkUrl: "dm sso",
72
+ samlLinkUrl: "dm saml",
73
+ id: "dm",
74
+ },
75
+ {
76
+ name: "planning",
77
+ iconUrl: "planning icon",
78
+ linkUrl: "planning sso",
79
+ samlLinkUrl: "planning saml",
80
+ id: "planning",
81
+ },
82
+ ];
83
+ nav.connectionName = "xoxo"; // connection name only appended for saml
84
+ nav.authType = 2; // = sso
85
+ // setProductOnClick returns the onClick function
86
+ // we invoke it to test the string
87
+ expect(nav.setProductOnClick("aqua")()).toBe("aqua sso");
88
+ expect(nav.setProductOnClick("via")()).toBe("via sso");
89
+ expect(nav.setProductOnClick("ek")()).toBe("ek sso");
90
+ expect(nav.setProductOnClick("lat")()).toBe("lat sso");
91
+ expect(nav.setProductOnClick("ams")()).toBe("ams sso");
92
+ expect(nav.setProductOnClick("dm")()).toBe("dm sso");
93
+ expect(nav.setProductOnClick("planning")()).toBe("planning sso");
94
+ nav.authType = 3; // = saml
95
+ expect(nav.setProductOnClick("aqua")()).toBe("aqua saml/?connection_name=xoxo");
96
+ // if connection_name is not set, nothing is appended
97
+ nav.connectionName = "";
98
+ expect(nav.setProductOnClick("aqua")()).toBe("aqua saml");
99
+ });
100
+ it("handles unknown products (props mode)", async () => {
101
+ // in props mode the component checks a hard-coded list of products
102
+ // if the product is not in the list, it ignores it altogether
103
+ // 2 exceptions: "c1" is converted to "livetext", and anything with the name "admin" (e.g. "system_admin_sit", "platform_admin") is converted to "platform_admin"
104
+ const comp = await newSpecPage({
105
+ components: [Navigator],
106
+ html: `<wm-navigator
107
+ email="anna@user.com"
108
+ user-name="Anna User"
109
+ auth-type="3"
110
+ products='[{"samlLinkUrl":"something_weird.fakeurl","linkUrl":"something_weird.fakeurl","id":"something_weird"},{"samlLinkUrl":"livetext.fakeurl","linkUrl":"livetext.fakeurl","id":"c1"},{"samlLinkUrl":"platform.fakeurl","linkUrl":"platform.fakeurl","id":"something_with_admin_in_it"}]'
111
+ ></wm-navigator>`,
112
+ });
113
+ expect(comp.root).toMatchSnapshot();
114
+ });
115
+ it("loads (userinfo mode)", async () => {
116
+ const page = await newSpecPage({
117
+ components: [Navigator],
118
+ html: `<wm-navigator user-name="User Name" load-from-userinfo="true"></wm-navigator>`,
119
+ });
120
+ expect(page.root).toMatchSnapshot();
121
+ const nav = page.body.querySelector("wm-navigator");
122
+ const items = nav.shadowRoot.querySelectorAll("priv-navigator-item");
123
+ expect(items.length).toBe(7);
124
+ items.forEach((i) => {
125
+ expect(i.id).not.toBeNull();
126
+ expect(i.onClick).not.toBeNull();
127
+ });
128
+ });
129
+ it("camel cases product keys", async () => {
130
+ const nav = new Navigator();
131
+ expect(nav.productKeysToCamelCase([
132
+ {
133
+ description: "desc1",
134
+ icon_url: "url1",
135
+ id: "id1",
136
+ link_url: "url1",
137
+ name: "name1",
138
+ },
139
+ {
140
+ description: "desc2",
141
+ icon_url: "url2",
142
+ id: "id2",
143
+ link_url: "url2",
144
+ name: "name2",
145
+ },
146
+ {
147
+ description: "desc3",
148
+ icon_url: "url3",
149
+ id: "id3",
150
+ link_url: "url3",
151
+ name: "name3",
152
+ },
153
+ ])).toStrictEqual([
154
+ {
155
+ description: "desc1",
156
+ iconUrl: "url1",
157
+ id: "id1",
158
+ linkUrl: "url1",
159
+ name: "name1",
160
+ },
161
+ {
162
+ description: "desc2",
163
+ iconUrl: "url2",
164
+ id: "id2",
165
+ linkUrl: "url2",
166
+ name: "name2",
167
+ },
168
+ {
169
+ description: "desc3",
170
+ iconUrl: "url3",
171
+ id: "id3",
172
+ linkUrl: "url3",
173
+ name: "name3",
174
+ },
175
+ ]);
176
+ });
177
+ });
@@ -0,0 +1,22 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ describe("wm-option", () => {
3
+ let page;
4
+ beforeEach(async () => {
5
+ page = await newE2EPage();
6
+ await page.setContent("<wm-select id='test' label='select something'><wm-option id='first' disabled onClick='action()'>First option</wm-option><wm-option id='second' disabled>Second option</wm-option><wm-option id='third'>Third option</wm-option></wm-select><script>function action() {document.getElementById('second').textContent = 'the function ran!'}</script>");
7
+ });
8
+ // RENDER
9
+ it("renders", async () => {
10
+ const element = await page.find("wm-option");
11
+ expect(element).not.toBeNull();
12
+ });
13
+ it("prevents action on disabled option", async () => {
14
+ await page.keyboard.press("Tab");
15
+ await page.keyboard.press("Enter"); // dropdown opens
16
+ await page.waitForChanges();
17
+ await page.keyboard.press("Enter"); // Enter on disabled option
18
+ await page.waitForChanges();
19
+ let changedOption = await page.find("wm-option#second");
20
+ expect(changedOption.textContent).toEqual("Second option"); // the function that shouldn't run replaces this text by: "the function ran!"
21
+ });
22
+ });
@@ -137,7 +137,7 @@ export class Option {
137
137
  this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
138
138
  }
139
139
  render() {
140
- return (h(Host, { key: '6d7f92d3b13121ae8ddffb4d8e6028db2171116a', role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { key: 'd0dccae3c763686b420b0bf16d7bf2880b1cdc67', class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, h("span", { key: '6e1fbd0d49be13883048634cd54d19f19256226d', class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), h("span", { key: 'f57f7c21e833a1c03f8407eaccb0883ef6b3a79a', class: "sr-only" }, this.el.textContent)), h("div", { key: '1256826e0ddc1e3c48141e8c0f6864b3401cacf7', class: "subinfo" }, this.subinfo)));
140
+ return (h(Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, h("span", { class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), h("span", { class: "sr-only" }, this.el.textContent)), h("div", { class: "subinfo" }, this.subinfo)));
141
141
  }
142
142
  static get is() { return "wm-option"; }
143
143
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,63 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Option } from "./wm-option";
3
+ import { Select } from "../wm-select/wm-select";
4
+ // mock MutationObserver
5
+ global.MutationObserver = jest.fn().mockImplementation(() => ({
6
+ observe: jest.fn(),
7
+ unobserve: jest.fn(),
8
+ disconnect: jest.fn(),
9
+ }));
10
+ describe("wm-option", () => {
11
+ it("builds", async () => {
12
+ const page = await newSpecPage({
13
+ components: [Option],
14
+ html: `<wm-select label="abel">
15
+ <wm-option>1</wm-option>
16
+ <wm-option value="second">2</wm-option>
17
+ </wm-select>`,
18
+ });
19
+ expect(page.root).toMatchSnapshot();
20
+ });
21
+ it("has the role of option", async () => {
22
+ const page = await newSpecPage({
23
+ components: [Option],
24
+ html: `<wm-select label="label">
25
+ <wm-option>1</wm-option>
26
+ <wm-option value="second">2</wm-option>
27
+ </wm-select>`,
28
+ });
29
+ expect(page.root).toEqualAttribute("role", "option");
30
+ });
31
+ it("returns the value", async () => {
32
+ // if devs set the value attribute or property,
33
+ // the component should return it on comp.value
34
+ const page = await newSpecPage({
35
+ components: [Select, Option],
36
+ html: `<wm-select label="abel">
37
+ <wm-option>1</wm-option>
38
+ <wm-option value="second">2</wm-option>
39
+ </wm-select>`,
40
+ });
41
+ const select = page.root;
42
+ const options = select.querySelectorAll("wm-option");
43
+ expect(options[0].value).toBeUndefined();
44
+ expect(options[1].value).toBe("second");
45
+ });
46
+ it("handles disabled onClick function", async () => {
47
+ const page = await newSpecPage({
48
+ components: [Option],
49
+ html: `<wm-select label="label">
50
+ <wm-option>1</wm-option>
51
+ <wm-option value="second">2</wm-option>
52
+ </wm-select>`,
53
+ });
54
+ const menuItem = page.root;
55
+ const onClickFunc = () => console.log("Message");
56
+ menuItem.onclick = onClickFunc;
57
+ expect(menuItem.onclick).toEqual(onClickFunc);
58
+ menuItem.disabled = true;
59
+ expect(menuItem.onclick).toBe(null);
60
+ menuItem.disabled = false;
61
+ expect(menuItem.onclick).toEqual(onClickFunc);
62
+ });
63
+ });
@@ -0,0 +1,312 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ describe("wm-pagination", () => {
3
+ let page, el;
4
+ beforeEach(async () => {
5
+ page = await newE2EPage();
6
+ await page.setContent("<wm-pagination total-items='43' items-per-page='10' current-page='1'></wm-pagination>");
7
+ el = await page.find("wm-pagination");
8
+ await page.evaluate(async () => {
9
+ await document.addEventListener("wmPaginationPageClicked", function (ev) {
10
+ let pagin = document.querySelector("wm-pagination");
11
+ pagin.currentPage = +ev.target.value;
12
+ });
13
+ });
14
+ });
15
+ // HANDLES ONE PAGE (FALLBACK IF DEV'S CONDITIONAL RENDERING FAILS)
16
+ it("does not render pagination", async () => {
17
+ el.setAttribute("current-page", "1");
18
+ el.setAttribute("total-items", "5");
19
+ el.setAttribute("items-per-page", "10");
20
+ await page.waitForChanges();
21
+ const current = await page.find("wm-pagination >>> nav");
22
+ expect(current).toBe(null);
23
+ });
24
+ //HANDLES SHORT PAGINATION (FIVE PAGES OR LESS )
25
+ it("indicates the current page correctly", async () => {
26
+ el.setAttribute("current-page", "5");
27
+ el.setAttribute("total-items", "47");
28
+ el.setAttribute("items-per-page", "10");
29
+ await page.waitForChanges();
30
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
31
+ let val = await current.getProperty("value");
32
+ expect(val).toEqual("5");
33
+ });
34
+ it("displays the correct number of buttons", async () => {
35
+ el.setAttribute("current-page", "2");
36
+ el.setAttribute("total-items", "47");
37
+ el.setAttribute("items-per-page", "10");
38
+ await page.waitForChanges();
39
+ //There should be prev, five page numbers and next
40
+ let buttons = await page.findAll("wm-pagination >>> button");
41
+ expect(buttons.length).toBe(7);
42
+ el.setAttribute("current-page", "2");
43
+ el.setAttribute("total-items", "11");
44
+ el.setAttribute("items-per-page", "10");
45
+ await page.waitForChanges();
46
+ //There should now be prev, two page numbers, and next
47
+ buttons = await page.findAll("wm-pagination >>> button");
48
+ expect(buttons.length).toBe(4);
49
+ });
50
+ it("disables previous and next", async () => {
51
+ el.setAttribute("current-page", "5");
52
+ el.setAttribute("total-items", "47");
53
+ el.setAttribute("items-per-page", "10");
54
+ await page.waitForChanges();
55
+ let buttons = await page.findAll("wm-pagination >>> button");
56
+ let prev = await buttons[0];
57
+ let next = await buttons[6];
58
+ expect(prev).not.toHaveAttribute("disabled");
59
+ expect(next).toHaveAttribute("disabled");
60
+ el.setAttribute("current-page", "1");
61
+ await page.waitForChanges();
62
+ buttons = await page.findAll("wm-pagination >>> button");
63
+ prev = await buttons[0];
64
+ next = await buttons[6];
65
+ expect(next).not.toHaveAttribute("disabled");
66
+ expect(prev).toHaveAttribute("disabled");
67
+ });
68
+ //Add tests for keyboard navigation to simulate events that update the current page
69
+ // HANDLES LONG PAGINATION (SIX OR MORE PAGES)
70
+ it("indicates the current page correctly", async () => {
71
+ el.setAttribute("current-page", "6");
72
+ el.setAttribute("total-items", "147");
73
+ el.setAttribute("items-per-page", "10");
74
+ await page.waitForChanges();
75
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
76
+ let val = await current.getProperty("value");
77
+ expect(val).toEqual("6");
78
+ });
79
+ it("displays five page number buttons regardless of the current page", async () => {
80
+ el.setAttribute("current-page", "3");
81
+ el.setAttribute("total-items", "147");
82
+ el.setAttribute("items-per-page", "10");
83
+ await page.waitForChanges();
84
+ let buttons = await page.findAll("wm-pagination >>> button");
85
+ //five page number buttons, plus the two prev/next buttons that always render
86
+ expect(buttons.length).toBe(7);
87
+ el.setAttribute("current-page", "15");
88
+ el.setAttribute("total-items", "147");
89
+ el.setAttribute("items-per-page", "10");
90
+ await page.waitForChanges();
91
+ buttons = await page.findAll("wm-pagination >>> button");
92
+ //five page number buttons, plus the two prev/next buttons that always render
93
+ expect(buttons.length).toBe(7);
94
+ el.setAttribute("current-page", "7");
95
+ el.setAttribute("total-items", "147");
96
+ el.setAttribute("items-per-page", "10");
97
+ await page.waitForChanges();
98
+ buttons = await page.findAll("wm-pagination >>> button");
99
+ //five page number buttons, plus the two prev/next buttons that always render
100
+ expect(buttons.length).toBe(7);
101
+ });
102
+ it("displays only the right hand ellipsis when current page is within the first four pages", async () => {
103
+ el.setAttribute("current-page", "3");
104
+ el.setAttribute("total-items", "147");
105
+ el.setAttribute("items-per-page", "10");
106
+ await page.waitForChanges();
107
+ const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
108
+ //Check that page number, not left hand ellipsis, is displayed
109
+ expect(displayedElements.childNodes[2].innerHTML).toBe("2");
110
+ //Check that ellipsis is displayed in the right spot
111
+ expect(displayedElements.childNodes[5].innerHTML).toBe("...");
112
+ });
113
+ it("displays only the left hand ellipsis only when current page is within the last four pages", async () => {
114
+ el.setAttribute("current-page", "13");
115
+ el.setAttribute("total-items", "147");
116
+ el.setAttribute("items-per-page", "10");
117
+ await page.waitForChanges();
118
+ const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
119
+ //Check that page number, not right hand ellipsis, is displayed
120
+ expect(displayedElements.childNodes[5].innerHTML).toBe("14");
121
+ //Check that ellipsis is displayed in the right spot
122
+ expect(displayedElements.childNodes[2].innerHTML).toBe("...");
123
+ });
124
+ it("displays both sets of ellipsis when the total page count is greater than 6 and the current page is not within the first four or the last four pages", async () => {
125
+ el.setAttribute("current-page", "8");
126
+ el.setAttribute("total-items", "147");
127
+ el.setAttribute("items-per-page", "10");
128
+ await page.waitForChanges();
129
+ const displayedElements = await page.find("wm-pagination >>> div.pagebtncontainer");
130
+ //left ellipsis
131
+ expect(displayedElements.childNodes[2].innerHTML).toBe("...");
132
+ //right ellipsis
133
+ expect(displayedElements.childNodes[6].innerHTML).toBe("...");
134
+ });
135
+ it("fires an event when a button is triggered", async () => {
136
+ el.setAttribute("current-page", "3");
137
+ el.setAttribute("total-items", "147");
138
+ el.setAttribute("items-per-page", "10");
139
+ await page.waitForChanges();
140
+ await page.keyboard.press("Tab"); // Previous btn
141
+ await page.waitForChanges();
142
+ await page.keyboard.press("Enter");
143
+ await page.waitForChanges();
144
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
145
+ expect(current.id).toBe("wm-2");
146
+ });
147
+ // A11Y
148
+ // UX requirements, cf. https://watermarkinsights.atlassian.net/wiki/spaces/WDS/pages/51938484/Pagination
149
+ it("allows user to tab through the clickable pagination elements", async () => {
150
+ el.setAttribute("current-page", "5");
151
+ el.setAttribute("total-items", "97");
152
+ el.setAttribute("items-per-page", "10");
153
+ await page.waitForChanges();
154
+ // User should be able to tab through the clickable pagination elements. Navigating below to page 5
155
+ await page.keyboard.press("Tab");
156
+ await page.waitForChanges();
157
+ await page.keyboard.press("Tab");
158
+ await page.waitForChanges();
159
+ await page.keyboard.press("Tab");
160
+ await page.waitForChanges();
161
+ await page.keyboard.press("Tab");
162
+ await page.waitForChanges();
163
+ let activeElId = await page.evaluate(async () => {
164
+ let el = await document.activeElement.shadowRoot.activeElement;
165
+ return el.id;
166
+ });
167
+ expect(activeElId).toBe("wm-5");
168
+ //Navigating below to next button
169
+ await page.keyboard.press("Tab");
170
+ await page.waitForChanges();
171
+ await page.keyboard.press("Tab");
172
+ await page.waitForChanges();
173
+ await page.keyboard.press("Tab");
174
+ await page.waitForChanges();
175
+ activeElId = await page.evaluate(async () => {
176
+ let el = await document.activeElement.shadowRoot.activeElement;
177
+ return el.id;
178
+ });
179
+ expect(activeElId).toBe("next");
180
+ });
181
+ it("updates the current page when enter is pressed on a page button and keeps focus on the selected page", async () => {
182
+ el.setAttribute("current-page", "5");
183
+ el.setAttribute("total-items", "97");
184
+ el.setAttribute("items-per-page", "10");
185
+ await page.waitForChanges();
186
+ //Navigate to page 6 and click on it
187
+ await page.keyboard.press("Tab");
188
+ await page.waitForChanges();
189
+ await page.keyboard.press("Tab");
190
+ await page.waitForChanges();
191
+ await page.keyboard.press("Tab");
192
+ await page.waitForChanges();
193
+ await page.keyboard.press("Tab");
194
+ await page.waitForChanges();
195
+ await page.keyboard.press("Tab");
196
+ await page.waitForChanges();
197
+ await page.keyboard.press("Enter");
198
+ await page.waitForChanges();
199
+ //Current page should update to page 6
200
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
201
+ let val = await current.getProperty("value");
202
+ expect(val).toEqual("6");
203
+ //Focus should remain on 6 even though button arrangement changes
204
+ let activeElId = await page.evaluate(async () => {
205
+ let el = await document.activeElement.shadowRoot.activeElement;
206
+ return el.id;
207
+ });
208
+ expect(activeElId).toBe("wm-6");
209
+ });
210
+ it("decrements the current page when enter is pressed on the previous button, keeps focus on the previous button until it becomes disabled, and moves focus first page once it is disabled", async () => {
211
+ el.setAttribute("current-page", "3");
212
+ el.setAttribute("total-items", "97");
213
+ el.setAttribute("items-per-page", "10");
214
+ await page.waitForChanges();
215
+ //Navigate to previous button
216
+ await page.keyboard.press("Tab");
217
+ await page.waitForChanges();
218
+ await page.keyboard.press("Enter");
219
+ await page.waitForChanges();
220
+ //Current page should decrease by 1
221
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
222
+ let val = await current.getProperty("value");
223
+ expect(val).toEqual("2");
224
+ //Focus should remain on previous button
225
+ let activeElId = await page.evaluate(async () => {
226
+ let el = await document.activeElement.shadowRoot.activeElement;
227
+ return el.id;
228
+ });
229
+ expect(activeElId).toBe("previous");
230
+ //Press previous again, reaching first page and disabling previous button
231
+ await page.keyboard.press("Enter");
232
+ await page.waitForChanges();
233
+ current = await page.find("wm-pagination >>> [aria-current='page']");
234
+ val = await current.getProperty("value");
235
+ expect(val).toEqual("1");
236
+ //Focus is shifted to first page button rather than flying out to body
237
+ activeElId = await page.evaluate(async () => {
238
+ let el = await document.activeElement.shadowRoot.activeElement;
239
+ return el.id;
240
+ });
241
+ expect(activeElId).toBe("wm-1");
242
+ });
243
+ it("increments the current page when enter is pressed on the next button, keeps focus on the next button until it becomes disabled, and moves focus back to last page once it is disabled", async () => {
244
+ el.setAttribute("current-page", "8");
245
+ el.setAttribute("total-items", "97");
246
+ el.setAttribute("items-per-page", "10");
247
+ await page.waitForChanges();
248
+ //Navigate to the next button and press enter
249
+ await page.keyboard.press("Tab");
250
+ await page.waitForChanges();
251
+ await page.keyboard.press("Tab");
252
+ await page.waitForChanges();
253
+ await page.keyboard.press("Tab");
254
+ await page.waitForChanges();
255
+ await page.keyboard.press("Tab");
256
+ await page.waitForChanges();
257
+ await page.keyboard.press("Tab");
258
+ await page.waitForChanges();
259
+ await page.keyboard.press("Tab");
260
+ await page.waitForChanges();
261
+ await page.keyboard.press("Tab");
262
+ await page.waitForChanges();
263
+ await page.keyboard.press("Enter");
264
+ await page.waitForChanges();
265
+ //Current page should increase by 1
266
+ let current = await page.find("wm-pagination >>> [aria-current='page']");
267
+ let val = await current.getProperty("value");
268
+ expect(val).toEqual("9");
269
+ //Focus should remain on the next button
270
+ let activeElId = await page.evaluate(async () => {
271
+ let el = await document.activeElement.shadowRoot.activeElement;
272
+ return el.id;
273
+ });
274
+ expect(activeElId).toBe("next");
275
+ //Press next again
276
+ await page.keyboard.press("Enter");
277
+ await page.waitForChanges();
278
+ //Last page is reached, and next button becomes disabled
279
+ current = await page.find("wm-pagination >>> [aria-current='page']");
280
+ val = await current.getProperty("value");
281
+ expect(val).toEqual("10");
282
+ //Rather than the focus shifting to the body once it is disabled, focus is brought to last page button
283
+ activeElId = await page.evaluate(async () => {
284
+ let el = await document.activeElement.shadowRoot.activeElement;
285
+ return el.id;
286
+ });
287
+ expect(activeElId).toBe("wm-10");
288
+ });
289
+ it("sets labels dynamically so that screenreaders properly announce the navigable pagination elements", async () => {
290
+ el.setAttribute("current-page", "3");
291
+ el.setAttribute("total-items", "47");
292
+ el.setAttribute("items-per-page", "10");
293
+ await page.waitForChanges();
294
+ let buttons = await page.findAll("wm-pagination >>> button");
295
+ let notCurrentPage = buttons[2];
296
+ expect(notCurrentPage).toEqualAttribute("aria-label", "Go to page 2");
297
+ let currentPage = buttons[3];
298
+ expect(currentPage).toEqualAttribute("aria-label", "");
299
+ //Change current page number
300
+ await page.keyboard.press("Tab");
301
+ await page.waitForChanges();
302
+ await page.keyboard.press("Enter");
303
+ await page.waitForChanges();
304
+ buttons = await page.findAll("wm-pagination >>> button");
305
+ //Button 3 no longer as label indicating it's the current page
306
+ notCurrentPage = buttons[3];
307
+ expect(notCurrentPage).toEqualAttribute("aria-label", "Go to page 3");
308
+ //Button 2 now has current page label
309
+ currentPage = buttons[2];
310
+ expect(currentPage).toEqualAttribute("aria-label", "");
311
+ });
312
+ });
@@ -151,7 +151,7 @@ export class Pagination {
151
151
  render() {
152
152
  return (
153
153
  // do not render the component if there's only one page
154
- this.totalItems > this.itemsPerPage && (h("nav", { key: '5c750d2aa90adcbb709fb5007862401e11e8d23d', "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { key: 'be58da3d786e0ed7455b762f4273bbad08755196', id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
154
+ this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
155
155
  }
156
156
  static get is() { return "wm-pagination"; }
157
157
  static get encapsulation() { return "shadow"; }