@watermarkinsights/ripple 3.24.1-0 → 3.24.1-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 (602) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-da36e4cb.js → chartFunctions-bee8f303.js} +591 -591
  3. package/dist/cjs/chartFunctions-bee8f303.js.map +1 -0
  4. package/dist/cjs/{functions-9ddaeb33.js → functions-6d2a5824.js} +468 -468
  5. package/dist/cjs/{functions-9ddaeb33.js.map → functions-6d2a5824.js.map} +1 -1
  6. package/dist/cjs/{global-50b05dba.js → global-b69cab8a.js} +63 -63
  7. package/dist/cjs/global-b69cab8a.js.map +1 -0
  8. package/dist/cjs/{http-service-494d81de.js → http-service-9e8c4dd5.js} +50 -50
  9. package/dist/cjs/http-service-9e8c4dd5.js.map +1 -0
  10. package/dist/cjs/{interfaces-a3338581.js → interfaces-30a74c1f.js} +30 -30
  11. package/dist/cjs/interfaces-30a74c1f.js.map +1 -0
  12. package/dist/cjs/intl-64c5d4cd.js +140 -0
  13. package/dist/cjs/intl-64c5d4cd.js.map +1 -0
  14. package/dist/cjs/loader.cjs.js +2 -2
  15. package/dist/cjs/priv-chart-popover.cjs.entry.js +91 -91
  16. package/dist/cjs/priv-chart-popover.cjs.entry.js.map +1 -1
  17. package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
  18. package/dist/cjs/priv-datepicker.cjs.entry.js.map +1 -1
  19. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  20. package/dist/cjs/priv-navigator-button.cjs.entry.js.map +1 -1
  21. package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
  22. package/dist/cjs/priv-navigator-item.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ripple.cjs.js +2 -2
  24. package/dist/cjs/wm-action-menu_2.cjs.entry.js +334 -334
  25. package/dist/cjs/wm-action-menu_2.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wm-button.cjs.entry.js +260 -260
  27. package/dist/cjs/wm-button.cjs.entry.js.map +1 -1
  28. package/dist/cjs/wm-chart-slice.cjs.entry.js +18 -18
  29. package/dist/cjs/wm-chart-slice.cjs.entry.js.map +1 -1
  30. package/dist/cjs/wm-chart.cjs.entry.js +179 -179
  31. package/dist/cjs/wm-chart.cjs.entry.js.map +1 -1
  32. package/dist/cjs/wm-datepicker.cjs.entry.js +264 -264
  33. package/dist/cjs/wm-datepicker.cjs.entry.js.map +1 -1
  34. package/dist/cjs/wm-file-list.cjs.entry.js +35 -35
  35. package/dist/cjs/wm-file-list.cjs.entry.js.map +1 -1
  36. package/dist/cjs/wm-file.cjs.entry.js +202 -202
  37. package/dist/cjs/wm-file.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wm-input.cjs.entry.js +125 -140
  39. package/dist/cjs/wm-input.cjs.entry.js.map +1 -1
  40. package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
  41. package/dist/cjs/wm-modal-footer.cjs.entry.js.map +1 -1
  42. package/dist/cjs/wm-modal-header.cjs.entry.js +32 -36
  43. package/dist/cjs/wm-modal-header.cjs.entry.js.map +1 -1
  44. package/dist/cjs/wm-modal.cjs.entry.js +152 -152
  45. package/dist/cjs/wm-modal.cjs.entry.js.map +1 -1
  46. package/dist/cjs/wm-navigation_3.cjs.entry.js +225 -234
  47. package/dist/cjs/wm-navigation_3.cjs.entry.js.map +1 -1
  48. package/dist/cjs/wm-navigator.cjs.entry.js +264 -264
  49. package/dist/cjs/wm-navigator.cjs.entry.js.map +1 -1
  50. package/dist/cjs/wm-network-uploader.cjs.entry.js +465 -467
  51. package/dist/cjs/wm-network-uploader.cjs.entry.js.map +1 -1
  52. package/dist/cjs/wm-option_2.cjs.entry.js +769 -772
  53. package/dist/cjs/wm-option_2.cjs.entry.js.map +1 -1
  54. package/dist/cjs/wm-pagination.cjs.entry.js +179 -179
  55. package/dist/cjs/wm-pagination.cjs.entry.js.map +1 -1
  56. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +155 -155
  57. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js.map +1 -1
  58. package/dist/cjs/wm-search.cjs.entry.js +184 -191
  59. package/dist/cjs/wm-search.cjs.entry.js.map +1 -1
  60. package/dist/cjs/wm-snackbar.cjs.entry.js +156 -170
  61. package/dist/cjs/wm-snackbar.cjs.entry.js.map +1 -1
  62. package/dist/cjs/wm-tab-item_3.cjs.entry.js +264 -264
  63. package/dist/cjs/wm-tab-item_3.cjs.entry.js.map +1 -1
  64. package/dist/cjs/wm-tag-input-row.cjs.entry.js +14 -14
  65. package/dist/cjs/wm-tag-input-row.cjs.entry.js.map +1 -1
  66. package/dist/cjs/wm-tag-input.cjs.entry.js +905 -909
  67. package/dist/cjs/wm-tag-input.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wm-timepicker.cjs.entry.js +386 -386
  69. package/dist/cjs/wm-timepicker.cjs.entry.js.map +1 -1
  70. package/dist/cjs/wm-toggletip.cjs.entry.js +130 -130
  71. package/dist/cjs/wm-toggletip.cjs.entry.js.map +1 -1
  72. package/dist/cjs/wm-uploader.cjs.entry.js +442 -511
  73. package/dist/cjs/wm-uploader.cjs.entry.js.map +1 -1
  74. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  75. package/dist/cjs/wm-wrapper.cjs.entry.js.map +1 -1
  76. package/dist/collection/components/charts/chartFunctions.js +557 -557
  77. package/dist/collection/components/charts/chartFunctions.js.map +1 -1
  78. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +268 -268
  79. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js.map +1 -1
  80. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +126 -126
  81. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js.map +1 -1
  82. package/dist/collection/components/charts/wm-chart/wm-chart.js +447 -447
  83. package/dist/collection/components/charts/wm-chart/wm-chart.js.map +1 -1
  84. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +208 -208
  85. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js.map +1 -1
  86. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +144 -144
  87. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js.map +1 -1
  88. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +122 -122
  89. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js.map +1 -1
  90. package/dist/collection/components/wm-action-menu/wm-action-menu.js +473 -473
  91. package/dist/collection/components/wm-action-menu/wm-action-menu.js.map +1 -1
  92. package/dist/collection/components/wm-button/wm-button.js +576 -576
  93. package/dist/collection/components/wm-button/wm-button.js.map +1 -1
  94. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +984 -984
  95. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js.map +1 -1
  96. package/dist/collection/components/wm-datepicker/wm-datepicker.css +5 -5
  97. package/dist/collection/components/wm-datepicker/wm-datepicker.js +492 -492
  98. package/dist/collection/components/wm-datepicker/wm-datepicker.js.map +1 -1
  99. package/dist/collection/components/wm-file/wm-file.css +4 -2
  100. package/dist/collection/components/wm-file/wm-file.js +334 -334
  101. package/dist/collection/components/wm-file/wm-file.js.map +1 -1
  102. package/dist/collection/components/wm-file-list/wm-file-list.js +153 -153
  103. package/dist/collection/components/wm-file-list/wm-file-list.js.map +1 -1
  104. package/dist/collection/components/wm-input/wm-input.css +3 -2
  105. package/dist/collection/components/wm-input/wm-input.js +446 -444
  106. package/dist/collection/components/wm-input/wm-input.js.map +1 -1
  107. package/dist/collection/components/wm-menuitem/wm-menuitem.js +455 -455
  108. package/dist/collection/components/wm-menuitem/wm-menuitem.js.map +1 -1
  109. package/dist/collection/components/wm-modal/wm-modal-footer.js +139 -139
  110. package/dist/collection/components/wm-modal/wm-modal-footer.js.map +1 -1
  111. package/dist/collection/components/wm-modal/wm-modal-header.js +83 -88
  112. package/dist/collection/components/wm-modal/wm-modal-header.js.map +1 -1
  113. package/dist/collection/components/wm-modal/wm-modal.js +463 -463
  114. package/dist/collection/components/wm-modal/wm-modal.js.map +1 -1
  115. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +177 -177
  116. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js.map +1 -1
  117. package/dist/collection/components/wm-navigation/wm-navigation-item.js +131 -131
  118. package/dist/collection/components/wm-navigation/wm-navigation-item.js.map +1 -1
  119. package/dist/collection/components/wm-navigation/wm-navigation.js +218 -227
  120. package/dist/collection/components/wm-navigation/wm-navigation.js.map +1 -1
  121. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +107 -107
  122. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js.map +1 -1
  123. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +124 -124
  124. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js.map +1 -1
  125. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  126. package/dist/collection/components/wm-navigator/wm-navigator.js.map +1 -1
  127. package/dist/collection/components/wm-option/wm-option.js +436 -436
  128. package/dist/collection/components/wm-option/wm-option.js.map +1 -1
  129. package/dist/collection/components/wm-pagination/wm-pagination.js +371 -371
  130. package/dist/collection/components/wm-pagination/wm-pagination.js.map +1 -1
  131. package/dist/collection/components/wm-search/wm-search.js +440 -447
  132. package/dist/collection/components/wm-search/wm-search.js.map +1 -1
  133. package/dist/collection/components/wm-select/wm-select.css +2 -2
  134. package/dist/collection/components/wm-select/wm-select.js +1055 -1058
  135. package/dist/collection/components/wm-select/wm-select.js.map +1 -1
  136. package/dist/collection/components/wm-snackbar/wm-snackbar.css +0 -39
  137. package/dist/collection/components/wm-snackbar/wm-snackbar.js +283 -297
  138. package/dist/collection/components/wm-snackbar/wm-snackbar.js.map +1 -1
  139. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +212 -212
  140. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js.map +1 -1
  141. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +328 -328
  142. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js.map +1 -1
  143. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +109 -109
  144. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js.map +1 -1
  145. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +123 -123
  146. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js.map +1 -1
  147. package/dist/collection/components/wm-tag-input/wm-tag-input.css +15 -0
  148. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1242 -1209
  149. package/dist/collection/components/wm-tag-input/wm-tag-input.js.map +1 -1
  150. package/dist/collection/components/wm-timepicker/wm-timepicker.css +4 -3
  151. package/dist/collection/components/wm-timepicker/wm-timepicker.js +606 -606
  152. package/dist/collection/components/wm-timepicker/wm-timepicker.js.map +1 -1
  153. package/dist/collection/components/wm-toggletip/wm-toggletip.js +254 -254
  154. package/dist/collection/components/wm-toggletip/wm-toggletip.js.map +1 -1
  155. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +773 -775
  156. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js.map +1 -1
  157. package/dist/collection/components/wm-uploader/wm-uploader.css +4 -0
  158. package/dist/collection/components/wm-uploader/wm-uploader.js +965 -1034
  159. package/dist/collection/components/wm-uploader/wm-uploader.js.map +1 -1
  160. package/dist/collection/components/wm-wrapper/wm-wrapper.js +29 -29
  161. package/dist/collection/components/wm-wrapper/wm-wrapper.js.map +1 -1
  162. package/dist/collection/dev/scripts.js +20 -20
  163. package/dist/collection/global/__mocks__/functions.js +7 -7
  164. package/dist/collection/global/__mocks__/functions.js.map +1 -1
  165. package/dist/collection/global/functions.js +511 -511
  166. package/dist/collection/global/functions.js.map +1 -1
  167. package/dist/collection/global/global.js +70 -70
  168. package/dist/collection/global/global.js.map +1 -1
  169. package/dist/collection/global/interfaces.js +50 -50
  170. package/dist/collection/global/interfaces.js.map +1 -1
  171. package/dist/collection/global/intl.js +133 -0
  172. package/dist/collection/global/intl.js.map +1 -0
  173. package/dist/collection/global/services/__mocks__/http-service.js +131 -131
  174. package/dist/collection/global/services/__mocks__/http-service.js.map +1 -1
  175. package/dist/collection/global/services/http-service.js +51 -51
  176. package/dist/collection/global/services/http-service.js.map +1 -1
  177. package/dist/collection/lang/lang.js +6 -6
  178. package/dist/collection/lang/lang.js.map +1 -1
  179. package/dist/collection/lang/missing.js +43 -43
  180. package/dist/collection/lang/piglatin.js +93 -93
  181. package/dist/esm/{chartFunctions-b0a9e440.js → chartFunctions-482120f8.js} +591 -591
  182. package/dist/esm/chartFunctions-482120f8.js.map +1 -0
  183. package/dist/esm/{functions-1c41e984.js → functions-c58046f2.js} +468 -468
  184. package/dist/esm/{functions-1c41e984.js.map → functions-c58046f2.js.map} +1 -1
  185. package/dist/esm/{global-1ca0ac23.js → global-8186db4c.js} +63 -63
  186. package/dist/esm/global-8186db4c.js.map +1 -0
  187. package/dist/esm/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +50 -50
  188. package/dist/esm/http-service-5d037e16.js.map +1 -0
  189. package/dist/esm/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +30 -30
  190. package/dist/esm/interfaces-61c6305b.js.map +1 -0
  191. package/dist/esm/intl-f8fca6f5.js +137 -0
  192. package/dist/esm/intl-f8fca6f5.js.map +1 -0
  193. package/dist/esm/loader.js +2 -2
  194. package/dist/esm/polyfills/core-js.js +0 -0
  195. package/dist/esm/polyfills/dom.js +0 -0
  196. package/dist/esm/polyfills/es5-html-element.js +0 -0
  197. package/dist/esm/polyfills/index.js +0 -0
  198. package/dist/esm/polyfills/system.js +0 -0
  199. package/dist/esm/priv-chart-popover.entry.js +91 -91
  200. package/dist/esm/priv-chart-popover.entry.js.map +1 -1
  201. package/dist/esm/priv-datepicker.entry.js +657 -657
  202. package/dist/esm/priv-datepicker.entry.js.map +1 -1
  203. package/dist/esm/priv-navigator-button.entry.js +19 -19
  204. package/dist/esm/priv-navigator-button.entry.js.map +1 -1
  205. package/dist/esm/priv-navigator-item.entry.js +23 -23
  206. package/dist/esm/priv-navigator-item.entry.js.map +1 -1
  207. package/dist/esm/ripple.js +2 -2
  208. package/dist/esm/wm-action-menu_2.entry.js +334 -334
  209. package/dist/esm/wm-action-menu_2.entry.js.map +1 -1
  210. package/dist/esm/wm-button.entry.js +260 -260
  211. package/dist/esm/wm-button.entry.js.map +1 -1
  212. package/dist/esm/wm-chart-slice.entry.js +18 -18
  213. package/dist/esm/wm-chart-slice.entry.js.map +1 -1
  214. package/dist/esm/wm-chart.entry.js +179 -179
  215. package/dist/esm/wm-chart.entry.js.map +1 -1
  216. package/dist/esm/wm-datepicker.entry.js +264 -264
  217. package/dist/esm/wm-datepicker.entry.js.map +1 -1
  218. package/dist/esm/wm-file-list.entry.js +35 -35
  219. package/dist/esm/wm-file-list.entry.js.map +1 -1
  220. package/dist/esm/wm-file.entry.js +202 -202
  221. package/dist/esm/wm-file.entry.js.map +1 -1
  222. package/dist/esm/wm-input.entry.js +125 -140
  223. package/dist/esm/wm-input.entry.js.map +1 -1
  224. package/dist/esm/wm-modal-footer.entry.js +33 -33
  225. package/dist/esm/wm-modal-footer.entry.js.map +1 -1
  226. package/dist/esm/wm-modal-header.entry.js +32 -36
  227. package/dist/esm/wm-modal-header.entry.js.map +1 -1
  228. package/dist/esm/wm-modal.entry.js +152 -152
  229. package/dist/esm/wm-modal.entry.js.map +1 -1
  230. package/dist/esm/wm-navigation_3.entry.js +225 -234
  231. package/dist/esm/wm-navigation_3.entry.js.map +1 -1
  232. package/dist/esm/wm-navigator.entry.js +264 -264
  233. package/dist/esm/wm-navigator.entry.js.map +1 -1
  234. package/dist/esm/wm-network-uploader.entry.js +465 -467
  235. package/dist/esm/wm-network-uploader.entry.js.map +1 -1
  236. package/dist/esm/wm-option_2.entry.js +769 -772
  237. package/dist/esm/wm-option_2.entry.js.map +1 -1
  238. package/dist/esm/wm-pagination.entry.js +179 -179
  239. package/dist/esm/wm-pagination.entry.js.map +1 -1
  240. package/dist/esm/wm-progress-indicator_3.entry.js +155 -155
  241. package/dist/esm/wm-progress-indicator_3.entry.js.map +1 -1
  242. package/dist/esm/wm-search.entry.js +184 -191
  243. package/dist/esm/wm-search.entry.js.map +1 -1
  244. package/dist/esm/wm-snackbar.entry.js +156 -170
  245. package/dist/esm/wm-snackbar.entry.js.map +1 -1
  246. package/dist/esm/wm-tab-item_3.entry.js +264 -264
  247. package/dist/esm/wm-tab-item_3.entry.js.map +1 -1
  248. package/dist/esm/wm-tag-input-row.entry.js +14 -14
  249. package/dist/esm/wm-tag-input-row.entry.js.map +1 -1
  250. package/dist/esm/wm-tag-input.entry.js +905 -909
  251. package/dist/esm/wm-tag-input.entry.js.map +1 -1
  252. package/dist/esm/wm-timepicker.entry.js +386 -386
  253. package/dist/esm/wm-timepicker.entry.js.map +1 -1
  254. package/dist/esm/wm-toggletip.entry.js +130 -130
  255. package/dist/esm/wm-toggletip.entry.js.map +1 -1
  256. package/dist/esm/wm-uploader.entry.js +442 -511
  257. package/dist/esm/wm-uploader.entry.js.map +1 -1
  258. package/dist/esm/wm-wrapper.entry.js +12 -12
  259. package/dist/esm/wm-wrapper.entry.js.map +1 -1
  260. package/dist/esm-es5/{chartFunctions-b0a9e440.js → chartFunctions-482120f8.js} +2 -2
  261. package/dist/esm-es5/chartFunctions-482120f8.js.map +1 -0
  262. package/dist/esm-es5/{functions-1c41e984.js → functions-c58046f2.js} +1 -1
  263. package/dist/esm-es5/{functions-1c41e984.js.map → functions-c58046f2.js.map} +1 -1
  264. package/dist/esm-es5/{global-1ca0ac23.js → global-8186db4c.js} +2 -2
  265. package/dist/esm-es5/global-8186db4c.js.map +1 -0
  266. package/dist/esm-es5/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +1 -1
  267. package/dist/esm-es5/http-service-5d037e16.js.map +1 -0
  268. package/dist/esm-es5/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +1 -1
  269. package/dist/esm-es5/interfaces-61c6305b.js.map +1 -0
  270. package/dist/esm-es5/intl-f8fca6f5.js +2 -0
  271. package/dist/esm-es5/intl-f8fca6f5.js.map +1 -0
  272. package/dist/esm-es5/loader.js +1 -1
  273. package/dist/esm-es5/loader.js.map +1 -1
  274. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  275. package/dist/esm-es5/priv-chart-popover.entry.js.map +1 -1
  276. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  277. package/dist/esm-es5/priv-datepicker.entry.js.map +1 -1
  278. package/dist/esm-es5/priv-navigator-button.entry.js.map +1 -1
  279. package/dist/esm-es5/priv-navigator-item.entry.js.map +1 -1
  280. package/dist/esm-es5/ripple.js +1 -1
  281. package/dist/esm-es5/ripple.js.map +1 -1
  282. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  283. package/dist/esm-es5/wm-action-menu_2.entry.js.map +1 -1
  284. package/dist/esm-es5/wm-button.entry.js +1 -1
  285. package/dist/esm-es5/wm-button.entry.js.map +1 -1
  286. package/dist/esm-es5/wm-chart-slice.entry.js.map +1 -1
  287. package/dist/esm-es5/wm-chart.entry.js +1 -1
  288. package/dist/esm-es5/wm-chart.entry.js.map +1 -1
  289. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  290. package/dist/esm-es5/wm-datepicker.entry.js.map +1 -1
  291. package/dist/esm-es5/wm-file-list.entry.js.map +1 -1
  292. package/dist/esm-es5/wm-file.entry.js +1 -1
  293. package/dist/esm-es5/wm-file.entry.js.map +1 -1
  294. package/dist/esm-es5/wm-input.entry.js +1 -1
  295. package/dist/esm-es5/wm-input.entry.js.map +1 -1
  296. package/dist/esm-es5/wm-modal-footer.entry.js.map +1 -1
  297. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  298. package/dist/esm-es5/wm-modal-header.entry.js.map +1 -1
  299. package/dist/esm-es5/wm-modal.entry.js +1 -1
  300. package/dist/esm-es5/wm-modal.entry.js.map +1 -1
  301. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  302. package/dist/esm-es5/wm-navigation_3.entry.js.map +1 -1
  303. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  304. package/dist/esm-es5/wm-navigator.entry.js.map +1 -1
  305. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  306. package/dist/esm-es5/wm-network-uploader.entry.js.map +1 -1
  307. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  308. package/dist/esm-es5/wm-option_2.entry.js.map +1 -1
  309. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  310. package/dist/esm-es5/wm-pagination.entry.js.map +1 -1
  311. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  312. package/dist/esm-es5/wm-progress-indicator_3.entry.js.map +1 -1
  313. package/dist/esm-es5/wm-search.entry.js +1 -1
  314. package/dist/esm-es5/wm-search.entry.js.map +1 -1
  315. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  316. package/dist/esm-es5/wm-snackbar.entry.js.map +1 -1
  317. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  318. package/dist/esm-es5/wm-tab-item_3.entry.js.map +1 -1
  319. package/dist/esm-es5/wm-tag-input-row.entry.js.map +1 -1
  320. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  321. package/dist/esm-es5/wm-tag-input.entry.js.map +1 -1
  322. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  323. package/dist/esm-es5/wm-timepicker.entry.js.map +1 -1
  324. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  325. package/dist/esm-es5/wm-toggletip.entry.js.map +1 -1
  326. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  327. package/dist/esm-es5/wm-uploader.entry.js.map +1 -1
  328. package/dist/esm-es5/wm-wrapper.entry.js.map +1 -1
  329. package/dist/ripple/p-016a0fd9.entry.js +2 -0
  330. package/dist/ripple/p-016a0fd9.entry.js.map +1 -0
  331. package/dist/ripple/p-080aaf12.entry.js +2 -0
  332. package/dist/ripple/p-080aaf12.entry.js.map +1 -0
  333. package/dist/ripple/p-082fc473.entry.js +2 -0
  334. package/dist/ripple/p-082fc473.entry.js.map +1 -0
  335. package/dist/ripple/{p-f5df5903.system.js → p-08b7ec08.system.js} +1 -1
  336. package/dist/ripple/p-08b7ec08.system.js.map +1 -0
  337. package/dist/ripple/{p-22d9c36e.entry.js → p-0a23f0fa.entry.js} +2 -2
  338. package/dist/ripple/p-0a23f0fa.entry.js.map +1 -0
  339. package/dist/ripple/p-0a83c6bd.entry.js +2 -0
  340. package/dist/ripple/p-0a83c6bd.entry.js.map +1 -0
  341. package/dist/ripple/{p-34567f7e.entry.js → p-0ac9a78f.entry.js} +2 -2
  342. package/dist/ripple/p-0ac9a78f.entry.js.map +1 -0
  343. package/dist/ripple/{p-40cc5375.entry.js → p-0b31c210.entry.js} +2 -2
  344. package/dist/ripple/p-0b31c210.entry.js.map +1 -0
  345. package/dist/ripple/{p-a1c4d1d2.entry.js → p-0bd9ce6b.system.entry.js} +2 -2
  346. package/dist/ripple/p-0bd9ce6b.system.entry.js.map +1 -0
  347. package/dist/ripple/p-0d7bccf7.entry.js.map +1 -1
  348. package/dist/ripple/{p-48c8619f.system.entry.js → p-18e58141.system.entry.js} +2 -2
  349. package/dist/ripple/p-18e58141.system.entry.js.map +1 -0
  350. package/dist/ripple/{p-337f2c82.system.entry.js → p-1a2d8112.system.entry.js} +2 -2
  351. package/dist/ripple/p-1a2d8112.system.entry.js.map +1 -0
  352. package/dist/ripple/p-1b96889b.system.js +2 -0
  353. package/dist/ripple/p-1b96889b.system.js.map +1 -0
  354. package/dist/ripple/p-24a4cb11.system.entry.js.map +1 -1
  355. package/dist/ripple/{p-f09541fc.system.entry.js → p-29cd07d5.system.entry.js} +2 -2
  356. package/dist/ripple/p-29cd07d5.system.entry.js.map +1 -0
  357. package/dist/ripple/p-29e551cc.system.entry.js +2 -0
  358. package/dist/ripple/p-29e551cc.system.entry.js.map +1 -0
  359. package/dist/ripple/{p-e8dab7c0.system.entry.js → p-2abe8404.system.entry.js} +2 -2
  360. package/dist/ripple/p-2abe8404.system.entry.js.map +1 -0
  361. package/dist/ripple/p-2c2a7092.system.entry.js.map +1 -1
  362. package/dist/ripple/{p-9d02957d.system.js → p-313b6073.system.js} +1 -1
  363. package/dist/ripple/p-313b6073.system.js.map +1 -0
  364. package/dist/ripple/p-32d8d5ab.system.entry.js +2 -0
  365. package/dist/ripple/p-32d8d5ab.system.entry.js.map +1 -0
  366. package/dist/ripple/p-33558ec4.system.entry.js.map +1 -1
  367. package/dist/ripple/p-3759b7af.system.entry.js.map +1 -1
  368. package/dist/ripple/{p-0b21e936.system.js → p-3e939434.system.js} +2 -2
  369. package/dist/ripple/p-3e939434.system.js.map +1 -0
  370. package/dist/ripple/p-40132db6.system.entry.js +2 -0
  371. package/dist/ripple/p-40132db6.system.entry.js.map +1 -0
  372. package/dist/ripple/p-4391166c.entry.js.map +1 -1
  373. package/dist/ripple/{p-81c698e2.entry.js → p-45e7b944.entry.js} +2 -2
  374. package/dist/ripple/p-45e7b944.entry.js.map +1 -0
  375. package/dist/ripple/p-4a014591.entry.js.map +1 -1
  376. package/dist/ripple/p-4d0647cd.entry.js +2 -0
  377. package/dist/ripple/p-4d0647cd.entry.js.map +1 -0
  378. package/dist/ripple/{p-f8d1e5a0.js → p-4de9583b.js} +2 -2
  379. package/dist/ripple/p-4de9583b.js.map +1 -0
  380. package/dist/ripple/{p-873a5f0f.entry.js → p-4ded6d29.entry.js} +2 -2
  381. package/dist/ripple/p-4ded6d29.entry.js.map +1 -0
  382. package/dist/ripple/{p-5bf24119.entry.js → p-535e33d7.entry.js} +2 -2
  383. package/dist/ripple/p-535e33d7.entry.js.map +1 -0
  384. package/dist/ripple/p-5886249e.entry.js +2 -0
  385. package/dist/ripple/p-5886249e.entry.js.map +1 -0
  386. package/dist/ripple/p-59654f8e.entry.js.map +1 -1
  387. package/dist/ripple/p-5f11807c.entry.js +2 -0
  388. package/dist/ripple/p-5f11807c.entry.js.map +1 -0
  389. package/dist/ripple/p-6331ee21.entry.js +2 -0
  390. package/dist/ripple/p-6331ee21.entry.js.map +1 -0
  391. package/dist/ripple/{p-3655a421.system.entry.js → p-67373e6f.system.entry.js} +2 -2
  392. package/dist/ripple/p-67373e6f.system.entry.js.map +1 -0
  393. package/dist/ripple/p-69334047.entry.js +2 -0
  394. package/dist/ripple/p-69334047.entry.js.map +1 -0
  395. package/dist/ripple/p-6a700542.entry.js +2 -0
  396. package/dist/ripple/p-6a700542.entry.js.map +1 -0
  397. package/dist/ripple/p-736c2f4c.entry.js +2 -0
  398. package/dist/ripple/p-736c2f4c.entry.js.map +1 -0
  399. package/dist/ripple/{p-4370bb17.entry.js → p-76830e28.entry.js} +2 -2
  400. package/dist/ripple/p-76830e28.entry.js.map +1 -0
  401. package/dist/ripple/{p-12700358.system.js → p-77abfa66.system.js} +2 -2
  402. package/dist/ripple/p-77abfa66.system.js.map +1 -0
  403. package/dist/ripple/p-7b2b9d8d.system.js +2 -0
  404. package/dist/ripple/{p-6ef715eb.system.js.map → p-7b2b9d8d.system.js.map} +1 -1
  405. package/dist/ripple/{p-ac27d425.system.entry.js → p-85b47217.system.entry.js} +2 -2
  406. package/dist/ripple/p-85b47217.system.entry.js.map +1 -0
  407. package/dist/ripple/{p-43f1298b.js → p-888bec42.js} +1 -1
  408. package/dist/ripple/p-888bec42.js.map +1 -0
  409. package/dist/ripple/p-8c51e9f8.system.entry.js.map +1 -1
  410. package/dist/ripple/p-8db2498a.system.entry.js +2 -0
  411. package/dist/ripple/p-8db2498a.system.entry.js.map +1 -0
  412. package/dist/ripple/{p-be2aab24.system.entry.js → p-8f06a7e6.system.entry.js} +2 -2
  413. package/dist/ripple/p-8f06a7e6.system.entry.js.map +1 -0
  414. package/dist/ripple/p-952d86d8.system.entry.js +2 -0
  415. package/dist/ripple/p-952d86d8.system.entry.js.map +1 -0
  416. package/dist/ripple/{p-a6cd8eb1.entry.js → p-9727c8f5.entry.js} +2 -2
  417. package/dist/ripple/p-9727c8f5.entry.js.map +1 -0
  418. package/dist/ripple/p-976b2789.system.entry.js.map +1 -1
  419. package/dist/ripple/p-9b9eb944.entry.js.map +1 -1
  420. package/dist/ripple/p-9dbc252a.system.entry.js +2 -0
  421. package/dist/ripple/p-9dbc252a.system.entry.js.map +1 -0
  422. package/dist/ripple/{p-edfba0e1.js → p-9fd3badc.js} +1 -1
  423. package/dist/ripple/{p-edfba0e1.js.map → p-9fd3badc.js.map} +1 -1
  424. package/dist/ripple/{p-fd8070fb.js → p-a6d6eae7.js} +1 -1
  425. package/dist/ripple/p-a6d6eae7.js.map +1 -0
  426. package/dist/ripple/{p-8f08ca53.js → p-a8e70fee.js} +2 -2
  427. package/dist/ripple/p-a8e70fee.js.map +1 -0
  428. package/dist/ripple/p-b9559cc8.system.entry.js +2 -0
  429. package/dist/ripple/p-b9559cc8.system.entry.js.map +1 -0
  430. package/dist/ripple/p-bc2d54ea.js +2 -0
  431. package/dist/ripple/p-bc2d54ea.js.map +1 -0
  432. package/dist/ripple/{p-e29c4789.entry.js → p-bc883afc.entry.js} +2 -2
  433. package/dist/ripple/p-bc883afc.entry.js.map +1 -0
  434. package/dist/ripple/{p-8e11777d.system.entry.js → p-be954fba.system.entry.js} +2 -2
  435. package/dist/ripple/p-be954fba.system.entry.js.map +1 -0
  436. package/dist/ripple/{p-27d3e1ab.system.entry.js → p-bef2244b.system.entry.js} +2 -2
  437. package/dist/ripple/p-bef2244b.system.entry.js.map +1 -0
  438. package/dist/ripple/p-bf569af0.entry.js.map +1 -1
  439. package/dist/ripple/{p-24f7d6eb.entry.js → p-c5a50724.entry.js} +2 -2
  440. package/dist/ripple/p-c5a50724.entry.js.map +1 -0
  441. package/dist/ripple/{p-4acc9e8d.system.entry.js → p-ccd0d43b.system.entry.js} +2 -2
  442. package/dist/ripple/p-ccd0d43b.system.entry.js.map +1 -0
  443. package/dist/ripple/p-d08d0a91.system.entry.js +2 -0
  444. package/dist/ripple/p-d08d0a91.system.entry.js.map +1 -0
  445. package/dist/ripple/p-d939cb54.entry.js.map +1 -1
  446. package/dist/ripple/p-dbfd1640.system.entry.js.map +1 -1
  447. package/dist/ripple/p-dcc3414e.system.entry.js +2 -0
  448. package/dist/ripple/p-dcc3414e.system.entry.js.map +1 -0
  449. package/dist/ripple/{p-75c9cad6.entry.js → p-e61d2c52.entry.js} +2 -2
  450. package/dist/ripple/p-e61d2c52.entry.js.map +1 -0
  451. package/dist/ripple/{p-60e941cc.system.entry.js → p-e746fe88.system.entry.js} +2 -2
  452. package/dist/ripple/p-e746fe88.system.entry.js.map +1 -0
  453. package/dist/ripple/{p-f08e6a5a.system.js → p-e782194d.system.js} +1 -1
  454. package/dist/ripple/{p-f08e6a5a.system.js.map → p-e782194d.system.js.map} +1 -1
  455. package/dist/ripple/p-f0ac3526.system.entry.js +2 -0
  456. package/dist/ripple/p-f0ac3526.system.entry.js.map +1 -0
  457. package/dist/ripple/p-fb20b751.entry.js +2 -0
  458. package/dist/ripple/p-fb20b751.entry.js.map +1 -0
  459. package/dist/ripple/p-fe5bf0fa.system.entry.js +2 -0
  460. package/dist/ripple/p-fe5bf0fa.system.entry.js.map +1 -0
  461. package/dist/ripple/ripple.esm.js +1 -1
  462. package/dist/ripple/ripple.esm.js.map +1 -1
  463. package/dist/ripple/ripple.js +1 -1
  464. package/dist/types/components/charts/chartFunctions.d.ts +37 -37
  465. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
  466. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  467. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +47 -47
  468. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +29 -29
  469. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +20 -20
  470. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  471. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +49 -49
  472. package/dist/types/components/wm-button/wm-button.d.ts +49 -49
  473. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  474. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -42
  475. package/dist/types/components/wm-file/wm-file.d.ts +42 -42
  476. package/dist/types/components/wm-file-list/wm-file-list.d.ts +16 -16
  477. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  478. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  479. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
  480. package/dist/types/components/wm-modal/wm-modal-header.d.ts +10 -11
  481. package/dist/types/components/wm-modal/wm-modal.d.ts +40 -40
  482. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
  483. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  484. package/dist/types/components/wm-navigation/wm-navigation.d.ts +26 -28
  485. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  486. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  487. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  488. package/dist/types/components/wm-option/wm-option.d.ts +34 -34
  489. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  490. package/dist/types/components/wm-search/wm-search.d.ts +77 -77
  491. package/dist/types/components/wm-select/wm-select.d.ts +101 -102
  492. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +31 -35
  493. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +37 -37
  494. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +52 -52
  495. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  496. package/dist/types/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.d.ts +11 -11
  497. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +129 -127
  498. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
  499. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +28 -28
  500. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  501. package/dist/types/components/wm-uploader/wm-uploader.d.ts +99 -104
  502. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  503. package/dist/types/components.d.ts +33 -27
  504. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  505. package/dist/types/global/functions.d.ts +47 -47
  506. package/dist/types/global/global.d.ts +1 -1
  507. package/dist/types/global/interfaces.d.ts +74 -74
  508. package/dist/types/global/intl.d.ts +29 -0
  509. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  510. package/dist/types/global/services/http-service.d.ts +4 -4
  511. package/dist/types/lang/lang.d.ts +5 -5
  512. package/package.json +46 -46
  513. package/dist/cjs/chartFunctions-da36e4cb.js.map +0 -1
  514. package/dist/cjs/global-50b05dba.js.map +0 -1
  515. package/dist/cjs/http-service-494d81de.js.map +0 -1
  516. package/dist/cjs/interfaces-a3338581.js.map +0 -1
  517. package/dist/esm/chartFunctions-b0a9e440.js.map +0 -1
  518. package/dist/esm/global-1ca0ac23.js.map +0 -1
  519. package/dist/esm/http-service-3dc3b3e7.js.map +0 -1
  520. package/dist/esm/interfaces-2b97fab2.js.map +0 -1
  521. package/dist/esm-es5/chartFunctions-b0a9e440.js.map +0 -1
  522. package/dist/esm-es5/global-1ca0ac23.js.map +0 -1
  523. package/dist/esm-es5/http-service-3dc3b3e7.js.map +0 -1
  524. package/dist/esm-es5/interfaces-2b97fab2.js.map +0 -1
  525. package/dist/ripple/p-010b2cac.system.entry.js +0 -2
  526. package/dist/ripple/p-010b2cac.system.entry.js.map +0 -1
  527. package/dist/ripple/p-0b21e936.system.js.map +0 -1
  528. package/dist/ripple/p-12700358.system.js.map +0 -1
  529. package/dist/ripple/p-136460c0.entry.js +0 -2
  530. package/dist/ripple/p-136460c0.entry.js.map +0 -1
  531. package/dist/ripple/p-1da75922.entry.js +0 -2
  532. package/dist/ripple/p-1da75922.entry.js.map +0 -1
  533. package/dist/ripple/p-22d9c36e.entry.js.map +0 -1
  534. package/dist/ripple/p-24f7d6eb.entry.js.map +0 -1
  535. package/dist/ripple/p-27d3e1ab.system.entry.js.map +0 -1
  536. package/dist/ripple/p-2f4b4e3a.system.entry.js +0 -2
  537. package/dist/ripple/p-2f4b4e3a.system.entry.js.map +0 -1
  538. package/dist/ripple/p-337f2c82.system.entry.js.map +0 -1
  539. package/dist/ripple/p-34567f7e.entry.js.map +0 -1
  540. package/dist/ripple/p-3655a421.system.entry.js.map +0 -1
  541. package/dist/ripple/p-40cc5375.entry.js.map +0 -1
  542. package/dist/ripple/p-4370bb17.entry.js.map +0 -1
  543. package/dist/ripple/p-43f1298b.js.map +0 -1
  544. package/dist/ripple/p-48c8619f.system.entry.js.map +0 -1
  545. package/dist/ripple/p-4acc9e8d.system.entry.js.map +0 -1
  546. package/dist/ripple/p-52655351.system.entry.js +0 -2
  547. package/dist/ripple/p-52655351.system.entry.js.map +0 -1
  548. package/dist/ripple/p-54df11c8.entry.js +0 -2
  549. package/dist/ripple/p-54df11c8.entry.js.map +0 -1
  550. package/dist/ripple/p-5bf24119.entry.js.map +0 -1
  551. package/dist/ripple/p-60e941cc.system.entry.js.map +0 -1
  552. package/dist/ripple/p-684f2c1e.system.entry.js +0 -2
  553. package/dist/ripple/p-684f2c1e.system.entry.js.map +0 -1
  554. package/dist/ripple/p-6ef715eb.system.js +0 -2
  555. package/dist/ripple/p-75c9cad6.entry.js.map +0 -1
  556. package/dist/ripple/p-78a7278d.entry.js +0 -2
  557. package/dist/ripple/p-78a7278d.entry.js.map +0 -1
  558. package/dist/ripple/p-81c698e2.entry.js.map +0 -1
  559. package/dist/ripple/p-82323561.entry.js +0 -2
  560. package/dist/ripple/p-82323561.entry.js.map +0 -1
  561. package/dist/ripple/p-873a5f0f.entry.js.map +0 -1
  562. package/dist/ripple/p-8e11777d.system.entry.js.map +0 -1
  563. package/dist/ripple/p-8f08ca53.js.map +0 -1
  564. package/dist/ripple/p-90d67afa.system.entry.js +0 -2
  565. package/dist/ripple/p-90d67afa.system.entry.js.map +0 -1
  566. package/dist/ripple/p-97f0722e.system.entry.js +0 -2
  567. package/dist/ripple/p-97f0722e.system.entry.js.map +0 -1
  568. package/dist/ripple/p-9c9cf5e7.entry.js +0 -2
  569. package/dist/ripple/p-9c9cf5e7.entry.js.map +0 -1
  570. package/dist/ripple/p-9d02957d.system.js.map +0 -1
  571. package/dist/ripple/p-a1c4d1d2.entry.js.map +0 -1
  572. package/dist/ripple/p-a6cd8eb1.entry.js.map +0 -1
  573. package/dist/ripple/p-ab792e0d.system.entry.js +0 -2
  574. package/dist/ripple/p-ab792e0d.system.entry.js.map +0 -1
  575. package/dist/ripple/p-ab996399.entry.js +0 -2
  576. package/dist/ripple/p-ab996399.entry.js.map +0 -1
  577. package/dist/ripple/p-ac27d425.system.entry.js.map +0 -1
  578. package/dist/ripple/p-be2aab24.system.entry.js.map +0 -1
  579. package/dist/ripple/p-c63b63ee.system.entry.js +0 -2
  580. package/dist/ripple/p-c63b63ee.system.entry.js.map +0 -1
  581. package/dist/ripple/p-ce0002d4.system.entry.js +0 -2
  582. package/dist/ripple/p-ce0002d4.system.entry.js.map +0 -1
  583. package/dist/ripple/p-d23db6e2.entry.js +0 -2
  584. package/dist/ripple/p-d23db6e2.entry.js.map +0 -1
  585. package/dist/ripple/p-e29c4789.entry.js.map +0 -1
  586. package/dist/ripple/p-e6b9766e.entry.js +0 -2
  587. package/dist/ripple/p-e6b9766e.entry.js.map +0 -1
  588. package/dist/ripple/p-e8dab7c0.system.entry.js.map +0 -1
  589. package/dist/ripple/p-eb64d16a.system.entry.js +0 -2
  590. package/dist/ripple/p-eb64d16a.system.entry.js.map +0 -1
  591. package/dist/ripple/p-eccbad16.system.entry.js +0 -2
  592. package/dist/ripple/p-eccbad16.system.entry.js.map +0 -1
  593. package/dist/ripple/p-edae6ef2.entry.js +0 -2
  594. package/dist/ripple/p-edae6ef2.entry.js.map +0 -1
  595. package/dist/ripple/p-efc36352.entry.js +0 -2
  596. package/dist/ripple/p-efc36352.entry.js.map +0 -1
  597. package/dist/ripple/p-f09541fc.system.entry.js.map +0 -1
  598. package/dist/ripple/p-f4487f66.system.entry.js +0 -2
  599. package/dist/ripple/p-f4487f66.system.entry.js.map +0 -1
  600. package/dist/ripple/p-f5df5903.system.js.map +0 -1
  601. package/dist/ripple/p-f8d1e5a0.js.map +0 -1
  602. package/dist/ripple/p-fd8070fb.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as a,c as s,h as n,g as r}from"./p-1c23de4a.js";import{i as t,g as i}from"./p-edfba0e1.js";const e='.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus:not(:active){-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 #c6b4e3;-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 #c6b4e3;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 #c6b4e3;outline:none}:host *,wm-snackbar *{-webkit-box-sizing:border-box;box-sizing:border-box;margin:unset}:host .wm-snackbars,wm-snackbar .wm-snackbars{position:fixed;bottom:0;left:1.25rem;right:1.25rem;padding:0.25rem 0.625rem 1.875rem;z-index:2001;max-width:35.5rem;max-height:17.5rem;-webkit-overflow-scrolling:touch;overflow:auto}:host .wm-snackbars.empty,wm-snackbar .wm-snackbars.empty{-ms-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);-webkit-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);-moz-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);padding-top:0;padding-bottom:0}:host .wm-snackbars .wm-snack-wrapper,wm-snackbar .wm-snackbars .wm-snack-wrapper{width:100%;height:100%}:host .wm-snackbars .wm-snack-wrapper:not(:last-child),wm-snackbar .wm-snackbars .wm-snack-wrapper:not(:last-child){margin-bottom:1.25rem}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar{-webkit-box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 3px rgba(0, 0, 0, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 3px rgba(0, 0, 0, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 3px rgba(0, 0, 0, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-ms-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);-webkit-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);-moz-transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);transition:all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1);font-size:0.875rem;color:#fff;padding:0.9375rem 1.875rem;background:#4a4a4a;opacity:0;left:0;position:relative;font-family:inherit}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .link,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .link{letter-spacing:0;text-transform:none;font-size:0.875rem;border:none;background:transparent;padding-left:0;padding-right:0;height:auto;border-radius:0;line-height:1;color:#85dadf;margin:0 3.125rem 0 0.625rem;text-decoration:none;font-weight:600;cursor:pointer}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .link.new-window::after,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .link.new-window::after{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;display:inline;content:"\\f137";margin-left:0.25rem}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .link:hover,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .link:hover{text-decoration:underline}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .link:focus,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .link:focus{outline:none;border:none}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .link::-moz-focus-inner,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .link::-moz-focus-inner{border:0;outline:none}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar:not(:last-child),wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar:not(:last-child){margin-bottom:1.25rem}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar.active:not(button),wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar.active:not(button){opacity:1}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;padding:0}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .msgtext,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .msgtext{width:100%}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;background-color:#3b3b3b;color:#ffffff;cursor:pointer;border:none;font-size:1rem;padding:0;height:auto;line-height:1;min-width:2.75rem;min-height:2.75rem;text-align:center;letter-spacing:normal}@media screen and (min-width: 48rem){:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack{min-width:1.875rem;min-height:1.875rem}}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:before,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack: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:"\\f156"}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover{background-color:#fff;color:#4a4a4a}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus{outline:none}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack::-moz-focus-inner,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack::-moz-focus-inner{border:0;outline:none}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:active,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:active{-ms-transform:scale(0.9, 0.9);-webkit-transform:scale(0.9, 0.9);-moz-transform:scale(0.9, 0.9);transform:scale(0.9, 0.9)}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack>.tooltip,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack>.tooltip{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);font-size:0.875rem;text-transform:none;font-weight:normal;background:black;color:#fff;padding:0;line-height:normal;z-index:30}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover>.tooltip,:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack.user-is-tabbing:focus>.tooltip,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover>.tooltip,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack.user-is-tabbing:focus>.tooltip{clip:auto;width:auto;height:auto;opacity:1;-webkit-transition:opacity 500ms 500ms;transition:opacity 500ms 500ms;padding:0.375rem;top:2.75rem;left:2.75rem;white-space:nowrap;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media screen and (min-width: 48rem){:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover>.tooltip,:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack.user-is-tabbing:focus>.tooltip,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:hover>.tooltip,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack.user-is-tabbing:focus>.tooltip{top:2.0625rem;left:auto}}:host .wm-snackbars .wm-snack-wrapper .wm-snackbar .sr-only,wm-snackbar .wm-snackbars .wm-snack-wrapper .wm-snackbar .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important;top:0;left:0}:host .sr-only,wm-snackbar .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important;top:0;left:0}.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus:not(:active)>.tooltip{clip:auto;width:auto;height:auto;opacity:1;-webkit-transition:opacity 500ms 500ms;transition:opacity 500ms 500ms;padding:0.375rem;top:2.75rem;left:2.75rem;white-space:nowrap;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media screen and (min-width: 48rem){.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus:not(:active)>.tooltip{top:2.0625rem;left:auto}}.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .link:focus:not(:active){outline:none;background:-webkit-gradient(linear, left top, right top, color-stop(66%, #85dadf), color-stop(0, transparent)) repeat-x;background:linear-gradient(90deg, #85dadf 66%, transparent 0) repeat-x;background-size:0.375rem 0.1875rem;background-position:0 1em;border-radius:0;line-height:normal}';const o=class{constructor(n){a(this,n);this.wmSnackbarSnackFinished=s(this,"wmSnackbarSnackFinished",7);this.userFinishedSnack=s(this,"userFinishedSnack",7);this.wmSnackbarActionTriggered=s(this,"wmSnackbarActionTriggered",7);this.userTriggeredAction=s(this,"userTriggeredAction",7);this.parsedNotifications=[];this.isTabbing=false;this.timers=[];this.newNotification=false;this.newWindowMessage=t.formatMessage({id:"global.newWindowLink",defaultMessage:"Opens in a new window."});this.notifications="[]"}updateSnacks(a){const s=JSON.parse(a);const n=s.length;const r=this.parsedNotifications.length;this.parsedNotifications=[];for(let a=0;a<n;a++){let n={id:s[a].id.toString(),message:s[a].message.toString(),link:s[a].link.toString(),newWindow:!!s[a].newWindow};this.parsedNotifications=[...this.parsedNotifications,n]}if(r<this.parsedNotifications.length){const a=window.setTimeout((()=>this.snackExpired()),2e4);this.timers=[a,...this.timers];this.storeElToFocusOnDismiss();this.newNotification=true}else{this.newNotification=false}}componentWillLoad(){this.uid=this.el.id?this.el.id:i()}componentDidUpdate(){this.isTabbing&&this.newNotification&&this.focusLinkAndDisableTimer();this.newNotification=false}checkForTabbing(a){if(a.key==="Tab"){this.toggleTabbingOn()}}handleMouse(){this.toggleTabbingOff()}focusLinkAndDisableTimer(){const a=this.parsedNotifications[0];if(a.link){let s=this.el.shadowRoot.querySelector(`#action-${a.id}`);s.focus();this.stopTimer(a)}}toggleTabbingOn(){this.isTabbing=true;this.snackbarEl&&this.snackbarEl.classList.add("user-is-tabbing")}toggleTabbingOff(){this.isTabbing=false;this.snackbarEl&&this.snackbarEl.classList.remove("user-is-tabbing")}storeElToFocusOnDismiss(){let a=document.activeElement;while(a&&a.shadowRoot){a=a.shadowRoot.activeElement}this.focusOnDismiss=a}snackDismissed(a){this.endSnack(a);a.link&&this.isTabbing&&this.focusOnDismiss.focus()}snackExpired(){const a=this.parsedNotifications[this.parsedNotifications.length-1];this.endSnack(a)}endSnack(a){this.stopTimer(a);this.wmSnackbarSnackFinished.emit({id:a.id,message:a.message,link:a.link,newWindow:a.newWindow});this.userFinishedSnack.emit({id:a.id,message:a.message,link:a.link})}snackLinkClicked(a){this.stopTimer(a);this.wmSnackbarActionTriggered.emit({id:a.id,message:a.message,link:a.link,newWindow:a.newWindow});this.userTriggeredAction.emit({id:a.id,message:a.message,link:a.link})}stopTimer(a){this.parsedNotifications.forEach(((s,n)=>{if(s.id===a.id){clearTimeout(this.timers[n]);this.timers=this.timers.filter(((a,s)=>{if(s!==n){return a}}))}}))}renderSnackbars(){return this.parsedNotifications.map((a=>n("div",{class:"wm-snack-wrapper"},n("div",{id:`snack-${this.uid}`,class:"wm-snackbar active neutral"},n("div",{class:"sr-only",tabindex:a.link?0:-1,onFocus:()=>a.link&&this.snackDismissed(a)}),n("div",{class:"wm-snackbarmsg"},n("div",{class:"msgtext"},n("span",null,a.message),a.link&&n("a",{id:`action-${a.id}`,class:`link ${a.newWindow?"new-window":""}`,"aria-label":`Click to ${a.link}...${a.newWindow?" "+this.newWindowMessage:""}`,tabindex:0,onClick:()=>{this.snackLinkClicked(a)},onKeyDown:s=>s.key==="Enter"&&this.snackLinkClicked(a)},n("span",{"aria-hidden":"true"},a.link))),n("button",{id:`close-button-${a.id}`,"aria-label":"Close this notification",class:"closesnack",tabindex:a.link?0:-1,onClick:()=>this.snackDismissed(a)},n("span",{class:"tooltip","aria-hidden":"true"},"Close"))),n("div",{class:"sr-only",tabindex:a.link?0:-1,onFocus:()=>a.link&&this.snackDismissed(a)})))))}renderLiveRegion(){const a=this.parsedNotifications[0];const s=this.isTabbing?"":a.link;const n=`${a.message} ${s}`;const r=this.el.shadowRoot.querySelector(`#wm-live-region-${this.uid}`);if(r){r.innerHTML="";const a=document.createElement("span");a.innerHTML=n;r.appendChild(a)}}render(){this.newNotification&&this.renderLiveRegion();const a=this.renderSnackbars();const s=this.parsedNotifications.length===0?"empty":"";return n("div",{ref:a=>this.snackbarEl=a,class:`wm-snackbars ${s}`},n("div",{class:"sr-only","aria-live":"polite","aria-atomic":"false",id:`wm-live-region-${this.uid}`}),a)}get el(){return r(this)}static get watchers(){return{notifications:["updateSnacks"]}}};o.style=e;export{o as wm_snackbar};
2
- //# sourceMappingURL=p-edae6ef2.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["wmSnackbarCss","Snackbar","this","parsedNotifications","isTabbing","timers","newNotification","newWindowMessage","intl","formatMessage","id","defaultMessage","updateSnacks","newValue","parsedData","JSON","parse","length","prevNotificationsLength","i","toString","message","link","newWindow","newTimer","window","setTimeout","snackExpired","storeElToFocusOnDismiss","componentWillLoad","uid","el","generateId","componentDidUpdate","focusLinkAndDisableTimer","checkForTabbing","ev","key","toggleTabbingOn","handleMouse","toggleTabbingOff","latestNotification","shadowRoot","querySelector","focus","stopTimer","snackbarEl","classList","add","remove","triggeringButton","document","activeElement","focusOnDismiss","snackDismissed","notification","endSnack","wmSnackbarSnackFinished","emit","userFinishedSnack","snackLinkClicked","wmSnackbarActionTriggered","userTriggeredAction","forEach","notif","index","clearTimeout","filter","timer","ind","renderSnackbars","map","h","class","tabindex","onFocus","onClick","onKeyDown","renderLiveRegion","srAnnouncement","region","innerHTML","wrapper","createElement","appendChild","render","snackbars","wrappingClass","ref"],"sources":["./src/components/wm-snackbar/wm-snackbar.scss?tag=wm-snackbar&encapsulation=shadow","./src/components/wm-snackbar/wm-snackbar.tsx"],"sourcesContent":[":host,\r\nwm-snackbar {\r\n * {\r\n box-sizing: border-box;\r\n margin: unset; //Edge\r\n }\r\n\r\n .wm-snackbars {\r\n position: fixed;\r\n bottom: rem-calc(0);\r\n left: rem-calc(20);\r\n right: rem-calc(20);\r\n padding: rem-calc(4 10 30);\r\n z-index: 2001;\r\n max-width: rem-calc(568);\r\n max-height: rem-calc(280);\r\n -webkit-overflow-scrolling: touch;\r\n overflow: auto;\r\n\r\n &.empty {\r\n @include transition(all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1));\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n }\r\n\r\n .wm-snack-wrapper {\r\n width: 100%;\r\n height: 100%;\r\n\r\n &:not(:last-child) {\r\n margin-bottom: rem-calc(20);\r\n }\r\n\r\n .wm-snackbar {\r\n @include shadow8;\r\n @include displayFlex;\r\n @include alignItems(center);\r\n @include transition(all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1));\r\n font-size: rem-calc(14);\r\n color: #fff;\r\n padding: rem-calc(15 30);\r\n background: #4a4a4a;\r\n opacity: 0;\r\n left: 0;\r\n position: relative;\r\n font-family: inherit;\r\n\r\n .link {\r\n letter-spacing: 0;\r\n text-transform: none;\r\n font-size: rem-calc(14);\r\n border: none;\r\n background: transparent;\r\n padding-left: 0;\r\n padding-right: 0;\r\n height: auto;\r\n border-radius: 0;\r\n line-height: 1;\r\n color: $snackbar-link-color;\r\n margin: rem-calc(0 50 0 10);\r\n text-decoration: none;\r\n font-weight: 600;\r\n cursor: pointer;\r\n\r\n &.new-window::after {\r\n @include mdi-icon;\r\n display: inline;\r\n content: \"\\f137\";\r\n margin-left: rem-calc(4);\r\n }\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n &::-moz-focus-inner {\r\n border: 0;\r\n outline: none;\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n margin-bottom: rem-calc(20);\r\n }\r\n\r\n &.active:not(button) {\r\n opacity: 1;\r\n }\r\n\r\n .wm-snackbarmsg {\r\n @include displayFlex;\r\n @include justifyContent(space-between);\r\n @include alignItems(center);\r\n // font-size: rem-calc(14);\r\n width: 100%;\r\n position: relative;\r\n padding: 0;\r\n\r\n .msgtext {\r\n width: 100%;\r\n }\r\n\r\n .closesnack {\r\n @include box-shadow(none);\r\n @include border-radius(50%);\r\n background-color: #3b3b3b;\r\n color: #ffffff;\r\n cursor: pointer;\r\n border: none;\r\n font-size: rem-calc(16);\r\n padding: 0;\r\n height: auto;\r\n line-height: 1;\r\n min-width: rem-calc(44);\r\n min-height: rem-calc(44);\r\n text-align: center;\r\n letter-spacing: normal;\r\n\r\n @media screen and (min-width: rem-calc(768)) {\r\n min-width: rem-calc(30);\r\n min-height: rem-calc(30);\r\n }\r\n\r\n &:before {\r\n @include mdi-icon;\r\n content: \"\\f156\";\r\n }\r\n\r\n &:hover {\r\n background-color: #fff;\r\n color: $snackbar-color;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &::-moz-focus-inner {\r\n border: 0;\r\n outline: none;\r\n }\r\n\r\n &:active {\r\n @include scale($xVal: 0.9, $yVal: 0.9);\r\n }\r\n\r\n > .tooltip {\r\n position: absolute;\r\n opacity: 0;\r\n width: 1px;\r\n height: 1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n font-size: rem-calc(14);\r\n text-transform: none;\r\n font-weight: normal;\r\n background: black;\r\n color: #fff;\r\n padding: 0;\r\n line-height: normal;\r\n z-index: 30;\r\n }\r\n\r\n &:hover > .tooltip,\r\n &.user-is-tabbing:focus > .tooltip {\r\n clip: auto;\r\n width: auto;\r\n height: auto;\r\n opacity: 1;\r\n transition: opacity 500ms 500ms;\r\n padding: rem-calc(6);\r\n top: rem-calc(44);\r\n left: rem-calc(44);\r\n white-space: nowrap;\r\n transform: translateX(-50%);\r\n @media screen and (min-width: rem-calc(768)) {\r\n top: rem-calc(33);\r\n left: auto;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .sr-only {\r\n @include srOnly;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n }\r\n }\r\n .sr-only {\r\n @include srOnly;\r\n top: 0;\r\n left: 0;\r\n }\r\n}\r\n.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus:not(:active) {\r\n @extend %focus-on-dark;\r\n\r\n > .tooltip {\r\n clip: auto;\r\n width: auto;\r\n height: auto;\r\n opacity: 1;\r\n transition: opacity 500ms 500ms;\r\n padding: rem-calc(6);\r\n top: rem-calc(44);\r\n left: rem-calc(44);\r\n white-space: nowrap;\r\n transform: translateX(-50%);\r\n @media screen and (min-width: rem-calc(768)) {\r\n top: rem-calc(33);\r\n left: auto;\r\n }\r\n }\r\n}\r\n\r\n.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .link:focus:not(:active) {\r\n outline: none;\r\n background: linear-gradient(90deg, $snackbar-link-color 66%, transparent 0) repeat-x;\r\n background-size: rem-calc(6px 3px);\r\n background-position: 0 1em;\r\n border-radius: 0;\r\n line-height: normal;\r\n}\r\n","import { h, Component, Element, Prop, Event, EventEmitter, Watch, Listen } from \"@stencil/core\";\r\nimport { generateId, intl } from \"../../global/functions\";\r\nimport { Notification } from \"../../global/interfaces\";\r\n@Component({\r\n tag: \"wm-snackbar\",\r\n styleUrl: \"wm-snackbar.scss\",\r\n shadow: true,\r\n})\r\nexport class Snackbar {\r\n @Element() el!: HTMLElement;\r\n //Prop receives notifications as JSON string, which is later parsed into an array of objects.\r\n @Prop({ mutable: true, reflect: true }) notifications: string = \"[]\";\r\n\r\n private parsedNotifications: Array<Notification> = []; //Holds the parsed array\r\n private uid!: string;\r\n private focusOnDismiss!: HTMLElement;\r\n private isTabbing: boolean = false; //For screenreader purposes, to ensure link receives focus even after screenreader interprets \"enter\" as a \"click\"\r\n private timers: Array<number> = [];\r\n private newNotification: boolean = false;\r\n private snackbarEl!: HTMLDivElement;\r\n private newWindowMessage = intl.formatMessage({\r\n id: \"global.newWindowLink\",\r\n defaultMessage: \"Opens in a new window.\",\r\n });\r\n\r\n @Event() wmSnackbarSnackFinished!: EventEmitter<Object>;\r\n @Event() userFinishedSnack!: EventEmitter<Object>; // deprecated in favor of wmSnackbarSnackFinished\r\n @Event() wmSnackbarActionTriggered!: EventEmitter<Object>;\r\n @Event() userTriggeredAction!: EventEmitter<Object>; // deprecated in favor of wmSnackbarActionTriggered\r\n\r\n @Watch(\"notifications\")\r\n updateSnacks(newValue: string) {\r\n const parsedData = JSON.parse(newValue);\r\n const length = parsedData.length;\r\n const prevNotificationsLength = this.parsedNotifications.length;\r\n this.parsedNotifications = [];\r\n\r\n //Parse notifications received as props and store a reference to them\r\n for (let i = 0; i < length; i++) {\r\n let newNotification: any = {\r\n id: parsedData[i].id.toString(),\r\n message: parsedData[i].message.toString(),\r\n link: parsedData[i].link.toString(),\r\n newWindow: !!parsedData[i].newWindow,\r\n };\r\n this.parsedNotifications = [...this.parsedNotifications, newNotification];\r\n }\r\n\r\n //If a new notification was added, set a timer and store a reference to the current active element so that if focus must move to the notification, it can return the user where they were once they dismiss the notification.\r\n if (prevNotificationsLength < this.parsedNotifications.length) {\r\n const newTimer = window.setTimeout(() => this.snackExpired(), 20000);\r\n this.timers = [newTimer, ...this.timers];\r\n this.storeElToFocusOnDismiss();\r\n this.newNotification = true;\r\n } else {\r\n this.newNotification = false;\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n this.uid = this.el.id ? this.el.id : generateId();\r\n }\r\n\r\n //A change in the notificaiton prop will trigger the update function. The update's only role is to determine how focus should be managed when a notification is added.\r\n componentDidUpdate() {\r\n //If the user is tabbing and there's a new notification, focus the link and disable timer.\r\n this.isTabbing && this.newNotification && this.focusLinkAndDisableTimer();\r\n this.newNotification = false;\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n checkForTabbing(ev: KeyboardEvent) {\r\n if (ev.key === \"Tab\") {\r\n this.toggleTabbingOn();\r\n }\r\n }\r\n\r\n //Workaround for screenreader's triggering click event on \"enter\".\r\n @Listen(\"mouseover\", { target: \"document\" })\r\n handleMouse() {\r\n this.toggleTabbingOff();\r\n }\r\n\r\n focusLinkAndDisableTimer() {\r\n //If the new notification has a link, focus the link and clear the timeout. This is for accessibility purposes, for keyboard/screenreader users.\r\n const latestNotification = this.parsedNotifications[0];\r\n\r\n if (latestNotification.link) {\r\n let link = this.el.shadowRoot!.querySelector(`#action-${latestNotification.id}`) as HTMLAnchorElement;\r\n link.focus();\r\n this.stopTimer(latestNotification);\r\n }\r\n }\r\n\r\n toggleTabbingOn() {\r\n this.isTabbing = true;\r\n this.snackbarEl && this.snackbarEl.classList.add(\"user-is-tabbing\");\r\n }\r\n\r\n toggleTabbingOff() {\r\n this.isTabbing = false;\r\n this.snackbarEl && this.snackbarEl.classList.remove(\"user-is-tabbing\");\r\n }\r\n\r\n storeElToFocusOnDismiss() {\r\n let triggeringButton = document.activeElement! as HTMLElement;\r\n while (triggeringButton && triggeringButton.shadowRoot) {\r\n triggeringButton = triggeringButton.shadowRoot.activeElement as HTMLButtonElement;\r\n }\r\n this.focusOnDismiss = triggeringButton;\r\n }\r\n\r\n snackDismissed(notification: Notification) {\r\n this.endSnack(notification);\r\n //Focus should only be returned if it was moved in the first place, i.e., there was a link and the user was tabbing. Otherwise, for a mouse user, the user's focus would jump back to the triggering element.\r\n notification.link && this.isTabbing && this.focusOnDismiss.focus();\r\n }\r\n\r\n //Remove snack from notification list once timer runs out\r\n snackExpired() {\r\n const notification = this.parsedNotifications[this.parsedNotifications.length - 1];\r\n this.endSnack(notification);\r\n }\r\n\r\n endSnack(notification: Notification) {\r\n //App listens for userFinishedSnack event and deletes the emitted notification.\r\n this.stopTimer(notification);\r\n this.wmSnackbarSnackFinished.emit({\r\n id: notification.id,\r\n message: notification.message,\r\n link: notification.link,\r\n newWindow: notification.newWindow,\r\n });\r\n // deprecated\r\n this.userFinishedSnack.emit({\r\n id: notification.id,\r\n message: notification.message,\r\n link: notification.link,\r\n });\r\n }\r\n\r\n snackLinkClicked(notification: Notification) {\r\n //App listens for userTriggeredAction event, deletes emitted notification, and takes over focus.\r\n this.stopTimer(notification);\r\n this.wmSnackbarActionTriggered.emit({\r\n id: notification.id,\r\n message: notification.message,\r\n link: notification.link,\r\n newWindow: notification.newWindow,\r\n });\r\n // deprecated\r\n this.userTriggeredAction.emit({\r\n id: notification.id,\r\n message: notification.message,\r\n link: notification.link,\r\n });\r\n }\r\n\r\n //Delete the timer corresponding to the dismissed notification\r\n stopTimer(notification: Notification) {\r\n this.parsedNotifications.forEach((notif, index) => {\r\n if (notif.id === notification.id) {\r\n clearTimeout(this.timers[index]);\r\n this.timers = this.timers.filter((timer, ind) => {\r\n if (ind !== index) {\r\n return timer;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n renderSnackbars() {\r\n return this.parsedNotifications.map((notification) => (\r\n <div class=\"wm-snack-wrapper\">\r\n <div id={`snack-${this.uid}`} class=\"wm-snackbar active neutral\">\r\n <div\r\n class=\"sr-only\"\r\n tabindex={notification.link ? 0 : -1}\r\n onFocus={() => notification.link && this.snackDismissed(notification)}\r\n />\r\n\r\n <div class=\"wm-snackbarmsg\">\r\n <div class=\"msgtext\">\r\n <span>{notification.message}</span>\r\n {notification.link && (\r\n <a\r\n id={`action-${notification.id}`}\r\n class={`link ${notification.newWindow ? \"new-window\" : \"\"}`}\r\n aria-label={`Click to ${notification.link}...${\r\n notification.newWindow ? \" \" + this.newWindowMessage : \"\"\r\n }`}\r\n tabindex={0}\r\n onClick={() => {\r\n this.snackLinkClicked(notification);\r\n }}\r\n onKeyDown={(ev: KeyboardEvent) => ev.key === \"Enter\" && this.snackLinkClicked(notification)}\r\n >\r\n <span aria-hidden=\"true\">{notification.link}</span>\r\n </a>\r\n )}\r\n </div>\r\n <button\r\n id={`close-button-${notification.id}`}\r\n aria-label=\"Close this notification\"\r\n class=\"closesnack\"\r\n tabindex={notification.link ? 0 : -1}\r\n onClick={() => this.snackDismissed(notification)}\r\n >\r\n <span class=\"tooltip\" aria-hidden=\"true\">\r\n Close\r\n </span>\r\n </button>\r\n </div>\r\n <div\r\n class=\"sr-only\"\r\n tabindex={notification.link ? 0 : -1}\r\n onFocus={() => notification.link && this.snackDismissed(notification)}\r\n />\r\n </div>\r\n </div>\r\n ));\r\n }\r\n\r\n renderLiveRegion() {\r\n const latestNotification = this.parsedNotifications[0];\r\n const link = this.isTabbing ? \"\" : latestNotification.link;\r\n const srAnnouncement = `${latestNotification.message} ${link}`;\r\n\r\n const region = this.el.shadowRoot!.querySelector(`#wm-live-region-${this.uid}`) as HTMLElement;\r\n\r\n if (region) {\r\n region.innerHTML = \"\";\r\n const wrapper = document.createElement(\"span\");\r\n wrapper.innerHTML = srAnnouncement;\r\n region.appendChild(wrapper);\r\n }\r\n }\r\n\r\n render() {\r\n this.newNotification && this.renderLiveRegion();\r\n const snackbars = this.renderSnackbars();\r\n const wrappingClass = this.parsedNotifications.length === 0 ? \"empty\" : \"\";\r\n\r\n return (\r\n <div ref={(el) => (this.snackbarEl = el as HTMLDivElement)} class={`wm-snackbars ${wrappingClass}`}>\r\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"false\" id={`wm-live-region-${this.uid}`}></div>\r\n {snackbars}\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,f as o,h as i,H as n,g as r}from"./p-1c23de4a.js";import{g as s,i as a,u as l}from"./p-edfba0e1.js";const d=':host .wm-button,wm-uploader .wm-button{-ms-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:inherit;border:2px solid #575195;color:#575195;font-family:inherit;font-size:0.75rem;font-weight:700;height:2.75rem;padding:0 1.3333333333em;cursor:pointer;position:relative;background:#fff;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-decoration:none;text-transform:uppercase;letter-spacing:0.01875rem;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media screen and (min-width: 48rem){:host .wm-button,wm-uploader .wm-button{height:3.3333333333em}}:host .wm-button.nowrap,wm-uploader .wm-button.nowrap{display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .wm-button:focus,wm-uploader .wm-button:focus{outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button::-moz-focus-inner,wm-uploader .wm-button::-moz-focus-inner{border:0;outline:none}:host .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled) :host .wm-button.-textonly .button-text,wm-uploader .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled) :host .wm-button.-textonly .button-text,:host .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled) wm-uploader .wm-button.-textonly .button-text,wm-uploader .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled) wm-uploader .wm-button.-textonly .button-text{background:-webkit-gradient(linear, left top, right top, color-stop(66%, #3862e9), color-stop(0, transparent)) repeat-x;background:linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled),wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark),wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark){-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}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark)::-moz-focus-inner,wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark)::-moz-focus-inner{border:0}:host .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled),wm-uploader .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled){background:transparent;border:2px solid #fff;color:#fff}:host .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled):hover,wm-uploader .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled):hover{color:#575195;background:#e6e6e6;border:2px solid #e6e6e6}:host .wm-button.dark.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled).dark,wm-uploader .wm-button.dark.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled).dark{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-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 #c6b4e3;-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 #c6b4e3;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 #c6b4e3;outline:none}:host .wm-button:active:not(:disabled):not(.disabled):not(.-textonly):not(.-actionbutton):not(.displayedoption),wm-uploader .wm-button:active:not(:disabled):not(.disabled):not(.-textonly):not(.-actionbutton):not(.displayedoption){-ms-transform:scale(0.9, 0.9);-webkit-transform:scale(0.9, 0.9);-moz-transform:scale(0.9, 0.9);transform:scale(0.9, 0.9)}:host .wm-button .mdi,wm-uploader .wm-button .mdi{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}:host .wm-button:not(.-icononly):not(.-navigational) .mdi,wm-uploader .wm-button:not(.-icononly):not(.-navigational) .mdi{margin-right:0.3125rem}:host .wm-button[dir=RTL] :not(.-icononly) .mdi,wm-uploader .wm-button[dir=RTL] :not(.-icononly) .mdi{margin-left:0.3125rem;margin-right:0}:host .wm-button.-primary:not(.-textonly),wm-uploader .wm-button.-primary:not(.-textonly){background:#575195;color:#fff}:host .wm-button.-primary:not(.-textonly):not(:focus),wm-uploader .wm-button.-primary:not(.-textonly):not(:focus){-webkit-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2)}:host .wm-button.-primary:not(.-textonly):hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-primary:not(.-textonly):hover:not(:disabled):not(.disabled){background:#464177}:host .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled),wm-uploader .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled){color:#575195;background:#fff;border:2px solid #fff}:host .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled):hover,wm-uploader .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled):hover{color:#575195;background:#e6e6e6;border:2px solid #e6e6e6}:host .wm-button.-secondary:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-secondary:hover:not(:disabled):not(.disabled),:host .wm-button.-selector:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-selector:hover:not(:disabled):not(.disabled),:host .wm-button.-icononly:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-icononly:hover:not(:disabled):not(.disabled){background:#464177;color:#fff}:host .wm-button.-textonly,wm-uploader .wm-button.-textonly{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;letter-spacing:0;text-transform:none;text-align:initial;font-size:0.875rem;border:none;background:transparent;padding-left:0;padding-right:0;height:auto;border-radius:0;line-height:1}:host .wm-button.-textonly+.-textonly,wm-uploader .wm-button.-textonly+.-textonly{margin-left:0.3125rem}:host .wm-button.-textonly:focus,wm-uploader .wm-button.-textonly:focus{outline:none}:host .wm-button.-textonly::-moz-focus-inner,wm-uploader .wm-button.-textonly::-moz-focus-inner{border:0;outline:none}:host .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled) .button-text,wm-uploader .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled) .button-text{background:-webkit-gradient(linear, left top, right top, color-stop(66%, #3862e9), color-stop(0, transparent)) repeat-x;background:linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled).dark .button-text,wm-uploader .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled).dark .button-text{background:-webkit-gradient(linear, left top, right top, color-stop(66%, #fff), color-stop(0, transparent)) repeat-x;background:linear-gradient(90deg, #fff 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.-textonly.small,wm-uploader .wm-button.-textonly.small{font-size:0.625rem}:host .wm-button.-textonly:hover:not(:disabled):not(.disabled):not(.-permanentlydelete),wm-uploader .wm-button.-textonly:hover:not(:disabled):not(.disabled):not(.-permanentlydelete){text-decoration:underline}:host .wm-button.-textonly.-permanentlydelete,wm-uploader .wm-button.-textonly.-permanentlydelete{color:#c0392b}:host .wm-button.-textonly.-permanentlydelete:hover:not(:disabled):not(.disabled):not(.dark),wm-uploader .wm-button.-textonly.-permanentlydelete:hover:not(:disabled):not(.disabled):not(.dark){text-decoration:underline;color:#c0392b !important}:host .wm-button.-textonly.dark,wm-uploader .wm-button.-textonly.dark{color:#fff}:host .wm-button.-textonly.dark:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-textonly.dark:hover:not(:disabled):not(.disabled){text-decoration:underline;color:#fff !important}:host .wm-button.-icononly,wm-uploader .wm-button.-icononly,:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;font-size:1rem;padding:0;height:auto;line-height:1;min-width:2.75rem;min-height:2.75rem;text-align:center;letter-spacing:normal}:host .wm-button.-icononly:not(:focus),wm-uploader .wm-button.-icononly:not(:focus),:host .wm-button.-navigational:not(:focus),wm-uploader .wm-button.-navigational:not(:focus){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media screen and (min-width: 48rem){:host .wm-button.-icononly,wm-uploader .wm-button.-icononly,:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{min-width:2.5rem;min-height:2.5rem}}:host .wm-button.-icononly,wm-uploader .wm-button.-icononly{border-width:1px !important}:host .wm-button.-icononly:before,wm-uploader .wm-button.-icononly: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}:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{border:none !important;background-color:transparent}:host .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled),wm-uploader .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled){color:#575195}:host .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled):hover,wm-uploader .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled):hover,:host .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled).selected,wm-uploader .wm-button.-navigational:not(.dark):not(:disabled):not(.disabled).selected{background-color:#d7d6d9}:host .wm-button.-navigational:before,wm-uploader .wm-button.-navigational: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}:host .wm-button.-permanentlydelete:not(.-textonly),wm-uploader .wm-button.-permanentlydelete:not(.-textonly){background:#c0392b;border-color:#c0392b;color:#fff}:host .wm-button.-permanentlydelete:not(.-textonly):hover:not(:disabled):not(.disabled):not(.dark),wm-uploader .wm-button.-permanentlydelete:not(.-textonly):hover:not(:disabled):not(.disabled):not(.dark){background:#9a2e22;border-color:#9a2e22}:host .wm-button.-pairnegative,wm-uploader .wm-button.-pairnegative{background:#cc4c3e;border-color:#cc4c3e;color:#fff}:host .wm-button.-pairnegative:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-pairnegative:hover:not(:disabled):not(.disabled){background:#a33d32;border-color:#a33d32}:host .wm-button.-pairpositive,wm-uploader .wm-button.-pairpositive{background:#15868d;border-color:#15868d;color:#fff}:host .wm-button.-pairpositive:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-pairpositive:hover:not(:disabled):not(.disabled){background:#116b71;border-color:#116b71}:host .wm-button.-selector,wm-uploader .wm-button.-selector,:host .wm-button.-selector-primary,wm-uploader .wm-button.-selector-primary{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;display:block;background:transparent;border:2px solid #575195;border-radius:3px;height:2.75rem;min-width:11.4375rem;padding:0 1.875rem 0 0.9375rem;line-height:normal;font-family:inherit;color:#575195;font-weight:700;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.01875rem;text-align:left}@media screen and (min-width: 48rem){:host .wm-button.-selector,wm-uploader .wm-button.-selector,:host .wm-button.-selector-primary,wm-uploader .wm-button.-selector-primary{height:2.5rem}}:host .wm-button.-selector:before,wm-uploader .wm-button.-selector:before,:host .wm-button.-selector-primary:before,wm-uploader .wm-button.-selector-primary: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:"\\f140";position:absolute;right:0.5625rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:0.875rem;font-weight:700;pointer-events:none}:host .wm-button.-selector:active,wm-uploader .wm-button.-selector:active,:host .wm-button.-selector-primary:active,wm-uploader .wm-button.-selector-primary:active{-ms-transform:scale(1, 1) !important;-webkit-transform:scale(1, 1) !important;transform:scale(1, 1) !important}:host .wm-button.-selector::-moz-focus-inner,wm-uploader .wm-button.-selector::-moz-focus-inner,:host .wm-button.-selector-primary::-moz-focus-inner,wm-uploader .wm-button.-selector-primary::-moz-focus-inner{border:0}:host .wm-button.-selector .overflowcontrol,wm-uploader .wm-button.-selector .overflowcontrol,:host .wm-button.-selector-primary .overflowcontrol,wm-uploader .wm-button.-selector-primary .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:visible}:host .wm-button.-selector.dark:not(:disabled):not(.disabled):hover,wm-uploader .wm-button.-selector.dark:not(:disabled):not(.disabled):hover,:host .wm-button.-selector-primary.dark:not(:disabled):not(.disabled):hover,wm-uploader .wm-button.-selector-primary.dark:not(:disabled):not(.disabled):hover{color:#575195;background:#e6e6e6;border:2px solid #e6e6e6}:host .wm-button.-selector-primary,wm-uploader .wm-button.-selector-primary{background:#575195;color:#fff}:host .wm-button.-selector-primary:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-selector-primary:hover:not(:disabled):not(.disabled){background:#464177}:host .wm-button.-selector-primary.dark:not(:disabled):not(.disabled),wm-uploader .wm-button.-selector-primary.dark:not(:disabled):not(.disabled){color:#575195;background:#fff;border:2px solid #fff}:host .wm-button:disabled,wm-uploader .wm-button:disabled,:host .wm-button.disabled,wm-uploader .wm-button.disabled{background:inherit;border-color:#737373;color:#737373;cursor:default;pointer-events:none}:host .wm-button:disabled.-primary,wm-uploader .wm-button:disabled.-primary,:host .wm-button:disabled.-permanentlydelete,wm-uploader .wm-button:disabled.-permanentlydelete,:host .wm-button:disabled.-pairnegative,wm-uploader .wm-button:disabled.-pairnegative,:host .wm-button:disabled.-pairpositive,wm-uploader .wm-button:disabled.-pairpositive,:host .wm-button.disabled.-primary,wm-uploader .wm-button.disabled.-primary,:host .wm-button.disabled.-permanentlydelete,wm-uploader .wm-button.disabled.-permanentlydelete,:host .wm-button.disabled.-pairnegative,wm-uploader .wm-button.disabled.-pairnegative,:host .wm-button.disabled.-pairpositive,wm-uploader .wm-button.disabled.-pairpositive{background:#737373;color:#fff;border-color:#737373}:host .wm-button:disabled.-secondary,wm-uploader .wm-button:disabled.-secondary,:host .wm-button.disabled.-secondary,wm-uploader .wm-button.disabled.-secondary{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button:disabled.-selector,wm-uploader .wm-button:disabled.-selector,:host .wm-button.disabled.-selector,wm-uploader .wm-button.disabled.-selector{color:#737373}:host .wm-button:disabled.-selector-primary,wm-uploader .wm-button:disabled.-selector-primary,:host .wm-button.disabled.-selector-primary,wm-uploader .wm-button.disabled.-selector-primary{background:#737373;color:#fff;border-color:#737373}:host .wm-button:disabled.-textonly,wm-uploader .wm-button:disabled.-textonly,:host .wm-button.disabled.-textonly,wm-uploader .wm-button.disabled.-textonly{color:#6b6b6b;background:transparent}:host .wm-button:disabled.dark.-secondary:not(.-permanentlydelete),wm-uploader .wm-button:disabled.dark.-secondary:not(.-permanentlydelete),:host .wm-button:disabled.dark.-selector,wm-uploader .wm-button:disabled.dark.-selector,:host .wm-button:disabled.dark.-textonly,wm-uploader .wm-button:disabled.dark.-textonly,:host .wm-button:disabled.dark.-navigational,wm-uploader .wm-button:disabled.dark.-navigational,:host .wm-button:disabled.dark.-icononly,wm-uploader .wm-button:disabled.dark.-icononly,:host .wm-button.disabled.dark.-secondary:not(.-permanentlydelete),wm-uploader .wm-button.disabled.dark.-secondary:not(.-permanentlydelete),:host .wm-button.disabled.dark.-selector,wm-uploader .wm-button.disabled.dark.-selector,:host .wm-button.disabled.dark.-textonly,wm-uploader .wm-button.disabled.dark.-textonly,:host .wm-button.disabled.dark.-navigational,wm-uploader .wm-button.disabled.dark.-navigational,:host .wm-button.disabled.dark.-icononly,wm-uploader .wm-button.disabled.dark.-icononly{color:#b5b5b5;border-color:#b5b5b5}:host .wm-button:disabled.dark.-primary,wm-uploader .wm-button:disabled.dark.-primary,:host .wm-button:disabled.dark.-selector-primary,wm-uploader .wm-button:disabled.dark.-selector-primary,:host .wm-button:disabled.dark.-permanentlydelete:not(.-textonly),wm-uploader .wm-button:disabled.dark.-permanentlydelete:not(.-textonly),:host .wm-button.disabled.dark.-primary,wm-uploader .wm-button.disabled.dark.-primary,:host .wm-button.disabled.dark.-selector-primary,wm-uploader .wm-button.disabled.dark.-selector-primary,:host .wm-button.disabled.dark.-permanentlydelete:not(.-textonly),wm-uploader .wm-button.disabled.dark.-permanentlydelete:not(.-textonly){background:#a6a6a6;border-color:#a6a6a6;color:#353b48}:host a.wm-button,wm-uploader a.wm-button,:host label.wm-button,wm-uploader label.wm-button{height:auto;padding-top:0.75rem;padding-bottom:0.75rem}:host,wm-uploader{display:block;position:relative;max-width:1140px}:host[dir=RTL] .mdi,wm-uploader[dir=RTL] .mdi{margin-left:0.3125rem;margin-right:0}:host input:focus+.wm-button.user-is-tabbing,wm-uploader input:focus+.wm-button.user-is-tabbing{-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 !important;-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 !important;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 !important}:host *,wm-uploader *{-webkit-box-sizing:border-box;box-sizing:border-box}.wm-button.disabled{pointer-events:initial !important}.wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}.wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}.wrapper .label .required{color:#c0392b}.wrapper.label-left{-ms-flex-direction:row;flex-direction:row}.wrapper.label-left .label-wrapper{line-height:2.5rem}.wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}.wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper.invalid .label{color:#c0392b}.wrapper.invalid .label:after{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:"\\f026";margin-left:0.3125rem}[dir=RTL] .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}.wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}#label{margin-bottom:0.5rem}.header .info-wrapper{-ms-flex-align:center;align-items:center}.header .info-wrapper .info{font-size:0.875rem;margin-left:1rem}.header .accepted-types{font-size:0.875rem}.header .requirements{font-size:0.875rem;margin-left:1rem}.footer{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:end;align-items:flex-end;padding:0.9375rem 1.875rem}.footer .notif-wrapper{-ms-flex-align:end;align-items:flex-end}.footer .filecount-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.footer .filecount-wrapper .filecount{font-size:0.875rem;margin-right:1rem}.notif-wrapper{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-bottom:0.75rem}.notif-wrapper .requirements{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.notif,#error{padding-top:0.25rem;font-size:0.875rem;font-style:italic}.notif#error,#error#error{color:#c0392b}.info-wrapper{position:relative;display:-ms-flexbox;display:flex}.list-container{overflow-y:unset}.list-container.checkmark-spacer{margin-right:2.75rem}.list-container:has(.error-list,.inprogress-list,.file-list){margin-top:2.5rem}.list-container ul{padding:0;width:100%;margin:0}.list-container ul wm-file{margin-bottom:0.5rem}.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.empty-block{margin:5rem auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.empty-block .upload-file{margin-bottom:1.875rem}.empty-block .empty-message{font-size:0.875rem;margin-bottom:0.4375rem}.empty-block .empty-message.large{font-size:1.5rem}.empty-block .info-wrapper{-ms-flex-pack:center;justify-content:center;width:100%}.empty-block .info-wrapper .wm-button{width:auto}.header.type1,.header.type2{margin-bottom:1rem}.header .slot-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:start;align-items:flex-start}.notif-wrapper.type1,.notif-wrapper.type2{-ms-flex-direction:column;flex-direction:column;margin-bottom:1rem}.list-container.type1,.list-container.type2{overflow-y:auto}.list-container.type1 ul,.list-container.type2 ul{margin:revert}.list-container.type1 .file-list li,.list-container.type1 .inprogress-list li,.list-container.type2 .file-list li,.list-container.type2 .inprogress-list li{margin-bottom:1.625rem}.list-container.type1 .error-list li,.list-container.type2 .error-list li{margin-bottom:1.25rem}.list-container.type1{padding:0 1.875rem;height:16.25rem}';const m=class{constructor(o){t(this,o);this.wmUploaderFilesSelected=e(this,"wmUploaderFilesSelected",7);this.wmFilesSelected=e(this,"wmFilesSelected",7);this.wmUploaderDeleteFile=e(this,"wmUploaderDeleteFile",7);this.wmDeleteFile=e(this,"wmDeleteFile",7);this.wmUploaderDownloadFile=e(this,"wmUploaderDownloadFile",7);this.wmDownloadFile=e(this,"wmDownloadFile",7);this.wmUploaderPreviewFile=e(this,"wmUploaderPreviewFile",7);this.wmFileDelete=e(this,"wmFileDelete",7);this.wmFileDownload=e(this,"wmFileDownload",7);this.wmFilePreview=e(this,"wmFilePreview",7);this.inputId=s();this.uploaderType=undefined;this.type=undefined;this.label=undefined;this.buttonText=undefined;this.info=undefined;this.emptyStateText=undefined;this.icon=undefined;this.fileTypes="pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv";this.maxSize=undefined;this.maxFiles=undefined;this.sortBy="date";this.showInfo="time";this.errorMessage=undefined;this.requiredField=undefined;this.files=undefined;this.fileList=[];this.filesToUpload=[];this.isTabbing=false;this.rejectedFiles=undefined;this.errorList=[];this.notif=undefined;this.internalErrorMessage=undefined;this.announcement="";this.numFilesInProgress=undefined;this.isCondensed=false}get uploadButtonEl(){return this.el.shadowRoot.querySelector(`#${this.inputId}`)}get tempUploaderType(){return this.type||this.uploaderType}get effectiveMaxSize(){const t=100;const e=100;return this.maxSize?Math.min(this.maxSize,e):t}get fileLimitReached(){return this.maxFiles&&this.fileList.length>=this.maxFiles}get displayedErrorMessage(){return this.errorMessage||this.internalErrorMessage||""}get fileLimitExceededMessage(){return a.formatMessage({id:"uploader.fileUploadLimitExceeded",defaultMessage:"Upload unsuccessful because file selection would exceed the maximum number of files",description:"Message displayed when trying to upload too many files"})}get fileLimitReachedMessage(){return a.formatMessage({id:"uploader.fileUploadLimitReached",defaultMessage:"The maximum number of files has been reached",description:"Message displayed when trying to upload additional files, but the limit has been reached"})}get fileCountMessage(){return a.formatMessage({id:"uploader.fileCount",defaultMessage:"{x} of {y} Files",description:"A count of the number of files currently uploaded"},{x:this.fileList.length,y:this.maxFiles})}get maxSizeMessage(){return a.formatMessage({id:"uploader.maxSize",defaultMessage:"Maximum file size {maxSize}MB",description:"An indicator of the maximum file size the uploader allows"},{maxSize:this.effectiveMaxSize})}get acceptedFileTypesMessage(){const t="."+this.fileTypes.split(" ").join(", .");return a.formatMessage({id:"uploader.acceptedFileTypes",defaultMessage:"Accepted file {amount, plural, =1 {type} other {types}}: {fileTypes}"},{fileTypes:t,amount:this.fileTypes.split(" ").length})}toggleTabbingOn(){this.isTabbing=true}toggleTabbingOff(){this.isTabbing=false}handleUploadProgress(t){this.fileList.map((e=>{if(e.id===t.detail.id){e.progress=t.detail.progress;o(this.el)}}));if(t.detail.progress===100){this.numFilesInProgress-=1}if(!this.srProgress&&this.numFilesInProgress){const t=this.numFilesInProgress;this.srProgress=setInterval((()=>{const e=this.fileList.reduce(((t,e)=>e.progress?t+e.progress:t),0);this.announce(a.formatMessage({id:"uploader.uploadProgress",defaultMessage:"Upload progress: {percentage}%"},{percentage:Math.floor(e/t)}))}),5e3)}}handleFileErrorCleared(t){const e=t.detail.name;this.errorList=this.errorList.filter((t=>t.name!=e));this.uploadButtonEl.focus()}handleFileDeleted(t){this.clearErrors();o(this.el);this.wmUploaderDeleteFile.emit(t.detail);this.wmFileDelete.emit(t.detail);this.wmDeleteFile.emit(t.detail)}handleFilePreviewed(t){this.clearErrors();this.wmUploaderPreviewFile.emit(t.detail);this.wmFilePreview.emit(t.detail)}handleFileDownloaded(t){this.clearErrors();this.wmUploaderDownloadFile.emit(t.detail);this.wmFileDownload.emit(t.detail);this.wmDownloadFile.emit(t.detail)}parseFiles(){if(!!this.files){if(typeof this.files==="string"){let t=JSON.parse(this.files);if(typeof t==="object"){t.forEach((t=>{if(t.size&&(typeof t.size==="number"||t.size.match(/^[0-9]+$/))){const e=this.convertBytes(t.size);t.size=`${e.size.toFixed(0)} ${e.unit}`}}));this.fileList=t}else{throw new Error("could not parse string passed to files attribute")}}else{throw new Error("Attribute 'files' should be a string")}}}focusAfterRemoval(t,e){if(this.isTabbing&&t.length<e.length){const o=t.map((t=>t.id));const i=e.map((t=>t.id));const n=i.filter((t=>!o.includes(t)))[0];if(i.indexOf(n)>0){const o=i[i.indexOf(n)-1];const r=this.el.shadowRoot.querySelector("#file-"+o);const s=r===null||r===void 0?void 0:r.shadowRoot.querySelectorAll("wm-button");if(s&&s.length>0){const t=s[s.length-1];t.focus()}else{this.focusAfterRemoval(t.filter((t=>t.id!==o)),e)}}else{this.uploadButtonEl.focus()}}}parseRejectedFiles(){if(!!this.rejectedFiles){if(typeof this.files==="string"){const t=JSON.parse(this.rejectedFiles);if(typeof t==="object"){this.errorList=t}else{throw new Error("could not parse string passed to errors attribute")}}else{throw new Error("Attribute 'rejected-files' should be a string")}}}uploadNotifications(t,e){if(e>0&&t===0){setTimeout((()=>{this.notif="";this.internalErrorMessage=""}),20*1e3);const t=a.formatMessage({id:"uploader.finishedUploading",defaultMessage:"Finished uploading"});this.notif=t;this.announce(t);this.numFilesInProgress=null;clearInterval(this.srProgress);o(this.el)}else if(t>0&&t!=e){const e=a.formatMessage({id:"uploader.filesUploading",defaultMessage:"{num, plural, one {1 file uploading} other {# files uploading}}"},{num:t});this.notif=e;this.announce(e);o(this.el)}}handleErrorMessageChange(){if(this.errorMessage){this.announce(this.errorMessage)}}isValidSize(t){return this.convertBytes(t,"MB").size<=this.effectiveMaxSize}convertBytes(t,e){const o=["bytes","KB","MB","GB","TB"];let i=0;let n=typeof t==="number"?t:parseInt(t);if(e){while(o.indexOf(e)>i){n/=1024;i++}}else{while(n>1e3){n/=1024;i++}}return{size:n,unit:o[i]}}isDuplicate(t){const e=this.filesToUpload.some((e=>e.name===t));const o=this.fileList.some((e=>{const o=e.type?e.name+"."+e.type:e.name;return o===t}));return e||o}isEmpty(){return!this.fileList.length&&!this.errorList.length}get isDisabled(){return this.fileLimitReached||this.numFilesInProgress>0}isItemUploading(t){return t.hasOwnProperty("progress")&&t.progress<100}announce(t){if(this.liveRegion.textContent===t){t+=" "}this.announcement=t}clearErrors(){this.errorList=[];this.notif="";this.internalErrorMessage=""}handleFiles(t){this.filesToUpload=[];const e=this.fileTypes.split(" ").join(", ");const o=Array.from(t.target.files);if(!!this.maxFiles&&this.fileList.length+o.length>this.maxFiles){this.internalErrorMessage=this.fileLimitExceededMessage;this.announce(this.fileLimitExceededMessage)}else{o&&o.map((t=>{if(!l(t,this.fileTypes)){const o={name:t.name,message:a.formatMessage({id:"uploader.invalidFileType",defaultMessage:"The file type is invalid. Accepted types: {validTypes}"},{validTypes:e})};this.errorList.push(o)}else if(t.size===0){const e={name:t.name,message:a.formatMessage({id:"uploader.zeroFileSize",defaultMessage:"The file must be more than 0 bytes",description:"Error message when user attempts to upload a file of no size"})};this.errorList.push(e)}else if(!this.isValidSize(t.size)){const e={name:t.name,message:a.formatMessage({id:"uploader.fileTooLarge",defaultMessage:"The selected file is too large. Maximum file size is {size}Mb"},{size:this.effectiveMaxSize})};this.errorList.push(e)}else if(this.isDuplicate(t.name)){const e={name:t.name,message:a.formatMessage({id:"uploader.duplicateName",defaultMessage:"A file with this name already exists."})};this.errorList.push(e)}else{this.filesToUpload.push(t)}}));if(this.filesToUpload.length>0){this.numFilesInProgress=this.filesToUpload.length;this.wmUploaderFilesSelected.emit(this.filesToUpload);this.wmFilesSelected.emit(this.filesToUpload)}}t.target.value=""}componentWillLoad(){if(!this.buttonText){throw new Error("wm-uploader: button-text is a required prop")}if(this.type){console.warn("wm-uploader: type has been deprecated as of v3.1.0. Please use uploader-type instead.")}if(this.tempUploaderType==="1"&&!this.emptyStateText){throw new Error("wm-uploader: empty-state-text is a required prop")}this.parseFiles();this.clearErrors();this.parseRejectedFiles()}componentDidLoad(){if(document.body.classList.contains("wmcl-user-is-tabbing")){this.toggleTabbingOn()}}uploadButtonOnClick(t){if(this.isDisabled){t.preventDefault();if(this.numFilesInProgress>0){const t=a.formatMessage({id:"uploader.waitToUpload",defaultMessage:"Please wait for current upload to complete before uploading new files.",description:"Message for screen reader users"});this.announce(t)}else if(this.fileLimitReached){this.internalErrorMessage=this.fileLimitReachedMessage;this.announce(this.fileLimitReachedMessage)}}else{this.clearErrors()}}renderUploadSvg(){return i("svg",{class:"upload-file",width:"91",height:"84",viewBox:"0 0 91 84"},i("path",{transform:"rotate(-180.000000) translate(-452, -255.5)",fill:"#eae8ec",d:"M361,249.681818 L361,197.318182 C361,194.118182 365.555061,191.5 371.122358,191.5 L391.316463,191.5 L391.286495,200.562515 L369.871211,200.600292 L369.885404,200.622146 L369.886423,246.655947 L443.657038,246.840767 L443.657038,200.622146 L421.683537,200.622146 L421.683537,191.5 L441.978865,191.5 C447.546162,191.5 452,194.118182 452,197.318182 L452,249.681818 C452,252.881818 447.546162,255.5 441.978865,255.5 L371.122358,255.5 C365.504449,255.5 361,252.881818 361,249.681818 Z M391.5,207 L406,221 L420.5,207 L409.625,207 L409.625,172 L402.375,172 L402.375,207 L391.5,207 Z"}))}renderIcon(){const t=this.icon&&this.icon==="f066";return this.icon&&i("span",{class:`mdi ${t?"rotate":""}`},String.fromCodePoint(parseInt(`0x${this.icon}`)))}renderInfo(){return this.info&&this.tempUploaderType==="2"?i("span",{class:"info"},this.info):""}renderNotif(){return i("div",{class:"notif"},this.notif)}renderError(){return i("div",{id:"error"},this.displayedErrorMessage)}renderUploadButton(t){let e=`${this.label&&this.label!==this.buttonText?`${this.label}, `:""}${this.buttonText}`;return i("div",{class:"info-wrapper"},i("input",{name:this.inputId,id:this.inputId,class:"sr-only","aria-label":e,"aria-required":this.requiredField?"true":null,"aria-describedby":`${this.displayedErrorMessage?"error ":""}file-count max-size accepted-types`,type:"file",multiple:true,onClick:t=>this.uploadButtonOnClick(t),onChange:t=>this.handleFiles(t)}),i("label",{htmlFor:this.inputId,class:`wm-button ${t}${this.isTabbing?" user-is-tabbing":""}`},this.renderIcon(),this.buttonText),this.renderInfo())}renderEmptyState(){return i("div",{class:"empty-block"},this.renderUploadSvg(),i("div",{class:`empty-message`},this.emptyStateText),this.renderUploadButton("-primary empty-button"),this.notif&&this.renderNotif(),this.displayedErrorMessage&&this.renderError())}renderErrorList(){let t=this.errorList.reduce((function(t,e){return t+`${e.name}: ${e.message} `}),"");this.announce(t);return i("ul",{class:"error-list"},this.errorList.map((t=>i("wm-file",{file:`{"name": "${t.name}"}`,"error-message":t.message}))))}formatTimestamp(t){const e=new Date(Date.parse(t));const o=e.getDate();const i=e.getMonth()+1;const n=e.getFullYear();const r=e.toLocaleTimeString("en-us",{hour:"numeric",minute:"2-digit"});const s=`${i}/${o}/${n} ${r}`;return s}renderInProgressFileList(){return i("ul",{class:"inprogress-list"},this.fileList.filter((t=>this.isItemUploading(t))).map((t=>i("wm-file",{file:JSON.stringify(t),"show-info":this.showInfo}))))}renderUploadedFileList(){return i("ul",{class:"file-list"},this.fileList.filter((t=>!this.isItemUploading(t))).map((t=>{t.lastUpdated=this.formatTimestamp(t.lastUpdated);return i("wm-file",{id:`file-${t.id}`,file:JSON.stringify(t),"show-info":this.showInfo})})))}renderFiles(){this.sortBy==="name"?this.fileList.sort(((t,e)=>t.name.localeCompare(e.name))):this.fileList.sort(((t,e)=>Date.parse(t.lastUpdated)-Date.parse(e.lastUpdated)));return i("div",null,this.renderInProgressFileList(),this.renderUploadedFileList())}legacyRenderHeader(){return i("div",{class:`header ${this.tempUploaderType?`type${this.tempUploaderType}`:""}`},i("div",{class:"slot-wrapper"},i("slot",null),i("div",{class:`notif-wrapper ${this.tempUploaderType?`type${this.tempUploaderType}`:""}`},this.renderUploadButton(`-secondary ${this.isDisabled?"disabled":""}`),this.notif&&this.renderNotif(),this.displayedErrorMessage&&this.renderError())))}renderHeader(){return i("div",{class:`header ${this.tempUploaderType?`type${this.tempUploaderType}`:""}`},i("div",{class:`notif-wrapper ${this.tempUploaderType?`type${this.tempUploaderType}`:""}`},this.renderUploadButton(`-secondary ${this.isDisabled?"disabled":""}`),this.renderRequirements()),i("div",{id:"accepted-types",class:"accepted-types"},this.acceptedFileTypesMessage),this.notif&&this.renderNotif(),this.displayedErrorMessage&&this.renderError())}renderRequirements(){return i("div",{class:"requirements"},this.maxFiles&&i("span",{id:"file-count"},this.fileCountMessage),this.maxSize&&i("span",{id:"max-size"},this.maxSizeMessage))}renderFooter(){return i("div",{class:"footer"},i("div",{class:`notif-wrapper ${this.tempUploaderType?`type${this.tempUploaderType}`:""}`},i("div",{class:"filecount-wrapper"},i("div",{class:"filecount"},a.formatMessage({id:"uploader.filesAdded",defaultMessage:"{numFiles, plural, one {1 file added} other {# files added}}"},{numFiles:this.fileList.length})),this.renderUploadButton(`-primary ${this.isDisabled?"disabled":""}`)),this.notif&&this.renderNotif(),this.displayedErrorMessage&&this.renderError()))}renderWithItems(){const t=this.fileList.filter((t=>t.progress===(typeof t.progress==="number"?100:"100"))).length>0;return i("div",null,!this.tempUploaderType&&this.renderHeader(),this.tempUploaderType==="2"&&this.legacyRenderHeader(),i("div",{class:`list-container type${this.tempUploaderType} ${!this.tempUploaderType&&t?"checkmark-spacer":""}`},this.errorList.length>0&&this.renderErrorList(),this.fileList.length>0&&this.renderFiles()),this.tempUploaderType==="1"&&this.renderFooter())}renderLabel(){return i("div",{class:`wrapper ${this.displayedErrorMessage?"invalid":""}`},i("div",{id:"label",class:`label`},this.label,this.requiredField&&i("span",{class:"required","aria-hidden":"true"},"*")))}render(){return i(n,null,this.label&&this.renderLabel(),this.isEmpty()&&this.tempUploaderType==="1"?this.renderEmptyState():this.renderWithItems(),i("div",{ref:t=>this.liveRegion=t,class:"live-region sr-only","aria-live":"assertive","aria-atomic":"true"},this.announcement))}static get delegatesFocus(){return true}get el(){return r(this)}static get watchers(){return{files:["parseFiles"],fileList:["focusAfterRemoval"],rejectedFiles:["parseRejectedFiles"],numFilesInProgress:["uploadNotifications"],errorMessage:["handleErrorMessageChange"]}}};m.style=d;export{m as wm_uploader};
2
- //# sourceMappingURL=p-efc36352.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["wmUploaderCss","Uploader","this","inputId","generateId","uploadButtonEl","el","shadowRoot","querySelector","tempUploaderType","type","uploaderType","effectiveMaxSize","defaultMaxSize","maxSizeLimit","maxSize","Math","min","fileLimitReached","maxFiles","fileList","length","displayedErrorMessage","errorMessage","internalErrorMessage","fileLimitExceededMessage","intl","formatMessage","id","defaultMessage","description","fileLimitReachedMessage","fileCountMessage","x","y","maxSizeMessage","acceptedFileTypesMessage","validTypes","fileTypes","split","join","amount","toggleTabbingOn","isTabbing","toggleTabbingOff","handleUploadProgress","ev","map","i","detail","progress","forceUpdate","numFilesInProgress","srProgress","total","setInterval","aggregate","reduce","avg","item","announce","percentage","floor","handleFileErrorCleared","filename","name","errorList","filter","error","focus","handleFileDeleted","clearErrors","wmUploaderDeleteFile","emit","wmFileDelete","wmDeleteFile","handleFilePreviewed","wmUploaderPreviewFile","wmFilePreview","handleFileDownloaded","wmUploaderDownloadFile","wmFileDownload","wmDownloadFile","parseFiles","files","list","JSON","parse","forEach","size","match","convertedSize","convertBytes","toFixed","unit","Error","focusAfterRemoval","newFiles","oldFiles","newFileIds","file","oldFileIds","removedFileId","includes","indexOf","fileIdPrecedingRemoved","fileElPrecedingRemoved","focusedElementsButtons","querySelectorAll","lastButtonInFile","parseRejectedFiles","rejectedFiles","uploadNotifications","newNum","oldNum","setTimeout","notif","finishedMessage","clearInterval","filesUploadingMessage","num","handleErrorMessageChange","isValidSize","bytes","unitOrder","unitIndex","result","parseInt","isDuplicate","hasDuplicateUploadingFile","filesToUpload","some","fileToUpload","hasDuplicateUploadedFile","f","isEmpty","isDisabled","isItemUploading","hasOwnProperty","message","liveRegion","textContent","announcement","handleFiles","Array","from","target","hasValidType","push","wmUploaderFilesSelected","wmFilesSelected","value","componentWillLoad","buttonText","console","warn","emptyStateText","componentDidLoad","document","body","classList","contains","uploadButtonOnClick","preventDefault","srMsg","renderUploadSvg","h","class","width","height","viewBox","transform","fill","d","renderIcon","rotate","icon","String","fromCodePoint","renderInfo","info","renderNotif","renderError","renderUploadButton","classes","accessibleLabel","label","requiredField","multiple","onClick","onChange","htmlFor","renderEmptyState","renderErrorList","srMessage","acc","err","formatTimestamp","timestamp","uploadDate","Date","day","getDate","month","getMonth","year","getFullYear","time","toLocaleTimeString","hour","minute","formattedDate","renderInProgressFileList","stringify","showInfo","renderUploadedFileList","lastUpdated","renderFiles","sortBy","sort","a","b","localeCompare","legacyRenderHeader","renderHeader","renderRequirements","renderFooter","numFiles","renderWithItems","hasNewlyUploadedFiles","renderLabel","render","Host","ref"],"sources":["./src/components/wm-uploader/wm-uploader.scss?tag=wm-uploader&encapsulation=shadow","./src/components/wm-uploader/wm-uploader.tsx"],"sourcesContent":[":host,\r\nwm-uploader {\r\n display: block;\r\n position: relative;\r\n max-width: 1140px;\r\n\r\n &[dir=\"RTL\"] {\r\n .mdi {\r\n margin-left: rem-calc(5);\r\n margin-right: 0;\r\n }\r\n }\r\n @extend %wm-button;\r\n\r\n input:focus + .wm-button.user-is-tabbing {\r\n -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 !important;\r\n -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 !important;\r\n 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 !important;\r\n }\r\n}\r\n\r\n:host *,\r\nwm-uploader * {\r\n box-sizing: border-box;\r\n}\r\n\r\n.wm-button.disabled {\r\n // override the %wm-button rule\r\n // we want a pointer event when disabled,\r\n // to trigger a SR message\r\n pointer-events: initial !important;\r\n}\r\n\r\n@include label;\r\n#label {\r\n margin-bottom: rem-calc(8);\r\n}\r\n\r\n.header {\r\n .info-wrapper {\r\n align-items: center;\r\n .info {\r\n font-size: rem-calc(14);\r\n margin-left: 1rem;\r\n }\r\n }\r\n\r\n .accepted-types {\r\n font-size: rem-calc(14);\r\n }\r\n\r\n .requirements {\r\n font-size: rem-calc(14);\r\n margin-left: rem-calc(16);\r\n }\r\n}\r\n\r\n.footer {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n padding: rem-calc(15 30);\r\n\r\n .notif-wrapper {\r\n align-items: flex-end;\r\n }\r\n\r\n .filecount-wrapper {\r\n display: flex;\r\n align-items: center;\r\n .filecount {\r\n font-size: 0.875rem;\r\n margin-right: 1rem;\r\n }\r\n }\r\n}\r\n\r\n.notif-wrapper {\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n margin-bottom: rem-calc(12);\r\n\r\n .requirements {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n}\r\n\r\n.notif,\r\n#error {\r\n padding-top: rem-calc(4);\r\n font-size: 0.875rem;\r\n font-style: italic;\r\n\r\n &#error {\r\n color: $error-color;\r\n }\r\n}\r\n\r\n.info-wrapper {\r\n position: relative; // for .info\r\n display: flex;\r\n}\r\n\r\n.list-container {\r\n overflow-y: unset;\r\n\r\n &.checkmark-spacer {\r\n margin-right: rem-calc(44);\r\n }\r\n\r\n &:has(.error-list, .inprogress-list, .file-list) {\r\n margin-top: rem-calc(40);\r\n }\r\n\r\n ul {\r\n padding: 0;\r\n width: 100%;\r\n margin: 0;\r\n\r\n wm-file {\r\n margin-bottom: rem-calc(8);\r\n }\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include srOnly;\r\n}\r\n\r\n/// FOR DEPRECATED TYPES ///////////////////////////////////////\r\n.empty-block {\r\n margin: 5rem auto;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n .upload-file {\r\n margin-bottom: rem-calc(30);\r\n }\r\n\r\n .empty-message {\r\n font-size: 0.875rem;\r\n &.large {\r\n font-size: 1.5rem;\r\n }\r\n margin-bottom: rem-calc(7);\r\n }\r\n\r\n .info-wrapper {\r\n justify-content: center;\r\n width: 100%; // for .notif\r\n\r\n .wm-button {\r\n // Removing the width inherit here to prevent a 100% width\r\n // from the info-wrapper. Future proofing a day when\r\n // we might want a long notif to wrap.\r\n width: auto;\r\n }\r\n }\r\n}\r\n\r\n.header {\r\n &.type1,\r\n &.type2 {\r\n margin-bottom: 1rem;\r\n }\r\n .slot-wrapper {\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: flex-start;\r\n }\r\n}\r\n\r\n.notif-wrapper {\r\n &.type1,\r\n &.type2 {\r\n flex-direction: column;\r\n margin-bottom: rem-calc(16);\r\n }\r\n}\r\n\r\n.list-container {\r\n &.type1,\r\n &.type2 {\r\n overflow-y: auto;\r\n ul {\r\n margin: revert;\r\n }\r\n .file-list li,\r\n .inprogress-list li {\r\n // margin-bottom also on the last element, otherwise tooltip on dl and delete btns triggers a scrollbar\r\n margin-bottom: rem-calc(26);\r\n }\r\n .error-list li {\r\n margin-bottom: rem-calc(20);\r\n }\r\n }\r\n\r\n &.type1 {\r\n padding: rem-calc(0 30);\r\n height: rem-calc(260);\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Listen, Watch } from \"@stencil/core\";\r\nimport { forceUpdate } from \"@stencil/core\";\r\nimport { generateId, hasValidType, intl } from \"../../global/functions\";\r\nimport { UploadedFile } from \"../../global/interfaces\";\r\ninterface ErrorFile {\r\n name: string;\r\n message: string;\r\n}\r\n\r\n@Component({\r\n tag: \"wm-uploader\",\r\n styleUrl: \"wm-uploader.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class Uploader {\r\n @Element() el!: HTMLWmUploaderElement;\r\n private liveRegion!: HTMLDivElement;\r\n get uploadButtonEl(): HTMLElement {\r\n return this.el.shadowRoot!.querySelector(`#${this.inputId}`) as HTMLElement;\r\n }\r\n\r\n @Prop({ mutable: true }) uploaderType?: \"1\" | \"2\"; // only mutable for the deprecation transition\r\n @Prop() type?: \"1\" | \"2\"; // DEPRECATED in favor of uploaderType\r\n get tempUploaderType() {\r\n // replace instances of this.tempUploaderType with this.uploaderType once type is fully phased out\r\n return this.type || this.uploaderType;\r\n }\r\n @Prop() label?: string;\r\n @Prop() buttonText!: string;\r\n @Prop() info?: string;\r\n @Prop() emptyStateText!: string;\r\n @Prop() icon!: string;\r\n @Prop() fileTypes: string = \"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\";\r\n @Prop() maxSize?: number | null; // in Mb\r\n @Prop() maxFiles?: number;\r\n @Prop() sortBy: \"name\" | \"date\" = \"date\"; // name is descending (a -> z), date is ascending (earlier -> later)\r\n @Prop() showInfo: \"time\" | \"size\" | \"none\" = \"time\";\r\n @Prop() errorMessage?: string;\r\n @Prop() requiredField?: boolean;\r\n\r\n @Prop() files?: string; // String representation of an array of files (the files retrieved from the server)\r\n @State() fileList: UploadedFile[] = []; // the string above transformed into the actual array\r\n @Prop({ mutable: true }) filesToUpload: File[] = []; // input.files that passed validation\r\n\r\n @State() isTabbing: boolean = false;\r\n\r\n @Prop() rejectedFiles?: string; // String representation of an array of errors to add to errorList, allows devs to display server-side errors\r\n @State() errorList: ErrorFile[] = []; // for errors on a particular file\r\n @State() notif?: string | null; // for upload notifications\r\n @State() internalErrorMessage?: string;\r\n @State() announcement: string = \"\";\r\n @State() numFilesInProgress?: number | null; // null when not uploading != 0 (when all files are done uploading) != undefined (original state)\r\n @State() isCondensed: boolean = false;\r\n private srProgress?: any; // setInterval for SR to announce the aggregate progress percentage when things take a long time. stored here so it can be stopped when upload is finished.\r\n private inputId = generateId();\r\n\r\n @Event() wmUploaderFilesSelected!: EventEmitter;\r\n @Event() wmFilesSelected!: EventEmitter; // deprecated in favor of wmUploaderFilesSelected\r\n @Event() wmUploaderDeleteFile!: EventEmitter;\r\n @Event() wmDeleteFile!: EventEmitter; // deprecated in favor of wmUploaderDeleteFile\r\n @Event() wmUploaderDownloadFile!: EventEmitter;\r\n @Event() wmDownloadFile!: EventEmitter; // deprecated in favor of wmUploaderDownloadFile\r\n @Event() wmUploaderPreviewFile!: EventEmitter;\r\n\r\n @Event() wmFileDelete!: EventEmitter<string>;\r\n @Event() wmFileDownload!: EventEmitter<string>;\r\n @Event() wmFilePreview!: EventEmitter<string>;\r\n\r\n get effectiveMaxSize() {\r\n const defaultMaxSize = 100;\r\n // maxsize cannot be set to over 100Mb\r\n const maxSizeLimit = 100;\r\n\r\n return this.maxSize ? Math.min(this.maxSize, maxSizeLimit) : defaultMaxSize;\r\n }\r\n\r\n get fileLimitReached() {\r\n return this.maxFiles && this.fileList.length >= this.maxFiles;\r\n }\r\n\r\n get displayedErrorMessage(): string {\r\n return this.errorMessage || this.internalErrorMessage || \"\";\r\n }\r\n\r\n get fileLimitExceededMessage() {\r\n return intl.formatMessage({\r\n id: \"uploader.fileUploadLimitExceeded\",\r\n defaultMessage: \"Upload unsuccessful because file selection would exceed the maximum number of files\",\r\n description: \"Message displayed when trying to upload too many files\",\r\n });\r\n }\r\n\r\n get fileLimitReachedMessage() {\r\n return intl.formatMessage({\r\n id: \"uploader.fileUploadLimitReached\",\r\n defaultMessage: \"The maximum number of files has been reached\",\r\n description: \"Message displayed when trying to upload additional files, but the limit has been reached\",\r\n });\r\n }\r\n\r\n get fileCountMessage() {\r\n return intl.formatMessage(\r\n {\r\n id: \"uploader.fileCount\",\r\n defaultMessage: \"{x} of {y} Files\",\r\n description: \"A count of the number of files currently uploaded\",\r\n },\r\n { x: this.fileList.length, y: this.maxFiles }\r\n );\r\n }\r\n\r\n get maxSizeMessage() {\r\n return intl.formatMessage(\r\n {\r\n id: \"uploader.maxSize\",\r\n defaultMessage: \"Maximum file size {maxSize}MB\",\r\n description: \"An indicator of the maximum file size the uploader allows\",\r\n },\r\n {\r\n maxSize: this.effectiveMaxSize,\r\n }\r\n );\r\n }\r\n\r\n get acceptedFileTypesMessage() {\r\n const validTypes = \".\" + this.fileTypes.split(\" \").join(\", .\");\r\n return intl.formatMessage(\r\n {\r\n id: \"uploader.acceptedFileTypes\",\r\n defaultMessage: \"Accepted file {amount, plural, =1 {type} other {types}}: {fileTypes}\",\r\n },\r\n {\r\n fileTypes: validTypes,\r\n amount: this.fileTypes.split(\" \").length,\r\n }\r\n );\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(\"wmUploadProgress\")\r\n handleUploadProgress(ev: CustomEvent) {\r\n this.fileList.map((i) => {\r\n if (i.id === ev.detail.id) {\r\n i.progress = ev.detail.progress;\r\n forceUpdate(this.el);\r\n }\r\n });\r\n\r\n if (ev.detail.progress === 100) {\r\n // inProgressList is not a perfect reflection of how many files are uploading\r\n // because even after progress reached 100% the item should remain in the array\r\n // (should only be removed once it appears in fileList)\r\n this.numFilesInProgress! -= 1;\r\n }\r\n\r\n // aggregate the percentages for SR to announce progress\r\n if (!this.srProgress && this.numFilesInProgress) {\r\n const total = this.numFilesInProgress; // if we don't reassign this number changes when a file is done and the percentage becomes wrong\r\n this.srProgress = setInterval(() => {\r\n const aggregate = this.fileList.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);\r\n this.announce(\r\n intl.formatMessage(\r\n {\r\n id: \"uploader.uploadProgress\",\r\n defaultMessage: \"Upload progress: {percentage}%\",\r\n },\r\n { percentage: Math.floor(aggregate / total) }\r\n )\r\n );\r\n }, 5000);\r\n }\r\n }\r\n\r\n @Listen(\"wmFileClearErrorClicked\")\r\n handleFileErrorCleared(ev: CustomEvent) {\r\n const filename = ev.detail.name;\r\n this.errorList = this.errorList.filter((error) => error.name != filename);\r\n this.uploadButtonEl.focus();\r\n }\r\n\r\n @Listen(\"wmIntFileDeleted\")\r\n handleFileDeleted(ev: CustomEvent) {\r\n this.clearErrors();\r\n forceUpdate(this.el); // for the button to stop being disabled if num files become < max-files\r\n this.wmUploaderDeleteFile.emit(ev.detail);\r\n this.wmFileDelete.emit(ev.detail);\r\n this.wmDeleteFile.emit(ev.detail); // deprecated\r\n }\r\n\r\n @Listen(\"wmIntFilePreviewed\")\r\n handleFilePreviewed(ev: CustomEvent) {\r\n this.clearErrors();\r\n this.wmUploaderPreviewFile.emit(ev.detail);\r\n this.wmFilePreview.emit(ev.detail);\r\n }\r\n\r\n @Listen(\"wmIntFileDownloaded\")\r\n handleFileDownloaded(ev: CustomEvent) {\r\n this.clearErrors();\r\n this.wmUploaderDownloadFile.emit(ev.detail);\r\n this.wmFileDownload.emit(ev.detail);\r\n this.wmDownloadFile.emit(ev.detail); // deprecated\r\n }\r\n\r\n @Watch(\"files\")\r\n parseFiles() {\r\n if (!!this.files) {\r\n if (typeof this.files === \"string\") {\r\n let list = JSON.parse(this.files);\r\n if (typeof list === \"object\") {\r\n // if size is in byte format, convert to display format\r\n list.forEach((item: any) => {\r\n if (item.size && (typeof item.size === \"number\" || item.size.match(/^[0-9]+$/))) {\r\n const convertedSize = this.convertBytes(item.size);\r\n item.size = `${convertedSize.size.toFixed(0)} ${convertedSize.unit}`;\r\n }\r\n });\r\n this.fileList = list;\r\n } else {\r\n throw new Error(\"could not parse string passed to files attribute\");\r\n }\r\n } else {\r\n throw new Error(\"Attribute 'files' should be a string\");\r\n }\r\n }\r\n }\r\n\r\n @Watch(\"fileList\")\r\n focusAfterRemoval(newFiles: UploadedFile[], oldFiles: UploadedFile[]) {\r\n if (this.isTabbing && newFiles.length < oldFiles.length) {\r\n const newFileIds = newFiles.map((file: UploadedFile) => file.id);\r\n const oldFileIds = oldFiles.map((file: UploadedFile) => file.id);\r\n // even in the case that multiple files have been removed at once, work off of the first in that group\r\n const removedFileId = oldFileIds.filter((id: string) => !newFileIds.includes(id))[0];\r\n\r\n if (oldFileIds.indexOf(removedFileId) > 0) {\r\n const fileIdPrecedingRemoved = oldFileIds[oldFileIds.indexOf(removedFileId) - 1];\r\n const fileElPrecedingRemoved = this.el.shadowRoot!.querySelector(\"#file-\" + fileIdPrecedingRemoved);\r\n const focusedElementsButtons = fileElPrecedingRemoved?.shadowRoot!.querySelectorAll(\"wm-button\");\r\n\r\n if (focusedElementsButtons && focusedElementsButtons.length > 0) {\r\n const lastButtonInFile = focusedElementsButtons[focusedElementsButtons.length - 1];\r\n lastButtonInFile.focus();\r\n } else {\r\n // if preceding file has no file action buttons, rerun function with adjusted params\r\n // by removing the fileElPrecedingRemoved from the newFiles list, it is now considered the removedFile and looks to focus it's preceding file\r\n // if it continues to cannot find an appropriate preceding file and becomes the first file in the list, it focuses the upload button\r\n this.focusAfterRemoval(\r\n newFiles.filter((file: UploadedFile) => file.id !== fileIdPrecedingRemoved),\r\n oldFiles\r\n );\r\n }\r\n } else {\r\n this.uploadButtonEl.focus();\r\n }\r\n }\r\n }\r\n\r\n @Watch(\"rejectedFiles\")\r\n parseRejectedFiles() {\r\n if (!!this.rejectedFiles) {\r\n if (typeof this.files === \"string\") {\r\n const list = JSON.parse(this.rejectedFiles);\r\n if (typeof list === \"object\") {\r\n this.errorList = list;\r\n } else {\r\n throw new Error(\"could not parse string passed to errors attribute\");\r\n }\r\n } else {\r\n throw new Error(\"Attribute 'rejected-files' should be a string\");\r\n }\r\n }\r\n }\r\n\r\n @Watch(\"numFilesInProgress\")\r\n uploadNotifications(newNum: number, oldNum: number) {\r\n if (oldNum > 0 && newNum === 0) {\r\n setTimeout(() => {\r\n this.notif = \"\";\r\n this.internalErrorMessage = \"\";\r\n }, 20 * 1000);\r\n const finishedMessage = intl.formatMessage({\r\n id: \"uploader.finishedUploading\",\r\n defaultMessage: \"Finished uploading\",\r\n });\r\n this.notif = finishedMessage;\r\n this.announce(finishedMessage);\r\n this.numFilesInProgress = null;\r\n clearInterval(this.srProgress);\r\n forceUpdate(this.el);\r\n } else if (newNum > 0 && newNum != oldNum) {\r\n const filesUploadingMessage = intl.formatMessage(\r\n {\r\n id: \"uploader.filesUploading\",\r\n defaultMessage: \"{num, plural, one {1 file uploading} other {# files uploading}}\",\r\n },\r\n { num: newNum }\r\n );\r\n this.notif = filesUploadingMessage;\r\n this.announce(filesUploadingMessage);\r\n forceUpdate(this.el);\r\n }\r\n }\r\n\r\n @Watch(\"errorMessage\")\r\n handleErrorMessageChange() {\r\n if (this.errorMessage) {\r\n this.announce(this.errorMessage);\r\n }\r\n }\r\n\r\n isValidSize(size: number) {\r\n return this.convertBytes(size, \"MB\").size <= this.effectiveMaxSize;\r\n }\r\n\r\n convertBytes(bytes: number, unit?: \"KB\" | \"MB\" | \"GB\" | \"TB\") {\r\n // https://stackoverflow.com/questions/2365100/converting-bytes-to-megabytes\r\n const unitOrder = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n let unitIndex = 0;\r\n let result = typeof bytes === \"number\" ? bytes : parseInt(bytes);\r\n\r\n if (unit) {\r\n // convert until result matches desired unit\r\n while (unitOrder.indexOf(unit) > unitIndex) {\r\n result /= 1024;\r\n unitIndex++;\r\n }\r\n } else {\r\n // convert until result is appropriate unit (value is under 1000)\r\n while (result > 1000) {\r\n result /= 1024;\r\n unitIndex++;\r\n }\r\n }\r\n return { size: result, unit: unitOrder[unitIndex] };\r\n }\r\n\r\n isDuplicate(name: string) {\r\n const hasDuplicateUploadingFile = this.filesToUpload.some((fileToUpload: File) => fileToUpload.name === name);\r\n const hasDuplicateUploadedFile = this.fileList.some((f) => {\r\n const filename: string = f.type ? f.name + \".\" + f.type : f.name;\r\n return filename === name;\r\n });\r\n\r\n return hasDuplicateUploadingFile || hasDuplicateUploadedFile;\r\n }\r\n\r\n isEmpty() {\r\n return !this.fileList.length && !this.errorList.length;\r\n }\r\n\r\n get isDisabled() {\r\n // disable if is the uploader is maxed out or if something is uploading\r\n return this.fileLimitReached || this.numFilesInProgress! > 0;\r\n }\r\n\r\n isItemUploading(item: UploadedFile) {\r\n return item.hasOwnProperty(\"progress\") && item.progress! < 100;\r\n }\r\n\r\n announce(message: string) {\r\n if (this.liveRegion.textContent === message) {\r\n message += \"\\u00A0\";\r\n }\r\n this.announcement = message;\r\n }\r\n\r\n clearErrors() {\r\n this.errorList = [];\r\n this.notif = \"\";\r\n this.internalErrorMessage = \"\";\r\n }\r\n\r\n handleFiles(ev: Event) {\r\n this.filesToUpload = [];\r\n const validTypes = this.fileTypes.split(\" \").join(\", \");\r\n const files = Array.from((ev.target! as HTMLInputElement).files!);\r\n\r\n if (!!this.maxFiles && this.fileList.length + files.length > this.maxFiles) {\r\n this.internalErrorMessage = this.fileLimitExceededMessage;\r\n this.announce(this.fileLimitExceededMessage);\r\n } else {\r\n files &&\r\n files.map((file) => {\r\n if (!hasValidType(file, this.fileTypes)) {\r\n const error = {\r\n name: file.name,\r\n message: intl.formatMessage(\r\n {\r\n id: \"uploader.invalidFileType\",\r\n defaultMessage: \"The file type is invalid. Accepted types: {validTypes}\",\r\n },\r\n { validTypes }\r\n ),\r\n };\r\n this.errorList.push(error);\r\n } else if (file.size === 0) {\r\n const error = {\r\n name: file.name,\r\n message: intl.formatMessage({\r\n id: \"uploader.zeroFileSize\",\r\n defaultMessage: \"The file must be more than 0 bytes\",\r\n description: \"Error message when user attempts to upload a file of no size\",\r\n }),\r\n };\r\n this.errorList.push(error);\r\n } else if (!this.isValidSize(file.size)) {\r\n const error = {\r\n name: file.name,\r\n message: intl.formatMessage(\r\n {\r\n id: \"uploader.fileTooLarge\",\r\n defaultMessage: \"The selected file is too large. Maximum file size is {size}Mb\",\r\n },\r\n { size: this.effectiveMaxSize }\r\n ),\r\n };\r\n this.errorList.push(error);\r\n } else if (this.isDuplicate(file.name)) {\r\n const error = {\r\n name: file.name,\r\n message: intl.formatMessage({\r\n id: \"uploader.duplicateName\",\r\n defaultMessage: \"A file with this name already exists.\",\r\n }),\r\n };\r\n this.errorList.push(error);\r\n } else {\r\n this.filesToUpload.push(file);\r\n }\r\n });\r\n\r\n if (this.filesToUpload.length > 0) {\r\n this.numFilesInProgress = this.filesToUpload.length;\r\n this.wmUploaderFilesSelected.emit(this.filesToUpload);\r\n this.wmFilesSelected.emit(this.filesToUpload); // deprecated\r\n }\r\n }\r\n (ev.target! as HTMLInputElement).value = \"\"; // reset to ensure that onChange is triggered when the same file is selected a second time\r\n }\r\n\r\n componentWillLoad() {\r\n if (!this.buttonText) {\r\n throw new Error(\"wm-uploader: button-text is a required prop\");\r\n }\r\n\r\n if (this.type) {\r\n console.warn(\"wm-uploader: type has been deprecated as of v3.1.0. Please use uploader-type instead.\");\r\n }\r\n\r\n if (this.tempUploaderType === \"1\" && !this.emptyStateText) {\r\n throw new Error(\"wm-uploader: empty-state-text is a required prop\");\r\n }\r\n\r\n this.parseFiles();\r\n this.clearErrors();\r\n this.parseRejectedFiles();\r\n }\r\n\r\n componentDidLoad() {\r\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\r\n this.toggleTabbingOn();\r\n }\r\n }\r\n\r\n uploadButtonOnClick(ev: Event) {\r\n if (this.isDisabled) {\r\n // this is a temporary fix.\r\n // we need the disabled button to be programmatically focusable\r\n // to allow return focus after closing the browser file panel\r\n // since it's focusable the button should respond when activated\r\n // it looks disabled, and announces the reason why the action cannot\r\n // be taken when activated.\r\n ev.preventDefault();\r\n\r\n if (this.numFilesInProgress! > 0) {\r\n const srMsg = intl.formatMessage({\r\n id: \"uploader.waitToUpload\",\r\n defaultMessage: \"Please wait for current upload to complete before uploading new files.\",\r\n description: \"Message for screen reader users\",\r\n });\r\n this.announce(srMsg);\r\n } else if (this.fileLimitReached) {\r\n this.internalErrorMessage = this.fileLimitReachedMessage;\r\n this.announce(this.fileLimitReachedMessage);\r\n }\r\n } else {\r\n this.clearErrors();\r\n }\r\n }\r\n\r\n renderUploadSvg() {\r\n return (\r\n <svg class=\"upload-file\" width=\"91\" height=\"84\" viewBox=\"0 0 91 84\">\r\n <path\r\n transform=\"rotate(-180.000000) translate(-452, -255.5)\"\r\n fill=\"#eae8ec\"\r\n d=\"M361,249.681818 L361,197.318182 C361,194.118182 365.555061,191.5 371.122358,191.5 L391.316463,191.5 L391.286495,200.562515 L369.871211,200.600292 L369.885404,200.622146 L369.886423,246.655947 L443.657038,246.840767 L443.657038,200.622146 L421.683537,200.622146 L421.683537,191.5 L441.978865,191.5 C447.546162,191.5 452,194.118182 452,197.318182 L452,249.681818 C452,252.881818 447.546162,255.5 441.978865,255.5 L371.122358,255.5 C365.504449,255.5 361,252.881818 361,249.681818 Z M391.5,207 L406,221 L420.5,207 L409.625,207 L409.625,172 L402.375,172 L402.375,207 L391.5,207 Z\"\r\n ></path>\r\n </svg>\r\n );\r\n }\r\n\r\n renderIcon() {\r\n // mdi attachment icon (paper clip) is horizontal but we want it vertical\r\n const rotate = this.icon && this.icon === \"f066\";\r\n return (\r\n this.icon && (\r\n <span class={`mdi ${rotate ? \"rotate\" : \"\"}`}>{String.fromCodePoint(parseInt(`0x${this.icon}`))}</span>\r\n )\r\n );\r\n }\r\n\r\n renderInfo() {\r\n return this.info && this.tempUploaderType === \"2\" ? <span class=\"info\">{this.info}</span> : \"\";\r\n }\r\n\r\n renderNotif() {\r\n return <div class=\"notif\">{this.notif}</div>;\r\n }\r\n\r\n renderError() {\r\n return <div id=\"error\">{this.displayedErrorMessage}</div>;\r\n }\r\n\r\n renderUploadButton(classes: string) {\r\n let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : \"\"}${this.buttonText}`;\r\n\r\n return (\r\n <div class=\"info-wrapper\">\r\n <input\r\n name={this.inputId}\r\n id={this.inputId}\r\n class=\"sr-only\"\r\n aria-label={accessibleLabel}\r\n aria-required={this.requiredField ? \"true\" : null}\r\n aria-describedby={`${this.displayedErrorMessage ? \"error \" : \"\"}file-count max-size accepted-types`}\r\n type=\"file\"\r\n multiple\r\n onClick={(ev) => this.uploadButtonOnClick(ev)}\r\n onChange={(ev) => this.handleFiles(ev)}\r\n />\r\n <label htmlFor={this.inputId} class={`wm-button ${classes}${this.isTabbing ? \" user-is-tabbing\" : \"\"}`}>\r\n {this.renderIcon()}\r\n {this.buttonText}\r\n </label>\r\n {this.renderInfo()}\r\n </div>\r\n );\r\n }\r\n\r\n renderEmptyState() {\r\n return (\r\n <div class=\"empty-block\">\r\n {this.renderUploadSvg()}\r\n <div class={`empty-message`}>{this.emptyStateText}</div>\r\n {this.renderUploadButton(\"-primary empty-button\")}\r\n {this.notif && this.renderNotif()}\r\n {this.displayedErrorMessage && this.renderError()}\r\n </div>\r\n );\r\n }\r\n\r\n renderErrorList() {\r\n let srMessage = this.errorList.reduce(function (acc, err) {\r\n return acc + `${err.name}: ${err.message} `;\r\n }, \"\");\r\n this.announce(srMessage);\r\n\r\n return (\r\n <ul class=\"error-list\">\r\n {this.errorList.map((err) => (\r\n <wm-file file={`{\"name\": \"${err.name}\"}`} error-message={err.message}></wm-file>\r\n ))}\r\n </ul>\r\n );\r\n }\r\n\r\n formatTimestamp(timestamp: string): string {\r\n const uploadDate = new Date(Date.parse(timestamp));\r\n const day = uploadDate.getDate();\r\n const month = uploadDate.getMonth() + 1;\r\n const year = uploadDate.getFullYear();\r\n const time = uploadDate.toLocaleTimeString(\"en-us\", { hour: \"numeric\", minute: \"2-digit\" });\r\n const formattedDate = `${month}/${day}/${year} ${time}`;\r\n\r\n return formattedDate;\r\n }\r\n\r\n renderInProgressFileList() {\r\n return (\r\n <ul class=\"inprogress-list\">\r\n {this.fileList\r\n .filter((item) => this.isItemUploading(item))\r\n .map((item) => (\r\n <wm-file file={JSON.stringify(item)} show-info={this.showInfo}></wm-file>\r\n ))}\r\n </ul>\r\n );\r\n }\r\n\r\n renderUploadedFileList() {\r\n return (\r\n <ul class=\"file-list\">\r\n {this.fileList\r\n .filter((item) => !this.isItemUploading(item))\r\n .map((item) => {\r\n item.lastUpdated = this.formatTimestamp(item.lastUpdated);\r\n return <wm-file id={`file-${item.id}`} file={JSON.stringify(item)} show-info={this.showInfo}></wm-file>;\r\n })}\r\n </ul>\r\n );\r\n }\r\n\r\n renderFiles() {\r\n // if we switch to accepting display format for the wm-uploader's file lastUpdateds, sorting by date will become impossible\r\n this.sortBy === \"name\"\r\n ? this.fileList.sort((a, b) => a.name.localeCompare(b.name))\r\n : this.fileList.sort((a, b) => Date.parse(a.lastUpdated) - Date.parse(b.lastUpdated));\r\n return (\r\n <div>\r\n {this.renderInProgressFileList()}\r\n {this.renderUploadedFileList()}\r\n </div>\r\n );\r\n }\r\n\r\n legacyRenderHeader() {\r\n return (\r\n <div class={`header ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\r\n <div class=\"slot-wrapper\">\r\n <slot />\r\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\r\n {this.renderUploadButton(`-secondary ${this.isDisabled ? \"disabled\" : \"\"}`)}\r\n {this.notif && this.renderNotif()}\r\n {this.displayedErrorMessage && this.renderError()}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderHeader() {\r\n return (\r\n <div class={`header ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\r\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\r\n {this.renderUploadButton(`-secondary ${this.isDisabled ? \"disabled\" : \"\"}`)}\r\n {this.renderRequirements()}\r\n </div>\r\n <div id=\"accepted-types\" class=\"accepted-types\">\r\n {this.acceptedFileTypesMessage}\r\n </div>\r\n {this.notif && this.renderNotif()}\r\n {this.displayedErrorMessage && this.renderError()}\r\n </div>\r\n );\r\n }\r\n\r\n renderRequirements() {\r\n return (\r\n <div class=\"requirements\">\r\n {this.maxFiles && <span id=\"file-count\">{this.fileCountMessage}</span>}\r\n {this.maxSize && <span id=\"max-size\">{this.maxSizeMessage}</span>}\r\n </div>\r\n );\r\n }\r\n\r\n renderFooter() {\r\n return (\r\n <div class=\"footer\">\r\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\r\n <div class=\"filecount-wrapper\">\r\n <div class=\"filecount\">\r\n {intl.formatMessage(\r\n {\r\n id: \"uploader.filesAdded\",\r\n defaultMessage: \"{numFiles, plural, one {1 file added} other {# files added}}\",\r\n },\r\n { numFiles: this.fileList.length }\r\n )}\r\n </div>\r\n {this.renderUploadButton(`-primary ${this.isDisabled ? \"disabled\" : \"\"}`)}\r\n </div>\r\n {this.notif && this.renderNotif()}\r\n {this.displayedErrorMessage && this.renderError()}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderWithItems() {\r\n // it's possible progress is passed in as a string, so we need to check for \"100\" as well\r\n const hasNewlyUploadedFiles =\r\n this.fileList.filter((file) => file.progress === (typeof file.progress === \"number\" ? 100 : \"100\")).length > 0;\r\n return (\r\n <div>\r\n {!this.tempUploaderType && this.renderHeader()}\r\n {this.tempUploaderType === \"2\" && this.legacyRenderHeader()}\r\n <div\r\n class={`list-container type${this.tempUploaderType} ${\r\n !this.tempUploaderType && hasNewlyUploadedFiles ? \"checkmark-spacer\" : \"\"\r\n }`}\r\n >\r\n {this.errorList.length > 0 && this.renderErrorList()}\r\n {this.fileList.length > 0 && this.renderFiles()}\r\n </div>\r\n {this.tempUploaderType === \"1\" && this.renderFooter()}\r\n </div>\r\n );\r\n }\r\n\r\n renderLabel() {\r\n return (\r\n <div class={`wrapper ${this.displayedErrorMessage ? \"invalid\" : \"\"}`}>\r\n <div id=\"label\" class={`label`}>\r\n {this.label}\r\n {this.requiredField && (\r\n <span class=\"required\" aria-hidden=\"true\">\r\n *\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n {this.label && this.renderLabel()}\r\n {this.isEmpty() && this.tempUploaderType === \"1\" ? this.renderEmptyState() : this.renderWithItems()}\r\n <div\r\n ref={(el) => (this.liveRegion = el as HTMLDivElement)}\r\n class=\"live-region sr-only\"\r\n aria-live=\"assertive\" // since it's directly linked to the action the user took, it should be read in priority. With polite, some messages get dismissed in favor of the page title\r\n aria-atomic=\"true\"\r\n >\r\n {this.announcement}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["wmTabItemCss","TabItem","exports","this","tabClicked","ev","preventDefault","_this","wmTabSelected","emit","tabId","tabSelected","tabPressed","key","includes","keydownOnTabItem","tabItem","el","Object","defineProperty","class_1","prototype","parentElement","toggleTabbingOn","linkEl","classList","add","toggleTabbingOff","remove","componentDidLoad","tabItemLoaded","render","classes","show","parentTabList","customBackground","styles","padding","customPadding","bkgSize","parseInt","units","split","pop","concat","h","Host","role","class","style","ref","onClick","id","onKeyDown","selected","tabindex","wmTabListCss","TabList","debouncedSetLayout","debounce","listWidth","setListWidth","forceUpdate","class_2","offsetWidth","Array","from","querySelectorAll","tabItems","filter","t","getLinkEl","tab","shadowRoot","querySelector","allPanels","document","tabIds","map","p","getPanel","panels","find","newCalc","reduce","sum","setSelected","singlePanel","length","setAttributesOnPanel","selectedTabItem","active","panel","showItems","hideItems","componentWillLoad","focus","setLayout","selectedTab","setAriaOnPanelAndTab","target","setAttributesOnTab","link","setAttribute","removeAttributesOnTab","removeAttribute","handleTabSelected","controllerEnabled","detail","handleKeydown","index","indexOf","handleLeftRightArrow","tabToFocus","renderMenuOrTabs","menuLayout","label","renderOptions","margins","textContent","wmTabPanelCss","TabPanel","class_3","generateId","tabPanelLoaded"],"sources":["src/components/wm-tabs/wm-tab-item/wm-tab-item.scss?tag=wm-tab-item&encapsulation=shadow","src/components/wm-tabs/wm-tab-item/wm-tab-item.tsx","src/components/wm-tabs/wm-tab-list/wm-tab-list.scss?tag=wm-tab-list&encapsulation=shadow","src/components/wm-tabs/wm-tab-list/wm-tab-list.tsx","src/components/wm-tabs/wm-tab-panel/wm-tab-panel.scss?tag=wm-tab-panel","src/components/wm-tabs/wm-tab-panel/wm-tab-panel.tsx"],"sourcesContent":[":host {\r\n * {\r\n box-sizing: border-box;\r\n }\r\n font-family: inherit;\r\n display: inline-block;\r\n\r\n .tab-item {\r\n list-style-type: none;\r\n height: 100%;\r\n display: inline-block;\r\n\r\n .tab {\r\n @include border-radius(0);\r\n color: $button-default-text;\r\n text-decoration: none;\r\n letter-spacing: 0.7px;\r\n font-size: rem-calc(14);\r\n font-weight: 500;\r\n opacity: 1;\r\n position: relative;\r\n text-transform: uppercase;\r\n display: inline-block;\r\n height: calc(40 / 12 * 1em);\r\n line-height: calc(40 / 12 * 1em);\r\n padding-right: rem-calc(24);\r\n padding-left: rem-calc(24);\r\n\r\n &[aria-selected=\"true\"] {\r\n font-weight: 700;\r\n opacity: 1;\r\n background: linear-gradient(currentColor, currentColor) bottom / 0 0 no-repeat;\r\n background-size: calc(100% - 50px) 3px;\r\n\r\n &.dark {\r\n color: $button-primary-text;\r\n }\r\n }\r\n\r\n &,\r\n &:hover,\r\n &:active {\r\n outline: none;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &.dark:not([aria-selected=\"true\"]) {\r\n opacity: 0.8;\r\n color: $button-primary-text;\r\n }\r\n\r\n &.user-is-tabbing:focus:not(:active) {\r\n outline: none;\r\n @include focus-style;\r\n &.dark {\r\n @include focus-on-dark;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.hide {\r\n display: none;\r\n }\r\n}\r\n","import { Component, Element, h, Prop, Event, EventEmitter, Listen, Host } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"wm-tab-item\",\r\n styleUrl: \"wm-tab-item.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class TabItem {\r\n @Element() el!: HTMLWmTabItemElement;\r\n\r\n private get parentTabList(): HTMLWmTabListElement | null {\r\n return this.el.parentElement as HTMLWmTabListElement;\r\n }\r\n\r\n /**\r\n * Indicates whether the tab is currently active\r\n */\r\n @Prop() selected: boolean = false;\r\n\r\n @Prop() show: boolean = true;\r\n\r\n /**\r\n * The id of the tab, linked to a tab panel.\r\n */\r\n @Prop() tabId: string = \"\";\r\n\r\n /**\r\n * Reference to focusable link element\r\n */\r\n linkEl?: HTMLAnchorElement;\r\n\r\n @Event() wmTabSelected!: EventEmitter<{ tabId: string }>;\r\n @Event() tabSelected!: EventEmitter<{ tabId: string }>; // deprecated in favor of wmTabSelected\r\n\r\n @Event() keydownOnTabItem!: EventEmitter<{\r\n tabItem: HTMLWmTabItemElement;\r\n key: string;\r\n }>;\r\n\r\n @Event() tabItemLoaded!: EventEmitter<{ tab: HTMLWmTabItemElement }>;\r\n\r\n private tabClicked = (ev: MouseEvent) => {\r\n ev.preventDefault();\r\n this.wmTabSelected.emit({ tabId: this.tabId });\r\n this.tabSelected.emit({ tabId: this.tabId }); // deprecated\r\n };\r\n\r\n private tabPressed = (ev: KeyboardEvent) => {\r\n const key = ev.key;\r\n\r\n if (key === \"Enter\" || key === \" \") {\r\n ev.preventDefault();\r\n this.wmTabSelected.emit({ tabId: this.tabId });\r\n this.tabSelected.emit({ tabId: this.tabId }); // deprecated\r\n } else if (key.includes(\"Arrow\")) {\r\n ev.preventDefault();\r\n this.keydownOnTabItem.emit({ tabItem: this.el, key: ev.key });\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n toggleTabbingOn() {\r\n this.linkEl && this.linkEl.classList.add(\"user-is-tabbing\");\r\n }\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n toggleTabbingOff() {\r\n this.linkEl && this.linkEl.classList.remove(\"user-is-tabbing\");\r\n }\r\n\r\n componentDidLoad() {\r\n this.tabItemLoaded.emit();\r\n }\r\n\r\n render() {\r\n let classes = this.show ? \"\" : \"hide \";\r\n classes += this.parentTabList && this.parentTabList.customBackground == \"dark\" ? \"dark\" : \"\";\r\n\r\n let styles = {};\r\n const padding = this.parentTabList && this.parentTabList.customPadding;\r\n if (padding) {\r\n const bkgSize = parseInt(padding, 10) * 2 || 0;\r\n const units = padding.split(/([0-9]+)/).pop();\r\n styles = {\r\n \"padding-left\": this.parentTabList!.customPadding,\r\n \"padding-right\": this.parentTabList!.customPadding,\r\n \"background-size\": `calc(100% - ${bkgSize}${units}) 3px`,\r\n };\r\n }\r\n\r\n return (\r\n <Host role=\"presentation\">\r\n <li class=\"tab-item\" role=\"presentation\">\r\n <a\r\n class={`tab ${classes}`}\r\n style={styles}\r\n role=\"tab\"\r\n ref={(el) => (this.linkEl = el as HTMLAnchorElement)}\r\n onClick={this.tabClicked}\r\n id={`tab-link-${this.tabId}`}\r\n onKeyDown={(ev: KeyboardEvent) => this.tabPressed(ev)}\r\n aria-selected={this.selected ? \"true\" : \"false\"}\r\n tabindex={this.selected ? 0 : -1}\r\n >\r\n <slot></slot>\r\n </a>\r\n </li>\r\n </Host>\r\n );\r\n }\r\n}\r\n",":host,\r\nwm-tab-list {\r\n * {\r\n box-sizing: border-box;\r\n }\r\n\r\n position: relative;\r\n white-space: nowrap;\r\n height: fit-content;\r\n display: block;\r\n\r\n .tabcontainer {\r\n margin: 0;\r\n margin-left: -24px;\r\n width: 100%;\r\n height: rem-calc(65);\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n padding: 0;\r\n\r\n &.dark {\r\n background: rgb(53, 59, 72);\r\n margin: 0;\r\n }\r\n }\r\n\r\n wm-select {\r\n padding: rem-calc(6) 0;\r\n }\r\n}\r\n","import { forceUpdate, Component, Prop, Element, h, Watch, Listen, Host, Event, EventEmitter } from \"@stencil/core\";\r\nimport { debounce } from \"../../../global/functions\";\r\n\r\n@Component({\r\n tag: \"wm-tab-list\",\r\n styleUrl: \"wm-tab-list.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class TabList {\r\n @Element() el!: any;\r\n\r\n @Prop() customBackground?: \"dark\" | \"\";\r\n @Prop() customPadding?: string;\r\n @Prop() selectedTab?: string;\r\n\r\n /**\r\n * Delegates control to the component, which will listen for the tabSelected event, update the display of the tab panels, and update the selected tab on display. When set to false, the app must listen for the event and update the selectedTab attribute. Offers more control for devs, who may want to control when data loads or run other functions when tabs are switched.\r\n */\r\n @Prop() controllerEnabled: boolean = false;\r\n\r\n /**\r\n * Set to true when the tab list exceeds the parent width. Component will render the menu layout.\r\n */\r\n private get menuLayout(): boolean {\r\n if (this.listWidth) {\r\n return this.el.offsetWidth < this.listWidth - 24; // to take into account the negative margin on the ul\r\n } else {\r\n return false; // in case listWidth couldn't get computed, we render regular tabs\r\n }\r\n }\r\n\r\n /**\r\n * Emitted by wm-select options when tabs have the menu format\r\n */\r\n @Event() wmTabSelected!: EventEmitter<{ tabId: string }>;\r\n @Event() tabSelected!: EventEmitter<{ tabId: string }>; // deprecated in favor of wmTabSelected\r\n\r\n private get tabItems(): Array<HTMLWmTabItemElement> {\r\n return Array.from(this.el.querySelectorAll(\"wm-tab-item\"));\r\n }\r\n\r\n get selectedTabItem(): HTMLWmTabItemElement {\r\n return this.tabItems.filter((t) => t.selected)[0];\r\n }\r\n\r\n private getLinkEl(tab: HTMLWmTabItemElement): HTMLAnchorElement {\r\n return tab.shadowRoot!.querySelector(\"a\")!;\r\n }\r\n\r\n private get panels(): Array<HTMLWmTabPanelElement> {\r\n const allPanels = Array.from(document.querySelectorAll(\"wm-tab-panel\"));\r\n const tabIds = this.tabItems.map((t) => t.tabId);\r\n return allPanels.filter((p) => tabIds.includes(p.tabId));\r\n }\r\n\r\n private getPanel(tabId: string) {\r\n return this.panels.find((p) => p.tabId === tabId);\r\n }\r\n\r\n private listWidth?: number;\r\n\r\n private setListWidth() {\r\n let newCalc = this.tabItems.reduce((sum, tab) => sum + tab.offsetWidth, 0);\r\n this.listWidth = newCalc && newCalc > 0 ? newCalc : this.listWidth; // the function may return 0. In this case keep the previous value\r\n }\r\n\r\n @Watch(\"selectedTab\")\r\n setSelected(id: string) {\r\n this.tabItems.map((tab: HTMLWmTabItemElement) => (tab.selected = tab.tabId === id));\r\n const singlePanel = this.panels.length === 1 && this.tabItems.length > 1;\r\n if (singlePanel) {\r\n /**\r\n * If the app conditionally renders content in one single tab panel rather than allocating the content to discrete panels, then the tab panels aria references needs to update whenever a new tab item is selected.\r\n */\r\n this.setAttributesOnPanel(this.panels[0], this.selectedTabItem);\r\n this.panels[0].active = true;\r\n } else {\r\n this.panels.map((panel: HTMLWmTabPanelElement) => (panel.active = panel.tabId === id));\r\n }\r\n }\r\n\r\n showItems() {\r\n this.tabItems.map((t) => (t.show = true));\r\n }\r\n\r\n hideItems() {\r\n this.tabItems.map((t) => (t.show = false));\r\n }\r\n\r\n componentWillLoad() {\r\n this.el.focus = () => {\r\n // in addition to delegatesFocus, we need to highjack the focus method to send focus to the selected tab-item\r\n this.selectedTabItem && this.selectedTabItem.focus();\r\n };\r\n }\r\n\r\n componentDidLoad() {\r\n this.setLayout(); // this require measurements of DOM elements so can't be done before first paint\r\n const selectedTab = this.selectedTab || this.tabItems[0].tabId;\r\n this.setSelected(selectedTab);\r\n }\r\n\r\n @Listen(\"tabItemLoaded\")\r\n tabItemLoaded(ev: CustomEvent) {\r\n this.setAriaOnPanelAndTab(ev.target as HTMLWmTabItemElement);\r\n }\r\n\r\n setAriaOnPanelAndTab(tab: HTMLWmTabItemElement) {\r\n const panel = this.getPanel(tab.tabId);\r\n\r\n // If there's no panel, check for case where content is conditionally rendered in one panel, in which case attributes on all tabs should point to this single panel.\r\n if (!panel) {\r\n if (this.panels.length === 1) {\r\n this.setAttributesOnTab(tab, this.panels[0]);\r\n }\r\n } else {\r\n // Otherwise, set attributes on each tab item that loads and its associated panel\r\n this.setAttributesOnPanel(panel, tab);\r\n this.setAttributesOnTab(tab, panel);\r\n }\r\n }\r\n\r\n setAttributesOnTab(tab: HTMLWmTabItemElement, panel: HTMLWmTabPanelElement) {\r\n const link = this.getLinkEl(tab);\r\n\r\n if (link) {\r\n link.setAttribute(\"aria-controls\", panel.id);\r\n link.setAttribute(\"href\", `#${panel.id}`);\r\n }\r\n }\r\n\r\n removeAttributesOnTab(tab: HTMLWmTabItemElement) {\r\n const link = this.getLinkEl(tab);\r\n\r\n if (link) {\r\n link.removeAttribute(\"aria-controls\");\r\n link.removeAttribute(\"href\");\r\n }\r\n }\r\n\r\n setAttributesOnPanel(panel: HTMLWmTabPanelElement, tab: HTMLWmTabItemElement) {\r\n const link = this.getLinkEl(tab);\r\n\r\n if (link) {\r\n panel.setAttribute(\"aria-labelledby\", link.id);\r\n panel.setAttribute(\"tab-id\", tab.tabId);\r\n }\r\n }\r\n\r\n @Listen(\"wmTabSelected\")\r\n handleTabSelected(ev: CustomEvent) {\r\n if (this.controllerEnabled) {\r\n this.setSelected(ev.detail.tabId);\r\n }\r\n }\r\n\r\n @Listen(\"keydownOnTabItem\")\r\n handleKeydown(ev: CustomEvent) {\r\n const key = ev.detail.key;\r\n const index = this.tabItems.indexOf(ev.detail.tabItem);\r\n\r\n if (key === \"ArrowLeft\" || key === \"ArrowRight\") {\r\n this.handleLeftRightArrow(index, key);\r\n }\r\n }\r\n\r\n handleLeftRightArrow(index: number, key: string) {\r\n if (key) {\r\n index = key === \"ArrowLeft\" ? index - 1 : index + 1;\r\n }\r\n\r\n if (index < 0) {\r\n index = this.tabItems.length - 1;\r\n } else if (index === this.tabItems.length) {\r\n index = 0;\r\n }\r\n\r\n const tabToFocus = this.tabItems[index];\r\n this.getLinkEl(tabToFocus).focus();\r\n }\r\n\r\n /**\r\n * Change layout if parent size drops below tab list width\r\n */\r\n @Listen(\"resize\", { target: \"window\" })\r\n setLayout() {\r\n this.debouncedSetLayout();\r\n }\r\n\r\n debouncedSetLayout = debounce(() => {\r\n if (!this.listWidth) {\r\n this.setListWidth();\r\n }\r\n forceUpdate(this.el);\r\n }, 250);\r\n\r\n renderMenuOrTabs() {\r\n if (this.menuLayout) {\r\n this.hideItems();\r\n return (\r\n <wm-select label=\"Tab Selection\" label-position=\"none\">\r\n {this.renderOptions()}\r\n </wm-select>\r\n );\r\n } else {\r\n this.showItems();\r\n let margins = {};\r\n if (this.customPadding) {\r\n margins = {\r\n \"margin-left\": \"-\" + this.customPadding,\r\n };\r\n }\r\n return (\r\n <ul class={`tabcontainer ${this.customBackground || \"\"}`} style={margins} role=\"tablist\">\r\n <slot></slot>\r\n </ul>\r\n );\r\n }\r\n }\r\n\r\n renderOptions() {\r\n return this.tabItems.map((t) => (\r\n <wm-option\r\n id={`tab-link-${t.tabId}`}\r\n selected={t.tabId === this.selectedTab}\r\n onClick={(ev) => {\r\n ev.preventDefault();\r\n this.wmTabSelected.emit({ tabId: t.tabId });\r\n this.tabSelected.emit({ tabId: t.tabId }); // deprecated\r\n }}\r\n >\r\n {t.textContent}\r\n </wm-option>\r\n ));\r\n }\r\n\r\n render() {\r\n return <Host class={this.menuLayout ? \"menu\" : \"\"}>{this.renderMenuOrTabs()}</Host>;\r\n }\r\n}\r\n","wm-tab-panel {\r\n visibility: inherit;\r\n\r\n &.tab-hidden {\r\n display: none;\r\n }\r\n\r\n &:active {\r\n outline: none;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &.user-is-tabbing:focus {\r\n outline: -webkit-focus-ring-color auto 5px;\r\n }\r\n}\r\n","import { Component, Element, Prop, Host, h, Event, Listen, EventEmitter } from \"@stencil/core\";\r\nimport { generateId } from \"../../../global/functions\";\r\n\r\n@Component({\r\n tag: \"wm-tab-panel\",\r\n styleUrl: \"wm-tab-panel.scss\",\r\n})\r\nexport class TabPanel {\r\n @Element() el!: HTMLWmTabPanelElement;\r\n\r\n /**\r\n * Indicates whether the panel should be displayed or not.\r\n */\r\n @Prop({ mutable: true }) active: boolean = false;\r\n\r\n /**\r\n * The id of the panel, linked to a tabItem in the tablist.\r\n */\r\n @Prop({ mutable: true }) tabId: string = \"\";\r\n\r\n @Event() tabPanelLoaded!: EventEmitter<{ tabId: string }>;\r\n\r\n componentWillLoad() {\r\n !this.el.id && this.el.setAttribute(\"id\", generateId());\r\n }\r\n\r\n componentDidLoad() {\r\n this.tabPanelLoaded.emit({ tabId: this.tabId });\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n toggleTabbingOn() {\r\n this.el.classList.add(\"user-is-tabbing\");\r\n }\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n toggleTabbingOff() {\r\n this.el.classList.remove(\"user-is-tabbing\");\r\n }\r\n\r\n render() {\r\n return <Host role=\"tabpanel\" class={{ \"tab-hidden\": !this.active }}></Host>;\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- System.register(["./p-7b2fc615.system.js","./p-f08e6a5a.system.js"],(function(t){"use strict";var e,i,o,n,a,s,r,l;return{setters:[function(t){e=t.r;i=t.c;o=t.h;n=t.H;a=t.g;s=t.f},function(t){r=t.i;l=t.w}],execute:function(){var c=":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}}";var u=t("wm_navigation",function(){function t(t){var o=this;e(this,t);this.wmNavigationStateChanged=i(this,"wmNavigationStateChanged",7);this.mainNavigationMessage=r.formatMessage({id:"navigation.mainNavigation",defaultMessage:"Main",description:"Label describing the site navigation, for screen reader users"});this.openTooltipMessage=r.formatMessage({id:"global.openVerb",defaultMessage:"Open",description:"For a button, to open a user interface element"});this.closeTooltipMessage=r.formatMessage({id:"global.closeVerb",defaultMessage:"Close",description:"For a button, to close a user interface element"});this.throttledRerender=l((function(){return s(o.el)}),50);this.open=false;this.isTabbing=false}Object.defineProperty(t.prototype,"isCollapsible",{get:function(){return window.innerWidth<1024},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"ariaExpanded",{get:function(){return this.isCollapsible?this.open.toString():undefined},enumerable:false,configurable:true});t.prototype.toggleTabbingOn=function(){this.isTabbing=true};t.prototype.toggleTabbingOff=function(){this.isTabbing=false};t.prototype.closeOnEscape=function(t){if(t.key==="Escape"){this.open=false}};t.prototype.handleWindowResize=function(){this.throttledRerender()};t.prototype.handleHamburgerClicked=function(){this.open=!this.open};t.prototype.handleClickOnItem=function(){this.open=false};t.prototype.handleStateChange=function(){if(this.isCollapsible){this.wmNavigationStateChanged.emit();this.open?this.expand():this.collapse()}};t.prototype.componentWillLoad=function(){var t=this;if(document.body.classList.contains("wmcl-user-is-tabbing")){this.toggleTabbingOn()}this.el.focus=function(){var e=t.open?t.el.shadowRoot.querySelector(".toggle"):document.querySelector("wm-navigation-hamburger");var i=t.el.querySelector("wm-navigation-item");t.isCollapsible?e.focus():i.focus()};if(this.isCollapsible&&this.open){this.wmNavigationStateChanged.emit();this.expand()}};t.prototype.redirectFocusFromBody=function(t){if(document.activeElement.tagName==="BODY"&&!t.relatedTarget){this.el.focus()}};t.prototype.expand=function(){var t=this;document.body.tabIndex=0;document.body.addEventListener("focus",this.redirectFocusFromBody.bind(this),true);setTimeout((function(){return t.toggleEl.focus()}),250)};t.prototype.collapse=function(){document.body.tabIndex=-1;document.body.removeEventListener("focus",this.redirectFocusFromBody.bind(this));var t=document.querySelector("wm-navigation-hamburger");if(t)t.focus()};t.prototype.focusLastItem=function(){var t=this.el.querySelectorAll("wm-navigation-item");var e=Array.from(t).pop();e.focus()};t.prototype.renderOverlay=function(){var t=this;return o("div",{class:"overlay",onClick:function(){t.open=false}})};t.prototype.render=function(){var t=this;return o(n,{role:"navigation","aria-expanded":this.ariaExpanded,"aria-label":this.mainNavigationMessage},this.open?this.renderOverlay():"",this.isCollapsible&&o("div",{class:"trapfocus",tabindex:this.open?0:undefined,onFocus:function(){return t.focusLastItem()}}),o("div",{class:"tray"},o("div",{class:"toggle-wrapper"},o("wm-button",{ref:function(e){return t.toggleEl=e},class:"toggle ".concat(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:function(){t.open=!t.open}})),o("ul",{class:"navlist"},o("slot",null))),this.isCollapsible&&o("div",{class:"trapfocus",tabindex:this.open?0:undefined,onFocus:function(){return t.toggleEl.focus()}}))};Object.defineProperty(t,"delegatesFocus",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{open:["handleStateChange"]}},enumerable:false,configurable:true});return t}());u.style=c;var p='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}}';var d=t("wm_navigation_hamburger",function(){function t(t){e(this,t);this.wmNavigationHamburgerClicked=i(this,"wmNavigationHamburgerClicked",7);this.showNavMessage=r.formatMessage({id:"navigation.showNavigation",defaultMessage:"Show navigation",description:"For user interface element opening a navigation menu"});this.navId=undefined;this.tooltipVisible=false;this.isTabbing=false;this.open=false}Object.defineProperty(t.prototype,"tooltipEl",{get:function(){return document.getElementById("wm-tooltip")},enumerable:false,configurable:true});t.prototype.toggleTabbingOn=function(){this.isTabbing=true};t.prototype.toggleTabbingOff=function(){this.isTabbing=false};t.prototype.handleNavigationStateChanged=function(t){this.open=t.target.open};t.prototype.componentWillLoad=function(){if(document.body.classList.contains("wmcl-user-is-tabbing")){this.toggleTabbingOn()}if(!this.navId){console.error("wm-navigation-hamburger: nav-id is a required prop")}};t.prototype.showTooltip=function(){var t=this;var e=this.showNavMessage;this.tooltipEl.textContent=e;this.tooltipEl.style.setProperty("--wmTooltipTop","1.125rem");this.tooltipEl.style.setProperty("--wmTooltipLeft","2.75rem");this.tooltipEl.style.transitionDelay="500ms";this.tooltipEl.style.opacity="1";var i=e.match(/^[^\s]+$/);if(i){this.tooltipEl.classList.add("single-word");this.tooltipEl.style.setProperty("--wmTooltipMaxWidth","none")}else{this.tooltipEl.classList.remove("single-word");this.tooltipEl.style.removeProperty("--wmTooltipMaxWidth")}setTimeout((function(){t.tooltipVisible=true}),500)};t.prototype.hideTooltip=function(){this.tooltipEl.style.transitionDelay="0s";this.tooltipEl.style.opacity="0";this.tooltipVisible=false};t.prototype.showTooltipForKeyboardUsers=function(){if(this.isTabbing){this.showTooltip()}};t.prototype.handleClick=function(){this.hideTooltip();this.wmNavigationHamburgerClicked.emit()};t.prototype.render=function(){var t=this;return o(n,{class:"hamburger ".concat(this.open?"nav-open":"nav-closed")},o("button",{class:this.isTabbing?"user-is-tabbing":undefined,"aria-expanded":this.open,"aria-controls":this.navId,"aria-label":this.showNavMessage,onMouseEnter:function(){return t.showTooltip()},onMouseLeave:function(){return t.hideTooltip()},onFocus:function(){return t.showTooltipForKeyboardUsers()},onBlur:function(){return t.hideTooltip()},onClick:function(){return t.handleClick()}},o("span",{class:"icon"})))};Object.defineProperty(t,"delegatesFocus",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});return t}());d.style=p;var f='.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}';var b=t("wm_navigation_item",function(){function t(t){e(this,t);this.wmNavigationItemClicked=i(this,"wmNavigationItemClicked",7);this.href=undefined;this.text=undefined;this.active=undefined;this.isTabbing=false}t.prototype.toggleTabbingOn=function(){this.isTabbing=true};t.prototype.toggleTabbingOff=function(){this.isTabbing=false};t.prototype.componentWillLoad=function(){if(document.body.classList.contains("wmcl-user-is-tabbing")){this.toggleTabbingOn()}};t.prototype.render=function(){var t=this;return o(n,{role:"listitem"},o("a",{class:"link ".concat(this.active?"active":""," ").concat(this.isTabbing?"user-is-tabbing":""),href:this.href,onClick:function(){return t.wmNavigationItemClicked.emit()}},o("div",{class:"icon","aria-hidden":"true"},o("slot",null)),o("div",{class:"text"},this.text)))};Object.defineProperty(t,"delegatesFocus",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});return t}());b.style=f}}}));
2
- //# sourceMappingURL=p-f4487f66.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["wmNavigationCss","Navigation","exports","this","mainNavigationMessage","intl","formatMessage","id","defaultMessage","description","openTooltipMessage","closeTooltipMessage","throttledRerender","throttle","forceUpdate","_this","el","Object","defineProperty","class_1","prototype","window","innerWidth","isCollapsible","open","toString","undefined","toggleTabbingOn","isTabbing","toggleTabbingOff","closeOnEscape","ev","key","handleWindowResize","handleHamburgerClicked","handleClickOnItem","handleStateChange","wmNavigationStateChanged","emit","expand","collapse","componentWillLoad","document","body","classList","contains","focus","btn","shadowRoot","querySelector","firstItem","redirectFocusFromBody","activeElement","tagName","relatedTarget","tabIndex","addEventListener","bind","setTimeout","toggleEl","removeEventListener","hamburgerBtn","focusLastItem","items","querySelectorAll","lastItem","Array","from","pop","renderOverlay","h","class","onClick","render","Host","role","ariaExpanded","tabindex","onFocus","ref","concat","icon","tooltip","wmNavigationHamburgerCss","NavigationHamburger","showNavMessage","class_2","getElementById","handleNavigationStateChanged","target","navId","console","error","showTooltip","tooltipText","tooltipEl","textContent","style","setProperty","transitionDelay","opacity","hasNoWhitespace","match","add","remove","removeProperty","tooltipVisible","hideTooltip","showTooltipForKeyboardUsers","handleClick","wmNavigationHamburgerClicked","onMouseEnter","onMouseLeave","onBlur","wmNavigationItemCss","NavigationItem","class_3","active","href","wmNavigationItemClicked","text"],"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"],"mappings":"gOAAA,IAAMA,EAAkB,unD,ICoBXC,EAAUC,EAAA,2B,sGAQbC,KAAAC,sBAAgCC,EAAKC,cAAc,CACzDC,GAAI,4BACJC,eAAgB,OAChBC,YAAa,kEAGPN,KAAAO,mBAA6BL,EAAKC,cAAc,CACtDC,GAAI,kBACJC,eAAgB,OAChBC,YAAa,mDAGPN,KAAAQ,oBAA8BN,EAAKC,cAAc,CACvDC,GAAI,mBACJC,eAAgB,QAChBC,YAAa,oDAgCfN,KAAAS,kBAAoBC,GAAS,WAAM,OAAAC,EAAYC,EAAKC,GAAjB,GAAsB,I,UApDD,M,eAE1B,K,CAqB9BC,OAAAC,eAAIC,EAAAC,UAAA,gBAAa,C,IAAjB,WACE,OAAOC,OAAOC,WAAa,I,uCAG7BL,OAAAC,eAAIC,EAAAC,UAAA,eAAY,C,IAAhB,WACE,OAAOjB,KAAKoB,cAERpB,KAAKqB,KAAKC,WAEVC,S,uCAINP,EAAAC,UAAAO,gBAAA,WACExB,KAAKyB,UAAY,I,EAInBT,EAAAC,UAAAS,iBAAA,WACE1B,KAAKyB,UAAY,K,EAInBT,EAAAC,UAAAU,cAAA,SAAcC,GACZ,GAAIA,EAAGC,MAAQ,SAAU,CACvB7B,KAAKqB,KAAO,K,GAOhBL,EAAAC,UAAAa,mBAAA,WAGE9B,KAAKS,mB,EAIPO,EAAAC,UAAAc,uBAAA,WACE/B,KAAKqB,MAAQrB,KAAKqB,I,EAIpBL,EAAAC,UAAAe,kBAAA,WACEhC,KAAKqB,KAAO,K,EAIdL,EAAAC,UAAAgB,kBAAA,WACE,GAAIjC,KAAKoB,cAAe,CACtBpB,KAAKkC,yBAAyBC,OAC9BnC,KAAKqB,KAAOrB,KAAKoC,SAAWpC,KAAKqC,U,GAIrCrB,EAAAC,UAAAqB,kBAAA,eAAA1B,EAAAZ,KACE,GAAIuC,SAASC,KAAKC,UAAUC,SAAS,wBAAyB,CAC5D1C,KAAKwB,iB,CAGPxB,KAAKa,GAAG8B,MAAQ,WAEd,IAAMC,EAAMhC,EAAKS,KACZT,EAAKC,GAAGgC,WAAYC,cAAc,WAClCP,SAASO,cAAc,2BAC5B,IAAMC,EAAYnC,EAAKC,GAAGiC,cAAc,sBACxClC,EAAKQ,cAAgBwB,EAAID,QAAUI,EAAUJ,O,EAG/C,GAAI3C,KAAKoB,eAAiBpB,KAAKqB,KAAM,CAEnCrB,KAAKkC,yBAAyBC,OAC9BnC,KAAKoC,Q,GAITpB,EAAAC,UAAA+B,sBAAA,SAAsBpB,GAGpB,GAAKW,SAASU,cAA8BC,UAAY,SAAWtB,EAAGuB,cAAe,CACnFnD,KAAKa,GAAG8B,O,GAIZ3B,EAAAC,UAAAmB,OAAA,eAAAxB,EAAAZ,KAIEuC,SAASC,KAAKY,SAAW,EACzBb,SAASC,KAAKa,iBAAiB,QAASrD,KAAKgD,sBAAsBM,KAAKtD,MAAO,MAG/EuD,YAAW,WAAM,OAAA3C,EAAK4C,SAASb,OAAd,GAAuB,I,EAI1C3B,EAAAC,UAAAoB,SAAA,WAEEE,SAASC,KAAKY,UAAY,EAC1Bb,SAASC,KAAKiB,oBAAoB,QAASzD,KAAKgD,sBAAsBM,KAAKtD,OAE3E,IAAM0D,EAAenB,SAASO,cAAc,2BAG5C,GAAIY,EAAcA,EAAaf,O,EAGjC3B,EAAAC,UAAA0C,cAAA,WACE,IAAMC,EAAQ5D,KAAKa,GAAGgD,iBAAiB,sBACvC,IAAMC,EAAWC,MAAMC,KAAKJ,GAAOK,MACnCH,EAASnB,O,EAGX3B,EAAAC,UAAAiD,cAAA,eAAAtD,EAAAZ,KACE,OACEmE,EAAA,OACEC,MAAM,UACNC,QAAS,WACPzD,EAAKS,KAAO,K,KAMpBL,EAAAC,UAAAqD,OAAA,eAAA1D,EAAAZ,KACE,OACEmE,EAACI,EAAI,CAACC,KAAK,aAAY,gBAAgBxE,KAAKyE,aAAY,aAAczE,KAAKC,uBACxED,KAAKqB,KAAOrB,KAAKkE,gBAAkB,GACnClE,KAAKoB,eACJ+C,EAAA,OAAKC,MAAM,YAAYM,SAAU1E,KAAKqB,KAAO,EAAIE,UAAWoD,QAAS,WAAM,OAAA/D,EAAK+C,eAAL,IAE7EQ,EAAA,OAAKC,MAAM,QACTD,EAAA,OAAKC,MAAM,kBACTD,EAAA,aACES,IAAK,SAAC/D,GAAE,OAAMD,EAAK4C,SAAW3C,CAAtB,EACRuD,MAAO,UAAAS,OAAU7E,KAAKyB,UAAY,kBAAoB,IAAI,cAC9C,eACZqD,KAAM9E,KAAKqB,KAAO,OAAS,OAAM,YACvB,OACV0D,QAAS/E,KAAKqB,KAAOrB,KAAKQ,oBAAsBR,KAAKO,mBAAkB,mBACtD,OACjB6C,SAAUpD,KAAKqB,KAAOE,WAAa,EACnC8C,QAAS,WACPzD,EAAKS,MAAQT,EAAKS,I,KAIxB8C,EAAA,MAAIC,MAAM,WACRD,EAAA,eAGHnE,KAAKoB,eACJ+C,EAAA,OAAKC,MAAM,YAAYM,SAAU1E,KAAKqB,KAAO,EAAIE,UAAWoD,QAAS,WAAM,OAAA/D,EAAK4C,SAASb,OAAd,I,8VAnL9D,I,UCpBvB,IAAMqC,EAA2B,8jC,ICQpBC,EAAmBlF,EAAA,qC,mGAY9BC,KAAAkF,eAAiBhF,EAAKC,cAAc,CAClCC,GAAI,4BACJC,eAAgB,kBAChBC,YAAa,yD,yCAV2B,M,eAEX,M,UACN,K,CAUzBQ,OAAAC,eAAIoE,EAAAlE,UAAA,YAAS,C,IAAb,WACE,OAAOsB,SAAS6C,eAAe,a,uCAIjCD,EAAAlE,UAAAO,gBAAA,WACExB,KAAKyB,UAAY,I,EAInB0D,EAAAlE,UAAAS,iBAAA,WACE1B,KAAKyB,UAAY,K,EAKnB0D,EAAAlE,UAAAoE,6BAAA,SAA6BzD,GAC3B5B,KAAKqB,KAAQO,EAAG0D,OAAoCjE,I,EAGtD8D,EAAAlE,UAAAqB,kBAAA,WACE,GAAIC,SAASC,KAAKC,UAAUC,SAAS,wBAAyB,CAC5D1C,KAAKwB,iB,CAEP,IAAKxB,KAAKuF,MAAO,CACfC,QAAQC,MAAM,qD,GAIlBN,EAAAlE,UAAAyE,YAAA,eAAA9E,EAAAZ,KACE,IAAM2F,EAAc3F,KAAKkF,eACzBlF,KAAK4F,UAAUC,YAAcF,EAC7B3F,KAAK4F,UAAUE,MAAMC,YAAY,iBAAkB,YACnD/F,KAAK4F,UAAUE,MAAMC,YAAY,kBAAmB,WACpD/F,KAAK4F,UAAUE,MAAME,gBAAkB,QACvChG,KAAK4F,UAAUE,MAAMG,QAAU,IAG/B,IAAMC,EAAkBP,EAAaQ,MAAM,YAC3C,GAAID,EAAiB,CACnBlG,KAAK4F,UAAUnD,UAAU2D,IAAI,eAC7BpG,KAAK4F,UAAUE,MAAMC,YAAY,sBAAuB,O,KACnD,CACL/F,KAAK4F,UAAUnD,UAAU4D,OAAO,eAChCrG,KAAK4F,UAAUE,MAAMQ,eAAe,sB,CAOtC/C,YAAW,WACT3C,EAAK2F,eAAiB,I,GACrB,I,EAGLpB,EAAAlE,UAAAuF,YAAA,WACExG,KAAK4F,UAAUE,MAAME,gBAAkB,KACvChG,KAAK4F,UAAUE,MAAMG,QAAU,IAC/BjG,KAAKuG,eAAiB,K,EAGxBpB,EAAAlE,UAAAwF,4BAAA,WACE,GAAIzG,KAAKyB,UAAW,CAClBzB,KAAK0F,a,GAITP,EAAAlE,UAAAyF,YAAA,WACE1G,KAAKwG,cACLxG,KAAK2G,6BAA6BxE,M,EAGpCgD,EAAAlE,UAAAqD,OAAA,eAAA1D,EAAAZ,KACE,OACEmE,EAACI,EAAI,CAACH,MAAO,aAAAS,OAAa7E,KAAKqB,KAAO,WAAa,eACjD8C,EAAA,UACEC,MAAOpE,KAAKyB,UAAY,kBAAoBF,UAAS,gBACtCvB,KAAKqB,KAAI,gBACTrB,KAAKuF,MAAK,aACbvF,KAAKkF,eACjB0B,aAAc,WAAM,OAAAhG,EAAK8E,aAAL,EACpBmB,aAAc,WAAM,OAAAjG,EAAK4F,aAAL,EACpB7B,QAAS,WAAM,OAAA/D,EAAK6F,6BAAL,EACfK,OAAQ,WAAM,OAAAlG,EAAK4F,aAAL,EACdnC,QAAS,WAAM,OAAAzD,EAAK8F,aAAL,GAEfvC,EAAA,QAAMC,MAAM,U,kOAzGU,I,UCRhC,IAAM2C,EAAsB,q2B,ICOfC,EAAcjH,EAAA,gC,sKAMM,K,CAI/BkH,EAAAhG,UAAAO,gBAAA,WACExB,KAAKyB,UAAY,I,EAInBwF,EAAAhG,UAAAS,iBAAA,WACE1B,KAAKyB,UAAY,K,EAGnBwF,EAAAhG,UAAAqB,kBAAA,WACE,GAAIC,SAASC,KAAKC,UAAUC,SAAS,wBAAyB,CAC5D1C,KAAKwB,iB,GAITyF,EAAAhG,UAAAqD,OAAA,eAAA1D,EAAAZ,KACE,OACEmE,EAACI,EAAI,CAACC,KAAK,YACTL,EAAA,KACEC,MAAO,QAAAS,OAAQ7E,KAAKkH,OAAS,SAAW,GAAE,KAAArC,OAAI7E,KAAKyB,UAAY,kBAAoB,IACnF0F,KAAMnH,KAAKmH,KACX9C,QAAS,WAAM,OAAAzD,EAAKwG,wBAAwBjF,MAA7B,GAEfgC,EAAA,OAAKC,MAAM,OAAM,cAAa,QAC5BD,EAAA,cAEFA,EAAA,OAAKC,MAAM,QAAQpE,KAAKqH,O,kOApCP,I"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["getIconCodeFromName","icon","iconCodes","close","pencil","cancel","check","delete","magnify","export","defaultMode","getWmMode","exports","ref","getAttribute","document","documentElement"],"sources":["src/global/interfaces.ts"],"sourcesContent":["export type Notification = {\r\n message: string;\r\n id: string;\r\n link: string;\r\n newWindow: boolean;\r\n};\r\n\r\n// Create label for icon-only buttons\r\nexport type label = string | undefined;\r\n\r\nexport type CssClassMap = { [className: string]: boolean };\r\n\r\ninterface IconLabels {\r\n [index: string]: string;\r\n}\r\n\r\nexport type Product = {\r\n description?: string;\r\n samlLinkUrl?: string;\r\n iconUrl: string;\r\n id: string;\r\n linkUrl: string;\r\n name: string;\r\n};\r\n\r\n// products retrieved from endpoint:\r\nexport type NavigatorPayload = {\r\n connection_name?: string;\r\n current_product_id: string;\r\n email: string;\r\n logout_url: string;\r\n products: Product[];\r\n};\r\n\r\nexport type validButtonTypes =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"textonly\"\r\n | \"icononly\"\r\n | \"navigational\"\r\n | \"selector\"\r\n | \"selector-primary\"\r\n | \"pairpositive\"\r\n | \"pairnegative\";\r\n\r\n//List of icon codes with more indicative descriptors to create labels for icon-only buttons\r\nexport const iconLabels: IconLabels = {\r\n f156: \"Close\",\r\n f3eb: \"Edit\",\r\n f739: \"Cancel\",\r\n f12c: \"Save\",\r\n f1c0: \"Delete\",\r\n f349: \"Search\",\r\n f207: \"Export info\",\r\n f1d9: \"Open dropdown\",\r\n f04d: \"Go back\",\r\n f054: \"Go forward\",\r\n f141: \"Left\",\r\n f142: \"Right\",\r\n f35e: \"Menu left\",\r\n f35d: \"Toggle menu down\",\r\n f30d: \"Backspace\",\r\n f645: \"Sort hierarchically\",\r\n f4bb: \"Sort alphabetically\",\r\n};\r\n\r\n// For backwards compatibility, the icon prop accepts the icon name minus mdi- prefix, e.g. \"icon\"\r\n// this function converts the name to the corresponding code or returns what it was passed\r\ninterface IconCodes {\r\n [index: string]: string;\r\n}\r\nexport function getIconCodeFromName(icon: string): string {\r\n return iconCodes[icon] || icon;\r\n}\r\n\r\nconst iconCodes: IconCodes = {\r\n close: \"f156\",\r\n pencil: \"f3eb\",\r\n cancel: \"f739\",\r\n check: \"f12c\",\r\n delete: \"f1c0\",\r\n magnify: \"f349\",\r\n export: \"f207\",\r\n \"dots-vertical\": \"f1d9\",\r\n \"arrow-left\": \"f04d\",\r\n \"arrow-right\": \"f054\",\r\n \"chevron-left\": \"f141\",\r\n \"chevron-right\": \"f142\",\r\n \"menu-left\": \"f35e\",\r\n \"menu-down\": \"f35d\",\r\n \"keyboard-backspace\": \"f30d\",\r\n \"file-tree\": \"f645\",\r\n \"sort-alphabetical\": \"f4bb\",\r\n \"checkbox-marked-circle\": \"f133\",\r\n \"account-settings\": \"f630\",\r\n \"backup-restore\": \"f06f\",\r\n};\r\n\r\nexport const defaultMode = \"planning\";\r\n\r\nexport const getWmMode = (ref?: any) => {\r\n return ref.getAttribute(\"mode\") || document.documentElement.getAttribute(\"mode\") || defaultMode;\r\n};\r\n\r\nexport type TooltipPlacement =\r\n | \"top\"\r\n | \"bottom\"\r\n | \"left\"\r\n | \"right\"\r\n | \"bottom-left\"\r\n | \"bottom-right\"\r\n | \"top-right\"\r\n | \"top-left\";\r\n\r\nexport type SliceElement = (SVGElement | HTMLElement);\r\n\r\nexport type SliceDetails = {\r\n amount: number;\r\n perc: number;\r\n legend: string | null;\r\n color: string;\r\n offset: number;\r\n id: string;\r\n title: string | null;\r\n text: string | null;\r\n buttonText: string | null;\r\n sliceRef: Element;\r\n inSmallCluster: boolean;\r\n coords?: {x: number, y: number};\r\n};\r\n\r\nexport type ChartDetails = {\r\n size: number;\r\n colors: Array<string>;\r\n thickness?: number;\r\n padding: number;\r\n category: \"doughnut\" | \"stackedBar\" | \"simpleBar\";\r\n};\r\n\r\nexport type ChartType =\r\n // progress monitor types\r\n | \"doughnut\"\r\n | \"bar\"\r\n // chart types\r\n | \"doughnut1\"\r\n | \"doughnut2\"\r\n | \"doughnut2plus\"\r\n | \"doughnut3\"\r\n | \"bar2\"\r\n | \"bar3\"\r\n | \"bar4\"\r\n | \"bar5\"\r\n | \"bar6\"\r\n | \"bar7\"\r\n // deprecated\r\n | \"doughnut0\"\r\n | \"bar1\";\r\n\r\nexport type LegendItem = { key: string; color: string };\r\n\r\nexport type UploadedFile = {\r\n name: string;\r\n id: string;\r\n type: string;\r\n lastUpdated: string; // in display format\r\n progress?: number;\r\n fileActions?: string;\r\n size?: string; // in display format\r\n};\r\n"],"mappings":"yFAuEgBA,EAAoBC,GAClC,OAAOC,EAAUD,IAASA,CAC5B,CAEA,IAAMC,EAAuB,CAC3BC,MAAO,OACPC,OAAQ,OACRC,OAAQ,OACRC,MAAO,OACPC,OAAQ,OACRC,QAAS,OACTC,OAAQ,OACR,gBAAiB,OACjB,aAAc,OACd,cAAe,OACf,eAAgB,OAChB,gBAAiB,OACjB,YAAa,OACb,YAAa,OACb,qBAAsB,OACtB,YAAa,OACb,oBAAqB,OACrB,yBAA0B,OAC1B,mBAAoB,OACpB,iBAAkB,QAGb,IAAMC,EAAc,W,IAEdC,EAASC,EAAA,KAAG,SAACC,GACxB,OAAOA,EAAIC,aAAa,SAAWC,SAASC,gBAAgBF,aAAa,SAAWJ,CACtF,G"}