@watermarkinsights/ripple 3.0.1-0 → 3.0.2-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 (224) hide show
  1. package/dist/{ripple/functions-316c1b23.js → cjs/functions-e3f5ae65.js} +188 -2391
  2. package/dist/cjs/global-1e540de6.js +38 -0
  3. package/dist/cjs/http-service-9e8c4dd5.js +57 -0
  4. package/dist/cjs/index-d930307d.js +1392 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-30a74c1f.js +35 -0
  7. package/dist/cjs/loader.cjs.js +22 -0
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +89 -0
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +672 -0
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +34 -0
  12. package/dist/cjs/ripple.cjs.js +20 -0
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +318 -0
  14. package/dist/cjs/wm-button.cjs.entry.js +152 -0
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +22 -0
  16. package/dist/cjs/wm-chart.cjs.entry.js +508 -0
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +257 -0
  18. package/dist/cjs/wm-input.cjs.entry.js +110 -0
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +43 -0
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +45 -0
  21. package/dist/cjs/wm-modal.cjs.entry.js +149 -0
  22. package/dist/cjs/wm-navigator.cjs.entry.js +279 -0
  23. package/dist/cjs/wm-network-uploader.cjs.entry.js +431 -0
  24. package/dist/cjs/wm-option_2.cjs.entry.js +483 -0
  25. package/dist/cjs/wm-pagination.cjs.entry.js +176 -0
  26. package/dist/cjs/wm-search.cjs.entry.js +231 -0
  27. package/dist/cjs/wm-snackbar.cjs.entry.js +160 -0
  28. package/dist/cjs/wm-tab-item_3.cjs.entry.js +316 -0
  29. package/dist/cjs/wm-tag-input.cjs.entry.js +538 -0
  30. package/dist/cjs/wm-timepicker.cjs.entry.js +386 -0
  31. package/dist/cjs/wm-toggletip.cjs.entry.js +128 -0
  32. package/dist/cjs/wm-uploader.cjs.entry.js +342 -0
  33. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  34. package/dist/collection/collection-manifest.json +131 -0
  35. package/dist/{ripple/ripple.css → collection/components/wm-action-menu/wm-action-menu.css} +80 -42
  36. package/dist/collection/components/wm-action-menu/wm-action-menu.js +392 -0
  37. package/dist/collection/components/wm-button/wm-button.css +572 -0
  38. package/dist/collection/components/wm-button/wm-button.js +365 -0
  39. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +132 -0
  40. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -0
  41. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -0
  42. package/dist/collection/components/wm-chart/wm-chart.css +337 -0
  43. package/dist/collection/components/wm-chart/wm-chart.js +710 -0
  44. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +374 -0
  45. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1003 -0
  46. package/dist/collection/components/wm-datepicker/wm-datepicker.css +211 -0
  47. package/dist/collection/components/wm-datepicker/wm-datepicker.js +439 -0
  48. package/dist/collection/components/wm-input/wm-input.css +220 -0
  49. package/dist/collection/components/wm-input/wm-input.js +302 -0
  50. package/dist/collection/components/wm-menuitem/wm-menuitem.css +118 -0
  51. package/dist/collection/components/wm-menuitem/wm-menuitem.js +411 -0
  52. package/dist/collection/components/wm-modal/wm-modal-footer.css +84 -0
  53. package/dist/collection/components/wm-modal/wm-modal-footer.js +159 -0
  54. package/dist/collection/components/wm-modal/wm-modal-header.css +78 -0
  55. package/dist/collection/components/wm-modal/wm-modal-header.js +109 -0
  56. package/dist/collection/components/wm-modal/wm-modal.css +155 -0
  57. package/dist/collection/components/wm-modal/wm-modal.js +356 -0
  58. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +94 -0
  59. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -0
  60. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +67 -0
  61. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -0
  62. package/dist/collection/components/wm-navigator/wm-navigator.css +137 -0
  63. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -0
  64. package/dist/collection/components/wm-option/wm-option.css +162 -0
  65. package/dist/collection/components/wm-option/wm-option.js +394 -0
  66. package/dist/collection/components/wm-pagination/wm-pagination.css +217 -0
  67. package/dist/collection/components/wm-pagination/wm-pagination.js +348 -0
  68. package/dist/collection/components/wm-search/wm-search.css +155 -0
  69. package/dist/collection/components/wm-search/wm-search.js +439 -0
  70. package/dist/collection/components/wm-select/wm-select.css +315 -0
  71. package/dist/collection/components/wm-select/wm-select.js +676 -0
  72. package/dist/collection/components/wm-snackbar/wm-snackbar.css +331 -0
  73. package/dist/collection/components/wm-snackbar/wm-snackbar.js +240 -0
  74. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +104 -0
  75. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +202 -0
  76. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +73 -0
  77. package/dist/{ripple/wm-tab-list.entry.js → collection/components/wm-tabs/wm-tab-list/wm-tab-list.js} +131 -17
  78. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +57 -0
  79. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -0
  80. package/dist/collection/components/wm-tag-input/wm-tag-input.css +431 -0
  81. package/dist/collection/components/wm-tag-input/wm-tag-input.js +754 -0
  82. package/dist/collection/components/wm-timepicker/wm-timepicker.css +370 -0
  83. package/dist/collection/components/wm-timepicker/wm-timepicker.js +567 -0
  84. package/dist/collection/components/wm-toggletip/wm-toggletip.css +350 -0
  85. package/dist/collection/components/wm-toggletip/wm-toggletip.js +217 -0
  86. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +642 -0
  87. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -0
  88. package/dist/collection/components/wm-uploader/wm-uploader.css +666 -0
  89. package/dist/collection/components/wm-uploader/wm-uploader.js +673 -0
  90. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -0
  91. package/dist/collection/dev/scripts.js +20 -0
  92. package/dist/collection/global/__mocks__/functions.js +5 -0
  93. package/dist/collection/global/functions.js +420 -0
  94. package/dist/{ripple/app-globals-b5693c90.js → collection/global/global.js} +3 -8
  95. package/dist/{ripple/interfaces-50753346.js → collection/global/interfaces.js} +4 -6
  96. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  97. package/dist/collection/global/services/http-service.js +50 -0
  98. package/dist/collection/lang/lang.js +5 -0
  99. package/dist/collection/lang/piglatin.js +93 -0
  100. package/dist/esm/functions-0deb7f8e.js +6117 -0
  101. package/dist/esm/global-d6b49e98.js +36 -0
  102. package/dist/{ripple → esm}/http-service-5d037e16.js +0 -0
  103. package/dist/esm/index-5a842e48.js +1363 -0
  104. package/dist/esm/index.js +1 -0
  105. package/dist/esm/interfaces-61c6305b.js +32 -0
  106. package/dist/esm/loader.js +18 -0
  107. package/dist/esm/polyfills/core-js.js +11 -0
  108. package/dist/esm/polyfills/css-shim.js +1 -0
  109. package/dist/esm/polyfills/dom.js +79 -0
  110. package/dist/esm/polyfills/es5-html-element.js +1 -0
  111. package/dist/esm/polyfills/index.js +34 -0
  112. package/dist/esm/polyfills/system.js +6 -0
  113. package/dist/{ripple → esm}/priv-chart-popover.entry.js +2 -2
  114. package/dist/{ripple → esm}/priv-datepicker.entry.js +3 -3
  115. package/dist/{ripple → esm}/priv-navigator-button.entry.js +1 -1
  116. package/dist/{ripple → esm}/priv-navigator-item.entry.js +1 -1
  117. package/dist/esm/ripple.js +18 -0
  118. package/dist/{ripple/wm-action-menu.entry.js → esm/wm-action-menu_2.entry.js} +114 -3
  119. package/dist/{ripple → esm}/wm-button.entry.js +3 -3
  120. package/dist/{ripple → esm}/wm-chart-slice.entry.js +1 -1
  121. package/dist/{ripple → esm}/wm-chart.entry.js +2 -2
  122. package/dist/{ripple → esm}/wm-datepicker.entry.js +27 -32
  123. package/dist/{ripple → esm}/wm-input.entry.js +2 -2
  124. package/dist/{ripple → esm}/wm-modal-footer.entry.js +2 -2
  125. package/dist/{ripple → esm}/wm-modal-header.entry.js +2 -2
  126. package/dist/{ripple → esm}/wm-modal.entry.js +2 -2
  127. package/dist/{ripple → esm}/wm-navigator.entry.js +3 -3
  128. package/dist/{ripple → esm}/wm-network-uploader.entry.js +2 -2
  129. package/dist/{ripple/wm-select.entry.js → esm/wm-option_2.entry.js} +119 -3
  130. package/dist/{ripple → esm}/wm-pagination.entry.js +2 -2
  131. package/dist/{ripple → esm}/wm-search.entry.js +2 -2
  132. package/dist/{ripple → esm}/wm-snackbar.entry.js +2 -2
  133. package/dist/esm/wm-tab-item_3.entry.js +310 -0
  134. package/dist/{ripple → esm}/wm-tag-input.entry.js +2 -2
  135. package/dist/{ripple → esm}/wm-timepicker.entry.js +2 -2
  136. package/dist/{ripple → esm}/wm-toggletip.entry.js +2 -2
  137. package/dist/{ripple → esm}/wm-uploader.entry.js +2 -2
  138. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  139. package/dist/index.cjs.js +1 -0
  140. package/dist/index.js +1 -0
  141. package/dist/loader/cdn.js +3 -0
  142. package/dist/loader/index.cjs.js +3 -0
  143. package/dist/loader/index.d.ts +13 -0
  144. package/dist/loader/index.es2017.js +3 -0
  145. package/dist/loader/index.js +4 -0
  146. package/dist/loader/package.json +10 -0
  147. package/dist/ripple/index.esm.js +0 -1
  148. package/dist/ripple/p-103f8cae.entry.js +1 -0
  149. package/dist/ripple/p-129d94fa.entry.js +1 -0
  150. package/dist/ripple/p-139fe143.entry.js +1 -0
  151. package/dist/ripple/p-16367805.entry.js +1 -0
  152. package/dist/ripple/p-1d334060.entry.js +1 -0
  153. package/dist/ripple/p-2562f330.entry.js +1 -0
  154. package/dist/ripple/p-278b26ef.entry.js +1 -0
  155. package/dist/ripple/p-2c21bb72.entry.js +1 -0
  156. package/dist/ripple/p-2f5fda71.entry.js +1 -0
  157. package/dist/ripple/p-3e6f04d5.entry.js +1 -0
  158. package/dist/ripple/p-7185de7f.entry.js +1 -0
  159. package/dist/ripple/p-770d0798.entry.js +1 -0
  160. package/dist/ripple/p-846b4c5f.entry.js +1 -0
  161. package/dist/ripple/p-888bec42.js +1 -0
  162. package/dist/ripple/p-90779d53.entry.js +1 -0
  163. package/dist/ripple/p-934543f2.js +1 -0
  164. package/dist/ripple/p-9a087fee.entry.js +1 -0
  165. package/dist/ripple/p-a6d6eae7.js +1 -0
  166. package/dist/ripple/p-a942ad10.entry.js +1 -0
  167. package/dist/ripple/p-bfb4652d.entry.js +1 -0
  168. package/dist/ripple/p-c0fe5201.entry.js +1 -0
  169. package/dist/ripple/p-c2e27acc.entry.js +1 -0
  170. package/dist/ripple/p-c2edda64.entry.js +1 -0
  171. package/dist/ripple/p-d1fdcbcf.entry.js +1 -0
  172. package/dist/ripple/p-d40b6afb.entry.js +1 -0
  173. package/dist/ripple/p-da73db1c.entry.js +1 -0
  174. package/dist/ripple/p-e3843249.js +1 -0
  175. package/dist/ripple/p-ea5cd8b8.js +16 -0
  176. package/dist/ripple/p-ed0f43f4.entry.js +1 -0
  177. package/dist/ripple/p-ffafd363.entry.js +1 -0
  178. package/dist/ripple/ripple.esm.js +1 -125
  179. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -0
  180. package/dist/types/components/wm-button/wm-button.d.ts +36 -0
  181. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -0
  182. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -0
  183. package/dist/types/components/wm-chart/wm-chart.d.ts +77 -0
  184. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +75 -0
  185. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +39 -0
  186. package/dist/types/components/wm-input/wm-input.d.ts +30 -0
  187. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +30 -0
  188. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -0
  189. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -0
  190. package/dist/types/components/wm-modal/wm-modal.d.ts +34 -0
  191. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -0
  192. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -0
  193. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -0
  194. package/dist/types/components/wm-option/wm-option.d.ts +28 -0
  195. package/dist/types/components/wm-pagination/wm-pagination.d.ts +31 -0
  196. package/dist/types/components/wm-search/wm-search.d.ts +78 -0
  197. package/dist/types/components/wm-select/wm-select.d.ts +63 -0
  198. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +32 -0
  199. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +35 -0
  200. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +50 -0
  201. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -0
  202. package/dist/types/components/wm-tag-input/{wm-tag-input.d.ts~ds312_tagInputMaxTags → wm-tag-input.d.ts} +1 -1
  203. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +59 -0
  204. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +25 -0
  205. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -0
  206. package/dist/types/components/wm-uploader/wm-uploader.d.ts +75 -0
  207. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -0
  208. package/dist/types/{components.d.ts~ds312_tagInputMaxTags → components.d.ts} +0 -0
  209. package/dist/types/global/__mocks__/functions.d.ts +5 -0
  210. package/dist/types/global/global.d.ts +1 -0
  211. package/dist/types/global/interfaces.d.ts +33 -0
  212. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -0
  213. package/dist/types/global/services/http-service.d.ts +4 -0
  214. package/dist/types/lang/lang.d.ts +5 -0
  215. package/dist/types/{stencil-public-runtime.d.ts~ds312_tagInputMaxTags → stencil-public-runtime.d.ts} +190 -182
  216. package/package.json +1 -1
  217. package/dist/ripple/css-shim-bbdf0cc6.js +0 -4
  218. package/dist/ripple/dom-1f98a75f.js +0 -73
  219. package/dist/ripple/index-20b65f86.js +0 -2938
  220. package/dist/ripple/shadow-css-67b66845.js +0 -389
  221. package/dist/ripple/wm-menuitem.entry.js +0 -114
  222. package/dist/ripple/wm-option.entry.js +0 -119
  223. package/dist/ripple/wm-tab-item.entry.js +0 -78
  224. package/dist/ripple/wm-tab-panel.entry.js +0 -38
@@ -0,0 +1,342 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-d930307d.js');
6
+ const functions = require('./functions-e3f5ae65.js');
7
+
8
+ const wmUploaderCss = "@charset \"UTF-8\";:host .wm-button,wm-uploader .wm-button{-ms-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1), border 500ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:inherit;border:2px solid #575195;color:#575195;font-size:0.75rem;font-weight:700;height:2.75rem;padding:0 1.3333333333em;cursor:pointer;position:relative;background:#fff;display:flex;justify-content:center;align-items:center;text-decoration:none;text-transform:uppercase;letter-spacing:0.01875rem;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media screen and (min-width: 48rem){:host .wm-button,wm-uploader .wm-button{height:3.3333333333em}}:host .wm-button.nowrap,wm-uploader .wm-button.nowrap{display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .wm-button:focus,wm-uploader .wm-button:focus{outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button::-moz-focus-inner,wm-uploader .wm-button::-moz-focus-inner{border:0;outline:none}:host .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled):not(.-primary):not(.-secondary):not(.-secondary):not(.-selectoronly) .button-text,wm-uploader .wm-button.user-is-tabbing:focus:not(:disabled):not(.disabled):not(.-primary):not(.-secondary):not(.-secondary):not(.-selectoronly) .button-text{background:linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled),wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark),wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark){-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e}:host .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark)::-moz-focus-inner,wm-uploader .wm-button.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled):not(.dark)::-moz-focus-inner{border:0}:host .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled),wm-uploader .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled){background:transparent;border:2px solid #fff;color:#fff}:host .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled):hover,wm-uploader .wm-button.dark:not(.-textonly):not(:disabled):not(.disabled):hover{color:#575195;background:#e6e6e6;border:2px solid #e6e6e6}:host .wm-button.dark.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled).dark,wm-uploader .wm-button.dark.user-is-tabbing:focus:not(.-textonly):not(:disabled):not(.disabled).dark{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #c6b4e3;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #c6b4e3;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #c6b4e3;outline:none}:host .wm-button:active:not(:disabled):not(.disabled):not(.-textonly):not(.-actionbutton):not(.displayedoption),wm-uploader .wm-button:active:not(:disabled):not(.disabled):not(.-textonly):not(.-actionbutton):not(.displayedoption){-ms-transform:scale(0.9, 0.9);-webkit-transform:scale(0.9, 0.9);-moz-transform:scale(0.9, 0.9);transform:scale(0.9, 0.9)}:host .wm-button:hover,wm-uploader .wm-button:hover{background:#464177;color:#fff}:host .wm-button .mdi,wm-uploader .wm-button .mdi{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:host .wm-button:not(.-icononly):not(.-navigational) .mdi,wm-uploader .wm-button:not(.-icononly):not(.-navigational) .mdi{margin-right:0.3125rem}:host .wm-button[dir=RTL] :not(.-icononly) .mdi,wm-uploader .wm-button[dir=RTL] :not(.-icononly) .mdi{margin-left:0.3125rem;margin-right:0}:host .wm-button.-primary:not(.-textonly),wm-uploader .wm-button.-primary:not(.-textonly){background:#575195;color:#fff}:host .wm-button.-primary:not(.-textonly):not(:focus),wm-uploader .wm-button.-primary:not(.-textonly):not(:focus){-webkit-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2)}:host .wm-button.-primary:not(.-textonly):hover,wm-uploader .wm-button.-primary:not(.-textonly):hover{background:#464177}:host .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled),wm-uploader .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled){color:#575195;background:#fff;border:2px solid #fff}:host .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled):hover,wm-uploader .wm-button.-primary:not(.-textonly).dark:not(:disabled):not(.disabled):hover{color:#575195;background:#e6e6e6;border:2px solid #e6e6e6}:host .wm-button.-textonly,wm-uploader .wm-button.-textonly{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;letter-spacing:0;text-transform:none;text-align:initial;font-size:0.875rem;border:none;background:transparent;padding-left:0;padding-right:0;height:auto;border-radius:0;line-height:1}:host .wm-button.-textonly+.-textonly,wm-uploader .wm-button.-textonly+.-textonly{margin-left:0.3125rem}:host .wm-button.-textonly:focus,wm-uploader .wm-button.-textonly:focus{outline:none}:host .wm-button.-textonly::-moz-focus-inner,wm-uploader .wm-button.-textonly::-moz-focus-inner{border:0;outline:none}:host .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled) .button-text,wm-uploader .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled) .button-text{background:linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled).dark .button-text,wm-uploader .wm-button.-textonly.user-is-tabbing:focus:not(:disabled):not(.disabled).dark .button-text{background:linear-gradient(90deg, #fff 66%, transparent 0) repeat-x;background-size:6px 3px;background-position:0 1em;border-radius:0;line-height:normal}:host .wm-button.-textonly.small,wm-uploader .wm-button.-textonly.small{font-size:0.625rem}:host .wm-button.-textonly:hover:not(:disabled):not(.disabled):not(.-permanentlydelete),wm-uploader .wm-button.-textonly:hover:not(:disabled):not(.disabled):not(.-permanentlydelete){text-decoration:underline;color:#454077}:host .wm-button.-textonly.-permanentlydelete,wm-uploader .wm-button.-textonly.-permanentlydelete{color:#c0392b}:host .wm-button.-textonly.-permanentlydelete:hover,wm-uploader .wm-button.-textonly.-permanentlydelete:hover{text-decoration:underline;color:#c0392b !important}:host .wm-button.-textonly.dark,wm-uploader .wm-button.-textonly.dark{color:#fff}:host .wm-button.-textonly.dark:hover,wm-uploader .wm-button.-textonly.dark:hover{text-decoration:underline;color:#fff !important}:host .wm-button.-icononly,wm-uploader .wm-button.-icononly,:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;font-size:1rem;padding:0;height:auto;line-height:1;min-width:2.75rem;min-height:2.75rem;text-align:center;letter-spacing:normal}:host .wm-button.-icononly:not(:focus),wm-uploader .wm-button.-icononly:not(:focus),:host .wm-button.-navigational:not(:focus),wm-uploader .wm-button.-navigational:not(:focus){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media screen and (min-width: 48rem){:host .wm-button.-icononly,wm-uploader .wm-button.-icononly,:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{min-width:2.5rem;min-height:2.5rem}}:host .wm-button.-icononly,wm-uploader .wm-button.-icononly{border-width:1px !important}:host .wm-button.-icononly:before,wm-uploader .wm-button.-icononly:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:host .wm-button.-navigational,wm-uploader .wm-button.-navigational{border:none !important;background-color:transparent}:host .wm-button.-navigational:not(.dark):not(:disabled),wm-uploader .wm-button.-navigational:not(.dark):not(:disabled){color:#575195}:host .wm-button.-navigational:not(.dark):not(:disabled):hover,wm-uploader .wm-button.-navigational:not(.dark):not(:disabled):hover,:host .wm-button.-navigational:not(.dark):not(:disabled).selected,wm-uploader .wm-button.-navigational:not(.dark):not(:disabled).selected{background-color:#d7d6d9}:host .wm-button.-navigational:before,wm-uploader .wm-button.-navigational:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:host .wm-button.-permanentlydelete:not(.-textonly),wm-uploader .wm-button.-permanentlydelete:not(.-textonly){background:#c0392b;border-color:#c0392b;color:#fff}:host .wm-button.-selectoronly,wm-uploader .wm-button.-selectoronly{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;display:block;background:transparent;border:1px solid #575195;border-radius:3px 3px 3px 3px;height:2.75rem;min-width:11.4375rem;padding:0 1.875rem 0 0.9375rem;line-height:normal;font-family:inherit;color:#575195;font-weight:500;font-size:0.875rem;text-transform:none;letter-spacing:0.01875rem;text-align:left}@media screen and (min-width: 48rem){:host .wm-button.-selectoronly,wm-uploader .wm-button.-selectoronly{height:2.5rem}}:host .wm-button.-selectoronly:before,wm-uploader .wm-button.-selectoronly:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";position:absolute;right:0.5625rem;top:50%;transform:translateY(-50%);pointer-events:none}:host .wm-button.-selectoronly:hover:not(:disabled):not(.disabled),wm-uploader .wm-button.-selectoronly:hover:not(:disabled):not(.disabled){background:transparent;text-decoration:none}:host .wm-button.-selectoronly:active,wm-uploader .wm-button.-selectoronly:active{-ms-transform:scale(1, 1) !important;transform:scale(1, 1) !important}:host .wm-button.-selectoronly::-moz-focus-inner,wm-uploader .wm-button.-selectoronly::-moz-focus-inner{border:0}:host .wm-button.-selectoronly .overflowcontrol,wm-uploader .wm-button.-selectoronly .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:visible}:host .wm-button:disabled,wm-uploader .wm-button:disabled,:host .wm-button.disabled,wm-uploader .wm-button.disabled{background:inherit;border-color:#737373;color:#737373;cursor:default;pointer-events:none}:host .wm-button:disabled.dark,wm-uploader .wm-button:disabled.dark,:host .wm-button.disabled.dark,wm-uploader .wm-button.disabled.dark{color:#a6a6a6;border-color:#a6a6a6}:host .wm-button:disabled.-primary,wm-uploader .wm-button:disabled.-primary,:host .wm-button:disabled.-permanentlydelete,wm-uploader .wm-button:disabled.-permanentlydelete,:host .wm-button.disabled.-primary,wm-uploader .wm-button.disabled.-primary,:host .wm-button.disabled.-permanentlydelete,wm-uploader .wm-button.disabled.-permanentlydelete{background:#737373;color:#fff;border-color:#737373}:host .wm-button:disabled.-primary.dark,wm-uploader .wm-button:disabled.-primary.dark,:host .wm-button.disabled.-primary.dark,wm-uploader .wm-button.disabled.-primary.dark{background:#a6a6a6;border-color:#a6a6a6;color:#353b48}:host .wm-button:disabled.-secondary,wm-uploader .wm-button:disabled.-secondary,:host .wm-button.disabled.-secondary,wm-uploader .wm-button.disabled.-secondary{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}:host .wm-button:disabled.-selectoronly,wm-uploader .wm-button:disabled.-selectoronly,:host .wm-button.disabled.-selectoronly,wm-uploader .wm-button.disabled.-selectoronly{color:#737373}:host .wm-button:disabled.-textonly,wm-uploader .wm-button:disabled.-textonly,:host .wm-button.disabled.-textonly,wm-uploader .wm-button.disabled.-textonly{color:#6b6b6b;background:transparent}:host a.wm-button,wm-uploader a.wm-button,:host label.wm-button,wm-uploader label.wm-button{height:auto;padding-top:0.75rem;padding-bottom:0.75rem}:host,wm-uploader{width:100%;height:100%;display:block;position:relative}:host[dir=RTL] .mdi,wm-uploader[dir=RTL] .mdi{margin-left:0.3125rem;margin-right:0}:host input:focus+.wm-button.user-is-tabbing,wm-uploader input:focus+.wm-button.user-is-tabbing{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e !important;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e !important;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e !important}:host *,wm-uploader *{box-sizing:border-box}.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.header{margin-bottom:1rem}.header .slot-wrapper{display:flex;justify-content:flex-start;align-items:flex-start}.header .info-wrapper{align-items:center}.header .info-wrapper .info{font-size:0.875rem;margin-left:1rem}.footer{display:flex;flex-direction:column;align-items:flex-end;padding:0.9375rem 1.875rem}.footer .notif-wrapper{align-items:flex-end}.footer .filecount-wrapper{display:flex;align-items:center}.footer .filecount-wrapper .filecount{font-size:0.875rem;margin-right:1rem}.notif-wrapper{position:relative;display:flex;flex-direction:column;margin-bottom:1rem}.notif{padding-top:0.25rem;font-size:0.875rem;font-style:italic;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.info-wrapper{position:relative;display:flex}.file-info{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.file-info+.file-controls{flex:none;margin-left:1rem}.empty-block{margin:5rem auto;display:flex;flex-direction:column;align-items:center}.empty-block .upload-file{margin-bottom:1.875rem}.empty-block .empty-message{font-size:0.875rem;margin-bottom:0.4375rem}.empty-block .empty-message.large{font-size:1.5rem}.empty-block .info-wrapper{justify-content:center;width:100%}.empty-block .info-wrapper .wm-button{width:auto}.list-container{overflow-y:auto}.list-container.type1{padding:0 1.875rem;height:16.25rem}ul{list-style:none;padding:0;width:100%}ul li{font-size:0.875rem}ul li .file{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:relative;height:3.75rem;padding:0.5rem 1.25rem;background:#f4f4f4;border:1px solid #6b6b6b;display:flex;justify-content:space-between;align-items:center}ul li .file+.file{margin-top:1.25rem}ul li .file .filename{font-weight:500}ul li .file wm-button+wm-button{margin-left:1rem}ul.file-list .file.--saved,ul.inprogress-list .file{margin-bottom:1.625rem}ul .progress{position:absolute;left:0;top:0;right:0;height:8px}ul.error-list li{margin-bottom:1.25rem;color:#c0392b}ul.error-list li .file{border:1px solid #c0392b;background-color:#f5ebea;height:3.75rem}ul.error-list li .error-message{padding-top:0.25rem;font-style:italic}";
9
+
10
+ const Uploader = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.wmFilesSelected = index.createEvent(this, "wmFilesSelected", 7);
14
+ this.wmDeleteFile = index.createEvent(this, "wmDeleteFile", 7);
15
+ this.wmDownloadFile = index.createEvent(this, "wmDownloadFile", 7);
16
+ this.type = "1";
17
+ this.fileTypes = "pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv";
18
+ this.maxSize = 100; // in Mb
19
+ this.sortBy = "date"; // name is descending (a -> z), date is ascending (earlier -> later)
20
+ this.fileList = []; // the string above transformed into the actual array
21
+ this.filesToUpload = []; // input.files that passed validation
22
+ this.isTabbing = false;
23
+ this.errorList = []; // for errors on a particular file
24
+ this.inputId = functions.generateId();
25
+ }
26
+ toggleTabbingOn() {
27
+ this.isTabbing = true;
28
+ }
29
+ toggleTabbingOff() {
30
+ this.isTabbing = false;
31
+ }
32
+ handleUploadProgress(ev) {
33
+ this.fileList.map((i) => {
34
+ if (i.id === ev.detail.id) {
35
+ i.progress = ev.detail.progress;
36
+ index.forceUpdate(this.el);
37
+ }
38
+ });
39
+ if (ev.detail.progress === 100) {
40
+ // inProgressList is not a perfect reflection of how many files are uploading
41
+ // because even after progress reached 100% the item should remain in the array
42
+ // (should only be removed once it appears in fileList)
43
+ this.numFilesInProgress -= 1;
44
+ }
45
+ // aggregate the percentages for SR to announce progress
46
+ if (!this.srProgress && this.numFilesInProgress) {
47
+ const total = this.numFilesInProgress; // if we don't reassign this number changes when a file is done and the percentage becomes wrong
48
+ this.srProgress = setInterval(() => {
49
+ const aggregate = this.fileList.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);
50
+ if (this.liveRegion) {
51
+ this.liveRegion.innerHTML = functions.intl.formatMessage({
52
+ id: "uploader.uploadProgress",
53
+ defaultMessage: "Upload progress: {percentage}%",
54
+ }, { percentage: Math.floor(aggregate / total) });
55
+ }
56
+ }, 5000);
57
+ }
58
+ }
59
+ parseFiles() {
60
+ if (!!this.files) {
61
+ if (typeof this.files === "string") {
62
+ const list = JSON.parse(this.files);
63
+ if (typeof list === "object") {
64
+ this.fileList = list;
65
+ }
66
+ else {
67
+ throw new Error("could not parse string passed to files attribute");
68
+ }
69
+ }
70
+ else {
71
+ throw new Error("Attribute 'files' should be a string");
72
+ }
73
+ }
74
+ }
75
+ parseRejectedFiles() {
76
+ if (!!this.rejectedFiles) {
77
+ if (typeof this.files === "string") {
78
+ const list = JSON.parse(this.rejectedFiles);
79
+ if (typeof list === "object") {
80
+ this.errorList = list;
81
+ }
82
+ else {
83
+ throw new Error("could not parse string passed to errors attribute");
84
+ }
85
+ }
86
+ else {
87
+ throw new Error("Attribute 'rejected-files' should be a string");
88
+ }
89
+ }
90
+ }
91
+ setMaxSize() {
92
+ // Max size can't be set above 100Mb
93
+ this.maxSize = this.maxSize > 100 ? 100 : this.maxSize;
94
+ }
95
+ uploadNotifications(newNum, oldNum) {
96
+ if (oldNum > 0 && newNum === 0) {
97
+ setTimeout(() => {
98
+ this.notif = null;
99
+ }, 20 * 1000);
100
+ const message = functions.intl.formatMessage({
101
+ id: "uploader.finishedUploading",
102
+ defaultMessage: "Finished uploading",
103
+ });
104
+ this.notif = { id: 5, message };
105
+ if (this.liveRegion) {
106
+ this.liveRegion.innerHTML = message;
107
+ }
108
+ this.numFilesInProgress = null;
109
+ clearInterval(this.srProgress);
110
+ index.forceUpdate(this.el);
111
+ }
112
+ else if (newNum > 0 && newNum != oldNum) {
113
+ const message = functions.intl.formatMessage({
114
+ id: "uploader.filesUploading",
115
+ defaultMessage: "{num, plural, one {1 file uploading} other {# files uploading}}",
116
+ }, { num: newNum });
117
+ this.notif = { id: 6, message };
118
+ if (this.liveRegion) {
119
+ this.liveRegion.innerHTML = message;
120
+ }
121
+ index.forceUpdate(this.el);
122
+ }
123
+ }
124
+ isValidSize(size) {
125
+ // https://stackoverflow.com/questions/2365100/converting-bytes-to-megabytes
126
+ return size / 1024 / 1024 <= this.maxSize;
127
+ }
128
+ isDuplicate(name) {
129
+ return this.fileList.find((f) => {
130
+ const filename = f.type ? f.name + "." + f.type : f.name;
131
+ return filename === name;
132
+ });
133
+ }
134
+ isEmpty() {
135
+ return !this.fileList.length && !this.errorList.length;
136
+ }
137
+ isDisabled() {
138
+ const isMax = !!this.maxFiles && this.fileList.length >= this.maxFiles;
139
+ if (!this.notif) {
140
+ if (isMax) {
141
+ const errMessage = functions.intl.formatMessage({
142
+ id: "uploader.fileUploadLimit",
143
+ defaultMessage: "You have reached the file upload limit.",
144
+ });
145
+ this.notif = { id: 1, message: errMessage };
146
+ if (this.liveRegion) {
147
+ this.liveRegion.innerHTML = errMessage;
148
+ }
149
+ }
150
+ else {
151
+ this.notif = null;
152
+ }
153
+ }
154
+ else if (this.notif.id === 1) {
155
+ // to make sure SR don't repeat the error, don't reset it if it already is showing
156
+ // just dismiss it if isMax is not true anymore
157
+ if (!isMax) {
158
+ this.notif = null;
159
+ }
160
+ // finally do nothing if error 2 is showing (special case when user selects too many files)
161
+ }
162
+ // disable if is the uploader is maxed out or if something is uploading
163
+ return isMax || this.numFilesInProgress > 0;
164
+ }
165
+ isItemUploading(item) {
166
+ return item.hasOwnProperty("progress") && item.progress < 100;
167
+ }
168
+ clearErrors() {
169
+ this.errorList = [];
170
+ this.notif = null;
171
+ }
172
+ handleFiles(ev) {
173
+ this.filesToUpload = [];
174
+ const validTypes = this.fileTypes.split(" ").join(", ");
175
+ const files = Array.from(ev.target.files);
176
+ if (!!this.maxFiles && this.fileList.length + files.length > this.maxFiles) {
177
+ const errMessage = functions.intl.formatMessage({
178
+ id: "uploader.fileUploadExceeded",
179
+ defaultMessage: "The number of selected files exceeds the limit.",
180
+ });
181
+ this.notif = { id: 2, message: errMessage };
182
+ if (this.liveRegion) {
183
+ this.liveRegion.innerHTML = errMessage;
184
+ }
185
+ }
186
+ else {
187
+ files &&
188
+ files.map((file) => {
189
+ if (!functions.hasValidType(file, this.fileTypes)) {
190
+ const error = {
191
+ name: file.name,
192
+ message: functions.intl.formatMessage({
193
+ id: "uploader.invalidFileType",
194
+ defaultMessage: "The file type is invalid. Accepted types: {validTypes}",
195
+ }, { validTypes }),
196
+ };
197
+ this.errorList.push(error);
198
+ }
199
+ else if (!this.isValidSize(file.size)) {
200
+ const error = {
201
+ name: file.name,
202
+ message: functions.intl.formatMessage({
203
+ id: "uploader.fileTooLarge",
204
+ defaultMessage: "The selected file is too large. Maximum file size is {size}Mb",
205
+ }, { size: this.maxSize }),
206
+ };
207
+ this.errorList.push(error);
208
+ }
209
+ else if (this.isDuplicate(file.name)) {
210
+ const error = {
211
+ name: file.name,
212
+ message: functions.intl.formatMessage({
213
+ id: "uploader.duplicateName",
214
+ defaultMessage: "A file with this name already exists.",
215
+ }),
216
+ };
217
+ this.errorList.push(error);
218
+ }
219
+ else {
220
+ this.filesToUpload.push(file);
221
+ }
222
+ });
223
+ if (this.filesToUpload.length > 0) {
224
+ this.numFilesInProgress = this.filesToUpload.length;
225
+ this.wmFilesSelected.emit(this.filesToUpload);
226
+ }
227
+ }
228
+ ev.target.value = ""; // reset to ensure that onChange is triggered when the same file is selected a second time
229
+ }
230
+ downloadFile(file) {
231
+ this.clearErrors();
232
+ this.wmDownloadFile.emit(file.id);
233
+ }
234
+ deleteFile(file) {
235
+ this.clearErrors();
236
+ index.forceUpdate(this.el); // for the button to stop being disabled if num files become < max-files
237
+ this.wmDeleteFile.emit(file.id);
238
+ }
239
+ componentWillLoad() {
240
+ if (!this.buttonText) {
241
+ throw new Error("wm-uploader: button-text is a required prop");
242
+ }
243
+ if (this.type === "1" && !this.emptyStateText) {
244
+ throw new Error("wm-uploader: empty-state-text is a required prop");
245
+ }
246
+ this.setMaxSize();
247
+ this.parseFiles();
248
+ this.clearErrors();
249
+ this.parseRejectedFiles();
250
+ }
251
+ componentDidLoad() {
252
+ // awkward way to handle Edge bug where file input dialog doesn't open on Enter key
253
+ // first, detect polyfill by checking the class name that it adds to the component
254
+ // (it's important NOT to execute the code below in normal browsers as it would open the dialog twice)
255
+ this.el.classList.contains("sc-wm-uploader-h") &&
256
+ // then add an even listener to force a click event when Enter key is pressed
257
+ this.inputEl &&
258
+ this.inputEl.addEventListener("keydown", (ev) => {
259
+ if (this.inputEl && ev.keyCode === 13) {
260
+ this.inputEl.click();
261
+ }
262
+ });
263
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
264
+ this.toggleTabbingOn();
265
+ }
266
+ }
267
+ renderUploadSvg() {
268
+ return (index.h("svg", { class: "upload-file", width: "91", height: "84", viewBox: "0 0 91 84" }, index.h("path", { transform: "rotate(-180.000000) translate(-452, -255.5)", fill: "#eae8ec", d: "M361,249.681818 L361,197.318182 C361,194.118182 365.555061,191.5 371.122358,191.5 L391.316463,191.5 L391.286495,200.562515 L369.871211,200.600292 L369.885404,200.622146 L369.886423,246.655947 L443.657038,246.840767 L443.657038,200.622146 L421.683537,200.622146 L421.683537,191.5 L441.978865,191.5 C447.546162,191.5 452,194.118182 452,197.318182 L452,249.681818 C452,252.881818 447.546162,255.5 441.978865,255.5 L371.122358,255.5 C365.504449,255.5 361,252.881818 361,249.681818 Z M391.5,207 L406,221 L420.5,207 L409.625,207 L409.625,172 L402.375,172 L402.375,207 L391.5,207 Z" })));
269
+ }
270
+ renderIcon() {
271
+ // mdi attachment icon (paper clip) is horizontal but we want it vertical
272
+ const rotate = this.icon && this.icon === "f066";
273
+ return (this.icon && (index.h("span", { class: `mdi ${rotate ? "rotate" : ""}` }, String.fromCodePoint(parseInt(`0x${this.icon}`)))));
274
+ }
275
+ renderInfo() {
276
+ return this.info && this.type === "2" ? index.h("span", { class: "info" }, this.info) : "";
277
+ }
278
+ renderNotif() {
279
+ return this.notif ? index.h("div", { class: "notif" }, this.notif.message) : "";
280
+ }
281
+ renderUploadButton(classes) {
282
+ return (index.h("div", { class: "info-wrapper" }, index.h("input", { ref: (el) => (this.inputEl = el), name: this.inputId, id: this.inputId, class: "sr-only", type: "file", multiple: true, onClick: () => this.clearErrors(), onChange: (e) => this.handleFiles(e), disabled: this.isDisabled() }), index.h("label", { htmlFor: this.inputId, class: `wm-button ${classes}${this.isTabbing ? " user-is-tabbing" : ""}` }, this.renderIcon(), this.buttonText), this.renderInfo()));
283
+ }
284
+ renderEmptyState() {
285
+ return (index.h("div", { class: "empty-block" }, this.renderUploadSvg(), index.h("div", { class: `empty-message` }, this.emptyStateText), this.renderUploadButton("-primary empty-button"), this.renderNotif()));
286
+ }
287
+ renderErrorList() {
288
+ if (!!this.errorList.length) {
289
+ if (this.liveRegion) {
290
+ let srMessage = this.errorList.reduce(function (acc, err) {
291
+ return acc + `${err.name}: ${err.message} `;
292
+ }, "");
293
+ this.liveRegion.innerHTML = srMessage;
294
+ }
295
+ return (index.h("ul", { class: "error-list" }, this.errorList.map((err) => (index.h("li", null, index.h("div", { class: "file --error" }, index.h("div", { class: "file-info" }, index.h("span", { class: "filename" }, err.name))), index.h("div", { class: "error-message" }, err.message))))));
296
+ }
297
+ }
298
+ renderFileInProgress(item) {
299
+ const filename = item.type ? item.name + "." + item.type : item.name;
300
+ return (index.h("li", null, index.h("div", { class: "file --progress" }, index.h("div", { class: "progress", style: {
301
+ background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,
302
+ } }), index.h("div", { class: "file-info" }, index.h("span", { class: "filename" }, filename, " ", index.h("span", { class: "sr-only" }, "uploading"))))));
303
+ }
304
+ renderFile(item) {
305
+ return (index.h("li", null, index.h("div", { class: "file --saved" }, index.h("div", { class: "file-info" }, index.h("span", { class: "filename" }, item.name + "." + item.type)), index.h("div", { class: "file-controls" }, index.h("wm-button", { class: "download-button", "button-style": "icononly", tooltip: "download", "tooltip-position": "bottom", "label-for-identical-buttons": `download ${item.name}`, icon: "f1da", onClick: () => this.downloadFile(item) }), index.h("wm-button", { class: "delete-button", "button-style": "icononly", tooltip: "remove", "tooltip-position": "bottom", "label-for-identical-buttons": `remove ${item.name}`, icon: "f1c0", onClick: () => this.deleteFile(item) })))));
306
+ }
307
+ renderFileList() {
308
+ if (this.fileList) {
309
+ this.sortBy === "name"
310
+ ? this.fileList.sort((a, b) => a.name.localeCompare(b.name))
311
+ : this.fileList.sort((a, b) => Date.parse(a.lastUpdated) - Date.parse(b.lastUpdated));
312
+ return (index.h("div", null, index.h("ul", { class: "inprogress-list" }, this.fileList.filter((item) => this.isItemUploading(item)).map((item) => this.renderFileInProgress(item))), index.h("ul", { class: "file-list" }, this.fileList.filter((item) => !this.isItemUploading(item)).map((item) => this.renderFile(item)))));
313
+ }
314
+ }
315
+ renderHeader() {
316
+ return (this.type === "2" && (index.h("div", { class: "header" }, index.h("div", { class: "slot-wrapper" }, index.h("slot", null), index.h("div", { class: "notif-wrapper" }, this.renderUploadButton(`-secondary ${this.isDisabled() ? "disabled" : ""}`), this.renderNotif())))));
317
+ }
318
+ renderFooter() {
319
+ return (this.type === "1" && (index.h("div", { class: "footer" }, index.h("div", { class: "notif-wrapper" }, index.h("div", { class: "filecount-wrapper" }, index.h("div", { class: "filecount" }, functions.intl.formatMessage({
320
+ id: "uploader.filesAdded",
321
+ defaultMessage: "{numFiles, plural, one {1 file added} other {# files added}}",
322
+ }, { numFiles: this.fileList.length })), this.renderUploadButton(`-primary ${this.isDisabled() ? "disabled" : ""}`)), this.renderNotif()))));
323
+ }
324
+ renderWithItems() {
325
+ return (index.h("div", null, this.renderHeader(), index.h("div", { class: `list-container type${this.type}` }, this.renderErrorList(), this.renderFileList()), this.renderFooter()));
326
+ }
327
+ render() {
328
+ return (index.h(index.Host, null, this.isEmpty() && this.type === "1" ? this.renderEmptyState() : this.renderWithItems(), index.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
329
+ ,
330
+ "aria-atomic": "true" })));
331
+ }
332
+ get el() { return index.getElement(this); }
333
+ static get watchers() { return {
334
+ "files": ["parseFiles"],
335
+ "rejectedFiles": ["parseRejectedFiles"],
336
+ "maxSize": ["setMaxSize"],
337
+ "numFilesInProgress": ["uploadNotifications"]
338
+ }; }
339
+ };
340
+ Uploader.style = wmUploaderCss;
341
+
342
+ exports.wm_uploader = Uploader;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-d930307d.js');
6
+
7
+ const Wrapper = class {
8
+ constructor(hostRef) {
9
+ index.registerInstance(this, hostRef);
10
+ this.wmWrapperLoaded = index.createEvent(this, "wmWrapperLoaded", 7);
11
+ }
12
+ componentDidLoad() {
13
+ this.wmWrapperLoaded.emit();
14
+ }
15
+ render() {
16
+ return;
17
+ }
18
+ get el() { return index.getElement(this); }
19
+ };
20
+
21
+ exports.wm_wrapper = Wrapper;
@@ -0,0 +1,131 @@
1
+ {
2
+ "entries": [
3
+ "./components/wm-action-menu/wm-action-menu.js",
4
+ "./components/wm-button/wm-button.js",
5
+ "./components/wm-chart/wm-chart-slice.js",
6
+ "./components/wm-chart/wm-chart.js",
7
+ "./components/wm-chart/priv-chart-popover/priv-chart-popover.js",
8
+ "./components/wm-datepicker/wm-datepicker.js",
9
+ "./components/wm-datepicker/priv-datepicker/priv-datepicker.js",
10
+ "./components/wm-input/wm-input.js",
11
+ "./components/wm-menuitem/wm-menuitem.js",
12
+ "./components/wm-modal/wm-modal-footer.js",
13
+ "./components/wm-modal/wm-modal-header.js",
14
+ "./components/wm-modal/wm-modal.js",
15
+ "./components/wm-navigator/wm-navigator.js",
16
+ "./components/wm-navigator/priv-navigator-button/priv-navigator-button.js",
17
+ "./components/wm-navigator/priv-navigator-item/priv-navigator-item.js",
18
+ "./components/wm-option/wm-option.js",
19
+ "./components/wm-pagination/wm-pagination.js",
20
+ "./components/wm-search/wm-search.js",
21
+ "./components/wm-select/wm-select.js",
22
+ "./components/wm-snackbar/wm-snackbar.js",
23
+ "./components/wm-tabs/wm-tab-item/wm-tab-item.js",
24
+ "./components/wm-tabs/wm-tab-list/wm-tab-list.js",
25
+ "./components/wm-tabs/wm-tab-panel/wm-tab-panel.js",
26
+ "./components/wm-tag-input/wm-tag-input.js",
27
+ "./components/wm-timepicker/wm-timepicker.js",
28
+ "./components/wm-toggletip/wm-toggletip.js",
29
+ "./components/wm-uploader/wm-uploader.js",
30
+ "./components/wm-uploader/wm-network-uploader/wm-network-uploader.js",
31
+ "./components/wm-wrapper/wm-wrapper.js"
32
+ ],
33
+ "compiler": {
34
+ "name": "@stencil/core",
35
+ "version": "2.8.0",
36
+ "typescriptVersion": "4.2.3"
37
+ },
38
+ "collections": [],
39
+ "bundles": [
40
+ {
41
+ "components": [
42
+ "wm-button"
43
+ ]
44
+ },
45
+ {
46
+ "components": [
47
+ "wm-chart"
48
+ ]
49
+ },
50
+ {
51
+ "components": [
52
+ "wm-datepicker"
53
+ ]
54
+ },
55
+ {
56
+ "components": [
57
+ "wm-input"
58
+ ]
59
+ },
60
+ {
61
+ "components": [
62
+ "wm-modal"
63
+ ]
64
+ },
65
+ {
66
+ "components": [
67
+ "wm-navigator"
68
+ ]
69
+ },
70
+ {
71
+ "components": [
72
+ "wm-pagination"
73
+ ]
74
+ },
75
+ {
76
+ "components": [
77
+ "wm-search"
78
+ ]
79
+ },
80
+ {
81
+ "components": [
82
+ "wm-snackbar"
83
+ ]
84
+ },
85
+ {
86
+ "components": [
87
+ "wm-timepicker"
88
+ ]
89
+ },
90
+ {
91
+ "components": [
92
+ "wm-toggletip"
93
+ ]
94
+ },
95
+ {
96
+ "components": [
97
+ "wm-tag-input"
98
+ ]
99
+ },
100
+ {
101
+ "components": [
102
+ "wm-uploader"
103
+ ]
104
+ },
105
+ {
106
+ "components": [
107
+ "wm-wrapper"
108
+ ]
109
+ },
110
+ {
111
+ "components": [
112
+ "wm-action-menu",
113
+ "wm-menuitem"
114
+ ]
115
+ },
116
+ {
117
+ "components": [
118
+ "wm-option",
119
+ "wm-select"
120
+ ]
121
+ },
122
+ {
123
+ "components": [
124
+ "wm-tab-item",
125
+ "wm-tab-list",
126
+ "wm-tab-panel"
127
+ ]
128
+ }
129
+ ],
130
+ "global": "./global/global.js"
131
+ }
@@ -40,45 +40,83 @@
40
40
  /* TODO: replace with vars above whenever possible */
41
41
  /* Buttons */
42
42
  /* VIA */
43
- /* --------------------------------------
44
- 1. Box-shadow
45
- -------------------------------------- */
46
- /* --------------------------------------
47
- 2. Border-radius
48
- -------------------------------------- */
49
- /* --------------------------------------
50
- 3. Transforms
51
- -------------------------------------- */
52
- /* --------------------------------------
53
- 4. Button Focus
54
- -------------------------------------- */
55
- /* --------------------------------------
56
- 5. Flex
57
- -------------------------------------- */
58
- /* --------------------------------------
59
- 6. Button Hover
60
- -------------------------------------- */
61
- /* --------------------------------------
62
- 7. Screen Reader Only
63
- -------------------------------------- */
64
- /* --------------------------------------
65
- 8. Label styles
66
- this mixin includes all the styles for the label
67
- + flex rules on the parent container to switch between top and left position
68
- + srOnly when label is hidden
69
- Assumes the following markup:
70
- div.wrapper[.label-left.invalid] > div.label-wrapper > label.label > span.required
71
- .wrapper is for the flex rules
72
- .label-wrapper is to set the height of the label when positioned left so it's the same height as
73
- the input. It can't be done directly on .label because of possible line wrapping.
74
- When the label is on top there's no line wrapping at all to ensure proper alignment of inlined elements
75
- (they can't be aligned on the baseline because of possible description text and error message)
76
- -------------------------------------- */
77
- /********************************************************************************************/
78
- /* DO NOT USE THESE DIRECTLY, ASSIGN THEM TO VARIABLES NAMED AFTER FUNCTIONALITY, SEE BELOW */
79
- /********************************************************************************************/
80
- /* USAGE */
81
- /* BELOW IS BEFORE WE HAD THE COLOR PALETTE FROM UI */
82
- /* TODO: replace with vars above whenever possible */
83
- /* Buttons */
84
- /* VIA */
43
+ :host {
44
+ position: relative;
45
+ display: inline-block;
46
+ width: -moz-fit-content;
47
+ width: fit-content;
48
+ color: #575195;
49
+ font-family: inherit;
50
+ }
51
+ :host .sr-only {
52
+ position: absolute !important;
53
+ width: 1px !important;
54
+ height: 1px !important;
55
+ padding: 0 !important;
56
+ border: 0 !important;
57
+ overflow: hidden !important;
58
+ clip: rect(0, 0, 0, 0) !important;
59
+ clip-path: inset(50%) !important;
60
+ white-space: nowrap !important;
61
+ margin: -1px !important;
62
+ }
63
+
64
+ :host(:focus) {
65
+ outline: none;
66
+ }
67
+
68
+ wm-action-menu:focus {
69
+ outline: none;
70
+ }
71
+
72
+ .dropdown {
73
+ position: absolute;
74
+ padding: 0;
75
+ margin: 0.25rem 0;
76
+ border-radius: 3px 3px 3px 3px;
77
+ min-width: 11.4375rem;
78
+ -ms-transform: scale(1, 0);
79
+ -webkit-transform: scale(1, 0);
80
+ -moz-transform: scale(1, 0);
81
+ transform: scale(1, 0);
82
+ -ms-transition: transform 0.25s ease;
83
+ -webkit-transition: transform 0.25s ease;
84
+ -moz-transition: transform 0.25s ease;
85
+ transition: transform 0.25s ease;
86
+ -ms-transform-origin: center top;
87
+ -webkit-transform-origin: center top;
88
+ -moz-transform-origin: center top;
89
+ transform-origin: center top;
90
+ visibility: hidden;
91
+ -webkit-box-shadow: 0 3px 14px 3px rgba(5, 3, 3, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);
92
+ -moz-box-shadow: 0 3px 14px 3px rgba(5, 3, 3, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);
93
+ box-shadow: 0 3px 14px 3px rgba(5, 3, 3, 0.12), 0 4px 15px 0 rgba(0, 0, 0, 0.2);
94
+ background: #fff;
95
+ z-index: 10;
96
+ text-align: left;
97
+ white-space: nowrap;
98
+ }
99
+ .dropdown:focus {
100
+ outline: none;
101
+ }
102
+ .dropdown.open {
103
+ -ms-transform: scale(1, 1);
104
+ -webkit-transform: scale(1, 1);
105
+ -moz-transform: scale(1, 1);
106
+ transform: scale(1, 1);
107
+ visibility: visible;
108
+ }
109
+ .dropdown.open-up {
110
+ bottom: 2.5rem;
111
+ top: auto;
112
+ -ms-transform-origin: center bottom;
113
+ -webkit-transform-origin: center bottom;
114
+ -moz-transform-origin: center bottom;
115
+ transform-origin: center bottom;
116
+ }
117
+ .dropdown.right {
118
+ left: 0;
119
+ }
120
+ .dropdown.left {
121
+ right: 0;
122
+ }