@watermarkinsights/ripple 0.0.1 → 0.1.0-alpha.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 (460) hide show
  1. package/dist/cjs/app-globals-3db2fdd3.js +103 -0
  2. package/dist/cjs/chartFunctions-0d47b1f4.js +906 -0
  3. package/dist/cjs/functions-761cb9f2.js +10694 -0
  4. package/dist/cjs/index-bb947bd5.js +1843 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-33cd6161.js +82 -0
  7. package/dist/cjs/intl-9e9388a7.js +291 -0
  8. package/dist/cjs/loader.cjs.js +15 -0
  9. package/dist/cjs/priv-calendar.cjs.entry.js +580 -0
  10. package/dist/cjs/priv-chart-popover-old.cjs.entry.js +146 -0
  11. package/dist/cjs/priv-chart-popover_2.cjs.entry.js +204 -0
  12. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  13. package/dist/cjs/priv-navigator-item.cjs.entry.js +35 -0
  14. package/dist/cjs/priv-option-list.cjs.entry.js +391 -0
  15. package/dist/cjs/ripple.cjs.js +25 -0
  16. package/dist/cjs/wm-action-menu_2.cjs.entry.js +525 -0
  17. package/dist/cjs/wm-button.cjs.entry.js +280 -0
  18. package/dist/cjs/wm-chart-bar.cjs.entry.js +444 -0
  19. package/dist/cjs/wm-chart-column.cjs.entry.js +629 -0
  20. package/dist/cjs/wm-chart-slice.cjs.entry.js +27 -0
  21. package/dist/cjs/wm-chart-stack.cjs.entry.js +447 -0
  22. package/dist/cjs/wm-chart.cjs.entry.js +163 -0
  23. package/dist/cjs/wm-date-range.cjs.entry.js +591 -0
  24. package/dist/cjs/wm-datepicker.cjs.entry.js +399 -0
  25. package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-file-list.cjs.entry.js} +15 -24
  26. package/dist/cjs/wm-file.cjs.entry.js +210 -0
  27. package/dist/cjs/wm-flyout.cjs.entry.js +178 -0
  28. package/dist/{ripple/wm-modal.entry.js → cjs/wm-input.cjs.entry.js} +108 -110
  29. package/dist/cjs/wm-line-chart.cjs.entry.js +541 -0
  30. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +220 -0
  31. package/dist/cjs/wm-modal_3.cjs.entry.js +238 -0
  32. package/dist/cjs/wm-navigation_3.cjs.entry.js +188 -0
  33. package/dist/cjs/wm-navigator.cjs.entry.js +334 -0
  34. package/dist/cjs/wm-nested-select.cjs.entry.js +322 -0
  35. package/dist/{ripple/wm-textarea.entry.js → cjs/wm-optgroup.cjs.entry.js} +62 -57
  36. package/dist/cjs/wm-option_2.cjs.entry.js +536 -0
  37. package/dist/{ripple/wm-navigation.entry.js → cjs/wm-pagination.cjs.entry.js} +204 -91
  38. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +204 -0
  39. package/dist/{ripple/wm-flyout.entry.js → cjs/wm-search.cjs.entry.js} +168 -139
  40. package/dist/{ripple/wm-datepicker.entry.js → cjs/wm-snackbar.cjs.entry.js} +152 -223
  41. package/dist/cjs/wm-tab-item_3.cjs.entry.js +357 -0
  42. package/dist/cjs/wm-tag-input.cjs.entry.js +985 -0
  43. package/dist/cjs/wm-tag-option.cjs.entry.js +51 -0
  44. package/dist/{ripple/wm-modal-pss.entry.js → cjs/wm-textarea.cjs.entry.js} +70 -111
  45. package/dist/{ripple/wm-progress-indicator.entry.js → cjs/wm-timepicker.cjs.entry.js} +296 -78
  46. package/dist/cjs/wm-toggletip.cjs.entry.js +252 -0
  47. package/dist/cjs/wm-uploader.cjs.entry.js +341 -0
  48. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  49. package/dist/collection/collection-manifest.json +207 -0
  50. package/dist/collection/components/charts/chartFunctions.js +831 -0
  51. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +995 -0
  52. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +345 -0
  53. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +990 -0
  54. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +268 -0
  55. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +177 -0
  56. package/dist/collection/components/charts/wm-chart/wm-chart.css +1326 -0
  57. package/dist/collection/components/charts/wm-chart/wm-chart.js +549 -0
  58. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1236 -0
  59. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +725 -0
  60. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.css +1335 -0
  61. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +914 -0
  62. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +1006 -0
  63. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +310 -0
  64. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.css +1466 -0
  65. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.js +709 -0
  66. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1208 -0
  67. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +999 -0
  68. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1326 -0
  69. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +320 -0
  70. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +967 -0
  71. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +232 -0
  72. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +167 -0
  73. package/dist/collection/components/datepickers/datepicker.css +1147 -0
  74. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1415 -0
  75. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +857 -0
  76. package/dist/collection/components/datepickers/wm-date-range.js +1158 -0
  77. package/dist/collection/components/datepickers/wm-datepicker.js +875 -0
  78. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +999 -0
  79. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +784 -0
  80. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1259 -0
  81. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +805 -0
  82. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +909 -0
  83. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +363 -0
  84. package/dist/collection/components/selects/wm-option/wm-option.css +1033 -0
  85. package/dist/collection/components/selects/wm-option/wm-option.js +665 -0
  86. package/dist/collection/components/selects/wm-select/wm-select.css +1174 -0
  87. package/dist/collection/components/selects/wm-select/wm-select.js +878 -0
  88. package/dist/collection/components/wm-action-menu/wm-action-menu.css +1690 -0
  89. package/dist/collection/components/wm-action-menu/wm-action-menu.js +932 -0
  90. package/dist/collection/components/wm-button/wm-button.css +1630 -0
  91. package/dist/collection/components/wm-button/wm-button.js +794 -0
  92. package/dist/collection/components/wm-file/wm-file.css +1086 -0
  93. package/dist/collection/components/wm-file/wm-file.js +536 -0
  94. package/dist/collection/components/wm-file-list/wm-file-list.css +899 -0
  95. package/dist/collection/components/wm-file-list/wm-file-list.js +118 -0
  96. package/dist/collection/components/wm-flyout/wm-flyout.css +1091 -0
  97. package/dist/collection/components/wm-flyout/wm-flyout.js +651 -0
  98. package/dist/collection/components/wm-input/wm-input.css +1095 -0
  99. package/dist/collection/components/wm-input/wm-input.js +653 -0
  100. package/dist/collection/components/wm-menuitem/wm-menuitem.css +982 -0
  101. package/dist/collection/components/wm-menuitem/wm-menuitem.js +515 -0
  102. package/dist/collection/components/wm-modal/wm-modal-footer.css +927 -0
  103. package/dist/collection/components/wm-modal/wm-modal-footer.js +199 -0
  104. package/dist/collection/components/wm-modal/wm-modal-header.css +926 -0
  105. package/dist/collection/components/wm-modal/wm-modal-header.js +110 -0
  106. package/dist/collection/components/wm-modal/wm-modal.css +983 -0
  107. package/dist/collection/components/wm-modal/wm-modal.js +534 -0
  108. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +931 -0
  109. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +142 -0
  110. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +925 -0
  111. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
  112. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +1007 -0
  113. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
  114. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +926 -0
  115. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +153 -0
  116. package/dist/collection/components/wm-navigation/wm-navigation-item.css +935 -0
  117. package/dist/collection/components/wm-navigation/wm-navigation-item.js +140 -0
  118. package/dist/collection/components/wm-navigation/wm-navigation.css +977 -0
  119. package/dist/collection/components/wm-navigation/wm-navigation.js +246 -0
  120. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +929 -0
  121. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
  122. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +918 -0
  123. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +128 -0
  124. package/dist/collection/components/wm-navigator/wm-navigator.css +990 -0
  125. package/dist/collection/components/wm-navigator/wm-navigator.js +597 -0
  126. package/dist/collection/components/wm-pagination/wm-pagination.css +1044 -0
  127. package/dist/collection/components/wm-pagination/wm-pagination.js +487 -0
  128. package/dist/collection/components/wm-search/wm-search.css +983 -0
  129. package/dist/collection/components/wm-search/wm-search.js +604 -0
  130. package/dist/collection/components/wm-snackbar/wm-snackbar.css +1150 -0
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.js +363 -0
  132. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +958 -0
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +233 -0
  134. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +966 -0
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +461 -0
  136. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +906 -0
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +132 -0
  138. package/dist/collection/components/wm-tag-input/wm-tag-input.css +1423 -0
  139. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1511 -0
  140. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +328 -0
  141. package/dist/collection/components/wm-textarea/wm-textarea.css +1065 -0
  142. package/dist/collection/components/wm-textarea/wm-textarea.js +423 -0
  143. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1174 -0
  144. package/dist/collection/components/wm-timepicker/wm-timepicker.js +728 -0
  145. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1296 -0
  146. package/dist/collection/components/wm-toggletip/wm-toggletip.js +455 -0
  147. package/dist/collection/components/wm-uploader/wm-uploader.css +1987 -0
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +760 -0
  149. package/dist/collection/components/wm-wrapper/wm-wrapper.js +31 -0
  150. package/dist/collection/dev/action-menu.js +18 -0
  151. package/dist/collection/dev/button.js +12 -0
  152. package/dist/collection/dev/chart-bar.js +430 -0
  153. package/dist/collection/dev/chart-column.js +459 -0
  154. package/dist/collection/dev/chart-small.js +56 -0
  155. package/dist/collection/dev/chart-stack.js +205 -0
  156. package/dist/collection/dev/chart.js +18 -0
  157. package/dist/collection/dev/date-range.js +14 -0
  158. package/dist/collection/dev/datepicker.js +46 -0
  159. package/dist/collection/dev/file-list.js +16 -0
  160. package/dist/collection/dev/file.js +0 -0
  161. package/dist/collection/dev/flyout.js +194 -0
  162. package/dist/collection/dev/input.js +6 -0
  163. package/dist/collection/dev/line-chart.js +45 -0
  164. package/dist/collection/dev/modal.js +48 -0
  165. package/dist/collection/dev/navigation.js +13 -0
  166. package/dist/collection/dev/navigator.js +34 -0
  167. package/dist/collection/dev/nested-select.js +36 -0
  168. package/dist/collection/dev/pagination.js +7 -0
  169. package/dist/collection/dev/progress-monitor.js +0 -0
  170. package/dist/collection/dev/pss-modal.js +8 -0
  171. package/dist/collection/dev/scripts.js +49 -0
  172. package/dist/collection/dev/search.js +72 -0
  173. package/dist/collection/dev/select.js +57 -0
  174. package/dist/collection/dev/snackbar.js +68 -0
  175. package/dist/collection/dev/tabs.js +44 -0
  176. package/dist/collection/dev/tag-input.js +32 -0
  177. package/dist/collection/dev/textarea.js +28 -0
  178. package/dist/collection/dev/timepicker.js +32 -0
  179. package/dist/collection/dev/toggletip.js +9 -0
  180. package/dist/collection/dev/uploader.js +139 -0
  181. package/dist/collection/global/__mocks__/functions.js +6 -0
  182. package/dist/collection/global/functions.js +907 -0
  183. package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +16 -87
  184. package/dist/collection/global/interfaces.js +94 -0
  185. package/dist/collection/global/intl.js +281 -0
  186. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  187. package/dist/collection/global/services/http-service.js +50 -0
  188. package/dist/collection/lang/lang.js +5 -0
  189. package/dist/collection/lang/missing.js +43 -0
  190. package/dist/collection/lang/piglatin.js +101 -0
  191. package/dist/docs/docs.d.ts +435 -0
  192. package/dist/docs/docs.json +14178 -0
  193. package/dist/docs/props-reference.json +2079 -0
  194. package/dist/docs/skill/index.md +33 -0
  195. package/dist/docs/skill/wm-action-menu.md +116 -0
  196. package/dist/docs/skill/wm-button.md +121 -0
  197. package/dist/docs/skill/wm-chart-bar.md +156 -0
  198. package/dist/docs/skill/wm-chart-column.md +122 -0
  199. package/dist/docs/skill/wm-chart-legend.md +91 -0
  200. package/dist/docs/skill/wm-chart-slice.md +101 -0
  201. package/dist/docs/skill/wm-chart-stack.md +147 -0
  202. package/dist/docs/skill/wm-chart.md +139 -0
  203. package/dist/docs/skill/wm-date-range.md +176 -0
  204. package/dist/docs/skill/wm-datepicker.md +153 -0
  205. package/dist/docs/skill/wm-file-list.md +105 -0
  206. package/dist/docs/skill/wm-file.md +91 -0
  207. package/dist/docs/skill/wm-flyout.md +209 -0
  208. package/dist/docs/skill/wm-input.md +134 -0
  209. package/dist/docs/skill/wm-line-chart.md +135 -0
  210. package/dist/docs/skill/wm-menuitem.md +64 -0
  211. package/dist/docs/skill/wm-modal-footer.md +81 -0
  212. package/dist/docs/skill/wm-modal-header.md +71 -0
  213. package/dist/docs/skill/wm-modal.md +172 -0
  214. package/dist/docs/skill/wm-navigation-hamburger.md +61 -0
  215. package/dist/docs/skill/wm-navigation-item.md +78 -0
  216. package/dist/docs/skill/wm-navigation.md +82 -0
  217. package/dist/docs/skill/wm-navigator.md +106 -0
  218. package/dist/docs/skill/wm-nested-select.md +160 -0
  219. package/dist/docs/skill/wm-optgroup.md +72 -0
  220. package/dist/docs/skill/wm-option.md +67 -0
  221. package/dist/docs/skill/wm-pagination.md +114 -0
  222. package/dist/docs/skill/wm-progress-indicator.md +75 -0
  223. package/dist/docs/skill/wm-progress-monitor.md +120 -0
  224. package/dist/docs/skill/wm-progress-slice.md +67 -0
  225. package/dist/docs/skill/wm-search.md +180 -0
  226. package/dist/docs/skill/wm-select.md +169 -0
  227. package/dist/docs/skill/wm-snackbar.md +130 -0
  228. package/dist/docs/skill/wm-tab-item.md +45 -0
  229. package/dist/docs/skill/wm-tab-list.md +139 -0
  230. package/dist/docs/skill/wm-tab-panel.md +39 -0
  231. package/dist/docs/skill/wm-tag-input.md +187 -0
  232. package/dist/docs/skill/wm-tag-option.md +60 -0
  233. package/dist/docs/skill/wm-textarea.md +102 -0
  234. package/dist/docs/skill/wm-timepicker.md +156 -0
  235. package/dist/docs/skill/wm-toggletip.md +98 -0
  236. package/dist/docs/skill/wm-uploader.md +154 -0
  237. package/dist/docs/skill/wm-wrapper.md +5 -0
  238. package/dist/esm/app-globals-a1092590.js +101 -0
  239. package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-58637dc9.js} +159 -3
  240. package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-65f1594c.js} +374 -7830
  241. package/dist/esm/index-3425d80d.js +1813 -0
  242. package/dist/esm/index.js +1 -0
  243. package/dist/esm/interfaces-8778346d.js +77 -0
  244. package/dist/{ripple/intl-7p27BJSM.js → esm/intl-d518f362.js} +11 -4
  245. package/dist/esm/loader.js +11 -0
  246. package/dist/{ripple → esm}/priv-calendar.entry.js +143 -133
  247. package/dist/esm/priv-chart-popover-old.entry.js +142 -0
  248. package/dist/esm/priv-chart-popover_2.entry.js +199 -0
  249. package/dist/{ripple → esm}/priv-navigator-button.entry.js +5 -4
  250. package/dist/{ripple → esm}/priv-navigator-item.entry.js +5 -4
  251. package/dist/{ripple → esm}/priv-option-list.entry.js +18 -16
  252. package/dist/esm/ripple.js +20 -0
  253. package/dist/esm/wm-action-menu_2.entry.js +520 -0
  254. package/dist/{ripple/wm-modal-header.entry.js → esm/wm-button.entry.js} +264 -24
  255. package/dist/esm/wm-chart-bar.entry.js +440 -0
  256. package/dist/esm/wm-chart-column.entry.js +625 -0
  257. package/dist/{ripple → esm}/wm-chart-slice.entry.js +6 -1
  258. package/dist/esm/wm-chart-stack.entry.js +443 -0
  259. package/dist/esm/wm-chart.entry.js +159 -0
  260. package/dist/{ripple → esm}/wm-date-range.entry.js +224 -114
  261. package/dist/esm/wm-datepicker.entry.js +395 -0
  262. package/dist/{ripple → esm}/wm-file-list.entry.js +5 -4
  263. package/dist/{ripple → esm}/wm-file.entry.js +48 -24
  264. package/dist/esm/wm-flyout.entry.js +174 -0
  265. package/dist/{ripple → esm}/wm-input.entry.js +23 -7
  266. package/dist/{ripple → esm}/wm-line-chart.entry.js +182 -94
  267. package/dist/esm/wm-modal-pss_3.entry.js +214 -0
  268. package/dist/esm/wm-modal_3.entry.js +232 -0
  269. package/dist/esm/wm-navigation_3.entry.js +182 -0
  270. package/dist/{ripple → esm}/wm-navigator.entry.js +26 -64
  271. package/dist/{ripple → esm}/wm-nested-select.entry.js +35 -25
  272. package/dist/{ripple → esm}/wm-optgroup.entry.js +17 -5
  273. package/dist/esm/wm-option_2.entry.js +531 -0
  274. package/dist/{ripple → esm}/wm-pagination.entry.js +16 -14
  275. package/dist/esm/wm-progress-indicator_3.entry.js +198 -0
  276. package/dist/{ripple → esm}/wm-search.entry.js +15 -31
  277. package/dist/{ripple → esm}/wm-snackbar.entry.js +32 -45
  278. package/dist/esm/wm-tab-item_3.entry.js +351 -0
  279. package/dist/{ripple → esm}/wm-tag-input.entry.js +169 -65
  280. package/dist/{ripple → esm}/wm-tag-option.entry.js +14 -2
  281. package/dist/{ripple/wm-menuitem.entry.js → esm/wm-textarea.entry.js} +65 -100
  282. package/dist/{ripple → esm}/wm-timepicker.entry.js +33 -12
  283. package/dist/{ripple → esm}/wm-toggletip.entry.js +105 -33
  284. package/dist/esm/wm-uploader.entry.js +337 -0
  285. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  286. package/dist/index.cjs.js +1 -0
  287. package/dist/index.js +1 -0
  288. package/dist/loader/cdn.js +1 -0
  289. package/dist/loader/index.cjs.js +1 -0
  290. package/dist/loader/index.d.ts +24 -0
  291. package/dist/loader/index.es2017.js +1 -0
  292. package/dist/loader/index.js +2 -0
  293. package/dist/loader/package.json +11 -0
  294. package/dist/ripple/index.esm.js +0 -1
  295. package/dist/ripple/p-0d364411.entry.js +1 -0
  296. package/dist/ripple/p-156c4d1d.entry.js +1 -0
  297. package/dist/ripple/{wm-modal-footer.entry.js → p-26d8c356.entry.js} +1 -44
  298. package/dist/ripple/p-2b23ce49.entry.js +1 -0
  299. package/dist/ripple/p-2b7cc2c1.entry.js +1 -0
  300. package/dist/ripple/p-34bde06a.entry.js +1 -0
  301. package/dist/ripple/p-35db9386.entry.js +1 -0
  302. package/dist/ripple/p-38a987ac.entry.js +1 -0
  303. package/dist/ripple/p-38b05894.entry.js +1 -0
  304. package/dist/ripple/p-38dee4ab.entry.js +1 -0
  305. package/dist/ripple/p-3a19d019.entry.js +1 -0
  306. package/dist/ripple/p-451d4de2.js +1 -0
  307. package/dist/ripple/p-507f2cf4.entry.js +1 -0
  308. package/dist/ripple/p-59f74ead.entry.js +1 -0
  309. package/dist/ripple/p-5c2fc42a.entry.js +1 -0
  310. package/dist/ripple/p-680d7606.entry.js +1 -0
  311. package/dist/ripple/p-683264db.js +1 -0
  312. package/dist/ripple/p-6db681c8.entry.js +1 -0
  313. package/dist/ripple/p-6e3c2bbc.js +1 -0
  314. package/dist/ripple/p-6f1cabab.entry.js +1 -0
  315. package/dist/ripple/p-72d135ee.entry.js +1 -0
  316. package/dist/ripple/p-7799953c.entry.js +1 -0
  317. package/dist/ripple/p-83c3db60.js +2 -0
  318. package/dist/ripple/{wm-progress-monitor.entry.js → p-83cdad78.entry.js} +1 -71
  319. package/dist/ripple/p-87ef0cfa.entry.js +1 -0
  320. package/dist/ripple/p-88e44511.entry.js +1 -0
  321. package/dist/ripple/p-8f8e4eb8.entry.js +1 -0
  322. package/dist/ripple/p-936adffb.entry.js +1 -0
  323. package/dist/ripple/p-9755192c.entry.js +1 -0
  324. package/dist/ripple/p-9c5c591b.js +1 -0
  325. package/dist/ripple/p-9ea38d96.entry.js +1 -0
  326. package/dist/ripple/p-be3e4e7c.entry.js +1 -0
  327. package/dist/ripple/p-c9c7df12.entry.js +1 -0
  328. package/dist/ripple/p-d7a1be0b.entry.js +1 -0
  329. package/dist/ripple/p-dab86523.entry.js +1 -0
  330. package/dist/ripple/{wm-tab-list.entry.js → p-e4aa6e27.entry.js} +1 -175
  331. package/dist/ripple/p-ebe9f38c.js +1 -0
  332. package/dist/ripple/p-ed053612.entry.js +1 -0
  333. package/dist/ripple/p-f43f621b.entry.js +1 -0
  334. package/dist/ripple/p-f48d30d6.entry.js +1 -0
  335. package/dist/ripple/{wm-action-menu.entry.js → p-f6aad57c.entry.js} +1 -201
  336. package/dist/ripple/p-f6e1beb5.entry.js +1 -0
  337. package/dist/ripple/p-fc843bb8.entry.js +1 -0
  338. package/dist/ripple/{priv-chart-popover.entry.js → p-fd997764.entry.js} +1 -134
  339. package/dist/ripple/p-fffb46ad.entry.js +1 -0
  340. package/dist/ripple/ripple.esm.js +1 -48
  341. package/dist/types/components/charts/chartFunctions.d.ts +15 -2
  342. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +25 -11
  343. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +31 -0
  344. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
  345. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +113 -1
  346. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +195 -0
  347. package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +184 -0
  348. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +110 -0
  349. package/dist/types/components/charts/wm-chart-stack/wm-chart-stack.d.ts +194 -0
  350. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +156 -11
  351. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +53 -1
  352. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +85 -0
  353. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
  354. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +19 -3
  355. package/dist/types/components/datepickers/wm-date-range.d.ts +205 -14
  356. package/dist/types/components/datepickers/wm-datepicker.d.ts +189 -11
  357. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
  358. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +165 -1
  359. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
  360. package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
  361. package/dist/types/components/selects/wm-select/wm-select.d.ts +193 -12
  362. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +207 -2
  363. package/dist/types/components/wm-button/wm-button.d.ts +191 -0
  364. package/dist/types/components/wm-file/wm-file.d.ts +110 -1
  365. package/dist/types/components/wm-file-list/wm-file-list.d.ts +72 -0
  366. package/dist/types/components/wm-flyout/wm-flyout.d.ts +205 -0
  367. package/dist/types/components/wm-input/wm-input.d.ts +161 -1
  368. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +79 -0
  369. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
  370. package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
  371. package/dist/types/components/wm-modal/wm-modal.d.ts +160 -0
  372. package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
  373. package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
  374. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +6 -0
  375. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
  376. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
  377. package/dist/types/components/wm-navigation/wm-navigation.d.ts +57 -0
  378. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
  379. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
  380. package/dist/types/components/wm-navigator/wm-navigator.d.ts +93 -4
  381. package/dist/types/components/wm-pagination/wm-pagination.d.ts +100 -1
  382. package/dist/types/components/wm-search/wm-search.d.ts +158 -6
  383. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +103 -1
  384. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +55 -3
  385. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +119 -20
  386. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +35 -2
  387. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +199 -5
  388. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
  389. package/dist/types/components/wm-textarea/wm-textarea.d.ts +99 -0
  390. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +147 -0
  391. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +88 -2
  392. package/dist/types/components/wm-uploader/wm-uploader.d.ts +145 -3
  393. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
  394. package/dist/types/components.d.ts +11523 -95
  395. package/dist/types/global/functions.d.ts +7 -2
  396. package/dist/types/global/interfaces.d.ts +92 -2
  397. package/dist/types/global/intl.d.ts +3 -0
  398. package/dist/types/stencil-public-runtime.d.ts +0 -28
  399. package/package.json +4 -33
  400. package/dist/components/index.d.ts +0 -33
  401. package/dist/components/priv-calendar.d.ts +0 -11
  402. package/dist/components/priv-chart-popover.d.ts +0 -11
  403. package/dist/components/priv-navigator-button.d.ts +0 -11
  404. package/dist/components/priv-navigator-item.d.ts +0 -11
  405. package/dist/components/priv-option-list.d.ts +0 -11
  406. package/dist/components/wm-action-menu.d.ts +0 -11
  407. package/dist/components/wm-button.d.ts +0 -11
  408. package/dist/components/wm-chart-slice.d.ts +0 -11
  409. package/dist/components/wm-chart.d.ts +0 -11
  410. package/dist/components/wm-date-range.d.ts +0 -11
  411. package/dist/components/wm-datepicker.d.ts +0 -11
  412. package/dist/components/wm-file-list.d.ts +0 -11
  413. package/dist/components/wm-file.d.ts +0 -11
  414. package/dist/components/wm-flyout.d.ts +0 -11
  415. package/dist/components/wm-input.d.ts +0 -11
  416. package/dist/components/wm-line-chart.d.ts +0 -11
  417. package/dist/components/wm-menuitem.d.ts +0 -11
  418. package/dist/components/wm-modal-footer.d.ts +0 -11
  419. package/dist/components/wm-modal-header.d.ts +0 -11
  420. package/dist/components/wm-modal-pss-footer.d.ts +0 -11
  421. package/dist/components/wm-modal-pss-header.d.ts +0 -11
  422. package/dist/components/wm-modal-pss.d.ts +0 -11
  423. package/dist/components/wm-modal.d.ts +0 -11
  424. package/dist/components/wm-navigation-hamburger.d.ts +0 -11
  425. package/dist/components/wm-navigation-item.d.ts +0 -11
  426. package/dist/components/wm-navigation.d.ts +0 -11
  427. package/dist/components/wm-navigator.d.ts +0 -11
  428. package/dist/components/wm-nested-select.d.ts +0 -11
  429. package/dist/components/wm-optgroup.d.ts +0 -11
  430. package/dist/components/wm-option.d.ts +0 -11
  431. package/dist/components/wm-pagination.d.ts +0 -11
  432. package/dist/components/wm-progress-indicator.d.ts +0 -11
  433. package/dist/components/wm-progress-monitor.d.ts +0 -11
  434. package/dist/components/wm-progress-slice.d.ts +0 -11
  435. package/dist/components/wm-search.d.ts +0 -11
  436. package/dist/components/wm-select.d.ts +0 -11
  437. package/dist/components/wm-snackbar.d.ts +0 -11
  438. package/dist/components/wm-tab-item.d.ts +0 -11
  439. package/dist/components/wm-tab-list.d.ts +0 -11
  440. package/dist/components/wm-tab-panel.d.ts +0 -11
  441. package/dist/components/wm-tag-input.d.ts +0 -11
  442. package/dist/components/wm-tag-option.d.ts +0 -11
  443. package/dist/components/wm-textarea.d.ts +0 -11
  444. package/dist/components/wm-timepicker.d.ts +0 -11
  445. package/dist/components/wm-toggletip.d.ts +0 -11
  446. package/dist/components/wm-uploader.d.ts +0 -11
  447. package/dist/components/wm-wrapper.d.ts +0 -11
  448. package/dist/ripple/index-CU5QNCKv.js +0 -4167
  449. package/dist/ripple/interfaces-CrANcZM9.js +0 -53
  450. package/dist/ripple/wm-button.entry.js +0 -197
  451. package/dist/ripple/wm-chart.entry.js +0 -157
  452. package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
  453. package/dist/ripple/wm-modal-pss-header.entry.js +0 -39
  454. package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
  455. package/dist/ripple/wm-navigation-item.entry.js +0 -18
  456. package/dist/ripple/wm-option.entry.js +0 -171
  457. package/dist/ripple/wm-progress-slice.entry.js +0 -13
  458. package/dist/ripple/wm-select.entry.js +0 -249
  459. package/dist/ripple/wm-tab-item.entry.js +0 -63
  460. package/dist/ripple/wm-uploader.entry.js +0 -313
@@ -0,0 +1,760 @@
1
+ import { h, Host, forceUpdate, } from "@stencil/core";
2
+ import { uploaderMessages } from "../../global/intl";
3
+ import { intl, hideTooltip, showTooltip } from "../../global/functions";
4
+ /**
5
+ * File upload component for attaching files. Composed of a trigger button and a list of
6
+ * wm-file children. Two variants: `'select'` opens the browser file picker; `'drop'` adds a
7
+ * drag-and-drop area. The component emits events when files are selected and when file
8
+ * actions are triggered — the application is responsible for validation, upload, and managing
9
+ * the file list. Use wm-file-list instead when displaying files without uploading.
10
+ *
11
+ * @category Form Inputs
12
+ *
13
+ * @slot - One or more wm-file children representing the current file list.
14
+ *
15
+ * @accessibility
16
+ * - The number of in-progress uploads and aggregate upload percentage are announced via
17
+ * `aria-live` regions.
18
+ * - Deletion focus is managed automatically: moves to the next file, then the previous file,
19
+ * then the upload button.
20
+ * - The `progress` prop on wm-file children must be kept up to date for proper screen reader
21
+ * accessibility.
22
+ *
23
+ * @usageNotes
24
+ * - `button-text` is required.
25
+ * - Validate files (type, size, count) in the `wmUploaderFilesSelected` handler; set
26
+ * `error-message` on the uploader or on individual wm-file elements externally.
27
+ * - Announce file deletions to screen readers using wm-snackbar.
28
+ * - `drop-area="page"` expands the drop zone to the full page while dragging; only valid
29
+ * when `uploader-type="drop"`.
30
+ *
31
+ * @example {html} Select variant
32
+ * <wm-uploader button-text="Attach files" icon="#attach" label="Project documents">
33
+ * <wm-file id="f1" name="proposal" type="pdf" size="1.2 MB"></wm-file>
34
+ * </wm-uploader>
35
+ *
36
+ * @example {react} Select variant with file list management
37
+ * // wmUploaderFilesSelected emits a FileList -- use Array.from() to iterate.
38
+ * // Extract name (without extension) and type (extension only) for each wm-file child.
39
+ * // wmFileDelete fires on the wm-file element; use e.target.id to identify which to remove.
40
+ * // showInfo on the uploader propagates automatically to all wm-file children.
41
+ * let nextId = 1;
42
+ * const [files, setFiles] = useState([]);
43
+ *
44
+ * const handleFilesSelected = (e) => {
45
+ * const newFiles = Array.from(e.detail).map((file) => {
46
+ * const lastDot = file.name.lastIndexOf(".");
47
+ * const name = lastDot > 0 ? file.name.slice(0, lastDot) : file.name;
48
+ * const type = lastDot > 0 ? file.name.slice(lastDot + 1) : "file";
49
+ * return { id: String(nextId++), name, type, size: `${(file.size / 1024).toFixed(1)} KB` };
50
+ * });
51
+ * setFiles((prev) => [...prev, ...newFiles]);
52
+ * };
53
+ *
54
+ * const handleDelete = (e) => {
55
+ * const id = e.target.id;
56
+ * setFiles((prev) => prev.filter((f) => f.id !== id));
57
+ * };
58
+ *
59
+ * <WmUploader buttonText="Attach files" icon="#attach" label="Project documents" showInfo="size"
60
+ * onWmUploaderFilesSelected={handleFilesSelected}>
61
+ * {files.map((f) => (
62
+ * <WmFile key={f.id} id={f.id} name={f.name} type={f.type} size={f.size}
63
+ * onWmFileDelete={handleDelete} />
64
+ * ))}
65
+ * </WmUploader>
66
+ *
67
+ * @example {html} Drop variant
68
+ * <wm-uploader uploader-type="drop" button-text="Upload files" icon="#upload">
69
+ * </wm-uploader>
70
+ *
71
+ * @example {react} Drop variant
72
+ * <WmUploader uploaderType="drop" buttonText="Upload files" icon="#upload"
73
+ * onWmUploaderFilesSelected={handleFilesSelected} />
74
+ *
75
+ * @requiredSetup
76
+ * - Handle `wmUploaderFilesSelected` (`event.detail` is an array of browser `File` objects) and hold
77
+ * the files in your own state.
78
+ * - Validate type, size, and count in that handler and report problems through `error-message`.
79
+ * `file-types` and `max-size` are shown to the user but not enforced, and `max-files` only
80
+ * disables the control once that many wm-file children exist.
81
+ * - Render a wm-file per accepted file, and handle its `wmFileDelete` -- identify the file with
82
+ * `event.target.id` -- by removing it from state.
83
+ * - Update each wm-file `progress` as the upload proceeds; it drives the progress bar and the
84
+ * aria-live announcement.
85
+ *
86
+ *
87
+ */
88
+ export class Uploader {
89
+ constructor() {
90
+ this.batchCount = 0; // used to calculate the aggregate upload progress
91
+ this.prevUploadCount = 0; // comparison to determine whether or not to announce updated count
92
+ this.label = undefined;
93
+ this.uploaderType = "select";
94
+ this.dropArea = "component";
95
+ this.buttonText = undefined;
96
+ this.icon = undefined;
97
+ this.fileTypes = "pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv";
98
+ this.maxSize = undefined;
99
+ this.maxFiles = undefined;
100
+ this.errorMessage = undefined;
101
+ this.requiredField = undefined;
102
+ this.showInfo = "time";
103
+ this.isTabbing = false;
104
+ this.notif = "";
105
+ this.isCondensed = false;
106
+ }
107
+ get isDisabled() {
108
+ // disable if is the uploader is maxed out or if something is uploading
109
+ return this.fileLimitReached || this.inProgressFileEls.length > 0;
110
+ }
111
+ get fileEls() {
112
+ return Array.from(this.el.querySelectorAll("wm-file"));
113
+ }
114
+ get inProgressFileEls() {
115
+ return this.fileEls.filter((file) => file.progress !== undefined && file.progress < 100);
116
+ }
117
+ get uploadedFileEls() {
118
+ return this.fileEls.filter((file) => !file.errorMessage);
119
+ }
120
+ get fileLimitReached() {
121
+ return this.maxFiles && this.uploadedFileEls.length >= this.maxFiles;
122
+ }
123
+ get validTypes() {
124
+ return "." + this.fileTypes.split(" ").join(", .");
125
+ }
126
+ toggleTabbingOn() {
127
+ this.isTabbing = true;
128
+ }
129
+ toggleTabbingOff() {
130
+ this.isTabbing = false;
131
+ }
132
+ handleFileErrorCleared() {
133
+ this.uploadButtonEl.focus();
134
+ }
135
+ handleFileDelete(ev) {
136
+ const focusableFileEls = this.fileEls.filter((file) => !!file.fileActions);
137
+ this.deletedEl = ev.target;
138
+ const index = focusableFileEls.indexOf(this.deletedEl);
139
+ // actual focus will called only after el is removed from DOM
140
+ if (focusableFileEls.length === 1) {
141
+ // it was the only item, focus the upload button
142
+ this.elToFocusOnDelete = this.uploadButtonEl;
143
+ }
144
+ else if (index === focusableFileEls.length - 1) {
145
+ // it's the last item, focus the previous file
146
+ const fileToFocus = focusableFileEls[index - 1];
147
+ const fileActionButtons = fileToFocus.shadowRoot.querySelectorAll("wm-button");
148
+ this.elToFocusOnDelete = fileActionButtons[fileActionButtons.length - 1];
149
+ }
150
+ else {
151
+ // otherwise focus the next file
152
+ const fileToFocus = focusableFileEls[index + 1];
153
+ const fileActionButtons = fileToFocus.shadowRoot.querySelectorAll("wm-button");
154
+ this.elToFocusOnDelete = fileActionButtons[fileActionButtons.length - 1];
155
+ }
156
+ }
157
+ announceError() {
158
+ if (this.errorMessage) {
159
+ setTimeout(() => this.announce(this.errorMessage, this.politeLiveRegionEl), 100);
160
+ }
161
+ }
162
+ ///////// Drop Event Handling ////////
163
+ handleDocumentDragEnter() {
164
+ if (this.uploaderType == "drop") {
165
+ this.beginDropListening();
166
+ }
167
+ }
168
+ handleDocumentMouseOut() {
169
+ if (this.uploaderType == "drop" && this.dropAreaEl) {
170
+ this.endDropListening();
171
+ }
172
+ }
173
+ handleDocumentDragLeave(ev) {
174
+ if (this.uploaderType == "drop") {
175
+ // Do not end drop listening for events that bubble up from children of this uploader
176
+ if (ev.target.closest("wm-uploader") == this.el) {
177
+ this.endDropListening();
178
+ }
179
+ }
180
+ }
181
+ handleDocumentVisibilityChange() {
182
+ // If a file is dropped outside of the drop area, if the browser opens the file in new tab, a dragleave event is not fired. This handles that case
183
+ if (this.uploaderType == "drop") {
184
+ this.endDropListening();
185
+ }
186
+ }
187
+ handleDragEnter(ev) {
188
+ if (this.uploaderType == "drop") {
189
+ ev.preventDefault();
190
+ this.el.classList.add("dragging");
191
+ }
192
+ }
193
+ handleDragOver(ev) {
194
+ if (this.uploaderType == "drop") {
195
+ ev.preventDefault();
196
+ }
197
+ }
198
+ handleDragLeave(ev) {
199
+ if (this.uploaderType == "drop") {
200
+ ev.preventDefault();
201
+ this.endDropListening();
202
+ this.el.classList.remove("dragging");
203
+ }
204
+ }
205
+ handleDrop(ev) {
206
+ if (this.uploaderType == "drop") {
207
+ ev.preventDefault();
208
+ this.el.classList.remove("dragging");
209
+ this.endDropListening();
210
+ if (ev.dataTransfer.files) {
211
+ const files = Array.from(ev.dataTransfer.files);
212
+ if (files.length > 0) {
213
+ this.batchCount = files.length;
214
+ this.wmUploaderFilesSelected.emit(files);
215
+ }
216
+ }
217
+ }
218
+ }
219
+ beginDropListening() {
220
+ if (this.dropArea == "page") {
221
+ this.dropOverlayEl.showPopover();
222
+ }
223
+ this.dropAreaEl.classList.add("listening");
224
+ }
225
+ endDropListening() {
226
+ if (this.dropArea == "page") {
227
+ this.dropOverlayEl.hidePopover();
228
+ }
229
+ this.dropAreaEl.classList.remove("listening");
230
+ }
231
+ componentDidLoad() {
232
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
233
+ this.toggleTabbingOn();
234
+ }
235
+ const mutationObserver = new MutationObserver((mutationRecordList) => mutationRecordList.forEach((mutationRecord) => this.handleChildMutation(mutationRecord)));
236
+ mutationObserver.observe(this.el, {
237
+ childList: true,
238
+ subtree: true,
239
+ attributes: true,
240
+ attributeOldValue: true,
241
+ attributeFilter: ["progress"],
242
+ });
243
+ }
244
+ handleChildMutation(mutationRecord) {
245
+ if (mutationRecord.type === "attributes") {
246
+ this.handleProgressUpdate(mutationRecord);
247
+ }
248
+ else if (mutationRecord.type === "childList") {
249
+ // if user prompted the removal of a single file (they hit the delete button)
250
+ // re-assigning focus handled here because component shouldn't assume the node removal based on the event firing
251
+ const removedEls = mutationRecord.removedNodes;
252
+ const removedEl = removedEls[0];
253
+ if (removedEls.length === 1 && removedEl === this.deletedEl && this.elToFocusOnDelete) {
254
+ this.elToFocusOnDelete.focus();
255
+ this.deletedEl = null;
256
+ this.elToFocusOnDelete = null;
257
+ }
258
+ // on added wm-files, if wm-file has an error, announce
259
+ if (mutationRecord.addedNodes.length > 0) {
260
+ mutationRecord.addedNodes.forEach((addedFile) => {
261
+ if (addedFile.errorMessage) {
262
+ setTimeout(() => this.announce(addedFile.errorMessage, this.politeLiveRegionEl), 500);
263
+ }
264
+ });
265
+ }
266
+ forceUpdate(this.el); // forceUpdate to rerender filecount
267
+ }
268
+ }
269
+ handleProgressUpdate(mutationRecord) {
270
+ const uploadCount = this.inProgressFileEls.length;
271
+ if (uploadCount !== 0) {
272
+ const changeInUploadingFiles = this.prevUploadCount !== uploadCount;
273
+ changeInUploadingFiles &&
274
+ this.announce(uploaderMessages.getFilesUploading(uploadCount), this.assertiveLiveRegionEl);
275
+ this.notif = uploaderMessages.getFilesUploading(uploadCount);
276
+ this.prevUploadCount = uploadCount;
277
+ if (this.batchCount < uploadCount) {
278
+ this.batchCount = uploadCount;
279
+ }
280
+ if (!this.srProgress) {
281
+ this.srProgress = setInterval(() => {
282
+ const aggregate = this.fileEls.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);
283
+ const percentage = this.batchCount > 0 ? Math.floor(aggregate / this.batchCount) : 0;
284
+ this.announce(uploaderMessages.getUploadProgress(percentage), this.assertiveLiveRegionEl);
285
+ }, 5000);
286
+ }
287
+ }
288
+ else if (uploadCount === 0 && mutationRecord.oldValue && parseInt(mutationRecord.oldValue) < 100) {
289
+ // if final file progress completes
290
+ this.uploadButtonEl.value = "";
291
+ this.batchCount = 0;
292
+ this.notif = uploaderMessages.finishedUploading;
293
+ this.announce(uploaderMessages.finishedUploading, this.assertiveLiveRegionEl);
294
+ clearInterval(this.srProgress);
295
+ setTimeout(() => {
296
+ this.notif = "";
297
+ }, 20 * 1000);
298
+ }
299
+ }
300
+ handleUploadButtonClick(ev) {
301
+ if (this.isDisabled) {
302
+ // this is a temporary fix.
303
+ // we need the disabled button to be programmatically focusable
304
+ // to allow return focus after closing the browser file panel
305
+ // since it's focusable the button should respond when activated
306
+ // it looks disabled, and announces the reason why the action cannot
307
+ // be taken when activated.
308
+ ev.preventDefault();
309
+ if (this.inProgressFileEls.length > 0) {
310
+ this.announce(uploaderMessages.waitToUpload, this.assertiveLiveRegionEl);
311
+ }
312
+ else if (this.fileLimitReached) {
313
+ this.announce(uploaderMessages.fileLimitReached, this.assertiveLiveRegionEl);
314
+ }
315
+ }
316
+ else {
317
+ this.uploadButtonEl.value = ""; // when making a new selection, always reset the value so onChange is triggered (even if the same file is selected)
318
+ }
319
+ }
320
+ handleUploadButtonChange() {
321
+ if (this.uploadButtonEl.files) {
322
+ const files = Array.from(this.uploadButtonEl.files);
323
+ if (files.length > 0) {
324
+ this.batchCount = files.length;
325
+ this.wmUploaderFilesSelected.emit(files);
326
+ }
327
+ }
328
+ }
329
+ handleLabelMouseEnter(ev) {
330
+ const labelEl = ev.target;
331
+ if (labelEl.scrollWidth > labelEl.clientWidth) {
332
+ showTooltip("right", labelEl, this.label);
333
+ }
334
+ }
335
+ announce(message, liveRegionEl) {
336
+ if (liveRegionEl.textContent === message) {
337
+ message += "\u00A0";
338
+ }
339
+ liveRegionEl.textContent = message;
340
+ }
341
+ renderIcon() {
342
+ const defaultIconSize = "0.875rem";
343
+ if (this.icon.match(/^#/)) {
344
+ // Icon ID
345
+ return h("span", { class: `svg-icon svg-${this.icon.slice(1)}`, style: { "--icon-size": defaultIconSize } });
346
+ }
347
+ else if (this.icon.match(/^\/\S*[#]\S*/)) {
348
+ // starts with /, any number of non-whitespace characters, followed by #, followed by any non-whitespace characters
349
+ // Relative Path & Symbol
350
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", class: "svg-icon", style: { "--icon-fill": "currentColor", "--icon-size": defaultIconSize }, fill: "currentColor" }, h("use", { href: this.icon })));
351
+ }
352
+ else {
353
+ // MDI
354
+ return (h("span", { class: "mdi", "aria-hidden": "true" }, String.fromCodePoint(parseInt(`0x${this.icon}`))));
355
+ }
356
+ }
357
+ renderUploadButton() {
358
+ let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : ""}${this.buttonText}`;
359
+ return (h("div", { class: "button-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: () => this.handleUploadButtonChange() }), h("label", { htmlFor: "input", class: `wm-button -secondary ${this.isDisabled ? "disabled" : ""}` }, this.icon && this.renderIcon(), this.buttonText), this.uploaderType == "select" && this.renderFileCount()));
360
+ }
361
+ renderDropButton() {
362
+ let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : ""}${uploaderMessages.dropInstructions}`;
363
+ return (h("div", { class: "button-wrapper -drop" }, 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: () => this.handleUploadButtonChange() }), h("label", { htmlFor: "input", class: `${this.isDisabled ? "disabled" : ""}` }, h("div", { class: "prompt" }, h("span", { class: "upload-arrow" }), h("span", { id: "drop-text", class: `wm-button -textonly ${this.isDisabled ? "disabled" : ""}` }, h("span", { class: "default-text" }, uploaderMessages.dropInstructions), h("span", { class: "dragging-text" }, uploaderMessages.dropFile))), this.renderFileCount())));
364
+ }
365
+ renderHeader() {
366
+ return (h("div", { class: "header" }, h("div", { class: "notif-wrapper" }, this.uploaderType == "select" ? this.renderUploadButton() : this.renderDropButton(), this.renderRequirements()), this.notif && h("div", { class: "notif" }, this.notif), h("div", { id: "error" }, this.errorMessage)));
367
+ }
368
+ renderFileCount() {
369
+ if (this.maxFiles) {
370
+ return h("div", { id: "file-count" }, uploaderMessages.getFileCount(this.uploadedFileEls.length, this.maxFiles));
371
+ }
372
+ }
373
+ renderRequirements() {
374
+ const maxSizeMessage = intl.formatMessage({
375
+ id: "uploader.maxSize",
376
+ defaultMessage: "<b>Maximum File Size:</b> {maxSize}",
377
+ description: "An indicator of the maximum file size the uploader allows",
378
+ }, {
379
+ maxSize: this.maxSize,
380
+ b: (chunks) => h("span", { style: { "font-weight": "600" } }, chunks),
381
+ });
382
+ const acceptedTypesMessage = intl.formatMessage({
383
+ id: "uploader.acceptedFileTypes",
384
+ defaultMessage: "<b>Accepted File {amount, plural, =1 {Type} other {Types}}:</b> {fileTypes}",
385
+ }, {
386
+ fileTypes: this.validTypes,
387
+ amount: this.fileTypes.split(" ").length,
388
+ b: (chunks) => h("span", { style: { "font-weight": "600" } }, chunks),
389
+ });
390
+ return (h("details", { class: "requirements" }, h("summary", null, h("span", { class: "title-text" }, uploaderMessages.fileRequirements)), h("div", { class: "requirements-wrapper" }, h("div", { id: "accepted-types", class: "accepted-types" }, acceptedTypesMessage), this.maxSize && h("span", { id: "max-size" }, maxSizeMessage))));
391
+ }
392
+ renderListContainer() {
393
+ const hasNewlyUploadedFiles = this.fileEls.filter((file) => file.progress && file.progress === 100).length;
394
+ return (h("div", { class: `list-container ${hasNewlyUploadedFiles ? "checkmark-spacer" : ""}` }, h("ul", { class: "file-list" }, h("slot", null))));
395
+ }
396
+ renderLabel() {
397
+ return (h("div", { class: `wrapper ${this.errorMessage ? "invalid" : ""}` }, h("div", { class: "label-wrapper" }, h("div", { id: "label", class: `label`, onMouseEnter: (ev) => this.handleLabelMouseEnter(ev), onMouseLeave: () => hideTooltip() }, this.label), this.requiredField && (h("div", { class: "required", "aria-hidden": "true" }, "*")))));
398
+ }
399
+ renderDropArea() {
400
+ return (h("div", { class: `drop-area -${this.dropArea}`, ref: (el) => (this.dropAreaEl = el), onDragEnter: (ev) => this.handleDragEnter(ev), onDragOver: (ev) => this.handleDragOver(ev), onDragLeave: (ev) => this.handleDragLeave(ev), onDrop: (ev) => this.handleDrop(ev) }, this.dropArea == "page" && (h("div", { ref: (el) => (this.dropOverlayEl = el), class: "drop-overlay", popover: "manual" }, h("span", { class: "upload-arrow" }), h("span", null, "Drop to Upload")))));
401
+ }
402
+ render() {
403
+ return (h(Host, { key: '10b9229c1b4c9c33c5ac26f2632cef8a3bb7725f', class: `-${this.dropArea}` }, this.uploaderType == "drop" && this.renderDropArea(), this.label && this.renderLabel(), this.renderHeader(), this.renderListContainer(), h("div", { key: 'ed105d34fbd49f62a7e2aadc0514a4d2243b6e5a', ref: (el) => (this.assertiveLiveRegionEl = 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
404
+ ,
405
+ "aria-atomic": "true" }), h("div", { key: '1ec637c9bdbefecde3f229db946b3701dc271d06', ref: (el) => (this.politeLiveRegionEl = el), class: "live-region sr-only", "aria-live": "polite", "aria-atomic": "true" })));
406
+ }
407
+ static get is() { return "wm-uploader"; }
408
+ static get encapsulation() { return "shadow"; }
409
+ static get delegatesFocus() { return true; }
410
+ static get originalStyleUrls() {
411
+ return {
412
+ "$": ["wm-uploader.scss"]
413
+ };
414
+ }
415
+ static get styleUrls() {
416
+ return {
417
+ "$": ["wm-uploader.css"]
418
+ };
419
+ }
420
+ static get properties() {
421
+ return {
422
+ "label": {
423
+ "type": "string",
424
+ "mutable": false,
425
+ "complexType": {
426
+ "original": "string",
427
+ "resolved": "string | undefined",
428
+ "references": {}
429
+ },
430
+ "required": false,
431
+ "optional": true,
432
+ "docs": {
433
+ "tags": [{
434
+ "name": "description",
435
+ "text": "Optional label displayed above the upload button. Use when the uploader is\nrequired (pair with `required-field`) or needs a descriptive heading."
436
+ }],
437
+ "text": ""
438
+ },
439
+ "attribute": "label",
440
+ "reflect": false
441
+ },
442
+ "uploaderType": {
443
+ "type": "string",
444
+ "mutable": false,
445
+ "complexType": {
446
+ "original": "\"select\" | \"drop\"",
447
+ "resolved": "\"drop\" | \"select\"",
448
+ "references": {}
449
+ },
450
+ "required": false,
451
+ "optional": false,
452
+ "docs": {
453
+ "tags": [{
454
+ "name": "description",
455
+ "text": "File selection method. `'select'` opens the browser file picker; `'drop'`\nadds a drag-and-drop area."
456
+ }, {
457
+ "name": "default",
458
+ "text": "\"select\""
459
+ }],
460
+ "text": ""
461
+ },
462
+ "attribute": "uploader-type",
463
+ "reflect": false,
464
+ "defaultValue": "\"select\""
465
+ },
466
+ "dropArea": {
467
+ "type": "string",
468
+ "mutable": false,
469
+ "complexType": {
470
+ "original": "\"component\" | \"page\"",
471
+ "resolved": "\"component\" | \"page\"",
472
+ "references": {}
473
+ },
474
+ "required": false,
475
+ "optional": false,
476
+ "docs": {
477
+ "tags": [{
478
+ "name": "description",
479
+ "text": "Scope of the drop zone when `uploader-type=\"drop\"`. `'component'` limits\nthe drop area to the component; `'page'` expands it to cover the full page while dragging."
480
+ }, {
481
+ "name": "default",
482
+ "text": "\"component\""
483
+ }],
484
+ "text": ""
485
+ },
486
+ "attribute": "drop-area",
487
+ "reflect": false,
488
+ "defaultValue": "\"component\""
489
+ },
490
+ "buttonText": {
491
+ "type": "string",
492
+ "mutable": false,
493
+ "complexType": {
494
+ "original": "string",
495
+ "resolved": "string",
496
+ "references": {}
497
+ },
498
+ "required": true,
499
+ "optional": false,
500
+ "docs": {
501
+ "tags": [{
502
+ "name": "description",
503
+ "text": "Label text on the upload trigger button, e.g. `'Attach files'`. Should\nmatch the action verb used in any surrounding instructions."
504
+ }, {
505
+ "name": "required",
506
+ "text": undefined
507
+ }],
508
+ "text": ""
509
+ },
510
+ "attribute": "button-text",
511
+ "reflect": false
512
+ },
513
+ "icon": {
514
+ "type": "string",
515
+ "mutable": false,
516
+ "complexType": {
517
+ "original": "string",
518
+ "resolved": "string",
519
+ "references": {}
520
+ },
521
+ "required": true,
522
+ "optional": false,
523
+ "docs": {
524
+ "tags": [{
525
+ "name": "description",
526
+ "text": "Icon displayed on the upload button. Accepts the same formats as wm-button:\n`'#icon-name'` for a Ripple icon or `'/path/to/file.svg#symbol-id'` for a local SVG\nsprite."
527
+ }],
528
+ "text": ""
529
+ },
530
+ "attribute": "icon",
531
+ "reflect": false
532
+ },
533
+ "fileTypes": {
534
+ "type": "string",
535
+ "mutable": false,
536
+ "complexType": {
537
+ "original": "string",
538
+ "resolved": "string",
539
+ "references": {}
540
+ },
541
+ "required": false,
542
+ "optional": false,
543
+ "docs": {
544
+ "tags": [{
545
+ "name": "description",
546
+ "text": "Space-separated file extensions displayed to the user as accepted types\n(e.g. `'pdf docx xlsx'`). Actual validation must be handled in the\n`wmUploaderFilesSelected` handler."
547
+ }, {
548
+ "name": "default",
549
+ "text": "\"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\""
550
+ }],
551
+ "text": ""
552
+ },
553
+ "attribute": "file-types",
554
+ "reflect": false,
555
+ "defaultValue": "\"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\""
556
+ },
557
+ "maxSize": {
558
+ "type": "string",
559
+ "mutable": false,
560
+ "complexType": {
561
+ "original": "string",
562
+ "resolved": "string | undefined",
563
+ "references": {}
564
+ },
565
+ "required": false,
566
+ "optional": true,
567
+ "docs": {
568
+ "tags": [{
569
+ "name": "description",
570
+ "text": "Maximum file size displayed to the user (e.g. `'100 MB'`). Validation must\nbe handled in the `wmUploaderFilesSelected` handler."
571
+ }],
572
+ "text": ""
573
+ },
574
+ "attribute": "max-size",
575
+ "reflect": false
576
+ },
577
+ "maxFiles": {
578
+ "type": "number",
579
+ "mutable": false,
580
+ "complexType": {
581
+ "original": "number",
582
+ "resolved": "number | undefined",
583
+ "references": {}
584
+ },
585
+ "required": false,
586
+ "optional": true,
587
+ "docs": {
588
+ "tags": [{
589
+ "name": "description",
590
+ "text": "Maximum number of files displayed to the user. Disables the upload button\nwhen reached. Validation must be handled in the application."
591
+ }],
592
+ "text": ""
593
+ },
594
+ "attribute": "max-files",
595
+ "reflect": false
596
+ },
597
+ "errorMessage": {
598
+ "type": "string",
599
+ "mutable": false,
600
+ "complexType": {
601
+ "original": "string",
602
+ "resolved": "string | undefined",
603
+ "references": {}
604
+ },
605
+ "required": false,
606
+ "optional": true,
607
+ "docs": {
608
+ "tags": [{
609
+ "name": "description",
610
+ "text": "Puts the uploader in an error state with this message (e.g. `'Please add at\nleast one file'`)."
611
+ }],
612
+ "text": ""
613
+ },
614
+ "attribute": "error-message",
615
+ "reflect": false
616
+ },
617
+ "requiredField": {
618
+ "type": "boolean",
619
+ "mutable": false,
620
+ "complexType": {
621
+ "original": "boolean",
622
+ "resolved": "boolean | undefined",
623
+ "references": {}
624
+ },
625
+ "required": false,
626
+ "optional": true,
627
+ "docs": {
628
+ "tags": [{
629
+ "name": "description",
630
+ "text": "Displays a required-field asterisk next to the label. Must be used together\nwith the `label` prop."
631
+ }, {
632
+ "name": "default",
633
+ "text": "false"
634
+ }],
635
+ "text": ""
636
+ },
637
+ "attribute": "required-field",
638
+ "reflect": false
639
+ },
640
+ "showInfo": {
641
+ "type": "string",
642
+ "mutable": false,
643
+ "complexType": {
644
+ "original": "\"size\" | \"time\" | \"none\"",
645
+ "resolved": "\"none\" | \"size\" | \"time\"",
646
+ "references": {}
647
+ },
648
+ "required": false,
649
+ "optional": false,
650
+ "docs": {
651
+ "tags": [{
652
+ "name": "description",
653
+ "text": "Which metadata to show for each wm-file child in the list."
654
+ }, {
655
+ "name": "default",
656
+ "text": "\"time\""
657
+ }],
658
+ "text": ""
659
+ },
660
+ "attribute": "show-info",
661
+ "reflect": false,
662
+ "defaultValue": "\"time\""
663
+ }
664
+ };
665
+ }
666
+ static get states() {
667
+ return {
668
+ "isTabbing": {},
669
+ "notif": {},
670
+ "isCondensed": {}
671
+ };
672
+ }
673
+ static get events() {
674
+ return [{
675
+ "method": "wmUploaderFilesSelected",
676
+ "name": "wmUploaderFilesSelected",
677
+ "bubbles": true,
678
+ "cancelable": true,
679
+ "composed": true,
680
+ "docs": {
681
+ "tags": [{
682
+ "name": "description",
683
+ "text": "Fires when the user selects files via the file picker or drops them onto\nthe drop zone. The host application should validate the files (type, size, count) and\nbegin the upload process."
684
+ }, {
685
+ "name": "eventDetails",
686
+ "text": "File[] \u2014 array of browser `File` objects selected or dropped by the user."
687
+ }],
688
+ "text": ""
689
+ },
690
+ "complexType": {
691
+ "original": "File[]",
692
+ "resolved": "File[]",
693
+ "references": {
694
+ "File": {
695
+ "location": "global",
696
+ "id": "global::File"
697
+ }
698
+ }
699
+ }
700
+ }];
701
+ }
702
+ static get elementRef() { return "el"; }
703
+ static get watchers() {
704
+ return [{
705
+ "propName": "errorMessage",
706
+ "methodName": "announceError"
707
+ }];
708
+ }
709
+ static get listeners() {
710
+ return [{
711
+ "name": "wmUserIsTabbing",
712
+ "method": "toggleTabbingOn",
713
+ "target": "window",
714
+ "capture": false,
715
+ "passive": false
716
+ }, {
717
+ "name": "wmUserIsNotTabbing",
718
+ "method": "toggleTabbingOff",
719
+ "target": "window",
720
+ "capture": false,
721
+ "passive": false
722
+ }, {
723
+ "name": "wmFileErrorCleared",
724
+ "method": "handleFileErrorCleared",
725
+ "target": undefined,
726
+ "capture": false,
727
+ "passive": false
728
+ }, {
729
+ "name": "wmFileDelete",
730
+ "method": "handleFileDelete",
731
+ "target": undefined,
732
+ "capture": false,
733
+ "passive": false
734
+ }, {
735
+ "name": "dragenter",
736
+ "method": "handleDocumentDragEnter",
737
+ "target": "document",
738
+ "capture": false,
739
+ "passive": true
740
+ }, {
741
+ "name": "mouseout",
742
+ "method": "handleDocumentMouseOut",
743
+ "target": "document",
744
+ "capture": false,
745
+ "passive": true
746
+ }, {
747
+ "name": "dragleave",
748
+ "method": "handleDocumentDragLeave",
749
+ "target": "document",
750
+ "capture": false,
751
+ "passive": true
752
+ }, {
753
+ "name": "visibilitychange",
754
+ "method": "handleDocumentVisibilityChange",
755
+ "target": "document",
756
+ "capture": false,
757
+ "passive": false
758
+ }];
759
+ }
760
+ }