@watermarkinsights/ripple 4.3.0 → 4.4.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/cjs/chartFunctions-cecf8134.js +600 -0
  2. package/dist/cjs/{functions-91da05e9.js → functions-4208c444.js} +362 -362
  3. package/dist/cjs/{global-20d48c6c.js → global-bd289a67.js} +24 -24
  4. package/dist/cjs/{index-fae02cd7.js → index-f8ef86de.js} +436 -150
  5. package/dist/cjs/interfaces-ad9e80a6.js +38 -0
  6. package/dist/cjs/intl-3fafc6d1.js +179 -0
  7. package/dist/cjs/loader.cjs.js +4 -13
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +85 -85
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +637 -637
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +21 -21
  12. package/dist/cjs/ripple.cjs.js +4 -7
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +314 -314
  14. package/dist/cjs/wm-button.cjs.entry.js +174 -174
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +17 -17
  16. package/dist/cjs/wm-chart.cjs.entry.js +164 -164
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +160 -160
  18. package/dist/cjs/wm-file-list.cjs.entry.js +10 -10
  19. package/dist/cjs/wm-file.cjs.entry.js +178 -178
  20. package/dist/cjs/wm-input.cjs.entry.js +102 -102
  21. package/dist/cjs/wm-line-chart.cjs.entry.js +462 -462
  22. package/dist/cjs/wm-modal-footer.cjs.entry.js +27 -27
  23. package/dist/cjs/wm-modal-header.cjs.entry.js +21 -21
  24. package/dist/cjs/wm-modal.cjs.entry.js +92 -92
  25. package/dist/cjs/wm-navigation_3.cjs.entry.js +179 -179
  26. package/dist/cjs/wm-navigator.cjs.entry.js +255 -251
  27. package/dist/cjs/wm-option_2.cjs.entry.js +710 -710
  28. package/dist/cjs/wm-pagination.cjs.entry.js +169 -169
  29. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +151 -151
  30. package/dist/cjs/wm-search.cjs.entry.js +192 -192
  31. package/dist/cjs/wm-snackbar.cjs.entry.js +114 -114
  32. package/dist/cjs/wm-tab-item_3.cjs.entry.js +247 -247
  33. package/dist/cjs/wm-tag-input.cjs.entry.js +849 -849
  34. package/dist/cjs/wm-tag-option.cjs.entry.js +33 -33
  35. package/dist/cjs/wm-timepicker.cjs.entry.js +270 -270
  36. package/dist/cjs/wm-toggletip.cjs.entry.js +99 -99
  37. package/dist/cjs/wm-uploader.cjs.entry.js +198 -198
  38. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  39. package/dist/collection/collection-manifest.json +41 -41
  40. package/dist/collection/components/charts/chartFunctions.js +456 -456
  41. package/dist/collection/components/charts/chartFunctions.spec.js +13 -13
  42. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +73 -73
  43. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +257 -254
  44. package/dist/collection/components/charts/screenshots.e2e.js +30 -30
  45. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +121 -121
  46. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +160 -160
  47. package/dist/collection/components/charts/wm-chart/wm-chart.js +382 -381
  48. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +26 -26
  49. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1 -2
  50. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +138 -138
  51. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +731 -731
  52. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +106 -106
  53. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +202 -202
  54. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +54 -54
  55. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +136 -136
  56. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +31 -31
  57. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +119 -119
  58. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +187 -187
  59. package/dist/collection/components/wm-action-menu/wm-action-menu.js +435 -435
  60. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +35 -35
  61. package/dist/collection/components/wm-button/wm-button.e2e.js +58 -58
  62. package/dist/collection/components/wm-button/wm-button.js +454 -452
  63. package/dist/collection/components/wm-button/wm-button.spec.js +63 -63
  64. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +943 -939
  65. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.spec.js +71 -71
  66. package/dist/collection/components/wm-datepicker/wm-datepicker.css +1 -2
  67. package/dist/collection/components/wm-datepicker/wm-datepicker.e2e.js +359 -359
  68. package/dist/collection/components/wm-datepicker/wm-datepicker.js +415 -413
  69. package/dist/collection/components/wm-datepicker/wm-datepicker.spec.js +13 -13
  70. package/dist/collection/components/wm-file/wm-file.js +380 -380
  71. package/dist/collection/components/wm-file/wm-file.spec.js +107 -107
  72. package/dist/collection/components/wm-file-list/wm-file-list.js +42 -42
  73. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +47 -47
  74. package/dist/collection/components/wm-input/wm-input.e2e.js +26 -26
  75. package/dist/collection/components/wm-input/wm-input.js +453 -453
  76. package/dist/collection/components/wm-input/wm-input.spec.js +168 -168
  77. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +18 -18
  78. package/dist/collection/components/wm-menuitem/wm-menuitem.js +446 -436
  79. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +46 -46
  80. package/dist/collection/components/wm-modal/wm-modal-footer.js +130 -130
  81. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +8 -8
  82. package/dist/collection/components/wm-modal/wm-modal-header.js +68 -68
  83. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +5 -5
  84. package/dist/collection/components/wm-modal/wm-modal.e2e.js +65 -65
  85. package/dist/collection/components/wm-modal/wm-modal.js +299 -296
  86. package/dist/collection/components/wm-modal/wm-modal.spec.js +22 -22
  87. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -1
  88. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +112 -112
  89. package/dist/collection/components/wm-navigation/wm-navigation-item.js +125 -125
  90. package/dist/collection/components/wm-navigation/wm-navigation.css +0 -2
  91. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +86 -86
  92. package/dist/collection/components/wm-navigation/wm-navigation.js +209 -209
  93. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +79 -79
  94. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +30 -30
  95. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +103 -103
  96. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +119 -118
  97. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +180 -180
  98. package/dist/collection/components/wm-navigator/wm-navigator.js +458 -454
  99. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +153 -153
  100. package/dist/collection/components/wm-option/wm-option.e2e.js +19 -19
  101. package/dist/collection/components/wm-option/wm-option.js +474 -463
  102. package/dist/collection/components/wm-option/wm-option.spec.js +39 -39
  103. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +301 -301
  104. package/dist/collection/components/wm-pagination/wm-pagination.js +327 -327
  105. package/dist/collection/components/wm-search/wm-search.e2e.js +69 -69
  106. package/dist/collection/components/wm-search/wm-search.js +415 -414
  107. package/dist/collection/components/wm-search/wm-search.spec.js +64 -64
  108. package/dist/collection/components/wm-select/wm-select.e2e.js +443 -443
  109. package/dist/collection/components/wm-select/wm-select.js +967 -966
  110. package/dist/collection/components/wm-select/wm-select.spec.js +250 -250
  111. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +114 -114
  112. package/dist/collection/components/wm-snackbar/wm-snackbar.js +209 -207
  113. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +4 -4
  114. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +190 -188
  115. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +261 -261
  116. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  117. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +79 -79
  118. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +6 -6
  119. package/dist/collection/components/wm-tag-input/wm-tag-input.css +2 -4
  120. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +168 -168
  121. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1159 -1159
  122. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +147 -147
  123. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +236 -234
  124. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1 -2
  125. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +147 -147
  126. package/dist/collection/components/wm-timepicker/wm-timepicker.js +531 -527
  127. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +151 -151
  128. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +61 -61
  129. package/dist/collection/components/wm-toggletip/wm-toggletip.js +209 -208
  130. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +16 -16
  131. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +56 -56
  132. package/dist/collection/components/wm-uploader/wm-uploader.js +423 -422
  133. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +149 -149
  134. package/dist/collection/components/wm-wrapper/wm-wrapper.js +26 -26
  135. package/dist/collection/global/__mocks__/functions.js +1 -1
  136. package/dist/collection/global/functions.js +510 -510
  137. package/dist/collection/global/functions.spec.js +123 -123
  138. package/dist/collection/global/global.js +16 -16
  139. package/dist/collection/global/interfaces.js +39 -39
  140. package/dist/collection/global/intl.js +162 -162
  141. package/dist/collection/global/services/__mocks__/http-service.js +112 -112
  142. package/dist/collection/global/services/http-service.js +41 -41
  143. package/dist/collection/global/themes/default.js +4 -4
  144. package/dist/collection/global/themes/neutral.js +4 -4
  145. package/dist/collection/lang/lang.spec.js +13 -13
  146. package/dist/esm/chartFunctions-23173fce.js +584 -0
  147. package/dist/esm/{functions-5afd09f4.js → functions-d0e70094.js} +362 -362
  148. package/dist/esm/{global-d4a9e80e.js → global-4569c7b8.js} +24 -24
  149. package/dist/esm/{index-7e11ea42.js → index-f164fbca.js} +436 -150
  150. package/dist/esm/interfaces-9b75fb61.js +35 -0
  151. package/dist/esm/intl-05c9e0c9.js +174 -0
  152. package/dist/esm/loader.js +5 -14
  153. package/dist/esm/priv-chart-popover.entry.js +85 -85
  154. package/dist/esm/priv-datepicker.entry.js +637 -637
  155. package/dist/esm/priv-navigator-button.entry.js +18 -18
  156. package/dist/esm/priv-navigator-item.entry.js +21 -21
  157. package/dist/esm/ripple.js +5 -8
  158. package/dist/esm/wm-action-menu_2.entry.js +314 -314
  159. package/dist/esm/wm-button.entry.js +174 -174
  160. package/dist/esm/wm-chart-slice.entry.js +17 -17
  161. package/dist/esm/wm-chart.entry.js +164 -164
  162. package/dist/esm/wm-datepicker.entry.js +160 -160
  163. package/dist/esm/wm-file-list.entry.js +10 -10
  164. package/dist/esm/wm-file.entry.js +178 -178
  165. package/dist/esm/wm-input.entry.js +102 -102
  166. package/dist/esm/wm-line-chart.entry.js +462 -462
  167. package/dist/esm/wm-modal-footer.entry.js +27 -27
  168. package/dist/esm/wm-modal-header.entry.js +21 -21
  169. package/dist/esm/wm-modal.entry.js +92 -92
  170. package/dist/esm/wm-navigation_3.entry.js +179 -179
  171. package/dist/esm/wm-navigator.entry.js +255 -251
  172. package/dist/esm/wm-option_2.entry.js +710 -710
  173. package/dist/esm/wm-pagination.entry.js +169 -169
  174. package/dist/esm/wm-progress-indicator_3.entry.js +151 -151
  175. package/dist/esm/wm-search.entry.js +192 -192
  176. package/dist/esm/wm-snackbar.entry.js +114 -114
  177. package/dist/esm/wm-tab-item_3.entry.js +247 -247
  178. package/dist/esm/wm-tag-input.entry.js +849 -849
  179. package/dist/esm/wm-tag-option.entry.js +33 -33
  180. package/dist/esm/wm-timepicker.entry.js +270 -270
  181. package/dist/esm/wm-toggletip.entry.js +99 -99
  182. package/dist/esm/wm-uploader.entry.js +198 -198
  183. package/dist/esm/wm-wrapper.entry.js +12 -12
  184. package/dist/esm-es5/chartFunctions-23173fce.js +1 -0
  185. package/dist/esm-es5/functions-d0e70094.js +1 -0
  186. package/dist/esm-es5/global-4569c7b8.js +1 -0
  187. package/dist/esm-es5/index-f164fbca.js +2 -0
  188. package/dist/esm-es5/{intl-e2da750a.js → intl-05c9e0c9.js} +1 -1
  189. package/dist/esm-es5/loader.js +1 -1
  190. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  191. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  192. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  193. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  194. package/dist/esm-es5/ripple.js +1 -1
  195. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  196. package/dist/esm-es5/wm-button.entry.js +1 -1
  197. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  198. package/dist/esm-es5/wm-chart.entry.js +1 -1
  199. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  200. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  201. package/dist/esm-es5/wm-file.entry.js +1 -1
  202. package/dist/esm-es5/wm-input.entry.js +1 -1
  203. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  204. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  205. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  206. package/dist/esm-es5/wm-modal.entry.js +1 -1
  207. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  208. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  209. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  210. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  211. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  212. package/dist/esm-es5/wm-search.entry.js +1 -1
  213. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  214. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  215. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  216. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  217. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  218. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  219. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  220. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  221. package/dist/loader/index.d.ts +1 -1
  222. package/dist/ripple/p-028ef6db.system.entry.js +1 -0
  223. package/dist/ripple/{p-863e737a.js → p-05d4e49b.js} +1 -1
  224. package/dist/ripple/{p-a1e95b05.system.entry.js → p-06776596.system.entry.js} +1 -1
  225. package/dist/ripple/{p-622a7791.system.entry.js → p-067d7922.system.entry.js} +1 -1
  226. package/dist/ripple/p-09d62ddd.entry.js +1 -0
  227. package/dist/ripple/{p-f30839a1.system.entry.js → p-0ecbf569.system.entry.js} +1 -1
  228. package/dist/ripple/p-0fe97e85.system.js +2 -0
  229. package/dist/ripple/{p-24b08e1f.js → p-13ca30d8.js} +1 -1
  230. package/dist/ripple/{p-8f3f903f.system.js → p-1402cfa2.system.js} +1 -1
  231. package/dist/ripple/p-1453ea51.system.entry.js +1 -0
  232. package/dist/ripple/{p-6abb903c.entry.js → p-153701f9.entry.js} +1 -1
  233. package/dist/ripple/p-1cc91907.system.js +1 -0
  234. package/dist/ripple/{p-ad37cdfd.entry.js → p-1d8b0039.entry.js} +1 -1
  235. package/dist/ripple/{p-d0f1b8c4.system.entry.js → p-1fa2a756.system.entry.js} +1 -1
  236. package/dist/ripple/{p-a52c5a1c.entry.js → p-25446670.entry.js} +1 -1
  237. package/dist/ripple/{p-1283e85d.entry.js → p-27f47edc.entry.js} +1 -1
  238. package/dist/ripple/{p-32b1126c.system.entry.js → p-28e4583c.system.entry.js} +1 -1
  239. package/dist/ripple/{p-a5b23781.system.entry.js → p-2c4f312d.system.entry.js} +1 -1
  240. package/dist/ripple/p-30b17818.system.entry.js +1 -0
  241. package/dist/ripple/{p-0631be01.system.entry.js → p-3446852f.system.entry.js} +1 -1
  242. package/dist/ripple/{p-ae674a54.entry.js → p-350fe5da.entry.js} +1 -1
  243. package/dist/ripple/{p-d04ba5f8.system.entry.js → p-3583d113.system.entry.js} +1 -1
  244. package/dist/ripple/{p-cbd8a60b.system.entry.js → p-361cc8fc.system.entry.js} +1 -1
  245. package/dist/ripple/{p-7529706d.entry.js → p-372faf33.entry.js} +1 -1
  246. package/dist/ripple/{p-19773c40.entry.js → p-3a070f35.entry.js} +1 -1
  247. package/dist/ripple/{p-c7b5ac39.js → p-3af72848.js} +1 -1
  248. package/dist/ripple/{p-c41603e6.entry.js → p-42ebfcfa.entry.js} +1 -1
  249. package/dist/ripple/{p-13594c2e.entry.js → p-43e2a49a.entry.js} +1 -1
  250. package/dist/ripple/{p-ed942b42.entry.js → p-49118468.entry.js} +1 -1
  251. package/dist/ripple/p-49c85d1a.system.js +1 -0
  252. package/dist/ripple/p-4de51706.js +2 -0
  253. package/dist/ripple/{p-3c80bf67.entry.js → p-58174f4e.entry.js} +1 -1
  254. package/dist/ripple/{p-c5e8f8a5.system.entry.js → p-5a4d9897.system.entry.js} +1 -1
  255. package/dist/ripple/{p-e3f0b57f.system.entry.js → p-5ac980e2.system.entry.js} +1 -1
  256. package/dist/ripple/{p-3becce62.system.entry.js → p-633cd89a.system.entry.js} +1 -1
  257. package/dist/ripple/{p-1205fdc1.entry.js → p-63f75d43.entry.js} +1 -1
  258. package/dist/ripple/{p-90ea7e3a.system.entry.js → p-67d48c33.system.entry.js} +1 -1
  259. package/dist/ripple/{p-8ef87907.entry.js → p-6caaf85f.entry.js} +1 -1
  260. package/dist/ripple/{p-935513f8.entry.js → p-6cf7a34a.entry.js} +1 -1
  261. package/dist/ripple/p-73289c2c.system.js +1 -0
  262. package/dist/ripple/{p-c76bbedf.system.entry.js → p-7a8816d9.system.entry.js} +1 -1
  263. package/dist/ripple/{p-8ea68cb3.system.entry.js → p-7e56da2e.system.entry.js} +1 -1
  264. package/dist/ripple/{p-deb4f5a2.entry.js → p-7e8daaac.entry.js} +1 -1
  265. package/dist/ripple/p-88406560.system.entry.js +1 -0
  266. package/dist/ripple/{p-84a7e757.entry.js → p-8cace32f.entry.js} +1 -1
  267. package/dist/ripple/{p-80aef387.entry.js → p-8d4734ad.entry.js} +1 -1
  268. package/dist/ripple/p-8f76a838.system.entry.js +1 -0
  269. package/dist/ripple/p-934c1b6b.js +1 -0
  270. package/dist/ripple/{p-85f744ed.system.js → p-9fecbc8a.system.js} +1 -1
  271. package/dist/ripple/{p-b71a83e3.entry.js → p-a69c37e0.entry.js} +1 -1
  272. package/dist/ripple/{p-9288659b.entry.js → p-a82a8931.entry.js} +1 -1
  273. package/dist/ripple/p-a99b05de.system.entry.js +1 -0
  274. package/dist/ripple/{p-36049d2f.entry.js → p-aadf8c59.entry.js} +1 -1
  275. package/dist/ripple/{p-676c1089.system.entry.js → p-aba5a00e.system.entry.js} +1 -1
  276. package/dist/ripple/{p-0aecac86.entry.js → p-ad6dc751.entry.js} +1 -1
  277. package/dist/ripple/{p-0f1ff645.entry.js → p-b253d2fc.entry.js} +1 -1
  278. package/dist/ripple/p-b2ff4723.system.entry.js +1 -0
  279. package/dist/ripple/{p-a0bf5eef.entry.js → p-b452d1d7.entry.js} +1 -1
  280. package/dist/ripple/{p-1cde16a7.system.entry.js → p-b4d862e1.system.entry.js} +1 -1
  281. package/dist/ripple/{p-d496bc44.system.entry.js → p-bdd4f919.system.entry.js} +1 -1
  282. package/dist/ripple/p-c18b398c.system.js +1 -0
  283. package/dist/ripple/{p-8f8c3705.entry.js → p-c249063c.entry.js} +1 -1
  284. package/dist/ripple/p-c344a69c.entry.js +1 -0
  285. package/dist/ripple/{p-0d9f70ab.entry.js → p-c717d895.entry.js} +1 -1
  286. package/dist/ripple/{p-2e773564.system.entry.js → p-c96a5c94.system.entry.js} +1 -1
  287. package/dist/ripple/{p-15497721.system.entry.js → p-ceced3d9.system.entry.js} +1 -1
  288. package/dist/ripple/{p-d428e9bb.system.entry.js → p-d16f91e9.system.entry.js} +1 -1
  289. package/dist/ripple/{p-ff14e4ec.system.entry.js → p-d3f9d028.system.entry.js} +1 -1
  290. package/dist/ripple/{p-7962f562.entry.js → p-de349bee.entry.js} +1 -1
  291. package/dist/ripple/{p-b3c73bc9.entry.js → p-e24ddae1.entry.js} +1 -1
  292. package/dist/ripple/{p-b3e08b14.system.entry.js → p-e8b58666.system.entry.js} +1 -1
  293. package/dist/ripple/{p-a9c096b5.entry.js → p-fa87bce3.entry.js} +1 -1
  294. package/dist/ripple/ripple.esm.js +1 -1
  295. package/dist/ripple/ripple.js +16 -20
  296. package/dist/types/components/charts/chartFunctions.d.ts +13 -13
  297. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +24 -24
  298. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +8 -8
  299. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +39 -39
  300. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +74 -74
  301. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +26 -26
  302. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -17
  303. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +7 -7
  304. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -43
  305. package/dist/types/components/wm-button/wm-button.d.ts +40 -40
  306. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
  307. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +31 -31
  308. package/dist/types/components/wm-file/wm-file.d.ts +40 -40
  309. package/dist/types/components/wm-file-list/wm-file-list.d.ts +3 -3
  310. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  311. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +31 -31
  312. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +11 -11
  313. package/dist/types/components/wm-modal/wm-modal-header.d.ts +7 -7
  314. package/dist/types/components/wm-modal/wm-modal.d.ts +24 -24
  315. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +13 -13
  316. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +10 -10
  317. package/dist/types/components/wm-navigation/wm-navigation.d.ts +23 -23
  318. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +7 -7
  319. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +10 -10
  320. package/dist/types/components/wm-navigator/wm-navigator.d.ts +57 -57
  321. package/dist/types/components/wm-option/wm-option.d.ts +36 -36
  322. package/dist/types/components/wm-pagination/wm-pagination.d.ts +27 -27
  323. package/dist/types/components/wm-search/wm-search.d.ts +73 -73
  324. package/dist/types/components/wm-select/wm-select.d.ts +99 -99
  325. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +24 -24
  326. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +30 -30
  327. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +41 -41
  328. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +16 -16
  329. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +114 -114
  330. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +15 -15
  331. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +48 -48
  332. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +20 -20
  333. package/dist/types/components/wm-uploader/wm-uploader.d.ts +47 -47
  334. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +4 -4
  335. package/dist/types/components.d.ts +382 -0
  336. package/dist/types/global/__mocks__/functions.d.ts +1 -1
  337. package/dist/types/global/functions.d.ts +4 -4
  338. package/dist/types/global/interfaces.d.ts +49 -49
  339. package/dist/types/global/intl.d.ts +31 -31
  340. package/dist/types/global/services/__mocks__/http-service.d.ts +1 -1
  341. package/dist/types/stencil-public-runtime.d.ts +46 -5
  342. package/package.json +1 -1
  343. package/dist/cjs/chartFunctions-2c3e010e.js +0 -600
  344. package/dist/cjs/interfaces-245d7bff.js +0 -38
  345. package/dist/cjs/intl-fa3bb4ae.js +0 -179
  346. package/dist/esm/chartFunctions-36634c04.js +0 -584
  347. package/dist/esm/interfaces-89cad2fc.js +0 -35
  348. package/dist/esm/intl-e2da750a.js +0 -174
  349. package/dist/esm/polyfills/css-shim.js +0 -1
  350. package/dist/esm-es5/chartFunctions-36634c04.js +0 -1
  351. package/dist/esm-es5/functions-5afd09f4.js +0 -1
  352. package/dist/esm-es5/global-d4a9e80e.js +0 -1
  353. package/dist/esm-es5/index-7e11ea42.js +0 -2
  354. package/dist/ripple/p-00acacbe.system.entry.js +0 -1
  355. package/dist/ripple/p-0f889b84.system.js +0 -1
  356. package/dist/ripple/p-13af8346.entry.js +0 -1
  357. package/dist/ripple/p-16363e1c.system.entry.js +0 -1
  358. package/dist/ripple/p-2a95b63f.system.entry.js +0 -1
  359. package/dist/ripple/p-30bf24f8.system.js +0 -2
  360. package/dist/ripple/p-3248c0fa.system.entry.js +0 -1
  361. package/dist/ripple/p-47c20b05.entry.js +0 -1
  362. package/dist/ripple/p-56d64283.system.entry.js +0 -1
  363. package/dist/ripple/p-5e85967a.system.js +0 -1
  364. package/dist/ripple/p-9b2034f6.js +0 -1
  365. package/dist/ripple/p-a3d07be5.system.js +0 -1
  366. package/dist/ripple/p-a6be3cca.system.entry.js +0 -1
  367. package/dist/ripple/p-aafa111a.system.js +0 -1
  368. package/dist/ripple/p-b5bedd63.js +0 -2
  369. package/dist/ripple/p-bd537299.system.entry.js +0 -1
  370. /package/dist/esm-es5/{interfaces-89cad2fc.js → interfaces-9b75fb61.js} +0 -0
  371. /package/dist/ripple/{p-c0c111fd.js → p-196eb2f3.js} +0 -0
@@ -1,430 +1,431 @@
1
1
  import { h, Host, forceUpdate, } from "@stencil/core";
2
2
  import { uploaderMessages } from "../../global/intl";
3
3
  export class Uploader {
4
- constructor() {
5
- this.batchCount = 0; // used to calculate the aggregate upload progress
6
- this.prevUploadCount = 0; // comparison to determine whether or not to announce updated count
7
- this.fileIdToDelete = "";
8
- this.label = undefined;
9
- this.buttonText = undefined;
10
- this.icon = undefined;
11
- this.fileTypes = "pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv";
12
- this.maxSize = undefined;
13
- this.maxFiles = undefined;
14
- this.errorMessage = undefined;
15
- this.requiredField = undefined;
16
- this.showInfo = "time";
17
- this.isTabbing = false;
18
- this.notif = "";
19
- this.announcement = "";
20
- this.isCondensed = false;
21
- }
22
- get isDisabled() {
23
- // disable if is the uploader is maxed out or if something is uploading
24
- return this.fileLimitReached || this.inProgressFileEls.length > 0;
25
- }
26
- get fileEls() {
27
- return Array.from(this.el.querySelectorAll("wm-file"));
28
- }
29
- get inProgressFileEls() {
30
- return this.fileEls.filter((file) => file.progress !== undefined && file.progress < 100);
31
- }
32
- get uploadedFileEls() {
33
- return this.fileEls.filter((file) => !file.errorMessage);
34
- }
35
- get fileLimitReached() {
36
- return this.maxFiles && this.uploadedFileEls.length >= this.maxFiles;
37
- }
38
- get validTypes() {
39
- return "." + this.fileTypes.split(" ").join(", .");
40
- }
41
- toggleTabbingOn() {
42
- this.isTabbing = true;
43
- }
44
- toggleTabbingOff() {
45
- this.isTabbing = false;
46
- }
47
- handleFileErrorCleared() {
48
- this.uploadButtonEl.focus();
49
- }
50
- storeDeletedId(ev) {
51
- this.fileIdToDelete = ev.target.id;
52
- }
53
- handleErrorMessageChange() {
54
- if (this.errorMessage) {
55
- this.announce(this.errorMessage);
56
- }
57
- }
58
- componentWillLoad() {
59
- if (!this.buttonText) {
60
- console.error("wm-uploader: button-text is a required property");
61
- }
62
- }
63
- componentDidLoad() {
64
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
65
- this.toggleTabbingOn();
66
- }
67
- const mutationObserver = new MutationObserver((mutationRecordList) => mutationRecordList.forEach((mutationRecord) => this.handleChildMutation(mutationRecord)));
68
- mutationObserver.observe(this.el, {
69
- childList: true,
70
- subtree: true,
71
- attributes: true,
72
- attributeOldValue: true,
73
- attributeFilter: ["progress"],
74
- });
75
- }
76
- handleChildMutation(mutationRecord) {
77
- if (mutationRecord.type === "attributes") {
78
- this.handleProgressUpdate(mutationRecord);
79
- }
80
- else if (mutationRecord.type === "childList") {
81
- // if user prompted the removal of a single file (they hit the delete button)
82
- if (this.isTabbing &&
83
- mutationRecord.removedNodes.length === 1 &&
84
- mutationRecord.removedNodes[0].id === this.fileIdToDelete) {
85
- this.focusAfterFileRemoval(mutationRecord);
4
+ constructor() {
5
+ this.batchCount = 0; // used to calculate the aggregate upload progress
6
+ this.prevUploadCount = 0; // comparison to determine whether or not to announce updated count
86
7
  this.fileIdToDelete = "";
87
- }
88
- forceUpdate(this.el); // forceUpdate to rerender filecount
89
- }
90
- }
91
- handleProgressUpdate(mutationRecord) {
92
- if (this.inProgressFileEls.length !== 0) {
93
- const changeInUploadingFiles = this.prevUploadCount !== this.inProgressFileEls.length;
94
- changeInUploadingFiles && this.announce(uploaderMessages.getFilesUploading(this.inProgressFileEls.length));
95
- this.notif = uploaderMessages.getFilesUploading(this.inProgressFileEls.length);
96
- this.prevUploadCount = this.inProgressFileEls.length;
97
- if (!this.srProgress) {
98
- this.srProgress = setInterval(() => {
99
- const aggregate = this.fileEls.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);
100
- this.announce(uploaderMessages.getUploadProgress(Math.floor(aggregate / this.batchCount)));
101
- }, 5000);
102
- }
103
- }
104
- else if (this.inProgressFileEls.length === 0 &&
105
- mutationRecord.oldValue &&
106
- parseInt(mutationRecord.oldValue) < 100) {
107
- // if final file progress completes
108
- this.notif = uploaderMessages.finishedUploading;
109
- this.announce(uploaderMessages.finishedUploading);
110
- clearInterval(this.srProgress);
111
- setTimeout(() => {
8
+ this.label = undefined;
9
+ this.buttonText = undefined;
10
+ this.icon = undefined;
11
+ this.fileTypes = "pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv";
12
+ this.maxSize = undefined;
13
+ this.maxFiles = undefined;
14
+ this.errorMessage = undefined;
15
+ this.requiredField = undefined;
16
+ this.showInfo = "time";
17
+ this.isTabbing = false;
112
18
  this.notif = "";
113
- }, 20 * 1000);
114
- }
115
- }
116
- focusAfterFileRemoval(mutationRecord) {
117
- let previousSibling = mutationRecord.previousSibling;
118
- // .previousSibling can sometimes grab #text nodes but unfortunately mutationRecord does not hold .previousElementSibling
119
- // so we need to loop upwards until we find a wm-file with a button to focus, or null
120
- while (previousSibling &&
121
- !(previousSibling.nodeName === "WM-FILE" &&
122
- previousSibling.shadowRoot.querySelector("wm-button"))) {
123
- previousSibling = previousSibling.previousSibling;
124
- }
125
- if (previousSibling) {
126
- const fileActionButtons = previousSibling.shadowRoot.querySelectorAll("wm-button");
127
- fileActionButtons[fileActionButtons.length - 1].focus();
128
- }
129
- else {
130
- this.uploadButtonEl.focus();
131
- }
132
- }
133
- handleUploadButtonClick(ev) {
134
- if (this.isDisabled) {
135
- // this is a temporary fix.
136
- // we need the disabled button to be programmatically focusable
137
- // to allow return focus after closing the browser file panel
138
- // since it's focusable the button should respond when activated
139
- // it looks disabled, and announces the reason why the action cannot
140
- // be taken when activated.
141
- ev.preventDefault();
142
- if (this.inProgressFileEls.length > 0) {
143
- this.announce(uploaderMessages.waitToUpload);
144
- }
145
- else if (this.fileLimitReached) {
146
- this.announce(uploaderMessages.fileLimitReached);
147
- }
148
- }
149
- }
150
- handleUploadButtonChange(ev) {
151
- const inputEl = ev.target;
152
- if (inputEl.files) {
153
- const files = Array.from(inputEl.files);
154
- if (files.length > 0) {
155
- this.batchCount = files.length;
156
- this.wmUploaderFilesSelected.emit(files);
157
- }
158
- ev.target.value = ""; // reset to ensure that onChange is triggered when the same file is selected a second time
159
- }
160
- }
161
- announce(message) {
162
- if (this.liveRegion.textContent === message) {
163
- message += "\u00A0";
164
- }
165
- this.announcement = message;
166
- }
167
- renderIcon() {
168
- // mdi attachment icon (paper clip) is horizontal but we want it vertical
169
- const rotate = this.icon && this.icon === "f066";
170
- return h("span", { class: `mdi ${rotate ? "rotate" : ""}` }, String.fromCodePoint(parseInt(`0x${this.icon}`)));
171
- }
172
- renderUploadButton(classes) {
173
- let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : ""}${this.buttonText}`;
174
- return (h("div", { class: "info-wrapper" }, h("input", { name: "input", id: "input", ref: (el) => (this.uploadButtonEl = el), class: "sr-only", "aria-label": accessibleLabel, "aria-required": this.requiredField ? "true" : null, "aria-describedby": `${this.errorMessage ? "error " : ""}file-count max-size accepted-types`, type: "file", multiple: true, onClick: (ev) => this.handleUploadButtonClick(ev), onChange: (ev) => this.handleUploadButtonChange(ev) }), h("label", { htmlFor: "input", class: `wm-button ${classes}${this.isTabbing ? " user-is-tabbing" : ""}` }, this.icon && this.renderIcon(), this.buttonText)));
175
- }
176
- renderHeader() {
177
- return (h("div", { class: "header" }, h("div", { class: "notif-wrapper" }, this.renderUploadButton(`-secondary ${this.isDisabled ? "disabled" : ""}`), this.renderRequirements()), h("div", { id: "accepted-types", class: "accepted-types" }, uploaderMessages.getAcceptedFileTypes(this.validTypes, this.fileTypes.split(" ").length)), this.notif && h("div", { class: "notif" }, this.notif), this.errorMessage && h("div", { id: "error" }, this.errorMessage)));
178
- }
179
- renderRequirements() {
180
- return (h("div", { class: "requirements" }, this.maxFiles && (h("span", { id: "file-count" }, uploaderMessages.getFileCount(this.uploadedFileEls.length, this.maxFiles))), this.maxSize && h("span", { id: "max-size" }, uploaderMessages.getMaxSize(this.maxSize))));
181
- }
182
- renderListContainer() {
183
- const hasNewlyUploadedFiles = this.fileEls.filter((file) => file.progress && file.progress === 100).length;
184
- return (h("div", { class: `list-container ${hasNewlyUploadedFiles ? "checkmark-spacer" : ""}` }, h("ul", { class: "file-list" }, h("slot", null))));
185
- }
186
- renderLabel() {
187
- return (h("div", { class: `wrapper ${this.errorMessage ? "invalid" : ""}` }, h("div", { id: "label", class: `label` }, this.label, this.requiredField && (h("span", { class: "required", "aria-hidden": "true" }, "*")))));
188
- }
189
- render() {
190
- return (h(Host, null, this.label && this.renderLabel(), this.renderHeader(), this.renderListContainer(), h("div", { ref: (el) => (this.liveRegion = el), class: "live-region sr-only", "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
191
- ,
192
- "aria-atomic": "true" }, this.announcement)));
193
- }
194
- static get is() { return "wm-uploader"; }
195
- static get encapsulation() { return "shadow"; }
196
- static get delegatesFocus() { return true; }
197
- static get originalStyleUrls() {
198
- return {
199
- "$": ["wm-uploader.scss"]
200
- };
201
- }
202
- static get styleUrls() {
203
- return {
204
- "$": ["wm-uploader.css"]
205
- };
206
- }
207
- static get properties() {
208
- return {
209
- "label": {
210
- "type": "string",
211
- "mutable": false,
212
- "complexType": {
213
- "original": "string",
214
- "resolved": "string | undefined",
215
- "references": {}
216
- },
217
- "required": false,
218
- "optional": true,
219
- "docs": {
220
- "tags": [],
221
- "text": ""
222
- },
223
- "attribute": "label",
224
- "reflect": false
225
- },
226
- "buttonText": {
227
- "type": "string",
228
- "mutable": false,
229
- "complexType": {
230
- "original": "string",
231
- "resolved": "string",
232
- "references": {}
233
- },
234
- "required": true,
235
- "optional": false,
236
- "docs": {
237
- "tags": [],
238
- "text": ""
239
- },
240
- "attribute": "button-text",
241
- "reflect": false
242
- },
243
- "icon": {
244
- "type": "string",
245
- "mutable": false,
246
- "complexType": {
247
- "original": "string",
248
- "resolved": "string",
249
- "references": {}
250
- },
251
- "required": true,
252
- "optional": false,
253
- "docs": {
254
- "tags": [],
255
- "text": ""
256
- },
257
- "attribute": "icon",
258
- "reflect": false
259
- },
260
- "fileTypes": {
261
- "type": "string",
262
- "mutable": false,
263
- "complexType": {
264
- "original": "string",
265
- "resolved": "string",
266
- "references": {}
267
- },
268
- "required": false,
269
- "optional": false,
270
- "docs": {
271
- "tags": [],
272
- "text": ""
273
- },
274
- "attribute": "file-types",
275
- "reflect": false,
276
- "defaultValue": "\"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\""
277
- },
278
- "maxSize": {
279
- "type": "string",
280
- "mutable": false,
281
- "complexType": {
282
- "original": "string",
283
- "resolved": "string | undefined",
284
- "references": {}
285
- },
286
- "required": false,
287
- "optional": true,
288
- "docs": {
289
- "tags": [],
290
- "text": ""
291
- },
292
- "attribute": "max-size",
293
- "reflect": false
294
- },
295
- "maxFiles": {
296
- "type": "number",
297
- "mutable": false,
298
- "complexType": {
299
- "original": "number",
300
- "resolved": "number | undefined",
301
- "references": {}
302
- },
303
- "required": false,
304
- "optional": true,
305
- "docs": {
306
- "tags": [],
307
- "text": ""
308
- },
309
- "attribute": "max-files",
310
- "reflect": false
311
- },
312
- "errorMessage": {
313
- "type": "string",
314
- "mutable": false,
315
- "complexType": {
316
- "original": "string",
317
- "resolved": "string | undefined",
318
- "references": {}
319
- },
320
- "required": false,
321
- "optional": true,
322
- "docs": {
323
- "tags": [],
324
- "text": ""
325
- },
326
- "attribute": "error-message",
327
- "reflect": false
328
- },
329
- "requiredField": {
330
- "type": "boolean",
331
- "mutable": false,
332
- "complexType": {
333
- "original": "boolean",
334
- "resolved": "boolean | undefined",
335
- "references": {}
336
- },
337
- "required": false,
338
- "optional": true,
339
- "docs": {
340
- "tags": [],
341
- "text": ""
342
- },
343
- "attribute": "required-field",
344
- "reflect": false
345
- },
346
- "showInfo": {
347
- "type": "string",
348
- "mutable": false,
349
- "complexType": {
350
- "original": "\"size\" | \"time\" | \"none\"",
351
- "resolved": "\"none\" | \"size\" | \"time\"",
352
- "references": {}
353
- },
354
- "required": false,
355
- "optional": false,
356
- "docs": {
357
- "tags": [],
358
- "text": ""
359
- },
360
- "attribute": "show-info",
361
- "reflect": false,
362
- "defaultValue": "\"time\""
363
- }
364
- };
365
- }
366
- static get states() {
367
- return {
368
- "isTabbing": {},
369
- "notif": {},
370
- "announcement": {},
371
- "isCondensed": {}
372
- };
373
- }
374
- static get events() {
375
- return [{
376
- "method": "wmUploaderFilesSelected",
377
- "name": "wmUploaderFilesSelected",
378
- "bubbles": true,
379
- "cancelable": true,
380
- "composed": true,
381
- "docs": {
382
- "tags": [],
383
- "text": ""
384
- },
385
- "complexType": {
386
- "original": "File[]",
387
- "resolved": "File[]",
388
- "references": {
389
- "File": {
390
- "location": "global"
19
+ this.announcement = "";
20
+ this.isCondensed = false;
21
+ }
22
+ get isDisabled() {
23
+ // disable if is the uploader is maxed out or if something is uploading
24
+ return this.fileLimitReached || this.inProgressFileEls.length > 0;
25
+ }
26
+ get fileEls() {
27
+ return Array.from(this.el.querySelectorAll("wm-file"));
28
+ }
29
+ get inProgressFileEls() {
30
+ return this.fileEls.filter((file) => file.progress !== undefined && file.progress < 100);
31
+ }
32
+ get uploadedFileEls() {
33
+ return this.fileEls.filter((file) => !file.errorMessage);
34
+ }
35
+ get fileLimitReached() {
36
+ return this.maxFiles && this.uploadedFileEls.length >= this.maxFiles;
37
+ }
38
+ get validTypes() {
39
+ return "." + this.fileTypes.split(" ").join(", .");
40
+ }
41
+ toggleTabbingOn() {
42
+ this.isTabbing = true;
43
+ }
44
+ toggleTabbingOff() {
45
+ this.isTabbing = false;
46
+ }
47
+ handleFileErrorCleared() {
48
+ this.uploadButtonEl.focus();
49
+ }
50
+ storeDeletedId(ev) {
51
+ this.fileIdToDelete = ev.target.id;
52
+ }
53
+ handleErrorMessageChange() {
54
+ if (this.errorMessage) {
55
+ this.announce(this.errorMessage);
56
+ }
57
+ }
58
+ componentWillLoad() {
59
+ if (!this.buttonText) {
60
+ console.error("wm-uploader: button-text is a required property");
61
+ }
62
+ }
63
+ componentDidLoad() {
64
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
65
+ this.toggleTabbingOn();
66
+ }
67
+ const mutationObserver = new MutationObserver((mutationRecordList) => mutationRecordList.forEach((mutationRecord) => this.handleChildMutation(mutationRecord)));
68
+ mutationObserver.observe(this.el, {
69
+ childList: true,
70
+ subtree: true,
71
+ attributes: true,
72
+ attributeOldValue: true,
73
+ attributeFilter: ["progress"],
74
+ });
75
+ }
76
+ handleChildMutation(mutationRecord) {
77
+ if (mutationRecord.type === "attributes") {
78
+ this.handleProgressUpdate(mutationRecord);
79
+ }
80
+ else if (mutationRecord.type === "childList") {
81
+ // if user prompted the removal of a single file (they hit the delete button)
82
+ if (this.isTabbing &&
83
+ mutationRecord.removedNodes.length === 1 &&
84
+ mutationRecord.removedNodes[0].id === this.fileIdToDelete) {
85
+ this.focusAfterFileRemoval(mutationRecord);
86
+ this.fileIdToDelete = "";
391
87
  }
392
- }
88
+ forceUpdate(this.el); // forceUpdate to rerender filecount
89
+ }
90
+ }
91
+ handleProgressUpdate(mutationRecord) {
92
+ if (this.inProgressFileEls.length !== 0) {
93
+ const changeInUploadingFiles = this.prevUploadCount !== this.inProgressFileEls.length;
94
+ changeInUploadingFiles && this.announce(uploaderMessages.getFilesUploading(this.inProgressFileEls.length));
95
+ this.notif = uploaderMessages.getFilesUploading(this.inProgressFileEls.length);
96
+ this.prevUploadCount = this.inProgressFileEls.length;
97
+ if (!this.srProgress) {
98
+ this.srProgress = setInterval(() => {
99
+ const aggregate = this.fileEls.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);
100
+ this.announce(uploaderMessages.getUploadProgress(Math.floor(aggregate / this.batchCount)));
101
+ }, 5000);
102
+ }
103
+ }
104
+ else if (this.inProgressFileEls.length === 0 &&
105
+ mutationRecord.oldValue &&
106
+ parseInt(mutationRecord.oldValue) < 100) {
107
+ // if final file progress completes
108
+ this.notif = uploaderMessages.finishedUploading;
109
+ this.announce(uploaderMessages.finishedUploading);
110
+ clearInterval(this.srProgress);
111
+ setTimeout(() => {
112
+ this.notif = "";
113
+ }, 20 * 1000);
114
+ }
115
+ }
116
+ focusAfterFileRemoval(mutationRecord) {
117
+ let previousSibling = mutationRecord.previousSibling;
118
+ // .previousSibling can sometimes grab #text nodes but unfortunately mutationRecord does not hold .previousElementSibling
119
+ // so we need to loop upwards until we find a wm-file with a button to focus, or null
120
+ while (previousSibling &&
121
+ !(previousSibling.nodeName === "WM-FILE" &&
122
+ previousSibling.shadowRoot.querySelector("wm-button"))) {
123
+ previousSibling = previousSibling.previousSibling;
124
+ }
125
+ if (previousSibling) {
126
+ const fileActionButtons = previousSibling.shadowRoot.querySelectorAll("wm-button");
127
+ fileActionButtons[fileActionButtons.length - 1].focus();
128
+ }
129
+ else {
130
+ this.uploadButtonEl.focus();
393
131
  }
394
- }];
395
- }
396
- static get elementRef() { return "el"; }
397
- static get watchers() {
398
- return [{
399
- "propName": "errorMessage",
400
- "methodName": "handleErrorMessageChange"
401
- }];
402
- }
403
- static get listeners() {
404
- return [{
405
- "name": "wmUserIsTabbing",
406
- "method": "toggleTabbingOn",
407
- "target": "window",
408
- "capture": false,
409
- "passive": false
410
- }, {
411
- "name": "wmUserIsNotTabbing",
412
- "method": "toggleTabbingOff",
413
- "target": "window",
414
- "capture": false,
415
- "passive": false
416
- }, {
417
- "name": "wmFileErrorCleared",
418
- "method": "handleFileErrorCleared",
419
- "target": undefined,
420
- "capture": false,
421
- "passive": false
422
- }, {
423
- "name": "wmFileDelete",
424
- "method": "storeDeletedId",
425
- "target": undefined,
426
- "capture": false,
427
- "passive": false
428
- }];
429
- }
132
+ }
133
+ handleUploadButtonClick(ev) {
134
+ if (this.isDisabled) {
135
+ // this is a temporary fix.
136
+ // we need the disabled button to be programmatically focusable
137
+ // to allow return focus after closing the browser file panel
138
+ // since it's focusable the button should respond when activated
139
+ // it looks disabled, and announces the reason why the action cannot
140
+ // be taken when activated.
141
+ ev.preventDefault();
142
+ if (this.inProgressFileEls.length > 0) {
143
+ this.announce(uploaderMessages.waitToUpload);
144
+ }
145
+ else if (this.fileLimitReached) {
146
+ this.announce(uploaderMessages.fileLimitReached);
147
+ }
148
+ }
149
+ }
150
+ handleUploadButtonChange(ev) {
151
+ const inputEl = ev.target;
152
+ if (inputEl.files) {
153
+ const files = Array.from(inputEl.files);
154
+ if (files.length > 0) {
155
+ this.batchCount = files.length;
156
+ this.wmUploaderFilesSelected.emit(files);
157
+ }
158
+ ev.target.value = ""; // reset to ensure that onChange is triggered when the same file is selected a second time
159
+ }
160
+ }
161
+ announce(message) {
162
+ if (this.liveRegion.textContent === message) {
163
+ message += "\u00A0";
164
+ }
165
+ this.announcement = message;
166
+ }
167
+ renderIcon() {
168
+ // mdi attachment icon (paper clip) is horizontal but we want it vertical
169
+ const rotate = this.icon && this.icon === "f066";
170
+ return h("span", { class: `mdi ${rotate ? "rotate" : ""}` }, String.fromCodePoint(parseInt(`0x${this.icon}`)));
171
+ }
172
+ renderUploadButton(classes) {
173
+ let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : ""}${this.buttonText}`;
174
+ return (h("div", { class: "info-wrapper" }, h("input", { name: "input", id: "input", ref: (el) => (this.uploadButtonEl = el), class: "sr-only", "aria-label": accessibleLabel, "aria-required": this.requiredField ? "true" : null, "aria-describedby": `${this.errorMessage ? "error " : ""}file-count max-size accepted-types`, type: "file", multiple: true, onClick: (ev) => this.handleUploadButtonClick(ev), onChange: (ev) => this.handleUploadButtonChange(ev) }), h("label", { htmlFor: "input", class: `wm-button ${classes}${this.isTabbing ? " user-is-tabbing" : ""}` }, this.icon && this.renderIcon(), this.buttonText)));
175
+ }
176
+ renderHeader() {
177
+ return (h("div", { class: "header" }, h("div", { class: "notif-wrapper" }, this.renderUploadButton(`-secondary ${this.isDisabled ? "disabled" : ""}`), this.renderRequirements()), h("div", { id: "accepted-types", class: "accepted-types" }, uploaderMessages.getAcceptedFileTypes(this.validTypes, this.fileTypes.split(" ").length)), this.notif && h("div", { class: "notif" }, this.notif), this.errorMessage && h("div", { id: "error" }, this.errorMessage)));
178
+ }
179
+ renderRequirements() {
180
+ return (h("div", { class: "requirements" }, this.maxFiles && (h("span", { id: "file-count" }, uploaderMessages.getFileCount(this.uploadedFileEls.length, this.maxFiles))), this.maxSize && h("span", { id: "max-size" }, uploaderMessages.getMaxSize(this.maxSize))));
181
+ }
182
+ renderListContainer() {
183
+ const hasNewlyUploadedFiles = this.fileEls.filter((file) => file.progress && file.progress === 100).length;
184
+ return (h("div", { class: `list-container ${hasNewlyUploadedFiles ? "checkmark-spacer" : ""}` }, h("ul", { class: "file-list" }, h("slot", null))));
185
+ }
186
+ renderLabel() {
187
+ return (h("div", { class: `wrapper ${this.errorMessage ? "invalid" : ""}` }, h("div", { id: "label", class: `label` }, this.label, this.requiredField && (h("span", { class: "required", "aria-hidden": "true" }, "*")))));
188
+ }
189
+ render() {
190
+ return (h(Host, null, this.label && this.renderLabel(), this.renderHeader(), this.renderListContainer(), h("div", { ref: (el) => (this.liveRegion = el), class: "live-region sr-only", "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
191
+ ,
192
+ "aria-atomic": "true" }, this.announcement)));
193
+ }
194
+ static get is() { return "wm-uploader"; }
195
+ static get encapsulation() { return "shadow"; }
196
+ static get delegatesFocus() { return true; }
197
+ static get originalStyleUrls() {
198
+ return {
199
+ "$": ["wm-uploader.scss"]
200
+ };
201
+ }
202
+ static get styleUrls() {
203
+ return {
204
+ "$": ["wm-uploader.css"]
205
+ };
206
+ }
207
+ static get properties() {
208
+ return {
209
+ "label": {
210
+ "type": "string",
211
+ "mutable": false,
212
+ "complexType": {
213
+ "original": "string",
214
+ "resolved": "string | undefined",
215
+ "references": {}
216
+ },
217
+ "required": false,
218
+ "optional": true,
219
+ "docs": {
220
+ "tags": [],
221
+ "text": ""
222
+ },
223
+ "attribute": "label",
224
+ "reflect": false
225
+ },
226
+ "buttonText": {
227
+ "type": "string",
228
+ "mutable": false,
229
+ "complexType": {
230
+ "original": "string",
231
+ "resolved": "string",
232
+ "references": {}
233
+ },
234
+ "required": true,
235
+ "optional": false,
236
+ "docs": {
237
+ "tags": [],
238
+ "text": ""
239
+ },
240
+ "attribute": "button-text",
241
+ "reflect": false
242
+ },
243
+ "icon": {
244
+ "type": "string",
245
+ "mutable": false,
246
+ "complexType": {
247
+ "original": "string",
248
+ "resolved": "string",
249
+ "references": {}
250
+ },
251
+ "required": true,
252
+ "optional": false,
253
+ "docs": {
254
+ "tags": [],
255
+ "text": ""
256
+ },
257
+ "attribute": "icon",
258
+ "reflect": false
259
+ },
260
+ "fileTypes": {
261
+ "type": "string",
262
+ "mutable": false,
263
+ "complexType": {
264
+ "original": "string",
265
+ "resolved": "string",
266
+ "references": {}
267
+ },
268
+ "required": false,
269
+ "optional": false,
270
+ "docs": {
271
+ "tags": [],
272
+ "text": ""
273
+ },
274
+ "attribute": "file-types",
275
+ "reflect": false,
276
+ "defaultValue": "\"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\""
277
+ },
278
+ "maxSize": {
279
+ "type": "string",
280
+ "mutable": false,
281
+ "complexType": {
282
+ "original": "string",
283
+ "resolved": "string | undefined",
284
+ "references": {}
285
+ },
286
+ "required": false,
287
+ "optional": true,
288
+ "docs": {
289
+ "tags": [],
290
+ "text": ""
291
+ },
292
+ "attribute": "max-size",
293
+ "reflect": false
294
+ },
295
+ "maxFiles": {
296
+ "type": "number",
297
+ "mutable": false,
298
+ "complexType": {
299
+ "original": "number",
300
+ "resolved": "number | undefined",
301
+ "references": {}
302
+ },
303
+ "required": false,
304
+ "optional": true,
305
+ "docs": {
306
+ "tags": [],
307
+ "text": ""
308
+ },
309
+ "attribute": "max-files",
310
+ "reflect": false
311
+ },
312
+ "errorMessage": {
313
+ "type": "string",
314
+ "mutable": false,
315
+ "complexType": {
316
+ "original": "string",
317
+ "resolved": "string | undefined",
318
+ "references": {}
319
+ },
320
+ "required": false,
321
+ "optional": true,
322
+ "docs": {
323
+ "tags": [],
324
+ "text": ""
325
+ },
326
+ "attribute": "error-message",
327
+ "reflect": false
328
+ },
329
+ "requiredField": {
330
+ "type": "boolean",
331
+ "mutable": false,
332
+ "complexType": {
333
+ "original": "boolean",
334
+ "resolved": "boolean | undefined",
335
+ "references": {}
336
+ },
337
+ "required": false,
338
+ "optional": true,
339
+ "docs": {
340
+ "tags": [],
341
+ "text": ""
342
+ },
343
+ "attribute": "required-field",
344
+ "reflect": false
345
+ },
346
+ "showInfo": {
347
+ "type": "string",
348
+ "mutable": false,
349
+ "complexType": {
350
+ "original": "\"size\" | \"time\" | \"none\"",
351
+ "resolved": "\"none\" | \"size\" | \"time\"",
352
+ "references": {}
353
+ },
354
+ "required": false,
355
+ "optional": false,
356
+ "docs": {
357
+ "tags": [],
358
+ "text": ""
359
+ },
360
+ "attribute": "show-info",
361
+ "reflect": false,
362
+ "defaultValue": "\"time\""
363
+ }
364
+ };
365
+ }
366
+ static get states() {
367
+ return {
368
+ "isTabbing": {},
369
+ "notif": {},
370
+ "announcement": {},
371
+ "isCondensed": {}
372
+ };
373
+ }
374
+ static get events() {
375
+ return [{
376
+ "method": "wmUploaderFilesSelected",
377
+ "name": "wmUploaderFilesSelected",
378
+ "bubbles": true,
379
+ "cancelable": true,
380
+ "composed": true,
381
+ "docs": {
382
+ "tags": [],
383
+ "text": ""
384
+ },
385
+ "complexType": {
386
+ "original": "File[]",
387
+ "resolved": "File[]",
388
+ "references": {
389
+ "File": {
390
+ "location": "global",
391
+ "id": "global::File"
392
+ }
393
+ }
394
+ }
395
+ }];
396
+ }
397
+ static get elementRef() { return "el"; }
398
+ static get watchers() {
399
+ return [{
400
+ "propName": "errorMessage",
401
+ "methodName": "handleErrorMessageChange"
402
+ }];
403
+ }
404
+ static get listeners() {
405
+ return [{
406
+ "name": "wmUserIsTabbing",
407
+ "method": "toggleTabbingOn",
408
+ "target": "window",
409
+ "capture": false,
410
+ "passive": false
411
+ }, {
412
+ "name": "wmUserIsNotTabbing",
413
+ "method": "toggleTabbingOff",
414
+ "target": "window",
415
+ "capture": false,
416
+ "passive": false
417
+ }, {
418
+ "name": "wmFileErrorCleared",
419
+ "method": "handleFileErrorCleared",
420
+ "target": undefined,
421
+ "capture": false,
422
+ "passive": false
423
+ }, {
424
+ "name": "wmFileDelete",
425
+ "method": "storeDeletedId",
426
+ "target": undefined,
427
+ "capture": false,
428
+ "passive": false
429
+ }];
430
+ }
430
431
  }