@sheetxl/mcp 0.0.0-stage → 0.8.0-beta.15

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 (509) hide show
  1. package/LICENSE.md +11 -0
  2. package/README.md +72 -2
  3. package/agent/instructions.md +66 -0
  4. package/assets/9U9XCqqdn-q3i2fj.js +123 -0
  5. package/assets/B-MqXm_7luDLwazY.js +596 -0
  6. package/assets/B2Ek-DWpZMGJ0V1Z.js +18 -0
  7. package/assets/B2udpZ-uIaql3AUh.js +104 -0
  8. package/assets/B4VnJacrzr1x4PHR.js +402 -0
  9. package/assets/B5lHOOQ_rkP4Mi2r.js +638 -0
  10. package/assets/B7gUyrfLln3TiyKM.js +14 -0
  11. package/assets/B9US2ZrF93KOjmAx.js +22 -0
  12. package/assets/BBb_3gEGzmEzbTIk.js +359 -0
  13. package/assets/BCy1zP97fsiIcvj6.js +18 -0
  14. package/assets/BFXeoFUbuc4IKTz9.js +28 -0
  15. package/assets/BFdeov2e_xUQPEY_.js +202 -0
  16. package/assets/BG5kgbDRXMc0re6W.js +242 -0
  17. package/assets/BJxfinOazQqqByc-.js +105 -0
  18. package/assets/BOPsJmq7v7HOKUkO.js +32 -0
  19. package/assets/BPwmBu_aouERJjiW.js +45 -0
  20. package/assets/BQMDOjNBMjAx9WiW.js +3011 -0
  21. package/assets/BQbF1RkUH8WyXqSD.js +780 -0
  22. package/assets/BRzp6DEIYUgM3NkN.js +369 -0
  23. package/assets/BSxTn2BhkEEeF9x_.js +2346 -0
  24. package/assets/BTQhJQ3e0hsiousD.js +28 -0
  25. package/assets/BZPTaa0WjpoUAbgZ.js +35 -0
  26. package/assets/BbAmA46MhQSu3ZF_.js +119 -0
  27. package/assets/BbcUxIZe3YXywsQR.js +28 -0
  28. package/assets/BeLr36oL3jmeXFFi.js +58 -0
  29. package/assets/Bg95xYj5siqhHVEz.js +594 -0
  30. package/assets/Bh0PNKlrR4VAqnP8.js +60500 -0
  31. package/assets/BjqQjxBuoXza8oqg.js +362 -0
  32. package/assets/BlPubAFi7DY7VrAo.js +33 -0
  33. package/assets/BleMG0hAQgjE8fTa.js +7 -0
  34. package/assets/Bn8D2bebQ2tFfwQt.js +310 -0
  35. package/assets/BrcQmHcE7Hcr1erJ.js +24 -0
  36. package/assets/BsQZI1vXTRE63Zy-.js +2368 -0
  37. package/assets/BtjqpAKczftx91BQ.js +96 -0
  38. package/assets/Btys7KwtvV3hz2F6.js +656 -0
  39. package/assets/BuUEsifnQALe49uk.js +857 -0
  40. package/assets/By-7OWXShMlFFejV.js +119 -0
  41. package/assets/C0CiMKC3lWK1z9p5.js +449 -0
  42. package/assets/C2OrZ8LZ-TI6eYG0.js +22 -0
  43. package/assets/C4z2IilWTuu2TWXw.js +3917 -0
  44. package/assets/C7ONfuYIWRmDu_vs.js +319 -0
  45. package/assets/C7Z1li2XjWi6bkrp.js +1556 -0
  46. package/assets/C97xDe_wBbLZh_uW.js +35 -0
  47. package/assets/CGBGyaCGdlZFQYK0.js +447 -0
  48. package/assets/CJ5WQnaoCsdr5gf4.js +1783 -0
  49. package/assets/CMK6tIDVqYYvK4GZ.js +55 -0
  50. package/assets/CMWAsUQ66V8fYrME.js +223 -0
  51. package/assets/CNz3LdmvsOEJoLO9.js +12 -0
  52. package/assets/CWVWdbY1B1-WLl9k.js +199 -0
  53. package/assets/CWl6oHiJxkNKRixk.js +17 -0
  54. package/assets/CXHslDxkWCuEcCSQ.js +13 -0
  55. package/assets/CZTSZL3T_f-vSXqM.js +7 -0
  56. package/assets/CduNzsdbTigxH-ZK.js +5220 -0
  57. package/assets/CecTe22WURiXbVdY.js +2260 -0
  58. package/assets/Cf2dcwmmmf13Rywg.js +146 -0
  59. package/assets/Cf9LpgZz-W5blzy_.js +27 -0
  60. package/assets/Cfhv_Yw_LT8VzAMt.js +255 -0
  61. package/assets/Cg51xaLRUkVOMdCZ.js +144 -0
  62. package/assets/ChWpsFGl-BYOnX_A.js +142 -0
  63. package/assets/ClNQN3vEg5b5qUDp.js +10289 -0
  64. package/assets/Crt2kLdGIlBHANgg.js +28 -0
  65. package/assets/CudNpUD78SrtJIiy.js +610 -0
  66. package/assets/CvngwB17_ve4W49b.js +639 -0
  67. package/assets/CwPBmcY6xSP8dNlh.js +51 -0
  68. package/assets/CxjchwpiqxPM1XKd.js +304 -0
  69. package/assets/D-ffk16w8c5w0mxI.js +71 -0
  70. package/assets/D0CHDsemn0S31ltt.js +32 -0
  71. package/assets/D7oUtYjetuykGhQ5.js +18 -0
  72. package/assets/D8J14MLlN2HRXdXB.js +20 -0
  73. package/assets/DA_ar3QKLKtJ9fJD.js +37 -0
  74. package/assets/DB-tkqI6wFXDKEfB.js +118 -0
  75. package/assets/DD8HNAUFroTCuD-b.js +7514 -0
  76. package/assets/DDnwKPJSznyfYDZS.js +49 -0
  77. package/assets/DEW2GxfGYqVFvrfg.js +23 -0
  78. package/assets/DH7sGHzxUqIQkDnd.js +16 -0
  79. package/assets/DJiLWtmPR2OQNjzi.js +19 -0
  80. package/assets/DKLm4nWzynGw1Kr9.js +15 -0
  81. package/assets/DPCKMM7sgWbrtB8z.js +81 -0
  82. package/assets/DTfl-4Iboi6TQU5m.js +37 -0
  83. package/assets/DVchxwp6w6lu2Ihu.js +7 -0
  84. package/assets/DaoSWy3EFlqpZaLr.js +4437 -0
  85. package/assets/DcWTBOi_iBFc6U4J.js +8338 -0
  86. package/assets/Dht2mcOSyYlPY32b.js +14 -0
  87. package/assets/Diee6f_qAmcZBd2_.js +52 -0
  88. package/assets/DkibD_CEVePaoj_y.js +7 -0
  89. package/assets/DlBdhv6NHgrNp5Yo.js +7 -0
  90. package/assets/DoILAmhKUOlKWRVw.js +12 -0
  91. package/assets/DpdHDTFOeuzDVNEe.js +405 -0
  92. package/assets/DsCI_ZYm_jDjXF3J.js +12996 -0
  93. package/assets/DvUUArnZwoYOKOuk.js +12 -0
  94. package/assets/DwLZpYUp85UHBE3H.js +63 -0
  95. package/assets/DwWngYJTgC0KLbih.js +184 -0
  96. package/assets/Dz8UUJ7Xc2oN5PBG.js +45 -0
  97. package/assets/FS9NbEKgQvz5wqvZ.js +1135 -0
  98. package/assets/F_f0jJqM5MrXGbwC.js +86 -0
  99. package/assets/FzNG48GE_wso6RII.js +173 -0
  100. package/assets/JO3zH9hupFSV6vj2.js +15 -0
  101. package/assets/LEJp05fjmflKgyqF.js +1760 -0
  102. package/assets/LyLlBk--VJD2V-f8.js +351 -0
  103. package/assets/OVRdpPUzR0-ueTxE.js +1860 -0
  104. package/assets/PpFbmF0DFeUdpb9I.js +145 -0
  105. package/assets/S16s2h9qoYVBlVEa.js +9137 -0
  106. package/assets/SHZe9VOU1prGs1F9.js +19 -0
  107. package/assets/U1XXGEPuuqIAzYl1.js +8 -0
  108. package/assets/ZuYfVKlp41IJnrOS.js +540 -0
  109. package/assets/_d5XJ7dn1CKKYrep.js +1131 -0
  110. package/assets/_fUXIv6nKvgZkhxn.js +23 -0
  111. package/assets/fDMpDhXp36CatF-G.js +23 -0
  112. package/assets/hulrR0PldUxMJm_F.js +504 -0
  113. package/assets/iujMYIEPx_v3sdPf.js +9109 -0
  114. package/assets/jPUOH4FHF4b-rapv.js +171 -0
  115. package/assets/jadLBUNBVR9mbZ35.js +4036 -0
  116. package/assets/jiEe5eKV3BFPBWfi.js +6294 -0
  117. package/assets/oxjm7Yr7u7MeaO5P.js +37 -0
  118. package/assets/vZZi_iKYHm05gAye.js +30 -0
  119. package/assets/wfVh0olISLRWdv9Q.js +47 -0
  120. package/assets/xmTQJJVyCrcq77WR.js +63 -0
  121. package/assets/xnhBSX6lAcmBM65y.js +32 -0
  122. package/index.js +8070 -0
  123. package/lib.js +7 -0
  124. package/licenses/dependencies.txt +1552 -0
  125. package/package.json +44 -3
  126. package/resources/contents.json +333 -0
  127. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
  128. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
  129. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
  130. package/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
  131. package/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
  132. package/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
  133. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
  134. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
  135. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
  136. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
  137. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
  138. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
  139. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
  140. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
  141. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
  142. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
  143. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
  144. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
  145. package/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
  146. package/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
  147. package/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
  148. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
  149. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
  150. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
  151. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
  152. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
  153. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
  154. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
  155. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
  156. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
  157. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
  158. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
  159. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
  160. package/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
  161. package/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
  162. package/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
  163. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
  164. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
  165. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
  166. package/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
  167. package/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
  168. package/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
  169. package/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
  170. package/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
  171. package/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
  172. package/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
  173. package/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
  174. package/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
  175. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
  176. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
  177. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
  178. package/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
  179. package/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
  180. package/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
  181. package/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
  182. package/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
  183. package/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
  184. package/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
  185. package/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
  186. package/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
  187. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
  188. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
  189. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
  190. package/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
  191. package/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
  192. package/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
  193. package/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
  194. package/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
  195. package/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
  196. package/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
  197. package/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
  198. package/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
  199. package/resources/fonts/@sheetxl/sdk/contents.json +646 -0
  200. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
  201. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
  202. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
  203. package/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
  204. package/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
  205. package/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
  206. package/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
  207. package/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
  208. package/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
  209. package/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
  210. package/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
  211. package/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
  212. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
  213. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
  214. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
  215. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
  216. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
  217. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
  218. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
  219. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
  220. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
  221. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
  222. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
  223. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
  224. package/resources/locales/@sheetxl/formulas/contents.json +9 -0
  225. package/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
  226. package/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
  227. package/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
  228. package/resources/locales/@sheetxl/sdk/contents.json +19 -0
  229. package/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
  230. package/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
  231. package/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
  232. package/screenshot-page/assets/-cpi3yOZYn6GsYN4.js +9 -0
  233. package/screenshot-page/assets/-i_fTASJeu9NdNH_.js +7 -0
  234. package/screenshot-page/assets/0MTaPYjKud2Q9QG9.js +1 -0
  235. package/screenshot-page/assets/21oAESJyBGXeHegm.js +2 -0
  236. package/screenshot-page/assets/3Ls_kOvlQseMV8Q0.js +1 -0
  237. package/screenshot-page/assets/4qZpl2QCzneWdmJO.js +1 -0
  238. package/screenshot-page/assets/6IEV7KeOEbBdrthj.js +1 -0
  239. package/screenshot-page/assets/8QrkTrKHDnMBb7q4.js +1 -0
  240. package/screenshot-page/assets/9w0ECZmzGUyk3F_O.js +1 -0
  241. package/screenshot-page/assets/AjS2PipZDIH3BXB2.js +1 -0
  242. package/screenshot-page/assets/B-KIwD5F_5S-NsPg.js +1 -0
  243. package/screenshot-page/assets/B-sAzW5ROrhvMGM4.js +1 -0
  244. package/screenshot-page/assets/B0FQypGas6gbGT_U.js +1 -0
  245. package/screenshot-page/assets/B2IQMVqTZT1rUnib.js +1 -0
  246. package/screenshot-page/assets/B2MJPcMcsuv6FekC.js +1 -0
  247. package/screenshot-page/assets/B2g3jiFIQ4Qjh5gG.js +1 -0
  248. package/screenshot-page/assets/B4PbXdzBe9BsoZ0e.js +2 -0
  249. package/screenshot-page/assets/B5GO9v4p9L70Xb9i.js +1 -0
  250. package/screenshot-page/assets/B8y_eLNCGnXLEIaE.js +1 -0
  251. package/screenshot-page/assets/BEuMvXYIa9A1JacY.js +1 -0
  252. package/screenshot-page/assets/BEwl-ucV9Jfr0RoC.js +1 -0
  253. package/screenshot-page/assets/BFaiQZKle44Rhyou.js +1 -0
  254. package/screenshot-page/assets/BHqg55S-4_OoAu3P.js +2 -0
  255. package/screenshot-page/assets/BNgLvS2bLOYKRguv.js +1 -0
  256. package/screenshot-page/assets/BQAN82ftWBiLJT3r.js +1 -0
  257. package/screenshot-page/assets/BQfe-XTIOGeUnD9B.js +1 -0
  258. package/screenshot-page/assets/BQnELVV0uR4T4ItQ.js +1 -0
  259. package/screenshot-page/assets/BRVZJ0OGJg9XJro6.js +1 -0
  260. package/screenshot-page/assets/BSdFVGZNhU6YHbMI.js +2 -0
  261. package/screenshot-page/assets/BTMW3ukmc44U2fy7.js +1 -0
  262. package/screenshot-page/assets/BTOQaSn9DDyJPUlX.js +1 -0
  263. package/screenshot-page/assets/BTboCICZ-951XWsi.js +1 -0
  264. package/screenshot-page/assets/BUGXf2DEBog16Slb.js +2 -0
  265. package/screenshot-page/assets/BUjI304IvdJnFXH3.js +1 -0
  266. package/screenshot-page/assets/B_W2QroTKADz3ABp.js +2 -0
  267. package/screenshot-page/assets/Baz0SC2AgGyxMX72.js +1 -0
  268. package/screenshot-page/assets/BbP9KThfrodyosvn.js +1 -0
  269. package/screenshot-page/assets/BcOdl17EeFSxnAiq.js +1 -0
  270. package/screenshot-page/assets/BclKeOKIOBjijhsu.js +1 -0
  271. package/screenshot-page/assets/Bf7xq8PyF4ohjMzP.js +2 -0
  272. package/screenshot-page/assets/BimyzECCZl-NESff.js +1 -0
  273. package/screenshot-page/assets/Bj-vfAT28PK-tWWa.js +2 -0
  274. package/screenshot-page/assets/BkLH7JH3A93TXFJi.js +1 -0
  275. package/screenshot-page/assets/BksaQEoZr5OWq-_d.js +3 -0
  276. package/screenshot-page/assets/BnoVwUBEor8NgQNs.js +4 -0
  277. package/screenshot-page/assets/BowRIybLgENunTOT.js +1 -0
  278. package/screenshot-page/assets/Bp7se0JaDGrzfSA_.js +1 -0
  279. package/screenshot-page/assets/Bx61vmiWY0Xvx9qs.js +1 -0
  280. package/screenshot-page/assets/ByY3fmwyDPAyOLdo.js +1 -0
  281. package/screenshot-page/assets/Bz5V1tmiy5gbT9ys.js +1 -0
  282. package/screenshot-page/assets/Bz9v1lgjvbu4QnOs.js +2 -0
  283. package/screenshot-page/assets/BzQ5GyiXq8gTz-H-.js +1 -0
  284. package/screenshot-page/assets/C1k_VrZqlpiUigCP.js +1 -0
  285. package/screenshot-page/assets/C2Wh2h27c7FUb8Yk.js +1 -0
  286. package/screenshot-page/assets/C6oLDVnuCS9LGkkH.js +1 -0
  287. package/screenshot-page/assets/C81mK8aZKZAAS-AB.js +1 -0
  288. package/screenshot-page/assets/C9SC-cEIt6gdhZRw.js +1 -0
  289. package/screenshot-page/assets/CE8MCCIiwjOVwBBW.js +1 -0
  290. package/screenshot-page/assets/CG3ynup87FmG-kkX.js +1 -0
  291. package/screenshot-page/assets/CHlWgOAlcRCjVuhg.js +1 -0
  292. package/screenshot-page/assets/CIged53b3hHKxa-o.js +1 -0
  293. package/screenshot-page/assets/CNQczIR5xcE5u5fT.js +1 -0
  294. package/screenshot-page/assets/CSUd8n1H0VBfREnk.js +2 -0
  295. package/screenshot-page/assets/CSlBTkRDITCC8JRB.js +1 -0
  296. package/screenshot-page/assets/CV2jr9hpQOG2OG0C.js +1 -0
  297. package/screenshot-page/assets/CXGgKVbVXjWzE0p6.js +1 -0
  298. package/screenshot-page/assets/CXKCmZ_TRyGaB9Ob.js +1 -0
  299. package/screenshot-page/assets/CXUO3vYip3JPSJ7A.js +1 -0
  300. package/screenshot-page/assets/CXwbGzavyvYgDbWU.js +1 -0
  301. package/screenshot-page/assets/CZf9s6otzzoaBlSs.js +1 -0
  302. package/screenshot-page/assets/CZvwQEeVhBilgKLG.js +1 -0
  303. package/screenshot-page/assets/Ca6nxdhEuLLty3d7.js +2 -0
  304. package/screenshot-page/assets/CbUDukmvDZmVfhJH.js +1 -0
  305. package/screenshot-page/assets/CbXtAM7H-Jg_J0dk.js +1 -0
  306. package/screenshot-page/assets/CctIRGMFmARVi2KT.js +1 -0
  307. package/screenshot-page/assets/Cenh1POxiGMxIQlv.js +1 -0
  308. package/screenshot-page/assets/ChSvXfVMLxZsP9zG.js +8 -0
  309. package/screenshot-page/assets/Ci5NtzhJLll1kxGf.js +10 -0
  310. package/screenshot-page/assets/CjngjJNheGaVRvZp.js +1 -0
  311. package/screenshot-page/assets/ClzdIJrFdInttVJA.js +1 -0
  312. package/screenshot-page/assets/CnPgk3HcIziOcskY.js +10 -0
  313. package/screenshot-page/assets/CnXLpFE_vFrJ5Jbf.js +1 -0
  314. package/screenshot-page/assets/CpbohdgEaEsVDi9J.js +1 -0
  315. package/screenshot-page/assets/CqR3hGrC956TkCMj.js +20 -0
  316. package/screenshot-page/assets/Cr1tQKUBVKOQl3QC.js +1 -0
  317. package/screenshot-page/assets/CwqNb7JYzC03lCj0.js +1 -0
  318. package/screenshot-page/assets/CykecBozGGFl26KA.js +3940 -0
  319. package/screenshot-page/assets/CzTizxHhb-CI_ajE.js +1 -0
  320. package/screenshot-page/assets/CzhH7lTYQrYGHct6.js +1 -0
  321. package/screenshot-page/assets/CzzEl3lAkZopkwhC.js +1 -0
  322. package/screenshot-page/assets/D-LgRj0s-PAVqY-L.js +1 -0
  323. package/screenshot-page/assets/D-XR1MGhwn7Jqj60.js +1 -0
  324. package/screenshot-page/assets/D47ePD4x1lVazNdl.js +7 -0
  325. package/screenshot-page/assets/D66vSE1ConAuENmB.js +586 -0
  326. package/screenshot-page/assets/D6Jpaz2YkhOfzxDB.js +1 -0
  327. package/screenshot-page/assets/D9zCVZpnJBfNSNO2.js +1 -0
  328. package/screenshot-page/assets/DCVUZ_ayOXFwV2d_.js +3 -0
  329. package/screenshot-page/assets/DDQWM8rNYCYzKa9R.js +1 -0
  330. package/screenshot-page/assets/DFE-fKq5NV7_O8V6.js +1 -0
  331. package/screenshot-page/assets/DGXDfjkGZjMRAXPg.js +5 -0
  332. package/screenshot-page/assets/DHa5_U58lSwCnpmG.js +1 -0
  333. package/screenshot-page/assets/DKVB6ddRfDJatYid.js +1 -0
  334. package/screenshot-page/assets/DK_QSosKV62NDcuT.js +42 -0
  335. package/screenshot-page/assets/DM9U7u7FQK0jcwh4.js +1 -0
  336. package/screenshot-page/assets/DNDaHmkQrQTaCHhV.js +1 -0
  337. package/screenshot-page/assets/DQ0kGd99-fXxuNYk.js +1 -0
  338. package/screenshot-page/assets/DQWHkaQeNXft9j8b.js +2 -0
  339. package/screenshot-page/assets/DRVfGdmVBvktrZ1t.js +1 -0
  340. package/screenshot-page/assets/DRrM-dY9nM7nDRpV.js +1 -0
  341. package/screenshot-page/assets/DT2x1gO3f2G5NfeB.js +1 -0
  342. package/screenshot-page/assets/DTFRGj188QuLKEXw.js +1 -0
  343. package/screenshot-page/assets/DU3FmyUH0RjPIBd-.js +1 -0
  344. package/screenshot-page/assets/DVueE--eOrZPrqrm.js +1 -0
  345. package/screenshot-page/assets/DXQLzGmxoyN3kfQi.js +27 -0
  346. package/screenshot-page/assets/DXWWyJlMSWgDFxs1.js +10 -0
  347. package/screenshot-page/assets/DYJSIlNxrNw8qk-w.js +1 -0
  348. package/screenshot-page/assets/DYRbCudWTaiE_Sjc.js +1 -0
  349. package/screenshot-page/assets/DZDRRw-62D6Zw7qs.js +1 -0
  350. package/screenshot-page/assets/DaKZ4-Li_ULIIwnK.js +1 -0
  351. package/screenshot-page/assets/DadZXeaVK5UXSHIi.js +1 -0
  352. package/screenshot-page/assets/Db_VGqQo2G2JgXWW.js +1 -0
  353. package/screenshot-page/assets/DceNHPrRLok2At-X.js +1 -0
  354. package/screenshot-page/assets/DcrVJCyDwGKeil2U.js +1 -0
  355. package/screenshot-page/assets/DeAKjatTVaZ0u_FY.js +1 -0
  356. package/screenshot-page/assets/DmMZ4pd492HPw_3_.js +1 -0
  357. package/screenshot-page/assets/DmbuCapSSCYIa3yk.js +1 -0
  358. package/screenshot-page/assets/Dpepompn_NhpSncR.js +1 -0
  359. package/screenshot-page/assets/DqYhS4mcQfOe96hU.js +1 -0
  360. package/screenshot-page/assets/Dsx0NUmGIxS7SvZ8.js +1 -0
  361. package/screenshot-page/assets/DyGpT6t96jrvgJes.js +1 -0
  362. package/screenshot-page/assets/DyLWQxXXTw5uwPVy.js +30 -0
  363. package/screenshot-page/assets/DyYVf8O1rhg3YmjW.js +1 -0
  364. package/screenshot-page/assets/DyxJBLjUkeDuu96F.js +1 -0
  365. package/screenshot-page/assets/HclGiUj8dZXDFmoM.js +1 -0
  366. package/screenshot-page/assets/IRtoU5oVgBWu9rnK.js +2 -0
  367. package/screenshot-page/assets/J73KTOmdZGNmnq-z.js +1 -0
  368. package/screenshot-page/assets/J_xJVgE7YlmeU-ZO.js +6 -0
  369. package/screenshot-page/assets/KoxRo2J_cwB_yOd5.js +2 -0
  370. package/screenshot-page/assets/LVtV_IPhPQroHRui.js +1 -0
  371. package/screenshot-page/assets/MNoPOsydrUv1UGU8.js +2 -0
  372. package/screenshot-page/assets/Q5EKmzoJZCE81Om-.js +2 -0
  373. package/screenshot-page/assets/TfhknTx8vxQkw4zV.js +2 -0
  374. package/screenshot-page/assets/VvqAh6BWzaD5OUPF.js +1 -0
  375. package/screenshot-page/assets/fGlPAximvsxzPzGA.js +1 -0
  376. package/screenshot-page/assets/gG0AFZ45VxS_moMw.js +2 -0
  377. package/screenshot-page/assets/hp_-JA1DMK4Yoztn.js +57 -0
  378. package/screenshot-page/assets/l32n8O_A78Qqduv3.js +1 -0
  379. package/screenshot-page/assets/nHThFXCAZFOM_npq.js +1 -0
  380. package/screenshot-page/assets/pRykm05ElquZBk_a.js +1 -0
  381. package/screenshot-page/assets/rPOkVKdPbFpTG6AY.js +1 -0
  382. package/screenshot-page/assets/sHBomL5R4-_px8rD.js +1 -0
  383. package/screenshot-page/assets/skRJ2qjA7kcmnOsh.js +39 -0
  384. package/screenshot-page/assets/w3bV7wggRayUYTd-.js +1 -0
  385. package/screenshot-page/assets/zFbb8ESzwR_bE7IQ.js +1 -0
  386. package/screenshot-page/index.html +44 -0
  387. package/screenshot-page/resources/contents.json +333 -0
  388. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
  389. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
  390. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
  391. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
  392. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
  393. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
  394. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
  395. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
  396. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
  397. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
  398. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
  399. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
  400. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
  401. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
  402. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
  403. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
  404. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
  405. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
  406. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
  407. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
  408. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
  409. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
  410. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
  411. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
  412. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
  413. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
  414. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
  415. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
  416. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
  417. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
  418. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
  419. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
  420. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
  421. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
  422. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
  423. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
  424. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
  425. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
  426. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
  427. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
  428. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
  429. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
  430. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
  431. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
  432. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
  433. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
  434. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
  435. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
  436. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
  437. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
  438. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
  439. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
  440. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
  441. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
  442. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
  443. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
  444. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
  445. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
  446. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
  447. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
  448. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
  449. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
  450. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
  451. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
  452. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
  453. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
  454. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
  455. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
  456. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
  457. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
  458. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
  459. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
  460. package/screenshot-page/resources/fonts/@sheetxl/sdk/contents.json +646 -0
  461. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
  462. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
  463. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
  464. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
  465. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
  466. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
  467. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
  468. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
  469. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
  470. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
  471. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
  472. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
  473. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
  474. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
  475. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
  476. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
  477. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
  478. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
  479. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
  480. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
  481. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
  482. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
  483. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
  484. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
  485. package/screenshot-page/resources/locales/@sheetxl/formulas/contents.json +9 -0
  486. package/screenshot-page/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
  487. package/screenshot-page/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
  488. package/screenshot-page/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
  489. package/screenshot-page/resources/locales/@sheetxl/sdk/contents.json +19 -0
  490. package/screenshot-page/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
  491. package/screenshot-page/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
  492. package/screenshot-page/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
  493. package/types/index.d.ts +1 -0
  494. package/types/lib.d.ts +2 -0
  495. package/types/scripting-api.json +10855 -0
  496. package/types/scripting-enums.json +1339 -0
  497. package/types/scripting.d.ts +49295 -0
  498. package/types/src/SessionRegistry.d.ts +630 -0
  499. package/types/src/index.d.ts +3 -0
  500. package/types/src/instances.d.ts +104 -0
  501. package/types/src/lib/Types.d.ts +17 -0
  502. package/types/src/lib/index.d.ts +2 -0
  503. package/types/src/lib/runReport.d.ts +158 -0
  504. package/types/src/lib.d.ts +2 -0
  505. package/types/src/prepareRun.d.ts +56 -0
  506. package/types/src/relay.d.ts +102 -0
  507. package/types/src/screenshot.d.ts +23 -0
  508. package/types/src/server.d.ts +37 -0
  509. package/types/src/taskStore.d.ts +28 -0
@@ -0,0 +1,3940 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DyLWQxXXTw5uwPVy.js","./HclGiUj8dZXDFmoM.js","./ChSvXfVMLxZsP9zG.js","./CnXLpFE_vFrJ5Jbf.js","./D47ePD4x1lVazNdl.js","./BcOdl17EeFSxnAiq.js","./DRrM-dY9nM7nDRpV.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./HclGiUj8dZXDFmoM.js";var t=class{constructor(e){this._worker=null,this._nextId=1,this._pendingRequests=new Map,this._workerFactory=e}start(){if(typeof Worker>`u`)throw Error(`Web Workers are not supported in this environment.`);return this._worker||(this._worker=this._workerFactory(),this._worker.onmessage=e=>{let{id:t,result:n,error:r}=e.data,i=this._pendingRequests.get(t);if(i){if(this._pendingRequests.delete(t),r){let e=Error(r.message);e.stack=r.stack,r.cause&&(e.cause=r.cause),i.reject(e)}else i.resolve(n)}},this._worker.onerror=e=>{console.error(`Worker error:`,e),this._pendingRequests.forEach(t=>{t.reject(Error(`Worker failed: ${e.message}`))}),this._pendingRequests.clear(),this._worker=null}),Promise.resolve()}execute(e){if(!this._worker)throw Error(`Worker is not initialized. Call start() first.`);let t=this._nextId++;return new Promise((n,r)=>{this._pendingRequests.set(t,{resolve:n,reject:r}),this._worker.postMessage({id:t,params:e})})}terminate(){this._worker&&=(this._worker.terminate(),null)}},n=class{constructor(e){this._onExecute=e}execute(e){return this._onExecute(e)}start(){return Promise.resolve()}terminate(){}},r=`var _t = Object.defineProperty, ar = (e, t, r) => () => {
3
+ if (r) throw r[0];
4
+ try {
5
+ return e && (t = e(e = 0)), t;
6
+ } catch (n) {
7
+ throw r = [n], n;
8
+ }
9
+ }, or = (e, t) => {
10
+ let r = {};
11
+ for (var n in e) _t(r, n, {
12
+ get: e[n],
13
+ enumerable: !0
14
+ });
15
+ return t || _t(r, Symbol.toStringTag, { value: "Module" }), r;
16
+ }, xt = Object.defineProperty, ge = (e, t) => {
17
+ let r = {};
18
+ for (var n in e) xt(r, n, {
19
+ get: e[n],
20
+ enumerable: !0
21
+ });
22
+ return t || xt(r, Symbol.toStringTag, { value: "Module" }), r;
23
+ }, ie = {
24
+ Column: "column",
25
+ Row: "row"
26
+ };
27
+ ({ ...ie });
28
+ function Xe(e, t) {
29
+ if (e === t) return !0;
30
+ if (e && t && typeof e == "object" && typeof t == "object") {
31
+ if (e.constructor !== t.constructor) return !1;
32
+ let r, n, i;
33
+ if (Array.isArray(e)) {
34
+ if (r = e.length, r != t.length) return !1;
35
+ for (n = r; n-- !== 0;) if (!Xe(e[n], t[n])) return !1;
36
+ return !0;
37
+ }
38
+ if (e instanceof Map && t instanceof Map) {
39
+ if (e.size !== t.size) return !1;
40
+ for (n of e.entries()) if (!t.has(n[0])) return !1;
41
+ for (n of e.entries()) if (!Xe(n[1], t.get(n[0]))) return !1;
42
+ return !0;
43
+ }
44
+ if (e instanceof Set && t instanceof Set) {
45
+ if (e.size !== t.size) return !1;
46
+ for (n of e.entries()) if (!t.has(n[0])) return !1;
47
+ return !0;
48
+ }
49
+ if (ArrayBuffer.isView(e) && ArrayBuffer.isView(t)) {
50
+ if (r = e.length, r != t.length) return !1;
51
+ for (n = r; n-- !== 0;) if (e[n] !== t[n]) return !1;
52
+ return !0;
53
+ }
54
+ if (e.constructor === RegExp) return e.source === t.source && e.flags === t.flags;
55
+ if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === t.valueOf();
56
+ if (e.toString !== Object.prototype.toString) return e.toString() === t.toString();
57
+ if (i = Object.keys(e), r = i.length, r !== Object.keys(t).length) return !1;
58
+ for (n = r; n-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, i[n])) return !1;
59
+ for (n = r; n-- !== 0;) {
60
+ let a = i[n];
61
+ if ((a !== "_owner" || !e.$$typeof) && !Xe(e[a], t[a])) return !1;
62
+ }
63
+ return !0;
64
+ }
65
+ return e != e && t != t;
66
+ }
67
+ function un(e) {
68
+ let t = Object.prototype.toString.call(e);
69
+ return t === "[object RegExp]" || t === "[object Date]" || (function(r) {
70
+ return r.$$typeof === dn;
71
+ })(e);
72
+ }
73
+ var dn = typeof Symbol == "function" && Symbol.for ? /* @__PURE__ */ Symbol.for("react.element") : 60103;
74
+ function fn(e) {
75
+ return /* @__PURE__ */ (function(t) {
76
+ return !!t && typeof t == "object";
77
+ })(e) && !un(e);
78
+ }
79
+ function Oe(e, t) {
80
+ return t.clone !== !1 && t.isMergeableObject(e) ? Ee((r = e, Array.isArray(r) ? [] : {}), e, t) : e;
81
+ var r;
82
+ }
83
+ function pn(e, t, r) {
84
+ return e.concat(t).map(function(n) {
85
+ return Oe(n, r);
86
+ });
87
+ }
88
+ function Tt(e) {
89
+ return Object.keys(e).concat((function(t) {
90
+ return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(t).filter(function(r) {
91
+ return Object.propertyIsEnumerable.call(t, r);
92
+ }) : [];
93
+ })(e));
94
+ }
95
+ function Ct(e, t) {
96
+ try {
97
+ return t in e;
98
+ } catch {
99
+ return !1;
100
+ }
101
+ }
102
+ function mn(e, t, r) {
103
+ let n = {};
104
+ return r.isMergeableObject(e) && Tt(e).forEach(function(i) {
105
+ n[i] = Oe(e[i], r);
106
+ }), Tt(t).forEach(function(i) {
107
+ (function(a, l) {
108
+ return Ct(a, l) && !(Object.hasOwnProperty.call(a, l) && Object.propertyIsEnumerable.call(a, l));
109
+ })(e, i) || (Ct(e, i) && r.isMergeableObject(t[i]) ? n[i] = (function(a, l) {
110
+ if (!l.customMerge) return Ee;
111
+ let s = l.customMerge(a);
112
+ return typeof s == "function" ? s : Ee;
113
+ })(i, r)(e[i], t[i], r) : n[i] = Oe(t[i], r));
114
+ }), n;
115
+ }
116
+ function Ee(e, t, r) {
117
+ (r ||= {}).arrayMerge = r.arrayMerge || pn, r.isMergeableObject = r.isMergeableObject || fn, r.cloneUnlessOtherwiseSpecified = Oe;
118
+ let n = Array.isArray(t);
119
+ return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : mn(e, t, r) : Oe(t, r);
120
+ }
121
+ Ee.all = function(e, t) {
122
+ if (!Array.isArray(e)) throw Error("first argument should be an array");
123
+ return e.reduce(function(r, n) {
124
+ return Ee(r, n, t);
125
+ }, {});
126
+ };
127
+ var lr = ge({
128
+ DonePromise: () => gn,
129
+ EmptyArray: () => De,
130
+ EmptyObject: () => hn,
131
+ OSType: () => pe,
132
+ arrayMove: () => Ln,
133
+ asNumber: () => bn,
134
+ camelToPrettyCase: () => wn,
135
+ castToString: () => Mn,
136
+ cloneObject: () => xn,
137
+ consoleWithNoSource: () => zn,
138
+ deepEqual: () => Xe,
139
+ deepFreeze: () => gr,
140
+ deepMerge: () => Ee,
141
+ diffValues: () => $n,
142
+ findEqualOrGreater: () => Nn,
143
+ findEqualOrLesser: () => kn,
144
+ getFromPath: () => Bn,
145
+ getPlatform: () => qe,
146
+ isDefined: () => On,
147
+ isEmpty: () => Dn,
148
+ isEqualArrays: () => cr,
149
+ isEqualBounds: () => Cn,
150
+ isNullOrUndefined: () => mr,
151
+ isNumeric: () => vn,
152
+ isObject: () => Fe,
153
+ isPromiseLike: () => Fn,
154
+ isRectInsideRect: () => Un,
155
+ isRectIntersect: () => hr,
156
+ mergeContentful: () => Rn,
157
+ removeEmptyProperties: () => ur,
158
+ removeEqualValues: () => fr,
159
+ removeEqualValuesLayered: () => pr,
160
+ removeListenerAll: () => An,
161
+ roundAccurately: () => _n,
162
+ setToPath: () => jn,
163
+ splitNumber: () => En,
164
+ subtractRect: () => Pn,
165
+ textToKey: () => Sn,
166
+ toSafeJSON: () => dt,
167
+ transpose: () => In,
168
+ uuidV4: () => He,
169
+ validEnumValue: () => yn
170
+ }), De = Object.freeze([]), hn = Object.freeze({}), gn = Promise.resolve(), sr = (e) => e;
171
+ function yn(e, t) {
172
+ if (!Object.values(e).includes(t)) throw Error(\`Invalid type: \${t ?? "null"}. Must be one of: \${Object.values(e).join(", ")}.\`);
173
+ }
174
+ function wn(e) {
175
+ return e ? e.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replace(/^./, (t) => t.toUpperCase()) : "";
176
+ }
177
+ function Sn(e) {
178
+ return e.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
179
+ }
180
+ var oe = Array.from({ length: 256 }, (e, t) => (t + 256).toString(16).slice(1));
181
+ function He() {
182
+ let e = globalThis.crypto;
183
+ if (e?.randomUUID) return e.randomUUID();
184
+ if (e?.getRandomValues) {
185
+ let t = e.getRandomValues(/* @__PURE__ */ new Uint8Array(16));
186
+ return t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128, oe[t[0]] + oe[t[1]] + oe[t[2]] + oe[t[3]] + "-" + oe[t[4]] + oe[t[5]] + "-" + oe[t[6]] + oe[t[7]] + "-" + oe[t[8]] + oe[t[9]] + "-" + oe[t[10]] + oe[t[11]] + oe[t[12]] + oe[t[13]] + oe[t[14]] + oe[t[15]];
187
+ }
188
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(t) {
189
+ let r = 16 * Math.random() | 0;
190
+ return (t === "x" ? r : 3 & r | 8).toString(16);
191
+ });
192
+ }
193
+ function bn(e) {
194
+ let t = (function(r) {
195
+ return 1 * r;
196
+ })(e);
197
+ return Number.isFinite(t) ? t : 0;
198
+ }
199
+ function vn(e) {
200
+ let t = 1 * e;
201
+ return Number.isFinite(t) && typeof t == "number";
202
+ }
203
+ var et = [
204
+ 1,
205
+ 10,
206
+ 100,
207
+ 1e3,
208
+ 1e4,
209
+ 1e5,
210
+ 1e6,
211
+ 1e7,
212
+ 1e8,
213
+ 1e9,
214
+ 1e10,
215
+ 1e11,
216
+ 0xe8d4a51000,
217
+ 0x9184e72a000,
218
+ 0x5af3107a4000,
219
+ 0x38d7ea4c68000,
220
+ 0x2386f26fc10000
221
+ ];
222
+ function En(e) {
223
+ let t = Math.abs(e);
224
+ if (!Number.isFinite(t)) return null;
225
+ let r = Math.trunc(t), n = t - r, i;
226
+ r > 2 ** 53 - 1 ? i = Number(r.toExponential().split("e")[1]) + 1 : (i = Math.ceil(Math.log10(r + 1)), et[i] <= r && i++);
227
+ let a = 0, l = 0, s = 15 - i;
228
+ if (n > 0 && s > 0) {
229
+ let c = et[s];
230
+ if (a = Math.round(n * c), a === c) r++, a = 0, r >= et[i] && i++;
231
+ else if (a > 0) for (l = s; a % 10 == 0;) a /= 10, l--;
232
+ }
233
+ return {
234
+ ip: e < 0 ? -r : r,
235
+ fp: a,
236
+ ipLength: i,
237
+ fpLength: l
238
+ };
239
+ }
240
+ function _n(e, t = 0) {
241
+ if (e == null || !isFinite(e)) return null;
242
+ let r = 10 ** t;
243
+ return Number(Math.round(e * r) / r);
244
+ }
245
+ function xn(e) {
246
+ return mr(e) ? e : JSON.parse(JSON.stringify(e));
247
+ }
248
+ var Tn = (e, t) => e === t;
249
+ function cr(e, t, r) {
250
+ if (e === t) return !0;
251
+ if (!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) return !1;
252
+ r ||= Tn;
253
+ let n = e.length;
254
+ for (let i = 0; i < n; i++) if (!r(e[i], t[i])) return !1;
255
+ return !0;
256
+ }
257
+ function Cn(e, t) {
258
+ return e === t || !(!e || !t) && e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
259
+ }
260
+ function Fe(e) {
261
+ return typeof e == "object" && !Array.isArray(e) && e !== null;
262
+ }
263
+ function ur(e) {
264
+ if (typeof e != "object" || Array.isArray(e) || e === null) return e;
265
+ let t = e;
266
+ return Object.keys(t).forEach(function(r) {
267
+ t[r] && typeof t[r] == "object" ? ur(t[r]) : t[r] !== null && t[r] !== void 0 || delete t[r], typeof t[r] == "object" && Object.keys(t[r]).length === 0 && delete t[r];
268
+ }), Object.keys(e).length === 0 ? null : e;
269
+ }
270
+ function An(e, t) {
271
+ if (!e) return De;
272
+ let r = e.length;
273
+ for (let n = 0; n < r; n++) {
274
+ let i = e[n];
275
+ i && i(t);
276
+ }
277
+ return De;
278
+ }
279
+ function In(e) {
280
+ if (!e) return e;
281
+ let t = e.length, r = e[0].length, n = [];
282
+ for (let i = 0; i < r; i++) n[i] = Array(t);
283
+ for (let i = 0; i < t; i++) {
284
+ let a = e[i];
285
+ for (let l = 0; l < r; l++) n[l][i] = a[l];
286
+ }
287
+ return n;
288
+ }
289
+ var dr = (e, t) => !(e !== t && !cr(e, t)) || !!e.isEqual?.(t);
290
+ function fr(e, t, r = dr) {
291
+ if (e == null || e === t) return null;
292
+ if (!e || typeof e != "object" || Array.isArray(e) || e.isImmutable?.()) return r(e, t) ? null : e;
293
+ let n = Object.keys(e), i = n.length;
294
+ if (i === 0) return null;
295
+ let a = !1;
296
+ for (let l = 0; l < i; l++) {
297
+ let s = n[l];
298
+ fr(e[s], t?.[s], r) === null && (a = !0, delete e[s]);
299
+ }
300
+ return a && Object.keys(e).length === 0 ? null : void 0;
301
+ }
302
+ function pr(e, t, r = dr) {
303
+ if (e == null) return !0;
304
+ if (!e || typeof e != "object" || Array.isArray(e) || e.isImmutable?.()) {
305
+ let s, c = !1;
306
+ for (let d = 0; !c && d < t.length; d++) t[d] !== void 0 && (c = !0, s = t[d]);
307
+ return c && (e === s || r(e, s));
308
+ }
309
+ let n = Object.keys(e), i = n.length;
310
+ if (i === 0) return !0;
311
+ let a = t.length, l = !1;
312
+ for (let s = 0; s < i; s++) {
313
+ let c = n[s], d = [];
314
+ for (let m = 0; m < a; m++) {
315
+ let o = t[m]?.[c];
316
+ o !== void 0 && d.push(o);
317
+ }
318
+ pr(e[c], d, r) && (l = !0, delete e[c]);
319
+ }
320
+ return l && Object.keys(e).length === 0;
321
+ }
322
+ function Rn(...e) {
323
+ let t = e.length;
324
+ if (t > 0 && e[t - 1] !== void 0 && !Fe(e[t - 1])) return e[t - 1];
325
+ let r = e[0] || {};
326
+ for (let n = 1; n < t; n++) r = Ee(r, e[n] || {}, { arrayMerge: (i, a) => [...a] });
327
+ return r;
328
+ }
329
+ function $n(e, t) {
330
+ let r = {}, n = Object.keys(t), i = n.length;
331
+ for (let a = 0; a < i; a++) {
332
+ let l = n[a], s = e[l], c = t[l];
333
+ s !== c && (r[l] = s === void 0 ? c : s);
334
+ }
335
+ return Object.keys(r).length === 0 ? null : r;
336
+ }
337
+ function Nn(e, t, r = sr) {
338
+ let n = 0, i = e.length - 1;
339
+ for (; n <= i;) {
340
+ let a = Math.floor((n + i) / 2), l = r(e[a]);
341
+ if (l === t) return a;
342
+ l < t ? n = a + 1 : i = a - 1;
343
+ }
344
+ return n;
345
+ }
346
+ function kn(e, t, r = sr) {
347
+ let n = e.length - 1, i = 0;
348
+ for (; n >= i;) {
349
+ let a = Math.floor((n + i) / 2), l = r(e[a]);
350
+ if (l === t) return a;
351
+ l > t ? n = a - 1 : i = a + 1;
352
+ }
353
+ return n;
354
+ }
355
+ function Ln(e, t, r) {
356
+ let n = e.slice();
357
+ return n.splice(r < 0 ? n.length + r : r, 0, n.splice(t, 1)[0]), n;
358
+ }
359
+ function Mn(e) {
360
+ return e == null || e === void 0 ? "" : typeof e == "string" ? e : "" + e;
361
+ }
362
+ function mr(e) {
363
+ return e == null;
364
+ }
365
+ function On(e) {
366
+ return e != null;
367
+ }
368
+ function Dn(e) {
369
+ return e == null || e === "";
370
+ }
371
+ function Fn(e) {
372
+ return !!e && typeof e.then == "function";
373
+ }
374
+ function hr(e, t) {
375
+ return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top);
376
+ }
377
+ function Un(e, t) {
378
+ return e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right;
379
+ }
380
+ function Pn(e, t, r = !1) {
381
+ if (!t) return [e];
382
+ if (!hr(e, t)) return [];
383
+ let n = [], i = e, a = () => {
384
+ t.top > i.top && t.top < i.bottom && (n.push({
385
+ ...i,
386
+ bottom: t.top
387
+ }), i = {
388
+ ...i,
389
+ top: t.top
390
+ });
391
+ }, l = () => {
392
+ t.bottom > i.top && t.bottom < i.bottom && (n.push({
393
+ ...i,
394
+ top: t.bottom
395
+ }), i = {
396
+ ...i,
397
+ bottom: t.bottom
398
+ });
399
+ }, s = () => {
400
+ t.right > i.left && t.right < i.right && (n.push({
401
+ ...i,
402
+ left: t.right
403
+ }), i = {
404
+ ...i,
405
+ right: t.right
406
+ });
407
+ }, c = () => {
408
+ t.left > i.left && t.left < i.right && (n.push({
409
+ ...i,
410
+ right: t.left
411
+ }), i = {
412
+ ...i,
413
+ left: t.left
414
+ });
415
+ };
416
+ return r ? (c(), s(), a(), l()) : (a(), l(), s(), c()), n;
417
+ }
418
+ function Bn(e, t) {
419
+ let r = t.split("."), n = e, i = r.length;
420
+ for (let a = 0; a < i; a++) {
421
+ let l = r[a];
422
+ if (!n) return null;
423
+ let s = n[l];
424
+ if (typeof s == "function" && (s = s.bind(n)()), !s || !Fe(s)) return s;
425
+ n = s;
426
+ }
427
+ return n ?? null;
428
+ }
429
+ function jn(e, t, r) {
430
+ let n = t.split("."), i = e;
431
+ if (!i) throw Error("Can not set path to a null path.");
432
+ let a = n.length;
433
+ for (let l = 0; i && l < a - 1; l++) {
434
+ let s = n[l], c = i[s];
435
+ if (c ?? (c = {}, i[s] = c), !Fe(c)) throw Error("Can not set path to a non object path.");
436
+ i = c;
437
+ }
438
+ if (typeof r != "number" && typeof r != "boolean" && typeof r != "string" && !Fe(r)) throw Error(\`Can not set path to \${r} that is not a a supported primitive.\`);
439
+ return i[n[a - 1]] = r, e;
440
+ }
441
+ function zn(...e) {
442
+ return new Promise((t) => {
443
+ setTimeout(() => {
444
+ Function("console.log.apply(console, arguments)").apply(null, e), t();
445
+ });
446
+ });
447
+ }
448
+ var pe = {
449
+ Windows: "windows",
450
+ MacOS: "macos",
451
+ IOS: "ios",
452
+ Linux: "linux",
453
+ Android: "android",
454
+ Safari: "safari",
455
+ Firefox: "firefox",
456
+ Unknown: "unknown"
457
+ };
458
+ function qe() {
459
+ let e = globalThis.navigator !== void 0 && globalThis.navigator.userAgent ? globalThis.navigator.userAgent.toLowerCase() : "";
460
+ return e ? /(win32|win64|windows|wince)/i.test(e) ? pe.Windows : /(macintosh|macintel|macppc|mac68k|macos)/i.test(e) ? pe.MacOS : /(iphone|ipad|ipod)/i.test(e) ? pe.IOS : /android/.test(e) ? pe.Android : /linux/.test(e) ? pe.Linux : /^((?!chrome|android|).)*safari/i.test(e) ? pe.Safari : /^((?!chrome|android|Seamonkey).)*firefox/i.test(e) ? pe.Firefox : pe.Unknown : pe.Unknown;
461
+ }
462
+ function gr(e) {
463
+ Object.freeze(e);
464
+ let t = e;
465
+ return Object.keys(t).forEach((r) => {
466
+ typeof t[r] != "object" || t[r] === null || Object.isFrozen(t[r]) || gr(t[r]);
467
+ }), e;
468
+ }
469
+ function dt(e) {
470
+ if (typeof e != "object" || !e) return e;
471
+ if (typeof e.toJSON == "function") return e.toJSON();
472
+ if (Array.isArray(e)) return e.map((r) => dt(r));
473
+ if (typeof e.toString == "function" && e.toString !== Object.prototype.toString) return e.toString();
474
+ let t = {};
475
+ for (let r in e) e.hasOwnProperty(r) && (t[r] = dt(e[r]));
476
+ return t;
477
+ }
478
+ ge({
479
+ EmptyCell: () => yr,
480
+ EmptyRange: () => Kn,
481
+ EmptyRanges: () => Vn,
482
+ EmptySelection: () => Gn,
483
+ InsertCutShift: () => ve,
484
+ cellToRange: () => Wn,
485
+ classifyInsertCut: () => ii,
486
+ columnFirstCellComparator: () => Er,
487
+ columnFirstRangeComparator: () => wr,
488
+ createCellComparator: () => Ar,
489
+ createConflatingRanges: () => ni,
490
+ createRangeComparator: () => Cr,
491
+ defaultRange: () => ei,
492
+ extendRangeToIntersectingRanges: () => Lr,
493
+ extendRangeToUnionRanges: () => qn,
494
+ intersectRanges: () => Nr,
495
+ isCellWithinRange: () => Xn,
496
+ isEqualCells: () => Ir,
497
+ isEqualRanges: () => yt,
498
+ isEqualRangesArrays: () => $r,
499
+ isEqualSelectionCoords: () => kr,
500
+ isRangeWithinRange: () => Rr,
501
+ isRangesIntersect: () => wt,
502
+ isRefusedInsertCut: () => ai,
503
+ isSingleCell: () => Hn,
504
+ isValidRange: () => Yn,
505
+ mergeRangeCoordValues: () => Or,
506
+ reverseColumnFirstCellComparator: () => Tr,
507
+ reverseColumnFirstRangeComparator: () => vr,
508
+ reverseRowFirstCellComparator: () => xr,
509
+ reverseRowFirstRangeComparator: () => br,
510
+ rowFirstCellComparator: () => _r,
511
+ rowFirstRangeComparator: () => Sr,
512
+ sanitizeRange: () => Mr,
513
+ sanitizeRangeArray: () => Qn,
514
+ translateRange: () => Zn,
515
+ unionRanges: () => ft,
516
+ unionRangesArrays: () => Jn
517
+ });
518
+ var yr = Object.freeze({
519
+ colIndex: 0,
520
+ rowIndex: 0
521
+ }), Kn = Object.freeze({
522
+ colStart: 0,
523
+ rowStart: 0,
524
+ colEnd: 0,
525
+ rowEnd: 0
526
+ }), Vn = De, Gn = Object.freeze({
527
+ cell: yr,
528
+ ranges: De,
529
+ rangeIndex: -1
530
+ });
531
+ function wr(e, t) {
532
+ return e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart;
533
+ }
534
+ function Sr(e, t) {
535
+ return e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart;
536
+ }
537
+ function br(e, t) {
538
+ return e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd;
539
+ }
540
+ function vr(e, t) {
541
+ return e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd;
542
+ }
543
+ function Er(e, t) {
544
+ return e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex;
545
+ }
546
+ function _r(e, t) {
547
+ return e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex;
548
+ }
549
+ function xr(e, t) {
550
+ return e.rowIndex === t.rowIndex ? t.colIndex - e.colIndex : t.rowIndex - e.rowIndex;
551
+ }
552
+ function Tr(e, t) {
553
+ return e.colIndex === t.colIndex ? t.rowIndex - e.rowIndex : t.colIndex - e.colIndex;
554
+ }
555
+ function Cr(e = ie.Row, t = !1) {
556
+ return t ? e === ie.Column ? vr : br : e === ie.Column ? wr : Sr;
557
+ }
558
+ function Ar(e = ie.Row, t = !1) {
559
+ return t ? e === ie.Column ? Tr : xr : e === ie.Column ? Er : _r;
560
+ }
561
+ function Ir(e, t) {
562
+ return e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex && e.scope === t.scope;
563
+ }
564
+ function yt(e, t) {
565
+ return e === t || !(!e || !t) && e.rowStart === t.rowStart && e.rowEnd === t.rowEnd && e.colStart === t.colStart && e.colEnd === t.colEnd && e.scope === t.scope;
566
+ }
567
+ function Xn(e, t) {
568
+ if (!e || !t) return !1;
569
+ let r = e.rowIndex;
570
+ if (r < t.rowStart || r > t.rowEnd) return !1;
571
+ let n = e.colIndex;
572
+ return !(n < t.colStart || n > t.colEnd);
573
+ }
574
+ function Rr(e, t) {
575
+ return !(!e || !t) && !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd);
576
+ }
577
+ function wt(e, t) {
578
+ return !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd);
579
+ }
580
+ function $r(e, t) {
581
+ if (e === t) return !0;
582
+ if (!e || !t || e.length !== t.length) return !1;
583
+ for (let r = 0; r < e.length; r++) if (!yt(e[r], t[r])) return !1;
584
+ return !0;
585
+ }
586
+ function Hn(e) {
587
+ return !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd;
588
+ }
589
+ function Wn(e, t) {
590
+ if (!e) return null;
591
+ let r = t;
592
+ return r || (r = { ...e }, delete r.colIndex, delete r.rowIndex), r.colStart = e.colIndex ?? 0, r.rowStart = e.rowIndex ?? 0, r.colEnd = e.colIndex ?? 0, r.rowEnd = e.rowIndex ?? 0, r;
593
+ }
594
+ function Nr(e, t, r) {
595
+ if (!e) return r ? t : { ...t };
596
+ if (!t) return r ? e : { ...e };
597
+ if (!e && !t || e.rowStart > t.rowEnd || e.rowEnd < t.rowStart || e.colStart > t.colEnd || e.colEnd < t.colStart) return null;
598
+ let n = Math.max(e.colStart, t.colStart), i = Math.max(e.rowStart, t.rowStart), a = Math.min(e.colEnd, t.colEnd), l = Math.min(e.rowEnd, t.rowEnd), s = r;
599
+ return s ? (s.colStart = n, s.rowStart = i, s.colEnd = a, s.rowEnd = l) : s = {
600
+ colStart: n,
601
+ rowStart: i,
602
+ colEnd: a,
603
+ rowEnd: l
604
+ }, s;
605
+ }
606
+ function ft(e, t, r) {
607
+ if (!e && !t) return null;
608
+ if (!e) return r ? t : { ...t };
609
+ if (!t) return r ? e : { ...e };
610
+ let n = Math.min(e.colStart, t.colStart), i = Math.min(e.rowStart, t.rowStart), a = Math.max(e.colEnd, t.colEnd), l = Math.max(e.rowEnd, t.rowEnd), s = r;
611
+ return s ? (s.colStart = n, s.rowStart = i, s.colEnd = a, s.rowEnd = l) : s = {
612
+ colStart: n,
613
+ rowStart: i,
614
+ colEnd: a,
615
+ rowEnd: l
616
+ }, s;
617
+ }
618
+ function kr(e, t) {
619
+ return e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!Ir(e.cell, t.cell) && $r(e.ranges, t.ranges);
620
+ }
621
+ function Jn(e, t, r) {
622
+ if (!e || e.length === 0) return null;
623
+ if (e.length === 1 && !t) return e[0];
624
+ let n = e[0];
625
+ for (let i = 1; i < e.length; i++) n = ft(n, e[i], r);
626
+ return t && (n = ft(n, t, r)), n;
627
+ }
628
+ function Yn(e) {
629
+ return !!e && !(typeof e.colStart != "number" || e.colStart < 0) && !(typeof e.colEnd != "number" || e.colEnd < e.colStart) && !(typeof e.rowStart != "number" || e.rowStart < 0) && !(typeof e.rowEnd != "number" || e.rowEnd < e.rowStart);
630
+ }
631
+ function qn(e, t) {
632
+ if (!t || t.length === 0) return e;
633
+ let r = e, n = null;
634
+ for (; !yt(r, n);) n = r, r = Lr(n, t);
635
+ return r;
636
+ }
637
+ function Lr(e, t) {
638
+ if (!t || t.length === 0) return e;
639
+ let r = { ...e };
640
+ for (let n = 0; n < t.length; n++) {
641
+ let i = t[n];
642
+ wt(r, i) && (r.rowStart = Math.min(r.rowStart, i.rowStart), r.colStart = Math.min(r.colStart, i.colStart), r.rowEnd = Math.max(r.rowEnd, i.rowEnd), r.colEnd = Math.max(r.colEnd, i.colEnd));
643
+ }
644
+ return r;
645
+ }
646
+ function Zn(e, t = -e.rowStart, r = -e.colStart, n) {
647
+ return n ? (n.colStart = e.colStart + r, n.rowStart = e.rowStart + t, n.colEnd = e.colEnd + r, n.rowEnd = e.rowEnd + t, n) : {
648
+ colStart: e.colStart + r,
649
+ rowStart: e.rowStart + t,
650
+ colEnd: e.colEnd + r,
651
+ rowEnd: e.rowEnd + t
652
+ };
653
+ }
654
+ function Mr(e, t) {
655
+ return e ? e.scope ? {
656
+ colStart: e.colIndex ?? e.colStart ?? t?.colStart ?? 0,
657
+ rowStart: e.rowIndex ?? e.rowStart ?? t?.rowStart ?? 0,
658
+ colEnd: e.colIndex ?? e.colEnd ?? t?.colEnd ?? 0,
659
+ rowEnd: e.rowIndex ?? e.rowEnd ?? t?.rowEnd ?? 0,
660
+ scope: e.scope
661
+ } : {
662
+ colStart: e.colIndex ?? e.colStart ?? t?.colStart ?? 0,
663
+ rowStart: e.rowIndex ?? e.rowStart ?? t?.rowStart ?? 0,
664
+ colEnd: e.colIndex ?? e.colEnd ?? t?.colEnd ?? 0,
665
+ rowEnd: e.rowIndex ?? e.rowEnd ?? t?.rowEnd ?? 0
666
+ } : null;
667
+ }
668
+ function Qn(e, t) {
669
+ if (!e) return null;
670
+ let r = e.length, n = Array(r);
671
+ for (let i = 0; i < r; i++) n[i] = Mr(e[i], t);
672
+ return n;
673
+ }
674
+ function ei(e, t, r) {
675
+ return e ? r ? (r.colStart = e.colStart ?? t.colStart, r.rowStart = e.rowStart ?? t.rowStart, r.colEnd = e.colEnd ?? t.colEnd, r.rowEnd = e.rowEnd ?? t.rowEnd, r) : {
676
+ colStart: e.colStart ?? t.colStart,
677
+ rowStart: e.rowStart ?? t.rowStart,
678
+ colEnd: e.colEnd ?? t.colEnd,
679
+ rowEnd: e.rowEnd ?? t.rowEnd
680
+ } : t;
681
+ }
682
+ var ti = [null, null], ri = (e, t, r) => {
683
+ if (e[0].value === e[1].value) return t;
684
+ };
685
+ function Or(e, t = 2, r, n = ie.Row, i) {
686
+ let a = [...e];
687
+ if (t <= 0 || e.length <= 1) return a;
688
+ let l = n === ie.Column, s = 0, c = !1;
689
+ do {
690
+ let d = a.sort(Cr(l ? ie.Row : ie.Column));
691
+ a = [], a.push(d[0]);
692
+ let m = d.length, o = 0, f = d[0], b = f.colStart, S = f.rowStart, A = f.colEnd, k = f.rowEnd;
693
+ for (let h = 1; h < m; h++) {
694
+ let y = d[h], w = !1;
695
+ if (w = l ? f && S === y.rowStart && k === y.rowEnd && A + 1 === y.colStart : f && b === y.colStart && A === y.colEnd && k + 1 === y.rowStart, w) {
696
+ let D = {
697
+ colStart: b,
698
+ rowStart: S,
699
+ colEnd: l ? y.colEnd : A,
700
+ rowEnd: l ? k : y.rowEnd
701
+ };
702
+ if (f.value !== void 0 && (D.value = f.value), r) {
703
+ let K = i ?? [null, null];
704
+ K[0] = f, K[1] = y, D = r(K, D, n);
705
+ }
706
+ if (D) {
707
+ a[o] = D, c = !0, f = D, b = f.colStart, S = f.rowStart, A = f.colEnd, k = f.rowEnd;
708
+ continue;
709
+ }
710
+ }
711
+ a[++o] = y, f = y, b = f.colStart, S = f.rowStart, A = f.colEnd, k = f.rowEnd;
712
+ }
713
+ s++, l = !l, s === 1 && (c = !0);
714
+ } while (s < t && c && a.length > 1);
715
+ return a;
716
+ }
717
+ function ni(e, t = !1) {
718
+ let r = [], n, i = null, a = -(2 ** 53 - 1), l = -(2 ** 53 - 1);
719
+ return {
720
+ append: (s, c, d) => {
721
+ let m = !0, o = d !== void 0;
722
+ if (o) {
723
+ let S = e ? e(n, d, t) : n === d ? d : void 0;
724
+ S === void 0 ? m = !1 : d = S;
725
+ }
726
+ if (m && c === l + 1 && s === a) return t ? i.rowEnd = c : i.colEnd = c, l = c, void (n = d);
727
+ i && r.push(i);
728
+ let f = t ? s : c, b = t ? c : s;
729
+ i = {
730
+ colStart: f,
731
+ rowStart: b,
732
+ colEnd: f,
733
+ rowEnd: b
734
+ }, o && (i.value = d), a = s, l = c, n = d;
735
+ },
736
+ done: (s) => (i &&= (r.push(i), null), s ? Or(r, 3, s === !0 ? ri : s, t ? ie.Column : ie.Row, ti) : r)
737
+ };
738
+ }
739
+ var ve = {
740
+ Close: "close",
741
+ Blank: "blank",
742
+ Inside: "inside",
743
+ Tear: "tear"
744
+ };
745
+ function ii(e, t, r) {
746
+ let n = r === ie.Row;
747
+ return (n ? e.colStart === t.colStart && e.colEnd === t.colEnd : e.rowStart === t.rowStart && e.rowEnd === t.rowEnd) ? (n ? t.rowStart > e.rowStart && t.rowStart <= e.rowEnd : t.colStart > e.colStart && t.colStart <= e.colEnd) ? ve.Inside : ve.Close : (n ? e.rowEnd >= t.rowStart && e.colStart <= t.colEnd && e.colEnd >= t.colStart : e.colEnd >= t.colStart && e.rowStart <= t.rowEnd && e.rowEnd >= t.rowStart) ? ve.Tear : ve.Blank;
748
+ }
749
+ function ai(e) {
750
+ return e === ve.Inside || e === ve.Tear;
751
+ }
752
+ var q = {
753
+ Up: "up",
754
+ Down: "down",
755
+ Left: "left",
756
+ Right: "right"
757
+ }, J = {
758
+ Html: "text/html",
759
+ Plain: "text/plain",
760
+ Png: "image/png"
761
+ };
762
+ ge({
763
+ findNextCellWithinSelection: () => Dr,
764
+ traverseHiddenHeaders: () => fe
765
+ });
766
+ function fe(e, t, r, n) {
767
+ if (!e) return t;
768
+ let i = t, a = r === q.Right || r === q.Down;
769
+ for (;;) {
770
+ let l = e(i, !a);
771
+ if (l === 0) return i;
772
+ let s = a ? i + l : i - l;
773
+ if (n !== void 0 && (a ? s > n : s < n)) return n;
774
+ i = s;
775
+ }
776
+ }
777
+ function Dr(e, t = q.Right, r, n, i, a = null) {
778
+ if (a && kr(a, e)) return e;
779
+ let l = e.ranges, s = e.rangeIndex, c = l[s];
780
+ if (!wt({
781
+ rowStart: e.cell.rowIndex,
782
+ colStart: e.cell.colIndex,
783
+ rowEnd: e.cell.rowIndex,
784
+ colEnd: e.cell.colIndex
785
+ }, c)) return e;
786
+ let d = { ...e.cell }, m = s;
787
+ switch (t) {
788
+ case q.Right:
789
+ d.colIndex = fe(i, d.colIndex + 1, t, c.colEnd + 1);
790
+ break;
791
+ case q.Left:
792
+ d.colIndex = fe(i, d.colIndex - 1, t, c.colStart - 1);
793
+ break;
794
+ case q.Down:
795
+ d.rowIndex = fe(n, d.rowIndex + 1, t, c.rowEnd + 1);
796
+ break;
797
+ case q.Up: d.rowIndex = fe(n, d.rowIndex - 1, t, c.rowStart - 1);
798
+ }
799
+ let o = (S) => {
800
+ if (S) {
801
+ m = s >= l.length - 1 ? 0 : s + 1;
802
+ let A = l[m];
803
+ d = {
804
+ colIndex: A.colStart,
805
+ rowIndex: A.rowStart
806
+ };
807
+ } else {
808
+ m = s <= 0 ? l.length - 1 : s - 1;
809
+ let A = l[m];
810
+ d = {
811
+ colIndex: A.colEnd,
812
+ rowIndex: A.rowEnd
813
+ };
814
+ }
815
+ };
816
+ if (t === q.Right && d.colIndex > c.colEnd && d.rowIndex === c.rowEnd) o(!0);
817
+ else if (t === q.Left && d.colIndex < c.colStart && d.rowIndex === c.rowStart) o(!1);
818
+ else if (t === q.Down && d.colIndex === c.colEnd && d.rowIndex > c.rowEnd) o(!0);
819
+ else if (t === q.Up && d.colIndex === c.colStart && d.rowIndex < c.rowStart) o(!1);
820
+ else {
821
+ let S = d.rowIndex, A = d.colIndex;
822
+ switch (t) {
823
+ case q.Right:
824
+ A > c.colEnd && (S = fe(n, S + 1, t, c.rowEnd + 1), A = c.colStart, S > c.rowEnd && (S = c.rowStart));
825
+ break;
826
+ case q.Left:
827
+ A < c.colStart && (S = fe(n, S - 1, t, c.rowStart - 1), A = c.colEnd, S < c.rowStart && (S = c.rowEnd));
828
+ break;
829
+ case q.Down:
830
+ S > c.rowEnd && (A = fe(i, A + 1, t, c.colEnd + 1), S = c.rowStart, A > c.colEnd && (A = c.colStart));
831
+ break;
832
+ case q.Up: S < c.rowStart && (A = fe(i, A - 1, t, c.colStart - 1), S = c.rowEnd, A < c.colStart && (A = c.colEnd));
833
+ }
834
+ d = {
835
+ rowIndex: S,
836
+ colIndex: A
837
+ };
838
+ }
839
+ let f = r(d);
840
+ if (!Rr(f, c)) {
841
+ let S = Nr(f, c);
842
+ S && (f = S);
843
+ }
844
+ let b = {
845
+ rowStart: fe(n, f.rowStart, q.Down, f.rowEnd),
846
+ colStart: fe(i, f.colStart, q.Right, f.colEnd),
847
+ rowEnd: fe(n, f.rowEnd, q.Up, f.rowStart),
848
+ colEnd: fe(i, f.colEnd, q.Left, f.colStart)
849
+ };
850
+ if (b.rowStart !== d.rowIndex || b.colStart !== d.colIndex) {
851
+ switch (t) {
852
+ case q.Right:
853
+ l[m].colStart === b.colStart && l[m].colEnd === b.colEnd && (d.rowIndex = b.rowEnd), d.colIndex = b.colEnd;
854
+ break;
855
+ case q.Left:
856
+ l[m].colStart === b.colStart && l[m].colEnd === b.colEnd && (d.rowIndex = b.rowStart), d.rowIndex === b.rowStart ? d.colIndex = b.colStart + 1 : d.colIndex = b.colStart;
857
+ break;
858
+ case q.Down:
859
+ l[m].rowStart === b.rowStart && l[m].rowEnd === b.rowEnd && (d.colIndex = b.colEnd), d.rowIndex = b.rowEnd;
860
+ break;
861
+ case q.Up: l[m].rowStart === b.rowStart && l[m].rowEnd === b.rowEnd && (d.colIndex = b.colStart), d.colIndex === b.colStart ? d.rowIndex = b.rowStart + 1 : d.rowIndex = b.rowStart;
862
+ }
863
+ return Dr({
864
+ cell: d,
865
+ ranges: e.ranges,
866
+ rangeIndex: m
867
+ }, t, r, n, i, a ?? e);
868
+ }
869
+ return {
870
+ ranges: e.ranges,
871
+ cell: d,
872
+ rangeIndex: m
873
+ };
874
+ }
875
+ var oi, $e = (e, t) => {
876
+ if (e.length >= t) return e;
877
+ let r = new Int32Array(Math.max(t, 2 * e.length));
878
+ return r.set(e), r;
879
+ }, Ne = /* @__PURE__ */ new Int32Array(1024), tt = (e) => (Ne.length < e && (Ne = new Int32Array(Math.max(e, 2 * Ne.length))), Ne.fill(0, 0, e), Ne), li = class {
880
+ constructor(e, t, r, n) {
881
+ this._nextOrder = 0, this._activeLen = 0, this._events = /* @__PURE__ */ new Int32Array(64), this._hasBand = !1, this._bandStart = 0, this._bandEnd = 0, this._rMinS = /* @__PURE__ */ new Int32Array(64), this._rMinE = /* @__PURE__ */ new Int32Array(64), this._rOff = /* @__PURE__ */ new Int32Array(65), this._rCount = 0, this._pool = /* @__PURE__ */ new Int32Array(256), this._overlaps = /* @__PURE__ */ new Int32Array(16), this._rInter = null, this._region = -1, this._major = 0, this._minor = 0, this._done = !1, this.rowStart = 0, this.rowEnd = 0, this.colStart = 0, this.colEnd = 0, this.cellRow = 0, this.cellCol = 0, this.intersection = null, this._isColumn = r, this._isReverse = n, this._store = e;
882
+ let i = e.count;
883
+ this._n = i;
884
+ let a = new Int32Array(i), l = new Int32Array(i), s = new Int32Array(i), c = new Int32Array(i), d = r ? e.colS : e.rowS, m = r ? e.colE : e.rowE, o = r ? e.rowS : e.colS, f = r ? e.rowE : e.colE;
885
+ for (let h = 0; h < i; h++) n ? (a[h] = -m[h], l[h] = -d[h], s[h] = -f[h], c[h] = -o[h]) : (a[h] = d[h], l[h] = m[h], s[h] = o[h], c[h] = f[h]);
886
+ this._M0 = a, this._M1 = l, this._m0 = s, this._m1 = c;
887
+ let b = r ? t.colStart : t.rowStart, S = r ? t.colEnd : t.rowEnd, A = S - b + 1, k = new Int32Array(i);
888
+ if (i < 256 || A > 16 * i) {
889
+ for (let h = 0; h < i; h++) k[h] = h;
890
+ k.sort((h, y) => a[h] - a[y] || h - y);
891
+ } else {
892
+ let h = n ? -S : b, y = tt(A + 1);
893
+ for (let w = 0; w < i; w++) y[a[w] - h + 1]++;
894
+ for (let w = 1; w <= A; w++) y[w] += y[w - 1];
895
+ for (let w = 0; w < i; w++) k[y[a[w] - h]++] = w;
896
+ }
897
+ this._order = k, this._active = new Int32Array(Math.min(2 * i, 1024)), this._scratch = new Int32Array(this._active.length);
898
+ }
899
+ _stable(e) {
900
+ return this._isReverse ? this._n - 1 - e : e;
901
+ }
902
+ _compareEvents(e, t) {
903
+ let r = e >> 1, n = t >> 1, i = 1 & e, a = 1 & t, l = this._m0, s = this._m1, c = i ? s[r] : l[r], d = a ? s[n] : l[n];
904
+ if (c !== d) return c - d;
905
+ if (i !== a) return i - a;
906
+ let m = i ? l[r] : s[r], o = a ? l[n] : s[n];
907
+ return m === o ? this._stable(r) - this._stable(n) : m - o;
908
+ }
909
+ _sortEvents(e, t, r, n) {
910
+ let i = n - r + 1;
911
+ if (t < 256 || i > 16 * t) return e.subarray(0, t).sort((o, f) => this._compareEvents(o, f)), e;
912
+ let a = this._m0, l = this._m1, s = e, c = this._scratch;
913
+ c.length < t && (c = this._scratch = new Int32Array(t));
914
+ let d = tt(i + 1);
915
+ for (let o = 0; o < t; o++) {
916
+ let f = s[o];
917
+ d[(1 & f ? a[f >> 1] : l[f >> 1]) - r + 1]++;
918
+ }
919
+ for (let o = 1; o <= i; o++) d[o] += d[o - 1];
920
+ for (let o = 0; o < t; o++) {
921
+ let f = s[o];
922
+ c[d[(1 & f ? a[f >> 1] : l[f >> 1]) - r]++] = f;
923
+ }
924
+ let m = 0;
925
+ for (let o = 0; o < t; o++) 1 & c[o] || (s[m++] = c[o]);
926
+ for (let o = 0; o < t; o++) 1 & ~c[o] || (s[m++] = c[o]);
927
+ d = tt(i + 1);
928
+ for (let o = 0; o < t; o++) {
929
+ let f = s[o];
930
+ d[(1 & f ? l[f >> 1] : a[f >> 1]) - r + 1]++;
931
+ }
932
+ for (let o = 1; o <= i; o++) d[o] += d[o - 1];
933
+ for (let o = 0; o < t; o++) {
934
+ let f = s[o];
935
+ c[d[(1 & f ? l[f >> 1] : a[f >> 1]) - r]++] = f;
936
+ }
937
+ return this._scratch = s, this._events = c, c;
938
+ }
939
+ _advanceBand() {
940
+ let e = this._n, t = this._M0, r = this._M1, n = this._order, i, a = this._active, l = this._activeLen;
941
+ if (this._hasBand) {
942
+ let o = this._bandEnd, f = 0;
943
+ for (let b = 0; b < l; b++) {
944
+ let S = a[b];
945
+ r[S >> 1] > o && (a[f++] = S);
946
+ }
947
+ l = f;
948
+ }
949
+ let s = this._nextOrder;
950
+ if (l > 0) i = this._bandEnd + 1;
951
+ else {
952
+ if (s >= e) return this._activeLen = 0, this._done = !0, !1;
953
+ i = t[n[s]];
954
+ }
955
+ let c = s;
956
+ for (; c < e && t[n[c]] === i;) c++;
957
+ let d = c - s;
958
+ if (d > 0) {
959
+ let o = 2 * d, f = this._events;
960
+ f.length < o && (f = this._events = new Int32Array(Math.max(o, 2 * f.length)));
961
+ let b = this._m0, S = this._m1, A = 2 ** 53 - 1, k = -(2 ** 53 - 1), h = 0;
962
+ if (this._isReverse) for (let K = c - 1; K >= s; K--) {
963
+ let L = n[K];
964
+ f[h++] = L << 1, f[h++] = L << 1 | 1, b[L] < A && (A = b[L]), S[L] > k && (k = S[L]);
965
+ }
966
+ else for (let K = s; K < c; K++) {
967
+ let L = n[K];
968
+ f[h++] = L << 1, f[h++] = L << 1 | 1, b[L] < A && (A = b[L]), S[L] > k && (k = S[L]);
969
+ }
970
+ let y = this._sortEvents(f, o, A, k), w = l + o, D = this._scratch;
971
+ if ((D === y || D.length < w) && (D = new Int32Array(Math.max(w, 2 * a.length))), l === 0) D.set(y.subarray(0, o));
972
+ else {
973
+ let K = 0, L = 0, R = 0;
974
+ for (; K < l && L < o;) this._compareEvents(a[K], y[L]) <= 0 ? D[R++] = a[K++] : D[R++] = y[L++];
975
+ for (; K < l;) D[R++] = a[K++];
976
+ for (; L < o;) D[R++] = y[L++];
977
+ }
978
+ this._scratch = a.length >= D.length ? a : new Int32Array(D.length), a = this._active = D, l = w;
979
+ }
980
+ this._activeLen = l, this._nextOrder = c;
981
+ let m = c < e ? t[n[c]] - 1 : 2 ** 53 - 1;
982
+ for (let o = 0; o < l; o++) {
983
+ let f = r[a[o] >> 1];
984
+ f < m && (m = f);
985
+ }
986
+ return this._bandStart = i, this._bandEnd = m, this._hasBand = !0, this._sweepBand(), !0;
987
+ }
988
+ _sweepBand() {
989
+ let e = this._active, t = this._activeLen, r = this._m0, n = this._m1, i = this._rMinS, a = this._rMinE, l = this._rOff, s = this._pool, c = this._overlaps, d = 0, m = 0, o = 0, f = 0, b = (S, A) => {
990
+ o >= i.length && (i = this._rMinS = $e(i, o + 1), a = this._rMinE = $e(a, o + 1), l = this._rOff = $e(l, i.length + 1)), i[o] = S, a[o] = A, l[o] = m, o++, m + d > s.length && (s = this._pool = $e(s, m + d));
991
+ for (let k = 0; k < d; k++) s[m++] = c[k];
992
+ };
993
+ for (let S = 0; S < t; S++) {
994
+ let A = e[S], k = A >> 1;
995
+ if (1 & A) {
996
+ let h = n[k];
997
+ if (f <= h && b(f, h), d > 1) {
998
+ let y = d - 1;
999
+ for (; y >= 0 && c[y] !== k;) y--;
1000
+ y !== -1 && (c[y] = c[d - 1]);
1001
+ }
1002
+ d--, f = h + 1;
1003
+ } else {
1004
+ let h = r[k];
1005
+ d > 0 && f < h && b(f, h - 1), d >= c.length && (c = this._overlaps = $e(c, d + 1)), c[d++] = k, f = h;
1006
+ }
1007
+ }
1008
+ l[o] = m, this._rCount = o, this._region = -1, this._rInter = null;
1009
+ }
1010
+ _setRegion(e) {
1011
+ let t = this._isReverse, r = t ? 0 - this._bandEnd : this._bandStart, n = t ? 0 - this._bandStart : this._bandEnd, i = this._rMinS[e], a = this._rMinE[e], l = t ? 0 - a : i, s = t ? 0 - i : a;
1012
+ this._isColumn ? (this.colStart = r, this.colEnd = n, this.rowStart = l, this.rowEnd = s) : (this.rowStart = r, this.rowEnd = n, this.colStart = l, this.colEnd = s);
1013
+ let c = this._rInter;
1014
+ if (c) {
1015
+ let d = c[e];
1016
+ d ||= c[e] = this._materialize(e), this.intersection = d;
1017
+ } else this.intersection = this._materialize(e);
1018
+ }
1019
+ nextRegion() {
1020
+ if (this._done) return !1;
1021
+ let e = this._region + 1;
1022
+ for (; !this._hasBand || e >= this._rCount;) {
1023
+ if (!this._advanceBand()) return !1;
1024
+ e = 0;
1025
+ }
1026
+ return this._region = e, this._setRegion(e), !0;
1027
+ }
1028
+ _setCell(e) {
1029
+ let t = this._isReverse, r = t ? 0 - this._major : this._major, n = t ? 0 - this._minor : this._minor;
1030
+ this._isColumn ? (this.cellCol = r, this.cellRow = n) : (this.cellRow = r, this.cellCol = n), e !== this._region && (this._region = e, this._setRegion(e));
1031
+ }
1032
+ _enterBandByCell() {
1033
+ this._rInter = this._bandEnd > this._bandStart ? Array(this._rCount) : null, this._major = this._bandStart;
1034
+ }
1035
+ nextCell() {
1036
+ if (this._done) return !1;
1037
+ let e = this._region;
1038
+ if (!this._hasBand || e < 0) {
1039
+ if (!this._hasBand) {
1040
+ if (!this._advanceBand()) return !1;
1041
+ this._enterBandByCell();
1042
+ }
1043
+ return this._minor = this._rMinS[0], this._setCell(0), !0;
1044
+ }
1045
+ let t = this._minor + 1;
1046
+ if (t <= this._rMinE[e]) return this._minor = t, this._setCell(e), !0;
1047
+ if (e++, e >= this._rCount && (e = 0, ++this._major > this._bandEnd)) {
1048
+ if (!this._advanceBand()) return !1;
1049
+ this._enterBandByCell();
1050
+ }
1051
+ return this._minor = this._rMinS[e], this._setCell(e), !0;
1052
+ }
1053
+ seekCell(e, t) {
1054
+ if (this._done) return !1;
1055
+ let r = this._isReverse, n = this._isColumn ? t : e, i = this._isColumn ? e : t;
1056
+ if (r && (n = -n, i = -i), this._hasBand && this._region >= 0 && (n < this._major || n === this._major && i <= this._minor)) return this.nextCell();
1057
+ for (;;) {
1058
+ if (!this._hasBand || n > this._bandEnd) {
1059
+ if (!this._advanceBand()) return !1;
1060
+ this._enterBandByCell();
1061
+ continue;
1062
+ }
1063
+ if (n < this._bandStart) return this._major = this._bandStart, this._minor = this._rMinS[0], this._setCell(0), !0;
1064
+ this._major = n;
1065
+ let a = this._rMinE, l = 0, s = this._rCount;
1066
+ for (; l < s;) {
1067
+ let c = l + s >>> 1;
1068
+ a[c] < i ? l = c + 1 : s = c;
1069
+ }
1070
+ if (l < this._rCount) {
1071
+ let c = this._rMinS[l];
1072
+ return this._minor = c > i ? c : i, this._setCell(l), !0;
1073
+ }
1074
+ if (!(++this._major > this._bandEnd)) return this._minor = this._rMinS[0], this._setCell(0), !0;
1075
+ if (!this._advanceBand()) return !1;
1076
+ this._enterBandByCell();
1077
+ }
1078
+ }
1079
+ }, je = Object.freeze({
1080
+ done: !0,
1081
+ value: void 0
1082
+ });
1083
+ (function(e) {
1084
+ class t extends li {
1085
+ constructor(...i) {
1086
+ super(...i), this._reuseOverlaps = null;
1087
+ }
1088
+ _materialize(i) {
1089
+ let a = this._rOff, l = this._pool, s = this._store.value, c = a[i], d = a[i + 1], m = this._reuseOverlaps;
1090
+ m ? m.length = 0 : m = [];
1091
+ for (let o = c; o < d; o++) m.push(s[l[o]]);
1092
+ return m;
1093
+ }
1094
+ }
1095
+ class r {
1096
+ constructor(i, a) {
1097
+ if (this._sweep = null, this._isByCell = !1, this._cellComparator = null, this._lastCell = null, this._reuse = null, !i || i.length === 0) return;
1098
+ let l, s = !0, c = !1, d = !1;
1099
+ if (a && (s = (a.axis ?? ie.Column) !== ie.Row, c = a.reverse ?? !1, d = a.byCell ?? !1, l = a.reuseIterator), this._isByCell = d, l) {
1100
+ let y = typeof l == "boolean" ? {
1101
+ done: !1,
1102
+ value: {
1103
+ cell: null,
1104
+ range: null,
1105
+ overlaps: null
1106
+ }
1107
+ } : l;
1108
+ y.done = !1;
1109
+ let w = y.value;
1110
+ w ||= y.value = {
1111
+ cell: null,
1112
+ range: null,
1113
+ overlaps: null
1114
+ }, w.range || (w.range = {
1115
+ colStart: 0,
1116
+ rowStart: 0,
1117
+ colEnd: 0,
1118
+ rowEnd: 0
1119
+ }), w.cell = d ? w.cell ?? {
1120
+ colIndex: -1,
1121
+ rowIndex: -1
1122
+ } : null, this._reuse = y;
1123
+ }
1124
+ let m = i.length, o = {
1125
+ count: m,
1126
+ rowS: new Int32Array(m),
1127
+ rowE: new Int32Array(m),
1128
+ colS: new Int32Array(m),
1129
+ colE: new Int32Array(m),
1130
+ type: new Uint16Array(m),
1131
+ value: [],
1132
+ keys: ["range"]
1133
+ }, f = 2 ** 53 - 1, b = -(2 ** 53 - 1), S = 2 ** 53 - 1, A = -(2 ** 53 - 1);
1134
+ for (let y = 0; y < m; y++) {
1135
+ let w = i[y];
1136
+ o.rowS[y] = w.rowStart, o.rowE[y] = w.rowEnd, o.colS[y] = w.colStart, o.colE[y] = w.colEnd, o.value.push(w), w.rowStart < f && (f = w.rowStart), w.rowEnd > b && (b = w.rowEnd), w.colStart < S && (S = w.colStart), w.colEnd > A && (A = w.colEnd);
1137
+ }
1138
+ let k = {
1139
+ rowStart: f,
1140
+ rowEnd: b,
1141
+ colStart: S,
1142
+ colEnd: A
1143
+ }, h = this._sweep = new t(o, k, s, c);
1144
+ d ? this._cellComparator = Ar(s ? ie.Column : ie.Row, c) : l && (h._reuseOverlaps = []);
1145
+ }
1146
+ next(i) {
1147
+ let a = this._sweep;
1148
+ if (!a) return je;
1149
+ let l = this._isByCell, s;
1150
+ if (i) {
1151
+ if (!l) throw Error("nextCell is only supported when byCell is true");
1152
+ let o = this._lastCell;
1153
+ if (o && this._cellComparator(o, i) >= 0) throw Error("nextCell must be after the current iteration cell");
1154
+ s = a.seekCell(i.rowIndex, i.colIndex);
1155
+ } else s = l ? a.nextCell() : a.nextRegion();
1156
+ if (!s) return this._sweep = null, je;
1157
+ let c = this._reuse;
1158
+ if (c) {
1159
+ let o = c.value;
1160
+ c.done = !1;
1161
+ let f = o.range;
1162
+ if (f.colStart = a.colStart, f.rowStart = a.rowStart, f.colEnd = a.colEnd, f.rowEnd = a.rowEnd, l) {
1163
+ let b = o.cell;
1164
+ b.colIndex = a.cellCol, b.rowIndex = a.cellRow;
1165
+ let S = this._lastCell;
1166
+ S ||= this._lastCell = {
1167
+ colIndex: 0,
1168
+ rowIndex: 0
1169
+ }, S.colIndex = a.cellCol, S.rowIndex = a.cellRow;
1170
+ }
1171
+ return o.overlaps = a.intersection, c;
1172
+ }
1173
+ let d = null, m = a.intersection;
1174
+ return l && (d = this._lastCell = {
1175
+ colIndex: a.cellCol,
1176
+ rowIndex: a.cellRow
1177
+ }, m = m.slice()), {
1178
+ done: !1,
1179
+ value: {
1180
+ cell: d,
1181
+ range: {
1182
+ colStart: a.colStart,
1183
+ rowStart: a.rowStart,
1184
+ colEnd: a.colEnd,
1185
+ rowEnd: a.rowEnd
1186
+ },
1187
+ overlaps: m
1188
+ }
1189
+ };
1190
+ }
1191
+ return(i) {
1192
+ return je;
1193
+ }
1194
+ throw(i) {
1195
+ return je;
1196
+ }
1197
+ [Symbol.iterator]() {
1198
+ return this;
1199
+ }
1200
+ }
1201
+ e.IteratorInstance = r;
1202
+ })(oi ||= {});
1203
+ var si = class {
1204
+ constructor() {
1205
+ this._onceMessageKeys = /* @__PURE__ */ new Set(), this._overrides = null;
1206
+ }
1207
+ setOverrides(e) {
1208
+ this._overrides = e ?? null;
1209
+ }
1210
+ getOverrides() {
1211
+ return this._overrides;
1212
+ }
1213
+ _write(e, t, r) {
1214
+ if (r?.onceKey) {
1215
+ let a = this._onceMessageKeys;
1216
+ if (a.has(r.onceKey)) return;
1217
+ a.add(r.onceKey);
1218
+ }
1219
+ let n = r?.meta, i = this._overrides;
1220
+ if (i) {
1221
+ let a = i[e];
1222
+ if (a) return void a.bind(i)(t, r);
1223
+ }
1224
+ n === void 0 ? console[e](t) : console[e](t, n);
1225
+ }
1226
+ log(e, t) {
1227
+ return this._write("log", e, t);
1228
+ }
1229
+ error(e, t) {
1230
+ return this._write("error", e, t);
1231
+ }
1232
+ warn(e, t) {
1233
+ return this._write("warn", e, t);
1234
+ }
1235
+ debug(e, t) {
1236
+ return this._write("debug", e, t);
1237
+ }
1238
+ };
1239
+ new si();
1240
+ var rt;
1241
+ ge({
1242
+ EmptyBounds: () => di,
1243
+ EmptyRect: () => ui,
1244
+ EmptyTopLeft: () => ci
1245
+ });
1246
+ var ci = Object.freeze({
1247
+ left: 0,
1248
+ top: 0
1249
+ }), ui = Object.freeze({
1250
+ left: 0,
1251
+ top: 0,
1252
+ bottom: 0,
1253
+ right: 0
1254
+ }), di = Object.freeze({
1255
+ x: 0,
1256
+ y: 0,
1257
+ width: 0,
1258
+ height: 0
1259
+ });
1260
+ ge({
1261
+ canUseDOM: () => Fr,
1262
+ getDPI: () => pi,
1263
+ hasFocus: () => Ur,
1264
+ openFileDialog: () => fi,
1265
+ scrollIntoContainer: () => mi,
1266
+ whenFocus: () => hi
1267
+ });
1268
+ var Fr = !(typeof window > "u" || !window.document || !window.document.createElement), fi = (e = "*.*") => new Promise((t, r) => {
1269
+ if (!Fr) return void r("Unable to open dialog with no dom.");
1270
+ let n = document.createElement("input");
1271
+ n.type = "file", n.accept = e;
1272
+ let i = null, a = !1;
1273
+ globalThis.addEventListener?.("focus", () => {
1274
+ setTimeout(() => {
1275
+ i || a || (a = !0, t(null));
1276
+ }, 1e3);
1277
+ }, {
1278
+ once: !0,
1279
+ passive: !0
1280
+ }), n.onchange = () => {
1281
+ if (i = n.files?.[0] ?? null, i) {
1282
+ if (a) return void console.warn("File open detected after faux cancel.", i);
1283
+ t(i);
1284
+ }
1285
+ }, n.autofocus = !0, n.click();
1286
+ }), pi = () => {
1287
+ let e = 1;
1288
+ return typeof window == "object" && (e = window.devicePixelRatio || 1), e;
1289
+ }, Ur = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), mi = (e, t, r = "auto") => {
1290
+ if ((() => {
1291
+ if (rt === void 0) {
1292
+ let c = !1;
1293
+ try {
1294
+ document.createElement("div").scrollIntoView({ get container() {
1295
+ return c = !0, "nearest";
1296
+ } });
1297
+ } catch {}
1298
+ rt = c;
1299
+ }
1300
+ return rt;
1301
+ })()) return void t.scrollIntoView({
1302
+ block: "nearest",
1303
+ inline: "nearest",
1304
+ behavior: r,
1305
+ container: "nearest"
1306
+ });
1307
+ let n = e.getBoundingClientRect(), i = t.getBoundingClientRect(), a = n.top + e.clientTop, l = a + e.clientHeight, s = 0;
1308
+ i.top < a ? s = i.top - a : i.bottom > l && (s = Math.min(i.bottom - l, i.top - a)), s !== 0 && e.scrollBy({
1309
+ top: s,
1310
+ behavior: r
1311
+ });
1312
+ }, hi = async (e, t = !1) => new Promise((r) => {
1313
+ Ur(e, t) ? r(!0) : e.addEventListener("focusin", () => {
1314
+ r(!0);
1315
+ }, { once: !0 }), e.focus();
1316
+ });
1317
+ ge({
1318
+ cancelTimeout: () => vi,
1319
+ debounce: () => wi,
1320
+ nextTick: () => bi,
1321
+ rafThrottle: () => Si,
1322
+ requestTimeout: () => Ei,
1323
+ throttle: () => yi
1324
+ });
1325
+ var Ue = globalThis.requestAnimationFrame, gi = globalThis.cancelAnimationFrame;
1326
+ function yi(e, t) {
1327
+ let r = null;
1328
+ return (...n) => {
1329
+ let i = Date.now();
1330
+ (!r || i - r >= t) && (r = i, e(...n));
1331
+ };
1332
+ }
1333
+ function wi(e, t = 300, r = !1) {
1334
+ let n, i, a, l = null, s = 0;
1335
+ function c() {
1336
+ let m = Date.now() - s;
1337
+ m < t && m >= 0 ? l = setTimeout(c, t - m) : (l = null, r || (a = e.apply(i, n), i = n = null));
1338
+ }
1339
+ t ??= 100;
1340
+ let d = function() {
1341
+ i = globalThis, n = arguments, s = Date.now();
1342
+ var m = r && !l;
1343
+ return l ||= setTimeout(c, t), m && (a = e.apply(i, n), i = n = null), a;
1344
+ };
1345
+ return d.clear = function() {
1346
+ l &&= (clearTimeout(l), null);
1347
+ }, d.flush = function() {
1348
+ l &&= (a = e.apply(i, n), i = n = null, clearTimeout(l), null);
1349
+ }, d;
1350
+ }
1351
+ var Si = (e) => {
1352
+ let t, r = !1, n = function() {
1353
+ r = !1, e(t);
1354
+ };
1355
+ return function(i) {
1356
+ t = i, t && t.persist && t.persist(), r || (r = !0, Ue(n));
1357
+ };
1358
+ }, bi = (e) => {
1359
+ if (typeof Ue == "function") Ue(() => {
1360
+ e();
1361
+ });
1362
+ else {
1363
+ let t = globalThis.setImmediate;
1364
+ (typeof t == "function" ? t : setTimeout)(() => {
1365
+ e();
1366
+ });
1367
+ }
1368
+ }, At = typeof performance == "object" && typeof performance.now == "function" ? () => performance.now() : () => Date.now(), vi = (e) => {
1369
+ gi(e.id);
1370
+ }, Ei = (e, t) => {
1371
+ let r = At(), n = { id: Ue(function i() {
1372
+ At() - r >= t ? e.call(null) : n.id = Ue(i);
1373
+ }) };
1374
+ return n;
1375
+ };
1376
+ ge({ MESSAGE_ERROR_INVALID_ARG: () => _i });
1377
+ var _i = (e) => \`Invalid argument: '\${e}'.\`;
1378
+ ge({
1379
+ APP_MIME_TYPE: () => xi,
1380
+ DEFAULT_MIME_TYPE: () => "*/*",
1381
+ JSONStableStringify: () => Ri,
1382
+ arrayBufferToBase64: () => Pr,
1383
+ base64ToArrayBuffer: () => Ii,
1384
+ blobToString: () => pt,
1385
+ isLittleEndian: () => Ai,
1386
+ isNodeBuffer: () => Ti,
1387
+ isSharedArrayBufferSupported: () => Ci
1388
+ });
1389
+ var xi = "application/octet-stream", Ae = globalThis.Buffer, Ti = (e) => Ae?.isBuffer(e) ?? !1, Ci = typeof SharedArrayBuffer == "function" && (globalThis.crossOriginIsolated === void 0 || globalThis.crossOriginIsolated === !0), Ai = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1, It = globalThis.FileReader, Ii = (e) => {
1390
+ let t = typeof globalThis.atob == "function" ? globalThis.atob(e) : Ae.from(e, "base64").toString("binary"), r = t.length, n = new Uint8Array(r);
1391
+ for (let i = 0; i < r; i++) n[i] = t.charCodeAt(i);
1392
+ return n.buffer;
1393
+ }, Pr = (e) => {
1394
+ let t = new Uint8Array(e), r = t.byteLength, n = "";
1395
+ for (let i = 0; i < r; i++) n += String.fromCharCode(t[i]);
1396
+ if (typeof globalThis.btoa == "function") return globalThis.btoa(n);
1397
+ if (Ae) return Ae.from(n, "binary").toString("base64");
1398
+ throw Error("Unsupported environment");
1399
+ }, pt = (e) => new Promise((t, r) => {
1400
+ if (e) if (It) {
1401
+ let n = new It();
1402
+ n.onload = () => {
1403
+ t(n.result);
1404
+ }, n.onerror = () => {
1405
+ r(n.error);
1406
+ }, n.readAsText(e);
1407
+ } else if (Ae) {
1408
+ let n = (i) => Ae.from(i).toString("utf-8");
1409
+ e.arrayBuffer().then((i) => {
1410
+ t(n(i));
1411
+ }).catch((i) => {
1412
+ r(i);
1413
+ });
1414
+ } else r(/* @__PURE__ */ Error("Unsupported environment"));
1415
+ else t("");
1416
+ });
1417
+ function Ri(e, t) {
1418
+ t ||= {}, typeof t == "function" && (t = { cmp: t });
1419
+ let r = typeof t.cycles == "boolean" && t.cycles, n = t.cmp && (i = t.cmp, function(l) {
1420
+ return function(s, c) {
1421
+ return i({
1422
+ key: s,
1423
+ value: l[s]
1424
+ }, {
1425
+ key: c,
1426
+ value: l[c]
1427
+ });
1428
+ };
1429
+ });
1430
+ var i;
1431
+ let a = [];
1432
+ return (function l(s) {
1433
+ if (s && s.toJSON && typeof s.toJSON == "function" && (s = s.toJSON()), s === void 0) return;
1434
+ if (typeof s == "number") return isFinite(s) ? "" + s : "null";
1435
+ if (typeof s != "object") return JSON.stringify(s);
1436
+ let c;
1437
+ if (Array.isArray(s)) {
1438
+ c = "[";
1439
+ for (let o = 0; o < s.length; o++) o && (c += ","), c += l(s[o]) || "null";
1440
+ return c + "]";
1441
+ }
1442
+ if (s === null) return "null";
1443
+ if (a.indexOf(s) !== -1) {
1444
+ if (r) return JSON.stringify("__cycle__");
1445
+ throw TypeError("Converting circular structure to JSON");
1446
+ }
1447
+ let d = a.push(s) - 1, m = Object.keys(s).sort(n && n(s));
1448
+ c = "";
1449
+ for (let o = 0; o < m.length; o++) {
1450
+ let f = m[o], b = l(s[f]);
1451
+ b && (c && (c += ","), c += JSON.stringify(f) + ":" + b);
1452
+ }
1453
+ return a.splice(d, 1), "{" + c + "}";
1454
+ })(e);
1455
+ }
1456
+ var $i;
1457
+ ge({
1458
+ DATA_URL_PNG_PREFIX: () => Br,
1459
+ getImageDataUrl: () => Ni,
1460
+ getPngStatedSize: () => ki,
1461
+ loadImageDetails: () => Li
1462
+ });
1463
+ var Br = "data:image/png;base64,", jr = "Unable to resolve image.", Rt = (e) => new Promise(async (t, r) => {
1464
+ let n = null;
1465
+ try {
1466
+ let i = n = new Image();
1467
+ i.src = e, i.addEventListener("load", function() {
1468
+ t({
1469
+ width: i.naturalWidth,
1470
+ height: i.naturalHeight
1471
+ });
1472
+ }, { once: !0 }), i.addEventListener("error", function(a) {
1473
+ URL.revokeObjectURL(e);
1474
+ let l = a?.error?.message ?? "";
1475
+ l &&= \`: \${l}\`, r(\`Invalid Image\${l}\`);
1476
+ }, { once: !0 }), await i.decode();
1477
+ } catch {
1478
+ n?.src && URL.revokeObjectURL(n.src);
1479
+ }
1480
+ n || r(Error(jr));
1481
+ }), Ni = (e, t = 1) => new Promise(async (r, n) => {
1482
+ let i = null;
1483
+ try {
1484
+ let a = i = new Image();
1485
+ a.src = e, a.addEventListener("load", function() {
1486
+ try {
1487
+ let l = document.createElement("canvas");
1488
+ l.width = a.naturalWidth, l.height = a.naturalHeight;
1489
+ let s = l.getContext("2d");
1490
+ if (!s) throw Error("Unable to create 2d context");
1491
+ s.drawImage(a, 0, 0);
1492
+ let c = l.toDataURL("image/png", t);
1493
+ r({
1494
+ elemImg: a,
1495
+ dataUrl: c
1496
+ });
1497
+ } catch (l) {
1498
+ URL.revokeObjectURL(e), n(l);
1499
+ }
1500
+ }, { once: !0 }), a.addEventListener("error", function() {
1501
+ URL.revokeObjectURL(e), n("Invalid Image");
1502
+ }, { once: !0 }), await a.decode();
1503
+ } catch {
1504
+ i?.src && URL.revokeObjectURL(i.src);
1505
+ }
1506
+ i || n(Error(jr));
1507
+ }), $t = [2303741511, 218765834], Nt = 96 / .0254, ki = (e) => {
1508
+ let t = new DataView(e);
1509
+ if (t.byteLength < 24 || t.getUint32(0) !== $t[0] || t.getUint32(4) !== $t[1]) return null;
1510
+ let r = 8;
1511
+ for (; r + 8 <= t.byteLength;) {
1512
+ let n = t.getUint32(r), i = t.getUint32(r + 4);
1513
+ if (i === 1229209940) return null;
1514
+ if (i === 1883789683) {
1515
+ if (n !== 9 || r + 17 > t.byteLength) return null;
1516
+ let a = t.getUint32(r + 8), l = t.getUint32(r + 12);
1517
+ return t.getUint8(r + 16) === 1 && a && l ? {
1518
+ width: Math.max(1, Math.round(t.getUint32(16) * Nt / a)),
1519
+ height: Math.max(1, Math.round(t.getUint32(20) * Nt / l))
1520
+ } : null;
1521
+ }
1522
+ r += 12 + n;
1523
+ }
1524
+ return null;
1525
+ }, nt = "image/svg+xml", Li = async (e, t = null) => {
1526
+ let r = null, n = async () => {
1527
+ try {
1528
+ let a = t ?? "image/*", l = URL.createObjectURL(new Blob([e], { type: a }));
1529
+ r = {
1530
+ mimeType: a,
1531
+ naturalSize: await Rt(l),
1532
+ asUrl: l
1533
+ };
1534
+ } catch {}
1535
+ }, i = async () => {
1536
+ try {
1537
+ let a = new TextDecoder().decode(e), l = URL.createObjectURL(new Blob([a], { type: nt })), s = await Rt(l);
1538
+ r = {
1539
+ mimeType: t ?? nt,
1540
+ naturalSize: s,
1541
+ asUrl: l,
1542
+ asSVGText: a
1543
+ };
1544
+ } catch {}
1545
+ };
1546
+ if (t === nt ? await i() : t?.startsWith("image/") ? await n() : (await n(), r || await i()), !r) throw Error("Failed to load image");
1547
+ return r;
1548
+ }, kt = /* @__PURE__ */ new Set(), Mi = (e) => {
1549
+ kt.has(e) || (kt.add(e), console.warn(\`Unknown property '\${e}' in update; ignoring.\`));
1550
+ };
1551
+ (function(e) {
1552
+ e.PassThrough = Object.freeze({});
1553
+ let t = e.resolveTypedUpdates = (r, n, i, a, l = !1) => {
1554
+ if (r === null) return r;
1555
+ if (r === void 0) return a;
1556
+ let s = r;
1557
+ if (n?.shorthand) {
1558
+ let o = n?.shorthand(r, i);
1559
+ o !== void 0 && (s = o);
1560
+ }
1561
+ if (s !== null && n?.getSubType) {
1562
+ let o = n.getSubType(s, a);
1563
+ o && (n = o);
1564
+ }
1565
+ let c = n?.properties, d = n?.arrayType ?? !1, m = s;
1566
+ if (n && n.merge && m && a) m = n.merge(m, a, i);
1567
+ else if (!d && c) {
1568
+ let o = Object.keys({
1569
+ ...s,
1570
+ ...a
1571
+ });
1572
+ m = null;
1573
+ let f = o.length;
1574
+ for (let b = 0; b < f; b++) {
1575
+ let S = o[b], A, k = s?.[S];
1576
+ if (k !== void 0) {
1577
+ let h = c[S];
1578
+ if (!h) {
1579
+ Mi(S);
1580
+ continue;
1581
+ }
1582
+ A = t(k, h, i, a?.[S], l);
1583
+ } else A = a?.[S];
1584
+ A == null ? l && k === null && (m ??= {}, m[S] = null) : (m ??= {}, m[S] = A);
1585
+ }
1586
+ }
1587
+ return m;
1588
+ };
1589
+ })($i ||= {});
1590
+ var St = {
1591
+ code: "safari",
1592
+ message: \`The Safari browser does not support advanced copy and paste.
1593
+ Copy and paste will be limited to within the browser tab.
1594
+
1595
+ Please use Chrome or Edge if external copy and paste is required.\`
1596
+ }, zr = {
1597
+ code: "perms",
1598
+ message: \`You do not have permissions to access the clipboard.
1599
+ All copy and paste operations will be limited to the browser tab.\`
1600
+ }, Lt = qe() === pe.Safari ? St : zr, Oi = {
1601
+ Safari: St,
1602
+ Perms: zr,
1603
+ PermsWrite: Lt,
1604
+ PermsRead: Lt
1605
+ }, it = async () => new Promise((e) => {
1606
+ document.hasFocus() ? e() : globalThis.addEventListener?.("focus", () => {
1607
+ e();
1608
+ }, { once: !0 }), document.activeElement.focus?.();
1609
+ }), at = async (e, t, r) => {
1610
+ if (qe() === pe.Safari) return await r(Error(St.message));
1611
+ try {
1612
+ let n = async (l) => {
1613
+ try {
1614
+ return await l();
1615
+ } catch (s) {
1616
+ if (s.message?.includes("Document is not focused")) return !1;
1617
+ throw s;
1618
+ }
1619
+ }, i = await globalThis?.navigator?.permissions?.query({
1620
+ name: e,
1621
+ allowWithoutGesture: !0,
1622
+ allowWithoutSanitization: !0
1623
+ }), a = !1;
1624
+ if (i.state === "prompt" && (a = await n(t)), a || i.state !== "granted" || (a = await t()), !a) return await r(Error(i.state));
1625
+ } catch (n) {
1626
+ return n.message === "No valid data on clipboard" || n.name === "DataError" ? void 0 : await r(n);
1627
+ }
1628
+ }, Kr = async (e) => {
1629
+ if (!e) return null;
1630
+ try {
1631
+ return await e.read({ unsanitized: [J.Html] });
1632
+ } catch {}
1633
+ return await e.read();
1634
+ }, Di = async (e, t) => {
1635
+ if (!e) return null;
1636
+ let r = await Kr(e), n = !1;
1637
+ for (let i = 0; !n && r && i < r.length; i++) if (n = r[i].types.includes(t), n) return await r[i].getType(t);
1638
+ return null;
1639
+ };
1640
+ if (!globalThis.ClipboardItem) {
1641
+ let e = (r, n) => new Blob([n], { type: r });
1642
+ class t {
1643
+ constructor(n, i) {
1644
+ this._items = {}, this._types = Object.keys(n);
1645
+ let a = {}, l = Object.keys(n);
1646
+ for (let s = 0; s < l.length; s++) {
1647
+ let c = l[s], d = n[c];
1648
+ a[c] = typeof d == "string" ? e(c, d) : d;
1649
+ }
1650
+ this._items = a, this._presentationStyle = i?.presentationStyle ?? "unspecified";
1651
+ }
1652
+ get types() {
1653
+ return this._types;
1654
+ }
1655
+ getType(n) {
1656
+ return Promise.resolve(this._items[n]);
1657
+ }
1658
+ supports(n) {
1659
+ return !0;
1660
+ }
1661
+ }
1662
+ globalThis.ClipboardItem = t;
1663
+ }
1664
+ var Mt, mt = async (e, t = J.Html) => new Promise(async (r, n) => {
1665
+ try {
1666
+ let i = await Di(e, t);
1667
+ if (i) {
1668
+ let a = new FileReader();
1669
+ a.onload = () => {
1670
+ r(a.result);
1671
+ }, a.onerror = () => {
1672
+ r("");
1673
+ }, a.readAsText(i);
1674
+ } else r("");
1675
+ } catch (i) {
1676
+ n(i);
1677
+ }
1678
+ }), Ot = async (e, t = J.Html) => {
1679
+ let r = await mt(e, t);
1680
+ if (!r) return null;
1681
+ let n = null;
1682
+ try {
1683
+ n = new DOMParser().parseFromString(r, J.Html);
1684
+ } catch {
1685
+ console.warn("Can't parse html from clipboard.");
1686
+ }
1687
+ return n;
1688
+ }, Fi = async (e) => {
1689
+ e && await e.writeText("");
1690
+ }, Pe = "clipboard-uuid", Me = "web text/uuid", Dt = (e) => \`<div style="display:none" \${Pe}="\${e}"/>\`, Ft = { type: J.Plain }, Ut = { type: J.Html }, Pt = { type: Me }, Ui = (e, t) => {
1691
+ let r = null;
1692
+ try {
1693
+ let n = new DOMParser().parseFromString(t, J.Html);
1694
+ n.body.firstElementChild?.setAttribute(Pe, e), r = n.getElementsByTagName("body")[0].innerHTML;
1695
+ } catch (n) {
1696
+ console.warn("Can't embed uuid.", n);
1697
+ }
1698
+ return r;
1699
+ }, Bt = (e, t) => {
1700
+ if (!t || !e) return !1;
1701
+ try {
1702
+ let r = t.querySelectorAll(\`[\${Pe}="\${e}"]\`);
1703
+ if (r && r.length === 1) return !0;
1704
+ if (t.querySelector("parsererror")) throw Error("We are unable to parse node");
1705
+ return !1;
1706
+ } catch {
1707
+ return !1;
1708
+ }
1709
+ }, jt = class {
1710
+ constructor(e) {
1711
+ if (this._state = null, this._nativeClipboard = null, this._onFocus = null, this._onBlur = null, e?.nativeClipboard === void 0 || e?.nativeClipboard === !0) try {
1712
+ this._nativeClipboard = globalThis?.navigator.clipboard;
1713
+ } catch {
1714
+ e?.nativeClipboard === !0 && console.warn("NativeClipboard option set to true but no native clipboard available.");
1715
+ }
1716
+ else this._nativeClipboard = e?.nativeClipboard === !1 ? null : e?.nativeClipboard ?? null;
1717
+ this._disableCheckOnFocus = e?.disableCheckOnFocus ?? !1, this._init();
1718
+ }
1719
+ async _checkForChanges() {
1720
+ this._nativeClipboard && this._state && !this._disableCheckOnFocus && await at("clipboard-read", async () => {
1721
+ await it();
1722
+ let e = await mt(this._nativeClipboard, Me);
1723
+ if (!this._state || e && e === this._state.uuid) return !0;
1724
+ let t = await Ot(this._nativeClipboard, J.Html);
1725
+ return !this._state || (Bt(this._state.uuid, t) || this.clear(), !0);
1726
+ }, async (e) => {
1727
+ e?.message === "denied" || e.message?.includes("Document is not focused") || qe() === pe.Safari || console.warn("Unable to detect clipboard changes: ", e);
1728
+ });
1729
+ }
1730
+ _init() {
1731
+ let e = this;
1732
+ this._listeners = /* @__PURE__ */ new Map(), this._listenersCapture = /* @__PURE__ */ new Map(), this._state = null, this._nativeClipboard && (this._onFocus = () => {
1733
+ e._checkForChanges();
1734
+ }, this._onBlur = () => {
1735
+ globalThis.addEventListener?.("focus", e._onFocus, { once: !0 });
1736
+ }, globalThis.addEventListener?.("blur", this._onBlur), this._nativeClipboard.addEventListener("clipboardchange", (t) => {
1737
+ e._checkForChanges();
1738
+ }));
1739
+ }
1740
+ async read() {
1741
+ if (!this._nativeClipboard) return this._state?.items ?? null;
1742
+ let e = this;
1743
+ return await at("clipboard-read", async () => {
1744
+ if (await it(), this._state?.uuid) {
1745
+ let t = await mt(this._nativeClipboard, Me);
1746
+ if (t && t === e._state?.uuid) return !0;
1747
+ let r = await Ot(this._nativeClipboard, J.Html);
1748
+ if (Bt(e._state?.uuid, r)) return !0;
1749
+ }
1750
+ return e._state = {
1751
+ items: await Kr(this._nativeClipboard),
1752
+ uuid: null,
1753
+ ref: null
1754
+ }, this.dispatchEvent(new Event("clipboardread")), !0;
1755
+ }, async (t) => {
1756
+ this.dispatchEvent(new Event("clipboarderrorread"));
1757
+ }), this._state?.items ?? [];
1758
+ }
1759
+ async write(e) {
1760
+ return this._write({
1761
+ uuid: He(),
1762
+ items: e,
1763
+ ref: null
1764
+ });
1765
+ }
1766
+ async _write(e) {
1767
+ if (!this._nativeClipboard) return this._state = e, this.dispatchEvent(new Event("clipboardwrite")), void this.dispatchEvent(new Event("clipboardchange"));
1768
+ let t = this, r = [], n = e.uuid, i = e.items ?? [], a = () => {
1769
+ t._state = {
1770
+ uuid: n,
1771
+ ref: e.ref,
1772
+ items: r
1773
+ }, t.dispatchEvent(new Event("clipboardwrite")), t.dispatchEvent(new Event("clipboardchange"));
1774
+ };
1775
+ await at("clipboard-write", async () => {
1776
+ await it(), n && i.length === 0 && (i.push(new ClipboardItem({ [Me]: new Blob([n], Pt) })), i.push(new ClipboardItem({ [J.Html]: new Blob([Dt(n)], Ut) })));
1777
+ for (let l = 0; l < Math.min(1, i.length); l++) {
1778
+ let s = i[l], c = s.types.indexOf(J.Html), d = null;
1779
+ if (c !== -1 && (d = await pt(await s.getType(J.Html)), d &&= Ui(n, d)), !d && s.types.includes(J.Plain)) {
1780
+ let S = await s.getType(J.Plain);
1781
+ if (S) {
1782
+ let A = null;
1783
+ typeof S == "string" ? (console.warn("text as string", S), A = S) : A = await pt(S), A && (d = \`<div \${Pe}="\${n}">\${A}</div>\`);
1784
+ }
1785
+ }
1786
+ if (!d && s.types.includes(J.Png)) {
1787
+ let S = Pr(await (await s.getType(J.Png)).arrayBuffer());
1788
+ d = \`<div \${Pe}="\${n}"><img src="\${Br + S}"/></div>\`;
1789
+ }
1790
+ !d && n && (d = Dt(n));
1791
+ let m = new Blob([d ?? ""], Ut), o = {}, f = s.types, b = f.length;
1792
+ for (let S = 0; S < b; S++) {
1793
+ let A = f[S];
1794
+ o[A] = S === c ? m : s.getType(A);
1795
+ }
1796
+ d && c === -1 && (o[J.Html] = m), n && (o[Me] = new Blob([n], Pt)), r.push(new ClipboardItem(o));
1797
+ }
1798
+ try {
1799
+ r && r.length !== 0 ? await this._nativeClipboard.write(r) : await Fi(this._nativeClipboard);
1800
+ } catch (l) {
1801
+ l.message?.includes("Document is not focused") || console.warn("Unable to write to native clipboard: ", l);
1802
+ }
1803
+ return a(), !0;
1804
+ }, async (l) => {
1805
+ this.dispatchEvent(new Event("clipboarderrorwrite")), a();
1806
+ });
1807
+ }
1808
+ async writeReference(e) {
1809
+ if (!e) return void this.clear();
1810
+ let t = null, r = {};
1811
+ try {
1812
+ let i = await e.toText?.() ?? null;
1813
+ i && (r[J.Plain] = new Blob([i ?? ""], Ft));
1814
+ } catch (i) {
1815
+ t = i;
1816
+ }
1817
+ try {
1818
+ let i = await e.toHtml?.() ?? null;
1819
+ i && (r[J.Html] = new Blob([i], { type: J.Html }));
1820
+ } catch (i) {
1821
+ t = i, console.warn("export to html", i);
1822
+ }
1823
+ try {
1824
+ let i = await e.toImage?.() ?? null;
1825
+ i && (r[J.Png] = i);
1826
+ } catch (i) {
1827
+ t = i, console.warn("export to png", i);
1828
+ }
1829
+ let n = this._write({
1830
+ uuid: He(),
1831
+ ref: e,
1832
+ items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null
1833
+ });
1834
+ if (t) throw t;
1835
+ return n;
1836
+ }
1837
+ clear(e = !1) {
1838
+ this._state && (this._state = null, e && this._write({
1839
+ uuid: null,
1840
+ ref: null,
1841
+ items: null
1842
+ }), this.dispatchEvent(new Event("clipboardwrite")), this.dispatchEvent(new Event("clipboardchange")));
1843
+ }
1844
+ async readReference() {
1845
+ return await this.read(), this._state?.ref ?? null;
1846
+ }
1847
+ readText() {
1848
+ return new Promise(async (e, t) => {
1849
+ let r = await this.read(), n = null, i = r ? r.length : 0;
1850
+ for (let l = 0; !n && l < i; l++) {
1851
+ let s = r[l];
1852
+ s.types.includes(J.Plain) && (n = await s.getType(J.Plain));
1853
+ }
1854
+ if (!n) return void e("");
1855
+ let a = new FileReader();
1856
+ a.onload = () => {
1857
+ e(a.result);
1858
+ }, a.readAsText(n), a.onerror = (l) => {
1859
+ t(l);
1860
+ };
1861
+ });
1862
+ }
1863
+ async writeText(e) {
1864
+ let t = [new ClipboardItem({ [J.Plain]: new Blob([e], Ft) })];
1865
+ return this._write({
1866
+ uuid: He(),
1867
+ items: t,
1868
+ ref: null
1869
+ });
1870
+ }
1871
+ addEventListener(e, t, r = {}) {
1872
+ let n = r?.capture ? this._listenersCapture : this._listeners, i = n.get(e);
1873
+ i || (i = /* @__PURE__ */ new Map(), n.set(e, i)), t && i.set(t, typeof r == "boolean" ? {} : r);
1874
+ }
1875
+ dispatchEvent(e) {
1876
+ if (!e) return !1;
1877
+ let t = (r) => {
1878
+ let n = r.get(e.type);
1879
+ n && n.forEach((i, a) => {
1880
+ try {
1881
+ typeof a == "function" ? a(e) : a.handleEvent && a.handleEvent(e), i.once && n.delete(a);
1882
+ } catch (l) {
1883
+ console.warn(l);
1884
+ }
1885
+ });
1886
+ };
1887
+ return t(this._listenersCapture), t(this._listeners), !0;
1888
+ }
1889
+ removeEventListener(e, t, r) {
1890
+ let n = r?.capture ? this._listenersCapture : this._listeners, i = n.get(e);
1891
+ i && t && (i.delete(t), i.size === 0 && n.delete(e));
1892
+ }
1893
+ close() {
1894
+ this._onFocus && globalThis.removeEventListener?.("focus", this._onFocus), this._onBlur && globalThis.removeEventListener?.("blur", this._onBlur);
1895
+ }
1896
+ };
1897
+ (Mt = jt ||= {}).ErrorMessages = Oi, Mt.Global = new jt();
1898
+ Object.freeze({});
1899
+ new TextDecoder();
1900
+ const E = Object.freeze({
1901
+ /** Exported function has no body. */
1902
+ NoBody: "SXL1001",
1903
+ /** Anonymous exported function is not allowed. */
1904
+ Anonymous: "SXL1002",
1905
+ /** Internal parse failure while analyzing the module. */
1906
+ ParseError: "SXL1003",
1907
+ /** Invalid parameter type. */
1908
+ InvalidParamType: "SXL2001",
1909
+ /** Invalid return type. */
1910
+ InvalidReturnType: "SXL2002",
1911
+ /** \`undefined\` / \`null\` / \`void\` is not valid as an input type. */
1912
+ UndefinedInput: "SXL2003",
1913
+ /** A type annotation is required but missing. */
1914
+ MissingType: "SXL2004",
1915
+ /** An \`Array\` must be typed (e.g. \`number[]\`, not bare \`[]\`). */
1916
+ UntypedArray: "SXL2005",
1917
+ /** A generic type must be supplied exactly one type argument. */
1918
+ GenericArity: "SXL2006",
1919
+ /** A context parameter must be the first parameter. */
1920
+ ContextNotFirst: "SXL2010",
1921
+ /** More than one \`Lambda\` parameter. */
1922
+ MultipleLambda: "SXL2020",
1923
+ /** A \`Lambda\` parameter must be the last parameter. */
1924
+ LambdaNotLast: "SXL2021",
1925
+ /** A \`Lambda\` parameter/return scalar type mismatch. */
1926
+ LambdaScalarMismatch: "SXL2022",
1927
+ /** \`Lambda\` is not valid as a return type. */
1928
+ LambdaReturn: "SXL2023",
1929
+ /** A bare function type is not valid as a return type. */
1930
+ FunctionReturn: "SXL2024",
1931
+ /** A \`Lambda\` function type has the wrong number of parameters. */
1932
+ LambdaArity: "SXL2025",
1933
+ /** Arrays of more than 2 dimensions are not supported. */
1934
+ ArrayDepth: "SXL2030",
1935
+ /** \`Repeating<T>\` used somewhere it cannot be (a return type, a rest parameter, nested in an array). */
1936
+ RepeatingPosition: "SXL2040",
1937
+ /** More than one \`Repeating<T>\` parameter. */
1938
+ MultipleRepeating: "SXL2041",
1939
+ /** A \`Repeating<T>\` group's slots are malformed (unlabelled tuple member, or a 1-element tuple). */
1940
+ RepeatingSlots: "SXL2042",
1941
+ /** An optional parameter/slot where a repeating group does not allow one. */
1942
+ RepeatingOptional: "SXL2043",
1943
+ /** \`Repeating<T, Max>\`'s maximum argument count is not a whole number in range. */
1944
+ RepeatingMax: "SXL2044",
1945
+ /** An enum mixes number and string members. */
1946
+ EnumMixed: "SXL2050",
1947
+ /** An enum member is not a constant number or string. */
1948
+ EnumMemberNotConstant: "SXL2051",
1949
+ /** A parameter type that is not declared in this module, so an enum behind it cannot be read. */
1950
+ EnumNotLocal: "SXL2052",
1951
+ /** An \`as const\` object used as a parameter type without its same-name type alias. */
1952
+ EnumMissingAlias: "SXL2053",
1953
+ /** An enum where no single argument is coerced to it (\`IRange<E>\`, \`Lazy<E>\`). */
1954
+ EnumPosition: "SXL2054",
1955
+ /** \`Omittable<E, V>\` whose \`V\` is neither a member of \`E\` nor \`null\`. */
1956
+ EnumOmittedValue: "SXL2055",
1957
+ /** No exported functions found in the module. */
1958
+ NoExports: "SXL3001",
1959
+ /** A \`@param\` tag references a parameter that does not exist. */
1960
+ UnknownParam: "SXL3002",
1961
+ /** A calculation function takes a built-in function's name. */
1962
+ BuiltInName: "SXL3003",
1963
+ /** A \`@returnKind\` tag names a value kind that does not exist, or names none at all. */
1964
+ UnknownReturnKind: "SXL3005",
1965
+ /** A calculation function's name (its \`@name\`, or else its own) is not a name a formula can call. */
1966
+ InvalidName: "SXL3006",
1967
+ /** Two functions in one module register under the same name (an \`@name\` repeats another's). */
1968
+ DuplicateName: "SXL3007",
1969
+ /** A function has no JSDoc description. */
1970
+ MissingSummary: "SXL9001",
1971
+ /** A \`@param\` is missing a description. */
1972
+ MissingParamDescription: "SXL9002",
1973
+ /**
1974
+ * Missing \`@returns\` on a non-void function.
1975
+ * @deprecated Retained for code stability but no longer emitted - Excel-style tooltips describe
1976
+ * behavior via the summary, so a standalone \`@returns\` warning is noise.
1977
+ */
1978
+ MissingReturns: "SXL9003",
1979
+ /** Two enum members share a value. */
1980
+ EnumDuplicateValue: "SXL9004",
1981
+ /** An enum member has no doc comment. */
1982
+ EnumMemberUndocumented: "SXL9005"
1983
+ });
1984
+ var Xi;
1985
+ (function(e) {
1986
+ e.MAX_TEXT_LENGTH = 32767;
1987
+ let t = e.MAX_SIGNIFICANT_DIGITS = 15;
1988
+ e.truncateNumberText = function(n) {
1989
+ let i = n.length;
1990
+ if (i <= t) return n;
1991
+ let a = 0, l = null;
1992
+ for (let s = 0; s < i; s++) {
1993
+ let c = n.charCodeAt(s);
1994
+ if (c >= 48 && c <= 57) {
1995
+ if (a === 0 && c === 48) continue;
1996
+ a++, a > t && ((l ??= n.split(""))[s] = "0");
1997
+ } else if ((c === 69 || c === 101) && a > 0) break;
1998
+ }
1999
+ return l === null ? n : l.join("");
2000
+ };
2001
+ let r = e.MIN_NUMBER = 22250738585072014e-324;
2002
+ e.flushSubnormal = function(n) {
2003
+ return n > -r && n < r ? 0 : n;
2004
+ }, e.isNumberTextInRange = function(n, i = ".") {
2005
+ let a = n.length;
2006
+ if (a < 309 && n.indexOf("E") < 0 && n.indexOf("e") < 0) return !0;
2007
+ let l = i.charCodeAt(0), s = !1, c = !1, d = !1, m = 0, o = 0, f = 0, b = 0;
2008
+ for (; b < a; b++) {
2009
+ let k = n.charCodeAt(b);
2010
+ if (k >= 48 && k <= 57) s = !0, c ? (f++, d || (k === 48 ? o++ : d = !0)) : (d || k !== 48) && (d = !0, m++);
2011
+ else if (k === l) c = !0;
2012
+ else if ((k === 69 || k === 101) && s) break;
2013
+ }
2014
+ let S = 0;
2015
+ if (b < a) {
2016
+ let k = b + 1, h = !1, y = n.charCodeAt(k);
2017
+ y === 45 ? (h = !0, k++) : y === 43 && k++;
2018
+ let w = 0;
2019
+ for (; k < a; k++) {
2020
+ let D = n.charCodeAt(k);
2021
+ if (D < 48 || D > 57) break;
2022
+ S = 10 * S + (D - 48), w++;
2023
+ }
2024
+ if (w === 0) return !0;
2025
+ h && (S = -S);
2026
+ }
2027
+ if (d) {
2028
+ let k = (m > 0 ? m - 1 : -(o + 1)) + S;
2029
+ return k >= -309 && k <= 307;
2030
+ }
2031
+ let A = S - f;
2032
+ return A >= -308 && A <= 308;
2033
+ };
2034
+ })(Xi ||= {});
2035
+ var Xt, ot, Hi, T, me = {
2036
+ Number: "number",
2037
+ String: "string",
2038
+ Boolean: "boolean",
2039
+ Error: "error",
2040
+ RichData: "richData",
2041
+ Null: "null"
2042
+ }, Ht = {
2043
+ ...me,
2044
+ Date: "date"
2045
+ }, Wt = {
2046
+ ...me,
2047
+ Reference: "reference",
2048
+ Array: "array",
2049
+ Lambda: "lambda",
2050
+ Omitted: "omitted"
2051
+ };
2052
+ (ot = Xt ||= {}).Axis = {
2053
+ Column: "column",
2054
+ Row: "row"
2055
+ }, ot.AxisSelection = {
2056
+ ...Xt.Axis,
2057
+ Both: "both"
2058
+ }, ot.Direction = {
2059
+ Up: "up",
2060
+ Down: "down",
2061
+ Left: "left",
2062
+ Right: "right"
2063
+ }, (Hi ||= {}).Aggregate = {
2064
+ Count: "count",
2065
+ NumericalCount: "numericalCount",
2066
+ Sum: "sum",
2067
+ Average: "average",
2068
+ StdDev: "stdDev",
2069
+ PopulationStdDev: "stdDevP",
2070
+ Variance: "var",
2071
+ PopulationVariance: "varP",
2072
+ Min: "min",
2073
+ Max: "max"
2074
+ }, (function(e) {
2075
+ let t = e.Code = {
2076
+ Parse: 0,
2077
+ Null: 1,
2078
+ Div0: 2,
2079
+ Value: 3,
2080
+ Ref: 4,
2081
+ Name: 5,
2082
+ Num: 6,
2083
+ NA: 7,
2084
+ GettingData: 8,
2085
+ Spill: 9,
2086
+ Connect: 10,
2087
+ Blocked: 11,
2088
+ Unknown: 12,
2089
+ Field: 13,
2090
+ Calc: 14,
2091
+ Busy: 16,
2092
+ Python: 19,
2093
+ Timeout: 20
2094
+ }, r = e.Label = {
2095
+ Parse: "#PARSE!",
2096
+ Null: "#NULL!",
2097
+ Div0: "#DIV/0!",
2098
+ Value: "#VALUE!",
2099
+ Ref: "#REF!",
2100
+ Name: "#NAME?",
2101
+ Num: "#NUM!",
2102
+ NA: "#N/A",
2103
+ GettingData: "#GETTING_DATA",
2104
+ Spill: "#SPILL!",
2105
+ Connect: "#CONNECT!",
2106
+ Blocked: "#BLOCKED!",
2107
+ Unknown: "#UNKNOWN!",
2108
+ Field: "#FIELD!",
2109
+ Calc: "#CALC!",
2110
+ Busy: "#BUSY!",
2111
+ Python: "#PYTHON!",
2112
+ Timeout: "#TIMEOUT!"
2113
+ };
2114
+ class n extends Error {
2115
+ constructor(R, F, de, we) {
2116
+ super(de, we), this._label = F, this._code = R, this.details = we;
2117
+ }
2118
+ static {
2119
+ this.code = T.Code.Unknown;
2120
+ }
2121
+ get isFormulaError() {
2122
+ return !0;
2123
+ }
2124
+ getLabel() {
2125
+ return this._label;
2126
+ }
2127
+ getCode() {
2128
+ return this._code;
2129
+ }
2130
+ equals(R) {
2131
+ return !!R && (this._code === R._code || this._code === R.code);
2132
+ }
2133
+ get [Symbol.toStringTag]() {
2134
+ return "[FormulaError]";
2135
+ }
2136
+ toString() {
2137
+ return this._label;
2138
+ }
2139
+ }
2140
+ e.Known = n;
2141
+ class i extends n {
2142
+ constructor(R, F) {
2143
+ super(t.Parse, r.Parse, R, F);
2144
+ }
2145
+ static {
2146
+ this.code = T.Code.Parse;
2147
+ }
2148
+ getDetails() {
2149
+ let R = this.details;
2150
+ return {
2151
+ line: R?.line ?? 1,
2152
+ column: R?.column ?? 1,
2153
+ offset: R?.offset ?? 0,
2154
+ length: R?.length ?? 0
2155
+ };
2156
+ }
2157
+ }
2158
+ e.Parse = i;
2159
+ class a extends n {
2160
+ constructor(R, F) {
2161
+ super(t.Null, r.Null, R, F);
2162
+ }
2163
+ static {
2164
+ this.code = T.Code.Null;
2165
+ }
2166
+ }
2167
+ e.Null = a;
2168
+ class l extends n {
2169
+ constructor(R, F) {
2170
+ super(t.Div0, r.Div0, R, F);
2171
+ }
2172
+ static {
2173
+ this.code = T.Code.Div0;
2174
+ }
2175
+ }
2176
+ e.Div0 = l;
2177
+ class s extends n {
2178
+ constructor(R, F) {
2179
+ super(t.Value, r.Value, R, F);
2180
+ }
2181
+ static {
2182
+ this.code = T.Code.Value;
2183
+ }
2184
+ }
2185
+ e.Value = s;
2186
+ class c extends n {
2187
+ constructor(R, F) {
2188
+ super(t.Ref, r.Ref, R, F);
2189
+ }
2190
+ static {
2191
+ this.code = T.Code.Ref;
2192
+ }
2193
+ }
2194
+ e.Ref = c;
2195
+ class d extends n {
2196
+ constructor(R, F) {
2197
+ super(t.Name, r.Name, R, F);
2198
+ }
2199
+ static {
2200
+ this.code = T.Code.Name;
2201
+ }
2202
+ }
2203
+ e.Name = d;
2204
+ class m extends n {
2205
+ constructor(R, F) {
2206
+ super(t.Num, r.Num, R, F);
2207
+ }
2208
+ static {
2209
+ this.code = T.Code.Num;
2210
+ }
2211
+ }
2212
+ e.Num = m;
2213
+ class o extends n {
2214
+ constructor(R, F) {
2215
+ super(t.NA, r.NA, R, F);
2216
+ }
2217
+ static {
2218
+ this.code = T.Code.NA;
2219
+ }
2220
+ }
2221
+ e.NA = o;
2222
+ class f extends n {
2223
+ constructor(R, F) {
2224
+ super(t.GettingData, r.GettingData, R, F);
2225
+ }
2226
+ static {
2227
+ this.code = T.Code.GettingData;
2228
+ }
2229
+ }
2230
+ e.GettingData = f;
2231
+ class b extends n {
2232
+ constructor(R, F) {
2233
+ super(t.Spill, r.Spill, R, F);
2234
+ }
2235
+ static {
2236
+ this.code = T.Code.Spill;
2237
+ }
2238
+ }
2239
+ e.Spill = b;
2240
+ class S extends n {
2241
+ constructor(R, F) {
2242
+ super(t.Connect, r.Connect, R, F);
2243
+ }
2244
+ static {
2245
+ this.code = T.Code.Connect;
2246
+ }
2247
+ }
2248
+ e.Connect = S;
2249
+ class A extends n {
2250
+ constructor(R, F) {
2251
+ super(t.Blocked, r.Blocked, R, F);
2252
+ }
2253
+ static {
2254
+ this.code = T.Code.Blocked;
2255
+ }
2256
+ }
2257
+ e.Blocked = A;
2258
+ class k extends n {
2259
+ constructor(R, F) {
2260
+ super(t.Unknown, r.Unknown, R, F);
2261
+ }
2262
+ static {
2263
+ this.code = T.Code.Unknown;
2264
+ }
2265
+ }
2266
+ e.Unknown = k;
2267
+ class h extends n {
2268
+ constructor(R, F) {
2269
+ super(t.Field, r.Field, R, F);
2270
+ }
2271
+ static {
2272
+ this.code = T.Code.Field;
2273
+ }
2274
+ }
2275
+ e.Field = h;
2276
+ class y extends n {
2277
+ constructor(R, F) {
2278
+ super(t.Calc, r.Calc, R, F);
2279
+ }
2280
+ static {
2281
+ this.code = T.Code.Calc;
2282
+ }
2283
+ }
2284
+ e.Calc = y;
2285
+ class w extends n {
2286
+ constructor(R, F) {
2287
+ super(t.Busy, r.Busy, R, F);
2288
+ }
2289
+ static {
2290
+ this.code = T.Code.Busy;
2291
+ }
2292
+ }
2293
+ e.Busy = w;
2294
+ class D extends n {
2295
+ constructor(R, F) {
2296
+ super(t.Python, r.Python, R, F);
2297
+ }
2298
+ static {
2299
+ this.code = T.Code.Python;
2300
+ }
2301
+ }
2302
+ e.Python = D;
2303
+ class K extends n {
2304
+ constructor(R, F) {
2305
+ super(t.Timeout, r.Timeout, R, F);
2306
+ }
2307
+ static {
2308
+ this.code = T.Code.Timeout;
2309
+ }
2310
+ }
2311
+ e.Timeout = K;
2312
+ })(T ||= {});
2313
+ var ee = {};
2314
+ ee[T.Code.Parse] = T.Parse, ee[T.Code.Null] = T.Null, ee[T.Code.Div0] = T.Div0, ee[T.Code.Value] = T.Value, ee[T.Code.Ref] = T.Ref, ee[T.Code.Name] = T.Name, ee[T.Code.Num] = T.Num, ee[T.Code.NA] = T.NA, ee[T.Code.GettingData] = T.GettingData, ee[T.Code.Spill] = T.Spill, ee[T.Code.Connect] = T.Connect, ee[T.Code.Blocked] = T.Blocked, ee[T.Code.Unknown] = T.Unknown, ee[T.Code.Field] = T.Field, ee[T.Code.Calc] = T.Calc, ee[T.Code.Busy] = T.Busy, ee[T.Code.Python] = T.Python, ee[T.Code.Timeout] = T.Timeout;
2315
+ var Xr = /* @__PURE__ */ new Map(), Hr = /* @__PURE__ */ new Map(), Wr = /* @__PURE__ */ new Map(), Jr = /* @__PURE__ */ new Map(), Jt = Object.keys(ee);
2316
+ for (let e = 0; e < Jt.length; e++) {
2317
+ let t = ee[Jt[e]], r = new t();
2318
+ Wr.set(r.getLabel(), t), Jr.set(r.getCode(), t), Xr.set(r.getLabel(), r), Hr.set(r.getCode(), r);
2319
+ }
2320
+ (function(e) {
2321
+ let t = e.getBuiltInByCode = (r) => Hr.get(r);
2322
+ e.BuiltIn = {
2323
+ Parse: t(T.Code.Parse),
2324
+ Null: t(T.Code.Null),
2325
+ Div0: t(T.Code.Div0),
2326
+ Value: t(T.Code.Value),
2327
+ Ref: t(T.Code.Ref),
2328
+ Name: t(T.Code.Name),
2329
+ Num: t(T.Code.Num),
2330
+ NA: t(T.Code.NA),
2331
+ GettingData: t(T.Code.GettingData),
2332
+ Spill: t(T.Code.Spill),
2333
+ Connect: t(T.Code.Connect),
2334
+ Blocked: t(T.Code.Blocked),
2335
+ Unknown: t(T.Code.Unknown),
2336
+ Field: t(T.Code.Field),
2337
+ Calc: t(T.Code.Calc),
2338
+ Busy: t(T.Code.Busy),
2339
+ Python: t(T.Code.Python),
2340
+ Timeout: t(T.Code.Timeout)
2341
+ }, e.newTypedError = (r, n, i) => {
2342
+ let a;
2343
+ return a = typeof r == "string" ? Wr.get(r) : Jr.get(r), a ||= T.Unknown, new a(n, i);
2344
+ }, e.getBuiltInByLabel = (r) => Xr.get(r), e.isError = function(r, n) {
2345
+ return !!r && r.isFormulaError === !0 && (n === void 0 || r.getCode() === n);
2346
+ };
2347
+ })(T ||= {});
2348
+ var Wi = class {
2349
+ createRange(e, t, r) {
2350
+ throw le("createRange");
2351
+ }
2352
+ flattenAreas(e) {
2353
+ throw le("flattenAreas");
2354
+ }
2355
+ getReference(e, t) {
2356
+ throw le("getReference");
2357
+ }
2358
+ getResizedReference(e, t, r) {
2359
+ throw le("getResizedReference");
2360
+ }
2361
+ getNumberFormat(e, t) {
2362
+ throw le("getNumberFormat");
2363
+ }
2364
+ fromSerialDate(e, t) {
2365
+ throw le("fromSerialDate");
2366
+ }
2367
+ toSerialDate(e, t) {
2368
+ throw le("toSerialDate");
2369
+ }
2370
+ getDateParts(e, t) {
2371
+ throw le("getDateParts");
2372
+ }
2373
+ getSerialDate(e, t, r, n, i, a, l) {
2374
+ throw le("getSerialDate");
2375
+ }
2376
+ getNow() {
2377
+ throw le("getNow");
2378
+ }
2379
+ getRandom() {
2380
+ return Math.random();
2381
+ }
2382
+ getValueAt(e, t, r, n) {
2383
+ return null;
2384
+ }
2385
+ getEntireCoords() {
2386
+ return qr;
2387
+ }
2388
+ isValidDate(e, t) {
2389
+ return e instanceof Date || Object.prototype.toString.call(e) === "[object Date]" ? !isNaN(e.getTime()) : !t && typeof e == "number" && !(e < 0 || e > qi);
2390
+ }
2391
+ getRow() {
2392
+ return 0;
2393
+ }
2394
+ getColumn() {
2395
+ return 0;
2396
+ }
2397
+ isImplicitIntersect() {
2398
+ return !1;
2399
+ }
2400
+ getFormulaAt(e, t, r) {
2401
+ return null;
2402
+ }
2403
+ getSpillAt(e, t, r) {
2404
+ return null;
2405
+ }
2406
+ getSheetIndex(e) {
2407
+ return -1;
2408
+ }
2409
+ getSheetCount() {
2410
+ return 1;
2411
+ }
2412
+ markVolatile() {}
2413
+ defer(e, t) {}
2414
+ formatResults(e) {}
2415
+ filterHidden(e, t) {
2416
+ return e;
2417
+ }
2418
+ filterTotals(e) {
2419
+ return e;
2420
+ }
2421
+ getFunction(e) {
2422
+ return null;
2423
+ }
2424
+ getAddress(e, t) {
2425
+ throw le("getAddress");
2426
+ }
2427
+ parseAsSerialDate(e, t) {
2428
+ throw le("parseAsSerialDate");
2429
+ }
2430
+ parseAsDate(e, t) {
2431
+ throw le("parseAsDate");
2432
+ }
2433
+ parseAsNumber(e, t) {
2434
+ throw le("parseAsNumber");
2435
+ }
2436
+ createCriteria(e, t) {
2437
+ throw le("createCriteria");
2438
+ }
2439
+ createGrouping(e, t) {
2440
+ throw le("createGrouping");
2441
+ }
2442
+ parseAsLiteral(e) {
2443
+ let t = e.toUpperCase();
2444
+ return t === "TRUE" || t !== "FALSE" && T.getBuiltInByLabel(t);
2445
+ }
2446
+ toText(e) {
2447
+ return typeof e == "string" ? e : e == null ? "" : typeof e == "boolean" ? e ? "TRUE" : "FALSE" : e?.isFormulaError ? e.getLabel() : String(e);
2448
+ }
2449
+ compare(e, t, r) {
2450
+ if (e === t) return 0;
2451
+ let n = Yt(e), i = Yt(t);
2452
+ return n === i ? e < t ? -1 : +(e > t) : n < i ? -1 : 1;
2453
+ }
2454
+ getRuntime() {
2455
+ return Yi;
2456
+ }
2457
+ getArgs() {
2458
+ throw new Je(Yr);
2459
+ }
2460
+ createRichData(e, t) {
2461
+ throw new Je(Ji);
2462
+ }
2463
+ }, Yt = (e) => {
2464
+ if (e == null) return 0;
2465
+ switch (typeof e) {
2466
+ case "number": return 1;
2467
+ case "string": return 2;
2468
+ case "boolean": return 3;
2469
+ default: return 4;
2470
+ }
2471
+ }, le = (e) => new Je(\`FormulaContext.\${e}() is only valid while a function body is running. A deferred executor reads its workbook through ctx.getFormulaContext().\`), Yr = "FormulaContext.getArgs() is only valid while a function body is running", Ji = "FormulaContext.createRichData() needs a workbook being calculated", Je = class extends Error {
2472
+ constructor(e = "Not implemented in StubbedFormulaContext") {
2473
+ super(e), this.name = "NotImplementedError";
2474
+ }
2475
+ }, qr = Object.freeze({
2476
+ colStart: 0,
2477
+ rowStart: 0,
2478
+ colEnd: 2 ** 14 - 1,
2479
+ rowEnd: 2 ** 20 - 1
2480
+ }), Yi = {
2481
+ isDate1904: () => !1,
2482
+ getLocale: () => qt.tag,
2483
+ getLocaleProfile: () => qt,
2484
+ isR1C1: () => !1,
2485
+ getNow: () => 0,
2486
+ getRandom: () => Math.random(),
2487
+ getLocation: () => "unknown",
2488
+ getVersion: () => "1.0.0",
2489
+ getOS: () => "unknown",
2490
+ getUser: () => "unidentified",
2491
+ getDescription: () => "Stubbed Formula Context"
2492
+ }, qi = 2958465, ke = new Wi(), Zi = class {
2493
+ constructor() {
2494
+ this._scope = ke, this._argsFn = null;
2495
+ }
2496
+ _setScope(e) {
2497
+ this._scope = e ?? ke;
2498
+ }
2499
+ _getScope() {
2500
+ return this._scope;
2501
+ }
2502
+ _setArgsProvider(e) {
2503
+ this._argsFn = e;
2504
+ }
2505
+ getNumberFormat(e, t) {
2506
+ return this._getScope().getNumberFormat(e, t);
2507
+ }
2508
+ getEntireCoords() {
2509
+ return this._getScope().getEntireCoords() ?? qr;
2510
+ }
2511
+ parseAsSerialDate(e, t) {
2512
+ return this._getScope().parseAsSerialDate(e, t);
2513
+ }
2514
+ parseAsDate(e, t) {
2515
+ return this._getScope().parseAsDate(e, t);
2516
+ }
2517
+ parseAsNumber(e, t) {
2518
+ return this._getScope().parseAsNumber(e, t);
2519
+ }
2520
+ createCriteria(e, t) {
2521
+ return this._getScope().createCriteria(e, t);
2522
+ }
2523
+ createGrouping(e, t) {
2524
+ return this._getScope().createGrouping(e, t);
2525
+ }
2526
+ parseAsLiteral(e) {
2527
+ let t = this._getScope();
2528
+ return t.parseAsLiteral ? t.parseAsLiteral(e) : ke.parseAsLiteral(e);
2529
+ }
2530
+ toText(e) {
2531
+ return this._getScope().toText(e);
2532
+ }
2533
+ isValidDate(e, t = !1) {
2534
+ return this._getScope().isValidDate(e, t);
2535
+ }
2536
+ fromSerialDate(e, t = !1) {
2537
+ return this._getScope().fromSerialDate(e, t);
2538
+ }
2539
+ toSerialDate(e, t = !1) {
2540
+ return this._getScope().toSerialDate(e, t);
2541
+ }
2542
+ getDateParts(e, t) {
2543
+ return this._getScope().getDateParts(e, t);
2544
+ }
2545
+ getSerialDate(e, t, r, n = 0, i = 0, a = 0, l = 0) {
2546
+ return this._getScope().getSerialDate(e, t, r, n, i, a, l);
2547
+ }
2548
+ getNow() {
2549
+ return this._getScope().getNow();
2550
+ }
2551
+ getRandom() {
2552
+ return this._getScope().getRandom?.() ?? Math.random();
2553
+ }
2554
+ createRange(e, t, r) {
2555
+ return this._getScope().createRange(e, t, r);
2556
+ }
2557
+ flattenAreas(e) {
2558
+ if (!Array.isArray(e)) return e;
2559
+ let t = [];
2560
+ for (let r = 0; r < e.length; r++) {
2561
+ let n = e[r], { rows: i, columns: a } = n.getShape();
2562
+ for (let l = 0; l < i; l++) for (let s = 0; s < a; s++) t.push(n.getValueAt(l, s));
2563
+ }
2564
+ return this.createRange(t.length, 1, (r, n) => t[n.rowIndex]);
2565
+ }
2566
+ getRow() {
2567
+ return this._getScope().getRow?.() ?? 0;
2568
+ }
2569
+ getColumn() {
2570
+ return this._getScope().getColumn?.() ?? 0;
2571
+ }
2572
+ isImplicitIntersect() {
2573
+ return this._getScope().isImplicitIntersect?.() ?? !1;
2574
+ }
2575
+ getReference(e, t) {
2576
+ return this._getScope().getReference(e, t);
2577
+ }
2578
+ getResizedReference(e, t, r) {
2579
+ return this._getScope().getResizedReference(e, t, r);
2580
+ }
2581
+ getValueAt(e, t, r) {
2582
+ return this._getScope().getValueAt(e, t, r);
2583
+ }
2584
+ getFormulaAt(e, t, r) {
2585
+ return this._getScope().getFormulaAt?.(e, t, r) ?? null;
2586
+ }
2587
+ getSpillAt(e, t, r) {
2588
+ return this._getScope().getSpillAt?.(e, t, r) ?? null;
2589
+ }
2590
+ getSheetIndex(e) {
2591
+ return this._getScope().getSheetIndex?.(e) ?? -1;
2592
+ }
2593
+ getSheetCount() {
2594
+ return this._getScope().getSheetCount?.() ?? 1;
2595
+ }
2596
+ markVolatile() {
2597
+ this._getScope().markVolatile?.();
2598
+ }
2599
+ defer(e, t) {
2600
+ return this._getScope().defer?.(e, t);
2601
+ }
2602
+ formatResults(e) {
2603
+ this._getScope().formatResults?.(e);
2604
+ }
2605
+ filterHidden(e, t) {
2606
+ return this._getScope().filterHidden?.(e, t) ?? e;
2607
+ }
2608
+ filterTotals(e) {
2609
+ return this._getScope().filterTotals?.(e) ?? e;
2610
+ }
2611
+ getFunction(e) {
2612
+ return this._getScope().getFunction?.(e) ?? null;
2613
+ }
2614
+ getAddress(e, t) {
2615
+ return this._getScope().getAddress(e, t);
2616
+ }
2617
+ compare(e, t, r) {
2618
+ return this._getScope().compare?.(e, t, r) ?? ke.compare(e, t, r);
2619
+ }
2620
+ getRuntime() {
2621
+ return this._getScope().getRuntime();
2622
+ }
2623
+ createRichData(e, t) {
2624
+ let r = this._getScope();
2625
+ return r.createRichData ? r.createRichData(e, t) : ke.createRichData(e, t);
2626
+ }
2627
+ getArgs() {
2628
+ let e = this._argsFn, t = e ? e() : null;
2629
+ if (!t) throw new Je(Yr);
2630
+ return t;
2631
+ }
2632
+ get [Symbol.toStringTag]() {
2633
+ return "[FormulaContext]";
2634
+ }
2635
+ toString() {
2636
+ return this._getScope()?.toString?.() ?? "{STUB SCOPE}";
2637
+ }
2638
+ }, qt = Object.freeze({
2639
+ tag: "en-US",
2640
+ numberingSystem: "latn",
2641
+ decimal: ".",
2642
+ group: ",",
2643
+ grouping: [3],
2644
+ minusSign: "-",
2645
+ percentSign: "%",
2646
+ permilleSign: "‰",
2647
+ currencyCode: "USD",
2648
+ currencySymbol: "$",
2649
+ currencyDisplay: "symbol",
2650
+ currencyPosition: "before",
2651
+ currencySpacing: "tight",
2652
+ date: Object.freeze({
2653
+ calendar: "gregory",
2654
+ short: "M/d/yy",
2655
+ medium: "MMM d, y",
2656
+ long: "MMMM d, y",
2657
+ timeShort: "h:mm a",
2658
+ timeLong: "h:mm:ss a",
2659
+ am: "AM",
2660
+ pm: "PM",
2661
+ firstDay: 0,
2662
+ weekend: [6, 0],
2663
+ monthsWide: [
2664
+ "January",
2665
+ "February",
2666
+ "March",
2667
+ "April",
2668
+ "May",
2669
+ "June",
2670
+ "July",
2671
+ "August",
2672
+ "September",
2673
+ "October",
2674
+ "November",
2675
+ "December"
2676
+ ],
2677
+ monthsAbbr: [
2678
+ "Jan",
2679
+ "Feb",
2680
+ "Mar",
2681
+ "Apr",
2682
+ "May",
2683
+ "Jun",
2684
+ "Jul",
2685
+ "Aug",
2686
+ "Sep",
2687
+ "Oct",
2688
+ "Nov",
2689
+ "Dec"
2690
+ ],
2691
+ weekdaysWide: [
2692
+ "Sunday",
2693
+ "Monday",
2694
+ "Tuesday",
2695
+ "Wednesday",
2696
+ "Thursday",
2697
+ "Friday",
2698
+ "Saturday"
2699
+ ],
2700
+ weekdaysAbbr: [
2701
+ "Sun",
2702
+ "Mon",
2703
+ "Tue",
2704
+ "Wed",
2705
+ "Thu",
2706
+ "Fri",
2707
+ "Sat"
2708
+ ],
2709
+ hour12: !0
2710
+ }),
2711
+ listSeparator: ",",
2712
+ csvDelimiter: ",",
2713
+ rtl: !1,
2714
+ collator: Object.freeze({
2715
+ sensitivity: "base",
2716
+ numeric: !0
2717
+ })
2718
+ });
2719
+ new Zi();
2720
+ const Qi = [
2721
+ {
2722
+ name: "param",
2723
+ group: "jsdoc",
2724
+ description: "Document a parameter. A string union type becomes a dropdown of allowed options.",
2725
+ snippet: "param \${1:name} \${2:description}"
2726
+ },
2727
+ {
2728
+ name: "returns",
2729
+ aliases: ["return"],
2730
+ group: "jsdoc",
2731
+ description: "Describe the return value."
2732
+ },
2733
+ {
2734
+ name: "category",
2735
+ group: "sheetxl",
2736
+ description: "Group the function under a category in the function list.",
2737
+ snippet: "category \${1:name}"
2738
+ },
2739
+ {
2740
+ name: "name",
2741
+ group: "sheetxl",
2742
+ description: "A name an identifier cannot spell: the name formulas call a function by (MY.FUNC), or an enum member's label.",
2743
+ snippet: "name \${1:NAME}"
2744
+ },
2745
+ {
2746
+ name: "description",
2747
+ group: "sheetxl",
2748
+ description: "A longer description of the function."
2749
+ },
2750
+ {
2751
+ name: "deprecated",
2752
+ group: "sheetxl",
2753
+ standalone: !0,
2754
+ description: "Mark the function as deprecated (optionally with a reason)."
2755
+ },
2756
+ {
2757
+ name: "hidden",
2758
+ group: "sheetxl",
2759
+ standalone: !0,
2760
+ description: "Hide the function from the function list."
2761
+ },
2762
+ {
2763
+ name: "returnkind",
2764
+ group: "sheetxl",
2765
+ description: "Declare the value kind of the return (a ValueKind word, e.g. \`number\`, \`array\`, \`reference\`) where the type spelling cannot say it (a union return collapses to any).",
2766
+ snippet: "returnKind \${1:number}"
2767
+ },
2768
+ {
2769
+ name: "example",
2770
+ group: "jsdoc",
2771
+ description: "Provide a usage example."
2772
+ },
2773
+ {
2774
+ name: "see",
2775
+ group: "jsdoc",
2776
+ description: "Reference a related function or link."
2777
+ }
2778
+ ], ea = (() => {
2779
+ const e = /* @__PURE__ */ new Map();
2780
+ for (const t of Qi) if (e.set(t.name, t), t.aliases) for (const r of t.aliases) e.set(r, t);
2781
+ return e;
2782
+ })();
2783
+ function ta(e) {
2784
+ if (!e) return;
2785
+ const t = (e.startsWith("@") ? e.slice(1) : e).toLowerCase();
2786
+ return ea.get(t);
2787
+ }
2788
+ function ra(e) {
2789
+ return ta(e)?.standalone === !0;
2790
+ }
2791
+ const ht = /* @__PURE__ */ new Map([["IReferenceRange", "p"], ["IRange", "r"]]), lt = new Set(Object.values(Wt).filter((e) => e !== Wt.Omitted)), bt = /* @__PURE__ */ new Map([
2792
+ ["IWorkbook", "workbook"],
2793
+ ["IWorksheet", "sheet"],
2794
+ ["ICellRanges", "ranges"],
2795
+ ["ICellRange", "range"]
2796
+ ]), na = Array.from(bt.keys()), vt = (e, t) => {
2797
+ Array.from(t.keys()).forEach((r) => {
2798
+ const n = t.get(r);
2799
+ t.set(\`\${e}.\${r}\`, n);
2800
+ });
2801
+ }, ia = /* @__PURE__ */ new Map([
2802
+ ["Scalar", "*"],
2803
+ ["Lambda", "l"],
2804
+ ["FormulaError.Known", me.Error],
2805
+ ["Date", Ht.Date],
2806
+ ["IRichData", Ht.RichData]
2807
+ ]), Zr = /* @__PURE__ */ new Map([["Repeating", "repeating"]]), aa = /* @__PURE__ */ new Set(["Flatten", "SheetXL.Flatten"]), Qr = /* @__PURE__ */ new Set(["AcceptError"]), en = /* @__PURE__ */ new Set(["Omittable"]), tn = /* @__PURE__ */ new Set(["NoLift"]), rn = /* @__PURE__ */ new Set(["NoFilter"]), nn = /* @__PURE__ */ new Set(["Lazy"]), gt = /* @__PURE__ */ new Set(["ReportType"]), Zt = 255, oa = /^[a-zA-Z_-￿][a-zA-Z0-9_.-￿]*$/, la = /^([a-z]{1,3})([0-9]+)$/i, sa = /^r[0-9]*c[0-9]*$/i, ca = (e) => {
2808
+ if (sa.test(e)) return !0;
2809
+ const t = la.exec(e);
2810
+ if (!t) return !1;
2811
+ let r = 0;
2812
+ for (const i of t[1].toUpperCase()) r = r * 26 + (i.charCodeAt(0) - 64);
2813
+ const n = Number(t[2]);
2814
+ return r <= 16384 && n >= 1 && n <= 1048576;
2815
+ }, se = "SheetXL", _e = (e) => {
2816
+ const t = e.typeName.getText();
2817
+ return t.startsWith(\`\${se}.\`) ? t.slice(8) : t;
2818
+ };
2819
+ vt(se, ht);
2820
+ vt(se, bt);
2821
+ vt(se, Zr);
2822
+ Qr.add(se + ".AcceptError");
2823
+ en.add(\`\${se}.Omittable\`);
2824
+ tn.add(\`\${se}.NoLift\`);
2825
+ rn.add(\`\${se}.NoFilter\`);
2826
+ nn.add(\`\${se}.Lazy\`);
2827
+ gt.add(\`\${se}.ReportType\`);
2828
+ const ua = /* @__PURE__ */ new Map([["Volatile", () => ({ volatile: !0 })], [\`\${se}.Volatile\`, () => ({ volatile: !0 })]]), Qt = "__scriptContext__", er = "script", da = /* @__PURE__ */ new Set([
2829
+ "IScript.ScriptContext",
2830
+ \`\${se}.IScript.ScriptContext\`,
2831
+ "ScriptContext"
2832
+ ]), tr = (e, t) => {
2833
+ const r = t.literal;
2834
+ if (r === void 0) return;
2835
+ const n = e.SyntaxKind;
2836
+ switch (r.kind) {
2837
+ case n.StringLiteral: return r.text;
2838
+ case n.NumericLiteral: return parseFloat(r.text);
2839
+ case n.TrueKeyword: return !0;
2840
+ case n.FalseKeyword: return !1;
2841
+ case n.NullKeyword: return null;
2842
+ case n.PrefixUnaryExpression: return r.operator === n.MinusToken && r.operand?.kind === n.NumericLiteral ? -parseFloat(r.operand.text) : void 0;
2843
+ default: return;
2844
+ }
2845
+ }, Le = (e) => {
2846
+ if (!e || e.length === 0) return "";
2847
+ let t = "";
2848
+ for (let r = 0; r < e.length; r++) {
2849
+ const n = e[r], i = n.kind;
2850
+ if (i !== "link") {
2851
+ if (i === "linkName") {
2852
+ const a = e[r + 1];
2853
+ if (a?.kind === "linkText" && a.text.trim()) continue;
2854
+ t += n.text;
2855
+ continue;
2856
+ }
2857
+ if (i === "linkText") {
2858
+ t += n.text.trim();
2859
+ continue;
2860
+ }
2861
+ t += n.text;
2862
+ }
2863
+ }
2864
+ return t.replace(/\\r\\n?/g, \`
2865
+ \`).split(/\\n[^\\S\\n]*\\n\\s*/).map((r) => r.split(\`
2866
+ \`).map((n) => n.trim()).filter(Boolean).join(" ")).filter(Boolean).join(\`
2867
+ \`).trim();
2868
+ };
2869
+ function fa(e, t, r, n) {
2870
+ const i = n?.builtInNames?.length ? new Set(n.builtInNames.map((u) => u.toUpperCase())) : null, a = [], l = /* @__PURE__ */ new Map(), s = [];
2871
+ let c = null;
2872
+ const d = (u) => {
2873
+ if (!u || typeof u.getStart != "function") return {
2874
+ start: 0,
2875
+ length: 0
2876
+ };
2877
+ try {
2878
+ return {
2879
+ start: u.getStart(),
2880
+ length: u.getWidth()
2881
+ };
2882
+ } catch {
2883
+ return {
2884
+ start: 0,
2885
+ length: 0
2886
+ };
2887
+ }
2888
+ }, m = (u, p, v, _) => {
2889
+ const { start: C, length: M } = d(u);
2890
+ s.push({
2891
+ start: C,
2892
+ length: M,
2893
+ severity: v,
2894
+ code: p,
2895
+ message: _
2896
+ });
2897
+ }, o = (u, p, v) => {
2898
+ m(u, p, "error", v);
2899
+ }, f = (u) => u?.parent?.name?.escapedText;
2900
+ let b = null;
2901
+ const S = (u, p, v, _, C = !1, M = !1, z = !1) => {
2902
+ const U = { count: 0 }, $ = te(u, p, v, _, U, C, M, z);
2903
+ U.count >= 2 && (p.range || (p.range = "m", U.count -= 2), !_ && U.count >= 1 && (U.count -= 1, U.count > 0 && o(u, E.ArrayDepth, \`Arrays of more than 2 dimensions are not supported: '\${f(u)}'.\`))), U.count > 0 && (p.arrayDepth = U.count);
2904
+ const B = p.enum;
2905
+ return B && (U.count > (z ? 1 : 0) || p.range) && !K.has(p) && (p.valueOrRange || (o(u, E.EnumPosition, \`A list cannot hold the enum '\${B.id}': '\${p.name ?? f(u)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: \${B.id}[]'), or type the list by its scalar ('\${B.type}').\`), delete p.enum)), $;
2906
+ }, A = (u, p, v, _, C) => {
2907
+ if (p !== "Lambda" && p !== \`\${se}.Lambda\`) return !1;
2908
+ const M = u.typeArguments;
2909
+ let z = "*";
2910
+ if (M && M.length === 2) if (C && M[0].kind === e.SyntaxKind.TupleType && (v.lambdaArity = M[0].elements.length), M[1].kind === e.SyntaxKind.AnyKeyword) z = "raw";
2911
+ else {
2912
+ const U = {};
2913
+ te(M[1], U, _, !1, { count: 0 }), z = U.scalar ?? "*";
2914
+ }
2915
+ else if (M && M.length === 1 && M[0].kind !== e.SyntaxKind.TupleType && M[0].kind !== e.SyntaxKind.ArrayType) if (C && (v.lambdaArity = 2), M[0].kind === e.SyntaxKind.AnyKeyword) z = "raw";
2916
+ else {
2917
+ const U = {};
2918
+ te(M[0], U, _, !1, { count: 0 }), z = U.scalar ?? "*";
2919
+ }
2920
+ return v.lambda = z, !0;
2921
+ }, k = (u, p, v, _) => {
2922
+ if (!_) {
2923
+ o(u, E.FunctionReturn, \`Function type is not a valid return type: '\${f(u)}'. Declare a 'Lambda' return instead.\`);
2924
+ return;
2925
+ }
2926
+ const C = u.type, M = {};
2927
+ let z = "*";
2928
+ C && (C.kind === e.SyntaxKind.AnyKeyword ? z = "raw" : (te(C, M, v, !1, { count: 0 }), z = M.scalar ?? "*"));
2929
+ const U = u.parameters;
2930
+ U && !U.some(($) => $.dotDotDotToken) && (p.lambdaArity = U.length), p.lambda = z;
2931
+ }, h = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), D = /* @__PURE__ */ new Set(), K = /* @__PURE__ */ new WeakSet(), L = (u) => u !== void 0 && u.getSourceFile() === t, R = (u, p = !1) => {
2932
+ return u.getJsDocTags(r).find((_) => _.name === "name")?.text?.map((_) => _.text).join("").trim() || (p ? lr.camelToPrettyCase(u.name) : u.name);
2933
+ }, F = (u) => {
2934
+ const p = u.getJsDocTags(r).find((v) => v.name === "deprecated");
2935
+ if (p) return p.text?.map((v) => v.text).join("").trim() || !0;
2936
+ }, de = (u, p) => {
2937
+ const v = e.isTypeReferenceNode(u) ? u.typeName : void 0, _ = v ? r.getSymbolAtLocation(v) : void 0, C = _?.declarations?.length ? _ : void 0;
2938
+ if (v) {
2939
+ if (C && C.flags & e.SymbolFlags.Alias) {
2940
+ o(u, E.EnumNotLocal, \`'\${v.getText()}' is imported, so its declaration cannot be read: '\${p}'. An enum must be declared in the module that uses it.\`);
2941
+ return;
2942
+ }
2943
+ if (!C || !(C.flags & e.SymbolFlags.Type)) {
2944
+ const x = v.getText();
2945
+ if (!(C ? (C.flags & e.SymbolFlags.Variable) !== 0 : t.statements.some((I) => e.isVariableStatement(I) && I.declarationList.declarations.some((V) => e.isIdentifier(V.name) && V.name.text === x)))) return null;
2946
+ o(u, E.EnumMissingAlias, \`'\${x}' is a value, not a type: '\${p}'. Pair the object with a same-name type — 'type \${x} = typeof \${x}[keyof typeof \${x}];' — or declare it as 'enum \${x} { … }'.\`);
2947
+ return;
2948
+ }
2949
+ const g = h.get(C);
2950
+ if (g !== void 0) return g;
2951
+ if (D.has(C)) return;
2952
+ }
2953
+ const M = [];
2954
+ let z = !1;
2955
+ if (C && C.flags & e.SymbolFlags.Enum) {
2956
+ if (!C.declarations?.some(L)) {
2957
+ o(u, E.EnumNotLocal, \`'\${C.name}' is not declared in this module: '\${p}'. An enum must be declared in the module that uses it.\`);
2958
+ return;
2959
+ }
2960
+ z = !0;
2961
+ let g = !1;
2962
+ if (C.exports?.forEach((x) => {
2963
+ const I = x.valueDeclaration;
2964
+ if (!I || !e.isEnumMember(I)) return;
2965
+ const V = r.getConstantValue(I);
2966
+ if (V === void 0) {
2967
+ o(I, E.EnumMemberNotConstant, \`'\${C.name}.\${x.name}' is not a constant number or string. A formula passes the VALUE, so every member needs one that can be read at compile time.\`), g = !0;
2968
+ return;
2969
+ }
2970
+ M.push([
2971
+ R(x, !0),
2972
+ V,
2973
+ I,
2974
+ Le(x.getDocumentationComment(r)),
2975
+ F(x)
2976
+ ]);
2977
+ }), g) {
2978
+ D.add(C);
2979
+ return;
2980
+ }
2981
+ } else {
2982
+ const g = r.getTypeFromTypeNode(u), x = e.TypeFlags.Null | e.TypeFlags.Undefined | e.TypeFlags.Void, I = (g.isUnion() ? g.types : [g]).filter((P) => !(P.flags & x)), V = [];
2983
+ for (const P of I) {
2984
+ if (!(P.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) return C && h.set(C, null), null;
2985
+ V.push(P.value);
2986
+ }
2987
+ if (V.length === 0) return null;
2988
+ const re = C?.declarations?.find((P) => e.isTypeAliasDeclaration(P)), Y = e.isUnionTypeNode(u) ? u : re?.type;
2989
+ if (Y && e.isUnionTypeNode(Y)) {
2990
+ const P = Y.types.map((N) => {
2991
+ const ne = r.getTypeFromTypeNode(N);
2992
+ return ne.isLiteral() ? ne.value : void 0;
2993
+ }), O = (N) => {
2994
+ const ne = P.indexOf(N);
2995
+ return ne < 0 ? P.length : ne;
2996
+ };
2997
+ V.sort((N, ne) => O(N) - O(ne));
2998
+ }
2999
+ const Q = C && C.flags & e.SymbolFlags.Variable ? C.valueDeclaration : void 0, he = new Set(V);
3000
+ if (C && Q && L(Q)) for (const P of r.getTypeOfSymbolAtLocation(C, Q).getProperties()) {
3001
+ const O = P.valueDeclaration, N = r.getTypeOfSymbolAtLocation(P, O ?? Q);
3002
+ if (!(N.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) continue;
3003
+ const ne = N.value;
3004
+ V.includes(ne) && (z = !0, he.delete(ne), M.push([
3005
+ R(P, !0),
3006
+ ne,
3007
+ O,
3008
+ Le(P.getDocumentationComment(r)),
3009
+ F(P)
3010
+ ]));
3011
+ }
3012
+ for (const P of V) he.has(P) && M.push([
3013
+ String(P),
3014
+ P,
3015
+ void 0,
3016
+ null
3017
+ ]);
3018
+ }
3019
+ if (M.length === 0) return null;
3020
+ const U = typeof M[0][1] == "number";
3021
+ if (M.some(([, g]) => typeof g == "number" !== U)) {
3022
+ o(u, E.EnumMixed, \`'\${C?.name ?? u.getText()}' mixes number and string members: '\${p}'. A parameter has one type, so an enum is all numbers or all strings.\`);
3023
+ return;
3024
+ }
3025
+ const $ = C ? R(C) : M.map(([, g]) => String(g)).join("|"), B = C ? void 0 : y.get($);
3026
+ if (B) return B;
3027
+ if (z) {
3028
+ const g = /* @__PURE__ */ new Map();
3029
+ for (const [x, I, V, re] of M) {
3030
+ const Y = V?.name?.getText() ?? x, Q = g.get(I);
3031
+ Q !== void 0 ? m(V ?? u, E.EnumDuplicateValue, "warning", \`'\${$}.\${Y}' has the same value as '\${$}.\${Q}' (\${JSON.stringify(I)}). A formula passes the value, so the two cannot be told apart.\`) : g.set(I, Y), re === "" && m(V ?? u, E.EnumMemberUndocumented, "warning", \`'\${$}.\${Y}' is missing a description. Add a doc comment above the member — it is what the argument dropdown shows.\`);
3032
+ }
3033
+ }
3034
+ const X = {
3035
+ id: $,
3036
+ type: U ? me.Number : me.String,
3037
+ members: M.map(([g, x, , , I]) => I ? [
3038
+ g,
3039
+ x,
3040
+ I
3041
+ ] : [g, x])
3042
+ };
3043
+ C ? h.set(C, X) : y.set($, X);
3044
+ const G = C ? Le(C.getDocumentationComment(r)) : "", j = {};
3045
+ for (const [g, , , x] of M) x && (j[g] = { description: x });
3046
+ if (G || Object.keys(j).length > 0) {
3047
+ const g = {};
3048
+ G && (g.summary = G), Object.keys(j).length > 0 && (g.members = j), w.set(X, g);
3049
+ }
3050
+ return X;
3051
+ }, we = (u, p, v, _) => {
3052
+ const C = (U, $, B) => {
3053
+ const X = { name: U };
3054
+ return S($, X, v, !0), B && (X.optional = !0), _ && !X.acceptError && (X.acceptError = !0), X;
3055
+ };
3056
+ if (u.kind !== e.SyntaxKind.TupleType) return [C(p, u, !1)];
3057
+ const M = u.elements;
3058
+ if (M.length < 2) return o(u, E.RepeatingSlots, \`'\${p}': a repeating group of period \${M.length} must be spelled 'Repeating<T>' without the tuple.\`), null;
3059
+ const z = [];
3060
+ for (let U = 0; U < M.length; U++) {
3061
+ const $ = M[U];
3062
+ if ($.kind !== e.SyntaxKind.NamedTupleMember) return o($, E.RepeatingSlots, \`'\${p}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.\`), null;
3063
+ const B = !!$.questionToken;
3064
+ if (B && U !== M.length - 1) return o($, E.RepeatingOptional, \`'\${p}': only the LAST slot of a repeating group may be optional (slot '\${$.name?.getText?.()}' is not).\`), null;
3065
+ z.push(C($.name?.getText?.() ?? \`\${U}\`, $.type, B));
3066
+ }
3067
+ return z;
3068
+ }, te = (u, p, v, _, C, M = !1, z = !1, U = !1) => {
3069
+ if (!u) {
3070
+ o(u, E.MissingType, \`Type is not defined for '\${p?.name ?? "return"}'.\`);
3071
+ return;
3072
+ }
3073
+ if (u.kind === e.SyntaxKind.ParenthesizedType) return te(u.type, p, v, _, C, M, z, U);
3074
+ if (u.kind === e.SyntaxKind.UnionType) {
3075
+ const $ = (G) => G.kind === e.SyntaxKind.UndefinedKeyword || G.kind === e.SyntaxKind.VoidKeyword || G.kind === e.SyntaxKind.NullKeyword || G.kind === e.SyntaxKind.LiteralType && G.literal?.kind === e.SyntaxKind.NullKeyword, B = u.types.filter((G) => !$(G));
3076
+ if (B.length === 1) return te(B[0], p, v, _, C, M, z, U);
3077
+ const X = de(u, p.name ?? f(u));
3078
+ if (X === void 0) return;
3079
+ if (X !== null) {
3080
+ p.scalar = X.type, _ && (p.enum = X);
3081
+ return;
3082
+ }
3083
+ if (!_) {
3084
+ p.scalar = "*";
3085
+ return;
3086
+ }
3087
+ if (B.length === 2) {
3088
+ const G = (g) => g.kind !== e.SyntaxKind.TypeReference ? !1 : e.isTypeReferenceNode(g) && _e(g) === "Lambda", j = B.findIndex(G);
3089
+ if (j >= 0 && !G(B[1 - j])) {
3090
+ te(B[1 - j], p, v, _, C, M, z, U), A(B[j], _e(B[j]), p, v, _);
3091
+ return;
3092
+ }
3093
+ }
3094
+ if (_ && B.length === 2) {
3095
+ const G = (g) => {
3096
+ if (!(g.kind !== e.SyntaxKind.TypeReference || g.typeArguments?.length)) return ht.get(_e(g));
3097
+ }, j = B.findIndex((g) => G(g) !== void 0);
3098
+ if (j >= 0 && G(B[1 - j]) === void 0) {
3099
+ const g = {}, x = C.count;
3100
+ if (te(B[1 - j], g, v, _, C, M, !1), g.scalar && !g.range && g.lambda == null && C.count === x) {
3101
+ p.range = G(B[j]), p.scalar = g.scalar, p.valueOrRange = !0;
3102
+ const I = g.enum;
3103
+ I && (p.enum = I);
3104
+ return;
3105
+ }
3106
+ }
3107
+ }
3108
+ if (_ && B.length === 2) {
3109
+ const G = (g) => g.kind === e.SyntaxKind.TypeReference && !g.typeArguments?.length && _e(g) === "Scalar", j = B.findIndex(G);
3110
+ if (j >= 0 && !G(B[1 - j])) {
3111
+ const g = de(B[1 - j], p.name ?? f(u));
3112
+ if (g === void 0) return;
3113
+ if (g !== null) {
3114
+ p.scalar = "*", p.enum = g;
3115
+ return;
3116
+ }
3117
+ }
3118
+ }
3119
+ o(u, E.InvalidParamType, \`Union parameter types are not supported: '\${f(u)}'. Use a single type, optionally with '| null' or '| undefined', 'T | Lambda<…>' for a value-or-lambda slot, 'IRange | Scalar' for a value-or-range slot, or 'E | Scalar' for an uncoerced slot whose values an enum documents.\`);
3120
+ return;
3121
+ }
3122
+ if (u.kind === e.SyntaxKind.NumberKeyword) p.scalar = me.Number;
3123
+ else if (u.kind === e.SyntaxKind.StringKeyword) p.scalar = me.String;
3124
+ else if (u.kind === e.SyntaxKind.BooleanKeyword) p.scalar = me.Boolean;
3125
+ else if (u.kind === e.SyntaxKind.UndefinedKeyword || u.kind === e.SyntaxKind.NullKeyword || u.kind === e.SyntaxKind.VoidKeyword) {
3126
+ if (_) {
3127
+ o(u, E.UndefinedInput, \`'undefined' is not a valid type for input: '\${f(u)}'.\`);
3128
+ return;
3129
+ }
3130
+ p.scalar = me.Null;
3131
+ } else if (u.kind === e.SyntaxKind.BigIntKeyword) p.scalar = me.Number;
3132
+ else if (u.kind === e.SyntaxKind.AnyKeyword) _ && (p.range = "*");
3133
+ else if (u.kind === e.SyntaxKind.ArrayType) {
3134
+ const $ = u.elementType;
3135
+ if (!$) {
3136
+ o(u, E.UntypedArray, \`'Array' must be typed: '\${f(u)}'.\`);
3137
+ return;
3138
+ }
3139
+ if (_ && z) {
3140
+ const B = p, X = B.name ?? f(u) ?? "parameter", G = B.acceptError;
3141
+ delete B.acceptError;
3142
+ const j = { name: X };
3143
+ S($, j, v, !0), G && !j.acceptError && (j.acceptError = !0), B.repeating = [j];
3144
+ return;
3145
+ }
3146
+ C.count++, te($, p, v, _, C);
3147
+ } else if (u.kind !== e.SyntaxKind.TupleType) if (u.kind === e.SyntaxKind.TypeReference) {
3148
+ const $ = _e(u);
3149
+ if (Qr.has($)) {
3150
+ const g = f(u);
3151
+ if (!_) {
3152
+ o(u, E.InvalidReturnType, \`'\${$}' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3153
+ return;
3154
+ }
3155
+ const x = p;
3156
+ if (x.acceptError) {
3157
+ o(u, E.InvalidParamType, \`'\${g}' declares 'AcceptError' more than once.\`);
3158
+ return;
3159
+ }
3160
+ const I = u.typeArguments;
3161
+ if (!I || I.length !== 1) {
3162
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${g}'.\`);
3163
+ return;
3164
+ }
3165
+ return x.acceptError = !0, te(I[0], p, v, _, C, M, z, U);
3166
+ }
3167
+ if (gt.has($)) {
3168
+ const g = p.name ?? f(u);
3169
+ if (!_) {
3170
+ o(u, E.InvalidReturnType, \`'ReportType' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3171
+ return;
3172
+ }
3173
+ const x = u.typeArguments;
3174
+ if (!x || x.length !== 1) {
3175
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${g}'.\`);
3176
+ return;
3177
+ }
3178
+ return p.reportType = !0, te(x[0], p, v, _, C, M, z, U);
3179
+ }
3180
+ if (tn.has($)) {
3181
+ const g = p.name ?? f(u);
3182
+ if (!_) {
3183
+ o(u, E.InvalidReturnType, \`'NoLift' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3184
+ return;
3185
+ }
3186
+ const x = u.typeArguments;
3187
+ if (!x || x.length !== 1) {
3188
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${g}'.\`);
3189
+ return;
3190
+ }
3191
+ const I = p;
3192
+ I.noLift = !0;
3193
+ const V = C.count;
3194
+ te(x[0], p, v, _, C, M, z, U), (I.range || I.lambda != null || I.repeating || C.count !== V) && o(u, E.InvalidParamType, \`'\${g}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.\`);
3195
+ return;
3196
+ }
3197
+ if (rn.has($)) {
3198
+ const g = p.name ?? f(u);
3199
+ if (!_) {
3200
+ o(u, E.InvalidReturnType, \`'NoFilter' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3201
+ return;
3202
+ }
3203
+ const x = u.typeArguments;
3204
+ if (!x || x.length !== 1) {
3205
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${g}'.\`);
3206
+ return;
3207
+ }
3208
+ const I = p;
3209
+ I.noFilter = !0;
3210
+ const V = C.count;
3211
+ if (te(x[0], p, v, _, C, M, z, U), I.range || I.lambda != null || C.count !== V) {
3212
+ o(u, E.InvalidParamType, \`'\${g}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.\`);
3213
+ return;
3214
+ }
3215
+ const re = I.repeating;
3216
+ if (re) {
3217
+ if (delete I.noFilter, re.length !== 1) {
3218
+ o(u, E.InvalidParamType, \`'\${g}': 'NoFilter' over a repeating group applies to a period-1 group only - write it on the slot that takes the members.\`);
3219
+ return;
3220
+ }
3221
+ re[0].noFilter = !0;
3222
+ } else z && o(u, E.InvalidParamType, \`'\${g}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.\`);
3223
+ return;
3224
+ }
3225
+ if (en.has($)) {
3226
+ const g = p.name ?? f(u);
3227
+ if (!_) {
3228
+ o(u, E.InvalidReturnType, \`'Omittable' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3229
+ return;
3230
+ }
3231
+ const x = u.typeArguments;
3232
+ if (!x || x.length < 1 || x.length > 2) {
3233
+ o(u, E.GenericArity, \`'\${$}' must be typed with 1 or 2 types: '\${g}'.\`);
3234
+ return;
3235
+ }
3236
+ const I = p;
3237
+ if (I.omittable = !0, x.length === 2) {
3238
+ const Y = tr(e, x[1]);
3239
+ if (Y === void 0) {
3240
+ o(u, E.InvalidParamType, \`'\${g}' declares '\${$}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an omitted argument.\`);
3241
+ return;
3242
+ }
3243
+ I.omittedValue = Y;
3244
+ }
3245
+ const V = te(x[0], p, v, _, C, M, z, U), re = I.omittedValue;
3246
+ return I.enum && re !== void 0 && re !== null && !I.enum.members.some(([, Y]) => Y === re) && o(x[1], E.EnumOmittedValue, \`'\${g}': \${JSON.stringify(re)} is not a member of '\${I.enum.id}'. An omitted argument must mean a member (\${I.enum.members.map(([, Y]) => JSON.stringify(Y)).join(", ")}) or null.\`), V;
3247
+ }
3248
+ if (nn.has($)) {
3249
+ const g = p.name ?? f(u);
3250
+ if (!_) {
3251
+ o(u, E.InvalidReturnType, \`'Lazy' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3252
+ return;
3253
+ }
3254
+ const x = p;
3255
+ if (x.lazy) {
3256
+ o(u, E.InvalidParamType, \`'\${g}' declares 'Lazy' more than once.\`);
3257
+ return;
3258
+ }
3259
+ const I = u.typeArguments;
3260
+ if (!I || I.length < 1 || I.length > 2) {
3261
+ o(u, E.GenericArity, \`'\${$}' must be typed with 1 or 2 types: '\${g}'.\`);
3262
+ return;
3263
+ }
3264
+ if (x.lazy = !0, I.length === 2) {
3265
+ const V = tr(e, I[1]);
3266
+ if (V === void 0) {
3267
+ o(u, E.InvalidParamType, \`'\${g}' declares '\${$}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an absent argument.\`);
3268
+ return;
3269
+ }
3270
+ x.optional = !0, x.defaultValue = V;
3271
+ }
3272
+ te(I[0], p, v, _, C, M, z, U), x.enum ? (o(u, E.EnumPosition, \`'\${g}': 'Lazy' cannot hold the enum '\${x.enum.id}'. The argument may never be evaluated, so there is no point at which it could be checked against the members.\`), delete x.enum) : x.lambda != null ? o(u, E.InvalidParamType, \`'\${g}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.\`) : x.repeating && o(u, E.InvalidParamType, \`'\${g}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.\`);
3273
+ return;
3274
+ }
3275
+ if (aa.has($)) {
3276
+ const g = p.name ?? f(u);
3277
+ if (!_) {
3278
+ o(u, E.InvalidReturnType, \`'Flatten' is not a valid return type: '\${g}'. It describes how an ARGUMENT is received.\`);
3279
+ return;
3280
+ }
3281
+ const x = u.typeArguments;
3282
+ if (!x || x.length !== 1) {
3283
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${g}'.\`);
3284
+ return;
3285
+ }
3286
+ return C.count++, te(x[0], p, v, _, C, M);
3287
+ }
3288
+ if (Zr.get($) === "repeating") {
3289
+ const g = p.name ?? f(u);
3290
+ if (!_) {
3291
+ o(u, E.RepeatingPosition, \`'Repeating' is not a valid return type: '\${g}'.\`);
3292
+ return;
3293
+ }
3294
+ if (C.count !== 0) {
3295
+ o(u, E.RepeatingPosition, \`'Repeating' cannot be nested inside another type: '\${g}'.\`);
3296
+ return;
3297
+ }
3298
+ const x = p, I = u.typeArguments;
3299
+ if (!I || I.length < 1 || I.length > 2) {
3300
+ o(u, E.GenericArity, \`'\${$}' must be typed with 1 type, optionally followed by a maximum argument count: '\${g}'.\`);
3301
+ return;
3302
+ }
3303
+ let V;
3304
+ if (I.length === 2) {
3305
+ const Q = I[1], he = Q.kind === e.SyntaxKind.LiteralType ? Q.literal : null, P = he && he.kind === e.SyntaxKind.NumericLiteral ? Number(he.text) : NaN;
3306
+ if (!Number.isInteger(P) || P < 1 || P > Zt) {
3307
+ o(Q, E.RepeatingMax, \`'\${g}': '\${$}'’s maximum must be a whole number between 1 and \${Zt}.\`);
3308
+ return;
3309
+ }
3310
+ V = P, v.maxArguments = P;
3311
+ }
3312
+ if (U) {
3313
+ if (V === void 0) {
3314
+ o(u, E.RepeatingPosition, \`'\${g}' is a rest parameter and a repeating group. A group already repeats — drop the '...', or give the group a maximum ('Repeating<T, 254>') if the ceiling is all you meant.\`);
3315
+ return;
3316
+ }
3317
+ return te(I[0], p, v, _, C, M, z);
3318
+ }
3319
+ const re = x.acceptError;
3320
+ delete x.acceptError;
3321
+ const Y = we(I[0], g ?? "parameter", v, re);
3322
+ Y && (x.repeating = Y);
3323
+ return;
3324
+ }
3325
+ const B = ht.get($);
3326
+ let X = !1;
3327
+ B && (p.range = B, X = !0);
3328
+ const G = ia.get($);
3329
+ if (G && (p.scalar = G), G !== void 0 && (X = !0), A(u, $, p, v, _)) return;
3330
+ if (_) {
3331
+ if ($ === "Volatile" || $ === \`\${se}.Volatile\`) {
3332
+ o(u, E.InvalidParamType, \`'Volatile' is not a valid parameter type: '\${f(u)}'. It describes the function's RESULT, so it belongs on the return type.\`);
3333
+ return;
3334
+ }
3335
+ if (da.has($)) return Qt;
3336
+ const g = bt.get($);
3337
+ if (g) return g;
3338
+ } else if ($ === "Promise") b = u, X = !0;
3339
+ else {
3340
+ const g = ua.get($);
3341
+ g && (Object.assign(p, g()), X = !0);
3342
+ }
3343
+ if (!X) {
3344
+ const g = de(u, p.name ?? f(u));
3345
+ if (g === void 0) return;
3346
+ if (g !== null) {
3347
+ p.scalar = g.type, _ && (p.enum = g);
3348
+ return;
3349
+ }
3350
+ }
3351
+ if (!X) {
3352
+ const g = "number, string, boolean, Scalar, Lambda, Date, FormulaError.Known, IRichData, IRange, IReferenceRange (and arrays of these; optionally wrapped in AcceptError<T>, or grouped with Repeating<T>)", x = "number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Volatile<T> (and arrays of these)";
3353
+ let I;
3354
+ _ ? M ? I = \`'\${$}' is not a valid first parameter: '\${f(u)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: \${na.join(", ")} (macro target); \${g} (calculation input).\` : I = \`'\${$}' is not a valid parameter type: '\${f(u)}'. Allowed: \${g}.\` : I = \`'\${$}' is not a valid return type: '\${f(u)}'. Allowed: \${x}.\`, o(u, _ ? E.InvalidParamType : E.InvalidReturnType, I);
3355
+ return;
3356
+ }
3357
+ const j = u.typeArguments;
3358
+ if (j) {
3359
+ if (j.length !== 1) {
3360
+ o(u, E.GenericArity, \`'\${$}' must be typed with exactly 1 type: '\${f(u)}'.\`);
3361
+ return;
3362
+ }
3363
+ const g = j[0], x = _ && e.isTypeReferenceNode(g) && gt.has(_e(g)), I = p.reportType;
3364
+ x && K.add(p), S(g, p, v, _), x && I === void 0 && delete p.reportType;
3365
+ const V = p.enum;
3366
+ V && !x && (o(j[0], E.EnumPosition, \`'\${$}' cannot hold the enum '\${V.id}': '\${f(u)}'. The members of a range reach the body as they are, so nothing checks them against the enum. Take the enum as a value, or type the range by its scalar ('\${$}<\${V.type}>').\`), delete p.enum);
3367
+ }
3368
+ } else u.kind === e.SyntaxKind.FunctionType && k(u, p, v, _);
3369
+ }, Ze = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Export) !== 0, Ie = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Default) !== 0;
3370
+ try {
3371
+ e.forEachChild(t, (u) => {
3372
+ if (Ze(u) && e.isFunctionDeclaration(u)) {
3373
+ const p = u?.name?.getText();
3374
+ if (!u.body) {
3375
+ o(u, E.NoBody, \`'\${p}': function has no body.\`);
3376
+ return;
3377
+ }
3378
+ if (!p) {
3379
+ o(u, E.Anonymous, "Anonymous exported functions are not allowed.");
3380
+ return;
3381
+ }
3382
+ const v = {}, _ = { parameters: {} };
3383
+ try {
3384
+ v.name = p;
3385
+ const C = r.getSymbolAtLocation(u.name), M = Le(C?.getDocumentationComment(r));
3386
+ M && (_.summary = M);
3387
+ const z = {};
3388
+ b = null, S(u.type, z, v, !1), v.returnType = z;
3389
+ const U = {};
3390
+ Ie(u) && (U.default = !0, c = p), v.parameters = [];
3391
+ const $ = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), X = /* @__PURE__ */ new Set();
3392
+ let G = null, j = null, g = null, x = 0, I = !1, V = 0;
3393
+ for (let P = 0; P < u.parameters.length; P++) {
3394
+ const O = u.parameters[P], N = {};
3395
+ N.name = O.name?.getText();
3396
+ const ne = v.parameters.length === 0;
3397
+ if (n?.lenient && P === 0 && !O.type && U.default) {
3398
+ v.context = er;
3399
+ continue;
3400
+ }
3401
+ const Re = S(O.type, N, v, !0, ne, !O.dotDotDotToken, !!O.dotDotDotToken);
3402
+ if (Re === Qt) {
3403
+ P === 0 && v.context === void 0 && (v.context = er);
3404
+ continue;
3405
+ }
3406
+ if (Re) {
3407
+ if (v.parameters.length !== 0) {
3408
+ o(O, E.ContextNotFirst, \`'\${v.name}' contexts must be the first parameter: '\${N.name}'.\`);
3409
+ return;
3410
+ }
3411
+ v.context = Re;
3412
+ continue;
3413
+ }
3414
+ if (N.lambda !== void 0) {
3415
+ if (G !== null) {
3416
+ o(O, E.MultipleLambda, \`'\${v.name}' has more than one Lambda parameter ('\${G}' and '\${N.name}'). Only one Lambda parameter is allowed.\`);
3417
+ return;
3418
+ }
3419
+ G = N.name;
3420
+ } else if (G !== null) {
3421
+ o(O, E.LambdaNotLast, \`'\${v.name}' Lambda parameter ('\${G}') must be the last parameter, but '\${N.name}' follows it.\`);
3422
+ return;
3423
+ }
3424
+ const ye = N.optional === !0 || !((O.initializer === void 0 || O.initializer === null) && (O.questionToken === void 0 || O.questionToken === null));
3425
+ let ae;
3426
+ if (ye && (N.optional = !0, O.initializer)) try {
3427
+ if (O.initializer.kind === e.SyntaxKind.StringLiteral) ae = O.initializer.text;
3428
+ else if (O.initializer.kind === e.SyntaxKind.NumericLiteral) ae = parseFloat(O.initializer.text);
3429
+ else if (O.initializer.kind === e.SyntaxKind.TrueKeyword || O.initializer.kind === e.SyntaxKind.FalseKeyword) ae = O.initializer.kind === e.SyntaxKind.TrueKeyword;
3430
+ else if (O.initializer.kind === e.SyntaxKind.NullKeyword) ae = null;
3431
+ else if (e.isPrefixUnaryExpression(O.initializer) && O.initializer.operator === e.SyntaxKind.MinusToken && O.initializer.operand.kind === e.SyntaxKind.NumericLiteral) ae = -parseFloat(O.initializer.operand.text);
3432
+ else if (e.isPropertyAccessExpression(O.initializer) || e.isElementAccessExpression(O.initializer)) {
3433
+ const ue = r.getTypeAtLocation(O.initializer);
3434
+ ue.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral) && (ae = ue.value);
3435
+ }
3436
+ } catch (ue) {
3437
+ console.warn(\`Couldn't extract default value for parameter '\${N.name}'\`, ue);
3438
+ }
3439
+ O.dotDotDotToken && (N.rest = !0);
3440
+ const H = N.repeating;
3441
+ if (H) {
3442
+ if (N.rest) {
3443
+ o(O, E.RepeatingPosition, \`'\${v.name}' parameter '\${N.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.\`);
3444
+ return;
3445
+ }
3446
+ if (ye && H.length === 1) {
3447
+ o(O, E.RepeatingOptional, \`'\${v.name}' parameter '\${N.name}' cannot be an optional repeating group. Use '...\${N.name}: T[]' for zero-or-more, or drop the '?' for one-or-more.\`);
3448
+ return;
3449
+ }
3450
+ if (j !== null) {
3451
+ o(O, E.MultipleRepeating, \`'\${v.name}' has more than one repeating group ('\${j}' and '\${N.name}'). Only one is allowed — two would make the argument count ambiguous.\`);
3452
+ return;
3453
+ }
3454
+ if (g !== null) {
3455
+ o(O, E.RepeatingOptional, \`'\${v.name}' parameter '\${g}' is optional and precedes the repeating group '\${N.name}'. Every parameter outside a group must be required.\`);
3456
+ return;
3457
+ }
3458
+ j = N.name, x = H.length, I = H[H.length - 1].optional === !0;
3459
+ } else if (j !== null && N.rest) {
3460
+ o(O, E.RepeatingOptional, \`'\${v.name}' parameter '\${N.name}' is a rest parameter and follows the repeating group '\${j}'. Two variadic tails would make the argument count ambiguous.\`);
3461
+ return;
3462
+ } else if (j !== null && ye) {
3463
+ if (V >= x - 1) {
3464
+ o(O, E.RepeatingOptional, x === 1 ? \`'\${v.name}' parameter '\${N.name}' is optional and follows the period-1 repeating group '\${j}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.\` : \`'\${v.name}' has \${V + 1} optional parameters after the repeating group '\${j}', which has period \${x}. At most \${x - 1} may be optional, or the argument count no longer decides the parse.\`);
3465
+ return;
3466
+ }
3467
+ if (I) {
3468
+ o(O, E.RepeatingOptional, \`'\${v.name}' parameter '\${N.name}' is optional and follows '\${j}', whose own last slot is already optional. Both omissions reach the same argument count — drop one.\`);
3469
+ return;
3470
+ }
3471
+ V++;
3472
+ }
3473
+ ye && !H && (g = N.name);
3474
+ const W = (N.range ? 2 : 0) + (N.arrayDepth ?? 0), Be = N.range === "r" || N.range === "p" || N.range === "*", Z = N.rest || Be ? 3 : 2;
3475
+ if (W > Z) {
3476
+ o(O, E.ArrayDepth, \`'\${v.name}' parameter '\${N.name}' has an array depth of \${W}; the maximum is \${Z}\${N.rest ? " for a rest parameter" : " (use a rest parameter for one more level, or an IRange)"}.\`);
3477
+ return;
3478
+ }
3479
+ v.parameters.push(N);
3480
+ const ce = { description: "" };
3481
+ _.parameters[N.name] = ce;
3482
+ const Qe = r.getSymbolAtLocation(O.name);
3483
+ ce.description = Le(Qe?.getDocumentationComment(r)), ae !== void 0 && (N.defaultValue = ae);
3484
+ for (const ue of [N, ...N.repeating ?? []]) {
3485
+ const Se = ue.enum ? w.get(ue.enum) : void 0;
3486
+ Se && ((_.enums ??= {})[ue.enum.id] = Se);
3487
+ }
3488
+ if ($.set(N.name, N), B.set(N.name, O), H && H.length > 1) {
3489
+ X.add(N.name);
3490
+ for (const ue of H) {
3491
+ const Se = \`\${N.name}.\${ue.name}\`;
3492
+ _.parameters[Se] = { description: "" }, $.set(Se, ue), B.set(Se, O);
3493
+ }
3494
+ }
3495
+ }
3496
+ const re = v.maxArguments;
3497
+ if (re !== void 0) {
3498
+ const P = v.parameters ?? [];
3499
+ if (!P.some((N) => N.rest === !0 || N.repeating !== void 0)) {
3500
+ o(u, E.RepeatingMax, \`'\${v.name}' declares a maximum of \${re} arguments but takes a fixed \${P.length}. A maximum only means something on a variadic tail.\`);
3501
+ return;
3502
+ }
3503
+ let O = 0;
3504
+ for (const N of P) N.rest === !0 || N.optional === !0 || (O += N.repeating ? N.repeating.length : 1);
3505
+ if (re < O) {
3506
+ o(u, E.RepeatingMax, \`'\${v.name}' declares a maximum of \${re} arguments but requires \${O}.\`);
3507
+ return;
3508
+ }
3509
+ }
3510
+ if (u.jsDoc && u.jsDoc.length > 0) {
3511
+ const P = u.jsDoc, O = P.length;
3512
+ for (let N = 0; N < O; N++) {
3513
+ const ne = P[N]?.tags;
3514
+ if (!ne) continue;
3515
+ const Re = ne.length;
3516
+ for (let ye = 0; ye < Re; ye++) {
3517
+ const ae = ne[ye];
3518
+ let H = ae?.tagName?.text;
3519
+ if (!H) continue;
3520
+ H = H.toLowerCase();
3521
+ let W = ae.comment;
3522
+ const Be = ra(H);
3523
+ if (typeof W != "string" && !Be) {
3524
+ H === "returnkind" && o(ae, E.UnknownReturnKind, \`'@returnKind' needs a value kind. Known: \${[...lt].map((Z) => \`'\${Z}'\`).join(", ")}.\`);
3525
+ continue;
3526
+ }
3527
+ if (typeof W == "string" && (W = W.replace(/\\r\\n?/g, \`
3528
+ \`).trim()), !(!Be && W && (W = W.split(\`
3529
+ \`)[0].trim(), !W || W.length === 0))) {
3530
+ if (W && typeof W == "string") {
3531
+ const Z = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;
3532
+ let ce, Qe = W, ue = [];
3533
+ for (; (ce = Z.exec(W)) !== null;) {
3534
+ const [Se, Ra, sn, Et] = ce, cn = [sn.trim()];
3535
+ Et && cn.push(Et.trim());
3536
+ }
3537
+ W = Qe, ue.length > 0 && H === "see" && (_.links || (_.links = []), _.links.push(...ue));
3538
+ }
3539
+ if (H === "name") {
3540
+ const Z = W;
3541
+ Z !== p && (_.name = Z);
3542
+ } else if (H !== "description") {
3543
+ if (H === "param") {
3544
+ const Z = ae.name?.getText?.() ?? ae.name?.text;
3545
+ if (!$.get(Z)) {
3546
+ o(ae, E.UnknownParam, \`Parameter '\${Z}' not found in function '\${p}'.\`);
3547
+ continue;
3548
+ }
3549
+ const ce = _.parameters?.[Z];
3550
+ ce && !ce.description && typeof W == "string" && W && (ce.description = W);
3551
+ } else if (H === "returns" || H === "return") v.returnType.description = W;
3552
+ else if (H === "returnkind") {
3553
+ const Z = (W ?? "").trim().toLowerCase();
3554
+ lt.has(Z) ? v.returnType.kind = Z : o(ae, E.UnknownReturnKind, \`'@returnKind \${Z}' is not a known value kind. Known: \${[...lt].map((ce) => \`'\${ce}'\`).join(", ")}.\`);
3555
+ } else if (H === "category") _.category = W;
3556
+ else if (H === "deprecated" || H === "hidden") {
3557
+ let Z = !0;
3558
+ const ce = W?.toLowerCase();
3559
+ ce === "false" ? Z = !1 : ce !== "true" && (Z = W), Z !== !1 && (_.deprecated = Z ?? !0, v.hidden = !0);
3560
+ }
3561
+ }
3562
+ }
3563
+ }
3564
+ }
3565
+ }
3566
+ if (!v.context && b) {
3567
+ o(b, E.InvalidReturnType, \`'\${p}': Promise<T> is not a valid return type for a calculation function. Return the value the cell shows now, and call FormulaContext.defer(executor, payload) to deliver the result later.\`);
3568
+ return;
3569
+ }
3570
+ Object.keys(v.returnType).length === 0 && delete v.returnType, Object.keys(U).length > 0 && (v.behavior = U), _.summary || m(u.name ?? u, E.MissingSummary, "warning", \`'\${p}': missing a description. Add a JSDoc comment above the function.\`);
3571
+ const Y = !v.context, Q = Y && _.name || p;
3572
+ if (Y && !oa.test(Q)) {
3573
+ const P = _.name ? \`'@name \${_.name}'\` : \`'\${Q}'\`;
3574
+ o(u.name ?? u, E.InvalidName, \`'\${p}': \${P} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.\` + (_.name ? "" : " Add an '@name' tag to register it under another name."));
3575
+ return;
3576
+ }
3577
+ if (Y && !n?.isBuiltIn && ca(Q)) {
3578
+ const P = _.name ? \`'@name \${_.name}'\` : \`'\${Q}'\`;
3579
+ o(u.name ?? u, E.InvalidName, \`'\${p}': \${P} cannot be called from a formula. It reads as a cell address.\` + (_.name ? "" : " Add an '@name' tag to register it under another name."));
3580
+ return;
3581
+ }
3582
+ const he = l.get(Q.toUpperCase());
3583
+ if (he !== void 0) {
3584
+ o(u.name ?? u, E.DuplicateName, \`'\${p}': '\${Q}' is already the name of '\${he}' in this module.\`);
3585
+ return;
3586
+ }
3587
+ if (l.set(Q.toUpperCase(), p), Y && i?.has(Q.toUpperCase())) {
3588
+ o(u.name ?? u, E.BuiltInName, \`'\${Q}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.\`);
3589
+ return;
3590
+ }
3591
+ if (Y) {
3592
+ const P = _.parameters ?? {};
3593
+ for (const [O, N] of Object.entries(P)) if (!X.has(O) && !N.description) {
3594
+ const ne = B.get(O);
3595
+ m(ne, E.MissingParamDescription, "warning", \`'\${p}': parameter '\${O}' is missing a description. Add an '@param \${O}' tag.\`);
3596
+ }
3597
+ }
3598
+ a.push([v, _]);
3599
+ } catch (C) {
3600
+ o(u, E.ParseError, \`'\${p}': \${C.message}\`);
3601
+ }
3602
+ }
3603
+ });
3604
+ } catch (u) {
3605
+ o(void 0, E.ParseError, \`Unable to analyze module: \${u?.message ?? u}\`);
3606
+ }
3607
+ return {
3608
+ functions: a,
3609
+ autoRun: c,
3610
+ diagnostics: s
3611
+ };
3612
+ }
3613
+ const Ye = "__SHEETXL";
3614
+ var pa = /* @__PURE__ */ or({ initialize: () => ma });
3615
+ async function ma() {
3616
+ return Te || (Te = new Promise(async (e, t) => {
3617
+ try {
3618
+ const r = "0.20.2", n = \`https://esm.sh/esbuild-wasm@\${r}\`, i = \`https://esm.sh/esbuild-wasm@\${r}/esbuild.wasm\`, a = (await import(
3619
+ /* webpackIgnore: true */
3620
+ /* @vite-ignore */
3621
+ n
3622
+ )).default;
3623
+ await a.initialize({
3624
+ wasmURL: i,
3625
+ worker: !1
3626
+ }), e(a);
3627
+ } catch (r) {
3628
+ console.error("Error initializing esbuild:", r), Te = null, t(new Error("The script bundler could not be loaded. Check your connection and try again.", { cause: r }));
3629
+ }
3630
+ }), Te);
3631
+ }
3632
+ var Te, ha = ar((() => {
3633
+ Te = null;
3634
+ }));
3635
+ let xe = null, Ve = null;
3636
+ async function ga() {
3637
+ if (xe) return xe;
3638
+ if (Ve) {
3639
+ if (await Ve, !xe) throw new Error("ESBuild initialization promise resolved, but instance is not available.");
3640
+ return xe;
3641
+ }
3642
+ let e, t;
3643
+ Ve = new Promise((r, n) => {
3644
+ e = r, t = n;
3645
+ });
3646
+ try {
3647
+ const { initialize: r } = await Promise.resolve().then(() => (ha(), pa));
3648
+ return xe = await r(), e(), xe;
3649
+ } catch (r) {
3650
+ throw console.error("Failed to import or initialize esbuild:", r), Ve = null, t(r), r;
3651
+ }
3652
+ }
3653
+ const ya = { compilerOptions: { target: "esnext" } };
3654
+ async function wa(e, t, r = "/script.js", n = Ye, i = !1) {
3655
+ try {
3656
+ const a = await ga(), l = "@sheetxl/primitives", s = \`
3657
+ export const FormulaContext = globalThis.\${n}?.FormulaContext;
3658
+ export const ScalarType = globalThis.\${n}?.ScalarType;
3659
+ export const Observable = globalThis.\${n}?.Observable;
3660
+ export const IRange = globalThis.\${n}?.IRange;
3661
+ export const FormulaError = globalThis.\${n}?.FormulaError;
3662
+ // Add more exports as needed
3663
+ \`, c = await a.build({
3664
+ entryPoints: [r],
3665
+ bundle: !0,
3666
+ write: !1,
3667
+ format: "esm",
3668
+ plugins: [{
3669
+ name: "sheetxl-esbuild-in-memory",
3670
+ setup(d) {
3671
+ const m = "sheetxl-" + (/* @__PURE__ */ new Date()).getTime();
3672
+ d.onResolve({ filter: new RegExp(\`^(\${r.replace("/", "\\\\/")}|\${l})$\`) }, (o) => ({
3673
+ path: o.path,
3674
+ namespace: m
3675
+ })), d.onResolve({ filter: /.*/ }, (o) => {
3676
+ if (o.namespace !== m) return console.warn(\`esbuild: Treating import "\${o.path}" as external.\`), {
3677
+ path: o.path,
3678
+ external: !0
3679
+ };
3680
+ }), d.onLoad({
3681
+ filter: /.*/,
3682
+ namespace: m
3683
+ }, (o) => {
3684
+ let f;
3685
+ if (o.path === r) f = t;
3686
+ else if (o.path === l) f = s;
3687
+ else return { errors: [{ text: \`Cannot load unknown path in \${m}: \${o.path}\` }] };
3688
+ return {
3689
+ contents: f,
3690
+ loader: "ts"
3691
+ };
3692
+ });
3693
+ }
3694
+ }],
3695
+ sourcemap: "inline",
3696
+ tsconfigRaw: ya,
3697
+ minify: i,
3698
+ platform: "neutral"
3699
+ });
3700
+ if (c.outputFiles && c.outputFiles.length > 0) return c.outputFiles[0].text;
3701
+ throw c.errors && c.errors.length > 0 ? /* @__PURE__ */ new Error(\`esbuild bundling failed: \${c.errors.map((d) => d.text).join(\`
3702
+ \`)}\`) : /* @__PURE__ */ new Error("esbuild did not produce an output file.");
3703
+ } catch (a) {
3704
+ throw console.error("esbuild bundling process failed:", a), a;
3705
+ }
3706
+ }
3707
+ function Sa(e, t, r) {
3708
+ return (n) => {
3709
+ const i = n.factory, a = () => i.createExpressionStatement(i.createCallChain(i.createPropertyAccessExpression(i.createIdentifier(Ye), "checkRun"), i.createToken(e.SyntaxKind.QuestionDotToken), void 0, [i.createStringLiteral(t), i.createNumericLiteral(r)])), l = (o) => {
3710
+ const f = o.statements;
3711
+ let b = 0;
3712
+ for (; b < f.length && e.isExpressionStatement(f[b]) && e.isStringLiteral(f[b].expression);) b++;
3713
+ return i.updateBlock(o, [
3714
+ ...f.slice(0, b),
3715
+ a(),
3716
+ ...f.slice(b)
3717
+ ]);
3718
+ }, s = (o) => e.isBlock(o) ? l(o) : i.createBlock([a(), o], !0), c = (o) => e.isBlock(o) ? l(o) : i.createBlock([a(), i.createReturnStatement(o)], !0), d = (o) => e.isForStatement(o) || e.isForInStatement(o) || e.isForOfStatement(o) || e.isWhileStatement(o) || e.isDoStatement(o), m = (o) => {
3719
+ if (d(o)) {
3720
+ const f = o.statement;
3721
+ return e.visitEachChild(o, (b) => {
3722
+ const S = m(b);
3723
+ return b === f ? s(S) : S;
3724
+ }, n);
3725
+ }
3726
+ if (e.isFunctionLike(o) && o.body) {
3727
+ const f = o.body;
3728
+ return e.visitEachChild(o, (b) => {
3729
+ const S = m(b);
3730
+ return b === f ? c(S) : S;
3731
+ }, n);
3732
+ }
3733
+ return e.visitEachChild(o, m, n);
3734
+ };
3735
+ return (o) => e.visitNode(o, m);
3736
+ };
3737
+ }
3738
+ const rr = "//# sourceMappingURL";
3739
+ var an = /* @__PURE__ */ or({
3740
+ initialize: () => ba,
3741
+ readLibFile: () => va
3742
+ });
3743
+ async function ba() {
3744
+ return Ce || (Ce = new Promise(async (e, t) => {
3745
+ let r = null;
3746
+ try {
3747
+ r = await import(
3748
+ /* webpackIgnore: true */
3749
+ /* @vite-ignore */
3750
+ "https://esm.sh/typescript@5.7.2"
3751
+ );
3752
+ } catch (n) {
3753
+ console.error("Error initializing Browser TypeScript module:", n);
3754
+ }
3755
+ r || (console.log("use script fallback"), Ce = null), e(r);
3756
+ }), Ce);
3757
+ }
3758
+ function va(e, t) {}
3759
+ var Ce, on = ar((() => {
3760
+ Ce = null;
3761
+ }));
3762
+ const Ea = \`
3763
+ /**
3764
+ * Represents the completion of an asynchronous operation
3765
+ */
3766
+ interface Promise<T> {
3767
+ /**
3768
+ * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
3769
+ * resolved value cannot be modified from the callback.
3770
+ * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
3771
+ * @returns A Promise for the completion of the callback.
3772
+ */
3773
+ finally(onfinally?: (() => void) | undefined | null): Promise<T>;
3774
+ }
3775
+ \`, _a = \`
3776
+ interface FirstTest {
3777
+ isTrue?: boolean;
3778
+ }
3779
+ \`, xa = async () => _a;
3780
+ let Ge = null;
3781
+ const st = "sheetxl.d.ts", nr = "sheetxl-modules.d.ts", Ta = \`declare module '@sheetxl/primitives' { export = SheetXL; }
3782
+ \`, Ca = [
3783
+ "lib.webworker.d.ts",
3784
+ "lib.es2020.d.ts",
3785
+ "lib.esnext.asynciterable.d.ts"
3786
+ ], ir = /* @__PURE__ */ new Map();
3787
+ let ct = null, ut = null;
3788
+ async function Aa() {
3789
+ return ut || (ut = Promise.resolve().then(() => (on(), an)).then(async (e) => {
3790
+ const t = await ln();
3791
+ return e.readLibFile(t, "lib.es5.d.ts") !== void 0 ? e.readLibFile : null;
3792
+ })), ut;
3793
+ }
3794
+ async function ln() {
3795
+ if (Ge) return Ge;
3796
+ try {
3797
+ const e = await (await Promise.resolve().then(() => (on(), an))).initialize();
3798
+ if (!e) throw new Error("TypeScript could not be loaded. Check your connection and try again.");
3799
+ return e;
3800
+ } catch (e) {
3801
+ throw Ge = null, e;
3802
+ } finally {
3803
+ Ge = null;
3804
+ }
3805
+ }
3806
+ async function Ia(e) {
3807
+ const t = e?.source ?? null;
3808
+ if (!t) return {
3809
+ module: null,
3810
+ diagnostics: []
3811
+ };
3812
+ const r = (e.disableBundle || e.declarationsOnly) ?? !1, [n, i, a] = await Promise.all([
3813
+ xa(),
3814
+ ln(),
3815
+ e.ambientTypes ? Aa() : null
3816
+ ]), l = a ? e.ambientTypes ?? null : null;
3817
+ let s = "";
3818
+ const c = {
3819
+ allowJs: !0,
3820
+ declaration: !1,
3821
+ sourceMap: !1,
3822
+ inlineSourceMap: !1,
3823
+ inlineSources: !1,
3824
+ isolatedModules: !0,
3825
+ preserveConstEnums: !1,
3826
+ module: 99,
3827
+ noResolve: !0,
3828
+ emitDeclarationOnly: !1,
3829
+ target: i.ScriptTarget.ES2020,
3830
+ ...l ? {
3831
+ lib: Ca,
3832
+ skipLibCheck: !0,
3833
+ strict: !0
3834
+ } : {}
3835
+ }, d = "script", m = \`\${d}.ts\`, o = "lib.d.ts", f = "global.d.ts", b = {
3836
+ [m]: t,
3837
+ [o]: Ea,
3838
+ [f]: n,
3839
+ ...l ? {
3840
+ [st]: l,
3841
+ [nr]: Ta
3842
+ } : {}
3843
+ }, S = (p) => b[p] ?? (a && p.startsWith("lib.") ? a(i, p) : void 0), A = {
3844
+ getSourceFile: (p, v, _, C) => {
3845
+ if (p === st) return ct?.text !== l && (ct = {
3846
+ text: l,
3847
+ file: i.createSourceFile(p, l, i.ScriptTarget.Latest, !1)
3848
+ }), ct.file;
3849
+ if (b[p] === void 0) {
3850
+ let M = ir.get(p);
3851
+ if (!M) {
3852
+ const z = S(p);
3853
+ if (z === void 0) return;
3854
+ M = i.createSourceFile(p, z, i.ScriptTarget.Latest, !1), ir.set(p, M);
3855
+ }
3856
+ return M;
3857
+ }
3858
+ return i.createSourceFile(p, b[p], i.ScriptTarget.Latest, !0);
3859
+ },
3860
+ fileExists: (p) => S(p) !== void 0,
3861
+ readFile: S,
3862
+ writeFile: (p, v) => {
3863
+ b[p] = v;
3864
+ },
3865
+ getCurrentDirectory: () => "./",
3866
+ getCanonicalFileName: (p) => p,
3867
+ useCaseSensitiveFileNames: () => !0,
3868
+ getDefaultLibFileName: (p) => o,
3869
+ getNewLine: () => \`
3870
+ \`
3871
+ }, k = i.createProgram([
3872
+ m,
3873
+ f,
3874
+ ...l ? [st, nr] : []
3875
+ ], c, A), h = k.getTypeChecker(), y = k.getSourceFile(m), w = e.runGuard;
3876
+ k.emit(void 0, void 0, void 0, void 0, w ? { before: [Sa(i, w.key, w.timeoutMs)] } : void 0), s = b[\`\${d}.js\`] ?? "";
3877
+ const D = (p) => ({
3878
+ start: p.start ?? 0,
3879
+ length: p.length ?? 0,
3880
+ severity: p.category === i.DiagnosticCategory.Warning ? "warning" : "error",
3881
+ code: \`TS\${p.code}\`,
3882
+ message: i.flattenDiagnosticMessageText(p.messageText, \`
3883
+ \`)
3884
+ }), K = k.getSyntacticDiagnostics(y).map(D), L = l ? k.getSemanticDiagnostics(y).filter((p) => p.category === i.DiagnosticCategory.Error || p.category === i.DiagnosticCategory.Warning).map(D) : [], R = fa(i, y, h, {
3885
+ builtInNames: e.builtInNames,
3886
+ isBuiltIn: e.isBuiltIn,
3887
+ lenient: e.lenient
3888
+ });
3889
+ let F = [
3890
+ ...K,
3891
+ ...L,
3892
+ ...R.diagnostics
3893
+ ];
3894
+ e.lenient && (F = F.filter((p) => p.code !== E.MissingType));
3895
+ const de = R.functions, we = R.autoRun, te = F.some((p) => p.severity === "error"), Ze = \`\${lr.uuidV4()}-script\`;
3896
+ let Ie = null;
3897
+ if (te) s = "";
3898
+ else {
3899
+ try {
3900
+ r || (s = await wa(i, s, d, void 0, e.minify ?? !1));
3901
+ } catch {
3902
+ console.warn("Error bundling script");
3903
+ }
3904
+ const p = s.indexOf(rr);
3905
+ p > -1 && (Ie = s.substring(p + 20 + 1, s.length), s = s.substring(0, p), s = s.replaceAll("globalThis." + Ye, Ye));
3906
+ }
3907
+ const u = {
3908
+ functions: de,
3909
+ commitId: Ze,
3910
+ source: t,
3911
+ language: "typescript",
3912
+ compiled: s
3913
+ };
3914
+ return Ie && (u.sourceMap = Ie), we && (u.autoRun = we), {
3915
+ module: u,
3916
+ diagnostics: F
3917
+ };
3918
+ }
3919
+ self.addEventListener("message", async (e) => {
3920
+ const { id: t, params: r } = e.data;
3921
+ try {
3922
+ const n = await Ia(r);
3923
+ self.postMessage({
3924
+ id: t,
3925
+ result: n,
3926
+ error: null
3927
+ });
3928
+ } catch (n) {
3929
+ self.postMessage({
3930
+ id: t,
3931
+ result: null,
3932
+ error: {
3933
+ message: n.message,
3934
+ stack: n.stack,
3935
+ cause: n.cause
3936
+ }
3937
+ });
3938
+ }
3939
+ });
3940
+ `,i=typeof self<`u`&&self.Blob&&new Blob([`URL.revokeObjectURL(import.meta.url);`,r],{type:`text/javascript;charset=utf-8`});function a(e){let t;try{if(t=i&&(self.URL||self.webkitURL).createObjectURL(i),!t)throw``;let n=new Worker(t,{type:`module`,name:e?.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(r),{type:`module`,name:e?.name})}}async function o(){if(globalThis.process?.versions?.node&&typeof Worker>`u`)return await s();if(typeof Worker<`u`){let e=new t(()=>new a);try{return await e.start(),e}catch(e){console.error(`Failed to start TypescriptCompiler worker reverting to fallback:`,e)}}return await s()}var s=async()=>{let{compileModule:t}=await e(async()=>{let{compileModule:e}=await import(`./DyLWQxXXTw5uwPVy.js`);return{compileModule:e}},__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url),r=new n(e=>t(e));return await r.start(),r};export{o as createCompilerWorker};