@watermarkinsights/ripple 3.10.0-0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-05b9dcc7.js → chartFunctions-829efa13.js} +420 -417
  3. package/dist/cjs/{functions-71c85bae.js → functions-3b1b7c26.js} +542 -512
  4. package/dist/cjs/{global-f98992f4.js → global-68b6a831.js} +60 -60
  5. package/dist/cjs/{http-service-494d81de.js → http-service-9e8c4dd5.js} +49 -49
  6. package/dist/cjs/{index-98c6524c.js → index-df6a3611.js} +100 -65
  7. package/dist/cjs/{interfaces-a3338581.js → interfaces-30a74c1f.js} +29 -29
  8. package/dist/cjs/loader.cjs.js +4 -4
  9. package/dist/cjs/priv-chart-popover.cjs.entry.js +87 -87
  10. package/dist/cjs/priv-datepicker.cjs.entry.js +659 -659
  11. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  12. package/dist/cjs/priv-navigator-item.cjs.entry.js +24 -24
  13. package/dist/cjs/ripple.cjs.js +4 -4
  14. package/dist/cjs/wm-action-menu_2.cjs.entry.js +342 -342
  15. package/dist/cjs/wm-button.cjs.entry.js +228 -228
  16. package/dist/cjs/wm-chart-slice.cjs.entry.js +14 -14
  17. package/dist/cjs/wm-chart.cjs.entry.js +117 -116
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +267 -267
  19. package/dist/cjs/wm-input.cjs.entry.js +136 -136
  20. package/dist/cjs/wm-modal-footer.cjs.entry.js +32 -32
  21. package/dist/cjs/wm-modal-header.cjs.entry.js +35 -35
  22. package/dist/cjs/wm-modal.cjs.entry.js +164 -164
  23. package/dist/cjs/wm-navigation_3.cjs.entry.js +229 -222
  24. package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
  25. package/dist/cjs/wm-network-uploader.cjs.entry.js +454 -454
  26. package/dist/cjs/wm-option_2.cjs.entry.js +487 -487
  27. package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
  28. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +136 -135
  29. package/dist/cjs/wm-search.cjs.entry.js +233 -233
  30. package/dist/cjs/wm-snackbar.cjs.entry.js +172 -172
  31. package/dist/cjs/wm-tab-item_3.cjs.entry.js +298 -298
  32. package/dist/cjs/wm-tag-input.cjs.entry.js +581 -581
  33. package/dist/cjs/wm-timepicker.cjs.entry.js +385 -385
  34. package/dist/cjs/wm-toggletip.cjs.entry.js +126 -126
  35. package/dist/cjs/wm-uploader.cjs.entry.js +380 -380
  36. package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
  37. package/dist/collection/collection-manifest.json +2 -2
  38. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +258 -258
  39. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +115 -115
  40. package/dist/collection/components/charts/wm-chart/wm-chart.js +334 -332
  41. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +201 -199
  42. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +88 -88
  43. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +111 -111
  44. package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
  45. package/dist/collection/components/wm-button/wm-button.css +1 -2
  46. package/dist/collection/components/wm-button/wm-button.js +491 -491
  47. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +3 -4
  48. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1024 -1024
  49. package/dist/collection/components/wm-datepicker/wm-datepicker.css +1 -2
  50. package/dist/collection/components/wm-datepicker/wm-datepicker.js +471 -471
  51. package/dist/collection/components/wm-input/wm-input.css +1 -2
  52. package/dist/collection/components/wm-input/wm-input.js +423 -423
  53. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  54. package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
  55. package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
  56. package/dist/collection/components/wm-modal/wm-modal.js +461 -461
  57. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +1 -2
  58. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +162 -162
  59. package/dist/collection/components/wm-navigation/wm-navigation-item.js +121 -121
  60. package/dist/collection/components/wm-navigation/wm-navigation.js +218 -211
  61. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  62. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  63. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  64. package/dist/collection/components/wm-option/wm-option.css +2 -3
  65. package/dist/collection/components/wm-option/wm-option.js +414 -414
  66. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  67. package/dist/collection/components/wm-search/wm-search.js +480 -480
  68. package/dist/collection/components/wm-select/wm-select.css +2 -3
  69. package/dist/collection/components/wm-select/wm-select.js +718 -718
  70. package/dist/collection/components/wm-snackbar/wm-snackbar.css +2 -3
  71. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  72. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +2 -2
  73. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +216 -216
  74. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +330 -330
  75. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  76. package/dist/collection/components/wm-tag-input/wm-tag-input.css +2 -3
  77. package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -810
  78. package/dist/collection/components/wm-timepicker/wm-timepicker.css +2 -3
  79. package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -583
  80. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1 -2
  81. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  82. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +1 -2
  83. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +785 -785
  84. package/dist/collection/components/wm-uploader/wm-uploader.css +1 -2
  85. package/dist/collection/components/wm-uploader/wm-uploader.js +780 -780
  86. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  87. package/dist/collection/dev/scripts.js +20 -20
  88. package/dist/collection/global/__mocks__/functions.js +6 -6
  89. package/dist/collection/global/chartFunctions.js +421 -418
  90. package/dist/collection/global/functions.js +468 -468
  91. package/dist/collection/global/global.js +67 -67
  92. package/dist/collection/global/interfaces.js +49 -49
  93. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  94. package/dist/collection/global/services/http-service.js +50 -50
  95. package/dist/collection/lang/lang.js +5 -5
  96. package/dist/collection/lang/missing.js +43 -43
  97. package/dist/collection/lang/piglatin.js +93 -93
  98. package/dist/esm/{chartFunctions-b24ba065.js → chartFunctions-1ea300b2.js} +420 -417
  99. package/dist/esm/{functions-117d1a51.js → functions-124ec8e6.js} +542 -512
  100. package/dist/esm/{global-6a9c8257.js → global-482afd31.js} +60 -60
  101. package/dist/esm/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +49 -49
  102. package/dist/esm/{index-d649a861.js → index-17c79cc6.js} +100 -65
  103. package/dist/esm/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +29 -29
  104. package/dist/esm/loader.js +4 -4
  105. package/dist/esm/polyfills/core-js.js +0 -0
  106. package/dist/esm/polyfills/css-shim.js +1 -1
  107. package/dist/esm/polyfills/dom.js +0 -0
  108. package/dist/esm/polyfills/es5-html-element.js +0 -0
  109. package/dist/esm/polyfills/index.js +0 -0
  110. package/dist/esm/polyfills/system.js +0 -0
  111. package/dist/esm/priv-chart-popover.entry.js +87 -87
  112. package/dist/esm/priv-datepicker.entry.js +659 -659
  113. package/dist/esm/priv-navigator-button.entry.js +19 -19
  114. package/dist/esm/priv-navigator-item.entry.js +24 -24
  115. package/dist/esm/ripple.js +4 -4
  116. package/dist/esm/wm-action-menu_2.entry.js +342 -342
  117. package/dist/esm/wm-button.entry.js +228 -228
  118. package/dist/esm/wm-chart-slice.entry.js +14 -14
  119. package/dist/esm/wm-chart.entry.js +117 -116
  120. package/dist/esm/wm-datepicker.entry.js +267 -267
  121. package/dist/esm/wm-input.entry.js +136 -136
  122. package/dist/esm/wm-modal-footer.entry.js +32 -32
  123. package/dist/esm/wm-modal-header.entry.js +35 -35
  124. package/dist/esm/wm-modal.entry.js +164 -164
  125. package/dist/esm/wm-navigation_3.entry.js +229 -222
  126. package/dist/esm/wm-navigator.entry.js +269 -269
  127. package/dist/esm/wm-network-uploader.entry.js +454 -454
  128. package/dist/esm/wm-option_2.entry.js +487 -487
  129. package/dist/esm/wm-pagination.entry.js +168 -168
  130. package/dist/esm/wm-progress-indicator_3.entry.js +136 -135
  131. package/dist/esm/wm-search.entry.js +233 -233
  132. package/dist/esm/wm-snackbar.entry.js +172 -172
  133. package/dist/esm/wm-tab-item_3.entry.js +298 -298
  134. package/dist/esm/wm-tag-input.entry.js +581 -581
  135. package/dist/esm/wm-timepicker.entry.js +385 -385
  136. package/dist/esm/wm-toggletip.entry.js +126 -126
  137. package/dist/esm/wm-uploader.entry.js +380 -380
  138. package/dist/esm/wm-wrapper.entry.js +13 -13
  139. package/dist/esm-es5/chartFunctions-1ea300b2.js +1 -0
  140. package/dist/esm-es5/functions-124ec8e6.js +15 -0
  141. package/dist/esm-es5/global-482afd31.js +1 -0
  142. package/dist/esm-es5/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +1 -1
  143. package/dist/esm-es5/index-17c79cc6.js +1 -0
  144. package/dist/esm-es5/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +0 -0
  145. package/dist/esm-es5/loader.js +1 -1
  146. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  147. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  148. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  149. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  150. package/dist/esm-es5/ripple.js +1 -1
  151. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  152. package/dist/esm-es5/wm-button.entry.js +1 -1
  153. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  154. package/dist/esm-es5/wm-chart.entry.js +1 -1
  155. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  156. package/dist/esm-es5/wm-input.entry.js +1 -1
  157. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  158. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  159. package/dist/esm-es5/wm-modal.entry.js +1 -1
  160. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  161. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  162. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  163. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  164. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  165. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  166. package/dist/esm-es5/wm-search.entry.js +1 -1
  167. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  168. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  169. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  170. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  171. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  172. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  173. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  174. package/dist/loader/index.d.ts +0 -1
  175. package/dist/ripple/{p-f5df5903.system.js → p-08b7ec08.system.js} +0 -0
  176. package/dist/ripple/p-09f954eb.system.js +1 -0
  177. package/dist/ripple/p-0c7c9b89.entry.js +1 -0
  178. package/dist/ripple/{p-ddf157c8.system.entry.js → p-14eab45c.system.entry.js} +1 -1
  179. package/dist/ripple/{p-0ebed4b8.system.entry.js → p-1acaa65d.system.entry.js} +1 -1
  180. package/dist/ripple/p-1ace795c.system.entry.js +1 -0
  181. package/dist/ripple/p-1edf9946.system.entry.js +1 -0
  182. package/dist/ripple/p-1f35a8f1.js +16 -0
  183. package/dist/ripple/{p-6cf47163.entry.js → p-1fe3ad2b.entry.js} +1 -1
  184. package/dist/ripple/p-259f7450.system.entry.js +1 -0
  185. package/dist/ripple/{p-6c295beb.entry.js → p-262c75ff.entry.js} +1 -1
  186. package/dist/ripple/{p-099df7b7.system.entry.js → p-27253ed2.system.entry.js} +1 -1
  187. package/dist/ripple/p-28b051a3.system.entry.js +1 -0
  188. package/dist/ripple/p-2a66f447.entry.js +1 -0
  189. package/dist/ripple/p-313b6073.system.js +1 -0
  190. package/dist/ripple/{p-efe7728e.entry.js → p-37553d4e.entry.js} +1 -1
  191. package/dist/ripple/{p-570fb53b.entry.js → p-3a940fd1.entry.js} +1 -1
  192. package/dist/ripple/p-426b392a.entry.js +1 -0
  193. package/dist/ripple/p-557dd7f5.system.entry.js +1 -0
  194. package/dist/ripple/{p-2b6246d9.entry.js → p-57c94258.entry.js} +1 -1
  195. package/dist/ripple/{p-bfc1ab2e.system.entry.js → p-59678b70.system.entry.js} +1 -1
  196. package/dist/ripple/{p-7c2b1682.entry.js → p-5b213951.entry.js} +1 -1
  197. package/dist/ripple/p-5f4686a3.system.js +15 -0
  198. package/dist/ripple/p-68361541.entry.js +1 -0
  199. package/dist/ripple/p-6bf64cc9.system.entry.js +1 -0
  200. package/dist/ripple/p-726b9452.system.js +1 -0
  201. package/dist/ripple/{p-4f581ab3.entry.js → p-76e184fb.entry.js} +1 -1
  202. package/dist/ripple/p-77415d3b.entry.js +1 -0
  203. package/dist/ripple/p-7c2a8479.entry.js +1 -0
  204. package/dist/ripple/p-7ec83929.entry.js +1 -0
  205. package/dist/ripple/p-84a3d723.entry.js +1 -0
  206. package/dist/ripple/{p-269fa39c.system.entry.js → p-87a7ab75.system.entry.js} +1 -1
  207. package/dist/ripple/p-87c13bc7.js +1 -0
  208. package/dist/ripple/{p-43f1298b.js → p-888bec42.js} +0 -0
  209. package/dist/ripple/{p-1e7fc028.entry.js → p-962f51ff.entry.js} +1 -1
  210. package/dist/ripple/{p-e7a7d732.entry.js → p-96898754.entry.js} +1 -1
  211. package/dist/ripple/p-96b8d112.system.entry.js +1 -0
  212. package/dist/ripple/p-9a52566b.system.entry.js +1 -0
  213. package/dist/ripple/p-9a5281d9.system.js +1 -0
  214. package/dist/ripple/p-9bbdf766.entry.js +1 -0
  215. package/dist/ripple/{p-ffb97b6d.system.entry.js → p-9d3b13d8.system.entry.js} +1 -1
  216. package/dist/ripple/{p-03d6014a.system.entry.js → p-9debb1cd.system.entry.js} +1 -1
  217. package/dist/ripple/p-a0635779.entry.js +1 -0
  218. package/dist/ripple/p-a37fe057.system.entry.js +1 -0
  219. package/dist/ripple/{p-fd8070fb.js → p-a6d6eae7.js} +0 -0
  220. package/dist/ripple/{p-22759dd5.entry.js → p-aeda3309.entry.js} +1 -1
  221. package/dist/ripple/{p-6c751341.entry.js → p-b0536ddb.entry.js} +1 -1
  222. package/dist/ripple/{p-a5a47a23.entry.js → p-b5df33e3.entry.js} +1 -1
  223. package/dist/ripple/{p-57f2feb0.entry.js → p-bd5d5a76.entry.js} +1 -1
  224. package/dist/ripple/p-beb10404.system.entry.js +1 -0
  225. package/dist/ripple/{p-e8e2228d.system.entry.js → p-c02c7a93.system.entry.js} +1 -1
  226. package/dist/ripple/p-c2abdcba.js +1 -0
  227. package/dist/ripple/{p-210039cc.system.entry.js → p-c332f020.system.entry.js} +1 -1
  228. package/dist/ripple/p-caaae868.entry.js +1 -0
  229. package/dist/ripple/{p-25b81952.entry.js → p-ccf1547c.entry.js} +1 -1
  230. package/dist/ripple/p-d3438746.system.js +1 -0
  231. package/dist/ripple/{p-64e8fb6e.system.entry.js → p-d8544aaa.system.entry.js} +1 -1
  232. package/dist/ripple/p-daa4d5b2.system.entry.js +1 -0
  233. package/dist/ripple/{p-a1511315.system.entry.js → p-db44eb6f.system.entry.js} +1 -1
  234. package/dist/ripple/p-de192292.system.entry.js +1 -0
  235. package/dist/ripple/p-e8006085.system.entry.js +1 -0
  236. package/dist/ripple/{p-2b63995f.system.entry.js → p-f17076c4.system.entry.js} +1 -1
  237. package/dist/ripple/p-f1a93fa1.system.entry.js +1 -0
  238. package/dist/ripple/p-fc7bf66e.entry.js +1 -0
  239. package/dist/ripple/p-fd8883a5.entry.js +1 -0
  240. package/dist/ripple/p-fd9b3760.system.entry.js +1 -0
  241. package/dist/ripple/p-fe281d40.js +1 -0
  242. package/dist/ripple/ripple.esm.js +1 -1
  243. package/dist/ripple/ripple.js +1 -1
  244. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -0
  245. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  246. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +36 -35
  247. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +27 -0
  248. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -0
  249. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  250. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
  251. package/dist/types/components/wm-button/wm-button.d.ts +43 -43
  252. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  253. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  254. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  255. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  256. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
  257. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
  258. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  259. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
  260. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  261. package/dist/types/components/wm-navigation/wm-navigation.d.ts +28 -30
  262. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  263. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  264. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  265. package/dist/types/components/wm-option/wm-option.d.ts +32 -32
  266. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  267. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  268. package/dist/types/components/wm-select/wm-select.d.ts +66 -66
  269. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  270. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  271. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  272. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  273. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -92
  274. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
  275. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  276. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  277. package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
  278. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  279. package/dist/types/components.d.ts +24 -24
  280. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  281. package/dist/types/global/chartFunctions.d.ts +29 -29
  282. package/dist/types/global/functions.d.ts +42 -42
  283. package/dist/types/global/global.d.ts +1 -1
  284. package/dist/types/global/interfaces.d.ts +44 -44
  285. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  286. package/dist/types/global/services/http-service.d.ts +4 -4
  287. package/dist/types/lang/lang.d.ts +5 -5
  288. package/dist/types/stencil-public-runtime.d.ts +6 -4
  289. package/package.json +47 -47
  290. package/dist/esm-es5/chartFunctions-b24ba065.js +0 -1
  291. package/dist/esm-es5/functions-117d1a51.js +0 -15
  292. package/dist/esm-es5/global-6a9c8257.js +0 -1
  293. package/dist/esm-es5/index-d649a861.js +0 -1
  294. package/dist/ripple/p-0cffec65.entry.js +0 -1
  295. package/dist/ripple/p-13e2891c.system.js +0 -1
  296. package/dist/ripple/p-18261104.system.entry.js +0 -1
  297. package/dist/ripple/p-1b1e006a.entry.js +0 -1
  298. package/dist/ripple/p-26c9f5af.entry.js +0 -1
  299. package/dist/ripple/p-276ed011.js +0 -16
  300. package/dist/ripple/p-2c8a26f2.js +0 -1
  301. package/dist/ripple/p-38bb7f05.system.entry.js +0 -1
  302. package/dist/ripple/p-50be3b44.js +0 -1
  303. package/dist/ripple/p-5176b826.system.js +0 -15
  304. package/dist/ripple/p-5627e44d.entry.js +0 -1
  305. package/dist/ripple/p-5d6cc9da.system.js +0 -1
  306. package/dist/ripple/p-5e164260.system.entry.js +0 -1
  307. package/dist/ripple/p-6f59ed45.js +0 -1
  308. package/dist/ripple/p-772576d7.system.entry.js +0 -1
  309. package/dist/ripple/p-7779bfbe.system.entry.js +0 -1
  310. package/dist/ripple/p-81ddf5a0.entry.js +0 -1
  311. package/dist/ripple/p-83d22032.system.entry.js +0 -1
  312. package/dist/ripple/p-846e9391.entry.js +0 -1
  313. package/dist/ripple/p-8a96b188.system.entry.js +0 -1
  314. package/dist/ripple/p-8cf7ce7e.system.entry.js +0 -1
  315. package/dist/ripple/p-969af068.system.entry.js +0 -1
  316. package/dist/ripple/p-9a4aca88.system.entry.js +0 -1
  317. package/dist/ripple/p-9aa6cd9f.entry.js +0 -1
  318. package/dist/ripple/p-9c20bc1f.system.entry.js +0 -1
  319. package/dist/ripple/p-9d02957d.system.js +0 -1
  320. package/dist/ripple/p-9d49f21e.entry.js +0 -1
  321. package/dist/ripple/p-9d8c246d.system.entry.js +0 -1
  322. package/dist/ripple/p-9df8a520.entry.js +0 -1
  323. package/dist/ripple/p-a1a2efca.system.entry.js +0 -1
  324. package/dist/ripple/p-a224d536.system.js +0 -1
  325. package/dist/ripple/p-b16373b9.system.entry.js +0 -1
  326. package/dist/ripple/p-b547bcf2.entry.js +0 -1
  327. package/dist/ripple/p-c8bb4b2b.entry.js +0 -1
  328. package/dist/ripple/p-d09fb6b5.entry.js +0 -1
  329. package/dist/ripple/p-e1b076be.entry.js +0 -1
  330. package/dist/ripple/p-ebae8cae.system.entry.js +0 -1
  331. package/dist/ripple/p-f54c4b0e.system.js +0 -1
@@ -3950,11 +3950,17 @@ function icuUnitToEcma(unit) {
3950
3950
  return unit.replace(/^(.*?)-/, '');
3951
3951
  }
3952
3952
  var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
3953
- var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?$/g;
3953
+ var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?[rs]?$/g;
3954
3954
  var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g;
3955
3955
  var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;
3956
3956
  function parseSignificantPrecision(str) {
3957
3957
  var result = {};
3958
+ if (str[str.length - 1] === 'r') {
3959
+ result.roundingPriority = 'morePrecision';
3960
+ }
3961
+ else if (str[str.length - 1] === 's') {
3962
+ result.roundingPriority = 'lessPrecision';
3963
+ }
3958
3964
  str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {
3959
3965
  // @@@ case
3960
3966
  if (typeof g2 !== 'string') {
@@ -4181,8 +4187,13 @@ function parseNumberSkeleton(tokens) {
4181
4187
  }
4182
4188
  return '';
4183
4189
  });
4184
- if (token.options.length) {
4185
- result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));
4190
+ var opt = token.options[0];
4191
+ // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display
4192
+ if (opt === 'w') {
4193
+ result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });
4194
+ }
4195
+ else if (opt) {
4196
+ result = __assign(__assign({}, result), parseSignificantPrecision(opt));
4186
4197
  }
4187
4198
  continue;
4188
4199
  }
@@ -4204,8 +4215,8 @@ function parseNumberSkeleton(tokens) {
4204
4215
  }
4205
4216
 
4206
4217
  var _a;
4207
- var SPACE_SEPARATOR_START_REGEX = new RegExp("^" + SPACE_SEPARATOR_REGEX.source + "*");
4208
- var SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + "*$");
4218
+ var SPACE_SEPARATOR_START_REGEX = new RegExp("^".concat(SPACE_SEPARATOR_REGEX.source, "*"));
4219
+ var SPACE_SEPARATOR_END_REGEX = new RegExp("".concat(SPACE_SEPARATOR_REGEX.source, "*$"));
4209
4220
  function createLocation(start, end) {
4210
4221
  return { start: start, end: end };
4211
4222
  }
@@ -4452,7 +4463,7 @@ var Parser = /** @class */ (function () {
4452
4463
  return {
4453
4464
  val: {
4454
4465
  type: TYPE.literal,
4455
- value: "<" + tagName + "/>",
4466
+ value: "<".concat(tagName, "/>"),
4456
4467
  location: createLocation(startPosition, this.clonePosition()),
4457
4468
  },
4458
4469
  err: null,
@@ -5057,7 +5068,7 @@ var Parser = /** @class */ (function () {
5057
5068
  }
5058
5069
  var code = codePointAt(this.message, offset);
5059
5070
  if (code === undefined) {
5060
- throw Error("Offset " + offset + " is at invalid UTF-16 code unit boundary");
5071
+ throw Error("Offset ".concat(offset, " is at invalid UTF-16 code unit boundary"));
5061
5072
  }
5062
5073
  return code;
5063
5074
  };
@@ -5125,7 +5136,7 @@ var Parser = /** @class */ (function () {
5125
5136
  */
5126
5137
  Parser.prototype.bumpTo = function (targetOffset) {
5127
5138
  if (this.offset() > targetOffset) {
5128
- throw Error("targetOffset " + targetOffset + " must be greater than or equal to the current offset " + this.offset());
5139
+ throw Error("targetOffset ".concat(targetOffset, " must be greater than or equal to the current offset ").concat(this.offset()));
5129
5140
  }
5130
5141
  targetOffset = Math.min(targetOffset, this.message.length);
5131
5142
  while (true) {
@@ -5134,7 +5145,7 @@ var Parser = /** @class */ (function () {
5134
5145
  break;
5135
5146
  }
5136
5147
  if (offset > targetOffset) {
5137
- throw Error("targetOffset " + targetOffset + " is at invalid UTF-16 code unit boundary");
5148
+ throw Error("targetOffset ".concat(targetOffset, " is at invalid UTF-16 code unit boundary"));
5138
5149
  }
5139
5150
  this.bump();
5140
5151
  if (this.isEOF()) {
@@ -5600,28 +5611,28 @@ var FormatError = /** @class */ (function (_super) {
5600
5611
  return _this;
5601
5612
  }
5602
5613
  FormatError.prototype.toString = function () {
5603
- return "[formatjs Error: " + this.code + "] " + this.message;
5614
+ return "[formatjs Error: ".concat(this.code, "] ").concat(this.message);
5604
5615
  };
5605
5616
  return FormatError;
5606
5617
  }(Error));
5607
5618
  var InvalidValueError = /** @class */ (function (_super) {
5608
5619
  __extends(InvalidValueError, _super);
5609
5620
  function InvalidValueError(variableId, value, options, originalMessage) {
5610
- return _super.call(this, "Invalid values for \"" + variableId + "\": \"" + value + "\". Options are \"" + Object.keys(options).join('", "') + "\"", ErrorCode.INVALID_VALUE, originalMessage) || this;
5621
+ return _super.call(this, "Invalid values for \"".concat(variableId, "\": \"").concat(value, "\". Options are \"").concat(Object.keys(options).join('", "'), "\""), ErrorCode.INVALID_VALUE, originalMessage) || this;
5611
5622
  }
5612
5623
  return InvalidValueError;
5613
5624
  }(FormatError));
5614
5625
  var InvalidValueTypeError = /** @class */ (function (_super) {
5615
5626
  __extends(InvalidValueTypeError, _super);
5616
5627
  function InvalidValueTypeError(value, type, originalMessage) {
5617
- return _super.call(this, "Value for \"" + value + "\" must be of type " + type, ErrorCode.INVALID_VALUE, originalMessage) || this;
5628
+ return _super.call(this, "Value for \"".concat(value, "\" must be of type ").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;
5618
5629
  }
5619
5630
  return InvalidValueTypeError;
5620
5631
  }(FormatError));
5621
5632
  var MissingValueError = /** @class */ (function (_super) {
5622
5633
  __extends(MissingValueError, _super);
5623
5634
  function MissingValueError(variableId, originalMessage) {
5624
- return _super.call(this, "The intl string context variable \"" + variableId + "\" was not provided to the string \"" + originalMessage + "\"", ErrorCode.MISSING_VALUE, originalMessage) || this;
5635
+ return _super.call(this, "The intl string context variable \"".concat(variableId, "\" was not provided to the string \"").concat(originalMessage, "\""), ErrorCode.MISSING_VALUE, originalMessage) || this;
5625
5636
  }
5626
5637
  return MissingValueError;
5627
5638
  }(FormatError));
@@ -5727,7 +5738,7 @@ originalMessage) {
5727
5738
  ? formats.time[el.style]
5728
5739
  : isDateTimeSkeleton(el.style)
5729
5740
  ? el.style.parsedOptions
5730
- : undefined;
5741
+ : formats.time.medium;
5731
5742
  result.push({
5732
5743
  type: PART_TYPE.literal,
5733
5744
  value: formatters
@@ -5782,7 +5793,7 @@ originalMessage) {
5782
5793
  continue;
5783
5794
  }
5784
5795
  if (isPluralElement(el)) {
5785
- var opt = el.options["=" + value];
5796
+ var opt = el.options["=".concat(value)];
5786
5797
  if (!opt) {
5787
5798
  if (!Intl.PluralRules) {
5788
5799
  throw new FormatError("Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n", ErrorCode.MISSING_INTL_API, originalMessage);
@@ -5853,7 +5864,7 @@ function createDefaultFormatters(cache) {
5853
5864
  for (var _i = 0; _i < arguments.length; _i++) {
5854
5865
  args[_i] = arguments[_i];
5855
5866
  }
5856
- return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();
5867
+ return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
5857
5868
  }, {
5858
5869
  cache: createFastMemoizeCache$1(cache.number),
5859
5870
  strategy: strategies.variadic,
@@ -5864,7 +5875,7 @@ function createDefaultFormatters(cache) {
5864
5875
  for (var _i = 0; _i < arguments.length; _i++) {
5865
5876
  args[_i] = arguments[_i];
5866
5877
  }
5867
- return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();
5878
+ return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
5868
5879
  }, {
5869
5880
  cache: createFastMemoizeCache$1(cache.dateTime),
5870
5881
  strategy: strategies.variadic,
@@ -5875,7 +5886,7 @@ function createDefaultFormatters(cache) {
5875
5886
  for (var _i = 0; _i < arguments.length; _i++) {
5876
5887
  args[_i] = arguments[_i];
5877
5888
  }
5878
- return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();
5889
+ return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();
5879
5890
  }, {
5880
5891
  cache: createFastMemoizeCache$1(cache.pluralRules),
5881
5892
  strategy: strategies.variadic,
@@ -6033,7 +6044,13 @@ var IntlErrorCode;
6033
6044
  var IntlError = /** @class */ (function (_super) {
6034
6045
  __extends(IntlError, _super);
6035
6046
  function IntlError(code, message, exception) {
6036
- var _this = _super.call(this, "[@formatjs/intl Error " + code + "] " + message + " \n" + (exception ? "\n" + exception.message + "\n" + exception.stack : '')) || this;
6047
+ var _this = this;
6048
+ var err = exception
6049
+ ? exception instanceof Error
6050
+ ? exception
6051
+ : new Error(String(exception))
6052
+ : undefined;
6053
+ _this = _super.call(this, "[@formatjs/intl Error ".concat(code, "] ").concat(message, " \n").concat(err ? "\n".concat(err.message, "\n").concat(err.stack) : '')) || this;
6037
6054
  _this.code = code;
6038
6055
  // @ts-ignore just so we don't need to declare dep on @types/node
6039
6056
  if (typeof Error.captureStackTrace === 'function') {
@@ -6065,28 +6082,35 @@ var MissingDataError = /** @class */ (function (_super) {
6065
6082
  }
6066
6083
  return MissingDataError;
6067
6084
  }(IntlError));
6085
+ var IntlFormatError = /** @class */ (function (_super) {
6086
+ __extends(IntlFormatError, _super);
6087
+ function IntlFormatError(message, locale, exception) {
6088
+ return _super.call(this, IntlErrorCode.FORMAT_ERROR, "".concat(message, " \nLocale: ").concat(locale, "\n"), exception) || this;
6089
+ }
6090
+ return IntlFormatError;
6091
+ }(IntlError));
6068
6092
  var MessageFormatError = /** @class */ (function (_super) {
6069
6093
  __extends(MessageFormatError, _super);
6070
6094
  function MessageFormatError(message, locale, descriptor, exception) {
6071
- var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, message + " \nLocale: " + locale + "\nMessageID: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + "\nDefault Message: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + "\nDescription: " + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + " \n", exception) || this;
6095
+ var _this = _super.call(this, "".concat(message, " \nMessageID: ").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, "\nDefault Message: ").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, "\nDescription: ").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, " \n"), locale, exception) || this;
6072
6096
  _this.descriptor = descriptor;
6073
6097
  return _this;
6074
6098
  }
6075
6099
  return MessageFormatError;
6076
- }(IntlError));
6100
+ }(IntlFormatError));
6077
6101
  var MissingTranslationError = /** @class */ (function (_super) {
6078
6102
  __extends(MissingTranslationError, _super);
6079
6103
  function MissingTranslationError(descriptor, locale) {
6080
- var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, "Missing message: \"" + descriptor.id + "\" for locale \"" + locale + "\", using " + (descriptor.defaultMessage ? 'default message' : 'id') + " as fallback.") || this;
6104
+ var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, "Missing message: \"".concat(descriptor.id, "\" for locale \"").concat(locale, "\", using ").concat(descriptor.defaultMessage ? 'default message' : 'id', " as fallback.")) || this;
6081
6105
  _this.descriptor = descriptor;
6082
6106
  return _this;
6083
6107
  }
6084
6108
  return MissingTranslationError;
6085
6109
  }(IntlError));
6086
6110
 
6087
- function filterProps(props, whitelist, defaults) {
6111
+ function filterProps(props, allowlist, defaults) {
6088
6112
  if (defaults === void 0) { defaults = {}; }
6089
- return whitelist.reduce(function (filtered, name) {
6113
+ return allowlist.reduce(function (filtered, name) {
6090
6114
  if (name in props) {
6091
6115
  filtered[name] = props[name];
6092
6116
  }
@@ -6098,13 +6122,17 @@ function filterProps(props, whitelist, defaults) {
6098
6122
  }
6099
6123
  var defaultErrorHandler = function (error) {
6100
6124
  };
6125
+ var defaultWarnHandler = function (warning) {
6126
+ };
6101
6127
  var DEFAULT_INTL_CONFIG = {
6102
6128
  formats: {},
6103
6129
  messages: {},
6104
6130
  timeZone: undefined,
6105
6131
  defaultLocale: 'en',
6106
6132
  defaultFormats: {},
6133
+ fallbackOnEmptyString: true,
6107
6134
  onError: defaultErrorHandler,
6135
+ onWarn: defaultWarnHandler,
6108
6136
  };
6109
6137
  function createIntlCache() {
6110
6138
  return {
@@ -6146,7 +6174,7 @@ function createFormatters(cache) {
6146
6174
  for (var _i = 0; _i < arguments.length; _i++) {
6147
6175
  args[_i] = arguments[_i];
6148
6176
  }
6149
- return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();
6177
+ return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
6150
6178
  }, {
6151
6179
  cache: createFastMemoizeCache(cache.dateTime),
6152
6180
  strategy: strategies.variadic,
@@ -6157,7 +6185,7 @@ function createFormatters(cache) {
6157
6185
  for (var _i = 0; _i < arguments.length; _i++) {
6158
6186
  args[_i] = arguments[_i];
6159
6187
  }
6160
- return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();
6188
+ return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
6161
6189
  }, {
6162
6190
  cache: createFastMemoizeCache(cache.number),
6163
6191
  strategy: strategies.variadic,
@@ -6168,7 +6196,7 @@ function createFormatters(cache) {
6168
6196
  for (var _i = 0; _i < arguments.length; _i++) {
6169
6197
  args[_i] = arguments[_i];
6170
6198
  }
6171
- return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();
6199
+ return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();
6172
6200
  }, {
6173
6201
  cache: createFastMemoizeCache(cache.pluralRules),
6174
6202
  strategy: strategies.variadic,
@@ -6191,7 +6219,7 @@ function createFormatters(cache) {
6191
6219
  for (var _i = 0; _i < arguments.length; _i++) {
6192
6220
  args[_i] = arguments[_i];
6193
6221
  }
6194
- return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args)))();
6222
+ return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();
6195
6223
  }, {
6196
6224
  cache: createFastMemoizeCache(cache.relativeTime),
6197
6225
  strategy: strategies.variadic,
@@ -6202,7 +6230,7 @@ function createFormatters(cache) {
6202
6230
  for (var _i = 0; _i < arguments.length; _i++) {
6203
6231
  args[_i] = arguments[_i];
6204
6232
  }
6205
- return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args)))();
6233
+ return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();
6206
6234
  }, {
6207
6235
  cache: createFastMemoizeCache(cache.list),
6208
6236
  strategy: strategies.variadic,
@@ -6212,7 +6240,7 @@ function createFormatters(cache) {
6212
6240
  for (var _i = 0; _i < arguments.length; _i++) {
6213
6241
  args[_i] = arguments[_i];
6214
6242
  }
6215
- return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args)))();
6243
+ return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();
6216
6244
  }, {
6217
6245
  cache: createFastMemoizeCache(cache.displayNames),
6218
6246
  strategy: strategies.variadic,
@@ -6228,7 +6256,7 @@ function getNamedFormat(formats, type, name, onError) {
6228
6256
  if (format) {
6229
6257
  return format;
6230
6258
  }
6231
- onError(new UnsupportedFormatterError("No " + type + " format named: " + name));
6259
+ onError(new UnsupportedFormatterError("No ".concat(type, " format named: ").concat(name)));
6232
6260
  }
6233
6261
 
6234
6262
  /**
@@ -6263,7 +6291,7 @@ function deepMergeFormatsAndSetTimeZone(f1, timeZone) {
6263
6291
  return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });
6264
6292
  }
6265
6293
  function formatMessage(_a, state, messageDescriptor, values, opts) {
6266
- var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;
6294
+ var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;
6267
6295
  if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }
6268
6296
  var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;
6269
6297
  // `id` is a required field of a Message Descriptor.
@@ -6293,6 +6321,9 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
6293
6321
  formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);
6294
6322
  defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);
6295
6323
  if (!message) {
6324
+ if (fallbackOnEmptyString === false && message === '') {
6325
+ return message;
6326
+ }
6296
6327
  if (!defaultMessage ||
6297
6328
  (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {
6298
6329
  // This prevents warnings from littering the console in development
@@ -6306,7 +6337,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
6306
6337
  return formatter.format(values);
6307
6338
  }
6308
6339
  catch (e) {
6309
- onError(new MessageFormatError("Error formatting default message for: \"" + id + "\", rendering default message verbatim", locale, messageDescriptor, e));
6340
+ onError(new MessageFormatError("Error formatting default message for: \"".concat(id, "\", rendering default message verbatim"), locale, messageDescriptor, e));
6310
6341
  return typeof defaultMessage === 'string' ? defaultMessage : id;
6311
6342
  }
6312
6343
  }
@@ -6318,7 +6349,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
6318
6349
  return formatter.format(values);
6319
6350
  }
6320
6351
  catch (e) {
6321
- onError(new MessageFormatError("Error formatting message: \"" + id + "\", using " + (defaultMessage ? 'default message' : 'id') + " as fallback.", locale, messageDescriptor, e));
6352
+ onError(new MessageFormatError("Error formatting message: \"".concat(id, "\", using ").concat(defaultMessage ? 'default message' : 'id', " as fallback."), locale, messageDescriptor, e));
6322
6353
  }
6323
6354
  if (defaultMessage) {
6324
6355
  try {
@@ -6326,7 +6357,7 @@ function formatMessage(_a, state, messageDescriptor, values, opts) {
6326
6357
  return formatter.format(values);
6327
6358
  }
6328
6359
  catch (e) {
6329
- onError(new MessageFormatError("Error formatting the default message for: \"" + id + "\", rendering message verbatim", locale, messageDescriptor, e));
6360
+ onError(new MessageFormatError("Error formatting the default message for: \"".concat(id, "\", rendering message verbatim"), locale, messageDescriptor, e));
6330
6361
  }
6331
6362
  }
6332
6363
  if (typeof message === 'string') {
@@ -6364,9 +6395,7 @@ function getFormatter$2(_a, type, getDateTimeFormat, options) {
6364
6395
  if (options === void 0) { options = {}; }
6365
6396
  var format = options.format;
6366
6397
  var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));
6367
- var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS,
6368
- // @ts-expect-error es2020 has a lot stuff from es2021 bleed in
6369
- defaults);
6398
+ var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);
6370
6399
  if (type === 'time' &&
6371
6400
  !filteredOptions.hour &&
6372
6401
  !filteredOptions.minute &&
@@ -6483,7 +6512,7 @@ var LIST_FORMAT_OPTIONS = [
6483
6512
  ];
6484
6513
  var now = Date.now();
6485
6514
  function generateToken(i) {
6486
- return now + "_" + i + "_" + now;
6515
+ return "".concat(now, "_").concat(i, "_").concat(now);
6487
6516
  }
6488
6517
  function formatList(opts, getListFormat, values, options) {
6489
6518
  if (options === void 0) { options = {}; }
@@ -6550,7 +6579,7 @@ function formatPlural(_a, getPluralRules, value, options) {
6550
6579
  return getPluralRules(locale, filteredOptions).select(value);
6551
6580
  }
6552
6581
  catch (e) {
6553
- onError(new MessageFormatError('Error formatting plural.', e));
6582
+ onError(new IntlFormatError('Error formatting plural.', locale, e));
6554
6583
  }
6555
6584
  return 'other';
6556
6585
  }
@@ -6577,7 +6606,7 @@ function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options)
6577
6606
  return getFormatter$1(config, getRelativeTimeFormat, options).format(value, unit);
6578
6607
  }
6579
6608
  catch (e) {
6580
- config.onError(new MessageFormatError('Error formatting relative time.', e));
6609
+ config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));
6581
6610
  }
6582
6611
  return String(value);
6583
6612
  }
@@ -6641,9 +6670,10 @@ function messagesContainString(messages) {
6641
6670
  return typeof firstMessage === 'string';
6642
6671
  }
6643
6672
  function verifyConfigMessages(config) {
6644
- if (config.defaultRichTextElements &&
6673
+ if (config.onWarn &&
6674
+ config.defaultRichTextElements &&
6645
6675
  messagesContainString(config.messages || {})) {
6646
- console.warn("[@formatjs/intl] \"defaultRichTextElements\" was specified but \"message\" was not pre-compiled. \nPlease consider using \"@formatjs/cli\" to pre-compile your messages for performance.\nFor more details see https://formatjs.io/docs/getting-started/message-distribution");
6676
+ config.onWarn("[@formatjs/intl] \"defaultRichTextElements\" was specified but \"message\" was not pre-compiled. \nPlease consider using \"@formatjs/cli\" to pre-compile your messages for performance.\nFor more details see https://formatjs.io/docs/getting-started/message-distribution");
6647
6677
  }
6648
6678
  }
6649
6679
  /**
@@ -6657,7 +6687,7 @@ function createIntl(config, cache) {
6657
6687
  var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;
6658
6688
  if (!locale) {
6659
6689
  if (onError) {
6660
- onError(new InvalidConfigError("\"locale\" was not configured, using \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details"));
6690
+ onError(new InvalidConfigError("\"locale\" was not configured, using \"".concat(defaultLocale, "\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details")));
6661
6691
  }
6662
6692
  // Since there's no registered locale data for `locale`, this will
6663
6693
  // fallback to the `defaultLocale` to make sure things can render.
@@ -6667,481 +6697,481 @@ function createIntl(config, cache) {
6667
6697
  resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';
6668
6698
  }
6669
6699
  else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {
6670
- onError(new MissingDataError("Missing locale data for locale: \"" + locale + "\" in Intl.NumberFormat. Using default locale: \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details"));
6700
+ onError(new MissingDataError("Missing locale data for locale: \"".concat(locale, "\" in Intl.NumberFormat. Using default locale: \"").concat(defaultLocale, "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details")));
6671
6701
  }
6672
6702
  else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&
6673
6703
  onError) {
6674
- onError(new MissingDataError("Missing locale data for locale: \"" + locale + "\" in Intl.DateTimeFormat. Using default locale: \"" + defaultLocale + "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details"));
6704
+ onError(new MissingDataError("Missing locale data for locale: \"".concat(locale, "\" in Intl.DateTimeFormat. Using default locale: \"").concat(defaultLocale, "\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details")));
6675
6705
  }
6676
6706
  verifyConfigMessages(resolvedConfig);
6677
- return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });
6707
+ return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });
6678
6708
  }
6679
6709
 
6680
- const DEFAULT_LANGUAGE = "en";
6681
- function getBrowserLang() {
6682
- const langAttr = document.documentElement.getAttribute("lang");
6683
- if (!!langAttr) {
6684
- return langAttr;
6685
- }
6686
- else if (window.navigator && window.navigator.language) {
6687
- const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
6688
- return lang.slice(0, 2);
6689
- }
6690
- else {
6691
- return DEFAULT_LANGUAGE;
6692
- }
6693
- }
6694
- // prevents memory leak
6695
- const cache = createIntlCache();
6696
- const locale = getBrowserLang();
6697
- const intl = createIntl({
6698
- locale: locale,
6699
- defaultLocale: "en",
6700
- messages: lang[locale] || en,
6701
- }, cache);
6702
- function generateId() {
6703
- return "wmcl-" + Math.random().toString(36).substr(2, 10);
6704
- }
6705
- // limits how many times a function fires
6706
- // use when the function should run periodically, but not too often (e.g. window resize)
6707
- function throttle(fn, wait) {
6708
- let timeout;
6709
- let shouldWait = false;
6710
- return function () {
6711
- const context = this;
6712
- if (!shouldWait) {
6713
- fn.apply(context, arguments);
6714
- shouldWait = true;
6715
- clearTimeout(timeout);
6716
- timeout = setTimeout(function () {
6717
- shouldWait = false;
6718
- }, wait);
6719
- }
6720
- };
6721
- }
6722
- // waits until it hasn't been called for [timeout] ms.
6723
- // use when the function should run only after something (event) is done firing
6724
- function debounce(fn, wait) {
6725
- let timeout;
6726
- return function () {
6727
- const context = this;
6728
- const functionCall = () => fn.apply(context, arguments);
6729
- clearTimeout(timeout);
6730
- timeout = setTimeout(functionCall, wait);
6731
- };
6732
- }
6733
- function getTextDir() {
6734
- const dir = document.querySelector("html").getAttribute("dir");
6735
- return dir ? dir.toLowerCase() : "";
6736
- }
6737
- function getPosition(el) {
6738
- const coords = el.getBoundingClientRect();
6739
- let x = coords.x;
6740
- let y = coords.y;
6741
- // Edge doesn't have x and y
6742
- if (!x) {
6743
- if (getTextDir() === "rtl") {
6744
- x = coords.right;
6745
- }
6746
- else {
6747
- x = coords.left;
6748
- }
6749
- y = coords.top;
6750
- }
6751
- return { x, y };
6752
- }
6753
- function findParentWithScrollbar(el) {
6754
- while (!!el) {
6755
- if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
6756
- return el;
6757
- }
6758
- el = el.parentElement;
6759
- }
6760
- }
6761
- function findParentWithHiddenOverflow(el) {
6762
- while (!!el) {
6763
- if (window.getComputedStyle(el).overflowY !== "visible") {
6764
- return el;
6765
- }
6766
- el = el.parentElement;
6767
- }
6768
- }
6769
- function getClosableElementMeasurements(fixedEl, closableEl) {
6770
- const parent = findParentWithHiddenOverflow(fixedEl);
6771
- // if parent is not found, measurements are checked against the viewport
6772
- return {
6773
- closableElHeight: closableEl.clientHeight,
6774
- closableElWidth: closableEl.clientWidth,
6775
- // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6776
- // to get space below the el -> height of viewport minus boundingClientRect.bottom
6777
- spaceAbove: parent
6778
- ? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
6779
- : fixedEl.getBoundingClientRect().top,
6780
- // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6781
- // to get space below the el -> height of viewport minus boundingClientRect.bottom
6782
- spaceBelow: parent
6783
- ? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
6784
- : document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
6785
- spaceLeft: parent
6786
- ? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
6787
- : fixedEl.getBoundingClientRect().left,
6788
- spaceRight: parent
6789
- ? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
6790
- : document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
6791
- };
6792
- }
6793
- function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
6794
- closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6795
- offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6796
- offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6797
- ) {
6798
- const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6799
- //we want to open up only if there's not enough space below AND there is enough space above
6800
- const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
6801
- return openUp;
6802
- }
6803
- function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
6804
- closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6805
- offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6806
- offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6807
- ) {
6808
- const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6809
- //we want to open up only if there's not enough space below AND there is enough space above
6810
- const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
6811
- return openDown;
6812
- }
6813
- function shouldShiftRight(fixedEl, closableEl) {
6814
- const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6815
- const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
6816
- return needsSpaceLeft;
6817
- }
6818
- function shouldShiftLeft(fixedEl, closableEl) {
6819
- const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6820
- const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
6821
- return needsSpaceRight;
6822
- }
6823
- function adjustTooltipPosition(tPos, el, tooltipEl) {
6824
- // position must be reset before measurements are taken in adjustTooltipPosition
6825
- // otherwise text-wrapping from previous position makes width measurement inconsistent
6826
- tooltipEl.style.top = "";
6827
- tooltipEl.style.left = "";
6828
- const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
6829
- const tooltipWidth = tooltipEl.getBoundingClientRect().width;
6830
- const tooltipHeight = tooltipEl.getBoundingClientRect().height;
6831
- const enoughSpaceAbove = spaceAbove > tooltipHeight;
6832
- const enoughSpaceBelow = spaceBelow > tooltipHeight;
6833
- // a tooltip should never be closer than 24px to the edge of a screen
6834
- const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
6835
- const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
6836
- const swapAbove = (position) => {
6837
- return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
6838
- };
6839
- const swapBelow = (position) => {
6840
- return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
6841
- };
6842
- const swapLeft = (position, centeredPosition) => {
6843
- if (!enoughSpaceLeft && enoughSpaceRight) {
6844
- position = position.replace("left", "right");
6845
- }
6846
- else if (!enoughSpaceLeft && !enoughSpaceRight) {
6847
- position = centeredPosition;
6848
- }
6849
- return position;
6850
- };
6851
- const swapRight = (position, centeredPosition) => {
6852
- if (!enoughSpaceRight && enoughSpaceLeft) {
6853
- position = position.replace("right", "left");
6854
- }
6855
- else if (!enoughSpaceRight && !enoughSpaceLeft) {
6856
- position = centeredPosition;
6857
- }
6858
- return position;
6859
- };
6860
- // horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
6861
- switch (tPos) {
6862
- case "left":
6863
- tPos = swapLeft(tPos, "bottom");
6864
- case "right":
6865
- tPos = swapRight(tPos, "bottom");
6866
- case "top-left":
6867
- tPos = swapLeft(tPos, "top");
6868
- tPos = swapAbove(tPos);
6869
- case "top-right":
6870
- tPos = swapRight(tPos, "top");
6871
- tPos = swapAbove(tPos);
6872
- case "bottom-left":
6873
- tPos = swapLeft(tPos, "bottom");
6874
- tPos = swapBelow(tPos);
6875
- case "bottom-right":
6876
- tPos = swapRight(tPos, "bottom");
6877
- tPos = swapBelow(tPos);
6878
- case "top":
6879
- tPos = swapAbove(tPos);
6880
- case "bottom":
6881
- tPos = swapBelow(tPos);
6882
- }
6883
- return tPos;
6884
- }
6885
- function hasRoomRight(x, spaceNeeded) {
6886
- let horizOffset = 0;
6887
- // if (getTextDir() === "ltr") {
6888
- if (x.type === "click") {
6889
- // if it's a mouse event, deal with mouse coords
6890
- horizOffset = x.clientX;
6891
- // if it's a focus event, the offset is 0
6892
- }
6893
- else if (x.type === "focus") {
6894
- horizOffset = 0;
6895
- }
6896
- else {
6897
- // otherwise an element was passed, calculate how far it is from the edge of the window
6898
- let el = x; // re-assignment is for clarity
6899
- while (el) {
6900
- if (el.tagName == "BODY") {
6901
- // deal with browser quirks with body/window/document and page scroll
6902
- var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
6903
- horizOffset += el.offsetLeft - xScroll + el.clientLeft;
6904
- }
6905
- else {
6906
- // for all other non-BODY elements
6907
- horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
6908
- }
6909
- el = el.offsetParent;
6910
- }
6911
- // }
6912
- }
6913
- return window.innerWidth - horizOffset >= spaceNeeded;
6914
- }
6915
- function checkForActiveElInShadow(element) {
6916
- while (element && element.shadowRoot) {
6917
- element = element.shadowRoot.activeElement;
6918
- }
6919
- return element;
6920
- }
6921
- function checkForFocusableElInShadow(element) {
6922
- const selectors = [
6923
- "button",
6924
- "a",
6925
- "input",
6926
- "select",
6927
- "textarea",
6928
- "wm-button",
6929
- "wm-search",
6930
- "wm-select",
6931
- "wm-action-menu",
6932
- "wm-tab-item",
6933
- "wm-datepicker",
6934
- ];
6935
- let focusableEl = element;
6936
- selectors.forEach((selector) => {
6937
- if (focusableEl && focusableEl.shadowRoot) {
6938
- let elInShadow = focusableEl.shadowRoot.querySelector(selector);
6939
- if (elInShadow) {
6940
- if (selector.startsWith("wm-")) {
6941
- focusableEl = checkForFocusableElInShadow(elInShadow);
6942
- }
6943
- else {
6944
- focusableEl = elInShadow;
6945
- }
6946
- }
6947
- }
6948
- });
6949
- return focusableEl;
6950
- }
6951
- function isFocusable(element) {
6952
- if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
6953
- return true;
6954
- }
6955
- if (element.disabled) {
6956
- return false;
6957
- }
6958
- switch (element.nodeName) {
6959
- case "A":
6960
- return !!element.href && element.rel != "ignore";
6961
- case "INPUT":
6962
- return element.type != "hidden" && element.type != "file";
6963
- case "BUTTON":
6964
- case "SELECT":
6965
- case "TEXTAREA":
6966
- case "WM-BUTTON":
6967
- case "WM-SELECT":
6968
- case "WM-ACTION-MENU":
6969
- case "WM-DATEPICKER":
6970
- case "WM-TIMEPICKER":
6971
- case "WM-INPUT":
6972
- case "WM-TAG-INPUT":
6973
- case "WM-TAB-ITEM":
6974
- case "WM-SEARCH":
6975
- return true;
6976
- default:
6977
- return false;
6978
- }
6979
- }
6980
- function getFirstFocusableDescendant(element) {
6981
- if (isFocusable(element)) {
6982
- return checkForFocusableElInShadow(element);
6983
- }
6984
- else if (element.childNodes.length > 0) {
6985
- element.childNodes.forEach((i) => {
6986
- const childEl = getFirstFocusableDescendant(i);
6987
- return childEl && checkForFocusableElInShadow(childEl);
6988
- });
6989
- }
6990
- }
6991
- function hasValidType(file, types) {
6992
- const acceptedExtensions = types.split(" ");
6993
- const parts = file.name && file.name.split(".");
6994
- const ext = parts && parts.length > 1 && parts[parts.length - 1];
6995
- return ext
6996
- ? acceptedExtensions.includes(ext.toLowerCase())
6997
- : // fallback: if we couldn't obtain an extension,
6998
- // validate based on MIME type...
6999
- !!file.type
7000
- ? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
7001
- : // ...and if that failed too, accept the file
7002
- // as it's preferable to accept an invalid file
7003
- // than refusing a valid one (back-end will take care of what slips through)
7004
- true;
7005
- }
7006
- // takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
7007
- function getAcceptedMimeTypesList(acceptedExtensions) {
7008
- // this is just a list of common file types (regardless of whether they are/can be valid or not)
7009
- // front end checks are just a convenience to users, independent of security.
7010
- // it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
7011
- const lookupTable = {
7012
- aac: ["audio/aac"],
7013
- abw: ["application/x-abiword"],
7014
- arc: ["application/x-freearc"],
7015
- avi: ["video/x-msvideo"],
7016
- azw: ["application/vnd.amazon.ebook"],
7017
- bin: ["application/octet-stream"],
7018
- bmp: ["image/bmp"],
7019
- bz: ["application/x-bzip"],
7020
- bz2: ["application/x-bzip2"],
7021
- csh: ["application/x-csh"],
7022
- css: ["text/css"],
7023
- csv: ["text/csv"],
7024
- doc: ["application/msword"],
7025
- docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
7026
- eot: ["application/vnd.ms-fontobject"],
7027
- epub: ["application/epub+zip"],
7028
- gz: ["application/gzip"],
7029
- gif: ["image/gif"],
7030
- htm: ["text/html"],
7031
- html: ["text/html"],
7032
- ico: ["image/vnd.microsoft.icon"],
7033
- ics: ["text/calendar"],
7034
- jar: ["application/java-archive"],
7035
- jpeg: ["image/jpeg"],
7036
- jpg: ["image/jpeg"],
7037
- js: ["text/javascript"],
7038
- json: ["application/json"],
7039
- jsonld: ["application/ld+json"],
7040
- log: ["text/plain"],
7041
- mid: ["audio/x-midi"],
7042
- midi: ["audio/x-midi"],
7043
- mjs: ["text/javascript"],
7044
- mp3: ["audio/mpeg"],
7045
- mpeg: ["video/mpeg"],
7046
- mpkg: ["application/vnd.apple.installer+xml"],
7047
- odp: ["application/vnd.oasis.opendocument.presentation"],
7048
- ods: ["application/vnd.oasis.opendocument.spreadsheet"],
7049
- odt: ["application/vnd.oasis.opendocument.text"],
7050
- oga: ["audio/ogg"],
7051
- ogv: ["video/ogg"],
7052
- ogx: ["application/ogg"],
7053
- opus: ["audio/opus"],
7054
- otf: ["font/otf"],
7055
- png: ["image/png"],
7056
- pdf: ["application/pdf"],
7057
- php: ["application/php"],
7058
- ppt: ["application/vnd.ms-powerpoint"],
7059
- pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
7060
- rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
7061
- rtf: ["application/rtf"],
7062
- sh: ["application/x-sh"],
7063
- svg: ["image/svg+xml"],
7064
- swf: ["application/x-shockwave-flash"],
7065
- tar: ["application/x-tar"],
7066
- tif: ["image/tiff"],
7067
- tiff: ["image/tiff"],
7068
- ts: ["video/mp2t"],
7069
- ttf: ["font/ttf"],
7070
- txt: ["text/plain"],
7071
- vsd: ["application/vnd.visio"],
7072
- wav: ["audio/wav"],
7073
- weba: ["audio/webm"],
7074
- webm: ["video/webm"],
7075
- webp: ["image/webp"],
7076
- woff: ["font/woff"],
7077
- woff2: ["font/woff2"],
7078
- xhtml: ["application/xhtml+xml"],
7079
- xls: ["application/vnd.ms-excel"],
7080
- xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
7081
- xml: ["application/xml", "text/xml"],
7082
- xul: ["application/vnd.mozilla.xul+xml"],
7083
- zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
7084
- "3gp": ["video/3gpp", "audio/3gpp"],
7085
- "3g2": ["video/3gpp2", "audio/3gpp2"],
7086
- "7z": ["application/x-7z-compressed"],
7087
- };
7088
- return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
7089
- }
7090
- function snakeCaseToCamelCase(str) {
7091
- const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
7092
- if (snakeCaseRegexp.test(str)) {
7093
- let camelCase = "";
7094
- let arr = str.split("_");
7095
- arr.forEach((word, idx) => {
7096
- camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
7097
- });
7098
- return camelCase;
7099
- }
7100
- else {
7101
- return str;
7102
- }
7103
- }
7104
- function getNewIndexToFocus(currentIndex, direction, listLength) {
7105
- let newIndex = currentIndex;
7106
- if (direction === "ArrowDown") {
7107
- newIndex = (currentIndex + 1) % listLength;
7108
- }
7109
- if (direction === "ArrowUp") {
7110
- newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
7111
- }
7112
- return newIndex;
7113
- }
7114
- function isRelatedTarget(ev, id) {
7115
- // used for onBlur events to check the element that has been clicked
7116
- const ids = id.split(" ");
7117
- return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
7118
- }
7119
- function toBool(val) {
7120
- // string "false" needs to be treated as bool False because react wrappers convert bool to string.
7121
- return val == "false" ? false : !!val;
7122
- }
7123
- /*
7124
- * this is going to be needed to solve the extra tabbing on navigator
7125
- * and for programmatic focus of tabs
7126
- * Here's a draft, not bug proof, see:
7127
- * https://stackoverflow.com/a/10730308/3741713
7128
-
7129
- function getKeyboardFocusableElements(element = document) {
7130
- const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
7131
- return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
7132
- }
7133
-
7134
- export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
7135
- const els = getKeyboardFocusableElements();
7136
- const current = els.indexOf(element);
7137
- return els[current - 1] as HTMLElement;
7138
- }
7139
-
7140
- export function getNextKeyboardFocusableElement(element: HTMLElement) {
7141
- const els = getKeyboardFocusableElements();
7142
- const current = els.indexOf(element);
7143
- return els[current + 1] as HTMLElement;
7144
- }
6710
+ const DEFAULT_LANGUAGE = "en";
6711
+ function getBrowserLang() {
6712
+ const langAttr = document.documentElement.getAttribute("lang");
6713
+ if (!!langAttr) {
6714
+ return langAttr;
6715
+ }
6716
+ else if (window.navigator && window.navigator.language) {
6717
+ const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
6718
+ return lang.slice(0, 2);
6719
+ }
6720
+ else {
6721
+ return DEFAULT_LANGUAGE;
6722
+ }
6723
+ }
6724
+ // prevents memory leak
6725
+ const cache = createIntlCache();
6726
+ const locale = getBrowserLang();
6727
+ const intl = createIntl({
6728
+ locale: locale,
6729
+ defaultLocale: "en",
6730
+ messages: lang[locale] || en,
6731
+ }, cache);
6732
+ function generateId() {
6733
+ return "wmcl-" + Math.random().toString(36).substr(2, 10);
6734
+ }
6735
+ // limits how many times a function fires
6736
+ // use when the function should run periodically, but not too often (e.g. window resize)
6737
+ function throttle(fn, wait) {
6738
+ let timeout;
6739
+ let shouldWait = false;
6740
+ return function () {
6741
+ const context = this;
6742
+ if (!shouldWait) {
6743
+ fn.apply(context, arguments);
6744
+ shouldWait = true;
6745
+ clearTimeout(timeout);
6746
+ timeout = setTimeout(function () {
6747
+ shouldWait = false;
6748
+ }, wait);
6749
+ }
6750
+ };
6751
+ }
6752
+ // waits until it hasn't been called for [timeout] ms.
6753
+ // use when the function should run only after something (event) is done firing
6754
+ function debounce(fn, wait) {
6755
+ let timeout;
6756
+ return function () {
6757
+ const context = this;
6758
+ const functionCall = () => fn.apply(context, arguments);
6759
+ clearTimeout(timeout);
6760
+ timeout = setTimeout(functionCall, wait);
6761
+ };
6762
+ }
6763
+ function getTextDir() {
6764
+ const dir = document.querySelector("html").getAttribute("dir");
6765
+ return dir ? dir.toLowerCase() : "";
6766
+ }
6767
+ function getPosition(el) {
6768
+ const coords = el.getBoundingClientRect();
6769
+ let x = coords.x;
6770
+ let y = coords.y;
6771
+ // Edge doesn't have x and y
6772
+ if (!x) {
6773
+ if (getTextDir() === "rtl") {
6774
+ x = coords.right;
6775
+ }
6776
+ else {
6777
+ x = coords.left;
6778
+ }
6779
+ y = coords.top;
6780
+ }
6781
+ return { x, y };
6782
+ }
6783
+ function findParentWithScrollbar(el) {
6784
+ while (!!el) {
6785
+ if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
6786
+ return el;
6787
+ }
6788
+ el = el.parentElement;
6789
+ }
6790
+ }
6791
+ function findParentWithHiddenOverflow(el) {
6792
+ while (!!el) {
6793
+ if (window.getComputedStyle(el).overflowY !== "visible") {
6794
+ return el;
6795
+ }
6796
+ el = el.parentElement;
6797
+ }
6798
+ }
6799
+ function getClosableElementMeasurements(fixedEl, closableEl) {
6800
+ const parent = findParentWithHiddenOverflow(fixedEl);
6801
+ // if parent is not found, measurements are checked against the viewport
6802
+ return {
6803
+ closableElHeight: closableEl.clientHeight,
6804
+ closableElWidth: closableEl.clientWidth,
6805
+ // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6806
+ // to get space below the el -> height of viewport minus boundingClientRect.bottom
6807
+ spaceAbove: parent
6808
+ ? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
6809
+ : fixedEl.getBoundingClientRect().top,
6810
+ // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6811
+ // to get space below the el -> height of viewport minus boundingClientRect.bottom
6812
+ spaceBelow: parent
6813
+ ? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
6814
+ : document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
6815
+ spaceLeft: parent
6816
+ ? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
6817
+ : fixedEl.getBoundingClientRect().left,
6818
+ spaceRight: parent
6819
+ ? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
6820
+ : document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
6821
+ };
6822
+ }
6823
+ function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
6824
+ closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6825
+ offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6826
+ offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6827
+ ) {
6828
+ const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6829
+ //we want to open up only if there's not enough space below AND there is enough space above
6830
+ const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
6831
+ return openUp;
6832
+ }
6833
+ function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
6834
+ closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6835
+ offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6836
+ offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6837
+ ) {
6838
+ const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6839
+ //we want to open up only if there's not enough space below AND there is enough space above
6840
+ const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
6841
+ return openDown;
6842
+ }
6843
+ function shouldShiftRight(fixedEl, closableEl) {
6844
+ const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6845
+ const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
6846
+ return needsSpaceLeft;
6847
+ }
6848
+ function shouldShiftLeft(fixedEl, closableEl) {
6849
+ const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6850
+ const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
6851
+ return needsSpaceRight;
6852
+ }
6853
+ function adjustTooltipPosition(tPos, el, tooltipEl) {
6854
+ // position must be reset before measurements are taken in adjustTooltipPosition
6855
+ // otherwise text-wrapping from previous position makes width measurement inconsistent
6856
+ tooltipEl.style.top = "";
6857
+ tooltipEl.style.left = "";
6858
+ const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
6859
+ const tooltipWidth = tooltipEl.getBoundingClientRect().width;
6860
+ const tooltipHeight = tooltipEl.getBoundingClientRect().height;
6861
+ const enoughSpaceAbove = spaceAbove > tooltipHeight;
6862
+ const enoughSpaceBelow = spaceBelow > tooltipHeight;
6863
+ // a tooltip should never be closer than 24px to the edge of a screen
6864
+ const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
6865
+ const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
6866
+ const swapAbove = (position) => {
6867
+ return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
6868
+ };
6869
+ const swapBelow = (position) => {
6870
+ return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
6871
+ };
6872
+ const swapLeft = (position, centeredPosition) => {
6873
+ if (!enoughSpaceLeft && enoughSpaceRight) {
6874
+ position = position.replace("left", "right");
6875
+ }
6876
+ else if (!enoughSpaceLeft && !enoughSpaceRight) {
6877
+ position = centeredPosition;
6878
+ }
6879
+ return position;
6880
+ };
6881
+ const swapRight = (position, centeredPosition) => {
6882
+ if (!enoughSpaceRight && enoughSpaceLeft) {
6883
+ position = position.replace("right", "left");
6884
+ }
6885
+ else if (!enoughSpaceRight && !enoughSpaceLeft) {
6886
+ position = centeredPosition;
6887
+ }
6888
+ return position;
6889
+ };
6890
+ // horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
6891
+ switch (tPos) {
6892
+ case "left":
6893
+ tPos = swapLeft(tPos, "bottom");
6894
+ case "right":
6895
+ tPos = swapRight(tPos, "bottom");
6896
+ case "top-left":
6897
+ tPos = swapLeft(tPos, "top");
6898
+ tPos = swapAbove(tPos);
6899
+ case "top-right":
6900
+ tPos = swapRight(tPos, "top");
6901
+ tPos = swapAbove(tPos);
6902
+ case "bottom-left":
6903
+ tPos = swapLeft(tPos, "bottom");
6904
+ tPos = swapBelow(tPos);
6905
+ case "bottom-right":
6906
+ tPos = swapRight(tPos, "bottom");
6907
+ tPos = swapBelow(tPos);
6908
+ case "top":
6909
+ tPos = swapAbove(tPos);
6910
+ case "bottom":
6911
+ tPos = swapBelow(tPos);
6912
+ }
6913
+ return tPos;
6914
+ }
6915
+ function hasRoomRight(x, spaceNeeded) {
6916
+ let horizOffset = 0;
6917
+ // if (getTextDir() === "ltr") {
6918
+ if (x.type === "click") {
6919
+ // if it's a mouse event, deal with mouse coords
6920
+ horizOffset = x.clientX;
6921
+ // if it's a focus event, the offset is 0
6922
+ }
6923
+ else if (x.type === "focus") {
6924
+ horizOffset = 0;
6925
+ }
6926
+ else {
6927
+ // otherwise an element was passed, calculate how far it is from the edge of the window
6928
+ let el = x; // re-assignment is for clarity
6929
+ while (el) {
6930
+ if (el.tagName == "BODY") {
6931
+ // deal with browser quirks with body/window/document and page scroll
6932
+ var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
6933
+ horizOffset += el.offsetLeft - xScroll + el.clientLeft;
6934
+ }
6935
+ else {
6936
+ // for all other non-BODY elements
6937
+ horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
6938
+ }
6939
+ el = el.offsetParent;
6940
+ }
6941
+ // }
6942
+ }
6943
+ return window.innerWidth - horizOffset >= spaceNeeded;
6944
+ }
6945
+ function checkForActiveElInShadow(element) {
6946
+ while (element && element.shadowRoot) {
6947
+ element = element.shadowRoot.activeElement;
6948
+ }
6949
+ return element;
6950
+ }
6951
+ function checkForFocusableElInShadow(element) {
6952
+ const selectors = [
6953
+ "button",
6954
+ "a",
6955
+ "input",
6956
+ "select",
6957
+ "textarea",
6958
+ "wm-button",
6959
+ "wm-search",
6960
+ "wm-select",
6961
+ "wm-action-menu",
6962
+ "wm-tab-item",
6963
+ "wm-datepicker",
6964
+ ];
6965
+ let focusableEl = element;
6966
+ selectors.forEach((selector) => {
6967
+ if (focusableEl && focusableEl.shadowRoot) {
6968
+ let elInShadow = focusableEl.shadowRoot.querySelector(selector);
6969
+ if (elInShadow) {
6970
+ if (selector.startsWith("wm-")) {
6971
+ focusableEl = checkForFocusableElInShadow(elInShadow);
6972
+ }
6973
+ else {
6974
+ focusableEl = elInShadow;
6975
+ }
6976
+ }
6977
+ }
6978
+ });
6979
+ return focusableEl;
6980
+ }
6981
+ function isFocusable(element) {
6982
+ if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
6983
+ return true;
6984
+ }
6985
+ if (element.disabled) {
6986
+ return false;
6987
+ }
6988
+ switch (element.nodeName) {
6989
+ case "A":
6990
+ return !!element.href && element.rel != "ignore";
6991
+ case "INPUT":
6992
+ return element.type != "hidden" && element.type != "file";
6993
+ case "BUTTON":
6994
+ case "SELECT":
6995
+ case "TEXTAREA":
6996
+ case "WM-BUTTON":
6997
+ case "WM-SELECT":
6998
+ case "WM-ACTION-MENU":
6999
+ case "WM-DATEPICKER":
7000
+ case "WM-TIMEPICKER":
7001
+ case "WM-INPUT":
7002
+ case "WM-TAG-INPUT":
7003
+ case "WM-TAB-ITEM":
7004
+ case "WM-SEARCH":
7005
+ return true;
7006
+ default:
7007
+ return false;
7008
+ }
7009
+ }
7010
+ function getFirstFocusableDescendant(element) {
7011
+ if (isFocusable(element)) {
7012
+ return checkForFocusableElInShadow(element);
7013
+ }
7014
+ else if (element.childNodes.length > 0) {
7015
+ element.childNodes.forEach((i) => {
7016
+ const childEl = getFirstFocusableDescendant(i);
7017
+ return childEl && checkForFocusableElInShadow(childEl);
7018
+ });
7019
+ }
7020
+ }
7021
+ function hasValidType(file, types) {
7022
+ const acceptedExtensions = types.split(" ");
7023
+ const parts = file.name && file.name.split(".");
7024
+ const ext = parts && parts.length > 1 && parts[parts.length - 1];
7025
+ return ext
7026
+ ? acceptedExtensions.includes(ext.toLowerCase())
7027
+ : // fallback: if we couldn't obtain an extension,
7028
+ // validate based on MIME type...
7029
+ !!file.type
7030
+ ? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
7031
+ : // ...and if that failed too, accept the file
7032
+ // as it's preferable to accept an invalid file
7033
+ // than refusing a valid one (back-end will take care of what slips through)
7034
+ true;
7035
+ }
7036
+ // takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
7037
+ function getAcceptedMimeTypesList(acceptedExtensions) {
7038
+ // this is just a list of common file types (regardless of whether they are/can be valid or not)
7039
+ // front end checks are just a convenience to users, independent of security.
7040
+ // it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
7041
+ const lookupTable = {
7042
+ aac: ["audio/aac"],
7043
+ abw: ["application/x-abiword"],
7044
+ arc: ["application/x-freearc"],
7045
+ avi: ["video/x-msvideo"],
7046
+ azw: ["application/vnd.amazon.ebook"],
7047
+ bin: ["application/octet-stream"],
7048
+ bmp: ["image/bmp"],
7049
+ bz: ["application/x-bzip"],
7050
+ bz2: ["application/x-bzip2"],
7051
+ csh: ["application/x-csh"],
7052
+ css: ["text/css"],
7053
+ csv: ["text/csv"],
7054
+ doc: ["application/msword"],
7055
+ docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
7056
+ eot: ["application/vnd.ms-fontobject"],
7057
+ epub: ["application/epub+zip"],
7058
+ gz: ["application/gzip"],
7059
+ gif: ["image/gif"],
7060
+ htm: ["text/html"],
7061
+ html: ["text/html"],
7062
+ ico: ["image/vnd.microsoft.icon"],
7063
+ ics: ["text/calendar"],
7064
+ jar: ["application/java-archive"],
7065
+ jpeg: ["image/jpeg"],
7066
+ jpg: ["image/jpeg"],
7067
+ js: ["text/javascript"],
7068
+ json: ["application/json"],
7069
+ jsonld: ["application/ld+json"],
7070
+ log: ["text/plain"],
7071
+ mid: ["audio/x-midi"],
7072
+ midi: ["audio/x-midi"],
7073
+ mjs: ["text/javascript"],
7074
+ mp3: ["audio/mpeg"],
7075
+ mpeg: ["video/mpeg"],
7076
+ mpkg: ["application/vnd.apple.installer+xml"],
7077
+ odp: ["application/vnd.oasis.opendocument.presentation"],
7078
+ ods: ["application/vnd.oasis.opendocument.spreadsheet"],
7079
+ odt: ["application/vnd.oasis.opendocument.text"],
7080
+ oga: ["audio/ogg"],
7081
+ ogv: ["video/ogg"],
7082
+ ogx: ["application/ogg"],
7083
+ opus: ["audio/opus"],
7084
+ otf: ["font/otf"],
7085
+ png: ["image/png"],
7086
+ pdf: ["application/pdf"],
7087
+ php: ["application/php"],
7088
+ ppt: ["application/vnd.ms-powerpoint"],
7089
+ pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
7090
+ rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
7091
+ rtf: ["application/rtf"],
7092
+ sh: ["application/x-sh"],
7093
+ svg: ["image/svg+xml"],
7094
+ swf: ["application/x-shockwave-flash"],
7095
+ tar: ["application/x-tar"],
7096
+ tif: ["image/tiff"],
7097
+ tiff: ["image/tiff"],
7098
+ ts: ["video/mp2t"],
7099
+ ttf: ["font/ttf"],
7100
+ txt: ["text/plain"],
7101
+ vsd: ["application/vnd.visio"],
7102
+ wav: ["audio/wav"],
7103
+ weba: ["audio/webm"],
7104
+ webm: ["video/webm"],
7105
+ webp: ["image/webp"],
7106
+ woff: ["font/woff"],
7107
+ woff2: ["font/woff2"],
7108
+ xhtml: ["application/xhtml+xml"],
7109
+ xls: ["application/vnd.ms-excel"],
7110
+ xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
7111
+ xml: ["application/xml", "text/xml"],
7112
+ xul: ["application/vnd.mozilla.xul+xml"],
7113
+ zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
7114
+ "3gp": ["video/3gpp", "audio/3gpp"],
7115
+ "3g2": ["video/3gpp2", "audio/3gpp2"],
7116
+ "7z": ["application/x-7z-compressed"],
7117
+ };
7118
+ return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
7119
+ }
7120
+ function snakeCaseToCamelCase(str) {
7121
+ const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
7122
+ if (snakeCaseRegexp.test(str)) {
7123
+ let camelCase = "";
7124
+ let arr = str.split("_");
7125
+ arr.forEach((word, idx) => {
7126
+ camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
7127
+ });
7128
+ return camelCase;
7129
+ }
7130
+ else {
7131
+ return str;
7132
+ }
7133
+ }
7134
+ function getNewIndexToFocus(currentIndex, direction, listLength) {
7135
+ let newIndex = currentIndex;
7136
+ if (direction === "ArrowDown") {
7137
+ newIndex = (currentIndex + 1) % listLength;
7138
+ }
7139
+ if (direction === "ArrowUp") {
7140
+ newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
7141
+ }
7142
+ return newIndex;
7143
+ }
7144
+ function isRelatedTarget(ev, id) {
7145
+ // used for onBlur events to check the element that has been clicked
7146
+ const ids = id.split(" ");
7147
+ return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
7148
+ }
7149
+ function toBool(val) {
7150
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
7151
+ return val == "false" ? false : !!val;
7152
+ }
7153
+ /*
7154
+ * this is going to be needed to solve the extra tabbing on navigator
7155
+ * and for programmatic focus of tabs
7156
+ * Here's a draft, not bug proof, see:
7157
+ * https://stackoverflow.com/a/10730308/3741713
7158
+
7159
+ function getKeyboardFocusableElements(element = document) {
7160
+ const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
7161
+ return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
7162
+ }
7163
+
7164
+ export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
7165
+ const els = getKeyboardFocusableElements();
7166
+ const current = els.indexOf(element);
7167
+ return els[current - 1] as HTMLElement;
7168
+ }
7169
+
7170
+ export function getNextKeyboardFocusableElement(element: HTMLElement) {
7171
+ const els = getKeyboardFocusableElements();
7172
+ const current = els.indexOf(element);
7173
+ return els[current + 1] as HTMLElement;
7174
+ }
7145
7175
  */
7146
7176
 
7147
7177
  export { adjustTooltipPosition as a, getPosition as b, checkForActiveElInShadow as c, debounce as d, isRelatedTarget as e, findParentWithScrollbar as f, generateId as g, checkForFocusableElInShadow as h, intl as i, getFirstFocusableDescendant as j, getNewIndexToFocus as k, shouldOpenUp as l, shouldOpenDown as m, shouldShiftRight as n, shouldShiftLeft as o, hasValidType as p, getTextDir as q, throttle as r, snakeCaseToCamelCase as s, toBool as t, hasRoomRight as u };