@watermarkinsights/ripple 3.24.0 → 3.24.1

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 (554) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-5309f8ed.js → chartFunctions-da36e4cb.js} +591 -586
  3. package/dist/cjs/chartFunctions-da36e4cb.js.map +1 -0
  4. package/dist/cjs/{functions-6d2a5824.js → functions-9ddaeb33.js} +468 -468
  5. package/dist/cjs/{functions-6d2a5824.js.map → functions-9ddaeb33.js.map} +1 -1
  6. package/dist/cjs/{global-d20d5267.js → global-a563c2d1.js} +63 -63
  7. package/dist/cjs/global-a563c2d1.js.map +1 -0
  8. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +50 -50
  9. package/dist/cjs/http-service-494d81de.js.map +1 -0
  10. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +30 -30
  11. package/dist/cjs/interfaces-a3338581.js.map +1 -0
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/priv-chart-popover.cjs.entry.js +91 -91
  14. package/dist/cjs/priv-chart-popover.cjs.entry.js.map +1 -1
  15. package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
  16. package/dist/cjs/priv-datepicker.cjs.entry.js.map +1 -1
  17. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  18. package/dist/cjs/priv-navigator-button.cjs.entry.js.map +1 -1
  19. package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
  20. package/dist/cjs/priv-navigator-item.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ripple.cjs.js +1 -1
  22. package/dist/cjs/wm-action-menu_2.cjs.entry.js +334 -334
  23. package/dist/cjs/wm-action-menu_2.cjs.entry.js.map +1 -1
  24. package/dist/cjs/wm-button.cjs.entry.js +260 -260
  25. package/dist/cjs/wm-button.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wm-chart-slice.cjs.entry.js +18 -18
  27. package/dist/cjs/wm-chart-slice.cjs.entry.js.map +1 -1
  28. package/dist/cjs/wm-chart.cjs.entry.js +179 -179
  29. package/dist/cjs/wm-chart.cjs.entry.js.map +1 -1
  30. package/dist/cjs/wm-datepicker.cjs.entry.js +263 -263
  31. package/dist/cjs/wm-datepicker.cjs.entry.js.map +1 -1
  32. package/dist/cjs/wm-file-list.cjs.entry.js +35 -35
  33. package/dist/cjs/wm-file-list.cjs.entry.js.map +1 -1
  34. package/dist/cjs/wm-file.cjs.entry.js +201 -201
  35. package/dist/cjs/wm-file.cjs.entry.js.map +1 -1
  36. package/dist/cjs/wm-input.cjs.entry.js +139 -139
  37. package/dist/cjs/wm-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
  39. package/dist/cjs/wm-modal-footer.cjs.entry.js.map +1 -1
  40. package/dist/cjs/wm-modal-header.cjs.entry.js +36 -36
  41. package/dist/cjs/wm-modal-header.cjs.entry.js.map +1 -1
  42. package/dist/cjs/wm-modal.cjs.entry.js +152 -152
  43. package/dist/cjs/wm-modal.cjs.entry.js.map +1 -1
  44. package/dist/cjs/wm-navigation_3.cjs.entry.js +234 -234
  45. package/dist/cjs/wm-navigation_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/wm-navigator.cjs.entry.js +264 -264
  47. package/dist/cjs/wm-navigator.cjs.entry.js.map +1 -1
  48. package/dist/cjs/wm-network-uploader.cjs.entry.js +467 -467
  49. package/dist/cjs/wm-network-uploader.cjs.entry.js.map +1 -1
  50. package/dist/cjs/wm-option_2.cjs.entry.js +771 -771
  51. package/dist/cjs/wm-option_2.cjs.entry.js.map +1 -1
  52. package/dist/cjs/wm-pagination.cjs.entry.js +179 -179
  53. package/dist/cjs/wm-pagination.cjs.entry.js.map +1 -1
  54. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +155 -155
  55. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js.map +1 -1
  56. package/dist/cjs/wm-search.cjs.entry.js +191 -191
  57. package/dist/cjs/wm-search.cjs.entry.js.map +1 -1
  58. package/dist/cjs/wm-snackbar.cjs.entry.js +169 -169
  59. package/dist/cjs/wm-snackbar.cjs.entry.js.map +1 -1
  60. package/dist/cjs/wm-tab-item_3.cjs.entry.js +264 -264
  61. package/dist/cjs/wm-tab-item_3.cjs.entry.js.map +1 -1
  62. package/dist/cjs/wm-tag-input-row.cjs.entry.js +14 -14
  63. package/dist/cjs/wm-tag-input-row.cjs.entry.js.map +1 -1
  64. package/dist/cjs/wm-tag-input.cjs.entry.js +908 -908
  65. package/dist/cjs/wm-tag-input.cjs.entry.js.map +1 -1
  66. package/dist/cjs/wm-timepicker.cjs.entry.js +385 -385
  67. package/dist/cjs/wm-timepicker.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wm-toggletip.cjs.entry.js +130 -130
  69. package/dist/cjs/wm-toggletip.cjs.entry.js.map +1 -1
  70. package/dist/cjs/wm-uploader.cjs.entry.js +510 -510
  71. package/dist/cjs/wm-uploader.cjs.entry.js.map +1 -1
  72. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  73. package/dist/cjs/wm-wrapper.cjs.entry.js.map +1 -1
  74. package/dist/collection/components/charts/chartFunctions.js +557 -552
  75. package/dist/collection/components/charts/chartFunctions.js.map +1 -1
  76. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +268 -268
  77. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js.map +1 -1
  78. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +126 -126
  79. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js.map +1 -1
  80. package/dist/collection/components/charts/wm-chart/wm-chart.js +447 -447
  81. package/dist/collection/components/charts/wm-chart/wm-chart.js.map +1 -1
  82. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +208 -208
  83. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js.map +1 -1
  84. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +144 -144
  85. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js.map +1 -1
  86. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +122 -122
  87. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js.map +1 -1
  88. package/dist/collection/components/wm-action-menu/wm-action-menu.js +473 -473
  89. package/dist/collection/components/wm-action-menu/wm-action-menu.js.map +1 -1
  90. package/dist/collection/components/wm-button/wm-button.js +576 -576
  91. package/dist/collection/components/wm-button/wm-button.js.map +1 -1
  92. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +984 -984
  93. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js.map +1 -1
  94. package/dist/collection/components/wm-datepicker/wm-datepicker.js +492 -492
  95. package/dist/collection/components/wm-datepicker/wm-datepicker.js.map +1 -1
  96. package/dist/collection/components/wm-file/wm-file.js +334 -334
  97. package/dist/collection/components/wm-file/wm-file.js.map +1 -1
  98. package/dist/collection/components/wm-file-list/wm-file-list.js +153 -153
  99. package/dist/collection/components/wm-file-list/wm-file-list.js.map +1 -1
  100. package/dist/collection/components/wm-input/wm-input.js +444 -444
  101. package/dist/collection/components/wm-input/wm-input.js.map +1 -1
  102. package/dist/collection/components/wm-menuitem/wm-menuitem.js +455 -455
  103. package/dist/collection/components/wm-menuitem/wm-menuitem.js.map +1 -1
  104. package/dist/collection/components/wm-modal/wm-modal-footer.js +139 -139
  105. package/dist/collection/components/wm-modal/wm-modal-footer.js.map +1 -1
  106. package/dist/collection/components/wm-modal/wm-modal-header.js +88 -88
  107. package/dist/collection/components/wm-modal/wm-modal-header.js.map +1 -1
  108. package/dist/collection/components/wm-modal/wm-modal.js +463 -463
  109. package/dist/collection/components/wm-modal/wm-modal.js.map +1 -1
  110. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +177 -177
  111. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js.map +1 -1
  112. package/dist/collection/components/wm-navigation/wm-navigation-item.js +131 -131
  113. package/dist/collection/components/wm-navigation/wm-navigation-item.js.map +1 -1
  114. package/dist/collection/components/wm-navigation/wm-navigation.js +227 -227
  115. package/dist/collection/components/wm-navigation/wm-navigation.js.map +1 -1
  116. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +107 -107
  117. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js.map +1 -1
  118. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +124 -124
  119. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js.map +1 -1
  120. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  121. package/dist/collection/components/wm-navigator/wm-navigator.js.map +1 -1
  122. package/dist/collection/components/wm-option/wm-option.js +436 -436
  123. package/dist/collection/components/wm-option/wm-option.js.map +1 -1
  124. package/dist/collection/components/wm-pagination/wm-pagination.js +371 -371
  125. package/dist/collection/components/wm-pagination/wm-pagination.js.map +1 -1
  126. package/dist/collection/components/wm-search/wm-search.js +447 -447
  127. package/dist/collection/components/wm-search/wm-search.js.map +1 -1
  128. package/dist/collection/components/wm-select/wm-select.js +1058 -1058
  129. package/dist/collection/components/wm-select/wm-select.js.map +1 -1
  130. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.js.map +1 -1
  132. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +212 -212
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js.map +1 -1
  134. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +328 -328
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js.map +1 -1
  136. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +109 -109
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js.map +1 -1
  138. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +123 -123
  139. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js.map +1 -1
  140. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1209 -1209
  141. package/dist/collection/components/wm-tag-input/wm-tag-input.js.map +1 -1
  142. package/dist/collection/components/wm-timepicker/wm-timepicker.js +606 -606
  143. package/dist/collection/components/wm-timepicker/wm-timepicker.js.map +1 -1
  144. package/dist/collection/components/wm-toggletip/wm-toggletip.js +254 -254
  145. package/dist/collection/components/wm-toggletip/wm-toggletip.js.map +1 -1
  146. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +775 -775
  147. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js.map +1 -1
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +1034 -1034
  149. package/dist/collection/components/wm-uploader/wm-uploader.js.map +1 -1
  150. package/dist/collection/components/wm-wrapper/wm-wrapper.js +29 -29
  151. package/dist/collection/components/wm-wrapper/wm-wrapper.js.map +1 -1
  152. package/dist/collection/dev/scripts.js +20 -20
  153. package/dist/collection/global/__mocks__/functions.js +7 -7
  154. package/dist/collection/global/__mocks__/functions.js.map +1 -1
  155. package/dist/collection/global/functions.js +511 -511
  156. package/dist/collection/global/functions.js.map +1 -1
  157. package/dist/collection/global/global.js +70 -70
  158. package/dist/collection/global/global.js.map +1 -1
  159. package/dist/collection/global/interfaces.js +50 -50
  160. package/dist/collection/global/interfaces.js.map +1 -1
  161. package/dist/collection/global/services/__mocks__/http-service.js +131 -131
  162. package/dist/collection/global/services/__mocks__/http-service.js.map +1 -1
  163. package/dist/collection/global/services/http-service.js +51 -51
  164. package/dist/collection/global/services/http-service.js.map +1 -1
  165. package/dist/collection/lang/lang.js +6 -6
  166. package/dist/collection/lang/lang.js.map +1 -1
  167. package/dist/collection/lang/missing.js +43 -43
  168. package/dist/collection/lang/piglatin.js +93 -93
  169. package/dist/esm/{chartFunctions-e22110b8.js → chartFunctions-b0a9e440.js} +591 -586
  170. package/dist/esm/chartFunctions-b0a9e440.js.map +1 -0
  171. package/dist/esm/{functions-c58046f2.js → functions-1c41e984.js} +468 -468
  172. package/dist/esm/{functions-c58046f2.js.map → functions-1c41e984.js.map} +1 -1
  173. package/dist/esm/{global-fee3549b.js → global-65156bcf.js} +63 -63
  174. package/dist/esm/global-65156bcf.js.map +1 -0
  175. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +50 -50
  176. package/dist/esm/http-service-3dc3b3e7.js.map +1 -0
  177. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +30 -30
  178. package/dist/esm/interfaces-2b97fab2.js.map +1 -0
  179. package/dist/esm/loader.js +1 -1
  180. package/dist/esm/polyfills/core-js.js +0 -0
  181. package/dist/esm/polyfills/dom.js +0 -0
  182. package/dist/esm/polyfills/es5-html-element.js +0 -0
  183. package/dist/esm/polyfills/index.js +0 -0
  184. package/dist/esm/polyfills/system.js +0 -0
  185. package/dist/esm/priv-chart-popover.entry.js +91 -91
  186. package/dist/esm/priv-chart-popover.entry.js.map +1 -1
  187. package/dist/esm/priv-datepicker.entry.js +657 -657
  188. package/dist/esm/priv-datepicker.entry.js.map +1 -1
  189. package/dist/esm/priv-navigator-button.entry.js +19 -19
  190. package/dist/esm/priv-navigator-button.entry.js.map +1 -1
  191. package/dist/esm/priv-navigator-item.entry.js +23 -23
  192. package/dist/esm/priv-navigator-item.entry.js.map +1 -1
  193. package/dist/esm/ripple.js +1 -1
  194. package/dist/esm/wm-action-menu_2.entry.js +334 -334
  195. package/dist/esm/wm-action-menu_2.entry.js.map +1 -1
  196. package/dist/esm/wm-button.entry.js +260 -260
  197. package/dist/esm/wm-button.entry.js.map +1 -1
  198. package/dist/esm/wm-chart-slice.entry.js +18 -18
  199. package/dist/esm/wm-chart-slice.entry.js.map +1 -1
  200. package/dist/esm/wm-chart.entry.js +179 -179
  201. package/dist/esm/wm-chart.entry.js.map +1 -1
  202. package/dist/esm/wm-datepicker.entry.js +263 -263
  203. package/dist/esm/wm-datepicker.entry.js.map +1 -1
  204. package/dist/esm/wm-file-list.entry.js +35 -35
  205. package/dist/esm/wm-file-list.entry.js.map +1 -1
  206. package/dist/esm/wm-file.entry.js +201 -201
  207. package/dist/esm/wm-file.entry.js.map +1 -1
  208. package/dist/esm/wm-input.entry.js +139 -139
  209. package/dist/esm/wm-input.entry.js.map +1 -1
  210. package/dist/esm/wm-modal-footer.entry.js +33 -33
  211. package/dist/esm/wm-modal-footer.entry.js.map +1 -1
  212. package/dist/esm/wm-modal-header.entry.js +36 -36
  213. package/dist/esm/wm-modal-header.entry.js.map +1 -1
  214. package/dist/esm/wm-modal.entry.js +152 -152
  215. package/dist/esm/wm-modal.entry.js.map +1 -1
  216. package/dist/esm/wm-navigation_3.entry.js +234 -234
  217. package/dist/esm/wm-navigation_3.entry.js.map +1 -1
  218. package/dist/esm/wm-navigator.entry.js +264 -264
  219. package/dist/esm/wm-navigator.entry.js.map +1 -1
  220. package/dist/esm/wm-network-uploader.entry.js +467 -467
  221. package/dist/esm/wm-network-uploader.entry.js.map +1 -1
  222. package/dist/esm/wm-option_2.entry.js +771 -771
  223. package/dist/esm/wm-option_2.entry.js.map +1 -1
  224. package/dist/esm/wm-pagination.entry.js +179 -179
  225. package/dist/esm/wm-pagination.entry.js.map +1 -1
  226. package/dist/esm/wm-progress-indicator_3.entry.js +155 -155
  227. package/dist/esm/wm-progress-indicator_3.entry.js.map +1 -1
  228. package/dist/esm/wm-search.entry.js +191 -191
  229. package/dist/esm/wm-search.entry.js.map +1 -1
  230. package/dist/esm/wm-snackbar.entry.js +169 -169
  231. package/dist/esm/wm-snackbar.entry.js.map +1 -1
  232. package/dist/esm/wm-tab-item_3.entry.js +264 -264
  233. package/dist/esm/wm-tab-item_3.entry.js.map +1 -1
  234. package/dist/esm/wm-tag-input-row.entry.js +14 -14
  235. package/dist/esm/wm-tag-input-row.entry.js.map +1 -1
  236. package/dist/esm/wm-tag-input.entry.js +908 -908
  237. package/dist/esm/wm-tag-input.entry.js.map +1 -1
  238. package/dist/esm/wm-timepicker.entry.js +385 -385
  239. package/dist/esm/wm-timepicker.entry.js.map +1 -1
  240. package/dist/esm/wm-toggletip.entry.js +130 -130
  241. package/dist/esm/wm-toggletip.entry.js.map +1 -1
  242. package/dist/esm/wm-uploader.entry.js +510 -510
  243. package/dist/esm/wm-uploader.entry.js.map +1 -1
  244. package/dist/esm/wm-wrapper.entry.js +12 -12
  245. package/dist/esm/wm-wrapper.entry.js.map +1 -1
  246. package/dist/esm-es5/{chartFunctions-e22110b8.js → chartFunctions-b0a9e440.js} +2 -2
  247. package/dist/esm-es5/chartFunctions-b0a9e440.js.map +1 -0
  248. package/dist/esm-es5/{functions-c58046f2.js → functions-1c41e984.js} +1 -1
  249. package/dist/esm-es5/{functions-c58046f2.js.map → functions-1c41e984.js.map} +1 -1
  250. package/dist/esm-es5/{global-fee3549b.js → global-65156bcf.js} +2 -2
  251. package/dist/esm-es5/global-65156bcf.js.map +1 -0
  252. package/dist/esm-es5/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +1 -1
  253. package/dist/esm-es5/http-service-3dc3b3e7.js.map +1 -0
  254. package/dist/esm-es5/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +1 -1
  255. package/dist/esm-es5/interfaces-2b97fab2.js.map +1 -0
  256. package/dist/esm-es5/loader.js +1 -1
  257. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  258. package/dist/esm-es5/priv-chart-popover.entry.js.map +1 -1
  259. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  260. package/dist/esm-es5/priv-datepicker.entry.js.map +1 -1
  261. package/dist/esm-es5/priv-navigator-button.entry.js.map +1 -1
  262. package/dist/esm-es5/priv-navigator-item.entry.js.map +1 -1
  263. package/dist/esm-es5/ripple.js +1 -1
  264. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  265. package/dist/esm-es5/wm-action-menu_2.entry.js.map +1 -1
  266. package/dist/esm-es5/wm-button.entry.js +1 -1
  267. package/dist/esm-es5/wm-button.entry.js.map +1 -1
  268. package/dist/esm-es5/wm-chart-slice.entry.js.map +1 -1
  269. package/dist/esm-es5/wm-chart.entry.js +1 -1
  270. package/dist/esm-es5/wm-chart.entry.js.map +1 -1
  271. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  272. package/dist/esm-es5/wm-datepicker.entry.js.map +1 -1
  273. package/dist/esm-es5/wm-file-list.entry.js.map +1 -1
  274. package/dist/esm-es5/wm-file.entry.js +1 -1
  275. package/dist/esm-es5/wm-file.entry.js.map +1 -1
  276. package/dist/esm-es5/wm-input.entry.js +1 -1
  277. package/dist/esm-es5/wm-input.entry.js.map +1 -1
  278. package/dist/esm-es5/wm-modal-footer.entry.js.map +1 -1
  279. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  280. package/dist/esm-es5/wm-modal-header.entry.js.map +1 -1
  281. package/dist/esm-es5/wm-modal.entry.js +1 -1
  282. package/dist/esm-es5/wm-modal.entry.js.map +1 -1
  283. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  284. package/dist/esm-es5/wm-navigation_3.entry.js.map +1 -1
  285. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  286. package/dist/esm-es5/wm-navigator.entry.js.map +1 -1
  287. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  288. package/dist/esm-es5/wm-network-uploader.entry.js.map +1 -1
  289. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  290. package/dist/esm-es5/wm-option_2.entry.js.map +1 -1
  291. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  292. package/dist/esm-es5/wm-pagination.entry.js.map +1 -1
  293. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  294. package/dist/esm-es5/wm-progress-indicator_3.entry.js.map +1 -1
  295. package/dist/esm-es5/wm-search.entry.js +1 -1
  296. package/dist/esm-es5/wm-search.entry.js.map +1 -1
  297. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  298. package/dist/esm-es5/wm-snackbar.entry.js.map +1 -1
  299. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  300. package/dist/esm-es5/wm-tab-item_3.entry.js.map +1 -1
  301. package/dist/esm-es5/wm-tag-input-row.entry.js.map +1 -1
  302. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  303. package/dist/esm-es5/wm-tag-input.entry.js.map +1 -1
  304. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  305. package/dist/esm-es5/wm-timepicker.entry.js.map +1 -1
  306. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  307. package/dist/esm-es5/wm-toggletip.entry.js.map +1 -1
  308. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  309. package/dist/esm-es5/wm-uploader.entry.js.map +1 -1
  310. package/dist/esm-es5/wm-wrapper.entry.js.map +1 -1
  311. package/dist/ripple/{p-8e6bd600.system.entry.js → p-010b2cac.system.entry.js} +2 -2
  312. package/dist/ripple/p-010b2cac.system.entry.js.map +1 -0
  313. package/dist/ripple/{p-b22ba3a2.system.js → p-08950379.system.js} +2 -2
  314. package/dist/ripple/{p-c25abcc5.system.js → p-0b21e936.system.js} +2 -2
  315. package/dist/ripple/p-0b21e936.system.js.map +1 -0
  316. package/dist/ripple/p-0d7bccf7.entry.js.map +1 -1
  317. package/dist/ripple/{p-98a9eb8c.entry.js → p-136460c0.entry.js} +2 -2
  318. package/dist/ripple/p-136460c0.entry.js.map +1 -0
  319. package/dist/ripple/{p-695286e7.entry.js → p-1da75922.entry.js} +2 -2
  320. package/dist/ripple/p-1da75922.entry.js.map +1 -0
  321. package/dist/ripple/{p-0a23f0fa.entry.js → p-22d9c36e.entry.js} +2 -2
  322. package/dist/ripple/p-22d9c36e.entry.js.map +1 -0
  323. package/dist/ripple/p-24a4cb11.system.entry.js.map +1 -1
  324. package/dist/ripple/{p-c5a50724.entry.js → p-24f7d6eb.entry.js} +2 -2
  325. package/dist/ripple/p-24f7d6eb.entry.js.map +1 -0
  326. package/dist/ripple/{p-4c383e9e.system.entry.js → p-27d3e1ab.system.entry.js} +2 -2
  327. package/dist/ripple/p-27d3e1ab.system.entry.js.map +1 -0
  328. package/dist/ripple/p-2c2a7092.system.entry.js.map +1 -1
  329. package/dist/ripple/{p-fe63519a.system.entry.js → p-2f4b4e3a.system.entry.js} +2 -2
  330. package/dist/ripple/p-2f4b4e3a.system.entry.js.map +1 -0
  331. package/dist/ripple/{p-e8fd25c8.js → p-3303b568.js} +2 -2
  332. package/dist/ripple/p-3303b568.js.map +1 -0
  333. package/dist/ripple/p-33558ec4.system.entry.js.map +1 -1
  334. package/dist/ripple/{p-1a2d8112.system.entry.js → p-337f2c82.system.entry.js} +2 -2
  335. package/dist/ripple/p-337f2c82.system.entry.js.map +1 -0
  336. package/dist/ripple/{p-bfc8d2bb.entry.js → p-34567f7e.entry.js} +2 -2
  337. package/dist/ripple/p-34567f7e.entry.js.map +1 -0
  338. package/dist/ripple/{p-67373e6f.system.entry.js → p-3655a421.system.entry.js} +2 -2
  339. package/dist/ripple/p-3655a421.system.entry.js.map +1 -0
  340. package/dist/ripple/p-3759b7af.system.entry.js.map +1 -1
  341. package/dist/ripple/{p-0b31c210.entry.js → p-40cc5375.entry.js} +2 -2
  342. package/dist/ripple/p-40cc5375.entry.js.map +1 -0
  343. package/dist/ripple/{p-76830e28.entry.js → p-4370bb17.entry.js} +2 -2
  344. package/dist/ripple/p-4370bb17.entry.js.map +1 -0
  345. package/dist/ripple/p-4391166c.entry.js.map +1 -1
  346. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +1 -1
  347. package/dist/ripple/p-43f1298b.js.map +1 -0
  348. package/dist/ripple/{p-18e58141.system.entry.js → p-48c8619f.system.entry.js} +2 -2
  349. package/dist/ripple/p-48c8619f.system.entry.js.map +1 -0
  350. package/dist/ripple/p-4a014591.entry.js.map +1 -1
  351. package/dist/ripple/{p-ccd0d43b.system.entry.js → p-4acc9e8d.system.entry.js} +2 -2
  352. package/dist/ripple/p-4acc9e8d.system.entry.js.map +1 -0
  353. package/dist/ripple/{p-a3b9c87d.system.entry.js → p-52655351.system.entry.js} +2 -2
  354. package/dist/ripple/p-52655351.system.entry.js.map +1 -0
  355. package/dist/ripple/{p-2a9fa9b5.entry.js → p-54df11c8.entry.js} +2 -2
  356. package/dist/ripple/p-54df11c8.entry.js.map +1 -0
  357. package/dist/ripple/p-59654f8e.entry.js.map +1 -1
  358. package/dist/ripple/{p-535e33d7.entry.js → p-5bf24119.entry.js} +2 -2
  359. package/dist/ripple/p-5bf24119.entry.js.map +1 -0
  360. package/dist/ripple/{p-e746fe88.system.entry.js → p-60e941cc.system.entry.js} +2 -2
  361. package/dist/ripple/p-60e941cc.system.entry.js.map +1 -0
  362. package/dist/ripple/{p-f38332ed.system.entry.js → p-684f2c1e.system.entry.js} +2 -2
  363. package/dist/ripple/p-684f2c1e.system.entry.js.map +1 -0
  364. package/dist/ripple/{p-e61d2c52.entry.js → p-75c9cad6.entry.js} +2 -2
  365. package/dist/ripple/p-75c9cad6.entry.js.map +1 -0
  366. package/dist/ripple/{p-e252738e.entry.js → p-78a7278d.entry.js} +2 -2
  367. package/dist/ripple/p-78a7278d.entry.js.map +1 -0
  368. package/dist/ripple/{p-45e7b944.entry.js → p-81c698e2.entry.js} +2 -2
  369. package/dist/ripple/p-81c698e2.entry.js.map +1 -0
  370. package/dist/ripple/{p-87da5d8e.entry.js → p-82323561.entry.js} +2 -2
  371. package/dist/ripple/p-82323561.entry.js.map +1 -0
  372. package/dist/ripple/{p-2b577e99.entry.js → p-873a5f0f.entry.js} +2 -2
  373. package/dist/ripple/p-873a5f0f.entry.js.map +1 -0
  374. package/dist/ripple/p-8c51e9f8.system.entry.js.map +1 -1
  375. package/dist/ripple/{p-be954fba.system.entry.js → p-8e11777d.system.entry.js} +2 -2
  376. package/dist/ripple/p-8e11777d.system.entry.js.map +1 -0
  377. package/dist/ripple/{p-63166c83.system.entry.js → p-90d67afa.system.entry.js} +2 -2
  378. package/dist/ripple/p-90d67afa.system.entry.js.map +1 -0
  379. package/dist/ripple/p-976b2789.system.entry.js.map +1 -1
  380. package/dist/ripple/{p-3e9da0fb.system.entry.js → p-97f0722e.system.entry.js} +2 -2
  381. package/dist/ripple/p-97f0722e.system.entry.js.map +1 -0
  382. package/dist/ripple/p-9b9eb944.entry.js.map +1 -1
  383. package/dist/ripple/{p-4a45a473.entry.js → p-9c9cf5e7.entry.js} +2 -2
  384. package/dist/ripple/p-9c9cf5e7.entry.js.map +1 -0
  385. package/dist/ripple/{p-313b6073.system.js → p-9d02957d.system.js} +1 -1
  386. package/dist/ripple/p-9d02957d.system.js.map +1 -0
  387. package/dist/ripple/{p-7b85f5a8.entry.js → p-a1c4d1d2.entry.js} +2 -2
  388. package/dist/ripple/p-a1c4d1d2.entry.js.map +1 -0
  389. package/dist/ripple/{p-9727c8f5.entry.js → p-a6cd8eb1.entry.js} +2 -2
  390. package/dist/ripple/p-a6cd8eb1.entry.js.map +1 -0
  391. package/dist/ripple/{p-dfeb2a0f.system.entry.js → p-ab792e0d.system.entry.js} +2 -2
  392. package/dist/ripple/p-ab792e0d.system.entry.js.map +1 -0
  393. package/dist/ripple/{p-5e2be836.entry.js → p-ab996399.entry.js} +2 -2
  394. package/dist/ripple/p-ab996399.entry.js.map +1 -0
  395. package/dist/ripple/{p-85b47217.system.entry.js → p-ac27d425.system.entry.js} +2 -2
  396. package/dist/ripple/p-ac27d425.system.entry.js.map +1 -0
  397. package/dist/ripple/{p-4091aa36.system.js → p-b8783b39.system.js} +2 -2
  398. package/dist/ripple/p-b8783b39.system.js.map +1 -0
  399. package/dist/ripple/{p-525fbd6b.system.entry.js → p-be2aab24.system.entry.js} +2 -2
  400. package/dist/ripple/p-be2aab24.system.entry.js.map +1 -0
  401. package/dist/ripple/p-bf569af0.entry.js.map +1 -1
  402. package/dist/ripple/{p-d6478e67.system.entry.js → p-c63b63ee.system.entry.js} +2 -2
  403. package/dist/ripple/p-c63b63ee.system.entry.js.map +1 -0
  404. package/dist/ripple/{p-90f42d65.system.entry.js → p-ce0002d4.system.entry.js} +2 -2
  405. package/dist/ripple/p-ce0002d4.system.entry.js.map +1 -0
  406. package/dist/ripple/{p-54f29e18.entry.js → p-d23db6e2.entry.js} +2 -2
  407. package/dist/ripple/p-d23db6e2.entry.js.map +1 -0
  408. package/dist/ripple/p-d939cb54.entry.js.map +1 -1
  409. package/dist/ripple/p-dbfd1640.system.entry.js.map +1 -1
  410. package/dist/ripple/{p-bc883afc.entry.js → p-e29c4789.entry.js} +2 -2
  411. package/dist/ripple/p-e29c4789.entry.js.map +1 -0
  412. package/dist/ripple/{p-0cd88c74.entry.js → p-e6b9766e.entry.js} +2 -2
  413. package/dist/ripple/p-e6b9766e.entry.js.map +1 -0
  414. package/dist/ripple/{p-2abe8404.system.entry.js → p-e8dab7c0.system.entry.js} +2 -2
  415. package/dist/ripple/p-e8dab7c0.system.entry.js.map +1 -0
  416. package/dist/ripple/{p-dcd38073.system.entry.js → p-eb64d16a.system.entry.js} +2 -2
  417. package/dist/ripple/p-eb64d16a.system.entry.js.map +1 -0
  418. package/dist/ripple/{p-a31a30ac.system.entry.js → p-eccbad16.system.entry.js} +2 -2
  419. package/dist/ripple/p-eccbad16.system.entry.js.map +1 -0
  420. package/dist/ripple/{p-054e206a.entry.js → p-edae6ef2.entry.js} +2 -2
  421. package/dist/ripple/p-edae6ef2.entry.js.map +1 -0
  422. package/dist/ripple/{p-9fd3badc.js → p-edfba0e1.js} +1 -1
  423. package/dist/ripple/{p-9fd3badc.js.map → p-edfba0e1.js.map} +1 -1
  424. package/dist/ripple/{p-d0c3d25a.entry.js → p-efc36352.entry.js} +2 -2
  425. package/dist/ripple/p-efc36352.entry.js.map +1 -0
  426. package/dist/ripple/{p-e782194d.system.js → p-f08e6a5a.system.js} +1 -1
  427. package/dist/ripple/{p-e782194d.system.js.map → p-f08e6a5a.system.js.map} +1 -1
  428. package/dist/ripple/{p-29cd07d5.system.entry.js → p-f09541fc.system.entry.js} +2 -2
  429. package/dist/ripple/p-f09541fc.system.entry.js.map +1 -0
  430. package/dist/ripple/{p-4aa0ee75.system.entry.js → p-f4487f66.system.entry.js} +2 -2
  431. package/dist/ripple/p-f4487f66.system.entry.js.map +1 -0
  432. package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +1 -1
  433. package/dist/ripple/p-f5df5903.system.js.map +1 -0
  434. package/dist/ripple/{p-23e54ad4.js → p-f8d1e5a0.js} +2 -2
  435. package/dist/ripple/p-f8d1e5a0.js.map +1 -0
  436. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +1 -1
  437. package/dist/ripple/p-fd8070fb.js.map +1 -0
  438. package/dist/ripple/ripple.esm.js +1 -1
  439. package/dist/ripple/ripple.js +1 -1
  440. package/dist/types/components/charts/chartFunctions.d.ts +37 -37
  441. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
  442. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  443. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +47 -47
  444. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +29 -29
  445. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +20 -20
  446. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  447. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +49 -49
  448. package/dist/types/components/wm-button/wm-button.d.ts +49 -49
  449. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  450. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -42
  451. package/dist/types/components/wm-file/wm-file.d.ts +42 -42
  452. package/dist/types/components/wm-file-list/wm-file-list.d.ts +16 -16
  453. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  454. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  455. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
  456. package/dist/types/components/wm-modal/wm-modal-header.d.ts +11 -11
  457. package/dist/types/components/wm-modal/wm-modal.d.ts +40 -40
  458. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
  459. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  460. package/dist/types/components/wm-navigation/wm-navigation.d.ts +28 -28
  461. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  462. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  463. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  464. package/dist/types/components/wm-option/wm-option.d.ts +34 -34
  465. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  466. package/dist/types/components/wm-search/wm-search.d.ts +77 -77
  467. package/dist/types/components/wm-select/wm-select.d.ts +102 -102
  468. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  469. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +37 -37
  470. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +52 -52
  471. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  472. package/dist/types/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.d.ts +11 -11
  473. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +127 -127
  474. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
  475. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +28 -28
  476. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  477. package/dist/types/components/wm-uploader/wm-uploader.d.ts +104 -104
  478. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  479. package/dist/types/components.d.ts +27 -27
  480. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  481. package/dist/types/global/functions.d.ts +47 -47
  482. package/dist/types/global/global.d.ts +1 -1
  483. package/dist/types/global/interfaces.d.ts +74 -74
  484. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  485. package/dist/types/global/services/http-service.d.ts +4 -4
  486. package/dist/types/lang/lang.d.ts +5 -5
  487. package/package.json +46 -46
  488. package/dist/cjs/chartFunctions-5309f8ed.js.map +0 -1
  489. package/dist/cjs/global-d20d5267.js.map +0 -1
  490. package/dist/cjs/http-service-9e8c4dd5.js.map +0 -1
  491. package/dist/cjs/interfaces-30a74c1f.js.map +0 -1
  492. package/dist/esm/chartFunctions-e22110b8.js.map +0 -1
  493. package/dist/esm/global-fee3549b.js.map +0 -1
  494. package/dist/esm/http-service-5d037e16.js.map +0 -1
  495. package/dist/esm/interfaces-61c6305b.js.map +0 -1
  496. package/dist/esm-es5/chartFunctions-e22110b8.js.map +0 -1
  497. package/dist/esm-es5/global-fee3549b.js.map +0 -1
  498. package/dist/esm-es5/http-service-5d037e16.js.map +0 -1
  499. package/dist/esm-es5/interfaces-61c6305b.js.map +0 -1
  500. package/dist/ripple/p-054e206a.entry.js.map +0 -1
  501. package/dist/ripple/p-08b7ec08.system.js.map +0 -1
  502. package/dist/ripple/p-0a23f0fa.entry.js.map +0 -1
  503. package/dist/ripple/p-0b31c210.entry.js.map +0 -1
  504. package/dist/ripple/p-0cd88c74.entry.js.map +0 -1
  505. package/dist/ripple/p-18e58141.system.entry.js.map +0 -1
  506. package/dist/ripple/p-1a2d8112.system.entry.js.map +0 -1
  507. package/dist/ripple/p-23e54ad4.js.map +0 -1
  508. package/dist/ripple/p-29cd07d5.system.entry.js.map +0 -1
  509. package/dist/ripple/p-2a9fa9b5.entry.js.map +0 -1
  510. package/dist/ripple/p-2abe8404.system.entry.js.map +0 -1
  511. package/dist/ripple/p-2b577e99.entry.js.map +0 -1
  512. package/dist/ripple/p-313b6073.system.js.map +0 -1
  513. package/dist/ripple/p-3e9da0fb.system.entry.js.map +0 -1
  514. package/dist/ripple/p-4091aa36.system.js.map +0 -1
  515. package/dist/ripple/p-45e7b944.entry.js.map +0 -1
  516. package/dist/ripple/p-4a45a473.entry.js.map +0 -1
  517. package/dist/ripple/p-4aa0ee75.system.entry.js.map +0 -1
  518. package/dist/ripple/p-4c383e9e.system.entry.js.map +0 -1
  519. package/dist/ripple/p-525fbd6b.system.entry.js.map +0 -1
  520. package/dist/ripple/p-535e33d7.entry.js.map +0 -1
  521. package/dist/ripple/p-54f29e18.entry.js.map +0 -1
  522. package/dist/ripple/p-5e2be836.entry.js.map +0 -1
  523. package/dist/ripple/p-63166c83.system.entry.js.map +0 -1
  524. package/dist/ripple/p-67373e6f.system.entry.js.map +0 -1
  525. package/dist/ripple/p-695286e7.entry.js.map +0 -1
  526. package/dist/ripple/p-76830e28.entry.js.map +0 -1
  527. package/dist/ripple/p-7b85f5a8.entry.js.map +0 -1
  528. package/dist/ripple/p-85b47217.system.entry.js.map +0 -1
  529. package/dist/ripple/p-87da5d8e.entry.js.map +0 -1
  530. package/dist/ripple/p-888bec42.js.map +0 -1
  531. package/dist/ripple/p-8e6bd600.system.entry.js.map +0 -1
  532. package/dist/ripple/p-90f42d65.system.entry.js.map +0 -1
  533. package/dist/ripple/p-9727c8f5.entry.js.map +0 -1
  534. package/dist/ripple/p-98a9eb8c.entry.js.map +0 -1
  535. package/dist/ripple/p-a31a30ac.system.entry.js.map +0 -1
  536. package/dist/ripple/p-a3b9c87d.system.entry.js.map +0 -1
  537. package/dist/ripple/p-a6d6eae7.js.map +0 -1
  538. package/dist/ripple/p-bc883afc.entry.js.map +0 -1
  539. package/dist/ripple/p-be954fba.system.entry.js.map +0 -1
  540. package/dist/ripple/p-bfc8d2bb.entry.js.map +0 -1
  541. package/dist/ripple/p-c25abcc5.system.js.map +0 -1
  542. package/dist/ripple/p-c5a50724.entry.js.map +0 -1
  543. package/dist/ripple/p-ccd0d43b.system.entry.js.map +0 -1
  544. package/dist/ripple/p-d0c3d25a.entry.js.map +0 -1
  545. package/dist/ripple/p-d6478e67.system.entry.js.map +0 -1
  546. package/dist/ripple/p-dcd38073.system.entry.js.map +0 -1
  547. package/dist/ripple/p-dfeb2a0f.system.entry.js.map +0 -1
  548. package/dist/ripple/p-e252738e.entry.js.map +0 -1
  549. package/dist/ripple/p-e61d2c52.entry.js.map +0 -1
  550. package/dist/ripple/p-e746fe88.system.entry.js.map +0 -1
  551. package/dist/ripple/p-e8fd25c8.js.map +0 -1
  552. package/dist/ripple/p-f38332ed.system.entry.js.map +0 -1
  553. package/dist/ripple/p-fe63519a.system.entry.js.map +0 -1
  554. /package/dist/ripple/{p-b22ba3a2.system.js.map → p-08950379.system.js.map} +0 -0
@@ -1,249 +1,249 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, f as forceUpdate } from './index-84a6ae22.js';
2
- import { i as intl, w as throttle } from './functions-c58046f2.js';
2
+ import { i as intl, w as throttle } from './functions-1c41e984.js';
3
3
 
4
4
  const wmNavigationCss = ":host{z-index:10}:host([aria-expanded=true]){z-index:5000}.tray{-webkit-box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);-moz-box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:7.5625rem;background-color:#fff;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;font-size:0.875rem;height:100%}.navlist{margin:0;padding:0}.toggle-wrapper{display:none}@media screen and (max-width: 1023px){.tray{-ms-transition:transform 0.33s ease;-webkit-transition:transform 0.33s ease;-moz-transition:transform 0.33s ease;-webkit-transition:-webkit-transform 0.33s ease;transition:-webkit-transform 0.33s ease;transition:transform 0.33s ease;transition:transform 0.33s ease, -webkit-transform 0.33s ease;position:fixed;top:0;bottom:0;left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.tray ul{visibility:hidden}.tray .toggle-wrapper{display:inline-block;min-height:5rem;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}:host([aria-expanded=true]) .tray{-webkit-transform:translateX(0);transform:translateX(0)}:host([aria-expanded=true]) .tray ul{visibility:visible}.overlay{width:100vw;height:100vh;max-width:none;max-height:none;position:fixed !important;top:0;bottom:0;left:0;right:0;-webkit-transform:translate(0%, 0%);transform:translate(0%, 0%);background-color:rgba(25, 25, 25, 0.4);-ms-transition:opacity 0.5s ease-out;-webkit-transition:opacity 0.5s ease-out;-moz-transition:opacity 0.5s ease-out;transition:opacity 0.5s ease-out}}";
5
5
 
6
- const Navigation = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.wmNavigationStateChanged = createEvent(this, "wmNavigationStateChanged", 7);
10
- this.mainNavigationMessage = intl.formatMessage({
11
- id: "navigation.mainNavigation",
12
- defaultMessage: "Main",
13
- description: "Label describing the site navigation, for screen reader users",
14
- });
15
- this.openTooltipMessage = intl.formatMessage({
16
- id: "global.openVerb",
17
- defaultMessage: "Open",
18
- description: "For a button, to open a user interface element",
19
- });
20
- this.closeTooltipMessage = intl.formatMessage({
21
- id: "global.closeVerb",
22
- defaultMessage: "Close",
23
- description: "For a button, to close a user interface element",
24
- });
25
- this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
26
- this.open = false;
27
- this.isTabbing = false;
28
- }
29
- get isCollapsible() {
30
- return window.innerWidth < 1024;
31
- }
32
- get ariaExpanded() {
33
- return this.isCollapsible
34
- ? // if component is in collapsible mode, set aria-expanded according to expanded state
35
- this.open.toString()
36
- : // otherwise, do not render attr at all
37
- undefined;
38
- }
39
- toggleTabbingOn() {
40
- this.isTabbing = true;
41
- }
42
- toggleTabbingOff() {
43
- this.isTabbing = false;
44
- }
45
- closeOnEscape(ev) {
46
- if (ev.key === "Escape") {
47
- this.open = false;
48
- }
49
- }
50
- handleWindowResize() {
51
- // for component to react when breakpoint is crossed
52
- // (doesn't rerender on window resize)
53
- this.throttledRerender();
54
- }
55
- handleHamburgerClicked() {
56
- this.open = !this.open;
57
- }
58
- handleClickOnItem() {
59
- this.open = false;
60
- }
61
- handleStateChange() {
62
- if (this.isCollapsible) {
63
- this.wmNavigationStateChanged.emit();
64
- this.open ? this.expand() : this.collapse();
65
- }
66
- }
67
- componentWillLoad() {
68
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
69
- this.toggleTabbingOn();
70
- }
71
- this.el.focus = () => {
72
- // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
73
- const btn = this.open
74
- ? this.el.shadowRoot.querySelector(".toggle")
75
- : document.querySelector("wm-navigation-hamburger");
76
- const firstItem = this.el.querySelector("wm-navigation-item");
77
- this.isCollapsible ? btn.focus() : firstItem.focus();
78
- };
79
- if (this.isCollapsible && this.open) {
80
- // hamburger needs to know if open was initially set to true
81
- this.wmNavigationStateChanged.emit();
82
- this.expand();
83
- }
84
- }
85
- redirectFocusFromBody(ev) {
86
- // the 2nd check excludes the case when user clicks on the page when the nav is open,
87
- // which should not redirect focus
88
- if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
89
- this.el.focus();
90
- }
91
- }
92
- expand() {
93
- // listen to focus on body and redirect to the component
94
- // this is to handle trap focus when user has left the page (e.g. went to the address bar)
95
- // and is tabbing back in
96
- document.body.tabIndex = 0;
97
- document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
98
- // wait for nav to be expanded otherwise tooltip will be misplaced.
99
- setTimeout(() => this.toggleEl.focus(), 250);
100
- //document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
101
- }
102
- collapse() {
103
- // rm event listener on body
104
- document.body.tabIndex = -1;
105
- document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
106
- const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
107
- // should fail silently if el doesn't exist
108
- // (dev may have chosen not to use the hamburger component)
109
- if (hamburgerBtn)
110
- hamburgerBtn.focus();
111
- }
112
- focusLastItem() {
113
- const items = this.el.querySelectorAll("wm-navigation-item");
114
- const lastItem = Array.from(items).pop();
115
- lastItem.focus();
116
- }
117
- renderOverlay() {
118
- return (h("div", { class: "overlay", onClick: () => {
119
- this.open = false;
120
- } }));
121
- }
122
- render() {
123
- 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 ? this.closeTooltipMessage : this.openTooltipMessage, "tooltip-position": "left", tabIndex: this.open ? undefined : -1, onClick: () => {
124
- this.open = !this.open;
125
- } })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
126
- }
127
- static get delegatesFocus() { return true; }
128
- get el() { return getElement(this); }
129
- static get watchers() { return {
130
- "open": ["handleStateChange"]
131
- }; }
132
- };
6
+ const Navigation = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.wmNavigationStateChanged = createEvent(this, "wmNavigationStateChanged", 7);
10
+ this.mainNavigationMessage = intl.formatMessage({
11
+ id: "navigation.mainNavigation",
12
+ defaultMessage: "Main",
13
+ description: "Label describing the site navigation, for screen reader users",
14
+ });
15
+ this.openTooltipMessage = intl.formatMessage({
16
+ id: "global.openVerb",
17
+ defaultMessage: "Open",
18
+ description: "For a button, to open a user interface element",
19
+ });
20
+ this.closeTooltipMessage = intl.formatMessage({
21
+ id: "global.closeVerb",
22
+ defaultMessage: "Close",
23
+ description: "For a button, to close a user interface element",
24
+ });
25
+ this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
26
+ this.open = false;
27
+ this.isTabbing = false;
28
+ }
29
+ get isCollapsible() {
30
+ return window.innerWidth < 1024;
31
+ }
32
+ get ariaExpanded() {
33
+ return this.isCollapsible
34
+ ? // if component is in collapsible mode, set aria-expanded according to expanded state
35
+ this.open.toString()
36
+ : // otherwise, do not render attr at all
37
+ undefined;
38
+ }
39
+ toggleTabbingOn() {
40
+ this.isTabbing = true;
41
+ }
42
+ toggleTabbingOff() {
43
+ this.isTabbing = false;
44
+ }
45
+ closeOnEscape(ev) {
46
+ if (ev.key === "Escape") {
47
+ this.open = false;
48
+ }
49
+ }
50
+ handleWindowResize() {
51
+ // for component to react when breakpoint is crossed
52
+ // (doesn't rerender on window resize)
53
+ this.throttledRerender();
54
+ }
55
+ handleHamburgerClicked() {
56
+ this.open = !this.open;
57
+ }
58
+ handleClickOnItem() {
59
+ this.open = false;
60
+ }
61
+ handleStateChange() {
62
+ if (this.isCollapsible) {
63
+ this.wmNavigationStateChanged.emit();
64
+ this.open ? this.expand() : this.collapse();
65
+ }
66
+ }
67
+ componentWillLoad() {
68
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
69
+ this.toggleTabbingOn();
70
+ }
71
+ this.el.focus = () => {
72
+ // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
73
+ const btn = this.open
74
+ ? this.el.shadowRoot.querySelector(".toggle")
75
+ : document.querySelector("wm-navigation-hamburger");
76
+ const firstItem = this.el.querySelector("wm-navigation-item");
77
+ this.isCollapsible ? btn.focus() : firstItem.focus();
78
+ };
79
+ if (this.isCollapsible && this.open) {
80
+ // hamburger needs to know if open was initially set to true
81
+ this.wmNavigationStateChanged.emit();
82
+ this.expand();
83
+ }
84
+ }
85
+ redirectFocusFromBody(ev) {
86
+ // the 2nd check excludes the case when user clicks on the page when the nav is open,
87
+ // which should not redirect focus
88
+ if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
89
+ this.el.focus();
90
+ }
91
+ }
92
+ expand() {
93
+ // listen to focus on body and redirect to the component
94
+ // this is to handle trap focus when user has left the page (e.g. went to the address bar)
95
+ // and is tabbing back in
96
+ document.body.tabIndex = 0;
97
+ document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
98
+ // wait for nav to be expanded otherwise tooltip will be misplaced.
99
+ setTimeout(() => this.toggleEl.focus(), 250);
100
+ //document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
101
+ }
102
+ collapse() {
103
+ // rm event listener on body
104
+ document.body.tabIndex = -1;
105
+ document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
106
+ const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
107
+ // should fail silently if el doesn't exist
108
+ // (dev may have chosen not to use the hamburger component)
109
+ if (hamburgerBtn)
110
+ hamburgerBtn.focus();
111
+ }
112
+ focusLastItem() {
113
+ const items = this.el.querySelectorAll("wm-navigation-item");
114
+ const lastItem = Array.from(items).pop();
115
+ lastItem.focus();
116
+ }
117
+ renderOverlay() {
118
+ return (h("div", { class: "overlay", onClick: () => {
119
+ this.open = false;
120
+ } }));
121
+ }
122
+ render() {
123
+ 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 ? this.closeTooltipMessage : this.openTooltipMessage, "tooltip-position": "left", tabIndex: this.open ? undefined : -1, onClick: () => {
124
+ this.open = !this.open;
125
+ } })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
126
+ }
127
+ static get delegatesFocus() { return true; }
128
+ get el() { return getElement(this); }
129
+ static get watchers() { return {
130
+ "open": ["handleStateChange"]
131
+ }; }
132
+ };
133
133
  Navigation.style = wmNavigationCss;
134
134
 
135
135
  const wmNavigationHamburgerCss = "button{display:none;width:100%;height:100%;border:none;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);background-color:transparent;outline:none;padding:0}button.user-is-tabbing:focus{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e}button.user-is-tabbing:focus::-moz-focus-inner{border:0}button:hover{background-color:#d7d6d9}.icon:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f35c\";font-size:1.5rem;color:#575195}@media screen and (max-width: 1023px){:host{width:3.75rem;height:3.75rem}button{display:initial}}";
136
136
 
137
- const NavigationHamburger = class {
138
- constructor(hostRef) {
139
- registerInstance(this, hostRef);
140
- this.wmNavigationHamburgerClicked = createEvent(this, "wmNavigationHamburgerClicked", 7);
141
- this.showNavMessage = intl.formatMessage({
142
- id: "navigation.showNavigation",
143
- defaultMessage: "Show navigation",
144
- description: "For user interface element opening a navigation menu",
145
- });
146
- this.navId = undefined;
147
- this.tooltipVisible = false;
148
- this.isTabbing = false;
149
- this.open = false;
150
- }
151
- get tooltipEl() {
152
- return document.getElementById("wm-tooltip");
153
- }
154
- toggleTabbingOn() {
155
- this.isTabbing = true;
156
- }
157
- toggleTabbingOff() {
158
- this.isTabbing = false;
159
- }
160
- // this also works on initial load because event is fired then
161
- handleNavigationStateChanged(ev) {
162
- this.open = ev.target.open;
163
- }
164
- componentWillLoad() {
165
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
166
- this.toggleTabbingOn();
167
- }
168
- if (!this.navId) {
169
- console.error("wm-navigation-hamburger: nav-id is a required prop");
170
- }
171
- }
172
- showTooltip() {
173
- const tooltipText = this.showNavMessage;
174
- this.tooltipEl.textContent = tooltipText;
175
- this.tooltipEl.style.setProperty("--wmTooltipTop", "1.125rem");
176
- this.tooltipEl.style.setProperty("--wmTooltipLeft", "2.75rem");
177
- this.tooltipEl.style.transitionDelay = "500ms";
178
- this.tooltipEl.style.opacity = "1";
179
- // tooltip only has a maxWidth if it contains whitespace and can break
180
- const hasNoWhitespace = tooltipText.match(/^[^\s]+$/);
181
- if (hasNoWhitespace) {
182
- this.tooltipEl.classList.add("single-word");
183
- this.tooltipEl.style.setProperty("--wmTooltipMaxWidth", "none");
184
- }
185
- else {
186
- this.tooltipEl.classList.remove("single-word");
187
- this.tooltipEl.style.removeProperty("--wmTooltipMaxWidth");
188
- }
189
- // tooltip is only visible after the transition delay.
190
- // This also fixes an issue for keyboard users:
191
- // if they tab to a button out of screen bounds, the page scrolls
192
- // and hideTooltip() would be triggered before the tooltip would show
193
- setTimeout(() => {
194
- this.tooltipVisible = true;
195
- }, 500);
196
- }
197
- hideTooltip() {
198
- this.tooltipEl.style.transitionDelay = "0s";
199
- this.tooltipEl.style.opacity = "0";
200
- this.tooltipVisible = false;
201
- }
202
- showTooltipForKeyboardUsers() {
203
- if (this.isTabbing) {
204
- this.showTooltip();
205
- }
206
- }
207
- handleClick() {
208
- this.hideTooltip();
209
- this.wmNavigationHamburgerClicked.emit();
210
- }
211
- render() {
212
- return (h(Host, { class: `hamburger ${this.open ? "nav-open" : "nav-closed"}` }, h("button", { class: this.isTabbing ? "user-is-tabbing" : undefined, "aria-expanded": this.open, "aria-controls": this.navId, "aria-label": this.showNavMessage, onMouseEnter: () => this.showTooltip(), onMouseLeave: () => this.hideTooltip(), onFocus: () => this.showTooltipForKeyboardUsers(), onBlur: () => this.hideTooltip(), onClick: () => this.handleClick() }, h("span", { class: "icon" }))));
213
- }
214
- static get delegatesFocus() { return true; }
215
- get el() { return getElement(this); }
216
- };
137
+ const NavigationHamburger = class {
138
+ constructor(hostRef) {
139
+ registerInstance(this, hostRef);
140
+ this.wmNavigationHamburgerClicked = createEvent(this, "wmNavigationHamburgerClicked", 7);
141
+ this.showNavMessage = intl.formatMessage({
142
+ id: "navigation.showNavigation",
143
+ defaultMessage: "Show navigation",
144
+ description: "For user interface element opening a navigation menu",
145
+ });
146
+ this.navId = undefined;
147
+ this.tooltipVisible = false;
148
+ this.isTabbing = false;
149
+ this.open = false;
150
+ }
151
+ get tooltipEl() {
152
+ return document.getElementById("wm-tooltip");
153
+ }
154
+ toggleTabbingOn() {
155
+ this.isTabbing = true;
156
+ }
157
+ toggleTabbingOff() {
158
+ this.isTabbing = false;
159
+ }
160
+ // this also works on initial load because event is fired then
161
+ handleNavigationStateChanged(ev) {
162
+ this.open = ev.target.open;
163
+ }
164
+ componentWillLoad() {
165
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
166
+ this.toggleTabbingOn();
167
+ }
168
+ if (!this.navId) {
169
+ console.error("wm-navigation-hamburger: nav-id is a required prop");
170
+ }
171
+ }
172
+ showTooltip() {
173
+ const tooltipText = this.showNavMessage;
174
+ this.tooltipEl.textContent = tooltipText;
175
+ this.tooltipEl.style.setProperty("--wmTooltipTop", "1.125rem");
176
+ this.tooltipEl.style.setProperty("--wmTooltipLeft", "2.75rem");
177
+ this.tooltipEl.style.transitionDelay = "500ms";
178
+ this.tooltipEl.style.opacity = "1";
179
+ // tooltip only has a maxWidth if it contains whitespace and can break
180
+ const hasNoWhitespace = tooltipText.match(/^[^\s]+$/);
181
+ if (hasNoWhitespace) {
182
+ this.tooltipEl.classList.add("single-word");
183
+ this.tooltipEl.style.setProperty("--wmTooltipMaxWidth", "none");
184
+ }
185
+ else {
186
+ this.tooltipEl.classList.remove("single-word");
187
+ this.tooltipEl.style.removeProperty("--wmTooltipMaxWidth");
188
+ }
189
+ // tooltip is only visible after the transition delay.
190
+ // This also fixes an issue for keyboard users:
191
+ // if they tab to a button out of screen bounds, the page scrolls
192
+ // and hideTooltip() would be triggered before the tooltip would show
193
+ setTimeout(() => {
194
+ this.tooltipVisible = true;
195
+ }, 500);
196
+ }
197
+ hideTooltip() {
198
+ this.tooltipEl.style.transitionDelay = "0s";
199
+ this.tooltipEl.style.opacity = "0";
200
+ this.tooltipVisible = false;
201
+ }
202
+ showTooltipForKeyboardUsers() {
203
+ if (this.isTabbing) {
204
+ this.showTooltip();
205
+ }
206
+ }
207
+ handleClick() {
208
+ this.hideTooltip();
209
+ this.wmNavigationHamburgerClicked.emit();
210
+ }
211
+ render() {
212
+ return (h(Host, { class: `hamburger ${this.open ? "nav-open" : "nav-closed"}` }, h("button", { class: this.isTabbing ? "user-is-tabbing" : undefined, "aria-expanded": this.open, "aria-controls": this.navId, "aria-label": this.showNavMessage, onMouseEnter: () => this.showTooltip(), onMouseLeave: () => this.hideTooltip(), onFocus: () => this.showTooltipForKeyboardUsers(), onBlur: () => this.hideTooltip(), onClick: () => this.handleClick() }, h("span", { class: "icon" }))));
213
+ }
214
+ static get delegatesFocus() { return true; }
215
+ get el() { return getElement(this); }
216
+ };
217
217
  NavigationHamburger.style = wmNavigationHamburgerCss;
218
218
 
219
219
  const wmNavigationItemCss = ".link{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:inherit;text-decoration:none;min-height:4.5rem;text-align:center;padding:1.25rem 0.5rem;font-weight:500;outline:none;position:relative}.link:hover{background-color:#f2f2f2}.link .icon{font-size:1.375rem;color:#6b6b6b}.link .text{font-size:0.875rem}.link.user-is-tabbing:focus{-webkit-box-shadow:inset 0 2px 2px 0 rgba(244, 243, 246, 0.2), inset 0 2px 2px 0 rgba(0, 0, 0, 0.1), inset 0 0 4px 3px #61279e;box-shadow:inset 0 2px 2px 0 rgba(244, 243, 246, 0.2), inset 0 2px 2px 0 rgba(0, 0, 0, 0.1), inset 0 0 4px 3px #61279e}.link.active{background-color:#e9e7ec}.link.active:before{content:\"\";background-color:#575195;position:absolute;height:100%;width:5px;left:0}.link.active .text{color:#575195}.link.active .icon{color:#575195}";
220
220
 
221
- const NavigationItem = class {
222
- constructor(hostRef) {
223
- registerInstance(this, hostRef);
224
- this.wmNavigationItemClicked = createEvent(this, "wmNavigationItemClicked", 7);
225
- this.href = undefined;
226
- this.text = undefined;
227
- this.active = undefined;
228
- this.isTabbing = false;
229
- }
230
- toggleTabbingOn() {
231
- this.isTabbing = true;
232
- }
233
- toggleTabbingOff() {
234
- this.isTabbing = false;
235
- }
236
- componentWillLoad() {
237
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
238
- this.toggleTabbingOn();
239
- }
240
- }
241
- render() {
242
- return (h(Host, { role: "listitem" }, h("a", { class: `link ${this.active ? "active" : ""} ${this.isTabbing ? "user-is-tabbing" : ""}`, href: this.href, onClick: () => this.wmNavigationItemClicked.emit() }, h("div", { class: "icon", "aria-hidden": "true" }, h("slot", null)), h("div", { class: "text" }, this.text))));
243
- }
244
- static get delegatesFocus() { return true; }
245
- get el() { return getElement(this); }
246
- };
221
+ const NavigationItem = class {
222
+ constructor(hostRef) {
223
+ registerInstance(this, hostRef);
224
+ this.wmNavigationItemClicked = createEvent(this, "wmNavigationItemClicked", 7);
225
+ this.href = undefined;
226
+ this.text = undefined;
227
+ this.active = undefined;
228
+ this.isTabbing = false;
229
+ }
230
+ toggleTabbingOn() {
231
+ this.isTabbing = true;
232
+ }
233
+ toggleTabbingOff() {
234
+ this.isTabbing = false;
235
+ }
236
+ componentWillLoad() {
237
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
238
+ this.toggleTabbingOn();
239
+ }
240
+ }
241
+ render() {
242
+ return (h(Host, { role: "listitem" }, h("a", { class: `link ${this.active ? "active" : ""} ${this.isTabbing ? "user-is-tabbing" : ""}`, href: this.href, onClick: () => this.wmNavigationItemClicked.emit() }, h("div", { class: "icon", "aria-hidden": "true" }, h("slot", null)), h("div", { class: "text" }, this.text))));
243
+ }
244
+ static get delegatesFocus() { return true; }
245
+ get el() { return getElement(this); }
246
+ };
247
247
  NavigationItem.style = wmNavigationItemCss;
248
248
 
249
249
  export { Navigation as wm_navigation, NavigationHamburger as wm_navigation_hamburger, NavigationItem as wm_navigation_item };
@@ -1 +1 @@
1
- {"file":"wm-navigation.wm-navigation-hamburger.wm-navigation-item.entry.js","mappings":"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","names":[],"sources":["./src/components/wm-navigation/wm-navigation.scss?tag=wm-navigation&encapsulation=shadow","./src/components/wm-navigation/wm-navigation.tsx","./src/components/wm-navigation/wm-navigation-hamburger.scss?tag=wm-navigation-hamburger&encapsulation=shadow","./src/components/wm-navigation/wm-navigation-hamburger.tsx","./src/components/wm-navigation/wm-navigation-item.scss?tag=wm-navigation-item&encapsulation=shadow","./src/components/wm-navigation/wm-navigation-item.tsx"],"sourcesContent":[":host {\n z-index: 10;\n}\n\n:host([aria-expanded=\"true\"]) {\n z-index: 5000;\n}\n\n.tray {\n @include box-shadow(0 0 14px 0 rgba(0, 0, 0, 0.14));\n display: flex;\n flex-direction: column;\n width: rem-calc(121);\n background-color: $light-background;\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n font-size: rem-calc(14);\n height: 100%;\n}\n\n.navlist {\n margin: 0;\n padding: 0;\n}\n\n.toggle-wrapper {\n display: none;\n}\n\n/* COLLAPSIBLE STYLES */\n@media screen and (max-width: 1023px) {\n .tray {\n @include transition(transform 0.33s ease);\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n\n ul {\n visibility: hidden;\n }\n\n .toggle-wrapper {\n display: inline-block;\n min-height: 5rem;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n }\n\n :host([aria-expanded=\"true\"]) {\n .tray {\n transform: translateX(0);\n\n ul {\n visibility: visible;\n }\n }\n }\n\n .overlay {\n width: 100vw;\n height: 100vh;\n max-width: none;\n max-height: none;\n position: fixed !important;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n transform: translate(0%, 0%);\n background-color: rgba(25, 25, 25, 0.4);\n @include transition(opacity 0.5s ease-out);\n }\n}\n","import {\n h,\n Component,\n Element,\n Prop,\n State,\n Listen,\n Host,\n Watch,\n Event,\n EventEmitter,\n forceUpdate,\n} from \"@stencil/core\";\nimport { intl, throttle } from \"../../global/functions\";\n\n@Component({\n tag: \"wm-navigation\",\n styleUrl: \"wm-navigation.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Navigation {\n @Element() el!: HTMLWmNavigationElement;\n toggleEl!: HTMLWmButtonElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n\n @State() isTabbing: boolean = false;\n @Event() wmNavigationStateChanged!: EventEmitter;\n\n private mainNavigationMessage: string = intl.formatMessage({\n id: \"navigation.mainNavigation\",\n defaultMessage: \"Main\",\n description: \"Label describing the site navigation, for screen reader users\",\n });\n\n private openTooltipMessage: string = intl.formatMessage({\n id: \"global.openVerb\",\n defaultMessage: \"Open\",\n description: \"For a button, to open a user interface element\",\n });\n\n private closeTooltipMessage: string = intl.formatMessage({\n id: \"global.closeVerb\",\n defaultMessage: \"Close\",\n description: \"For a button, to close a user interface element\",\n });\n\n get isCollapsible() {\n return window.innerWidth < 1024;\n }\n\n get ariaExpanded() {\n return this.isCollapsible\n ? // if component is in collapsible mode, set aria-expanded according to expanded state\n this.open.toString()\n : // otherwise, do not render attr at all\n undefined;\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"keydown\")\n closeOnEscape(ev: KeyboardEvent) {\n if (ev.key === \"Escape\") {\n this.open = false;\n }\n }\n\n throttledRerender = throttle(() => forceUpdate(this.el), 50);\n\n @Listen(\"resize\", { target: \"window\" })\n handleWindowResize() {\n // for component to react when breakpoint is crossed\n // (doesn't rerender on window resize)\n this.throttledRerender();\n }\n\n @Listen(\"wmNavigationHamburgerClicked\", { target: \"window\" })\n handleHamburgerClicked() {\n this.open = !this.open;\n }\n\n @Listen(\"wmNavigationItemClicked\")\n handleClickOnItem() {\n this.open = false;\n }\n\n @Watch(\"open\")\n handleStateChange() {\n if (this.isCollapsible) {\n this.wmNavigationStateChanged.emit();\n this.open ? this.expand() : this.collapse();\n }\n }\n\n componentWillLoad() {\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n\n this.el.focus = () => {\n // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state\n const btn = this.open\n ? (this.el.shadowRoot!.querySelector(\".toggle\")! as HTMLWmButtonElement)\n : (document.querySelector(\"wm-navigation-hamburger\") as HTMLWmNavigationHamburgerElement);\n const firstItem = this.el.querySelector(\"wm-navigation-item\")! as HTMLWmNavigationItemElement;\n this.isCollapsible ? btn.focus() : firstItem.focus();\n };\n\n if (this.isCollapsible && this.open) {\n // hamburger needs to know if open was initially set to true\n this.wmNavigationStateChanged.emit();\n this.expand();\n }\n }\n\n redirectFocusFromBody(ev: FocusEvent) {\n // the 2nd check excludes the case when user clicks on the page when the nav is open,\n // which should not redirect focus\n if ((document.activeElement as HTMLElement).tagName === \"BODY\" && !ev.relatedTarget) {\n this.el.focus();\n }\n }\n\n expand() {\n // listen to focus on body and redirect to the component\n // this is to handle trap focus when user has left the page (e.g. went to the address bar)\n // and is tabbing back in\n document.body.tabIndex = 0;\n document.body.addEventListener(\"focus\", this.redirectFocusFromBody.bind(this), true);\n\n // wait for nav to be expanded otherwise tooltip will be misplaced.\n setTimeout(() => this.toggleEl.focus(), 250);\n //document.querySelector(\"wm-navigation\")!.shadowRoot!.querySelector(\".toggle\")!.focus()\n }\n\n collapse() {\n // rm event listener on body\n document.body.tabIndex = -1;\n document.body.removeEventListener(\"focus\", this.redirectFocusFromBody.bind(this));\n\n const hamburgerBtn = document.querySelector(\"wm-navigation-hamburger\");\n // should fail silently if el doesn't exist\n // (dev may have chosen not to use the hamburger component)\n if (hamburgerBtn) hamburgerBtn.focus();\n }\n\n focusLastItem() {\n const items = this.el.querySelectorAll(\"wm-navigation-item\");\n const lastItem = Array.from(items).pop() as HTMLWmNavigationItemElement;\n lastItem.focus();\n }\n\n renderOverlay() {\n return (\n <div\n class=\"overlay\"\n onClick={() => {\n this.open = false;\n }}\n ></div>\n );\n }\n\n render() {\n return (\n <Host role=\"navigation\" aria-expanded={this.ariaExpanded} aria-label={this.mainNavigationMessage}>\n {this.open ? this.renderOverlay() : \"\"}\n {this.isCollapsible && (\n <div class=\"trapfocus\" tabindex={this.open ? 0 : undefined} onFocus={() => this.focusLastItem()}></div>\n )}\n <div class=\"tray\">\n <div class=\"toggle-wrapper\">\n <wm-button\n ref={(el) => (this.toggleEl = el as HTMLWmButtonElement)}\n class={`toggle ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\n button-type=\"navigational\"\n icon={this.open ? \"f156\" : \"f35c\"}\n icon-size=\"2rem\"\n tooltip={this.open ? this.closeTooltipMessage : this.openTooltipMessage}\n tooltip-position=\"left\"\n tabIndex={this.open ? undefined : -1}\n onClick={() => {\n this.open = !this.open;\n }}\n />\n </div>\n <ul class=\"navlist\">\n <slot />\n </ul>\n </div>\n {this.isCollapsible && (\n <div class=\"trapfocus\" tabindex={this.open ? 0 : undefined} onFocus={() => this.toggleEl.focus()}></div>\n )}\n </Host>\n );\n }\n}\n","button {\n display: none;\n width: 100%;\n height: 100%;\n border: none;\n box-shadow: none;\n transition: background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);\n background-color: transparent;\n outline: none;\n padding: 0;\n\n &.user-is-tabbing:focus {\n @include focus-style;\n }\n\n &:hover {\n background-color: $button-default-hover;\n }\n}\n\n.icon {\n &:before {\n @include mdi-icon;\n content: \"\\f35c\";\n font-size: rem-calc(24);\n color: $button-default-text;\n }\n}\n\n@media screen and (max-width: 1023px) {\n :host {\n width: rem-calc(60);\n height: rem-calc(60);\n }\n\n button {\n display: initial;\n }\n}\n","import { h, Component, Element, Host, Prop, Listen, Event, EventEmitter, State } from \"@stencil/core\";\nimport { intl } from \"../../global/functions\";\n\n@Component({\n tag: \"wm-navigation-hamburger\",\n styleUrl: \"wm-navigation-hamburger.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class NavigationHamburger {\n @Element() el!: HTMLWmNavigationHamburgerElement;\n nav!: HTMLWmNavigationElement;\n\n @Prop() navId?: string;\n @Prop({ mutable: true }) tooltipVisible = false; // this is not part of the documented API but we need to expose as prop in order to change it from the focus method defined in WillLoad()\n\n @State() isTabbing?: boolean = false;\n @State() open: boolean = false;\n\n @Event() wmNavigationHamburgerClicked!: EventEmitter;\n\n showNavMessage = intl.formatMessage({\n id: \"navigation.showNavigation\",\n defaultMessage: \"Show navigation\",\n description: \"For user interface element opening a navigation menu\",\n });\n\n get tooltipEl(): HTMLElement {\n return document.getElementById(\"wm-tooltip\")!;\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n // this also works on initial load because event is fired then\n @Listen(\"wmNavigationStateChanged\", { target: \"document\" })\n handleNavigationStateChanged(ev: CustomEvent) {\n this.open = (ev.target! as HTMLWmNavigationElement).open;\n }\n\n componentWillLoad() {\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n if (!this.navId) {\n console.error(\"wm-navigation-hamburger: nav-id is a required prop\");\n }\n }\n\n showTooltip() {\n const tooltipText = this.showNavMessage;\n this.tooltipEl.textContent = tooltipText;\n this.tooltipEl.style.setProperty(\"--wmTooltipTop\", \"1.125rem\");\n this.tooltipEl.style.setProperty(\"--wmTooltipLeft\", \"2.75rem\");\n this.tooltipEl.style.transitionDelay = \"500ms\";\n this.tooltipEl.style.opacity = \"1\";\n\n // tooltip only has a maxWidth if it contains whitespace and can break\n const hasNoWhitespace = tooltipText!.match(/^[^\\s]+$/);\n if (hasNoWhitespace) {\n this.tooltipEl.classList.add(\"single-word\");\n this.tooltipEl.style.setProperty(\"--wmTooltipMaxWidth\", \"none\");\n } else {\n this.tooltipEl.classList.remove(\"single-word\");\n this.tooltipEl.style.removeProperty(\"--wmTooltipMaxWidth\");\n }\n\n // tooltip is only visible after the transition delay.\n // This also fixes an issue for keyboard users:\n // if they tab to a button out of screen bounds, the page scrolls\n // and hideTooltip() would be triggered before the tooltip would show\n setTimeout(() => {\n this.tooltipVisible = true;\n }, 500);\n }\n\n hideTooltip() {\n this.tooltipEl.style.transitionDelay = \"0s\";\n this.tooltipEl.style.opacity = \"0\";\n this.tooltipVisible = false;\n }\n\n showTooltipForKeyboardUsers() {\n if (this.isTabbing) {\n this.showTooltip();\n }\n }\n\n handleClick() {\n this.hideTooltip();\n this.wmNavigationHamburgerClicked.emit();\n }\n\n render() {\n return (\n <Host class={`hamburger ${this.open ? \"nav-open\" : \"nav-closed\"}`}>\n <button\n class={this.isTabbing ? \"user-is-tabbing\" : undefined}\n aria-expanded={this.open}\n aria-controls={this.navId}\n aria-label={this.showNavMessage}\n onMouseEnter={() => this.showTooltip()}\n onMouseLeave={() => this.hideTooltip()}\n onFocus={() => this.showTooltipForKeyboardUsers()}\n onBlur={() => this.hideTooltip()}\n onClick={() => this.handleClick()}\n >\n <span class=\"icon\"></span>\n </button>\n </Host>\n );\n }\n}\n",".link {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: inherit;\n text-decoration: none;\n min-height: rem-calc(72);\n text-align: center;\n padding: 1.25rem 0.5rem;\n font-weight: 500;\n outline: none;\n position: relative;\n\n &:hover {\n background-color: $light-background-hover;\n }\n\n .icon {\n font-size: rem-calc(22);\n color: $sidenav-icon;\n }\n\n .text {\n font-size: rem-calc(14);\n }\n\n &.user-is-tabbing:focus {\n // from P&SS\n box-shadow: inset 0 2px 2px 0 rgb(244 243 246 / 20%), inset 0 2px 2px 0 rgb(0 0 0 / 10%), inset 0 0 4px 3px #61279e;\n }\n}\n\n.link.active {\n background-color: $pale-lilac-gray;\n &:before {\n content: \"\";\n // link to or create semantic name\n background-color: $periwinkle;\n position: absolute;\n height: 100%;\n width: 5px;\n left: 0;\n }\n\n .text {\n // link to or create semantic name\n color: $periwinkle;\n }\n\n .icon {\n // link to or create semantic name\n color: $periwinkle;\n }\n}\n","import { h, Component, Prop, Element, Host, State, Listen, Event, EventEmitter } from \"@stencil/core\";\n\n@Component({\n tag: \"wm-navigation-item\",\n styleUrl: \"wm-navigation-item.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class NavigationItem {\n @Element() el!: HTMLWmNavigationItemElement;\n @Prop() href?: string;\n @Prop() text?: string;\n @Prop() active?: boolean;\n\n @State() isTabbing?: boolean = false;\n @Event() wmNavigationItemClicked!: EventEmitter;\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n componentWillLoad() {\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n }\n\n render() {\n return (\n <Host role=\"listitem\">\n <a\n class={`link ${this.active ? \"active\" : \"\"} ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\n href={this.href}\n onClick={() => this.wmNavigationItemClicked.emit()}\n >\n <div class=\"icon\" aria-hidden=\"true\">\n <slot />\n </div>\n <div class=\"text\">{this.text}</div>\n </a>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"wm-navigation.wm-navigation-hamburger.wm-navigation-item.entry.js","mappings":";;;AAAA,MAAM,eAAe,GAAG,snDAAsnD;;MCoBjoD,UAAU;;;;IAQb,0BAAqB,GAAW,IAAI,CAAC,aAAa,CAAC;MACzD,EAAE,EAAE,2BAA2B;MAC/B,cAAc,EAAE,MAAM;MACtB,WAAW,EAAE,+DAA+D;KAC7E,CAAC,CAAC;IAEK,uBAAkB,GAAW,IAAI,CAAC,aAAa,CAAC;MACtD,EAAE,EAAE,iBAAiB;MACrB,cAAc,EAAE,MAAM;MACtB,WAAW,EAAE,gDAAgD;KAC9D,CAAC,CAAC;IAEK,wBAAmB,GAAW,IAAI,CAAC,aAAa,CAAC;MACvD,EAAE,EAAE,kBAAkB;MACtB,cAAc,EAAE,OAAO;MACvB,WAAW,EAAE,iDAAiD;KAC/D,CAAC,CAAC;IA+BH,sBAAiB,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBApDL,KAAK;qBAE/B,KAAK;;EAqBnC,IAAI,aAAa;IACf,OAAO,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;GACjC;EAED,IAAI,YAAY;IACd,OAAO,IAAI,CAAC,aAAa;;QAErB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;QAEpB,SAAS,CAAC;GACf;EAGD,eAAe;IACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;GACvB;EAGD,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;GACxB;EAGD,aAAa,CAAC,EAAiB;IAC7B,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE;MACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;GACF;EAKD,kBAAkB;;;IAGhB,IAAI,CAAC,iBAAiB,EAAE,CAAC;GAC1B;EAGD,sBAAsB;IACpB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;GACxB;EAGD,iBAAiB;IACf,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;GACnB;EAGD,iBAAiB;IACf,IAAI,IAAI,CAAC,aAAa,EAAE;MACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;MACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC7C;GACF;EAED,iBAAiB;IACf,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;MAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG;;MAEd,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;UAChB,IAAI,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,SAAS,CAA0B;UACrE,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAsC,CAAC;MAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAiC,CAAC;MAC9F,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;KACtD,CAAC;IAEF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;;MAEnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;MACrC,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;GACF;EAED,qBAAqB,CAAC,EAAc;;;IAGlC,IAAK,QAAQ,CAAC,aAA6B,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;MACnF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;KACjB;GACF;EAED,MAAM;;;;IAIJ,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;;IAGrF,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;;GAE9C;EAED,QAAQ;;IAEN,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAElF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;;;IAGvE,IAAI,YAAY;MAAE,YAAY,CAAC,KAAK,EAAE,CAAC;GACxC;EAED,aAAa;IACX,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAiC,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,CAAC;GAClB;EAED,aAAa;IACX,QACE,WACE,KAAK,EAAC,SAAS,EACf,OAAO,EAAE;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;OACnB,GACI,EACP;GACH;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,IAAI,EAAC,YAAY,mBAAgB,IAAI,CAAC,YAAY,gBAAc,IAAI,CAAC,qBAAqB,IAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EACrC,IAAI,CAAC,aAAa,KACjB,WAAK,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,GAAQ,CACxG,EACD,WAAK,KAAK,EAAC,MAAM,IACf,WAAK,KAAK,EAAC,gBAAgB,IACzB,iBACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAyB,CAAC,EACxD,KAAK,EAAE,UAAU,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAE,iBAC9C,cAAc,EAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,eACvB,MAAM,EAChB,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,sBACtD,MAAM,EACvB,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,EACpC,OAAO,EAAE;QACP,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;OACxB,GACD,CACE,EACN,UAAI,KAAK,EAAC,SAAS,IACjB,eAAQ,CACL,CACD,EACL,IAAI,CAAC,aAAa,KACjB,WAAK,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAQ,CACzG,CACI,EACP;GACH;;;;;;;;;AC3MH,MAAM,wBAAwB,GAAG,ikCAAikC;;MCQrlC,mBAAmB;;;;IAY9B,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC;MAClC,EAAE,EAAE,2BAA2B;MAC/B,cAAc,EAAE,iBAAiB;MACjC,WAAW,EAAE,sDAAsD;KACpE,CAAC,CAAC;;0BAXuC,KAAK;qBAEhB,KAAK;gBACX,KAAK;;EAU9B,IAAI,SAAS;IACX,OAAO,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC;GAC/C;EAGD,eAAe;IACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;GACvB;EAGD,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;GACxB;;EAID,4BAA4B,CAAC,EAAe;IAC1C,IAAI,CAAC,IAAI,GAAI,EAAE,CAAC,MAAmC,CAAC,IAAI,CAAC;GAC1D;EAED,iBAAiB;IACf,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;MAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;MACf,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACrE;GACF;EAED,WAAW;IACT,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;IAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;;IAGnC,MAAM,eAAe,GAAG,WAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,eAAe,EAAE;MACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;MAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;KACjE;SAAM;MACL,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;MAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;KAC5D;;;;;IAMD,UAAU,CAAC;MACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B,EAAE,GAAG,CAAC,CAAC;GACT;EAED,WAAW;IACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;GAC7B;EAED,2BAA2B;IACzB,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;EAED,WAAW;IACT,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;GAC1C;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,aAAa,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,YAAY,EAAE,IAC/D,cACE,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,SAAS,mBACtC,IAAI,CAAC,IAAI,mBACT,IAAI,CAAC,KAAK,gBACb,IAAI,CAAC,cAAc,EAC/B,YAAY,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACtC,YAAY,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACtC,OAAO,EAAE,MAAM,IAAI,CAAC,2BAA2B,EAAE,EACjD,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAChC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,IAEjC,YAAM,KAAK,EAAC,MAAM,GAAQ,CACnB,CACJ,EACP;GACH;;;;;;ACrHH,MAAM,mBAAmB,GAAG,s2BAAs2B;;MCOr3B,cAAc;;;;;;;qBAMM,KAAK;;EAIpC,eAAe;IACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;GACvB;EAGD,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;GACxB;EAED,iBAAiB;IACf,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;MAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;GACF;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,IAAI,EAAC,UAAU,IACnB,SACE,KAAK,EAAE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAE,EACvF,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAElD,WAAK,KAAK,EAAC,MAAM,iBAAa,MAAM,IAClC,eAAQ,CACJ,EACN,WAAK,KAAK,EAAC,MAAM,IAAE,IAAI,CAAC,IAAI,CAAO,CACjC,CACC,EACP;GACH;;;;;;;;","names":[],"sources":["./src/components/wm-navigation/wm-navigation.scss?tag=wm-navigation&encapsulation=shadow","./src/components/wm-navigation/wm-navigation.tsx","./src/components/wm-navigation/wm-navigation-hamburger.scss?tag=wm-navigation-hamburger&encapsulation=shadow","./src/components/wm-navigation/wm-navigation-hamburger.tsx","./src/components/wm-navigation/wm-navigation-item.scss?tag=wm-navigation-item&encapsulation=shadow","./src/components/wm-navigation/wm-navigation-item.tsx"],"sourcesContent":[":host {\r\n z-index: 10;\r\n}\r\n\r\n:host([aria-expanded=\"true\"]) {\r\n z-index: 5000;\r\n}\r\n\r\n.tray {\r\n @include box-shadow(0 0 14px 0 rgba(0, 0, 0, 0.14));\r\n display: flex;\r\n flex-direction: column;\r\n width: rem-calc(121);\r\n background-color: $light-background;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n -webkit-overflow-scrolling: touch;\r\n font-size: rem-calc(14);\r\n height: 100%;\r\n}\r\n\r\n.navlist {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.toggle-wrapper {\r\n display: none;\r\n}\r\n\r\n/* COLLAPSIBLE STYLES */\r\n@media screen and (max-width: 1023px) {\r\n .tray {\r\n @include transition(transform 0.33s ease);\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n transform: translateX(-100%);\r\n\r\n ul {\r\n visibility: hidden;\r\n }\r\n\r\n .toggle-wrapper {\r\n display: inline-block;\r\n min-height: 5rem;\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n }\r\n\r\n :host([aria-expanded=\"true\"]) {\r\n .tray {\r\n transform: translateX(0);\r\n\r\n ul {\r\n visibility: visible;\r\n }\r\n }\r\n }\r\n\r\n .overlay {\r\n width: 100vw;\r\n height: 100vh;\r\n max-width: none;\r\n max-height: none;\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n transform: translate(0%, 0%);\r\n background-color: rgba(25, 25, 25, 0.4);\r\n @include transition(opacity 0.5s ease-out);\r\n }\r\n}\r\n","import {\r\n h,\r\n Component,\r\n Element,\r\n Prop,\r\n State,\r\n Listen,\r\n Host,\r\n Watch,\r\n Event,\r\n EventEmitter,\r\n forceUpdate,\r\n} from \"@stencil/core\";\r\nimport { intl, throttle } from \"../../global/functions\";\r\n\r\n@Component({\r\n tag: \"wm-navigation\",\r\n styleUrl: \"wm-navigation.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class Navigation {\r\n @Element() el!: HTMLWmNavigationElement;\r\n toggleEl!: HTMLWmButtonElement;\r\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\r\n\r\n @State() isTabbing: boolean = false;\r\n @Event() wmNavigationStateChanged!: EventEmitter;\r\n\r\n private mainNavigationMessage: string = intl.formatMessage({\r\n id: \"navigation.mainNavigation\",\r\n defaultMessage: \"Main\",\r\n description: \"Label describing the site navigation, for screen reader users\",\r\n });\r\n\r\n private openTooltipMessage: string = intl.formatMessage({\r\n id: \"global.openVerb\",\r\n defaultMessage: \"Open\",\r\n description: \"For a button, to open a user interface element\",\r\n });\r\n\r\n private closeTooltipMessage: string = intl.formatMessage({\r\n id: \"global.closeVerb\",\r\n defaultMessage: \"Close\",\r\n description: \"For a button, to close a user interface element\",\r\n });\r\n\r\n get isCollapsible() {\r\n return window.innerWidth < 1024;\r\n }\r\n\r\n get ariaExpanded() {\r\n return this.isCollapsible\r\n ? // if component is in collapsible mode, set aria-expanded according to expanded state\r\n this.open.toString()\r\n : // otherwise, do not render attr at all\r\n undefined;\r\n }\r\n\r\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\r\n toggleTabbingOn() {\r\n this.isTabbing = true;\r\n }\r\n\r\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\r\n toggleTabbingOff() {\r\n this.isTabbing = false;\r\n }\r\n\r\n @Listen(\"keydown\")\r\n closeOnEscape(ev: KeyboardEvent) {\r\n if (ev.key === \"Escape\") {\r\n this.open = false;\r\n }\r\n }\r\n\r\n throttledRerender = throttle(() => forceUpdate(this.el), 50);\r\n\r\n @Listen(\"resize\", { target: \"window\" })\r\n handleWindowResize() {\r\n // for component to react when breakpoint is crossed\r\n // (doesn't rerender on window resize)\r\n this.throttledRerender();\r\n }\r\n\r\n @Listen(\"wmNavigationHamburgerClicked\", { target: \"window\" })\r\n handleHamburgerClicked() {\r\n this.open = !this.open;\r\n }\r\n\r\n @Listen(\"wmNavigationItemClicked\")\r\n handleClickOnItem() {\r\n this.open = false;\r\n }\r\n\r\n @Watch(\"open\")\r\n handleStateChange() {\r\n if (this.isCollapsible) {\r\n this.wmNavigationStateChanged.emit();\r\n this.open ? this.expand() : this.collapse();\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\r\n this.toggleTabbingOn();\r\n }\r\n\r\n this.el.focus = () => {\r\n // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state\r\n const btn = this.open\r\n ? (this.el.shadowRoot!.querySelector(\".toggle\")! as HTMLWmButtonElement)\r\n : (document.querySelector(\"wm-navigation-hamburger\") as HTMLWmNavigationHamburgerElement);\r\n const firstItem = this.el.querySelector(\"wm-navigation-item\")! as HTMLWmNavigationItemElement;\r\n this.isCollapsible ? btn.focus() : firstItem.focus();\r\n };\r\n\r\n if (this.isCollapsible && this.open) {\r\n // hamburger needs to know if open was initially set to true\r\n this.wmNavigationStateChanged.emit();\r\n this.expand();\r\n }\r\n }\r\n\r\n redirectFocusFromBody(ev: FocusEvent) {\r\n // the 2nd check excludes the case when user clicks on the page when the nav is open,\r\n // which should not redirect focus\r\n if ((document.activeElement as HTMLElement).tagName === \"BODY\" && !ev.relatedTarget) {\r\n this.el.focus();\r\n }\r\n }\r\n\r\n expand() {\r\n // listen to focus on body and redirect to the component\r\n // this is to handle trap focus when user has left the page (e.g. went to the address bar)\r\n // and is tabbing back in\r\n document.body.tabIndex = 0;\r\n document.body.addEventListener(\"focus\", this.redirectFocusFromBody.bind(this), true);\r\n\r\n // wait for nav to be expanded otherwise tooltip will be misplaced.\r\n setTimeout(() => this.toggleEl.focus(), 250);\r\n //document.querySelector(\"wm-navigation\")!.shadowRoot!.querySelector(\".toggle\")!.focus()\r\n }\r\n\r\n collapse() {\r\n // rm event listener on body\r\n document.body.tabIndex = -1;\r\n document.body.removeEventListener(\"focus\", this.redirectFocusFromBody.bind(this));\r\n\r\n const hamburgerBtn = document.querySelector(\"wm-navigation-hamburger\");\r\n // should fail silently if el doesn't exist\r\n // (dev may have chosen not to use the hamburger component)\r\n if (hamburgerBtn) hamburgerBtn.focus();\r\n }\r\n\r\n focusLastItem() {\r\n const items = this.el.querySelectorAll(\"wm-navigation-item\");\r\n const lastItem = Array.from(items).pop() as HTMLWmNavigationItemElement;\r\n lastItem.focus();\r\n }\r\n\r\n renderOverlay() {\r\n return (\r\n <div\r\n class=\"overlay\"\r\n onClick={() => {\r\n this.open = false;\r\n }}\r\n ></div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <Host role=\"navigation\" aria-expanded={this.ariaExpanded} aria-label={this.mainNavigationMessage}>\r\n {this.open ? this.renderOverlay() : \"\"}\r\n {this.isCollapsible && (\r\n <div class=\"trapfocus\" tabindex={this.open ? 0 : undefined} onFocus={() => this.focusLastItem()}></div>\r\n )}\r\n <div class=\"tray\">\r\n <div class=\"toggle-wrapper\">\r\n <wm-button\r\n ref={(el) => (this.toggleEl = el as HTMLWmButtonElement)}\r\n class={`toggle ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\r\n button-type=\"navigational\"\r\n icon={this.open ? \"f156\" : \"f35c\"}\r\n icon-size=\"2rem\"\r\n tooltip={this.open ? this.closeTooltipMessage : this.openTooltipMessage}\r\n tooltip-position=\"left\"\r\n tabIndex={this.open ? undefined : -1}\r\n onClick={() => {\r\n this.open = !this.open;\r\n }}\r\n />\r\n </div>\r\n <ul class=\"navlist\">\r\n <slot />\r\n </ul>\r\n </div>\r\n {this.isCollapsible && (\r\n <div class=\"trapfocus\" tabindex={this.open ? 0 : undefined} onFocus={() => this.toggleEl.focus()}></div>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n","button {\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n border: none;\r\n box-shadow: none;\r\n transition: background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);\r\n background-color: transparent;\r\n outline: none;\r\n padding: 0;\r\n\r\n &.user-is-tabbing:focus {\r\n @include focus-style;\r\n }\r\n\r\n &:hover {\r\n background-color: $button-default-hover;\r\n }\r\n}\r\n\r\n.icon {\r\n &:before {\r\n @include mdi-icon;\r\n content: \"\\f35c\";\r\n font-size: rem-calc(24);\r\n color: $button-default-text;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 1023px) {\r\n :host {\r\n width: rem-calc(60);\r\n height: rem-calc(60);\r\n }\r\n\r\n button {\r\n display: initial;\r\n }\r\n}\r\n","import { h, Component, Element, Host, Prop, Listen, Event, EventEmitter, State } from \"@stencil/core\";\r\nimport { intl } from \"../../global/functions\";\r\n\r\n@Component({\r\n tag: \"wm-navigation-hamburger\",\r\n styleUrl: \"wm-navigation-hamburger.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class NavigationHamburger {\r\n @Element() el!: HTMLWmNavigationHamburgerElement;\r\n nav!: HTMLWmNavigationElement;\r\n\r\n @Prop() navId?: string;\r\n @Prop({ mutable: true }) tooltipVisible = false; // this is not part of the documented API but we need to expose as prop in order to change it from the focus method defined in WillLoad()\r\n\r\n @State() isTabbing?: boolean = false;\r\n @State() open: boolean = false;\r\n\r\n @Event() wmNavigationHamburgerClicked!: EventEmitter;\r\n\r\n showNavMessage = intl.formatMessage({\r\n id: \"navigation.showNavigation\",\r\n defaultMessage: \"Show navigation\",\r\n description: \"For user interface element opening a navigation menu\",\r\n });\r\n\r\n get tooltipEl(): HTMLElement {\r\n return document.getElementById(\"wm-tooltip\")!;\r\n }\r\n\r\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\r\n toggleTabbingOn() {\r\n this.isTabbing = true;\r\n }\r\n\r\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\r\n toggleTabbingOff() {\r\n this.isTabbing = false;\r\n }\r\n\r\n // this also works on initial load because event is fired then\r\n @Listen(\"wmNavigationStateChanged\", { target: \"document\" })\r\n handleNavigationStateChanged(ev: CustomEvent) {\r\n this.open = (ev.target! as HTMLWmNavigationElement).open;\r\n }\r\n\r\n componentWillLoad() {\r\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\r\n this.toggleTabbingOn();\r\n }\r\n if (!this.navId) {\r\n console.error(\"wm-navigation-hamburger: nav-id is a required prop\");\r\n }\r\n }\r\n\r\n showTooltip() {\r\n const tooltipText = this.showNavMessage;\r\n this.tooltipEl.textContent = tooltipText;\r\n this.tooltipEl.style.setProperty(\"--wmTooltipTop\", \"1.125rem\");\r\n this.tooltipEl.style.setProperty(\"--wmTooltipLeft\", \"2.75rem\");\r\n this.tooltipEl.style.transitionDelay = \"500ms\";\r\n this.tooltipEl.style.opacity = \"1\";\r\n\r\n // tooltip only has a maxWidth if it contains whitespace and can break\r\n const hasNoWhitespace = tooltipText!.match(/^[^\\s]+$/);\r\n if (hasNoWhitespace) {\r\n this.tooltipEl.classList.add(\"single-word\");\r\n this.tooltipEl.style.setProperty(\"--wmTooltipMaxWidth\", \"none\");\r\n } else {\r\n this.tooltipEl.classList.remove(\"single-word\");\r\n this.tooltipEl.style.removeProperty(\"--wmTooltipMaxWidth\");\r\n }\r\n\r\n // tooltip is only visible after the transition delay.\r\n // This also fixes an issue for keyboard users:\r\n // if they tab to a button out of screen bounds, the page scrolls\r\n // and hideTooltip() would be triggered before the tooltip would show\r\n setTimeout(() => {\r\n this.tooltipVisible = true;\r\n }, 500);\r\n }\r\n\r\n hideTooltip() {\r\n this.tooltipEl.style.transitionDelay = \"0s\";\r\n this.tooltipEl.style.opacity = \"0\";\r\n this.tooltipVisible = false;\r\n }\r\n\r\n showTooltipForKeyboardUsers() {\r\n if (this.isTabbing) {\r\n this.showTooltip();\r\n }\r\n }\r\n\r\n handleClick() {\r\n this.hideTooltip();\r\n this.wmNavigationHamburgerClicked.emit();\r\n }\r\n\r\n render() {\r\n return (\r\n <Host class={`hamburger ${this.open ? \"nav-open\" : \"nav-closed\"}`}>\r\n <button\r\n class={this.isTabbing ? \"user-is-tabbing\" : undefined}\r\n aria-expanded={this.open}\r\n aria-controls={this.navId}\r\n aria-label={this.showNavMessage}\r\n onMouseEnter={() => this.showTooltip()}\r\n onMouseLeave={() => this.hideTooltip()}\r\n onFocus={() => this.showTooltipForKeyboardUsers()}\r\n onBlur={() => this.hideTooltip()}\r\n onClick={() => this.handleClick()}\r\n >\r\n <span class=\"icon\"></span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n",".link {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n color: inherit;\r\n text-decoration: none;\r\n min-height: rem-calc(72);\r\n text-align: center;\r\n padding: 1.25rem 0.5rem;\r\n font-weight: 500;\r\n outline: none;\r\n position: relative;\r\n\r\n &:hover {\r\n background-color: $light-background-hover;\r\n }\r\n\r\n .icon {\r\n font-size: rem-calc(22);\r\n color: $sidenav-icon;\r\n }\r\n\r\n .text {\r\n font-size: rem-calc(14);\r\n }\r\n\r\n &.user-is-tabbing:focus {\r\n // from P&SS\r\n box-shadow: inset 0 2px 2px 0 rgb(244 243 246 / 20%), inset 0 2px 2px 0 rgb(0 0 0 / 10%), inset 0 0 4px 3px #61279e;\r\n }\r\n}\r\n\r\n.link.active {\r\n background-color: $pale-lilac-gray;\r\n &:before {\r\n content: \"\";\r\n // link to or create semantic name\r\n background-color: $periwinkle;\r\n position: absolute;\r\n height: 100%;\r\n width: 5px;\r\n left: 0;\r\n }\r\n\r\n .text {\r\n // link to or create semantic name\r\n color: $periwinkle;\r\n }\r\n\r\n .icon {\r\n // link to or create semantic name\r\n color: $periwinkle;\r\n }\r\n}\r\n","import { h, Component, Prop, Element, Host, State, Listen, Event, EventEmitter } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"wm-navigation-item\",\r\n styleUrl: \"wm-navigation-item.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class NavigationItem {\r\n @Element() el!: HTMLWmNavigationItemElement;\r\n @Prop() href?: string;\r\n @Prop() text?: string;\r\n @Prop() active?: boolean;\r\n\r\n @State() isTabbing?: boolean = false;\r\n @Event() wmNavigationItemClicked!: EventEmitter;\r\n\r\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\r\n toggleTabbingOn() {\r\n this.isTabbing = true;\r\n }\r\n\r\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\r\n toggleTabbingOff() {\r\n this.isTabbing = false;\r\n }\r\n\r\n componentWillLoad() {\r\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\r\n this.toggleTabbingOn();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host role=\"listitem\">\r\n <a\r\n class={`link ${this.active ? \"active\" : \"\"} ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\r\n href={this.href}\r\n onClick={() => this.wmNavigationItemClicked.emit()}\r\n >\r\n <div class=\"icon\" aria-hidden=\"true\">\r\n <slot />\r\n </div>\r\n <div class=\"text\">{this.text}</div>\r\n </a>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}