@sheetxl/studio-vanilla 0.8.0-beta.10 → 0.8.0-beta.12

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 (484) hide show
  1. package/browser/esm/-uhPvS_bULnsjqVB.mjs +42 -0
  2. package/{cdn/assets/CBdNC7BOfc5TewHU.js → browser/esm/0YsENrFzj1ssAX9X.mjs} +1 -1
  3. package/browser/esm/{UTZcodQydbuMfCOS.mjs → 1wWPvtsW8DO6CafH.mjs} +1 -1
  4. package/{cdn/assets/BWo1N4YbK_zGU0nu.js → browser/esm/2FB6h8pTc_l_B6QZ.mjs} +1 -1
  5. package/browser/esm/{ClJvUf8aR8vNC_3Z.mjs → 30UYToote05ZLTtr.mjs} +3 -3
  6. package/browser/esm/{CnWNviK4qlX2GVl6.mjs → 41b1AdCV6QfkOX6l.mjs} +12 -13
  7. package/browser/esm/{BBjgqNlHm-ssbSAG.mjs → 4HrBEVQGdmXVxVf1.mjs} +1 -1
  8. package/browser/esm/{pKc_RPdZPLAgvNDh.mjs → 7eHYbjATYWtDW-AI.mjs} +2 -2
  9. package/browser/esm/{DNCqTF9EbT-U1TdV.mjs → A3koQh6ZccdaHPzY.mjs} +3 -3
  10. package/browser/esm/{BThOwSja2ra4xejQ.mjs → B1mhVM8eRIyuL-VB.mjs} +1587 -1456
  11. package/browser/esm/{rY-dC3WB558TIbum.mjs → B34vCv1wwb2Fh4ml.mjs} +4 -4
  12. package/browser/esm/{_MPToH4oMe4rhTdZ.mjs → B4UdS-Kh0oOnw3V5.mjs} +3 -3
  13. package/browser/esm/{CCd192S7yVpc6iOe.mjs → B5sj4wVSU_Gnsoij.mjs} +17 -16
  14. package/{cdn/assets/BAH_cWcQEIBKWnl6.js → browser/esm/B8-nLKLPjZ7pIJdE.mjs} +48 -37
  15. package/browser/esm/{BVJUL2HhoedhbwVy.mjs → B8yozzawr3e-MiZS.mjs} +12 -11
  16. package/browser/esm/BCB8nt_33nVNFVTT.mjs +199 -0
  17. package/browser/esm/BFHtja51jzj6fA8G.mjs +193 -0
  18. package/browser/esm/{C5EKgE9Owsc_juw-.mjs → BFNrFZtdVve-yU4e.mjs} +1 -1
  19. package/browser/esm/{ZbGPiRN9j0629JJQ.mjs → BFlPNsdaR2vXjM1-.mjs} +2 -2
  20. package/browser/esm/{PtGiIWFBYP-ujLmf.mjs → BFp4JZFwKkq3wPHv.mjs} +1 -1
  21. package/browser/esm/{kVBPUUnVyZfb8pf3.mjs → BGr-y2dCzvyaUCy_.mjs} +41 -41
  22. package/{cdn/assets/_t0Mx-mUFVtmVNkU.js → browser/esm/BHy_akSib7chMKWg.mjs} +1 -1
  23. package/browser/esm/BIX8xNwuEM4TocmY.mjs +131 -0
  24. package/browser/esm/{ByUcqyCNfqi5Mm7w.mjs → BJjL3rPHHyI2VT5N.mjs} +1 -1
  25. package/browser/esm/{sDVzjXC1mS5rucF5.mjs → BKXXOCxg9jVDeZfx.mjs} +639 -758
  26. package/browser/esm/{DxwprgjYhcmfDbXH.mjs → BNXqFlCmhhuJanX6.mjs} +19 -19
  27. package/browser/esm/BPNL7vh8nmg0q7RW.mjs +281 -0
  28. package/browser/esm/BSdjvRtT06k7pqHv.mjs +422 -0
  29. package/browser/esm/{FO1Jezau486fH4kN.mjs → BSzeqNbK-wYbCwiv.mjs} +1 -1
  30. package/browser/esm/{DLhK_oSGg71ry6-m.mjs → BVHz28PPZYw-4V5f.mjs} +45 -45
  31. package/{cdn/assets/CwqRA5h1u92Cyit-.js → browser/esm/BVV0zPpEupxaFfVv.mjs} +2 -2
  32. package/browser/esm/{DG3BfxRsbjey-B7E.mjs → BXiTuaDcF2kDzTB0.mjs} +2 -2
  33. package/browser/esm/{B7iV5qzlmJlM2nQv.mjs → BZWVm5Tz9V78n97U.mjs} +2 -2
  34. package/browser/esm/{BMlPFJ1glExv-70Z.mjs → BZbqsj8CH_yl3myW.mjs} +1 -1
  35. package/browser/esm/{x6GcENwqoUVbd60j.mjs → B_oYpGQQp9ELbGXT.mjs} +1 -1
  36. package/browser/esm/BdK6G62ymmr00Ghb.mjs +104 -0
  37. package/browser/esm/Bdqs1vuxUIzfBU03.mjs +101 -0
  38. package/browser/esm/{vGKTE7yjY8y-XnsW.mjs → Bfefutdeq9eAruVm.mjs} +2 -2
  39. package/browser/esm/{Dwxz0s23ra1tRtsH.mjs → BikqeuAc1ownJULP.mjs} +3 -2
  40. package/{cdn/assets/BSCja5yvevmKZPBB.js → browser/esm/Bj-ggr3Qgt0J39xx.mjs} +1 -1
  41. package/browser/esm/Bkg2ukKnA4m4qbgG.mjs +181 -0
  42. package/browser/esm/BmmbYyO6_Vr_L5NJ.mjs +9990 -0
  43. package/browser/esm/{CaS8_J5HfBRk5_Nw.mjs → Bn-CqbXsrYIajb_W.mjs} +33 -33
  44. package/{cdn/assets/DxcRLd7wmBGDgJsA.js → browser/esm/BoFEETlY0hZb0PRp.mjs} +1 -1
  45. package/browser/esm/{D2aQPiGg0ZoMYzuf.mjs → BoYTs2k2yWAKW5LM.mjs} +5 -5
  46. package/browser/esm/BqPEItNoP2iZ2lkz.mjs +163 -0
  47. package/browser/esm/Bs9KvD8n3018Rkew.mjs +281 -0
  48. package/browser/esm/Bsy5EeZ_mwI_CkSO.mjs +86 -0
  49. package/browser/esm/{_zRV52yhE4gPf3XI.mjs → BuQYmB0EDLYZ7vEk.mjs} +46 -46
  50. package/{cdn/assets/gpQ4FdJMbIScKnS_.js → browser/esm/BukdAMyKW6rq3Unk.mjs} +8 -8
  51. package/browser/esm/BvcoyRz135FDHoTf.mjs +392 -0
  52. package/browser/esm/{BRfat1fV3oGLwvin.mjs → Bw4fe7a608CgkbOH.mjs} +13 -13
  53. package/browser/esm/{Dy44qJVkwNseMG-3.mjs → BxE8BJ1tb5HybBNO.mjs} +1 -1
  54. package/{cdn/assets/DfESVLC8CAi8m8A7.js → browser/esm/BxIfM-Ty_Y8PvQFM.mjs} +1 -1
  55. package/{cdn/assets/DWgp4t9N9u0eWthH.js → browser/esm/ByREbsIyjgFePvoo.mjs} +1 -1
  56. package/browser/esm/{ZxsFYopF0_WWqw4Q.mjs → Bz4k83C83NmszjPX.mjs} +1 -1
  57. package/browser/esm/C07dijMoobBfewot.mjs +298 -0
  58. package/browser/esm/{Bi5-feQLtwpV6Ai8.mjs → C1KeUfpnO7aNynxZ.mjs} +5 -5
  59. package/browser/esm/{DAprxR00V9qvNLL2.mjs → C1utJcalKxjNT3Gr.mjs} +1944 -1812
  60. package/browser/esm/{djM9mJznx8GzVq51.mjs → C6SaFrr0KAAAdu5x.mjs} +14 -14
  61. package/browser/esm/{CSEMxasVyGCekxKf.mjs → C6axT8aFQqaiuRgS.mjs} +1 -1
  62. package/browser/esm/{BeMLfv6hWo15VCIL.mjs → C8daZgnuV1jUOiO9.mjs} +52 -52
  63. package/browser/esm/{BaEZmurTZnX_yfKD.mjs → CADJznHV1GZ-1Cy0.mjs} +341 -386
  64. package/browser/esm/{BlPn_DXaEXOPxMxC.mjs → CAFDldpwa2ZDlh3u.mjs} +1 -1
  65. package/browser/esm/CAIREtREYTvydXO6.mjs +30 -0
  66. package/browser/esm/{mZ92wNrHVpYdli1U.mjs → CAQSV7_d1zCSeBZC.mjs} +20 -20
  67. package/browser/esm/CASTsylgIqgqFwk2.mjs +1443 -0
  68. package/browser/esm/{DoS1sE431fEhdOQb.mjs → CCdxM0LTBnAIrkEU.mjs} +4 -4
  69. package/browser/esm/CDreRSyWs9eXZR9O.mjs +23468 -0
  70. package/browser/esm/CE8E_UvKufBd3-Vt.mjs +569 -0
  71. package/browser/esm/CEIE_OT8nrKGkqjg.mjs +1390 -0
  72. package/browser/esm/CEvmiZ2C2QopD1yx.mjs +322 -0
  73. package/browser/esm/{CDsuiN--qdALFyql.mjs → CFqf8Tjk5MUKtniB.mjs} +2 -2
  74. package/{cdn/assets/CTdFZ_I-41Vr6Dy4.js → browser/esm/CGXU95J36TlX8lDH.mjs} +1 -1
  75. package/browser/esm/{SNze-adFJwKuGSQW.mjs → CHSMmjtqQs2IqcYo.mjs} +1 -1
  76. package/browser/esm/{DjdkGy-EI1kSo226.mjs → CImdnjQtd2Yn7uXl.mjs} +1 -1
  77. package/browser/esm/{aUREGNA8H7p4BpMK.mjs → CL0vZohrUAp3Bhj3.mjs} +3 -3
  78. package/{cdn/assets/B0Wjc3lwtjKMwnvn.js → browser/esm/CLUYMovkh-bwvZJ0.mjs} +1 -1
  79. package/browser/esm/CLrTsOW_jOs09qSP.mjs +86 -0
  80. package/browser/esm/CNcLDXQDQECQxvtA.mjs +141 -0
  81. package/browser/esm/{sxxbiJiCMOW2Eivd.mjs → COPR5sXYEAeM73Ep.mjs} +8518 -6392
  82. package/browser/esm/COh0UZopdYUbHVON.mjs +1648 -0
  83. package/{cdn/assets/J3hutJxqQiHENpIe.js → browser/esm/CPhsbNkI0TuotSlv.mjs} +123 -120
  84. package/browser/esm/{cwuYkcKwsKkPe3gG.mjs → CQFPbvY6xwLpTjbF.mjs} +2 -2
  85. package/{cdn/assets/BwOxnbR61WFJwy0A.js → browser/esm/CRDxpPkzVM-9K8qp.mjs} +1 -1
  86. package/browser/esm/{LAbUYeLiPG8z9cmA.mjs → CS6fe9pkg0OdRzns.mjs} +48 -48
  87. package/browser/esm/{CvWGtHslTdesJik-.mjs → CSyQPhbn_NN6at59.mjs} +10 -9
  88. package/browser/esm/{DAE3Kv0Vs0VuBecT.mjs → CUXpeET-vxHGYwKn.mjs} +1 -1
  89. package/{cdn/assets/VCiu_neIjCTg2NUa.js → browser/esm/CW9UkULY0jchroYa.mjs} +486 -487
  90. package/{cdn/assets/BPrHgyAsm2Htx15h.js → browser/esm/CWOJrduWjvqg69sM.mjs} +1 -1
  91. package/browser/esm/CX1VWdQjKSXDMfs9.mjs +1240 -0
  92. package/browser/esm/{DGcvio2uhlrsE3ZY.mjs → CZP3O5VDZVpsmWVP.mjs} +10 -10
  93. package/browser/esm/{By3a43qwWICwXRmw.mjs → CdDn85jCBS6ljPJV.mjs} +3162 -2130
  94. package/browser/esm/{DLqc11Pf8vaE4Q5B.mjs → Cf_c9xyOrFxlsKq6.mjs} +1 -1
  95. package/browser/esm/{f1OJemsiZnbwnds-.mjs → CfgJaRI3Iz3K-TwG.mjs} +15 -15
  96. package/browser/esm/{BAdRecWK1maKGOZd.mjs → ChSr970S44fUscYr.mjs} +1 -1
  97. package/browser/esm/{B00ixdmb8-O5ijEp.mjs → CiGcHB-RQCGm-yoH.mjs} +1 -1
  98. package/browser/esm/CiL1ItKLy_bO7Vxj.mjs +1552 -0
  99. package/browser/esm/{CMxbiQ5J79M3n1tk.mjs → Cif0315haNLmyMj-.mjs} +723 -373
  100. package/browser/esm/Cjb4nzJvvuN1770o.mjs +9632 -0
  101. package/browser/esm/{DrI_S0A9TQvriTua.mjs → Cjj81VfZROKYtV3v.mjs} +1 -1
  102. package/browser/esm/{CTI-mCJbJzitJZwj.mjs → Ck-YCK18HOJsHw_I.mjs} +1 -1
  103. package/browser/esm/Cl8aWyu9oSfXhYSR.mjs +323 -0
  104. package/browser/esm/{px-aQ8dMjiWag_pV.mjs → ClFYlhnkBAxJCKn6.mjs} +1 -1
  105. package/browser/esm/{ErIXJFPDFXwGEL8V.mjs → ClQWS65BOnsz_YeL.mjs} +2 -2
  106. package/browser/esm/{BxhKgo_rPQ2d12HT.mjs → ClhxJ7aAVlYxWbAt.mjs} +4 -4
  107. package/{cdn/assets/CVcCUfSRsiZ1-6hs.js → browser/esm/CnROzMriBlKuLOfF.mjs} +1 -1
  108. package/browser/esm/{DeUXRggj8Oz9ru_i.mjs → CnzNEpCntiBfW9x5.mjs} +1 -1
  109. package/browser/esm/{ycmpAs4kQfeh78Pa.mjs → CoqGjnCpY3LxqR0v.mjs} +1 -1
  110. package/browser/esm/Cq8VN3vpOLOO-bA5.mjs +160 -0
  111. package/browser/esm/{CVxlfyE-gnJM8hOz.mjs → CrIHwDDOUDcx5WSM.mjs} +18 -18
  112. package/browser/esm/CtYy8KL3L1_bf81k.mjs +8416 -0
  113. package/browser/esm/CupZAF0s99q3CQd5.mjs +200 -0
  114. package/browser/esm/{qYca4mdySLkACfo1.mjs → CutcHdJ4BMcr7Yev.mjs} +1 -1
  115. package/browser/esm/{BCWTI3jdTPG37r8W.mjs → CuuWjNFFRxXfbQnD.mjs} +3 -3
  116. package/{cdn/assets/DVpi1vC8ixXvUQG_.js → browser/esm/Cxk1E_D7BKR7Crmt.mjs} +1 -1
  117. package/browser/esm/{DQEjvIGMgEkiaP6J.mjs → CyTOT4NnE9dWtJIT.mjs} +1 -1
  118. package/{cdn/assets/BNsqqoZY7a4N1wWC.js → browser/esm/D1-rdRh8N55p4-Be.mjs} +328 -110
  119. package/browser/esm/{C4VT6lNbpaDXCpBb.mjs → D29bSsh1Lz8891Rs.mjs} +2 -2
  120. package/browser/esm/{DnyZmrwPxShyeUjm.mjs → D3wUli_CzQR9jT6L.mjs} +118 -269
  121. package/browser/esm/{DSviq1TNoiIAGW7W.mjs → D5kDtvIsPIJuJZSx.mjs} +1 -1
  122. package/browser/esm/D5znyg42EULLErlX.mjs +89 -0
  123. package/browser/esm/{ByqhqEMBLrnkaPKE.mjs → D7cf_Sx-iAIIVwe-.mjs} +31 -29
  124. package/browser/esm/{DaMKWQQTgIF08cT7.mjs → D8hdsSDxM_AQvffB.mjs} +21 -21
  125. package/browser/esm/D9ukH57ON841L8l9.mjs +232 -0
  126. package/browser/esm/DAAcSj6LxLO-O2io.mjs +195 -0
  127. package/browser/esm/{rkTVQiYG3wd8oPom.mjs → DAOjpr33PSwrKpc0.mjs} +3 -3
  128. package/browser/esm/{Dme0qpRinBnhzp53.mjs → DDw_9YBEaF76ezn9.mjs} +163 -162
  129. package/{cdn/assets/lqknEt3DTma5Juxs.js → browser/esm/DEtgba3E0qoHN6kX.mjs} +1 -1
  130. package/{cdn/assets/BhkeuRcx8RlLCQ5E.js → browser/esm/DEvc6BS99hZ9e4Nf.mjs} +1 -1
  131. package/browser/esm/{DqBj-9o7UdXu4qhb.mjs → DFbfNcr6j1gD5R0e.mjs} +1 -1
  132. package/browser/esm/DGmXLEMWMnQeqrl0.mjs +1723 -0
  133. package/browser/esm/{Cpza4AeltEVHASij.mjs → DHDlrgx5YyzbhqKA.mjs} +3 -3
  134. package/browser/esm/DIk6ek73xbGQ4xfD.mjs +7 -0
  135. package/browser/esm/{CtZPEkaldpJpoGtW.mjs → DJpfJorMrLhI9gOT.mjs} +1311 -1305
  136. package/browser/esm/{Dv8aQFTTaQBJKDDk.mjs → DLMAXayirBhfpTF4.mjs} +1 -1
  137. package/browser/esm/{CHMqT9DzYKTxPfP6.mjs → DLmLaWoLePonCiIs.mjs} +1 -1
  138. package/{cdn/assets/DQIRFXG4MveFkK3I.js → browser/esm/DN3iFnh1WSc7HR3p.mjs} +1 -1
  139. package/{cdn/assets/DXo8mR6t5HGsmTcu.js → browser/esm/DOJmeQHkbmz7giHc.mjs} +1 -1
  140. package/browser/esm/DP2a0oPlz27NpeSK.mjs +5117 -0
  141. package/browser/esm/DPfiS_S7rRs2M9Cu.mjs +7 -0
  142. package/browser/esm/DQ82Eg2cUZQyNA4P.mjs +521 -0
  143. package/browser/esm/{BN2d5U1nw7pRtOrn.mjs → DQM2LZ7Kj3QqfQQQ.mjs} +1 -1
  144. package/browser/esm/DSGiFB7hgRaKj-cD.mjs +7 -0
  145. package/browser/esm/{Db6Tvr45TS9J5Qsb.mjs → DTMNj2-Tz6uVTsgT.mjs} +34 -32
  146. package/browser/esm/{CWJzHmEgahdOfNjH.mjs → DTOHItHWueMl2jTm.mjs} +1 -1
  147. package/browser/esm/{D7DWH3-5fBNx8jtc.mjs → DTqURSvX1bHPWFue.mjs} +2 -2
  148. package/{cdn/assets/W1d6GQyySAHrtjEu.js → browser/esm/DWiPD9nqIDk253BM.mjs} +1804 -1016
  149. package/browser/esm/DXdI4tKe6B5dN40W.mjs +3106 -0
  150. package/browser/esm/DXou7Fhas1K3cubZ.mjs +7 -0
  151. package/{cdn/assets/BoFx07POTorOb5g-.js → browser/esm/Dac2pa3EUXg26xcV.mjs} +2534 -1724
  152. package/browser/esm/DasqwTiX41sYA-Z5.mjs +496 -0
  153. package/browser/esm/{DTn9oYyiIYgyijAk.mjs → Dbp-4nVzRBTazDLP.mjs} +42 -41
  154. package/browser/esm/DcEZ6cwiDjpacXxO.mjs +86 -0
  155. package/browser/esm/{CZOJogyZqMfUxcXj.mjs → DccxaAgL5rauj9rq.mjs} +1 -1
  156. package/{cdn/assets/C3r_9RqlWrEmlXZ1.js → browser/esm/DchNCIMGQQc9yEcv.mjs} +1 -1
  157. package/browser/esm/{CqoHxlGpZ3yzPj5V.mjs → Df7AbwG1nXGuHhch.mjs} +12 -12
  158. package/browser/esm/DhmmOd1KzvzI8TQB.mjs +12820 -0
  159. package/browser/esm/DmdChrGkm5oufbRE.mjs +57594 -0
  160. package/browser/esm/{B3Ii8x6RquHW1jMc.mjs → DmhXiZKFYiX4Qwqd.mjs} +10 -10
  161. package/browser/esm/DmxkMii2he30NfJu.mjs +8315 -0
  162. package/browser/esm/{DGuynZFJ9tqziqQs.mjs → DnFo-URDJaN2rhB9.mjs} +15 -15
  163. package/browser/esm/Do8jxgfFz8I1GsZA.mjs +89 -0
  164. package/browser/esm/DonP1tI3OXvxTqS_.mjs +213 -0
  165. package/browser/esm/Dr4kKrXEju3xH3h6.mjs +367 -0
  166. package/{cdn/assets/BsTFy_iJXJYmaO3Z.js → browser/esm/Du726HNvoVYMKBbH.mjs} +136 -144
  167. package/{cdn/assets/DONxZZT2Iwu7psS5.js → browser/esm/DuWZI1YgqBc4D0Wk.mjs} +6 -5
  168. package/browser/esm/DwhJsbgOZVQE9ZPT.mjs +210 -0
  169. package/browser/esm/Dx5lr1OiCVdVCwxl.mjs +9 -0
  170. package/browser/esm/DxVYvgAm5kxHC0F6.mjs +310 -0
  171. package/{cdn/assets/anQDUZhHMDPi1eha.js → browser/esm/DyHtw6zo0efVZUoT.mjs} +168 -162
  172. package/browser/esm/DyanYbYqqcmiADCL.mjs +1298 -0
  173. package/browser/esm/{CQuv-nk5jtXUfu7C.mjs → FvGpi7liPpu6KLv8.mjs} +2 -2
  174. package/browser/esm/HI2Ksbl0-etNK-w-.mjs +36 -0
  175. package/{cdn/assets/CQOyeq_-pg3CM-uA.js → browser/esm/Hl08NtZ1eAIRJ5OF.mjs} +1 -1
  176. package/browser/esm/{-LoBx7J6imeqaxCq.mjs → IHk5INXMVCzM8mcG.mjs} +81 -81
  177. package/browser/esm/{D0r2MPlWLnStWJNW.mjs → IogRavGG6hfOXNQU.mjs} +127 -117
  178. package/browser/esm/{CRAzVh3CaAa16avf.mjs → JvhO1o6YbI5ppwQ0.mjs} +47 -46
  179. package/browser/esm/{BtGmrIqU9W1L8zfZ.mjs → K83ea52GGB2voaRd.mjs} +1 -1
  180. package/{cdn/assets/H-JnJQMcZQbpvjdb.js → browser/esm/KHZcJAKLztwlFOCX.mjs} +1 -1
  181. package/browser/esm/{DJqj66SnUcx0QmSN.mjs → MH5L1dIGBq_LYgJQ.mjs} +1 -1
  182. package/browser/esm/Ovh5ic9JtH6cyxub.mjs +256 -0
  183. package/browser/esm/Ow0yLNSbuT3WBj7H.mjs +262 -0
  184. package/browser/esm/{BsUrrzAgfyAdcCJW.mjs → PRhdAO5xkLnZQvlu.mjs} +2 -2
  185. package/{cdn/assets/RfHd1JATBlcsfLPv.js → browser/esm/QPsDtDrq66DM_Jgr.mjs} +1 -1
  186. package/browser/esm/RDCRv0dAc6JkDyGp.mjs +2265 -0
  187. package/browser/esm/S_MFnyIZkCY_IGVg.mjs +95 -0
  188. package/browser/esm/T-NlR9otpSbQQkLg.mjs +1702 -0
  189. package/browser/esm/{C-0viTjg1dT2F-sk.mjs → TMjhDpsh4dAyEK9h.mjs} +2 -2
  190. package/{cdn/assets/Dc2ZwgbIEgYWwAsF.js → browser/esm/Yqn8laB5RV0kueLN.mjs} +1 -1
  191. package/{cdn/assets/DjtXfgbmXjUAoG0y.js → browser/esm/ZO6hi53k1jfq_DU2.mjs} +1 -1
  192. package/{cdn/assets/J9i3r1fU0H10b2hX.js → browser/esm/ZbJ95fcT_MlmJnVS.mjs} +1 -1
  193. package/{cdn/assets/i0P63Wd0RRlgJotb.js → browser/esm/_7u2a1HvX3quwuxr.mjs} +1 -1
  194. package/browser/esm/{DvWCBuY0jAL-RmJV.mjs → _9nyq5XWoIo-JhAp.mjs} +626 -595
  195. package/browser/esm/_LInZdm_bLSAlTs_.mjs +6149 -0
  196. package/browser/esm/{DRm1R4uVOkaMfXNI.mjs → acJyiuSRKv5sM-Ti.mjs} +13 -7
  197. package/browser/esm/bruq8xlrMhamz8NL.mjs +390 -0
  198. package/browser/esm/dt7TM5WM9kIfxkSp.mjs +3853 -0
  199. package/browser/esm/{CfltjY8hY-RPwwpd.mjs → ed053aDmYbCrCagn.mjs} +7 -7
  200. package/browser/esm/{CxCipDFamYSOctBo.mjs → gjyNCBbdz-gEETZG.mjs} +47 -45
  201. package/browser/esm/index.mjs +49 -645
  202. package/browser/esm/{D-KZpU6HMaP4VUva.mjs → k_OJDj5JL9UFeBxP.mjs} +45 -45
  203. package/browser/esm/k_pfnr7cFrRmfgMa.mjs +12 -0
  204. package/browser/esm/{Cy00y9b9j17Txyv1.mjs → luSDFTDDahiW2BkV.mjs} +1 -1
  205. package/browser/esm/m57Z_Zg2K9WPtv--.mjs +60 -0
  206. package/browser/esm/{C9NyIoUahFiyRCxP.mjs → mmNCqaa6lU6cygSY.mjs} +1 -1
  207. package/browser/esm/{iC69oOND5T8khIWf.mjs → n2-EbZF2IGbi-IOd.mjs} +6 -6
  208. package/browser/esm/n3-ex6JlSC4JH_g3.mjs +780 -0
  209. package/{cdn/assets/CFvKDDbrL3wpXnQH.js → browser/esm/sSoL-JlTRttZ1-fW.mjs} +1 -1
  210. package/browser/esm/{VwGokBaawZfZiV2X.mjs → wA7bEwDV1UUss-PV.mjs} +1 -1
  211. package/browser/esm/{DSf-Db1h8rlW2A6n.mjs → wSauAivL_wCxM6Ga.mjs} +5 -5
  212. package/{cdn/assets/pc49xtHdprXZLW2X.js → browser/esm/xZUqtJfNziRMVyQ7.mjs} +1 -1
  213. package/browser/esm/{DNaPo7BQu6hr1fWq.mjs → ypqwC2WOP09mA_DM.mjs} +1 -1
  214. package/cdn/assets/-ONZeuKryrnW6SqH.js +7 -0
  215. package/cdn/assets/-uhPvS_bULnsjqVB.js +42 -0
  216. package/cdn/assets/02n1f3j11O2nHvBs.js +12820 -0
  217. package/{browser/esm/CBdNC7BOfc5TewHU.mjs → cdn/assets/0YsENrFzj1ssAX9X.js} +1 -1
  218. package/cdn/assets/1FbtXPZOekXDPfdd.js +8 -0
  219. package/cdn/assets/{UTZcodQydbuMfCOS.js → 1wWPvtsW8DO6CafH.js} +1 -1
  220. package/{browser/esm/BWo1N4YbK_zGU0nu.mjs → cdn/assets/2FB6h8pTc_l_B6QZ.js} +1 -1
  221. package/cdn/assets/4F0v3wQNJ-MSB1Z9.js +220 -0
  222. package/cdn/assets/{BBjgqNlHm-ssbSAG.js → 4HrBEVQGdmXVxVf1.js} +1 -1
  223. package/cdn/assets/4uQOx5zyAS8XS4V9.js +570 -0
  224. package/cdn/assets/5rqFRBFU7lnnjNt9.js +201 -0
  225. package/cdn/assets/6b6s5IgeVwRY9P2V.js +367 -0
  226. package/cdn/assets/8xJqIpI3i63EGuLs.js +522 -0
  227. package/cdn/assets/9p5WDkFicYKTatuq.js +7 -0
  228. package/cdn/assets/B-TEQ5laJQKfikUa.js +193 -0
  229. package/cdn/assets/B2OGndaMH7WCvuMK.js +96 -0
  230. package/cdn/assets/{wM7DzeOpoEGBVDBe.js → B3AsVCTRSPU1ivoY.js} +2 -2
  231. package/cdn/assets/B3BU0-K9s4221y_E.js +199 -0
  232. package/cdn/assets/{BzbP4jaN13wC9aSi.js → B5znT6l0E-uRlPxA.js} +37 -37
  233. package/cdn/assets/{CMVTwWHsRgyfSEDM.js → B6OFPBPyKNkonkt9.js} +67 -65
  234. package/cdn/assets/B6bTGjqGJ3hSb6pB.js +8 -0
  235. package/cdn/assets/B6h2EKukHEqfcsPq.js +324 -0
  236. package/{browser/esm/BAH_cWcQEIBKWnl6.mjs → cdn/assets/B8-nLKLPjZ7pIJdE.js} +48 -37
  237. package/cdn/assets/BAhj7LTdgVDdLIKM.js +19 -0
  238. package/cdn/assets/{C7fu6LrSMBlHqwUy.js → BDihhtyza6JVj9NA.js} +4 -4
  239. package/cdn/assets/{C5EKgE9Owsc_juw-.js → BFNrFZtdVve-yU4e.js} +1 -1
  240. package/cdn/assets/{PtGiIWFBYP-ujLmf.js → BFp4JZFwKkq3wPHv.js} +1 -1
  241. package/{browser/esm/_t0Mx-mUFVtmVNkU.mjs → cdn/assets/BHy_akSib7chMKWg.js} +1 -1
  242. package/cdn/assets/{ByUcqyCNfqi5Mm7w.js → BJjL3rPHHyI2VT5N.js} +1 -1
  243. package/cdn/assets/BKjJbAprthCpiw7j.js +161 -0
  244. package/cdn/assets/BOHADYkBeL7j5Ho7.js +73 -0
  245. package/cdn/assets/BQn64Kmc0TqWvQiu.js +23468 -0
  246. package/cdn/assets/BSW3wcvLJdkMerg-.js +106 -0
  247. package/cdn/assets/{FO1Jezau486fH4kN.js → BSzeqNbK-wYbCwiv.js} +1 -1
  248. package/cdn/assets/BT_kLzJXjQJNGh3-.js +100 -0
  249. package/{browser/esm/D-55MlIn7Wo_hdjI.mjs → cdn/assets/BXGRt1EwLc3igx5S.js} +328 -110
  250. package/cdn/assets/{BMlPFJ1glExv-70Z.js → BZbqsj8CH_yl3myW.js} +1 -1
  251. package/cdn/assets/{x6GcENwqoUVbd60j.js → B_oYpGQQp9ELbGXT.js} +1 -1
  252. package/cdn/assets/Be4tcI4SKU9TMyEs.js +393 -0
  253. package/cdn/assets/BikqeuAc1ownJULP.js +8 -0
  254. package/{browser/esm/BSCja5yvevmKZPBB.mjs → cdn/assets/Bj-ggr3Qgt0J39xx.js} +1 -1
  255. package/cdn/assets/{BpZ7P0CO148rR4zW.js → BjtBV7ztQseHdo8M.js} +20 -20
  256. package/cdn/assets/BlTY4-ozlyDyATkO.js +298 -0
  257. package/cdn/assets/BnQT4TCx14FYGPY3.js +9990 -0
  258. package/cdn/assets/{DZRm4H75lnEtOG8e.js → Bnj3M_FtbBvXs6S0.js} +48 -46
  259. package/{browser/esm/DxcRLd7wmBGDgJsA.mjs → cdn/assets/BoFEETlY0hZb0PRp.js} +1 -1
  260. package/cdn/assets/BpAcFe7In_tm1ABk.js +89 -0
  261. package/cdn/assets/{CFBgmXap8kmumhoz.js → Bq7qR2iV54cQ01_R.js} +127 -117
  262. package/{browser/esm/D2coM-dNrlLpnUu5.mjs → cdn/assets/BqM-W_oFdjeyu8N4.js} +670 -669
  263. package/cdn/assets/Bqig7R2_wU0MB4ED.js +90 -0
  264. package/cdn/assets/{DHH_uKVzQ_kRYO2N.js → BsqHMd3dlKhcIxe_.js} +18 -18
  265. package/cdn/assets/{CakrxSS_RXtKmcUX.js → BtkcL_9ZfETfOGfP.js} +98 -97
  266. package/cdn/assets/{ENtt4kmaU9mJfVEp.js → Bu13LK_GiwLEhVKN.js} +10 -10
  267. package/cdn/assets/{Dy44qJVkwNseMG-3.js → BxE8BJ1tb5HybBNO.js} +1 -1
  268. package/{browser/esm/DfESVLC8CAi8m8A7.mjs → cdn/assets/BxIfM-Ty_Y8PvQFM.js} +1 -1
  269. package/{browser/esm/DWgp4t9N9u0eWthH.mjs → cdn/assets/ByREbsIyjgFePvoo.js} +1 -1
  270. package/cdn/assets/{ZxsFYopF0_WWqw4Q.js → Bz4k83C83NmszjPX.js} +1 -1
  271. package/cdn/assets/{De2z8LdHaWRFiR5T.js → BzBqhomOXJGtdxGv.js} +2 -2
  272. package/cdn/assets/C-U3gssGyd3ntzi3.js +8 -0
  273. package/cdn/assets/C-XZlxDIT5yzdwLJ.js +1724 -0
  274. package/cdn/assets/C0gMuR6xw09uB9Y1.js +46 -0
  275. package/cdn/assets/{w5IQWbJETgHhqMsY.js → C3Qtch7pRtEQgfRY.js} +33 -33
  276. package/cdn/assets/C3xbTjAw1VI9Lxza.js +516 -0
  277. package/{browser/esm/8-jmVNNbOHuXFdVQ.mjs → cdn/assets/C4ou3rMjNo5m8Y1t.js} +123 -120
  278. package/cdn/assets/C5rqIz-t0kclqYgG.js +86 -0
  279. package/cdn/assets/{CSEMxasVyGCekxKf.js → C6axT8aFQqaiuRgS.js} +1 -1
  280. package/cdn/assets/{0vqRTRN0wEzWao1c.js → C6xvp_PZBhXeoGRc.js} +84 -83
  281. package/cdn/assets/C9KQwh85fRQ8P7ia.js +7 -0
  282. package/cdn/assets/C9pNgF73kPC5SCj_.js +8416 -0
  283. package/cdn/assets/{BlPn_DXaEXOPxMxC.js → CAFDldpwa2ZDlh3u.js} +1 -1
  284. package/cdn/assets/CAIREtREYTvydXO6.js +30 -0
  285. package/cdn/assets/{DYvBgX17ZerZSHEJ.js → CB-MJyGrzQbmJE0g.js} +31 -31
  286. package/cdn/assets/{CIyaijfp6itgRpFM.js → CCos0hQMhVcaGwU0.js} +2 -2
  287. package/cdn/assets/CE-_DaE-8Sg4AM0v.js +183 -0
  288. package/cdn/assets/CFJ9wCSJYOoE1Lrz.js +1241 -0
  289. package/cdn/assets/CFJvtyImIjxJOno7.js +5117 -0
  290. package/{browser/esm/CTdFZ_I-41Vr6Dy4.mjs → cdn/assets/CGXU95J36TlX8lDH.js} +1 -1
  291. package/cdn/assets/CH9Ow0HqnUv_0K73.js +521 -0
  292. package/cdn/assets/{SNze-adFJwKuGSQW.js → CHSMmjtqQs2IqcYo.js} +1 -1
  293. package/cdn/assets/{DjdkGy-EI1kSo226.js → CImdnjQtd2Yn7uXl.js} +1 -1
  294. package/cdn/assets/{BvlfKrfrDhE9Jw4d.js → CIvOEYio4yfOR385.js} +2 -2
  295. package/{browser/esm/B0Wjc3lwtjKMwnvn.mjs → cdn/assets/CLUYMovkh-bwvZJ0.js} +1 -1
  296. package/cdn/assets/{BI6afPOpgNYkzIWv.js → CN4pF75weR3buzng.js} +2110 -1978
  297. package/cdn/assets/CNs9_C1xX4prXnCq.js +7 -0
  298. package/cdn/assets/CNx0AfRRVuznb3yg.js +1649 -0
  299. package/cdn/assets/{BeQ95CzwR65il0CK.js → CPGIT9PYUuWdSglk.js} +2 -3
  300. package/{browser/esm/BwOxnbR61WFJwy0A.mjs → cdn/assets/CRDxpPkzVM-9K8qp.js} +1 -1
  301. package/cdn/assets/CTmLSM7UhiKOIhgu.js +17 -0
  302. package/cdn/assets/{DAE3Kv0Vs0VuBecT.js → CUXpeET-vxHGYwKn.js} +1 -1
  303. package/cdn/assets/{DQjxp9lDP9DzP8ah.js → CVfeHUreAF1C9r7W.js} +45 -45
  304. package/{browser/esm/BPrHgyAsm2Htx15h.mjs → cdn/assets/CWOJrduWjvqg69sM.js} +1 -1
  305. package/cdn/assets/CX8Y07KdGzyOeCSo.js +1702 -0
  306. package/cdn/assets/CZG3fjfebhJvUipF.js +57594 -0
  307. package/{browser/esm/DEvZj68igS7Q8SZE.mjs → cdn/assets/CaQrZOnzyAelKzTt.js} +136 -144
  308. package/cdn/assets/CaayvSy_I7jjv7au.js +2230 -0
  309. package/cdn/assets/{aHTKr1ijZ6bRi3Zg.js → CbwxkvJm8JO4Ke8x.js} +4 -4
  310. package/cdn/assets/{B27vTQlxbHhSQJx8.js → Cc-jOsunTu0-Mla_.js} +8607 -6480
  311. package/cdn/assets/CcP8kT3MgwQ3vUnF.js +1299 -0
  312. package/cdn/assets/{CsrTRThObSryov1b.js → CcqUWXYGGj-psA9H.js} +2 -2
  313. package/cdn/assets/Cd2x-3RBbJNq0TuA.js +323 -0
  314. package/cdn/assets/{dn69mDhY7Xcc91kF.js → CeiY_ZCBlUsmH2rY.js} +20 -20
  315. package/cdn/assets/{ZSYS1J3uR7UQuHwZ.js → CgATW0IINhudprWa.js} +10 -10
  316. package/cdn/assets/CgovQHyOZcnsM53I.js +233 -0
  317. package/cdn/assets/{BAdRecWK1maKGOZd.js → ChSr970S44fUscYr.js} +1 -1
  318. package/cdn/assets/{B00ixdmb8-O5ijEp.js → CiGcHB-RQCGm-yoH.js} +1 -1
  319. package/cdn/assets/{CMxbiQ5J79M3n1tk.js → Cif0315haNLmyMj-.js} +723 -373
  320. package/cdn/assets/{DrI_S0A9TQvriTua.js → Cjj81VfZROKYtV3v.js} +1 -1
  321. package/cdn/assets/{CTI-mCJbJzitJZwj.js → Ck-YCK18HOJsHw_I.js} +1 -1
  322. package/cdn/assets/{px-aQ8dMjiWag_pV.js → ClFYlhnkBAxJCKn6.js} +1 -1
  323. package/cdn/assets/{Bsn-tUx172sEG2kR.js → CnOJpT4PcPuybSUB.js} +20 -20
  324. package/{browser/esm/CVcCUfSRsiZ1-6hs.mjs → cdn/assets/CnROzMriBlKuLOfF.js} +1 -1
  325. package/cdn/assets/{DeUXRggj8Oz9ru_i.js → CnzNEpCntiBfW9x5.js} +1 -1
  326. package/cdn/assets/{ycmpAs4kQfeh78Pa.js → CoqGjnCpY3LxqR0v.js} +1 -1
  327. package/cdn/assets/CqP5OkILMJUsRGxp.js +3853 -0
  328. package/cdn/assets/{BB4MW8sSYEXjPvvf.js → CtDb6Ft4ZQbglyKk.js} +5 -5
  329. package/cdn/assets/{qYca4mdySLkACfo1.js → CutcHdJ4BMcr7Yev.js} +1 -1
  330. package/cdn/assets/CwPsCkeHan5zXDyX.js +237 -0
  331. package/cdn/assets/{ChAKLV5zrGAHAof2.js → CxRXaI0C0QO5eGia.js} +50 -48
  332. package/{browser/esm/DVpi1vC8ixXvUQG_.mjs → cdn/assets/Cxk1E_D7BKR7Crmt.js} +1 -1
  333. package/cdn/assets/{DQEjvIGMgEkiaP6J.js → CyTOT4NnE9dWtJIT.js} +1 -1
  334. package/cdn/assets/{D-bNmX0QsA8SuT0m.js → D1zBLjB3GS_6EGzy.js} +33 -33
  335. package/cdn/assets/D2fdIQmCPlCrPRXy.js +781 -0
  336. package/cdn/assets/D3CTFn_17sHwswO5.js +182 -0
  337. package/cdn/assets/D4AbJuK7-E0JtxAo.js +257 -0
  338. package/cdn/assets/D4DsR2aIqjajGOKK.js +263 -0
  339. package/cdn/assets/D4jpK0BUd-tNqESg.js +7 -0
  340. package/cdn/assets/{DSviq1TNoiIAGW7W.js → D5kDtvIsPIJuJZSx.js} +1 -1
  341. package/cdn/assets/{DSXJHEORGmMQX_Mb.js → D6fWK15zTZFsgt1T.js} +12 -12
  342. package/cdn/assets/{D8DghdqjOtBzO2Wx.js → D7C_fe_jEfPhZh6v.js} +4 -4
  343. package/cdn/assets/{DicTo_3G-KZyWDiE.js → D7fpa_b5jL9kNuLc.js} +300 -345
  344. package/cdn/assets/{7i4WSxDsu2ApJJ2_.js → D9FLXw0Q3bpjVuQZ.js} +3 -3
  345. package/cdn/assets/DAlTqWR4DtigzJIp.js +86 -0
  346. package/cdn/assets/{Ba8taVvLslFcKS72.js → DBPCyXdxHLluh0T4.js} +27 -26
  347. package/cdn/assets/{Cv5PLuhEmh5IDHjb.js → DC0uSA4tHtqtV6Qf.js} +12 -12
  348. package/{browser/esm/lqknEt3DTma5Juxs.mjs → cdn/assets/DEtgba3E0qoHN6kX.js} +1 -1
  349. package/{browser/esm/BhkeuRcx8RlLCQ5E.mjs → cdn/assets/DEvc6BS99hZ9e4Nf.js} +1 -1
  350. package/cdn/assets/{DqBj-9o7UdXu4qhb.js → DFbfNcr6j1gD5R0e.js} +1 -1
  351. package/cdn/assets/{D-yz3V2UC54rwctD.js → DI0oF6zUpOe1dvtl.js} +2 -2
  352. package/cdn/assets/DKFKYAh8TvZ6nbQP.js +9633 -0
  353. package/cdn/assets/DKr4Z7Jlm9q1oByS.js +311 -0
  354. package/cdn/assets/DLGHrXPNZh3ZMjhS.js +196 -0
  355. package/cdn/assets/DLIywttw-YbpYzR9.js +1552 -0
  356. package/cdn/assets/{Dv8aQFTTaQBJKDDk.js → DLMAXayirBhfpTF4.js} +1 -1
  357. package/cdn/assets/DLb7DkSaAdwiJNw-.js +9 -0
  358. package/cdn/assets/{C9NyIoUahFiyRCxP.js → DLmLaWoLePonCiIs.js} +1 -1
  359. package/{browser/esm/DQIRFXG4MveFkK3I.mjs → cdn/assets/DN3iFnh1WSc7HR3p.js} +1 -1
  360. package/{browser/esm/DXo8mR6t5HGsmTcu.mjs → cdn/assets/DOJmeQHkbmz7giHc.js} +1 -1
  361. package/cdn/assets/{BN2d5U1nw7pRtOrn.js → DQM2LZ7Kj3QqfQQQ.js} +1 -1
  362. package/cdn/assets/DQwz3i9TNDHAmLmN.js +132 -0
  363. package/cdn/assets/{CWJzHmEgahdOfNjH.js → DTOHItHWueMl2jTm.js} +1 -1
  364. package/cdn/assets/{CCvBdPu7W2ZF6A9J.js → DTRBOYo39pUPMTpT.js} +9 -9
  365. package/{browser/esm/ztqpWR65YYMZ3EPk.mjs → cdn/assets/DVyIyNBrlUT9W9cY.js} +175 -167
  366. package/cdn/assets/{mK8HcIZyXkOTvL6E.js → DWcAYH0eBaOj-dU4.js} +7 -7
  367. package/cdn/assets/{CbTN0q6XnYGJqyEp.js → DX-iRDnwn8uZZIqp.js} +1372 -1366
  368. package/cdn/assets/DYeaE2TSAJ9-suNW.js +282 -0
  369. package/cdn/assets/{Bgbi7BFR3rN5qj51.js → DZiWWhATAOxJQZ_N.js} +22 -22
  370. package/cdn/assets/{CZOJogyZqMfUxcXj.js → DccxaAgL5rauj9rq.js} +1 -1
  371. package/{browser/esm/C3r_9RqlWrEmlXZ1.mjs → cdn/assets/DchNCIMGQQc9yEcv.js} +1 -1
  372. package/cdn/assets/{hg8WYI0Yy4WPPPoP.js → DdWtfDWDB6Yst5LZ.js} +11 -11
  373. package/cdn/assets/Dg-qsGzlATZbZ35c.js +164 -0
  374. package/cdn/assets/{BelX6bvQPsGuo-x3.js → DhUBLuQYjgwdF5EH.js} +2 -2
  375. package/cdn/assets/DiOOfu_7X2Cpk8QF.js +391 -0
  376. package/cdn/assets/{B3NWCYKXucbHhOix.js → DkZqI9EyJ9BaBNL_.js} +26 -26
  377. package/cdn/assets/{AjMG7Fb9r4Fk7Hsf.js → Dki3Mapev78nd9Kc.js} +18 -17
  378. package/{browser/esm/DlOVZD0OiAjouS6-.mjs → cdn/assets/DlbmuJxdMXIYpB6E.js} +1804 -1016
  379. package/cdn/assets/DqELE8YlqkR-PGLI.js +142 -0
  380. package/{browser/esm/M7RYrx20B_Yl_euJ.mjs → cdn/assets/Drbnn1LTgJDjS6Ha.js} +8 -8
  381. package/cdn/assets/Drfd0-JZwPXCnj5c.js +1391 -0
  382. package/cdn/assets/DsJVOPJWQSCx_2gE.js +8315 -0
  383. package/cdn/assets/DvcqASECnv0ZHrzg.js +214 -0
  384. package/cdn/assets/DwFQgKd9J_B2KTpR.js +240 -0
  385. package/cdn/assets/DwhJsbgOZVQE9ZPT.js +210 -0
  386. package/cdn/assets/DxJKKoj07ez4Cc1M.js +639 -0
  387. package/cdn/assets/{G5z0uVlyF6CLw_PA.js → DzdTkjOza0KfOVpJ.js} +2 -2
  388. package/cdn/assets/Dzno9raiwXxce_BQ.js +1306 -0
  389. package/cdn/assets/{DckmFyHxGX4Y1gOq.js → EQ9ocVP26wjlV0h8.js} +18 -17
  390. package/cdn/assets/{DxisV9_27l_WU-nk.js → FTUIrcTvIeHG6nzk.js} +5 -5
  391. package/cdn/assets/FfjEOAnadcVqxSUP.js +2265 -0
  392. package/cdn/assets/HEszSqNhIYK5QTuZ.js +61 -0
  393. package/cdn/assets/HI2Ksbl0-etNK-w-.js +36 -0
  394. package/{browser/esm/CQOyeq_-pg3CM-uA.mjs → cdn/assets/Hl08NtZ1eAIRJ5OF.js} +1 -1
  395. package/cdn/assets/IrI1Fo83qAWTNhz5.js +6149 -0
  396. package/cdn/assets/{CDAYVaQYywqaxg4O.js → JQaNzWKHZyWyQOJ0.js} +2 -2
  397. package/cdn/assets/{BtGmrIqU9W1L8zfZ.js → K83ea52GGB2voaRd.js} +1 -1
  398. package/{browser/esm/H-JnJQMcZQbpvjdb.mjs → cdn/assets/KHZcJAKLztwlFOCX.js} +1 -1
  399. package/cdn/assets/{DJqj66SnUcx0QmSN.js → MH5L1dIGBq_LYgJQ.js} +1 -1
  400. package/{browser/esm/BtdRr6IbtO6Gypsk.mjs → cdn/assets/MuXX7448MHFePqr9.js} +6 -5
  401. package/cdn/assets/{C0CeCYdLWLjySEFe.js → NV0lQG1Z_LlIL1xk.js} +15 -15
  402. package/cdn/assets/{Cw7AJWd0S2sjRmr6.js → OABpLvY7siKUyNIa.js} +1602 -1471
  403. package/cdn/assets/OSXSr855wNqulmp_.js +423 -0
  404. package/{browser/esm/RfHd1JATBlcsfLPv.mjs → cdn/assets/QPsDtDrq66DM_Jgr.js} +1 -1
  405. package/cdn/assets/{C32co-XulWTkEKrW.js → RaTCqgWoqpOqPZQk.js} +2 -2
  406. package/cdn/assets/{C-0viTjg1dT2F-sk.js → TMjhDpsh4dAyEK9h.js} +2 -2
  407. package/cdn/assets/TONCxYiGe47Rjhga.js +86 -0
  408. package/{browser/esm/CWoPWWRwMgkGPFFP.mjs → cdn/assets/TVEs01pqc117KeGZ.js} +2534 -1724
  409. package/cdn/assets/{BIsbcP5RXRU2XPfx.js → UXg8wCm37AcKqC56.js} +2 -2
  410. package/{browser/esm/Dc2ZwgbIEgYWwAsF.mjs → cdn/assets/Yqn8laB5RV0kueLN.js} +1 -1
  411. package/cdn/assets/{CSIZpJClc66_20kP.js → Z1o8piRdmQD2oQWI.js} +118 -269
  412. package/{browser/esm/DjtXfgbmXjUAoG0y.mjs → cdn/assets/ZO6hi53k1jfq_DU2.js} +1 -1
  413. package/{browser/esm/J9i3r1fU0H10b2hX.mjs → cdn/assets/ZbJ95fcT_MlmJnVS.js} +1 -1
  414. package/{browser/esm/i0P63Wd0RRlgJotb.mjs → cdn/assets/_7u2a1HvX3quwuxr.js} +1 -1
  415. package/cdn/assets/{DRm1R4uVOkaMfXNI.js → acJyiuSRKv5sM-Ti.js} +13 -7
  416. package/cdn/assets/bmjrEH7i8TNBt6SP.js +281 -0
  417. package/cdn/assets/c2U2dLzVvNTpyyqC.js +497 -0
  418. package/cdn/assets/gKmKdkfbYQQWehPu.js +3108 -0
  419. package/cdn/assets/{D32D_biNXRCZ24vG.js → iROLGMv0365VtzWw.js} +46 -46
  420. package/cdn/assets/k_pfnr7cFrRmfgMa.js +12 -0
  421. package/cdn/assets/{Cy00y9b9j17Txyv1.js → luSDFTDDahiW2BkV.js} +1 -1
  422. package/cdn/assets/{CHMqT9DzYKTxPfP6.js → mmNCqaa6lU6cygSY.js} +1 -1
  423. package/cdn/assets/{D_pMOq6FdH4RSBLc.js → nQBuuL7ZHzDHpWHk.js} +754 -723
  424. package/cdn/assets/oQqrFmjkSYpR-YkT.js +8 -0
  425. package/cdn/assets/{Dp-GJXOMz_b8qAxD.js → qdrySZxuftgjgcvV.js} +2 -2
  426. package/cdn/assets/{C6INLvBy8kdzFpsX.js → sLmN3zWQq7lARToC.js} +639 -758
  427. package/{browser/esm/CFvKDDbrL3wpXnQH.mjs → cdn/assets/sSoL-JlTRttZ1-fW.js} +1 -1
  428. package/cdn/assets/v7jTlODG1H-cGQs0.js +278 -0
  429. package/cdn/assets/{VwGokBaawZfZiV2X.js → wA7bEwDV1UUss-PV.js} +1 -1
  430. package/cdn/assets/{Cfg4Dtndwurxv9LM.js → wK0g9YTrJa8xbPXn.js} +8 -8
  431. package/cdn/assets/wQOPOdvl3X5fq9Sd.js +104 -0
  432. package/{browser/esm/pc49xtHdprXZLW2X.mjs → cdn/assets/xZUqtJfNziRMVyQ7.js} +1 -1
  433. package/cdn/assets/{BuYS_ZjSlcvWZ1JC.js → yeI_qudcEuAsSDGK.js} +3162 -2130
  434. package/cdn/assets/{DNaPo7BQu6hr1fWq.js → ypqwC2WOP09mA_DM.js} +1 -1
  435. package/cdn/index.js +27 -17
  436. package/package.json +3 -3
  437. package/types/src/sheetxl.d.ts +1 -0
  438. package/browser/esm/BNIInlJQbJjH8B6G.mjs +0 -84250
  439. package/browser/esm/B_HB4y7AA88Z775Z.mjs +0 -91
  440. package/browser/esm/CdeXXPCp5cCYvGyD.mjs +0 -14
  441. package/browser/esm/Chr_TXM-48IsK8Va.mjs +0 -155
  442. package/browser/esm/Clx8vvGDOTWK_M2l.mjs +0 -484
  443. package/browser/esm/Cw-4uoMuq_m7ziA3.mjs +0 -36
  444. package/browser/esm/D-9f1NKcpuYSgond.mjs +0 -412
  445. package/browser/esm/D7CGuQcwpkiuesEI.mjs +0 -229
  446. package/browser/esm/D7kkzIFPqKBK94kO.mjs +0 -17952
  447. package/browser/esm/D88StfSjZJi5E8Xb.mjs +0 -5153
  448. package/browser/esm/D8exjrado9TJrBp-.mjs +0 -1946
  449. package/browser/esm/DGCOPbZbEmt0x9z0.mjs +0 -155
  450. package/browser/esm/DZRmBfjn2TgOTu5e.mjs +0 -3604
  451. package/browser/esm/D_7BWdsu8yejhUxy.mjs +0 -2353
  452. package/browser/esm/D_thhK0vSez8Yfle.mjs +0 -798
  453. package/browser/esm/Dv2z0548SZRGTN3l.mjs +0 -149
  454. package/browser/esm/DyeY6XwMQ_XNUHiW.mjs +0 -89
  455. package/browser/esm/FjNOhkR7-JAIaRP6.mjs +0 -19
  456. package/browser/esm/RLU85PsAYtKPUf6N.mjs +0 -71
  457. package/browser/esm/WMYR09ZOR8JbZEnx.mjs +0 -4748
  458. package/browser/esm/r2Az2Yc4_qj2-sn0.mjs +0 -398
  459. package/cdn/assets/514mXPTuNvdNgw35.js +0 -412
  460. package/cdn/assets/7Sg0ht_ZCMJkPurt.js +0 -516
  461. package/cdn/assets/B_3Musz0q2MSZ5H-.js +0 -799
  462. package/cdn/assets/BgyY4zVPZSXljoCZ.js +0 -14
  463. package/cdn/assets/BlIZ30huelIxNo6S.js +0 -91
  464. package/cdn/assets/BxqXOiOyI_XiOmvN.js +0 -156
  465. package/cdn/assets/CEYyp6Qrr_IopxpL.js +0 -22597
  466. package/cdn/assets/CILUMtSddGz7WXEv.js +0 -240
  467. package/cdn/assets/CL6Tgu_rUO6G-fyq.js +0 -2352
  468. package/cdn/assets/COMOqucXq7X1vi0P.js +0 -230
  469. package/cdn/assets/CRXSrbGNABtzf532.js +0 -399
  470. package/cdn/assets/CTvPIYWTcjwlJeEA.js +0 -237
  471. package/cdn/assets/CU5cKipVT1X8Xz7F.js +0 -156
  472. package/cdn/assets/Cw-4uoMuq_m7ziA3.js +0 -36
  473. package/cdn/assets/DCnWyVXikb_8Dat3.js +0 -61
  474. package/cdn/assets/DHugYwX4_ZyqGn-C.js +0 -1947
  475. package/cdn/assets/DOHh3pUXxMM09UY5.js +0 -3604
  476. package/cdn/assets/DlpgIJxNq2V4gdDq.js +0 -74
  477. package/cdn/assets/DuAbY54w5gJpQgss.js +0 -84250
  478. package/cdn/assets/DviEoeWW0EvDg1hr.js +0 -149
  479. package/cdn/assets/FjNOhkR7-JAIaRP6.js +0 -19
  480. package/cdn/assets/PzWqv-oXxEuzKdaT.js +0 -484
  481. package/cdn/assets/QJ4AkDD269D1MzmI.js +0 -89
  482. package/cdn/assets/fm3mUdTDo-STB36M.js +0 -4749
  483. package/cdn/assets/lWY3TbG2NDscy9He.js +0 -72
  484. package/cdn/assets/xlXDq-qoj7eOE6_T.js +0 -5153
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.12
3
+ *
4
+ * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ var e = class {
8
+ constructor(e) {
9
+ this._worker = null, this._nextId = 1, this._pendingRequests = /* @__PURE__ */ new Map(), this._workerFactory = e;
10
+ }
11
+ start() {
12
+ if (typeof Worker > "u") throw Error("Web Workers are not supported in this environment.");
13
+ return this._worker || (this._worker = this._workerFactory(), this._worker.onmessage = (e) => {
14
+ let { id: t, result: n, error: r } = e.data, i = this._pendingRequests.get(t);
15
+ if (i) {
16
+ if (this._pendingRequests.delete(t), r) {
17
+ let e = Error(r.message);
18
+ e.stack = r.stack, r.cause && (e.cause = r.cause), i.reject(e);
19
+ } else i.resolve(n);
20
+ }
21
+ }, this._worker.onerror = (e) => {
22
+ console.error("Worker error:", e), this._pendingRequests.forEach((t) => {
23
+ t.reject(/* @__PURE__ */ Error(`Worker failed: ${e.message}`));
24
+ }), this._pendingRequests.clear(), this._worker = null;
25
+ }), Promise.resolve();
26
+ }
27
+ execute(e) {
28
+ if (!this._worker) throw Error("Worker is not initialized. Call start() first.");
29
+ let t = this._nextId++;
30
+ return new Promise((n, r) => {
31
+ this._pendingRequests.set(t, {
32
+ resolve: n,
33
+ reject: r
34
+ }), this._worker.postMessage({
35
+ id: t,
36
+ params: e
37
+ });
38
+ });
39
+ }
40
+ terminate() {
41
+ this._worker &&= (this._worker.terminate(), null);
42
+ }
43
+ }, t = class {
44
+ constructor(e) {
45
+ this._onExecute = e;
46
+ }
47
+ execute(e) {
48
+ return this._onExecute(e);
49
+ }
50
+ start() {
51
+ return Promise.resolve();
52
+ }
53
+ terminate() {}
54
+ }, n = "var Et = Object.defineProperty, rr = (e, t, r) => () => {\n if (r) throw r[0];\n try {\n return e && (t = e(e = 0)), t;\n } catch (n) {\n throw r = [n], n;\n }\n}, nr = (e, t) => {\n let r = {};\n for (var n in e) Et(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || Et(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, _t = Object.defineProperty, ge = (e, t) => {\n let r = {};\n for (var n in e) _t(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || _t(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, ie = {\n Column: \"column\",\n Row: \"row\"\n};\n({ ...ie });\nfunction Ge(e, t) {\n if (e === t) return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor) return !1;\n let r, n, o;\n if (Array.isArray(e)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (!Ge(e[n], t[n])) return !1;\n return !0;\n }\n if (e instanceof Map && t instanceof Map) {\n if (e.size !== t.size) return !1;\n for (n of e.entries()) if (!t.has(n[0])) return !1;\n for (n of e.entries()) if (!Ge(n[1], t.get(n[0]))) return !1;\n return !0;\n }\n if (e instanceof Set && t instanceof Set) {\n if (e.size !== t.size) return !1;\n for (n of e.entries()) if (!t.has(n[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(e) && ArrayBuffer.isView(t)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (e[n] !== t[n]) return !1;\n return !0;\n }\n if (e.constructor === RegExp) return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString) return e.toString() === t.toString();\n if (o = Object.keys(e), r = o.length, r !== Object.keys(t).length) return !1;\n for (n = r; n-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, o[n])) return !1;\n for (n = r; n-- !== 0;) {\n let i = o[n];\n if ((i !== \"_owner\" || !e.$$typeof) && !Ge(e[i], t[i])) return !1;\n }\n return !0;\n }\n return e != e && t != t;\n}\nfunction ln(e) {\n let t = Object.prototype.toString.call(e);\n return t === \"[object RegExp]\" || t === \"[object Date]\" || (function(r) {\n return r.$$typeof === sn;\n })(e);\n}\nvar sn = typeof Symbol == \"function\" && Symbol.for ? /* @__PURE__ */ Symbol.for(\"react.element\") : 60103;\nfunction cn(e) {\n return /* @__PURE__ */ (function(t) {\n return !!t && typeof t == \"object\";\n })(e) && !ln(e);\n}\nfunction Oe(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Ee((r = e, Array.isArray(r) ? [] : {}), e, t) : e;\n var r;\n}\nfunction un(e, t, r) {\n return e.concat(t).map(function(n) {\n return Oe(n, r);\n });\n}\nfunction xt(e) {\n return Object.keys(e).concat((function(t) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(t).filter(function(r) {\n return Object.propertyIsEnumerable.call(t, r);\n }) : [];\n })(e));\n}\nfunction Tt(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction dn(e, t, r) {\n let n = {};\n return r.isMergeableObject(e) && xt(e).forEach(function(o) {\n n[o] = Oe(e[o], r);\n }), xt(t).forEach(function(o) {\n (function(i, l) {\n return Tt(i, l) && !(Object.hasOwnProperty.call(i, l) && Object.propertyIsEnumerable.call(i, l));\n })(e, o) || (Tt(e, o) && r.isMergeableObject(t[o]) ? n[o] = (function(i, l) {\n if (!l.customMerge) return Ee;\n let s = l.customMerge(i);\n return typeof s == \"function\" ? s : Ee;\n })(o, r)(e[o], t[o], r) : n[o] = Oe(t[o], r));\n }), n;\n}\nfunction Ee(e, t, r) {\n (r ||= {}).arrayMerge = r.arrayMerge || un, r.isMergeableObject = r.isMergeableObject || cn, r.cloneUnlessOtherwiseSpecified = Oe;\n let n = Array.isArray(t);\n return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : dn(e, t, r) : Oe(t, r);\n}\nEe.all = function(e, t) {\n if (!Array.isArray(e)) throw Error(\"first argument should be an array\");\n return e.reduce(function(r, n) {\n return Ee(r, n, t);\n }, {});\n};\nvar or = ge({\n DonePromise: () => pn,\n EmptyArray: () => De,\n EmptyObject: () => fn,\n OSType: () => pe,\n arrayMove: () => $n,\n asNumber: () => yn,\n camelToPrettyCase: () => hn,\n castToString: () => Nn,\n cloneObject: () => vn,\n consoleWithNoSource: () => Bn,\n deepEqual: () => Ge,\n deepFreeze: () => pr,\n deepMerge: () => Ee,\n diffValues: () => In,\n findEqualOrGreater: () => An,\n findEqualOrLesser: () => Rn,\n getFromPath: () => Fn,\n getPlatform: () => Ye,\n isDefined: () => kn,\n isEmpty: () => Ln,\n isEqualArrays: () => ar,\n isEqualBounds: () => _n,\n isNullOrUndefined: () => dr,\n isNumeric: () => wn,\n isObject: () => Fe,\n isPromiseLike: () => Mn,\n isRectInsideRect: () => On,\n isRectIntersect: () => fr,\n mergeContentful: () => Cn,\n removeEmptyProperties: () => lr,\n removeEqualValues: () => cr,\n removeEqualValuesLayered: () => ur,\n removeListenerAll: () => xn,\n roundAccurately: () => bn,\n setToPath: () => Un,\n splitNumber: () => Sn,\n subtractRect: () => Dn,\n textToKey: () => gn,\n toSafeJSON: () => ut,\n transpose: () => Tn,\n uuidV4: () => He,\n validEnumValue: () => mn\n}), De = Object.freeze([]), fn = Object.freeze({}), pn = Promise.resolve(), ir = (e) => e;\nfunction mn(e, t) {\n if (!Object.values(e).includes(t)) throw Error(`Invalid type: ${t ?? \"null\"}. Must be one of: ${Object.values(e).join(\", \")}.`);\n}\nfunction hn(e) {\n 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()) : \"\";\n}\nfunction gn(e) {\n return e.replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n}\nvar le = Array.from({ length: 256 }, (e, t) => (t + 256).toString(16).slice(1));\nfunction He() {\n let e = globalThis.crypto;\n if (e?.randomUUID) return e.randomUUID();\n if (e?.getRandomValues) {\n let t = e.getRandomValues(/* @__PURE__ */ new Uint8Array(16));\n return t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128, le[t[0]] + le[t[1]] + le[t[2]] + le[t[3]] + \"-\" + le[t[4]] + le[t[5]] + \"-\" + le[t[6]] + le[t[7]] + \"-\" + le[t[8]] + le[t[9]] + \"-\" + le[t[10]] + le[t[11]] + le[t[12]] + le[t[13]] + le[t[14]] + le[t[15]];\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(t) {\n let r = 16 * Math.random() | 0;\n return (t === \"x\" ? r : 3 & r | 8).toString(16);\n });\n}\nfunction yn(e) {\n let t = (function(r) {\n return 1 * r;\n })(e);\n return Number.isFinite(t) ? t : 0;\n}\nfunction wn(e) {\n let t = 1 * e;\n return Number.isFinite(t) && typeof t == \"number\";\n}\nvar Qe = [\n 1,\n 10,\n 100,\n 1e3,\n 1e4,\n 1e5,\n 1e6,\n 1e7,\n 1e8,\n 1e9,\n 1e10,\n 1e11,\n 0xe8d4a51000,\n 0x9184e72a000,\n 0x5af3107a4000,\n 0x38d7ea4c68000,\n 0x2386f26fc10000\n];\nfunction Sn(e) {\n let t = Math.abs(e);\n if (!Number.isFinite(t)) return null;\n let r = Math.trunc(t), n = t - r, o;\n r > 2 ** 53 - 1 ? o = Number(r.toExponential().split(\"e\")[1]) + 1 : (o = Math.ceil(Math.log10(r + 1)), Qe[o] <= r && o++);\n let i = 0, l = 0, s = 15 - o;\n if (n > 0 && s > 0) {\n let c = Qe[s];\n if (i = Math.round(n * c), i === c) r++, i = 0, r >= Qe[o] && o++;\n else if (i > 0) for (l = s; i % 10 == 0;) i /= 10, l--;\n }\n return {\n ip: e < 0 ? -r : r,\n fp: i,\n ipLength: o,\n fpLength: l\n };\n}\nfunction bn(e, t = 0) {\n if (e == null || !isFinite(e)) return null;\n let r = 10 ** t;\n return Number(Math.round(e * r) / r);\n}\nfunction vn(e) {\n return dr(e) ? e : JSON.parse(JSON.stringify(e));\n}\nvar En = (e, t) => e === t;\nfunction ar(e, t, r) {\n if (e === t) return !0;\n if (!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) return !1;\n r ||= En;\n let n = e.length;\n for (let o = 0; o < n; o++) if (!r(e[o], t[o])) return !1;\n return !0;\n}\nfunction _n(e, t) {\n return e === t || !(!e || !t) && e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;\n}\nfunction Fe(e) {\n return typeof e == \"object\" && !Array.isArray(e) && e !== null;\n}\nfunction lr(e) {\n if (typeof e != \"object\" || Array.isArray(e) || e === null) return e;\n let t = e;\n return Object.keys(t).forEach(function(r) {\n t[r] && typeof t[r] == \"object\" ? lr(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];\n }), Object.keys(e).length === 0 ? null : e;\n}\nfunction xn(e, t) {\n if (!e) return De;\n let r = e.length;\n for (let n = 0; n < r; n++) {\n let o = e[n];\n o && o(t);\n }\n return De;\n}\nfunction Tn(e) {\n if (!e) return e;\n let t = e.length, r = e[0].length, n = [];\n for (let o = 0; o < r; o++) n[o] = Array(t);\n for (let o = 0; o < t; o++) {\n let i = e[o];\n for (let l = 0; l < r; l++) n[l][o] = i[l];\n }\n return n;\n}\nvar sr = (e, t) => !(e !== t && !ar(e, t)) || !!e.isEqual?.(t);\nfunction cr(e, t, r = sr) {\n if (e == null || e === t) return null;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) return r(e, t) ? null : e;\n let n = Object.keys(e), o = n.length;\n if (o === 0) return null;\n let i = !1;\n for (let l = 0; l < o; l++) {\n let s = n[l];\n cr(e[s], t?.[s], r) === null && (i = !0, delete e[s]);\n }\n return i && Object.keys(e).length === 0 ? null : void 0;\n}\nfunction ur(e, t, r = sr) {\n if (e == null) return !0;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) {\n let s, c = !1;\n for (let d = 0; !c && d < t.length; d++) t[d] !== void 0 && (c = !0, s = t[d]);\n return c && (e === s || r(e, s));\n }\n let n = Object.keys(e), o = n.length;\n if (o === 0) return !0;\n let i = t.length, l = !1;\n for (let s = 0; s < o; s++) {\n let c = n[s], d = [];\n for (let m = 0; m < i; m++) {\n let a = t[m]?.[c];\n a !== void 0 && d.push(a);\n }\n ur(e[c], d, r) && (l = !0, delete e[c]);\n }\n return l && Object.keys(e).length === 0;\n}\nfunction Cn(...e) {\n let t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !Fe(e[t - 1])) return e[t - 1];\n let r = e[0] || {};\n for (let n = 1; n < t; n++) r = Ee(r, e[n] || {}, { arrayMerge: (o, i) => [...i] });\n return r;\n}\nfunction In(e, t) {\n let r = {}, n = Object.keys(t), o = n.length;\n for (let i = 0; i < o; i++) {\n let l = n[i], s = e[l], c = t[l];\n s !== c && (r[l] = s === void 0 ? c : s);\n }\n return Object.keys(r).length === 0 ? null : r;\n}\nfunction An(e, t, r = ir) {\n let n = 0, o = e.length - 1;\n for (; n <= o;) {\n let i = Math.floor((n + o) / 2), l = r(e[i]);\n if (l === t) return i;\n l < t ? n = i + 1 : o = i - 1;\n }\n return n;\n}\nfunction Rn(e, t, r = ir) {\n let n = e.length - 1, o = 0;\n for (; n >= o;) {\n let i = Math.floor((n + o) / 2), l = r(e[i]);\n if (l === t) return i;\n l > t ? n = i - 1 : o = i + 1;\n }\n return n;\n}\nfunction $n(e, t, r) {\n let n = e.slice();\n return n.splice(r < 0 ? n.length + r : r, 0, n.splice(t, 1)[0]), n;\n}\nfunction Nn(e) {\n return e == null || e === void 0 ? \"\" : typeof e == \"string\" ? e : \"\" + e;\n}\nfunction dr(e) {\n return e == null;\n}\nfunction kn(e) {\n return e != null;\n}\nfunction Ln(e) {\n return e == null || e === \"\";\n}\nfunction Mn(e) {\n return !!e && typeof e.then == \"function\";\n}\nfunction fr(e, t) {\n return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top);\n}\nfunction On(e, t) {\n return e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right;\n}\nfunction Dn(e, t, r = !1) {\n if (!t) return [e];\n if (!fr(e, t)) return [];\n let n = [], o = e, i = () => {\n t.top > o.top && t.top < o.bottom && (n.push({\n ...o,\n bottom: t.top\n }), o = {\n ...o,\n top: t.top\n });\n }, l = () => {\n t.bottom > o.top && t.bottom < o.bottom && (n.push({\n ...o,\n top: t.bottom\n }), o = {\n ...o,\n bottom: t.bottom\n });\n }, s = () => {\n t.right > o.left && t.right < o.right && (n.push({\n ...o,\n left: t.right\n }), o = {\n ...o,\n right: t.right\n });\n }, c = () => {\n t.left > o.left && t.left < o.right && (n.push({\n ...o,\n right: t.left\n }), o = {\n ...o,\n left: t.left\n });\n };\n return r ? (c(), s(), i(), l()) : (i(), l(), s(), c()), n;\n}\nfunction Fn(e, t) {\n let r = t.split(\".\"), n = e, o = r.length;\n for (let i = 0; i < o; i++) {\n let l = r[i];\n if (!n) return null;\n let s = n[l];\n if (typeof s == \"function\" && (s = s.bind(n)()), !s || !Fe(s)) return s;\n n = s;\n }\n return n ?? null;\n}\nfunction Un(e, t, r) {\n let n = t.split(\".\"), o = e;\n if (!o) throw Error(\"Can not set path to a null path.\");\n let i = n.length;\n for (let l = 0; o && l < i - 1; l++) {\n let s = n[l], c = o[s];\n if (c ?? (c = {}, o[s] = c), !Fe(c)) throw Error(\"Can not set path to a non object path.\");\n o = c;\n }\n 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.`);\n return o[n[i - 1]] = r, e;\n}\nfunction Bn(...e) {\n return new Promise((t) => {\n setTimeout(() => {\n Function(\"console.log.apply(console, arguments)\").apply(null, e), t();\n });\n });\n}\nvar pe = {\n Windows: \"windows\",\n MacOS: \"macos\",\n IOS: \"ios\",\n Linux: \"linux\",\n Android: \"android\",\n Safari: \"safari\",\n Firefox: \"firefox\",\n Unknown: \"unknown\"\n};\nfunction Ye() {\n let e = globalThis.navigator !== void 0 && globalThis.navigator.userAgent ? globalThis.navigator.userAgent.toLowerCase() : \"\";\n 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;\n}\nfunction pr(e) {\n Object.freeze(e);\n let t = e;\n return Object.keys(t).forEach((r) => {\n typeof t[r] != \"object\" || t[r] === null || Object.isFrozen(t[r]) || pr(t[r]);\n }), e;\n}\nfunction ut(e) {\n if (typeof e != \"object\" || !e) return e;\n if (typeof e.toJSON == \"function\") return e.toJSON();\n if (Array.isArray(e)) return e.map((r) => ut(r));\n if (typeof e.toString == \"function\" && e.toString !== Object.prototype.toString) return e.toString();\n let t = {};\n for (let r in e) e.hasOwnProperty(r) && (t[r] = ut(e[r]));\n return t;\n}\nge({\n EmptyCell: () => mr,\n EmptyRange: () => Pn,\n EmptyRanges: () => jn,\n EmptySelection: () => Kn,\n InsertCutShift: () => ve,\n cellToRange: () => Xn,\n classifyInsertCut: () => to,\n columnFirstCellComparator: () => Sr,\n columnFirstRangeComparator: () => hr,\n createCellComparator: () => xr,\n createConflatingRanges: () => eo,\n createRangeComparator: () => _r,\n defaultRange: () => qn,\n extendRangeToIntersectingRanges: () => $r,\n extendRangeToUnionRanges: () => Wn,\n intersectRanges: () => Ar,\n isCellWithinRange: () => zn,\n isEqualCells: () => Tr,\n isEqualRanges: () => gt,\n isEqualRangesArrays: () => Ir,\n isEqualSelectionCoords: () => Rr,\n isRangeWithinRange: () => Cr,\n isRangesIntersect: () => yt,\n isRefusedInsertCut: () => ro,\n isSingleCell: () => Vn,\n isValidRange: () => Hn,\n mergeRangeCoordValues: () => kr,\n reverseColumnFirstCellComparator: () => Er,\n reverseColumnFirstRangeComparator: () => wr,\n reverseRowFirstCellComparator: () => vr,\n reverseRowFirstRangeComparator: () => yr,\n rowFirstCellComparator: () => br,\n rowFirstRangeComparator: () => gr,\n sanitizeRange: () => Nr,\n sanitizeRangeArray: () => Yn,\n translateRange: () => Jn,\n unionRanges: () => dt,\n unionRangesArrays: () => Gn\n});\nvar mr = Object.freeze({\n colIndex: 0,\n rowIndex: 0\n}), Pn = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n}), jn = De, Kn = Object.freeze({\n cell: mr,\n ranges: De,\n rangeIndex: -1\n});\nfunction hr(e, t) {\n return e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart;\n}\nfunction gr(e, t) {\n return e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart;\n}\nfunction yr(e, t) {\n return e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd;\n}\nfunction wr(e, t) {\n return e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd;\n}\nfunction Sr(e, t) {\n return e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex;\n}\nfunction br(e, t) {\n return e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex;\n}\nfunction vr(e, t) {\n return e.rowIndex === t.rowIndex ? t.colIndex - e.colIndex : t.rowIndex - e.rowIndex;\n}\nfunction Er(e, t) {\n return e.colIndex === t.colIndex ? t.rowIndex - e.rowIndex : t.colIndex - e.colIndex;\n}\nfunction _r(e = ie.Row, t = !1) {\n return t ? e === ie.Column ? wr : yr : e === ie.Column ? hr : gr;\n}\nfunction xr(e = ie.Row, t = !1) {\n return t ? e === ie.Column ? Er : vr : e === ie.Column ? Sr : br;\n}\nfunction Tr(e, t) {\n return e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex && e.scope === t.scope;\n}\nfunction gt(e, t) {\n 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;\n}\nfunction zn(e, t) {\n if (!e || !t) return !1;\n let r = e.rowIndex;\n if (r < t.rowStart || r > t.rowEnd) return !1;\n let n = e.colIndex;\n return !(n < t.colStart || n > t.colEnd);\n}\nfunction Cr(e, t) {\n return !(!e || !t) && !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd);\n}\nfunction yt(e, t) {\n return !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd);\n}\nfunction Ir(e, t) {\n if (e === t) return !0;\n if (!e || !t || e.length !== t.length) return !1;\n for (let r = 0; r < e.length; r++) if (!gt(e[r], t[r])) return !1;\n return !0;\n}\nfunction Vn(e) {\n return !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd;\n}\nfunction Xn(e, t) {\n if (!e) return null;\n let r = t;\n 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;\n}\nfunction Ar(e, t, r) {\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n if (!e && !t || e.rowStart > t.rowEnd || e.rowEnd < t.rowStart || e.colStart > t.colEnd || e.colEnd < t.colStart) return null;\n let n = Math.max(e.colStart, t.colStart), o = Math.max(e.rowStart, t.rowStart), i = Math.min(e.colEnd, t.colEnd), l = Math.min(e.rowEnd, t.rowEnd), s = r;\n return s ? (s.colStart = n, s.rowStart = o, s.colEnd = i, s.rowEnd = l) : s = {\n colStart: n,\n rowStart: o,\n colEnd: i,\n rowEnd: l\n }, s;\n}\nfunction dt(e, t, r) {\n if (!e && !t) return null;\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n let n = Math.min(e.colStart, t.colStart), o = Math.min(e.rowStart, t.rowStart), i = Math.max(e.colEnd, t.colEnd), l = Math.max(e.rowEnd, t.rowEnd), s = r;\n return s ? (s.colStart = n, s.rowStart = o, s.colEnd = i, s.rowEnd = l) : s = {\n colStart: n,\n rowStart: o,\n colEnd: i,\n rowEnd: l\n }, s;\n}\nfunction Rr(e, t) {\n return e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!Tr(e.cell, t.cell) && Ir(e.ranges, t.ranges);\n}\nfunction Gn(e, t, r) {\n if (!e || e.length === 0) return null;\n if (e.length === 1 && !t) return e[0];\n let n = e[0];\n for (let o = 1; o < e.length; o++) n = dt(n, e[o], r);\n return t && (n = dt(n, t, r)), n;\n}\nfunction Hn(e) {\n 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);\n}\nfunction Wn(e, t) {\n if (!t || t.length === 0) return e;\n let r = e, n = null;\n for (; !gt(r, n);) n = r, r = $r(n, t);\n return r;\n}\nfunction $r(e, t) {\n if (!t || t.length === 0) return e;\n let r = { ...e };\n for (let n = 0; n < t.length; n++) {\n let o = t[n];\n yt(r, o) && (r.rowStart = Math.min(r.rowStart, o.rowStart), r.colStart = Math.min(r.colStart, o.colStart), r.rowEnd = Math.max(r.rowEnd, o.rowEnd), r.colEnd = Math.max(r.colEnd, o.colEnd));\n }\n return r;\n}\nfunction Jn(e, t = -e.rowStart, r = -e.colStart, n) {\n return n ? (n.colStart = e.colStart + r, n.rowStart = e.rowStart + t, n.colEnd = e.colEnd + r, n.rowEnd = e.rowEnd + t, n) : {\n colStart: e.colStart + r,\n rowStart: e.rowStart + t,\n colEnd: e.colEnd + r,\n rowEnd: e.rowEnd + t\n };\n}\nfunction Nr(e, t) {\n return e ? e.scope ? {\n colStart: e.colIndex ?? e.colStart ?? t?.colStart ?? 0,\n rowStart: e.rowIndex ?? e.rowStart ?? t?.rowStart ?? 0,\n colEnd: e.colIndex ?? e.colEnd ?? t?.colEnd ?? 0,\n rowEnd: e.rowIndex ?? e.rowEnd ?? t?.rowEnd ?? 0,\n scope: e.scope\n } : {\n colStart: e.colIndex ?? e.colStart ?? t?.colStart ?? 0,\n rowStart: e.rowIndex ?? e.rowStart ?? t?.rowStart ?? 0,\n colEnd: e.colIndex ?? e.colEnd ?? t?.colEnd ?? 0,\n rowEnd: e.rowIndex ?? e.rowEnd ?? t?.rowEnd ?? 0\n } : null;\n}\nfunction Yn(e, t) {\n if (!e) return null;\n let r = e.length, n = Array(r);\n for (let o = 0; o < r; o++) n[o] = Nr(e[o], t);\n return n;\n}\nfunction qn(e, t, r) {\n 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) : {\n colStart: e.colStart ?? t.colStart,\n rowStart: e.rowStart ?? t.rowStart,\n colEnd: e.colEnd ?? t.colEnd,\n rowEnd: e.rowEnd ?? t.rowEnd\n } : t;\n}\nvar Zn = [null, null], Qn = (e, t, r) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction kr(e, t = 2, r, n = ie.Row, o) {\n let i = [...e];\n if (t <= 0 || e.length <= 1) return i;\n let l = n === ie.Column, s = 0, c = !1;\n do {\n let d = i.sort(_r(l ? ie.Row : ie.Column));\n i = [], i.push(d[0]);\n let m = d.length, a = 0, p = d[0], b = p.colStart, S = p.rowStart, A = p.colEnd, U = p.rowEnd;\n for (let h = 1; h < m; h++) {\n let y = d[h], w = !1;\n if (w = l ? p && S === y.rowStart && U === y.rowEnd && A + 1 === y.colStart : p && b === y.colStart && A === y.colEnd && U + 1 === y.rowStart, w) {\n let D = {\n colStart: b,\n rowStart: S,\n colEnd: l ? y.colEnd : A,\n rowEnd: l ? U : y.rowEnd\n };\n if (p.value !== void 0 && (D.value = p.value), r) {\n let z = o ?? [null, null];\n z[0] = p, z[1] = y, D = r(z, D, n);\n }\n if (D) {\n i[a] = D, c = !0, p = D, b = p.colStart, S = p.rowStart, A = p.colEnd, U = p.rowEnd;\n continue;\n }\n }\n i[++a] = y, p = y, b = p.colStart, S = p.rowStart, A = p.colEnd, U = p.rowEnd;\n }\n s++, l = !l, s === 1 && (c = !0);\n } while (s < t && c && i.length > 1);\n return i;\n}\nfunction eo(e, t = !1) {\n let r = [], n, o = null, i = -(2 ** 53 - 1), l = -(2 ** 53 - 1);\n return {\n append: (s, c, d) => {\n let m = !0, a = d !== void 0;\n if (a) {\n let S = e ? e(n, d, t) : n === d ? d : void 0;\n S === void 0 ? m = !1 : d = S;\n }\n if (m && c === l + 1 && s === i) return t ? o.rowEnd = c : o.colEnd = c, l = c, void (n = d);\n o && r.push(o);\n let p = t ? s : c, b = t ? c : s;\n o = {\n colStart: p,\n rowStart: b,\n colEnd: p,\n rowEnd: b\n }, a && (o.value = d), i = s, l = c, n = d;\n },\n done: (s) => (o &&= (r.push(o), null), s ? kr(r, 3, s === !0 ? Qn : s, t ? ie.Column : ie.Row, Zn) : r)\n };\n}\nvar ve = {\n Close: \"close\",\n Blank: \"blank\",\n Inside: \"inside\",\n Tear: \"tear\"\n};\nfunction to(e, t, r) {\n let n = r === ie.Row;\n 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;\n}\nfunction ro(e) {\n return e === ve.Inside || e === ve.Tear;\n}\nvar q = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, J = {\n Html: \"text/html\",\n Plain: \"text/plain\",\n Png: \"image/png\"\n};\nge({\n findNextCellWithinSelection: () => Lr,\n traverseHiddenHeaders: () => fe\n});\nfunction fe(e, t, r, n) {\n if (!e) return t;\n let o = t, i = r === q.Right || r === q.Down;\n for (;;) {\n let l = e(o, !i);\n if (l === 0) return o;\n let s = i ? o + l : o - l;\n if (n !== void 0 && (i ? s > n : s < n)) return n;\n o = s;\n }\n}\nfunction Lr(e, t = q.Right, r, n, o, i = null) {\n if (i && Rr(i, e)) return e;\n let l = e.ranges, s = e.rangeIndex, c = l[s];\n if (!yt({\n rowStart: e.cell.rowIndex,\n colStart: e.cell.colIndex,\n rowEnd: e.cell.rowIndex,\n colEnd: e.cell.colIndex\n }, c)) return e;\n let d = { ...e.cell }, m = s;\n switch (t) {\n case q.Right:\n d.colIndex = fe(o, d.colIndex + 1, t, c.colEnd + 1);\n break;\n case q.Left:\n d.colIndex = fe(o, d.colIndex - 1, t, c.colStart - 1);\n break;\n case q.Down:\n d.rowIndex = fe(n, d.rowIndex + 1, t, c.rowEnd + 1);\n break;\n case q.Up: d.rowIndex = fe(n, d.rowIndex - 1, t, c.rowStart - 1);\n }\n let a = (S) => {\n if (S) {\n m = s >= l.length - 1 ? 0 : s + 1;\n let A = l[m];\n d = {\n colIndex: A.colStart,\n rowIndex: A.rowStart\n };\n } else {\n m = s <= 0 ? l.length - 1 : s - 1;\n let A = l[m];\n d = {\n colIndex: A.colEnd,\n rowIndex: A.rowEnd\n };\n }\n };\n if (t === q.Right && d.colIndex > c.colEnd && d.rowIndex === c.rowEnd) a(!0);\n else if (t === q.Left && d.colIndex < c.colStart && d.rowIndex === c.rowStart) a(!1);\n else if (t === q.Down && d.colIndex === c.colEnd && d.rowIndex > c.rowEnd) a(!0);\n else if (t === q.Up && d.colIndex === c.colStart && d.rowIndex < c.rowStart) a(!1);\n else {\n let S = d.rowIndex, A = d.colIndex;\n switch (t) {\n case q.Right:\n A > c.colEnd && (S = fe(n, S + 1, t, c.rowEnd + 1), A = c.colStart, S > c.rowEnd && (S = c.rowStart));\n break;\n case q.Left:\n A < c.colStart && (S = fe(n, S - 1, t, c.rowStart - 1), A = c.colEnd, S < c.rowStart && (S = c.rowEnd));\n break;\n case q.Down:\n S > c.rowEnd && (A = fe(o, A + 1, t, c.colEnd + 1), S = c.rowStart, A > c.colEnd && (A = c.colStart));\n break;\n case q.Up: S < c.rowStart && (A = fe(o, A - 1, t, c.colStart - 1), S = c.rowEnd, A < c.colStart && (A = c.colEnd));\n }\n d = {\n rowIndex: S,\n colIndex: A\n };\n }\n let p = r(d);\n if (!Cr(p, c)) {\n let S = Ar(p, c);\n S && (p = S);\n }\n let b = {\n rowStart: fe(n, p.rowStart, q.Down, p.rowEnd),\n colStart: fe(o, p.colStart, q.Right, p.colEnd),\n rowEnd: fe(n, p.rowEnd, q.Up, p.rowStart),\n colEnd: fe(o, p.colEnd, q.Left, p.colStart)\n };\n if (b.rowStart !== d.rowIndex || b.colStart !== d.colIndex) {\n switch (t) {\n case q.Right:\n l[m].colStart === b.colStart && l[m].colEnd === b.colEnd && (d.rowIndex = b.rowEnd), d.colIndex = b.colEnd;\n break;\n case q.Left:\n 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;\n break;\n case q.Down:\n l[m].rowStart === b.rowStart && l[m].rowEnd === b.rowEnd && (d.colIndex = b.colEnd), d.rowIndex = b.rowEnd;\n break;\n 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;\n }\n return Lr({\n cell: d,\n ranges: e.ranges,\n rangeIndex: m\n }, t, r, n, o, i ?? e);\n }\n return {\n ranges: e.ranges,\n cell: d,\n rangeIndex: m\n };\n}\nvar no, $e = (e, t) => {\n if (e.length >= t) return e;\n let r = new Int32Array(Math.max(t, 2 * e.length));\n return r.set(e), r;\n}, Ne = /* @__PURE__ */ new Int32Array(1024), et = (e) => (Ne.length < e && (Ne = new Int32Array(Math.max(e, 2 * Ne.length))), Ne.fill(0, 0, e), Ne), oo = class {\n constructor(e, t, r, n) {\n 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;\n let o = e.count;\n this._n = o;\n let i = new Int32Array(o), l = new Int32Array(o), s = new Int32Array(o), c = new Int32Array(o), d = r ? e.colS : e.rowS, m = r ? e.colE : e.rowE, a = r ? e.rowS : e.colS, p = r ? e.rowE : e.colE;\n for (let h = 0; h < o; h++) n ? (i[h] = -m[h], l[h] = -d[h], s[h] = -p[h], c[h] = -a[h]) : (i[h] = d[h], l[h] = m[h], s[h] = a[h], c[h] = p[h]);\n this._M0 = i, this._M1 = l, this._m0 = s, this._m1 = c;\n let b = r ? t.colStart : t.rowStart, S = r ? t.colEnd : t.rowEnd, A = S - b + 1, U = new Int32Array(o);\n if (o < 256 || A > 16 * o) {\n for (let h = 0; h < o; h++) U[h] = h;\n U.sort((h, y) => i[h] - i[y] || h - y);\n } else {\n let h = n ? -S : b, y = et(A + 1);\n for (let w = 0; w < o; w++) y[i[w] - h + 1]++;\n for (let w = 1; w <= A; w++) y[w] += y[w - 1];\n for (let w = 0; w < o; w++) U[y[i[w] - h]++] = w;\n }\n this._order = U, this._active = new Int32Array(Math.min(2 * o, 1024)), this._scratch = new Int32Array(this._active.length);\n }\n _stable(e) {\n return this._isReverse ? this._n - 1 - e : e;\n }\n _compareEvents(e, t) {\n let r = e >> 1, n = t >> 1, o = 1 & e, i = 1 & t, l = this._m0, s = this._m1, c = o ? s[r] : l[r], d = i ? s[n] : l[n];\n if (c !== d) return c - d;\n if (o !== i) return o - i;\n let m = o ? l[r] : s[r], a = i ? l[n] : s[n];\n return m === a ? this._stable(r) - this._stable(n) : m - a;\n }\n _sortEvents(e, t, r, n) {\n let o = n - r + 1;\n if (t < 256 || o > 16 * t) return e.subarray(0, t).sort((a, p) => this._compareEvents(a, p)), e;\n let i = this._m0, l = this._m1, s = e, c = this._scratch;\n c.length < t && (c = this._scratch = new Int32Array(t));\n let d = et(o + 1);\n for (let a = 0; a < t; a++) {\n let p = s[a];\n d[(1 & p ? i[p >> 1] : l[p >> 1]) - r + 1]++;\n }\n for (let a = 1; a <= o; a++) d[a] += d[a - 1];\n for (let a = 0; a < t; a++) {\n let p = s[a];\n c[d[(1 & p ? i[p >> 1] : l[p >> 1]) - r]++] = p;\n }\n let m = 0;\n for (let a = 0; a < t; a++) 1 & c[a] || (s[m++] = c[a]);\n for (let a = 0; a < t; a++) 1 & ~c[a] || (s[m++] = c[a]);\n d = et(o + 1);\n for (let a = 0; a < t; a++) {\n let p = s[a];\n d[(1 & p ? l[p >> 1] : i[p >> 1]) - r + 1]++;\n }\n for (let a = 1; a <= o; a++) d[a] += d[a - 1];\n for (let a = 0; a < t; a++) {\n let p = s[a];\n c[d[(1 & p ? l[p >> 1] : i[p >> 1]) - r]++] = p;\n }\n return this._scratch = s, this._events = c, c;\n }\n _advanceBand() {\n let e = this._n, t = this._M0, r = this._M1, n = this._order, o, i = this._active, l = this._activeLen;\n if (this._hasBand) {\n let a = this._bandEnd, p = 0;\n for (let b = 0; b < l; b++) {\n let S = i[b];\n r[S >> 1] > a && (i[p++] = S);\n }\n l = p;\n }\n let s = this._nextOrder;\n if (l > 0) o = this._bandEnd + 1;\n else {\n if (s >= e) return this._activeLen = 0, this._done = !0, !1;\n o = t[n[s]];\n }\n let c = s;\n for (; c < e && t[n[c]] === o;) c++;\n let d = c - s;\n if (d > 0) {\n let a = 2 * d, p = this._events;\n p.length < a && (p = this._events = new Int32Array(Math.max(a, 2 * p.length)));\n let b = this._m0, S = this._m1, A = 2 ** 53 - 1, U = -(2 ** 53 - 1), h = 0;\n if (this._isReverse) for (let z = c - 1; z >= s; z--) {\n let k = n[z];\n p[h++] = k << 1, p[h++] = k << 1 | 1, b[k] < A && (A = b[k]), S[k] > U && (U = S[k]);\n }\n else for (let z = s; z < c; z++) {\n let k = n[z];\n p[h++] = k << 1, p[h++] = k << 1 | 1, b[k] < A && (A = b[k]), S[k] > U && (U = S[k]);\n }\n let y = this._sortEvents(p, a, A, U), w = l + a, D = this._scratch;\n if ((D === y || D.length < w) && (D = new Int32Array(Math.max(w, 2 * i.length))), l === 0) D.set(y.subarray(0, a));\n else {\n let z = 0, k = 0, R = 0;\n for (; z < l && k < a;) this._compareEvents(i[z], y[k]) <= 0 ? D[R++] = i[z++] : D[R++] = y[k++];\n for (; z < l;) D[R++] = i[z++];\n for (; k < a;) D[R++] = y[k++];\n }\n this._scratch = i.length >= D.length ? i : new Int32Array(D.length), i = this._active = D, l = w;\n }\n this._activeLen = l, this._nextOrder = c;\n let m = c < e ? t[n[c]] - 1 : 2 ** 53 - 1;\n for (let a = 0; a < l; a++) {\n let p = r[i[a] >> 1];\n p < m && (m = p);\n }\n return this._bandStart = o, this._bandEnd = m, this._hasBand = !0, this._sweepBand(), !0;\n }\n _sweepBand() {\n let e = this._active, t = this._activeLen, r = this._m0, n = this._m1, o = this._rMinS, i = this._rMinE, l = this._rOff, s = this._pool, c = this._overlaps, d = 0, m = 0, a = 0, p = 0, b = (S, A) => {\n a >= o.length && (o = this._rMinS = $e(o, a + 1), i = this._rMinE = $e(i, a + 1), l = this._rOff = $e(l, o.length + 1)), o[a] = S, i[a] = A, l[a] = m, a++, m + d > s.length && (s = this._pool = $e(s, m + d));\n for (let U = 0; U < d; U++) s[m++] = c[U];\n };\n for (let S = 0; S < t; S++) {\n let A = e[S], U = A >> 1;\n if (1 & A) {\n let h = n[U];\n if (p <= h && b(p, h), d > 1) {\n let y = d - 1;\n for (; y >= 0 && c[y] !== U;) y--;\n y !== -1 && (c[y] = c[d - 1]);\n }\n d--, p = h + 1;\n } else {\n let h = r[U];\n d > 0 && p < h && b(p, h - 1), d >= c.length && (c = this._overlaps = $e(c, d + 1)), c[d++] = U, p = h;\n }\n }\n l[a] = m, this._rCount = a, this._region = -1, this._rInter = null;\n }\n _setRegion(e) {\n let t = this._isReverse, r = t ? 0 - this._bandEnd : this._bandStart, n = t ? 0 - this._bandStart : this._bandEnd, o = this._rMinS[e], i = this._rMinE[e], l = t ? 0 - i : o, s = t ? 0 - o : i;\n 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);\n let c = this._rInter;\n if (c) {\n let d = c[e];\n d ||= c[e] = this._materialize(e), this.intersection = d;\n } else this.intersection = this._materialize(e);\n }\n nextRegion() {\n if (this._done) return !1;\n let e = this._region + 1;\n for (; !this._hasBand || e >= this._rCount;) {\n if (!this._advanceBand()) return !1;\n e = 0;\n }\n return this._region = e, this._setRegion(e), !0;\n }\n _setCell(e) {\n let t = this._isReverse, r = t ? 0 - this._major : this._major, n = t ? 0 - this._minor : this._minor;\n this._isColumn ? (this.cellCol = r, this.cellRow = n) : (this.cellRow = r, this.cellCol = n), e !== this._region && (this._region = e, this._setRegion(e));\n }\n _enterBandByCell() {\n this._rInter = this._bandEnd > this._bandStart ? Array(this._rCount) : null, this._major = this._bandStart;\n }\n nextCell() {\n if (this._done) return !1;\n let e = this._region;\n if (!this._hasBand || e < 0) {\n if (!this._hasBand) {\n if (!this._advanceBand()) return !1;\n this._enterBandByCell();\n }\n return this._minor = this._rMinS[0], this._setCell(0), !0;\n }\n let t = this._minor + 1;\n if (t <= this._rMinE[e]) return this._minor = t, this._setCell(e), !0;\n if (e++, e >= this._rCount && (e = 0, ++this._major > this._bandEnd)) {\n if (!this._advanceBand()) return !1;\n this._enterBandByCell();\n }\n return this._minor = this._rMinS[e], this._setCell(e), !0;\n }\n seekCell(e, t) {\n if (this._done) return !1;\n let r = this._isReverse, n = this._isColumn ? t : e, o = this._isColumn ? e : t;\n if (r && (n = -n, o = -o), this._hasBand && this._region >= 0 && (n < this._major || n === this._major && o <= this._minor)) return this.nextCell();\n for (;;) {\n if (!this._hasBand || n > this._bandEnd) {\n if (!this._advanceBand()) return !1;\n this._enterBandByCell();\n continue;\n }\n if (n < this._bandStart) return this._major = this._bandStart, this._minor = this._rMinS[0], this._setCell(0), !0;\n this._major = n;\n let i = this._rMinE, l = 0, s = this._rCount;\n for (; l < s;) {\n let c = l + s >>> 1;\n i[c] < o ? l = c + 1 : s = c;\n }\n if (l < this._rCount) {\n let c = this._rMinS[l];\n return this._minor = c > o ? c : o, this._setCell(l), !0;\n }\n if (!(++this._major > this._bandEnd)) return this._minor = this._rMinS[0], this._setCell(0), !0;\n if (!this._advanceBand()) return !1;\n this._enterBandByCell();\n }\n }\n}, je = Object.freeze({\n done: !0,\n value: void 0\n});\n(function(e) {\n class t extends oo {\n constructor(...o) {\n super(...o), this._reuseOverlaps = null;\n }\n _materialize(o) {\n let i = this._rOff, l = this._pool, s = this._store.value, c = i[o], d = i[o + 1], m = this._reuseOverlaps;\n m ? m.length = 0 : m = [];\n for (let a = c; a < d; a++) m.push(s[l[a]]);\n return m;\n }\n }\n class r {\n constructor(o, i) {\n if (this._sweep = null, this._isByCell = !1, this._cellComparator = null, this._lastCell = null, this._reuse = null, !o || o.length === 0) return;\n let l, s = !0, c = !1, d = !1;\n if (i && (s = (i.axis ?? ie.Column) !== ie.Row, c = i.reverse ?? !1, d = i.byCell ?? !1, l = i.reuseIterator), this._isByCell = d, l) {\n let y = typeof l == \"boolean\" ? {\n done: !1,\n value: {\n cell: null,\n range: null,\n overlaps: null\n }\n } : l;\n y.done = !1;\n let w = y.value;\n w ||= y.value = {\n cell: null,\n range: null,\n overlaps: null\n }, w.range || (w.range = {\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n }), w.cell = d ? w.cell ?? {\n colIndex: -1,\n rowIndex: -1\n } : null, this._reuse = y;\n }\n let m = o.length, a = {\n count: m,\n rowS: new Int32Array(m),\n rowE: new Int32Array(m),\n colS: new Int32Array(m),\n colE: new Int32Array(m),\n type: new Uint16Array(m),\n value: [],\n keys: [\"range\"]\n }, p = 2 ** 53 - 1, b = -(2 ** 53 - 1), S = 2 ** 53 - 1, A = -(2 ** 53 - 1);\n for (let y = 0; y < m; y++) {\n let w = o[y];\n a.rowS[y] = w.rowStart, a.rowE[y] = w.rowEnd, a.colS[y] = w.colStart, a.colE[y] = w.colEnd, a.value.push(w), w.rowStart < p && (p = w.rowStart), w.rowEnd > b && (b = w.rowEnd), w.colStart < S && (S = w.colStart), w.colEnd > A && (A = w.colEnd);\n }\n let U = {\n rowStart: p,\n rowEnd: b,\n colStart: S,\n colEnd: A\n }, h = this._sweep = new t(a, U, s, c);\n d ? this._cellComparator = xr(s ? ie.Column : ie.Row, c) : l && (h._reuseOverlaps = []);\n }\n next(o) {\n let i = this._sweep;\n if (!i) return je;\n let l = this._isByCell, s;\n if (o) {\n if (!l) throw Error(\"nextCell is only supported when byCell is true\");\n let a = this._lastCell;\n if (a && this._cellComparator(a, o) >= 0) throw Error(\"nextCell must be after the current iteration cell\");\n s = i.seekCell(o.rowIndex, o.colIndex);\n } else s = l ? i.nextCell() : i.nextRegion();\n if (!s) return this._sweep = null, je;\n let c = this._reuse;\n if (c) {\n let a = c.value;\n c.done = !1;\n let p = a.range;\n if (p.colStart = i.colStart, p.rowStart = i.rowStart, p.colEnd = i.colEnd, p.rowEnd = i.rowEnd, l) {\n let b = a.cell;\n b.colIndex = i.cellCol, b.rowIndex = i.cellRow;\n let S = this._lastCell;\n S ||= this._lastCell = {\n colIndex: 0,\n rowIndex: 0\n }, S.colIndex = i.cellCol, S.rowIndex = i.cellRow;\n }\n return a.overlaps = i.intersection, c;\n }\n let d = null, m = i.intersection;\n return l && (d = this._lastCell = {\n colIndex: i.cellCol,\n rowIndex: i.cellRow\n }, m = m.slice()), {\n done: !1,\n value: {\n cell: d,\n range: {\n colStart: i.colStart,\n rowStart: i.rowStart,\n colEnd: i.colEnd,\n rowEnd: i.rowEnd\n },\n overlaps: m\n }\n };\n }\n return(o) {\n return je;\n }\n throw(o) {\n return je;\n }\n [Symbol.iterator]() {\n return this;\n }\n }\n e.IteratorInstance = r;\n})(no ||= {});\nvar io = class {\n constructor() {\n this._onceMessageKeys = /* @__PURE__ */ new Set(), this._overrides = null;\n }\n setOverrides(e) {\n this._overrides = e ?? null;\n }\n getOverrides() {\n return this._overrides;\n }\n _write(e, t, r) {\n if (r?.onceKey) {\n let i = this._onceMessageKeys;\n if (i.has(r.onceKey)) return;\n i.add(r.onceKey);\n }\n let n = r?.meta, o = this._overrides;\n if (o) {\n let i = o[e];\n if (i) return void i.bind(o)(t, r);\n }\n n === void 0 ? console[e](t) : console[e](t, n);\n }\n log(e, t) {\n return this._write(\"log\", e, t);\n }\n error(e, t) {\n return this._write(\"error\", e, t);\n }\n warn(e, t) {\n return this._write(\"warn\", e, t);\n }\n debug(e, t) {\n return this._write(\"debug\", e, t);\n }\n};\nnew io();\nvar tt;\nge({\n EmptyBounds: () => so,\n EmptyRect: () => lo,\n EmptyTopLeft: () => ao\n});\nvar ao = Object.freeze({\n left: 0,\n top: 0\n}), lo = Object.freeze({\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n}), so = Object.freeze({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n});\nge({\n canUseDOM: () => Mr,\n getDPI: () => uo,\n hasFocus: () => Or,\n openFileDialog: () => co,\n scrollIntoContainer: () => fo,\n whenFocus: () => po\n});\nvar Mr = !(typeof window > \"u\" || !window.document || !window.document.createElement), co = (e = \"*.*\") => new Promise((t, r) => {\n if (!Mr) return void r(\"Unable to open dialog with no dom.\");\n let n = document.createElement(\"input\");\n n.type = \"file\", n.accept = e;\n let o = null, i = !1;\n globalThis.addEventListener?.(\"focus\", () => {\n setTimeout(() => {\n o || i || (i = !0, t(null));\n }, 1e3);\n }, {\n once: !0,\n passive: !0\n }), n.onchange = () => {\n if (o = n.files?.[0] ?? null, o) {\n if (i) return void console.warn(\"File open detected after faux cancel.\", o);\n t(o);\n }\n }, n.autofocus = !0, n.click();\n}), uo = () => {\n let e = 1;\n return typeof window == \"object\" && (e = window.devicePixelRatio || 1), e;\n}, Or = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), fo = (e, t, r = \"auto\") => {\n if ((() => {\n if (tt === void 0) {\n let c = !1;\n try {\n document.createElement(\"div\").scrollIntoView({ get container() {\n return c = !0, \"nearest\";\n } });\n } catch {}\n tt = c;\n }\n return tt;\n })()) return void t.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n behavior: r,\n container: \"nearest\"\n });\n let n = e.getBoundingClientRect(), o = t.getBoundingClientRect(), i = n.top + e.clientTop, l = i + e.clientHeight, s = 0;\n o.top < i ? s = o.top - i : o.bottom > l && (s = Math.min(o.bottom - l, o.top - i)), s !== 0 && e.scrollBy({\n top: s,\n behavior: r\n });\n}, po = async (e, t = !1) => new Promise((r) => {\n Or(e, t) ? r(!0) : e.addEventListener(\"focusin\", () => {\n r(!0);\n }, { once: !0 }), e.focus();\n});\nge({\n cancelTimeout: () => So,\n debounce: () => go,\n nextTick: () => wo,\n rafThrottle: () => yo,\n requestTimeout: () => bo,\n throttle: () => ho\n});\nvar Ue = globalThis.requestAnimationFrame, mo = globalThis.cancelAnimationFrame;\nfunction ho(e, t) {\n let r = null;\n return (...n) => {\n let o = Date.now();\n (!r || o - r >= t) && (r = o, e(...n));\n };\n}\nfunction go(e, t = 300, r = !1) {\n let n, o, i, l = null, s = 0;\n function c() {\n let m = Date.now() - s;\n m < t && m >= 0 ? l = setTimeout(c, t - m) : (l = null, r || (i = e.apply(o, n), o = n = null));\n }\n t ??= 100;\n let d = function() {\n o = globalThis, n = arguments, s = Date.now();\n var m = r && !l;\n return l ||= setTimeout(c, t), m && (i = e.apply(o, n), o = n = null), i;\n };\n return d.clear = function() {\n l &&= (clearTimeout(l), null);\n }, d.flush = function() {\n l &&= (i = e.apply(o, n), o = n = null, clearTimeout(l), null);\n }, d;\n}\nvar yo = (e) => {\n let t, r = !1, n = function() {\n r = !1, e(t);\n };\n return function(o) {\n t = o, t && t.persist && t.persist(), r || (r = !0, Ue(n));\n };\n}, wo = (e) => {\n if (typeof Ue == \"function\") Ue(() => {\n e();\n });\n else {\n let t = globalThis.setImmediate;\n (typeof t == \"function\" ? t : setTimeout)(() => {\n e();\n });\n }\n}, Ct = typeof performance == \"object\" && typeof performance.now == \"function\" ? () => performance.now() : () => Date.now(), So = (e) => {\n mo(e.id);\n}, bo = (e, t) => {\n let r = Ct(), n = { id: Ue(function o() {\n Ct() - r >= t ? e.call(null) : n.id = Ue(o);\n }) };\n return n;\n};\nge({ MESSAGE_ERROR_INVALID_ARG: () => vo });\nvar vo = (e) => `Invalid argument: '${e}'.`;\nge({\n APP_MIME_TYPE: () => Eo,\n DEFAULT_MIME_TYPE: () => \"*/*\",\n JSONStableStringify: () => Io,\n arrayBufferToBase64: () => Dr,\n base64ToArrayBuffer: () => Co,\n blobToString: () => ft,\n isLittleEndian: () => To,\n isNodeBuffer: () => _o,\n isSharedArrayBufferSupported: () => xo\n});\nvar Eo = \"application/octet-stream\", Ie = globalThis.Buffer, _o = (e) => Ie?.isBuffer(e) ?? !1, xo = typeof SharedArrayBuffer == \"function\" && (globalThis.crossOriginIsolated === void 0 || globalThis.crossOriginIsolated === !0), To = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1, It = globalThis.FileReader, Co = (e) => {\n let t = typeof globalThis.atob == \"function\" ? globalThis.atob(e) : Ie.from(e, \"base64\").toString(\"binary\"), r = t.length, n = new Uint8Array(r);\n for (let o = 0; o < r; o++) n[o] = t.charCodeAt(o);\n return n.buffer;\n}, Dr = (e) => {\n let t = new Uint8Array(e), r = t.byteLength, n = \"\";\n for (let o = 0; o < r; o++) n += String.fromCharCode(t[o]);\n if (typeof globalThis.btoa == \"function\") return globalThis.btoa(n);\n if (Ie) return Ie.from(n, \"binary\").toString(\"base64\");\n throw Error(\"Unsupported environment\");\n}, ft = (e) => new Promise((t, r) => {\n if (e) if (It) {\n let n = new It();\n n.onload = () => {\n t(n.result);\n }, n.onerror = () => {\n r(n.error);\n }, n.readAsText(e);\n } else if (Ie) {\n let n = (o) => Ie.from(o).toString(\"utf-8\");\n e.arrayBuffer().then((o) => {\n t(n(o));\n }).catch((o) => {\n r(o);\n });\n } else r(/* @__PURE__ */ Error(\"Unsupported environment\"));\n else t(\"\");\n});\nfunction Io(e, t) {\n t ||= {}, typeof t == \"function\" && (t = { cmp: t });\n let r = typeof t.cycles == \"boolean\" && t.cycles, n = t.cmp && (o = t.cmp, function(l) {\n return function(s, c) {\n return o({\n key: s,\n value: l[s]\n }, {\n key: c,\n value: l[c]\n });\n };\n });\n var o;\n let i = [];\n return (function l(s) {\n if (s && s.toJSON && typeof s.toJSON == \"function\" && (s = s.toJSON()), s === void 0) return;\n if (typeof s == \"number\") return isFinite(s) ? \"\" + s : \"null\";\n if (typeof s != \"object\") return JSON.stringify(s);\n let c;\n if (Array.isArray(s)) {\n c = \"[\";\n for (let a = 0; a < s.length; a++) a && (c += \",\"), c += l(s[a]) || \"null\";\n return c + \"]\";\n }\n if (s === null) return \"null\";\n if (i.indexOf(s) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw TypeError(\"Converting circular structure to JSON\");\n }\n let d = i.push(s) - 1, m = Object.keys(s).sort(n && n(s));\n c = \"\";\n for (let a = 0; a < m.length; a++) {\n let p = m[a], b = l(s[p]);\n b && (c && (c += \",\"), c += JSON.stringify(p) + \":\" + b);\n }\n return i.splice(d, 1), \"{\" + c + \"}\";\n })(e);\n}\nvar Ao;\nge({\n DATA_URL_PNG_PREFIX: () => Fr,\n getImageDataUrl: () => Ro,\n loadImageDetails: () => $o\n});\nvar Fr = \"data:image/png;base64,\", Ur = \"Unable to resolve image.\", At = (e) => new Promise(async (t, r) => {\n let n = null;\n try {\n let o = n = new Image();\n o.src = e, o.addEventListener(\"load\", function() {\n t({\n width: o.naturalWidth,\n height: o.naturalHeight\n });\n }, { once: !0 }), o.addEventListener(\"error\", function(i) {\n URL.revokeObjectURL(e);\n let l = i?.error?.message ?? \"\";\n l &&= `: ${l}`, r(`Invalid Image${l}`);\n }, { once: !0 }), await o.decode();\n } catch {\n n?.src && URL.revokeObjectURL(n.src);\n }\n n || r(Error(Ur));\n}), Ro = (e, t = 1) => new Promise(async (r, n) => {\n let o = null;\n try {\n let i = o = new Image();\n i.src = e, i.addEventListener(\"load\", function() {\n try {\n let l = document.createElement(\"canvas\");\n l.width = i.naturalWidth, l.height = i.naturalHeight;\n let s = l.getContext(\"2d\");\n if (!s) throw Error(\"Unable to create 2d context\");\n s.drawImage(i, 0, 0);\n let c = l.toDataURL(\"image/png\", t);\n r({\n elemImg: i,\n dataUrl: c\n });\n } catch (l) {\n URL.revokeObjectURL(e), n(l);\n }\n }, { once: !0 }), i.addEventListener(\"error\", function() {\n URL.revokeObjectURL(e), n(\"Invalid Image\");\n }, { once: !0 }), await i.decode();\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || n(Error(Ur));\n}), rt = \"image/svg+xml\", $o = async (e, t = null) => {\n let r = null, n = async () => {\n try {\n let i = t ?? \"image/*\", l = URL.createObjectURL(new Blob([e], { type: i }));\n r = {\n mimeType: i,\n naturalSize: await At(l),\n asUrl: l\n };\n } catch {}\n }, o = async () => {\n try {\n let i = new TextDecoder().decode(e), l = URL.createObjectURL(new Blob([i], { type: rt })), s = await At(l);\n r = {\n mimeType: t ?? rt,\n naturalSize: s,\n asUrl: l,\n asSVGText: i\n };\n } catch {}\n };\n if (t === rt ? await o() : t?.startsWith(\"image/\") ? await n() : (await n(), r || await o()), !r) throw Error(\"Failed to load image\");\n return r;\n}, Rt = /* @__PURE__ */ new Set(), No = (e) => {\n Rt.has(e) || (Rt.add(e), console.warn(`Unknown property '${e}' in update; ignoring.`));\n};\n(function(e) {\n e.PassThrough = Object.freeze({});\n let t = e.resolveTypedUpdates = (r, n, o, i, l = !1) => {\n if (r === null) return r;\n if (r === void 0) return i;\n let s = r;\n if (n?.shorthand) {\n let a = n?.shorthand(r, o);\n a !== void 0 && (s = a);\n }\n if (s !== null && n?.getSubType) {\n let a = n.getSubType(s, i);\n a && (n = a);\n }\n let c = n?.properties, d = n?.arrayType ?? !1, m = s;\n if (n && n.merge && m && i) m = n.merge(m, i, o);\n else if (!d && c) {\n let a = Object.keys({\n ...s,\n ...i\n });\n m = null;\n let p = a.length;\n for (let b = 0; b < p; b++) {\n let S = a[b], A, U = s?.[S];\n if (U !== void 0) {\n let h = c[S];\n if (!h) {\n No(S);\n continue;\n }\n A = t(U, h, o, i?.[S], l);\n } else A = i?.[S];\n A == null ? l && U === null && (m ??= {}, m[S] = null) : (m ??= {}, m[S] = A);\n }\n }\n return m;\n };\n})(Ao ||= {});\nvar wt = {\n code: \"safari\",\n message: `The Safari browser does not support advanced copy and paste.\nCopy and paste will be limited to within the browser tab.\n\nPlease use Chrome or Edge if external copy and paste is required.`\n}, Br = {\n code: \"perms\",\n message: `You do not have permissions to access the clipboard.\nAll copy and paste operations will be limited to the browser tab.`\n}, $t = Ye() === pe.Safari ? wt : Br, ko = {\n Safari: wt,\n Perms: Br,\n PermsWrite: $t,\n PermsRead: $t\n}, nt = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.(\"focus\", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), ot = async (e, t, r) => {\n if (Ye() === pe.Safari) return await r(Error(wt.message));\n try {\n let n = async (l) => {\n try {\n return await l();\n } catch (s) {\n if (s.message?.includes(\"Document is not focused\")) return !1;\n throw s;\n }\n }, o = await globalThis?.navigator?.permissions?.query({\n name: e,\n allowWithoutGesture: !0,\n allowWithoutSanitization: !0\n }), i = !1;\n if (o.state === \"prompt\" && (i = await n(t)), i || o.state !== \"granted\" || (i = await t()), !i) return await r(Error(o.state));\n } catch (n) {\n return n.message === \"No valid data on clipboard\" || n.name === \"DataError\" ? void 0 : await r(n);\n }\n}, Pr = async (e) => {\n if (!e) return null;\n try {\n return await e.read({ unsanitized: [J.Html] });\n } catch {}\n return await e.read();\n}, Lo = async (e, t) => {\n if (!e) return null;\n let r = await Pr(e), n = !1;\n for (let o = 0; !n && r && o < r.length; o++) if (n = r[o].types.includes(t), n) return await r[o].getType(t);\n return null;\n};\nif (!globalThis.ClipboardItem) {\n let e = (r, n) => new Blob([n], { type: r });\n class t {\n constructor(n, o) {\n this._items = {}, this._types = Object.keys(n);\n let i = {}, l = Object.keys(n);\n for (let s = 0; s < l.length; s++) {\n let c = l[s], d = n[c];\n i[c] = typeof d == \"string\" ? e(c, d) : d;\n }\n this._items = i, this._presentationStyle = o?.presentationStyle ?? \"unspecified\";\n }\n get types() {\n return this._types;\n }\n getType(n) {\n return Promise.resolve(this._items[n]);\n }\n supports(n) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nvar Nt, pt = async (e, t = J.Html) => new Promise(async (r, n) => {\n try {\n let o = await Lo(e, t);\n if (o) {\n let i = new FileReader();\n i.onload = () => {\n r(i.result);\n }, i.onerror = () => {\n r(\"\");\n }, i.readAsText(o);\n } else r(\"\");\n } catch (o) {\n n(o);\n }\n}), kt = async (e, t = J.Html) => {\n let r = await pt(e, t);\n if (!r) return null;\n let n = null;\n try {\n n = new DOMParser().parseFromString(r, J.Html);\n } catch {\n console.warn(\"Can't parse html from clipboard.\");\n }\n return n;\n}, Mo = async (e) => {\n e && await e.writeText(\"\");\n}, Be = \"clipboard-uuid\", Me = \"web text/uuid\", Lt = (e) => `<div style=\"display:none\" ${Be}=\"${e}\"/>`, Mt = { type: J.Plain }, Ot = { type: J.Html }, Dt = { type: Me }, Oo = (e, t) => {\n let r = null;\n try {\n let n = new DOMParser().parseFromString(t, J.Html);\n n.body.firstElementChild?.setAttribute(Be, e), r = n.getElementsByTagName(\"body\")[0].innerHTML;\n } catch (n) {\n console.warn(\"Can't embed uuid.\", n);\n }\n return r;\n}, Ft = (e, t) => {\n if (!t || !e) return !1;\n try {\n let r = t.querySelectorAll(`[${Be}=\"${e}\"]`);\n if (r && r.length === 1) return !0;\n if (t.querySelector(\"parsererror\")) throw Error(\"We are unable to parse node\");\n return !1;\n } catch {\n return !1;\n }\n}, Ut = class {\n constructor(e) {\n if (this._state = null, this._nativeClipboard = null, this._onFocus = null, this._onBlur = null, e?.nativeClipboard === void 0 || e?.nativeClipboard === !0) try {\n this._nativeClipboard = globalThis?.navigator.clipboard;\n } catch {\n e?.nativeClipboard === !0 && console.warn(\"NativeClipboard option set to true but no native clipboard available.\");\n }\n else this._nativeClipboard = e?.nativeClipboard === !1 ? null : e?.nativeClipboard ?? null;\n this._disableCheckOnFocus = e?.disableCheckOnFocus ?? !1, this._init();\n }\n async _checkForChanges() {\n this._nativeClipboard && this._state && !this._disableCheckOnFocus && await ot(\"clipboard-read\", async () => {\n await nt();\n let e = await pt(this._nativeClipboard, Me);\n if (!this._state || e && e === this._state.uuid) return !0;\n let t = await kt(this._nativeClipboard, J.Html);\n return !this._state || (Ft(this._state.uuid, t) || this.clear(), !0);\n }, async (e) => {\n e?.message === \"denied\" || e.message?.includes(\"Document is not focused\") || Ye() === pe.Safari || console.warn(\"Unable to detect clipboard changes: \", e);\n });\n }\n _init() {\n let e = this;\n this._listeners = /* @__PURE__ */ new Map(), this._listenersCapture = /* @__PURE__ */ new Map(), this._state = null, this._nativeClipboard && (this._onFocus = () => {\n e._checkForChanges();\n }, this._onBlur = () => {\n globalThis.addEventListener?.(\"focus\", e._onFocus, { once: !0 });\n }, globalThis.addEventListener?.(\"blur\", this._onBlur), this._nativeClipboard.addEventListener(\"clipboardchange\", (t) => {\n e._checkForChanges();\n }));\n }\n async read() {\n if (!this._nativeClipboard) return this._state?.items ?? null;\n let e = this;\n return await ot(\"clipboard-read\", async () => {\n if (await nt(), this._state?.uuid) {\n let t = await pt(this._nativeClipboard, Me);\n if (t && t === e._state?.uuid) return !0;\n let r = await kt(this._nativeClipboard, J.Html);\n if (Ft(e._state?.uuid, r)) return !0;\n }\n return e._state = {\n items: await Pr(this._nativeClipboard),\n uuid: null,\n ref: null\n }, this.dispatchEvent(new Event(\"clipboardread\")), !0;\n }, async (t) => {\n this.dispatchEvent(new Event(\"clipboarderrorread\"));\n }), this._state?.items ?? [];\n }\n async write(e) {\n return this._write({\n uuid: He(),\n items: e,\n ref: null\n });\n }\n async _write(e) {\n if (!this._nativeClipboard) return this._state = e, this.dispatchEvent(new Event(\"clipboardwrite\")), void this.dispatchEvent(new Event(\"clipboardchange\"));\n let t = this, r = [], n = e.uuid, o = e.items ?? [], i = () => {\n t._state = {\n uuid: n,\n ref: e.ref,\n items: r\n }, t.dispatchEvent(new Event(\"clipboardwrite\")), t.dispatchEvent(new Event(\"clipboardchange\"));\n };\n await ot(\"clipboard-write\", async () => {\n await nt(), n && o.length === 0 && (o.push(new ClipboardItem({ [Me]: new Blob([n], Dt) })), o.push(new ClipboardItem({ [J.Html]: new Blob([Lt(n)], Ot) })));\n for (let l = 0; l < Math.min(1, o.length); l++) {\n let s = o[l], c = s.types.indexOf(J.Html), d = null;\n if (c !== -1 && (d = await ft(await s.getType(J.Html)), d &&= Oo(n, d)), !d && s.types.includes(J.Plain)) {\n let S = await s.getType(J.Plain);\n if (S) {\n let A = null;\n typeof S == \"string\" ? (console.warn(\"text as string\", S), A = S) : A = await ft(S), A && (d = `<div ${Be}=\"${n}\">${A}</div>`);\n }\n }\n if (!d && s.types.includes(J.Png)) {\n let S = Dr(await (await s.getType(J.Png)).arrayBuffer());\n d = `<div ${Be}=\"${n}\"><img src=\"${Fr + S}\"/></div>`;\n }\n !d && n && (d = Lt(n));\n let m = new Blob([d ?? \"\"], Ot), a = {}, p = s.types, b = p.length;\n for (let S = 0; S < b; S++) {\n let A = p[S];\n a[A] = S === c ? m : s.getType(A);\n }\n d && c === -1 && (a[J.Html] = m), n && (a[Me] = new Blob([n], Dt)), r.push(new ClipboardItem(a));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : await Mo(this._nativeClipboard);\n } catch (l) {\n l.message?.includes(\"Document is not focused\") || console.warn(\"Unable to write to native clipboard: \", l);\n }\n return i(), !0;\n }, async (l) => {\n this.dispatchEvent(new Event(\"clipboarderrorwrite\")), i();\n });\n }\n async writeReference(e) {\n if (!e) return void this.clear();\n let t = null, r = {};\n try {\n let o = await e.toText?.() ?? null;\n o && (r[J.Plain] = new Blob([o ?? \"\"], Mt));\n } catch (o) {\n t = o;\n }\n try {\n let o = await e.toHtml?.() ?? null;\n o && (r[J.Html] = new Blob([o], { type: J.Html }));\n } catch (o) {\n t = o, console.warn(\"export to html\", o);\n }\n try {\n let o = await e.toImage?.() ?? null;\n o && (r[J.Png] = o);\n } catch (o) {\n t = o, console.warn(\"export to png\", o);\n }\n let n = this._write({\n uuid: He(),\n ref: e,\n items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null\n });\n if (t) throw t;\n return n;\n }\n clear(e = !1) {\n this._state && (this._state = null, e && this._write({\n uuid: null,\n ref: null,\n items: null\n }), this.dispatchEvent(new Event(\"clipboardwrite\")), this.dispatchEvent(new Event(\"clipboardchange\")));\n }\n async readReference() {\n return await this.read(), this._state?.ref ?? null;\n }\n readText() {\n return new Promise(async (e, t) => {\n let r = await this.read(), n = null, o = r ? r.length : 0;\n for (let l = 0; !n && l < o; l++) {\n let s = r[l];\n s.types.includes(J.Plain) && (n = await s.getType(J.Plain));\n }\n if (!n) return void e(\"\");\n let i = new FileReader();\n i.onload = () => {\n e(i.result);\n }, i.readAsText(n), i.onerror = (l) => {\n t(l);\n };\n });\n }\n async writeText(e) {\n let t = [new ClipboardItem({ [J.Plain]: new Blob([e], Mt) })];\n return this._write({\n uuid: He(),\n items: t,\n ref: null\n });\n }\n addEventListener(e, t, r = {}) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o || (o = /* @__PURE__ */ new Map(), n.set(e, o)), t && o.set(t, typeof r == \"boolean\" ? {} : r);\n }\n dispatchEvent(e) {\n if (!e) return !1;\n let t = (r) => {\n let n = r.get(e.type);\n n && n.forEach((o, i) => {\n try {\n typeof i == \"function\" ? i(e) : i.handleEvent && i.handleEvent(e), o.once && n.delete(i);\n } catch (l) {\n console.warn(l);\n }\n });\n };\n return t(this._listenersCapture), t(this._listeners), !0;\n }\n removeEventListener(e, t, r) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o && t && (o.delete(t), o.size === 0 && n.delete(e));\n }\n close() {\n this._onFocus && globalThis.removeEventListener?.(\"focus\", this._onFocus), this._onBlur && globalThis.removeEventListener?.(\"blur\", this._onBlur);\n }\n};\n(Nt = Ut ||= {}).ErrorMessages = ko, Nt.Global = new Ut();\nObject.freeze({});\nnew TextDecoder();\nconst E = Object.freeze({\n /** Exported function has no body. */\n NoBody: \"SXL1001\",\n /** Anonymous exported function is not allowed. */\n Anonymous: \"SXL1002\",\n /** Internal parse failure while analyzing the module. */\n ParseError: \"SXL1003\",\n /** Invalid parameter type. */\n InvalidParamType: \"SXL2001\",\n /** Invalid return type. */\n InvalidReturnType: \"SXL2002\",\n /** `undefined` / `null` / `void` is not valid as an input type. */\n UndefinedInput: \"SXL2003\",\n /** A type annotation is required but missing. */\n MissingType: \"SXL2004\",\n /** An `Array` must be typed (e.g. `number[]`, not bare `[]`). */\n UntypedArray: \"SXL2005\",\n /** A generic type must be supplied exactly one type argument. */\n GenericArity: \"SXL2006\",\n /** A context parameter must be the first parameter. */\n ContextNotFirst: \"SXL2010\",\n /** More than one `Lambda` parameter. */\n MultipleLambda: \"SXL2020\",\n /** A `Lambda` parameter must be the last parameter. */\n LambdaNotLast: \"SXL2021\",\n /** A `Lambda` parameter/return scalar type mismatch. */\n LambdaScalarMismatch: \"SXL2022\",\n /** `Lambda` is not valid as a return type. */\n LambdaReturn: \"SXL2023\",\n /** A bare function type is not valid as a return type. */\n FunctionReturn: \"SXL2024\",\n /** A `Lambda` function type has the wrong number of parameters. */\n LambdaArity: \"SXL2025\",\n /** Arrays of more than 2 dimensions are not supported. */\n ArrayDepth: \"SXL2030\",\n /** `Repeating<T>` used somewhere it cannot be (a return type, a rest parameter, nested in an array). */\n RepeatingPosition: \"SXL2040\",\n /** More than one `Repeating<T>` parameter. */\n MultipleRepeating: \"SXL2041\",\n /** A `Repeating<T>` group's slots are malformed (unlabelled tuple member, or a 1-element tuple). */\n RepeatingSlots: \"SXL2042\",\n /** An optional parameter/slot where a repeating group does not allow one. */\n RepeatingOptional: \"SXL2043\",\n /** `Repeating<T, Max>`'s maximum argument count is not a whole number in range. */\n RepeatingMax: \"SXL2044\",\n /** An enum mixes number and string members. */\n EnumMixed: \"SXL2050\",\n /** An enum member is not a constant number or string. */\n EnumMemberNotConstant: \"SXL2051\",\n /** A parameter type that is not declared in this module, so an enum behind it cannot be read. */\n EnumNotLocal: \"SXL2052\",\n /** An `as const` object used as a parameter type without its same-name type alias. */\n EnumMissingAlias: \"SXL2053\",\n /** An enum where no single argument is coerced to it (`IRange<E>`, `Lazy<E>`). */\n EnumPosition: \"SXL2054\",\n /** `Omittable<E, V>` whose `V` is neither a member of `E` nor `null`. */\n EnumOmittedValue: \"SXL2055\",\n /** No exported functions found in the module. */\n NoExports: \"SXL3001\",\n /** A `@param` tag references a parameter that does not exist. */\n UnknownParam: \"SXL3002\",\n /** A calculation function takes a built-in function's name. */\n BuiltInName: \"SXL3003\",\n /** A `@returnKind` tag names a value kind that does not exist, or names none at all. */\n UnknownReturnKind: \"SXL3005\",\n /** A calculation function's name (its `@name`, or else its own) is not a name a formula can call. */\n InvalidName: \"SXL3006\",\n /** Two functions in one module register under the same name (an `@name` repeats another's). */\n DuplicateName: \"SXL3007\",\n /** A function has no JSDoc description. */\n MissingSummary: \"SXL9001\",\n /** A `@param` is missing a description. */\n MissingParamDescription: \"SXL9002\",\n /**\n * Missing `@returns` on a non-void function.\n * @deprecated Retained for code stability but no longer emitted - Excel-style tooltips describe\n * behavior via the summary, so a standalone `@returns` warning is noise.\n */\n MissingReturns: \"SXL9003\",\n /** Two enum members share a value. */\n EnumDuplicateValue: \"SXL9004\",\n /** An enum member has no doc comment. */\n EnumMemberUndocumented: \"SXL9005\"\n});\nvar zo;\n(function(e) {\n e.MAX_TEXT_LENGTH = 32767;\n let t = e.MAX_SIGNIFICANT_DIGITS = 15;\n e.truncateNumberText = function(r) {\n let n = r.length;\n if (n <= t) return r;\n let o = 0, i = null;\n for (let l = 0; l < n; l++) {\n let s = r.charCodeAt(l);\n if (s >= 48 && s <= 57) {\n if (o === 0 && s === 48) continue;\n o++, o > t && ((i ??= r.split(\"\"))[l] = \"0\");\n } else if ((s === 69 || s === 101) && o > 0) break;\n }\n return i === null ? r : i.join(\"\");\n };\n})(zo ||= {});\nvar zt, it, Vo, T, me = {\n Number: \"number\",\n String: \"string\",\n Boolean: \"boolean\",\n Error: \"error\",\n RichData: \"richData\",\n Null: \"null\"\n}, Vt = {\n ...me,\n Date: \"date\"\n}, Xt = {\n ...me,\n Reference: \"reference\",\n Array: \"array\",\n Lambda: \"lambda\",\n Omitted: \"omitted\"\n};\n(it = zt ||= {}).Axis = {\n Column: \"column\",\n Row: \"row\"\n}, it.AxisSelection = {\n ...zt.Axis,\n Both: \"both\"\n}, it.Direction = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, (Vo ||= {}).Aggregate = {\n Count: \"count\",\n NumericalCount: \"numericalCount\",\n Sum: \"sum\",\n Average: \"average\",\n StdDev: \"stdDev\",\n PopulationStdDev: \"stdDevP\",\n Variance: \"var\",\n PopulationVariance: \"varP\",\n Min: \"min\",\n Max: \"max\"\n}, (function(e) {\n let t = e.Code = {\n Parse: 0,\n Null: 1,\n Div0: 2,\n Value: 3,\n Ref: 4,\n Name: 5,\n Num: 6,\n NA: 7,\n GettingData: 8,\n Spill: 9,\n Connect: 10,\n Blocked: 11,\n Unknown: 12,\n Field: 13,\n Calc: 14,\n Busy: 16,\n Python: 19,\n Timeout: 20\n }, r = e.Label = {\n Parse: \"#PARSE!\",\n Null: \"#NULL!\",\n Div0: \"#DIV/0!\",\n Value: \"#VALUE!\",\n Ref: \"#REF!\",\n Name: \"#NAME?\",\n Num: \"#NUM!\",\n NA: \"#N/A\",\n GettingData: \"#GETTING_DATA\",\n Spill: \"#SPILL!\",\n Connect: \"#CONNECT!\",\n Blocked: \"#BLOCKED!\",\n Unknown: \"#UNKNOWN!\",\n Field: \"#FIELD!\",\n Calc: \"#CALC!\",\n Busy: \"#BUSY!\",\n Python: \"#PYTHON!\",\n Timeout: \"#TIMEOUT!\"\n };\n class n extends Error {\n constructor(R, O, de, we) {\n super(de, we), this._label = O, this._code = R, this.details = we;\n }\n static {\n this.code = T.Code.Unknown;\n }\n get isFormulaError() {\n return !0;\n }\n getLabel() {\n return this._label;\n }\n getCode() {\n return this._code;\n }\n equals(R) {\n return !!R && (this._code === R._code || this._code === R.code);\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaError]\";\n }\n toString() {\n return this._label;\n }\n }\n e.Known = n;\n class o extends n {\n constructor(R, O) {\n super(t.Parse, r.Parse, R, O);\n }\n static {\n this.code = T.Code.Parse;\n }\n getDetails() {\n let R = this.details;\n return {\n line: R?.line ?? 1,\n column: R?.column ?? 1,\n offset: R?.offset ?? 0,\n length: R?.length ?? 0\n };\n }\n }\n e.Parse = o;\n class i extends n {\n constructor(R, O) {\n super(t.Null, r.Null, R, O);\n }\n static {\n this.code = T.Code.Null;\n }\n }\n e.Null = i;\n class l extends n {\n constructor(R, O) {\n super(t.Div0, r.Div0, R, O);\n }\n static {\n this.code = T.Code.Div0;\n }\n }\n e.Div0 = l;\n class s extends n {\n constructor(R, O) {\n super(t.Value, r.Value, R, O);\n }\n static {\n this.code = T.Code.Value;\n }\n }\n e.Value = s;\n class c extends n {\n constructor(R, O) {\n super(t.Ref, r.Ref, R, O);\n }\n static {\n this.code = T.Code.Ref;\n }\n }\n e.Ref = c;\n class d extends n {\n constructor(R, O) {\n super(t.Name, r.Name, R, O);\n }\n static {\n this.code = T.Code.Name;\n }\n }\n e.Name = d;\n class m extends n {\n constructor(R, O) {\n super(t.Num, r.Num, R, O);\n }\n static {\n this.code = T.Code.Num;\n }\n }\n e.Num = m;\n class a extends n {\n constructor(R, O) {\n super(t.NA, r.NA, R, O);\n }\n static {\n this.code = T.Code.NA;\n }\n }\n e.NA = a;\n class p extends n {\n constructor(R, O) {\n super(t.GettingData, r.GettingData, R, O);\n }\n static {\n this.code = T.Code.GettingData;\n }\n }\n e.GettingData = p;\n class b extends n {\n constructor(R, O) {\n super(t.Spill, r.Spill, R, O);\n }\n static {\n this.code = T.Code.Spill;\n }\n }\n e.Spill = b;\n class S extends n {\n constructor(R, O) {\n super(t.Connect, r.Connect, R, O);\n }\n static {\n this.code = T.Code.Connect;\n }\n }\n e.Connect = S;\n class A extends n {\n constructor(R, O) {\n super(t.Blocked, r.Blocked, R, O);\n }\n static {\n this.code = T.Code.Blocked;\n }\n }\n e.Blocked = A;\n class U extends n {\n constructor(R, O) {\n super(t.Unknown, r.Unknown, R, O);\n }\n static {\n this.code = T.Code.Unknown;\n }\n }\n e.Unknown = U;\n class h extends n {\n constructor(R, O) {\n super(t.Field, r.Field, R, O);\n }\n static {\n this.code = T.Code.Field;\n }\n }\n e.Field = h;\n class y extends n {\n constructor(R, O) {\n super(t.Calc, r.Calc, R, O);\n }\n static {\n this.code = T.Code.Calc;\n }\n }\n e.Calc = y;\n class w extends n {\n constructor(R, O) {\n super(t.Busy, r.Busy, R, O);\n }\n static {\n this.code = T.Code.Busy;\n }\n }\n e.Busy = w;\n class D extends n {\n constructor(R, O) {\n super(t.Python, r.Python, R, O);\n }\n static {\n this.code = T.Code.Python;\n }\n }\n e.Python = D;\n class z extends n {\n constructor(R, O) {\n super(t.Timeout, r.Timeout, R, O);\n }\n static {\n this.code = T.Code.Timeout;\n }\n }\n e.Timeout = z;\n})(T ||= {});\nvar ee = {};\nee[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;\nvar zr = /* @__PURE__ */ new Map(), Vr = /* @__PURE__ */ new Map(), Xr = /* @__PURE__ */ new Map(), Gr = /* @__PURE__ */ new Map(), Gt = Object.keys(ee);\nfor (let e = 0; e < Gt.length; e++) {\n let t = ee[Gt[e]], r = new t();\n Xr.set(r.getLabel(), t), Gr.set(r.getCode(), t), zr.set(r.getLabel(), r), Vr.set(r.getCode(), r);\n}\n(function(e) {\n let t = e.getBuiltInByCode = (r) => Vr.get(r);\n e.BuiltIn = {\n Parse: t(T.Code.Parse),\n Null: t(T.Code.Null),\n Div0: t(T.Code.Div0),\n Value: t(T.Code.Value),\n Ref: t(T.Code.Ref),\n Name: t(T.Code.Name),\n Num: t(T.Code.Num),\n NA: t(T.Code.NA),\n GettingData: t(T.Code.GettingData),\n Spill: t(T.Code.Spill),\n Connect: t(T.Code.Connect),\n Blocked: t(T.Code.Blocked),\n Unknown: t(T.Code.Unknown),\n Field: t(T.Code.Field),\n Calc: t(T.Code.Calc),\n Busy: t(T.Code.Busy),\n Python: t(T.Code.Python),\n Timeout: t(T.Code.Timeout)\n }, e.newTypedError = (r, n, o) => {\n let i;\n return i = typeof r == \"string\" ? Xr.get(r) : Gr.get(r), i ||= T.Unknown, new i(n, o);\n }, e.getBuiltInByLabel = (r) => zr.get(r), e.isError = function(r, n) {\n return !!r && r.isFormulaError === !0 && (n === void 0 || r.getCode() === n);\n };\n})(T ||= {});\nvar Xo = class {\n createRange(e, t, r) {\n throw new oe();\n }\n flattenAreas(e) {\n throw new oe();\n }\n getReference(e, t) {\n throw new oe();\n }\n getResizedReference(e, t, r) {\n throw new oe();\n }\n getNumberFormat(e, t) {\n throw new oe();\n }\n fromSerialDate(e, t) {\n throw new oe();\n }\n toSerialDate(e, t) {\n throw new oe();\n }\n getDateParts(e, t) {\n throw new oe();\n }\n getSerialDate(e, t, r, n, o, i, l) {\n throw new oe();\n }\n getNow() {\n throw new oe();\n }\n getRandom() {\n return Math.random();\n }\n getValueAt(e, t, r, n) {\n return null;\n }\n getEntireCoords() {\n return Wr;\n }\n isValidDate(e, t) {\n return e instanceof Date || Object.prototype.toString.call(e) === \"[object Date]\" ? !isNaN(e.getTime()) : !t && typeof e == \"number\" && !(e < 0 || e > Wo);\n }\n getRow() {\n return 0;\n }\n getColumn() {\n return 0;\n }\n isImplicitIntersect() {\n return !1;\n }\n getFormulaAt(e, t, r) {\n return null;\n }\n getSpillAt(e, t, r) {\n return null;\n }\n getSheetIndex(e) {\n return -1;\n }\n getSheetCount() {\n return 1;\n }\n markVolatile() {}\n defer(e, t) {}\n formatResults(e) {}\n filterHidden(e, t) {\n return e;\n }\n filterTotals(e) {\n return e;\n }\n getFunction(e) {\n return null;\n }\n getAddress(e, t) {\n throw new oe();\n }\n parseAsSerialDate(e, t) {\n throw new oe();\n }\n parseAsDate(e, t) {\n throw new oe();\n }\n parseAsNumber(e, t) {\n throw new oe();\n }\n createCriteria(e, t) {\n throw new oe();\n }\n createGrouping(e, t) {\n throw new oe();\n }\n parseAsLiteral(e) {\n let t = e.toUpperCase();\n return t === \"TRUE\" || t !== \"FALSE\" && T.getBuiltInByLabel(t);\n }\n toText(e) {\n return typeof e == \"string\" ? e : e == null ? \"\" : typeof e == \"boolean\" ? e ? \"TRUE\" : \"FALSE\" : e?.isFormulaError ? e.getLabel() : String(e);\n }\n compare(e, t, r) {\n if (e === t) return 0;\n let n = Ht(e), o = Ht(t);\n return n === o ? e < t ? -1 : +(e > t) : n < o ? -1 : 1;\n }\n getRuntime() {\n return Ho;\n }\n getArgs() {\n throw new oe(Hr);\n }\n createRichData(e, t) {\n throw new oe(Go);\n }\n}, Ht = (e) => {\n if (e == null) return 0;\n switch (typeof e) {\n case \"number\": return 1;\n case \"string\": return 2;\n case \"boolean\": return 3;\n default: return 4;\n }\n}, Hr = \"FormulaContext.getArgs() is only valid while a function body is running\", Go = \"FormulaContext.createRichData() needs a workbook being calculated\", oe = class extends Error {\n constructor(e = \"Not implemented in StubbedFormulaContext\") {\n super(e), this.name = \"NotImplementedError\";\n }\n}, Wr = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 2 ** 14 - 1,\n rowEnd: 2 ** 20 - 1\n}), Ho = {\n isDate1904: () => !1,\n getLocale: () => Wt.tag,\n getLocaleProfile: () => Wt,\n isR1C1: () => !1,\n getNow: () => 0,\n getRandom: () => Math.random(),\n getLocation: () => \"unknown\",\n getVersion: () => \"1.0.0\",\n getOS: () => \"unknown\",\n getUser: () => \"unidentified\",\n getDescription: () => \"Stubbed Formula Context\"\n}, Wo = 2958465, ke = new Xo(), Jo = class {\n constructor() {\n this._scope = ke, this._argsFn = null;\n }\n _setScope(e) {\n this._scope = e ?? ke;\n }\n _getScope() {\n return this._scope;\n }\n _setArgsProvider(e) {\n this._argsFn = e;\n }\n getNumberFormat(e, t) {\n return this._getScope().getNumberFormat(e, t);\n }\n getEntireCoords() {\n return this._getScope().getEntireCoords() ?? Wr;\n }\n parseAsSerialDate(e, t) {\n return this._getScope().parseAsSerialDate(e, t);\n }\n parseAsDate(e, t) {\n return this._getScope().parseAsDate(e, t);\n }\n parseAsNumber(e, t) {\n return this._getScope().parseAsNumber(e, t);\n }\n createCriteria(e, t) {\n return this._getScope().createCriteria(e, t);\n }\n createGrouping(e, t) {\n return this._getScope().createGrouping(e, t);\n }\n parseAsLiteral(e) {\n let t = this._getScope();\n return t.parseAsLiteral ? t.parseAsLiteral(e) : ke.parseAsLiteral(e);\n }\n toText(e) {\n return this._getScope().toText(e);\n }\n isValidDate(e, t = !1) {\n return this._getScope().isValidDate(e, t);\n }\n fromSerialDate(e, t = !1) {\n return this._getScope().fromSerialDate(e, t);\n }\n toSerialDate(e, t = !1) {\n return this._getScope().toSerialDate(e, t);\n }\n getDateParts(e, t) {\n return this._getScope().getDateParts(e, t);\n }\n getSerialDate(e, t, r, n = 0, o = 0, i = 0, l = 0) {\n return this._getScope().getSerialDate(e, t, r, n, o, i, l);\n }\n getNow() {\n return this._getScope().getNow();\n }\n getRandom() {\n return this._getScope().getRandom?.() ?? Math.random();\n }\n createRange(e, t, r) {\n return this._getScope().createRange(e, t, r);\n }\n flattenAreas(e) {\n if (!Array.isArray(e)) return e;\n let t = [];\n for (let r = 0; r < e.length; r++) {\n let n = e[r], { rows: o, columns: i } = n.getShape();\n for (let l = 0; l < o; l++) for (let s = 0; s < i; s++) t.push(n.getValueAt(l, s));\n }\n return this.createRange(t.length, 1, (r, n) => t[n.rowIndex]);\n }\n getRow() {\n return this._getScope().getRow?.() ?? 0;\n }\n getColumn() {\n return this._getScope().getColumn?.() ?? 0;\n }\n isImplicitIntersect() {\n return this._getScope().isImplicitIntersect?.() ?? !1;\n }\n getReference(e, t) {\n return this._getScope().getReference(e, t);\n }\n getResizedReference(e, t, r) {\n return this._getScope().getResizedReference(e, t, r);\n }\n getValueAt(e, t, r) {\n return this._getScope().getValueAt(e, t, r);\n }\n getFormulaAt(e, t, r) {\n return this._getScope().getFormulaAt?.(e, t, r) ?? null;\n }\n getSpillAt(e, t, r) {\n return this._getScope().getSpillAt?.(e, t, r) ?? null;\n }\n getSheetIndex(e) {\n return this._getScope().getSheetIndex?.(e) ?? -1;\n }\n getSheetCount() {\n return this._getScope().getSheetCount?.() ?? 1;\n }\n markVolatile() {\n this._getScope().markVolatile?.();\n }\n defer(e, t) {\n return this._getScope().defer?.(e, t);\n }\n formatResults(e) {\n this._getScope().formatResults?.(e);\n }\n filterHidden(e, t) {\n return this._getScope().filterHidden?.(e, t) ?? e;\n }\n filterTotals(e) {\n return this._getScope().filterTotals?.(e) ?? e;\n }\n getFunction(e) {\n return this._getScope().getFunction?.(e) ?? null;\n }\n getAddress(e, t) {\n return this._getScope().getAddress(e, t);\n }\n compare(e, t, r) {\n return this._getScope().compare?.(e, t, r) ?? ke.compare(e, t, r);\n }\n getRuntime() {\n return this._getScope().getRuntime();\n }\n createRichData(e, t) {\n let r = this._getScope();\n return r.createRichData ? r.createRichData(e, t) : ke.createRichData(e, t);\n }\n getArgs() {\n let e = this._argsFn, t = e ? e() : null;\n if (!t) throw new oe(Hr);\n return t;\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaContext]\";\n }\n toString() {\n return this._getScope()?.toString?.() ?? \"{STUB SCOPE}\";\n }\n}, Wt = Object.freeze({\n tag: \"en-US\",\n numberingSystem: \"latn\",\n decimal: \".\",\n group: \",\",\n grouping: [3],\n minusSign: \"-\",\n percentSign: \"%\",\n permilleSign: \"‰\",\n currencyCode: \"USD\",\n currencySymbol: \"$\",\n currencyDisplay: \"symbol\",\n currencyPosition: \"before\",\n currencySpacing: \"tight\",\n date: Object.freeze({\n calendar: \"gregory\",\n short: \"M/d/yy\",\n medium: \"MMM d, y\",\n long: \"MMMM d, y\",\n timeShort: \"h:mm a\",\n timeLong: \"h:mm:ss a\",\n am: \"AM\",\n pm: \"PM\",\n firstDay: 0,\n weekend: [6, 0],\n monthsWide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthsAbbr: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n weekdaysWide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ],\n weekdaysAbbr: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n hour12: !0\n }),\n listSeparator: \",\",\n csvDelimiter: \",\",\n rtl: !1,\n collator: Object.freeze({\n sensitivity: \"base\",\n numeric: !0\n })\n});\nnew Jo();\nconst Yo = [\n {\n name: \"param\",\n group: \"jsdoc\",\n description: \"Document a parameter. A string union type becomes a dropdown of allowed options.\",\n snippet: \"param ${1:name} ${2:description}\"\n },\n {\n name: \"returns\",\n aliases: [\"return\"],\n group: \"jsdoc\",\n description: \"Describe the return value.\"\n },\n {\n name: \"category\",\n group: \"sheetxl\",\n description: \"Group the function under a category in the function list.\",\n snippet: \"category ${1:name}\"\n },\n {\n name: \"name\",\n group: \"sheetxl\",\n description: \"A name an identifier cannot spell: the name formulas call a function by (MY.FUNC), or an enum member's label.\",\n snippet: \"name ${1:NAME}\"\n },\n {\n name: \"description\",\n group: \"sheetxl\",\n description: \"A longer description of the function.\"\n },\n {\n name: \"deprecated\",\n group: \"sheetxl\",\n standalone: !0,\n description: \"Mark the function as deprecated (optionally with a reason).\"\n },\n {\n name: \"hidden\",\n group: \"sheetxl\",\n standalone: !0,\n description: \"Hide the function from the function list.\"\n },\n {\n name: \"returnkind\",\n group: \"sheetxl\",\n 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).\",\n snippet: \"returnKind ${1:number}\"\n },\n {\n name: \"example\",\n group: \"jsdoc\",\n description: \"Provide a usage example.\"\n },\n {\n name: \"see\",\n group: \"jsdoc\",\n description: \"Reference a related function or link.\"\n }\n], qo = (() => {\n const e = /* @__PURE__ */ new Map();\n for (const t of Yo) if (e.set(t.name, t), t.aliases) for (const r of t.aliases) e.set(r, t);\n return e;\n})();\nfunction Zo(e) {\n if (!e) return;\n const t = (e.startsWith(\"@\") ? e.slice(1) : e).toLowerCase();\n return qo.get(t);\n}\nfunction Qo(e) {\n return Zo(e)?.standalone === !0;\n}\nconst mt = /* @__PURE__ */ new Map([[\"IReferenceRange\", \"p\"], [\"IRange\", \"r\"]]), at = new Set(Object.values(Xt).filter((e) => e !== Xt.Omitted)), St = /* @__PURE__ */ new Map([\n [\"IWorkbook\", \"workbook\"],\n [\"IWorksheet\", \"sheet\"],\n [\"ICellRanges\", \"ranges\"],\n [\"ICellRange\", \"range\"]\n]), ei = Array.from(St.keys()), bt = (e, t) => {\n Array.from(t.keys()).forEach((r) => {\n const n = t.get(r);\n t.set(`${e}.${r}`, n);\n });\n}, ti = /* @__PURE__ */ new Map([\n [\"Scalar\", \"*\"],\n [\"Lambda\", \"l\"],\n [\"FormulaError.Known\", me.Error],\n [\"Date\", Vt.Date],\n [\"IRichData\", Vt.RichData]\n]), Jr = /* @__PURE__ */ new Map([[\"Repeating\", \"repeating\"]]), ri = /* @__PURE__ */ new Set([\"Flatten\", \"SheetXL.Flatten\"]), Yr = /* @__PURE__ */ new Set([\"AcceptError\"]), qr = /* @__PURE__ */ new Set([\"Omittable\"]), Zr = /* @__PURE__ */ new Set([\"NoLift\"]), Qr = /* @__PURE__ */ new Set([\"NoFilter\"]), en = /* @__PURE__ */ new Set([\"Lazy\"]), ht = /* @__PURE__ */ new Set([\"ReportType\"]), Jt = 255, ni = /^[a-zA-Z_-￿][a-zA-Z0-9_.-￿]*$/, oi = /^([a-z]{1,3})([0-9]+)$/i, ii = /^r[0-9]*c[0-9]*$/i, ai = (e) => {\n if (ii.test(e)) return !0;\n const t = oi.exec(e);\n if (!t) return !1;\n let r = 0;\n for (const o of t[1].toUpperCase()) r = r * 26 + (o.charCodeAt(0) - 64);\n const n = Number(t[2]);\n return r <= 16384 && n >= 1 && n <= 1048576;\n}, se = \"SheetXL\", _e = (e) => {\n const t = e.typeName.getText();\n return t.startsWith(`${se}.`) ? t.slice(8) : t;\n};\nbt(se, mt);\nbt(se, St);\nbt(se, Jr);\nYr.add(se + \".AcceptError\");\nqr.add(`${se}.Omittable`);\nZr.add(`${se}.NoLift`);\nQr.add(`${se}.NoFilter`);\nen.add(`${se}.Lazy`);\nht.add(`${se}.ReportType`);\nconst li = /* @__PURE__ */ new Map([[\"Volatile\", () => ({ volatile: !0 })], [`${se}.Volatile`, () => ({ volatile: !0 })]]), Yt = \"__scriptContext__\", qt = \"script\", si = /* @__PURE__ */ new Set([\n \"IScript.ScriptContext\",\n `${se}.IScript.ScriptContext`,\n \"ScriptContext\"\n]), Zt = (e, t) => {\n const r = t.literal;\n if (r === void 0) return;\n const n = e.SyntaxKind;\n switch (r.kind) {\n case n.StringLiteral: return r.text;\n case n.NumericLiteral: return parseFloat(r.text);\n case n.TrueKeyword: return !0;\n case n.FalseKeyword: return !1;\n case n.NullKeyword: return null;\n case n.PrefixUnaryExpression: return r.operator === n.MinusToken && r.operand?.kind === n.NumericLiteral ? -parseFloat(r.operand.text) : void 0;\n default: return;\n }\n}, Le = (e) => {\n if (!e || e.length === 0) return \"\";\n let t = \"\";\n for (let r = 0; r < e.length; r++) {\n const n = e[r], o = n.kind;\n if (o !== \"link\") {\n if (o === \"linkName\") {\n const i = e[r + 1];\n if (i?.kind === \"linkText\" && i.text.trim()) continue;\n t += n.text;\n continue;\n }\n if (o === \"linkText\") {\n t += n.text.trim();\n continue;\n }\n t += n.text;\n }\n }\n return t.replace(/\\r\\n?/g, `\n`).split(/\\n[^\\S\\n]*\\n\\s*/).map((r) => r.split(`\n`).map((n) => n.trim()).filter(Boolean).join(\" \")).filter(Boolean).join(`\n`).trim();\n};\nfunction ci(e, t, r, n) {\n const o = n?.builtInNames?.length ? new Set(n.builtInNames.map((u) => u.toUpperCase())) : null, i = [], l = /* @__PURE__ */ new Map(), s = [];\n let c = null;\n const d = (u) => {\n if (!u || typeof u.getStart != \"function\") return {\n start: 0,\n length: 0\n };\n try {\n return {\n start: u.getStart(),\n length: u.getWidth()\n };\n } catch {\n return {\n start: 0,\n length: 0\n };\n }\n }, m = (u, f, v, _) => {\n const { start: C, length: L } = d(u);\n s.push({\n start: C,\n length: L,\n severity: v,\n code: f,\n message: _\n });\n }, a = (u, f, v) => {\n m(u, f, \"error\", v);\n }, p = (u) => u?.parent?.name?.escapedText;\n let b = null;\n const S = (u, f, v, _, C = !1, L = !1, K = !1) => {\n const F = { count: 0 }, $ = te(u, f, v, _, F, C, L, K);\n F.count >= 2 && (f.range || (f.range = \"m\", F.count -= 2), !_ && F.count >= 1 && (F.count -= 1, F.count > 0 && a(u, E.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${p(u)}'.`))), F.count > 0 && (f.arrayDepth = F.count);\n const P = f.enum;\n return P && (F.count > (K ? 1 : 0) || f.range) && !z.has(f) && (f.valueOrRange || (a(u, E.EnumPosition, `A list cannot hold the enum '${P.id}': '${f.name ?? p(u)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: ${P.id}[]'), or type the list by its scalar ('${P.type}').`), delete f.enum)), $;\n }, A = (u, f, v, _, C) => {\n if (f !== \"Lambda\" && f !== `${se}.Lambda`) return !1;\n const L = u.typeArguments;\n let K = \"*\";\n if (L && L.length === 2) if (C && L[0].kind === e.SyntaxKind.TupleType && (v.lambdaArity = L[0].elements.length), L[1].kind === e.SyntaxKind.AnyKeyword) K = \"raw\";\n else {\n const F = {};\n te(L[1], F, _, !1, { count: 0 }), K = F.scalar ?? \"*\";\n }\n else if (L && L.length === 1 && L[0].kind !== e.SyntaxKind.TupleType && L[0].kind !== e.SyntaxKind.ArrayType) if (C && (v.lambdaArity = 2), L[0].kind === e.SyntaxKind.AnyKeyword) K = \"raw\";\n else {\n const F = {};\n te(L[0], F, _, !1, { count: 0 }), K = F.scalar ?? \"*\";\n }\n return v.lambda = K, !0;\n }, U = (u, f, v, _) => {\n if (!_) {\n a(u, E.FunctionReturn, `Function type is not a valid return type: '${p(u)}'. Declare a 'Lambda' return instead.`);\n return;\n }\n const C = u.type, L = {};\n let K = \"*\";\n C && (C.kind === e.SyntaxKind.AnyKeyword ? K = \"raw\" : (te(C, L, v, !1, { count: 0 }), K = L.scalar ?? \"*\"));\n const F = u.parameters;\n F && !F.some(($) => $.dotDotDotToken) && (f.lambdaArity = F.length), f.lambda = K;\n }, h = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), D = /* @__PURE__ */ new Set(), z = /* @__PURE__ */ new WeakSet(), k = (u) => u !== void 0 && u.getSourceFile() === t, R = (u, f = !1) => {\n return u.getJsDocTags(r).find((_) => _.name === \"name\")?.text?.map((_) => _.text).join(\"\").trim() || (f ? or.camelToPrettyCase(u.name) : u.name);\n }, O = (u) => {\n const f = u.getJsDocTags(r).find((v) => v.name === \"deprecated\");\n if (f) return f.text?.map((v) => v.text).join(\"\").trim() || !0;\n }, de = (u, f) => {\n const v = e.isTypeReferenceNode(u) ? u.typeName : void 0, _ = v ? r.getSymbolAtLocation(v) : void 0, C = _?.declarations?.length ? _ : void 0;\n if (v) {\n if (C && C.flags & e.SymbolFlags.Alias) {\n a(u, E.EnumNotLocal, `'${v.getText()}' is imported, so its declaration cannot be read: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n if (!C || !(C.flags & e.SymbolFlags.Type)) {\n const x = v.getText();\n 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;\n a(u, E.EnumMissingAlias, `'${x}' is a value, not a type: '${f}'. Pair the object with a same-name type — 'type ${x} = typeof ${x}[keyof typeof ${x}];' — or declare it as 'enum ${x} { … }'.`);\n return;\n }\n const g = h.get(C);\n if (g !== void 0) return g;\n if (D.has(C)) return;\n }\n const L = [];\n let K = !1;\n if (C && C.flags & e.SymbolFlags.Enum) {\n if (!C.declarations?.some(k)) {\n a(u, E.EnumNotLocal, `'${C.name}' is not declared in this module: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n K = !0;\n let g = !1;\n if (C.exports?.forEach((x) => {\n const I = x.valueDeclaration;\n if (!I || !e.isEnumMember(I)) return;\n const V = r.getConstantValue(I);\n if (V === void 0) {\n a(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;\n return;\n }\n L.push([\n R(x, !0),\n V,\n I,\n Le(x.getDocumentationComment(r)),\n O(x)\n ]);\n }), g) {\n D.add(C);\n return;\n }\n } else {\n const g = r.getTypeFromTypeNode(u), x = e.TypeFlags.Null | e.TypeFlags.Undefined | e.TypeFlags.Void, I = (g.isUnion() ? g.types : [g]).filter((B) => !(B.flags & x)), V = [];\n for (const B of I) {\n if (!(B.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) return C && h.set(C, null), null;\n V.push(B.value);\n }\n if (V.length === 0) return null;\n const re = C?.declarations?.find((B) => e.isTypeAliasDeclaration(B)), Y = e.isUnionTypeNode(u) ? u : re?.type;\n if (Y && e.isUnionTypeNode(Y)) {\n const B = Y.types.map((N) => {\n const ne = r.getTypeFromTypeNode(N);\n return ne.isLiteral() ? ne.value : void 0;\n }), M = (N) => {\n const ne = B.indexOf(N);\n return ne < 0 ? B.length : ne;\n };\n V.sort((N, ne) => M(N) - M(ne));\n }\n const Q = C && C.flags & e.SymbolFlags.Variable ? C.valueDeclaration : void 0, he = new Set(V);\n if (C && Q && k(Q)) for (const B of r.getTypeOfSymbolAtLocation(C, Q).getProperties()) {\n const M = B.valueDeclaration, N = r.getTypeOfSymbolAtLocation(B, M ?? Q);\n if (!(N.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) continue;\n const ne = N.value;\n V.includes(ne) && (K = !0, he.delete(ne), L.push([\n R(B, !0),\n ne,\n M,\n Le(B.getDocumentationComment(r)),\n O(B)\n ]));\n }\n for (const B of V) he.has(B) && L.push([\n String(B),\n B,\n void 0,\n null\n ]);\n }\n if (L.length === 0) return null;\n const F = typeof L[0][1] == \"number\";\n if (L.some(([, g]) => typeof g == \"number\" !== F)) {\n a(u, E.EnumMixed, `'${C?.name ?? u.getText()}' mixes number and string members: '${f}'. A parameter has one type, so an enum is all numbers or all strings.`);\n return;\n }\n const $ = C ? R(C) : L.map(([, g]) => String(g)).join(\"|\"), P = C ? void 0 : y.get($);\n if (P) return P;\n if (K) {\n const g = /* @__PURE__ */ new Map();\n for (const [x, I, V, re] of L) {\n const Y = V?.name?.getText() ?? x, Q = g.get(I);\n 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.`);\n }\n }\n const G = {\n id: $,\n type: F ? me.Number : me.String,\n members: L.map(([g, x, , , I]) => I ? [\n g,\n x,\n I\n ] : [g, x])\n };\n C ? h.set(C, G) : y.set($, G);\n const X = C ? Le(C.getDocumentationComment(r)) : \"\", j = {};\n for (const [g, , , x] of L) x && (j[g] = { description: x });\n if (X || Object.keys(j).length > 0) {\n const g = {};\n X && (g.summary = X), Object.keys(j).length > 0 && (g.members = j), w.set(G, g);\n }\n return G;\n }, we = (u, f, v, _) => {\n const C = (F, $, P) => {\n const G = { name: F };\n return S($, G, v, !0), P && (G.optional = !0), _ && !G.acceptError && (G.acceptError = !0), G;\n };\n if (u.kind !== e.SyntaxKind.TupleType) return [C(f, u, !1)];\n const L = u.elements;\n if (L.length < 2) return a(u, E.RepeatingSlots, `'${f}': a repeating group of period ${L.length} must be spelled 'Repeating<T>' without the tuple.`), null;\n const K = [];\n for (let F = 0; F < L.length; F++) {\n const $ = L[F];\n if ($.kind !== e.SyntaxKind.NamedTupleMember) return a($, E.RepeatingSlots, `'${f}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;\n const P = !!$.questionToken;\n if (P && F !== L.length - 1) return a($, E.RepeatingOptional, `'${f}': only the LAST slot of a repeating group may be optional (slot '${$.name?.getText?.()}' is not).`), null;\n K.push(C($.name?.getText?.() ?? `${F}`, $.type, P));\n }\n return K;\n }, te = (u, f, v, _, C, L = !1, K = !1, F = !1) => {\n if (!u) {\n a(u, E.MissingType, `Type is not defined for '${f?.name ?? \"return\"}'.`);\n return;\n }\n if (u.kind === e.SyntaxKind.ParenthesizedType) return te(u.type, f, v, _, C, L, K, F);\n if (u.kind === e.SyntaxKind.UnionType) {\n const $ = (X) => X.kind === e.SyntaxKind.UndefinedKeyword || X.kind === e.SyntaxKind.VoidKeyword || X.kind === e.SyntaxKind.NullKeyword || X.kind === e.SyntaxKind.LiteralType && X.literal?.kind === e.SyntaxKind.NullKeyword, P = u.types.filter((X) => !$(X));\n if (P.length === 1) return te(P[0], f, v, _, C, L, K, F);\n const G = de(u, f.name ?? p(u));\n if (G === void 0) return;\n if (G !== null) {\n f.scalar = G.type, _ && (f.enum = G);\n return;\n }\n if (!_) {\n f.scalar = \"*\";\n return;\n }\n if (P.length === 2) {\n const X = (g) => g.kind !== e.SyntaxKind.TypeReference ? !1 : e.isTypeReferenceNode(g) && _e(g) === \"Lambda\", j = P.findIndex(X);\n if (j >= 0 && !X(P[1 - j])) {\n te(P[1 - j], f, v, _, C, L, K, F), A(P[j], _e(P[j]), f, v, _);\n return;\n }\n }\n if (_ && P.length === 2) {\n const X = (g) => {\n if (!(g.kind !== e.SyntaxKind.TypeReference || g.typeArguments?.length)) return mt.get(_e(g));\n }, j = P.findIndex((g) => X(g) !== void 0);\n if (j >= 0 && X(P[1 - j]) === void 0) {\n const g = {}, x = C.count;\n if (te(P[1 - j], g, v, _, C, L, !1), g.scalar && !g.range && g.lambda == null && C.count === x) {\n f.range = X(P[j]), f.scalar = g.scalar, f.valueOrRange = !0;\n const I = g.enum;\n I && (f.enum = I);\n return;\n }\n }\n }\n if (_ && P.length === 2) {\n const X = (g) => g.kind === e.SyntaxKind.TypeReference && !g.typeArguments?.length && _e(g) === \"Scalar\", j = P.findIndex(X);\n if (j >= 0 && !X(P[1 - j])) {\n const g = de(P[1 - j], f.name ?? p(u));\n if (g === void 0) return;\n if (g !== null) {\n f.scalar = \"*\", f.enum = g;\n return;\n }\n }\n }\n a(u, E.InvalidParamType, `Union parameter types are not supported: '${p(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.`);\n return;\n }\n if (u.kind === e.SyntaxKind.NumberKeyword) f.scalar = me.Number;\n else if (u.kind === e.SyntaxKind.StringKeyword) f.scalar = me.String;\n else if (u.kind === e.SyntaxKind.BooleanKeyword) f.scalar = me.Boolean;\n else if (u.kind === e.SyntaxKind.UndefinedKeyword || u.kind === e.SyntaxKind.NullKeyword || u.kind === e.SyntaxKind.VoidKeyword) {\n if (_) {\n a(u, E.UndefinedInput, `'undefined' is not a valid type for input: '${p(u)}'.`);\n return;\n }\n f.scalar = me.Null;\n } else if (u.kind === e.SyntaxKind.BigIntKeyword) f.scalar = me.Number;\n else if (u.kind === e.SyntaxKind.AnyKeyword) _ && (f.range = \"*\");\n else if (u.kind === e.SyntaxKind.ArrayType) {\n const $ = u.elementType;\n if (!$) {\n a(u, E.UntypedArray, `'Array' must be typed: '${p(u)}'.`);\n return;\n }\n if (_ && K) {\n const P = f, G = P.name ?? p(u) ?? \"parameter\", X = P.acceptError;\n delete P.acceptError;\n const j = { name: G };\n S($, j, v, !0), X && !j.acceptError && (j.acceptError = !0), P.repeating = [j];\n return;\n }\n C.count++, te($, f, v, _, C);\n } else if (u.kind !== e.SyntaxKind.TupleType) if (u.kind === e.SyntaxKind.TypeReference) {\n const $ = _e(u);\n if (Yr.has($)) {\n const g = p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'${$}' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = f;\n if (x.acceptError) {\n a(u, E.InvalidParamType, `'${g}' declares 'AcceptError' more than once.`);\n return;\n }\n const I = u.typeArguments;\n if (!I || I.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${g}'.`);\n return;\n }\n return x.acceptError = !0, te(I[0], f, v, _, C, L, K, F);\n }\n if (ht.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'ReportType' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${g}'.`);\n return;\n }\n return f.reportType = !0, te(x[0], f, v, _, C, L, K, F);\n }\n if (Zr.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'NoLift' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${g}'.`);\n return;\n }\n const I = f;\n I.noLift = !0;\n const V = C.count;\n te(x[0], f, v, _, C, L, K, F), (I.range || I.lambda != null || I.repeating || C.count !== V) && a(u, E.InvalidParamType, `'${g}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);\n return;\n }\n if (Qr.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'NoFilter' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${g}'.`);\n return;\n }\n const I = f;\n I.noFilter = !0;\n const V = C.count;\n if (te(x[0], f, v, _, C, L, K, F), I.range || I.lambda != null || C.count !== V) {\n a(u, E.InvalidParamType, `'${g}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.`);\n return;\n }\n const re = I.repeating;\n if (re) {\n if (delete I.noFilter, re.length !== 1) {\n a(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.`);\n return;\n }\n re[0].noFilter = !0;\n } else K && a(u, E.InvalidParamType, `'${g}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);\n return;\n }\n if (qr.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'Omittable' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length < 1 || x.length > 2) {\n a(u, E.GenericArity, `'${$}' must be typed with 1 or 2 types: '${g}'.`);\n return;\n }\n const I = f;\n if (I.omittable = !0, x.length === 2) {\n const Y = Zt(e, x[1]);\n if (Y === void 0) {\n a(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.`);\n return;\n }\n I.omittedValue = Y;\n }\n const V = te(x[0], f, v, _, C, L, K, F), re = I.omittedValue;\n return I.enum && re !== void 0 && re !== null && !I.enum.members.some(([, Y]) => Y === re) && a(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;\n }\n if (en.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'Lazy' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = f;\n if (x.lazy) {\n a(u, E.InvalidParamType, `'${g}' declares 'Lazy' more than once.`);\n return;\n }\n const I = u.typeArguments;\n if (!I || I.length < 1 || I.length > 2) {\n a(u, E.GenericArity, `'${$}' must be typed with 1 or 2 types: '${g}'.`);\n return;\n }\n if (x.lazy = !0, I.length === 2) {\n const V = Zt(e, I[1]);\n if (V === void 0) {\n a(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.`);\n return;\n }\n x.optional = !0, x.defaultValue = V;\n }\n te(I[0], f, v, _, C, L, K, F), x.enum ? (a(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 ? a(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 && a(u, E.InvalidParamType, `'${g}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);\n return;\n }\n if (ri.has($)) {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.InvalidReturnType, `'Flatten' is not a valid return type: '${g}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${g}'.`);\n return;\n }\n return C.count++, te(x[0], f, v, _, C, L);\n }\n if (Jr.get($) === \"repeating\") {\n const g = f.name ?? p(u);\n if (!_) {\n a(u, E.RepeatingPosition, `'Repeating' is not a valid return type: '${g}'.`);\n return;\n }\n if (C.count !== 0) {\n a(u, E.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${g}'.`);\n return;\n }\n const x = f, I = u.typeArguments;\n if (!I || I.length < 1 || I.length > 2) {\n a(u, E.GenericArity, `'${$}' must be typed with 1 type, optionally followed by a maximum argument count: '${g}'.`);\n return;\n }\n let V;\n if (I.length === 2) {\n const Q = I[1], he = Q.kind === e.SyntaxKind.LiteralType ? Q.literal : null, B = he && he.kind === e.SyntaxKind.NumericLiteral ? Number(he.text) : NaN;\n if (!Number.isInteger(B) || B < 1 || B > Jt) {\n a(Q, E.RepeatingMax, `'${g}': '${$}'’s maximum must be a whole number between 1 and ${Jt}.`);\n return;\n }\n V = B, v.maxArguments = B;\n }\n if (F) {\n if (V === void 0) {\n a(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.`);\n return;\n }\n return te(I[0], f, v, _, C, L, K);\n }\n const re = x.acceptError;\n delete x.acceptError;\n const Y = we(I[0], g ?? \"parameter\", v, re);\n Y && (x.repeating = Y);\n return;\n }\n const P = mt.get($);\n let G = !1;\n P && (f.range = P, G = !0);\n const X = ti.get($);\n if (X && (f.scalar = X), X !== void 0 && (G = !0), A(u, $, f, v, _)) return;\n if (_) {\n if ($ === \"Volatile\" || $ === `${se}.Volatile`) {\n a(u, E.InvalidParamType, `'Volatile' is not a valid parameter type: '${p(u)}'. It describes the function's RESULT, so it belongs on the return type.`);\n return;\n }\n if (si.has($)) return Yt;\n const g = St.get($);\n if (g) return g;\n } else if ($ === \"Promise\") b = u, G = !0;\n else {\n const g = li.get($);\n g && (Object.assign(f, g()), G = !0);\n }\n if (!G) {\n const g = de(u, f.name ?? p(u));\n if (g === void 0) return;\n if (g !== null) {\n f.scalar = g.type, _ && (f.enum = g);\n return;\n }\n }\n if (!G) {\n 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)\";\n let I;\n _ ? L ? I = `'${$}' is not a valid first parameter: '${p(u)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${ei.join(\", \")} (macro target); ${g} (calculation input).` : I = `'${$}' is not a valid parameter type: '${p(u)}'. Allowed: ${g}.` : I = `'${$}' is not a valid return type: '${p(u)}'. Allowed: ${x}.`, a(u, _ ? E.InvalidParamType : E.InvalidReturnType, I);\n return;\n }\n const j = u.typeArguments;\n if (j) {\n if (j.length !== 1) {\n a(u, E.GenericArity, `'${$}' must be typed with exactly 1 type: '${p(u)}'.`);\n return;\n }\n const g = j[0], x = _ && e.isTypeReferenceNode(g) && ht.has(_e(g)), I = f.reportType;\n x && z.add(f), S(g, f, v, _), x && I === void 0 && delete f.reportType;\n const V = f.enum;\n V && !x && (a(j[0], E.EnumPosition, `'${$}' cannot hold the enum '${V.id}': '${p(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 f.enum);\n }\n } else u.kind === e.SyntaxKind.FunctionType && U(u, f, v, _);\n }, qe = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Export) !== 0, Ae = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Default) !== 0;\n try {\n e.forEachChild(t, (u) => {\n if (qe(u) && e.isFunctionDeclaration(u)) {\n const f = u?.name?.getText();\n if (!u.body) {\n a(u, E.NoBody, `'${f}': function has no body.`);\n return;\n }\n if (!f) {\n a(u, E.Anonymous, \"Anonymous exported functions are not allowed.\");\n return;\n }\n const v = {}, _ = { parameters: {} };\n try {\n v.name = f;\n const C = r.getSymbolAtLocation(u.name), L = Le(C?.getDocumentationComment(r));\n L && (_.summary = L);\n const K = {};\n b = null, S(u.type, K, v, !1), v.returnType = K;\n const F = {};\n Ae(u) && (F.default = !0, c = f), v.parameters = [];\n const $ = /* @__PURE__ */ new Map(), P = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Set();\n let X = null, j = null, g = null, x = 0, I = !1, V = 0;\n for (let B = 0; B < u.parameters.length; B++) {\n const M = u.parameters[B], N = {};\n N.name = M.name?.getText();\n const ne = v.parameters.length === 0;\n if (n?.lenient && B === 0 && !M.type && F.default) {\n v.context = qt;\n continue;\n }\n const Re = S(M.type, N, v, !0, ne, !M.dotDotDotToken, !!M.dotDotDotToken);\n if (Re === Yt) {\n B === 0 && v.context === void 0 && (v.context = qt);\n continue;\n }\n if (Re) {\n if (v.parameters.length !== 0) {\n a(M, E.ContextNotFirst, `'${v.name}' contexts must be the first parameter: '${N.name}'.`);\n return;\n }\n v.context = Re;\n continue;\n }\n if (N.lambda !== void 0) {\n if (X !== null) {\n a(M, E.MultipleLambda, `'${v.name}' has more than one Lambda parameter ('${X}' and '${N.name}'). Only one Lambda parameter is allowed.`);\n return;\n }\n X = N.name;\n } else if (X !== null) {\n a(M, E.LambdaNotLast, `'${v.name}' Lambda parameter ('${X}') must be the last parameter, but '${N.name}' follows it.`);\n return;\n }\n const ye = N.optional === !0 || !((M.initializer === void 0 || M.initializer === null) && (M.questionToken === void 0 || M.questionToken === null));\n let ae;\n if (ye && (N.optional = !0, M.initializer)) try {\n if (M.initializer.kind === e.SyntaxKind.StringLiteral) ae = M.initializer.text;\n else if (M.initializer.kind === e.SyntaxKind.NumericLiteral) ae = parseFloat(M.initializer.text);\n else if (M.initializer.kind === e.SyntaxKind.TrueKeyword || M.initializer.kind === e.SyntaxKind.FalseKeyword) ae = M.initializer.kind === e.SyntaxKind.TrueKeyword;\n else if (M.initializer.kind === e.SyntaxKind.NullKeyword) ae = null;\n else if (e.isPrefixUnaryExpression(M.initializer) && M.initializer.operator === e.SyntaxKind.MinusToken && M.initializer.operand.kind === e.SyntaxKind.NumericLiteral) ae = -parseFloat(M.initializer.operand.text);\n else if (e.isPropertyAccessExpression(M.initializer) || e.isElementAccessExpression(M.initializer)) {\n const ue = r.getTypeAtLocation(M.initializer);\n ue.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral) && (ae = ue.value);\n }\n } catch (ue) {\n console.warn(`Couldn't extract default value for parameter '${N.name}'`, ue);\n }\n M.dotDotDotToken && (N.rest = !0);\n const H = N.repeating;\n if (H) {\n if (N.rest) {\n a(M, E.RepeatingPosition, `'${v.name}' parameter '${N.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.`);\n return;\n }\n if (ye && H.length === 1) {\n a(M, 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.`);\n return;\n }\n if (j !== null) {\n a(M, 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.`);\n return;\n }\n if (g !== null) {\n a(M, E.RepeatingOptional, `'${v.name}' parameter '${g}' is optional and precedes the repeating group '${N.name}'. Every parameter outside a group must be required.`);\n return;\n }\n j = N.name, x = H.length, I = H[H.length - 1].optional === !0;\n } else if (j !== null && N.rest) {\n a(M, 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.`);\n return;\n } else if (j !== null && ye) {\n if (V >= x - 1) {\n a(M, 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.`);\n return;\n }\n if (I) {\n a(M, 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.`);\n return;\n }\n V++;\n }\n ye && !H && (g = N.name);\n const W = (N.range ? 2 : 0) + (N.arrayDepth ?? 0), Pe = N.range === \"r\" || N.range === \"p\" || N.range === \"*\", Z = N.rest || Pe ? 3 : 2;\n if (W > Z) {\n a(M, 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)\"}.`);\n return;\n }\n v.parameters.push(N);\n const ce = { description: \"\" };\n _.parameters[N.name] = ce;\n const Ze = r.getSymbolAtLocation(M.name);\n ce.description = Le(Ze?.getDocumentationComment(r)), ae !== void 0 && (N.defaultValue = ae);\n for (const ue of [N, ...N.repeating ?? []]) {\n const Se = ue.enum ? w.get(ue.enum) : void 0;\n Se && ((_.enums ??= {})[ue.enum.id] = Se);\n }\n if ($.set(N.name, N), P.set(N.name, M), H && H.length > 1) {\n G.add(N.name);\n for (const ue of H) {\n const Se = `${N.name}.${ue.name}`;\n _.parameters[Se] = { description: \"\" }, $.set(Se, ue), P.set(Se, M);\n }\n }\n }\n const re = v.maxArguments;\n if (re !== void 0) {\n const B = v.parameters ?? [];\n if (!B.some((N) => N.rest === !0 || N.repeating !== void 0)) {\n a(u, E.RepeatingMax, `'${v.name}' declares a maximum of ${re} arguments but takes a fixed ${B.length}. A maximum only means something on a variadic tail.`);\n return;\n }\n let M = 0;\n for (const N of B) N.rest === !0 || N.optional === !0 || (M += N.repeating ? N.repeating.length : 1);\n if (re < M) {\n a(u, E.RepeatingMax, `'${v.name}' declares a maximum of ${re} arguments but requires ${M}.`);\n return;\n }\n }\n if (u.jsDoc && u.jsDoc.length > 0) {\n const B = u.jsDoc, M = B.length;\n for (let N = 0; N < M; N++) {\n const ne = B[N]?.tags;\n if (!ne) continue;\n const Re = ne.length;\n for (let ye = 0; ye < Re; ye++) {\n const ae = ne[ye];\n let H = ae?.tagName?.text;\n if (!H) continue;\n H = H.toLowerCase();\n let W = ae.comment;\n const Pe = Qo(H);\n if (typeof W != \"string\" && !Pe) {\n H === \"returnkind\" && a(ae, E.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...at].map((Z) => `'${Z}'`).join(\", \")}.`);\n continue;\n }\n if (typeof W == \"string\" && (W = W.replace(/\\r\\n?/g, `\n`).trim()), !(!Pe && W && (W = W.split(`\n`)[0].trim(), !W || W.length === 0))) {\n if (W && typeof W == \"string\") {\n const Z = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let ce, Ze = W, ue = [];\n for (; (ce = Z.exec(W)) !== null;) {\n const [Se, Ci, on, vt] = ce, an = [on.trim()];\n vt && an.push(vt.trim());\n }\n W = Ze, ue.length > 0 && H === \"see\" && (_.links || (_.links = []), _.links.push(...ue));\n }\n if (H === \"name\") {\n const Z = W;\n Z !== f && (_.name = Z);\n } else if (H !== \"description\") {\n if (H === \"param\") {\n const Z = ae.name?.getText?.() ?? ae.name?.text;\n if (!$.get(Z)) {\n a(ae, E.UnknownParam, `Parameter '${Z}' not found in function '${f}'.`);\n continue;\n }\n const ce = _.parameters?.[Z];\n ce && !ce.description && typeof W == \"string\" && W && (ce.description = W);\n } else if (H === \"returns\" || H === \"return\") v.returnType.description = W;\n else if (H === \"returnkind\") {\n const Z = (W ?? \"\").trim().toLowerCase();\n at.has(Z) ? v.returnType.kind = Z : a(ae, E.UnknownReturnKind, `'@returnKind ${Z}' is not a known value kind. Known: ${[...at].map((ce) => `'${ce}'`).join(\", \")}.`);\n } else if (H === \"category\") _.category = W;\n else if (H === \"deprecated\" || H === \"hidden\") {\n let Z = !0;\n const ce = W?.toLowerCase();\n ce === \"false\" ? Z = !1 : ce !== \"true\" && (Z = W), Z !== !1 && (_.deprecated = Z ?? !0, v.hidden = !0);\n }\n }\n }\n }\n }\n }\n if (!v.context && b) {\n a(b, E.InvalidReturnType, `'${f}': 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.`);\n return;\n }\n Object.keys(v.returnType).length === 0 && delete v.returnType, Object.keys(F).length > 0 && (v.behavior = F), _.summary || m(u.name ?? u, E.MissingSummary, \"warning\", `'${f}': missing a description. Add a JSDoc comment above the function.`);\n const Y = !v.context, Q = Y && _.name || f;\n if (Y && !ni.test(Q)) {\n const B = _.name ? `'@name ${_.name}'` : `'${Q}'`;\n a(u.name ?? u, E.InvalidName, `'${f}': ${B} 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.\"));\n return;\n }\n if (Y && !n?.isBuiltIn && ai(Q)) {\n const B = _.name ? `'@name ${_.name}'` : `'${Q}'`;\n a(u.name ?? u, E.InvalidName, `'${f}': ${B} cannot be called from a formula. It reads as a cell address.` + (_.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n const he = l.get(Q.toUpperCase());\n if (he !== void 0) {\n a(u.name ?? u, E.DuplicateName, `'${f}': '${Q}' is already the name of '${he}' in this module.`);\n return;\n }\n if (l.set(Q.toUpperCase(), f), Y && o?.has(Q.toUpperCase())) {\n a(u.name ?? u, E.BuiltInName, `'${Q}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);\n return;\n }\n if (Y) {\n const B = _.parameters ?? {};\n for (const [M, N] of Object.entries(B)) if (!G.has(M) && !N.description) {\n const ne = P.get(M);\n m(ne, E.MissingParamDescription, \"warning\", `'${f}': parameter '${M}' is missing a description. Add an '@param ${M}' tag.`);\n }\n }\n i.push([v, _]);\n } catch (C) {\n a(u, E.ParseError, `'${f}': ${C.message}`);\n }\n }\n });\n } catch (u) {\n a(void 0, E.ParseError, `Unable to analyze module: ${u?.message ?? u}`);\n }\n return {\n functions: i,\n autoRun: c,\n diagnostics: s\n };\n}\nconst Je = \"__SHEETXL\";\nvar ui = /* @__PURE__ */ nr({ initialize: () => di });\nasync function di() {\n return Te || (Te = new Promise(async (e, t) => {\n try {\n const r = \"0.20.2\", n = `https://esm.sh/esbuild-wasm@${r}`, o = `https://esm.sh/esbuild-wasm@${r}/esbuild.wasm`, i = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n n\n)).default;\n await i.initialize({\n wasmURL: o,\n worker: !1\n }), e(i);\n } catch (r) {\n 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 }));\n }\n }), Te);\n}\nvar Te, fi = rr((() => {\n Te = null;\n}));\nlet xe = null, Ve = null;\nasync function pi() {\n if (xe) return xe;\n if (Ve) {\n if (await Ve, !xe) throw new Error(\"ESBuild initialization promise resolved, but instance is not available.\");\n return xe;\n }\n let e, t;\n Ve = new Promise((r, n) => {\n e = r, t = n;\n });\n try {\n const { initialize: r } = await Promise.resolve().then(() => (fi(), ui));\n return xe = await r(), e(), xe;\n } catch (r) {\n throw console.error(\"Failed to import or initialize esbuild:\", r), Ve = null, t(r), r;\n }\n}\nconst mi = { compilerOptions: { target: \"esnext\" } };\nasync function hi(e, t, r = \"/script.js\", n = Je, o = !1) {\n try {\n const i = await pi(), l = \"@sheetxl/primitives\", s = `\n export const FormulaContext = globalThis.${n}?.FormulaContext;\n export const ScalarType = globalThis.${n}?.ScalarType;\n export const Observable = globalThis.${n}?.Observable;\n export const IRange = globalThis.${n}?.IRange;\n export const FormulaError = globalThis.${n}?.FormulaError;\n // Add more exports as needed\n `, c = await i.build({\n entryPoints: [r],\n bundle: !0,\n write: !1,\n format: \"esm\",\n plugins: [{\n name: \"sheetxl-esbuild-in-memory\",\n setup(d) {\n const m = \"sheetxl-\" + (/* @__PURE__ */ new Date()).getTime();\n d.onResolve({ filter: new RegExp(`^(${r.replace(\"/\", \"\\\\/\")}|${l})$`) }, (a) => ({\n path: a.path,\n namespace: m\n })), d.onResolve({ filter: /.*/ }, (a) => {\n if (a.namespace !== m) return console.warn(`esbuild: Treating import \"${a.path}\" as external.`), {\n path: a.path,\n external: !0\n };\n }), d.onLoad({\n filter: /.*/,\n namespace: m\n }, (a) => {\n let p;\n if (a.path === r) p = t;\n else if (a.path === l) p = s;\n else return { errors: [{ text: `Cannot load unknown path in ${m}: ${a.path}` }] };\n return {\n contents: p,\n loader: \"ts\"\n };\n });\n }\n }],\n sourcemap: \"inline\",\n tsconfigRaw: mi,\n minify: o,\n platform: \"neutral\"\n });\n if (c.outputFiles && c.outputFiles.length > 0) return c.outputFiles[0].text;\n throw c.errors && c.errors.length > 0 ? /* @__PURE__ */ new Error(`esbuild bundling failed: ${c.errors.map((d) => d.text).join(`\n`)}`) : /* @__PURE__ */ new Error(\"esbuild did not produce an output file.\");\n } catch (i) {\n throw console.error(\"esbuild bundling process failed:\", i), i;\n }\n}\nfunction gi(e, t, r) {\n return (n) => {\n const o = n.factory, i = () => o.createExpressionStatement(o.createCallChain(o.createPropertyAccessExpression(o.createIdentifier(Je), \"checkRun\"), o.createToken(e.SyntaxKind.QuestionDotToken), void 0, [o.createStringLiteral(t), o.createNumericLiteral(r)])), l = (a) => {\n const p = a.statements;\n let b = 0;\n for (; b < p.length && e.isExpressionStatement(p[b]) && e.isStringLiteral(p[b].expression);) b++;\n return o.updateBlock(a, [\n ...p.slice(0, b),\n i(),\n ...p.slice(b)\n ]);\n }, s = (a) => e.isBlock(a) ? l(a) : o.createBlock([i(), a], !0), c = (a) => e.isBlock(a) ? l(a) : o.createBlock([i(), o.createReturnStatement(a)], !0), d = (a) => e.isForStatement(a) || e.isForInStatement(a) || e.isForOfStatement(a) || e.isWhileStatement(a) || e.isDoStatement(a), m = (a) => {\n if (d(a)) {\n const p = a.statement;\n return e.visitEachChild(a, (b) => {\n const S = m(b);\n return b === p ? s(S) : S;\n }, n);\n }\n if (e.isFunctionLike(a) && a.body) {\n const p = a.body;\n return e.visitEachChild(a, (b) => {\n const S = m(b);\n return b === p ? c(S) : S;\n }, n);\n }\n return e.visitEachChild(a, m, n);\n };\n return (a) => e.visitNode(a, m);\n };\n}\nconst Qt = \"//# sourceMappingURL\";\nvar tn = /* @__PURE__ */ nr({\n initialize: () => yi,\n readLibFile: () => wi\n});\nasync function yi() {\n return Ce || (Ce = new Promise(async (e, t) => {\n let r = null;\n try {\n r = await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"https://esm.sh/typescript@5.7.2\"\n);\n } catch (n) {\n console.error(\"Error initializing Browser TypeScript module:\", n);\n }\n r || (console.log(\"use script fallback\"), Ce = null), e(r);\n }), Ce);\n}\nfunction wi(e, t) {}\nvar Ce, rn = rr((() => {\n Ce = null;\n}));\nconst Si = `\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise<T> {\n /**\n * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The\n * resolved value cannot be modified from the callback.\n * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).\n * @returns A Promise for the completion of the callback.\n */\n finally(onfinally?: (() => void) | undefined | null): Promise<T>;\n}\n`, bi = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, vi = async () => bi;\nlet Xe = null;\nconst lt = \"sheetxl.d.ts\", er = \"sheetxl-modules.d.ts\", Ei = `declare module '@sheetxl/primitives' { export = SheetXL; }\n`, _i = [\n \"lib.webworker.d.ts\",\n \"lib.es2020.d.ts\",\n \"lib.esnext.asynciterable.d.ts\"\n], tr = /* @__PURE__ */ new Map();\nlet st = null, ct = null;\nasync function xi() {\n return ct || (ct = Promise.resolve().then(() => (rn(), tn)).then(async (e) => {\n const t = await nn();\n return e.readLibFile(t, \"lib.es5.d.ts\") !== void 0 ? e.readLibFile : null;\n })), ct;\n}\nasync function nn() {\n if (Xe) return Xe;\n try {\n const e = await (await Promise.resolve().then(() => (rn(), tn))).initialize();\n if (!e) throw new Error(\"TypeScript could not be loaded. Check your connection and try again.\");\n return e;\n } catch (e) {\n throw Xe = null, e;\n } finally {\n Xe = null;\n }\n}\nasync function Ti(e) {\n const t = e?.source ?? null;\n if (!t) return {\n module: null,\n diagnostics: []\n };\n const r = (e.disableBundle || e.declarationsOnly) ?? !1, [n, o, i] = await Promise.all([\n vi(),\n nn(),\n e.ambientTypes ? xi() : null\n ]), l = i ? e.ambientTypes ?? null : null;\n let s = \"\";\n const c = {\n allowJs: !0,\n declaration: !1,\n sourceMap: !1,\n inlineSourceMap: !1,\n inlineSources: !1,\n isolatedModules: !0,\n preserveConstEnums: !1,\n module: 99,\n noResolve: !0,\n emitDeclarationOnly: !1,\n target: o.ScriptTarget.ES2020,\n ...l ? {\n lib: _i,\n skipLibCheck: !0,\n strict: !0\n } : {}\n }, d = \"script\", m = `${d}.ts`, a = \"lib.d.ts\", p = \"global.d.ts\", b = {\n [m]: t,\n [a]: Si,\n [p]: n,\n ...l ? {\n [lt]: l,\n [er]: Ei\n } : {}\n }, S = (f) => b[f] ?? (i && f.startsWith(\"lib.\") ? i(o, f) : void 0), A = {\n getSourceFile: (f, v, _, C) => {\n if (f === lt) return st?.text !== l && (st = {\n text: l,\n file: o.createSourceFile(f, l, o.ScriptTarget.Latest, !1)\n }), st.file;\n if (b[f] === void 0) {\n let L = tr.get(f);\n if (!L) {\n const K = S(f);\n if (K === void 0) return;\n L = o.createSourceFile(f, K, o.ScriptTarget.Latest, !1), tr.set(f, L);\n }\n return L;\n }\n return o.createSourceFile(f, b[f], o.ScriptTarget.Latest, !0);\n },\n fileExists: (f) => S(f) !== void 0,\n readFile: S,\n writeFile: (f, v) => {\n b[f] = v;\n },\n getCurrentDirectory: () => \"./\",\n getCanonicalFileName: (f) => f,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (f) => a,\n getNewLine: () => `\n`\n }, U = o.createProgram([\n m,\n p,\n ...l ? [lt, er] : []\n ], c, A), h = U.getTypeChecker(), y = U.getSourceFile(m), w = e.runGuard;\n U.emit(void 0, void 0, void 0, void 0, w ? { before: [gi(o, w.key, w.timeoutMs)] } : void 0), s = b[`${d}.js`] ?? \"\";\n const D = (f) => ({\n start: f.start ?? 0,\n length: f.length ?? 0,\n severity: f.category === o.DiagnosticCategory.Warning ? \"warning\" : \"error\",\n code: `TS${f.code}`,\n message: o.flattenDiagnosticMessageText(f.messageText, `\n`)\n }), z = U.getSyntacticDiagnostics(y).map(D), k = l ? U.getSemanticDiagnostics(y).filter((f) => f.category === o.DiagnosticCategory.Error || f.category === o.DiagnosticCategory.Warning).map(D) : [], R = ci(o, y, h, {\n builtInNames: e.builtInNames,\n isBuiltIn: e.isBuiltIn,\n lenient: e.lenient\n });\n let O = [\n ...z,\n ...k,\n ...R.diagnostics\n ];\n e.lenient && (O = O.filter((f) => f.code !== E.MissingType));\n const de = R.functions, we = R.autoRun, te = O.some((f) => f.severity === \"error\"), qe = `${or.uuidV4()}-script`;\n let Ae = null;\n if (te) s = \"\";\n else {\n try {\n r || (s = await hi(o, s, d, void 0, e.minify ?? !1));\n } catch {\n console.warn(\"Error bundling script\");\n }\n const f = s.indexOf(Qt);\n f > -1 && (Ae = s.substring(f + 20 + 1, s.length), s = s.substring(0, f), s = s.replaceAll(\"globalThis.\" + Je, Je));\n }\n const u = {\n functions: de,\n commitId: qe,\n source: t,\n language: \"typescript\",\n compiled: s\n };\n return Ae && (u.sourceMap = Ae), we && (u.autoRun = we), {\n module: u,\n diagnostics: O\n };\n}\nself.addEventListener(\"message\", async (e) => {\n const { id: t, params: r } = e.data;\n try {\n const n = await Ti(r);\n self.postMessage({\n id: t,\n result: n,\n error: null\n });\n } catch (n) {\n self.postMessage({\n id: t,\n result: null,\n error: {\n message: n.message,\n stack: n.stack,\n cause: n.cause\n }\n });\n }\n});\n", r = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", n], { type: "text/javascript;charset=utf-8" });
55
+ function i(e) {
56
+ let t;
57
+ try {
58
+ if (t = r && (self.URL || self.webkitURL).createObjectURL(r), !t) throw "";
59
+ let n = new Worker(t, {
60
+ type: "module",
61
+ name: e?.name
62
+ });
63
+ return n.addEventListener("error", () => {
64
+ (self.URL || self.webkitURL).revokeObjectURL(t);
65
+ }), n;
66
+ } catch {
67
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(n), {
68
+ type: "module",
69
+ name: e?.name
70
+ });
71
+ }
72
+ }
73
+ async function a() {
74
+ if (globalThis.process?.versions?.node && typeof Worker > "u") return await o();
75
+ if (typeof Worker < "u") {
76
+ let t = new e(() => new i());
77
+ try {
78
+ return await t.start(), t;
79
+ } catch (e) {
80
+ console.error("Failed to start TypescriptCompiler worker reverting to fallback:", e);
81
+ }
82
+ }
83
+ return await o();
84
+ }
85
+ var o = async () => {
86
+ let { compileModule: e } = await import("./CZP3O5VDZVpsmWVP.mjs"), n = new t((t) => e(t));
87
+ return await n.start(), n;
88
+ };
89
+ export { a as createCompilerWorker };
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.10
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.12
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
6
  */
7
- import { r as e } from "./DLqc11Pf8vaE4Q5B.mjs";
8
- import { i as t, r as n } from "./C4VT6lNbpaDXCpBb.mjs";
9
- import { b as r } from "./CMxbiQ5J79M3n1tk.mjs";
10
- import { tt as i } from "./BThOwSja2ra4xejQ.mjs";
11
- import { t as a } from "./BAH_cWcQEIBKWnl6.mjs";
12
- import { t as o } from "./rkTVQiYG3wd8oPom.mjs";
13
- import { h as s, j as c } from "./CtZPEkaldpJpoGtW.mjs";
7
+ import { r as e } from "./Cf_c9xyOrFxlsKq6.mjs";
8
+ import { i as t, r as n } from "./D29bSsh1Lz8891Rs.mjs";
9
+ import { m as r } from "./Cif0315haNLmyMj-.mjs";
10
+ import { dt as i } from "./B1mhVM8eRIyuL-VB.mjs";
11
+ import { n as a } from "./B8-nLKLPjZ7pIJdE.mjs";
12
+ import { t as o } from "./DAOjpr33PSwrKpc0.mjs";
13
+ import { M as s, g as c } from "./DJpfJorMrLhI9gOT.mjs";
14
14
  var l = e(t(), 1), u = e(n(), 1), d = ["Ok"], f = [
15
15
  a.Number,
16
16
  a.String,
@@ -44,29 +44,31 @@ var l = e(t(), 1), u = e(n(), 1), d = ["Ok"], f = [
44
44
  value: (t[a.Error] ?? 0).toLocaleString()
45
45
  }
46
46
  ];
47
- }, i = e.getSelectedSheet(), o = i.getUsedRange()?.getCoords(), s = o ? i.getRange({
48
- rowStart: o.rowEnd,
49
- colStart: o.colEnd,
50
- rowEnd: o.rowEnd,
51
- colEnd: o.colEnd
52
- }).getAddress() : "–";
53
- return [{
54
- titleKey: r("workbookStatistics.currentSheet"),
55
- subTitle: i.getName(),
56
- rows: [{
57
- labelKey: r("workbookStatistics.endOfSheet"),
58
- value: s
59
- }, ...n(i.getStats({ onError: "ignore" }))]
60
- }, {
47
+ }, i = {
61
48
  titleKey: r("workbookStatistics.workbook"),
62
49
  subTitle: null,
63
50
  rows: [{
64
51
  labelKey: r("workbookStatistics.sheets"),
65
- value: e.getSheets().getCount().toLocaleString()
52
+ value: e.getWorksheets().getCount().toLocaleString()
66
53
  }, ...n(e.getStats({ onError: "ignore" }))]
67
- }];
54
+ }, o = e.getSelectedWorksheet();
55
+ if (!o) return [i];
56
+ let s = o.getUsedRange()?.getCoords(), c = s ? o.getRange({
57
+ rowStart: s.rowEnd,
58
+ colStart: s.colEnd,
59
+ rowEnd: s.rowEnd,
60
+ colEnd: s.colEnd
61
+ }).getAddress() : "–";
62
+ return [{
63
+ titleKey: r("workbookStatistics.currentSheet"),
64
+ subTitle: o.getName(),
65
+ rows: [{
66
+ labelKey: r("workbookStatistics.endOfSheet"),
67
+ value: c
68
+ }, ...n(o.getStats({ onError: "ignore" }))]
69
+ }, i];
68
70
  }, [t]);
69
- return (0, u.jsx)(s, {
71
+ return (0, u.jsx)(c, {
70
72
  title: _("workbookStatistics.title"),
71
73
  options: p,
72
74
  defaultOption: m,
@@ -83,7 +85,7 @@ var l = e(t(), 1), u = e(n(), 1), d = ["Ok"], f = [
83
85
  rowGap: (e) => e.spacing(2),
84
86
  paddingBottom: (e) => e.spacing(1)
85
87
  },
86
- children: v?.map((e) => (0, u.jsxs)(o, { children: [(0, u.jsxs)(c, {
88
+ children: v?.map((e) => (0, u.jsxs)(o, { children: [(0, u.jsxs)(s, {
87
89
  variant: "subtitle2",
88
90
  component: "div",
89
91
  sx: {
@@ -94,7 +96,7 @@ var l = e(t(), 1), u = e(n(), 1), d = ["Ok"], f = [
94
96
  paddingBottom: (e) => e.spacing(.5),
95
97
  marginBottom: (e) => e.spacing(.5)
96
98
  },
97
- children: [_(e.titleKey), e.subTitle ? (0, u.jsx)(c, {
99
+ children: [_(e.titleKey), e.subTitle ? (0, u.jsx)(s, {
98
100
  variant: "caption",
99
101
  component: "span",
100
102
  color: "text.secondary",
@@ -107,12 +109,12 @@ var l = e(t(), 1), u = e(n(), 1), d = ["Ok"], f = [
107
109
  columnGap: (e) => e.spacing(2),
108
110
  rowGap: (e) => e.spacing(.25)
109
111
  },
110
- children: e.rows.map((e) => (0, u.jsxs)(l.Fragment, { children: [(0, u.jsx)(c, {
112
+ children: e.rows.map((e) => (0, u.jsxs)(l.Fragment, { children: [(0, u.jsx)(s, {
111
113
  variant: "body2",
112
114
  component: "div",
113
115
  color: "text.secondary",
114
116
  children: _(e.labelKey)
115
- }), (0, u.jsx)(c, {
117
+ }), (0, u.jsx)(s, {
116
118
  variant: "body2",
117
119
  component: "div",
118
120
  sx: {
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.10
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.12
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
6
  */
7
- import { r as e } from "./DLqc11Pf8vaE4Q5B.mjs";
8
- import { i as t, r as n } from "./C4VT6lNbpaDXCpBb.mjs";
9
- import { v as r } from "./rkTVQiYG3wd8oPom.mjs";
10
- import { M as i, V as a, gt as o, j as s, lt as c, st as l } from "./CtZPEkaldpJpoGtW.mjs";
11
- import { p as u } from "./D2coM-dNrlLpnUu5.mjs";
12
- import { n as d, r as f } from "./CVxlfyE-gnJM8hOz.mjs";
13
- var p = e(t(), 1), m = e(n(), 1), h = c("div", {
7
+ import { r as e } from "./Cf_c9xyOrFxlsKq6.mjs";
8
+ import { i as t, r as n } from "./D29bSsh1Lz8891Rs.mjs";
9
+ import { v as r } from "./DAOjpr33PSwrKpc0.mjs";
10
+ import { H as i, M as a, N as o, _t as s, ct as c, ut as l } from "./DJpfJorMrLhI9gOT.mjs";
11
+ import { p as u } from "./CW9UkULY0jchroYa.mjs";
12
+ import { n as d, r as f } from "./CrIHwDDOUDcx5WSM.mjs";
13
+ var p = e(t(), 1), m = e(n(), 1), h = l("div", {
14
14
  name: "MuiListItemText",
15
15
  slot: "Root",
16
16
  overridesResolver: (e, t) => {
@@ -29,8 +29,8 @@ var p = e(t(), 1), m = e(n(), 1), h = c("div", {
29
29
  minWidth: 0,
30
30
  marginTop: 4,
31
31
  marginBottom: 4,
32
- [`.${i.root}:where(& .${f.primary})`]: { display: "block" },
33
- [`.${i.root}:where(& .${f.secondary})`]: { display: "block" },
32
+ [`.${o.root}:where(& .${f.primary})`]: { display: "block" },
33
+ [`.${o.root}:where(& .${f.secondary})`]: { display: "block" },
34
34
  variants: [{
35
35
  props: ({ ownerState: e }) => e.primary && e.secondary,
36
36
  style: {
@@ -42,10 +42,10 @@ var p = e(t(), 1), m = e(n(), 1), h = c("div", {
42
42
  style: { paddingLeft: 56 }
43
43
  }]
44
44
  }), g = p.forwardRef(function(e, t) {
45
- let n = l({
45
+ let n = c({
46
46
  props: e,
47
47
  name: "MuiListItemText"
48
- }), { children: i, className: c, disableTypography: f = !1, inset: g = !1, primary: _, secondary: v, slots: y = {}, slotProps: b = {}, ...x } = n, { dense: S } = p.useContext(u), C = _ ?? i, w = v, T = {
48
+ }), { children: o, className: l, disableTypography: f = !1, inset: g = !1, primary: _, secondary: v, slots: y = {}, slotProps: b = {}, ...x } = n, { dense: S } = p.useContext(u), C = _ ?? o, w = v, T = {
49
49
  ...n,
50
50
  disableTypography: f,
51
51
  inset: g,
@@ -54,7 +54,7 @@ var p = e(t(), 1), m = e(n(), 1), h = c("div", {
54
54
  dense: S
55
55
  }, E = ((e) => {
56
56
  let { classes: t, inset: n, primary: r, secondary: i, dense: a } = e;
57
- return o({
57
+ return s({
58
58
  root: [
59
59
  "root",
60
60
  n && "inset",
@@ -67,8 +67,8 @@ var p = e(t(), 1), m = e(n(), 1), h = c("div", {
67
67
  })(T), D = {
68
68
  slots: y,
69
69
  slotProps: b
70
- }, [O, k] = a("root", {
71
- className: r(E.root, c),
70
+ }, [O, k] = i("root", {
71
+ className: r(E.root, l),
72
72
  elementType: h,
73
73
  externalForwardedProps: {
74
74
  ...D,
@@ -76,23 +76,23 @@ var p = e(t(), 1), m = e(n(), 1), h = c("div", {
76
76
  },
77
77
  ownerState: T,
78
78
  ref: t
79
- }), [A, j] = a("primary", {
79
+ }), [A, j] = i("primary", {
80
80
  className: E.primary,
81
- elementType: s,
81
+ elementType: a,
82
82
  externalForwardedProps: D,
83
83
  ownerState: T
84
- }), [M, N] = a("secondary", {
84
+ }), [M, N] = i("secondary", {
85
85
  className: E.secondary,
86
- elementType: s,
86
+ elementType: a,
87
87
  externalForwardedProps: D,
88
88
  ownerState: T
89
89
  });
90
- return C == null || C.type === s || f || (C = (0, m.jsx)(A, {
90
+ return C == null || C.type === a || f || (C = (0, m.jsx)(A, {
91
91
  variant: S ? "body2" : "body1",
92
92
  component: j?.variant ? void 0 : "span",
93
93
  ...j,
94
94
  children: C
95
- })), w == null || w.type === s || f || (w = (0, m.jsx)(M, {
95
+ })), w == null || w.type === a || f || (w = (0, m.jsx)(M, {
96
96
  variant: "body2",
97
97
  color: "textSecondary",
98
98
  ...N,