@watermarkinsights/ripple 5.7.0-8 → 5.7.0-9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/dist/cjs/{chartFunctions-d2a1f4c7.js → chartFunctions-995023b1.js} +3 -3
  2. package/dist/cjs/{functions-5ac8a62f.js → functions-e24249e6.js} +7 -104
  3. package/dist/{esm/app-globals-0f27630e.js → cjs/global-80ed0881.js} +2 -7
  4. package/dist/cjs/index-e86c28b6.js +2649 -0
  5. package/dist/cjs/{intl-57d1cfd1.js → intl-5aeba788.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +4 -5
  7. package/dist/cjs/priv-calendar.cjs.entry.js +5 -6
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
  11. package/dist/cjs/priv-option-list.cjs.entry.js +9 -6
  12. package/dist/cjs/ripple.cjs.js +12 -13
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
  14. package/dist/cjs/wm-button.cjs.entry.js +4 -5
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
  16. package/dist/cjs/wm-chart.cjs.entry.js +6 -7
  17. package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
  19. package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
  20. package/dist/cjs/wm-file.cjs.entry.js +4 -5
  21. package/dist/cjs/wm-input.cjs.entry.js +5 -6
  22. package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
  23. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +8 -11
  24. package/dist/cjs/wm-modal_3.cjs.entry.js +10 -13
  25. package/dist/cjs/wm-navigation_3.cjs.entry.js +10 -13
  26. package/dist/cjs/wm-navigator.cjs.entry.js +3 -4
  27. package/dist/cjs/wm-nested-select.cjs.entry.js +29 -21
  28. package/dist/cjs/wm-optgroup.cjs.entry.js +4 -5
  29. package/dist/cjs/wm-option_2.cjs.entry.js +9 -11
  30. package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
  31. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +7 -9
  32. package/dist/cjs/wm-search.cjs.entry.js +6 -7
  33. package/dist/cjs/wm-snackbar.cjs.entry.js +6 -7
  34. package/dist/cjs/wm-tab-item_3.cjs.entry.js +8 -11
  35. package/dist/cjs/wm-tag-input.cjs.entry.js +7 -8
  36. package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
  37. package/dist/cjs/wm-textarea.cjs.entry.js +5 -6
  38. package/dist/cjs/wm-timepicker.cjs.entry.js +5 -6
  39. package/dist/cjs/wm-toggletip.cjs.entry.js +5 -6
  40. package/dist/cjs/wm-uploader.cjs.entry.js +6 -7
  41. package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
  42. package/dist/collection/collection-manifest.json +2 -2
  43. package/dist/collection/components/charts/chartFunctions.js +1 -1
  44. package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
  45. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
  46. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
  47. package/dist/collection/components/charts/screenshots.e2e.js +96 -0
  48. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
  49. package/dist/collection/components/charts/wm-chart/wm-chart.js +1 -1
  50. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
  51. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
  52. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
  53. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
  55. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
  56. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  57. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
  58. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
  59. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
  60. package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
  61. package/dist/collection/components/datepickers/wm-date-range.js +13 -17
  62. package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
  63. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
  64. package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
  65. package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
  66. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +16 -6
  67. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +9 -7
  68. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +5 -5
  69. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +26 -16
  70. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +1 -1
  71. package/dist/collection/components/selects/wm-option/wm-option.e2e.js +22 -0
  72. package/dist/collection/components/selects/wm-option/wm-option.js +1 -1
  73. package/dist/collection/components/selects/wm-option/wm-option.spec.js +63 -0
  74. package/dist/collection/components/selects/wm-select/wm-select.css +3 -3
  75. package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
  76. package/dist/collection/components/selects/wm-select/wm-select.js +2 -2
  77. package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
  78. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
  79. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  80. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
  81. package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
  82. package/dist/collection/components/wm-button/wm-button.js +1 -1
  83. package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
  84. package/dist/collection/components/wm-file/wm-file.js +1 -1
  85. package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
  86. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  87. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
  88. package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
  89. package/dist/collection/components/wm-input/wm-input.js +1 -1
  90. package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
  91. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
  92. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  93. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
  94. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  95. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
  96. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  97. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
  98. package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
  99. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  100. package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
  101. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +1 -1
  102. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +1 -1
  103. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +2 -2
  104. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  105. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  106. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
  107. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  108. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
  109. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
  110. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  111. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  112. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
  113. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
  114. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
  115. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  116. package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
  117. package/dist/collection/components/wm-search/wm-search.js +4 -5
  118. package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
  119. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
  120. package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
  121. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
  122. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  123. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  124. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  125. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
  126. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
  127. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
  128. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  129. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
  130. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
  131. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  132. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
  133. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
  134. package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
  135. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
  136. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
  137. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  138. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
  139. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
  140. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  141. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
  142. package/dist/collection/global/functions.spec.js +126 -0
  143. package/dist/collection/lang/lang.spec.js +20 -0
  144. package/dist/esm/{chartFunctions-6666ced3.js → chartFunctions-dfcb1edf.js} +3 -3
  145. package/dist/esm/{functions-03966124.js → functions-b791a892.js} +8 -105
  146. package/dist/{cjs/app-globals-1f689ab3.js → esm/global-525745d2.js} +1 -10
  147. package/dist/esm/index-558b5a82.js +2618 -0
  148. package/dist/esm/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
  149. package/dist/esm/loader.js +5 -6
  150. package/dist/esm/priv-calendar.entry.js +5 -6
  151. package/dist/esm/priv-chart-popover.entry.js +5 -6
  152. package/dist/esm/priv-navigator-button.entry.js +3 -4
  153. package/dist/esm/priv-navigator-item.entry.js +3 -4
  154. package/dist/esm/priv-option-list.entry.js +9 -6
  155. package/dist/esm/ripple.js +13 -14
  156. package/dist/esm/wm-action-menu_2.entry.js +6 -8
  157. package/dist/esm/wm-button.entry.js +4 -5
  158. package/dist/esm/wm-chart-slice.entry.js +1 -1
  159. package/dist/esm/wm-chart.entry.js +6 -7
  160. package/dist/esm/wm-date-range.entry.js +8 -9
  161. package/dist/esm/wm-datepicker.entry.js +8 -9
  162. package/dist/esm/wm-file-list.entry.js +3 -4
  163. package/dist/esm/wm-file.entry.js +4 -5
  164. package/dist/esm/wm-input.entry.js +5 -6
  165. package/dist/esm/wm-line-chart.entry.js +14 -15
  166. package/dist/esm/wm-modal-pss_3.entry.js +8 -11
  167. package/dist/esm/wm-modal_3.entry.js +10 -13
  168. package/dist/esm/wm-navigation_3.entry.js +10 -13
  169. package/dist/esm/wm-navigator.entry.js +3 -4
  170. package/dist/esm/wm-nested-select.entry.js +29 -21
  171. package/dist/esm/wm-optgroup.entry.js +4 -5
  172. package/dist/esm/wm-option_2.entry.js +9 -11
  173. package/dist/esm/wm-pagination.entry.js +4 -5
  174. package/dist/esm/wm-progress-indicator_3.entry.js +7 -9
  175. package/dist/esm/wm-search.entry.js +6 -7
  176. package/dist/esm/wm-snackbar.entry.js +6 -7
  177. package/dist/esm/wm-tab-item_3.entry.js +8 -11
  178. package/dist/esm/wm-tag-input.entry.js +7 -8
  179. package/dist/esm/wm-tag-option.entry.js +2 -2
  180. package/dist/esm/wm-textarea.entry.js +5 -6
  181. package/dist/esm/wm-timepicker.entry.js +5 -6
  182. package/dist/esm/wm-toggletip.entry.js +5 -6
  183. package/dist/esm/wm-uploader.entry.js +6 -7
  184. package/dist/esm/wm-wrapper.entry.js +1 -1
  185. package/dist/esm-es5/{chartFunctions-6666ced3.js → chartFunctions-dfcb1edf.js} +1 -1
  186. package/dist/esm-es5/functions-b791a892.js +1 -0
  187. package/dist/esm-es5/global-525745d2.js +1 -0
  188. package/dist/esm-es5/index-558b5a82.js +1 -0
  189. package/dist/esm-es5/{intl-2fa0087c.js → intl-f2f7ce8b.js} +1 -1
  190. package/dist/esm-es5/loader.js +1 -1
  191. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  192. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  193. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  194. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  195. package/dist/esm-es5/priv-option-list.entry.js +1 -1
  196. package/dist/esm-es5/ripple.js +1 -1
  197. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  198. package/dist/esm-es5/wm-button.entry.js +1 -1
  199. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  200. package/dist/esm-es5/wm-chart.entry.js +1 -1
  201. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  202. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  203. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  204. package/dist/esm-es5/wm-file.entry.js +1 -1
  205. package/dist/esm-es5/wm-input.entry.js +1 -1
  206. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  207. package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
  208. package/dist/esm-es5/wm-modal_3.entry.js +1 -1
  209. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  210. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  211. package/dist/esm-es5/wm-nested-select.entry.js +1 -1
  212. package/dist/esm-es5/wm-optgroup.entry.js +1 -1
  213. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  214. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  215. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  216. package/dist/esm-es5/wm-search.entry.js +1 -1
  217. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  218. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  219. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  220. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  221. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  222. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  223. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  224. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  225. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  226. package/dist/loader/cdn.js +2 -1
  227. package/dist/loader/index.cjs.js +2 -1
  228. package/dist/loader/index.d.ts +0 -3
  229. package/dist/loader/index.es2017.js +2 -1
  230. package/dist/loader/index.js +2 -1
  231. package/dist/ripple/p-01035c8e.system.js +1 -0
  232. package/dist/ripple/p-012cab20.entry.js +1 -0
  233. package/dist/ripple/p-021ff5fa.system.entry.js +1 -0
  234. package/dist/ripple/p-02deae76.entry.js +1 -0
  235. package/dist/ripple/p-0b1c6965.system.entry.js +1 -0
  236. package/dist/ripple/p-1092e5ce.js +1 -0
  237. package/dist/ripple/p-1389302e.system.entry.js +1 -0
  238. package/dist/ripple/p-149a22bf.entry.js +1 -0
  239. package/dist/ripple/p-16f65bf4.js +1 -0
  240. package/dist/ripple/p-1d18d9d2.system.entry.js +1 -0
  241. package/dist/ripple/p-1e625a5e.entry.js +1 -0
  242. package/dist/ripple/p-215793a4.entry.js +1 -0
  243. package/dist/ripple/{p-b4e4479b.js → p-21d372ed.js} +1 -1
  244. package/dist/ripple/p-226fe4e0.entry.js +1 -0
  245. package/dist/ripple/p-236af552.entry.js +1 -0
  246. package/dist/ripple/p-249add87.system.entry.js +1 -0
  247. package/dist/ripple/p-2e79fa49.entry.js +1 -0
  248. package/dist/ripple/p-30b905eb.system.entry.js +1 -0
  249. package/dist/ripple/p-311923b2.system.entry.js +1 -0
  250. package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
  251. package/dist/ripple/p-3d50db36.entry.js +1 -0
  252. package/dist/ripple/p-3deaf4d9.system.entry.js +1 -0
  253. package/dist/ripple/{p-236ee735.system.entry.js → p-3e415c49.system.entry.js} +1 -1
  254. package/dist/ripple/p-41550baa.entry.js +1 -0
  255. package/dist/ripple/{p-b47aa85a.entry.js → p-45f9ad09.entry.js} +1 -1
  256. package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
  257. package/dist/ripple/{p-26e42263.system.entry.js → p-505eca1c.system.entry.js} +1 -1
  258. package/dist/ripple/p-5254f902.entry.js +1 -0
  259. package/dist/ripple/{p-524f0531.entry.js → p-5284791c.entry.js} +1 -1
  260. package/dist/ripple/{p-da3e143d.entry.js → p-5300b15d.entry.js} +1 -1
  261. package/dist/ripple/p-568c595f.js +2 -0
  262. package/dist/ripple/{p-f573e60c.system.entry.js → p-5a9e3108.system.entry.js} +1 -1
  263. package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
  264. package/dist/ripple/p-6cc07645.system.entry.js +1 -0
  265. package/dist/ripple/p-6d129ef8.system.entry.js +1 -0
  266. package/dist/ripple/p-6e725656.system.entry.js +1 -0
  267. package/dist/ripple/p-6fdfe9f4.system.entry.js +1 -0
  268. package/dist/ripple/{p-4b29da45.entry.js → p-72165bd2.entry.js} +1 -1
  269. package/dist/ripple/p-725230dd.system.entry.js +1 -0
  270. package/dist/ripple/p-749597da.system.entry.js +1 -0
  271. package/dist/ripple/{p-b8a3612c.system.js → p-81c2df85.system.js} +1 -1
  272. package/dist/ripple/{p-094883e1.system.js → p-828adbf1.system.js} +1 -1
  273. package/dist/ripple/p-83be63f6.entry.js +1 -0
  274. package/dist/ripple/p-84ba5b74.entry.js +1 -0
  275. package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
  276. package/dist/ripple/p-902a54c5.entry.js +1 -0
  277. package/dist/ripple/p-a0ecb6d7.system.entry.js +1 -0
  278. package/dist/ripple/{p-0ba0c194.system.entry.js → p-a3c01e10.system.entry.js} +1 -1
  279. package/dist/ripple/p-ab8d78cc.system.js +2 -0
  280. package/dist/ripple/p-ade3d9a9.entry.js +1 -0
  281. package/dist/ripple/p-ae82b3d2.system.js +1 -0
  282. package/dist/ripple/p-aea13873.entry.js +1 -0
  283. package/dist/ripple/p-b01f9998.system.entry.js +1 -0
  284. package/dist/ripple/p-b9dbf1f4.entry.js +1 -0
  285. package/dist/ripple/p-bf7d98d8.entry.js +1 -0
  286. package/dist/ripple/{p-dba15615.entry.js → p-c1e3c2fb.entry.js} +1 -1
  287. package/dist/ripple/{p-4fa245d4.system.entry.js → p-c2e00d4a.system.entry.js} +1 -1
  288. package/dist/ripple/p-c47fab48.entry.js +1 -0
  289. package/dist/ripple/{p-6bb9402a.system.entry.js → p-c853e185.system.entry.js} +1 -1
  290. package/dist/ripple/p-c885c7f9.entry.js +1 -0
  291. package/dist/ripple/p-c9543950.system.entry.js +1 -0
  292. package/dist/ripple/{p-e2910f91.system.entry.js → p-ca971eac.system.entry.js} +1 -1
  293. package/dist/ripple/p-cad0c5f9.system.entry.js +1 -0
  294. package/dist/ripple/p-cff5d7e9.system.entry.js +1 -0
  295. package/dist/ripple/{p-60206085.system.entry.js → p-db9657eb.system.entry.js} +1 -1
  296. package/dist/ripple/p-df157138.entry.js +1 -0
  297. package/dist/ripple/p-e081fdc2.system.entry.js +1 -0
  298. package/dist/ripple/{p-2c70503a.entry.js → p-e687176d.entry.js} +1 -1
  299. package/dist/ripple/p-ed1f6b8d.system.entry.js +1 -0
  300. package/dist/ripple/{p-785fda3d.js → p-eddbcb21.js} +1 -1
  301. package/dist/ripple/p-eefbca0e.system.js +1 -0
  302. package/dist/ripple/p-f13b034e.entry.js +1 -0
  303. package/dist/ripple/p-f2101a0d.entry.js +1 -0
  304. package/dist/ripple/p-f24572f5.entry.js +1 -0
  305. package/dist/ripple/p-f40e1468.system.entry.js +1 -0
  306. package/dist/ripple/p-f4bcee58.system.entry.js +1 -0
  307. package/dist/ripple/{p-9511f0c3.entry.js → p-f90e4094.entry.js} +1 -1
  308. package/dist/ripple/{p-664dc79d.system.entry.js → p-fa4f1030.system.entry.js} +1 -1
  309. package/dist/ripple/p-ff1ed90f.entry.js +1 -0
  310. package/dist/ripple/ripple.esm.js +1 -1
  311. package/dist/ripple/ripple.js +1 -1
  312. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +1 -0
  313. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +3 -0
  314. package/dist/types/stencil-public-runtime.d.ts +10 -3
  315. package/package.json +1 -1
  316. package/dist/cjs/index-788526f5.js +0 -1859
  317. package/dist/esm/index-130e07bb.js +0 -1828
  318. package/dist/esm-es5/app-globals-0f27630e.js +0 -1
  319. package/dist/esm-es5/functions-03966124.js +0 -1
  320. package/dist/esm-es5/index-130e07bb.js +0 -1
  321. package/dist/ripple/p-04c5af17.entry.js +0 -1
  322. package/dist/ripple/p-1073ab75.system.entry.js +0 -1
  323. package/dist/ripple/p-1344f4d2.entry.js +0 -1
  324. package/dist/ripple/p-202cc2fe.system.js +0 -1
  325. package/dist/ripple/p-2261e8d4.entry.js +0 -1
  326. package/dist/ripple/p-2300c07b.entry.js +0 -1
  327. package/dist/ripple/p-2716532e.system.entry.js +0 -1
  328. package/dist/ripple/p-2903ce15.system.entry.js +0 -1
  329. package/dist/ripple/p-30f148a7.entry.js +0 -1
  330. package/dist/ripple/p-39484b51.system.entry.js +0 -1
  331. package/dist/ripple/p-3e7e6493.system.entry.js +0 -1
  332. package/dist/ripple/p-4fae07d6.entry.js +0 -1
  333. package/dist/ripple/p-563f37e8.entry.js +0 -1
  334. package/dist/ripple/p-5a2431e1.system.entry.js +0 -1
  335. package/dist/ripple/p-60cb3adc.entry.js +0 -1
  336. package/dist/ripple/p-618b27e6.entry.js +0 -1
  337. package/dist/ripple/p-62bb8827.system.entry.js +0 -1
  338. package/dist/ripple/p-695391a9.system.entry.js +0 -1
  339. package/dist/ripple/p-6d9acebc.system.entry.js +0 -1
  340. package/dist/ripple/p-7136efd0.entry.js +0 -1
  341. package/dist/ripple/p-79979fb1.entry.js +0 -1
  342. package/dist/ripple/p-7c2846e4.system.entry.js +0 -1
  343. package/dist/ripple/p-7f162296.system.entry.js +0 -1
  344. package/dist/ripple/p-7fba9e61.system.entry.js +0 -1
  345. package/dist/ripple/p-877d35f8.system.entry.js +0 -1
  346. package/dist/ripple/p-89a862ae.system.entry.js +0 -1
  347. package/dist/ripple/p-8ef8c943.system.entry.js +0 -1
  348. package/dist/ripple/p-9062cb9a.entry.js +0 -1
  349. package/dist/ripple/p-a6466fd1.entry.js +0 -1
  350. package/dist/ripple/p-ae2b2056.entry.js +0 -1
  351. package/dist/ripple/p-afa807a5.entry.js +0 -1
  352. package/dist/ripple/p-b5e7db7f.system.entry.js +0 -1
  353. package/dist/ripple/p-b8e97d05.system.js +0 -1
  354. package/dist/ripple/p-b9a8d85b.entry.js +0 -1
  355. package/dist/ripple/p-bbcc61cf.entry.js +0 -1
  356. package/dist/ripple/p-c0ccce22.system.entry.js +0 -1
  357. package/dist/ripple/p-c499cfaf.entry.js +0 -1
  358. package/dist/ripple/p-c61b29cd.system.entry.js +0 -1
  359. package/dist/ripple/p-c94976c8.system.entry.js +0 -1
  360. package/dist/ripple/p-cef8a45b.system.js +0 -2
  361. package/dist/ripple/p-d307a2d5.system.entry.js +0 -1
  362. package/dist/ripple/p-d9da0502.js +0 -2
  363. package/dist/ripple/p-dd23c135.entry.js +0 -1
  364. package/dist/ripple/p-ded71900.entry.js +0 -1
  365. package/dist/ripple/p-dfcf2302.system.js +0 -1
  366. package/dist/ripple/p-e4c40125.js +0 -1
  367. package/dist/ripple/p-e5f7fbe7.js +0 -1
  368. package/dist/ripple/p-eaf16578.system.entry.js +0 -1
  369. package/dist/ripple/p-ed2f0946.entry.js +0 -1
  370. package/dist/ripple/p-f78d5bc3.entry.js +0 -1
  371. package/dist/ripple/p-f9df9765.system.entry.js +0 -1
  372. package/dist/ripple/p-faae9ebb.entry.js +0 -1
  373. package/dist/ripple/p-fada6923.entry.js +0 -1
  374. package/dist/ripple/p-fe6522b9.entry.js +0 -1
  375. package/dist/ripple/p-ff74ec46.system.entry.js +0 -1
  376. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +0 -33
@@ -0,0 +1,89 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { PrivCalendar } from "./priv-calendar";
3
+ import { dateFind, getMonthLength } from "../../../global/functions";
4
+ describe("priv-calendar", () => {
5
+ // ts erroneously prints a warning (unused var)
6
+ // @ts-ignore
7
+ let page, privCalendar;
8
+ beforeEach(async () => {
9
+ page = await newSpecPage({
10
+ components: [PrivCalendar],
11
+ html: "<priv-calendar></priv-calendar>",
12
+ });
13
+ privCalendar = page.root;
14
+ });
15
+ it("gets the number of days in a month", async () => {
16
+ expect(getMonthLength(1, 2021)).toBe(31);
17
+ expect(getMonthLength(2, 2021)).toBe(28);
18
+ expect(getMonthLength(2, 2020)).toBe(29);
19
+ expect(getMonthLength(11, 2067)).toBe(30);
20
+ expect(getMonthLength(13, 2)).toBe(31); // returns 31 by default
21
+ });
22
+ it("removes leading zeroes", async () => {
23
+ const pd = new PrivCalendar();
24
+ expect(pd.removeZeroes("12")).toBe(12);
25
+ expect(pd.removeZeroes("01")).toBe(1);
26
+ expect(pd.removeZeroes("0001312")).toBe(1312);
27
+ // note that the function only works for integers
28
+ // the following would fail
29
+ // expect(pd.removeZeroes("3.1415")).toBe(3.1415);
30
+ });
31
+ it("finds the first weekday of the month", async () => {
32
+ // 1 = Sunday, 7 = Saturday
33
+ const pd = new PrivCalendar();
34
+ expect(pd.getMonthFirstDay(2, 2021)).toBe(2); // Mon
35
+ expect(pd.getMonthFirstDay(7, 1986)).toBe(3); // Tue
36
+ expect(pd.getMonthFirstDay(12, 2030)).toBe(1); // Sun
37
+ });
38
+ it("generates the calendar dates", async () => {
39
+ const pd = new PrivCalendar();
40
+ expect(pd.getCalendarDates("2021-08-14")).toMatchSnapshot();
41
+ });
42
+ // dateFind helper
43
+ it("gets the right dates", async () => {
44
+ expect(dateFind.year.asString("2000-03-23")).toStrictEqual("2000");
45
+ expect(dateFind.year.asInt("2000-03-23")).toStrictEqual(2000);
46
+ expect(dateFind.month.asString("2000-03-23")).toStrictEqual("03");
47
+ expect(dateFind.month.asInt("2000-03-23")).toStrictEqual(3);
48
+ expect(dateFind.day.asString("2000-03-23")).toStrictEqual("23");
49
+ expect(dateFind.day.asInt("2000-03-23")).toStrictEqual(23);
50
+ let res;
51
+ res = dateFind.year.decrease("2000-03-23", 2);
52
+ expect(res).toStrictEqual("1998-03-23");
53
+ res = dateFind.year.increase("1998-03-23", 2);
54
+ expect(res).toStrictEqual("2000-03-23");
55
+ res = dateFind.month.decrease("2000-03-23", 3);
56
+ expect(res).toStrictEqual("1999-12-23");
57
+ res = dateFind.month.increase("2000-11-23", 2);
58
+ expect(res).toStrictEqual("2001-01-23");
59
+ res = dateFind.month.increase("2024-10-01", 1);
60
+ expect(res).toStrictEqual("2024-11-01");
61
+ res = dateFind.day.decrease("2024-03-03", 3);
62
+ expect(res).toStrictEqual("2024-02-29");
63
+ res = dateFind.day.increase("2024-09-29", 5);
64
+ expect(res).toStrictEqual("2024-10-04");
65
+ });
66
+ // _focus accessor
67
+ it("gets the right focus dates", async () => {
68
+ const c = new PrivCalendar();
69
+ c.focusDate = "2000-01-02";
70
+ expect(c._focus.year.asString()).toStrictEqual("2000");
71
+ expect(c._focus.year.asInt()).toStrictEqual(2000);
72
+ expect(c._focus.month.asString()).toStrictEqual("01");
73
+ expect(c._focus.month.asInt()).toStrictEqual(1);
74
+ expect(c._focus.day.asString()).toStrictEqual("02");
75
+ expect(c._focus.day.asInt()).toStrictEqual(2);
76
+ c._focus.year.decrease(2);
77
+ expect(c.focusDate).toStrictEqual("1998-01-02");
78
+ c._focus.year.increase(2);
79
+ expect(c.focusDate).toStrictEqual("2000-01-02");
80
+ c._focus.month.decrease(2);
81
+ expect(c.focusDate).toStrictEqual("1999-11-02");
82
+ c._focus.month.increase(2);
83
+ expect(c.focusDate).toStrictEqual("2000-01-02");
84
+ c._focus.day.decrease(2);
85
+ expect(c.focusDate).toStrictEqual("1999-12-31");
86
+ c._focus.day.increase(2);
87
+ expect(c.focusDate).toStrictEqual("2000-01-02");
88
+ });
89
+ });
@@ -0,0 +1,443 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ import { AxePuppeteer } from "@axe-core/puppeteer";
3
+ describe("wm-date-range", () => {
4
+ //@ts-ignore
5
+ let page, component, startInput, endInput, btn, popup, popupTitleDay;
6
+ beforeEach(async () => {
7
+ page = await newE2EPage();
8
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
9
+ <wm-date-range id="dr" label="label"></wm-date-range>
10
+ </main></body></html>`);
11
+ component = await page.find("wm-date-range");
12
+ [startInput, endInput] = await page.findAll("wm-date-range >>> input");
13
+ btn = await page.find("wm-date-range >>> #toggle");
14
+ popup = await page.find("wm-date-range >>> #popup");
15
+ popupTitleDay = await page.find("wm-date-range >>> #popup-title-month");
16
+ });
17
+ it("passes Axe checks", async () => {
18
+ const results = await new AxePuppeteer(page).analyze();
19
+ expect(results.violations.length).toBe(0);
20
+ });
21
+ // BUTTON
22
+ // Opening and closing the date-range
23
+ it("opens at today's date by default", async () => {
24
+ const popup = await page.find("wm-date-range >>> .popup");
25
+ const today = new Date();
26
+ const year = today.getUTCFullYear();
27
+ const month = (today.getUTCMonth() + 1).toString().padStart(2, "0");
28
+ const day = today.getUTCDate().toString();
29
+ const dateTable = await popup.find("[role='grid']");
30
+ // await page.waitForChanges();
31
+ const selDate = await dateTable.find("[aria-selected='true']");
32
+ expect(selDate).toEqualAttribute("data-year", year);
33
+ expect(selDate).toEqualAttribute("data-month", month);
34
+ expect(selDate.textContent).toBe(day);
35
+ });
36
+ /*
37
+ it("opens at the date in the input if there is one", async () => {
38
+ const startInput = await page.find("wm-date-range >>> input");
39
+ const popup = await page.find("wm-date-range >>> .popup");
40
+
41
+ await startInput.type("02/01/2030");
42
+ await component.setProperty("calendarDate", "2030-02-01");
43
+ await page.waitForChanges();
44
+ await page.keyboard.press("Tab");
45
+ await page.keyboard.press("Enter");
46
+ await page.waitForChanges();
47
+ const dateTable = await popup.find("[role='grid']");
48
+
49
+ const selDate = await dateTable.find("[aria-selected='true']");
50
+ expect(selDate).toEqualAttribute("data-year", "2030");
51
+ expect(selDate).toEqualAttribute("data-month", "02");
52
+ expect(selDate.textContent).toBe("1");
53
+ });
54
+
55
+ it("Closes the popup when user triggers the calendar button", async () => {
56
+ const popup = await page.find("wm-date-range >>> .popup");
57
+
58
+ await page.keyboard.press("Tab"); // in input
59
+ await page.keyboard.press("Tab"); // on btn
60
+ await page.keyboard.press("Enter");
61
+ await page.waitForChanges();
62
+ expect(popup).toHaveClass("open");
63
+ await page.keyboard.press("Escape");
64
+ await page.waitForChanges();
65
+ expect(popup).not.toHaveClass("open");
66
+ });
67
+
68
+ // POPUP
69
+ it("closes the calendar popup when the user presses ESCAPE", async () => {
70
+ await startInput.type("02/03/2019");
71
+ await component.setProperty("calendarDate", "2019-02-03");
72
+ await page.waitForChanges();
73
+ await page.keyboard.press("Tab");
74
+ await page.keyboard.press("Enter");
75
+ await page.waitForChanges();
76
+ await page.keyboard.press("Escape");
77
+ await page.waitForChanges();
78
+ expect(popup).not.toHaveClass("open");
79
+ });
80
+
81
+ it("shows the next month on PAGE DOWN and shows the previous month on PAGE UP", async () => {
82
+ await startInput.type("02/03/2019");
83
+ await component.setProperty("calendarDate", "2019-02-03");
84
+ await page.waitForChanges();
85
+ await page.keyboard.press("Tab");
86
+ await page.keyboard.press("Enter");
87
+ await page.waitForChanges();
88
+ await page.keyboard.press("PageDown");
89
+ await page.waitForChanges();
90
+
91
+ expect(popupTitleDay.textContent).toBe("March 2019");
92
+
93
+ let activeElId = await page.evaluate(() => document.activeElement!.shadowRoot!.activeElement!.id);
94
+ expect(activeElId).toEqual("cell-20190303");
95
+
96
+ await page.keyboard.press("PageUp");
97
+ await page.waitForChanges();
98
+ await page.keyboard.press("PageUp");
99
+ await page.waitForChanges();
100
+ await page.keyboard.press("PageUp");
101
+ await page.waitForChanges();
102
+
103
+ activeElId = await page.evaluate(() => document.activeElement!.shadowRoot!.activeElement!.id);
104
+ expect(activeElId).toEqual("cell-20181203");
105
+ });
106
+
107
+ it("handles HOME and END keys", async () => {
108
+ await startInput.type("02/15/2020");
109
+ await component.setProperty("calendarDate", "2020-02-15");
110
+ await page.waitForChanges();
111
+ await page.keyboard.press("Tab");
112
+ await page.keyboard.press("Enter");
113
+ await page.waitForChanges();
114
+ await page.keyboard.press("Home");
115
+ await page.waitForChanges();
116
+ const firstDayOfMonth = await page.evaluate(() => document.activeElement!.shadowRoot!.activeElement!.id);
117
+ expect(firstDayOfMonth).toEqual("cell-20200201");
118
+
119
+ await page.keyboard.press("End");
120
+ await page.waitForChanges();
121
+ const lastDayOfMonth = await page.evaluate(() => document.activeElement!.shadowRoot!.activeElement!.id);
122
+ expect(lastDayOfMonth).toEqual("cell-20200229"); // 2020 is a leap year
123
+ });
124
+
125
+ it("navigates the calendar with keyboard (day view)", async () => {
126
+ // left/right: -1 / +1 in the row
127
+ // up/down
128
+
129
+ await startInput.type("08/15/2024");
130
+ await component.setProperty("calendarDate", "2024-08-15");
131
+ await page.keyboard.press("Tab"); // on the toggle popup btn
132
+ await page.waitForChanges();
133
+ await page.keyboard.press("Enter"); // open popup
134
+ await page.waitForChanges();
135
+
136
+ await page.keyboard.press("ArrowLeft");
137
+ await page.waitForChanges();
138
+ let focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
139
+ await page.waitForChanges();
140
+ expect(focusedCell).toEqualAttribute("id", "cell-20240814");
141
+
142
+ await page.keyboard.press("ArrowUp");
143
+ await page.waitForChanges();
144
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
145
+ expect(focusedCell).toEqualAttribute("id", "cell-20240807");
146
+
147
+ await page.keyboard.press("ArrowRight");
148
+ await page.waitForChanges();
149
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
150
+ expect(focusedCell).toEqualAttribute("id", "cell-20240808");
151
+
152
+ await page.keyboard.press("ArrowDown");
153
+ await page.waitForChanges();
154
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
155
+ expect(focusedCell).toEqualAttribute("id", "cell-20240815");
156
+ });
157
+
158
+ it("navigates the calendar with keyboard (month view)", async () => {
159
+ await startInput.type("08/15/2024");
160
+ await component.setProperty("calendarDate", "2024-08-15");
161
+ await page.keyboard.press("Tab"); // on the toggle popup btn
162
+ await page.waitForChanges();
163
+ await page.keyboard.press("Enter"); // open popup
164
+ await page.keyboard.down("Shift");
165
+ await page.waitForChanges();
166
+ await page.keyboard.press("Tab"); // next btn
167
+ await page.waitForChanges();
168
+ await page.keyboard.press("Tab"); // popup-title (month + year)
169
+ await page.waitForChanges();
170
+ await page.keyboard.press("Enter");
171
+ await page.waitForChanges();
172
+ await page.keyboard.up("Shift");
173
+ await page.waitForChanges();
174
+
175
+ await page.keyboard.press("ArrowLeft");
176
+ await page.waitForChanges();
177
+ let focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
178
+ await page.waitForChanges();
179
+ expect(focusedCell).toEqualAttribute("id", "month-6"); // month is july (7), 0-indexed
180
+
181
+ await page.keyboard.press("ArrowUp");
182
+ await page.waitForChanges();
183
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
184
+ expect(focusedCell).toEqualAttribute("id", "month-3");
185
+
186
+ await page.keyboard.press("ArrowRight");
187
+ await page.waitForChanges();
188
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
189
+ expect(focusedCell).toEqualAttribute("id", "month-4");
190
+
191
+ await page.keyboard.press("ArrowDown");
192
+ await page.waitForChanges();
193
+ focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
194
+ expect(focusedCell).toEqualAttribute("id", "month-7");
195
+ });
196
+
197
+ // it("goes to the year view when the month name is clicked", async () => {
198
+ // // (i.e. allows selection of a month)
199
+ // });
200
+ it("goes to the previous/next month when the arrow button is triggered in day view", async () => {
201
+ await startInput.type("11/29/1999");
202
+ await component.setProperty("calendarDate", "1999-11-29");
203
+ await page.keyboard.press("Tab"); // on the toggle popup btn
204
+ await page.waitForChanges();
205
+ await page.keyboard.press("Enter"); // open popup
206
+ await page.waitForChanges();
207
+ await page.keyboard.down("Shift");
208
+ await page.waitForChanges();
209
+ await page.keyboard.press("Tab"); // next btn
210
+ await page.waitForChanges();
211
+ await page.keyboard.press("Tab"); // popup-title (month + year)
212
+ await page.waitForChanges();
213
+ await page.keyboard.press("Tab"); // prev btn
214
+ await page.waitForChanges();
215
+ await page.keyboard.up("Shift");
216
+ await page.waitForChanges();
217
+ await page.keyboard.press("Enter"); // press prev btn
218
+ await page.waitForChanges();
219
+
220
+ expect(popup).toHaveClasses(["open", "day-view"]);
221
+ expect(popupTitleDay.textContent).toBe("October 1999");
222
+
223
+ await page.keyboard.press("Tab"); // popup title btn
224
+ await page.keyboard.press("Tab"); // next btn
225
+ await page.keyboard.press("Enter"); // press next btn
226
+ await page.waitForChanges();
227
+ await page.keyboard.press("Enter"); // press next btn
228
+ await page.waitForChanges();
229
+ expect(popupTitleDay.textContent).toBe("December 1999");
230
+ });
231
+
232
+ it("goes to the previous/next year when the arrow button is clicked in month view", async () => {
233
+ await startInput.type("11/29/1999");
234
+ await component.setProperty("calendarDate", "1999-11-29");
235
+ await page.waitForChanges();
236
+ await page.keyboard.press("Tab"); // on the toggle popup btn
237
+ await page.waitForChanges();
238
+ await page.keyboard.press("Enter"); // open popup
239
+ await page.waitForChanges();
240
+ await page.keyboard.down("Shift");
241
+ await page.keyboard.press("Tab"); // next btn
242
+ await page.waitForChanges();
243
+ await page.keyboard.press("Tab"); // month view btn
244
+ await page.waitForChanges();
245
+ await page.keyboard.up("Shift");
246
+ await page.waitForChanges();
247
+ await page.keyboard.press("Enter"); // press month view btn
248
+ await page.waitForChanges();
249
+
250
+ expect(popup).toHaveClasses(["open", "month-view"]);
251
+ const title = await popup.find("#popup-title-year");
252
+ expect(title.textContent).toBe("1999");
253
+
254
+ await page.keyboard.down("Shift");
255
+ await page.keyboard.press("Tab"); // next btn
256
+ await page.keyboard.up("Shift");
257
+ await page.keyboard.press("Enter"); // press next btn
258
+ await page.waitForChanges();
259
+ expect(title.textContent).toBe("2000");
260
+
261
+ await page.keyboard.down("Shift");
262
+ await page.keyboard.press("Tab"); // year btn
263
+ await page.keyboard.down("Shift");
264
+ await page.keyboard.press("Tab"); // prev btn
265
+ await page.keyboard.up("Shift");
266
+ await page.keyboard.press("Enter"); // press prev btn
267
+ await page.waitForChanges();
268
+ expect(title.textContent).toBe("1999");
269
+
270
+ await page.keyboard.press("Enter"); // press prev btn
271
+ await page.waitForChanges();
272
+
273
+ await page.keyboard.press("Enter"); // press prev btn
274
+ await page.waitForChanges();
275
+ expect(title.textContent).toBe("1997");
276
+ });
277
+
278
+ it("has the aria attributes related to the popup", async () => {
279
+ // NB "If the element with the aria-expanded attribute controls the expansion of another grouping container
280
+ // that is not 'owned by' the element, the author SHOULD reference the container by using the aria-controls attribute."
281
+ // src: https://www.w3.org/TR/wai-aria-1.1/#aria-expanded
282
+
283
+ expect(btn).toHaveAttribute("aria-expanded");
284
+
285
+ // Not sure is aria-haspopup is necessary. If it is present the popup should have a role
286
+ // if that role is grid (the only role that seems to correspond) then the cells must have
287
+ // a role of gridcell
288
+ // https://www.w3.org/TR/wai-aria/#aria-haspopup
289
+ // expect(btn).toHaveAttribute("aria-haspopup");
290
+
291
+ //Removed aria-controls since the popup comes immediately after the aria-expanded controller:
292
+ //https://www.heydonworks.com/article/aria-controls-is-poop
293
+ });
294
+
295
+ it("toggles aria-expanded attribute", async () => {
296
+ expect(btn).toEqualAttribute("aria-expanded", "false");
297
+ await page.keyboard.press("Tab");
298
+ await page.keyboard.press("Tab");
299
+ await page.keyboard.press("Enter");
300
+ await page.waitForChanges();
301
+ expect(btn).toEqualAttribute("aria-expanded", "true");
302
+ });
303
+
304
+ it("properly fills the-label on table cells", async () => {
305
+ // screen reader should read "Thursday, May 10 2018" on focus
306
+ // screen reader should read "Thursday, May 10 2018, selected" on select
307
+ await startInput.type("05/10/2018");
308
+ await component.setProperty("calendarDate", "2018-05-10");
309
+ await page.waitForChanges();
310
+ await page.keyboard.press("Tab");
311
+ await page.waitForChanges();
312
+ await page.keyboard.press("Enter");
313
+ await page.waitForChanges();
314
+ const focusedCell = await popup.find("[role='gridcell'][tabindex='0']");
315
+ await page.waitForChanges();
316
+ // day of the week is read by sr bcse it's the table column
317
+ expect(focusedCell).toEqualAttribute("aria-label", "Thursday, May 10, 2018");
318
+
319
+ // screen reader should read "Thursday, May 10 2018, selected" on select
320
+ await page.keyboard.press("Enter");
321
+ await page.waitForChanges();
322
+ const selCell = await popup.find("[aria-selected='true']");
323
+ // day of the week is read by sr bcse it's the table column
324
+ expect(selCell).toEqualAttribute("aria-label", "Thursday, May 10, 2018");
325
+ });
326
+
327
+ it("aligns dates properly", async () => {
328
+ // -> check that both 01/01/1999 and 12/31/2100 are in the Friday column
329
+ // couldn't figure this one out...
330
+ });
331
+
332
+ it("emits event on input blur", async () => {
333
+ page = await newE2EPage();
334
+ await page.setContent(
335
+ `<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
336
+ <wm-date-range id="dr" label="label"></wm-date-range>
337
+ <div id="indicator">no event heard</div>
338
+ </main></body></html>`
339
+ );
340
+ component = await page.find("wm-date-range");
341
+ startInput = await page.find("wm-date-range >>> input");
342
+ await page.waitForChanges();
343
+
344
+ await page.evaluate(async () => {
345
+ const indicator = document.querySelector("#indicator");
346
+ await document.addEventListener("wmDate-rangeInputBlurred", () => (indicator!.textContent = "event heard"));
347
+ });
348
+ await page.waitForChanges;
349
+
350
+ const indicator = await page.find("#indicator");
351
+ expect(indicator.textContent).toBe("no event heard");
352
+
353
+ await startInput.type("05/10/2018");
354
+ await page.keyboard.press("Tab");
355
+ await page.waitForChanges();
356
+
357
+ expect(indicator.textContent).toBe("event heard");
358
+ });
359
+
360
+ it("emits event on change", async () => {
361
+ page = await newE2EPage();
362
+ await page.setContent(
363
+ `<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
364
+ <wm-date-range id="dr" label="label"></wm-date-range>
365
+ <div id="indicator">events heard: 0</div>
366
+ </main></body></html>`
367
+ );
368
+ component = await page.find("wm-date-range");
369
+ startInput = await page.find("wm-date-range >>> input");
370
+ await page.waitForChanges();
371
+
372
+ await page.evaluate(async () => {
373
+ const indicator = document.querySelector("#indicator")!;
374
+ await document
375
+ .querySelector("wm-date-range")!
376
+ .addEventListener(
377
+ "change",
378
+ () =>
379
+ (indicator.textContent =
380
+ indicator.textContent!.slice(0, -1) + (parseInt(indicator.textContent!.slice(-1)) + 1))
381
+ );
382
+ });
383
+ await page.waitForChanges;
384
+
385
+ const indicator = await page.find("#indicator");
386
+ expect(indicator.textContent).toBe("events heard: 0");
387
+
388
+ // user types date
389
+ await startInput.type("05/10/2018");
390
+ await page.keyboard.press("Tab");
391
+ await page.waitForChanges();
392
+
393
+ expect(indicator.textContent).toBe("events heard: 1");
394
+
395
+ // user selects date from calendar
396
+ await page.keyboard.press("Enter");
397
+ await page.waitForChanges();
398
+ await page.keyboard.press("ArrowRight");
399
+ await page.keyboard.press("Enter");
400
+ await page.waitForChanges();
401
+
402
+ expect(indicator.textContent).toBe("events heard: 2");
403
+ });
404
+
405
+ it("emits event with date on cell selection", async () => {
406
+ page = await newE2EPage();
407
+ await page.setContent(
408
+ `<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
409
+ <wm-date-range id="dr" value="12/30/1999" label="label"></wm-date-range>
410
+ <div id="indicator"></div>
411
+ </main></body></html>`
412
+ );
413
+ component = await page.find("wm-date-range");
414
+ startInput = await page.find("wm-date-range >>> input");
415
+ await page.waitForChanges();
416
+
417
+ await page.evaluate(async () => {
418
+ const indicator = document.querySelector("#indicator")!;
419
+ await document.querySelector("wm-date-range")!.addEventListener(
420
+ "wmDate-rangeDateSelected",
421
+ (ev) =>
422
+ (indicator.textContent =
423
+ //@ts-ignore
424
+ `date received: ${ev.detail.date}`)
425
+ );
426
+ });
427
+ await page.waitForChanges;
428
+
429
+ const indicator = await page.find("#indicator");
430
+
431
+ // user types date
432
+ await page.keyboard.press("Tab");
433
+ await page.keyboard.press("Tab");
434
+ await page.waitForChanges();
435
+ await page.keyboard.press("Enter");
436
+ await page.waitForChanges();
437
+ await page.keyboard.press("Enter");
438
+ await page.waitForChanges();
439
+
440
+ expect(indicator.textContent).toBe("date received: 1999-12-30");
441
+ });
442
+ */
443
+ });
@@ -429,23 +429,23 @@ export class DateRange {
429
429
  }
430
430
  }
431
431
  render() {
432
- return (h(Host, { key: 'ffe68e278952d867cd9d1bf4945a91a9218aff41', "aria-busy": "false" }, h("div", { key: '256076b4ecb500f80bde6a0f4b74e0e090a8ebba', ref: (d) => (this.wrapperEl = d), class: "wrapper" }, h("div", { key: '1a16aee3f2c90b120fea6c3de7853a5f58f95c2b', class: `range-wrapper ${this.calWidth <= this.availSpace ? "cal" : ""}` }, h("div", { key: '2bf81bc7b7820b71820fa903f612247deb6b8592', class: "label-wrapper", id: "start-label-wrapper" }, h("label", { key: '09e8a0ee78eb5f19f6a3e94ce8c2bfefaff4a909', ref: (e) => (this.labelEl = e), id: "startlabel", htmlFor: "start-date-input", class: "label", title: `${this.labelStart} (${this.dateFormat})` }, this.labelStart, this.requiredField && (h("span", { key: '0deb9d862a52d6b044572a06645408805be1126e', "aria-hidden": "true", class: "required" }, "*")))), h("div", { key: 'ec5368e1736f8b83290238b483965aab0f9f3945', class: "label-wrapper", id: "end-label-wrapper" }, h("label", { key: '6cb070abde6ce9064a030c408894f29af6118984', id: "endlabel", htmlFor: "end-date-input", class: "label", title: `${this.labelEnd} (${this.dateFormat})` }, this.labelEnd, this.requiredField && (h("span", { key: 'e4def58969ee10495955c76ff6df4af0b721d98b', "aria-hidden": "true", class: "required" }, "*")))), h("input", { key: '141c909bdeae5c05fc5ca24bfe3f62c756c59bb1', disabled: this._disabled, type: "text", id: "start-date-input", class: `date-input input ${this.invalidStart ? "invalid" : ""}`, name: "start-date", placeholder: this.dateFormat, value: this.valueStart, onFocus: () => this.handleFocus(), onInput: (ev) => this.handleStartInput(ev), onBlur: () => this.handleStartInputBlur(), ref: (input) => (this.startInputEl = input), "aria-describedby": "error", "aria-label": this.labelStart, "aria-required": this.requiredField ? "true" : null }), h("div", { key: '71e1f4d5bfac5687c6c0dc78b0c7bf0e23963932', id: "hyphen" }, "\u00A0-\u00A0"), h("input", { key: '66da2b524e10f19471dfe98e8088f29223fcf1e5', disabled: this._disabled, type: "text", id: "end-date-input", class: `date-input input ${this.invalidEnd ? "invalid" : ""}`, name: "end-date", placeholder: this.dateFormat, value: this.valueEnd, onFocus: () => this.handleFocus(), onInput: (ev) => this.handleEndInput(ev), onBlur: () => this.handleEndInputBlur(), ref: (input) => (this.endInputEl = input), "aria-describedby": "error", "aria-label": this.labelEnd, "aria-required": this.requiredField ? "true" : null }), h("div", { key: 'd13e35362381766550f1555db5bc86043f29ae55', class: "toggle-wrapper", id: "toggle-wrapper" }, this.calWidth <= this.availSpace && (h("button", { key: '083f289ad53ef80ebf5bcb04f28cb85f4bf1cce6', disabled: this.disabled, onClick: this.togglePopup.bind(this), "aria-describedby": "start-date-input end-date-input", "aria-label": intl.formatMessage({
432
+ return (h(Host, { "aria-busy": "false" }, h("div", { ref: (d) => (this.wrapperEl = d), class: "wrapper" }, h("div", { class: `range-wrapper ${this.calWidth <= this.availSpace ? "cal" : ""}` }, h("div", { class: "label-wrapper", id: "start-label-wrapper" }, h("label", { ref: (e) => (this.labelEl = e), id: "startlabel", htmlFor: "start-date-input", class: "label", title: `${this.labelStart} (${this.dateFormat})` }, this.labelStart, this.requiredField && (h("span", { "aria-hidden": "true", class: "required" }, "*")))), h("div", { class: "label-wrapper", id: "end-label-wrapper" }, h("label", { id: "endlabel", htmlFor: "end-date-input", class: "label", title: `${this.labelEnd} (${this.dateFormat})` }, this.labelEnd, this.requiredField && (h("span", { "aria-hidden": "true", class: "required" }, "*")))), h("input", { disabled: this._disabled, type: "text", id: "start-date-input", class: `date-input input ${this.invalidStart ? "invalid" : ""}`, name: "start-date", placeholder: this.dateFormat, value: this.valueStart, onFocus: () => this.handleFocus(), onInput: (ev) => this.handleStartInput(ev), onBlur: () => this.handleStartInputBlur(), ref: (input) => (this.startInputEl = input), "aria-describedby": "error", "aria-label": this.labelStart, "aria-required": this.requiredField ? "true" : null }), h("div", { id: "hyphen" }, "\u00A0-\u00A0"), h("input", { disabled: this._disabled, type: "text", id: "end-date-input", class: `date-input input ${this.invalidEnd ? "invalid" : ""}`, name: "end-date", placeholder: this.dateFormat, value: this.valueEnd, onFocus: () => this.handleFocus(), onInput: (ev) => this.handleEndInput(ev), onBlur: () => this.handleEndInputBlur(), ref: (input) => (this.endInputEl = input), "aria-describedby": "error", "aria-label": this.labelEnd, "aria-required": this.requiredField ? "true" : null }), h("div", { class: "toggle-wrapper", id: "toggle-wrapper" }, this.calWidth <= this.availSpace && (h("button", { disabled: this.disabled, onClick: this.togglePopup.bind(this), "aria-describedby": "start-date-input end-date-input", "aria-label": intl.formatMessage({
433
433
  id: "date.selectRange",
434
434
  defaultMessage: "Select range",
435
435
  description: "Button text for screen readers.",
436
- }), ref: (el) => (this.toggleEl = el), "aria-expanded": `${this.isExpanded}`, class: "toggle", id: "toggle" }, h("span", { key: 'c127dd1ac1f883218997250dc0455d2cd67b4e54', class: "calendar", title: intl.formatMessage({
436
+ }), ref: (el) => (this.toggleEl = el), "aria-expanded": `${this.isExpanded}`, class: "toggle", id: "toggle" }, h("span", { class: "calendar", title: intl.formatMessage({
437
437
  id: "date.calendarView",
438
438
  defaultMessage: "Calendar View",
439
439
  description: "Calendar button",
440
- }) })))), this.renderCalendars()), h("div", { key: 'f73ab32bcf2cebc82a8afd9129a1d3fcf9e0bc2b' }, h("div", { key: '2d7f933a92f36483ecfd801c4ae17bf7baa92c71', id: "live-region", "aria-live": "polite", "aria-relevant": "text", class: "sr-only" }), h("div", { key: 'ca4fd9da247934ff4644b099c883fed0158d0c86', id: "month-title", class: "sr-only" }, intl.formatMessage({
440
+ }) })))), this.renderCalendars()), h("div", null, h("div", { id: "live-region", "aria-live": "polite", "aria-relevant": "text", class: "sr-only" }), h("div", { id: "month-title", class: "sr-only" }, intl.formatMessage({
441
441
  id: "date.selectMonth",
442
442
  defaultMessage: "Activate to select a month.",
443
443
  description: "Calendar button",
444
- })), h("div", { key: '22d83e68a09a15072afcc3368fdf957838a5da1f', id: "year-title", class: "sr-only" }, intl.formatMessage({
444
+ })), h("div", { id: "year-title", class: "sr-only" }, intl.formatMessage({
445
445
  id: "date.selectYear",
446
446
  defaultMessage: "Activate to select a year.",
447
447
  description: "Calendar button",
448
- }))), h("div", { key: '6fbc73d0c1d280133b445c9fd4acd14a1be673e0', id: "error", class: "error" }, this.errorMessage), h("div", { key: '4dac5d364845b7a4c656db95e0aae877b902692b', ref: (el) => (this.liveRegionEl = el), class: "sr-only", "aria-live": "polite", "aria-atomic": "true" }))));
448
+ }))), h("div", { id: "error", class: "error" }, this.errorMessage), h("div", { ref: (el) => (this.liveRegionEl = el), class: "sr-only", "aria-live": "polite", "aria-atomic": "true" }))));
449
449
  }
450
450
  static get is() { return "wm-date-range"; }
451
451
  static get encapsulation() { return "shadow"; }
@@ -720,17 +720,14 @@ export class DateRange {
720
720
  "complexType": {
721
721
  "signature": "(inputFormat: string, outputFormat: string, date?: string) => Promise<string>",
722
722
  "parameters": [{
723
- "name": "inputFormat",
724
- "type": "string",
725
- "docs": ""
723
+ "tags": [],
724
+ "text": ""
726
725
  }, {
727
- "name": "outputFormat",
728
- "type": "string",
729
- "docs": ""
726
+ "tags": [],
727
+ "text": ""
730
728
  }, {
731
- "name": "date",
732
- "type": "string | undefined",
733
- "docs": ""
729
+ "tags": [],
730
+ "text": ""
734
731
  }],
735
732
  "references": {
736
733
  "Promise": {
@@ -749,9 +746,8 @@ export class DateRange {
749
746
  "complexType": {
750
747
  "signature": "(input?: string) => Promise<boolean>",
751
748
  "parameters": [{
752
- "name": "input",
753
- "type": "string | undefined",
754
- "docs": ""
749
+ "tags": [],
750
+ "text": ""
755
751
  }],
756
752
  "references": {
757
753
  "Promise": {
@@ -0,0 +1,22 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ //import * as globalFunctions from "../../global/functions";
3
+ import { DateRange } from "./wm-date-range";
4
+ describe("wm-date-range", () => {
5
+ it("builds", async () => {
6
+ const comp = await newSpecPage({
7
+ components: [DateRange],
8
+ html: '<wm-date-range label="mock label"></wm-date-range>',
9
+ });
10
+ expect(comp.root).toMatchSnapshot();
11
+ });
12
+ it("sets inputs to required", async () => {
13
+ const page = await newSpecPage({
14
+ components: [DateRange],
15
+ html: `<wm-date-range label='date range' required-field='true'></wm-date-range>`,
16
+ });
17
+ const inputs = await page.root.shadowRoot.querySelectorAll("input");
18
+ inputs.forEach((input) => {
19
+ expect(input).toEqualAttribute("aria-required", "true");
20
+ });
21
+ });
22
+ });