@watermarkinsights/ripple 3.12.0 → 3.13.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-44ae2eee.js → chartFunctions-b5f0319b.js} +420 -420
  3. package/dist/cjs/{functions-1a67b971.js → functions-3c5e979d.js} +1900 -479
  4. package/dist/cjs/{global-122fc638.js → global-23355ac3.js} +60 -60
  5. package/dist/cjs/{http-service-494d81de.js → http-service-9e8c4dd5.js} +49 -49
  6. package/dist/cjs/{index-acad7ab3.js → index-df6a3611.js} +4 -1
  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 +658 -658
  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 +336 -336
  15. package/dist/cjs/wm-button.cjs.entry.js +239 -231
  16. package/dist/cjs/wm-chart-slice.cjs.entry.js +14 -14
  17. package/dist/cjs/wm-chart.cjs.entry.js +111 -111
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +266 -266
  19. package/dist/cjs/wm-input.cjs.entry.js +135 -135
  20. package/dist/cjs/wm-modal-footer.cjs.entry.js +34 -34
  21. package/dist/cjs/wm-modal-header.cjs.entry.js +37 -37
  22. package/dist/cjs/wm-modal.cjs.entry.js +164 -164
  23. package/dist/cjs/wm-navigation_3.cjs.entry.js +228 -228
  24. package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
  25. package/dist/cjs/wm-network-uploader.cjs.entry.js +453 -453
  26. package/dist/cjs/wm-option_2.cjs.entry.js +485 -485
  27. package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
  28. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +130 -130
  29. package/dist/cjs/wm-search.cjs.entry.js +233 -233
  30. package/dist/cjs/wm-snackbar.cjs.entry.js +171 -171
  31. package/dist/cjs/wm-tab-item_3.cjs.entry.js +297 -297
  32. package/dist/cjs/wm-tag-input.cjs.entry.js +580 -580
  33. package/dist/cjs/wm-timepicker.cjs.entry.js +384 -384
  34. package/dist/cjs/wm-toggletip.cjs.entry.js +125 -125
  35. package/dist/cjs/wm-uploader.cjs.entry.js +635 -635
  36. package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
  37. package/dist/collection/collection-manifest.json +1 -1
  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 +328 -328
  41. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +195 -195
  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 +448 -448
  45. package/dist/collection/components/wm-button/wm-button.css +1 -0
  46. package/dist/collection/components/wm-button/wm-button.js +500 -494
  47. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1024 -1024
  48. package/dist/collection/components/wm-datepicker/wm-datepicker.js +471 -471
  49. package/dist/collection/components/wm-input/wm-input.js +423 -423
  50. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  51. package/dist/collection/components/wm-modal/wm-modal-footer.js +136 -136
  52. package/dist/collection/components/wm-modal/wm-modal-header.js +87 -87
  53. package/dist/collection/components/wm-modal/wm-modal.js +461 -461
  54. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +162 -162
  55. package/dist/collection/components/wm-navigation/wm-navigation-item.js +121 -121
  56. package/dist/collection/components/wm-navigation/wm-navigation.js +218 -218
  57. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  58. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  59. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  60. package/dist/collection/components/wm-option/wm-option.js +414 -414
  61. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  62. package/dist/collection/components/wm-search/wm-search.js +480 -480
  63. package/dist/collection/components/wm-select/wm-select.js +718 -718
  64. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  65. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +216 -216
  66. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +330 -330
  67. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  68. package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -810
  69. package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -583
  70. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  71. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +785 -785
  72. package/dist/collection/components/wm-uploader/wm-uploader.css +1 -2
  73. package/dist/collection/components/wm-uploader/wm-uploader.js +1079 -1079
  74. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  75. package/dist/collection/dev/scripts.js +20 -20
  76. package/dist/collection/global/__mocks__/functions.js +6 -6
  77. package/dist/collection/global/chartFunctions.js +421 -421
  78. package/dist/collection/global/functions.js +445 -468
  79. package/dist/collection/global/global.js +67 -67
  80. package/dist/collection/global/interfaces.js +49 -49
  81. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  82. package/dist/collection/global/services/http-service.js +50 -50
  83. package/dist/collection/lang/lang.js +5 -5
  84. package/dist/collection/lang/missing.js +43 -43
  85. package/dist/collection/lang/piglatin.js +93 -93
  86. package/dist/esm/{chartFunctions-8fa800a6.js → chartFunctions-89470707.js} +420 -420
  87. package/dist/esm/{functions-61c7bb1f.js → functions-78aea827.js} +1900 -479
  88. package/dist/esm/{global-5902ef31.js → global-2c09bb9a.js} +60 -60
  89. package/dist/esm/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +49 -49
  90. package/dist/esm/{index-7603f98e.js → index-17c79cc6.js} +4 -1
  91. package/dist/esm/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +29 -29
  92. package/dist/esm/loader.js +4 -4
  93. package/dist/esm/polyfills/core-js.js +0 -0
  94. package/dist/esm/polyfills/css-shim.js +1 -1
  95. package/dist/esm/polyfills/dom.js +0 -0
  96. package/dist/esm/polyfills/es5-html-element.js +0 -0
  97. package/dist/esm/polyfills/index.js +0 -0
  98. package/dist/esm/polyfills/system.js +0 -0
  99. package/dist/esm/priv-chart-popover.entry.js +87 -87
  100. package/dist/esm/priv-datepicker.entry.js +658 -658
  101. package/dist/esm/priv-navigator-button.entry.js +19 -19
  102. package/dist/esm/priv-navigator-item.entry.js +24 -24
  103. package/dist/esm/ripple.js +4 -4
  104. package/dist/esm/wm-action-menu_2.entry.js +336 -336
  105. package/dist/esm/wm-button.entry.js +239 -231
  106. package/dist/esm/wm-chart-slice.entry.js +14 -14
  107. package/dist/esm/wm-chart.entry.js +111 -111
  108. package/dist/esm/wm-datepicker.entry.js +266 -266
  109. package/dist/esm/wm-input.entry.js +135 -135
  110. package/dist/esm/wm-modal-footer.entry.js +34 -34
  111. package/dist/esm/wm-modal-header.entry.js +37 -37
  112. package/dist/esm/wm-modal.entry.js +164 -164
  113. package/dist/esm/wm-navigation_3.entry.js +228 -228
  114. package/dist/esm/wm-navigator.entry.js +269 -269
  115. package/dist/esm/wm-network-uploader.entry.js +453 -453
  116. package/dist/esm/wm-option_2.entry.js +485 -485
  117. package/dist/esm/wm-pagination.entry.js +168 -168
  118. package/dist/esm/wm-progress-indicator_3.entry.js +130 -130
  119. package/dist/esm/wm-search.entry.js +233 -233
  120. package/dist/esm/wm-snackbar.entry.js +171 -171
  121. package/dist/esm/wm-tab-item_3.entry.js +297 -297
  122. package/dist/esm/wm-tag-input.entry.js +580 -580
  123. package/dist/esm/wm-timepicker.entry.js +384 -384
  124. package/dist/esm/wm-toggletip.entry.js +125 -125
  125. package/dist/esm/wm-uploader.entry.js +635 -635
  126. package/dist/esm/wm-wrapper.entry.js +13 -13
  127. package/dist/esm-es5/{chartFunctions-8fa800a6.js → chartFunctions-89470707.js} +1 -1
  128. package/dist/esm-es5/functions-78aea827.js +1 -0
  129. package/dist/esm-es5/global-2c09bb9a.js +1 -0
  130. package/dist/esm-es5/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +0 -0
  131. package/dist/esm-es5/{index-7603f98e.js → index-17c79cc6.js} +1 -1
  132. package/dist/esm-es5/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +0 -0
  133. package/dist/esm-es5/loader.js +1 -1
  134. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  135. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  136. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  137. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  138. package/dist/esm-es5/ripple.js +1 -1
  139. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  140. package/dist/esm-es5/wm-button.entry.js +1 -1
  141. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  142. package/dist/esm-es5/wm-chart.entry.js +1 -1
  143. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  144. package/dist/esm-es5/wm-input.entry.js +1 -1
  145. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  146. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  147. package/dist/esm-es5/wm-modal.entry.js +1 -1
  148. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  149. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  150. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  151. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  152. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  153. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  154. package/dist/esm-es5/wm-search.entry.js +1 -1
  155. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  156. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  157. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  158. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  159. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  160. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  161. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  162. package/dist/ripple/{p-9f12284b.system.entry.js → p-00c9f26c.system.entry.js} +1 -1
  163. package/dist/ripple/{p-d81a4e7c.system.entry.js → p-01fb2a55.system.entry.js} +1 -1
  164. package/dist/ripple/{p-212aac05.system.entry.js → p-07870c6b.system.entry.js} +1 -1
  165. package/dist/ripple/{p-f5df5903.system.js → p-08b7ec08.system.js} +0 -0
  166. package/dist/ripple/p-08e5f351.entry.js +1 -0
  167. package/dist/ripple/p-09043ef5.js +1 -0
  168. package/dist/ripple/p-0bd1815c.system.entry.js +1 -0
  169. package/dist/ripple/{p-fdc4a599.system.entry.js → p-1a64cbce.system.entry.js} +1 -1
  170. package/dist/ripple/p-1ca113d7.entry.js +1 -0
  171. package/dist/ripple/p-22283507.system.js +1 -0
  172. package/dist/ripple/p-262c75ff.entry.js +1 -0
  173. package/dist/ripple/{p-90ed3268.system.entry.js → p-27253ed2.system.entry.js} +1 -1
  174. package/dist/ripple/p-2ceec421.entry.js +1 -0
  175. package/dist/ripple/p-2e5cb321.entry.js +1 -0
  176. package/dist/ripple/{p-eee347b4.system.entry.js → p-31364104.system.entry.js} +1 -1
  177. package/dist/ripple/{p-9d02957d.system.js → p-313b6073.system.js} +0 -0
  178. package/dist/ripple/p-3e451dd0.entry.js +1 -0
  179. package/dist/ripple/{p-eacd33cc.system.entry.js → p-4439bdd1.system.entry.js} +1 -1
  180. package/dist/ripple/{p-ac2485a6.system.entry.js → p-474e6695.system.entry.js} +1 -1
  181. package/dist/ripple/p-539e9bfa.entry.js +1 -0
  182. package/dist/ripple/p-55c27bcc.entry.js +1 -0
  183. package/dist/ripple/p-57c94258.entry.js +1 -0
  184. package/dist/ripple/{p-1242752c.system.entry.js → p-58fc7a8d.system.entry.js} +1 -1
  185. package/dist/ripple/{p-1df2adee.system.entry.js → p-59678b70.system.entry.js} +1 -1
  186. package/dist/ripple/{p-5471864e.system.entry.js → p-5aa7b31c.system.entry.js} +1 -1
  187. package/dist/ripple/p-5bec3eeb.entry.js +1 -0
  188. package/dist/ripple/{p-e180001c.system.entry.js → p-65363da5.system.entry.js} +1 -1
  189. package/dist/ripple/p-6855af44.entry.js +1 -0
  190. package/dist/ripple/{p-28bf6a2e.system.js → p-68c7d04d.system.js} +1 -1
  191. package/dist/ripple/p-6a87da11.js +1 -0
  192. package/dist/ripple/{p-a0c3ef16.system.js → p-726b9452.system.js} +1 -1
  193. package/dist/ripple/p-82370ff7.entry.js +1 -0
  194. package/dist/ripple/p-82e24061.entry.js +1 -0
  195. package/dist/ripple/{p-398b2486.system.entry.js → p-84960032.system.entry.js} +1 -1
  196. package/dist/ripple/{p-43f1298b.js → p-888bec42.js} +0 -0
  197. package/dist/ripple/{p-487f7419.system.entry.js → p-8ad4f5ec.system.entry.js} +1 -1
  198. package/dist/ripple/p-93f6326d.system.js +1 -0
  199. package/dist/ripple/p-962f51ff.entry.js +1 -0
  200. package/dist/ripple/p-97c5c2ed.entry.js +1 -0
  201. package/dist/ripple/p-9fc092f2.entry.js +1 -0
  202. package/dist/ripple/p-a4b21d7b.entry.js +1 -0
  203. package/dist/ripple/{p-c873b490.system.entry.js → p-a5ae5ebb.system.entry.js} +1 -1
  204. package/dist/ripple/{p-75ef731b.system.entry.js → p-a65c09e8.system.entry.js} +1 -1
  205. package/dist/ripple/{p-ca2fbd1b.system.js → p-a695c1b5.system.js} +1 -1
  206. package/dist/ripple/{p-fd8070fb.js → p-a6d6eae7.js} +0 -0
  207. package/dist/ripple/{p-8aa9f811.js → p-a9ae4fa8.js} +1 -1
  208. package/dist/ripple/{p-73d66b0a.system.entry.js → p-abb0514c.system.entry.js} +1 -1
  209. package/dist/ripple/p-ad13a695.entry.js +1 -0
  210. package/dist/ripple/p-b0536ddb.entry.js +1 -0
  211. package/dist/ripple/p-b9f445c0.entry.js +1 -0
  212. package/dist/ripple/p-ba91d8ad.system.entry.js +1 -0
  213. package/dist/ripple/{p-42aa51fe.system.entry.js → p-babcd2c8.system.entry.js} +1 -1
  214. package/dist/ripple/{p-3f1d8211.system.entry.js → p-bcfd74b3.system.entry.js} +1 -1
  215. package/dist/ripple/p-c2abdcba.js +1 -0
  216. package/dist/ripple/{p-d3ed8b65.system.entry.js → p-c5ac8d9d.system.entry.js} +1 -1
  217. package/dist/ripple/p-cfe5b40f.entry.js +1 -0
  218. package/dist/ripple/p-d2d91a99.entry.js +1 -0
  219. package/dist/ripple/{p-44035b02.system.entry.js → p-d41727ae.system.entry.js} +1 -1
  220. package/dist/ripple/{p-ae6cfbca.system.entry.js → p-db44eb6f.system.entry.js} +1 -1
  221. package/dist/ripple/p-e18870d9.entry.js +1 -0
  222. package/dist/ripple/{p-3e6498ea.system.entry.js → p-e46174bc.system.entry.js} +1 -1
  223. package/dist/ripple/p-e6dee50b.entry.js +1 -0
  224. package/dist/ripple/p-ebd67c13.entry.js +1 -0
  225. package/dist/ripple/{p-68155230.system.entry.js → p-f048e76f.system.entry.js} +1 -1
  226. package/dist/ripple/{p-3b3e847c.system.entry.js → p-f17076c4.system.entry.js} +1 -1
  227. package/dist/ripple/p-f2c0d110.entry.js +1 -0
  228. package/dist/ripple/p-f74ccdea.entry.js +1 -0
  229. package/dist/ripple/ripple.esm.js +1 -1
  230. package/dist/ripple/ripple.js +1 -1
  231. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
  232. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  233. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +36 -36
  234. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +27 -27
  235. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +17 -17
  236. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  237. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +47 -47
  238. package/dist/types/components/wm-button/wm-button.d.ts +43 -43
  239. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  240. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  241. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  242. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  243. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
  244. package/dist/types/components/wm-modal/wm-modal-header.d.ts +11 -11
  245. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  246. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
  247. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  248. package/dist/types/components/wm-navigation/wm-navigation.d.ts +28 -28
  249. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  250. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  251. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  252. package/dist/types/components/wm-option/wm-option.d.ts +32 -32
  253. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  254. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  255. package/dist/types/components/wm-select/wm-select.d.ts +66 -66
  256. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  257. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  258. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  259. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  260. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -92
  261. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
  262. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  263. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  264. package/dist/types/components/wm-uploader/wm-uploader.d.ts +119 -119
  265. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  266. package/dist/types/components.d.ts +29 -29
  267. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  268. package/dist/types/global/chartFunctions.d.ts +29 -29
  269. package/dist/types/global/functions.d.ts +42 -42
  270. package/dist/types/global/global.d.ts +1 -1
  271. package/dist/types/global/interfaces.d.ts +44 -44
  272. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  273. package/dist/types/global/services/http-service.d.ts +4 -4
  274. package/dist/types/lang/lang.d.ts +5 -5
  275. package/package.json +47 -47
  276. package/dist/esm-es5/functions-61c7bb1f.js +0 -15
  277. package/dist/esm-es5/global-5902ef31.js +0 -1
  278. package/dist/ripple/p-00fa3d4b.entry.js +0 -1
  279. package/dist/ripple/p-0f33461d.entry.js +0 -1
  280. package/dist/ripple/p-15b1c11b.js +0 -16
  281. package/dist/ripple/p-1b058a44.entry.js +0 -1
  282. package/dist/ripple/p-2077203e.system.js +0 -1
  283. package/dist/ripple/p-30745db6.entry.js +0 -1
  284. package/dist/ripple/p-358bde27.entry.js +0 -1
  285. package/dist/ripple/p-35cfcf9f.entry.js +0 -1
  286. package/dist/ripple/p-379b125b.entry.js +0 -1
  287. package/dist/ripple/p-49bf0b81.js +0 -1
  288. package/dist/ripple/p-4d59fe86.entry.js +0 -1
  289. package/dist/ripple/p-520b0f54.entry.js +0 -1
  290. package/dist/ripple/p-584fef7f.system.entry.js +0 -1
  291. package/dist/ripple/p-5e041c35.entry.js +0 -1
  292. package/dist/ripple/p-72eb5064.system.entry.js +0 -1
  293. package/dist/ripple/p-76ca7498.system.js +0 -15
  294. package/dist/ripple/p-7fae0cc2.entry.js +0 -1
  295. package/dist/ripple/p-8caae464.entry.js +0 -1
  296. package/dist/ripple/p-8d347cd5.entry.js +0 -1
  297. package/dist/ripple/p-92226595.entry.js +0 -1
  298. package/dist/ripple/p-9fe64cec.entry.js +0 -1
  299. package/dist/ripple/p-a82d37d8.entry.js +0 -1
  300. package/dist/ripple/p-a9e0ce88.entry.js +0 -1
  301. package/dist/ripple/p-b3c71506.js +0 -1
  302. package/dist/ripple/p-ba168596.entry.js +0 -1
  303. package/dist/ripple/p-cd4fda75.entry.js +0 -1
  304. package/dist/ripple/p-d3603def.entry.js +0 -1
  305. package/dist/ripple/p-e49b9a96.entry.js +0 -1
  306. package/dist/ripple/p-e748e22b.entry.js +0 -1
  307. package/dist/ripple/p-e75e75e0.entry.js +0 -1
  308. package/dist/ripple/p-ed657559.entry.js +0 -1
  309. package/dist/ripple/p-f0656464.entry.js +0 -1
  310. package/dist/ripple/p-f12a510f.entry.js +0 -1
  311. package/dist/ripple/p-f36b74bf.entry.js +0 -1
@@ -3594,7 +3594,7 @@ const lang = /*#__PURE__*/Object.freeze({
3594
3594
  pig: pig
3595
3595
  });
3596
3596
 
3597
- /*! *****************************************************************************
3597
+ /******************************************************************************
3598
3598
  Copyright (c) Microsoft Corporation.
3599
3599
 
3600
3600
  Permission to use, copy, modify, and/or distribute this software for any
@@ -4214,6 +4214,1429 @@ function parseNumberSkeleton(tokens) {
4214
4214
  return result;
4215
4215
  }
4216
4216
 
4217
+ // @generated from time-data-gen.ts
4218
+ // prettier-ignore
4219
+ var timeData = {
4220
+ "AX": [
4221
+ "H"
4222
+ ],
4223
+ "BQ": [
4224
+ "H"
4225
+ ],
4226
+ "CP": [
4227
+ "H"
4228
+ ],
4229
+ "CZ": [
4230
+ "H"
4231
+ ],
4232
+ "DK": [
4233
+ "H"
4234
+ ],
4235
+ "FI": [
4236
+ "H"
4237
+ ],
4238
+ "ID": [
4239
+ "H"
4240
+ ],
4241
+ "IS": [
4242
+ "H"
4243
+ ],
4244
+ "ML": [
4245
+ "H"
4246
+ ],
4247
+ "NE": [
4248
+ "H"
4249
+ ],
4250
+ "RU": [
4251
+ "H"
4252
+ ],
4253
+ "SE": [
4254
+ "H"
4255
+ ],
4256
+ "SJ": [
4257
+ "H"
4258
+ ],
4259
+ "SK": [
4260
+ "H"
4261
+ ],
4262
+ "AS": [
4263
+ "h",
4264
+ "H"
4265
+ ],
4266
+ "BT": [
4267
+ "h",
4268
+ "H"
4269
+ ],
4270
+ "DJ": [
4271
+ "h",
4272
+ "H"
4273
+ ],
4274
+ "ER": [
4275
+ "h",
4276
+ "H"
4277
+ ],
4278
+ "GH": [
4279
+ "h",
4280
+ "H"
4281
+ ],
4282
+ "IN": [
4283
+ "h",
4284
+ "H"
4285
+ ],
4286
+ "LS": [
4287
+ "h",
4288
+ "H"
4289
+ ],
4290
+ "PG": [
4291
+ "h",
4292
+ "H"
4293
+ ],
4294
+ "PW": [
4295
+ "h",
4296
+ "H"
4297
+ ],
4298
+ "SO": [
4299
+ "h",
4300
+ "H"
4301
+ ],
4302
+ "TO": [
4303
+ "h",
4304
+ "H"
4305
+ ],
4306
+ "VU": [
4307
+ "h",
4308
+ "H"
4309
+ ],
4310
+ "WS": [
4311
+ "h",
4312
+ "H"
4313
+ ],
4314
+ "001": [
4315
+ "H",
4316
+ "h"
4317
+ ],
4318
+ "AL": [
4319
+ "h",
4320
+ "H",
4321
+ "hB"
4322
+ ],
4323
+ "TD": [
4324
+ "h",
4325
+ "H",
4326
+ "hB"
4327
+ ],
4328
+ "ca-ES": [
4329
+ "H",
4330
+ "h",
4331
+ "hB"
4332
+ ],
4333
+ "CF": [
4334
+ "H",
4335
+ "h",
4336
+ "hB"
4337
+ ],
4338
+ "CM": [
4339
+ "H",
4340
+ "h",
4341
+ "hB"
4342
+ ],
4343
+ "fr-CA": [
4344
+ "H",
4345
+ "h",
4346
+ "hB"
4347
+ ],
4348
+ "gl-ES": [
4349
+ "H",
4350
+ "h",
4351
+ "hB"
4352
+ ],
4353
+ "it-CH": [
4354
+ "H",
4355
+ "h",
4356
+ "hB"
4357
+ ],
4358
+ "it-IT": [
4359
+ "H",
4360
+ "h",
4361
+ "hB"
4362
+ ],
4363
+ "LU": [
4364
+ "H",
4365
+ "h",
4366
+ "hB"
4367
+ ],
4368
+ "NP": [
4369
+ "H",
4370
+ "h",
4371
+ "hB"
4372
+ ],
4373
+ "PF": [
4374
+ "H",
4375
+ "h",
4376
+ "hB"
4377
+ ],
4378
+ "SC": [
4379
+ "H",
4380
+ "h",
4381
+ "hB"
4382
+ ],
4383
+ "SM": [
4384
+ "H",
4385
+ "h",
4386
+ "hB"
4387
+ ],
4388
+ "SN": [
4389
+ "H",
4390
+ "h",
4391
+ "hB"
4392
+ ],
4393
+ "TF": [
4394
+ "H",
4395
+ "h",
4396
+ "hB"
4397
+ ],
4398
+ "VA": [
4399
+ "H",
4400
+ "h",
4401
+ "hB"
4402
+ ],
4403
+ "CY": [
4404
+ "h",
4405
+ "H",
4406
+ "hb",
4407
+ "hB"
4408
+ ],
4409
+ "GR": [
4410
+ "h",
4411
+ "H",
4412
+ "hb",
4413
+ "hB"
4414
+ ],
4415
+ "CO": [
4416
+ "h",
4417
+ "H",
4418
+ "hB",
4419
+ "hb"
4420
+ ],
4421
+ "DO": [
4422
+ "h",
4423
+ "H",
4424
+ "hB",
4425
+ "hb"
4426
+ ],
4427
+ "KP": [
4428
+ "h",
4429
+ "H",
4430
+ "hB",
4431
+ "hb"
4432
+ ],
4433
+ "KR": [
4434
+ "h",
4435
+ "H",
4436
+ "hB",
4437
+ "hb"
4438
+ ],
4439
+ "NA": [
4440
+ "h",
4441
+ "H",
4442
+ "hB",
4443
+ "hb"
4444
+ ],
4445
+ "PA": [
4446
+ "h",
4447
+ "H",
4448
+ "hB",
4449
+ "hb"
4450
+ ],
4451
+ "PR": [
4452
+ "h",
4453
+ "H",
4454
+ "hB",
4455
+ "hb"
4456
+ ],
4457
+ "VE": [
4458
+ "h",
4459
+ "H",
4460
+ "hB",
4461
+ "hb"
4462
+ ],
4463
+ "AC": [
4464
+ "H",
4465
+ "h",
4466
+ "hb",
4467
+ "hB"
4468
+ ],
4469
+ "AI": [
4470
+ "H",
4471
+ "h",
4472
+ "hb",
4473
+ "hB"
4474
+ ],
4475
+ "BW": [
4476
+ "H",
4477
+ "h",
4478
+ "hb",
4479
+ "hB"
4480
+ ],
4481
+ "BZ": [
4482
+ "H",
4483
+ "h",
4484
+ "hb",
4485
+ "hB"
4486
+ ],
4487
+ "CC": [
4488
+ "H",
4489
+ "h",
4490
+ "hb",
4491
+ "hB"
4492
+ ],
4493
+ "CK": [
4494
+ "H",
4495
+ "h",
4496
+ "hb",
4497
+ "hB"
4498
+ ],
4499
+ "CX": [
4500
+ "H",
4501
+ "h",
4502
+ "hb",
4503
+ "hB"
4504
+ ],
4505
+ "DG": [
4506
+ "H",
4507
+ "h",
4508
+ "hb",
4509
+ "hB"
4510
+ ],
4511
+ "FK": [
4512
+ "H",
4513
+ "h",
4514
+ "hb",
4515
+ "hB"
4516
+ ],
4517
+ "GB": [
4518
+ "H",
4519
+ "h",
4520
+ "hb",
4521
+ "hB"
4522
+ ],
4523
+ "GG": [
4524
+ "H",
4525
+ "h",
4526
+ "hb",
4527
+ "hB"
4528
+ ],
4529
+ "GI": [
4530
+ "H",
4531
+ "h",
4532
+ "hb",
4533
+ "hB"
4534
+ ],
4535
+ "IE": [
4536
+ "H",
4537
+ "h",
4538
+ "hb",
4539
+ "hB"
4540
+ ],
4541
+ "IM": [
4542
+ "H",
4543
+ "h",
4544
+ "hb",
4545
+ "hB"
4546
+ ],
4547
+ "IO": [
4548
+ "H",
4549
+ "h",
4550
+ "hb",
4551
+ "hB"
4552
+ ],
4553
+ "JE": [
4554
+ "H",
4555
+ "h",
4556
+ "hb",
4557
+ "hB"
4558
+ ],
4559
+ "LT": [
4560
+ "H",
4561
+ "h",
4562
+ "hb",
4563
+ "hB"
4564
+ ],
4565
+ "MK": [
4566
+ "H",
4567
+ "h",
4568
+ "hb",
4569
+ "hB"
4570
+ ],
4571
+ "MN": [
4572
+ "H",
4573
+ "h",
4574
+ "hb",
4575
+ "hB"
4576
+ ],
4577
+ "MS": [
4578
+ "H",
4579
+ "h",
4580
+ "hb",
4581
+ "hB"
4582
+ ],
4583
+ "NF": [
4584
+ "H",
4585
+ "h",
4586
+ "hb",
4587
+ "hB"
4588
+ ],
4589
+ "NG": [
4590
+ "H",
4591
+ "h",
4592
+ "hb",
4593
+ "hB"
4594
+ ],
4595
+ "NR": [
4596
+ "H",
4597
+ "h",
4598
+ "hb",
4599
+ "hB"
4600
+ ],
4601
+ "NU": [
4602
+ "H",
4603
+ "h",
4604
+ "hb",
4605
+ "hB"
4606
+ ],
4607
+ "PN": [
4608
+ "H",
4609
+ "h",
4610
+ "hb",
4611
+ "hB"
4612
+ ],
4613
+ "SH": [
4614
+ "H",
4615
+ "h",
4616
+ "hb",
4617
+ "hB"
4618
+ ],
4619
+ "SX": [
4620
+ "H",
4621
+ "h",
4622
+ "hb",
4623
+ "hB"
4624
+ ],
4625
+ "TA": [
4626
+ "H",
4627
+ "h",
4628
+ "hb",
4629
+ "hB"
4630
+ ],
4631
+ "ZA": [
4632
+ "H",
4633
+ "h",
4634
+ "hb",
4635
+ "hB"
4636
+ ],
4637
+ "af-ZA": [
4638
+ "H",
4639
+ "h",
4640
+ "hB",
4641
+ "hb"
4642
+ ],
4643
+ "AR": [
4644
+ "H",
4645
+ "h",
4646
+ "hB",
4647
+ "hb"
4648
+ ],
4649
+ "CL": [
4650
+ "H",
4651
+ "h",
4652
+ "hB",
4653
+ "hb"
4654
+ ],
4655
+ "CR": [
4656
+ "H",
4657
+ "h",
4658
+ "hB",
4659
+ "hb"
4660
+ ],
4661
+ "CU": [
4662
+ "H",
4663
+ "h",
4664
+ "hB",
4665
+ "hb"
4666
+ ],
4667
+ "EA": [
4668
+ "H",
4669
+ "h",
4670
+ "hB",
4671
+ "hb"
4672
+ ],
4673
+ "es-BO": [
4674
+ "H",
4675
+ "h",
4676
+ "hB",
4677
+ "hb"
4678
+ ],
4679
+ "es-BR": [
4680
+ "H",
4681
+ "h",
4682
+ "hB",
4683
+ "hb"
4684
+ ],
4685
+ "es-EC": [
4686
+ "H",
4687
+ "h",
4688
+ "hB",
4689
+ "hb"
4690
+ ],
4691
+ "es-ES": [
4692
+ "H",
4693
+ "h",
4694
+ "hB",
4695
+ "hb"
4696
+ ],
4697
+ "es-GQ": [
4698
+ "H",
4699
+ "h",
4700
+ "hB",
4701
+ "hb"
4702
+ ],
4703
+ "es-PE": [
4704
+ "H",
4705
+ "h",
4706
+ "hB",
4707
+ "hb"
4708
+ ],
4709
+ "GT": [
4710
+ "H",
4711
+ "h",
4712
+ "hB",
4713
+ "hb"
4714
+ ],
4715
+ "HN": [
4716
+ "H",
4717
+ "h",
4718
+ "hB",
4719
+ "hb"
4720
+ ],
4721
+ "IC": [
4722
+ "H",
4723
+ "h",
4724
+ "hB",
4725
+ "hb"
4726
+ ],
4727
+ "KG": [
4728
+ "H",
4729
+ "h",
4730
+ "hB",
4731
+ "hb"
4732
+ ],
4733
+ "KM": [
4734
+ "H",
4735
+ "h",
4736
+ "hB",
4737
+ "hb"
4738
+ ],
4739
+ "LK": [
4740
+ "H",
4741
+ "h",
4742
+ "hB",
4743
+ "hb"
4744
+ ],
4745
+ "MA": [
4746
+ "H",
4747
+ "h",
4748
+ "hB",
4749
+ "hb"
4750
+ ],
4751
+ "MX": [
4752
+ "H",
4753
+ "h",
4754
+ "hB",
4755
+ "hb"
4756
+ ],
4757
+ "NI": [
4758
+ "H",
4759
+ "h",
4760
+ "hB",
4761
+ "hb"
4762
+ ],
4763
+ "PY": [
4764
+ "H",
4765
+ "h",
4766
+ "hB",
4767
+ "hb"
4768
+ ],
4769
+ "SV": [
4770
+ "H",
4771
+ "h",
4772
+ "hB",
4773
+ "hb"
4774
+ ],
4775
+ "UY": [
4776
+ "H",
4777
+ "h",
4778
+ "hB",
4779
+ "hb"
4780
+ ],
4781
+ "JP": [
4782
+ "H",
4783
+ "h",
4784
+ "K"
4785
+ ],
4786
+ "AD": [
4787
+ "H",
4788
+ "hB"
4789
+ ],
4790
+ "AM": [
4791
+ "H",
4792
+ "hB"
4793
+ ],
4794
+ "AO": [
4795
+ "H",
4796
+ "hB"
4797
+ ],
4798
+ "AT": [
4799
+ "H",
4800
+ "hB"
4801
+ ],
4802
+ "AW": [
4803
+ "H",
4804
+ "hB"
4805
+ ],
4806
+ "BE": [
4807
+ "H",
4808
+ "hB"
4809
+ ],
4810
+ "BF": [
4811
+ "H",
4812
+ "hB"
4813
+ ],
4814
+ "BJ": [
4815
+ "H",
4816
+ "hB"
4817
+ ],
4818
+ "BL": [
4819
+ "H",
4820
+ "hB"
4821
+ ],
4822
+ "BR": [
4823
+ "H",
4824
+ "hB"
4825
+ ],
4826
+ "CG": [
4827
+ "H",
4828
+ "hB"
4829
+ ],
4830
+ "CI": [
4831
+ "H",
4832
+ "hB"
4833
+ ],
4834
+ "CV": [
4835
+ "H",
4836
+ "hB"
4837
+ ],
4838
+ "DE": [
4839
+ "H",
4840
+ "hB"
4841
+ ],
4842
+ "EE": [
4843
+ "H",
4844
+ "hB"
4845
+ ],
4846
+ "FR": [
4847
+ "H",
4848
+ "hB"
4849
+ ],
4850
+ "GA": [
4851
+ "H",
4852
+ "hB"
4853
+ ],
4854
+ "GF": [
4855
+ "H",
4856
+ "hB"
4857
+ ],
4858
+ "GN": [
4859
+ "H",
4860
+ "hB"
4861
+ ],
4862
+ "GP": [
4863
+ "H",
4864
+ "hB"
4865
+ ],
4866
+ "GW": [
4867
+ "H",
4868
+ "hB"
4869
+ ],
4870
+ "HR": [
4871
+ "H",
4872
+ "hB"
4873
+ ],
4874
+ "IL": [
4875
+ "H",
4876
+ "hB"
4877
+ ],
4878
+ "IT": [
4879
+ "H",
4880
+ "hB"
4881
+ ],
4882
+ "KZ": [
4883
+ "H",
4884
+ "hB"
4885
+ ],
4886
+ "MC": [
4887
+ "H",
4888
+ "hB"
4889
+ ],
4890
+ "MD": [
4891
+ "H",
4892
+ "hB"
4893
+ ],
4894
+ "MF": [
4895
+ "H",
4896
+ "hB"
4897
+ ],
4898
+ "MQ": [
4899
+ "H",
4900
+ "hB"
4901
+ ],
4902
+ "MZ": [
4903
+ "H",
4904
+ "hB"
4905
+ ],
4906
+ "NC": [
4907
+ "H",
4908
+ "hB"
4909
+ ],
4910
+ "NL": [
4911
+ "H",
4912
+ "hB"
4913
+ ],
4914
+ "PM": [
4915
+ "H",
4916
+ "hB"
4917
+ ],
4918
+ "PT": [
4919
+ "H",
4920
+ "hB"
4921
+ ],
4922
+ "RE": [
4923
+ "H",
4924
+ "hB"
4925
+ ],
4926
+ "RO": [
4927
+ "H",
4928
+ "hB"
4929
+ ],
4930
+ "SI": [
4931
+ "H",
4932
+ "hB"
4933
+ ],
4934
+ "SR": [
4935
+ "H",
4936
+ "hB"
4937
+ ],
4938
+ "ST": [
4939
+ "H",
4940
+ "hB"
4941
+ ],
4942
+ "TG": [
4943
+ "H",
4944
+ "hB"
4945
+ ],
4946
+ "TR": [
4947
+ "H",
4948
+ "hB"
4949
+ ],
4950
+ "WF": [
4951
+ "H",
4952
+ "hB"
4953
+ ],
4954
+ "YT": [
4955
+ "H",
4956
+ "hB"
4957
+ ],
4958
+ "BD": [
4959
+ "h",
4960
+ "hB",
4961
+ "H"
4962
+ ],
4963
+ "PK": [
4964
+ "h",
4965
+ "hB",
4966
+ "H"
4967
+ ],
4968
+ "AZ": [
4969
+ "H",
4970
+ "hB",
4971
+ "h"
4972
+ ],
4973
+ "BA": [
4974
+ "H",
4975
+ "hB",
4976
+ "h"
4977
+ ],
4978
+ "BG": [
4979
+ "H",
4980
+ "hB",
4981
+ "h"
4982
+ ],
4983
+ "CH": [
4984
+ "H",
4985
+ "hB",
4986
+ "h"
4987
+ ],
4988
+ "GE": [
4989
+ "H",
4990
+ "hB",
4991
+ "h"
4992
+ ],
4993
+ "LI": [
4994
+ "H",
4995
+ "hB",
4996
+ "h"
4997
+ ],
4998
+ "ME": [
4999
+ "H",
5000
+ "hB",
5001
+ "h"
5002
+ ],
5003
+ "RS": [
5004
+ "H",
5005
+ "hB",
5006
+ "h"
5007
+ ],
5008
+ "UA": [
5009
+ "H",
5010
+ "hB",
5011
+ "h"
5012
+ ],
5013
+ "UZ": [
5014
+ "H",
5015
+ "hB",
5016
+ "h"
5017
+ ],
5018
+ "XK": [
5019
+ "H",
5020
+ "hB",
5021
+ "h"
5022
+ ],
5023
+ "AG": [
5024
+ "h",
5025
+ "hb",
5026
+ "H",
5027
+ "hB"
5028
+ ],
5029
+ "AU": [
5030
+ "h",
5031
+ "hb",
5032
+ "H",
5033
+ "hB"
5034
+ ],
5035
+ "BB": [
5036
+ "h",
5037
+ "hb",
5038
+ "H",
5039
+ "hB"
5040
+ ],
5041
+ "BM": [
5042
+ "h",
5043
+ "hb",
5044
+ "H",
5045
+ "hB"
5046
+ ],
5047
+ "BS": [
5048
+ "h",
5049
+ "hb",
5050
+ "H",
5051
+ "hB"
5052
+ ],
5053
+ "CA": [
5054
+ "h",
5055
+ "hb",
5056
+ "H",
5057
+ "hB"
5058
+ ],
5059
+ "DM": [
5060
+ "h",
5061
+ "hb",
5062
+ "H",
5063
+ "hB"
5064
+ ],
5065
+ "en-001": [
5066
+ "h",
5067
+ "hb",
5068
+ "H",
5069
+ "hB"
5070
+ ],
5071
+ "FJ": [
5072
+ "h",
5073
+ "hb",
5074
+ "H",
5075
+ "hB"
5076
+ ],
5077
+ "FM": [
5078
+ "h",
5079
+ "hb",
5080
+ "H",
5081
+ "hB"
5082
+ ],
5083
+ "GD": [
5084
+ "h",
5085
+ "hb",
5086
+ "H",
5087
+ "hB"
5088
+ ],
5089
+ "GM": [
5090
+ "h",
5091
+ "hb",
5092
+ "H",
5093
+ "hB"
5094
+ ],
5095
+ "GU": [
5096
+ "h",
5097
+ "hb",
5098
+ "H",
5099
+ "hB"
5100
+ ],
5101
+ "GY": [
5102
+ "h",
5103
+ "hb",
5104
+ "H",
5105
+ "hB"
5106
+ ],
5107
+ "JM": [
5108
+ "h",
5109
+ "hb",
5110
+ "H",
5111
+ "hB"
5112
+ ],
5113
+ "KI": [
5114
+ "h",
5115
+ "hb",
5116
+ "H",
5117
+ "hB"
5118
+ ],
5119
+ "KN": [
5120
+ "h",
5121
+ "hb",
5122
+ "H",
5123
+ "hB"
5124
+ ],
5125
+ "KY": [
5126
+ "h",
5127
+ "hb",
5128
+ "H",
5129
+ "hB"
5130
+ ],
5131
+ "LC": [
5132
+ "h",
5133
+ "hb",
5134
+ "H",
5135
+ "hB"
5136
+ ],
5137
+ "LR": [
5138
+ "h",
5139
+ "hb",
5140
+ "H",
5141
+ "hB"
5142
+ ],
5143
+ "MH": [
5144
+ "h",
5145
+ "hb",
5146
+ "H",
5147
+ "hB"
5148
+ ],
5149
+ "MP": [
5150
+ "h",
5151
+ "hb",
5152
+ "H",
5153
+ "hB"
5154
+ ],
5155
+ "MW": [
5156
+ "h",
5157
+ "hb",
5158
+ "H",
5159
+ "hB"
5160
+ ],
5161
+ "NZ": [
5162
+ "h",
5163
+ "hb",
5164
+ "H",
5165
+ "hB"
5166
+ ],
5167
+ "SB": [
5168
+ "h",
5169
+ "hb",
5170
+ "H",
5171
+ "hB"
5172
+ ],
5173
+ "SG": [
5174
+ "h",
5175
+ "hb",
5176
+ "H",
5177
+ "hB"
5178
+ ],
5179
+ "SL": [
5180
+ "h",
5181
+ "hb",
5182
+ "H",
5183
+ "hB"
5184
+ ],
5185
+ "SS": [
5186
+ "h",
5187
+ "hb",
5188
+ "H",
5189
+ "hB"
5190
+ ],
5191
+ "SZ": [
5192
+ "h",
5193
+ "hb",
5194
+ "H",
5195
+ "hB"
5196
+ ],
5197
+ "TC": [
5198
+ "h",
5199
+ "hb",
5200
+ "H",
5201
+ "hB"
5202
+ ],
5203
+ "TT": [
5204
+ "h",
5205
+ "hb",
5206
+ "H",
5207
+ "hB"
5208
+ ],
5209
+ "UM": [
5210
+ "h",
5211
+ "hb",
5212
+ "H",
5213
+ "hB"
5214
+ ],
5215
+ "US": [
5216
+ "h",
5217
+ "hb",
5218
+ "H",
5219
+ "hB"
5220
+ ],
5221
+ "VC": [
5222
+ "h",
5223
+ "hb",
5224
+ "H",
5225
+ "hB"
5226
+ ],
5227
+ "VG": [
5228
+ "h",
5229
+ "hb",
5230
+ "H",
5231
+ "hB"
5232
+ ],
5233
+ "VI": [
5234
+ "h",
5235
+ "hb",
5236
+ "H",
5237
+ "hB"
5238
+ ],
5239
+ "ZM": [
5240
+ "h",
5241
+ "hb",
5242
+ "H",
5243
+ "hB"
5244
+ ],
5245
+ "BO": [
5246
+ "H",
5247
+ "hB",
5248
+ "h",
5249
+ "hb"
5250
+ ],
5251
+ "EC": [
5252
+ "H",
5253
+ "hB",
5254
+ "h",
5255
+ "hb"
5256
+ ],
5257
+ "ES": [
5258
+ "H",
5259
+ "hB",
5260
+ "h",
5261
+ "hb"
5262
+ ],
5263
+ "GQ": [
5264
+ "H",
5265
+ "hB",
5266
+ "h",
5267
+ "hb"
5268
+ ],
5269
+ "PE": [
5270
+ "H",
5271
+ "hB",
5272
+ "h",
5273
+ "hb"
5274
+ ],
5275
+ "AE": [
5276
+ "h",
5277
+ "hB",
5278
+ "hb",
5279
+ "H"
5280
+ ],
5281
+ "ar-001": [
5282
+ "h",
5283
+ "hB",
5284
+ "hb",
5285
+ "H"
5286
+ ],
5287
+ "BH": [
5288
+ "h",
5289
+ "hB",
5290
+ "hb",
5291
+ "H"
5292
+ ],
5293
+ "DZ": [
5294
+ "h",
5295
+ "hB",
5296
+ "hb",
5297
+ "H"
5298
+ ],
5299
+ "EG": [
5300
+ "h",
5301
+ "hB",
5302
+ "hb",
5303
+ "H"
5304
+ ],
5305
+ "EH": [
5306
+ "h",
5307
+ "hB",
5308
+ "hb",
5309
+ "H"
5310
+ ],
5311
+ "HK": [
5312
+ "h",
5313
+ "hB",
5314
+ "hb",
5315
+ "H"
5316
+ ],
5317
+ "IQ": [
5318
+ "h",
5319
+ "hB",
5320
+ "hb",
5321
+ "H"
5322
+ ],
5323
+ "JO": [
5324
+ "h",
5325
+ "hB",
5326
+ "hb",
5327
+ "H"
5328
+ ],
5329
+ "KW": [
5330
+ "h",
5331
+ "hB",
5332
+ "hb",
5333
+ "H"
5334
+ ],
5335
+ "LB": [
5336
+ "h",
5337
+ "hB",
5338
+ "hb",
5339
+ "H"
5340
+ ],
5341
+ "LY": [
5342
+ "h",
5343
+ "hB",
5344
+ "hb",
5345
+ "H"
5346
+ ],
5347
+ "MO": [
5348
+ "h",
5349
+ "hB",
5350
+ "hb",
5351
+ "H"
5352
+ ],
5353
+ "MR": [
5354
+ "h",
5355
+ "hB",
5356
+ "hb",
5357
+ "H"
5358
+ ],
5359
+ "OM": [
5360
+ "h",
5361
+ "hB",
5362
+ "hb",
5363
+ "H"
5364
+ ],
5365
+ "PH": [
5366
+ "h",
5367
+ "hB",
5368
+ "hb",
5369
+ "H"
5370
+ ],
5371
+ "PS": [
5372
+ "h",
5373
+ "hB",
5374
+ "hb",
5375
+ "H"
5376
+ ],
5377
+ "QA": [
5378
+ "h",
5379
+ "hB",
5380
+ "hb",
5381
+ "H"
5382
+ ],
5383
+ "SA": [
5384
+ "h",
5385
+ "hB",
5386
+ "hb",
5387
+ "H"
5388
+ ],
5389
+ "SD": [
5390
+ "h",
5391
+ "hB",
5392
+ "hb",
5393
+ "H"
5394
+ ],
5395
+ "SY": [
5396
+ "h",
5397
+ "hB",
5398
+ "hb",
5399
+ "H"
5400
+ ],
5401
+ "TN": [
5402
+ "h",
5403
+ "hB",
5404
+ "hb",
5405
+ "H"
5406
+ ],
5407
+ "YE": [
5408
+ "h",
5409
+ "hB",
5410
+ "hb",
5411
+ "H"
5412
+ ],
5413
+ "AF": [
5414
+ "H",
5415
+ "hb",
5416
+ "hB",
5417
+ "h"
5418
+ ],
5419
+ "LA": [
5420
+ "H",
5421
+ "hb",
5422
+ "hB",
5423
+ "h"
5424
+ ],
5425
+ "CN": [
5426
+ "H",
5427
+ "hB",
5428
+ "hb",
5429
+ "h"
5430
+ ],
5431
+ "LV": [
5432
+ "H",
5433
+ "hB",
5434
+ "hb",
5435
+ "h"
5436
+ ],
5437
+ "TL": [
5438
+ "H",
5439
+ "hB",
5440
+ "hb",
5441
+ "h"
5442
+ ],
5443
+ "zu-ZA": [
5444
+ "H",
5445
+ "hB",
5446
+ "hb",
5447
+ "h"
5448
+ ],
5449
+ "CD": [
5450
+ "hB",
5451
+ "H"
5452
+ ],
5453
+ "IR": [
5454
+ "hB",
5455
+ "H"
5456
+ ],
5457
+ "hi-IN": [
5458
+ "hB",
5459
+ "h",
5460
+ "H"
5461
+ ],
5462
+ "kn-IN": [
5463
+ "hB",
5464
+ "h",
5465
+ "H"
5466
+ ],
5467
+ "ml-IN": [
5468
+ "hB",
5469
+ "h",
5470
+ "H"
5471
+ ],
5472
+ "te-IN": [
5473
+ "hB",
5474
+ "h",
5475
+ "H"
5476
+ ],
5477
+ "KH": [
5478
+ "hB",
5479
+ "h",
5480
+ "H",
5481
+ "hb"
5482
+ ],
5483
+ "ta-IN": [
5484
+ "hB",
5485
+ "h",
5486
+ "hb",
5487
+ "H"
5488
+ ],
5489
+ "BN": [
5490
+ "hb",
5491
+ "hB",
5492
+ "h",
5493
+ "H"
5494
+ ],
5495
+ "MY": [
5496
+ "hb",
5497
+ "hB",
5498
+ "h",
5499
+ "H"
5500
+ ],
5501
+ "ET": [
5502
+ "hB",
5503
+ "hb",
5504
+ "h",
5505
+ "H"
5506
+ ],
5507
+ "gu-IN": [
5508
+ "hB",
5509
+ "hb",
5510
+ "h",
5511
+ "H"
5512
+ ],
5513
+ "mr-IN": [
5514
+ "hB",
5515
+ "hb",
5516
+ "h",
5517
+ "H"
5518
+ ],
5519
+ "pa-IN": [
5520
+ "hB",
5521
+ "hb",
5522
+ "h",
5523
+ "H"
5524
+ ],
5525
+ "TW": [
5526
+ "hB",
5527
+ "hb",
5528
+ "h",
5529
+ "H"
5530
+ ],
5531
+ "KE": [
5532
+ "hB",
5533
+ "hb",
5534
+ "H",
5535
+ "h"
5536
+ ],
5537
+ "MM": [
5538
+ "hB",
5539
+ "hb",
5540
+ "H",
5541
+ "h"
5542
+ ],
5543
+ "TZ": [
5544
+ "hB",
5545
+ "hb",
5546
+ "H",
5547
+ "h"
5548
+ ],
5549
+ "UG": [
5550
+ "hB",
5551
+ "hb",
5552
+ "H",
5553
+ "h"
5554
+ ]
5555
+ };
5556
+
5557
+ /**
5558
+ * Returns the best matching date time pattern if a date time skeleton
5559
+ * pattern is provided with a locale. Follows the Unicode specification:
5560
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns
5561
+ * @param skeleton date time skeleton pattern that possibly includes j, J or C
5562
+ * @param locale
5563
+ */
5564
+ function getBestPattern(skeleton, locale) {
5565
+ var skeletonCopy = '';
5566
+ for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {
5567
+ var patternChar = skeleton.charAt(patternPos);
5568
+ if (patternChar === 'j') {
5569
+ var extraLength = 0;
5570
+ while (patternPos + 1 < skeleton.length &&
5571
+ skeleton.charAt(patternPos + 1) === patternChar) {
5572
+ extraLength++;
5573
+ patternPos++;
5574
+ }
5575
+ var hourLen = 1 + (extraLength & 1);
5576
+ var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);
5577
+ var dayPeriodChar = 'a';
5578
+ var hourChar = getDefaultHourSymbolFromLocale(locale);
5579
+ if (hourChar == 'H' || hourChar == 'k') {
5580
+ dayPeriodLen = 0;
5581
+ }
5582
+ while (dayPeriodLen-- > 0) {
5583
+ skeletonCopy += dayPeriodChar;
5584
+ }
5585
+ while (hourLen-- > 0) {
5586
+ skeletonCopy = hourChar + skeletonCopy;
5587
+ }
5588
+ }
5589
+ else if (patternChar === 'J') {
5590
+ skeletonCopy += 'H';
5591
+ }
5592
+ else {
5593
+ skeletonCopy += patternChar;
5594
+ }
5595
+ }
5596
+ return skeletonCopy;
5597
+ }
5598
+ /**
5599
+ * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)
5600
+ * of the given `locale` to the corresponding time pattern.
5601
+ * @param locale
5602
+ */
5603
+ function getDefaultHourSymbolFromLocale(locale) {
5604
+ var hourCycle = locale.hourCycle;
5605
+ if (hourCycle === undefined &&
5606
+ // @ts-ignore hourCycle(s) is not identified yet
5607
+ locale.hourCycles &&
5608
+ // @ts-ignore
5609
+ locale.hourCycles.length) {
5610
+ // @ts-ignore
5611
+ hourCycle = locale.hourCycles[0];
5612
+ }
5613
+ if (hourCycle) {
5614
+ switch (hourCycle) {
5615
+ case 'h24':
5616
+ return 'k';
5617
+ case 'h23':
5618
+ return 'H';
5619
+ case 'h12':
5620
+ return 'h';
5621
+ case 'h11':
5622
+ return 'K';
5623
+ default:
5624
+ throw new Error('Invalid hourCycle');
5625
+ }
5626
+ }
5627
+ // TODO: Once hourCycle is fully supported remove the following with data generation
5628
+ var languageTag = locale.language;
5629
+ var regionTag;
5630
+ if (languageTag !== 'root') {
5631
+ regionTag = locale.maximize().region;
5632
+ }
5633
+ var hourCycles = timeData[regionTag || ''] ||
5634
+ timeData[languageTag || ''] ||
5635
+ timeData["".concat(languageTag, "-001")] ||
5636
+ timeData['001'];
5637
+ return hourCycles[0];
5638
+ }
5639
+
4217
5640
  var _a;
4218
5641
  var SPACE_SEPARATOR_START_REGEX = new RegExp("^".concat(SPACE_SEPARATOR_REGEX.source, "*"));
4219
5642
  var SPACE_SEPARATOR_END_REGEX = new RegExp("".concat(SPACE_SEPARATOR_REGEX.source, "*$"));
@@ -4373,6 +5796,7 @@ var Parser = /** @class */ (function () {
4373
5796
  this.message = message;
4374
5797
  this.position = { offset: 0, line: 1, column: 1 };
4375
5798
  this.ignoreTag = !!options.ignoreTag;
5799
+ this.locale = options.locale;
4376
5800
  this.requiresOtherClause = !!options.requiresOtherClause;
4377
5801
  this.shouldParseSkeletons = !!options.shouldParseSkeletons;
4378
5802
  }
@@ -4748,12 +6172,19 @@ var Parser = /** @class */ (function () {
4748
6172
  if (skeleton.length === 0) {
4749
6173
  return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);
4750
6174
  }
6175
+ var dateTimePattern = skeleton;
6176
+ // Get "best match" pattern only if locale is passed, if not, let it
6177
+ // pass as-is where `parseDateTimeSkeleton()` will throw an error
6178
+ // for unsupported patterns.
6179
+ if (this.locale) {
6180
+ dateTimePattern = getBestPattern(skeleton, this.locale);
6181
+ }
4751
6182
  var style = {
4752
6183
  type: SKELETON_TYPE.dateTime,
4753
- pattern: skeleton,
6184
+ pattern: dateTimePattern,
4754
6185
  location: styleAndLocation.styleLocation,
4755
6186
  parsedOptions: this.shouldParseSkeletons
4756
- ? parseDateTimeSkeleton(skeleton)
6187
+ ? parseDateTimeSkeleton(dateTimePattern)
4757
6188
  : {},
4758
6189
  };
4759
6190
  var type = argType === 'date' ? TYPE.date : TYPE.time;
@@ -5738,7 +7169,7 @@ originalMessage) {
5738
7169
  ? formats.time[el.style]
5739
7170
  : isDateTimeSkeleton(el.style)
5740
7171
  ? el.style.parsedOptions
5741
- : undefined;
7172
+ : formats.time.medium;
5742
7173
  result.push({
5743
7174
  type: PART_TYPE.literal,
5744
7175
  value: formatters
@@ -5928,9 +7359,12 @@ var IntlMessageFormat = /** @class */ (function () {
5928
7359
  return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);
5929
7360
  };
5930
7361
  this.resolvedOptions = function () { return ({
5931
- locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],
7362
+ locale: _this.resolvedLocale.toString(),
5932
7363
  }); };
5933
7364
  this.getAst = function () { return _this.ast; };
7365
+ // Defined first because it's used to build the format pattern.
7366
+ this.locales = locales;
7367
+ this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);
5934
7368
  if (typeof message === 'string') {
5935
7369
  this.message = message;
5936
7370
  if (!IntlMessageFormat.__parse) {
@@ -5939,6 +7373,7 @@ var IntlMessageFormat = /** @class */ (function () {
5939
7373
  // Parse string messages into an AST.
5940
7374
  this.ast = IntlMessageFormat.__parse(message, {
5941
7375
  ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,
7376
+ locale: this.resolvedLocale,
5942
7377
  });
5943
7378
  }
5944
7379
  else {
@@ -5950,8 +7385,6 @@ var IntlMessageFormat = /** @class */ (function () {
5950
7385
  // Creates a new object with the specified `formats` merged with the default
5951
7386
  // formats.
5952
7387
  this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);
5953
- // Defined first because it's used to build the format pattern.
5954
- this.locales = locales;
5955
7388
  this.formatters =
5956
7389
  (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);
5957
7390
  }
@@ -5967,6 +7400,13 @@ var IntlMessageFormat = /** @class */ (function () {
5967
7400
  configurable: true
5968
7401
  });
5969
7402
  IntlMessageFormat.memoizedDefaultLocale = null;
7403
+ IntlMessageFormat.resolveLocale = function (locales) {
7404
+ var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);
7405
+ if (supportedLocales.length > 0) {
7406
+ return new Intl.Locale(supportedLocales[0]);
7407
+ }
7408
+ return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);
7409
+ };
5970
7410
  IntlMessageFormat.__parse = parse;
5971
7411
  // Default format options used as the prototype of the `formats` provided to the
5972
7412
  // constructor. These are used when constructing the internal Intl.NumberFormat
@@ -6108,9 +7548,9 @@ var MissingTranslationError = /** @class */ (function (_super) {
6108
7548
  return MissingTranslationError;
6109
7549
  }(IntlError));
6110
7550
 
6111
- function filterProps(props, whitelist, defaults) {
7551
+ function filterProps(props, allowlist, defaults) {
6112
7552
  if (defaults === void 0) { defaults = {}; }
6113
- return whitelist.reduce(function (filtered, name) {
7553
+ return allowlist.reduce(function (filtered, name) {
6114
7554
  if (name in props) {
6115
7555
  filtered[name] = props[name];
6116
7556
  }
@@ -6122,6 +7562,8 @@ function filterProps(props, whitelist, defaults) {
6122
7562
  }
6123
7563
  var defaultErrorHandler = function (error) {
6124
7564
  };
7565
+ var defaultWarnHandler = function (warning) {
7566
+ };
6125
7567
  var DEFAULT_INTL_CONFIG = {
6126
7568
  formats: {},
6127
7569
  messages: {},
@@ -6130,6 +7572,7 @@ var DEFAULT_INTL_CONFIG = {
6130
7572
  defaultFormats: {},
6131
7573
  fallbackOnEmptyString: true,
6132
7574
  onError: defaultErrorHandler,
7575
+ onWarn: defaultWarnHandler,
6133
7576
  };
6134
7577
  function createIntlCache() {
6135
7578
  return {
@@ -6667,9 +8110,10 @@ function messagesContainString(messages) {
6667
8110
  return typeof firstMessage === 'string';
6668
8111
  }
6669
8112
  function verifyConfigMessages(config) {
6670
- if (config.defaultRichTextElements &&
8113
+ if (config.onWarn &&
8114
+ config.defaultRichTextElements &&
6671
8115
  messagesContainString(config.messages || {})) {
6672
- 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");
8116
+ 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");
6673
8117
  }
6674
8118
  }
6675
8119
  /**
@@ -6700,474 +8144,451 @@ function createIntl(config, cache) {
6700
8144
  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")));
6701
8145
  }
6702
8146
  verifyConfigMessages(resolvedConfig);
6703
- 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) });
8147
+ 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) });
6704
8148
  }
6705
8149
 
6706
- const DEFAULT_LANGUAGE = "en";
6707
- function getBrowserLang() {
6708
- const langAttr = document.documentElement.getAttribute("lang");
6709
- if (!!langAttr) {
6710
- return langAttr;
6711
- }
6712
- else if (window.navigator && window.navigator.language) {
6713
- const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
6714
- return lang.slice(0, 2);
6715
- }
6716
- else {
6717
- return DEFAULT_LANGUAGE;
6718
- }
6719
- }
6720
- // prevents memory leak
6721
- const cache = createIntlCache();
6722
- const locale = getBrowserLang();
6723
- const intl = createIntl({
6724
- locale: locale,
6725
- defaultLocale: "en",
6726
- messages: lang[locale] || en,
6727
- }, cache);
6728
- function generateId() {
6729
- return "wmcl-" + Math.random().toString(36).substr(2, 10);
6730
- }
6731
- // limits how many times a function fires
6732
- // use when the function should run periodically, but not too often (e.g. window resize)
6733
- function throttle(fn, wait) {
6734
- let timeout;
6735
- let shouldWait = false;
6736
- return function () {
6737
- const context = this;
6738
- if (!shouldWait) {
6739
- fn.apply(context, arguments);
6740
- shouldWait = true;
6741
- clearTimeout(timeout);
6742
- timeout = setTimeout(function () {
6743
- shouldWait = false;
6744
- }, wait);
6745
- }
6746
- };
6747
- }
6748
- // waits until it hasn't been called for [timeout] ms.
6749
- // use when the function should run only after something (event) is done firing
6750
- function debounce(fn, wait) {
6751
- let timeout;
6752
- return function () {
6753
- const context = this;
6754
- const functionCall = () => fn.apply(context, arguments);
6755
- clearTimeout(timeout);
6756
- timeout = setTimeout(functionCall, wait);
6757
- };
6758
- }
6759
- function getTextDir() {
6760
- const dir = document.querySelector("html").getAttribute("dir");
6761
- return dir ? dir.toLowerCase() : "";
6762
- }
6763
- function getPosition(el) {
6764
- const coords = el.getBoundingClientRect();
6765
- let x = coords.x;
6766
- let y = coords.y;
6767
- // Edge doesn't have x and y
6768
- if (!x) {
6769
- if (getTextDir() === "rtl") {
6770
- x = coords.right;
6771
- }
6772
- else {
6773
- x = coords.left;
6774
- }
6775
- y = coords.top;
6776
- }
6777
- return { x, y };
6778
- }
6779
- function findParentWithScrollbar(el) {
6780
- while (!!el) {
6781
- if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
6782
- return el;
6783
- }
6784
- el = el.parentElement;
6785
- }
6786
- }
6787
- function findParentWithHiddenOverflow(el) {
6788
- while (!!el) {
6789
- if (window.getComputedStyle(el).overflowY !== "visible") {
6790
- return el;
6791
- }
6792
- el = el.parentElement;
6793
- }
6794
- }
6795
- function getClosableElementMeasurements(fixedEl, closableEl) {
6796
- const parent = findParentWithHiddenOverflow(fixedEl);
6797
- // if parent is not found, measurements are checked against the viewport
6798
- return {
6799
- closableElHeight: closableEl.clientHeight,
6800
- closableElWidth: closableEl.clientWidth,
6801
- // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6802
- // to get space below the el -> height of viewport minus boundingClientRect.bottom
6803
- spaceAbove: parent
6804
- ? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
6805
- : fixedEl.getBoundingClientRect().top,
6806
- // NB boundingClientRect.bottom is space from top of viewport to bottom of el
6807
- // to get space below the el -> height of viewport minus boundingClientRect.bottom
6808
- spaceBelow: parent
6809
- ? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
6810
- : document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
6811
- spaceLeft: parent
6812
- ? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
6813
- : fixedEl.getBoundingClientRect().left,
6814
- spaceRight: parent
6815
- ? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
6816
- : document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
6817
- };
6818
- }
6819
- function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
6820
- closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6821
- offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6822
- offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6823
- ) {
6824
- const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6825
- //we want to open up only if there's not enough space below AND there is enough space above
6826
- const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
6827
- return openUp;
6828
- }
6829
- function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
6830
- closableEl, //the dropdown/popup/etc that becomes visible when the component is open
6831
- offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
6832
- offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
6833
- ) {
6834
- const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
6835
- //we want to open up only if there's not enough space below AND there is enough space above
6836
- const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
6837
- return openDown;
6838
- }
6839
- function shouldShiftRight(fixedEl, closableEl) {
6840
- const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6841
- const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
6842
- return needsSpaceLeft;
6843
- }
6844
- function shouldShiftLeft(fixedEl, closableEl) {
6845
- const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
6846
- const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
6847
- return needsSpaceRight;
6848
- }
6849
- function adjustTooltipPosition(tPos, el, tooltipEl) {
6850
- // position must be reset before measurements are taken in adjustTooltipPosition
6851
- // otherwise text-wrapping from previous position makes width measurement inconsistent
6852
- tooltipEl.style.top = "";
6853
- tooltipEl.style.left = "";
6854
- const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
6855
- const tooltipWidth = tooltipEl.getBoundingClientRect().width;
6856
- const tooltipHeight = tooltipEl.getBoundingClientRect().height;
6857
- const enoughSpaceAbove = spaceAbove > tooltipHeight;
6858
- const enoughSpaceBelow = spaceBelow > tooltipHeight;
6859
- // a tooltip should never be closer than 24px to the edge of a screen
6860
- const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
6861
- const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
6862
- const swapAbove = (position) => {
6863
- return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
6864
- };
6865
- const swapBelow = (position) => {
6866
- return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
6867
- };
6868
- const swapLeft = (position, centeredPosition) => {
6869
- if (!enoughSpaceLeft && enoughSpaceRight) {
6870
- position = position.replace("left", "right");
6871
- }
6872
- else if (!enoughSpaceLeft && !enoughSpaceRight) {
6873
- position = centeredPosition;
6874
- }
6875
- return position;
6876
- };
6877
- const swapRight = (position, centeredPosition) => {
6878
- if (!enoughSpaceRight && enoughSpaceLeft) {
6879
- position = position.replace("right", "left");
6880
- }
6881
- else if (!enoughSpaceRight && !enoughSpaceLeft) {
6882
- position = centeredPosition;
6883
- }
6884
- return position;
6885
- };
6886
- // horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
6887
- switch (tPos) {
6888
- case "left":
6889
- tPos = swapLeft(tPos, "bottom");
6890
- case "right":
6891
- tPos = swapRight(tPos, "bottom");
6892
- case "top-left":
6893
- tPos = swapLeft(tPos, "top");
6894
- tPos = swapAbove(tPos);
6895
- case "top-right":
6896
- tPos = swapRight(tPos, "top");
6897
- tPos = swapAbove(tPos);
6898
- case "bottom-left":
6899
- tPos = swapLeft(tPos, "bottom");
6900
- tPos = swapBelow(tPos);
6901
- case "bottom-right":
6902
- tPos = swapRight(tPos, "bottom");
6903
- tPos = swapBelow(tPos);
6904
- case "top":
6905
- tPos = swapAbove(tPos);
6906
- case "bottom":
6907
- tPos = swapBelow(tPos);
6908
- }
6909
- return tPos;
6910
- }
6911
- function hasRoomRight(x, spaceNeeded) {
6912
- let horizOffset = 0;
6913
- // if (getTextDir() === "ltr") {
6914
- if (x.type === "click") {
6915
- // if it's a mouse event, deal with mouse coords
6916
- horizOffset = x.clientX;
6917
- // if it's a focus event, the offset is 0
6918
- }
6919
- else if (x.type === "focus") {
6920
- horizOffset = 0;
6921
- }
6922
- else {
6923
- // otherwise an element was passed, calculate how far it is from the edge of the window
6924
- let el = x; // re-assignment is for clarity
6925
- while (el) {
6926
- if (el.tagName == "BODY") {
6927
- // deal with browser quirks with body/window/document and page scroll
6928
- var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
6929
- horizOffset += el.offsetLeft - xScroll + el.clientLeft;
6930
- }
6931
- else {
6932
- // for all other non-BODY elements
6933
- horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
6934
- }
6935
- el = el.offsetParent;
6936
- }
6937
- // }
6938
- }
6939
- return window.innerWidth - horizOffset >= spaceNeeded;
6940
- }
6941
- function checkForActiveElInShadow(element) {
6942
- while (element && element.shadowRoot) {
6943
- element = element.shadowRoot.activeElement;
6944
- }
6945
- return element;
6946
- }
6947
- function checkForFocusableElInShadow(element) {
6948
- const selectors = [
6949
- "button",
6950
- "a",
6951
- "input",
6952
- "select",
6953
- "textarea",
6954
- "wm-button",
6955
- "wm-search",
6956
- "wm-select",
6957
- "wm-action-menu",
6958
- "wm-tab-item",
6959
- "wm-datepicker",
6960
- ];
6961
- let focusableEl = element;
6962
- selectors.forEach((selector) => {
6963
- if (focusableEl && focusableEl.shadowRoot) {
6964
- let elInShadow = focusableEl.shadowRoot.querySelector(selector);
6965
- if (elInShadow) {
6966
- if (selector.startsWith("wm-")) {
6967
- focusableEl = checkForFocusableElInShadow(elInShadow);
6968
- }
6969
- else {
6970
- focusableEl = elInShadow;
6971
- }
6972
- }
6973
- }
6974
- });
6975
- return focusableEl;
6976
- }
6977
- function isFocusable(element) {
6978
- if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
6979
- return true;
6980
- }
6981
- if (element.disabled) {
6982
- return false;
6983
- }
6984
- switch (element.nodeName) {
6985
- case "A":
6986
- return !!element.href && element.rel != "ignore";
6987
- case "INPUT":
6988
- return element.type != "hidden" && element.type != "file";
6989
- case "BUTTON":
6990
- case "SELECT":
6991
- case "TEXTAREA":
6992
- case "WM-BUTTON":
6993
- case "WM-SELECT":
6994
- case "WM-ACTION-MENU":
6995
- case "WM-DATEPICKER":
6996
- case "WM-TIMEPICKER":
6997
- case "WM-INPUT":
6998
- case "WM-TAG-INPUT":
6999
- case "WM-TAB-ITEM":
7000
- case "WM-SEARCH":
7001
- return true;
7002
- default:
7003
- return false;
7004
- }
7005
- }
7006
- function getFirstFocusableDescendant(element) {
7007
- if (isFocusable(element)) {
7008
- return checkForFocusableElInShadow(element);
7009
- }
7010
- else if (element.childNodes.length > 0) {
7011
- element.childNodes.forEach((i) => {
7012
- const childEl = getFirstFocusableDescendant(i);
7013
- return childEl && checkForFocusableElInShadow(childEl);
7014
- });
7015
- }
7016
- }
7017
- function hasValidType(file, types) {
7018
- const acceptedExtensions = types.split(" ");
7019
- const parts = file.name && file.name.split(".");
7020
- const ext = parts && parts.length > 1 && parts[parts.length - 1];
7021
- return ext
7022
- ? acceptedExtensions.includes(ext.toLowerCase())
7023
- : // fallback: if we couldn't obtain an extension,
7024
- // validate based on MIME type...
7025
- !!file.type
7026
- ? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
7027
- : // ...and if that failed too, accept the file
7028
- // as it's preferable to accept an invalid file
7029
- // than refusing a valid one (back-end will take care of what slips through)
7030
- true;
7031
- }
7032
- // takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
7033
- function getAcceptedMimeTypesList(acceptedExtensions) {
7034
- // this is just a list of common file types (regardless of whether they are/can be valid or not)
7035
- // front end checks are just a convenience to users, independent of security.
7036
- // it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
7037
- const lookupTable = {
7038
- aac: ["audio/aac"],
7039
- abw: ["application/x-abiword"],
7040
- arc: ["application/x-freearc"],
7041
- avi: ["video/x-msvideo"],
7042
- azw: ["application/vnd.amazon.ebook"],
7043
- bin: ["application/octet-stream"],
7044
- bmp: ["image/bmp"],
7045
- bz: ["application/x-bzip"],
7046
- bz2: ["application/x-bzip2"],
7047
- csh: ["application/x-csh"],
7048
- css: ["text/css"],
7049
- csv: ["text/csv"],
7050
- doc: ["application/msword"],
7051
- docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
7052
- eot: ["application/vnd.ms-fontobject"],
7053
- epub: ["application/epub+zip"],
7054
- gz: ["application/gzip"],
7055
- gif: ["image/gif"],
7056
- htm: ["text/html"],
7057
- html: ["text/html"],
7058
- ico: ["image/vnd.microsoft.icon"],
7059
- ics: ["text/calendar"],
7060
- jar: ["application/java-archive"],
7061
- jpeg: ["image/jpeg"],
7062
- jpg: ["image/jpeg"],
7063
- js: ["text/javascript"],
7064
- json: ["application/json"],
7065
- jsonld: ["application/ld+json"],
7066
- log: ["text/plain"],
7067
- mid: ["audio/x-midi"],
7068
- midi: ["audio/x-midi"],
7069
- mjs: ["text/javascript"],
7070
- mp3: ["audio/mpeg"],
7071
- mpeg: ["video/mpeg"],
7072
- mpkg: ["application/vnd.apple.installer+xml"],
7073
- odp: ["application/vnd.oasis.opendocument.presentation"],
7074
- ods: ["application/vnd.oasis.opendocument.spreadsheet"],
7075
- odt: ["application/vnd.oasis.opendocument.text"],
7076
- oga: ["audio/ogg"],
7077
- ogv: ["video/ogg"],
7078
- ogx: ["application/ogg"],
7079
- opus: ["audio/opus"],
7080
- otf: ["font/otf"],
7081
- png: ["image/png"],
7082
- pdf: ["application/pdf"],
7083
- php: ["application/php"],
7084
- ppt: ["application/vnd.ms-powerpoint"],
7085
- pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
7086
- rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
7087
- rtf: ["application/rtf"],
7088
- sh: ["application/x-sh"],
7089
- svg: ["image/svg+xml"],
7090
- swf: ["application/x-shockwave-flash"],
7091
- tar: ["application/x-tar"],
7092
- tif: ["image/tiff"],
7093
- tiff: ["image/tiff"],
7094
- ts: ["video/mp2t"],
7095
- ttf: ["font/ttf"],
7096
- txt: ["text/plain"],
7097
- vsd: ["application/vnd.visio"],
7098
- wav: ["audio/wav"],
7099
- weba: ["audio/webm"],
7100
- webm: ["video/webm"],
7101
- webp: ["image/webp"],
7102
- woff: ["font/woff"],
7103
- woff2: ["font/woff2"],
7104
- xhtml: ["application/xhtml+xml"],
7105
- xls: ["application/vnd.ms-excel"],
7106
- xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
7107
- xml: ["application/xml", "text/xml"],
7108
- xul: ["application/vnd.mozilla.xul+xml"],
7109
- zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
7110
- "3gp": ["video/3gpp", "audio/3gpp"],
7111
- "3g2": ["video/3gpp2", "audio/3gpp2"],
7112
- "7z": ["application/x-7z-compressed"],
7113
- };
7114
- return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
7115
- }
7116
- function snakeCaseToCamelCase(str) {
7117
- const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
7118
- if (snakeCaseRegexp.test(str)) {
7119
- let camelCase = "";
7120
- let arr = str.split("_");
7121
- arr.forEach((word, idx) => {
7122
- camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
7123
- });
7124
- return camelCase;
7125
- }
7126
- else {
7127
- return str;
7128
- }
7129
- }
7130
- function getNewIndexToFocus(currentIndex, direction, listLength) {
7131
- let newIndex = currentIndex;
7132
- if (direction === "ArrowDown") {
7133
- newIndex = (currentIndex + 1) % listLength;
7134
- }
7135
- if (direction === "ArrowUp") {
7136
- newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
7137
- }
7138
- return newIndex;
7139
- }
7140
- function isRelatedTarget(ev, id) {
7141
- // used for onBlur events to check the element that has been clicked
7142
- const ids = id.split(" ");
7143
- return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
7144
- }
7145
- function toBool(val) {
7146
- // string "false" needs to be treated as bool False because react wrappers convert bool to string.
7147
- return val == "false" ? false : !!val;
7148
- }
7149
- /*
7150
- * this is going to be needed to solve the extra tabbing on navigator
7151
- * and for programmatic focus of tabs
7152
- * Here's a draft, not bug proof, see:
7153
- * https://stackoverflow.com/a/10730308/3741713
7154
-
7155
- function getKeyboardFocusableElements(element = document) {
7156
- 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'));
7157
- return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
7158
- }
7159
-
7160
- export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
7161
- const els = getKeyboardFocusableElements();
7162
- const current = els.indexOf(element);
7163
- return els[current - 1] as HTMLElement;
7164
- }
7165
-
7166
- export function getNextKeyboardFocusableElement(element: HTMLElement) {
7167
- const els = getKeyboardFocusableElements();
7168
- const current = els.indexOf(element);
7169
- return els[current + 1] as HTMLElement;
7170
- }
7171
- */
8150
+ const DEFAULT_LANGUAGE = "en";
8151
+ function getBrowserLang() {
8152
+ const langAttr = document.documentElement.getAttribute("lang");
8153
+ if (!!langAttr) {
8154
+ return langAttr;
8155
+ }
8156
+ else if (window.navigator && window.navigator.language) {
8157
+ const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
8158
+ return lang.slice(0, 2);
8159
+ }
8160
+ else {
8161
+ return DEFAULT_LANGUAGE;
8162
+ }
8163
+ }
8164
+ // prevents memory leak
8165
+ const cache = createIntlCache();
8166
+ const locale = getBrowserLang();
8167
+ const intl = createIntl({
8168
+ locale: locale,
8169
+ defaultLocale: "en",
8170
+ messages: lang[locale] || en,
8171
+ }, cache);
8172
+ function generateId() {
8173
+ return "wmcl-" + Math.random().toString(36).substr(2, 10);
8174
+ }
8175
+ // limits how many times a function fires
8176
+ // use when the function should run periodically, but not too often (e.g. window resize)
8177
+ function throttle(fn, wait) {
8178
+ let timeout;
8179
+ let shouldWait = false;
8180
+ return function () {
8181
+ const context = this;
8182
+ if (!shouldWait) {
8183
+ fn.apply(context, arguments);
8184
+ shouldWait = true;
8185
+ clearTimeout(timeout);
8186
+ timeout = setTimeout(function () {
8187
+ shouldWait = false;
8188
+ }, wait);
8189
+ }
8190
+ };
8191
+ }
8192
+ // waits until it hasn't been called for [timeout] ms.
8193
+ // use when the function should run only after something (event) is done firing
8194
+ function debounce(fn, wait) {
8195
+ let timeout;
8196
+ return function () {
8197
+ const context = this;
8198
+ const functionCall = () => fn.apply(context, arguments);
8199
+ clearTimeout(timeout);
8200
+ timeout = setTimeout(functionCall, wait);
8201
+ };
8202
+ }
8203
+ function getTextDir() {
8204
+ const dir = document.querySelector("html").getAttribute("dir");
8205
+ return dir ? dir.toLowerCase() : "";
8206
+ }
8207
+ function getPosition(el) {
8208
+ const coords = el.getBoundingClientRect();
8209
+ let x = coords.x;
8210
+ let y = coords.y;
8211
+ // Edge doesn't have x and y
8212
+ if (!x) {
8213
+ if (getTextDir() === "rtl") {
8214
+ x = coords.right;
8215
+ }
8216
+ else {
8217
+ x = coords.left;
8218
+ }
8219
+ y = coords.top;
8220
+ }
8221
+ return { x, y };
8222
+ }
8223
+ function findParentWithScrollbar(el) {
8224
+ while (!!el) {
8225
+ if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
8226
+ return el;
8227
+ }
8228
+ el = el.parentElement;
8229
+ }
8230
+ }
8231
+ function findParentWithHiddenOverflow(el) {
8232
+ while (!!el) {
8233
+ if (window.getComputedStyle(el).overflowY !== "visible") {
8234
+ return el;
8235
+ }
8236
+ el = el.parentElement;
8237
+ }
8238
+ }
8239
+ function getClosableElementMeasurements(fixedEl, closableEl) {
8240
+ const parent = findParentWithHiddenOverflow(fixedEl);
8241
+ // if parent is not found, measurements are checked against the viewport
8242
+ return {
8243
+ closableElHeight: closableEl.clientHeight,
8244
+ closableElWidth: closableEl.clientWidth,
8245
+ // NB boundingClientRect.bottom is space from top of viewport to bottom of el
8246
+ // to get space below the el -> height of viewport minus boundingClientRect.bottom
8247
+ spaceAbove: parent
8248
+ ? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
8249
+ : fixedEl.getBoundingClientRect().top,
8250
+ // NB boundingClientRect.bottom is space from top of viewport to bottom of el
8251
+ // to get space below the el -> height of viewport minus boundingClientRect.bottom
8252
+ spaceBelow: parent
8253
+ ? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
8254
+ : document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
8255
+ spaceLeft: parent
8256
+ ? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
8257
+ : fixedEl.getBoundingClientRect().left,
8258
+ spaceRight: parent
8259
+ ? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
8260
+ : document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
8261
+ };
8262
+ }
8263
+ function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
8264
+ closableEl, //the dropdown/popup/etc that becomes visible when the component is open
8265
+ offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
8266
+ offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
8267
+ ) {
8268
+ const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
8269
+ //we want to open up only if there's not enough space below AND there is enough space above
8270
+ const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
8271
+ return openUp;
8272
+ }
8273
+ function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
8274
+ closableEl, //the dropdown/popup/etc that becomes visible when the component is open
8275
+ offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
8276
+ offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
8277
+ ) {
8278
+ const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
8279
+ //we want to open up only if there's not enough space below AND there is enough space above
8280
+ const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
8281
+ return openDown;
8282
+ }
8283
+ function shouldShiftRight(fixedEl, closableEl) {
8284
+ const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
8285
+ const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
8286
+ return needsSpaceLeft;
8287
+ }
8288
+ function shouldShiftLeft(fixedEl, closableEl) {
8289
+ const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
8290
+ const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
8291
+ return needsSpaceRight;
8292
+ }
8293
+ function adjustTooltipPlacement(tPos, el, tooltipEl) {
8294
+ // placement must be reset before measurements are taken in adjustTooltipPlacement
8295
+ // otherwise text-wrapping from previous position makes width measurement inconsistent
8296
+ tooltipEl.style.top = "";
8297
+ tooltipEl.style.left = "";
8298
+ const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
8299
+ const tooltipWidth = tooltipEl.getBoundingClientRect().width;
8300
+ const tooltipHeight = tooltipEl.getBoundingClientRect().height;
8301
+ const enoughSpaceAbove = spaceAbove > tooltipHeight;
8302
+ const enoughSpaceBelow = spaceBelow > tooltipHeight;
8303
+ // a tooltip should never be closer than 24px to the edge of a screen
8304
+ const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
8305
+ const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
8306
+ const swapAbove = (position) => {
8307
+ return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
8308
+ };
8309
+ const swapBelow = (position) => {
8310
+ return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
8311
+ };
8312
+ const swapLeft = (position, centeredPosition) => {
8313
+ if (!enoughSpaceLeft && enoughSpaceRight) {
8314
+ position = position.replace("left", "right");
8315
+ }
8316
+ else if (!enoughSpaceLeft && !enoughSpaceRight) {
8317
+ position = centeredPosition;
8318
+ }
8319
+ return position;
8320
+ };
8321
+ const swapRight = (position, centeredPosition) => {
8322
+ if (!enoughSpaceRight && enoughSpaceLeft) {
8323
+ position = position.replace("right", "left");
8324
+ }
8325
+ else if (!enoughSpaceRight && !enoughSpaceLeft) {
8326
+ position = centeredPosition;
8327
+ }
8328
+ return position;
8329
+ };
8330
+ // horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
8331
+ switch (tPos) {
8332
+ case "left":
8333
+ tPos = swapLeft(tPos, "bottom");
8334
+ case "right":
8335
+ tPos = swapRight(tPos, "bottom");
8336
+ case "top-left":
8337
+ tPos = swapLeft(tPos, "top");
8338
+ tPos = swapAbove(tPos);
8339
+ case "top-right":
8340
+ tPos = swapRight(tPos, "top");
8341
+ tPos = swapAbove(tPos);
8342
+ case "bottom-left":
8343
+ tPos = swapLeft(tPos, "bottom");
8344
+ tPos = swapBelow(tPos);
8345
+ case "bottom-right":
8346
+ tPos = swapRight(tPos, "bottom");
8347
+ tPos = swapBelow(tPos);
8348
+ case "top":
8349
+ tPos = swapAbove(tPos);
8350
+ case "bottom":
8351
+ tPos = swapBelow(tPos);
8352
+ }
8353
+ return tPos;
8354
+ }
8355
+ function hasRoomRight(x, spaceNeeded) {
8356
+ let horizOffset = 0;
8357
+ // if (getTextDir() === "ltr") {
8358
+ if (x.type === "click") {
8359
+ // if it's a mouse event, deal with mouse coords
8360
+ horizOffset = x.clientX;
8361
+ // if it's a focus event, the offset is 0
8362
+ }
8363
+ else if (x.type === "focus") {
8364
+ horizOffset = 0;
8365
+ }
8366
+ else {
8367
+ // otherwise an element was passed, calculate how far it is from the edge of the window
8368
+ let el = x; // re-assignment is for clarity
8369
+ while (el) {
8370
+ if (el.tagName == "BODY") {
8371
+ // deal with browser quirks with body/window/document and page scroll
8372
+ var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
8373
+ horizOffset += el.offsetLeft - xScroll + el.clientLeft;
8374
+ }
8375
+ else {
8376
+ // for all other non-BODY elements
8377
+ horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
8378
+ }
8379
+ el = el.offsetParent;
8380
+ }
8381
+ // }
8382
+ }
8383
+ return window.innerWidth - horizOffset >= spaceNeeded;
8384
+ }
8385
+ function checkForActiveElInShadow(element) {
8386
+ while (element && element.shadowRoot) {
8387
+ element = element.shadowRoot.activeElement;
8388
+ }
8389
+ return element;
8390
+ }
8391
+ function checkForFocusableElInShadow(element) {
8392
+ const selectors = [
8393
+ "button",
8394
+ "a",
8395
+ "input",
8396
+ "select",
8397
+ "textarea",
8398
+ "wm-button",
8399
+ "wm-search",
8400
+ "wm-select",
8401
+ "wm-action-menu",
8402
+ "wm-tab-item",
8403
+ "wm-datepicker",
8404
+ ];
8405
+ let focusableEl = element;
8406
+ selectors.forEach((selector) => {
8407
+ if (focusableEl && focusableEl.shadowRoot) {
8408
+ let elInShadow = focusableEl.shadowRoot.querySelector(selector);
8409
+ if (elInShadow) {
8410
+ if (selector.startsWith("wm-")) {
8411
+ focusableEl = checkForFocusableElInShadow(elInShadow);
8412
+ }
8413
+ else {
8414
+ focusableEl = elInShadow;
8415
+ }
8416
+ }
8417
+ }
8418
+ });
8419
+ return focusableEl;
8420
+ }
8421
+ function isFocusable(element) {
8422
+ if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
8423
+ return true;
8424
+ }
8425
+ if (element.disabled) {
8426
+ return false;
8427
+ }
8428
+ switch (element.nodeName) {
8429
+ case "A":
8430
+ return !!element.href && element.rel != "ignore";
8431
+ case "INPUT":
8432
+ return element.type != "hidden" && element.type != "file";
8433
+ case "BUTTON":
8434
+ case "SELECT":
8435
+ case "TEXTAREA":
8436
+ case "WM-BUTTON":
8437
+ case "WM-SELECT":
8438
+ case "WM-ACTION-MENU":
8439
+ case "WM-DATEPICKER":
8440
+ case "WM-TIMEPICKER":
8441
+ case "WM-INPUT":
8442
+ case "WM-TAG-INPUT":
8443
+ case "WM-TAB-ITEM":
8444
+ case "WM-SEARCH":
8445
+ return true;
8446
+ default:
8447
+ return false;
8448
+ }
8449
+ }
8450
+ function getFirstFocusableDescendant(element) {
8451
+ if (isFocusable(element)) {
8452
+ return checkForFocusableElInShadow(element);
8453
+ }
8454
+ else if (element.childNodes.length > 0) {
8455
+ element.childNodes.forEach((i) => {
8456
+ const childEl = getFirstFocusableDescendant(i);
8457
+ return childEl && checkForFocusableElInShadow(childEl);
8458
+ });
8459
+ }
8460
+ }
8461
+ function hasValidType(file, types) {
8462
+ const acceptedExtensions = types.split(" ");
8463
+ const parts = file.name && file.name.split(".");
8464
+ const ext = parts && parts.length > 1 && parts[parts.length - 1];
8465
+ return ext
8466
+ ? acceptedExtensions.includes(ext.toLowerCase())
8467
+ : // fallback: if we couldn't obtain an extension,
8468
+ // validate based on MIME type...
8469
+ !!file.type
8470
+ ? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
8471
+ : // ...and if that failed too, accept the file
8472
+ // as it's preferable to accept an invalid file
8473
+ // than refusing a valid one (back-end will take care of what slips through)
8474
+ true;
8475
+ }
8476
+ // takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
8477
+ function getAcceptedMimeTypesList(acceptedExtensions) {
8478
+ // this is just a list of common file types (regardless of whether they are/can be valid or not)
8479
+ // front end checks are just a convenience to users, independent of security.
8480
+ // it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
8481
+ const lookupTable = {
8482
+ aac: ["audio/aac"],
8483
+ abw: ["application/x-abiword"],
8484
+ arc: ["application/x-freearc"],
8485
+ avi: ["video/x-msvideo"],
8486
+ azw: ["application/vnd.amazon.ebook"],
8487
+ bin: ["application/octet-stream"],
8488
+ bmp: ["image/bmp"],
8489
+ bz: ["application/x-bzip"],
8490
+ bz2: ["application/x-bzip2"],
8491
+ csh: ["application/x-csh"],
8492
+ css: ["text/css"],
8493
+ csv: ["text/csv"],
8494
+ doc: ["application/msword"],
8495
+ docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
8496
+ eot: ["application/vnd.ms-fontobject"],
8497
+ epub: ["application/epub+zip"],
8498
+ gz: ["application/gzip"],
8499
+ gif: ["image/gif"],
8500
+ htm: ["text/html"],
8501
+ html: ["text/html"],
8502
+ ico: ["image/vnd.microsoft.icon"],
8503
+ ics: ["text/calendar"],
8504
+ jar: ["application/java-archive"],
8505
+ jpeg: ["image/jpeg"],
8506
+ jpg: ["image/jpeg"],
8507
+ js: ["text/javascript"],
8508
+ json: ["application/json"],
8509
+ jsonld: ["application/ld+json"],
8510
+ log: ["text/plain"],
8511
+ mid: ["audio/x-midi"],
8512
+ midi: ["audio/x-midi"],
8513
+ mjs: ["text/javascript"],
8514
+ mp3: ["audio/mpeg"],
8515
+ mpeg: ["video/mpeg"],
8516
+ mpkg: ["application/vnd.apple.installer+xml"],
8517
+ odp: ["application/vnd.oasis.opendocument.presentation"],
8518
+ ods: ["application/vnd.oasis.opendocument.spreadsheet"],
8519
+ odt: ["application/vnd.oasis.opendocument.text"],
8520
+ oga: ["audio/ogg"],
8521
+ ogv: ["video/ogg"],
8522
+ ogx: ["application/ogg"],
8523
+ opus: ["audio/opus"],
8524
+ otf: ["font/otf"],
8525
+ png: ["image/png"],
8526
+ pdf: ["application/pdf"],
8527
+ php: ["application/php"],
8528
+ ppt: ["application/vnd.ms-powerpoint"],
8529
+ pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
8530
+ rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
8531
+ rtf: ["application/rtf"],
8532
+ sh: ["application/x-sh"],
8533
+ svg: ["image/svg+xml"],
8534
+ swf: ["application/x-shockwave-flash"],
8535
+ tar: ["application/x-tar"],
8536
+ tif: ["image/tiff"],
8537
+ tiff: ["image/tiff"],
8538
+ ts: ["video/mp2t"],
8539
+ ttf: ["font/ttf"],
8540
+ txt: ["text/plain"],
8541
+ vsd: ["application/vnd.visio"],
8542
+ wav: ["audio/wav"],
8543
+ weba: ["audio/webm"],
8544
+ webm: ["video/webm"],
8545
+ webp: ["image/webp"],
8546
+ woff: ["font/woff"],
8547
+ woff2: ["font/woff2"],
8548
+ xhtml: ["application/xhtml+xml"],
8549
+ xls: ["application/vnd.ms-excel"],
8550
+ xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
8551
+ xml: ["application/xml", "text/xml"],
8552
+ xul: ["application/vnd.mozilla.xul+xml"],
8553
+ zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
8554
+ "3gp": ["video/3gpp", "audio/3gpp"],
8555
+ "3g2": ["video/3gpp2", "audio/3gpp2"],
8556
+ "7z": ["application/x-7z-compressed"],
8557
+ };
8558
+ return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
8559
+ }
8560
+ function snakeCaseToCamelCase(str) {
8561
+ const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
8562
+ if (snakeCaseRegexp.test(str)) {
8563
+ let camelCase = "";
8564
+ let arr = str.split("_");
8565
+ arr.forEach((word, idx) => {
8566
+ camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
8567
+ });
8568
+ return camelCase;
8569
+ }
8570
+ else {
8571
+ return str;
8572
+ }
8573
+ }
8574
+ function getNewIndexToFocus(currentIndex, direction, listLength) {
8575
+ let newIndex = currentIndex;
8576
+ if (direction === "ArrowDown") {
8577
+ newIndex = (currentIndex + 1) % listLength;
8578
+ }
8579
+ if (direction === "ArrowUp") {
8580
+ newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
8581
+ }
8582
+ return newIndex;
8583
+ }
8584
+ function isRelatedTarget(ev, id) {
8585
+ // used for onBlur events to check the element that has been clicked
8586
+ const ids = id.split(" ");
8587
+ return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
8588
+ }
8589
+ function toBool(val) {
8590
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
8591
+ return val == "false" ? false : !!val;
8592
+ }
7172
8593
 
7173
- 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 };
8594
+ export { adjustTooltipPlacement 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 };