@watermarkinsights/ripple 3.25.0 → 3.25.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 (522) hide show
  1. package/dist/cjs/chartFunctions-2f04ab6a.js +0 -2
  2. package/dist/cjs/functions-d2d99997.js +0 -2
  3. package/dist/{esm/global-3d0ef32b.js → cjs/global-6acc957f.js} +3 -3
  4. package/dist/cjs/http-service-9e8c4dd5.js +0 -2
  5. package/dist/cjs/index-1f84c034.js +0 -2
  6. package/dist/cjs/index.cjs.js +0 -2
  7. package/dist/cjs/interfaces-30a74c1f.js +0 -2
  8. package/dist/cjs/intl-a1ccf587.js +0 -2
  9. package/dist/cjs/loader.cjs.js +1 -3
  10. package/dist/cjs/priv-chart-popover.cjs.entry.js +0 -2
  11. package/dist/cjs/priv-datepicker.cjs.entry.js +0 -2
  12. package/dist/cjs/priv-navigator-button.cjs.entry.js +0 -2
  13. package/dist/cjs/priv-navigator-item.cjs.entry.js +0 -2
  14. package/dist/cjs/ripple.cjs.js +1 -3
  15. package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -2
  16. package/dist/cjs/wm-button.cjs.entry.js +0 -2
  17. package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -2
  18. package/dist/cjs/wm-chart.cjs.entry.js +0 -2
  19. package/dist/cjs/wm-datepicker.cjs.entry.js +0 -2
  20. package/dist/cjs/wm-file-list.cjs.entry.js +0 -2
  21. package/dist/cjs/wm-file.cjs.entry.js +0 -2
  22. package/dist/cjs/wm-input.cjs.entry.js +0 -2
  23. package/dist/cjs/wm-modal-footer.cjs.entry.js +0 -2
  24. package/dist/cjs/wm-modal-header.cjs.entry.js +0 -2
  25. package/dist/cjs/wm-modal.cjs.entry.js +0 -2
  26. package/dist/cjs/wm-navigation_3.cjs.entry.js +0 -2
  27. package/dist/cjs/wm-navigator.cjs.entry.js +0 -2
  28. package/dist/cjs/wm-network-uploader.cjs.entry.js +0 -2
  29. package/dist/cjs/wm-option_2.cjs.entry.js +0 -2
  30. package/dist/cjs/wm-pagination.cjs.entry.js +0 -2
  31. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +0 -2
  32. package/dist/cjs/wm-search.cjs.entry.js +0 -2
  33. package/dist/cjs/wm-snackbar.cjs.entry.js +0 -2
  34. package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -2
  35. package/dist/cjs/wm-tag-input-row.cjs.entry.js +0 -2
  36. package/dist/cjs/wm-tag-input.cjs.entry.js +0 -2
  37. package/dist/cjs/wm-timepicker.cjs.entry.js +0 -2
  38. package/dist/cjs/wm-toggletip.cjs.entry.js +0 -2
  39. package/dist/cjs/wm-uploader.cjs.entry.js +0 -2
  40. package/dist/cjs/wm-wrapper.cjs.entry.js +0 -2
  41. package/dist/collection/components/charts/chartFunctions.js +0 -1
  42. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +0 -1
  43. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +0 -1
  44. package/dist/collection/components/charts/wm-chart/wm-chart.js +0 -1
  45. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +0 -1
  46. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +0 -1
  47. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +0 -1
  48. package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -1
  49. package/dist/collection/components/wm-button/wm-button.js +0 -1
  50. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +0 -1
  51. package/dist/collection/components/wm-datepicker/wm-datepicker.js +0 -1
  52. package/dist/collection/components/wm-file/wm-file.js +0 -1
  53. package/dist/collection/components/wm-file-list/wm-file-list.js +0 -1
  54. package/dist/collection/components/wm-input/wm-input.js +0 -1
  55. package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -1
  56. package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -1
  57. package/dist/collection/components/wm-modal/wm-modal-header.js +0 -1
  58. package/dist/collection/components/wm-modal/wm-modal.js +0 -1
  59. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +0 -1
  60. package/dist/collection/components/wm-navigation/wm-navigation-item.js +0 -1
  61. package/dist/collection/components/wm-navigation/wm-navigation.js +0 -1
  62. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -1
  63. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -1
  64. package/dist/collection/components/wm-navigator/wm-navigator.js +0 -1
  65. package/dist/collection/components/wm-option/wm-option.js +0 -1
  66. package/dist/collection/components/wm-pagination/wm-pagination.js +0 -1
  67. package/dist/collection/components/wm-search/wm-search.js +0 -1
  68. package/dist/collection/components/wm-select/wm-select.js +0 -1
  69. package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -1
  70. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -1
  71. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -1
  72. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -1
  73. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +0 -1
  74. package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -1
  75. package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -1
  76. package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -1
  77. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +0 -1
  78. package/dist/collection/components/wm-uploader/wm-uploader.js +0 -1
  79. package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -1
  80. package/dist/collection/global/__mocks__/functions.js +0 -1
  81. package/dist/collection/global/functions.js +0 -1
  82. package/dist/collection/global/global.js +0 -1
  83. package/dist/collection/global/interfaces.js +0 -1
  84. package/dist/collection/global/intl.js +0 -1
  85. package/dist/collection/global/services/__mocks__/http-service.js +0 -1
  86. package/dist/collection/global/services/http-service.js +0 -1
  87. package/dist/collection/lang/lang.js +0 -1
  88. package/dist/esm/chartFunctions-a72f5835.js +0 -2
  89. package/dist/esm/functions-dc9964aa.js +0 -2
  90. package/dist/{cjs/global-d0584d18.js → esm/global-df3a199e.js} +1 -5
  91. package/dist/esm/http-service-5d037e16.js +0 -2
  92. package/dist/esm/index-84a6ae22.js +0 -2
  93. package/dist/esm/index.js +0 -2
  94. package/dist/esm/interfaces-61c6305b.js +0 -2
  95. package/dist/esm/intl-4d4826dd.js +0 -2
  96. package/dist/esm/loader.js +1 -3
  97. package/dist/esm/priv-chart-popover.entry.js +0 -2
  98. package/dist/esm/priv-datepicker.entry.js +0 -2
  99. package/dist/esm/priv-navigator-button.entry.js +0 -2
  100. package/dist/esm/priv-navigator-item.entry.js +0 -2
  101. package/dist/esm/ripple.js +1 -3
  102. package/dist/esm/wm-action-menu_2.entry.js +0 -2
  103. package/dist/esm/wm-button.entry.js +0 -2
  104. package/dist/esm/wm-chart-slice.entry.js +0 -2
  105. package/dist/esm/wm-chart.entry.js +0 -2
  106. package/dist/esm/wm-datepicker.entry.js +0 -2
  107. package/dist/esm/wm-file-list.entry.js +0 -2
  108. package/dist/esm/wm-file.entry.js +0 -2
  109. package/dist/esm/wm-input.entry.js +0 -2
  110. package/dist/esm/wm-modal-footer.entry.js +0 -2
  111. package/dist/esm/wm-modal-header.entry.js +0 -2
  112. package/dist/esm/wm-modal.entry.js +0 -2
  113. package/dist/esm/wm-navigation_3.entry.js +0 -2
  114. package/dist/esm/wm-navigator.entry.js +0 -2
  115. package/dist/esm/wm-network-uploader.entry.js +0 -2
  116. package/dist/esm/wm-option_2.entry.js +0 -2
  117. package/dist/esm/wm-pagination.entry.js +0 -2
  118. package/dist/esm/wm-progress-indicator_3.entry.js +0 -2
  119. package/dist/esm/wm-search.entry.js +0 -2
  120. package/dist/esm/wm-snackbar.entry.js +0 -2
  121. package/dist/esm/wm-tab-item_3.entry.js +0 -2
  122. package/dist/esm/wm-tag-input-row.entry.js +0 -2
  123. package/dist/esm/wm-tag-input.entry.js +0 -2
  124. package/dist/esm/wm-timepicker.entry.js +0 -2
  125. package/dist/esm/wm-toggletip.entry.js +0 -2
  126. package/dist/esm/wm-uploader.entry.js +0 -2
  127. package/dist/esm/wm-wrapper.entry.js +0 -2
  128. package/dist/esm-es5/chartFunctions-a72f5835.js +1 -2
  129. package/dist/esm-es5/functions-dc9964aa.js +1 -2
  130. package/dist/esm-es5/{global-3d0ef32b.js → global-df3a199e.js} +1 -2
  131. package/dist/esm-es5/http-service-5d037e16.js +1 -2
  132. package/dist/esm-es5/index-84a6ae22.js +1 -2
  133. package/dist/esm-es5/index.js +0 -2
  134. package/dist/esm-es5/interfaces-61c6305b.js +1 -2
  135. package/dist/esm-es5/intl-4d4826dd.js +1 -2
  136. package/dist/esm-es5/loader.js +1 -2
  137. package/dist/esm-es5/priv-chart-popover.entry.js +1 -2
  138. package/dist/esm-es5/priv-datepicker.entry.js +1 -2
  139. package/dist/esm-es5/priv-navigator-button.entry.js +1 -2
  140. package/dist/esm-es5/priv-navigator-item.entry.js +1 -2
  141. package/dist/esm-es5/ripple.js +1 -2
  142. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -2
  143. package/dist/esm-es5/wm-button.entry.js +1 -2
  144. package/dist/esm-es5/wm-chart-slice.entry.js +1 -2
  145. package/dist/esm-es5/wm-chart.entry.js +1 -2
  146. package/dist/esm-es5/wm-datepicker.entry.js +1 -2
  147. package/dist/esm-es5/wm-file-list.entry.js +1 -2
  148. package/dist/esm-es5/wm-file.entry.js +1 -2
  149. package/dist/esm-es5/wm-input.entry.js +1 -2
  150. package/dist/esm-es5/wm-modal-footer.entry.js +1 -2
  151. package/dist/esm-es5/wm-modal-header.entry.js +1 -2
  152. package/dist/esm-es5/wm-modal.entry.js +1 -2
  153. package/dist/esm-es5/wm-navigation_3.entry.js +1 -2
  154. package/dist/esm-es5/wm-navigator.entry.js +1 -2
  155. package/dist/esm-es5/wm-network-uploader.entry.js +1 -2
  156. package/dist/esm-es5/wm-option_2.entry.js +1 -2
  157. package/dist/esm-es5/wm-pagination.entry.js +1 -2
  158. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -2
  159. package/dist/esm-es5/wm-search.entry.js +1 -2
  160. package/dist/esm-es5/wm-snackbar.entry.js +1 -2
  161. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -2
  162. package/dist/esm-es5/wm-tag-input-row.entry.js +1 -2
  163. package/dist/esm-es5/wm-tag-input.entry.js +1 -2
  164. package/dist/esm-es5/wm-timepicker.entry.js +1 -2
  165. package/dist/esm-es5/wm-toggletip.entry.js +1 -2
  166. package/dist/esm-es5/wm-uploader.entry.js +1 -2
  167. package/dist/esm-es5/wm-wrapper.entry.js +1 -2
  168. package/dist/ripple/index.esm.js +0 -2
  169. package/dist/ripple/p-0088b69e.entry.js +1 -0
  170. package/dist/ripple/p-03dc49f5.entry.js +1 -0
  171. package/dist/ripple/p-04ae66fd.system.entry.js +1 -2
  172. package/dist/ripple/p-08b7ec08.system.js +1 -2
  173. package/dist/ripple/p-0cd13c7d.system.entry.js +1 -2
  174. package/dist/ripple/p-0eb7b1b7.system.entry.js +1 -2
  175. package/dist/ripple/p-1c23de4a.js +2 -3
  176. package/dist/ripple/p-1fd20e05.system.entry.js +1 -2
  177. package/dist/ripple/p-23fa1ff6.system.entry.js +1 -2
  178. package/dist/ripple/{p-c68b3798.system.js → p-2420f4a7.system.js} +1 -2
  179. package/dist/ripple/p-24a4cb11.system.entry.js +1 -2
  180. package/dist/ripple/p-2c2a7092.system.entry.js +1 -2
  181. package/dist/ripple/p-2e6cb291.entry.js +1 -0
  182. package/dist/ripple/p-313b6073.system.js +1 -2
  183. package/dist/ripple/p-32a0290e.entry.js +1 -0
  184. package/dist/ripple/p-33558ec4.system.entry.js +1 -2
  185. package/dist/ripple/p-33ec18d4.system.entry.js +1 -2
  186. package/dist/ripple/p-3759b7af.system.entry.js +1 -2
  187. package/dist/ripple/p-38449dff.system.entry.js +1 -2
  188. package/dist/ripple/p-3869a69e.system.entry.js +1 -2
  189. package/dist/ripple/p-41317448.entry.js +1 -0
  190. package/dist/ripple/p-42678edc.entry.js +1 -0
  191. package/dist/ripple/p-43087c29.entry.js +1 -0
  192. package/dist/ripple/p-4a06d0a9.system.entry.js +1 -2
  193. package/dist/ripple/p-4d95f00e.entry.js +1 -0
  194. package/dist/ripple/p-4da9a006.entry.js +1 -0
  195. package/dist/ripple/p-4fc5e960.entry.js +1 -0
  196. package/dist/ripple/p-50ea2036.system.js +1 -2
  197. package/dist/ripple/p-53dc8244.js +1 -0
  198. package/dist/ripple/p-54750f05.entry.js +1 -0
  199. package/dist/ripple/p-5f8ab2e0.entry.js +1 -0
  200. package/dist/ripple/p-62db31c4.entry.js +1 -0
  201. package/dist/ripple/p-6bb88663.entry.js +1 -0
  202. package/dist/ripple/p-6ff7d4ff.entry.js +1 -0
  203. package/dist/ripple/p-7b2fc615.system.js +1 -2
  204. package/dist/ripple/p-833c622f.system.entry.js +1 -2
  205. package/dist/ripple/p-8613600d.system.entry.js +1 -2
  206. package/dist/ripple/p-888bec42.js +1 -2
  207. package/dist/ripple/p-8909ff66.entry.js +1 -0
  208. package/dist/ripple/p-8c51e9f8.system.entry.js +1 -2
  209. package/dist/ripple/p-91deb45f.system.entry.js +1 -2
  210. package/dist/ripple/p-9338011f.system.entry.js +1 -2
  211. package/dist/ripple/p-976b2789.system.entry.js +1 -2
  212. package/dist/ripple/p-994303f2.js +1 -2
  213. package/dist/ripple/p-9ad1819e.entry.js +1 -0
  214. package/dist/ripple/p-9b2dfb54.js +1 -2
  215. package/dist/ripple/p-a6d64d8a.system.entry.js +1 -2
  216. package/dist/ripple/p-a6d6eae7.js +1 -2
  217. package/dist/ripple/p-a73cf968.system.entry.js +1 -2
  218. package/dist/ripple/p-abf0a64f.entry.js +1 -0
  219. package/dist/ripple/p-aed625c1.system.entry.js +1 -2
  220. package/dist/ripple/{p-4391166c.entry.js → p-b0bc9fd4.entry.js} +1 -2
  221. package/dist/ripple/p-b5b521e4.system.entry.js +1 -2
  222. package/dist/ripple/p-b5ffe399.entry.js +1 -0
  223. package/dist/ripple/p-b7451e73.system.entry.js +1 -2
  224. package/dist/ripple/p-bafdcb4e.system.entry.js +1 -2
  225. package/dist/ripple/p-bd84628c.system.entry.js +1 -2
  226. package/dist/ripple/p-beac2d5d.entry.js +1 -0
  227. package/dist/ripple/p-bfb35465.entry.js +1 -0
  228. package/dist/ripple/p-c36002b6.system.js +1 -2
  229. package/dist/ripple/p-c6a0f7e5.js +1 -2
  230. package/dist/ripple/p-c733a478.entry.js +1 -0
  231. package/dist/ripple/p-d2c26e15.entry.js +1 -0
  232. package/dist/ripple/p-d81bea1e.entry.js +1 -0
  233. package/dist/ripple/p-d8bae6cb.entry.js +1 -0
  234. package/dist/ripple/p-d9d21df5.entry.js +1 -0
  235. package/dist/ripple/p-dbfd1640.system.entry.js +1 -2
  236. package/dist/ripple/{p-0826dc64.system.js → p-dc80494f.system.js} +1 -2
  237. package/dist/ripple/p-e2d947db.entry.js +1 -0
  238. package/dist/ripple/p-e8b38f36.entry.js +1 -0
  239. package/dist/ripple/p-f0fd8695.system.js +1 -2
  240. package/dist/ripple/p-f312d59a.system.entry.js +1 -2
  241. package/dist/ripple/p-f59a495a.system.entry.js +1 -2
  242. package/dist/ripple/p-f80eb8a5.system.js +1 -2
  243. package/dist/ripple/p-fb5fe2bd.entry.js +1 -0
  244. package/dist/ripple/p-fb67c39e.system.entry.js +1 -2
  245. package/dist/ripple/ripple.esm.js +1 -2
  246. package/dist/ripple/ripple.js +1 -1
  247. package/package.json +1 -1
  248. package/dist/cjs/chartFunctions-2f04ab6a.js.map +0 -1
  249. package/dist/cjs/functions-d2d99997.js.map +0 -1
  250. package/dist/cjs/global-d0584d18.js.map +0 -1
  251. package/dist/cjs/http-service-9e8c4dd5.js.map +0 -1
  252. package/dist/cjs/index-1f84c034.js.map +0 -1
  253. package/dist/cjs/index.cjs.js.map +0 -1
  254. package/dist/cjs/interfaces-30a74c1f.js.map +0 -1
  255. package/dist/cjs/intl-a1ccf587.js.map +0 -1
  256. package/dist/cjs/loader.cjs.js.map +0 -1
  257. package/dist/cjs/priv-chart-popover.cjs.entry.js.map +0 -1
  258. package/dist/cjs/priv-datepicker.cjs.entry.js.map +0 -1
  259. package/dist/cjs/priv-navigator-button.cjs.entry.js.map +0 -1
  260. package/dist/cjs/priv-navigator-item.cjs.entry.js.map +0 -1
  261. package/dist/cjs/ripple.cjs.js.map +0 -1
  262. package/dist/cjs/wm-action-menu_2.cjs.entry.js.map +0 -1
  263. package/dist/cjs/wm-button.cjs.entry.js.map +0 -1
  264. package/dist/cjs/wm-chart-slice.cjs.entry.js.map +0 -1
  265. package/dist/cjs/wm-chart.cjs.entry.js.map +0 -1
  266. package/dist/cjs/wm-datepicker.cjs.entry.js.map +0 -1
  267. package/dist/cjs/wm-file-list.cjs.entry.js.map +0 -1
  268. package/dist/cjs/wm-file.cjs.entry.js.map +0 -1
  269. package/dist/cjs/wm-input.cjs.entry.js.map +0 -1
  270. package/dist/cjs/wm-modal-footer.cjs.entry.js.map +0 -1
  271. package/dist/cjs/wm-modal-header.cjs.entry.js.map +0 -1
  272. package/dist/cjs/wm-modal.cjs.entry.js.map +0 -1
  273. package/dist/cjs/wm-navigation_3.cjs.entry.js.map +0 -1
  274. package/dist/cjs/wm-navigator.cjs.entry.js.map +0 -1
  275. package/dist/cjs/wm-network-uploader.cjs.entry.js.map +0 -1
  276. package/dist/cjs/wm-option_2.cjs.entry.js.map +0 -1
  277. package/dist/cjs/wm-pagination.cjs.entry.js.map +0 -1
  278. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js.map +0 -1
  279. package/dist/cjs/wm-search.cjs.entry.js.map +0 -1
  280. package/dist/cjs/wm-snackbar.cjs.entry.js.map +0 -1
  281. package/dist/cjs/wm-tab-item_3.cjs.entry.js.map +0 -1
  282. package/dist/cjs/wm-tag-input-row.cjs.entry.js.map +0 -1
  283. package/dist/cjs/wm-tag-input.cjs.entry.js.map +0 -1
  284. package/dist/cjs/wm-timepicker.cjs.entry.js.map +0 -1
  285. package/dist/cjs/wm-toggletip.cjs.entry.js.map +0 -1
  286. package/dist/cjs/wm-uploader.cjs.entry.js.map +0 -1
  287. package/dist/cjs/wm-wrapper.cjs.entry.js.map +0 -1
  288. package/dist/collection/components/charts/chartFunctions.js.map +0 -1
  289. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js.map +0 -1
  290. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js.map +0 -1
  291. package/dist/collection/components/charts/wm-chart/wm-chart.js.map +0 -1
  292. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js.map +0 -1
  293. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js.map +0 -1
  294. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js.map +0 -1
  295. package/dist/collection/components/wm-action-menu/wm-action-menu.js.map +0 -1
  296. package/dist/collection/components/wm-button/wm-button.js.map +0 -1
  297. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js.map +0 -1
  298. package/dist/collection/components/wm-datepicker/wm-datepicker.js.map +0 -1
  299. package/dist/collection/components/wm-file/wm-file.js.map +0 -1
  300. package/dist/collection/components/wm-file-list/wm-file-list.js.map +0 -1
  301. package/dist/collection/components/wm-input/wm-input.js.map +0 -1
  302. package/dist/collection/components/wm-menuitem/wm-menuitem.js.map +0 -1
  303. package/dist/collection/components/wm-modal/wm-modal-footer.js.map +0 -1
  304. package/dist/collection/components/wm-modal/wm-modal-header.js.map +0 -1
  305. package/dist/collection/components/wm-modal/wm-modal.js.map +0 -1
  306. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js.map +0 -1
  307. package/dist/collection/components/wm-navigation/wm-navigation-item.js.map +0 -1
  308. package/dist/collection/components/wm-navigation/wm-navigation.js.map +0 -1
  309. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js.map +0 -1
  310. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js.map +0 -1
  311. package/dist/collection/components/wm-navigator/wm-navigator.js.map +0 -1
  312. package/dist/collection/components/wm-option/wm-option.js.map +0 -1
  313. package/dist/collection/components/wm-pagination/wm-pagination.js.map +0 -1
  314. package/dist/collection/components/wm-search/wm-search.js.map +0 -1
  315. package/dist/collection/components/wm-select/wm-select.js.map +0 -1
  316. package/dist/collection/components/wm-snackbar/wm-snackbar.js.map +0 -1
  317. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js.map +0 -1
  318. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js.map +0 -1
  319. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js.map +0 -1
  320. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js.map +0 -1
  321. package/dist/collection/components/wm-tag-input/wm-tag-input.js.map +0 -1
  322. package/dist/collection/components/wm-timepicker/wm-timepicker.js.map +0 -1
  323. package/dist/collection/components/wm-toggletip/wm-toggletip.js.map +0 -1
  324. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js.map +0 -1
  325. package/dist/collection/components/wm-uploader/wm-uploader.js.map +0 -1
  326. package/dist/collection/components/wm-wrapper/wm-wrapper.js.map +0 -1
  327. package/dist/collection/global/__mocks__/functions.js.map +0 -1
  328. package/dist/collection/global/functions.js.map +0 -1
  329. package/dist/collection/global/global.js.map +0 -1
  330. package/dist/collection/global/interfaces.js.map +0 -1
  331. package/dist/collection/global/intl.js.map +0 -1
  332. package/dist/collection/global/services/__mocks__/http-service.js.map +0 -1
  333. package/dist/collection/global/services/http-service.js.map +0 -1
  334. package/dist/collection/lang/lang.js.map +0 -1
  335. package/dist/esm/chartFunctions-a72f5835.js.map +0 -1
  336. package/dist/esm/functions-dc9964aa.js.map +0 -1
  337. package/dist/esm/global-3d0ef32b.js.map +0 -1
  338. package/dist/esm/http-service-5d037e16.js.map +0 -1
  339. package/dist/esm/index-84a6ae22.js.map +0 -1
  340. package/dist/esm/index.js.map +0 -1
  341. package/dist/esm/interfaces-61c6305b.js.map +0 -1
  342. package/dist/esm/intl-4d4826dd.js.map +0 -1
  343. package/dist/esm/loader.js.map +0 -1
  344. package/dist/esm/priv-chart-popover.entry.js.map +0 -1
  345. package/dist/esm/priv-datepicker.entry.js.map +0 -1
  346. package/dist/esm/priv-navigator-button.entry.js.map +0 -1
  347. package/dist/esm/priv-navigator-item.entry.js.map +0 -1
  348. package/dist/esm/ripple.js.map +0 -1
  349. package/dist/esm/wm-action-menu_2.entry.js.map +0 -1
  350. package/dist/esm/wm-button.entry.js.map +0 -1
  351. package/dist/esm/wm-chart-slice.entry.js.map +0 -1
  352. package/dist/esm/wm-chart.entry.js.map +0 -1
  353. package/dist/esm/wm-datepicker.entry.js.map +0 -1
  354. package/dist/esm/wm-file-list.entry.js.map +0 -1
  355. package/dist/esm/wm-file.entry.js.map +0 -1
  356. package/dist/esm/wm-input.entry.js.map +0 -1
  357. package/dist/esm/wm-modal-footer.entry.js.map +0 -1
  358. package/dist/esm/wm-modal-header.entry.js.map +0 -1
  359. package/dist/esm/wm-modal.entry.js.map +0 -1
  360. package/dist/esm/wm-navigation_3.entry.js.map +0 -1
  361. package/dist/esm/wm-navigator.entry.js.map +0 -1
  362. package/dist/esm/wm-network-uploader.entry.js.map +0 -1
  363. package/dist/esm/wm-option_2.entry.js.map +0 -1
  364. package/dist/esm/wm-pagination.entry.js.map +0 -1
  365. package/dist/esm/wm-progress-indicator_3.entry.js.map +0 -1
  366. package/dist/esm/wm-search.entry.js.map +0 -1
  367. package/dist/esm/wm-snackbar.entry.js.map +0 -1
  368. package/dist/esm/wm-tab-item_3.entry.js.map +0 -1
  369. package/dist/esm/wm-tag-input-row.entry.js.map +0 -1
  370. package/dist/esm/wm-tag-input.entry.js.map +0 -1
  371. package/dist/esm/wm-timepicker.entry.js.map +0 -1
  372. package/dist/esm/wm-toggletip.entry.js.map +0 -1
  373. package/dist/esm/wm-uploader.entry.js.map +0 -1
  374. package/dist/esm/wm-wrapper.entry.js.map +0 -1
  375. package/dist/esm-es5/chartFunctions-a72f5835.js.map +0 -1
  376. package/dist/esm-es5/functions-dc9964aa.js.map +0 -1
  377. package/dist/esm-es5/global-3d0ef32b.js.map +0 -1
  378. package/dist/esm-es5/http-service-5d037e16.js.map +0 -1
  379. package/dist/esm-es5/index-84a6ae22.js.map +0 -1
  380. package/dist/esm-es5/index.js.map +0 -1
  381. package/dist/esm-es5/interfaces-61c6305b.js.map +0 -1
  382. package/dist/esm-es5/intl-4d4826dd.js.map +0 -1
  383. package/dist/esm-es5/loader.js.map +0 -1
  384. package/dist/esm-es5/priv-chart-popover.entry.js.map +0 -1
  385. package/dist/esm-es5/priv-datepicker.entry.js.map +0 -1
  386. package/dist/esm-es5/priv-navigator-button.entry.js.map +0 -1
  387. package/dist/esm-es5/priv-navigator-item.entry.js.map +0 -1
  388. package/dist/esm-es5/ripple.js.map +0 -1
  389. package/dist/esm-es5/wm-action-menu_2.entry.js.map +0 -1
  390. package/dist/esm-es5/wm-button.entry.js.map +0 -1
  391. package/dist/esm-es5/wm-chart-slice.entry.js.map +0 -1
  392. package/dist/esm-es5/wm-chart.entry.js.map +0 -1
  393. package/dist/esm-es5/wm-datepicker.entry.js.map +0 -1
  394. package/dist/esm-es5/wm-file-list.entry.js.map +0 -1
  395. package/dist/esm-es5/wm-file.entry.js.map +0 -1
  396. package/dist/esm-es5/wm-input.entry.js.map +0 -1
  397. package/dist/esm-es5/wm-modal-footer.entry.js.map +0 -1
  398. package/dist/esm-es5/wm-modal-header.entry.js.map +0 -1
  399. package/dist/esm-es5/wm-modal.entry.js.map +0 -1
  400. package/dist/esm-es5/wm-navigation_3.entry.js.map +0 -1
  401. package/dist/esm-es5/wm-navigator.entry.js.map +0 -1
  402. package/dist/esm-es5/wm-network-uploader.entry.js.map +0 -1
  403. package/dist/esm-es5/wm-option_2.entry.js.map +0 -1
  404. package/dist/esm-es5/wm-pagination.entry.js.map +0 -1
  405. package/dist/esm-es5/wm-progress-indicator_3.entry.js.map +0 -1
  406. package/dist/esm-es5/wm-search.entry.js.map +0 -1
  407. package/dist/esm-es5/wm-snackbar.entry.js.map +0 -1
  408. package/dist/esm-es5/wm-tab-item_3.entry.js.map +0 -1
  409. package/dist/esm-es5/wm-tag-input-row.entry.js.map +0 -1
  410. package/dist/esm-es5/wm-tag-input.entry.js.map +0 -1
  411. package/dist/esm-es5/wm-timepicker.entry.js.map +0 -1
  412. package/dist/esm-es5/wm-toggletip.entry.js.map +0 -1
  413. package/dist/esm-es5/wm-uploader.entry.js.map +0 -1
  414. package/dist/esm-es5/wm-wrapper.entry.js.map +0 -1
  415. package/dist/ripple/index.esm.js.map +0 -1
  416. package/dist/ripple/p-002d067e.entry.js +0 -2
  417. package/dist/ripple/p-002d067e.entry.js.map +0 -1
  418. package/dist/ripple/p-02a1000a.entry.js +0 -2
  419. package/dist/ripple/p-02a1000a.entry.js.map +0 -1
  420. package/dist/ripple/p-04ae66fd.system.entry.js.map +0 -1
  421. package/dist/ripple/p-0826dc64.system.js.map +0 -1
  422. package/dist/ripple/p-08b7ec08.system.js.map +0 -1
  423. package/dist/ripple/p-0ad3a708.entry.js +0 -2
  424. package/dist/ripple/p-0ad3a708.entry.js.map +0 -1
  425. package/dist/ripple/p-0cd13c7d.system.entry.js.map +0 -1
  426. package/dist/ripple/p-0d7bccf7.entry.js +0 -2
  427. package/dist/ripple/p-0d7bccf7.entry.js.map +0 -1
  428. package/dist/ripple/p-0eb7b1b7.system.entry.js.map +0 -1
  429. package/dist/ripple/p-11124a23.entry.js +0 -2
  430. package/dist/ripple/p-11124a23.entry.js.map +0 -1
  431. package/dist/ripple/p-1808b90a.entry.js +0 -2
  432. package/dist/ripple/p-1808b90a.entry.js.map +0 -1
  433. package/dist/ripple/p-1c23de4a.js.map +0 -1
  434. package/dist/ripple/p-1fd20e05.system.entry.js.map +0 -1
  435. package/dist/ripple/p-23fa1ff6.system.entry.js.map +0 -1
  436. package/dist/ripple/p-24a4cb11.system.entry.js.map +0 -1
  437. package/dist/ripple/p-2c2a7092.system.entry.js.map +0 -1
  438. package/dist/ripple/p-313b6073.system.js.map +0 -1
  439. package/dist/ripple/p-33558ec4.system.entry.js.map +0 -1
  440. package/dist/ripple/p-33ec18d4.system.entry.js.map +0 -1
  441. package/dist/ripple/p-341aa131.entry.js +0 -2
  442. package/dist/ripple/p-341aa131.entry.js.map +0 -1
  443. package/dist/ripple/p-3759b7af.system.entry.js.map +0 -1
  444. package/dist/ripple/p-38449dff.system.entry.js.map +0 -1
  445. package/dist/ripple/p-384c4981.entry.js +0 -2
  446. package/dist/ripple/p-384c4981.entry.js.map +0 -1
  447. package/dist/ripple/p-3869a69e.system.entry.js.map +0 -1
  448. package/dist/ripple/p-4391166c.entry.js.map +0 -1
  449. package/dist/ripple/p-43be123d.entry.js +0 -2
  450. package/dist/ripple/p-43be123d.entry.js.map +0 -1
  451. package/dist/ripple/p-4a014591.entry.js +0 -2
  452. package/dist/ripple/p-4a014591.entry.js.map +0 -1
  453. package/dist/ripple/p-4a06d0a9.system.entry.js.map +0 -1
  454. package/dist/ripple/p-4e02e2ae.entry.js +0 -2
  455. package/dist/ripple/p-4e02e2ae.entry.js.map +0 -1
  456. package/dist/ripple/p-50ea2036.system.js.map +0 -1
  457. package/dist/ripple/p-56cd4d5e.entry.js +0 -2
  458. package/dist/ripple/p-56cd4d5e.entry.js.map +0 -1
  459. package/dist/ripple/p-59654f8e.entry.js +0 -2
  460. package/dist/ripple/p-59654f8e.entry.js.map +0 -1
  461. package/dist/ripple/p-5cc287d2.entry.js +0 -2
  462. package/dist/ripple/p-5cc287d2.entry.js.map +0 -1
  463. package/dist/ripple/p-7b2fc615.system.js.map +0 -1
  464. package/dist/ripple/p-7e0e6b00.entry.js +0 -2
  465. package/dist/ripple/p-7e0e6b00.entry.js.map +0 -1
  466. package/dist/ripple/p-833c622f.system.entry.js.map +0 -1
  467. package/dist/ripple/p-8613600d.system.entry.js.map +0 -1
  468. package/dist/ripple/p-888bec42.js.map +0 -1
  469. package/dist/ripple/p-889579fc.entry.js +0 -2
  470. package/dist/ripple/p-889579fc.entry.js.map +0 -1
  471. package/dist/ripple/p-8c51e9f8.system.entry.js.map +0 -1
  472. package/dist/ripple/p-8db604d2.entry.js +0 -2
  473. package/dist/ripple/p-8db604d2.entry.js.map +0 -1
  474. package/dist/ripple/p-91deb45f.system.entry.js.map +0 -1
  475. package/dist/ripple/p-9338011f.system.entry.js.map +0 -1
  476. package/dist/ripple/p-976b2789.system.entry.js.map +0 -1
  477. package/dist/ripple/p-994303f2.js.map +0 -1
  478. package/dist/ripple/p-9b2dfb54.js.map +0 -1
  479. package/dist/ripple/p-9b9eb944.entry.js +0 -2
  480. package/dist/ripple/p-9b9eb944.entry.js.map +0 -1
  481. package/dist/ripple/p-a6d64d8a.system.entry.js.map +0 -1
  482. package/dist/ripple/p-a6d6eae7.js.map +0 -1
  483. package/dist/ripple/p-a73cf968.system.entry.js.map +0 -1
  484. package/dist/ripple/p-aed625c1.system.entry.js.map +0 -1
  485. package/dist/ripple/p-b5b521e4.system.entry.js.map +0 -1
  486. package/dist/ripple/p-b7451e73.system.entry.js.map +0 -1
  487. package/dist/ripple/p-bafdcb4e.system.entry.js.map +0 -1
  488. package/dist/ripple/p-bb45e122.entry.js +0 -2
  489. package/dist/ripple/p-bb45e122.entry.js.map +0 -1
  490. package/dist/ripple/p-bd84628c.system.entry.js.map +0 -1
  491. package/dist/ripple/p-bf569af0.entry.js +0 -2
  492. package/dist/ripple/p-bf569af0.entry.js.map +0 -1
  493. package/dist/ripple/p-c094f6a8.entry.js +0 -2
  494. package/dist/ripple/p-c094f6a8.entry.js.map +0 -1
  495. package/dist/ripple/p-c36002b6.system.js.map +0 -1
  496. package/dist/ripple/p-c5bf7db8.entry.js +0 -2
  497. package/dist/ripple/p-c5bf7db8.entry.js.map +0 -1
  498. package/dist/ripple/p-c68b3798.system.js.map +0 -1
  499. package/dist/ripple/p-c6a0f7e5.js.map +0 -1
  500. package/dist/ripple/p-d46f5794.entry.js +0 -2
  501. package/dist/ripple/p-d46f5794.entry.js.map +0 -1
  502. package/dist/ripple/p-d48313e0.entry.js +0 -2
  503. package/dist/ripple/p-d48313e0.entry.js.map +0 -1
  504. package/dist/ripple/p-d939cb54.entry.js +0 -2
  505. package/dist/ripple/p-d939cb54.entry.js.map +0 -1
  506. package/dist/ripple/p-dbfd1640.system.entry.js.map +0 -1
  507. package/dist/ripple/p-e22854c1.entry.js +0 -2
  508. package/dist/ripple/p-e22854c1.entry.js.map +0 -1
  509. package/dist/ripple/p-e70bb79f.js +0 -2
  510. package/dist/ripple/p-e70bb79f.js.map +0 -1
  511. package/dist/ripple/p-ed82573a.entry.js +0 -2
  512. package/dist/ripple/p-ed82573a.entry.js.map +0 -1
  513. package/dist/ripple/p-f0fd8695.system.js.map +0 -1
  514. package/dist/ripple/p-f312d59a.system.entry.js.map +0 -1
  515. package/dist/ripple/p-f59a495a.system.entry.js.map +0 -1
  516. package/dist/ripple/p-f80eb8a5.system.js.map +0 -1
  517. package/dist/ripple/p-fb67c39e.system.entry.js.map +0 -1
  518. package/dist/ripple/p-fc08d5e1.entry.js +0 -2
  519. package/dist/ripple/p-fc08d5e1.entry.js.map +0 -1
  520. package/dist/ripple/p-fe7da854.entry.js +0 -2
  521. package/dist/ripple/p-fe7da854.entry.js.map +0 -1
  522. package/dist/ripple/ripple.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"wm-timepicker.js","sourceRoot":"","sources":["../../../../src/components/wm-timepicker/wm-timepicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, Component, Host, Element, Prop, Watch, State, Listen, Event, EventEmitter } from \"@stencil/core\";\nimport { intl, generateId, shouldOpenUp, isRelatedTarget } from \"../../global/functions\";\n\n@Component({\n tag: \"wm-timepicker\",\n styleUrl: \"wm-timepicker.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Timepicker {\n @Element() el!: HTMLWmTimepickerElement;\n private inputEl!: HTMLInputElement;\n private optionsEl!: HTMLUListElement;\n private tpWrapper!: HTMLDivElement;\n private buttonEl!: HTMLButtonElement;\n private optionsList!: HTMLLIElement[];\n\n @Prop() disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @Prop() errorMessage?: string | null;\n @Prop() label: string = \"\";\n @Prop() labelPosition: \"top\" | \"left\" | \"none\" = \"top\";\n @Prop() requiredField: boolean = false;\n @Prop() requiredFieldMessage?: string;\n @Prop() preventValidation?: string; // id or series of ids, validation will not occur when clicking an element with this id\n @State() selectedOption!: HTMLLIElement;\n @State() isExpanded: boolean = false;\n @State() isTabbing: boolean = false;\n @Event() wmTimepickerNewValidValue!: EventEmitter<{ value: string }>;\n @Event() wmTimepickerOnChange!: EventEmitter<{\n // deprecated in favor of wmTimepickerNewValidValue and standard input event\n value: string;\n isValid: boolean;\n }>;\n private twelveHrValid = /^(0?[0-9]|1[0-2])\\s*:?\\s*([0-5][0-9])?\\s?(a|p|am|pm)?$/i;\n private twentyFourHrValid = /^(0?[0-9]|1[0-9]|2[0-4])\\s*:?\\s*([0-5][0-9])?$/;\n private uid: string = \"\";\n private timeFormat: string = \"hh:mm\";\n private times: string[] = [];\n private openUp: boolean = false;\n private buttonAriaLabel: string = intl.formatMessage({\n id: \"time.selectTime\",\n defaultMessage: \"Select time\",\n description: \"Button text for screen readers.\",\n });\n @State() displayedErrorMessage?: string | null;\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"keydown\")\n handleKey(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n if (this.isExpanded === false) {\n this.open(\"next\");\n } else {\n this.moveDown(this.selectedOption);\n }\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n if (this.isExpanded === false) {\n this.open(\"previous\");\n } else {\n this.moveUp(this.selectedOption);\n }\n break;\n case \"Enter\":\n case \" \":\n if (this.isExpanded) {\n ev.preventDefault();\n this.handleOptionClick(this.selectedOption.textContent!);\n }\n break;\n case \"Escape\":\n ev.preventDefault();\n if (this.isExpanded) {\n ev.stopPropagation(); // for instance if select is in a modal, esc should close the select but not the modal\n this.close();\n }\n break;\n case \"Tab\":\n if (this.isExpanded) {\n this.close(false);\n }\n break;\n case \"Home\":\n ev.preventDefault();\n if (this.isExpanded) {\n this.focusOption(this.optionsList[0]);\n this.setDropdownPosition(\"first\");\n }\n break;\n case \"End\":\n ev.preventDefault();\n if (this.isExpanded) {\n this.focusOption(this.optionsList[this.optionsList.length - 1]);\n this.setDropdownPosition(\"last\");\n }\n break;\n }\n }\n\n @Watch(\"errorMessage\")\n updateErrorState() {\n this.displayedErrorMessage = this.errorMessage;\n }\n\n componentWillLoad() {\n if (this.label === \"\") {\n console.error(\n \"You must include a label prop for the timepicker (for accessibility reasons), even if the label position is none.\"\n );\n }\n\n this.uid = this.el.id ? this.el.id : generateId();\n this.updateErrorState();\n this.timeFormat = intl.formatMessage({\n id: \"time.timeFormat\",\n defaultMessage: \"hh:mm\",\n });\n\n this.times = this.generateTimes();\n }\n\n componentDidLoad() {\n this.optionsEl.classList.add(\"hidden\");\n this.optionsList = Array.from(this.optionsEl.querySelectorAll(\"li\"));\n\n if (this.value) {\n this.processInput();\n }\n }\n\n isValidTime(input: string) {\n return this.twelveHrValid.test(input) || this.twentyFourHrValid.test(input);\n }\n\n generateTimes() {\n let times = [];\n let startTime = 0;\n\n for (let i = 0; startTime < 24 * 60; i++) {\n const h = Math.floor(startTime / 60);\n const hour = h.toString().padStart(2, \"0\");\n const m = (startTime % 60).toString();\n const min = m.padStart(2, \"0\");\n times[i] = `${hour}:${min}`;\n startTime = startTime + 15;\n }\n\n return times;\n }\n\n findNearestTimeInterval(time: string) {\n let formattedTime = this.formatToStorage(time);\n const minutes = parseInt(formattedTime.slice(3, 5));\n\n // first find the closest 15 min increment\n if (minutes % 15 !== 0) {\n const hour = parseInt(formattedTime.slice(0, 2));\n let roundedMinutes = (Math.round(minutes / 15) * 15).toString().padStart(2, \"0\");\n if (roundedMinutes === \"60\") {\n roundedMinutes = \"00\";\n let roundedHour = hour + 1;\n if (roundedHour === 24) {\n roundedHour = 0;\n }\n formattedTime = formattedTime.replace(\n `${hour.toString().padStart(2, \"0\")}:`,\n `${roundedHour.toString().padStart(2, \"0\")}:`\n );\n }\n if (parseInt(roundedMinutes) < 8) {\n roundedMinutes = \"00\";\n }\n time = formattedTime.replace(`:${minutes.toString().padStart(2, \"0\")}`, `:${roundedMinutes}`);\n }\n\n return time;\n }\n\n handleListSelection(time: string) {\n time = this.findNearestTimeInterval(time);\n\n const option = this.optionsList.filter((o) => o.textContent == this.formatToDisplay(time))[0];\n option && this.focusOption(option);\n }\n\n setValue(time: string) {\n const previousValue = this.value;\n this.inputEl.value = this.formatToDisplay(time);\n this.value = this.formatToStorage(time);\n // update the selection in the list\n // so it opens on the closest item\n this.handleListSelection(time);\n\n if (previousValue !== this.value) {\n this.wmTimepickerNewValidValue.emit({ value: this.value });\n }\n // deprecated in favor of wmTimepickerNewValidValue and input\n this.wmTimepickerOnChange.emit({\n value: this.value,\n isValid: !!this.displayedErrorMessage,\n });\n }\n\n processInput() {\n if (this.isValidTime(this.value)) {\n this.setValue(this.value);\n }\n const newErrorMessage = this.determineErrorMessage();\n this.displayedErrorMessage = newErrorMessage;\n }\n\n determineErrorMessage(): string | undefined | null {\n let message: string | undefined | null = this.errorMessage;\n const requiredError =\n this.requiredFieldMessage ||\n intl.formatMessage({\n id: \"time.requiredError\",\n defaultMessage: \"A time is required.\",\n });\n const invalidError = intl.formatMessage({\n id: \"time.invalidTime\",\n defaultMessage: \"Please enter a valid time.\",\n });\n const isValid = this.isValidTime(this.value);\n\n if (isValid && !this.errorMessage) {\n message = null;\n } else if (!isValid && !this.errorMessage) {\n if (this.requiredField && !this.value) {\n message = requiredError;\n } else if (this.value) {\n message = invalidError;\n } else {\n message = null;\n }\n }\n\n return message;\n }\n\n splitTime(time: string): [number, string, string?] {\n const splitTime = this.twelveHrValid.exec(time) || this.twentyFourHrValid.exec(time);\n let hours = parseInt(splitTime![1]);\n let minutes = splitTime![2] || \"00\";\n let amPm = splitTime ? splitTime[3] : undefined;\n\n // handles edge case uncaught by regex '0pm'\n if (hours === 0 && amPm?.toUpperCase().includes(\"P\")) {\n // if user types '0pm' we change it to midnight\n amPm = \"AM\";\n }\n return [hours, minutes, amPm];\n }\n\n formatToDisplay(time: string) {\n let [hours, minutes, amPm] = this.splitTime(time);\n // at the moment the component only displays in 12hr AM/PM\n if (hours === 12 && !amPm) {\n amPm = \"PM\";\n }\n if (hours === 0 || hours === 24) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n amPm = \"PM\";\n }\n if (amPm && amPm.toUpperCase().includes(\"P\")) {\n amPm = \"PM\";\n } else {\n amPm = \"AM\";\n }\n\n return `${hours.toString().padStart(2, \"0\")}:${minutes} ${amPm}`;\n }\n\n formatToStorage(time: string) {\n let [hours, minutes, amPm] = this.splitTime(time);\n if (hours === 24) {\n hours = 0;\n }\n if (hours === 12 && amPm && amPm.toUpperCase().includes(\"A\")) {\n hours -= 12;\n }\n if (amPm && amPm.toUpperCase().includes(\"P\") && hours !== 12) {\n hours += 12;\n }\n return `${hours.toString().padStart(2, \"0\")}:${minutes}`;\n }\n\n open(itemToSelect?: \"next\" | \"previous\") {\n this.openUp = shouldOpenUp(this.el, this.optionsEl);\n this.isExpanded = true;\n this.optionsEl.classList.remove(\"hidden\");\n\n if (this.errorMessage || !this.value) {\n this.handleListSelection(\"09:00\");\n }\n this.setDropdownPosition(\"center\", this.selectedOption);\n this.focusOption(this.selectedOption);\n\n window.requestAnimationFrame(() => {\n if (itemToSelect === \"next\") {\n this.moveDown(this.selectedOption);\n } else if (itemToSelect === \"previous\") {\n this.moveUp(this.selectedOption);\n }\n });\n }\n\n close(returnFocus: boolean = true) {\n this.isExpanded = false;\n\n window.setTimeout(() => {\n this.optionsEl.classList.add(\"hidden\");\n // Returns focus to button after popup closes (no need if user is tabbing)\n // Delay is necessary for screenreader to get new expanded state before focus\n // window.requestAnimationFrame is probably enough, but since we are already using setTimeout it may as well be here\n // also UX wise, it makes sense for the button to only be focused after the animation is complete\n if (returnFocus) {\n this.buttonEl.focus();\n }\n }, 150);\n }\n\n focusOption(item: HTMLLIElement): void {\n this.optionsList.forEach((option) => {\n option.tabIndex = -1;\n });\n\n item.tabIndex = 0;\n this.selectedOption = item;\n item.focus();\n }\n\n setDropdownPosition(position: string, item?: HTMLLIElement) {\n switch (position) {\n case \"top\":\n const prevItem = item?.previousElementSibling as HTMLLIElement;\n this.optionsEl.scrollTop =\n prevItem.getBoundingClientRect().top - this.optionsEl.getBoundingClientRect().top + this.optionsEl.scrollTop;\n break;\n case \"bottom\":\n const nextItem = item?.nextElementSibling as HTMLLIElement;\n this.optionsEl.scrollTop =\n nextItem.getBoundingClientRect().bottom -\n this.optionsEl.getBoundingClientRect().top +\n this.optionsEl.scrollTop -\n this.optionsEl.offsetHeight;\n break;\n case \"center\":\n this.optionsEl.scrollTop =\n (this.optionsList.findIndex((x) => x.textContent === item?.textContent) - 2) * item!.offsetHeight;\n break;\n case \"first\":\n this.optionsEl.scrollTop = 0;\n break;\n case \"last\":\n this.optionsEl.scrollTop = this.optionsList[0].clientHeight * this.optionsList.length;\n break;\n }\n }\n\n moveUp(el: HTMLLIElement) {\n const prevEl = el.previousElementSibling as HTMLLIElement;\n if (prevEl) {\n // scroll option to top of dropdown if partially obscured / out of view\n if (prevEl.getBoundingClientRect().top < this.optionsEl.getBoundingClientRect().top) {\n this.setDropdownPosition(\"top\", el);\n }\n this.focusOption(prevEl);\n } else {\n this.focusOption(this.optionsList[this.optionsList.length - 1]);\n this.setDropdownPosition(\"last\");\n }\n }\n\n moveDown(el: HTMLLIElement) {\n const nextEl = el.nextElementSibling as HTMLLIElement;\n if (nextEl) {\n // scroll option to bottom of dropdown if partially obscured / out of view\n if (nextEl.getBoundingClientRect().bottom > this.optionsEl.getBoundingClientRect().bottom) {\n this.setDropdownPosition(\"bottom\", el);\n }\n this.focusOption(nextEl);\n } else {\n this.focusOption(this.optionsList[0]);\n this.setDropdownPosition(\"first\");\n }\n }\n\n handleOptionClick(time: string) {\n this.close();\n this.setValue(time);\n this.processInput();\n }\n\n handleInput() {\n this.value = this.inputEl.value;\n if (this.isValidTime(this.value)) {\n this.handleListSelection(this.findNearestTimeInterval(this.value));\n this.setDropdownPosition(\"center\", this.selectedOption);\n }\n }\n\n handleInputBlur(ev: FocusEvent) {\n // do not validate if clicking to an element that should prevent validation (e.g. close button on modal)\n const shouldPreventValidation = this.preventValidation && isRelatedTarget(ev, this.preventValidation);\n if (!shouldPreventValidation) {\n this.processInput();\n }\n this.tpWrapper.classList.remove(\"focus\");\n }\n\n renderOptions() {\n return this.times.map((time, index) => (\n <li id={`option${index + 1}`} role=\"option\" onClick={() => this.handleOptionClick(time)}>\n {this.formatToDisplay(time)}\n </li>\n ));\n }\n\n render() {\n return (\n <Host id={this.uid} invalid={!!this.displayedErrorMessage ? \"true\" : null} onBlur={() => this.close(false)}>\n <div\n class={`wrapper label-${this.labelPosition} ${!!this.displayedErrorMessage ? \"invalid\" : \"\"}`}\n ref={(t) => (this.tpWrapper = t as HTMLDivElement)}\n >\n <div class=\"label-wrapper\">\n {this.labelPosition !== \"none\" && (\n <label id={`label-${this.uid}`} class=\"label\" htmlFor={`time-input-${this.uid}`}>\n {this.label}\n {this.requiredField && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n </div>\n <div>\n <div class=\"inner-wrapper\">\n <input\n id={`time-input-${this.uid}`}\n aria-label={this.label}\n aria-describedby={`error-${this.uid}`}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n onBlur={(ev) => this.handleInputBlur(ev)}\n onInput={() => this.handleInput()}\n disabled={this.disabled}\n aria-required={this.requiredField ? \"true\" : null}\n placeholder={this.timeFormat}\n autocomplete=\"off\"\n onFocus={() => this.tpWrapper.classList.add(\"focus\")}\n />\n <button\n id={`btn-${this.uid}`}\n class={this.isTabbing ? \"user-is-tabbing\" : \"\"}\n ref={(el) => (this.buttonEl = el as HTMLButtonElement)}\n disabled={this.disabled}\n aria-controls={`list-${this.uid}`}\n aria-expanded={this.isExpanded ? \"true\" : \"false\"}\n aria-label={this.buttonAriaLabel}\n aria-describedby={`time-input-${this.uid}`}\n onClick={() => (this.isExpanded ? this.close() : this.open())}\n // This addresses an issue in Safari, where clicking buttons does not focus them\n // if the button does not receive focus when clicked, Timepicker incorrectly emits a blur event\n onMouseDown={(ev) => {\n ev.preventDefault();\n this.buttonEl.focus();\n }}\n >\n <span class=\"clock\" />\n </button>\n <ul\n class={`options ${this.isExpanded ? \"open\" : \"\"} ${this.openUp ? \"upwards\" : \"\"}`}\n id={`list-${this.uid}`}\n role=\"listbox\"\n aria-labelledby={`label-${this.uid}`}\n aria-describedby={this.isExpanded ? \"collapsed\" : null} //For screenreader, to announce state when expanded\n tabindex={-1}\n ref={(el) => (this.optionsEl = el as HTMLUListElement)}\n >\n {this.renderOptions()}\n </ul>\n </div>\n <div id={`error-${this.uid}`} class=\"error\" aria-live=\"assertive\" aria-atomic=\"true\">\n {this.displayedErrorMessage}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wm-toggletip.js","sourceRoot":"","sources":["../../../../src/components/wm-toggletip/wm-toggletip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAO/G,MAAM,OAAO,SAAS;;IAiBZ,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC;MAC1C,EAAE,EAAE,2BAA2B;MAC/B,cAAc,EAAE,kBAAkB;KACnC,CAAC,CAAC;;;;2BAVyE,cAAc;kBAC/D,KAAK;qBACF,KAAK;;EANnC,IAAI,WAAW;IACb,0GAA0G;IAC1G,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC;EAC1C,CAAC;EAaD,iBAAiB;IACf,MAAM,qBAAqB,GAAG;MAC5B,KAAK;MACL,OAAO;MACP,QAAQ;MACR,MAAM;MACN,WAAW;MACX,UAAU;MACV,cAAc;MACd,aAAa;KACd,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;MACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC1D;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;MACrB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC5D;IACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;MACzD,OAAO,CAAC,KAAK,CACX,2DAA2D,IAAI,CAAC,eAAe,oDAAoD,qBAAqB,EAAE,CAC3J,CAAC;KACH;IACD,IAAI,IAAI,CAAC,WAAW,EAAE;MACpB,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;KAC1G;EACH,CAAC;EAGD,aAAa,CAAC,EAAiB;IAC7B,QAAQ,EAAE,CAAC,GAAG,EAAE;MACd,KAAK,QAAQ;QACX,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE;UACf,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,sCAAsC;UAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QACD,MAAM;MACR,KAAK,KAAK;QACR,IAAI,IAAI,CAAC,MAAM,EAAE;UACf,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACJ;EACH,CAAC;EAGD,eAAe;IACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;EACxB,CAAC;EAGD,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;EACzB,CAAC;EAGD,WAAW,CAAC,EAAc;IACxB,IAAI,IAAI,CAAC,MAAM,EAAE;MACf,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAqB,CAAC,EAAE;QACvE,+DAA+D;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;OAC1B;WAAM;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;OACd;KACF;EACH,CAAC;EAED,IAAI;IACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;EAC3B,CAAC;EAED,KAAK;IACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAED,UAAU;IACR,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,mGAAmG;IACnG,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;EACnC,CAAC;EAED,WAAW;IACT,4HAA4H;IAC5H,6EAA6E;IAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EACxC,CAAC;EAED,WAAW;IACT,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EAC3C,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,WAAY,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;EACT,CAAC;EAED,oBAAoB;IAClB,WAAW;IACX,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;MACtF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAqB,CAAC;KAC1F;SAAM,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;MAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAqB,CAAC;KAC1F;IAED,aAAa;IACb,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;MACxF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAqB,CAAC;KAC1F;SAAM,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;MAC/F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAqB,CAAC;KAC1F;EACH,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,cACE,KAAK,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC1D,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,KAAK,EACtB,OAAO,EAAE,GAAG,EAAE;UACZ,IAAI,CAAC,oBAAoB,EAAE,CAAC;UAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,kHAAkH;QAClH,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EACtC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EACjC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GACvB;MACV,WACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAoB,CAAC,EACpD,KAAK,EAAE,WAAW,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,iBAC3D,MAAM,IAEjB,IAAI,CAAC,cAAc,CAChB;MACN,WACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAoB,CAAC,EACtD,KAAK,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,IAExE,IAAI,CAAC,WAAW,CACb;MACN,WACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAoB,CAAC,EACvD,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAC,QAAQ,eAEH,QAAQ,iBACN,MAAM,GACb,CACF,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Element, Prop, State, Listen } from \"@stencil/core\";\n\nimport { shouldOpenUp, shouldOpenDown, shouldShiftLeft, shouldShiftRight, intl } from \"../../global/functions\";\nimport { TooltipPlacement } from \"../../global/interfaces\";\n@Component({\n tag: \"wm-toggletip\",\n styleUrl: \"wm-toggletip.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Toggletip {\n @Element() el!: HTMLWmToggletipElement;\n\n @Prop() label?: string;\n @Prop({ mutable: true }) tooltip?: string; // mutable for deprecation transition\n @Prop() tooltipText?: string; // DEPRECATED\n get tempTooltip() {\n // instances of this.tempTooltip should be replaced with this.tooltip once tooltipText is fully phased out\n return this.tooltip || this.tooltipText;\n }\n @Prop({ mutable: true, reflect: true }) tooltipPosition: TooltipPlacement = \"bottom-right\";\n @State() isOpen: boolean = false;\n @State() isTabbing: boolean = false;\n\n private toggletipEl!: HTMLDivElement;\n private tooltipEl!: HTMLDivElement;\n private liveRegionEl!: HTMLDivElement;\n private tooltipMessage = intl.formatMessage({\n id: \"toggletip.moreInformation\",\n defaultMessage: \"More information\",\n });\n\n componentWillLoad() {\n const validTooltipPlacement = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"top-right\",\n \"top-left\",\n \"bottom-right\",\n \"bottom-left\",\n ];\n\n if (!this.label) {\n console.error(\"wm-toggletip must have a label property\");\n }\n if (!this.tempTooltip) {\n console.error(\"wm-toggletip must have a tooltip property\");\n }\n if (!validTooltipPlacement.includes(this.tooltipPosition)) {\n console.error(\n `wm-toggletip: tooltip-position has an invalid value of \"${this.tooltipPosition}\", make sure to use one of the following values: ${validTooltipPlacement}`\n );\n }\n if (this.tooltipText) {\n console.warn(\"wm-toggletip: tooltip-text has been deprecated as of v3.1.0. Please use tooltip instead.\");\n }\n }\n\n @Listen(\"keydown\")\n handleKeydown(ev: KeyboardEvent) {\n switch (ev.key) {\n case \"Escape\":\n ev.preventDefault();\n if (this.isOpen) {\n ev.stopPropagation(); // prevent closing modal if within one\n this.close();\n }\n break;\n case \"Tab\":\n if (this.isOpen) {\n this.close();\n }\n }\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: MouseEvent) {\n if (this.isOpen) {\n if (ev.target === this.el || this.el.contains(ev.target as HTMLElement)) {\n // Re-announce if clicking any part of the component while open\n this.announceToggletip();\n } else {\n this.close();\n }\n }\n }\n\n open() {\n this.isOpen = true;\n this.announceToggletip();\n }\n\n close() {\n this.isOpen = false;\n this.hideTooltip();\n }\n\n handleBlur() {\n this.hideTooltip();\n // clear liveregion on blur to prevent old announcement text from being picked up by screen readers\n this.liveRegionEl.innerHTML = \"\";\n }\n\n showTooltip() {\n // Because a :hover pseudoclass would apply before the tooltip is repositioned, hover styles must be applied through a class\n // Otherwise, the tooltip will flash on-screen and possibly create scrollbars\n this.setToggletipPosition();\n this.tooltipEl.classList.add(\"hover\");\n }\n\n hideTooltip() {\n this.tooltipEl.classList.remove(\"hover\");\n }\n\n announceToggletip() {\n this.liveRegionEl.innerHTML = \"\";\n setTimeout(() => {\n this.liveRegionEl.innerHTML = this.tempTooltip!;\n }, 10);\n }\n\n setToggletipPosition() {\n // Vertical\n if (this.tooltipPosition.includes(\"bottom\") && shouldOpenUp(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"bottom\", \"top\") as TooltipPlacement;\n } else if (this.tooltipPosition.includes(\"top\") && shouldOpenDown(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"top\", \"bottom\") as TooltipPlacement;\n }\n\n // Horizontal\n if (this.tooltipPosition.includes(\"left\") && shouldShiftRight(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"left\", \"right\") as TooltipPlacement;\n } else if (this.tooltipPosition.includes(\"right\") && shouldShiftLeft(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"right\", \"left\") as TooltipPlacement;\n }\n }\n\n render() {\n return (\n <Host>\n <button\n class={`button ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\n type=\"button\"\n aria-label={this.label}\n onClick={() => {\n this.setToggletipPosition();\n this.open();\n }}\n // In order to position the tooltip identically to the toggletip, it's presence is determined by these four events\n onMouseEnter={() => this.showTooltip()}\n onMouseLeave={() => this.hideTooltip()}\n onFocus={() => this.showTooltip()}\n onBlur={() => this.handleBlur()}\n ></button>\n <div\n ref={(el) => (this.tooltipEl = el as HTMLDivElement)}\n class={`tooltip ${this.tooltipPosition} ${this.isOpen ? \"hidden\" : \"\"}`}\n aria-hidden=\"true\"\n >\n {this.tooltipMessage}\n </div>\n <div\n ref={(el) => (this.toggletipEl = el as HTMLDivElement)}\n class={`toggletip ${this.isOpen ? \"\" : \"hidden\"} ${this.tooltipPosition}`}\n >\n {this.tempTooltip}\n </div>\n <div\n ref={(el) => (this.liveRegionEl = el as HTMLDivElement)}\n class=\"live-region sr-only\"\n role=\"status\"\n // Aria-live is implicit with role=\"status\", however this is not registered by Apple VoiceOver\n aria-live=\"polite\"\n aria-atomic=\"true\"\n ></div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wm-network-uploader.js","sourceRoot":"","sources":["../../../../../src/components/wm-uploader/wm-network-uploader/wm-network-uploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Listen, Watch, Event, EventEmitter } from \"@stencil/core\";\nimport { forceUpdate } from \"@stencil/core\";\nimport { getRequest, postRequest, putRequest, deleteRequest } from \"../../../global/services/http-service\";\nimport { intl, generateId, hasValidType } from \"../../../global/functions\";\nimport { globalMessages } from \"../../../global/intl\";\n//\n// Web API File interface => for FileList on input element, sending to AWS\n// Custom FileInfo interface (below) => for our server\nexport interface FileInfo {\n file_name: string;\n file_path?: string;\n mime_type: string;\n updated_at?: string;\n\n uuid?: string; // AWS guid\n document_uuid?: string; // aka file uuid. how is that different from the uuid above?\n // organization_uuid: string; // aka node uuid\n}\n\ninterface FileInProgress extends File {\n progress?: number;\n}\n\ninterface ErrorInfo {\n file_name: string;\n message: string;\n}\n\ninterface AWSData {\n url: string;\n updated_at: string;\n path: string;\n guid: string;\n}\n\ninterface Notification {\n message: string;\n id: string;\n link: string;\n}\n\n@Component({\n tag: \"wm-network-uploader\",\n styleUrl: \"wm-network-uploader.scss\",\n shadow: true,\n})\nexport class NetworkUploader {\n @Element() el!: HTMLWmNetworkUploaderElement;\n private liveRegion?: HTMLDivElement;\n\n @State() isTabbing: boolean = false;\n\n @State() fileList: FileInfo[] = [];\n @State() inProgressList: FileInProgress[] = [];\n @State() errorList: ErrorInfo[] = []; // for errors on a particular file\n @State() notif?: { id: number; message: string } | null; // for global errors, e.g. user tries uploading too many files, and upload notifications\n @State() snackbar: Notification[] = [];\n @State() numFilesInProgress?: number | null; // null when not uploading != 0 (when all files are done uploading) != undefined (original state)\n private srProgress?: any; // setInterval for SR to announce the aggregate progress percentage when things take a long time. stored here so it can be stopped when upload is finished.\n\n @Prop() getPath!: string;\n @Prop() requestUploadPath!: string;\n @Prop() uploadPath!: string; // used for POST request (create db entry)\n @Prop() requestDownloadPath!: string;\n @Prop() deletePath!: string;\n\n @Prop() associatedData?: string;\n @Prop() buttonText!: string;\n @Prop() emptyStateText!: string;\n @Prop() icon!: string;\n @Prop() fileTypes: string = \"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\";\n @Prop({ mutable: true }) maxSize: number = 100; // in Mb\n @Prop() maxFiles?: number;\n @Prop() sortBy: \"name\" | \"date\" = \"date\"; // name is descending (a -> z), date is ascending (earlier -> later)\n\n @Event() wmNetworkUploaderFilesChanged!: EventEmitter<Object[]>;\n\n private inputId = generateId();\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"wmUploadProgress\")\n handleUploadProgress(ev: CustomEvent) {\n this.inProgressList.map((i) => {\n if (i.name === ev.detail.file_name) {\n i.progress = ev.detail.progress;\n forceUpdate(this.el);\n }\n });\n\n if (ev.detail.progress === 100) {\n // inProgressList is not a perfect reflection of how many files are uploading\n // because even after progress reached 100% the item should remain in the array\n // (should only be removed once it appears in fileList)\n this.numFilesInProgress! -= 1;\n }\n\n // aggregate the percentages for SR to announce progress\n if (!this.srProgress && this.numFilesInProgress) {\n const total = this.numFilesInProgress; // if we don't reassign this number changes when a file is done and the percentage becomes wrong\n this.srProgress = setInterval(() => {\n const aggregate = this.inProgressList.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);\n if (this.liveRegion) {\n this.liveRegion.innerHTML = intl.formatMessage(\n {\n id: \"uploader.uploadProgress\",\n defaultMessage: \"Upload progress: {percentage}%\",\n },\n { percentage: Math.floor(aggregate / total) }\n );\n }\n }, 5000);\n }\n }\n\n @Listen(\"userFinishedSnack\")\n handleFinishedSnack(ev: CustomEvent) {\n this.snackbar = this.snackbar.filter((n) => n.id !== ev.detail.id);\n }\n\n @Watch(\"maxSize\")\n setMaxSize() {\n // Max size can't be set above 100Mb\n this.maxSize = this.maxSize > 100 ? 100 : this.maxSize;\n }\n\n @Watch(\"numFilesInProgress\")\n uploadNotifications(newNum: number, oldNum: number) {\n if (oldNum > 0 && newNum === 0) {\n setTimeout(() => {\n this.notif = null;\n }, 20 * 1000);\n const message = intl.formatMessage({\n id: \"uploader.finishedUploading\",\n defaultMessage: \"Finished uploading\",\n });\n this.notif = { id: 5, message };\n if (this.liveRegion) {\n this.liveRegion.innerHTML = message;\n }\n this.numFilesInProgress = null;\n clearInterval(this.srProgress);\n forceUpdate(this.el);\n } else if (newNum > 0 && newNum != oldNum) {\n const message = intl.formatMessage(\n {\n id: \"uploader.filesUploading\",\n defaultMessage: \"{num, plural, one {1 file uploading} other {# files uploading}}\",\n },\n { num: newNum }\n );\n this.notif = { id: 6, message };\n if (this.liveRegion) {\n this.liveRegion.innerHTML = message;\n }\n forceUpdate(this.el);\n }\n }\n\n @Watch(\"fileList\")\n emitFileListEvent() {\n this.wmNetworkUploaderFilesChanged.emit(this.fileList);\n }\n\n formatDate(isoDate: string, locale: string, timezone: string) {\n const timestamp = Date.parse(isoDate);\n if (locale.match(/^[a-zA-Z]*(-[a-zA-Z0-9]*)*$/g)) {\n // make sure locale is valid, otherwise set default locale\n try {\n //@ts-ignore\n Intl.getCanonicalLocales(locale);\n } catch {\n locale = \"en-us\";\n }\n } else {\n return isoDate;\n }\n\n if (!!timestamp) {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).substr(-2);\n const day = (\"0\" + date.getDate()).substr(-2);\n const time = date.toLocaleTimeString([locale, \"en-us\"], {\n timeZone: timezone,\n hour: \"numeric\",\n minute: \"numeric\",\n });\n return `${year}/${month}/${day} ${time}`;\n } else {\n return isoDate;\n }\n }\n\n isValidSize(size: number) {\n // https://stackoverflow.com/questions/2365100/converting-bytes-to-megabytes\n return size / 1024 / 1024 <= this.maxSize;\n }\n\n isDuplicate(name: string) {\n return this.fileList.find((f) => f.file_name === name);\n }\n\n isEmpty() {\n return !this.fileList.length && !this.inProgressList.length && !this.errorList.length;\n }\n\n get isDisabled() {\n const isMax = !!this.maxFiles && this.fileList.length >= this.maxFiles;\n\n if (!this.notif) {\n if (isMax) {\n const errMessage = intl.formatMessage({\n id: \"uploader.fileUploadLimitExceeded\",\n defaultMessage: \"Upload unsuccessful because file selection would exceed the maximum number of files\",\n description: \"Message displayed when trying to upload too many files\",\n });\n this.notif = { id: 1, message: errMessage };\n if (this.liveRegion) {\n this.liveRegion.innerHTML = errMessage;\n }\n } else {\n this.notif = null;\n }\n } else if (this.notif.id === 1) {\n // to make sure SR don't repeat the error, don't reset it if it already is showing\n // just dismiss it if isMax is not true anymore\n if (!isMax) {\n this.notif = null;\n }\n // finally do nothing if error 2 is showing (special case when user selects too many files)\n }\n // disable if is the uploader is maxed out or if something is uploading\n return isMax || this.numFilesInProgress! > 0;\n }\n\n purgeProgressList(item: FileInfo) {\n // If a file is retrieved from the server because it was just uploaded\n // it should be removed from inProgressList\n this.inProgressList = this.inProgressList.filter((i) => i.progress !== 100 && i.name !== item.file_name);\n }\n\n getExistingFiles() {\n getRequest(this.getPath)\n .then((reply: FileInfo[]) => {\n reply.map((item) => this.purgeProgressList(item));\n if (this.sortBy === \"name\") {\n reply.sort((a, b) => a.file_name.localeCompare(b.file_name));\n }\n this.fileList = reply;\n })\n .catch((errStatus) => {\n console.error(errStatus);\n });\n }\n\n clearErrors() {\n this.errorList = [];\n this.notif = null;\n }\n\n handleFiles(ev: Event) {\n const files = Array.from((ev.target! as HTMLInputElement).files!);\n const validTypes = this.fileTypes.split(\" \").join(\", \");\n\n if (!!this.maxFiles && this.fileList.length + files.length > this.maxFiles) {\n const errMessage = intl.formatMessage({\n id: \"uploader.fileUploadLimitExceeded\",\n defaultMessage: \"Upload unsuccessful because file selection would exceed the maximum number of files\",\n description: \"Message displayed when trying to upload too many files\",\n });\n this.notif = { id: 2, message: errMessage };\n if (this.liveRegion) {\n this.liveRegion.innerHTML = errMessage;\n }\n } else {\n // map to create inProgress items so they can be displayed immediately\n files &&\n files.map((file) => {\n if (!hasValidType(file, this.fileTypes)) {\n const error = {\n file_name: file.name,\n message: intl.formatMessage(\n {\n id: \"uploader.invalidFileType\",\n defaultMessage: \"The file type is invalid. Accepted types: {validTypes}\",\n },\n { validTypes }\n ),\n };\n this.errorList.push(error);\n } else if (!this.isValidSize(file.size)) {\n const error = {\n file_name: file.name,\n message: intl.formatMessage(\n {\n id: \"uploader.fileTooLarge\",\n defaultMessage: \"The selected file is too large. Maximum file size is {size}Mb\",\n },\n { size: this.maxSize }\n ),\n };\n this.errorList.push(error);\n } else if (this.isDuplicate(file.name)) {\n const error = {\n file_name: file.name,\n message: intl.formatMessage({\n id: \"uploader.duplicateName\",\n defaultMessage: \"A file with this name already exists.\",\n }),\n };\n this.errorList.push(error);\n } else {\n this.inProgressList.push(file);\n }\n forceUpdate(this.el);\n });\n\n if (this.inProgressList.length > 0) {\n this.numFilesInProgress = this.inProgressList.length;\n\n // map over \"uploadable\" files for actual upload\n // this happens separately otherwise at each pass we'd have to wait for the requests to complete before displaying things\n this.inProgressList.map((file, i) => {\n this.uploadFile(file, i); // = input.files file\n });\n }\n }\n (ev.target! as HTMLInputElement).value = \"\"; // reset to ensure that onChange is triggered when the same file is selected a second time\n }\n\n uploadFile(file: File, i: number) {\n // get upload link\n getRequest(this.requestUploadPath + i.toString())\n .then(async (reply: AWSData) => {\n const assData = JSON.parse(this.associatedData!);\n const fileInfo: FileInfo = {\n ...assData,\n file_name: file.name,\n mime_type: file.type,\n file_path: reply.path,\n document_uuid: reply.guid,\n };\n\n // onProgress is passed as a callback to the ev listener inside putRequest (http service),\n // so we can't change component things directly => custom event to pass data to uploader component.\n const onProgress = (ev: ProgressEvent) => {\n const progress = ev.lengthComputable && ev.total !== 0 ? (ev.loaded / ev.total) * 100 : 0;\n const event = new CustomEvent(\"wmUploadProgress\", {\n detail: { file_name: file.name, progress },\n });\n\n this.el.dispatchEvent(event);\n };\n\n // upload to AWS s3 to url we just fetched\n await putRequest(reply.url, file, onProgress);\n\n // create the db entry\n await postRequest(this.uploadPath, fileInfo);\n\n // get files from server again\n this.getExistingFiles();\n })\n .catch((err) => {\n // do not show toast on error\n this.numFilesInProgress = null;\n // do not show in progress item on error\n this.inProgressList = [];\n this.notif = {\n id: 3,\n message: globalMessages.genericError,\n };\n console.error(err);\n });\n }\n\n downloadFile(uuid: string, path: string) {\n this.clearErrors();\n\n // POST request to get temporary download link\n const payload = {\n file_path: path,\n file_uuid: uuid,\n };\n postRequest(this.requestDownloadPath, payload)\n .then((reply: { url: string }) => {\n // we got the download link, now download the file\n window.location.assign(reply.url);\n })\n .catch((err) => {\n console.error(err);\n });\n }\n\n deleteFile(file: FileInfo) {\n this.clearErrors();\n\n this.snackbar.push({\n message: intl.formatMessage(\n {\n id: \"uploader.fileDeleted\",\n defaultMessage: \"{fileName} was deleted.\",\n },\n { fileName: file.file_name }\n ),\n id: file.uuid!,\n link: \"\",\n });\n\n // rm file from list immediately.\n this.fileList = this.fileList.filter((i) => i.uuid !== file.uuid);\n\n deleteRequest(`${this.deletePath}/${file.uuid}`).catch((err) => {\n this.notif = {\n id: 4,\n message: intl.formatMessage(\n {\n id: \"uploader.fileNotDeleted\",\n defaultMessage: \"{fileName} could not be deleted.\",\n },\n { fileName: file.file_name }\n ),\n };\n this.getExistingFiles();\n console.error(err);\n });\n }\n\n componentWillLoad() {\n if (!this.getPath) {\n throw new Error(\"wm-network-uploader: get-path is a required prop\");\n }\n if (!this.requestUploadPath) {\n throw new Error(\"wm-network-uploader: request-upload-path is a required prop\");\n }\n if (!this.uploadPath) {\n throw new Error(\"wm-network-uploader: upload-path is a required prop\");\n }\n if (!this.requestDownloadPath) {\n throw new Error(\"wm-network-uploader: request-download-path is a required prop\");\n }\n if (!this.deletePath) {\n throw new Error(\"wm-network-uploader: delete-path is a required prop\");\n }\n if (!this.buttonText) {\n throw new Error(\"wm-network-uploader: button-text is a required prop\");\n }\n if (!this.emptyStateText) {\n throw new Error(\"wm-network-uploader: empty-state-text is a required prop\");\n }\n if (!this.associatedData) {\n throw new Error(\"wm-network-uploader: associated-data is a required prop\");\n }\n\n this.setMaxSize();\n this.clearErrors();\n }\n\n componentDidLoad() {\n this.getExistingFiles();\n\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n }\n\n uploadButtonOnClick(ev: Event) {\n if (this.isDisabled) {\n // this is a temporary fix.\n // we need the disabled button to be programmatically focusable\n // to allow return focus after closing the browser file panel\n // since it's focusable the button should respond when activated\n // it looks disabled, and announces the reason why the action cannot\n // be taken when activated.\n // this is not pretty duplicating a intl message + the logic of isDisabled,\n // but not worth a bigger refactor since this is only until we get the UX for disabled elements and refactor all interactive els.\n ev.preventDefault();\n if (this.liveRegion) {\n const isMax = !!this.maxFiles && this.fileList.length >= this.maxFiles;\n let errMsg: string = \"\";\n if (this.numFilesInProgress! > 0) {\n errMsg = intl.formatMessage({\n id: \"uploader.waitToUpload\",\n defaultMessage: \"Please wait for current upload to complete before uploading new files.\",\n description: \"Message for screen reader users\",\n });\n } else if (isMax) {\n errMsg = intl.formatMessage({\n id: \"uploader.fileUploadLimitExceeded\",\n defaultMessage: \"Upload unsuccessful because file selection would exceed the maximum number of files\",\n description: \"Message displayed when trying to upload too many files\",\n });\n }\n\n if (errMsg) {\n // clear and set again to re-announce if button is clicked several times\n // (can't be done inside setTimeout because of scope, hence the promise)\n this.liveRegion.innerHTML = \"\";\n new Promise((resolve) => {\n setTimeout(() => {\n resolve(\"\");\n }, 500);\n }).then(() => (this.liveRegion!.innerHTML = errMsg));\n }\n }\n } else {\n this.clearErrors();\n }\n }\n\n renderUploadSvg() {\n return (\n <svg class=\"upload-file\" width=\"91\" height=\"84\" viewBox=\"0 0 91 84\">\n <path\n transform=\"rotate(-180.000000) translate(-452, -255.5)\"\n fill=\"#eae8ec\"\n d=\"M361,249.681818 L361,197.318182 C361,194.118182 365.555061,191.5 371.122358,191.5 L391.316463,191.5 L391.286495,200.562515 L369.871211,200.600292 L369.885404,200.622146 L369.886423,246.655947 L443.657038,246.840767 L443.657038,200.622146 L421.683537,200.622146 L421.683537,191.5 L441.978865,191.5 C447.546162,191.5 452,194.118182 452,197.318182 L452,249.681818 C452,252.881818 447.546162,255.5 441.978865,255.5 L371.122358,255.5 C365.504449,255.5 361,252.881818 361,249.681818 Z M391.5,207 L406,221 L420.5,207 L409.625,207 L409.625,172 L402.375,172 L402.375,207 L391.5,207 Z\"\n ></path>\n </svg>\n );\n }\n\n renderIcon() {\n // mdi attachment icon (paper clip) is horizontal but we want it vertical\n const rotate = this.icon && this.icon === \"f066\";\n return (\n this.icon && (\n <span class={`mdi ${rotate ? \"rotate\" : \"\"}`}>{String.fromCodePoint(parseInt(`0x${this.icon}`))}</span>\n )\n );\n }\n\n renderNotif() {\n return this.notif ? <span class=\"notif\">{this.notif.message}</span> : \"\";\n }\n\n renderUploadButton(classes: string) {\n return (\n <div class=\"notif-wrapper\">\n <input\n name={this.inputId}\n id={this.inputId}\n class=\"sr-only\"\n type=\"file\"\n multiple\n onClick={(ev) => this.uploadButtonOnClick(ev)}\n onChange={(e) => this.handleFiles(e)}\n />\n <label htmlFor={this.inputId} class={`wm-button ${classes}${this.isTabbing ? \" user-is-tabbing\" : \"\"}`}>\n {this.renderIcon()}\n {this.buttonText}\n </label>\n {this.renderNotif()}\n </div>\n );\n }\n\n renderWithItems() {\n return (\n <div>\n <div class=\"header\">\n <div class=\"descr\">\n <slot />\n </div>\n {this.renderUploadButton(this.isDisabled ? \"disabled\" : \"\")}\n </div>\n {this.renderErrorList()}\n {this.renderInProgressList()}\n {this.renderFileList()}\n </div>\n );\n }\n\n renderEmptyState() {\n return (\n <div>\n <div class=\"header\">\n <div class=\"descr\">\n <slot />\n </div>\n </div>\n <div class=\"empty-block\">\n {this.renderUploadSvg()}\n <div class=\"empty-message\">{this.emptyStateText}</div>\n {this.renderUploadButton(\"-primary empty-button\")}\n </div>\n </div>\n );\n }\n\n renderErrorList() {\n if (!!this.errorList.length) {\n if (this.liveRegion) {\n let srMessage = this.errorList.reduce(function (acc, err) {\n return acc + `${err.file_name}: ${err.message} `;\n }, \"\");\n this.liveRegion.innerHTML = srMessage;\n }\n\n return (\n <ul class=\"error-list\">\n {this.errorList.map((err) => (\n <li>\n <div class=\"file --error\">\n <div class=\"file-info\">\n <span class=\"filename\">{err.file_name}</span>\n </div>\n </div>\n <div class=\"error-message\">{err.message}</div>\n </li>\n ))}\n </ul>\n );\n }\n }\n\n renderInProgressList() {\n return (\n <ul class=\"inprogress-list\">\n {this.inProgressList.map((item) => {\n return (\n <li>\n <div class=\"file --progress\">\n <div\n class=\"progress\"\n style={{\n background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,\n }}\n ></div>\n <div class=\"file-info\">\n <span class=\"filename\">\n {item.name} <span class=\"sr-only\">uploading</span>\n </span>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n );\n }\n\n renderFile(item: FileInfo) {\n return (\n <li>\n <div class=\"file --saved\">\n <div class=\"file-info\">\n <span class=\"filename\">{item.file_name}</span>\n <span class=\"filedate\">\n {this.formatDate(item.updated_at!, intl.locale, Intl.DateTimeFormat().resolvedOptions().timeZone)}\n </span>\n </div>\n <div class=\"file-controls\">\n <wm-button\n class=\"download-button\"\n button-type=\"icononly\"\n tooltip=\"download\"\n label-for-identical-buttons={`download ${item.file_name}`}\n icon=\"f1da\"\n onClick={() => this.downloadFile(item.uuid!, item.file_path!)}\n ></wm-button>\n <wm-button\n class=\"delete-button\"\n button-type=\"icononly\"\n tooltip=\"remove\"\n label-for-identical-buttons={`remove ${item.file_name}`}\n icon=\"f1c0\"\n onClick={() => this.deleteFile(item)}\n ></wm-button>\n </div>\n </div>\n </li>\n );\n }\n\n renderFileList() {\n return <ul class=\"file-list\">{this.fileList.map((item) => this.renderFile(item))}</ul>;\n }\n\n render() {\n return (\n <Host>\n {this.isEmpty() ? this.renderEmptyState() : this.renderWithItems()}\n <wm-snackbar notifications={JSON.stringify(this.snackbar)}></wm-snackbar>\n <div\n ref={(el) => (this.liveRegion = el as HTMLDivElement)}\n class=\"live-region sr-only\"\n aria-live=\"assertive\" // since it's directly linked to the action the user took, it should be read in priority. With polite, some messages get dismissed in favor of the page title\n aria-atomic=\"true\"\n ></div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wm-uploader.js","sourceRoot":"","sources":["../../../../src/components/wm-uploader/wm-uploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Listen, Watch } from \"@stencil/core\";\nimport { forceUpdate } from \"@stencil/core\";\nimport { generateId, hasValidType } from \"../../global/functions\";\nimport { UploadedFile } from \"../../global/interfaces\";\nimport { uploaderMessages } from \"../../global/intl\";\ninterface ErrorFile {\n name: string;\n message: string;\n}\n\n@Component({\n tag: \"wm-uploader\",\n styleUrl: \"wm-uploader.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Uploader {\n @Element() el!: HTMLWmUploaderElement;\n private liveRegion!: HTMLDivElement;\n get uploadButtonEl(): HTMLElement {\n return this.el.shadowRoot!.querySelector(`#${this.inputId}`) as HTMLElement;\n }\n\n @Prop({ mutable: true }) uploaderType?: \"1\" | \"2\"; // only mutable for the deprecation transition\n @Prop() type?: \"1\" | \"2\"; // DEPRECATED in favor of uploaderType\n get tempUploaderType() {\n // replace instances of this.tempUploaderType with this.uploaderType once type is fully phased out\n return this.type || this.uploaderType;\n }\n @Prop() label?: string;\n @Prop() buttonText!: string;\n @Prop() info?: string;\n @Prop() emptyStateText!: string;\n @Prop() icon!: string;\n @Prop() fileTypes: string = \"pdf txt log xml doc docx xls xlsx ppt pptx gif jpg jpeg png csv\";\n @Prop() maxSize?: number | null; // in Mb\n @Prop() maxFiles?: number;\n @Prop() sortBy: \"name\" | \"date\" = \"date\"; // name is descending (a -> z), date is ascending (earlier -> later)\n @Prop() showInfo: \"time\" | \"size\" | \"none\" = \"time\";\n @Prop() errorMessage?: string;\n @Prop() requiredField?: boolean;\n\n @Prop() files?: string; // String representation of an array of files (the files retrieved from the server)\n @State() fileList: UploadedFile[] = []; // the string above transformed into the actual array\n @Prop({ mutable: true }) filesToUpload: File[] = []; // input.files that passed validation\n\n @State() isTabbing: boolean = false;\n\n @Prop() rejectedFiles?: string; // String representation of an array of errors to add to errorList, allows devs to display server-side errors\n @State() errorList: ErrorFile[] = []; // for errors on a particular file\n @State() notif?: string | null; // for upload notifications\n @State() internalErrorMessage?: string;\n @State() announcement: string = \"\";\n @State() numFilesInProgress?: number | null; // null when not uploading != 0 (when all files are done uploading) != undefined (original state)\n @State() isCondensed: boolean = false;\n private srProgress?: any; // setInterval for SR to announce the aggregate progress percentage when things take a long time. stored here so it can be stopped when upload is finished.\n private inputId = generateId();\n\n @Event() wmUploaderFilesSelected!: EventEmitter;\n @Event() wmFilesSelected!: EventEmitter; // deprecated in favor of wmUploaderFilesSelected\n @Event() wmUploaderDeleteFile!: EventEmitter;\n @Event() wmDeleteFile!: EventEmitter; // deprecated in favor of wmUploaderDeleteFile\n @Event() wmUploaderDownloadFile!: EventEmitter;\n @Event() wmDownloadFile!: EventEmitter; // deprecated in favor of wmUploaderDownloadFile\n @Event() wmUploaderPreviewFile!: EventEmitter;\n\n @Event() wmFileDelete!: EventEmitter<string>;\n @Event() wmFileDownload!: EventEmitter<string>;\n @Event() wmFilePreview!: EventEmitter<string>;\n\n get effectiveMaxSize() {\n const defaultMaxSize = 100;\n // maxsize cannot be set to over 100Mb\n const maxSizeLimit = 100;\n\n return this.maxSize ? Math.min(this.maxSize, maxSizeLimit) : defaultMaxSize;\n }\n\n get fileLimitReached() {\n return this.maxFiles && this.fileList.length >= this.maxFiles;\n }\n\n get displayedErrorMessage(): string {\n return this.errorMessage || this.internalErrorMessage || \"\";\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"wmUploadProgress\")\n handleUploadProgress(ev: CustomEvent) {\n this.fileList.map((i) => {\n if (i.id === ev.detail.id) {\n i.progress = ev.detail.progress;\n forceUpdate(this.el);\n }\n });\n\n if (ev.detail.progress === 100) {\n // inProgressList is not a perfect reflection of how many files are uploading\n // because even after progress reached 100% the item should remain in the array\n // (should only be removed once it appears in fileList)\n this.numFilesInProgress! -= 1;\n }\n\n // aggregate the percentages for SR to announce progress\n if (!this.srProgress && this.numFilesInProgress) {\n const total = this.numFilesInProgress; // if we don't reassign this number changes when a file is done and the percentage becomes wrong\n this.srProgress = setInterval(() => {\n const aggregate = this.fileList.reduce((avg, item) => (item.progress ? avg + item.progress : avg), 0);\n this.announce(uploaderMessages.getUploadProgress(Math.floor(aggregate / total)));\n }, 5000);\n }\n }\n\n @Listen(\"wmFileClearErrorClicked\")\n handleFileErrorCleared(ev: CustomEvent) {\n const filename = ev.detail.name;\n this.errorList = this.errorList.filter((error) => error.name != filename);\n this.uploadButtonEl.focus();\n }\n\n @Listen(\"wmIntFileDeleted\")\n handleFileDeleted(ev: CustomEvent) {\n this.clearErrors();\n forceUpdate(this.el); // for the button to stop being disabled if num files become < max-files\n this.wmUploaderDeleteFile.emit(ev.detail);\n this.wmFileDelete.emit(ev.detail);\n this.wmDeleteFile.emit(ev.detail); // deprecated\n }\n\n @Listen(\"wmIntFilePreviewed\")\n handleFilePreviewed(ev: CustomEvent) {\n this.clearErrors();\n this.wmUploaderPreviewFile.emit(ev.detail);\n this.wmFilePreview.emit(ev.detail);\n }\n\n @Listen(\"wmIntFileDownloaded\")\n handleFileDownloaded(ev: CustomEvent) {\n this.clearErrors();\n this.wmUploaderDownloadFile.emit(ev.detail);\n this.wmFileDownload.emit(ev.detail);\n this.wmDownloadFile.emit(ev.detail); // deprecated\n }\n\n @Watch(\"files\")\n parseFiles() {\n if (!!this.files) {\n if (typeof this.files === \"string\") {\n let list = JSON.parse(this.files);\n if (typeof list === \"object\") {\n // if size is in byte format, convert to display format\n list.forEach((item: any) => {\n if (item.size && (typeof item.size === \"number\" || item.size.match(/^[0-9]+$/))) {\n const convertedSize = this.convertBytes(item.size);\n item.size = `${convertedSize.size.toFixed(0)} ${convertedSize.unit}`;\n }\n });\n this.fileList = list;\n } else {\n throw new Error(\"could not parse string passed to files attribute\");\n }\n } else {\n throw new Error(\"Attribute 'files' should be a string\");\n }\n }\n }\n\n @Watch(\"fileList\")\n focusAfterRemoval(newFiles: UploadedFile[], oldFiles: UploadedFile[]) {\n if (this.isTabbing && newFiles.length < oldFiles.length) {\n const newFileIds = newFiles.map((file: UploadedFile) => file.id);\n const oldFileIds = oldFiles.map((file: UploadedFile) => file.id);\n // even in the case that multiple files have been removed at once, work off of the first in that group\n const removedFileId = oldFileIds.filter((id: string) => !newFileIds.includes(id))[0];\n\n if (oldFileIds.indexOf(removedFileId) > 0) {\n const fileIdPrecedingRemoved = oldFileIds[oldFileIds.indexOf(removedFileId) - 1];\n const fileElPrecedingRemoved = this.el.shadowRoot!.querySelector(\"#file-\" + fileIdPrecedingRemoved);\n const focusedElementsButtons = fileElPrecedingRemoved?.shadowRoot!.querySelectorAll(\"wm-button\");\n\n if (focusedElementsButtons && focusedElementsButtons.length > 0) {\n const lastButtonInFile = focusedElementsButtons[focusedElementsButtons.length - 1];\n lastButtonInFile.focus();\n } else {\n // if preceding file has no file action buttons, rerun function with adjusted params\n // by removing the fileElPrecedingRemoved from the newFiles list, it is now considered the removedFile and looks to focus it's preceding file\n // if it continues to cannot find an appropriate preceding file and becomes the first file in the list, it focuses the upload button\n this.focusAfterRemoval(\n newFiles.filter((file: UploadedFile) => file.id !== fileIdPrecedingRemoved),\n oldFiles\n );\n }\n } else {\n this.uploadButtonEl.focus();\n }\n }\n }\n\n @Watch(\"rejectedFiles\")\n parseRejectedFiles() {\n if (!!this.rejectedFiles) {\n if (typeof this.files === \"string\") {\n const list = JSON.parse(this.rejectedFiles);\n if (typeof list === \"object\") {\n this.errorList = list;\n } else {\n throw new Error(\"could not parse string passed to errors attribute\");\n }\n } else {\n throw new Error(\"Attribute 'rejected-files' should be a string\");\n }\n }\n }\n\n @Watch(\"numFilesInProgress\")\n uploadNotifications(newNum: number, oldNum: number) {\n if (oldNum > 0 && newNum === 0) {\n setTimeout(() => {\n this.notif = \"\";\n this.internalErrorMessage = \"\";\n }, 20 * 1000);\n this.notif = uploaderMessages.finishedUploading;\n this.announce(uploaderMessages.finishedUploading);\n this.numFilesInProgress = null;\n clearInterval(this.srProgress);\n forceUpdate(this.el);\n } else if (newNum > 0 && newNum != oldNum) {\n this.notif = uploaderMessages.getFilesUploading(newNum);\n this.announce(uploaderMessages.getFilesUploading(newNum));\n forceUpdate(this.el);\n }\n }\n\n @Watch(\"errorMessage\")\n handleErrorMessageChange() {\n if (this.errorMessage) {\n this.announce(this.errorMessage);\n }\n }\n\n isValidSize(size: number) {\n return this.convertBytes(size, \"MB\").size <= this.effectiveMaxSize;\n }\n\n convertBytes(bytes: number, unit?: \"KB\" | \"MB\" | \"GB\" | \"TB\") {\n // https://stackoverflow.com/questions/2365100/converting-bytes-to-megabytes\n const unitOrder = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n let unitIndex = 0;\n let result = typeof bytes === \"number\" ? bytes : parseInt(bytes);\n\n if (unit) {\n // convert until result matches desired unit\n while (unitOrder.indexOf(unit) > unitIndex) {\n result /= 1024;\n unitIndex++;\n }\n } else {\n // convert until result is appropriate unit (value is under 1000)\n while (result > 1000) {\n result /= 1024;\n unitIndex++;\n }\n }\n return { size: result, unit: unitOrder[unitIndex] };\n }\n\n isDuplicate(name: string) {\n const hasDuplicateUploadingFile = this.filesToUpload.some((fileToUpload: File) => fileToUpload.name === name);\n const hasDuplicateUploadedFile = this.fileList.some((f) => {\n const filename: string = f.type ? f.name + \".\" + f.type : f.name;\n return filename === name;\n });\n\n return hasDuplicateUploadingFile || hasDuplicateUploadedFile;\n }\n\n isEmpty() {\n return !this.fileList.length && !this.errorList.length;\n }\n\n get isDisabled() {\n // disable if is the uploader is maxed out or if something is uploading\n return this.fileLimitReached || this.numFilesInProgress! > 0;\n }\n\n isItemUploading(item: UploadedFile) {\n return item.hasOwnProperty(\"progress\") && item.progress! < 100;\n }\n\n announce(message: string) {\n if (this.liveRegion.textContent === message) {\n message += \"\\u00A0\";\n }\n this.announcement = message;\n }\n\n clearErrors() {\n this.errorList = [];\n this.notif = \"\";\n this.internalErrorMessage = \"\";\n }\n\n handleFiles(ev: Event) {\n this.filesToUpload = [];\n const files = Array.from((ev.target! as HTMLInputElement).files!);\n const validTypes = this.fileTypes.split(\" \").join(\", \");\n\n if (!!this.maxFiles && this.fileList.length + files.length > this.maxFiles) {\n this.internalErrorMessage = uploaderMessages.fileLimitExceeded;\n this.announce(uploaderMessages.fileLimitExceeded);\n } else {\n files &&\n files.map((file) => {\n if (!hasValidType(file, this.fileTypes)) {\n const error = {\n name: file.name,\n message: uploaderMessages.getInvalidFileType(validTypes),\n };\n this.errorList.push(error);\n } else if (file.size === 0) {\n const error = {\n name: file.name,\n message: uploaderMessages.zeroFileSize,\n };\n this.errorList.push(error);\n } else if (!this.isValidSize(file.size)) {\n const error = {\n name: file.name,\n message: uploaderMessages.getFileTooLarge(this.effectiveMaxSize),\n };\n this.errorList.push(error);\n } else if (this.isDuplicate(file.name)) {\n const error = {\n name: file.name,\n message: uploaderMessages.duplicateName,\n };\n this.errorList.push(error);\n } else {\n this.filesToUpload.push(file);\n }\n });\n\n if (this.filesToUpload.length > 0) {\n this.numFilesInProgress = this.filesToUpload.length;\n this.wmUploaderFilesSelected.emit(this.filesToUpload);\n this.wmFilesSelected.emit(this.filesToUpload); // deprecated\n }\n }\n (ev.target! as HTMLInputElement).value = \"\"; // reset to ensure that onChange is triggered when the same file is selected a second time\n }\n\n componentWillLoad() {\n if (!this.buttonText) {\n throw new Error(\"wm-uploader: button-text is a required prop\");\n }\n\n if (this.type) {\n console.warn(\"wm-uploader: type has been deprecated as of v3.1.0. Please use uploader-type instead.\");\n }\n\n if (this.tempUploaderType === \"1\" && !this.emptyStateText) {\n throw new Error(\"wm-uploader: empty-state-text is a required prop\");\n }\n\n this.parseFiles();\n this.clearErrors();\n this.parseRejectedFiles();\n }\n\n componentDidLoad() {\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n }\n\n uploadButtonOnClick(ev: Event) {\n if (this.isDisabled) {\n // this is a temporary fix.\n // we need the disabled button to be programmatically focusable\n // to allow return focus after closing the browser file panel\n // since it's focusable the button should respond when activated\n // it looks disabled, and announces the reason why the action cannot\n // be taken when activated.\n ev.preventDefault();\n\n if (this.numFilesInProgress! > 0) {\n const srMsg = uploaderMessages.waitToUpload;\n this.announce(srMsg);\n } else if (this.fileLimitReached) {\n this.internalErrorMessage = uploaderMessages.fileLimitReached;\n this.announce(uploaderMessages.fileLimitReached);\n }\n } else {\n this.clearErrors();\n }\n }\n\n renderUploadSvg() {\n return (\n <svg class=\"upload-file\" width=\"91\" height=\"84\" viewBox=\"0 0 91 84\">\n <path\n transform=\"rotate(-180.000000) translate(-452, -255.5)\"\n fill=\"#eae8ec\"\n d=\"M361,249.681818 L361,197.318182 C361,194.118182 365.555061,191.5 371.122358,191.5 L391.316463,191.5 L391.286495,200.562515 L369.871211,200.600292 L369.885404,200.622146 L369.886423,246.655947 L443.657038,246.840767 L443.657038,200.622146 L421.683537,200.622146 L421.683537,191.5 L441.978865,191.5 C447.546162,191.5 452,194.118182 452,197.318182 L452,249.681818 C452,252.881818 447.546162,255.5 441.978865,255.5 L371.122358,255.5 C365.504449,255.5 361,252.881818 361,249.681818 Z M391.5,207 L406,221 L420.5,207 L409.625,207 L409.625,172 L402.375,172 L402.375,207 L391.5,207 Z\"\n ></path>\n </svg>\n );\n }\n\n renderIcon() {\n // mdi attachment icon (paper clip) is horizontal but we want it vertical\n const rotate = this.icon && this.icon === \"f066\";\n return (\n this.icon && (\n <span class={`mdi ${rotate ? \"rotate\" : \"\"}`}>{String.fromCodePoint(parseInt(`0x${this.icon}`))}</span>\n )\n );\n }\n\n renderInfo() {\n return this.info && this.tempUploaderType === \"2\" ? <span class=\"info\">{this.info}</span> : \"\";\n }\n\n renderNotif() {\n return <div class=\"notif\">{this.notif}</div>;\n }\n\n renderError() {\n return <div id=\"error\">{this.displayedErrorMessage}</div>;\n }\n\n renderUploadButton(classes: string) {\n let accessibleLabel = `${this.label && this.label !== this.buttonText ? `${this.label}, ` : \"\"}${this.buttonText}`;\n\n return (\n <div class=\"info-wrapper\">\n <input\n name={this.inputId}\n id={this.inputId}\n class=\"sr-only\"\n aria-label={accessibleLabel}\n aria-required={this.requiredField ? \"true\" : null}\n aria-describedby={`${this.displayedErrorMessage ? \"error \" : \"\"}file-count max-size accepted-types`}\n type=\"file\"\n multiple\n onClick={(ev) => this.uploadButtonOnClick(ev)}\n onChange={(ev) => this.handleFiles(ev)}\n />\n <label htmlFor={this.inputId} class={`wm-button ${classes}${this.isTabbing ? \" user-is-tabbing\" : \"\"}`}>\n {this.renderIcon()}\n {this.buttonText}\n </label>\n {this.renderInfo()}\n </div>\n );\n }\n\n renderEmptyState() {\n return (\n <div class=\"empty-block\">\n {this.renderUploadSvg()}\n <div class={`empty-message`}>{this.emptyStateText}</div>\n {this.renderUploadButton(\"-primary empty-button\")}\n {this.notif && this.renderNotif()}\n {this.displayedErrorMessage && this.renderError()}\n </div>\n );\n }\n\n renderErrorList() {\n let srMessage = this.errorList.reduce(function (acc, err) {\n return acc + `${err.name}: ${err.message} `;\n }, \"\");\n this.announce(srMessage);\n\n return (\n <ul class=\"error-list\">\n {this.errorList.map((err) => (\n <wm-file file={`{\"name\": \"${err.name}\"}`} error-message={err.message}></wm-file>\n ))}\n </ul>\n );\n }\n\n formatTimestamp(timestamp: string): string {\n const uploadDate = new Date(Date.parse(timestamp));\n const day = uploadDate.getDate();\n const month = uploadDate.getMonth() + 1;\n const year = uploadDate.getFullYear();\n const time = uploadDate.toLocaleTimeString(\"en-us\", { hour: \"numeric\", minute: \"2-digit\" });\n const formattedDate = `${month}/${day}/${year} ${time}`;\n\n return formattedDate;\n }\n\n renderInProgressFileList() {\n return (\n <ul class=\"inprogress-list\">\n {this.fileList\n .filter((item) => this.isItemUploading(item))\n .map((item) => (\n <wm-file file={JSON.stringify(item)} show-info={this.showInfo}></wm-file>\n ))}\n </ul>\n );\n }\n\n renderUploadedFileList() {\n return (\n <ul class=\"file-list\">\n {this.fileList\n .filter((item) => !this.isItemUploading(item))\n .map((item) => {\n item.lastUpdated = this.formatTimestamp(item.lastUpdated);\n return <wm-file id={`file-${item.id}`} file={JSON.stringify(item)} show-info={this.showInfo}></wm-file>;\n })}\n </ul>\n );\n }\n\n renderFiles() {\n // if we switch to accepting display format for the wm-uploader's file lastUpdateds, sorting by date will become impossible\n this.sortBy === \"name\"\n ? this.fileList.sort((a, b) => a.name.localeCompare(b.name))\n : this.fileList.sort((a, b) => Date.parse(a.lastUpdated) - Date.parse(b.lastUpdated));\n return (\n <div>\n {this.renderInProgressFileList()}\n {this.renderUploadedFileList()}\n </div>\n );\n }\n\n legacyRenderHeader() {\n return (\n <div class={`header ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\n <div class=\"slot-wrapper\">\n <slot />\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\n {this.renderUploadButton(`-secondary ${this.isDisabled ? \"disabled\" : \"\"}`)}\n {this.notif && this.renderNotif()}\n {this.displayedErrorMessage && this.renderError()}\n </div>\n </div>\n </div>\n );\n }\n\n renderHeader() {\n const validTypes = \".\" + this.fileTypes.split(\" \").join(\", .\");\n\n return (\n <div class={`header ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\n {this.renderUploadButton(`-secondary ${this.isDisabled ? \"disabled\" : \"\"}`)}\n {this.renderRequirements()}\n </div>\n <div id=\"accepted-types\" class=\"accepted-types\">\n {uploaderMessages.getAcceptedFileTypes(validTypes, this.fileTypes.split(\" \").length)}\n </div>\n {this.notif && this.renderNotif()}\n {this.displayedErrorMessage && this.renderError()}\n </div>\n );\n }\n\n renderRequirements() {\n return (\n <div class=\"requirements\">\n {this.maxFiles && (\n <span id=\"file-count\">{uploaderMessages.getFileCount(this.fileList.length, this.maxFiles)}</span>\n )}\n {this.maxSize && <span id=\"max-size\">{uploaderMessages.getMaxSize(this.effectiveMaxSize)}</span>}\n </div>\n );\n }\n\n renderFooter() {\n return (\n <div class=\"footer\">\n <div class={`notif-wrapper ${this.tempUploaderType ? `type${this.tempUploaderType}` : \"\"}`}>\n <div class=\"filecount-wrapper\">\n <div class=\"filecount\">{uploaderMessages.getFilesAdded(this.fileList.length)}</div>\n {this.renderUploadButton(`-primary ${this.isDisabled ? \"disabled\" : \"\"}`)}\n </div>\n {this.notif && this.renderNotif()}\n {this.displayedErrorMessage && this.renderError()}\n </div>\n </div>\n );\n }\n\n renderWithItems() {\n // it's possible progress is passed in as a string, so we need to check for \"100\" as well\n const hasNewlyUploadedFiles =\n this.fileList.filter((file) => file.progress === (typeof file.progress === \"number\" ? 100 : \"100\")).length > 0;\n return (\n <div>\n {!this.tempUploaderType && this.renderHeader()}\n {this.tempUploaderType === \"2\" && this.legacyRenderHeader()}\n <div\n class={`list-container type${this.tempUploaderType} ${\n !this.tempUploaderType && hasNewlyUploadedFiles ? \"checkmark-spacer\" : \"\"\n }`}\n >\n {this.errorList.length > 0 && this.renderErrorList()}\n {this.fileList.length > 0 && this.renderFiles()}\n </div>\n {this.tempUploaderType === \"1\" && this.renderFooter()}\n </div>\n );\n }\n\n renderLabel() {\n return (\n <div class={`wrapper ${this.displayedErrorMessage ? \"invalid\" : \"\"}`}>\n <div id=\"label\" class={`label`}>\n {this.label}\n {this.requiredField && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host>\n {this.label && this.renderLabel()}\n {this.isEmpty() && this.tempUploaderType === \"1\" ? this.renderEmptyState() : this.renderWithItems()}\n <div\n ref={(el) => (this.liveRegion = el as HTMLDivElement)}\n class=\"live-region sr-only\"\n aria-live=\"assertive\" // since it's directly linked to the action the user took, it should be read in priority. With polite, some messages get dismissed in favor of the page title\n aria-atomic=\"true\"\n >\n {this.announcement}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wm-wrapper.js","sourceRoot":"","sources":["../../../../src/components/wm-wrapper/wm-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAMxE,MAAM,OAAO,OAAO;EAIlB,gBAAgB;IACd,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;EAC9B,CAAC;EAED,MAAM;IACJ,OAAO;EACT,CAAC;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter } from \"@stencil/core\";\n\n@Component({\n tag: \"wm-wrapper\",\n shadow: false,\n})\nexport class Wrapper {\n @Element() el!: any;\n @Event() wmWrapperLoaded!: EventEmitter<void>;\n\n componentDidLoad() {\n this.wmWrapperLoaded.emit();\n }\n\n render() {\n return;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/global/__mocks__/functions.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAEtC,MAAM,CAAC,MAAM,IAAI,GAAG;EAClB,aAAa,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,mBAAmB;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC","sourcesContent":["export const generateId = () => \"random-id\";\nexport const getTextDir = () => \"rtl\";\n\nexport const intl = {\n formatMessage: (_: string) => \"[translated text]\",\n};\n\nexport const adjustTooltipPosition = () => \"bottom-right\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/global/functions.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as lang from \"../lang/lang\";\nimport { createIntl, createIntlCache } from \"@formatjs/intl\";\nimport { TooltipPlacement } from \"./interfaces\";\n\nconst DEFAULT_LANGUAGE = \"en\";\nfunction getBrowserLang(): string {\n const langAttr = document.documentElement.getAttribute(\"lang\");\n if (!!langAttr) {\n return langAttr;\n } else if (window.navigator && window.navigator.language) {\n const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;\n return lang.slice(0, 2);\n } else {\n return DEFAULT_LANGUAGE;\n }\n}\n\n// prevents memory leak\nconst cache = createIntlCache();\nconst locale = getBrowserLang();\nexport const intl = createIntl(\n {\n locale: locale,\n defaultLocale: \"en\",\n messages: (lang as any)[locale] || lang.en,\n },\n cache\n);\n\nexport function generateId(): string {\n return \"wmcl-\" + Math.random().toString(36).substr(2, 10);\n}\n\n// limits how many times a function fires\n// use when the function should run periodically, but not too often (e.g. window resize)\nexport function throttle(fn: any, wait: number) {\n let timeout: any;\n let shouldWait = false;\n\n return function (this: any) {\n const context = this;\n if (!shouldWait) {\n fn.apply(context, arguments);\n shouldWait = true;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n shouldWait = false;\n }, wait);\n }\n };\n}\n\n// waits until it hasn't been called for [timeout] ms.\n// use when the function should run only after something (event) is done firing\nexport function debounce(fn: any, wait: number) {\n let timeout: any;\n\n return function (this: any) {\n const context = this;\n const functionCall = () => fn.apply(context, arguments);\n\n clearTimeout(timeout);\n timeout = setTimeout(functionCall, wait);\n };\n}\n\nexport function getTextDir() {\n const dir = document.querySelector(\"html\")!.getAttribute(\"dir\");\n return dir ? dir.toLowerCase() : \"\";\n}\n\nexport function getPosition(el: HTMLElement) {\n const coords = el.getBoundingClientRect() as DOMRect;\n let x = coords.x;\n let y = coords.y;\n // Edge doesn't have x and y\n if (!x) {\n if (getTextDir() === \"rtl\") {\n x = coords.right;\n } else {\n x = coords.left;\n }\n y = coords.top;\n }\n return { x, y };\n}\n\nexport function findParentWithScrollbar(el: HTMLElement) {\n while (!!el) {\n if (el.scrollHeight > el.clientHeight && [\"scroll\", \"auto\"].includes(window.getComputedStyle(el).overflowY!)) {\n return el;\n }\n el = el.parentElement as HTMLElement;\n }\n}\n\nexport function findParentWithHiddenOverflow(el: HTMLElement) {\n while (!!el) {\n if (window.getComputedStyle(el).overflowY! !== \"visible\") {\n return el;\n }\n el = el.parentElement as HTMLElement;\n }\n}\n\nexport function getClosableElementMeasurements(fixedEl: HTMLElement, closableEl: HTMLElement) {\n const parent = findParentWithHiddenOverflow(fixedEl);\n // if parent is not found, measurements are checked against the viewport\n return {\n closableElHeight: closableEl.clientHeight,\n closableElWidth: closableEl.clientWidth,\n // NB boundingClientRect.bottom is space from top of viewport to bottom of el\n // to get space below the el -> height of viewport minus boundingClientRect.bottom\n spaceAbove: parent\n ? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top\n : fixedEl.getBoundingClientRect().top,\n // NB boundingClientRect.bottom is space from top of viewport to bottom of el\n // to get space below the el -> height of viewport minus boundingClientRect.bottom\n spaceBelow: parent\n ? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom\n : document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,\n spaceLeft: parent\n ? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left\n : fixedEl.getBoundingClientRect().left,\n spaceRight: parent\n ? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right\n : document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,\n };\n}\n\nexport function shouldOpenUp(\n fixedEl: HTMLElement, //the element visible on the page when the component is closed\n closableEl: HTMLElement, //the dropdown/popup/etc that becomes visible when the component is open\n offsetAbove: number = 0, // if closableEl covers a part of fixedEl, that part should be offset\n offsetBelow: number = 0 // if closableEl covers a part of fixedEl, that part should be offset\n) {\n const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);\n //we want to open up only if there's not enough space below AND there is enough space above\n const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;\n return openUp;\n}\n\nexport function shouldOpenDown(\n fixedEl: HTMLElement, //the element visible on the page when the component is closed\n closableEl: HTMLElement, //the dropdown/popup/etc that becomes visible when the component is open\n offsetAbove: number = 0, // if closableEl covers a part of fixedEl, that part should be offset\n offsetBelow: number = 0 // if closableEl covers a part of fixedEl, that part should be offset\n) {\n const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);\n //we want to open up only if there's not enough space below AND there is enough space above\n const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;\n return openDown;\n}\n\nexport function shouldShiftRight(fixedEl: HTMLElement, closableEl: HTMLElement) {\n const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);\n const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;\n return needsSpaceLeft;\n}\n\nexport function shouldShiftLeft(fixedEl: HTMLElement, closableEl: HTMLElement) {\n const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);\n const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;\n return needsSpaceRight;\n}\n\nexport function adjustTooltipPlacement(tPos: TooltipPlacement, el: HTMLElement, tooltipEl: HTMLElement) {\n const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);\n const tooltipWidth = tooltipEl.getBoundingClientRect().width;\n const tooltipHeight = tooltipEl.getBoundingClientRect().height;\n const enoughSpaceAbove = spaceAbove > tooltipHeight;\n const enoughSpaceBelow = spaceBelow > tooltipHeight;\n // a tooltip should never be closer than 24px to the edge of a screen\n const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;\n const enoughSpaceRight = spaceRight - 24 > tooltipWidth;\n\n const swapAbove = (position: string) => {\n return !enoughSpaceAbove ? position.replace(\"top\", \"bottom\") : position;\n };\n const swapBelow = (position: string) => {\n return !enoughSpaceBelow && enoughSpaceAbove ? position.replace(\"bottom\", \"top\") : position;\n };\n const swapLeft = (position: string, centeredPosition: string) => {\n if (!enoughSpaceLeft && enoughSpaceRight) {\n position = position.replace(\"left\", \"right\");\n } else if (!enoughSpaceLeft && !enoughSpaceRight) {\n position = centeredPosition;\n }\n return position;\n };\n const swapRight = (position: string, centeredPosition: string) => {\n if (!enoughSpaceRight && enoughSpaceLeft) {\n position = position.replace(\"right\", \"left\");\n } else if (!enoughSpaceRight && !enoughSpaceLeft) {\n position = centeredPosition;\n }\n return position;\n };\n\n // horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa\n switch (tPos) {\n case \"left\":\n tPos = swapLeft(tPos, \"bottom\") as TooltipPlacement;\n case \"right\":\n tPos = swapRight(tPos, \"bottom\") as TooltipPlacement;\n case \"top-left\":\n tPos = swapLeft(tPos, \"top\") as TooltipPlacement;\n tPos = swapAbove(tPos) as TooltipPlacement;\n case \"top-right\":\n tPos = swapRight(tPos, \"top\") as TooltipPlacement;\n tPos = swapAbove(tPos) as TooltipPlacement;\n case \"bottom-left\":\n tPos = swapLeft(tPos, \"bottom\") as TooltipPlacement;\n tPos = swapBelow(tPos) as TooltipPlacement;\n case \"bottom-right\":\n tPos = swapRight(tPos, \"bottom\") as TooltipPlacement;\n tPos = swapBelow(tPos) as TooltipPlacement;\n case \"top\":\n tPos = swapAbove(tPos) as TooltipPlacement;\n case \"bottom\":\n tPos = swapBelow(tPos) as TooltipPlacement;\n }\n return tPos;\n}\n\nexport function showTooltip(position: string, anchorEl: HTMLElement, tooltipText: string) {\n const tooltipEl = document.getElementById(\"wm-tooltip\")!;\n tooltipEl.textContent = tooltipText;\n\n // tooltip only has a maxWidth if it contains whitespace and can break\n const hasNoWhitespace = tooltipText!.match(/^[^\\s]+$/);\n if (hasNoWhitespace) {\n tooltipEl.classList.add(\"single-word\");\n tooltipEl.style.setProperty(\"--wmTooltipMaxWidth\", \"none\");\n } else {\n tooltipEl.classList.remove(\"single-word\");\n tooltipEl.style.removeProperty(\"--wmTooltipMaxWidth\");\n }\n positionTooltip(position, anchorEl, tooltipEl);\n\n tooltipEl.style.transitionDelay = \"500ms\";\n tooltipEl.style.opacity = \"1\";\n}\n\nexport function hideTooltip() {\n const tooltipEl = document.getElementById(\"wm-tooltip\")!;\n tooltipEl.style.transitionDelay = \"0s\";\n tooltipEl.style.opacity = \"0\";\n}\n\nexport function positionTooltip(tPos: string, anchorEl: HTMLElement, tooltipEl: HTMLElement) {\n const tooltipHeight = tooltipEl.getBoundingClientRect().height;\n const tooltipWidth = tooltipEl.getBoundingClientRect().width;\n // to get the center positions, calculate the difference between the button width and the tooltip width\n const verticalDiff = (anchorEl.getBoundingClientRect().height - tooltipHeight) / 2;\n const horizontalDiff = (anchorEl.getBoundingClientRect().width - tooltipWidth) / 2;\n\n // the naming convention defaults to center in the absence of a value\n // \"top\" and \"bottom\" imply centering horizontally; \"right\" and \"left\" imply centering vertically\n // therefore we first set to center and adjust accordingly\n let verticalPos = anchorEl.getBoundingClientRect().top + verticalDiff;\n let horizontalPos = anchorEl.getBoundingClientRect().left + horizontalDiff;\n\n if (tPos.includes(\"top\")) {\n verticalPos = anchorEl.getBoundingClientRect().top - tooltipHeight - 8;\n }\n if (tPos.includes(\"bottom\")) {\n verticalPos = anchorEl.getBoundingClientRect().bottom + 8;\n }\n if (tPos.includes(\"left\")) {\n horizontalPos = anchorEl.getBoundingClientRect().left - tooltipWidth - 8;\n }\n if (tPos.includes(\"right\")) {\n horizontalPos = anchorEl.getBoundingClientRect().right + 8;\n }\n\n // after all positioning has been calculated, if tooltip is off-screen or closer than 24px it is readjusted\n // this only occurs when the tooltip is overflowing to the left and is positioned top or bottom\n // (button placed too far left, or screen size under 268px)\n horizontalPos = Math.max(horizontalPos, 24);\n tooltipEl.style.setProperty(\"--wmTooltipTop\", verticalPos + \"px\");\n tooltipEl.style.setProperty(\"--wmTooltipLeft\", horizontalPos + \"px\");\n}\n\nexport function hasRoomRight(x: any, spaceNeeded: number) {\n let horizOffset = 0;\n // if (getTextDir() === \"ltr\") {\n if (x.type === \"click\") {\n // if it's a mouse event, deal with mouse coords\n horizOffset = x.clientX;\n // if it's a focus event, the offset is 0\n } else if (x.type === \"focus\") {\n horizOffset = 0;\n } else {\n // otherwise an element was passed, calculate how far it is from the edge of the window\n let el = x as HTMLElement; // re-assignment is for clarity\n while (el) {\n if (el.tagName == \"BODY\") {\n // deal with browser quirks with body/window/document and page scroll\n var xScroll = el.scrollLeft || document.documentElement.scrollLeft;\n horizOffset += el.offsetLeft - xScroll + el.clientLeft;\n } else {\n // for all other non-BODY elements\n horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;\n }\n el = el.offsetParent as HTMLElement;\n }\n // }\n }\n return window.innerWidth - horizOffset >= spaceNeeded;\n}\n\nexport function checkForActiveElInShadow(element: HTMLElement) {\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement as HTMLElement;\n }\n return element;\n}\n\nexport function checkForFocusableElInShadow(element: HTMLElement) {\n const selectors = [\n \"button\",\n \"a\",\n \"input\",\n \"select\",\n \"textarea\",\n \"wm-button\",\n \"wm-search\",\n \"wm-select\",\n \"wm-action-menu\",\n \"wm-tab-item\",\n \"wm-datepicker\",\n ];\n let focusableEl = element;\n selectors.forEach((selector) => {\n if (focusableEl && focusableEl.shadowRoot) {\n let elInShadow = focusableEl.shadowRoot!.querySelector(selector);\n if (elInShadow) {\n if (selector.startsWith(\"wm-\")) {\n focusableEl = checkForFocusableElInShadow(elInShadow as HTMLElement);\n } else {\n focusableEl = elInShadow as HTMLElement;\n }\n }\n }\n });\n return focusableEl;\n}\n\nexport function isFocusable(element: any) {\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute(\"tabIndex\") !== null)) {\n return true;\n }\n\n if (element.disabled) {\n return false;\n }\n switch (element.nodeName) {\n case \"A\":\n return !!element.href && element.rel != \"ignore\";\n case \"INPUT\":\n return element.type != \"hidden\" && element.type != \"file\";\n case \"BUTTON\":\n case \"SELECT\":\n case \"TEXTAREA\":\n case \"WM-BUTTON\":\n case \"WM-SELECT\":\n case \"WM-ACTION-MENU\":\n case \"WM-DATEPICKER\":\n case \"WM-TIMEPICKER\":\n case \"WM-INPUT\":\n case \"WM-TAG-INPUT\":\n case \"WM-TAB-ITEM\":\n case \"WM-SEARCH\":\n return true;\n default:\n return false;\n }\n}\n\nexport function getFirstFocusableDescendant(element: HTMLElement) {\n if (isFocusable(element)) {\n return checkForFocusableElInShadow(element);\n } else if (element.childNodes.length > 0) {\n element.childNodes.forEach((i) => {\n const childEl = getFirstFocusableDescendant(i as HTMLElement);\n return childEl && checkForFocusableElInShadow(childEl);\n });\n }\n}\n\nexport function hasValidType(file: File, types: string) {\n const acceptedExtensions = types.split(\" \");\n const parts = file.name && file.name.split(\".\");\n const ext = parts && parts.length > 1 && parts[parts.length - 1];\n return ext\n ? acceptedExtensions.includes(ext.toLowerCase())\n : // fallback: if we couldn't obtain an extension,\n // validate based on MIME type...\n !!file.type\n ? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)\n : // ...and if that failed too, accept the file\n // as it's preferable to accept an invalid file\n // than refusing a valid one (back-end will take care of what slips through)\n true;\n}\n\n// takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)\nexport function getAcceptedMimeTypesList(acceptedExtensions: string[]) {\n // this is just a list of common file types (regardless of whether they are/can be valid or not)\n // front end checks are just a convenience to users, independent of security.\n // it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded\n const lookupTable: { [ext: string]: string | string[] } = {\n aac: [\"audio/aac\"],\n abw: [\"application/x-abiword\"],\n arc: [\"application/x-freearc\"],\n avi: [\"video/x-msvideo\"],\n azw: [\"application/vnd.amazon.ebook\"],\n bin: [\"application/octet-stream\"],\n bmp: [\"image/bmp\"],\n bz: [\"application/x-bzip\"],\n bz2: [\"application/x-bzip2\"],\n csh: [\"application/x-csh\"],\n css: [\"text/css\"],\n csv: [\"text/csv\"],\n doc: [\"application/msword\"],\n docx: [\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"],\n eot: [\"application/vnd.ms-fontobject\"],\n epub: [\"application/epub+zip\"],\n gz: [\"application/gzip\"],\n gif: [\"image/gif\"],\n htm: [\"text/html\"],\n html: [\"text/html\"],\n ico: [\"image/vnd.microsoft.icon\"],\n ics: [\"text/calendar\"],\n jar: [\"application/java-archive\"],\n jpeg: [\"image/jpeg\"],\n jpg: [\"image/jpeg\"],\n js: [\"text/javascript\"],\n json: [\"application/json\"],\n jsonld: [\"application/ld+json\"],\n log: [\"text/plain\"],\n mid: [\"audio/x-midi\"],\n midi: [\"audio/x-midi\"],\n mjs: [\"text/javascript\"],\n mp3: [\"audio/mpeg\"],\n mpeg: [\"video/mpeg\"],\n mpkg: [\"application/vnd.apple.installer+xml\"],\n odp: [\"application/vnd.oasis.opendocument.presentation\"],\n ods: [\"application/vnd.oasis.opendocument.spreadsheet\"],\n odt: [\"application/vnd.oasis.opendocument.text\"],\n oga: [\"audio/ogg\"],\n ogv: [\"video/ogg\"],\n ogx: [\"application/ogg\"],\n opus: [\"audio/opus\"],\n otf: [\"font/otf\"],\n png: [\"image/png\"],\n pdf: [\"application/pdf\"],\n php: [\"application/php\"],\n ppt: [\"application/vnd.ms-powerpoint\"],\n pptx: [\"application/vnd.openxmlformats-officedocument.presentationml.presentation\"],\n rar: [\"application/vnd.rar\", \"application/x-rar\", \"application/x-rar-compressed\"],\n rtf: [\"application/rtf\"],\n sh: [\"application/x-sh\"],\n svg: [\"image/svg+xml\"],\n swf: [\"application/x-shockwave-flash\"],\n tar: [\"application/x-tar\"],\n tif: [\"image/tiff\"],\n tiff: [\"image/tiff\"],\n ts: [\"video/mp2t\"],\n ttf: [\"font/ttf\"],\n txt: [\"text/plain\"],\n vsd: [\"application/vnd.visio\"],\n wav: [\"audio/wav\"],\n weba: [\"audio/webm\"],\n webm: [\"video/webm\"],\n webp: [\"image/webp\"],\n woff: [\"font/woff\"],\n woff2: [\"font/woff2\"],\n xhtml: [\"application/xhtml+xml\"],\n xls: [\"application/vnd.ms-excel\"],\n xlsx: [\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n xml: [\"application/xml\", \"text/xml\"],\n xul: [\"application/vnd.mozilla.xul+xml\"],\n zip: [\"application/zip\", \"application/x-zip-compressed\", \"multipart/x-zip\"],\n \"3gp\": [\"video/3gpp\", \"audio/3gpp\"],\n \"3g2\": [\"video/3gpp2\", \"audio/3gpp2\"],\n \"7z\": [\"application/x-7z-compressed\"],\n };\n\n return acceptedExtensions.reduce((acc: any, ext: string) => acc.concat(lookupTable[ext]), []);\n}\n\nexport function snakeCaseToCamelCase(str: string) {\n const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;\n if (snakeCaseRegexp.test(str)) {\n let camelCase = \"\";\n let arr = str.split(\"_\");\n arr.forEach((word, idx) => {\n camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);\n });\n return camelCase;\n } else {\n return str;\n }\n}\n\nexport function csvToArray(csv: string): string[] {\n return csv ? csv.split(/, ?/) : [];\n}\n\nexport function getNewIndexToFocus(currentIndex: number, direction: string, listLength: number) {\n let newIndex = currentIndex;\n if (direction === \"ArrowDown\") {\n newIndex = (currentIndex + 1) % listLength;\n }\n if (direction === \"ArrowUp\") {\n newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;\n }\n\n return newIndex;\n}\n\nexport function isRelatedTarget(ev: FocusEvent, id: string) {\n // used for onBlur events to check the element that has been clicked\n const ids = id.split(\" \");\n return ev.relatedTarget && ids.includes((ev.relatedTarget as HTMLElement).id);\n}\n\nexport function toBool(val: any) {\n // string \"false\" needs to be treated as bool False because react wrappers convert bool to string.\n return val == \"false\" ? false : !!val;\n}\n\nexport function measureText(originEl: HTMLElement, placeholderText: string): DOMRect {\n const measurementEl = document.createElement(\"div\");\n const originStyles = getComputedStyle(originEl);\n measurementEl.style.position = \"absolute\";\n measurementEl.style.top = \"-100vh\";\n measurementEl.style.fontFamily = originStyles.fontFamily;\n measurementEl.style.fontWeight = originStyles.fontWeight;\n measurementEl.style.fontSize = originStyles.fontSize;\n measurementEl.textContent = placeholderText;\n\n document.body.appendChild(measurementEl);\n const boundingClientRect = measurementEl.getBoundingClientRect();\n document.body.removeChild(measurementEl);\n\n return boundingClientRect;\n}\n\nexport function safeParseJSON(toParse: string): JSON | null {\n // JSON.parse will throw an exception if the string provided is not in the proper format\n // instead of the exception, just return null and let other logic check\n try {\n return JSON.parse(toParse);\n } catch (e) {\n return null;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/global/global.ts"],"names":[],"mappings":"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","sourcesContent":["import { setMode } from \"@stencil/core\";\nimport { version } from \"../../package.json\";\n\n// PRINT RIPPLE VERSION IN CONSOLE\n// test envs return 0 for plugin.length\n// do not print version number there as it causes issues\nif (window.navigator.plugins.length > 0) {\n console.log(\"Ripple component library\", version);\n}\n\n// USER-IS-TABBING CLASSES (FOR FOCUS INDICATORS)\n// Dispatching events to track whether user is navigating with keyboard or mouse\nfunction wmComponentKeys(ev: KeyboardEvent) {\n if (ev.key == \"Tab\") {\n var event: Event = new Event(\"wmUserIsTabbing\");\n window.dispatchEvent(event);\n document.querySelector(\"body\")!.classList.add(\"wmcl-user-is-tabbing\");\n }\n if (ev.key == \"ArrowLeft\" || ev.key == \"ArrowUp\" || ev.key == \"ArrowRight\" || ev.key == \"ArrowDown\") {\n var event: Event = new Event(\"wmUserIsKeying\");\n window.dispatchEvent(event);\n document.querySelector(\"body\")!.classList.add(\"wmcl-user-is-keying\");\n }\n}\n\nfunction wmComponentMouseDownOnce() {\n var event = new Event(\"wmUserIsNotTabbing\");\n window.dispatchEvent(event);\n document.querySelector(\"body\")!.classList.remove(\"wmcl-user-is-tabbing\");\n document.querySelector(\"body\")!.classList.remove(\"wmcl-user-is-keying\");\n}\n\nwindow.addEventListener(\"keydown\", wmComponentKeys);\nwindow.addEventListener(\"mousedown\", wmComponentMouseDownOnce);\n\n// MODES (FOR PRODUCT-SPECIFIC STYLING)\n//Checks for mode attribute explicitly set on the document. If \"mode\" is set on component, it will override the global mode. Falls back to default (Planning styles)\nsetMode((elm) => {\n return elm.getAttribute(\"mode\") || document.documentElement.getAttribute(\"mode\") || \"planning\";\n});\n\n// TOOLTIP\n// Add a tooltip element\n// This allows tooltips to be always at the highest stacking context (always on top)\n// Element is added withing a container to avoid performance impact\nconst tooltipContainer = document.createElement(\"div\");\ntooltipContainer.id = \"wm-tooltip-container\";\nconst tooltipEl = document.createElement(\"div\");\ntooltipEl.id = \"wm-tooltip\";\ntooltipEl.setAttribute(\"aria-hidden\", \"true\");\ntooltipEl.style.position = \"fixed\";\ntooltipEl.style.overflow = \"hidden\";\ntooltipEl.style.pointerEvents = \"none\";\ntooltipEl.style.lineHeight = \"normal\";\ntooltipEl.style.fontFamily = \"inherit\";\ntooltipEl.style.fontSize = \"0.875rem\";\ntooltipEl.style.textTransform = \"none\";\ntooltipEl.style.fontWeight = \"normal\";\ntooltipEl.style.background = \"black\";\ntooltipEl.style.color = \"#fff\";\ntooltipEl.style.zIndex = \"999999\";\ntooltipEl.style.maxWidth = \"var(--wmTooltipMaxWidth, 13.75rem)\";\ntooltipEl.style.marginRight = \"1.5rem\";\ntooltipEl.style.padding = \"0.375rem\";\ntooltipEl.style.transitionProperty = \"opacity\";\ntooltipEl.style.transitionDelay = \"opacity\";\ntooltipEl.style.opacity = \"0\";\ntooltipEl.style.top = \"0\";\ntooltipEl.style.left = \"0\";\ntooltipEl.style.transform = \"translateZ(0)\";\ntooltipEl.style.willChange = \"transform\";\ntooltipEl.style.transform = \"translate(var(--wmTooltipLeft), var(--wmTooltipTop))\";\n\ntooltipContainer.appendChild(tooltipEl);\nconst body = document.querySelector(\"body\");\nbody!.appendChild(tooltipContainer);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/global/interfaces.ts"],"names":[],"mappings":"AA6CA,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAe;EACpC,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE,aAAa;EACnB,IAAI,EAAE,eAAe;EACrB,IAAI,EAAE,SAAS;EACf,IAAI,EAAE,YAAY;EAClB,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,WAAW;EACjB,IAAI,EAAE,kBAAkB;EACxB,IAAI,EAAE,WAAW;EACjB,IAAI,EAAE,qBAAqB;EAC3B,IAAI,EAAE,qBAAqB;CAC5B,CAAC;AAOF,MAAM,UAAU,mBAAmB,CAAC,IAAY;EAC9C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,SAAS,GAAc;EAC3B,KAAK,EAAE,MAAM;EACb,MAAM,EAAE,MAAM;EACd,MAAM,EAAE,MAAM;EACd,KAAK,EAAE,MAAM;EACb,MAAM,EAAE,MAAM;EACd,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,MAAM;EACd,eAAe,EAAE,MAAM;EACvB,YAAY,EAAE,MAAM;EACpB,aAAa,EAAE,MAAM;EACrB,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,MAAM;EACnB,oBAAoB,EAAE,MAAM;EAC5B,WAAW,EAAE,MAAM;EACnB,mBAAmB,EAAE,MAAM;EAC3B,wBAAwB,EAAE,MAAM;EAChC,kBAAkB,EAAE,MAAM;EAC1B,gBAAgB,EAAE,MAAM;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAS,EAAE,EAAE;EACrC,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;AAClG,CAAC,CAAC","sourcesContent":["export type Notification = {\n message: string;\n id: string;\n link: string;\n newWindow: boolean;\n};\n\n// Create label for icon-only buttons\nexport type label = string | undefined;\n\nexport type CssClassMap = { [className: string]: boolean };\n\ninterface IconLabels {\n [index: string]: string;\n}\n\nexport type Product = {\n description?: string;\n samlLinkUrl?: string;\n iconUrl: string;\n id: string;\n linkUrl: string;\n name: string;\n};\n\n// products retrieved from endpoint:\nexport type NavigatorPayload = {\n connection_name?: string;\n current_product_id: string;\n email: string;\n logout_url: string;\n products: Product[];\n};\n\nexport type validButtonTypes =\n | \"primary\"\n | \"secondary\"\n | \"textonly\"\n | \"icononly\"\n | \"navigational\"\n | \"selector\"\n | \"selector-primary\"\n | \"pairpositive\"\n | \"pairnegative\";\n\n//List of icon codes with more indicative descriptors to create labels for icon-only buttons\nexport const iconLabels: IconLabels = {\n f156: \"Close\",\n f3eb: \"Edit\",\n f739: \"Cancel\",\n f12c: \"Save\",\n f1c0: \"Delete\",\n f349: \"Search\",\n f207: \"Export info\",\n f1d9: \"Open dropdown\",\n f04d: \"Go back\",\n f054: \"Go forward\",\n f141: \"Left\",\n f142: \"Right\",\n f35e: \"Menu left\",\n f35d: \"Toggle menu down\",\n f30d: \"Backspace\",\n f645: \"Sort hierarchically\",\n f4bb: \"Sort alphabetically\",\n};\n\n// For backwards compatibility, the icon prop accepts the icon name minus mdi- prefix, e.g. \"icon\"\n// this function converts the name to the corresponding code or returns what it was passed\ninterface IconCodes {\n [index: string]: string;\n}\nexport function getIconCodeFromName(icon: string): string {\n return iconCodes[icon] || icon;\n}\n\nconst iconCodes: IconCodes = {\n close: \"f156\",\n pencil: \"f3eb\",\n cancel: \"f739\",\n check: \"f12c\",\n delete: \"f1c0\",\n magnify: \"f349\",\n export: \"f207\",\n \"dots-vertical\": \"f1d9\",\n \"arrow-left\": \"f04d\",\n \"arrow-right\": \"f054\",\n \"chevron-left\": \"f141\",\n \"chevron-right\": \"f142\",\n \"menu-left\": \"f35e\",\n \"menu-down\": \"f35d\",\n \"keyboard-backspace\": \"f30d\",\n \"file-tree\": \"f645\",\n \"sort-alphabetical\": \"f4bb\",\n \"checkbox-marked-circle\": \"f133\",\n \"account-settings\": \"f630\",\n \"backup-restore\": \"f06f\",\n};\n\nexport const defaultMode = \"planning\";\n\nexport const getWmMode = (ref?: any) => {\n return ref.getAttribute(\"mode\") || document.documentElement.getAttribute(\"mode\") || defaultMode;\n};\n\nexport type TooltipPlacement =\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-right\"\n | \"top-left\";\n\nexport type SliceElement = (SVGElement | HTMLElement);\n\nexport type SliceDetails = {\n amount: number;\n perc: number;\n legend: string | null;\n color: string;\n offset: number;\n id: string;\n title: string | null;\n text: string | null;\n buttonText: string | null;\n sliceRef: Element;\n inSmallCluster: boolean;\n coords?: {x: number, y: number};\n};\n\nexport type ChartDetails = {\n size: number;\n colors: Array<string>;\n thickness?: number;\n padding: number;\n category: \"doughnut\" | \"stackedBar\" | \"simpleBar\";\n};\n\nexport type ChartType =\n // progress monitor types\n | \"doughnut\"\n | \"bar\"\n // chart types\n | \"doughnut1\"\n | \"doughnut2\"\n | \"doughnut2plus\"\n | \"doughnut3\"\n | \"bar2\"\n | \"bar3\"\n | \"bar4\"\n | \"bar5\"\n | \"bar6\"\n | \"bar7\"\n // deprecated\n | \"doughnut0\"\n | \"bar1\";\n\nexport type LegendItem = { key: string; color: string };\n\nexport type UploadedFile = {\n name: string;\n id: string;\n type: string;\n lastUpdated: string; // in display format\n progress?: number;\n fileActions?: string;\n size?: string; // in display format\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"intl.js","sourceRoot":"","sources":["../../../src/global/intl.ts"],"names":[],"mappings":"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","sourcesContent":["import { intl } from \"./functions\";\n\nexport const globalMessages = {\n characterLimitReached: intl.formatMessage({\n id: \"global.characterLimitReached\",\n defaultMessage: \"No additional characters will be entered.\",\n description: \"for screen readers\",\n }),\n\n close: intl.formatMessage({\n id: \"global.closeVerb\",\n defaultMessage: \"Close\",\n description: \"For a button, to close a user interface element\",\n }),\n\n genericError: intl.formatMessage({\n id: \"global.genericError\",\n defaultMessage: \"An error occurred. Please try again.\",\n }),\n\n newWindow: intl.formatMessage({\n id: \"global.newWindowLink\",\n defaultMessage: \"Opens in a new window.\",\n description: \"Indicates that a focused link will open in a new window\",\n }),\n\n next: intl.formatMessage({\n id: \"global.next\",\n defaultMessage: \"next\",\n description: \"Button text, indicating an action leading to a 'next' state\",\n }),\n\n open: intl.formatMessage({\n id: \"global.openVerb\",\n defaultMessage: \"Open\",\n description: \"For a button, to open a user interface element\",\n }),\n\n previous: intl.formatMessage({\n id: \"global.previous\",\n defaultMessage: \"previous\",\n description: \"Button text, indicating an action leading to a 'previous' state\",\n }),\n\n requiredError: intl.formatMessage({\n id: \"global.requiredError\",\n defaultMessage: \"This field is required.\",\n description: \"Error displayed under a required field when it has not been filled\",\n }),\n\n requiredField: intl.formatMessage({\n id: \"global.requiredField\",\n defaultMessage: \"required field\",\n description: \"Screen reader text, indicating the currently focused field is required\",\n }),\n\n // -------------------------------------------------------------------------- //\n // Functions //\n // -------------------------------------------------------------------------- //\n\n getCharactersEntered: (charCount: number, charLimit: number) =>\n intl.formatMessage(\n {\n id: \"global.charactersEntered\",\n defaultMessage: \"{x, number} of {y, number} characters entered.\",\n description: \"for screen readers\",\n },\n { x: charCount, y: charLimit }\n ),\n\n getCharacterLimit: (characterLimit: number) =>\n intl.formatMessage(\n {\n id: \"global.characterLimit\",\n defaultMessage: \"{limit, number} characters allowed.\",\n description: \"for screen readers\",\n },\n { limit: characterLimit }\n ),\n};\n\nexport const uploaderMessages = {\n duplicateName: intl.formatMessage({\n id: \"uploader.duplicateName\",\n defaultMessage: \"A file with this name already exists.\",\n }),\n\n fileLimitExceeded: intl.formatMessage({\n id: \"uploader.fileUploadLimitExceeded\",\n defaultMessage: \"Upload unsuccessful because file selection would exceed the maximum number of files\",\n description: \"Message displayed when trying to upload too many files\",\n }),\n\n fileLimitReached: intl.formatMessage({\n id: \"uploader.fileUploadLimitReached\",\n defaultMessage: \"The maximum number of files has been reached\",\n description: \"Message displayed when trying to upload additional files, but the limit has been reached\",\n }),\n\n finishedUploading: intl.formatMessage({\n id: \"uploader.finishedUploading\",\n defaultMessage: \"Finished uploading\",\n }),\n\n waitToUpload: intl.formatMessage({\n id: \"uploader.waitToUpload\",\n defaultMessage: \"Please wait for current upload to complete before uploading new files.\",\n description: \"Message for screen reader users\",\n }),\n\n zeroFileSize: intl.formatMessage({\n id: \"uploader.zeroFileSize\",\n defaultMessage: \"The file must be more than 0 bytes\",\n description: \"Error message when user attempts to upload a file of no size\",\n }),\n\n // -------------------------------------------------------------------------- //\n // Functions //\n // -------------------------------------------------------------------------- //\n\n getAcceptedFileTypes: (validTypes: string, amount: number) =>\n intl.formatMessage(\n {\n id: \"uploader.acceptedFileTypes\",\n defaultMessage: \"Accepted file {amount, plural, =1 {type} other {types}}: {fileTypes}\",\n },\n {\n fileTypes: validTypes,\n amount: amount,\n }\n ),\n\n getFilesAdded: (numFiles: number) =>\n intl.formatMessage(\n {\n id: \"uploader.filesAdded\",\n defaultMessage: \"{numFiles, plural, one {1 file added} other {# files added}}\",\n },\n { numFiles: numFiles }\n ),\n\n getFileCount: (fileListLength: number, maxFiles: number) =>\n intl.formatMessage(\n {\n id: \"uploader.fileCount\",\n defaultMessage: \"{x} of {y} Files\",\n description: \"A count of the number of files currently uploaded\",\n },\n { x: fileListLength, y: maxFiles }\n ),\n\n getFileTooLarge: (maxSize: number) =>\n intl.formatMessage(\n {\n id: \"uploader.fileTooLarge\",\n defaultMessage: \"The selected file is too large. Maximum file size is {size}Mb\",\n },\n { size: maxSize }\n ),\n\n getFilesUploading: (numFilesUploading: number) =>\n intl.formatMessage(\n {\n id: \"uploader.filesUploading\",\n defaultMessage: \"{num, plural, one {1 file uploading} other {# files uploading}}\",\n },\n { num: numFilesUploading }\n ),\n\n getInvalidFileType: (validTypes: string) =>\n intl.formatMessage(\n {\n id: \"uploader.invalidFileType\",\n defaultMessage: \"The file type is invalid. Accepted types: {validTypes}\",\n },\n { validTypes }\n ),\n\n getMaxSize: (maxSize: number) =>\n intl.formatMessage(\n {\n id: \"uploader.maxSize\",\n defaultMessage: \"Maximum file size {maxSize}MB\",\n description: \"An indicator of the maximum file size the uploader allows\",\n },\n {\n maxSize: maxSize,\n }\n ),\n\n getUploadProgress: (percentage: number) =>\n intl.formatMessage(\n {\n id: \"uploader.uploadProgress\",\n defaultMessage: \"Upload progress: {percentage}%\",\n },\n { percentage: percentage }\n ),\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-service.js","sourceRoot":"","sources":["../../../../../src/global/services/__mocks__/http-service.tsx"],"names":[],"mappings":"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","sourcesContent":["import { NavigatorPayload } from \"../../interfaces\";\n\nconst state = [\n {\n uuid: \"d57a8104-a07e-4e58-97f6-705d55b15845\",\n uploader_member_uuid: \"fd947ce1-ca75-4b88-ba47-4576104cf845\",\n updated_at: \"2018-04-16T10:31:48.740000Z\",\n organization_uuid: \"d57a8104-a07e-4e58-97f6-705d55b15845\",\n mime_type: \"application/pdf\",\n institution_uuid: \"c1dac227-b71c-44ae-a4be-eb20929c6e99\",\n inserted_at: \"2018-09-17T09:33:45.550000Z\",\n file_path: \"bogusurl.dev\",\n file_name: \"test.pdf\",\n course_uuid: null,\n },\n {\n uuid: \"410ee9ed-af53-4f52-90b1-bf3f054ad86b\",\n uploader_member_uuid: \"fd947ce1-ca75-4b88-ba47-4576104cf845\",\n updated_at: \"2019-11-26T20:39:38.990000Z\",\n organization_uuid: \"8d242cdf-4261-4003-9a91-45575eb7d44e\",\n mime_type: \"application/pdf\",\n institution_uuid: \"c1dac227-b71c-44ae-a4be-eb20929c6e99\",\n inserted_at: \"2019-11-26T20:39:38.990000Z\",\n file_path: \"anotherbogusurl.dev\",\n file_name: \"brochure.pdf\",\n course_uuid: null,\n },\n];\n\nconst firstUploadResponseText = {\n url: \"aws-path.url\",\n updated_at: \"2019-07-03T14:11:08.000Z\",\n path: \"\",\n guid: \"12345\",\n};\n\nconst secondUploadResponseText = {\n url: \"aws-path.url\",\n updated_at: \"2019-07-02T10:14:29.000Z\",\n path: \"\",\n guid: \"67890\",\n};\n\nconst navigatorResponse: NavigatorPayload = {\n connection_name: \"watermarkinsights-idp-qa\",\n current_product_id: \"dm\",\n email: \"user@email.net\",\n logout_url: \"localhost:3333/logout\",\n products: [\n {\n description: \"Some Aqua description\",\n iconUrl: \"https://cdn.watermarkinsights.com/images/login/aqua.svg\",\n id: \"aqua\",\n linkUrl: \"https://aqua.taskstream.com/sso/login\",\n name: \"Aqua\",\n },\n {\n description: \"Some Digital Measures description\",\n iconUrl: \"https://cdn.watermarkinsights.com/images/login/digitalmeasures.svg\",\n id: \"dm\",\n linkUrl: \"https://www.digitalmeasures.com/login/sso/authenticate\",\n name: \"Digital Measures\",\n },\n {\n description: \"Some Planning description\",\n iconUrl: \"https://cdn.watermarkinsights.com/images/login/planningselfstudy.svg\",\n id: \"planning\",\n linkUrl: \"https://planning.watermarkinsights.com/login/sso\",\n name: \"Planning\",\n },\n {\n description: \"Checking that the component handles anything throwed at it\",\n iconUrl: \"https://cdn.watermarkinsights.com/images/login/livetext.svg\",\n id: \"something_bonkers\",\n linkUrl: \"https://planning.watermarkinsights.com/login/sso\",\n name: \"Bonkers\",\n },\n {\n description: \"c1 = livetext\",\n iconUrl: \"https://cdn.watermarkinsights.com/images/login/livetext.svg\",\n id: \"c1\",\n linkUrl: \"https://livetext.fakeurl/login/sso\",\n name: \"Livetext\",\n },\n {\n description: \"something with an id containing admin\",\n iconUrl: \"not.important\",\n id: \"banana_admin_shoe\",\n linkUrl: \"irrelevant\",\n name: \"Platform Admin\",\n },\n ],\n};\n\nconst responses: any = {\n \"get-path.url\": state,\n \"request-upload-path.url0\": firstUploadResponseText,\n \"request-upload-path.url1\": secondUploadResponseText,\n \"/platform/navigator/userinfo\": navigatorResponse,\n};\n\nexport const getRequest = async (url: string) => {\n return Promise.resolve(responses[url] as any);\n};\n\nexport const postRequest = async (url: string, payload: any) => {\n switch (url) {\n case \"upload-path.url\":\n state.push({\n uuid: payload.document_uuid,\n uploader_member_uuid: \"fd947ce1-ca75-4b88-ba47-4576104cf845\",\n updated_at: \"2019-12-10T20:48:10.138Z\",\n organization_uuid: payload.organization_uuid,\n mime_type: payload.mime_type,\n institution_uuid: \"c1dac227-b71c-44ae-a4be-eb20929c6e99\",\n inserted_at: \"2019-12-10T20:48:10.138Z\",\n file_path: payload.file_path,\n file_name: payload.file_name,\n course_uuid: null,\n });\n return Promise.resolve();\n case \"request-download-path.url\":\n return Promise.resolve({ url: \"aws-download-path.url\" });\n }\n};\n\nexport const deleteRequest = async (url: string) => {\n const uuid = url.split(\"/\").pop();\n // console.log(\"uuid: \", uuid);\n const index = state.findIndex((i) => i.uuid === uuid);\n // console.log(\"index: \", index);\n state.splice(index, 1);\n // console.log(\"state from DELETE: \", state, Date.now());\n // return new Promise(resolve => setTimeout(() => resolve(), 300));\n return Promise.resolve();\n};\n\nexport const putRequest = (_url: string, _file: any) => {\n return Promise.resolve();\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-service.js","sourceRoot":"","sources":["../../../../src/global/services/http-service.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;EAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;EAClC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC/B,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;GAC9B;OAAM;IACL,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;GACtC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,OAAe,EAAE,EAAE;EAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;IAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;GAC9B,CAAC,CAAC;EACH,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC/B,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;GAC9B;OAAM;IACL,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;GACtC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;EACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;EACxD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC/B,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;GAC9B;OAAM;IACL,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;GACtC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAU,EAAE,UAAoB,EAAE,EAAE;EAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACrC,oEAAoE;IACpE,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAEjC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;MACvC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC;OACf;WAAM,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;QACvD,MAAM,EAAE,CAAC;OACV;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,wBAAwB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAClF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["export const getRequest = async (url: string) => {\n const response = await fetch(url);\n if (!!response && !!response.ok) {\n return await response.json();\n } else {\n throw new Error(response.statusText);\n }\n};\n\nexport const postRequest = async (url: string, payload: Object) => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json; charset=utf-8\" },\n body: JSON.stringify(payload),\n });\n if (!!response && !!response.ok) {\n return await response.json();\n } else {\n throw new Error(response.statusText);\n }\n};\n\nexport const deleteRequest = async (url: string) => {\n const response = await fetch(url, { method: \"DELETE\" });\n if (!!response && !!response.ok) {\n return await response.json();\n } else {\n throw new Error(response.statusText);\n }\n};\n\nexport const putRequest = (url: string, file: File, onProgress: Function) => {\n return new Promise((resolve, reject) => {\n // there's no way to track progress with the fetch API, so using XHR\n const req = new XMLHttpRequest();\n\n req.upload.addEventListener(\"progress\", (ev) => onProgress(ev));\n\n req.addEventListener(\"readystatechange\", function () {\n if (this.readyState === 4 && this.status === 200) {\n resolve(this);\n } else if (this.readyState === 4 && this.status !== 200) {\n reject();\n }\n });\n\n req.onerror = () => reject();\n req.open(\"PUT\", url, true);\n req.setRequestHeader(\"Content-Disposition\", `attachment;filename=\"${file.name}\"`);\n req.send(file);\n });\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../src/lang/lang.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzC,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzC,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzC,OAAO,GAAG,MAAM,0BAA0B,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC","sourcesContent":["import en from \"./compiled-lang/en.json\";\nimport fr from \"./compiled-lang/fr.json\";\nimport es from \"./compiled-lang/es.json\";\nimport pig from \"./compiled-lang/pig.json\";\n\nexport { en, fr, es, pig };\n"]}