@watermarkinsights/ripple 4.3.0 → 4.4.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/cjs/chartFunctions-cecf8134.js +600 -0
  2. package/dist/cjs/{functions-91da05e9.js → functions-4208c444.js} +362 -362
  3. package/dist/cjs/{global-20d48c6c.js → global-bd289a67.js} +24 -24
  4. package/dist/cjs/{index-fae02cd7.js → index-f8ef86de.js} +436 -150
  5. package/dist/cjs/interfaces-ad9e80a6.js +38 -0
  6. package/dist/cjs/intl-3fafc6d1.js +179 -0
  7. package/dist/cjs/loader.cjs.js +4 -13
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +85 -85
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +637 -637
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +21 -21
  12. package/dist/cjs/ripple.cjs.js +4 -7
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +314 -314
  14. package/dist/cjs/wm-button.cjs.entry.js +174 -174
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +17 -17
  16. package/dist/cjs/wm-chart.cjs.entry.js +164 -164
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +160 -160
  18. package/dist/cjs/wm-file-list.cjs.entry.js +10 -10
  19. package/dist/cjs/wm-file.cjs.entry.js +178 -178
  20. package/dist/cjs/wm-input.cjs.entry.js +102 -102
  21. package/dist/cjs/wm-line-chart.cjs.entry.js +462 -462
  22. package/dist/cjs/wm-modal-footer.cjs.entry.js +27 -27
  23. package/dist/cjs/wm-modal-header.cjs.entry.js +21 -21
  24. package/dist/cjs/wm-modal.cjs.entry.js +92 -92
  25. package/dist/cjs/wm-navigation_3.cjs.entry.js +179 -179
  26. package/dist/cjs/wm-navigator.cjs.entry.js +255 -251
  27. package/dist/cjs/wm-option_2.cjs.entry.js +710 -710
  28. package/dist/cjs/wm-pagination.cjs.entry.js +169 -169
  29. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +151 -151
  30. package/dist/cjs/wm-search.cjs.entry.js +192 -192
  31. package/dist/cjs/wm-snackbar.cjs.entry.js +114 -114
  32. package/dist/cjs/wm-tab-item_3.cjs.entry.js +247 -247
  33. package/dist/cjs/wm-tag-input.cjs.entry.js +849 -849
  34. package/dist/cjs/wm-tag-option.cjs.entry.js +33 -33
  35. package/dist/cjs/wm-timepicker.cjs.entry.js +270 -270
  36. package/dist/cjs/wm-toggletip.cjs.entry.js +99 -99
  37. package/dist/cjs/wm-uploader.cjs.entry.js +198 -198
  38. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  39. package/dist/collection/collection-manifest.json +41 -41
  40. package/dist/collection/components/charts/chartFunctions.js +456 -456
  41. package/dist/collection/components/charts/chartFunctions.spec.js +13 -13
  42. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +73 -73
  43. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +257 -254
  44. package/dist/collection/components/charts/screenshots.e2e.js +30 -30
  45. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +121 -121
  46. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +160 -160
  47. package/dist/collection/components/charts/wm-chart/wm-chart.js +382 -381
  48. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +26 -26
  49. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1 -2
  50. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +138 -138
  51. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +731 -731
  52. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +106 -106
  53. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +202 -202
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +54 -54
  55. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +136 -136
  56. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +31 -31
  57. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +119 -119
  58. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +187 -187
  59. package/dist/collection/components/wm-action-menu/wm-action-menu.js +435 -435
  60. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +35 -35
  61. package/dist/collection/components/wm-button/wm-button.e2e.js +58 -58
  62. package/dist/collection/components/wm-button/wm-button.js +454 -452
  63. package/dist/collection/components/wm-button/wm-button.spec.js +63 -63
  64. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +943 -939
  65. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.spec.js +71 -71
  66. package/dist/collection/components/wm-datepicker/wm-datepicker.css +1 -2
  67. package/dist/collection/components/wm-datepicker/wm-datepicker.e2e.js +359 -359
  68. package/dist/collection/components/wm-datepicker/wm-datepicker.js +415 -413
  69. package/dist/collection/components/wm-datepicker/wm-datepicker.spec.js +13 -13
  70. package/dist/collection/components/wm-file/wm-file.js +380 -380
  71. package/dist/collection/components/wm-file/wm-file.spec.js +107 -107
  72. package/dist/collection/components/wm-file-list/wm-file-list.js +42 -42
  73. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +47 -47
  74. package/dist/collection/components/wm-input/wm-input.e2e.js +26 -26
  75. package/dist/collection/components/wm-input/wm-input.js +453 -453
  76. package/dist/collection/components/wm-input/wm-input.spec.js +168 -168
  77. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +18 -18
  78. package/dist/collection/components/wm-menuitem/wm-menuitem.js +446 -436
  79. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +46 -46
  80. package/dist/collection/components/wm-modal/wm-modal-footer.js +130 -130
  81. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +8 -8
  82. package/dist/collection/components/wm-modal/wm-modal-header.js +68 -68
  83. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +5 -5
  84. package/dist/collection/components/wm-modal/wm-modal.e2e.js +65 -65
  85. package/dist/collection/components/wm-modal/wm-modal.js +299 -296
  86. package/dist/collection/components/wm-modal/wm-modal.spec.js +22 -22
  87. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -1
  88. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +112 -112
  89. package/dist/collection/components/wm-navigation/wm-navigation-item.js +125 -125
  90. package/dist/collection/components/wm-navigation/wm-navigation.css +0 -2
  91. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +86 -86
  92. package/dist/collection/components/wm-navigation/wm-navigation.js +209 -209
  93. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +79 -79
  94. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +30 -30
  95. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +103 -103
  96. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +119 -118
  97. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +180 -180
  98. package/dist/collection/components/wm-navigator/wm-navigator.js +458 -454
  99. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +153 -153
  100. package/dist/collection/components/wm-option/wm-option.e2e.js +19 -19
  101. package/dist/collection/components/wm-option/wm-option.js +474 -463
  102. package/dist/collection/components/wm-option/wm-option.spec.js +39 -39
  103. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +301 -301
  104. package/dist/collection/components/wm-pagination/wm-pagination.js +327 -327
  105. package/dist/collection/components/wm-search/wm-search.e2e.js +69 -69
  106. package/dist/collection/components/wm-search/wm-search.js +415 -414
  107. package/dist/collection/components/wm-search/wm-search.spec.js +64 -64
  108. package/dist/collection/components/wm-select/wm-select.e2e.js +443 -443
  109. package/dist/collection/components/wm-select/wm-select.js +967 -966
  110. package/dist/collection/components/wm-select/wm-select.spec.js +250 -250
  111. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +114 -114
  112. package/dist/collection/components/wm-snackbar/wm-snackbar.js +209 -207
  113. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +4 -4
  114. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +190 -188
  115. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +261 -261
  116. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  117. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +79 -79
  118. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +6 -6
  119. package/dist/collection/components/wm-tag-input/wm-tag-input.css +2 -4
  120. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +168 -168
  121. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1159 -1159
  122. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +147 -147
  123. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +236 -234
  124. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1 -2
  125. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +147 -147
  126. package/dist/collection/components/wm-timepicker/wm-timepicker.js +531 -527
  127. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +151 -151
  128. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +61 -61
  129. package/dist/collection/components/wm-toggletip/wm-toggletip.js +209 -208
  130. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +16 -16
  131. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +56 -56
  132. package/dist/collection/components/wm-uploader/wm-uploader.js +423 -422
  133. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +149 -149
  134. package/dist/collection/components/wm-wrapper/wm-wrapper.js +26 -26
  135. package/dist/collection/global/__mocks__/functions.js +1 -1
  136. package/dist/collection/global/functions.js +510 -510
  137. package/dist/collection/global/functions.spec.js +123 -123
  138. package/dist/collection/global/global.js +16 -16
  139. package/dist/collection/global/interfaces.js +39 -39
  140. package/dist/collection/global/intl.js +162 -162
  141. package/dist/collection/global/services/__mocks__/http-service.js +112 -112
  142. package/dist/collection/global/services/http-service.js +41 -41
  143. package/dist/collection/global/themes/default.js +4 -4
  144. package/dist/collection/global/themes/neutral.js +4 -4
  145. package/dist/collection/lang/lang.spec.js +13 -13
  146. package/dist/esm/chartFunctions-23173fce.js +584 -0
  147. package/dist/esm/{functions-5afd09f4.js → functions-d0e70094.js} +362 -362
  148. package/dist/esm/{global-d4a9e80e.js → global-4569c7b8.js} +24 -24
  149. package/dist/esm/{index-7e11ea42.js → index-f164fbca.js} +436 -150
  150. package/dist/esm/interfaces-9b75fb61.js +35 -0
  151. package/dist/esm/intl-05c9e0c9.js +174 -0
  152. package/dist/esm/loader.js +5 -14
  153. package/dist/esm/priv-chart-popover.entry.js +85 -85
  154. package/dist/esm/priv-datepicker.entry.js +637 -637
  155. package/dist/esm/priv-navigator-button.entry.js +18 -18
  156. package/dist/esm/priv-navigator-item.entry.js +21 -21
  157. package/dist/esm/ripple.js +5 -8
  158. package/dist/esm/wm-action-menu_2.entry.js +314 -314
  159. package/dist/esm/wm-button.entry.js +174 -174
  160. package/dist/esm/wm-chart-slice.entry.js +17 -17
  161. package/dist/esm/wm-chart.entry.js +164 -164
  162. package/dist/esm/wm-datepicker.entry.js +160 -160
  163. package/dist/esm/wm-file-list.entry.js +10 -10
  164. package/dist/esm/wm-file.entry.js +178 -178
  165. package/dist/esm/wm-input.entry.js +102 -102
  166. package/dist/esm/wm-line-chart.entry.js +462 -462
  167. package/dist/esm/wm-modal-footer.entry.js +27 -27
  168. package/dist/esm/wm-modal-header.entry.js +21 -21
  169. package/dist/esm/wm-modal.entry.js +92 -92
  170. package/dist/esm/wm-navigation_3.entry.js +179 -179
  171. package/dist/esm/wm-navigator.entry.js +255 -251
  172. package/dist/esm/wm-option_2.entry.js +710 -710
  173. package/dist/esm/wm-pagination.entry.js +169 -169
  174. package/dist/esm/wm-progress-indicator_3.entry.js +151 -151
  175. package/dist/esm/wm-search.entry.js +192 -192
  176. package/dist/esm/wm-snackbar.entry.js +114 -114
  177. package/dist/esm/wm-tab-item_3.entry.js +247 -247
  178. package/dist/esm/wm-tag-input.entry.js +849 -849
  179. package/dist/esm/wm-tag-option.entry.js +33 -33
  180. package/dist/esm/wm-timepicker.entry.js +270 -270
  181. package/dist/esm/wm-toggletip.entry.js +99 -99
  182. package/dist/esm/wm-uploader.entry.js +198 -198
  183. package/dist/esm/wm-wrapper.entry.js +12 -12
  184. package/dist/esm-es5/chartFunctions-23173fce.js +1 -0
  185. package/dist/esm-es5/functions-d0e70094.js +1 -0
  186. package/dist/esm-es5/global-4569c7b8.js +1 -0
  187. package/dist/esm-es5/index-f164fbca.js +2 -0
  188. package/dist/esm-es5/{intl-e2da750a.js → intl-05c9e0c9.js} +1 -1
  189. package/dist/esm-es5/loader.js +1 -1
  190. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  191. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  192. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  193. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  194. package/dist/esm-es5/ripple.js +1 -1
  195. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  196. package/dist/esm-es5/wm-button.entry.js +1 -1
  197. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  198. package/dist/esm-es5/wm-chart.entry.js +1 -1
  199. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  200. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  201. package/dist/esm-es5/wm-file.entry.js +1 -1
  202. package/dist/esm-es5/wm-input.entry.js +1 -1
  203. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  204. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  205. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  206. package/dist/esm-es5/wm-modal.entry.js +1 -1
  207. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  208. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  209. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  210. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  211. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  212. package/dist/esm-es5/wm-search.entry.js +1 -1
  213. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  214. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  215. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  216. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  217. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  218. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  219. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  220. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  221. package/dist/loader/index.d.ts +1 -1
  222. package/dist/ripple/p-028ef6db.system.entry.js +1 -0
  223. package/dist/ripple/{p-863e737a.js → p-05d4e49b.js} +1 -1
  224. package/dist/ripple/{p-a1e95b05.system.entry.js → p-06776596.system.entry.js} +1 -1
  225. package/dist/ripple/{p-622a7791.system.entry.js → p-067d7922.system.entry.js} +1 -1
  226. package/dist/ripple/p-09d62ddd.entry.js +1 -0
  227. package/dist/ripple/{p-f30839a1.system.entry.js → p-0ecbf569.system.entry.js} +1 -1
  228. package/dist/ripple/p-0fe97e85.system.js +2 -0
  229. package/dist/ripple/{p-24b08e1f.js → p-13ca30d8.js} +1 -1
  230. package/dist/ripple/{p-8f3f903f.system.js → p-1402cfa2.system.js} +1 -1
  231. package/dist/ripple/p-1453ea51.system.entry.js +1 -0
  232. package/dist/ripple/{p-6abb903c.entry.js → p-153701f9.entry.js} +1 -1
  233. package/dist/ripple/p-1cc91907.system.js +1 -0
  234. package/dist/ripple/{p-ad37cdfd.entry.js → p-1d8b0039.entry.js} +1 -1
  235. package/dist/ripple/{p-d0f1b8c4.system.entry.js → p-1fa2a756.system.entry.js} +1 -1
  236. package/dist/ripple/{p-a52c5a1c.entry.js → p-25446670.entry.js} +1 -1
  237. package/dist/ripple/{p-1283e85d.entry.js → p-27f47edc.entry.js} +1 -1
  238. package/dist/ripple/{p-32b1126c.system.entry.js → p-28e4583c.system.entry.js} +1 -1
  239. package/dist/ripple/{p-a5b23781.system.entry.js → p-2c4f312d.system.entry.js} +1 -1
  240. package/dist/ripple/p-30b17818.system.entry.js +1 -0
  241. package/dist/ripple/{p-0631be01.system.entry.js → p-3446852f.system.entry.js} +1 -1
  242. package/dist/ripple/{p-ae674a54.entry.js → p-350fe5da.entry.js} +1 -1
  243. package/dist/ripple/{p-d04ba5f8.system.entry.js → p-3583d113.system.entry.js} +1 -1
  244. package/dist/ripple/{p-cbd8a60b.system.entry.js → p-361cc8fc.system.entry.js} +1 -1
  245. package/dist/ripple/{p-7529706d.entry.js → p-372faf33.entry.js} +1 -1
  246. package/dist/ripple/{p-19773c40.entry.js → p-3a070f35.entry.js} +1 -1
  247. package/dist/ripple/{p-c7b5ac39.js → p-3af72848.js} +1 -1
  248. package/dist/ripple/{p-c41603e6.entry.js → p-42ebfcfa.entry.js} +1 -1
  249. package/dist/ripple/{p-13594c2e.entry.js → p-43e2a49a.entry.js} +1 -1
  250. package/dist/ripple/{p-ed942b42.entry.js → p-49118468.entry.js} +1 -1
  251. package/dist/ripple/p-49c85d1a.system.js +1 -0
  252. package/dist/ripple/p-4de51706.js +2 -0
  253. package/dist/ripple/{p-3c80bf67.entry.js → p-58174f4e.entry.js} +1 -1
  254. package/dist/ripple/{p-c5e8f8a5.system.entry.js → p-5a4d9897.system.entry.js} +1 -1
  255. package/dist/ripple/{p-e3f0b57f.system.entry.js → p-5ac980e2.system.entry.js} +1 -1
  256. package/dist/ripple/{p-3becce62.system.entry.js → p-633cd89a.system.entry.js} +1 -1
  257. package/dist/ripple/{p-1205fdc1.entry.js → p-63f75d43.entry.js} +1 -1
  258. package/dist/ripple/{p-90ea7e3a.system.entry.js → p-67d48c33.system.entry.js} +1 -1
  259. package/dist/ripple/{p-8ef87907.entry.js → p-6caaf85f.entry.js} +1 -1
  260. package/dist/ripple/{p-935513f8.entry.js → p-6cf7a34a.entry.js} +1 -1
  261. package/dist/ripple/p-73289c2c.system.js +1 -0
  262. package/dist/ripple/{p-c76bbedf.system.entry.js → p-7a8816d9.system.entry.js} +1 -1
  263. package/dist/ripple/{p-8ea68cb3.system.entry.js → p-7e56da2e.system.entry.js} +1 -1
  264. package/dist/ripple/{p-deb4f5a2.entry.js → p-7e8daaac.entry.js} +1 -1
  265. package/dist/ripple/p-88406560.system.entry.js +1 -0
  266. package/dist/ripple/{p-84a7e757.entry.js → p-8cace32f.entry.js} +1 -1
  267. package/dist/ripple/{p-80aef387.entry.js → p-8d4734ad.entry.js} +1 -1
  268. package/dist/ripple/p-8f76a838.system.entry.js +1 -0
  269. package/dist/ripple/p-934c1b6b.js +1 -0
  270. package/dist/ripple/{p-85f744ed.system.js → p-9fecbc8a.system.js} +1 -1
  271. package/dist/ripple/{p-b71a83e3.entry.js → p-a69c37e0.entry.js} +1 -1
  272. package/dist/ripple/{p-9288659b.entry.js → p-a82a8931.entry.js} +1 -1
  273. package/dist/ripple/p-a99b05de.system.entry.js +1 -0
  274. package/dist/ripple/{p-36049d2f.entry.js → p-aadf8c59.entry.js} +1 -1
  275. package/dist/ripple/{p-676c1089.system.entry.js → p-aba5a00e.system.entry.js} +1 -1
  276. package/dist/ripple/{p-0aecac86.entry.js → p-ad6dc751.entry.js} +1 -1
  277. package/dist/ripple/{p-0f1ff645.entry.js → p-b253d2fc.entry.js} +1 -1
  278. package/dist/ripple/p-b2ff4723.system.entry.js +1 -0
  279. package/dist/ripple/{p-a0bf5eef.entry.js → p-b452d1d7.entry.js} +1 -1
  280. package/dist/ripple/{p-1cde16a7.system.entry.js → p-b4d862e1.system.entry.js} +1 -1
  281. package/dist/ripple/{p-d496bc44.system.entry.js → p-bdd4f919.system.entry.js} +1 -1
  282. package/dist/ripple/p-c18b398c.system.js +1 -0
  283. package/dist/ripple/{p-8f8c3705.entry.js → p-c249063c.entry.js} +1 -1
  284. package/dist/ripple/p-c344a69c.entry.js +1 -0
  285. package/dist/ripple/{p-0d9f70ab.entry.js → p-c717d895.entry.js} +1 -1
  286. package/dist/ripple/{p-2e773564.system.entry.js → p-c96a5c94.system.entry.js} +1 -1
  287. package/dist/ripple/{p-15497721.system.entry.js → p-ceced3d9.system.entry.js} +1 -1
  288. package/dist/ripple/{p-d428e9bb.system.entry.js → p-d16f91e9.system.entry.js} +1 -1
  289. package/dist/ripple/{p-ff14e4ec.system.entry.js → p-d3f9d028.system.entry.js} +1 -1
  290. package/dist/ripple/{p-7962f562.entry.js → p-de349bee.entry.js} +1 -1
  291. package/dist/ripple/{p-b3c73bc9.entry.js → p-e24ddae1.entry.js} +1 -1
  292. package/dist/ripple/{p-b3e08b14.system.entry.js → p-e8b58666.system.entry.js} +1 -1
  293. package/dist/ripple/{p-a9c096b5.entry.js → p-fa87bce3.entry.js} +1 -1
  294. package/dist/ripple/ripple.esm.js +1 -1
  295. package/dist/ripple/ripple.js +16 -20
  296. package/dist/types/components/charts/chartFunctions.d.ts +13 -13
  297. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +24 -24
  298. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +8 -8
  299. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +39 -39
  300. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +74 -74
  301. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +26 -26
  302. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -17
  303. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +7 -7
  304. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -43
  305. package/dist/types/components/wm-button/wm-button.d.ts +40 -40
  306. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
  307. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +31 -31
  308. package/dist/types/components/wm-file/wm-file.d.ts +40 -40
  309. package/dist/types/components/wm-file-list/wm-file-list.d.ts +3 -3
  310. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  311. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +31 -31
  312. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +11 -11
  313. package/dist/types/components/wm-modal/wm-modal-header.d.ts +7 -7
  314. package/dist/types/components/wm-modal/wm-modal.d.ts +24 -24
  315. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +13 -13
  316. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +10 -10
  317. package/dist/types/components/wm-navigation/wm-navigation.d.ts +23 -23
  318. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +7 -7
  319. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +10 -10
  320. package/dist/types/components/wm-navigator/wm-navigator.d.ts +57 -57
  321. package/dist/types/components/wm-option/wm-option.d.ts +36 -36
  322. package/dist/types/components/wm-pagination/wm-pagination.d.ts +27 -27
  323. package/dist/types/components/wm-search/wm-search.d.ts +73 -73
  324. package/dist/types/components/wm-select/wm-select.d.ts +99 -99
  325. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +24 -24
  326. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +30 -30
  327. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +41 -41
  328. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +16 -16
  329. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +114 -114
  330. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +15 -15
  331. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +48 -48
  332. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +20 -20
  333. package/dist/types/components/wm-uploader/wm-uploader.d.ts +47 -47
  334. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +4 -4
  335. package/dist/types/components.d.ts +382 -0
  336. package/dist/types/global/__mocks__/functions.d.ts +1 -1
  337. package/dist/types/global/functions.d.ts +4 -4
  338. package/dist/types/global/interfaces.d.ts +49 -49
  339. package/dist/types/global/intl.d.ts +31 -31
  340. package/dist/types/global/services/__mocks__/http-service.d.ts +1 -1
  341. package/dist/types/stencil-public-runtime.d.ts +46 -5
  342. package/package.json +1 -1
  343. package/dist/cjs/chartFunctions-2c3e010e.js +0 -600
  344. package/dist/cjs/interfaces-245d7bff.js +0 -38
  345. package/dist/cjs/intl-fa3bb4ae.js +0 -179
  346. package/dist/esm/chartFunctions-36634c04.js +0 -584
  347. package/dist/esm/interfaces-89cad2fc.js +0 -35
  348. package/dist/esm/intl-e2da750a.js +0 -174
  349. package/dist/esm/polyfills/css-shim.js +0 -1
  350. package/dist/esm-es5/chartFunctions-36634c04.js +0 -1
  351. package/dist/esm-es5/functions-5afd09f4.js +0 -1
  352. package/dist/esm-es5/global-d4a9e80e.js +0 -1
  353. package/dist/esm-es5/index-7e11ea42.js +0 -2
  354. package/dist/ripple/p-00acacbe.system.entry.js +0 -1
  355. package/dist/ripple/p-0f889b84.system.js +0 -1
  356. package/dist/ripple/p-13af8346.entry.js +0 -1
  357. package/dist/ripple/p-16363e1c.system.entry.js +0 -1
  358. package/dist/ripple/p-2a95b63f.system.entry.js +0 -1
  359. package/dist/ripple/p-30bf24f8.system.js +0 -2
  360. package/dist/ripple/p-3248c0fa.system.entry.js +0 -1
  361. package/dist/ripple/p-47c20b05.entry.js +0 -1
  362. package/dist/ripple/p-56d64283.system.entry.js +0 -1
  363. package/dist/ripple/p-5e85967a.system.js +0 -1
  364. package/dist/ripple/p-9b2034f6.js +0 -1
  365. package/dist/ripple/p-a3d07be5.system.js +0 -1
  366. package/dist/ripple/p-a6be3cca.system.entry.js +0 -1
  367. package/dist/ripple/p-aafa111a.system.js +0 -1
  368. package/dist/ripple/p-b5bedd63.js +0 -2
  369. package/dist/ripple/p-bd537299.system.entry.js +0 -1
  370. /package/dist/esm-es5/{interfaces-89cad2fc.js → interfaces-9b75fb61.js} +0 -0
  371. /package/dist/ripple/{p-c0c111fd.js → p-196eb2f3.js} +0 -0
@@ -1,102 +1,102 @@
1
1
  import { newE2EPage } from "@stencil/core/testing";
2
2
  import { AxePuppeteer } from "@axe-core/puppeteer";
3
3
  describe("wm-navigation", () => {
4
- let page, nav, hamburger, items;
5
- beforeEach(async () => {
6
- page = await newE2EPage();
7
- await page.setContent(`<html lang='en'><head><title>Page</title></head><body>
4
+ let page, nav, hamburger, items;
5
+ beforeEach(async () => {
6
+ page = await newE2EPage();
7
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body>
8
8
  <wm-navigation-hamburger nav-id="mynav"></wm-navigation-hamburger>
9
9
  <wm-navigation id="mynav">
10
10
  <wm-navigation-item href="/home" text="Home" active>Home</wm-navigation-item>
11
11
  <wm-navigation-item href="/things" text="Things">Things</wm-navigation-item>
12
12
  </wm-navigation><main><h1>Title</h1><button>something tabbable here</button>
13
13
  </main></body></html>`);
14
- nav = await page.find("wm-navigation");
15
- hamburger = await page.find("wm-navigation-hamburger");
16
- items = await page.find("wm-navigation-item");
17
- });
18
- it("passes Axe checks", async () => {
19
- const results = await new AxePuppeteer(page).analyze();
20
- expect(results.violations.length).toBe(1); // there's an false error about aria-controls having a wrong value
21
- });
22
- it("renders the component", async () => {
23
- expect(nav).not.toBeNull();
24
- expect(hamburger).not.toBeNull();
25
- expect(items).not.toBeNull();
26
- });
27
- it("traps focus when collapsible", async () => {
28
- // small screen, trap focus
29
- page.setViewport({ width: 1023, height: 800 });
30
- page.waitForChanges();
31
- await page.keyboard.press("Tab"); // focus on hamburger
32
- await page.keyboard.press("Enter"); // open. focus on close btn
33
- await page.waitForTimeout(250); // wait for animation to complete and focus to be called
34
- await page.keyboard.press("Tab"); // focus on 1st nav item
35
- await page.keyboard.press("Tab"); // focus on 2nd nav item
36
- await page.keyboard.press("Tab"); // with trap focus we circle back within the nav (on close btn)
37
- let activeEl = await page.evaluate(() => document.activeElement.tagName);
38
- expect(activeEl).toEqual("WM-NAVIGATION");
39
- });
40
- it("doesn't trap focus when persistent", async () => {
41
- // wide screen, no trap focus
42
- page.setViewport({ width: 1024, height: 800 });
43
- await page.waitForChanges(); // test fails randomly without this
44
- await page.keyboard.press("Tab"); // focus on 1st nav item
45
- await page.keyboard.press("Tab"); // focus on 2nd nav item
46
- await page.keyboard.press("Tab"); // focus on the button in main
47
- let activeEl = await page.evaluate(() => document.activeElement.tagName);
48
- expect(activeEl).toEqual("BUTTON");
49
- });
50
- it("handles focus method when collapsible and closed", async () => {
51
- page.setViewport({ width: 1023, height: 800 });
52
- let activeEl = await page.evaluate(() => document.activeElement.tagName);
53
- expect(activeEl).toEqual("BODY");
54
- nav.focus();
55
- activeEl = await page.evaluate(() => document.activeElement.tagName);
56
- expect(activeEl).toEqual("WM-NAVIGATION-HAMBURGER");
57
- });
58
- it("handles focus method when collapsible and open", async () => {
59
- page.setViewport({ width: 1023, height: 800 });
60
- let activeEl = await page.evaluate(() => document.activeElement.tagName);
61
- expect(activeEl).toEqual("BODY");
62
- expect(nav.getAttribute("aria-expanded")).toBe("false");
63
- hamburger.click();
64
- await page.waitForChanges();
65
- expect(nav.getAttribute("aria-expanded")).toBe("true");
66
- nav.focus();
67
- activeEl = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.tagName);
68
- expect(activeEl).toEqual("WM-BUTTON"); // the close button
69
- });
70
- it("handles focus method when persistent", async () => {
71
- page.setViewport({ width: 1024, height: 800 });
72
- let activeEl = await page.evaluate(() => document.activeElement.tagName);
73
- expect(activeEl).toEqual("BODY");
74
- expect(nav.getAttribute("aria-expanded")).toBeUndefined;
75
- nav.focus();
76
- expect(nav.getAttribute("aria-expanded")).toBeUndefined; // should still be undefined
77
- activeEl = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.textContent);
78
- expect(activeEl).toEqual("Home"); // first item
79
- });
80
- it("is open on load if open prop is set to true", async () => {
81
- page = await newE2EPage();
82
- await page.setContent(`<html lang='en'><head><title>Page</title></head><body>
14
+ nav = await page.find("wm-navigation");
15
+ hamburger = await page.find("wm-navigation-hamburger");
16
+ items = await page.find("wm-navigation-item");
17
+ });
18
+ it("passes Axe checks", async () => {
19
+ const results = await new AxePuppeteer(page).analyze();
20
+ expect(results.violations.length).toBe(1); // there's an false error about aria-controls having a wrong value
21
+ });
22
+ it("renders the component", async () => {
23
+ expect(nav).not.toBeNull();
24
+ expect(hamburger).not.toBeNull();
25
+ expect(items).not.toBeNull();
26
+ });
27
+ it("traps focus when collapsible", async () => {
28
+ // small screen, trap focus
29
+ page.setViewport({ width: 1023, height: 800 });
30
+ page.waitForChanges();
31
+ await page.keyboard.press("Tab"); // focus on hamburger
32
+ await page.keyboard.press("Enter"); // open. focus on close btn
33
+ await page.waitForTimeout(250); // wait for animation to complete and focus to be called
34
+ await page.keyboard.press("Tab"); // focus on 1st nav item
35
+ await page.keyboard.press("Tab"); // focus on 2nd nav item
36
+ await page.keyboard.press("Tab"); // with trap focus we circle back within the nav (on close btn)
37
+ let activeEl = await page.evaluate(() => document.activeElement.tagName);
38
+ expect(activeEl).toEqual("WM-NAVIGATION");
39
+ });
40
+ it("doesn't trap focus when persistent", async () => {
41
+ // wide screen, no trap focus
42
+ page.setViewport({ width: 1024, height: 800 });
43
+ await page.waitForChanges(); // test fails randomly without this
44
+ await page.keyboard.press("Tab"); // focus on 1st nav item
45
+ await page.keyboard.press("Tab"); // focus on 2nd nav item
46
+ await page.keyboard.press("Tab"); // focus on the button in main
47
+ let activeEl = await page.evaluate(() => document.activeElement.tagName);
48
+ expect(activeEl).toEqual("BUTTON");
49
+ });
50
+ it("handles focus method when collapsible and closed", async () => {
51
+ page.setViewport({ width: 1023, height: 800 });
52
+ let activeEl = await page.evaluate(() => document.activeElement.tagName);
53
+ expect(activeEl).toEqual("BODY");
54
+ nav.focus();
55
+ activeEl = await page.evaluate(() => document.activeElement.tagName);
56
+ expect(activeEl).toEqual("WM-NAVIGATION-HAMBURGER");
57
+ });
58
+ it("handles focus method when collapsible and open", async () => {
59
+ page.setViewport({ width: 1023, height: 800 });
60
+ let activeEl = await page.evaluate(() => document.activeElement.tagName);
61
+ expect(activeEl).toEqual("BODY");
62
+ expect(nav.getAttribute("aria-expanded")).toBe("false");
63
+ hamburger.click();
64
+ await page.waitForChanges();
65
+ expect(nav.getAttribute("aria-expanded")).toBe("true");
66
+ nav.focus();
67
+ activeEl = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.tagName);
68
+ expect(activeEl).toEqual("WM-BUTTON"); // the close button
69
+ });
70
+ it("handles focus method when persistent", async () => {
71
+ page.setViewport({ width: 1024, height: 800 });
72
+ let activeEl = await page.evaluate(() => document.activeElement.tagName);
73
+ expect(activeEl).toEqual("BODY");
74
+ expect(nav.getAttribute("aria-expanded")).toBeUndefined;
75
+ nav.focus();
76
+ expect(nav.getAttribute("aria-expanded")).toBeUndefined; // should still be undefined
77
+ activeEl = await page.evaluate(() => document.activeElement.shadowRoot.activeElement.textContent);
78
+ expect(activeEl).toEqual("Home"); // first item
79
+ });
80
+ it("is open on load if open prop is set to true", async () => {
81
+ page = await newE2EPage();
82
+ await page.setContent(`<html lang='en'><head><title>Page</title></head><body>
83
83
  <wm-navigation-hamburger nav-id="mynav"></wm-navigation-hamburger>
84
84
  <wm-navigation open id="mynav">
85
85
  <wm-navigation-item href="/home" text="Home" active>Home</wm-navigation-item>
86
86
  <wm-navigation-item href="/things" text="Things">Things</wm-navigation-item>
87
87
  </wm-navigation><main><h1>Title</h1><button>something tabbable here</button>
88
88
  </main></body></html>`);
89
- await page.waitForTimeout(500);
90
- const nav = await page.find("wm-navigation");
91
- expect(nav.getAttribute("aria-expanded")).toBe("true");
92
- });
93
- it("programatically associates hamburger and nav and properly announces to SR", async () => {
94
- const hamburgerAriaControls = hamburger.shadowRoot.querySelector("button").getAttribute("aria-controls");
95
- const hamburgerAriaLabel = hamburger.shadowRoot.querySelector("button").getAttribute("aria-label");
96
- const navAriaLabel = nav.getAttribute("aria-label");
97
- expect(hamburgerAriaControls).toBe(nav.id);
98
- expect(hamburgerAriaLabel).toBe("Show navigation");
99
- expect(navAriaLabel).toBe("Main");
100
- });
101
- // when closed, focus returns to hamburger
89
+ await page.waitForTimeout(500);
90
+ const nav = await page.find("wm-navigation");
91
+ expect(nav.getAttribute("aria-expanded")).toBe("true");
92
+ });
93
+ it("programatically associates hamburger and nav and properly announces to SR", async () => {
94
+ const hamburgerAriaControls = hamburger.shadowRoot.querySelector("button").getAttribute("aria-controls");
95
+ const hamburgerAriaLabel = hamburger.shadowRoot.querySelector("button").getAttribute("aria-label");
96
+ const navAriaLabel = nav.getAttribute("aria-label");
97
+ expect(hamburgerAriaControls).toBe(nav.id);
98
+ expect(hamburgerAriaLabel).toBe("Show navigation");
99
+ expect(navAriaLabel).toBe("Main");
100
+ });
101
+ // when closed, focus returns to hamburger
102
102
  });
@@ -2,216 +2,216 @@ import { h, Host, forceUpdate, } from "@stencil/core";
2
2
  import { intl, throttle } from "../../global/functions";
3
3
  import { globalMessages } from "../../global/intl";
4
4
  export class Navigation {
5
- constructor() {
6
- this.mainNavigationMessage = intl.formatMessage({
7
- id: "navigation.mainNavigation",
8
- defaultMessage: "Main",
9
- description: "Label describing the site navigation, for screen reader users",
10
- });
11
- this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
12
- this.open = false;
13
- this.isTabbing = false;
14
- }
15
- get isCollapsible() {
16
- return window.innerWidth < 1024;
17
- }
18
- get ariaExpanded() {
19
- return this.isCollapsible
20
- ? // if component is in collapsible mode, set aria-expanded according to expanded state
21
- this.open.toString()
22
- : // otherwise, do not render attr at all
23
- undefined;
24
- }
25
- toggleTabbingOn() {
26
- this.isTabbing = true;
27
- }
28
- toggleTabbingOff() {
29
- this.isTabbing = false;
30
- }
31
- closeOnEscape(ev) {
32
- if (ev.key === "Escape") {
33
- this.open = false;
34
- }
35
- }
36
- handleWindowResize() {
37
- // for component to react when breakpoint is crossed
38
- // (doesn't rerender on window resize)
39
- this.throttledRerender();
40
- }
41
- handleHamburgerClicked() {
42
- this.open = !this.open;
43
- }
44
- handleClickOnItem() {
45
- this.open = false;
46
- }
47
- handleStateChange() {
48
- if (this.isCollapsible) {
49
- this.wmNavigationStateChanged.emit();
50
- this.open ? this.expand() : this.collapse();
51
- }
52
- }
53
- componentWillLoad() {
54
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
55
- this.toggleTabbingOn();
56
- }
57
- this.el.focus = () => {
58
- // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
59
- const btn = this.open
60
- ? this.el.shadowRoot.querySelector(".toggle")
61
- : document.querySelector("wm-navigation-hamburger");
62
- const firstItem = this.el.querySelector("wm-navigation-item");
63
- this.isCollapsible ? btn.focus() : firstItem.focus();
64
- };
65
- if (this.isCollapsible && this.open) {
66
- // hamburger needs to know if open was initially set to true
67
- this.wmNavigationStateChanged.emit();
68
- this.expand();
69
- }
70
- }
71
- redirectFocusFromBody(ev) {
72
- // the 2nd check excludes the case when user clicks on the page when the nav is open,
73
- // which should not redirect focus
74
- if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
75
- this.el.focus();
76
- }
77
- }
78
- expand() {
79
- // listen to focus on body and redirect to the component
80
- // this is to handle trap focus when user has left the page (e.g. went to the address bar)
81
- // and is tabbing back in
82
- document.body.tabIndex = 0;
83
- document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
84
- // wait for nav to be expanded otherwise tooltip will be misplaced.
85
- setTimeout(() => this.toggleEl.focus(), 250);
86
- //document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
87
- }
88
- collapse() {
89
- // rm event listener on body
90
- document.body.tabIndex = -1;
91
- document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
92
- const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
93
- // should fail silently if el doesn't exist
94
- // (dev may have chosen not to use the hamburger component)
95
- if (hamburgerBtn)
96
- hamburgerBtn.focus();
97
- }
98
- focusLastItem() {
99
- const items = this.el.querySelectorAll("wm-navigation-item");
100
- const lastItem = Array.from(items).pop();
101
- lastItem.focus();
102
- }
103
- renderOverlay() {
104
- return (h("div", { class: "overlay", onClick: () => {
5
+ constructor() {
6
+ this.mainNavigationMessage = intl.formatMessage({
7
+ id: "navigation.mainNavigation",
8
+ defaultMessage: "Main",
9
+ description: "Label describing the site navigation, for screen reader users",
10
+ });
11
+ this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
105
12
  this.open = false;
106
- } }));
107
- }
108
- render() {
109
- return (h(Host, { role: "navigation", "aria-expanded": this.ariaExpanded, "aria-label": this.mainNavigationMessage }, this.open ? this.renderOverlay() : "", this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.focusLastItem() })), h("div", { class: "tray" }, h("div", { class: "toggle-wrapper" }, h("wm-button", { ref: (el) => (this.toggleEl = el), class: `toggle ${this.isTabbing ? "user-is-tabbing" : ""}`, "button-type": "navigational", icon: this.open ? "f156" : "f35c", "icon-size": "2rem", tooltip: this.open ? globalMessages.close : globalMessages.open, "tooltip-position": "right", tabIndex: this.open ? undefined : -1, onClick: () => {
13
+ this.isTabbing = false;
14
+ }
15
+ get isCollapsible() {
16
+ return window.innerWidth < 1024;
17
+ }
18
+ get ariaExpanded() {
19
+ return this.isCollapsible
20
+ ? // if component is in collapsible mode, set aria-expanded according to expanded state
21
+ this.open.toString()
22
+ : // otherwise, do not render attr at all
23
+ undefined;
24
+ }
25
+ toggleTabbingOn() {
26
+ this.isTabbing = true;
27
+ }
28
+ toggleTabbingOff() {
29
+ this.isTabbing = false;
30
+ }
31
+ closeOnEscape(ev) {
32
+ if (ev.key === "Escape") {
33
+ this.open = false;
34
+ }
35
+ }
36
+ handleWindowResize() {
37
+ // for component to react when breakpoint is crossed
38
+ // (doesn't rerender on window resize)
39
+ this.throttledRerender();
40
+ }
41
+ handleHamburgerClicked() {
110
42
  this.open = !this.open;
111
- } })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
112
- }
113
- static get is() { return "wm-navigation"; }
114
- static get encapsulation() { return "shadow"; }
115
- static get delegatesFocus() { return true; }
116
- static get originalStyleUrls() {
117
- return {
118
- "$": ["wm-navigation.scss"]
119
- };
120
- }
121
- static get styleUrls() {
122
- return {
123
- "$": ["wm-navigation.css"]
124
- };
125
- }
126
- static get properties() {
127
- return {
128
- "open": {
129
- "type": "boolean",
130
- "mutable": true,
131
- "complexType": {
132
- "original": "boolean",
133
- "resolved": "boolean",
134
- "references": {}
135
- },
136
- "required": false,
137
- "optional": false,
138
- "docs": {
139
- "tags": [],
140
- "text": ""
141
- },
142
- "attribute": "open",
143
- "reflect": true,
144
- "defaultValue": "false"
145
- }
146
- };
147
- }
148
- static get states() {
149
- return {
150
- "isTabbing": {}
151
- };
152
- }
153
- static get events() {
154
- return [{
155
- "method": "wmNavigationStateChanged",
156
- "name": "wmNavigationStateChanged",
157
- "bubbles": true,
158
- "cancelable": true,
159
- "composed": true,
160
- "docs": {
161
- "tags": [],
162
- "text": ""
163
- },
164
- "complexType": {
165
- "original": "any",
166
- "resolved": "any",
167
- "references": {}
43
+ }
44
+ handleClickOnItem() {
45
+ this.open = false;
46
+ }
47
+ handleStateChange() {
48
+ if (this.isCollapsible) {
49
+ this.wmNavigationStateChanged.emit();
50
+ this.open ? this.expand() : this.collapse();
168
51
  }
169
- }];
170
- }
171
- static get elementRef() { return "el"; }
172
- static get watchers() {
173
- return [{
174
- "propName": "open",
175
- "methodName": "handleStateChange"
176
- }];
177
- }
178
- static get listeners() {
179
- return [{
180
- "name": "wmUserIsTabbing",
181
- "method": "toggleTabbingOn",
182
- "target": "window",
183
- "capture": false,
184
- "passive": false
185
- }, {
186
- "name": "wmUserIsNotTabbing",
187
- "method": "toggleTabbingOff",
188
- "target": "window",
189
- "capture": false,
190
- "passive": false
191
- }, {
192
- "name": "keydown",
193
- "method": "closeOnEscape",
194
- "target": undefined,
195
- "capture": false,
196
- "passive": false
197
- }, {
198
- "name": "resize",
199
- "method": "handleWindowResize",
200
- "target": "window",
201
- "capture": false,
202
- "passive": true
203
- }, {
204
- "name": "wmNavigationHamburgerClicked",
205
- "method": "handleHamburgerClicked",
206
- "target": "window",
207
- "capture": false,
208
- "passive": false
209
- }, {
210
- "name": "wmNavigationItemClicked",
211
- "method": "handleClickOnItem",
212
- "target": undefined,
213
- "capture": false,
214
- "passive": false
215
- }];
216
- }
52
+ }
53
+ componentWillLoad() {
54
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
55
+ this.toggleTabbingOn();
56
+ }
57
+ this.el.focus = () => {
58
+ // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
59
+ const btn = this.open
60
+ ? this.el.shadowRoot.querySelector(".toggle")
61
+ : document.querySelector("wm-navigation-hamburger");
62
+ const firstItem = this.el.querySelector("wm-navigation-item");
63
+ this.isCollapsible ? btn.focus() : firstItem.focus();
64
+ };
65
+ if (this.isCollapsible && this.open) {
66
+ // hamburger needs to know if open was initially set to true
67
+ this.wmNavigationStateChanged.emit();
68
+ this.expand();
69
+ }
70
+ }
71
+ redirectFocusFromBody(ev) {
72
+ // the 2nd check excludes the case when user clicks on the page when the nav is open,
73
+ // which should not redirect focus
74
+ if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
75
+ this.el.focus();
76
+ }
77
+ }
78
+ expand() {
79
+ // listen to focus on body and redirect to the component
80
+ // this is to handle trap focus when user has left the page (e.g. went to the address bar)
81
+ // and is tabbing back in
82
+ document.body.tabIndex = 0;
83
+ document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
84
+ // wait for nav to be expanded otherwise tooltip will be misplaced.
85
+ setTimeout(() => this.toggleEl.focus(), 250);
86
+ //document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
87
+ }
88
+ collapse() {
89
+ // rm event listener on body
90
+ document.body.tabIndex = -1;
91
+ document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
92
+ const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
93
+ // should fail silently if el doesn't exist
94
+ // (dev may have chosen not to use the hamburger component)
95
+ if (hamburgerBtn)
96
+ hamburgerBtn.focus();
97
+ }
98
+ focusLastItem() {
99
+ const items = this.el.querySelectorAll("wm-navigation-item");
100
+ const lastItem = Array.from(items).pop();
101
+ lastItem.focus();
102
+ }
103
+ renderOverlay() {
104
+ return (h("div", { class: "overlay", onClick: () => {
105
+ this.open = false;
106
+ } }));
107
+ }
108
+ render() {
109
+ return (h(Host, { role: "navigation", "aria-expanded": this.ariaExpanded, "aria-label": this.mainNavigationMessage }, this.open ? this.renderOverlay() : "", this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.focusLastItem() })), h("div", { class: "tray" }, h("div", { class: "toggle-wrapper" }, h("wm-button", { ref: (el) => (this.toggleEl = el), class: `toggle ${this.isTabbing ? "user-is-tabbing" : ""}`, "button-type": "navigational", icon: this.open ? "f156" : "f35c", "icon-size": "2rem", tooltip: this.open ? globalMessages.close : globalMessages.open, "tooltip-position": "right", tabIndex: this.open ? undefined : -1, onClick: () => {
110
+ this.open = !this.open;
111
+ } })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
112
+ }
113
+ static get is() { return "wm-navigation"; }
114
+ static get encapsulation() { return "shadow"; }
115
+ static get delegatesFocus() { return true; }
116
+ static get originalStyleUrls() {
117
+ return {
118
+ "$": ["wm-navigation.scss"]
119
+ };
120
+ }
121
+ static get styleUrls() {
122
+ return {
123
+ "$": ["wm-navigation.css"]
124
+ };
125
+ }
126
+ static get properties() {
127
+ return {
128
+ "open": {
129
+ "type": "boolean",
130
+ "mutable": true,
131
+ "complexType": {
132
+ "original": "boolean",
133
+ "resolved": "boolean",
134
+ "references": {}
135
+ },
136
+ "required": false,
137
+ "optional": false,
138
+ "docs": {
139
+ "tags": [],
140
+ "text": ""
141
+ },
142
+ "attribute": "open",
143
+ "reflect": true,
144
+ "defaultValue": "false"
145
+ }
146
+ };
147
+ }
148
+ static get states() {
149
+ return {
150
+ "isTabbing": {}
151
+ };
152
+ }
153
+ static get events() {
154
+ return [{
155
+ "method": "wmNavigationStateChanged",
156
+ "name": "wmNavigationStateChanged",
157
+ "bubbles": true,
158
+ "cancelable": true,
159
+ "composed": true,
160
+ "docs": {
161
+ "tags": [],
162
+ "text": ""
163
+ },
164
+ "complexType": {
165
+ "original": "any",
166
+ "resolved": "any",
167
+ "references": {}
168
+ }
169
+ }];
170
+ }
171
+ static get elementRef() { return "el"; }
172
+ static get watchers() {
173
+ return [{
174
+ "propName": "open",
175
+ "methodName": "handleStateChange"
176
+ }];
177
+ }
178
+ static get listeners() {
179
+ return [{
180
+ "name": "wmUserIsTabbing",
181
+ "method": "toggleTabbingOn",
182
+ "target": "window",
183
+ "capture": false,
184
+ "passive": false
185
+ }, {
186
+ "name": "wmUserIsNotTabbing",
187
+ "method": "toggleTabbingOff",
188
+ "target": "window",
189
+ "capture": false,
190
+ "passive": false
191
+ }, {
192
+ "name": "keydown",
193
+ "method": "closeOnEscape",
194
+ "target": undefined,
195
+ "capture": false,
196
+ "passive": false
197
+ }, {
198
+ "name": "resize",
199
+ "method": "handleWindowResize",
200
+ "target": "window",
201
+ "capture": false,
202
+ "passive": true
203
+ }, {
204
+ "name": "wmNavigationHamburgerClicked",
205
+ "method": "handleHamburgerClicked",
206
+ "target": "window",
207
+ "capture": false,
208
+ "passive": false
209
+ }, {
210
+ "name": "wmNavigationItemClicked",
211
+ "method": "handleClickOnItem",
212
+ "target": undefined,
213
+ "capture": false,
214
+ "passive": false
215
+ }];
216
+ }
217
217
  }