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

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 (477) hide show
  1. package/browser/esm/1oQRbol_4RzeM8pE.mjs +12 -0
  2. package/{cdn/assets/CwqRA5h1u92Cyit-.js → browser/esm/30kI2LkOs3zgefE5.mjs} +2 -2
  3. package/browser/esm/{BCWTI3jdTPG37r8W.mjs → 4JJNcz4YU6jhtSoO.mjs} +3 -3
  4. package/browser/esm/4o4C9bFlmQd0jPCw.mjs +310 -0
  5. package/browser/esm/6bLEYJYXAK-pOt4_.mjs +294 -0
  6. package/{cdn/assets/J3hutJxqQiHENpIe.js → browser/esm/8j7_68o_ftwk3Slv.mjs} +120 -118
  7. package/browser/esm/{BN2d5U1nw7pRtOrn.mjs → 9MTXF6MTjOgoHb-7.mjs} +1 -1
  8. package/browser/esm/9nCLSPKkGRmkIcuH.mjs +1694 -0
  9. package/browser/esm/{Dwxz0s23ra1tRtsH.mjs → 9wo9OtQmIPqM31Sy.mjs} +2 -2
  10. package/browser/esm/B-O2rWzzFV43__aU.mjs +9523 -0
  11. package/browser/esm/{B7iV5qzlmJlM2nQv.mjs → B-iVqSEgzuf6m47x.mjs} +2 -2
  12. package/browser/esm/{x6GcENwqoUVbd60j.mjs → B0ko2JVTNhsWWWTe.mjs} +1 -1
  13. package/{cdn/assets/pc49xtHdprXZLW2X.js → browser/esm/B1SstI4rcUe8OJ-b.mjs} +1 -1
  14. package/browser/esm/{CqoHxlGpZ3yzPj5V.mjs → B31Krc6W_iL-2TQt.mjs} +12 -12
  15. package/browser/esm/{B00ixdmb8-O5ijEp.mjs → B3ZFz_Z4E28AFJS3.mjs} +1 -1
  16. package/browser/esm/{PtGiIWFBYP-ujLmf.mjs → B5XpACGLcy3zYqlT.mjs} +1 -1
  17. package/browser/esm/{BsUrrzAgfyAdcCJW.mjs → B5cwFaYPxXTSh6vo.mjs} +2 -2
  18. package/browser/esm/{BAdRecWK1maKGOZd.mjs → B8VbElyA5zbjFNs1.mjs} +1 -1
  19. package/browser/esm/B90jZwl6n7fpLoRK.mjs +89 -0
  20. package/browser/esm/{ZbGPiRN9j0629JJQ.mjs → BBS47_AI2p2r0QxX.mjs} +2 -2
  21. package/browser/esm/BBrVIUFf4NJSXblH.mjs +3716 -0
  22. package/browser/esm/{DRm1R4uVOkaMfXNI.mjs → BDWKrgmyLVPkX3h0.mjs} +1 -1
  23. package/browser/esm/{qYca4mdySLkACfo1.mjs → BF9tQV6iUGvJK6QH.mjs} +1 -1
  24. package/browser/esm/{CRAzVh3CaAa16avf.mjs → BFL9_-ur7Lhhkg2F.mjs} +36 -35
  25. package/browser/esm/{ErIXJFPDFXwGEL8V.mjs → BFvZ5JI-hBk3FNJW.mjs} +2 -2
  26. package/browser/esm/{CSEMxasVyGCekxKf.mjs → BGDndra6U64QPYm4.mjs} +1 -1
  27. package/browser/esm/BHAYf-zNKfoCTsTT.mjs +86 -0
  28. package/browser/esm/{ClJvUf8aR8vNC_3Z.mjs → BHKm0iIUckEaUMLV.mjs} +3 -3
  29. package/browser/esm/{_MPToH4oMe4rhTdZ.mjs → BIo-ELlYF8kzkLvH.mjs} +3 -3
  30. package/browser/esm/{CCd192S7yVpc6iOe.mjs → BJKUgLha2XmF08mO.mjs} +17 -16
  31. package/browser/esm/{DvWCBuY0jAL-RmJV.mjs → BKS9kx_PEanwLUuU.mjs} +793 -787
  32. package/browser/esm/BLoUmwvJ5t1eBdZ8.mjs +104 -0
  33. package/browser/esm/{DSviq1TNoiIAGW7W.mjs → BN630GsmoKmNU7ur.mjs} +1 -1
  34. package/browser/esm/{CVxlfyE-gnJM8hOz.mjs → BNWxTMoiH1NkkmAh.mjs} +8 -8
  35. package/{cdn/assets/DQIRFXG4MveFkK3I.js → browser/esm/BNavcunnTVMpcxDs.mjs} +1 -1
  36. package/browser/esm/BRXV-NrDDC3ZrpMt.mjs +55466 -0
  37. package/browser/esm/{FO1Jezau486fH4kN.mjs → BRxDfB_xWCqmT-hR.mjs} +1 -1
  38. package/browser/esm/{DnyZmrwPxShyeUjm.mjs → BT-Bqh_7C0pZ5FlX.mjs} +118 -269
  39. package/{cdn/assets/DfESVLC8CAi8m8A7.js → browser/esm/BUWDOAY73JPQoNzs.mjs} +1 -1
  40. package/browser/esm/{CHMqT9DzYKTxPfP6.mjs → BV2wamfivt6aMUhk.mjs} +1 -1
  41. package/browser/esm/BWQqT6R8MZkUWAe9.mjs +7 -0
  42. package/browser/esm/BYBEZ_hZVBDv3eEU.mjs +1389 -0
  43. package/browser/esm/B_9GaCdaUs6AlWf3.mjs +1417 -0
  44. package/browser/esm/BaNdc_0Lf4FVPUW5.mjs +9715 -0
  45. package/{cdn/assets/BuYS_ZjSlcvWZ1JC.js → browser/esm/BaWDPv9pjRGmAQva.mjs} +2667 -2091
  46. package/{cdn/assets/i0P63Wd0RRlgJotb.js → browser/esm/BaaB1nz3Z8IIy5XL.mjs} +1 -1
  47. package/browser/esm/BbUF-CQBg3zQ_h9S.mjs +323 -0
  48. package/browser/esm/{cwuYkcKwsKkPe3gG.mjs → BdN5nsKULzTfOgkY.mjs} +2 -2
  49. package/{cdn/assets/DXo8mR6t5HGsmTcu.js → browser/esm/Bdt5IdX6u9CLkJdC.mjs} +1 -1
  50. package/browser/esm/BfyWJYjj89_N0zfg.mjs +213 -0
  51. package/browser/esm/{sDVzjXC1mS5rucF5.mjs → BgE-AWbezo3ZcNQU.mjs} +576 -696
  52. package/browser/esm/Bi8dy2A1euGZeE4C.mjs +780 -0
  53. package/browser/esm/{f1OJemsiZnbwnds-.mjs → BiJSAELjvcGbbrB5.mjs} +15 -15
  54. package/browser/esm/{sxxbiJiCMOW2Eivd.mjs → BiLb98_m7AwaRkX6.mjs} +7477 -5995
  55. package/{cdn/assets/FjNOhkR7-JAIaRP6.js → browser/esm/BiSGu7XE2wP-COS-.mjs} +1 -1
  56. package/browser/esm/Bj5v_mMZnT65-EYm.mjs +521 -0
  57. package/browser/esm/Bkf3SJynCJKiDDk9.mjs +1552 -0
  58. package/browser/esm/{iC69oOND5T8khIWf.mjs → BlC9vz791AaVSbC5.mjs} +6 -6
  59. package/browser/esm/{vGKTE7yjY8y-XnsW.mjs → BldyCakCtPYtGXcm.mjs} +2 -2
  60. package/{cdn/assets/DVpi1vC8ixXvUQG_.js → browser/esm/BovxopS-62ImjzWq.mjs} +1 -1
  61. package/browser/esm/BpJup_wq5-qM4TIN.mjs +390 -0
  62. package/browser/esm/Bqf1HNOGA-pPTdl2.mjs +322 -0
  63. package/browser/esm/{BlPn_DXaEXOPxMxC.mjs → Br1Vf_O1YcX7sOJE.mjs} +1 -1
  64. package/{cdn/assets/W1d6GQyySAHrtjEu.js → browser/esm/BsVFvNqmAQw6ai0x.mjs} +1626 -1018
  65. package/browser/esm/Bt4FhwPuIE1PRsBM.mjs +193 -0
  66. package/{cdn/assets/C3r_9RqlWrEmlXZ1.js → browser/esm/Bx9qg5bL1Fzbvk1z.mjs} +1 -1
  67. package/browser/esm/BzZWDsHSEnXClrlJ.mjs +7 -0
  68. package/browser/esm/{CaS8_J5HfBRk5_Nw.mjs → C02QWvfYw-El2r9j.mjs} +32 -32
  69. package/{cdn/assets/BSCja5yvevmKZPBB.js → browser/esm/C4Vjb-3d4J7GxBGw.mjs} +1 -1
  70. package/{cdn/assets/DjtXfgbmXjUAoG0y.js → browser/esm/C635yBozh_t0DPLr.mjs} +1 -1
  71. package/browser/esm/{djM9mJznx8GzVq51.mjs → C7GZIkD5Jz7A5r_a.mjs} +14 -14
  72. package/{cdn/assets/_t0Mx-mUFVtmVNkU.js → browser/esm/C7Yr6jxJx_xXDUR2.mjs} +1 -1
  73. package/browser/esm/C8XNRmzAp2MWyeej.mjs +42 -0
  74. package/{cdn/assets/CQOyeq_-pg3CM-uA.js → browser/esm/C9oBHe1kBAevREtg.mjs} +1 -1
  75. package/browser/esm/{_zRV52yhE4gPf3XI.mjs → C9oIU866QVMlgGyQ.mjs} +55 -55
  76. package/browser/esm/{SNze-adFJwKuGSQW.mjs → CAeD2o0Ls4sIyokt.mjs} +1 -1
  77. package/browser/esm/{C9NyIoUahFiyRCxP.mjs → CBRVZmrwcMfEHc5P.mjs} +1 -1
  78. package/browser/esm/{DTn9oYyiIYgyijAk.mjs → CDWuursC7HDw-bO8.mjs} +25 -24
  79. package/browser/esm/{DoS1sE431fEhdOQb.mjs → CF6TsrZkUX12RY9E.mjs} +4 -4
  80. package/browser/esm/{C4VT6lNbpaDXCpBb.mjs → CFPaTEuxUxH48Dnc.mjs} +2 -2
  81. package/browser/esm/{Dy44qJVkwNseMG-3.mjs → CHGtyPsxQrhRB5bz.mjs} +1 -1
  82. package/browser/esm/{pKc_RPdZPLAgvNDh.mjs → CI2oW6QUhftq4Zxe.mjs} +2 -2
  83. package/browser/esm/CIoNg-5VkB5Nf7xb.mjs +256 -0
  84. package/browser/esm/{CnWNviK4qlX2GVl6.mjs → CJJ6JyOoWWElIIFf.mjs} +12 -13
  85. package/{cdn/assets/gpQ4FdJMbIScKnS_.js → browser/esm/CJdgS3TQ_2BcjCW6.mjs} +8 -8
  86. package/browser/esm/{DNaPo7BQu6hr1fWq.mjs → CK5tMP35Iv98na5Z.mjs} +1 -1
  87. package/browser/esm/CLesyjpCdfNlo_s3.mjs +210 -0
  88. package/browser/esm/CMCV8PICIpUjWafw.mjs +12816 -0
  89. package/browser/esm/{D2coM-dNrlLpnUu5.mjs → CN1_Dq2VdyHJ8cMR.mjs} +6 -6
  90. package/browser/esm/{DLhK_oSGg71ry6-m.mjs → CNTmB0u0Mmzslqit.mjs} +6 -6
  91. package/browser/esm/{D-55MlIn7Wo_hdjI.mjs → CNsG-HP7MrYv4ANy.mjs} +328 -110
  92. package/browser/esm/{DAE3Kv0Vs0VuBecT.mjs → COtPL6l443kTvLpc.mjs} +1 -1
  93. package/browser/esm/{D7DWH3-5fBNx8jtc.mjs → CP_GYwZVbwA9vzxA.mjs} +2 -2
  94. package/{cdn/assets/CFvKDDbrL3wpXnQH.js → browser/esm/CRc3MloTINO1cx9Y.mjs} +1 -1
  95. package/browser/esm/{C5EKgE9Owsc_juw-.mjs → CSUhHtPXRx-MiOJ0.mjs} +1 -1
  96. package/browser/esm/CVB9R-zt99a3DSPN.mjs +3091 -0
  97. package/{cdn/assets/BoFx07POTorOb5g-.js → browser/esm/CVGsocXM6EdK3av8.mjs} +2538 -1728
  98. package/browser/esm/CVg6x0dnCUjr2iMY.mjs +7723 -0
  99. package/browser/esm/{DxwprgjYhcmfDbXH.mjs → CWLvkJU2bOMidhWV.mjs} +17 -17
  100. package/browser/esm/{BBjgqNlHm-ssbSAG.mjs → C_lz-BVnapcDsXH0.mjs} +1 -1
  101. package/browser/esm/C_x94fC0O4_OpNRB.mjs +101 -0
  102. package/browser/esm/CczQS-TJwiXbRhYC.mjs +200 -0
  103. package/{cdn/assets/RfHd1JATBlcsfLPv.js → browser/esm/CdOK8MepIC51cdz1.mjs} +1 -1
  104. package/browser/esm/{rkTVQiYG3wd8oPom.mjs → Cdg4TpupUeYIiz2B.mjs} +3 -3
  105. package/browser/esm/Cf-LLddGP5wUU4hH.mjs +8 -0
  106. package/browser/esm/Cf5dlM0Pkqz1y7Nw.mjs +387 -0
  107. package/{cdn/assets/BI6afPOpgNYkzIWv.js → browser/esm/CfGCIpWOVrKyroeI.mjs} +1775 -1731
  108. package/browser/esm/Cgff_mU98dEc-kSv.mjs +1723 -0
  109. package/browser/esm/{CvWGtHslTdesJik-.mjs → ChTKR1wEz8hgPWRE.mjs} +10 -9
  110. package/{cdn/assets/BAH_cWcQEIBKWnl6.js → browser/esm/Cl1bVTUk0rQUQT9p.mjs} +1 -1
  111. package/browser/esm/{CDsuiN--qdALFyql.mjs → ClKS_5IuXertzGEp.mjs} +2 -2
  112. package/browser/esm/{CWJzHmEgahdOfNjH.mjs → Cnx0vOv2ePi94hMN.mjs} +1 -1
  113. package/browser/esm/{BVJUL2HhoedhbwVy.mjs → CpUZbIdONEC6mghF.mjs} +11 -10
  114. package/browser/esm/{BxhKgo_rPQ2d12HT.mjs → CpzzMIebww7p4m_V.mjs} +4 -4
  115. package/browser/esm/CtX8ODZQGoUqUie3.mjs +162 -0
  116. package/browser/esm/{BeMLfv6hWo15VCIL.mjs → CwIcsETflE-gpYF6.mjs} +23 -23
  117. package/{cdn/assets/CVcCUfSRsiZ1-6hs.js → browser/esm/CzpnOqHBXxESl5Ts.mjs} +1 -1
  118. package/browser/esm/{mZ92wNrHVpYdli1U.mjs → D3HgYapmfdL-RhEV.mjs} +5 -5
  119. package/browser/esm/{ByUcqyCNfqi5Mm7w.mjs → D46u8d3O49bDLflJ.mjs} +1 -1
  120. package/browser/esm/{px-aQ8dMjiWag_pV.mjs → D5KlrP1rlBZO7HyP.mjs} +1 -1
  121. package/{cdn/assets/DONxZZT2Iwu7psS5.js → browser/esm/D5wm_fLXLK3Ve1ir.mjs} +6 -5
  122. package/browser/esm/{DLqc11Pf8vaE4Q5B.mjs → D90zUAjsvdYt4zAc.mjs} +1 -1
  123. package/browser/esm/DAEoN5lF7Xw1VMoH.mjs +520 -0
  124. package/browser/esm/DCA1pexOA5sUcYVT.mjs +181 -0
  125. package/browser/esm/{D0r2MPlWLnStWJNW.mjs → DD6l6wL5lCLFdLOw.mjs} +144 -134
  126. package/browser/esm/DFFX8FaN8Xyq2YvS.mjs +131 -0
  127. package/browser/esm/DFzpsLSn8pIrTlLO.mjs +95 -0
  128. package/browser/esm/DJMHQzwcPgTpS0f5.mjs +1240 -0
  129. package/browser/esm/{VwGokBaawZfZiV2X.mjs → DJhxuNvyE7FzNXTv.mjs} +1 -1
  130. package/{cdn/assets/H-JnJQMcZQbpvjdb.js → browser/esm/DK3BYp4NTX8n36q5.mjs} +1 -1
  131. package/browser/esm/DKXz55ACPsNADpJo.mjs +9 -0
  132. package/browser/esm/{CZOJogyZqMfUxcXj.mjs → DKxCeh3yib-owCxs.mjs} +1 -1
  133. package/browser/esm/{ycmpAs4kQfeh78Pa.mjs → DL57MpyMuNosTcrB.mjs} +1 -1
  134. package/browser/esm/DN14h84frphTmQnr.mjs +367 -0
  135. package/browser/esm/{Cpza4AeltEVHASij.mjs → DPE3kSrS3RMPgCwe.mjs} +3 -3
  136. package/browser/esm/DQsUwoGymfvPjfBo.mjs +86 -0
  137. package/browser/esm/{DJqj66SnUcx0QmSN.mjs → DUZyG-8cyY9A0Zg-.mjs} +1 -1
  138. package/browser/esm/{DNCqTF9EbT-U1TdV.mjs → DWlIofDXtKiTFRl3.mjs} +3 -3
  139. package/browser/esm/{CfltjY8hY-RPwwpd.mjs → DWs_Iccs4ADzMYw7.mjs} +7 -7
  140. package/browser/esm/DZU9jkqaNCYuvDzi.mjs +8196 -0
  141. package/browser/esm/DZxgKlZVMKS5Ta04.mjs +199 -0
  142. package/browser/esm/D_RNoIZHUhzXpaw6.mjs +232 -0
  143. package/{cdn/assets/anQDUZhHMDPi1eha.js → browser/esm/DaJhQHZ8na6yCHir.mjs} +149 -149
  144. package/{cdn/assets/BWo1N4YbK_zGU0nu.js → browser/esm/DagxhIjpKea9MwI8.mjs} +1 -1
  145. package/browser/esm/{DjdkGy-EI1kSo226.mjs → DbewMnLKZoGLGFNh.mjs} +1 -1
  146. package/browser/esm/DcuXU4w8jFVnuLgh.mjs +60 -0
  147. package/browser/esm/Df4WRA6refKZ9x9I.mjs +141 -0
  148. package/browser/esm/Dg8kGViumXiDAGwT.mjs +569 -0
  149. package/{cdn/assets/DWgp4t9N9u0eWthH.js → browser/esm/DhLN5r1sTHL_BWeH.mjs} +1 -1
  150. package/browser/esm/{ZxsFYopF0_WWqw4Q.mjs → DhU_l9pcEddg9s24.mjs} +1 -1
  151. package/browser/esm/{CTI-mCJbJzitJZwj.mjs → DiabpzKzIUUyat-1.mjs} +1 -1
  152. package/browser/esm/Dic2cHiohtgkK2jT.mjs +89 -0
  153. package/browser/esm/DizmXzo0RwB1aISW.mjs +86 -0
  154. package/browser/esm/{DrI_S0A9TQvriTua.mjs → Dl29uXIaOLiBIDEI.mjs} +1 -1
  155. package/browser/esm/{BtGmrIqU9W1L8zfZ.mjs → Dl40S1lFKvsN0DvK.mjs} +1 -1
  156. package/{cdn/assets/DxcRLd7wmBGDgJsA.js → browser/esm/DlWoVcsWZHiN-EYf.mjs} +1 -1
  157. package/{cdn/assets/DQjxp9lDP9DzP8ah.js → browser/esm/DmkrxPsGTgcfP5Rz.mjs} +56 -56
  158. package/browser/esm/{rY-dC3WB558TIbum.mjs → Dn6OF7owJvTQrrts.mjs} +4 -4
  159. package/browser/esm/DpRsbOf9X17if0J7.mjs +1645 -0
  160. package/browser/esm/Drw9hD1JE7JCMign.mjs +422 -0
  161. package/browser/esm/{BThOwSja2ra4xejQ.mjs → DsHzYBPSadCXZi-n.mjs} +1466 -1388
  162. package/browser/esm/{LAbUYeLiPG8z9cmA.mjs → DtegXHCQSKTTGQeu.mjs} +15 -15
  163. package/browser/esm/{C-0viTjg1dT2F-sk.mjs → Dut7EHGO0G5wuZvA.mjs} +2 -2
  164. package/browser/esm/{kVBPUUnVyZfb8pf3.mjs → DwhGTfGva3F7vuwp.mjs} +5 -5
  165. package/{cdn/assets/DYvBgX17ZerZSHEJ.js → browser/esm/DxwdHqgA78DuBgP5.mjs} +30 -31
  166. package/browser/esm/{aUREGNA8H7p4BpMK.mjs → DychvmektExlalXS.mjs} +3 -3
  167. package/{cdn/assets/CBdNC7BOfc5TewHU.js → browser/esm/DyeYHUP9q10K48wL.mjs} +1 -1
  168. package/{cdn/assets/BsTFy_iJXJYmaO3Z.js → browser/esm/DyvMwqOmBhQFYxOo.mjs} +5 -5
  169. package/browser/esm/{Cy00y9b9j17Txyv1.mjs → DzF6mYUZfggTAjhM.mjs} +1 -1
  170. package/browser/esm/Dzj3KK6YPVXSha8q.mjs +5117 -0
  171. package/browser/esm/Dzyz_pks7xPGZbyH.mjs +23434 -0
  172. package/browser/esm/{Dv8aQFTTaQBJKDDk.mjs → GA5X6vLsOcXufGyF.mjs} +1 -1
  173. package/browser/esm/Hx70AIfSA_0RVX86.mjs +415 -0
  174. package/browser/esm/{DaMKWQQTgIF08cT7.mjs → JIICfCUe6qam-nnP.mjs} +7 -7
  175. package/browser/esm/{UTZcodQydbuMfCOS.mjs → Jn0_AtebABdIzyQ8.mjs} +1 -1
  176. package/browser/esm/{CtZPEkaldpJpoGtW.mjs → KG-A3VX4kcf2uLJI.mjs} +67 -67
  177. package/browser/esm/{CMxbiQ5J79M3n1tk.mjs → PD_ckP5IyZurtALu.mjs} +723 -373
  178. package/{cdn/assets/lqknEt3DTma5Juxs.js → browser/esm/PFd1HLX9x3NbZS0Q.mjs} +1 -1
  179. package/browser/esm/{D2aQPiGg0ZoMYzuf.mjs → Q4gowihHveaVg346.mjs} +5 -5
  180. package/browser/esm/TEqlVdpb4Wjm-WJR.mjs +281 -0
  181. package/browser/esm/{DGcvio2uhlrsE3ZY.mjs → Ub7lo1Zsgc4OkWHw.mjs} +10 -10
  182. package/browser/esm/{CxCipDFamYSOctBo.mjs → VHANuEgclliEVOJy.mjs} +48 -46
  183. package/browser/esm/{Db6Tvr45TS9J5Qsb.mjs → WGYh_LRO1dkbp-TV.mjs} +35 -33
  184. package/browser/esm/{ByqhqEMBLrnkaPKE.mjs → WeD0V8DDCj3KQ_8p.mjs} +26 -24
  185. package/browser/esm/{DG3BfxRsbjey-B7E.mjs → XYN8zIYF95HfOLO2.mjs} +2 -2
  186. package/browser/esm/XvS1NvLqAFQgx6eS.mjs +7 -0
  187. package/{cdn/assets/Dc2ZwgbIEgYWwAsF.js → browser/esm/Z10MZFA0Sc2Zcelz.mjs} +1 -1
  188. package/browser/esm/{-LoBx7J6imeqaxCq.mjs → bFtJ6ds2ojy78Wre.mjs} +7 -7
  189. package/browser/esm/{DqBj-9o7UdXu4qhb.mjs → bTZCD31OE4KkUy4u.mjs} +1 -1
  190. package/browser/esm/{CQuv-nk5jtXUfu7C.mjs → bYlwY2JZnvT1cbtL.mjs} +2 -2
  191. package/browser/esm/{BaEZmurTZnX_yfKD.mjs → buJRIWKU9gQ4TTK_.mjs} +323 -369
  192. package/{cdn/assets/BPrHgyAsm2Htx15h.js → browser/esm/c6MwBF7fqj-4Wqct.mjs} +1 -1
  193. package/browser/esm/d3pzf6IOaGjo_S-F.mjs +2213 -0
  194. package/browser/esm/{DSf-Db1h8rlW2A6n.mjs → e5QfIq2gAzQVRtfG.mjs} +5 -5
  195. package/browser/esm/{DGuynZFJ9tqziqQs.mjs → gTTt3H5M0Lh8VxjO.mjs} +7 -7
  196. package/browser/esm/index.mjs +49 -645
  197. package/{cdn/assets/BhkeuRcx8RlLCQ5E.js → browser/esm/lPeOxAutCOlSB-aC.mjs} +1 -1
  198. package/browser/esm/{BRfat1fV3oGLwvin.mjs → mjkAWxWBrwQpoEkc.mjs} +15 -15
  199. package/browser/esm/{Bi5-feQLtwpV6Ai8.mjs → nmaneEnoRhUuMliV.mjs} +5 -5
  200. package/browser/esm/{DeUXRggj8Oz9ru_i.mjs → oLOwgPmipnKc68nJ.mjs} +1 -1
  201. package/browser/esm/{BMlPFJ1glExv-70Z.mjs → oY2yN-_0_AcCI46E.mjs} +1 -1
  202. package/browser/esm/szeZ7VgnRHyi2DxR.mjs +381 -0
  203. package/{cdn/assets/CTdFZ_I-41Vr6Dy4.js → browser/esm/tQAwA9RKsgzjziNe.mjs} +1 -1
  204. package/{cdn/assets/J9i3r1fU0H10b2hX.js → browser/esm/t_7A_GdY394OUV4v.mjs} +1 -1
  205. package/browser/esm/uBm_7th3ordJJKKM.mjs +1298 -0
  206. package/browser/esm/vY2ZLR024kVOwWej.mjs +36 -0
  207. package/browser/esm/{DQEjvIGMgEkiaP6J.mjs → xUNkyQFYnzQAzsVs.mjs} +1 -1
  208. package/browser/esm/xhVehZswNSGVAhdd.mjs +195 -0
  209. package/{cdn/assets/BwOxnbR61WFJwy0A.js → browser/esm/y-iW7vsJV47pYbw4.mjs} +1 -1
  210. package/browser/esm/y5zzqXzWZt9iBT17.mjs +5632 -0
  211. package/{cdn/assets/B0Wjc3lwtjKMwnvn.js → browser/esm/y8mfWM7VlyfJEEwg.mjs} +1 -1
  212. package/{browser/esm/M7RYrx20B_Yl_euJ.mjs → cdn/assets/03NnLxMlQLUwCU6J.js} +8 -8
  213. package/cdn/assets/1oQRbol_4RzeM8pE.js +12 -0
  214. package/cdn/assets/{CILUMtSddGz7WXEv.js → 3Oqq1u2C8zC0TeW9.js} +84 -84
  215. package/cdn/assets/4uPsJWrLx7xRHQAh.js +639 -0
  216. package/cdn/assets/{ENtt4kmaU9mJfVEp.js → 6GgPtwsOcxg8XpRN.js} +10 -10
  217. package/cdn/assets/{D8DghdqjOtBzO2Wx.js → 7twUDisI3AH_vo2v.js} +4 -4
  218. package/cdn/assets/{BeQ95CzwR65il0CK.js → 8CW-puLLSNyeaGce.js} +2 -3
  219. package/cdn/assets/{BB4MW8sSYEXjPvvf.js → 8yRVrfAZmWoSynP2.js} +5 -5
  220. package/cdn/assets/{BN2d5U1nw7pRtOrn.js → 9MTXF6MTjOgoHb-7.js} +1 -1
  221. package/cdn/assets/9zx-c-XsXQJu3H6F.js +237 -0
  222. package/cdn/assets/B-aF0nVKMi0rBQ-X.js +257 -0
  223. package/cdn/assets/{x6GcENwqoUVbd60j.js → B0ko2JVTNhsWWWTe.js} +1 -1
  224. package/{browser/esm/pc49xtHdprXZLW2X.mjs → cdn/assets/B1SstI4rcUe8OJ-b.js} +1 -1
  225. package/cdn/assets/{B00ixdmb8-O5ijEp.js → B3ZFz_Z4E28AFJS3.js} +1 -1
  226. package/cdn/assets/B4zK-38sPk49SiBE.js +9524 -0
  227. package/cdn/assets/{PtGiIWFBYP-ujLmf.js → B5XpACGLcy3zYqlT.js} +1 -1
  228. package/cdn/assets/B6hsm_RseP5jRKxa.js +100 -0
  229. package/cdn/assets/{DHH_uKVzQ_kRYO2N.js → B71MtA2mmixmeooi.js} +18 -18
  230. package/cdn/assets/B7L2gEZlcb8lr2A4.js +8196 -0
  231. package/cdn/assets/{BAdRecWK1maKGOZd.js → B8VbElyA5zbjFNs1.js} +1 -1
  232. package/cdn/assets/B9dUWlxApLMvjz60.js +220 -0
  233. package/cdn/assets/B9w9g_nectPJhun5.js +1724 -0
  234. package/cdn/assets/{AjMG7Fb9r4Fk7Hsf.js → BCypA6VuKdd2n_ru.js} +19 -18
  235. package/cdn/assets/{DRm1R4uVOkaMfXNI.js → BDWKrgmyLVPkX3h0.js} +1 -1
  236. package/cdn/assets/BETDm_1AaWuW6BVj.js +516 -0
  237. package/cdn/assets/{C32co-XulWTkEKrW.js → BEvqzG-mTBe_4aVC.js} +2 -2
  238. package/cdn/assets/{qYca4mdySLkACfo1.js → BF9tQV6iUGvJK6QH.js} +1 -1
  239. package/cdn/assets/BFKaVO5u424S8iQa.js +86 -0
  240. package/cdn/assets/{CSEMxasVyGCekxKf.js → BGDndra6U64QPYm4.js} +1 -1
  241. package/cdn/assets/BI1IDPvx--ARef3O.js +196 -0
  242. package/cdn/assets/{Cw7AJWd0S2sjRmr6.js → BJ5RRYxWA_yTbVpr.js} +1478 -1400
  243. package/cdn/assets/BJV4kSnvZHNfd68y.js +193 -0
  244. package/cdn/assets/BK2u8-YC8sG_k5G1.js +1299 -0
  245. package/cdn/assets/{DSviq1TNoiIAGW7W.js → BN630GsmoKmNU7ur.js} +1 -1
  246. package/{browser/esm/DQIRFXG4MveFkK3I.mjs → cdn/assets/BNavcunnTVMpcxDs.js} +1 -1
  247. package/cdn/assets/BORHWDUKR6caukc5.js +199 -0
  248. package/cdn/assets/BOeafp2_IuiQUCy9.js +7 -0
  249. package/cdn/assets/{FO1Jezau486fH4kN.js → BRxDfB_xWCqmT-hR.js} +1 -1
  250. package/{browser/esm/DfESVLC8CAi8m8A7.mjs → cdn/assets/BUWDOAY73JPQoNzs.js} +1 -1
  251. package/cdn/assets/{0vqRTRN0wEzWao1c.js → BUsC6YAGDNArajFL.js} +75 -74
  252. package/{browser/esm/ztqpWR65YYMZ3EPk.mjs → cdn/assets/BV13zVUdMca1rMPB.js} +120 -118
  253. package/cdn/assets/{C9NyIoUahFiyRCxP.js → BV2wamfivt6aMUhk.js} +1 -1
  254. package/cdn/assets/BWbSAM8vJA9oOVLo.js +46 -0
  255. package/cdn/assets/{De2z8LdHaWRFiR5T.js → BXVCl_xwTk61fpO9.js} +2 -2
  256. package/cdn/assets/BZEFRQpz68GXn6T9.js +96 -0
  257. package/cdn/assets/{wM7DzeOpoEGBVDBe.js → B_sANJqcUwqmlTx5.js} +2 -2
  258. package/{browser/esm/i0P63Wd0RRlgJotb.mjs → cdn/assets/BaaB1nz3Z8IIy5XL.js} +1 -1
  259. package/cdn/assets/{DckmFyHxGX4Y1gOq.js → BbO2UBFWu05VAtNb.js} +18 -17
  260. package/cdn/assets/{CCvBdPu7W2ZF6A9J.js → BdW05SsbRlVhxGr6.js} +3 -3
  261. package/cdn/assets/BdnTLvN0grpQAsLF.js +8 -0
  262. package/{browser/esm/DXo8mR6t5HGsmTcu.mjs → cdn/assets/Bdt5IdX6u9CLkJdC.js} +1 -1
  263. package/cdn/assets/Bebab8nHNHqve2AI.js +233 -0
  264. package/{browser/esm/FjNOhkR7-JAIaRP6.mjs → cdn/assets/BiSGu7XE2wP-COS-.js} +1 -1
  265. package/cdn/assets/BjAnEBtnBD5O0-sc.js +106 -0
  266. package/cdn/assets/{hg8WYI0Yy4WPPPoP.js → BmWMHgdcbZuZUGtm.js} +11 -11
  267. package/{browser/esm/DVpi1vC8ixXvUQG_.mjs → cdn/assets/BovxopS-62ImjzWq.js} +1 -1
  268. package/cdn/assets/Bqlj5Zz-vJpMDs6i.js +311 -0
  269. package/cdn/assets/{BlPn_DXaEXOPxMxC.js → Br1Vf_O1YcX7sOJE.js} +1 -1
  270. package/cdn/assets/{CSIZpJClc66_20kP.js → BuHsbgcxlvkOHGGR.js} +118 -269
  271. package/{browser/esm/C3r_9RqlWrEmlXZ1.mjs → cdn/assets/Bx9qg5bL1Fzbvk1z.js} +1 -1
  272. package/cdn/assets/BzZTldYRBXUqOINX.js +781 -0
  273. package/cdn/assets/C-_jzDXetpu0rH2K.js +8 -0
  274. package/cdn/assets/C2ydnpxcrFknfLw1.js +214 -0
  275. package/{browser/esm/BSCja5yvevmKZPBB.mjs → cdn/assets/C4Vjb-3d4J7GxBGw.js} +1 -1
  276. package/{browser/esm/DjtXfgbmXjUAoG0y.mjs → cdn/assets/C635yBozh_t0DPLr.js} +1 -1
  277. package/cdn/assets/C7FA7N-GON7DscOD.js +19 -0
  278. package/{browser/esm/_t0Mx-mUFVtmVNkU.mjs → cdn/assets/C7Yr6jxJx_xXDUR2.js} +1 -1
  279. package/cdn/assets/C7fZFw4yQ9VNHtnV.js +17 -0
  280. package/cdn/assets/C8XNRmzAp2MWyeej.js +42 -0
  281. package/{browser/esm/DAprxR00V9qvNLL2.mjs → cdn/assets/C9_WZzkqVDNPA1d0.js} +1708 -1660
  282. package/{browser/esm/CQOyeq_-pg3CM-uA.mjs → cdn/assets/C9oBHe1kBAevREtg.js} +1 -1
  283. package/cdn/assets/{SNze-adFJwKuGSQW.js → CAeD2o0Ls4sIyokt.js} +1 -1
  284. package/cdn/assets/{CHMqT9DzYKTxPfP6.js → CBRVZmrwcMfEHc5P.js} +1 -1
  285. package/cdn/assets/CBsadiIVpXoTVHLj.js +183 -0
  286. package/{browser/esm/D88StfSjZJi5E8Xb.mjs → cdn/assets/CDv_hXnUZNB1HY3N.js} +2384 -1905
  287. package/cdn/assets/{CFBgmXap8kmumhoz.js → CELW1QxGUlPfcuHG.js} +144 -134
  288. package/cdn/assets/CF6YxjWkuaqaHcCi.js +2230 -0
  289. package/cdn/assets/{CbTN0q6XnYGJqyEp.js → CGklNVK7pkjOQ6XF.js} +261 -261
  290. package/cdn/assets/{Dy44qJVkwNseMG-3.js → CHGtyPsxQrhRB5bz.js} +1 -1
  291. package/cdn/assets/{D32D_biNXRCZ24vG.js → CIa9t2NsEFKqvGac.js} +10 -10
  292. package/cdn/assets/CIfJsifn66BBcj2W.js +86 -0
  293. package/cdn/assets/CIscj5V7u9g5ZxM3.js +7 -0
  294. package/cdn/assets/{BNsqqoZY7a4N1wWC.js → CJgN6A7fquRRWJ9h.js} +328 -110
  295. package/cdn/assets/{DNaPo7BQu6hr1fWq.js → CK5tMP35Iv98na5Z.js} +1 -1
  296. package/cdn/assets/CLDXVyr5jbJC7Ldf.js +7 -0
  297. package/cdn/assets/CLesyjpCdfNlo_s3.js +210 -0
  298. package/cdn/assets/{Dp-GJXOMz_b8qAxD.js → CMRiIxUHB5XcDtA8.js} +2 -2
  299. package/cdn/assets/{DAE3Kv0Vs0VuBecT.js → COtPL6l443kTvLpc.js} +1 -1
  300. package/{browser/esm/CFvKDDbrL3wpXnQH.mjs → cdn/assets/CRc3MloTINO1cx9Y.js} +1 -1
  301. package/cdn/assets/CS7L0XE_IvJKdpQH.js +416 -0
  302. package/cdn/assets/{C5EKgE9Owsc_juw-.js → CSUhHtPXRx-MiOJ0.js} +1 -1
  303. package/cdn/assets/{D-yz3V2UC54rwctD.js → CSpWGMyjLegYuwTq.js} +2 -2
  304. package/cdn/assets/CVCFVKDhgOFbBNWn.js +382 -0
  305. package/cdn/assets/{DSXJHEORGmMQX_Mb.js → CViBm-zHl4k8Znzm.js} +12 -12
  306. package/cdn/assets/{DZRm4H75lnEtOG8e.js → CWRXS9rkz8fCwbZH.js} +48 -46
  307. package/cdn/assets/CZ0iN5i3edmVHcRK.js +323 -0
  308. package/cdn/assets/{B3NWCYKXucbHhOix.js → C_Q71OCVP6nPyP4U.js} +26 -26
  309. package/cdn/assets/{BBjgqNlHm-ssbSAG.js → C_lz-BVnapcDsXH0.js} +1 -1
  310. package/cdn/assets/CbKXmBz5CY-IwYsS.js +132 -0
  311. package/cdn/assets/CbqZMJ1c683b5iE7.js +278 -0
  312. package/cdn/assets/CdDIc0DsAwHzxpeO.js +5117 -0
  313. package/{browser/esm/RfHd1JATBlcsfLPv.mjs → cdn/assets/CdOK8MepIC51cdz1.js} +1 -1
  314. package/cdn/assets/{C6INLvBy8kdzFpsX.js → CdW0mis0FyG90paw.js} +576 -696
  315. package/cdn/assets/{DicTo_3G-KZyWDiE.js → CevaeSbWdKO5qeRu.js} +294 -340
  316. package/cdn/assets/{DxisV9_27l_WU-nk.js → CeySvrdNiT00QQJC.js} +5 -5
  317. package/cdn/assets/Cf-LLddGP5wUU4hH.js +8 -0
  318. package/cdn/assets/{CIyaijfp6itgRpFM.js → Cf0bbHHOW6iwvyXg.js} +2 -2
  319. package/cdn/assets/CixdB4xXcQhebm5U.js +73 -0
  320. package/cdn/assets/{BelX6bvQPsGuo-x3.js → Cj2lJ05kVoDb5HGx.js} +2 -2
  321. package/cdn/assets/{CsrTRThObSryov1b.js → CkfqUcoAlpPupbbK.js} +2 -2
  322. package/cdn/assets/CkgK3CrVsGp5FE2i.js +2213 -0
  323. package/{browser/esm/BAH_cWcQEIBKWnl6.mjs → cdn/assets/Cl1bVTUk0rQUQT9p.js} +1 -1
  324. package/cdn/assets/Cl3d4ILjFxp4IdO9.js +3716 -0
  325. package/cdn/assets/ClY9HTqosClkllrU.js +522 -0
  326. package/cdn/assets/Cllqhal9LBm1K8Yq.js +391 -0
  327. package/cdn/assets/CnVY0qezymE7-eML.js +89 -0
  328. package/cdn/assets/{CWJzHmEgahdOfNjH.js → Cnx0vOv2ePi94hMN.js} +1 -1
  329. package/cdn/assets/{C7fu6LrSMBlHqwUy.js → CqmrD2Xs8MKJTO4v.js} +4 -4
  330. package/cdn/assets/Cw6ozEzvtFq_HVef.js +8 -0
  331. package/cdn/assets/{BzbP4jaN13wC9aSi.js → CzG0p4x8L99XEdym.js} +40 -40
  332. package/{browser/esm/CVcCUfSRsiZ1-6hs.mjs → cdn/assets/CzpnOqHBXxESl5Ts.js} +1 -1
  333. package/cdn/assets/D-hAYmuTa0x0_oI-.js +1552 -0
  334. package/{browser/esm/By3a43qwWICwXRmw.mjs → cdn/assets/D2H92O2Ji36qebTp.js} +2667 -2091
  335. package/cdn/assets/{ByUcqyCNfqi5Mm7w.js → D46u8d3O49bDLflJ.js} +1 -1
  336. package/cdn/assets/D51TEwta0ZXmlNrx.js +570 -0
  337. package/cdn/assets/{px-aQ8dMjiWag_pV.js → D5KlrP1rlBZO7HyP.js} +1 -1
  338. package/cdn/assets/{Cfg4Dtndwurxv9LM.js → D7g9SLSLSONiRP8_.js} +8 -8
  339. package/cdn/assets/D8fBDoXy-QzJqIfC.js +132 -0
  340. package/cdn/assets/D97AuczhOIBnqMXI.js +55466 -0
  341. package/cdn/assets/DBnswN0nPHV8TM2q.js +8 -0
  342. package/cdn/assets/DE9bhDAlUdLUngdj.js +1646 -0
  343. package/cdn/assets/{D_pMOq6FdH4RSBLc.js → DG4PyKuuGu6RkAEv.js} +810 -804
  344. package/cdn/assets/DG8R6bLrQPHjouy2.js +86 -0
  345. package/cdn/assets/{VwGokBaawZfZiV2X.js → DJhxuNvyE7FzNXTv.js} +1 -1
  346. package/{browser/esm/H-JnJQMcZQbpvjdb.mjs → cdn/assets/DK3BYp4NTX8n36q5.js} +1 -1
  347. package/cdn/assets/{CZOJogyZqMfUxcXj.js → DKxCeh3yib-owCxs.js} +1 -1
  348. package/cdn/assets/{ycmpAs4kQfeh78Pa.js → DL57MpyMuNosTcrB.js} +1 -1
  349. package/{browser/esm/Dme0qpRinBnhzp53.mjs → cdn/assets/DLEPPn_cPPydMrpU.js} +150 -148
  350. package/cdn/assets/{D-bNmX0QsA8SuT0m.js → DP1jRSok-1NvqrBz.js} +34 -34
  351. package/cdn/assets/{DJqj66SnUcx0QmSN.js → DUZyG-8cyY9A0Zg-.js} +1 -1
  352. package/cdn/assets/{Cv5PLuhEmh5IDHjb.js → DWoFVKQrI917IanL.js} +23 -23
  353. package/cdn/assets/DXhizwpX3GUT2ECx.js +90 -0
  354. package/cdn/assets/DYbOfw0BRA2hWOCP.js +1390 -0
  355. package/cdn/assets/DZo_DGKkHCqIyM5N.js +388 -0
  356. package/{browser/esm/DlOVZD0OiAjouS6-.mjs → cdn/assets/D_d2cK3aSl0eMBpj.js} +1626 -1018
  357. package/{browser/esm/BWo1N4YbK_zGU0nu.mjs → cdn/assets/DagxhIjpKea9MwI8.js} +1 -1
  358. package/cdn/assets/{DjdkGy-EI1kSo226.js → DbewMnLKZoGLGFNh.js} +1 -1
  359. package/{browser/esm/8-jmVNNbOHuXFdVQ.mjs → cdn/assets/DdXikMOzMIALd8bz.js} +120 -118
  360. package/cdn/assets/Dg3UJabBou63ReiH.js +12816 -0
  361. package/cdn/assets/Dg9ALylpMhftKvuI.js +23434 -0
  362. package/cdn/assets/DgQFdPeLRIkg5O3C.js +3093 -0
  363. package/{browser/esm/DWgp4t9N9u0eWthH.mjs → cdn/assets/DhLN5r1sTHL_BWeH.js} +1 -1
  364. package/cdn/assets/{ZxsFYopF0_WWqw4Q.js → DhU_l9pcEddg9s24.js} +1 -1
  365. package/cdn/assets/{CTI-mCJbJzitJZwj.js → DiabpzKzIUUyat-1.js} +1 -1
  366. package/cdn/assets/{DrI_S0A9TQvriTua.js → Dl29uXIaOLiBIDEI.js} +1 -1
  367. package/cdn/assets/{BtGmrIqU9W1L8zfZ.js → Dl40S1lFKvsN0DvK.js} +1 -1
  368. package/{browser/esm/DxcRLd7wmBGDgJsA.mjs → cdn/assets/DlWoVcsWZHiN-EYf.js} +1 -1
  369. package/cdn/assets/{B27vTQlxbHhSQJx8.js → DliTwLXIImeC0eub.js} +7803 -6320
  370. package/cdn/assets/{aHTKr1ijZ6bRi3Zg.js → DsRSG0tf_a2zWfcu.js} +4 -4
  371. package/cdn/assets/{7i4WSxDsu2ApJJ2_.js → DsXc1EO6csuKfV4l.js} +3 -3
  372. package/cdn/assets/DtO07D35O2tAh7f4.js +1241 -0
  373. package/cdn/assets/{C-0viTjg1dT2F-sk.js → Dut7EHGO0G5wuZvA.js} +2 -2
  374. package/cdn/assets/DvBV9E2CaadV0-OK.js +104 -0
  375. package/cdn/assets/{CakrxSS_RXtKmcUX.js → Dw7mCCAZtWzy1kDg.js} +99 -98
  376. package/{browser/esm/DEvZj68igS7Q8SZE.mjs → cdn/assets/DwITQzYKh_c7vCO8.js} +5 -5
  377. package/cdn/assets/{C0CeCYdLWLjySEFe.js → DwTdBuvtngstv-Ee.js} +15 -15
  378. package/cdn/assets/{CMVTwWHsRgyfSEDM.js → Dwb9z-Om5vH_9GFX.js} +67 -65
  379. package/{browser/esm/D-KZpU6HMaP4VUva.mjs → cdn/assets/Dwd9mENEUTKk45OD.js} +56 -56
  380. package/cdn/assets/{BvlfKrfrDhE9Jw4d.js → Dwm4Q509nQKTAHZp.js} +2 -2
  381. package/cdn/assets/{mK8HcIZyXkOTvL6E.js → DxI14nqCsNi-yexx.js} +7 -7
  382. package/cdn/assets/Dy07J9xUgFU8srvP.js +7723 -0
  383. package/{browser/esm/CBdNC7BOfc5TewHU.mjs → cdn/assets/DyeYHUP9q10K48wL.js} +1 -1
  384. package/cdn/assets/{Cy00y9b9j17Txyv1.js → DzF6mYUZfggTAjhM.js} +1 -1
  385. package/cdn/assets/{BpZ7P0CO148rR4zW.js → Dzlfx9-RfNxYludH.js} +20 -20
  386. package/cdn/assets/FjjP2q5AOiFod5IL.js +282 -0
  387. package/cdn/assets/{Dv8aQFTTaQBJKDDk.js → GA5X6vLsOcXufGyF.js} +1 -1
  388. package/cdn/assets/Ga_dmEQPXt-tMjfv.js +7 -0
  389. package/cdn/assets/HMCOTgDNR6bpWL7f.js +163 -0
  390. package/cdn/assets/{UTZcodQydbuMfCOS.js → Jn0_AtebABdIzyQ8.js} +1 -1
  391. package/cdn/assets/{CMxbiQ5J79M3n1tk.js → PD_ckP5IyZurtALu.js} +723 -373
  392. package/{browser/esm/lqknEt3DTma5Juxs.mjs → cdn/assets/PFd1HLX9x3NbZS0Q.js} +1 -1
  393. package/{browser/esm/B3Ii8x6RquHW1jMc.mjs → cdn/assets/PlCjmMBePH7hotkL.js} +12 -11
  394. package/cdn/assets/{Bgbi7BFR3rN5qj51.js → RZYxEHY1tap8fDMU.js} +22 -22
  395. package/cdn/assets/{w5IQWbJETgHhqMsY.js → V3xJfVu5YgTJE15l.js} +33 -33
  396. package/cdn/assets/{dn69mDhY7Xcc91kF.js → VtDou2czLTs_x_lJ.js} +20 -20
  397. package/cdn/assets/Xr_m9JQCcD2iBqdf.js +324 -0
  398. package/cdn/assets/{VCiu_neIjCTg2NUa.js → Y0Uf_lVRToNYi395.js} +634 -634
  399. package/{browser/esm/Dc2ZwgbIEgYWwAsF.mjs → cdn/assets/Z10MZFA0Sc2Zcelz.js} +1 -1
  400. package/cdn/assets/ZHMYKkw9GtA9PmwP.js +61 -0
  401. package/cdn/assets/ZaFy1hzL6cnNlROy.js +1302 -0
  402. package/cdn/assets/__mMW0v3QyR1pQYO.js +294 -0
  403. package/cdn/assets/{DqBj-9o7UdXu4qhb.js → bTZCD31OE4KkUy4u.js} +1 -1
  404. package/{browser/esm/BPrHgyAsm2Htx15h.mjs → cdn/assets/c6MwBF7fqj-4Wqct.js} +1 -1
  405. package/cdn/assets/csh4FIrA7Yz0oQR4.js +9 -0
  406. package/cdn/assets/{CDAYVaQYywqaxg4O.js → eyjrmBPp0a3kmDM1.js} +2 -2
  407. package/{browser/esm/BtdRr6IbtO6Gypsk.mjs → cdn/assets/hlphmhe3M3MZPvOh.js} +6 -5
  408. package/cdn/assets/jJoDPeW_80P8c7ET.js +201 -0
  409. package/cdn/assets/kLmFvtw68s1_Kbq9.js +142 -0
  410. package/cdn/assets/kTq1x8_s5V2PwKeX.js +9715 -0
  411. package/{browser/esm/BhkeuRcx8RlLCQ5E.mjs → cdn/assets/lPeOxAutCOlSB-aC.js} +1 -1
  412. package/cdn/assets/{DeUXRggj8Oz9ru_i.js → oLOwgPmipnKc68nJ.js} +1 -1
  413. package/cdn/assets/{BMlPFJ1glExv-70Z.js → oY2yN-_0_AcCI46E.js} +1 -1
  414. package/cdn/assets/{G5z0uVlyF6CLw_PA.js → pS2054G_Le7EvgyY.js} +2 -2
  415. package/cdn/assets/qwL1y5daLJePT9OL.js +7 -0
  416. package/cdn/assets/rNuTuxLduwMl4Fyb.js +182 -0
  417. package/cdn/assets/sCeaYn7GnW1N9bKn.js +423 -0
  418. package/cdn/assets/{Bsn-tUx172sEG2kR.js → t8Ps76FWzb3VX_wg.js} +20 -20
  419. package/{browser/esm/CTdFZ_I-41Vr6Dy4.mjs → cdn/assets/tQAwA9RKsgzjziNe.js} +1 -1
  420. package/{browser/esm/J9i3r1fU0H10b2hX.mjs → cdn/assets/t_7A_GdY394OUV4v.js} +1 -1
  421. package/{browser/esm/CWoPWWRwMgkGPFFP.mjs → cdn/assets/u8iMUyjw60ayROFo.js} +2538 -1728
  422. package/cdn/assets/ubUqS2NO2sn4DX3v.js +1694 -0
  423. package/cdn/assets/vY2ZLR024kVOwWej.js +36 -0
  424. package/cdn/assets/{DQEjvIGMgEkiaP6J.js → xUNkyQFYnzQAzsVs.js} +1 -1
  425. package/{browser/esm/BwOxnbR61WFJwy0A.mjs → cdn/assets/y-iW7vsJV47pYbw4.js} +1 -1
  426. package/{browser/esm/B0Wjc3lwtjKMwnvn.mjs → cdn/assets/y8mfWM7VlyfJEEwg.js} +1 -1
  427. package/cdn/assets/{BIsbcP5RXRU2XPfx.js → yI2dKrysDG0lqxjX.js} +2 -2
  428. package/cdn/assets/{Ba8taVvLslFcKS72.js → yzl98RXbYvgX5DfY.js} +28 -27
  429. package/cdn/assets/z4XcPMxN5hfqRHIt.js +367 -0
  430. package/cdn/assets/{ZSYS1J3uR7UQuHwZ.js → zm4ZwKXeSetbtx9Z.js} +10 -10
  431. package/cdn/index.js +27 -17
  432. package/package.json +3 -3
  433. package/types/src/sheetxl.d.ts +1 -0
  434. package/browser/esm/BNIInlJQbJjH8B6G.mjs +0 -84250
  435. package/browser/esm/B_HB4y7AA88Z775Z.mjs +0 -91
  436. package/browser/esm/CdeXXPCp5cCYvGyD.mjs +0 -14
  437. package/browser/esm/Chr_TXM-48IsK8Va.mjs +0 -155
  438. package/browser/esm/Clx8vvGDOTWK_M2l.mjs +0 -484
  439. package/browser/esm/Cw-4uoMuq_m7ziA3.mjs +0 -36
  440. package/browser/esm/D-9f1NKcpuYSgond.mjs +0 -412
  441. package/browser/esm/D7CGuQcwpkiuesEI.mjs +0 -229
  442. package/browser/esm/D7kkzIFPqKBK94kO.mjs +0 -17952
  443. package/browser/esm/D8exjrado9TJrBp-.mjs +0 -1946
  444. package/browser/esm/DGCOPbZbEmt0x9z0.mjs +0 -155
  445. package/browser/esm/DZRmBfjn2TgOTu5e.mjs +0 -3604
  446. package/browser/esm/D_7BWdsu8yejhUxy.mjs +0 -2353
  447. package/browser/esm/D_thhK0vSez8Yfle.mjs +0 -798
  448. package/browser/esm/Dv2z0548SZRGTN3l.mjs +0 -149
  449. package/browser/esm/DyeY6XwMQ_XNUHiW.mjs +0 -89
  450. package/browser/esm/RLU85PsAYtKPUf6N.mjs +0 -71
  451. package/browser/esm/WMYR09ZOR8JbZEnx.mjs +0 -4748
  452. package/browser/esm/r2Az2Yc4_qj2-sn0.mjs +0 -398
  453. package/cdn/assets/514mXPTuNvdNgw35.js +0 -412
  454. package/cdn/assets/7Sg0ht_ZCMJkPurt.js +0 -516
  455. package/cdn/assets/B_3Musz0q2MSZ5H-.js +0 -799
  456. package/cdn/assets/BgyY4zVPZSXljoCZ.js +0 -14
  457. package/cdn/assets/BlIZ30huelIxNo6S.js +0 -91
  458. package/cdn/assets/BxqXOiOyI_XiOmvN.js +0 -156
  459. package/cdn/assets/CEYyp6Qrr_IopxpL.js +0 -22597
  460. package/cdn/assets/CL6Tgu_rUO6G-fyq.js +0 -2352
  461. package/cdn/assets/COMOqucXq7X1vi0P.js +0 -230
  462. package/cdn/assets/CRXSrbGNABtzf532.js +0 -399
  463. package/cdn/assets/CTvPIYWTcjwlJeEA.js +0 -237
  464. package/cdn/assets/CU5cKipVT1X8Xz7F.js +0 -156
  465. package/cdn/assets/ChAKLV5zrGAHAof2.js +0 -130
  466. package/cdn/assets/Cw-4uoMuq_m7ziA3.js +0 -36
  467. package/cdn/assets/DCnWyVXikb_8Dat3.js +0 -61
  468. package/cdn/assets/DHugYwX4_ZyqGn-C.js +0 -1947
  469. package/cdn/assets/DOHh3pUXxMM09UY5.js +0 -3604
  470. package/cdn/assets/DlpgIJxNq2V4gdDq.js +0 -74
  471. package/cdn/assets/DuAbY54w5gJpQgss.js +0 -84250
  472. package/cdn/assets/DviEoeWW0EvDg1hr.js +0 -149
  473. package/cdn/assets/PzWqv-oXxEuzKdaT.js +0 -484
  474. package/cdn/assets/QJ4AkDD269D1MzmI.js +0 -89
  475. package/cdn/assets/fm3mUdTDo-STB36M.js +0 -4749
  476. package/cdn/assets/lWY3TbG2NDscy9He.js +0 -72
  477. 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.11
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 bt = Object.defineProperty, tr = (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}, rr = (e, t) => {\n let r = {};\n for (var n in e) bt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || bt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, vt = Object.defineProperty, ge = (e, t) => {\n let r = {};\n for (var n in e) vt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || vt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, oe = {\n Column: \"column\",\n Row: \"row\"\n};\n({ ...oe });\nfunction ze(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, i;\n if (Array.isArray(e)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (!ze(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 (!ze(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 (i = Object.keys(e), r = i.length, r !== Object.keys(t).length) return !1;\n for (n = r; n-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, i[n])) return !1;\n for (n = r; n-- !== 0;) {\n let o = i[n];\n if ((o !== \"_owner\" || !e.$$typeof) && !ze(e[o], t[o])) return !1;\n }\n return !0;\n }\n return e != e && t != t;\n}\nfunction an(e) {\n let t = Object.prototype.toString.call(e);\n return t === \"[object RegExp]\" || t === \"[object Date]\" || (function(r) {\n return r.$$typeof === ln;\n })(e);\n}\nvar ln = typeof Symbol == \"function\" && Symbol.for ? /* @__PURE__ */ Symbol.for(\"react.element\") : 60103;\nfunction sn(e) {\n return /* @__PURE__ */ (function(t) {\n return !!t && typeof t == \"object\";\n })(e) && !an(e);\n}\nfunction Le(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? ve((r = e, Array.isArray(r) ? [] : {}), e, t) : e;\n var r;\n}\nfunction cn(e, t, r) {\n return e.concat(t).map(function(n) {\n return Le(n, r);\n });\n}\nfunction Et(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 _t(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction un(e, t, r) {\n let n = {};\n return r.isMergeableObject(e) && Et(e).forEach(function(i) {\n n[i] = Le(e[i], r);\n }), Et(t).forEach(function(i) {\n (function(o, l) {\n return _t(o, l) && !(Object.hasOwnProperty.call(o, l) && Object.propertyIsEnumerable.call(o, l));\n })(e, i) || (_t(e, i) && r.isMergeableObject(t[i]) ? n[i] = (function(o, l) {\n if (!l.customMerge) return ve;\n let s = l.customMerge(o);\n return typeof s == \"function\" ? s : ve;\n })(i, r)(e[i], t[i], r) : n[i] = Le(t[i], r));\n }), n;\n}\nfunction ve(e, t, r) {\n (r ||= {}).arrayMerge = r.arrayMerge || cn, r.isMergeableObject = r.isMergeableObject || sn, r.cloneUnlessOtherwiseSpecified = Le;\n let n = Array.isArray(t);\n return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : un(e, t, r) : Le(t, r);\n}\nve.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 ve(r, n, t);\n }, {});\n};\nvar nr = ge({\n DonePromise: () => fn,\n EmptyArray: () => ke,\n EmptyObject: () => dn,\n OSType: () => fe,\n arrayMove: () => Rn,\n asNumber: () => gn,\n camelToPrettyCase: () => mn,\n castToString: () => $n,\n cloneObject: () => bn,\n consoleWithNoSource: () => Un,\n deepEqual: () => ze,\n deepFreeze: () => fr,\n deepMerge: () => ve,\n diffValues: () => Cn,\n findEqualOrGreater: () => In,\n findEqualOrLesser: () => An,\n getFromPath: () => Fn,\n getPlatform: () => He,\n isDefined: () => Nn,\n isEmpty: () => Ln,\n isEqualArrays: () => or,\n isEqualBounds: () => En,\n isNullOrUndefined: () => ur,\n isNumeric: () => yn,\n isObject: () => Me,\n isPromiseLike: () => kn,\n isRectInsideRect: () => Mn,\n isRectIntersect: () => dr,\n mergeContentful: () => Tn,\n removeEmptyProperties: () => ar,\n removeEqualValues: () => sr,\n removeEqualValuesLayered: () => cr,\n removeListenerAll: () => _n,\n roundAccurately: () => Sn,\n setToPath: () => Dn,\n splitNumber: () => wn,\n subtractRect: () => On,\n textToKey: () => hn,\n toSafeJSON: () => st,\n transpose: () => xn,\n uuidV4: () => Ve,\n validEnumValue: () => pn\n}), ke = Object.freeze([]), dn = Object.freeze({}), fn = Promise.resolve(), ir = (e) => e;\nfunction pn(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 mn(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 hn(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 Ve() {\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 gn(e) {\n let t = (function(r) {\n return 1 * r;\n })(e);\n return Number.isFinite(t) ? t : 0;\n}\nfunction yn(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 wn(e) {\n let t = Math.abs(e);\n if (!Number.isFinite(t)) return null;\n let r = Math.trunc(t), n = t - r, i;\n r > 2 ** 53 - 1 ? i = Number(r.toExponential().split(\"e\")[1]) + 1 : (i = Math.ceil(Math.log10(r + 1)), qe[i] <= r && i++);\n let o = 0, l = 0, s = 15 - i;\n if (n > 0 && s > 0) {\n let c = qe[s];\n if (o = Math.round(n * c), o === c) r++, o = 0, r >= qe[i] && i++;\n else if (o > 0) for (l = s; o % 10 == 0;) o /= 10, l--;\n }\n return {\n ip: e < 0 ? -r : r,\n fp: o,\n ipLength: i,\n fpLength: l\n };\n}\nfunction Sn(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 bn(e) {\n return ur(e) ? e : JSON.parse(JSON.stringify(e));\n}\nvar vn = (e, t) => e === t;\nfunction or(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 ||= vn;\n let n = e.length;\n for (let i = 0; i < n; i++) if (!r(e[i], t[i])) return !1;\n return !0;\n}\nfunction En(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 Me(e) {\n return typeof e == \"object\" && !Array.isArray(e) && e !== null;\n}\nfunction ar(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\" ? ar(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 _n(e, t) {\n if (!e) return ke;\n let r = e.length;\n for (let n = 0; n < r; n++) {\n let i = e[n];\n i && i(t);\n }\n return ke;\n}\nfunction xn(e) {\n if (!e) return e;\n let t = e.length, r = e[0].length, n = [];\n for (let i = 0; i < r; i++) n[i] = Array(t);\n for (let i = 0; i < t; i++) {\n let o = e[i];\n for (let l = 0; l < r; l++) n[l][i] = o[l];\n }\n return n;\n}\nvar lr = (e, t) => !(e !== t && !or(e, t)) || !!e.isEqual?.(t);\nfunction sr(e, t, r = lr) {\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), i = n.length;\n if (i === 0) return null;\n let o = !1;\n for (let l = 0; l < i; l++) {\n let s = n[l];\n sr(e[s], t?.[s], r) === null && (o = !0, delete e[s]);\n }\n return o && Object.keys(e).length === 0 ? null : void 0;\n}\nfunction cr(e, t, r = lr) {\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), i = n.length;\n if (i === 0) return !0;\n let o = t.length, l = !1;\n for (let s = 0; s < i; s++) {\n let c = n[s], d = [];\n for (let m = 0; m < o; m++) {\n let a = t[m]?.[c];\n a !== void 0 && d.push(a);\n }\n cr(e[c], d, r) && (l = !0, delete e[c]);\n }\n return l && Object.keys(e).length === 0;\n}\nfunction Tn(...e) {\n let t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !Me(e[t - 1])) return e[t - 1];\n let r = e[0] || {};\n for (let n = 1; n < t; n++) r = ve(r, e[n] || {}, { arrayMerge: (i, o) => [...o] });\n return r;\n}\nfunction Cn(e, t) {\n let r = {}, n = Object.keys(t), i = n.length;\n for (let o = 0; o < i; o++) {\n let l = n[o], 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 In(e, t, r = ir) {\n let n = 0, i = e.length - 1;\n for (; n <= i;) {\n let o = Math.floor((n + i) / 2), l = r(e[o]);\n if (l === t) return o;\n l < t ? n = o + 1 : i = o - 1;\n }\n return n;\n}\nfunction An(e, t, r = ir) {\n let n = e.length - 1, i = 0;\n for (; n >= i;) {\n let o = Math.floor((n + i) / 2), l = r(e[o]);\n if (l === t) return o;\n l > t ? n = o - 1 : i = o + 1;\n }\n return n;\n}\nfunction Rn(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 $n(e) {\n return e == null || e === void 0 ? \"\" : typeof e == \"string\" ? e : \"\" + e;\n}\nfunction ur(e) {\n return e == null;\n}\nfunction Nn(e) {\n return e != null;\n}\nfunction Ln(e) {\n return e == null || e === \"\";\n}\nfunction kn(e) {\n return !!e && typeof e.then == \"function\";\n}\nfunction dr(e, t) {\n return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top);\n}\nfunction Mn(e, t) {\n return e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right;\n}\nfunction On(e, t, r = !1) {\n if (!t) return [e];\n if (!dr(e, t)) return [];\n let n = [], i = e, o = () => {\n t.top > i.top && t.top < i.bottom && (n.push({\n ...i,\n bottom: t.top\n }), i = {\n ...i,\n top: t.top\n });\n }, l = () => {\n t.bottom > i.top && t.bottom < i.bottom && (n.push({\n ...i,\n top: t.bottom\n }), i = {\n ...i,\n bottom: t.bottom\n });\n }, s = () => {\n t.right > i.left && t.right < i.right && (n.push({\n ...i,\n left: t.right\n }), i = {\n ...i,\n right: t.right\n });\n }, c = () => {\n t.left > i.left && t.left < i.right && (n.push({\n ...i,\n right: t.left\n }), i = {\n ...i,\n left: t.left\n });\n };\n return r ? (c(), s(), o(), l()) : (o(), l(), s(), c()), n;\n}\nfunction Fn(e, t) {\n let r = t.split(\".\"), n = e, i = r.length;\n for (let o = 0; o < i; o++) {\n let l = r[o];\n if (!n) return null;\n let s = n[l];\n if (typeof s == \"function\" && (s = s.bind(n)()), !s || !Me(s)) return s;\n n = s;\n }\n return n ?? null;\n}\nfunction Dn(e, t, r) {\n let n = t.split(\".\"), i = e;\n if (!i) throw Error(\"Can not set path to a null path.\");\n let o = n.length;\n for (let l = 0; i && l < o - 1; l++) {\n let s = n[l], c = i[s];\n if (c ?? (c = {}, i[s] = c), !Me(c)) throw Error(\"Can not set path to a non object path.\");\n i = c;\n }\n if (typeof r != \"number\" && typeof r != \"boolean\" && typeof r != \"string\" && !Me(r)) throw Error(`Can not set path to ${r} that is not a a supported primitive.`);\n return i[n[o - 1]] = r, e;\n}\nfunction Un(...e) {\n return new Promise((t) => {\n setTimeout(() => {\n Function(\"console.log.apply(console, arguments)\").apply(null, e), t();\n });\n });\n}\nvar fe = {\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 He() {\n let e = globalThis.navigator !== void 0 && globalThis.navigator.userAgent ? globalThis.navigator.userAgent.toLowerCase() : \"\";\n return e ? /(win32|win64|windows|wince)/i.test(e) ? fe.Windows : /(macintosh|macintel|macppc|mac68k|macos)/i.test(e) ? fe.MacOS : /(iphone|ipad|ipod)/i.test(e) ? fe.IOS : /android/.test(e) ? fe.Android : /linux/.test(e) ? fe.Linux : /^((?!chrome|android|).)*safari/i.test(e) ? fe.Safari : /^((?!chrome|android|Seamonkey).)*firefox/i.test(e) ? fe.Firefox : fe.Unknown : fe.Unknown;\n}\nfunction fr(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]) || fr(t[r]);\n }), e;\n}\nfunction st(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) => st(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] = st(e[r]));\n return t;\n}\nge({\n EmptyCell: () => pr,\n EmptyRange: () => Bn,\n EmptyRanges: () => Pn,\n EmptySelection: () => jn,\n InsertCutShift: () => be,\n cellToRange: () => Vn,\n classifyInsertCut: () => ei,\n columnFirstCellComparator: () => wr,\n columnFirstRangeComparator: () => mr,\n createCellComparator: () => _r,\n createConflatingRanges: () => Qn,\n createRangeComparator: () => Er,\n defaultRange: () => Yn,\n extendRangeToIntersectingRanges: () => Rr,\n extendRangeToUnionRanges: () => Hn,\n intersectRanges: () => Ir,\n isCellWithinRange: () => Kn,\n isEqualCells: () => xr,\n isEqualRanges: () => mt,\n isEqualRangesArrays: () => Cr,\n isEqualSelectionCoords: () => Ar,\n isRangeWithinRange: () => Tr,\n isRangesIntersect: () => ht,\n isRefusedInsertCut: () => ti,\n isSingleCell: () => zn,\n isValidRange: () => Gn,\n mergeRangeCoordValues: () => Nr,\n reverseColumnFirstCellComparator: () => vr,\n reverseColumnFirstRangeComparator: () => yr,\n reverseRowFirstCellComparator: () => br,\n reverseRowFirstRangeComparator: () => gr,\n rowFirstCellComparator: () => Sr,\n rowFirstRangeComparator: () => hr,\n sanitizeRange: () => $r,\n sanitizeRangeArray: () => Jn,\n translateRange: () => Wn,\n unionRanges: () => ct,\n unionRangesArrays: () => Xn\n});\nvar pr = Object.freeze({\n colIndex: 0,\n rowIndex: 0\n}), Bn = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n}), Pn = ke, jn = Object.freeze({\n cell: pr,\n ranges: ke,\n rangeIndex: -1\n});\nfunction mr(e, t) {\n return e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart;\n}\nfunction hr(e, t) {\n return e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart;\n}\nfunction gr(e, t) {\n return e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd;\n}\nfunction yr(e, t) {\n return e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd;\n}\nfunction wr(e, t) {\n return e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex;\n}\nfunction Sr(e, t) {\n return e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex;\n}\nfunction br(e, t) {\n return e.rowIndex === t.rowIndex ? t.colIndex - e.colIndex : t.rowIndex - e.rowIndex;\n}\nfunction vr(e, t) {\n return e.colIndex === t.colIndex ? t.rowIndex - e.rowIndex : t.colIndex - e.colIndex;\n}\nfunction Er(e = oe.Row, t = !1) {\n return t ? e === oe.Column ? yr : gr : e === oe.Column ? mr : hr;\n}\nfunction _r(e = oe.Row, t = !1) {\n return t ? e === oe.Column ? vr : br : e === oe.Column ? wr : Sr;\n}\nfunction xr(e, t) {\n return e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex && e.scope === t.scope;\n}\nfunction mt(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 Kn(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 Tr(e, t) {\n return !(!e || !t) && !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd);\n}\nfunction ht(e, t) {\n return !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd);\n}\nfunction Cr(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 (!mt(e[r], t[r])) return !1;\n return !0;\n}\nfunction zn(e) {\n return !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd;\n}\nfunction Vn(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 Ir(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), i = Math.max(e.rowStart, t.rowStart), o = Math.min(e.colEnd, t.colEnd), l = Math.min(e.rowEnd, t.rowEnd), s = r;\n return s ? (s.colStart = n, s.rowStart = i, s.colEnd = o, s.rowEnd = l) : s = {\n colStart: n,\n rowStart: i,\n colEnd: o,\n rowEnd: l\n }, s;\n}\nfunction ct(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), i = Math.min(e.rowStart, t.rowStart), o = Math.max(e.colEnd, t.colEnd), l = Math.max(e.rowEnd, t.rowEnd), s = r;\n return s ? (s.colStart = n, s.rowStart = i, s.colEnd = o, s.rowEnd = l) : s = {\n colStart: n,\n rowStart: i,\n colEnd: o,\n rowEnd: l\n }, s;\n}\nfunction Ar(e, t) {\n return e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!xr(e.cell, t.cell) && Cr(e.ranges, t.ranges);\n}\nfunction Xn(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 i = 1; i < e.length; i++) n = ct(n, e[i], r);\n return t && (n = ct(n, t, r)), n;\n}\nfunction Gn(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 Hn(e, t) {\n if (!t || t.length === 0) return e;\n let r = e, n = null;\n for (; !mt(r, n);) n = r, r = Rr(n, t);\n return r;\n}\nfunction Rr(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 i = t[n];\n ht(r, i) && (r.rowStart = Math.min(r.rowStart, i.rowStart), r.colStart = Math.min(r.colStart, i.colStart), r.rowEnd = Math.max(r.rowEnd, i.rowEnd), r.colEnd = Math.max(r.colEnd, i.colEnd));\n }\n return r;\n}\nfunction Wn(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 $r(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 Jn(e, t) {\n if (!e) return null;\n let r = e.length, n = Array(r);\n for (let i = 0; i < r; i++) n[i] = $r(e[i], t);\n return n;\n}\nfunction Yn(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 qn = [null, null], Zn = (e, t, r) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Nr(e, t = 2, r, n = oe.Row, i) {\n let o = [...e];\n if (t <= 0 || e.length <= 1) return o;\n let l = n === oe.Column, s = 0, c = !1;\n do {\n let d = o.sort(Er(l ? oe.Row : oe.Column));\n o = [], o.push(d[0]);\n let m = d.length, a = 0, f = d[0], b = f.colStart, v = f.rowStart, A = f.colEnd, U = f.rowEnd;\n for (let h = 1; h < m; h++) {\n let w = d[h], S = !1;\n if (S = l ? f && v === w.rowStart && U === w.rowEnd && A + 1 === w.colStart : f && b === w.colStart && A === w.colEnd && U + 1 === w.rowStart, S) {\n let F = {\n colStart: b,\n rowStart: v,\n colEnd: l ? w.colEnd : A,\n rowEnd: l ? U : w.rowEnd\n };\n if (f.value !== void 0 && (F.value = f.value), r) {\n let z = i ?? [null, null];\n z[0] = f, z[1] = w, F = r(z, F, n);\n }\n if (F) {\n o[a] = F, c = !0, f = F, b = f.colStart, v = f.rowStart, A = f.colEnd, U = f.rowEnd;\n continue;\n }\n }\n o[++a] = w, f = w, b = f.colStart, v = f.rowStart, A = f.colEnd, U = f.rowEnd;\n }\n s++, l = !l, s === 1 && (c = !0);\n } while (s < t && c && o.length > 1);\n return o;\n}\nfunction Qn(e, t = !1) {\n let r = [], n, i = null, o = -(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 v = e ? e(n, d, t) : n === d ? d : void 0;\n v === void 0 ? m = !1 : d = v;\n }\n if (m && c === l + 1 && s === o) return t ? i.rowEnd = c : i.colEnd = c, l = c, void (n = d);\n i && r.push(i);\n let f = t ? s : c, b = t ? c : s;\n i = {\n colStart: f,\n rowStart: b,\n colEnd: f,\n rowEnd: b\n }, a && (i.value = d), o = s, l = c, n = d;\n },\n done: (s) => (i &&= (r.push(i), null), s ? Nr(r, 3, s === !0 ? Zn : s, t ? oe.Column : oe.Row, qn) : r)\n };\n}\nvar be = {\n Close: \"close\",\n Blank: \"blank\",\n Inside: \"inside\",\n Tear: \"tear\"\n};\nfunction ei(e, t, r) {\n let n = r === oe.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) ? be.Inside : be.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) ? be.Tear : be.Blank;\n}\nfunction ti(e) {\n return e === be.Inside || e === be.Tear;\n}\nvar Z = {\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: () => de\n});\nfunction de(e, t, r, n) {\n if (!e) return t;\n let i = t, o = r === Z.Right || r === Z.Down;\n for (;;) {\n let l = e(i, !o);\n if (l === 0) return i;\n let s = o ? i + l : i - l;\n if (n !== void 0 && (o ? s > n : s < n)) return n;\n i = s;\n }\n}\nfunction Lr(e, t = Z.Right, r, n, i, o = null) {\n if (o && Ar(o, e)) return e;\n let l = e.ranges, s = e.rangeIndex, c = l[s];\n if (!ht({\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 Z.Right:\n d.colIndex = de(i, d.colIndex + 1, t, c.colEnd + 1);\n break;\n case Z.Left:\n d.colIndex = de(i, d.colIndex - 1, t, c.colStart - 1);\n break;\n case Z.Down:\n d.rowIndex = de(n, d.rowIndex + 1, t, c.rowEnd + 1);\n break;\n case Z.Up: d.rowIndex = de(n, d.rowIndex - 1, t, c.rowStart - 1);\n }\n let a = (v) => {\n if (v) {\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 === Z.Right && d.colIndex > c.colEnd && d.rowIndex === c.rowEnd) a(!0);\n else if (t === Z.Left && d.colIndex < c.colStart && d.rowIndex === c.rowStart) a(!1);\n else if (t === Z.Down && d.colIndex === c.colEnd && d.rowIndex > c.rowEnd) a(!0);\n else if (t === Z.Up && d.colIndex === c.colStart && d.rowIndex < c.rowStart) a(!1);\n else {\n let v = d.rowIndex, A = d.colIndex;\n switch (t) {\n case Z.Right:\n A > c.colEnd && (v = de(n, v + 1, t, c.rowEnd + 1), A = c.colStart, v > c.rowEnd && (v = c.rowStart));\n break;\n case Z.Left:\n A < c.colStart && (v = de(n, v - 1, t, c.rowStart - 1), A = c.colEnd, v < c.rowStart && (v = c.rowEnd));\n break;\n case Z.Down:\n v > c.rowEnd && (A = de(i, A + 1, t, c.colEnd + 1), v = c.rowStart, A > c.colEnd && (A = c.colStart));\n break;\n case Z.Up: v < c.rowStart && (A = de(i, A - 1, t, c.colStart - 1), v = c.rowEnd, A < c.colStart && (A = c.colEnd));\n }\n d = {\n rowIndex: v,\n colIndex: A\n };\n }\n let f = r(d);\n if (!Tr(f, c)) {\n let v = Ir(f, c);\n v && (f = v);\n }\n let b = {\n rowStart: de(n, f.rowStart, Z.Down, f.rowEnd),\n colStart: de(i, f.colStart, Z.Right, f.colEnd),\n rowEnd: de(n, f.rowEnd, Z.Up, f.rowStart),\n colEnd: de(i, f.colEnd, Z.Left, f.colStart)\n };\n if (b.rowStart !== d.rowIndex || b.colStart !== d.colIndex) {\n switch (t) {\n case Z.Right:\n l[m].colStart === b.colStart && l[m].colEnd === b.colEnd && (d.rowIndex = b.rowEnd), d.colIndex = b.colEnd;\n break;\n case Z.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 Z.Down:\n l[m].rowStart === b.rowStart && l[m].rowEnd === b.rowEnd && (d.colIndex = b.colEnd), d.rowIndex = b.rowEnd;\n break;\n case Z.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, i, o ?? e);\n }\n return {\n ranges: e.ranges,\n cell: d,\n rangeIndex: m\n };\n}\nvar ri, Ae = (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}, Re = /* @__PURE__ */ new Int32Array(1024), Ze = (e) => (Re.length < e && (Re = new Int32Array(Math.max(e, 2 * Re.length))), Re.fill(0, 0, e), Re), ni = 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 i = e.count;\n this._n = i;\n let o = new Int32Array(i), l = new Int32Array(i), s = new Int32Array(i), c = new Int32Array(i), d = r ? e.colS : e.rowS, m = r ? e.colE : e.rowE, a = r ? e.rowS : e.colS, f = r ? e.rowE : e.colE;\n for (let h = 0; h < i; h++) n ? (o[h] = -m[h], l[h] = -d[h], s[h] = -f[h], c[h] = -a[h]) : (o[h] = d[h], l[h] = m[h], s[h] = a[h], c[h] = f[h]);\n this._M0 = o, this._M1 = l, this._m0 = s, this._m1 = c;\n let b = r ? t.colStart : t.rowStart, v = r ? t.colEnd : t.rowEnd, A = v - b + 1, U = new Int32Array(i);\n if (i < 256 || A > 16 * i) {\n for (let h = 0; h < i; h++) U[h] = h;\n U.sort((h, w) => o[h] - o[w] || h - w);\n } else {\n let h = n ? -v : b, w = Ze(A + 1);\n for (let S = 0; S < i; S++) w[o[S] - h + 1]++;\n for (let S = 1; S <= A; S++) w[S] += w[S - 1];\n for (let S = 0; S < i; S++) U[w[o[S] - h]++] = S;\n }\n this._order = U, this._active = new Int32Array(Math.min(2 * i, 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, i = 1 & e, o = 1 & t, l = this._m0, s = this._m1, c = i ? s[r] : l[r], d = o ? s[n] : l[n];\n if (c !== d) return c - d;\n if (i !== o) return i - o;\n let m = i ? l[r] : s[r], a = o ? 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 i = n - r + 1;\n if (t < 256 || i > 16 * t) return e.subarray(0, t).sort((a, f) => this._compareEvents(a, f)), e;\n let o = this._m0, l = this._m1, s = e, c = this._scratch;\n c.length < t && (c = this._scratch = new Int32Array(t));\n let d = Ze(i + 1);\n for (let a = 0; a < t; a++) {\n let f = s[a];\n d[(1 & f ? o[f >> 1] : l[f >> 1]) - r + 1]++;\n }\n for (let a = 1; a <= i; a++) d[a] += d[a - 1];\n for (let a = 0; a < t; a++) {\n let f = s[a];\n c[d[(1 & f ? o[f >> 1] : l[f >> 1]) - r]++] = f;\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 = Ze(i + 1);\n for (let a = 0; a < t; a++) {\n let f = s[a];\n d[(1 & f ? l[f >> 1] : o[f >> 1]) - r + 1]++;\n }\n for (let a = 1; a <= i; a++) d[a] += d[a - 1];\n for (let a = 0; a < t; a++) {\n let f = s[a];\n c[d[(1 & f ? l[f >> 1] : o[f >> 1]) - r]++] = f;\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, i, o = this._active, l = this._activeLen;\n if (this._hasBand) {\n let a = this._bandEnd, f = 0;\n for (let b = 0; b < l; b++) {\n let v = o[b];\n r[v >> 1] > a && (o[f++] = v);\n }\n l = f;\n }\n let s = this._nextOrder;\n if (l > 0) i = this._bandEnd + 1;\n else {\n if (s >= e) return this._activeLen = 0, this._done = !0, !1;\n i = t[n[s]];\n }\n let c = s;\n for (; c < e && t[n[c]] === i;) c++;\n let d = c - s;\n if (d > 0) {\n let a = 2 * d, f = this._events;\n f.length < a && (f = this._events = new Int32Array(Math.max(a, 2 * f.length)));\n let b = this._m0, v = 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 L = n[z];\n f[h++] = L << 1, f[h++] = L << 1 | 1, b[L] < A && (A = b[L]), v[L] > U && (U = v[L]);\n }\n else for (let z = s; z < c; z++) {\n let L = n[z];\n f[h++] = L << 1, f[h++] = L << 1 | 1, b[L] < A && (A = b[L]), v[L] > U && (U = v[L]);\n }\n let w = this._sortEvents(f, a, A, U), S = l + a, F = this._scratch;\n if ((F === w || F.length < S) && (F = new Int32Array(Math.max(S, 2 * o.length))), l === 0) F.set(w.subarray(0, a));\n else {\n let z = 0, L = 0, R = 0;\n for (; z < l && L < a;) this._compareEvents(o[z], w[L]) <= 0 ? F[R++] = o[z++] : F[R++] = w[L++];\n for (; z < l;) F[R++] = o[z++];\n for (; L < a;) F[R++] = w[L++];\n }\n this._scratch = o.length >= F.length ? o : new Int32Array(F.length), o = this._active = F, l = S;\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 f = r[o[a] >> 1];\n f < m && (m = f);\n }\n return this._bandStart = i, 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, i = this._rMinS, o = this._rMinE, l = this._rOff, s = this._pool, c = this._overlaps, d = 0, m = 0, a = 0, f = 0, b = (v, A) => {\n a >= i.length && (i = this._rMinS = Ae(i, a + 1), o = this._rMinE = Ae(o, a + 1), l = this._rOff = Ae(l, i.length + 1)), i[a] = v, o[a] = A, l[a] = m, a++, m + d > s.length && (s = this._pool = Ae(s, m + d));\n for (let U = 0; U < d; U++) s[m++] = c[U];\n };\n for (let v = 0; v < t; v++) {\n let A = e[v], U = A >> 1;\n if (1 & A) {\n let h = n[U];\n if (f <= h && b(f, h), d > 1) {\n let w = d - 1;\n for (; w >= 0 && c[w] !== U;) w--;\n w !== -1 && (c[w] = c[d - 1]);\n }\n d--, f = h + 1;\n } else {\n let h = r[U];\n d > 0 && f < h && b(f, h - 1), d >= c.length && (c = this._overlaps = Ae(c, d + 1)), c[d++] = U, f = 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, i = this._rMinS[e], o = this._rMinE[e], l = t ? 0 - o : i, s = t ? 0 - i : o;\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, i = this._isColumn ? e : t;\n if (r && (n = -n, i = -i), this._hasBand && this._region >= 0 && (n < this._major || n === this._major && i <= 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 o = this._rMinE, l = 0, s = this._rCount;\n for (; l < s;) {\n let c = l + s >>> 1;\n o[c] < i ? l = c + 1 : s = c;\n }\n if (l < this._rCount) {\n let c = this._rMinS[l];\n return this._minor = c > i ? c : i, 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}, xt = Object.freeze({\n done: !0,\n value: void 0\n});\n(function(e) {\n class t extends ni {\n constructor(...i) {\n super(...i), this._reuseOverlaps = null;\n }\n _materialize(i) {\n let o = this._rOff, l = this._pool, s = this._store.value, c = o[i], d = o[i + 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(i, o) {\n if (this._sweep = null, this._isByCell = !1, this._cellComparator = null, this._lastCell = null, this._reuse = null, !i || i.length === 0) return;\n let l, s = !0, c = !1, d = !1;\n if (o && (s = (o.axis ?? oe.Column) !== oe.Row, c = o.reverse ?? !1, d = o.byCell ?? !1, l = o.reuseIterator), this._isByCell = d, l) {\n let w = typeof l == \"boolean\" ? {\n done: !1,\n value: {\n cell: null,\n range: null,\n overlaps: null\n }\n } : l;\n w.done = !1;\n let S = w.value;\n S ||= w.value = {\n cell: null,\n range: null,\n overlaps: null\n }, S.range || (S.range = {\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n }), S.cell = d ? S.cell ?? {\n colIndex: -1,\n rowIndex: -1\n } : null, this._reuse = w;\n }\n let m = i.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 }, f = 2 ** 53 - 1, b = -(2 ** 53 - 1), v = 2 ** 53 - 1, A = -(2 ** 53 - 1);\n for (let w = 0; w < m; w++) {\n let S = i[w];\n a.rowS[w] = S.rowStart, a.rowE[w] = S.rowEnd, a.colS[w] = S.colStart, a.colE[w] = S.colEnd, a.value.push(S), S.rowStart < f && (f = S.rowStart), S.rowEnd > b && (b = S.rowEnd), S.colStart < v && (v = S.colStart), S.colEnd > A && (A = S.colEnd);\n }\n let U = {\n rowStart: f,\n rowEnd: b,\n colStart: v,\n colEnd: A\n }, h = this._sweep = new t(a, U, s, c);\n d ? this._cellComparator = _r(s ? oe.Column : oe.Row, c) : l && (h._reuseOverlaps = []);\n }\n next(i) {\n let o = this._sweep;\n if (!o) return xt;\n let l = this._isByCell, s;\n if (i) {\n if (!l) throw Error(\"nextCell is only supported when byCell is true\");\n let a = this._lastCell;\n if (a && this._cellComparator(a, i) >= 0) throw Error(\"nextCell must be after the current iteration cell\");\n s = o.seekCell(i.rowIndex, i.colIndex);\n } else s = l ? o.nextCell() : o.nextRegion();\n if (!s) return this._sweep = null, xt;\n let c = this._reuse;\n if (c) {\n let a = c.value;\n c.done = !1;\n let f = a.range;\n if (f.colStart = o.colStart, f.rowStart = o.rowStart, f.colEnd = o.colEnd, f.rowEnd = o.rowEnd, l) {\n let b = a.cell;\n b.colIndex = o.cellCol, b.rowIndex = o.cellRow;\n let v = this._lastCell;\n v ||= this._lastCell = {\n colIndex: 0,\n rowIndex: 0\n }, v.colIndex = o.cellCol, v.rowIndex = o.cellRow;\n }\n return a.overlaps = o.intersection, c;\n }\n let d = null, m = o.intersection;\n return l && (d = this._lastCell = {\n colIndex: o.cellCol,\n rowIndex: o.cellRow\n }, m = m.slice()), {\n done: !1,\n value: {\n cell: d,\n range: {\n colStart: o.colStart,\n rowStart: o.rowStart,\n colEnd: o.colEnd,\n rowEnd: o.rowEnd\n },\n overlaps: m\n }\n };\n }\n return(i) {\n return null;\n }\n throw(i) {\n return null;\n }\n [Symbol.iterator]() {\n return this;\n }\n }\n e.IteratorInstance = r;\n})(ri ||= {});\nvar ii = 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 o = this._onceMessageKeys;\n if (o.has(r.onceKey)) return;\n o.add(r.onceKey);\n }\n let n = r?.meta, i = this._overrides;\n if (i) {\n let o = i[e];\n if (o) return void o.bind(i)(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 ii();\nvar Qe;\nge({\n EmptyBounds: () => li,\n EmptyRect: () => ai,\n EmptyTopLeft: () => oi\n});\nvar oi = Object.freeze({\n left: 0,\n top: 0\n}), ai = Object.freeze({\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n}), li = Object.freeze({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n});\nge({\n canUseDOM: () => kr,\n getDPI: () => ci,\n hasFocus: () => Mr,\n openFileDialog: () => si,\n scrollIntoContainer: () => ui,\n whenFocus: () => di\n});\nvar kr = !(typeof window > \"u\" || !window.document || !window.document.createElement), si = (e = \"*.*\") => new Promise((t, r) => {\n if (!kr) 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 i = null, o = !1;\n globalThis.addEventListener?.(\"focus\", () => {\n setTimeout(() => {\n i || o || (o = !0, t(null));\n }, 1e3);\n }, {\n once: !0,\n passive: !0\n }), n.onchange = () => {\n if (i = n.files?.[0] ?? null, i) {\n if (o) return void console.warn(\"File open detected after faux cancel.\", i);\n t(i);\n }\n }, n.autofocus = !0, n.click();\n}), ci = () => {\n let e = 1;\n return typeof window == \"object\" && (e = window.devicePixelRatio || 1), e;\n}, Mr = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), ui = (e, t, r = \"auto\") => {\n if ((() => {\n if (Qe === void 0) {\n let c = !1;\n try {\n document.createElement(\"div\").scrollIntoView({ get container() {\n return c = !0, \"nearest\";\n } });\n } catch {}\n Qe = c;\n }\n return Qe;\n })()) return void t.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n behavior: r,\n container: \"nearest\"\n });\n let n = e.getBoundingClientRect(), i = t.getBoundingClientRect(), o = n.top + e.clientTop, l = o + e.clientHeight, s = 0;\n i.top < o ? s = i.top - o : i.bottom > l && (s = Math.min(i.bottom - l, i.top - o)), s !== 0 && e.scrollBy({\n top: s,\n behavior: r\n });\n}, di = async (e, t = !1) => new Promise((r) => {\n Mr(e, t) ? r(!0) : e.addEventListener(\"focusin\", () => {\n r(!0);\n }, { once: !0 }), e.focus();\n});\nge({\n cancelTimeout: () => yi,\n debounce: () => mi,\n nextTick: () => gi,\n rafThrottle: () => hi,\n requestTimeout: () => wi,\n throttle: () => pi\n});\nvar Oe = globalThis.requestAnimationFrame, fi = globalThis.cancelAnimationFrame;\nfunction pi(e, t) {\n let r = null;\n return (...n) => {\n let i = Date.now();\n (!r || i - r >= t) && (r = i, e(...n));\n };\n}\nfunction mi(e, t = 300, r = !1) {\n let n, i, o, 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 || (o = e.apply(i, n), i = n = null));\n }\n t ??= 100;\n let d = function() {\n i = globalThis, n = arguments, s = Date.now();\n var m = r && !l;\n return l ||= setTimeout(c, t), m && (o = e.apply(i, n), i = n = null), o;\n };\n return d.clear = function() {\n l &&= (clearTimeout(l), null);\n }, d.flush = function() {\n l &&= (o = e.apply(i, n), i = n = null, clearTimeout(l), null);\n }, d;\n}\nvar hi = (e) => {\n let t, r = !1, n = function() {\n r = !1, e(t);\n };\n return function(i) {\n t = i, t && t.persist && t.persist(), r || (r = !0, Oe(n));\n };\n}, gi = (e) => {\n if (typeof Oe == \"function\") Oe(() => {\n e();\n });\n else {\n let t = globalThis.setImmediate;\n (typeof t == \"function\" ? t : setTimeout)(() => {\n e();\n });\n }\n}, Tt = typeof performance == \"object\" && typeof performance.now == \"function\" ? () => performance.now() : () => Date.now(), yi = (e) => {\n fi(e.id);\n}, wi = (e, t) => {\n let r = Tt(), n = { id: Oe(function i() {\n Tt() - r >= t ? e.call(null) : n.id = Oe(i);\n }) };\n return n;\n};\nge({ MESSAGE_ERROR_INVALID_ARG: () => Si });\nvar Si = (e) => `Invalid argument: '${e}'.`;\nge({\n APP_MIME_TYPE: () => bi,\n DEFAULT_MIME_TYPE: () => \"*/*\",\n JSONStableStringify: () => Ti,\n arrayBufferToBase64: () => Or,\n base64ToArrayBuffer: () => xi,\n blobToString: () => ut,\n isLittleEndian: () => _i,\n isNodeBuffer: () => vi,\n isSharedArrayBufferSupported: () => Ei\n});\nvar bi = \"application/octet-stream\", Ce = globalThis.Buffer, vi = (e) => Ce?.isBuffer(e) ?? !1, Ei = typeof SharedArrayBuffer == \"function\" && (globalThis.crossOriginIsolated === void 0 || globalThis.crossOriginIsolated === !0), _i = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1, Ct = globalThis.FileReader, xi = (e) => {\n let t = typeof globalThis.atob == \"function\" ? globalThis.atob(e) : Ce.from(e, \"base64\").toString(\"binary\"), r = t.length, n = new Uint8Array(r);\n for (let i = 0; i < r; i++) n[i] = t.charCodeAt(i);\n return n.buffer;\n}, Or = (e) => {\n let t = new Uint8Array(e), r = t.byteLength, n = \"\";\n for (let i = 0; i < r; i++) n += String.fromCharCode(t[i]);\n if (typeof globalThis.btoa == \"function\") return globalThis.btoa(n);\n if (Ce) return Ce.from(n, \"binary\").toString(\"base64\");\n throw Error(\"Unsupported environment\");\n}, ut = (e) => new Promise((t, r) => {\n if (e) if (Ct) {\n let n = new Ct();\n n.onload = () => {\n t(n.result);\n }, n.onerror = () => {\n r(n.error);\n }, n.readAsText(e);\n } else if (Ce) {\n let n = (i) => Ce.from(i).toString(\"utf-8\");\n e.arrayBuffer().then((i) => {\n t(n(i));\n }).catch((i) => {\n r(i);\n });\n } else r(/* @__PURE__ */ Error(\"Unsupported environment\"));\n else t(\"\");\n});\nfunction Ti(e, t) {\n t ||= {}, typeof t == \"function\" && (t = { cmp: t });\n let r = typeof t.cycles == \"boolean\" && t.cycles, n = t.cmp && (i = t.cmp, function(l) {\n return function(s, c) {\n return i({\n key: s,\n value: l[s]\n }, {\n key: c,\n value: l[c]\n });\n };\n });\n var i;\n let o = [];\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 (o.indexOf(s) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw TypeError(\"Converting circular structure to JSON\");\n }\n let d = o.push(s) - 1, m = Object.keys(s).sort(n && n(s));\n c = \"\";\n for (let a = 0; a < m.length; a++) {\n let f = m[a], b = l(s[f]);\n b && (c && (c += \",\"), c += JSON.stringify(f) + \":\" + b);\n }\n return o.splice(d, 1), \"{\" + c + \"}\";\n })(e);\n}\nvar Ci;\nge({\n DATA_URL_PNG_PREFIX: () => Fr,\n getImageDataUrl: () => Ii,\n loadImageDetails: () => Ai\n});\nvar Fr = \"data:image/png;base64,\", Dr = \"Unable to resolve image.\", It = (e) => new Promise(async (t, r) => {\n let n = null;\n try {\n let i = n = new Image();\n i.src = e, i.addEventListener(\"load\", function() {\n t({\n width: i.naturalWidth,\n height: i.naturalHeight\n });\n }, { once: !0 }), i.addEventListener(\"error\", function(o) {\n URL.revokeObjectURL(e);\n let l = o?.error?.message ?? \"\";\n l &&= `: ${l}`, r(`Invalid Image${l}`);\n }, { once: !0 }), await i.decode();\n } catch {\n n?.src && URL.revokeObjectURL(n.src);\n }\n n || r(Error(Dr));\n}), Ii = (e, t = 1) => new Promise(async (r, n) => {\n let i = null;\n try {\n let o = i = new Image();\n o.src = e, o.addEventListener(\"load\", function() {\n try {\n let l = document.createElement(\"canvas\");\n l.width = o.naturalWidth, l.height = o.naturalHeight;\n let s = l.getContext(\"2d\");\n if (!s) throw Error(\"Unable to create 2d context\");\n s.drawImage(o, 0, 0);\n let c = l.toDataURL(\"image/png\", t);\n r({\n elemImg: o,\n dataUrl: c\n });\n } catch (l) {\n URL.revokeObjectURL(e), n(l);\n }\n }, { once: !0 }), o.addEventListener(\"error\", function() {\n URL.revokeObjectURL(e), n(\"Invalid Image\");\n }, { once: !0 }), await o.decode();\n } catch {\n i?.src && URL.revokeObjectURL(i.src);\n }\n i || n(Error(Dr));\n}), et = \"image/svg+xml\", Ai = async (e, t = null) => {\n let r = null, n = async () => {\n try {\n let o = t ?? \"image/*\", l = URL.createObjectURL(new Blob([e], { type: o }));\n r = {\n mimeType: o,\n naturalSize: await It(l),\n asUrl: l\n };\n } catch {}\n }, i = async () => {\n try {\n let o = new TextDecoder().decode(e), l = URL.createObjectURL(new Blob([o], { type: et })), s = await It(l);\n r = {\n mimeType: t ?? et,\n naturalSize: s,\n asUrl: l,\n asSVGText: o\n };\n } catch {}\n };\n if (t === et ? await i() : t?.startsWith(\"image/\") ? await n() : (await n(), r || await i()), !r) throw Error(\"Failed to load image\");\n return r;\n}, At = /* @__PURE__ */ new Set(), Ri = (e) => {\n At.has(e) || (At.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, i, o, l = !1) => {\n if (r === null) return r;\n if (r === void 0) return o;\n let s = r;\n if (n?.shorthand) {\n let a = n?.shorthand(r, i);\n a !== void 0 && (s = a);\n }\n if (s !== null && n?.getSubType) {\n let a = n.getSubType(s, o);\n a && (n = a);\n }\n let c = n?.properties, d = n?.arrayType ?? !1, m = s;\n if (n && n.merge && m && o) m = n.merge(m, o, i);\n else if (!d && c) {\n let a = Object.keys({\n ...s,\n ...o\n });\n m = null;\n let f = a.length;\n for (let b = 0; b < f; b++) {\n let v = a[b], A, U = s?.[v];\n if (U !== void 0) {\n let h = c[v];\n if (!h) {\n Ri(v);\n continue;\n }\n A = t(U, h, i, o?.[v], l);\n } else A = o?.[v];\n A == null ? l && U === null && (m ??= {}, m[v] = null) : (m ??= {}, m[v] = A);\n }\n }\n return m;\n };\n})(Ci ||= {});\nvar gt = {\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}, Ur = {\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}, Rt = He() === fe.Safari ? gt : Ur, $i = {\n Safari: gt,\n Perms: Ur,\n PermsWrite: Rt,\n PermsRead: Rt\n}, tt = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.(\"focus\", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), rt = async (e, t, r) => {\n if (He() === fe.Safari) return await r(Error(gt.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 }, i = await globalThis?.navigator?.permissions?.query({\n name: e,\n allowWithoutGesture: !0,\n allowWithoutSanitization: !0\n }), o = !1;\n if (i.state === \"prompt\" && (o = await n(t)), o || i.state !== \"granted\" || (o = await t()), !o) return await r(Error(i.state));\n } catch (n) {\n return n.message === \"No valid data on clipboard\" || n.name === \"DataError\" ? void 0 : await r(n);\n }\n}, Br = 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}, Ni = async (e, t) => {\n if (!e) return null;\n let r = await Br(e), n = !1;\n for (let i = 0; !n && r && i < r.length; i++) if (n = r[i].types.includes(t), n) return await r[i].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, i) {\n this._items = {}, this._types = Object.keys(n);\n let o = {}, l = Object.keys(n);\n for (let s = 0; s < l.length; s++) {\n let c = l[s], d = n[c];\n o[c] = typeof d == \"string\" ? e(c, d) : d;\n }\n this._items = o, this._presentationStyle = i?.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 $t, dt = async (e, t = J.Html) => new Promise(async (r, n) => {\n try {\n let i = await Ni(e, t);\n if (i) {\n let o = new FileReader();\n o.onload = () => {\n r(o.result);\n }, o.onerror = () => {\n r(\"\");\n }, o.readAsText(i);\n } else r(\"\");\n } catch (i) {\n n(i);\n }\n}), Nt = async (e, t = J.Html) => {\n let r = await dt(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}, Li = async (e) => {\n e && await e.writeText(\"\");\n}, Fe = \"clipboard-uuid\", Ne = \"web text/uuid\", Lt = (e) => `<div style=\"display:none\" ${Fe}=\"${e}\"/>`, kt = { type: J.Plain }, Mt = { type: J.Html }, Ot = { type: Ne }, ki = (e, t) => {\n let r = null;\n try {\n let n = new DOMParser().parseFromString(t, J.Html);\n n.body.firstElementChild?.setAttribute(Fe, 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(`[${Fe}=\"${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}, Dt = 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 rt(\"clipboard-read\", async () => {\n await tt();\n let e = await dt(this._nativeClipboard, Ne);\n if (!this._state || e && e === this._state.uuid) return !0;\n let t = await Nt(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\") || He() === fe.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 rt(\"clipboard-read\", async () => {\n if (await tt(), this._state?.uuid) {\n let t = await dt(this._nativeClipboard, Ne);\n if (t && t === e._state?.uuid) return !0;\n let r = await Nt(this._nativeClipboard, J.Html);\n if (Ft(e._state?.uuid, r)) return !0;\n }\n return e._state = {\n items: await Br(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: Ve(),\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, i = e.items ?? [], o = () => {\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 rt(\"clipboard-write\", async () => {\n await tt(), n && i.length === 0 && (i.push(new ClipboardItem({ [Ne]: new Blob([n], Ot) })), i.push(new ClipboardItem({ [J.Html]: new Blob([Lt(n)], Mt) })));\n for (let l = 0; l < Math.min(1, i.length); l++) {\n let s = i[l], c = s.types.indexOf(J.Html), d = null;\n if (c !== -1 && (d = await ut(await s.getType(J.Html)), d &&= ki(n, d)), !d && s.types.includes(J.Plain)) {\n let v = await s.getType(J.Plain);\n if (v) {\n let A = null;\n typeof v == \"string\" ? (console.warn(\"text as string\", v), A = v) : A = await ut(v), A && (d = `<div ${Fe}=\"${n}\">${A}</div>`);\n }\n }\n if (!d && s.types.includes(J.Png)) {\n let v = Or(await (await s.getType(J.Png)).arrayBuffer());\n d = `<div ${Fe}=\"${n}\"><img src=\"${Fr + v}\"/></div>`;\n }\n !d && n && (d = Lt(n));\n let m = new Blob([d ?? \"\"], Mt), a = {}, f = s.types, b = f.length;\n for (let v = 0; v < b; v++) {\n let A = f[v];\n a[A] = v === c ? m : s.getType(A);\n }\n d && c === -1 && (a[J.Html] = m), n && (a[Ne] = new Blob([n], Ot)), r.push(new ClipboardItem(a));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : await Li(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 o(), !0;\n }, async (l) => {\n this.dispatchEvent(new Event(\"clipboarderrorwrite\")), o();\n });\n }\n async writeReference(e) {\n if (!e) return void this.clear();\n let t = null, r = {};\n try {\n let i = await e.toText?.() ?? null;\n i && (r[J.Plain] = new Blob([i ?? \"\"], kt));\n } catch (i) {\n t = i;\n }\n try {\n let i = await e.toHtml?.() ?? null;\n i && (r[J.Html] = new Blob([i], { type: J.Html }));\n } catch (i) {\n t = i, console.warn(\"export to html\", i);\n }\n try {\n let i = await e.toImage?.() ?? null;\n i && (r[J.Png] = i);\n } catch (i) {\n t = i, console.warn(\"export to png\", i);\n }\n let n = this._write({\n uuid: Ve(),\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, i = r ? r.length : 0;\n for (let l = 0; !n && l < i; 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 o = new FileReader();\n o.onload = () => {\n e(o.result);\n }, o.readAsText(n), o.onerror = (l) => {\n t(l);\n };\n });\n }\n async writeText(e) {\n let t = [new ClipboardItem({ [J.Plain]: new Blob([e], kt) })];\n return this._write({\n uuid: Ve(),\n items: t,\n ref: null\n });\n }\n addEventListener(e, t, r = {}) {\n let n = r?.capture ? this._listenersCapture : this._listeners, i = n.get(e);\n i || (i = /* @__PURE__ */ new Map(), n.set(e, i)), t && i.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((i, o) => {\n try {\n typeof o == \"function\" ? o(e) : o.handleEvent && o.handleEvent(e), i.once && n.delete(o);\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, i = n.get(e);\n i && t && (i.delete(t), i.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($t = Dt ||= {}).ErrorMessages = $i, $t.Global = new Dt();\nObject.freeze({});\nnew TextDecoder();\nconst _ = 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 return type cannot combine multiple modifiers (e.g. async + stream). */\n MultipleModifiers: \"SXL2007\",\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 ji;\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 i = 0, o = null;\n for (let l = 0; l < n; l++) {\n let s = r.charCodeAt(l);\n if (s >= 48 && s <= 57) {\n if (i === 0 && s === 48) continue;\n i++, i > t && ((o ??= r.split(\"\"))[l] = \"0\");\n } else if ((s === 69 || s === 101) && i > 0) break;\n }\n return o === null ? r : o.join(\"\");\n };\n})(ji ||= {});\nvar Kt, nt, Ki, T, me = {\n Number: \"number\",\n String: \"string\",\n Boolean: \"boolean\",\n Error: \"error\",\n RichData: \"richData\",\n Null: \"null\"\n}, zt = {\n ...me,\n Date: \"date\"\n}, Vt = {\n ...me,\n Reference: \"reference\",\n Array: \"array\",\n Lambda: \"lambda\",\n Omitted: \"omitted\"\n};\n(nt = Kt ||= {}).Axis = {\n Column: \"column\",\n Row: \"row\"\n}, nt.AxisSelection = {\n ...Kt.Axis,\n Both: \"both\"\n}, nt.Direction = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, (Ki ||= {}).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, M, pe, Y) {\n super(pe, Y), this._label = M, this._code = R, this.details = Y;\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 i extends n {\n constructor(R, M) {\n super(t.Parse, r.Parse, R, M);\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 = i;\n class o extends n {\n constructor(R, M) {\n super(t.Null, r.Null, R, M);\n }\n static {\n this.code = T.Code.Null;\n }\n }\n e.Null = o;\n class l extends n {\n constructor(R, M) {\n super(t.Div0, r.Div0, R, M);\n }\n static {\n this.code = T.Code.Div0;\n }\n }\n e.Div0 = l;\n class s extends n {\n constructor(R, M) {\n super(t.Value, r.Value, R, M);\n }\n static {\n this.code = T.Code.Value;\n }\n }\n e.Value = s;\n class c extends n {\n constructor(R, M) {\n super(t.Ref, r.Ref, R, M);\n }\n static {\n this.code = T.Code.Ref;\n }\n }\n e.Ref = c;\n class d extends n {\n constructor(R, M) {\n super(t.Name, r.Name, R, M);\n }\n static {\n this.code = T.Code.Name;\n }\n }\n e.Name = d;\n class m extends n {\n constructor(R, M) {\n super(t.Num, r.Num, R, M);\n }\n static {\n this.code = T.Code.Num;\n }\n }\n e.Num = m;\n class a extends n {\n constructor(R, M) {\n super(t.NA, r.NA, R, M);\n }\n static {\n this.code = T.Code.NA;\n }\n }\n e.NA = a;\n class f extends n {\n constructor(R, M) {\n super(t.GettingData, r.GettingData, R, M);\n }\n static {\n this.code = T.Code.GettingData;\n }\n }\n e.GettingData = f;\n class b extends n {\n constructor(R, M) {\n super(t.Spill, r.Spill, R, M);\n }\n static {\n this.code = T.Code.Spill;\n }\n }\n e.Spill = b;\n class v extends n {\n constructor(R, M) {\n super(t.Connect, r.Connect, R, M);\n }\n static {\n this.code = T.Code.Connect;\n }\n }\n e.Connect = v;\n class A extends n {\n constructor(R, M) {\n super(t.Blocked, r.Blocked, R, M);\n }\n static {\n this.code = T.Code.Blocked;\n }\n }\n e.Blocked = A;\n class U extends n {\n constructor(R, M) {\n super(t.Unknown, r.Unknown, R, M);\n }\n static {\n this.code = T.Code.Unknown;\n }\n }\n e.Unknown = U;\n class h extends n {\n constructor(R, M) {\n super(t.Field, r.Field, R, M);\n }\n static {\n this.code = T.Code.Field;\n }\n }\n e.Field = h;\n class w extends n {\n constructor(R, M) {\n super(t.Calc, r.Calc, R, M);\n }\n static {\n this.code = T.Code.Calc;\n }\n }\n e.Calc = w;\n class S extends n {\n constructor(R, M) {\n super(t.Busy, r.Busy, R, M);\n }\n static {\n this.code = T.Code.Busy;\n }\n }\n e.Busy = S;\n class F extends n {\n constructor(R, M) {\n super(t.Python, r.Python, R, M);\n }\n static {\n this.code = T.Code.Python;\n }\n }\n e.Python = F;\n class z extends n {\n constructor(R, M) {\n super(t.Timeout, r.Timeout, R, M);\n }\n static {\n this.code = T.Code.Timeout;\n }\n }\n e.Timeout = z;\n})(T ||= {});\nvar te = {};\nte[T.Code.Parse] = T.Parse, te[T.Code.Null] = T.Null, te[T.Code.Div0] = T.Div0, te[T.Code.Value] = T.Value, te[T.Code.Ref] = T.Ref, te[T.Code.Name] = T.Name, te[T.Code.Num] = T.Num, te[T.Code.NA] = T.NA, te[T.Code.GettingData] = T.GettingData, te[T.Code.Spill] = T.Spill, te[T.Code.Connect] = T.Connect, te[T.Code.Blocked] = T.Blocked, te[T.Code.Unknown] = T.Unknown, te[T.Code.Field] = T.Field, te[T.Code.Calc] = T.Calc, te[T.Code.Busy] = T.Busy, te[T.Code.Python] = T.Python, te[T.Code.Timeout] = T.Timeout;\nvar Kr = /* @__PURE__ */ new Map(), zr = /* @__PURE__ */ new Map(), Vr = /* @__PURE__ */ new Map(), Xr = /* @__PURE__ */ new Map(), Xt = Object.keys(te);\nfor (let e = 0; e < Xt.length; e++) {\n let t = te[Xt[e]], r = new t();\n Vr.set(r.getLabel(), t), Xr.set(r.getCode(), t), Kr.set(r.getLabel(), r), zr.set(r.getCode(), r);\n}\n(function(e) {\n let t = e.getBuiltInByCode = (r) => zr.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, i) => {\n let o;\n return o = typeof r == \"string\" ? Vr.get(r) : Xr.get(r), o ||= T.Unknown, new o(n, i);\n }, e.getBuiltInByLabel = (r) => Kr.get(r), e.isError = function(r, n) {\n return !!r && r.isFormulaError === !0 && (n === void 0 || r.getCode() === n);\n };\n})(T ||= {});\nvar zi = class {\n createRange(e, t, r) {\n throw new ie();\n }\n flattenAreas(e) {\n throw new ie();\n }\n getReference(e, t) {\n throw new ie();\n }\n getResizedReference(e, t, r) {\n throw new ie();\n }\n getNumberFormat(e, t) {\n throw new ie();\n }\n fromSerialDate(e, t) {\n throw new ie();\n }\n toSerialDate(e, t) {\n throw new ie();\n }\n getDateParts(e, t) {\n throw new ie();\n }\n getSerialDate(e, t, r, n, i, o, l) {\n throw new ie();\n }\n getNow() {\n throw new ie();\n }\n getRandom() {\n return Math.random();\n }\n getValueAt(e, t, r, n) {\n return null;\n }\n getEntireCoords() {\n return Hr;\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 > Xi);\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 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 ie();\n }\n parseAsSerialDate(e, t) {\n throw new ie();\n }\n parseAsDate(e, t) {\n throw new ie();\n }\n parseAsNumber(e, t) {\n throw new ie();\n }\n createCriteria(e, t) {\n throw new ie();\n }\n createGrouping(e, t) {\n throw new ie();\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 = Gt(e), i = Gt(t);\n return n === i ? e < t ? -1 : +(e > t) : n < i ? -1 : 1;\n }\n getRuntime() {\n return Vi;\n }\n getArgs() {\n throw new ie(Gr);\n }\n}, Gt = (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}, Gr = \"FormulaContext.getArgs() is only valid while a function body is running\", ie = class extends Error {\n constructor(e = \"Not implemented in StubbedFormulaContext\") {\n super(e), this.name = \"NotImplementedError\";\n }\n}, Hr = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 2 ** 14 - 1,\n rowEnd: 2 ** 20 - 1\n}), Vi = {\n isDate1904: () => !1,\n getLocale: () => Ht.tag,\n getLocaleProfile: () => Ht,\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}, Xi = 2958465, Pe = new zi(), Gi = class {\n constructor() {\n this._scope = Pe, this._argsFn = null;\n }\n _setScope(e) {\n this._scope = e ?? Pe;\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() ?? Hr;\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) : Pe.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, i = 0, o = 0, l = 0) {\n return this._getScope().getSerialDate(e, t, r, n, i, o, 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: i, columns: o } = n.getShape();\n for (let l = 0; l < i; l++) for (let s = 0; s < o; 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 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) ?? Pe.compare(e, t, r);\n }\n getRuntime() {\n return this._getScope().getRuntime();\n }\n getArgs() {\n let e = this._argsFn, t = e ? e() : null;\n if (!t) throw new ie(Gr);\n return t;\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaContext]\";\n }\n toString() {\n return this._getScope()?.toString?.() ?? \"{STUB SCOPE}\";\n }\n}, Ht = 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 Gi();\nconst Hi = [\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], Wi = (() => {\n const e = /* @__PURE__ */ new Map();\n for (const t of Hi) if (e.set(t.name, t), t.aliases) for (const r of t.aliases) e.set(r, t);\n return e;\n})();\nfunction Ji(e) {\n if (!e) return;\n const t = (e.startsWith(\"@\") ? e.slice(1) : e).toLowerCase();\n return Wi.get(t);\n}\nfunction Yi(e) {\n return Ji(e)?.standalone === !0;\n}\nconst ft = /* @__PURE__ */ new Map([[\"IReferenceRange\", \"p\"], [\"IRange\", \"r\"]]), it = new Set(Object.values(Vt).filter((e) => e !== Vt.Omitted)), yt = /* @__PURE__ */ new Map([\n [\"IWorkbook\", \"workbook\"],\n [\"IWorksheet\", \"sheet\"],\n [\"ICellRanges\", \"ranges\"],\n [\"ICellRange\", \"range\"]\n]), qi = Array.from(yt.keys()), wt = (e, t) => {\n Array.from(t.keys()).forEach((r) => {\n const n = t.get(r);\n t.set(`${e}.${r}`, n);\n });\n}, Zi = /* @__PURE__ */ new Map([\n [\"Scalar\", \"*\"],\n [\"Lambda\", \"l\"],\n [\"FormulaError.Known\", me.Error],\n [\"Date\", zt.Date],\n [\"IRichData\", zt.RichData]\n]), Wr = /* @__PURE__ */ new Map([[\"Repeating\", \"repeating\"]]), Qi = /* @__PURE__ */ new Set([\"Flatten\", \"SheetXL.Flatten\"]), Jr = /* @__PURE__ */ new Set([\"AcceptError\"]), Yr = /* @__PURE__ */ new Set([\"Omittable\"]), qr = /* @__PURE__ */ new Set([\"NoLift\"]), Zr = /* @__PURE__ */ new Set([\"NoFilter\"]), Qr = /* @__PURE__ */ new Set([\"Lazy\"]), pt = /* @__PURE__ */ new Set([\"ReportType\"]), Wt = 255, eo = /^[a-zA-Z_-￿][a-zA-Z0-9_.-￿]*$/, to = /^([a-z]{1,3})([0-9]+)$/i, ro = /^r[0-9]*c[0-9]*$/i, no = (e) => {\n if (ro.test(e)) return !0;\n const t = to.exec(e);\n if (!t) return !1;\n let r = 0;\n for (const i of t[1].toUpperCase()) r = r * 26 + (i.charCodeAt(0) - 64);\n const n = Number(t[2]);\n return r <= 16384 && n >= 1 && n <= 1048576;\n}, se = \"SheetXL\", Ee = (e) => {\n const t = e.typeName.getText();\n return t.startsWith(`${se}.`) ? t.slice(8) : t;\n};\nwt(se, ft);\nwt(se, yt);\nwt(se, Wr);\nJr.add(se + \".AcceptError\");\nYr.add(`${se}.Omittable`);\nqr.add(`${se}.NoLift`);\nZr.add(`${se}.NoFilter`);\nQr.add(`${se}.Lazy`);\npt.add(`${se}.ReportType`);\nconst io = /* @__PURE__ */ new Map([\n [\"Promise\", () => ({ async: !0 })],\n [\"Observable\", () => ({ stream: !0 })],\n [\"Volatile\", () => ({ volatile: !0 })],\n [`${se}.Volatile`, () => ({ volatile: !0 })]\n]), Jt = \"__scriptContext__\", Yt = \"script\", oo = /* @__PURE__ */ new Set([\n \"IScript.ScriptContext\",\n `${se}.IScript.ScriptContext`,\n \"ScriptContext\"\n]), qt = (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}, $e = (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], i = n.kind;\n if (i !== \"link\") {\n if (i === \"linkName\") {\n const o = e[r + 1];\n if (o?.kind === \"linkText\" && o.text.trim()) continue;\n t += n.text;\n continue;\n }\n if (i === \"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 ao(e, t, r, n) {\n const i = n?.builtInNames?.length ? new Set(n.builtInNames.map((u) => u.toUpperCase())) : null, o = [], 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, g, p, E) => {\n const { start: C, length: O } = d(u);\n s.push({\n start: C,\n length: O,\n severity: p,\n code: g,\n message: E\n });\n }, a = (u, g, p) => {\n m(u, g, \"error\", p);\n }, f = (u) => u?.parent?.name?.escapedText, b = (u, g, p, E, C = !1, O = !1, j = !1) => {\n const D = { count: 0 }, $ = Y(u, g, p, E, D, C, O, j);\n D.count >= 2 && (g.range || (g.range = \"m\", D.count -= 2), !E && D.count >= 1 && (D.count -= 1, D.count > 0 && a(u, _.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${f(u)}'.`))), D.count > 0 && (g.arrayDepth = D.count);\n const P = g.enum;\n return P && (D.count > (j ? 1 : 0) || g.range) && !F.has(g) && (g.valueOrRange || (a(u, _.EnumPosition, `A list cannot hold the enum '${P.id}': '${g.name ?? f(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 g.enum)), $;\n }, v = (u, g, p, E, C) => {\n if (g !== \"Lambda\" && g !== `${se}.Lambda`) return !1;\n const O = u.typeArguments;\n let j = \"*\";\n if (O && O.length === 2) if (C && O[0].kind === e.SyntaxKind.TupleType && (p.lambdaArity = O[0].elements.length), O[1].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const D = {};\n Y(O[1], D, E, !1, { count: 0 }), j = D.scalar ?? \"*\";\n }\n else if (O && O.length === 1 && O[0].kind !== e.SyntaxKind.TupleType && O[0].kind !== e.SyntaxKind.ArrayType) if (C && (p.lambdaArity = 2), O[0].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const D = {};\n Y(O[0], D, E, !1, { count: 0 }), j = D.scalar ?? \"*\";\n }\n return p.lambda = j, !0;\n }, A = (u, g, p, E) => {\n if (!E) {\n a(u, _.FunctionReturn, `Function type is not a valid return type: '${f(u)}'. Declare a 'Lambda' return instead.`);\n return;\n }\n const C = u.type, O = {};\n let j = \"*\";\n C && (C.kind === e.SyntaxKind.AnyKeyword ? j = \"raw\" : (Y(C, O, p, !1, { count: 0 }), j = O.scalar ?? \"*\"));\n const D = u.parameters;\n D && !D.some(($) => $.dotDotDotToken) && (g.lambdaArity = D.length), g.lambda = j;\n }, U = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map(), S = /* @__PURE__ */ new Set(), F = /* @__PURE__ */ new WeakSet(), z = (u) => u !== void 0 && u.getSourceFile() === t, L = (u, g = !1) => {\n return u.getJsDocTags(r).find((E) => E.name === \"name\")?.text?.map((E) => E.text).join(\"\").trim() || (g ? nr.camelToPrettyCase(u.name) : u.name);\n }, R = (u) => {\n const g = u.getJsDocTags(r).find((p) => p.name === \"deprecated\");\n if (g) return g.text?.map((p) => p.text).join(\"\").trim() || !0;\n }, M = (u, g) => {\n const p = e.isTypeReferenceNode(u) ? u.typeName : void 0, E = p ? r.getSymbolAtLocation(p) : void 0, C = E?.declarations?.length ? E : void 0;\n if (p) {\n if (C && C.flags & e.SymbolFlags.Alias) {\n a(u, _.EnumNotLocal, `'${p.getText()}' is imported, so its declaration cannot be read: '${g}'. 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 = p.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, _.EnumMissingAlias, `'${x}' is a value, not a type: '${g}'. 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 y = U.get(C);\n if (y !== void 0) return y;\n if (S.has(C)) return;\n }\n const O = [];\n let j = !1;\n if (C && C.flags & e.SymbolFlags.Enum) {\n if (!C.declarations?.some(z)) {\n a(u, _.EnumNotLocal, `'${C.name}' is not declared in this module: '${g}'. An enum must be declared in the module that uses it.`);\n return;\n }\n j = !0;\n let y = !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, _.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.`), y = !0;\n return;\n }\n O.push([\n L(x, !0),\n V,\n I,\n $e(x.getDocumentationComment(r)),\n R(x)\n ]);\n }), y) {\n S.add(C);\n return;\n }\n } else {\n const y = r.getTypeFromTypeNode(u), x = e.TypeFlags.Null | e.TypeFlags.Undefined | e.TypeFlags.Void, I = (y.isUnion() ? y.types : [y]).filter((B) => !(B.flags & x)), V = [];\n for (const B of I) {\n if (!(B.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) return C && U.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)), q = e.isUnionTypeNode(u) ? u : re?.type;\n if (q && e.isUnionTypeNode(q)) {\n const B = q.types.map((N) => {\n const ne = r.getTypeFromTypeNode(N);\n return ne.isLiteral() ? ne.value : void 0;\n }), k = (N) => {\n const ne = B.indexOf(N);\n return ne < 0 ? B.length : ne;\n };\n V.sort((N, ne) => k(N) - k(ne));\n }\n const ee = C && C.flags & e.SymbolFlags.Variable ? C.valueDeclaration : void 0, he = new Set(V);\n if (C && ee && z(ee)) for (const B of r.getTypeOfSymbolAtLocation(C, ee).getProperties()) {\n const k = B.valueDeclaration, N = r.getTypeOfSymbolAtLocation(B, k ?? ee);\n if (!(N.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) continue;\n const ne = N.value;\n V.includes(ne) && (j = !0, he.delete(ne), O.push([\n L(B, !0),\n ne,\n k,\n $e(B.getDocumentationComment(r)),\n R(B)\n ]));\n }\n for (const B of V) he.has(B) && O.push([\n String(B),\n B,\n void 0,\n null\n ]);\n }\n if (O.length === 0) return null;\n const D = typeof O[0][1] == \"number\";\n if (O.some(([, y]) => typeof y == \"number\" !== D)) {\n a(u, _.EnumMixed, `'${C?.name ?? u.getText()}' mixes number and string members: '${g}'. A parameter has one type, so an enum is all numbers or all strings.`);\n return;\n }\n const $ = C ? L(C) : O.map(([, y]) => String(y)).join(\"|\"), P = C ? void 0 : h.get($);\n if (P) return P;\n if (j) {\n const y = /* @__PURE__ */ new Map();\n for (const [x, I, V, re] of O) {\n const q = V?.name?.getText() ?? x, ee = y.get(I);\n ee !== void 0 ? m(V ?? u, _.EnumDuplicateValue, \"warning\", `'${$}.${q}' has the same value as '${$}.${ee}' (${JSON.stringify(I)}). A formula passes the value, so the two cannot be told apart.`) : y.set(I, q), re === \"\" && m(V ?? u, _.EnumMemberUndocumented, \"warning\", `'${$}.${q}' 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: D ? me.Number : me.String,\n members: O.map(([y, x, , , I]) => I ? [\n y,\n x,\n I\n ] : [y, x])\n };\n C ? U.set(C, G) : h.set($, G);\n const X = C ? $e(C.getDocumentationComment(r)) : \"\", K = {};\n for (const [y, , , x] of O) x && (K[y] = { description: x });\n if (X || Object.keys(K).length > 0) {\n const y = {};\n X && (y.summary = X), Object.keys(K).length > 0 && (y.members = K), w.set(G, y);\n }\n return G;\n }, pe = (u, g, p, E) => {\n const C = (D, $, P) => {\n const G = { name: D };\n return b($, G, p, !0), P && (G.optional = !0), E && !G.acceptError && (G.acceptError = !0), G;\n };\n if (u.kind !== e.SyntaxKind.TupleType) return [C(g, u, !1)];\n const O = u.elements;\n if (O.length < 2) return a(u, _.RepeatingSlots, `'${g}': a repeating group of period ${O.length} must be spelled 'Repeating<T>' without the tuple.`), null;\n const j = [];\n for (let D = 0; D < O.length; D++) {\n const $ = O[D];\n if ($.kind !== e.SyntaxKind.NamedTupleMember) return a($, _.RepeatingSlots, `'${g}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;\n const P = !!$.questionToken;\n if (P && D !== O.length - 1) return a($, _.RepeatingOptional, `'${g}': only the LAST slot of a repeating group may be optional (slot '${$.name?.getText?.()}' is not).`), null;\n j.push(C($.name?.getText?.() ?? `${D}`, $.type, P));\n }\n return j;\n }, Y = (u, g, p, E, C, O = !1, j = !1, D = !1) => {\n if (!u) {\n a(u, _.MissingType, `Type is not defined for '${g?.name ?? \"return\"}'.`);\n return;\n }\n if (u.kind === e.SyntaxKind.ParenthesizedType) return Y(u.type, g, p, E, C, O, j, D);\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 Y(P[0], g, p, E, C, O, j, D);\n const G = M(u, g.name ?? f(u));\n if (G === void 0) return;\n if (G !== null) {\n g.scalar = G.type, E && (g.enum = G);\n return;\n }\n if (!E) {\n g.scalar = \"*\";\n return;\n }\n if (P.length === 2) {\n const X = (y) => y.kind !== e.SyntaxKind.TypeReference ? !1 : e.isTypeReferenceNode(y) && Ee(y) === \"Lambda\", K = P.findIndex(X);\n if (K >= 0 && !X(P[1 - K])) {\n Y(P[1 - K], g, p, E, C, O, j, D), v(P[K], Ee(P[K]), g, p, E);\n return;\n }\n }\n if (E && P.length === 2) {\n const X = (y) => {\n if (!(y.kind !== e.SyntaxKind.TypeReference || y.typeArguments?.length)) return ft.get(Ee(y));\n }, K = P.findIndex((y) => X(y) !== void 0);\n if (K >= 0 && X(P[1 - K]) === void 0) {\n const y = {}, x = C.count;\n if (Y(P[1 - K], y, p, E, C, O, !1), y.scalar && !y.range && y.lambda == null && C.count === x) {\n g.range = X(P[K]), g.scalar = y.scalar, g.valueOrRange = !0;\n const I = y.enum;\n I && (g.enum = I);\n return;\n }\n }\n }\n if (E && P.length === 2) {\n const X = (y) => y.kind === e.SyntaxKind.TypeReference && !y.typeArguments?.length && Ee(y) === \"Scalar\", K = P.findIndex(X);\n if (K >= 0 && !X(P[1 - K])) {\n const y = M(P[1 - K], g.name ?? f(u));\n if (y === void 0) return;\n if (y !== null) {\n g.scalar = \"*\", g.enum = y;\n return;\n }\n }\n }\n a(u, _.InvalidParamType, `Union parameter types are not supported: '${f(u)}'. Use a single type, optionally with '| null' or '| undefined', 'T | Lambda<…>' for a value-or-lambda slot, 'IRange | Scalar' for a value-or-range slot, or 'E | Scalar' for an uncoerced slot whose values an enum documents.`);\n return;\n }\n if (u.kind === e.SyntaxKind.NumberKeyword) g.scalar = me.Number;\n else if (u.kind === e.SyntaxKind.StringKeyword) g.scalar = me.String;\n else if (u.kind === e.SyntaxKind.BooleanKeyword) g.scalar = me.Boolean;\n else if (u.kind === e.SyntaxKind.UndefinedKeyword || u.kind === e.SyntaxKind.NullKeyword || u.kind === e.SyntaxKind.VoidKeyword) {\n if (E) {\n a(u, _.UndefinedInput, `'undefined' is not a valid type for input: '${f(u)}'.`);\n return;\n }\n g.scalar = me.Null;\n } else if (u.kind === e.SyntaxKind.BigIntKeyword) g.scalar = me.Number;\n else if (u.kind === e.SyntaxKind.AnyKeyword) E && (g.range = \"*\");\n else if (u.kind === e.SyntaxKind.ArrayType) {\n const $ = u.elementType;\n if (!$) {\n a(u, _.UntypedArray, `'Array' must be typed: '${f(u)}'.`);\n return;\n }\n if (E && j) {\n const P = g, G = P.name ?? f(u) ?? \"parameter\", X = P.acceptError;\n delete P.acceptError;\n const K = { name: G };\n b($, K, p, !0), X && !K.acceptError && (K.acceptError = !0), P.repeating = [K];\n return;\n }\n C.count++, Y($, g, p, E, C);\n } else if (u.kind !== e.SyntaxKind.TupleType) if (u.kind === e.SyntaxKind.TypeReference) {\n const $ = Ee(u);\n if (Jr.has($)) {\n const y = f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'${$}' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = g;\n if (x.acceptError) {\n a(u, _.InvalidParamType, `'${y}' declares 'AcceptError' more than once.`);\n return;\n }\n const I = u.typeArguments;\n if (!I || I.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${y}'.`);\n return;\n }\n return x.acceptError = !0, Y(I[0], g, p, E, C, O, j, D);\n }\n if (pt.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'ReportType' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${y}'.`);\n return;\n }\n return g.reportType = !0, Y(x[0], g, p, E, C, O, j, D);\n }\n if (qr.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'NoLift' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${y}'.`);\n return;\n }\n const I = g;\n I.noLift = !0;\n const V = C.count;\n Y(x[0], g, p, E, C, O, j, D), (I.range || I.lambda != null || I.repeating || C.count !== V) && a(u, _.InvalidParamType, `'${y}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);\n return;\n }\n if (Zr.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'NoFilter' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${y}'.`);\n return;\n }\n const I = g;\n I.noFilter = !0;\n const V = C.count;\n if (Y(x[0], g, p, E, C, O, j, D), I.range || I.lambda != null || C.count !== V) {\n a(u, _.InvalidParamType, `'${y}': '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, _.InvalidParamType, `'${y}': '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 j && a(u, _.InvalidParamType, `'${y}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);\n return;\n }\n if (Yr.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'Omittable' is not a valid return type: '${y}'. 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, _.GenericArity, `'${$}' must be typed with 1 or 2 types: '${y}'.`);\n return;\n }\n const I = g;\n if (I.omittable = !0, x.length === 2) {\n const q = qt(e, x[1]);\n if (q === void 0) {\n a(u, _.InvalidParamType, `'${y}' 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 = q;\n }\n const V = Y(x[0], g, p, E, C, O, j, D), re = I.omittedValue;\n return I.enum && re !== void 0 && re !== null && !I.enum.members.some(([, q]) => q === re) && a(x[1], _.EnumOmittedValue, `'${y}': ${JSON.stringify(re)} is not a member of '${I.enum.id}'. An omitted argument must mean a member (${I.enum.members.map(([, q]) => JSON.stringify(q)).join(\", \")}) or null.`), V;\n }\n if (Qr.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'Lazy' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = g;\n if (x.lazy) {\n a(u, _.InvalidParamType, `'${y}' 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, _.GenericArity, `'${$}' must be typed with 1 or 2 types: '${y}'.`);\n return;\n }\n if (x.lazy = !0, I.length === 2) {\n const V = qt(e, I[1]);\n if (V === void 0) {\n a(u, _.InvalidParamType, `'${y}' 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 Y(I[0], g, p, E, C, O, j, D), x.enum ? (a(u, _.EnumPosition, `'${y}': '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, _.InvalidParamType, `'${y}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.`) : x.repeating && a(u, _.InvalidParamType, `'${y}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);\n return;\n }\n if (Qi.has($)) {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.InvalidReturnType, `'Flatten' is not a valid return type: '${y}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const x = u.typeArguments;\n if (!x || x.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${y}'.`);\n return;\n }\n return C.count++, Y(x[0], g, p, E, C, O);\n }\n if (Wr.get($) === \"repeating\") {\n const y = g.name ?? f(u);\n if (!E) {\n a(u, _.RepeatingPosition, `'Repeating' is not a valid return type: '${y}'.`);\n return;\n }\n if (C.count !== 0) {\n a(u, _.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${y}'.`);\n return;\n }\n const x = g, I = u.typeArguments;\n if (!I || I.length < 1 || I.length > 2) {\n a(u, _.GenericArity, `'${$}' must be typed with 1 type, optionally followed by a maximum argument count: '${y}'.`);\n return;\n }\n let V;\n if (I.length === 2) {\n const ee = I[1], he = ee.kind === e.SyntaxKind.LiteralType ? ee.literal : null, B = he && he.kind === e.SyntaxKind.NumericLiteral ? Number(he.text) : NaN;\n if (!Number.isInteger(B) || B < 1 || B > Wt) {\n a(ee, _.RepeatingMax, `'${y}': '${$}'’s maximum must be a whole number between 1 and ${Wt}.`);\n return;\n }\n V = B, p.maxArguments = B;\n }\n if (D) {\n if (V === void 0) {\n a(u, _.RepeatingPosition, `'${y}' 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 Y(I[0], g, p, E, C, O, j);\n }\n const re = x.acceptError;\n delete x.acceptError;\n const q = pe(I[0], y ?? \"parameter\", p, re);\n q && (x.repeating = q);\n return;\n }\n const P = ft.get($);\n let G = !1;\n P && (g.range = P, G = !0);\n const X = Zi.get($);\n if (X && (g.scalar = X), X !== void 0 && (G = !0), v(u, $, g, p, E)) return;\n if (E) {\n if ($ === \"Volatile\" || $ === `${se}.Volatile`) {\n a(u, _.InvalidParamType, `'Volatile' is not a valid parameter type: '${f(u)}'. It describes the function's RESULT, so it belongs on the return type.`);\n return;\n }\n if (oo.has($)) return Jt;\n const y = yt.get($);\n if (y) return y;\n } else {\n const y = io.get($);\n if (y) {\n const x = Object.assign(g, y());\n let I = 0;\n if (x.async && I++, x.stream && I++, I > 1) {\n a(u, _.MultipleModifiers, `'${$}' cannot have multiple modifiers: '${f(u)}'.`);\n return;\n }\n G = !0;\n }\n }\n if (!G) {\n const y = M(u, g.name ?? f(u));\n if (y === void 0) return;\n if (y !== null) {\n g.scalar = y.type, E && (g.enum = y);\n return;\n }\n }\n if (!G) {\n const y = \"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, Promise<T>, Observable<T>, Volatile<T> (and arrays of these)\";\n let I;\n E ? O ? I = `'${$}' is not a valid first parameter: '${f(u)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${qi.join(\", \")} (macro target); ${y} (calculation input).` : I = `'${$}' is not a valid parameter type: '${f(u)}'. Allowed: ${y}.` : I = `'${$}' is not a valid return type: '${f(u)}'. Allowed: ${x}.`, a(u, E ? _.InvalidParamType : _.InvalidReturnType, I);\n return;\n }\n const K = u.typeArguments;\n if (K) {\n if (K.length !== 1) {\n a(u, _.GenericArity, `'${$}' must be typed with exactly 1 type: '${f(u)}'.`);\n return;\n }\n const y = K[0], x = E && e.isTypeReferenceNode(y) && pt.has(Ee(y)), I = g.reportType;\n x && F.add(g), b(y, g, p, E), x && I === void 0 && delete g.reportType;\n const V = g.enum;\n V && !x && (a(K[0], _.EnumPosition, `'${$}' cannot hold the enum '${V.id}': '${f(u)}'. The members of a range reach the body as they are, so nothing checks them against the enum. Take the enum as a value, or type the range by its scalar ('${$}<${V.type}>').`), delete g.enum);\n }\n } else u.kind === e.SyntaxKind.FunctionType && A(u, g, p, E);\n }, We = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Export) !== 0, Je = (u) => (e.getCombinedModifierFlags(u) & e.ModifierFlags.Default) !== 0;\n try {\n e.forEachChild(t, (u) => {\n if (We(u) && e.isFunctionDeclaration(u)) {\n const g = u?.name?.getText();\n if (!u.body) {\n a(u, _.NoBody, `'${g}': function has no body.`);\n return;\n }\n if (!g) {\n a(u, _.Anonymous, \"Anonymous exported functions are not allowed.\");\n return;\n }\n const p = {}, E = { parameters: {} };\n try {\n p.name = g;\n const C = r.getSymbolAtLocation(u.name), O = $e(C?.getDocumentationComment(r));\n O && (E.summary = O);\n const j = {};\n b(u.type, j, p, !1), p.returnType = j;\n const D = {};\n Je(u) && (D.default = !0, c = g), p.parameters = [];\n const $ = /* @__PURE__ */ new Map(), P = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Set();\n let X = null, K = null, y = null, x = 0, I = !1, V = 0;\n for (let B = 0; B < u.parameters.length; B++) {\n const k = u.parameters[B], N = {};\n N.name = k.name?.getText();\n const ne = p.parameters.length === 0;\n if (n?.lenient && B === 0 && !k.type && D.default) {\n p.context = Yt;\n continue;\n }\n const Ie = b(k.type, N, p, !0, ne, !k.dotDotDotToken, !!k.dotDotDotToken);\n if (Ie === Jt) {\n B === 0 && p.context === void 0 && (p.context = Yt);\n continue;\n }\n if (Ie) {\n if (p.parameters.length !== 0) {\n a(k, _.ContextNotFirst, `'${p.name}' contexts must be the first parameter: '${N.name}'.`);\n return;\n }\n p.context = Ie;\n continue;\n }\n if (N.lambda !== void 0) {\n if (X !== null) {\n a(k, _.MultipleLambda, `'${p.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(k, _.LambdaNotLast, `'${p.name}' Lambda parameter ('${X}') must be the last parameter, but '${N.name}' follows it.`);\n return;\n }\n const ye = N.optional === !0 || !((k.initializer === void 0 || k.initializer === null) && (k.questionToken === void 0 || k.questionToken === null));\n let ae;\n if (ye && (N.optional = !0, k.initializer)) try {\n if (k.initializer.kind === e.SyntaxKind.StringLiteral) ae = k.initializer.text;\n else if (k.initializer.kind === e.SyntaxKind.NumericLiteral) ae = parseFloat(k.initializer.text);\n else if (k.initializer.kind === e.SyntaxKind.TrueKeyword || k.initializer.kind === e.SyntaxKind.FalseKeyword) ae = k.initializer.kind === e.SyntaxKind.TrueKeyword;\n else if (k.initializer.kind === e.SyntaxKind.NullKeyword) ae = null;\n else if (e.isPrefixUnaryExpression(k.initializer) && k.initializer.operator === e.SyntaxKind.MinusToken && k.initializer.operand.kind === e.SyntaxKind.NumericLiteral) ae = -parseFloat(k.initializer.operand.text);\n else if (e.isPropertyAccessExpression(k.initializer) || e.isElementAccessExpression(k.initializer)) {\n const ue = r.getTypeAtLocation(k.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 k.dotDotDotToken && (N.rest = !0);\n const H = N.repeating;\n if (H) {\n if (N.rest) {\n a(k, _.RepeatingPosition, `'${p.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(k, _.RepeatingOptional, `'${p.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 (K !== null) {\n a(k, _.MultipleRepeating, `'${p.name}' has more than one repeating group ('${K}' and '${N.name}'). Only one is allowed — two would make the argument count ambiguous.`);\n return;\n }\n if (y !== null) {\n a(k, _.RepeatingOptional, `'${p.name}' parameter '${y}' is optional and precedes the repeating group '${N.name}'. Every parameter outside a group must be required.`);\n return;\n }\n K = N.name, x = H.length, I = H[H.length - 1].optional === !0;\n } else if (K !== null && N.rest) {\n a(k, _.RepeatingOptional, `'${p.name}' parameter '${N.name}' is a rest parameter and follows the repeating group '${K}'. Two variadic tails would make the argument count ambiguous.`);\n return;\n } else if (K !== null && ye) {\n if (V >= x - 1) {\n a(k, _.RepeatingOptional, x === 1 ? `'${p.name}' parameter '${N.name}' is optional and follows the period-1 repeating group '${K}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.` : `'${p.name}' has ${V + 1} optional parameters after the repeating group '${K}', 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(k, _.RepeatingOptional, `'${p.name}' parameter '${N.name}' is optional and follows '${K}', 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 && (y = N.name);\n const W = (N.range ? 2 : 0) + (N.arrayDepth ?? 0), De = N.range === \"r\" || N.range === \"p\" || N.range === \"*\", Q = N.rest || De ? 3 : 2;\n if (W > Q) {\n a(k, _.ArrayDepth, `'${p.name}' parameter '${N.name}' has an array depth of ${W}; the maximum is ${Q}${N.rest ? \" for a rest parameter\" : \" (use a rest parameter for one more level, or an IRange)\"}.`);\n return;\n }\n p.parameters.push(N);\n const ce = { description: \"\" };\n E.parameters[N.name] = ce;\n const Ye = r.getSymbolAtLocation(k.name);\n ce.description = $e(Ye?.getDocumentationComment(r)), ae !== void 0 && (N.defaultValue = ae);\n for (const ue of [N, ...N.repeating ?? []]) {\n const we = ue.enum ? w.get(ue.enum) : void 0;\n we && ((E.enums ??= {})[ue.enum.id] = we);\n }\n if ($.set(N.name, N), P.set(N.name, k), H && H.length > 1) {\n G.add(N.name);\n for (const ue of H) {\n const we = `${N.name}.${ue.name}`;\n E.parameters[we] = { description: \"\" }, $.set(we, ue), P.set(we, k);\n }\n }\n }\n const re = p.maxArguments;\n if (re !== void 0) {\n const B = p.parameters ?? [];\n if (!B.some((N) => N.rest === !0 || N.repeating !== void 0)) {\n a(u, _.RepeatingMax, `'${p.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 k = 0;\n for (const N of B) N.rest === !0 || N.optional === !0 || (k += N.repeating ? N.repeating.length : 1);\n if (re < k) {\n a(u, _.RepeatingMax, `'${p.name}' declares a maximum of ${re} arguments but requires ${k}.`);\n return;\n }\n }\n if (u.jsDoc && u.jsDoc.length > 0) {\n const B = u.jsDoc, k = B.length;\n for (let N = 0; N < k; N++) {\n const ne = B[N]?.tags;\n if (!ne) continue;\n const Ie = ne.length;\n for (let ye = 0; ye < Ie; 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 De = Yi(H);\n if (typeof W != \"string\" && !De) {\n H === \"returnkind\" && a(ae, _.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...it].map((Q) => `'${Q}'`).join(\", \")}.`);\n continue;\n }\n if (typeof W == \"string\" && (W = W.replace(/\\r\\n?/g, `\n`).trim()), !(!De && W && (W = W.split(`\n`)[0].trim(), !W || W.length === 0))) {\n if (W && typeof W == \"string\") {\n const Q = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let ce, Ye = W, ue = [];\n for (; (ce = Q.exec(W)) !== null;) {\n const [we, xo, nn, St] = ce, on = [nn.trim()];\n St && on.push(St.trim());\n }\n W = Ye, ue.length > 0 && H === \"see\" && (E.links || (E.links = []), E.links.push(...ue));\n }\n if (H === \"name\") {\n const Q = W;\n Q !== g && (E.name = Q);\n } else if (H !== \"description\") {\n if (H === \"param\") {\n const Q = ae.name?.getText?.() ?? ae.name?.text;\n if (!$.get(Q)) {\n a(ae, _.UnknownParam, `Parameter '${Q}' not found in function '${g}'.`);\n continue;\n }\n const ce = E.parameters?.[Q];\n ce && !ce.description && typeof W == \"string\" && W && (ce.description = W);\n } else if (H === \"returns\" || H === \"return\") p.returnType.description = W;\n else if (H === \"returnkind\") {\n const Q = (W ?? \"\").trim().toLowerCase();\n it.has(Q) ? p.returnType.kind = Q : a(ae, _.UnknownReturnKind, `'@returnKind ${Q}' is not a known value kind. Known: ${[...it].map((ce) => `'${ce}'`).join(\", \")}.`);\n } else if (H === \"category\") E.category = W;\n else if (H === \"deprecated\" || H === \"hidden\") {\n let Q = !0;\n const ce = W?.toLowerCase();\n ce === \"false\" ? Q = !1 : ce !== \"true\" && (Q = W), Q !== !1 && (E.deprecated = Q ?? !0, p.hidden = !0);\n }\n }\n }\n }\n }\n }\n Object.keys(p.returnType).length === 0 && delete p.returnType, Object.keys(D).length > 0 && (p.behavior = D), E.summary || m(u.name ?? u, _.MissingSummary, \"warning\", `'${g}': missing a description. Add a JSDoc comment above the function.`);\n const q = !p.context, ee = q && E.name || g;\n if (q && !eo.test(ee)) {\n const B = E.name ? `'@name ${E.name}'` : `'${ee}'`;\n a(u.name ?? u, _.InvalidName, `'${g}': ${B} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.` + (E.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n if (q && !n?.isBuiltIn && no(ee)) {\n const B = E.name ? `'@name ${E.name}'` : `'${ee}'`;\n a(u.name ?? u, _.InvalidName, `'${g}': ${B} cannot be called from a formula. It reads as a cell address.` + (E.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n const he = l.get(ee.toUpperCase());\n if (he !== void 0) {\n a(u.name ?? u, _.DuplicateName, `'${g}': '${ee}' is already the name of '${he}' in this module.`);\n return;\n }\n if (l.set(ee.toUpperCase(), g), q && i?.has(ee.toUpperCase())) {\n a(u.name ?? u, _.BuiltInName, `'${ee}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);\n return;\n }\n if (q) {\n const B = E.parameters ?? {};\n for (const [k, N] of Object.entries(B)) if (!G.has(k) && !N.description) {\n const ne = P.get(k);\n m(ne, _.MissingParamDescription, \"warning\", `'${g}': parameter '${k}' is missing a description. Add an '@param ${k}' tag.`);\n }\n }\n o.push([p, E]);\n } catch (C) {\n a(u, _.ParseError, `'${g}': ${C.message}`);\n }\n }\n });\n } catch (u) {\n a(void 0, _.ParseError, `Unable to analyze module: ${u?.message ?? u}`);\n }\n return {\n functions: o,\n autoRun: c,\n diagnostics: s\n };\n}\nconst Ge = \"__SHEETXL\";\nvar lo = /* @__PURE__ */ rr({ initialize: () => so });\nasync function so() {\n return xe || (xe = new Promise(async (e, t) => {\n try {\n const r = \"0.20.2\", n = `https://esm.sh/esbuild-wasm@${r}`, i = `https://esm.sh/esbuild-wasm@${r}/esbuild.wasm`, o = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n n\n)).default;\n await o.initialize({\n wasmURL: i,\n worker: !1\n }), e(o);\n } catch (r) {\n console.error(\"Error initializing esbuild:\", r), xe = null, t(new Error(\"The script bundler could not be loaded. Check your connection and try again.\", { cause: r }));\n }\n }), xe);\n}\nvar xe, co = tr((() => {\n xe = null;\n}));\nlet _e = null, je = null;\nasync function uo() {\n if (_e) return _e;\n if (je) {\n if (await je, !_e) throw new Error(\"ESBuild initialization promise resolved, but instance is not available.\");\n return _e;\n }\n let e, t;\n je = new Promise((r, n) => {\n e = r, t = n;\n });\n try {\n const { initialize: r } = await Promise.resolve().then(() => (co(), lo));\n return _e = await r(), e(), _e;\n } catch (r) {\n throw console.error(\"Failed to import or initialize esbuild:\", r), je = null, t(r), r;\n }\n}\nconst fo = { compilerOptions: { target: \"esnext\" } };\nasync function po(e, t, r = \"/script.js\", n = Ge, i = !1) {\n try {\n const o = await uo(), 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 o.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 f;\n if (a.path === r) f = t;\n else if (a.path === l) f = s;\n else return { errors: [{ text: `Cannot load unknown path in ${m}: ${a.path}` }] };\n return {\n contents: f,\n loader: \"ts\"\n };\n });\n }\n }],\n sourcemap: \"inline\",\n tsconfigRaw: fo,\n minify: i,\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 (o) {\n throw console.error(\"esbuild bundling process failed:\", o), o;\n }\n}\nfunction mo(e, t, r) {\n return (n) => {\n const i = n.factory, o = () => i.createExpressionStatement(i.createCallChain(i.createPropertyAccessExpression(i.createIdentifier(Ge), \"checkRun\"), i.createToken(e.SyntaxKind.QuestionDotToken), void 0, [i.createStringLiteral(t), i.createNumericLiteral(r)])), l = (a) => {\n const f = a.statements;\n let b = 0;\n for (; b < f.length && e.isExpressionStatement(f[b]) && e.isStringLiteral(f[b].expression);) b++;\n return i.updateBlock(a, [\n ...f.slice(0, b),\n o(),\n ...f.slice(b)\n ]);\n }, s = (a) => e.isBlock(a) ? l(a) : i.createBlock([o(), a], !0), c = (a) => e.isBlock(a) ? l(a) : i.createBlock([o(), i.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 f = a.statement;\n return e.visitEachChild(a, (b) => {\n const v = m(b);\n return b === f ? s(v) : v;\n }, n);\n }\n if (e.isFunctionLike(a) && a.body) {\n const f = a.body;\n return e.visitEachChild(a, (b) => {\n const v = m(b);\n return b === f ? c(v) : v;\n }, n);\n }\n return e.visitEachChild(a, m, n);\n };\n return (a) => e.visitNode(a, m);\n };\n}\nconst Zt = \"//# sourceMappingURL\";\nvar en = /* @__PURE__ */ rr({\n initialize: () => ho,\n readLibFile: () => go\n});\nasync function ho() {\n return Te || (Te = 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\"), Te = null), e(r);\n }), Te);\n}\nfunction go(e, t) {}\nvar Te, tn = tr((() => {\n Te = null;\n}));\nconst yo = `\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`, wo = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, So = async () => wo;\nlet Ke = null;\nconst ot = \"sheetxl.d.ts\", Qt = \"sheetxl-modules.d.ts\", bo = `declare module '@sheetxl/primitives' { export = SheetXL; }\n`, vo = [\n \"lib.webworker.d.ts\",\n \"lib.es2020.d.ts\",\n \"lib.esnext.asynciterable.d.ts\"\n], er = /* @__PURE__ */ new Map();\nlet at = null, lt = null;\nasync function Eo() {\n return lt || (lt = Promise.resolve().then(() => (tn(), en)).then(async (e) => {\n const t = await rn();\n return e.readLibFile(t, \"lib.es5.d.ts\") !== void 0 ? e.readLibFile : null;\n })), lt;\n}\nasync function rn() {\n if (Ke) return Ke;\n try {\n const e = await (await Promise.resolve().then(() => (tn(), en))).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 Ke = null, e;\n } finally {\n Ke = null;\n }\n}\nasync function _o(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, i, o] = await Promise.all([\n So(),\n rn(),\n e.ambientTypes ? Eo() : null\n ]), l = o ? 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: i.ScriptTarget.ES2020,\n ...l ? {\n lib: vo,\n skipLibCheck: !0,\n strict: !0\n } : {}\n }, d = \"script\", m = `${d}.ts`, a = \"lib.d.ts\", f = \"global.d.ts\", b = {\n [m]: t,\n [a]: yo,\n [f]: n,\n ...l ? {\n [ot]: l,\n [Qt]: bo\n } : {}\n }, v = (p) => b[p] ?? (o && p.startsWith(\"lib.\") ? o(i, p) : void 0), A = {\n getSourceFile: (p, E, C, O) => {\n if (p === ot) return at?.text !== l && (at = {\n text: l,\n file: i.createSourceFile(p, l, i.ScriptTarget.Latest, !1)\n }), at.file;\n if (b[p] === void 0) {\n let j = er.get(p);\n if (!j) {\n const D = v(p);\n if (D === void 0) return;\n j = i.createSourceFile(p, D, i.ScriptTarget.Latest, !1), er.set(p, j);\n }\n return j;\n }\n return i.createSourceFile(p, b[p], i.ScriptTarget.Latest, !0);\n },\n fileExists: (p) => v(p) !== void 0,\n readFile: v,\n writeFile: (p, E) => {\n b[p] = E;\n },\n getCurrentDirectory: () => \"./\",\n getCanonicalFileName: (p) => p,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (p) => a,\n getNewLine: () => `\n`\n }, U = i.createProgram([\n m,\n f,\n ...l ? [ot, Qt] : []\n ], c, A), h = U.getTypeChecker(), w = U.getSourceFile(m), S = e.runGuard;\n U.emit(void 0, void 0, void 0, void 0, S ? { before: [mo(i, S.key, S.timeoutMs)] } : void 0), s = b[`${d}.js`] ?? \"\";\n const F = (p) => ({\n start: p.start ?? 0,\n length: p.length ?? 0,\n severity: p.category === i.DiagnosticCategory.Warning ? \"warning\" : \"error\",\n code: `TS${p.code}`,\n message: i.flattenDiagnosticMessageText(p.messageText, `\n`)\n }), z = U.getSyntacticDiagnostics(w).map(F), L = l ? U.getSemanticDiagnostics(w).filter((p) => p.category === i.DiagnosticCategory.Error || p.category === i.DiagnosticCategory.Warning).map(F) : [], R = ao(i, w, h, {\n builtInNames: e.builtInNames,\n isBuiltIn: e.isBuiltIn,\n lenient: e.lenient\n });\n let M = [\n ...z,\n ...L,\n ...R.diagnostics\n ];\n e.lenient && (M = M.filter((p) => p.code !== _.MissingType));\n const pe = R.functions, Y = R.autoRun, We = M.some((p) => p.severity === \"error\"), Je = `${nr.uuidV4()}-script`;\n let u = null;\n if (We) s = \"\";\n else {\n try {\n r || (s = await po(i, s, d, void 0, e.minify ?? !1));\n } catch {\n console.warn(\"Error bundling script\");\n }\n const p = s.indexOf(Zt);\n p > -1 && (u = s.substring(p + 20 + 1, s.length), s = s.substring(0, p), s = s.replaceAll(\"globalThis.\" + Ge, Ge));\n }\n const g = {\n functions: pe,\n commitId: Je,\n source: t,\n language: \"typescript\",\n compiled: s\n };\n return u && (g.sourceMap = u), Y && (g.autoRun = Y), {\n module: g,\n diagnostics: M\n };\n}\nself.addEventListener(\"message\", async (e) => {\n const { id: t, params: r } = e.data;\n try {\n const n = await _o(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("./Ub7lo1Zsgc4OkWHw.mjs"), n = new t((t) => e(t));
87
+ return await n.start(), n;
88
+ };
89
+ export { a as createCompilerWorker };
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.11
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
+ import { A as e } from "./PD_ckP5IyZurtALu.mjs";
8
+ import { r as t } from "./CBRVZmrwcMfEHc5P.mjs";
9
+ import { n } from "./BLoUmwvJ5t1eBdZ8.mjs";
10
+ var r = t({
11
+ MAX_WORKBOOK_NAME_SIZE: () => 96,
12
+ isReservedFileNameChar: () => o,
13
+ isValidFileName: () => s
14
+ }), i = /^(con|prn|aux|nul|com\d|lpt\d)$/i, a = /[<>:"/\\|?*\u0000-\u001F]/, o = (e) => a.test(e), s = (e) => !(!e || e.length > 255 || a.test(e) || i.test(e) || e === "." || e === ".."), c = e("io:sxlReader", () => import("./BHKm0iIUckEaUMLV.mjs")), l = e("io:sxlWriter", () => import("./BldyCakCtPYtGXcm.mjs")), u = async (e, t) => (await c.load()).readSXL(e, t), d = (e) => async (t, n) => (await l.load()).writeSXL(t, {
15
+ ...n,
16
+ compress: n?.compress ?? e.compress,
17
+ whiteSpace: n?.whiteSpace ?? e.whiteSpace
18
+ }), f = {
19
+ key: "SheetXL",
20
+ description: "SheetXL Workbook",
21
+ mimeType: "application/vnd.sheetxl.sheet",
22
+ exts: ["sxl"],
23
+ handler: u
24
+ }, p = {
25
+ key: "JSON",
26
+ description: "SheetXL Workbook (JSON)",
27
+ mimeType: "application/json",
28
+ exts: ["json"],
29
+ handler: u
30
+ }, m = {
31
+ key: "SheetXL",
32
+ mimeType: "application/vnd.sheetxl.sheet",
33
+ description: "SheetXL Workbook",
34
+ exts: ["sxl"],
35
+ handler: d({
36
+ compress: !0,
37
+ whiteSpace: 0
38
+ })
39
+ }, h = {
40
+ key: "JSON",
41
+ mimeType: "application/json",
42
+ description: "SheetXL Workbook (JSON)",
43
+ exts: ["json"],
44
+ advanced: !0,
45
+ handler: d({
46
+ compress: !1,
47
+ whiteSpace: 2
48
+ })
49
+ }, g = {
50
+ name: "SXLPlugin",
51
+ version: "0.8.0-beta.11",
52
+ description: "Import and export SXL format",
53
+ author: "SheetXL",
54
+ async register(e) {
55
+ await e.registerReadFormat(f), await e.registerReadFormat(p), await e.registerWriteFormat(m), await e.registerWriteFormat(h);
56
+ }
57
+ }, _ = e("io:csvReader", () => import("./D5wm_fLXLK3Ve1ir.mjs")), v = e("io:csvWriter", () => import("./CpzzMIebww7p4m_V.mjs")), y = {
58
+ key: "CSV",
59
+ description: "Comma Separated Values",
60
+ mimeType: "text/csv",
61
+ exts: ["csv"],
62
+ handler: async (e, t) => (await _.load()).readCSV(e, t)
63
+ }, b = {
64
+ key: "CSV",
65
+ mimeType: "text/csv",
66
+ description: "Comma Separated Values",
67
+ exts: ["csv"],
68
+ handler: async (e, t) => (await v.load()).writeCSV(e, t)
69
+ }, x = {
70
+ name: "CSVPlugin",
71
+ version: "0.8.0-beta.11",
72
+ description: "Import and export CSV format",
73
+ author: "SheetXL",
74
+ async register(e) {
75
+ await e.registerReadFormat(y), await e.registerWriteFormat(b);
76
+ }
77
+ }, S = {
78
+ name: "@sheetxl/io",
79
+ version: "0.8.0-beta.11",
80
+ description: "Built-in I/O formats for SheetXL",
81
+ author: "SheetXL",
82
+ async register(e) {
83
+ await g.register(e), await x.register(e), await n.register(e);
84
+ }
85
+ };
86
+ export { x as i, g as n, r, S as t };
@@ -1,5 +1,5 @@
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.11
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.
@@ -1,5 +1,5 @@
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.11
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.
@@ -1,5 +1,5 @@
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.11
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.