@sheetxl/studio-vanilla 0.8.0-beta.3 → 0.8.0-beta.4

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 (359) hide show
  1. package/browser/cjs/{CTObzk4r7C71x9Ep2.cjs → 6V1LlorEUj_nSWnU.cjs} +1 -1
  2. package/browser/cjs/9Fb0mL7xhqVmVTQp.cjs +3 -0
  3. package/browser/cjs/{C2SohnuJK8Urc7Fx2.cjs → BFR2qcJJZqIGySId2.cjs} +2 -2
  4. package/browser/cjs/BItTNeA_ukOziuTp.cjs +41 -0
  5. package/browser/cjs/Be5j4deP5deGlAPe2.cjs +1 -0
  6. package/browser/cjs/{uRXkwHKoe-2HtXuR.cjs → BhmvJA5P78JScqAa.cjs} +1 -1
  7. package/browser/cjs/{7SCJ4vwRZW4B71kq.cjs → Bj3YkKmVIoQ3YtYm.cjs} +4 -4
  8. package/browser/cjs/{Z_6RasaVpnIv1MHk.cjs → BqfmTrd9tnu_owvN.cjs} +1 -1
  9. package/browser/cjs/BtrnAiRF11y21NX4.cjs +1 -0
  10. package/browser/cjs/CClH6iclautDoj8x2.cjs +1 -0
  11. package/browser/cjs/{C3scwi-q2KqEM39H.cjs → CIDcABwPAtKB7XVf.cjs} +3 -3
  12. package/browser/cjs/{D6YaqporVrSewZpm2.cjs → CJK0UKBYYLMe5y7n2.cjs} +1 -1
  13. package/browser/cjs/{kj_kwD7S9uUbhKiz2.cjs → CLHQ0mEi1NKau4Fd2.cjs} +1 -1
  14. package/browser/cjs/{P0AUOlaMi9tyE0vN.cjs → CMOeL2fuTqmW07BD.cjs} +199 -199
  15. package/browser/cjs/CQd4PPsP2BuocLDM.cjs +2 -0
  16. package/browser/cjs/{DWdUSWl4MXn2-MLU.cjs → CRplh7TkT0zSJ0-T.cjs} +1 -1
  17. package/browser/cjs/{B7oyN0rn95Kyes8D2.cjs → CSWmGDsxPB7HVJiO2.cjs} +1 -1
  18. package/browser/cjs/{Doiqeo4Qlie45lbl.cjs → Cj57ZO62uLbSZ0gK.cjs} +1 -1
  19. package/browser/cjs/{DUXRl3eYfSwbhAfx.cjs → CjqMMBQ8Kk0moB_z.cjs} +1 -1
  20. package/browser/cjs/CnZ9pMlpPsqEhbLB2.cjs +1 -0
  21. package/browser/cjs/CpSKXzK-k_sOImbA.cjs +54 -0
  22. package/browser/cjs/{BDmBYZigchoACsQx.cjs → CuANpK3BdrKl4Yhe.cjs} +1 -1
  23. package/browser/cjs/{CQ5x8oFPDaU6OCJf.cjs → Cw4BDzyIt0BkEzuh.cjs} +1 -1
  24. package/browser/cjs/D689Ek3LK_7M1YS9.cjs +14 -0
  25. package/browser/cjs/{CQ-W9AUNHdts8pmY.cjs → D6OTRWh1ys5CR_lb.cjs} +1 -1
  26. package/browser/cjs/DDvxqFQeKcwQCcgl2.cjs +1 -0
  27. package/browser/cjs/{CUyKbhM67853Rnt22.cjs → DOQTjBWUIU3tFiC42.cjs} +1 -1
  28. package/browser/cjs/{AVUt0iNPhRf4R5xb.cjs → DOjeFFlUuGZs14pR.cjs} +1 -1
  29. package/browser/cjs/{ge8Wd-0WC6oMuJZR.cjs → DRRqcawQ_OlK5O2S.cjs} +1 -1
  30. package/browser/cjs/{9LTjOB1_w-bikScD.cjs → DW8fGIUUK-oUTjOo.cjs} +1 -1
  31. package/browser/cjs/{CH0vbLpwoyU7oOFk.cjs → DggQv_m8hwCk0ZPk.cjs} +2 -2
  32. package/browser/cjs/{BoRfsJCaLzUHQseD.cjs → DjAg1qKbGRcCxZG2.cjs} +1 -1
  33. package/browser/cjs/{D6XEHfNbKx-9qZye.cjs → DlAHUQXBMc-ZTn_c.cjs} +2 -2
  34. package/browser/cjs/DniLHjmREpdi1cFx.cjs +1 -0
  35. package/browser/cjs/{C0xAhPzztP9a24zR.cjs → DnjrhTDYSGg20fYP.cjs} +1 -1
  36. package/browser/cjs/DoFDjP2FgjU48C712.cjs +1 -0
  37. package/browser/cjs/DqnvNfw5YpO2rdty2.cjs +1 -0
  38. package/browser/cjs/{BjjAQLiorKWXy3g5.cjs → DrdQTBiFulmvlRaX.cjs} +3 -3
  39. package/browser/cjs/DuQsMI_VBrtewlPT2.cjs +8 -0
  40. package/browser/cjs/DunGPPWyXlG69yIV2.cjs +1 -0
  41. package/browser/cjs/Dw7oGgh_7fEPOoIV2.cjs +3 -0
  42. package/browser/cjs/{BArvhvpcrQEcbcyY.cjs → DxHsJ5c6KlwGpED6.cjs} +1 -1
  43. package/browser/cjs/LMZmmGBTj9hqFwwu2.cjs +1 -0
  44. package/browser/cjs/{BxFSy-hOEbyllj-r2.cjs → Ugq14m_1jIROW2RN2.cjs} +2 -2
  45. package/browser/cjs/{BIN8L9V0hoUwMh64.cjs → VSzadbRbgIx_c4Y7.cjs} +1 -1
  46. package/browser/cjs/{BtAs67e7WBCglqc5.cjs → ZsgZv9u2bNY2LY78.cjs} +1 -1
  47. package/browser/cjs/{Zz5dLT_2gLI18Jmx.cjs → axigL4G2Pi0ixZPE.cjs} +2 -2
  48. package/browser/cjs/bojG-rqzdkE9lH_h2.cjs +1 -0
  49. package/browser/cjs/{D6m2M4H6JZaYZ4El2.cjs → e4jYID_FHS7YL-b22.cjs} +1 -1
  50. package/browser/cjs/gsOqF4MyYN9gz4oo.cjs +5 -0
  51. package/browser/cjs/{DQOt8XSpXyhsrF9N.cjs → hHVT-pzS2bhjFHSL.cjs} +43 -43
  52. package/browser/cjs/ihI3PbaHdmlJLCOt2.cjs +1 -0
  53. package/browser/cjs/index.cjs +1 -1
  54. package/browser/cjs/jW0ar9T4rYfgy_4N.cjs +1 -0
  55. package/browser/cjs/lc_UysVCoJyKATFy2.cjs +1 -0
  56. package/browser/cjs/{B2fdTYeKGNugWRgn2.cjs → nIKxgoGnF7yTmzVB2.cjs} +2 -2
  57. package/browser/cjs/{BqQgEaUREvuFHYoW.cjs → pWgqqjBa4jIrxyvw.cjs} +1 -1
  58. package/browser/cjs/{Df3jw0eHS0X-qFvT.cjs → ufEYN2m0y5pER93_.cjs} +1 -1
  59. package/browser/cjs/{D9SdUvJVa64UoGj9.cjs → v4gWTjOVv8h2S0zO.cjs} +1 -1
  60. package/browser/cjs/y4PTOoQv-PlD-vAG2.cjs +1 -0
  61. package/{cdn/assets/BEb3QhWwGW8rErZy2.js → browser/esm/00bUQB6RgRxfotbx.mjs} +1 -1
  62. package/browser/esm/{D5j8qMZCamJQ82pi.mjs → 3763dmlGYD95oq8Z.mjs} +401 -401
  63. package/browser/esm/{C5u9ds7LUh9JJEbW2.mjs → 5FA-4PCi5EIs85WR2.mjs} +2 -2
  64. package/browser/esm/{CVbPAnmNN3TxMkq4.mjs → 7XkdeYBragcPQQS0.mjs} +1 -1
  65. package/{cdn/assets/CcPFyWALYlJWf17T.js → browser/esm/7bhO6Xzgwllu2tcj2.mjs} +1 -1
  66. package/browser/esm/{vP8Rb-lgzeerBAx4.mjs → AwRapR2kwqYVijeW.mjs} +1 -1
  67. package/browser/esm/{GETgdmj9xZWcFrIC2.mjs → B0Z8VrL6RioP-2R02.mjs} +743 -743
  68. package/browser/esm/{BCQJVniXgm81YQ0v2.mjs → B1uljoK1sRsKmI6N2.mjs} +94 -94
  69. package/browser/esm/{74Ynqpv5NPbb_8vB.mjs → B3WsFHUqTcKWNGy_.mjs} +5177 -5137
  70. package/{cdn/assets/CXKguOBpJrsoXPTQ.js → browser/esm/B5SNHCcrvOdUn7Vu.mjs} +132 -132
  71. package/browser/esm/{QEPUcBp4VkPz75h8.mjs → B6wW3holuLEkDOgD.mjs} +55 -55
  72. package/browser/esm/{CyomJv3_vWy4trRe2.mjs → BCWx6QCIVIKOKt9n2.mjs} +1 -1
  73. package/browser/esm/{DpORFFFF3LUx_zsT2.mjs → BCYJaBOW6d6KNCuQ2.mjs} +7 -7
  74. package/browser/esm/{BtC6lEbd98TeKGsX2.mjs → BCmGrMte2QyvzkAM2.mjs} +19 -19
  75. package/browser/esm/{DGde1GUi2j-ZUPJW2.mjs → BEsIwguAjJa2eS4g2.mjs} +22 -22
  76. package/{cdn/assets/BuoHLVUSwf-mq0hg.js → browser/esm/BFAAw3m7wW7Wnf8i2.mjs} +1 -1
  77. package/browser/esm/{BUokT-PbfvYzD63f2.mjs → BG_6y3dWHiR8LpP-2.mjs} +1 -1
  78. package/browser/esm/{VaST17rbOSkMsGyn.mjs → BJdwKtEOslRkGQhk.mjs} +7 -7
  79. package/browser/esm/{DNxL1aQIN6J2PLV7.mjs → BJk7BkFlT-d2_MDc.mjs} +3 -3
  80. package/browser/esm/{BH_qL-oGqwG-7JKF.mjs → BO6Lz-qmEF5k4ZPU.mjs} +9324 -9295
  81. package/{cdn/assets/CwRAK6IVjIYuwofE2.js → browser/esm/BPh6sTO11J2UoKVG.mjs} +1 -1
  82. package/browser/esm/{XuGWliVSRCNi5it12.mjs → BQRlxHPPnb-Xp7mx.mjs} +1 -1
  83. package/browser/esm/{lfNgkSweNYs6v7g2.mjs → BThp5CcmvMVU7Frk.mjs} +2 -2
  84. package/browser/esm/{lfNgkSweNYs6v7g22.mjs → BThp5CcmvMVU7Frk2.mjs} +2 -2
  85. package/browser/esm/{C213T1hhBphljJTF2.mjs → BUbwA9WVFeKfIV6H.mjs} +1 -1
  86. package/browser/esm/{BEb3QhWwGW8rErZy.mjs → BVri2gMOX526uJV5.mjs} +1 -1
  87. package/browser/esm/{BHIVjD6BdBS3BAWp.mjs → BYcIifmA2KfISUAD.mjs} +6 -6
  88. package/browser/esm/{GJUYPKfNptRZyU9r.mjs → BYha1NqMzu8G7ReU.mjs} +7 -7
  89. package/browser/esm/{BJ26E2DhS1Jz4nUY2.mjs → BZiMIYsX6zktg4iD2.mjs} +23 -23
  90. package/browser/esm/{Ds5mE3-q83ZhE-2T.mjs → BcZHZLyy1g0r4Qk4.mjs} +23 -23
  91. package/browser/esm/{Du5dlbWtpboIrJk-2.mjs → BcdWHWjggmDQ6_Zx2.mjs} +60 -60
  92. package/browser/esm/{CcuNkPxT6rqElgbZ2.mjs → Bd-Kkar9gnLuKTRo2.mjs} +1 -1
  93. package/browser/esm/{5SHS088DeaZ82qmD2.mjs → BeQYgyU20NLEnFql2.mjs} +1 -1
  94. package/{cdn/assets/OTQWLENoZ1cSiDQb2.js → browser/esm/Be_zCt9smEb4NVGF.mjs} +2 -2
  95. package/{cdn/assets/Co06Uf-tv1IuVQhe.js → browser/esm/BfRnXrO08JOzICDf2.mjs} +1 -1
  96. package/{cdn/assets/B45vVm2Ma1i2b6_F.js → browser/esm/BfZiZa7P8RpKrStu.mjs} +1 -1
  97. package/browser/esm/{CksEMRqAqI-_nekb.mjs → BiHOntEpAjSdwJmu.mjs} +12 -12
  98. package/browser/esm/{BsY_DyFxoqjRHTv02.mjs → BjCuy-yO9BQxUj_22.mjs} +1 -1
  99. package/browser/esm/{BOMJTicRKnx01hw-.mjs → BnT_figq3Qu4_Tdm.mjs} +12 -12
  100. package/{cdn/assets/BiomOxscV1M0Uw2n.js → browser/esm/BouiFjb9pyWsROiW2.mjs} +1 -1
  101. package/{cdn/assets/efVOgresgMXMdh7J.js → browser/esm/BqT5uCSFT_HATJJw2.mjs} +1 -1
  102. package/browser/esm/{Z83G4i9Tvq4z2kCB.mjs → BranNZUk8WXrCCjb.mjs} +3 -3
  103. package/browser/esm/{53nnk5W22gJW7Ddx.mjs → BxrknRRdcnKV7-zU.mjs} +5 -5
  104. package/browser/esm/{DB_I2ygTnDxYiYyc.mjs → C62Y8jSQuT2_lqUs.mjs} +215 -206
  105. package/browser/esm/{vDg2R-517z6mPR3B2.mjs → C9-p4koE4kCDp9UL2.mjs} +8 -8
  106. package/browser/esm/{Dg7wE0RZdHeJv537.mjs → C9QsQZR03iUbXGDd.mjs} +1 -1
  107. package/browser/esm/{B-VKr_KwiWjDeAP5.mjs → CByxip-S_IKsaoyZ.mjs} +371 -371
  108. package/{cdn/assets/B0gZ5e38MXWbEDS_.js → browser/esm/CFKZFbkoc-8gG0EH.mjs} +1 -1
  109. package/browser/esm/{Dj_S0P34nk_fjFoh2.mjs → CIfWyeqd8SBHxpym2.mjs} +17 -17
  110. package/{cdn/assets/BmC-_QeQ-53oyorq.js → browser/esm/CIsuqkDFqRaqaULt.mjs} +1 -1
  111. package/browser/esm/{BYPIn5AkddMzMcsa2.mjs → CMIHnlRJ6ctaJThm2.mjs} +12 -12
  112. package/{cdn/assets/BUjTEjAeByh6MKpn.js → browser/esm/CNBdjbsAfeLxOXNu2.mjs} +1 -1
  113. package/browser/esm/{5shGy9JSRzvoIfDE2.mjs → CNO2b9u-Zhj6V2us2.mjs} +6 -6
  114. package/browser/esm/{DlHJ7zkV6AMCtYPP.mjs → CP2cFopeWN8lQpif.mjs} +5 -5
  115. package/browser/esm/{CjxOVBbWLFeUZza82.mjs → CPCWNpkZIX3cxPMS2.mjs} +2 -2
  116. package/browser/esm/{BPZxx-OH0wACHLsN2.mjs → CPgdrQexyUXiviTo.mjs} +1 -1
  117. package/{cdn/assets/C5Oex2msskTvaCQ9.js → browser/esm/CQi9Ek-nl9QWmoMC2.mjs} +1 -1
  118. package/browser/esm/{WfqSQXib2MuH663g.mjs → CRNpbge-G8dLIqk9.mjs} +2 -2
  119. package/browser/esm/{BNgf4HZDOKYBkvL3.mjs → CSus1KY0Y1UJN-c6.mjs} +1595 -1595
  120. package/{cdn/assets/OtaDVRqZVyi7IBBa2.js → browser/esm/CVV-QxmM_7vUYzFC.mjs} +1 -1
  121. package/browser/esm/{B0F5gtNQjANAfRw32.mjs → CXT9wGUombXj7n-s2.mjs} +11 -11
  122. package/browser/esm/{OsRyVy3M_rNtmU472.mjs → CZrkJteg0C4_fGBy2.mjs} +10 -10
  123. package/{cdn/assets/DoAKAH3cmECZGboo2.js → browser/esm/C_6kPChYiQzj6w3V2.mjs} +1 -1
  124. package/browser/esm/{_cZz4ZhEEr54LYNe2.mjs → ChKDkoQeoZMHq0r72.mjs} +1 -1
  125. package/{cdn/assets/C7b3GyO7FCiMLeyn2.js → browser/esm/CiMRlH1xk4i9IiEn.mjs} +1 -1
  126. package/browser/esm/{CpzLNwtfx0Zd0OZ0.mjs → CiUtfAMZeVao4r9g.mjs} +1 -1
  127. package/{cdn/assets/DZGMsbIACs9TKYrM.js → browser/esm/ClQiq37bto-oxKtL.mjs} +1 -1
  128. package/browser/esm/{B72sK2NRGAke-aCk2.mjs → ClrdhQeh_WoBg0Ws2.mjs} +1 -1
  129. package/{cdn/assets/DAhlDEV6ehTRvrj7.js → browser/esm/CmNtmMkhbzV8j_I0.mjs} +1 -1
  130. package/{cdn/assets/DfIwClWz03Qw38-O2.js → browser/esm/Cm_bL9sY_cm-k_Pq.mjs} +1 -1
  131. package/browser/esm/{D16eCDM3k1_Fk-MN.mjs → CmmaFuVaTfOm96g4.mjs} +11 -11
  132. package/{cdn/assets/BJVcTpMN-u5XhMVE.js → browser/esm/CqheKk46etN--iuw2.mjs} +1 -1
  133. package/browser/esm/{2eBMkUK0-HxaCmDY.mjs → CqwPCy756gUmUtv1.mjs} +6 -6
  134. package/{cdn/assets/mbUWaIl3SJkdbWx0.js → browser/esm/CsDejQBEe09RdeRI.mjs} +1 -1
  135. package/{cdn/assets/B8q1hrKv7LAL4xmM.js → browser/esm/CsG9IQdgctp6tf2X2.mjs} +1 -1
  136. package/browser/esm/{CDxmuF7Iay8T4cnU.mjs → CxYnCECXc2PyTCrn.mjs} +499 -499
  137. package/{cdn/assets/CXvcyGN4L9iDr1LK.js → browser/esm/Cz77LBaC6qe0hPm02.mjs} +1 -1
  138. package/browser/esm/{Bj42pxe5AuY4bF2e.mjs → Cz_f9WxedmIkn2jq.mjs} +3 -3
  139. package/{cdn/assets/n_NkstgVVwl2iAnp.js → browser/esm/D36mtiddUg8k6tPW.mjs} +2 -2
  140. package/browser/esm/{JDCQtP0lkncrmnpC2.mjs → DCY3GQ5g02kgKrPz2.mjs} +1 -1
  141. package/{cdn/assets/BCcbek_TFOdgqxXq2.js → browser/esm/DDfhrc6lUmerlDLA2.mjs} +1 -1
  142. package/{cdn/assets/CukMw9Sc4iO21aRQ2.js → browser/esm/DGjbC2bQDlXZu71U.mjs} +623 -623
  143. package/browser/esm/{C6D3gk0GBvvDjawh.mjs → DIHvZTIPYMmuDQO4.mjs} +5 -5
  144. package/browser/esm/{D718rIGL3d_m1mjm2.mjs → DN6XiWA9mgKCYBL72.mjs} +1 -1
  145. package/browser/esm/{DnLi57ylUOd3DUek.mjs → DNtf7XnGnTZmf9SF.mjs} +6 -6
  146. package/browser/esm/{Dok4MRpMgkcsNzp4.mjs → DOwrrqcb3f3wDR3B.mjs} +18 -18
  147. package/browser/esm/{D3Qv3--VfvVHImXW.mjs → DQXXQ7c_080TSD18.mjs} +1 -1
  148. package/browser/esm/{BYAZ3XZq8XXkOulw.mjs → DSuOkzhjUeUGtHv8.mjs} +3 -3
  149. package/browser/esm/{BoWCDK44X4tp02_4.mjs → DXuBmWXG49kvaZNr2.mjs} +1 -1
  150. package/browser/esm/{C8qOmdaHh4WQkzEy.mjs → DYoBCnD1PVzOITgb2.mjs} +1 -1
  151. package/browser/esm/{OyyHiDjohIf4lZX62.mjs → D_tGKL5JvKpHg5Se2.mjs} +1 -1
  152. package/browser/esm/{CZN6c8yBDjLVTVpH.mjs → D_vJszM7OyxfNtiD.mjs} +2 -2
  153. package/{cdn/assets/CXgMJ_MuMQRu0isj2.js → browser/esm/DdNzoOIDRFbcy-qK.mjs} +44 -44
  154. package/browser/esm/{cDMkMgN5tB-wni7c2.mjs → DdSdpckWJszr8vE72.mjs} +13 -13
  155. package/browser/esm/{Bq7qy-C7tVkiIaDE2.mjs → Di2yc0eSWx4sqa1t2.mjs} +4 -4
  156. package/browser/esm/{BnHE1Z6WkOfTWheU2.mjs → DiZjLPj4GVJccT-7.mjs} +2 -2
  157. package/{cdn/assets/DW3_Jr-4VdZZqNEg.js → browser/esm/DkUKK8YkXuoIqQIx.mjs} +1916 -1909
  158. package/browser/esm/{C__tNzwz0i7bQrSu2.mjs → DmBNtqAUPAi3RnfW2.mjs} +11 -11
  159. package/browser/esm/{Bsfof8nD-exhrNwn.mjs → Dr3NMWk6K4-HWYsp.mjs} +1 -1
  160. package/{cdn/assets/BSWXx2rKOMPxLLs82.js → browser/esm/DsGBg42mflMr5nWn.mjs} +1 -1
  161. package/browser/esm/{CU1J-I76aVm-KPP6.mjs → DtFBvTH8ScTC26Xd.mjs} +1 -1
  162. package/browser/esm/{ByQakLd0YFwc0Lgl.mjs → DuwZ5U8z5dBDeSgO.mjs} +8 -8
  163. package/browser/esm/{DRRx9F2h6V-Q957j.mjs → DvFQ4AKUGVQ_qhdP.mjs} +2 -2
  164. package/browser/esm/{BrzXFBoYDjcG3ct8.mjs → DvQg18Zd8rnQh20c.mjs} +3 -3
  165. package/browser/esm/{B08GCyGdLNiXtb_R.mjs → DwpzhMm9SjvmHEpB.mjs} +1 -1
  166. package/browser/esm/{C-97pwItkHA3s5rD2.mjs → Dz6F8pPCO-Rr6Cab2.mjs} +12 -12
  167. package/{cdn/assets/gXemYPUoPvaUd055.js → browser/esm/ERmTt8XRToIi7stb.mjs} +1 -1
  168. package/browser/esm/{BcPnGFFKCddWgOch.mjs → I5pKfeOLCqhpzdsw.mjs} +1 -1
  169. package/browser/esm/{CSu0Md4a1JIZrirV.mjs → Jsx_oA3RHPHgakon.mjs} +253 -253
  170. package/browser/esm/{DevyWm6bXV7lW2dr.mjs → LOn47j35pLEOdnml.mjs} +5 -5
  171. package/browser/esm/{CD44l4eg_lxr7kgn2.mjs → LTN_uMk0eLGdRMPd2.mjs} +7 -7
  172. package/browser/esm/{D-1WiFWkKNPWXppx2.mjs → LryKLHFrshlshCEk2.mjs} +1 -1
  173. package/browser/esm/{C0HHZ3XLqp0LgRuW.mjs → N9sXUCWDhn_zpuR2.mjs} +1 -1
  174. package/{cdn/assets/BwbR2Dao5LgLYQgV2.js → browser/esm/NLHUljnhbCboNbaU.mjs} +1 -1
  175. package/browser/esm/{BQIRHi8T3P5MZtan.mjs → U7ZDW4cwSiPyirkE.mjs} +1 -1
  176. package/{cdn/assets/Cjbksosgv7NZFNE02.js → browser/esm/XGGjX0z3ae_AWeTr.mjs} +1 -1
  177. package/browser/esm/{BgwzL8v2pmR5HJXW.mjs → _WaFh_cvGeblogUn2.mjs} +1 -1
  178. package/browser/esm/{B5z-uoALcLY2ABTo.mjs → cVFbVoYZRXdqyfp0.mjs} +5 -5
  179. package/{cdn/assets/B63SfOuKJt36aTr_.js → browser/esm/cwwLkCUZ083FPUTU2.mjs} +2 -2
  180. package/browser/esm/{CnB5AuoIz-49NXD_.mjs → i8BR1tNQSYLz-zpk.mjs} +3 -3
  181. package/browser/esm/index.mjs +4 -4
  182. package/browser/esm/{C02og4vKxq9qpIUA.mjs → ooXd7RLQr67NrRz9.mjs} +66 -66
  183. package/browser/esm/{C3A-yJ12PN-CPPnI2.mjs → p-0E4OSYsnvo4Jvb2.mjs} +1 -1
  184. package/browser/esm/{kef_IwcJES4VXcNa2.mjs → q4b66GxkR8TkSiGY2.mjs} +17 -17
  185. package/{cdn/assets/BQhVWbI9uag9iRfX.js → browser/esm/rUQqpcI_WXcsiwea2.mjs} +1 -1
  186. package/{cdn/assets/CyS1VLOdAweeZsMV2.js → browser/esm/yg7AU6dKBI7tCqJd2.mjs} +1 -1
  187. package/browser/esm/{DLgM7RXEEfx33zms.mjs → z-KpvdyYTapfvTA-.mjs} +4 -4
  188. package/{browser/esm/S4MMwlNd4kcK3RDU.mjs → cdn/assets/00bUQB6RgRxfotbx2.js} +1 -1
  189. package/cdn/assets/{BuPGWNRZMMyn4fm8.js → 0Jeqx95iG9faxIsB.js} +8 -8
  190. package/cdn/assets/{BsiuCRJjX2LRrDF22.js → 3o0o7-MzWgSJRADP2.js} +12 -12
  191. package/cdn/assets/{C5u9ds7LUh9JJEbW.js → 5FA-4PCi5EIs85WR.js} +2 -2
  192. package/cdn/assets/{DKwpjlUd2pFOI9yp2.js → 61OH_HiXgmNuRUDx2.js} +73 -73
  193. package/cdn/assets/{CVbPAnmNN3TxMkq4.js → 7XkdeYBragcPQQS0.js} +1 -1
  194. package/{browser/esm/CcPFyWALYlJWf17T2.mjs → cdn/assets/7bhO6Xzgwllu2tcj.js} +1 -1
  195. package/cdn/assets/{vP8Rb-lgzeerBAx42.js → AwRapR2kwqYVijeW2.js} +1 -1
  196. package/cdn/assets/{CJoCbCtXkTbj6-nC.js → B1eVAWzwtBE6vo-r.js} +2 -2
  197. package/cdn/assets/{CdTHBpWoW1Fu4Dg_.js → B3XQHzZTHSzv7fpC.js} +5 -5
  198. package/cdn/assets/{CyomJv3_vWy4trRe.js → BCWx6QCIVIKOKt9n.js} +1 -1
  199. package/cdn/assets/{C-KWjRT0CUb-bkvj2.js → BEcgIVa19rKPTwlt2.js} +25 -25
  200. package/{browser/esm/BuoHLVUSwf-mq0hg2.mjs → cdn/assets/BFAAw3m7wW7Wnf8i.js} +1 -1
  201. package/cdn/assets/{BUokT-PbfvYzD63f.js → BG_6y3dWHiR8LpP-.js} +1 -1
  202. package/cdn/assets/{FHIg3Yb5Rn05W1F22.js → BInccbDEuHGg1a2y2.js} +95 -95
  203. package/cdn/assets/{9ra2y9Srlg_Pw7Q32.js → BJ74o1RxHOu_KTYD2.js} +84 -84
  204. package/cdn/assets/{FbLFNYdTqRtQ7QiS.js → BKrWCWpOpggPjFQq2.js} +3 -3
  205. package/cdn/assets/{0uSu6ChH_CTmXM2q2.js → BLKL_d2AFcnL6fbw2.js} +74 -74
  206. package/cdn/assets/{hHkEq7qn0rj2XKD82.js → BNSYILHKGtNTW6AH2.js} +22 -22
  207. package/{browser/esm/CwRAK6IVjIYuwofE.mjs → cdn/assets/BPh6sTO11J2UoKVG.js} +1 -1
  208. package/cdn/assets/{XuGWliVSRCNi5it1.js → BQRlxHPPnb-Xp7mx2.js} +1 -1
  209. package/cdn/assets/{C213T1hhBphljJTF.js → BUbwA9WVFeKfIV6H.js} +1 -1
  210. package/cdn/assets/{Beyy1fJJeov2iYL4.js → BVFVnXqCCuycZFnG.js} +4 -4
  211. package/cdn/assets/BVri2gMOX526uJV5.js +24 -0
  212. package/cdn/assets/BVri2gMOX526uJV52.js +24 -0
  213. package/cdn/assets/{BeFqINcF0gIgBnB1.js → BXV_vaLwr-mEvH-k.js} +7 -7
  214. package/cdn/assets/{D8sc6gCXnfpn7W79.js → BY7a2KqdhpxV2mYN.js} +2 -2
  215. package/cdn/assets/{KS5XJUWdKvEezJfs2.js → BZpQlzDFTqlBTj8r.js} +124 -125
  216. package/cdn/assets/{bQ6G23JQrt4l2Ls92.js → BcGLaH5XYmlLx2is2.js} +9 -9
  217. package/cdn/assets/{CcuNkPxT6rqElgbZ.js → Bd-Kkar9gnLuKTRo.js} +1 -1
  218. package/cdn/assets/{5SHS088DeaZ82qmD.js → BeQYgyU20NLEnFql.js} +1 -1
  219. package/{browser/esm/Co06Uf-tv1IuVQhe.mjs → cdn/assets/BfRnXrO08JOzICDf.js} +1 -1
  220. package/{browser/esm/B45vVm2Ma1i2b6_F.mjs → cdn/assets/BfZiZa7P8RpKrStu2.js} +1 -1
  221. package/cdn/assets/{KOiR-1SNAX7AiEes.js → Bhat781Vzqa1jNlj.js} +3 -3
  222. package/cdn/assets/{CWIp4JC2SCM6lg-s.js → BiQlKPbuRw8sLCC5.js} +7 -7
  223. package/cdn/assets/{BZDRat2zTkUEg9cR.js → Bijn-3ZS9ONia1ja.js} +14 -14
  224. package/cdn/assets/{BsY_DyFxoqjRHTv0.js → BjCuy-yO9BQxUj_2.js} +1 -1
  225. package/cdn/assets/{BWbSIhQVBaXJNFgl.js → BlPAZIJrjbcHxcJj.js} +249 -249
  226. package/cdn/assets/{Cx1HsOCOdZoKJDEN2.js → BljA9tG92oDDEqjC2.js} +11 -11
  227. package/{browser/esm/BiomOxscV1M0Uw2n.mjs → cdn/assets/BouiFjb9pyWsROiW.js} +1 -1
  228. package/{browser/esm/efVOgresgMXMdh7J2.mjs → cdn/assets/BqT5uCSFT_HATJJw.js} +1 -1
  229. package/cdn/assets/{ryzcqI-93l1HBuTe2.js → Buwn5fZU7jRx2O2L2.js} +8 -8
  230. package/cdn/assets/{Cpkl0peJbfEXl6ta2.js → ByMjPzoTrB6veNzc2.js} +18 -18
  231. package/cdn/assets/{C8W7e-O1V1Mo2HOp.js → Bzv3-2eiz66ZkXnN.js} +3 -3
  232. package/cdn/assets/{Cdm7E0sw56lpdqRU2.js → C1HfU9WnOyE_81Y22.js} +13 -13
  233. package/cdn/assets/{CcXDdl0SsmyEFtmU.js → C2-SeODnwo_GR5pz.js} +501 -501
  234. package/{browser/esm/R0Xd51SJLUebJwYv.mjs → cdn/assets/C3D_ZF-8-b6d8y4e2.js} +2 -2
  235. package/{browser/esm/BGRNyE5ar4c3ggrS.mjs → cdn/assets/C4cN9i6GMOS58iau.js} +117 -117
  236. package/cdn/assets/{mI8tvfP8ed2Zerre.js → C5JHyXmpBXqT829C.js} +372 -372
  237. package/cdn/assets/{DB_I2ygTnDxYiYyc2.js → C62Y8jSQuT2_lqUs2.js} +215 -206
  238. package/cdn/assets/{C-F-eIvIRbCAMD662.js → C6FGZZf4iXdgdE2p2.js} +24 -24
  239. package/cdn/assets/{Dg7wE0RZdHeJv5372.js → C9QsQZR03iUbXGDd2.js} +1 -1
  240. package/{browser/esm/B0gZ5e38MXWbEDS_.mjs → cdn/assets/CFKZFbkoc-8gG0EH.js} +1 -1
  241. package/{browser/esm/BmC-_QeQ-53oyorq2.mjs → cdn/assets/CIsuqkDFqRaqaULt2.js} +1 -1
  242. package/{browser/esm/BUjTEjAeByh6MKpn.mjs → cdn/assets/CNBdjbsAfeLxOXNu.js} +1 -1
  243. package/cdn/assets/{B7SJVFUHxy16UJRA.js → CNJDMOYg-cuIfNfJ.js} +3 -3
  244. package/cdn/assets/{CdDTtABobc5txUF6.js → CNJExdRjs2zrq2QI2.js} +12 -12
  245. package/cdn/assets/{ButSau4Lf36Oe3GD.js → COqWk0Oh4IaPrTm7.js} +2 -2
  246. package/cdn/assets/{BPZxx-OH0wACHLsN.js → CPgdrQexyUXiviTo.js} +1 -1
  247. package/{browser/esm/C5Oex2msskTvaCQ92.mjs → cdn/assets/CQi9Ek-nl9QWmoMC.js} +1 -1
  248. package/cdn/assets/{B15uSTYXbbRVKP0X2.js → CRGjj70fiZgAfoOZ2.js} +7 -7
  249. package/cdn/assets/{w65zHFqjAp_NlbXg2.js → CRepp6I1poWZwijy2.js} +7 -7
  250. package/cdn/assets/{B-ylRvlizyArIFrd.js → CU-pICtgXW5Kn0sP.js} +2111 -2111
  251. package/{browser/esm/OtaDVRqZVyi7IBBa.mjs → cdn/assets/CVV-QxmM_7vUYzFC2.js} +1 -1
  252. package/cdn/assets/{Cy6Cst4s2vE_WWKK2.js → CX7_0zQyYWqVfYUE2.js} +12 -12
  253. package/cdn/assets/{B69EK_yDF3V8Rq2r2.js → CZuu-bOdg704oDMV2.js} +27 -27
  254. package/{browser/esm/DoAKAH3cmECZGboo2.mjs → cdn/assets/C_6kPChYiQzj6w3V2.js} +1 -1
  255. package/{browser/esm/Dcpd3kkjvidrDQuN.mjs → cdn/assets/CdP9qTlDd3C1oYJE.js} +1919 -1906
  256. package/cdn/assets/{_cZz4ZhEEr54LYNe.js → ChKDkoQeoZMHq0r7.js} +1 -1
  257. package/{browser/esm/C7b3GyO7FCiMLeyn.mjs → cdn/assets/CiMRlH1xk4i9IiEn.js} +1 -1
  258. package/cdn/assets/{CpzLNwtfx0Zd0OZ02.js → CiUtfAMZeVao4r9g2.js} +1 -1
  259. package/cdn/assets/{B1Lxf24mP-fwn03r2.js → CkGtAcs5pCYCEP8p.js} +66 -66
  260. package/{browser/esm/DZGMsbIACs9TKYrM2.mjs → cdn/assets/ClQiq37bto-oxKtL2.js} +1 -1
  261. package/cdn/assets/{B72sK2NRGAke-aCk.js → ClrdhQeh_WoBg0Ws.js} +1 -1
  262. package/{browser/esm/DAhlDEV6ehTRvrj72.mjs → cdn/assets/CmNtmMkhbzV8j_I0.js} +1 -1
  263. package/{browser/esm/DfIwClWz03Qw38-O.mjs → cdn/assets/Cm_bL9sY_cm-k_Pq2.js} +1 -1
  264. package/{browser/esm/DJUnZsVsvwRT_Onq2.mjs → cdn/assets/CnBG1teWhE7BlvvP.js} +2 -2
  265. package/{browser/esm/BJVcTpMN-u5XhMVE2.mjs → cdn/assets/CqheKk46etN--iuw.js} +1 -1
  266. package/cdn/assets/{CmRLwDXiK3woZrVI.js → Cr34xFdpfmYj3XVX.js} +5136 -5096
  267. package/{browser/esm/mbUWaIl3SJkdbWx02.mjs → cdn/assets/CsDejQBEe09RdeRI2.js} +1 -1
  268. package/{browser/esm/B8q1hrKv7LAL4xmM2.mjs → cdn/assets/CsG9IQdgctp6tf2X.js} +1 -1
  269. package/cdn/assets/{Cf-bndowUtxZ6tmG.js → CweS1pLcEo28_Fd3.js} +3 -3
  270. package/{browser/esm/CXvcyGN4L9iDr1LK2.mjs → cdn/assets/Cz77LBaC6qe0hPm0.js} +1 -1
  271. package/cdn/assets/{8rILuc7bVIGEeb97.js → D6FSp0JpvARNns7B.js} +81 -81
  272. package/cdn/assets/{FAaqx6EbN4JxNuNL2.js → D6g5-9e1xAhCBLKs2.js} +12675 -12646
  273. package/cdn/assets/{JDCQtP0lkncrmnpC.js → DCY3GQ5g02kgKrPz.js} +1 -1
  274. package/{browser/esm/BCcbek_TFOdgqxXq.mjs → cdn/assets/DDfhrc6lUmerlDLA.js} +1 -1
  275. package/cdn/assets/{Bub12rk6wWVZVNx62.js → DE2W5y4QJln8ofNW2.js} +110 -110
  276. package/cdn/assets/{CiTCEuoCSDCy9khR.js → DFs_9gdet_-cO7iH.js} +2 -2
  277. package/cdn/assets/{BHpE1nCbJEbRdzIG2.js → DLBKxOA2T_WJvvvH2.js} +13 -13
  278. package/cdn/assets/{D718rIGL3d_m1mjm.js → DN6XiWA9mgKCYBL7.js} +1 -1
  279. package/cdn/assets/{D3Qv3--VfvVHImXW.js → DQXXQ7c_080TSD18.js} +1 -1
  280. package/cdn/assets/{BCOGONuWSq4hgADu.js → DVRMsPYzWC08As4p.js} +505 -505
  281. package/cdn/assets/{CLEhV4ZVh2Jf4WLI.js → DW_9fxHbJWAA6hS7.js} +3 -3
  282. package/cdn/assets/{BoWCDK44X4tp02_42.js → DXuBmWXG49kvaZNr.js} +1 -1
  283. package/cdn/assets/{C8qOmdaHh4WQkzEy.js → DYoBCnD1PVzOITgb.js} +1 -1
  284. package/cdn/assets/{OyyHiDjohIf4lZX6.js → D_tGKL5JvKpHg5Se.js} +1 -1
  285. package/cdn/assets/{BAbRLjxqebqVPyto2.js → DhJUo9PMmo1COlmU2.js} +1255 -1255
  286. package/cdn/assets/{BLpNuslYLGia3h9t2.js → DiViqDuRVTrNy_8T2.js} +2 -2
  287. package/cdn/assets/{PLFw1pLjdLQLrlB0.js → DilLxTePPshHHpSq.js} +6 -6
  288. package/{browser/esm/DuMveAGZv1j1YAwO.mjs → cdn/assets/DoVrePIXmzfLRmKR2.js} +2 -2
  289. package/cdn/assets/{CEyEKBYpjE5GGcmE.js → Doj9y5S2cMVRtP1D.js} +8 -8
  290. package/cdn/assets/{Bsfof8nD-exhrNwn.js → Dr3NMWk6K4-HWYsp.js} +1 -1
  291. package/cdn/assets/{C4vZWmW5DZLQTTAx.js → DrVaoGzrL25jLUGy.js} +231 -231
  292. package/{browser/esm/BSWXx2rKOMPxLLs8.mjs → cdn/assets/DsGBg42mflMr5nWn2.js} +1 -1
  293. package/cdn/assets/{CU1J-I76aVm-KPP6.js → DtFBvTH8ScTC26Xd2.js} +1 -1
  294. package/cdn/assets/{D7WMzCfJnKIfTbdg.js → DtOWX0kdgZMsDoO7.js} +8 -8
  295. package/cdn/assets/{Cb7x4GW2rRvj_q2Z.js → DtumfSbgP4e8W8h3.js} +3 -3
  296. package/cdn/assets/{DA4QV7VUyNUEfx1k2.js → DwB2Aw3VeP0bDUcu2.js} +23 -23
  297. package/cdn/assets/{B08GCyGdLNiXtb_R2.js → DwpzhMm9SjvmHEpB2.js} +1 -1
  298. package/{browser/esm/gXemYPUoPvaUd055.mjs → cdn/assets/ERmTt8XRToIi7stb2.js} +1 -1
  299. package/cdn/assets/{D6B6VvRh1cfT2e-M2.js → FG3AVHTW-X8T6X6V2.js} +8 -8
  300. package/{browser/esm/CS38A8yr4eKvdDZm.mjs → cdn/assets/Ks5Tzjg6SEeoLe6a.js} +11 -11
  301. package/cdn/assets/{D-1WiFWkKNPWXppx.js → LryKLHFrshlshCEk.js} +1 -1
  302. package/cdn/assets/{C0HHZ3XLqp0LgRuW2.js → N9sXUCWDhn_zpuR22.js} +1 -1
  303. package/cdn/assets/{DBKHpCvbeQU-Y4eS2.js → NHd14bmjDunGi64w2.js} +5 -5
  304. package/{browser/esm/BwbR2Dao5LgLYQgV.mjs → cdn/assets/NLHUljnhbCboNbaU2.js} +1 -1
  305. package/cdn/assets/{CwGEi_5ErUTrkWRj.js → POvNgF4k1Kibh6Db.js} +6 -6
  306. package/cdn/assets/{BUeKY15yUtNX2nYg.js → RnavifpmQlGK2gal.js} +2 -2
  307. package/cdn/assets/{CYFmWcVbnUCDPJ8m.js → TA52Zf5ZMCu6I721.js} +2 -2
  308. package/cdn/assets/{BQIRHi8T3P5MZtan2.js → U7ZDW4cwSiPyirkE2.js} +1 -1
  309. package/{browser/esm/Cjbksosgv7NZFNE0.mjs → cdn/assets/XGGjX0z3ae_AWeTr2.js} +1 -1
  310. package/{browser/esm/DjyzSKZNfvxPmFqi.mjs → cdn/assets/ZGRko_YhO95NyKLu.js} +788 -788
  311. package/cdn/assets/{BgwzL8v2pmR5HJXW2.js → _WaFh_cvGeblogUn.js} +1 -1
  312. package/cdn/assets/{CcOMQhQN8PPKQulw2.js → hbYg8nwB--Ouo3PE2.js} +18 -18
  313. package/cdn/assets/{hqW1sMr576y2S1qX.js → kgHG0ixsMXmNdu8U.js} +7 -7
  314. package/cdn/assets/{C3A-yJ12PN-CPPnI.js → p-0E4OSYsnvo4Jvb.js} +1 -1
  315. package/cdn/assets/{C_W3L9-im26Qc-Ub.js → qBcxlsrimi009WnV.js} +2 -2
  316. package/{browser/esm/BQhVWbI9uag9iRfX2.mjs → cdn/assets/rUQqpcI_WXcsiwea.js} +1 -1
  317. package/{browser/esm/CyS1VLOdAweeZsMV.mjs → cdn/assets/yg7AU6dKBI7tCqJd.js} +1 -1
  318. package/cdn/index.js +2 -2
  319. package/package.json +3 -3
  320. package/browser/cjs/00npLPxW7DhY7cIJ.cjs +0 -5
  321. package/browser/cjs/1gbSV4OYBoEWTygY2.cjs +0 -1
  322. package/browser/cjs/BC3OSmoFNyA52TRp2.cjs +0 -1
  323. package/browser/cjs/BFmgMQoM5sQsWIxf2.cjs +0 -1
  324. package/browser/cjs/CBLwtHFYNB1BTpSS.cjs +0 -1
  325. package/browser/cjs/CGtG2pvGgTAnImBg2.cjs +0 -8
  326. package/browser/cjs/CKtdmbeMjJ2udO8s.cjs +0 -1
  327. package/browser/cjs/CVHRh1RGDSgqfAm4.cjs +0 -2
  328. package/browser/cjs/CcqhH_Ign02tLFbU2.cjs +0 -1
  329. package/browser/cjs/CdsreHc3A0wBhEy9.cjs +0 -14
  330. package/browser/cjs/CgyU8XPzm6O1a93m.cjs +0 -41
  331. package/browser/cjs/CzGNIWwu8KL3tcCO2.cjs +0 -1
  332. package/browser/cjs/D-8QQWC-67PplJdV2.cjs +0 -1
  333. package/browser/cjs/DCVnwgmc5HuYp_iv2.cjs +0 -1
  334. package/browser/cjs/DOEhH2HGT1Zv0irr2.cjs +0 -1
  335. package/browser/cjs/DWyoF5GqKXce_GmT2.cjs +0 -3
  336. package/browser/cjs/Dp2fPEReFhDsI01j.cjs +0 -3
  337. package/browser/cjs/Dx79LP1-YCQg8B872.cjs +0 -1
  338. package/browser/cjs/Qp04O3ALK3M9d3At.cjs +0 -54
  339. package/browser/cjs/qA_ElZ6f49Un56OC.cjs +0 -1
  340. package/browser/cjs/s2c8Pr4obSACz8Lu2.cjs +0 -1
  341. package/browser/cjs/uAWsHfi-JD_ZQIT82.cjs +0 -1
  342. package/browser/cjs/y4KFnuCKf8r5oFal2.cjs +0 -1
  343. package/cdn/assets/S4MMwlNd4kcK3RDU.js +0 -24
  344. package/cdn/assets/S4MMwlNd4kcK3RDU2.js +0 -24
  345. /package/browser/cjs/{4nReftSsKWmnRdtf.cjs → 4nReftSsKWmnRdtf2.cjs} +0 -0
  346. /package/browser/cjs/{BAxVLKkxFgI6cXnR2.cjs → BAxVLKkxFgI6cXnR.cjs} +0 -0
  347. /package/browser/cjs/{BK0SCfN_VZYqBxoQ2.cjs → BK0SCfN_VZYqBxoQ.cjs} +0 -0
  348. /package/browser/cjs/{BWDfauDHqB6U_2ka2.cjs → BWDfauDHqB6U_2ka.cjs} +0 -0
  349. /package/browser/cjs/{BcROQ4pvVajDQ1em.cjs → BcROQ4pvVajDQ1em2.cjs} +0 -0
  350. /package/browser/cjs/{BvG8N7G_8CXIAlT-.cjs → BvG8N7G_8CXIAlT-2.cjs} +0 -0
  351. /package/browser/cjs/{C0g87ndP2zMUbX6f2.cjs → C0g87ndP2zMUbX6f.cjs} +0 -0
  352. /package/browser/cjs/{C2uDl8VIJqh58YF_2.cjs → C2uDl8VIJqh58YF_.cjs} +0 -0
  353. /package/browser/cjs/{CaJGoNwTL6pAJ6a42.cjs → CaJGoNwTL6pAJ6a4.cjs} +0 -0
  354. /package/browser/cjs/{CfXcRa4RlFmqU0Op.cjs → CfXcRa4RlFmqU0Op2.cjs} +0 -0
  355. /package/browser/cjs/{DM7-R_ltoLbA9jde.cjs → DM7-R_ltoLbA9jde2.cjs} +0 -0
  356. /package/browser/cjs/{DSXLVieENYN9qXYl.cjs → DSXLVieENYN9qXYl2.cjs} +0 -0
  357. /package/browser/cjs/{Dx7GQ4ALtNG3kshu.cjs → Dx7GQ4ALtNG3kshu2.cjs} +0 -0
  358. /package/browser/cjs/{PmwvZPFhqmL4DO58.cjs → PmwvZPFhqmL4DO582.cjs} +0 -0
  359. /package/browser/cjs/{aONv0Ys3C8xmnaR82.cjs → aONv0Ys3C8xmnaR8.cjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.3
2
+ * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.8.0-beta.4
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.
@@ -49,7 +49,7 @@ var e = class {
49
49
  return Promise.resolve();
50
50
  }
51
51
  terminate() {}
52
- }, n = "var yt = Object.defineProperty, Yt = (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}, Zt = (e, t) => {\n let r = {};\n for (var n in e) yt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || yt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, wt = Object.defineProperty, he = (e, t) => {\n let r = {};\n for (var n in e) wt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || wt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, ue = {\n Column: \"column\",\n Row: \"row\"\n};\n({ ...ue });\nfunction Be(e, t) {\n if (e === t) return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor) return !1;\n let r, n, o;\n if (Array.isArray(e)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (!Be(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 (!Be(n[1], t.get(n[0]))) return !1;\n return !0;\n }\n if (e instanceof Set && t instanceof Set) {\n if (e.size !== t.size) return !1;\n for (n of e.entries()) if (!t.has(n[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(e) && ArrayBuffer.isView(t)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (e[n] !== t[n]) return !1;\n return !0;\n }\n if (e.constructor === RegExp) return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString) return e.toString() === t.toString();\n if (o = Object.keys(e), r = o.length, r !== Object.keys(t).length) return !1;\n for (n = r; n-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, o[n])) return !1;\n for (n = r; n-- !== 0;) {\n let a = o[n];\n if ((a !== \"_owner\" || !e.$$typeof) && !Be(e[a], t[a])) return !1;\n }\n return !0;\n }\n return e != e && t != t;\n}\nfunction en(e) {\n let t = Object.prototype.toString.call(e);\n return t === \"[object RegExp]\" || t === \"[object Date]\" || (function(r) {\n return r.$$typeof === tn;\n })(e);\n}\nvar tn = typeof Symbol == \"function\" && Symbol.for ? /* @__PURE__ */ Symbol.for(\"react.element\") : 60103;\nfunction rn(e) {\n return /* @__PURE__ */ (function(t) {\n return !!t && typeof t == \"object\";\n })(e) && !en(e);\n}\nfunction Ne(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Ee((r = e, Array.isArray(r) ? [] : {}), e, t) : e;\n var r;\n}\nfunction nn(e, t, r) {\n return e.concat(t).map(function(n) {\n return Ne(n, r);\n });\n}\nfunction bt(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 St(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction on(e, t, r) {\n let n = {};\n return r.isMergeableObject(e) && bt(e).forEach(function(o) {\n n[o] = Ne(e[o], r);\n }), bt(t).forEach(function(o) {\n (function(a, l) {\n return St(a, l) && !(Object.hasOwnProperty.call(a, l) && Object.propertyIsEnumerable.call(a, l));\n })(e, o) || (St(e, o) && r.isMergeableObject(t[o]) ? n[o] = (function(a, l) {\n if (!l.customMerge) return Ee;\n let i = l.customMerge(a);\n return typeof i == \"function\" ? i : Ee;\n })(o, r)(e[o], t[o], r) : n[o] = Ne(t[o], r));\n }), n;\n}\nfunction Ee(e, t, r) {\n (r ||= {}).arrayMerge = r.arrayMerge || nn, r.isMergeableObject = r.isMergeableObject || rn, r.cloneUnlessOtherwiseSpecified = Ne;\n let n = Array.isArray(t);\n return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : on(e, t, r) : Ne(t, r);\n}\nEe.all = function(e, t) {\n if (!Array.isArray(e)) throw Error(\"first argument should be an array\");\n return e.reduce(function(r, n) {\n return Ee(r, n, t);\n }, {});\n};\nvar Qt = he({\n DonePromise: () => ln,\n EmptyArray: () => _e,\n EmptyObject: () => an,\n OSType: () => fe,\n arrayMove: () => Tn,\n asNumber: () => dn,\n camelToPrettyCase: () => cn,\n castToString: () => Cn,\n cloneObject: () => gn,\n consoleWithNoSource: () => Ln,\n deepEqual: () => Be,\n deepFreeze: () => sr,\n deepMerge: () => Ee,\n diffValues: () => En,\n findEqualOrGreater: () => vn,\n findEqualOrLesser: () => xn,\n getFromPath: () => _n,\n getPlatform: () => Xe,\n isDefined: () => An,\n isEmpty: () => In,\n isEqualArrays: () => tr,\n isEqualBounds: () => yn,\n isNullOrUndefined: () => ir,\n isNumeric: () => fn,\n isObject: () => ke,\n isPromiseLike: () => $n,\n isRectInsideRect: () => Rn,\n isRectIntersect: () => lr,\n mergeContentful: () => Sn,\n removeEmptyProperties: () => rr,\n removeEqualValues: () => or,\n removeEqualValuesLayered: () => ar,\n removeListenerAll: () => wn,\n roundAccurately: () => mn,\n setToPath: () => kn,\n splitNumber: () => pn,\n subtractRect: () => Nn,\n textToKey: () => un,\n toSafeJSON: () => at,\n transpose: () => bn,\n uuidV4: () => Ke,\n validEnumValue: () => sn\n}), _e = Object.freeze([]), an = Object.freeze({}), ln = Promise.resolve(), er = (e) => e;\nfunction sn(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 cn(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 un(e) {\n return e.replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n}\nvar ie = Array.from({ length: 256 }, (e, t) => (t + 256).toString(16).slice(1));\nfunction Ke() {\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, ie[t[0]] + ie[t[1]] + ie[t[2]] + ie[t[3]] + \"-\" + ie[t[4]] + ie[t[5]] + \"-\" + ie[t[6]] + ie[t[7]] + \"-\" + ie[t[8]] + ie[t[9]] + \"-\" + ie[t[10]] + ie[t[11]] + ie[t[12]] + ie[t[13]] + ie[t[14]] + ie[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 dn(e) {\n let t = (function(r) {\n return 1 * r;\n })(e);\n return Number.isFinite(t) ? t : 0;\n}\nfunction fn(e) {\n let t = 1 * e;\n return Number.isFinite(t) && typeof t == \"number\";\n}\nvar We = [\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 pn(e) {\n let t = Math.abs(e);\n if (!Number.isFinite(t)) return null;\n let r = Math.trunc(t), n = t - r, o;\n r > 2 ** 53 - 1 ? o = Number(r.toExponential().split(\"e\")[1]) + 1 : (o = Math.ceil(Math.log10(r + 1)), We[o] <= r && o++);\n let a = 0, l = 0, i = 15 - o;\n if (n > 0 && i > 0) {\n let u = We[i];\n if (a = Math.round(n * u), a === u) r++, a = 0, r >= We[o] && o++;\n else if (a > 0) for (l = i; a % 10 == 0;) a /= 10, l--;\n }\n return {\n ip: e < 0 ? -r : r,\n fp: a,\n ipLength: o,\n fpLength: l\n };\n}\nfunction mn(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 gn(e) {\n return ir(e) ? e : JSON.parse(JSON.stringify(e));\n}\nvar hn = (e, t) => e === t;\nfunction tr(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 ||= hn;\n let n = e.length;\n for (let o = 0; o < n; o++) if (!r(e[o], t[o])) return !1;\n return !0;\n}\nfunction yn(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 ke(e) {\n return typeof e == \"object\" && !Array.isArray(e) && e !== null;\n}\nfunction rr(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\" ? rr(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 wn(e, t) {\n if (!e) return _e;\n let r = e.length;\n for (let n = 0; n < r; n++) {\n let o = e[n];\n o && o(t);\n }\n return _e;\n}\nfunction bn(e) {\n if (!e) return e;\n let t = e.length, r = e[0].length, n = [];\n for (let o = 0; o < r; o++) n[o] = Array(t);\n for (let o = 0; o < t; o++) {\n let a = e[o];\n for (let l = 0; l < r; l++) n[l][o] = a[l];\n }\n return n;\n}\nvar nr = (e, t) => !(e !== t && !tr(e, t)) || !!e.isEqual?.(t);\nfunction or(e, t, r = nr) {\n if (e == null || e === t) return null;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) return r(e, t) ? null : e;\n let n = Object.keys(e), o = n.length;\n if (o === 0) return null;\n let a = !1;\n for (let l = 0; l < o; l++) {\n let i = n[l];\n or(e[i], t?.[i], r) === null && (a = !0, delete e[i]);\n }\n return a && Object.keys(e).length === 0 ? null : void 0;\n}\nfunction ar(e, t, r = nr) {\n if (e == null) return !0;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) {\n let i, u = !1;\n for (let p = 0; !u && p < t.length; p++) t[p] !== void 0 && (u = !0, i = t[p]);\n return u && (e === i || r(e, i));\n }\n let n = Object.keys(e), o = n.length;\n if (o === 0) return !0;\n let a = t.length, l = !1;\n for (let i = 0; i < o; i++) {\n let u = n[i], p = [];\n for (let h = 0; h < a; h++) {\n let c = t[h]?.[u];\n c !== void 0 && p.push(c);\n }\n ar(e[u], p, r) && (l = !0, delete e[u]);\n }\n return l && Object.keys(e).length === 0;\n}\nfunction Sn(...e) {\n let t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !ke(e[t - 1])) return e[t - 1];\n let r = e[0] || {};\n for (let n = 1; n < t; n++) r = Ee(r, e[n] || {}, { arrayMerge: (o, a) => [...a] });\n return r;\n}\nfunction En(e, t) {\n let r = {}, n = Object.keys(t), o = n.length;\n for (let a = 0; a < o; a++) {\n let l = n[a], i = e[l], u = t[l];\n i !== u && (r[l] = i === void 0 ? u : i);\n }\n return Object.keys(r).length === 0 ? null : r;\n}\nfunction vn(e, t, r = er) {\n let n = 0, o = e.length - 1;\n for (; n <= o;) {\n let a = Math.floor((n + o) / 2), l = r(e[a]);\n if (l === t) return a;\n l < t ? n = a + 1 : o = a - 1;\n }\n return n;\n}\nfunction xn(e, t, r = er) {\n let n = e.length - 1, o = 0;\n for (; n >= o;) {\n let a = Math.floor((n + o) / 2), l = r(e[a]);\n if (l === t) return a;\n l > t ? n = a - 1 : o = a + 1;\n }\n return n;\n}\nfunction Tn(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 Cn(e) {\n return e == null || e === void 0 ? \"\" : typeof e == \"string\" ? e : \"\" + e;\n}\nfunction ir(e) {\n return e == null;\n}\nfunction An(e) {\n return e != null;\n}\nfunction In(e) {\n return e == null || e === \"\";\n}\nfunction $n(e) {\n return !!e && typeof e.then == \"function\";\n}\nfunction lr(e, t) {\n return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top);\n}\nfunction Rn(e, t) {\n return e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right;\n}\nfunction Nn(e, t, r = !1) {\n if (!t) return [e];\n if (!lr(e, t)) return [];\n let n = [], o = e, a = () => {\n t.top > o.top && t.top < o.bottom && (n.push({\n ...o,\n bottom: t.top\n }), o = {\n ...o,\n top: t.top\n });\n }, l = () => {\n t.bottom > o.top && t.bottom < o.bottom && (n.push({\n ...o,\n top: t.bottom\n }), o = {\n ...o,\n bottom: t.bottom\n });\n }, i = () => {\n t.right > o.left && t.right < o.right && (n.push({\n ...o,\n left: t.right\n }), o = {\n ...o,\n right: t.right\n });\n }, u = () => {\n t.left > o.left && t.left < o.right && (n.push({\n ...o,\n right: t.left\n }), o = {\n ...o,\n left: t.left\n });\n };\n return r ? (u(), i(), a(), l()) : (a(), l(), i(), u()), n;\n}\nfunction _n(e, t) {\n let r = t.split(\".\"), n = e, o = r.length;\n for (let a = 0; a < o; a++) {\n let l = r[a];\n if (!n) return null;\n let i = n[l];\n if (typeof i == \"function\" && (i = i.bind(n)()), !i || !ke(i)) return i;\n n = i;\n }\n return n ?? null;\n}\nfunction kn(e, t, r) {\n let n = t.split(\".\"), o = e;\n if (!o) throw Error(\"Can not set path to a null path.\");\n let a = n.length;\n for (let l = 0; o && l < a - 1; l++) {\n let i = n[l], u = o[i];\n if (u ?? (u = {}, o[i] = u), !ke(u)) throw Error(\"Can not set path to a non object path.\");\n o = u;\n }\n if (typeof r != \"number\" && typeof r != \"boolean\" && typeof r != \"string\" && !ke(r)) throw Error(`Can not set path to ${r} that is not a a supported primitive.`);\n return o[n[a - 1]] = r, e;\n}\nfunction Ln(...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 Xe() {\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 sr(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]) || sr(t[r]);\n }), e;\n}\nfunction at(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) => at(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] = at(e[r]));\n return t;\n}\nhe({\n EmptyCell: () => cr,\n EmptyRange: () => On,\n EmptyRanges: () => Mn,\n EmptySelection: () => Dn,\n InsertCutShift: () => Se,\n cellToRange: () => jn,\n classifyInsertCut: () => Jn,\n columnFirstCellComparator: () => mr,\n columnFirstRangeComparator: () => ur,\n createCellComparator: () => Fn,\n createConflatingRanges: () => Wn,\n createRangeComparator: () => wr,\n defaultRange: () => Gn,\n extendRangeToIntersectingRanges: () => Tr,\n extendRangeToUnionRanges: () => zn,\n intersectRanges: () => vr,\n isCellWithinRange: () => Pn,\n isEqualCells: () => br,\n isEqualRanges: () => dt,\n isEqualRangesArrays: () => Er,\n isEqualSelectionCoords: () => xr,\n isRangeWithinRange: () => Sr,\n isRangesIntersect: () => ft,\n isRefusedInsertCut: () => Yn,\n isSingleCell: () => Un,\n isValidRange: () => Kn,\n mergeRangeCoordValues: () => Ar,\n reverseColumnFirstCellComparator: () => yr,\n reverseColumnFirstRangeComparator: () => pr,\n reverseRowFirstCellComparator: () => hr,\n reverseRowFirstRangeComparator: () => fr,\n rowFirstCellComparator: () => gr,\n rowFirstRangeComparator: () => dr,\n sanitizeRange: () => Cr,\n sanitizeRangeArray: () => Xn,\n translateRange: () => Vn,\n unionRanges: () => it,\n unionRangesArrays: () => Bn\n});\nvar cr = Object.freeze({\n colIndex: 0,\n rowIndex: 0\n}), On = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n}), Mn = _e, Dn = Object.freeze({\n cell: cr,\n ranges: _e,\n rangeIndex: -1\n});\nfunction ur(e, t) {\n return e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart;\n}\nfunction dr(e, t) {\n return e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart;\n}\nfunction fr(e, t) {\n return e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd;\n}\nfunction pr(e, t) {\n return e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd;\n}\nfunction mr(e, t) {\n return e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex;\n}\nfunction gr(e, t) {\n return e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex;\n}\nfunction hr(e, t) {\n return e.rowIndex === t.rowIndex ? t.colIndex - e.colIndex : t.rowIndex - e.rowIndex;\n}\nfunction yr(e, t) {\n return e.colIndex === t.colIndex ? t.rowIndex - e.rowIndex : t.colIndex - e.colIndex;\n}\nfunction wr(e = ue.Row, t = !1) {\n return t ? e === ue.Column ? pr : fr : e === ue.Column ? ur : dr;\n}\nfunction Fn(e = ue.Row, t = !1) {\n return t ? e === ue.Column ? yr : hr : e === ue.Column ? mr : gr;\n}\nfunction br(e, t) {\n return e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex && e.scope === t.scope;\n}\nfunction dt(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 Pn(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 Sr(e, t) {\n return !(!e || !t) && !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd);\n}\nfunction ft(e, t) {\n return !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd);\n}\nfunction Er(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 (!dt(e[r], t[r])) return !1;\n return !0;\n}\nfunction Un(e) {\n return !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd;\n}\nfunction jn(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 vr(e, t, r) {\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n if (!e && !t || e.rowStart > t.rowEnd || e.rowEnd < t.rowStart || e.colStart > t.colEnd || e.colEnd < t.colStart) return null;\n let n = Math.max(e.colStart, t.colStart), o = Math.max(e.rowStart, t.rowStart), a = Math.min(e.colEnd, t.colEnd), l = Math.min(e.rowEnd, t.rowEnd), i = r;\n return i ? (i.colStart = n, i.rowStart = o, i.colEnd = a, i.rowEnd = l) : i = {\n colStart: n,\n rowStart: o,\n colEnd: a,\n rowEnd: l\n }, i;\n}\nfunction it(e, t, r) {\n if (!e && !t) return null;\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n let n = Math.min(e.colStart, t.colStart), o = Math.min(e.rowStart, t.rowStart), a = Math.max(e.colEnd, t.colEnd), l = Math.max(e.rowEnd, t.rowEnd), i = r;\n return i ? (i.colStart = n, i.rowStart = o, i.colEnd = a, i.rowEnd = l) : i = {\n colStart: n,\n rowStart: o,\n colEnd: a,\n rowEnd: l\n }, i;\n}\nfunction xr(e, t) {\n return e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!br(e.cell, t.cell) && Er(e.ranges, t.ranges);\n}\nfunction Bn(e, t, r) {\n if (!e || e.length === 0) return null;\n if (e.length === 1 && !t) return e[0];\n let n = e[0];\n for (let o = 1; o < e.length; o++) n = it(n, e[o], r);\n return t && (n = it(n, t, r)), n;\n}\nfunction Kn(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 zn(e, t) {\n if (!t || t.length === 0) return e;\n let r = e, n = null;\n for (; !dt(r, n);) n = r, r = Tr(n, t);\n return r;\n}\nfunction Tr(e, t) {\n if (!t || t.length === 0) return e;\n let r = { ...e };\n for (let n = 0; n < t.length; n++) {\n let o = t[n];\n ft(r, o) && (r.rowStart = Math.min(r.rowStart, o.rowStart), r.colStart = Math.min(r.colStart, o.colStart), r.rowEnd = Math.max(r.rowEnd, o.rowEnd), r.colEnd = Math.max(r.colEnd, o.colEnd));\n }\n return r;\n}\nfunction Vn(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 Cr(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 Xn(e, t) {\n if (!e) return null;\n let r = e.length, n = Array(r);\n for (let o = 0; o < r; o++) n[o] = Cr(e[o], t);\n return n;\n}\nfunction Gn(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], Hn = (e, t, r) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Ar(e, t = 2, r, n = ue.Row, o) {\n let a = [...e];\n if (t <= 0 || e.length <= 1) return a;\n let l = n === ue.Column, i = 0, u = !1;\n do {\n let p = a.sort(wr(l ? ue.Row : ue.Column));\n a = [], a.push(p[0]);\n let h = p.length, c = 0, g = p[0], T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n for (let v = 1; v < h; v++) {\n let C = p[v], R = !1;\n if (R = l ? g && I === C.rowStart && q === C.rowEnd && M + 1 === C.colStart : g && T === C.colStart && M === C.colEnd && q + 1 === C.rowStart, R) {\n let U = {\n colStart: T,\n rowStart: I,\n colEnd: l ? C.colEnd : M,\n rowEnd: l ? q : C.rowEnd\n };\n if (g.value !== void 0 && (U.value = g.value), r) {\n let Z = o ?? [null, null];\n Z[0] = g, Z[1] = C, U = r(Z, U, n);\n }\n if (U) {\n a[c] = U, u = !0, g = U, T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n continue;\n }\n }\n a[++c] = C, g = C, T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n }\n i++, l = !l, i === 1 && (u = !0);\n } while (i < t && u && a.length > 1);\n return a;\n}\nfunction Wn(e, t = !1) {\n let r = [], n, o = null, a = -(2 ** 53 - 1), l = -(2 ** 53 - 1);\n return {\n append: (i, u, p) => {\n let h = !0, c = p !== void 0;\n if (c) {\n let I = e ? e(n, p, t) : n === p ? p : void 0;\n I === void 0 ? h = !1 : p = I;\n }\n if (h && u === l + 1 && i === a) return t ? o.rowEnd = u : o.colEnd = u, l = u, void (n = p);\n o && r.push(o);\n let g = t ? i : u, T = t ? u : i;\n o = {\n colStart: g,\n rowStart: T,\n colEnd: g,\n rowEnd: T\n }, c && (o.value = p), a = i, l = u, n = p;\n },\n done: (i) => (o &&= (r.push(o), null), i ? Ar(r, 3, i === !0 ? Hn : i, t ? ue.Column : ue.Row, qn) : r)\n };\n}\nvar Se = {\n Close: \"close\",\n Blank: \"blank\",\n Inside: \"inside\",\n Tear: \"tear\"\n};\nfunction Jn(e, t, r) {\n let n = r === ue.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) ? Se.Inside : Se.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) ? Se.Tear : Se.Blank;\n}\nfunction Yn(e) {\n return e === Se.Inside || e === Se.Tear;\n}\nvar Y = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, H = {\n Html: \"text/html\",\n Plain: \"text/plain\",\n Png: \"image/png\"\n};\nhe({\n findNextCellWithinSelection: () => Ir,\n traverseHiddenHeaders: () => de\n});\nfunction de(e, t, r, n) {\n if (!e) return t;\n let o = t, a = r === Y.Right || r === Y.Down;\n for (;;) {\n let l = e(o, !a);\n if (l === 0) return o;\n let i = a ? o + l : o - l;\n if (n !== void 0 && (a ? i > n : i < n)) return n;\n o = i;\n }\n}\nfunction Ir(e, t = Y.Right, r, n, o, a = null) {\n if (a && xr(a, e)) return e;\n let l = e.ranges, i = e.rangeIndex, u = l[i];\n if (!ft({\n rowStart: e.cell.rowIndex,\n colStart: e.cell.colIndex,\n rowEnd: e.cell.rowIndex,\n colEnd: e.cell.colIndex\n }, u)) return e;\n let p = { ...e.cell }, h = i;\n switch (t) {\n case Y.Right:\n p.colIndex = de(o, p.colIndex + 1, t, u.colEnd + 1);\n break;\n case Y.Left:\n p.colIndex = de(o, p.colIndex - 1, t, u.colStart - 1);\n break;\n case Y.Down:\n p.rowIndex = de(n, p.rowIndex + 1, t, u.rowEnd + 1);\n break;\n case Y.Up: p.rowIndex = de(n, p.rowIndex - 1, t, u.rowStart - 1);\n }\n let c = (I) => {\n if (I) {\n h = i >= l.length - 1 ? 0 : i + 1;\n let M = l[h];\n p = {\n colIndex: M.colStart,\n rowIndex: M.rowStart\n };\n } else {\n h = i <= 0 ? l.length - 1 : i - 1;\n let M = l[h];\n p = {\n colIndex: M.colEnd,\n rowIndex: M.rowEnd\n };\n }\n };\n if (t === Y.Right && p.colIndex > u.colEnd && p.rowIndex === u.rowEnd) c(!0);\n else if (t === Y.Left && p.colIndex < u.colStart && p.rowIndex === u.rowStart) c(!1);\n else if (t === Y.Down && p.colIndex === u.colEnd && p.rowIndex > u.rowEnd) c(!0);\n else if (t === Y.Up && p.colIndex === u.colStart && p.rowIndex < u.rowStart) c(!1);\n else {\n let I = p.rowIndex, M = p.colIndex;\n switch (t) {\n case Y.Right:\n M > u.colEnd && (I = de(n, I + 1, t, u.rowEnd + 1), M = u.colStart, I > u.rowEnd && (I = u.rowStart));\n break;\n case Y.Left:\n M < u.colStart && (I = de(n, I - 1, t, u.rowStart - 1), M = u.colEnd, I < u.rowStart && (I = u.rowEnd));\n break;\n case Y.Down:\n I > u.rowEnd && (M = de(o, M + 1, t, u.colEnd + 1), I = u.rowStart, M > u.colEnd && (M = u.colStart));\n break;\n case Y.Up: I < u.rowStart && (M = de(o, M - 1, t, u.colStart - 1), I = u.rowEnd, M < u.colStart && (M = u.colEnd));\n }\n p = {\n rowIndex: I,\n colIndex: M\n };\n }\n let g = r(p);\n if (!Sr(g, u)) {\n let I = vr(g, u);\n I && (g = I);\n }\n let T = {\n rowStart: de(n, g.rowStart, Y.Down, g.rowEnd),\n colStart: de(o, g.colStart, Y.Right, g.colEnd),\n rowEnd: de(n, g.rowEnd, Y.Up, g.rowStart),\n colEnd: de(o, g.colEnd, Y.Left, g.colStart)\n };\n if (T.rowStart !== p.rowIndex || T.colStart !== p.colIndex) {\n switch (t) {\n case Y.Right:\n l[h].colStart === T.colStart && l[h].colEnd === T.colEnd && (p.rowIndex = T.rowEnd), p.colIndex = T.colEnd;\n break;\n case Y.Left:\n l[h].colStart === T.colStart && l[h].colEnd === T.colEnd && (p.rowIndex = T.rowStart), p.rowIndex === T.rowStart ? p.colIndex = T.colStart + 1 : p.colIndex = T.colStart;\n break;\n case Y.Down:\n l[h].rowStart === T.rowStart && l[h].rowEnd === T.rowEnd && (p.colIndex = T.colEnd), p.rowIndex = T.rowEnd;\n break;\n case Y.Up: l[h].rowStart === T.rowStart && l[h].rowEnd === T.rowEnd && (p.colIndex = T.colStart), p.colIndex === T.colStart ? p.rowIndex = T.rowStart + 1 : p.rowIndex = T.rowStart;\n }\n return Ir({\n cell: p,\n ranges: e.ranges,\n rangeIndex: h\n }, t, r, n, o, a ?? e);\n }\n return {\n ranges: e.ranges,\n cell: p,\n rangeIndex: h\n };\n}\nvar Zn = 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 a = this._onceMessageKeys;\n if (a.has(r.onceKey)) return;\n a.add(r.onceKey);\n }\n let n = r?.meta, o = this._overrides;\n if (o) {\n let a = o[e];\n if (a) return void a.bind(o)(t, r);\n }\n n === void 0 ? console[e](t) : console[e](t, n);\n }\n log(e, t) {\n return this._write(\"log\", e, t);\n }\n error(e, t) {\n return this._write(\"error\", e, t);\n }\n warn(e, t) {\n return this._write(\"warn\", e, t);\n }\n debug(e, t) {\n return this._write(\"debug\", e, t);\n }\n};\nnew Zn();\nvar Je;\nhe({\n EmptyBounds: () => to,\n EmptyRect: () => eo,\n EmptyTopLeft: () => Qn\n});\nvar Qn = Object.freeze({\n left: 0,\n top: 0\n}), eo = Object.freeze({\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n}), to = Object.freeze({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n});\nhe({\n canUseDOM: () => $r,\n getDPI: () => no,\n hasFocus: () => Rr,\n openFileDialog: () => ro,\n scrollIntoContainer: () => oo,\n whenFocus: () => ao\n});\nvar $r = !(typeof window > \"u\" || !window.document || !window.document.createElement), ro = (e = \"*.*\") => new Promise((t, r) => {\n if (!$r) return void r(\"Unable to open dialog with no dom.\");\n let n = document.createElement(\"input\");\n n.type = \"file\", n.accept = e;\n let o = null, a = !1;\n globalThis.addEventListener?.(\"focus\", () => {\n setTimeout(() => {\n o || a || (a = !0, t(null));\n }, 1e3);\n }, {\n once: !0,\n passive: !0\n }), n.onchange = () => {\n if (o = n.files?.[0] ?? null, o) {\n if (a) return void console.warn(\"File open detected after faux cancel.\", o);\n t(o);\n }\n }, n.autofocus = !0, n.click();\n}), no = () => {\n let e = 1;\n return typeof window == \"object\" && (e = window.devicePixelRatio || 1), e;\n}, Rr = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), oo = (e, t, r = \"auto\") => {\n if ((() => {\n if (Je === void 0) {\n let u = !1;\n try {\n document.createElement(\"div\").scrollIntoView({ get container() {\n return u = !0, \"nearest\";\n } });\n } catch {}\n Je = u;\n }\n return Je;\n })()) return void t.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n behavior: r,\n container: \"nearest\"\n });\n let n = e.getBoundingClientRect(), o = t.getBoundingClientRect(), a = n.top + e.clientTop, l = a + e.clientHeight, i = 0;\n o.top < a ? i = o.top - a : o.bottom > l && (i = Math.min(o.bottom - l, o.top - a)), i !== 0 && e.scrollBy({\n top: i,\n behavior: r\n });\n}, ao = async (e, t = !1) => new Promise((r) => {\n Rr(e, t) ? r(!0) : e.addEventListener(\"focusin\", () => {\n r(!0);\n }, { once: !0 }), e.focus();\n});\nhe({\n cancelTimeout: () => fo,\n debounce: () => so,\n nextTick: () => uo,\n rafThrottle: () => co,\n requestTimeout: () => po,\n throttle: () => lo\n});\nvar Le = globalThis.requestAnimationFrame, io = globalThis.cancelAnimationFrame;\nfunction lo(e, t) {\n let r = null;\n return (...n) => {\n let o = Date.now();\n (!r || o - r >= t) && (r = o, e(...n));\n };\n}\nfunction so(e, t = 300, r = !1) {\n let n, o, a, l = null, i = 0;\n function u() {\n let h = Date.now() - i;\n h < t && h >= 0 ? l = setTimeout(u, t - h) : (l = null, r || (a = e.apply(o, n), o = n = null));\n }\n t ??= 100;\n let p = function() {\n o = globalThis, n = arguments, i = Date.now();\n var h = r && !l;\n return l ||= setTimeout(u, t), h && (a = e.apply(o, n), o = n = null), a;\n };\n return p.clear = function() {\n l &&= (clearTimeout(l), null);\n }, p.flush = function() {\n l &&= (a = e.apply(o, n), o = n = null, clearTimeout(l), null);\n }, p;\n}\nvar co = (e) => {\n let t, r = !1, n = function() {\n r = !1, e(t);\n };\n return function(o) {\n t = o, t && t.persist && t.persist(), r || (r = !0, Le(n));\n };\n}, uo = (e) => {\n if (typeof Le == \"function\") Le(() => {\n e();\n });\n else {\n let t = globalThis.setImmediate;\n (typeof t == \"function\" ? t : setTimeout)(() => {\n e();\n });\n }\n}, Et = typeof performance == \"object\" && typeof performance.now == \"function\" ? () => performance.now() : () => Date.now(), fo = (e) => {\n io(e.id);\n}, po = (e, t) => {\n let r = Et(), n = { id: Le(function o() {\n Et() - r >= t ? e.call(null) : n.id = Le(o);\n }) };\n return n;\n};\nhe({ MESSAGE_ERROR_INVALID_ARG: () => mo });\nvar mo = (e) => `Invalid argument: '${e}'.`;\nhe({\n APP_MIME_TYPE: () => go,\n DEFAULT_MIME_TYPE: () => \"*/*\",\n JSONStableStringify: () => So,\n arrayBufferToBase64: () => Nr,\n base64ToArrayBuffer: () => bo,\n blobToString: () => lt,\n isLittleEndian: () => wo,\n isNodeBuffer: () => ho,\n isSharedArrayBufferSupported: () => yo\n});\nvar go = \"application/octet-stream\", Ae = globalThis.Buffer, ho = (e) => Ae?.isBuffer(e) ?? !1, yo = typeof SharedArrayBuffer == \"function\" && (globalThis.crossOriginIsolated === void 0 || globalThis.crossOriginIsolated === !0), wo = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1, vt = globalThis.FileReader, bo = (e) => {\n let t = typeof globalThis.atob == \"function\" ? globalThis.atob(e) : Ae.from(e, \"base64\").toString(\"binary\"), r = t.length, n = new Uint8Array(r);\n for (let o = 0; o < r; o++) n[o] = t.charCodeAt(o);\n return n.buffer;\n}, Nr = (e) => {\n let t = new Uint8Array(e), r = t.byteLength, n = \"\";\n for (let o = 0; o < r; o++) n += String.fromCharCode(t[o]);\n if (typeof globalThis.btoa == \"function\") return globalThis.btoa(n);\n if (Ae) return Ae.from(n, \"binary\").toString(\"base64\");\n throw Error(\"Unsupported environment\");\n}, lt = (e) => new Promise((t, r) => {\n if (e) if (vt) {\n let n = new vt();\n n.onload = () => {\n t(n.result);\n }, n.onerror = () => {\n r(n.error);\n }, n.readAsText(e);\n } else if (Ae) {\n let n = (o) => Ae.from(o).toString(\"utf-8\");\n e.arrayBuffer().then((o) => {\n t(n(o));\n }).catch((o) => {\n r(o);\n });\n } else r(/* @__PURE__ */ Error(\"Unsupported environment\"));\n else t(\"\");\n});\nfunction So(e, t) {\n t ||= {}, typeof t == \"function\" && (t = { cmp: t });\n let r = typeof t.cycles == \"boolean\" && t.cycles, n = t.cmp && (o = t.cmp, function(l) {\n return function(i, u) {\n return o({\n key: i,\n value: l[i]\n }, {\n key: u,\n value: l[u]\n });\n };\n });\n var o;\n let a = [];\n return (function l(i) {\n if (i && i.toJSON && typeof i.toJSON == \"function\" && (i = i.toJSON()), i === void 0) return;\n if (typeof i == \"number\") return isFinite(i) ? \"\" + i : \"null\";\n if (typeof i != \"object\") return JSON.stringify(i);\n let u;\n if (Array.isArray(i)) {\n u = \"[\";\n for (let c = 0; c < i.length; c++) c && (u += \",\"), u += l(i[c]) || \"null\";\n return u + \"]\";\n }\n if (i === null) return \"null\";\n if (a.indexOf(i) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw TypeError(\"Converting circular structure to JSON\");\n }\n let p = a.push(i) - 1, h = Object.keys(i).sort(n && n(i));\n u = \"\";\n for (let c = 0; c < h.length; c++) {\n let g = h[c], T = l(i[g]);\n T && (u && (u += \",\"), u += JSON.stringify(g) + \":\" + T);\n }\n return a.splice(p, 1), \"{\" + u + \"}\";\n })(e);\n}\nvar Eo;\nhe({\n DATA_URL_PNG_PREFIX: () => _r,\n getImageDataUrl: () => vo,\n loadImageDetails: () => xo\n});\nvar _r = \"data:image/png;base64,\", kr = \"Unable to resolve image.\", xt = (e) => new Promise(async (t, r) => {\n let n = null;\n try {\n let o = n = new Image();\n o.src = e, o.addEventListener(\"load\", function() {\n t({\n width: o.naturalWidth,\n height: o.naturalHeight\n });\n }, { once: !0 }), o.addEventListener(\"error\", function(a) {\n URL.revokeObjectURL(e);\n let l = a?.error?.message ?? \"\";\n l &&= `: ${l}`, r(`Invalid Image${l}`);\n }, { once: !0 }), await o.decode();\n } catch {\n n?.src && URL.revokeObjectURL(n.src);\n }\n n || r(Error(kr));\n}), vo = (e, t = 1) => new Promise(async (r, n) => {\n let o = null;\n try {\n let a = o = new Image();\n a.src = e, a.addEventListener(\"load\", function() {\n try {\n let l = document.createElement(\"canvas\");\n l.width = a.naturalWidth, l.height = a.naturalHeight;\n let i = l.getContext(\"2d\");\n if (!i) throw Error(\"Unable to create 2d context\");\n i.drawImage(a, 0, 0);\n let u = l.toDataURL(\"image/png\", t);\n r({\n elemImg: a,\n dataUrl: u\n });\n } catch (l) {\n URL.revokeObjectURL(e), n(l);\n }\n }, { once: !0 }), a.addEventListener(\"error\", function() {\n URL.revokeObjectURL(e), n(\"Invalid Image\");\n }, { once: !0 }), await a.decode();\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || n(Error(kr));\n}), Ye = \"image/svg+xml\", xo = async (e, t = null) => {\n let r = null, n = async () => {\n try {\n let a = t ?? \"image/*\", l = URL.createObjectURL(new Blob([e], { type: a }));\n r = {\n mimeType: a,\n naturalSize: await xt(l),\n asUrl: l\n };\n } catch {}\n }, o = async () => {\n try {\n let a = new TextDecoder().decode(e), l = URL.createObjectURL(new Blob([a], { type: Ye })), i = await xt(l);\n r = {\n mimeType: t ?? Ye,\n naturalSize: i,\n asUrl: l,\n asSVGText: a\n };\n } catch {}\n };\n if (t === Ye ? await o() : t?.startsWith(\"image/\") ? await n() : (await n(), r || await o()), !r) throw Error(\"Failed to load image\");\n return r;\n}, Tt = /* @__PURE__ */ new Set(), To = (e) => {\n Tt.has(e) || (Tt.add(e), console.warn(`Unknown property '${e}' in update; ignoring.`));\n};\n(function(e) {\n e.PassThrough = Object.freeze({});\n let t = e.resolveTypedUpdates = (r, n, o, a, l = !1) => {\n if (r === null) return r;\n if (r === void 0) return a;\n let i = r;\n if (n?.shorthand) {\n let c = n?.shorthand(r, o);\n c !== void 0 && (i = c);\n }\n if (i !== null && n?.getSubType) {\n let c = n.getSubType(i, a);\n c && (n = c);\n }\n let u = n?.properties, p = n?.arrayType ?? !1, h = i;\n if (n && n.merge && h && a) h = n.merge(h, a, o);\n else if (!p && u) {\n let c = Object.keys({\n ...i,\n ...a\n });\n h = null;\n let g = c.length;\n for (let T = 0; T < g; T++) {\n let I = c[T], M, q = i?.[I];\n if (q !== void 0) {\n let v = u[I];\n if (!v) {\n To(I);\n continue;\n }\n M = t(q, v, o, a?.[I], l);\n } else M = a?.[I];\n M == null ? l && q === null && (h ??= {}, h[I] = null) : (h ??= {}, h[I] = M);\n }\n }\n return h;\n };\n})(Eo ||= {});\nvar pt = {\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}, Lr = {\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}, Ct = Xe() === fe.Safari ? pt : Lr, Co = {\n Safari: pt,\n Perms: Lr,\n PermsWrite: Ct,\n PermsRead: Ct\n}, Ze = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.(\"focus\", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), Qe = async (e, t, r) => {\n if (Xe() === fe.Safari) return await r(Error(pt.message));\n try {\n let n = async (l) => {\n try {\n return await l();\n } catch (i) {\n if (i.message?.includes(\"Document is not focused\")) return !1;\n throw i;\n }\n }, o = await globalThis?.navigator?.permissions?.query({\n name: e,\n allowWithoutGesture: !0,\n allowWithoutSanitization: !0\n }), a = !1;\n if (o.state === \"prompt\" && (a = await n(t)), a || o.state !== \"granted\" || (a = await t()), !a) return await r(Error(o.state));\n } catch (n) {\n return n.message === \"No valid data on clipboard\" || n.name === \"DataError\" ? void 0 : await r(n);\n }\n}, Or = async (e) => {\n if (!e) return null;\n try {\n return await e.read({ unsanitized: [H.Html] });\n } catch {}\n return await e.read();\n}, Ao = async (e, t) => {\n if (!e) return null;\n let r = await Or(e), n = !1;\n for (let o = 0; !n && r && o < r.length; o++) if (n = r[o].types.includes(t), n) return await r[o].getType(t);\n return null;\n};\nif (!globalThis.ClipboardItem) {\n let e = (r, n) => new Blob([n], { type: r });\n class t {\n constructor(n, o) {\n this._items = {}, this._types = Object.keys(n);\n let a = {}, l = Object.keys(n);\n for (let i = 0; i < l.length; i++) {\n let u = l[i], p = n[u];\n a[u] = typeof p == \"string\" ? e(u, p) : p;\n }\n this._items = a, this._presentationStyle = o?.presentationStyle ?? \"unspecified\";\n }\n get types() {\n return this._types;\n }\n getType(n) {\n return Promise.resolve(this._items[n]);\n }\n supports(n) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nvar At, st = async (e, t = H.Html) => new Promise(async (r, n) => {\n try {\n let o = await Ao(e, t);\n if (o) {\n let a = new FileReader();\n a.onload = () => {\n r(a.result);\n }, a.onerror = () => {\n r(\"\");\n }, a.readAsText(o);\n } else r(\"\");\n } catch (o) {\n n(o);\n }\n}), It = async (e, t = H.Html) => {\n let r = await st(e, t);\n if (!r) return null;\n let n = null;\n try {\n n = new DOMParser().parseFromString(r, H.Html);\n } catch {\n console.warn(\"Can't parse html from clipboard.\");\n }\n return n;\n}, Io = async (e) => {\n e && await e.writeText(\"\");\n}, Oe = \"clipboard-uuid\", Re = \"web text/uuid\", $t = (e) => `<div style=\"display:none\" ${Oe}=\"${e}\"/>`, Rt = { type: H.Plain }, Nt = { type: H.Html }, _t = { type: Re }, $o = (e, t) => {\n let r = null;\n try {\n let n = new DOMParser().parseFromString(t, H.Html);\n n.body.firstElementChild?.setAttribute(Oe, e), r = n.getElementsByTagName(\"body\")[0].innerHTML;\n } catch (n) {\n console.warn(\"Can't embed uuid.\", n);\n }\n return r;\n}, kt = (e, t) => {\n if (!t || !e) return !1;\n try {\n let r = t.querySelectorAll(`[${Oe}=\"${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}, Lt = 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 Qe(\"clipboard-read\", async () => {\n await Ze();\n let e = await st(this._nativeClipboard, Re);\n if (!this._state || e && e === this._state.uuid) return !0;\n let t = await It(this._nativeClipboard, H.Html);\n return !this._state || (kt(this._state.uuid, t) || this.clear(), !0);\n }, async (e) => {\n e?.message === \"denied\" || e.message?.includes(\"Document is not focused\") || Xe() === 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 Qe(\"clipboard-read\", async () => {\n if (await Ze(), this._state?.uuid) {\n let t = await st(this._nativeClipboard, Re);\n if (t && t === e._state?.uuid) return !0;\n let r = await It(this._nativeClipboard, H.Html);\n if (kt(e._state?.uuid, r)) return !0;\n }\n return e._state = {\n items: await Or(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: Ke(),\n items: e,\n ref: null\n });\n }\n async _write(e) {\n if (!this._nativeClipboard) return this._state = e, this.dispatchEvent(new Event(\"clipboardwrite\")), void this.dispatchEvent(new Event(\"clipboardchange\"));\n let t = this, r = [], n = e.uuid, o = e.items ?? [], a = () => {\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 Qe(\"clipboard-write\", async () => {\n await Ze(), n && o.length === 0 && (o.push(new ClipboardItem({ [Re]: new Blob([n], _t) })), o.push(new ClipboardItem({ [H.Html]: new Blob([$t(n)], Nt) })));\n for (let l = 0; l < Math.min(1, o.length); l++) {\n let i = o[l], u = i.types.indexOf(H.Html), p = null;\n if (u !== -1 && (p = await lt(await i.getType(H.Html)), p &&= $o(n, p)), !p && i.types.includes(H.Plain)) {\n let I = await i.getType(H.Plain);\n if (I) {\n let M = null;\n typeof I == \"string\" ? (console.warn(\"text as string\", I), M = I) : M = await lt(I), M && (p = `<div ${Oe}=\"${n}\">${M}</div>`);\n }\n }\n if (!p && i.types.includes(H.Png)) {\n let I = Nr(await (await i.getType(H.Png)).arrayBuffer());\n p = `<div ${Oe}=\"${n}\"><img src=\"${_r + I}\"/></div>`;\n }\n !p && n && (p = $t(n));\n let h = new Blob([p ?? \"\"], Nt), c = {}, g = i.types, T = g.length;\n for (let I = 0; I < T; I++) {\n let M = g[I];\n c[M] = I === u ? h : i.getType(M);\n }\n p && u === -1 && (c[H.Html] = h), n && (c[Re] = new Blob([n], _t)), r.push(new ClipboardItem(c));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : await Io(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 a(), !0;\n }, async (l) => {\n this.dispatchEvent(new Event(\"clipboarderrorwrite\")), a();\n });\n }\n async writeReference(e) {\n if (!e) return void this.clear();\n let t = null, r = {};\n try {\n let o = await e.toText?.() ?? null;\n o && (r[H.Plain] = new Blob([o ?? \"\"], Rt));\n } catch (o) {\n t = o;\n }\n try {\n let o = await e.toHtml?.() ?? null;\n o && (r[H.Html] = new Blob([o], { type: H.Html }));\n } catch (o) {\n t = o, console.warn(\"export to html\", o);\n }\n try {\n let o = await e.toImage?.() ?? null;\n o && (r[H.Png] = o);\n } catch (o) {\n t = o, console.warn(\"export to png\", o);\n }\n let n = this._write({\n uuid: Ke(),\n ref: e,\n items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null\n });\n if (t) throw t;\n return n;\n }\n clear(e = !1) {\n this._state && (this._state = null, e && this._write({\n uuid: null,\n ref: null,\n items: null\n }), this.dispatchEvent(new Event(\"clipboardwrite\")), this.dispatchEvent(new Event(\"clipboardchange\")));\n }\n async readReference() {\n return await this.read(), this._state?.ref ?? null;\n }\n readText() {\n return new Promise(async (e, t) => {\n let r = await this.read(), n = null, o = r ? r.length : 0;\n for (let l = 0; !n && l < o; l++) {\n let i = r[l];\n i.types.includes(H.Plain) && (n = await i.getType(H.Plain));\n }\n if (!n) return void e(\"\");\n let a = new FileReader();\n a.onload = () => {\n e(a.result);\n }, a.readAsText(n), a.onerror = (l) => {\n t(l);\n };\n });\n }\n async writeText(e) {\n let t = [new ClipboardItem({ [H.Plain]: new Blob([e], Rt) })];\n return this._write({\n uuid: Ke(),\n items: t,\n ref: null\n });\n }\n addEventListener(e, t, r = {}) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o || (o = /* @__PURE__ */ new Map(), n.set(e, o)), t && o.set(t, typeof r == \"boolean\" ? {} : r);\n }\n dispatchEvent(e) {\n if (!e) return !1;\n let t = (r) => {\n let n = r.get(e.type);\n n && n.forEach((o, a) => {\n try {\n typeof a == \"function\" ? a(e) : a.handleEvent && a.handleEvent(e), o.once && n.delete(a);\n } catch (l) {\n console.warn(l);\n }\n });\n };\n return t(this._listenersCapture), t(this._listeners), !0;\n }\n removeEventListener(e, t, r) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o && t && (o.delete(t), o.size === 0 && n.delete(e));\n }\n close() {\n this._onFocus && globalThis.removeEventListener?.(\"focus\", this._onFocus), this._onBlur && globalThis.removeEventListener?.(\"blur\", this._onBlur);\n }\n};\n(At = Lt ||= {}).ErrorMessages = Co, At.Global = new Lt();\nvar Mr = (e) => e === \" \" || e === \" \" || e === `\n` || e === \"\\r\";\nfunction Ot(e, t) {\n for (; t.i < e.length && Mr(e[t.i]);) t.i++;\n}\nfunction Dr(e, t, r, n) {\n let o = [], a = \"\", l = () => {\n a &&= (o.push(a), \"\");\n };\n for (; t.i < e.length;) {\n let i = e[t.i];\n if (i === \"}\" && n > 0) break;\n if (i !== \"{\") if (i === \"#\" && r) l(), o.push({ kind: \"hash\" }), t.i++;\n else {\n if (i === \"'\") {\n let u = e[t.i + 1];\n if (u === \"'\") {\n a += \"'\", t.i += 2;\n continue;\n }\n if (u === \"{\" || u === \"}\" || u === \"#\" && r) {\n for (t.i++; t.i < e.length;) {\n let p = e[t.i];\n if (p === \"'\") {\n if (e[t.i + 1] === \"'\") {\n a += \"'\", t.i += 2;\n continue;\n }\n t.i++;\n break;\n }\n a += p, t.i++;\n }\n continue;\n }\n a += \"'\", t.i++;\n continue;\n }\n a += i, t.i++;\n }\n else t.i++, l(), o.push(Ro(e, t, r, n));\n }\n return l(), o;\n}\nfunction Ro(e, t, r, n) {\n let o = t.i;\n for (; t.i < e.length && e[t.i] !== \",\" && e[t.i] !== \"}\";) t.i++;\n let a = e.slice(o, t.i).trim();\n if (e[t.i] === \"}\") return t.i++, {\n kind: \"arg\",\n name: a\n };\n if (t.i >= e.length) return {\n kind: \"arg\",\n name: a\n };\n t.i++;\n let l = t.i;\n for (; t.i < e.length && e[t.i] !== \",\" && e[t.i] !== \"}\";) t.i++;\n let i = e.slice(l, t.i).trim(), u = i === \"plural\" || i === \"selectordinal\" || i === \"select\";\n if (e[t.i] !== \",\" || !u) {\n let c = n + 1;\n for (; t.i < e.length && c > n;) e[t.i] === \"{\" ? c++ : e[t.i] === \"}\" && c--, t.i++;\n return {\n kind: \"arg\",\n name: a\n };\n }\n t.i++;\n let p = {}, h = 0;\n for (; Ot(e, t), !(t.i >= e.length);) {\n if (e[t.i] === \"}\") {\n t.i++;\n break;\n }\n let c = t.i;\n for (; t.i < e.length && e[t.i] !== \"{\" && e[t.i] !== \"}\" && !Mr(e[t.i]);) t.i++;\n let g = e.slice(c, t.i);\n if (g.startsWith(\"offset:\")) h = parseInt(g.slice(7), 10) || 0;\n else {\n if (Ot(e, t), e[t.i] !== \"{\") break;\n t.i++, p[g] = Dr(e, t, i !== \"select\" || r, n + 1), e[t.i] === \"}\" && t.i++;\n }\n }\n return {\n kind: \"branched\",\n type: i,\n name: a,\n offset: h,\n branches: p\n };\n}\nvar No = /* @__PURE__ */ new Map(), _o = /* @__PURE__ */ new Map(), Mt = /* @__PURE__ */ new Map();\nfunction ko(e, t) {\n let r = t ? _o : No, n = r.get(e);\n if (!n) {\n try {\n n = new Intl.PluralRules(e, t ? { type: \"ordinal\" } : void 0);\n } catch {\n n = new Intl.PluralRules(\"en\", t ? { type: \"ordinal\" } : void 0);\n }\n r.set(e, n);\n }\n return n;\n}\nfunction Lo(e) {\n let t = Mt.get(e);\n if (!t) {\n try {\n t = new Intl.NumberFormat(e);\n } catch {\n t = new Intl.NumberFormat(\"en\");\n }\n Mt.set(e, t);\n }\n return t;\n}\nfunction ze(e, t, r, n) {\n let o = \"\";\n for (let a of e) {\n if (typeof a == \"string\") {\n o += a;\n continue;\n }\n if (a.kind === \"arg\") {\n let h = t?.[a.name];\n o += h === void 0 ? `{${a.name}}` : String(h);\n continue;\n }\n if (a.kind === \"hash\") {\n o += n === void 0 ? \"#\" : Lo(r).format(n);\n continue;\n }\n let l = t?.[a.name];\n if (a.type === \"select\") {\n let h = (l === void 0 ? void 0 : a.branches[String(l)]) ?? a.branches.other;\n o += h ? ze(h, t, r, n) : l === void 0 ? `{${a.name}}` : String(l);\n continue;\n }\n let i = typeof l == \"number\" ? l : Number(l);\n if (l === void 0 || Number.isNaN(i)) {\n let h = a.branches.other;\n o += h ? ze(h, t, r, void 0) : `{${a.name}}`;\n continue;\n }\n let u = a.branches[`=${i}`], p = i - a.offset;\n if (!u) {\n let h = ko(r, a.type === \"selectordinal\").select(p);\n u = a.branches[h] ?? a.branches.other;\n }\n o += u ? ze(u, t, r, p) : String(l);\n }\n return o;\n}\nnew TextDecoder();\nvar Fo;\n(function(e) {\n e.MAX_TEXT_LENGTH = 32767;\n let t = e.MAX_SIGNIFICANT_DIGITS = 15;\n e.truncateNumberText = function(r) {\n let n = r.length;\n if (n <= t) return r;\n let o = 0, a = null;\n for (let l = 0; l < n; l++) {\n let i = r.charCodeAt(l);\n if (i >= 48 && i <= 57) {\n if (o === 0 && i === 48) continue;\n o++, o > t && ((a ??= r.split(\"\"))[l] = \"0\");\n } else if ((i === 69 || i === 101) && o > 0) break;\n }\n return a === null ? r : a.join(\"\");\n };\n})(Fo ||= {});\nvar Pt, et, Po, S, me = {\n Number: \"number\",\n String: \"string\",\n Boolean: \"boolean\",\n Error: \"error\",\n RichData: \"richData\",\n Null: \"null\"\n}, Ut = {\n ...me,\n Date: \"date\"\n}, jt = {\n ...me,\n Reference: \"reference\",\n Array: \"array\",\n Lambda: \"lambda\",\n Omitted: \"omitted\"\n};\n(et = Pt ||= {}).Axis = {\n Column: \"column\",\n Row: \"row\"\n}, et.AxisSelection = {\n ...Pt.Axis,\n Both: \"both\"\n}, et.Direction = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, (Po ||= {}).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(N, k, pe, W) {\n super(pe, W), this._label = k, this._code = N, this.details = W;\n }\n static {\n this.code = S.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(N) {\n return !!N && (this._code === N._code || this._code === N.code);\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaError]\";\n }\n toString() {\n return this._label;\n }\n }\n e.Known = n;\n class o extends n {\n constructor(N, k) {\n super(t.Parse, r.Parse, N, k);\n }\n static {\n this.code = S.Code.Parse;\n }\n getDetails() {\n let N = this.details;\n return {\n line: N?.line ?? 1,\n column: N?.column ?? 1,\n offset: N?.offset ?? 0,\n length: N?.length ?? 0\n };\n }\n }\n e.Parse = o;\n class a extends n {\n constructor(N, k) {\n super(t.Null, r.Null, N, k);\n }\n static {\n this.code = S.Code.Null;\n }\n }\n e.Null = a;\n class l extends n {\n constructor(N, k) {\n super(t.Div0, r.Div0, N, k);\n }\n static {\n this.code = S.Code.Div0;\n }\n }\n e.Div0 = l;\n class i extends n {\n constructor(N, k) {\n super(t.Value, r.Value, N, k);\n }\n static {\n this.code = S.Code.Value;\n }\n }\n e.Value = i;\n class u extends n {\n constructor(N, k) {\n super(t.Ref, r.Ref, N, k);\n }\n static {\n this.code = S.Code.Ref;\n }\n }\n e.Ref = u;\n class p extends n {\n constructor(N, k) {\n super(t.Name, r.Name, N, k);\n }\n static {\n this.code = S.Code.Name;\n }\n }\n e.Name = p;\n class h extends n {\n constructor(N, k) {\n super(t.Num, r.Num, N, k);\n }\n static {\n this.code = S.Code.Num;\n }\n }\n e.Num = h;\n class c extends n {\n constructor(N, k) {\n super(t.NA, r.NA, N, k);\n }\n static {\n this.code = S.Code.NA;\n }\n }\n e.NA = c;\n class g extends n {\n constructor(N, k) {\n super(t.GettingData, r.GettingData, N, k);\n }\n static {\n this.code = S.Code.GettingData;\n }\n }\n e.GettingData = g;\n class T extends n {\n constructor(N, k) {\n super(t.Spill, r.Spill, N, k);\n }\n static {\n this.code = S.Code.Spill;\n }\n }\n e.Spill = T;\n class I extends n {\n constructor(N, k) {\n super(t.Connect, r.Connect, N, k);\n }\n static {\n this.code = S.Code.Connect;\n }\n }\n e.Connect = I;\n class M extends n {\n constructor(N, k) {\n super(t.Blocked, r.Blocked, N, k);\n }\n static {\n this.code = S.Code.Blocked;\n }\n }\n e.Blocked = M;\n class q extends n {\n constructor(N, k) {\n super(t.Unknown, r.Unknown, N, k);\n }\n static {\n this.code = S.Code.Unknown;\n }\n }\n e.Unknown = q;\n class v extends n {\n constructor(N, k) {\n super(t.Field, r.Field, N, k);\n }\n static {\n this.code = S.Code.Field;\n }\n }\n e.Field = v;\n class C extends n {\n constructor(N, k) {\n super(t.Calc, r.Calc, N, k);\n }\n static {\n this.code = S.Code.Calc;\n }\n }\n e.Calc = C;\n class R extends n {\n constructor(N, k) {\n super(t.Busy, r.Busy, N, k);\n }\n static {\n this.code = S.Code.Busy;\n }\n }\n e.Busy = R;\n class U extends n {\n constructor(N, k) {\n super(t.Python, r.Python, N, k);\n }\n static {\n this.code = S.Code.Python;\n }\n }\n e.Python = U;\n class Z extends n {\n constructor(N, k) {\n super(t.Timeout, r.Timeout, N, k);\n }\n static {\n this.code = S.Code.Timeout;\n }\n }\n e.Timeout = Z;\n})(S ||= {});\nvar te = {};\nte[S.Code.Parse] = S.Parse, te[S.Code.Null] = S.Null, te[S.Code.Div0] = S.Div0, te[S.Code.Value] = S.Value, te[S.Code.Ref] = S.Ref, te[S.Code.Name] = S.Name, te[S.Code.Num] = S.Num, te[S.Code.NA] = S.NA, te[S.Code.GettingData] = S.GettingData, te[S.Code.Spill] = S.Spill, te[S.Code.Connect] = S.Connect, te[S.Code.Blocked] = S.Blocked, te[S.Code.Unknown] = S.Unknown, te[S.Code.Field] = S.Field, te[S.Code.Calc] = S.Calc, te[S.Code.Busy] = S.Busy, te[S.Code.Python] = S.Python, te[S.Code.Timeout] = S.Timeout;\nvar Fr = /* @__PURE__ */ new Map(), Pr = /* @__PURE__ */ new Map(), Ur = /* @__PURE__ */ new Map(), jr = /* @__PURE__ */ new Map(), Bt = Object.keys(te);\nfor (let e = 0; e < Bt.length; e++) {\n let t = te[Bt[e]], r = new t();\n Ur.set(r.getLabel(), t), jr.set(r.getCode(), t), Fr.set(r.getLabel(), r), Pr.set(r.getCode(), r);\n}\n(function(e) {\n let t = e.getBuiltInByCode = (r) => Pr.get(r);\n e.BuiltIn = {\n Parse: t(S.Code.Parse),\n Null: t(S.Code.Null),\n Div0: t(S.Code.Div0),\n Value: t(S.Code.Value),\n Ref: t(S.Code.Ref),\n Name: t(S.Code.Name),\n Num: t(S.Code.Num),\n NA: t(S.Code.NA),\n GettingData: t(S.Code.GettingData),\n Spill: t(S.Code.Spill),\n Connect: t(S.Code.Connect),\n Blocked: t(S.Code.Blocked),\n Unknown: t(S.Code.Unknown),\n Field: t(S.Code.Field),\n Calc: t(S.Code.Calc),\n Busy: t(S.Code.Busy),\n Python: t(S.Code.Python),\n Timeout: t(S.Code.Timeout)\n }, e.newTypedError = (r, n, o) => {\n let a;\n return a = typeof r == \"string\" ? Ur.get(r) : jr.get(r), a ||= S.Unknown, new a(n, o);\n }, e.getBuiltInByLabel = (r) => Fr.get(r), e.isError = function(r, n) {\n return !!r && r.isFormulaError === !0 && (n === void 0 || r.getCode() === n);\n };\n})(S ||= {});\nvar Uo = class {\n createRange(e, t, r) {\n throw new oe();\n }\n flattenAreas(e) {\n throw new oe();\n }\n getReference(e, t) {\n throw new oe();\n }\n getResizedReference(e, t, r) {\n throw new oe();\n }\n getNumberFormat(e, t) {\n throw new oe();\n }\n fromSerialDate(e, t) {\n throw new oe();\n }\n toSerialDate(e, t) {\n throw new oe();\n }\n getDateParts(e, t) {\n throw new oe();\n }\n getSerialDate(e, t, r, n, o, a, l) {\n throw new oe();\n }\n getNow() {\n throw new oe();\n }\n getRandom() {\n return Math.random();\n }\n getValueAt(e, t, r, n) {\n return null;\n }\n getEntireCoords() {\n return Kr;\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 > Bo);\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 oe();\n }\n parseAsSerialDate(e, t) {\n throw new oe();\n }\n parseAsDate(e, t) {\n throw new oe();\n }\n parseAsNumber(e, t) {\n throw new oe();\n }\n createCriteria(e, t) {\n throw new oe();\n }\n parseAsLiteral(e) {\n let t = e.toUpperCase();\n return t === \"TRUE\" || t !== \"FALSE\" && S.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 = Kt(e), o = Kt(t);\n return n === o ? e < t ? -1 : +(e > t) : n < o ? -1 : 1;\n }\n getRuntime() {\n return jo;\n }\n getArgs() {\n throw new oe(Br);\n }\n}, Kt = (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}, Br = \"FormulaContext.getArgs() is only valid while a function body is running\", oe = class extends Error {\n constructor(e = \"Not implemented in StubbedFormulaContext\") {\n super(e), this.name = \"NotImplementedError\";\n }\n}, Kr = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 2 ** 14 - 1,\n rowEnd: 2 ** 20 - 1\n}), jo = {\n isDate1904: () => !1,\n getLocale: () => zt.tag,\n getLocaleProfile: () => zt,\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}, Bo = 2958465, Pe = new Uo(), Ko = 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() ?? Kr;\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 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, o = 0, a = 0, l = 0) {\n return this._getScope().getSerialDate(e, t, r, n, o, a, l);\n }\n getNow() {\n return this._getScope().getNow();\n }\n getRandom() {\n return this._getScope().getRandom?.() ?? Math.random();\n }\n createRange(e, t, r) {\n return this._getScope().createRange(e, t, r);\n }\n flattenAreas(e) {\n if (!Array.isArray(e)) return e;\n let t = [];\n for (let r = 0; r < e.length; r++) {\n let n = e[r], { rows: o, columns: a } = n.getShape();\n for (let l = 0; l < o; l++) for (let i = 0; i < a; i++) t.push(n.getValueAt(l, i));\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 oe(Br);\n return t;\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaContext]\";\n }\n toString() {\n return this._getScope()?.toString?.() ?? \"{STUB SCOPE}\";\n }\n}, zt = 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 Ko();\nconst w = 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}), zo = [\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], Vo = (() => {\n const e = /* @__PURE__ */ new Map();\n for (const t of zo) if (e.set(t.name, t), t.aliases) for (const r of t.aliases) e.set(r, t);\n return e;\n})();\nfunction Xo(e) {\n if (!e) return;\n const t = (e.startsWith(\"@\") ? e.slice(1) : e).toLowerCase();\n return Vo.get(t);\n}\nfunction Go(e) {\n return Xo(e)?.standalone === !0;\n}\nconst ct = /* @__PURE__ */ new Map([[\"IReferenceRange\", \"p\"], [\"IRange\", \"r\"]]), tt = new Set(Object.values(jt).filter((e) => e !== jt.Omitted)), mt = /* @__PURE__ */ new Map([\n [\"IWorkbook\", \"workbook\"],\n [\"ISheet\", \"sheet\"],\n [\"ICellRanges\", \"ranges\"],\n [\"ICellRange\", \"range\"]\n]), qo = Array.from(mt.keys()), gt = (e, t) => {\n Array.from(t.keys()).forEach((r) => {\n const n = t.get(r);\n t.set(`${e}.${r}`, n);\n });\n}, Ho = /* @__PURE__ */ new Map([\n [\"Scalar\", \"*\"],\n [\"Lambda\", \"l\"],\n [\"FormulaError.Known\", me.Error],\n [\"Date\", Ut.Date],\n [\"IRichData\", Ut.RichData]\n]), zr = /* @__PURE__ */ new Map([[\"Repeating\", \"repeating\"]]), Wo = /* @__PURE__ */ new Set([\"Flatten\", \"SheetXL.Flatten\"]), Vr = /* @__PURE__ */ new Set([\"AcceptError\"]), Xr = /* @__PURE__ */ new Set([\"Omittable\"]), Gr = /* @__PURE__ */ new Set([\"NoLift\"]), qr = /* @__PURE__ */ new Set([\"NoFilter\"]), Hr = /* @__PURE__ */ new Set([\"Lazy\"]), ut = /* @__PURE__ */ new Set([\"ReportType\"]), Vt = 255, Jo = /^[a-zA-Z_-￿][a-zA-Z0-9_.-￿]*$/, Yo = /^([a-z]{1,3})([0-9]+)$/i, Zo = /^r[0-9]*c[0-9]*$/i, Qo = (e) => {\n if (Zo.test(e)) return !0;\n const t = Yo.exec(e);\n if (!t) return !1;\n let r = 0;\n for (const o of t[1].toUpperCase()) r = r * 26 + (o.charCodeAt(0) - 64);\n const n = Number(t[2]);\n return r <= 16384 && n >= 1 && n <= 1048576;\n}, le = \"SheetXL\", ve = (e) => {\n const t = e.typeName.getText();\n return t.startsWith(`${le}.`) ? t.slice(8) : t;\n};\ngt(le, ct);\ngt(le, mt);\ngt(le, zr);\nVr.add(\"SheetXL.AcceptError\");\nXr.add(`${le}.Omittable`);\nGr.add(`${le}.NoLift`);\nqr.add(`${le}.NoFilter`);\nHr.add(`${le}.Lazy`);\nut.add(`${le}.ReportType`);\nconst ea = /* @__PURE__ */ new Map([\n [\"Promise\", () => ({ async: !0 })],\n [\"Observable\", () => ({ stream: !0 })],\n [\"Volatile\", () => ({ volatile: !0 })],\n [`${le}.Volatile`, () => ({ volatile: !0 })]\n]), Xt = \"__scriptContext__\", Gt = \"script\", ta = /* @__PURE__ */ new Set([\n \"IScript.ScriptContext\",\n `${le}.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], o = n.kind;\n if (o !== \"link\") {\n if (o === \"linkName\") {\n const a = e[r + 1];\n if (a?.kind === \"linkText\" && a.text.trim()) continue;\n t += n.text;\n continue;\n }\n if (o === \"linkText\") {\n t += n.text.trim();\n continue;\n }\n t += n.text;\n }\n }\n return t.replace(/\\r\\n?/g, `\n`).split(/\\n[^\\S\\n]*\\n\\s*/).map((r) => r.split(`\n`).map((n) => n.trim()).filter(Boolean).join(\" \")).filter(Boolean).join(`\n`).trim();\n};\nfunction ra(e, t, r, n) {\n const o = n?.builtInNames?.length ? new Set(n.builtInNames.map((s) => s.toUpperCase())) : null, a = [], l = /* @__PURE__ */ new Map(), i = [];\n let u = null;\n const p = (s) => {\n if (!s || typeof s.getStart != \"function\") return {\n start: 0,\n length: 0\n };\n try {\n return {\n start: s.getStart(),\n length: s.getWidth()\n };\n } catch {\n return {\n start: 0,\n length: 0\n };\n }\n }, h = (s, f, d, y) => {\n const { start: E, length: L } = p(s);\n i.push({\n start: E,\n length: L,\n severity: d,\n code: f,\n message: y\n });\n }, c = (s, f, d) => {\n h(s, f, \"error\", d);\n }, g = (s) => s?.parent?.name?.escapedText, T = (s, f, d, y, E = !1, L = !1, j = !1) => {\n const O = { count: 0 }, A = W(s, f, d, y, O, E, L, j);\n O.count >= 2 && (f.range || (f.range = \"m\", O.count -= 2), !y && O.count >= 1 && (O.count -= 1, O.count > 0 && c(s, w.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${g(s)}'.`))), O.count > 0 && (f.arrayDepth = O.count);\n const F = f.enum;\n return F && (O.count > (j ? 1 : 0) || f.range) && !U.has(f) && (f.valueOrRange || (c(s, w.EnumPosition, `A list cannot hold the enum '${F.id}': '${f.name ?? g(s)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: ${F.id}[]'), or type the list by its scalar ('${F.type}').`), delete f.enum)), A;\n }, I = (s, f, d, y, E) => {\n if (f !== \"Lambda\" && f !== `${le}.Lambda`) return !1;\n const L = s.typeArguments;\n let j = \"*\";\n if (L && L.length === 2) if (E && L[0].kind === e.SyntaxKind.TupleType && (d.lambdaArity = L[0].elements.length), L[1].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const O = {};\n W(L[1], O, y, !1, { count: 0 }), j = O.scalar ?? \"*\";\n }\n else if (L && L.length === 1 && L[0].kind !== e.SyntaxKind.TupleType && L[0].kind !== e.SyntaxKind.ArrayType) if (E && (d.lambdaArity = 2), L[0].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const O = {};\n W(L[0], O, y, !1, { count: 0 }), j = O.scalar ?? \"*\";\n }\n return d.lambda = j, !0;\n }, M = (s, f, d, y) => {\n if (!y) {\n c(s, w.FunctionReturn, `Function type is not a valid return type: '${g(s)}'. Declare a 'Lambda' return instead.`);\n return;\n }\n const E = s.type, L = {};\n let j = \"*\";\n E && (E.kind === e.SyntaxKind.AnyKeyword ? j = \"raw\" : (W(E, L, d, !1, { count: 0 }), j = L.scalar ?? \"*\"));\n const O = s.parameters;\n O && !O.some((A) => A.dotDotDotToken) && (f.lambdaArity = O.length), f.lambda = j;\n }, q = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Set(), U = /* @__PURE__ */ new WeakSet(), Z = (s) => s !== void 0 && s.getSourceFile() === t, P = (s, f = !1) => {\n return s.getJsDocTags(r).find((y) => y.name === \"name\")?.text?.map((y) => y.text).join(\"\").trim() || (f ? Qt.camelToPrettyCase(s.name) : s.name);\n }, N = (s) => {\n const f = s.getJsDocTags(r).find((d) => d.name === \"deprecated\");\n if (f) return f.text?.map((d) => d.text).join(\"\").trim() || !0;\n }, k = (s, f) => {\n const d = e.isTypeReferenceNode(s) ? s.typeName : void 0, y = d ? r.getSymbolAtLocation(d) : void 0, E = y?.declarations?.length ? y : void 0;\n if (d) {\n if (E && E.flags & e.SymbolFlags.Alias) {\n c(s, w.EnumNotLocal, `'${d.getText()}' is imported, so its declaration cannot be read: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n if (!E || !(E.flags & e.SymbolFlags.Type)) {\n const b = d.getText();\n if (!(E ? (E.flags & e.SymbolFlags.Variable) !== 0 : t.statements.some((x) => e.isVariableStatement(x) && x.declarationList.declarations.some((K) => e.isIdentifier(K.name) && K.name.text === b)))) return null;\n c(s, w.EnumMissingAlias, `'${b}' is a value, not a type: '${f}'. Pair the object with a same-name type — 'type ${b} = typeof ${b}[keyof typeof ${b}];' — or declare it as 'enum ${b} { … }'.`);\n return;\n }\n const m = q.get(E);\n if (m !== void 0) return m;\n if (R.has(E)) return;\n }\n const L = [];\n let j = !1;\n if (E && E.flags & e.SymbolFlags.Enum) {\n if (!E.declarations?.some(Z)) {\n c(s, w.EnumNotLocal, `'${E.name}' is not declared in this module: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n j = !0;\n let m = !1;\n if (E.exports?.forEach((b) => {\n const x = b.valueDeclaration;\n if (!x || !e.isEnumMember(x)) return;\n const K = r.getConstantValue(x);\n if (K === void 0) {\n c(x, w.EnumMemberNotConstant, `'${E.name}.${b.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.`), m = !0;\n return;\n }\n L.push([\n P(b, !0),\n K,\n x,\n $e(b.getDocumentationComment(r)),\n N(b)\n ]);\n }), m) {\n R.add(E);\n return;\n }\n } else {\n const m = r.getTypeFromTypeNode(s), b = e.TypeFlags.Null | e.TypeFlags.Undefined | e.TypeFlags.Void, x = (m.isUnion() ? m.types : [m]).filter((D) => !(D.flags & b)), K = [];\n for (const D of x) {\n if (!(D.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) return E && q.set(E, null), null;\n K.push(D.value);\n }\n if (K.length === 0) return null;\n const re = E?.declarations?.find((D) => e.isTypeAliasDeclaration(D)), J = e.isUnionTypeNode(s) ? s : re?.type;\n if (J && e.isUnionTypeNode(J)) {\n const D = J.types.map(($) => {\n const ne = r.getTypeFromTypeNode($);\n return ne.isLiteral() ? ne.value : void 0;\n }), _ = ($) => {\n const ne = D.indexOf($);\n return ne < 0 ? D.length : ne;\n };\n K.sort(($, ne) => _($) - _(ne));\n }\n const ee = E && E.flags & e.SymbolFlags.Variable ? E.valueDeclaration : void 0, ge = new Set(K);\n if (E && ee && Z(ee)) for (const D of r.getTypeOfSymbolAtLocation(E, ee).getProperties()) {\n const _ = D.valueDeclaration, $ = r.getTypeOfSymbolAtLocation(D, _ ?? ee);\n if (!($.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) continue;\n const ne = $.value;\n K.includes(ne) && (j = !0, ge.delete(ne), L.push([\n P(D, !0),\n ne,\n _,\n $e(D.getDocumentationComment(r)),\n N(D)\n ]));\n }\n for (const D of K) ge.has(D) && L.push([\n String(D),\n D,\n void 0,\n null\n ]);\n }\n if (L.length === 0) return null;\n const O = typeof L[0][1] == \"number\";\n if (L.some(([, m]) => typeof m == \"number\" !== O)) {\n c(s, w.EnumMixed, `'${E?.name ?? s.getText()}' mixes number and string members: '${f}'. A parameter has one type, so an enum is all numbers or all strings.`);\n return;\n }\n const A = E ? P(E) : L.map(([, m]) => String(m)).join(\"|\"), F = E ? void 0 : v.get(A);\n if (F) return F;\n if (j) {\n const m = /* @__PURE__ */ new Map();\n for (const [b, x, K, re] of L) {\n const J = K?.name?.getText() ?? b, ee = m.get(x);\n ee !== void 0 ? h(K ?? s, w.EnumDuplicateValue, \"warning\", `'${A}.${J}' has the same value as '${A}.${ee}' (${JSON.stringify(x)}). A formula passes the value, so the two cannot be told apart.`) : m.set(x, J), re === \"\" && h(K ?? s, w.EnumMemberUndocumented, \"warning\", `'${A}.${J}' is missing a description. Add a doc comment above the member — it is what the argument dropdown shows.`);\n }\n }\n const V = {\n id: A,\n type: O ? me.Number : me.String,\n members: L.map(([m, b, , , x]) => x ? [\n m,\n b,\n x\n ] : [m, b])\n };\n E ? q.set(E, V) : v.set(A, V);\n const z = E ? $e(E.getDocumentationComment(r)) : \"\", B = {};\n for (const [m, , , b] of L) b && (B[m] = { description: b });\n if (z || Object.keys(B).length > 0) {\n const m = {};\n z && (m.summary = z), Object.keys(B).length > 0 && (m.members = B), C.set(V, m);\n }\n return V;\n }, pe = (s, f, d, y) => {\n const E = (O, A, F) => {\n const V = { name: O };\n return T(A, V, d, !0), F && (V.optional = !0), y && !V.acceptError && (V.acceptError = !0), V;\n };\n if (s.kind !== e.SyntaxKind.TupleType) return [E(f, s, !1)];\n const L = s.elements;\n if (L.length < 2) return c(s, w.RepeatingSlots, `'${f}': a repeating group of period ${L.length} must be spelled 'Repeating<T>' without the tuple.`), null;\n const j = [];\n for (let O = 0; O < L.length; O++) {\n const A = L[O];\n if (A.kind !== e.SyntaxKind.NamedTupleMember) return c(A, w.RepeatingSlots, `'${f}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;\n const F = !!A.questionToken;\n if (F && O !== L.length - 1) return c(A, w.RepeatingOptional, `'${f}': only the LAST slot of a repeating group may be optional (slot '${A.name?.getText?.()}' is not).`), null;\n j.push(E(A.name?.getText?.() ?? `${O}`, A.type, F));\n }\n return j;\n }, W = (s, f, d, y, E, L = !1, j = !1, O = !1) => {\n if (!s) {\n c(s, w.MissingType, `Type is not defined for '${f?.name ?? \"return\"}'.`);\n return;\n }\n if (s.kind === e.SyntaxKind.ParenthesizedType) return W(s.type, f, d, y, E, L, j, O);\n if (s.kind === e.SyntaxKind.UnionType) {\n const A = (z) => z.kind === e.SyntaxKind.UndefinedKeyword || z.kind === e.SyntaxKind.VoidKeyword || z.kind === e.SyntaxKind.NullKeyword || z.kind === e.SyntaxKind.LiteralType && z.literal?.kind === e.SyntaxKind.NullKeyword, F = s.types.filter((z) => !A(z));\n if (F.length === 1) return W(F[0], f, d, y, E, L, j, O);\n const V = k(s, f.name ?? g(s));\n if (V === void 0) return;\n if (V !== null) {\n f.scalar = V.type, y && (f.enum = V);\n return;\n }\n if (!y) {\n f.scalar = \"*\";\n return;\n }\n if (F.length === 2) {\n const z = (m) => m.kind !== e.SyntaxKind.TypeReference ? !1 : e.isTypeReferenceNode(m) && ve(m) === \"Lambda\", B = F.findIndex(z);\n if (B >= 0 && !z(F[1 - B])) {\n W(F[1 - B], f, d, y, E, L, j, O), I(F[B], ve(F[B]), f, d, y);\n return;\n }\n }\n if (y && F.length === 2) {\n const z = (m) => {\n if (!(m.kind !== e.SyntaxKind.TypeReference || m.typeArguments?.length)) return ct.get(ve(m));\n }, B = F.findIndex((m) => z(m) !== void 0);\n if (B >= 0 && z(F[1 - B]) === void 0) {\n const m = {}, b = E.count;\n if (W(F[1 - B], m, d, y, E, L, !1), m.scalar && !m.range && m.lambda == null && E.count === b) {\n f.range = z(F[B]), f.scalar = m.scalar, f.valueOrRange = !0;\n const x = m.enum;\n x && (f.enum = x);\n return;\n }\n }\n }\n if (y && F.length === 2) {\n const z = (m) => m.kind === e.SyntaxKind.TypeReference && !m.typeArguments?.length && ve(m) === \"Scalar\", B = F.findIndex(z);\n if (B >= 0 && !z(F[1 - B])) {\n const m = k(F[1 - B], f.name ?? g(s));\n if (m === void 0) return;\n if (m !== null) {\n f.scalar = \"*\", f.enum = m;\n return;\n }\n }\n }\n c(s, w.InvalidParamType, `Union parameter types are not supported: '${g(s)}'. 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 (s.kind === e.SyntaxKind.NumberKeyword) f.scalar = me.Number;\n else if (s.kind === e.SyntaxKind.StringKeyword) f.scalar = me.String;\n else if (s.kind === e.SyntaxKind.BooleanKeyword) f.scalar = me.Boolean;\n else if (s.kind === e.SyntaxKind.UndefinedKeyword || s.kind === e.SyntaxKind.NullKeyword || s.kind === e.SyntaxKind.VoidKeyword) {\n if (y) {\n c(s, w.UndefinedInput, `'undefined' is not a valid type for input: '${g(s)}'.`);\n return;\n }\n f.scalar = me.Null;\n } else if (s.kind === e.SyntaxKind.BigIntKeyword) f.scalar = me.Number;\n else if (s.kind === e.SyntaxKind.AnyKeyword) y && (f.range = \"*\");\n else if (s.kind === e.SyntaxKind.ArrayType) {\n const A = s.elementType;\n if (!A) {\n c(s, w.UntypedArray, `'Array' must be typed: '${g(s)}'.`);\n return;\n }\n if (y && j) {\n const F = f, V = F.name ?? g(s) ?? \"parameter\", z = F.acceptError;\n delete F.acceptError;\n const B = { name: V };\n T(A, B, d, !0), z && !B.acceptError && (B.acceptError = !0), F.repeating = [B];\n return;\n }\n E.count++, W(A, f, d, y, E);\n } else if (s.kind !== e.SyntaxKind.TupleType) if (s.kind === e.SyntaxKind.TypeReference) {\n const A = ve(s);\n if (Vr.has(A)) {\n const m = g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'${A}' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = f;\n if (b.acceptError) {\n c(s, w.InvalidParamType, `'${m}' declares 'AcceptError' more than once.`);\n return;\n }\n const x = s.typeArguments;\n if (!x || x.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return b.acceptError = !0, W(x[0], f, d, y, E, L, j, O);\n }\n if (ut.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'ReportType' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = s.typeArguments;\n if (!b || b.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return f.reportType = !0, W(b[0], f, d, y, E, L, j, O);\n }\n if (Gr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'NoLift' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = s.typeArguments;\n if (!b || b.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n const x = f;\n x.noLift = !0;\n const K = E.count;\n W(b[0], f, d, y, E, L, j, O), (x.range || x.lambda != null || x.repeating || E.count !== K) && c(s, w.InvalidParamType, `'${m}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);\n return;\n }\n if (qr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'NoFilter' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = s.typeArguments;\n if (!b || b.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n const x = f;\n x.noFilter = !0;\n const K = E.count;\n if (W(b[0], f, d, y, E, L, j, O), x.range || x.lambda != null || E.count !== K) {\n c(s, w.InvalidParamType, `'${m}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.`);\n return;\n }\n const re = x.repeating;\n if (re) {\n if (delete x.noFilter, re.length !== 1) {\n c(s, w.InvalidParamType, `'${m}': '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 && c(s, w.InvalidParamType, `'${m}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);\n return;\n }\n if (Xr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Omittable' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = s.typeArguments;\n if (!b || b.length < 1 || b.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 or 2 types: '${m}'.`);\n return;\n }\n const x = f;\n if (x.omittable = !0, b.length === 2) {\n const J = qt(e, b[1]);\n if (J === void 0) {\n c(s, w.InvalidParamType, `'${m}' declares '${A}' 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 x.omittedValue = J;\n }\n const K = W(b[0], f, d, y, E, L, j, O), re = x.omittedValue;\n return x.enum && re !== void 0 && re !== null && !x.enum.members.some(([, J]) => J === re) && c(b[1], w.EnumOmittedValue, `'${m}': ${JSON.stringify(re)} is not a member of '${x.enum.id}'. An omitted argument must mean a member (${x.enum.members.map(([, J]) => JSON.stringify(J)).join(\", \")}) or null.`), K;\n }\n if (Hr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Lazy' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = f;\n if (b.lazy) {\n c(s, w.InvalidParamType, `'${m}' declares 'Lazy' more than once.`);\n return;\n }\n const x = s.typeArguments;\n if (!x || x.length < 1 || x.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 or 2 types: '${m}'.`);\n return;\n }\n if (b.lazy = !0, x.length === 2) {\n const K = qt(e, x[1]);\n if (K === void 0) {\n c(s, w.InvalidParamType, `'${m}' declares '${A}' 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 b.optional = !0, b.defaultValue = K;\n }\n W(x[0], f, d, y, E, L, j, O), b.enum ? (c(s, w.EnumPosition, `'${m}': 'Lazy' cannot hold the enum '${b.enum.id}'. The argument may never be evaluated, so there is no point at which it could be checked against the members.`), delete b.enum) : b.lambda != null ? c(s, w.InvalidParamType, `'${m}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.`) : b.repeating && c(s, w.InvalidParamType, `'${m}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);\n return;\n }\n if (Wo.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Flatten' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const b = s.typeArguments;\n if (!b || b.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return E.count++, W(b[0], f, d, y, E, L);\n }\n if (zr.get(A) === \"repeating\") {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.RepeatingPosition, `'Repeating' is not a valid return type: '${m}'.`);\n return;\n }\n if (E.count !== 0) {\n c(s, w.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${m}'.`);\n return;\n }\n const b = f, x = s.typeArguments;\n if (!x || x.length < 1 || x.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 type, optionally followed by a maximum argument count: '${m}'.`);\n return;\n }\n let K;\n if (x.length === 2) {\n const ee = x[1], ge = ee.kind === e.SyntaxKind.LiteralType ? ee.literal : null, D = ge && ge.kind === e.SyntaxKind.NumericLiteral ? Number(ge.text) : NaN;\n if (!Number.isInteger(D) || D < 1 || D > Vt) {\n c(ee, w.RepeatingMax, `'${m}': '${A}'’s maximum must be a whole number between 1 and ${Vt}.`);\n return;\n }\n K = D, d.maxArguments = D;\n }\n if (O) {\n if (K === void 0) {\n c(s, w.RepeatingPosition, `'${m}' 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 W(x[0], f, d, y, E, L, j);\n }\n const re = b.acceptError;\n delete b.acceptError;\n const J = pe(x[0], m ?? \"parameter\", d, re);\n J && (b.repeating = J);\n return;\n }\n const F = ct.get(A);\n let V = !1;\n F && (f.range = F, V = !0);\n const z = Ho.get(A);\n if (z && (f.scalar = z), z !== void 0 && (V = !0), I(s, A, f, d, y)) return;\n if (y) {\n if (A === \"Volatile\" || A === `${le}.Volatile`) {\n c(s, w.InvalidParamType, `'Volatile' is not a valid parameter type: '${g(s)}'. It describes the function's RESULT, so it belongs on the return type.`);\n return;\n }\n if (ta.has(A)) return Xt;\n const m = mt.get(A);\n if (m) return m;\n } else {\n const m = ea.get(A);\n if (m) {\n const b = Object.assign(f, m());\n let x = 0;\n if (b.async && x++, b.stream && x++, x > 1) {\n c(s, w.MultipleModifiers, `'${A}' cannot have multiple modifiers: '${g(s)}'.`);\n return;\n }\n V = !0;\n }\n }\n if (!V) {\n const m = k(s, f.name ?? g(s));\n if (m === void 0) return;\n if (m !== null) {\n f.scalar = m.type, y && (f.enum = m);\n return;\n }\n }\n if (!V) {\n const m = \"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>)\", b = \"number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Promise<T>, Observable<T>, Volatile<T> (and arrays of these)\";\n let x;\n y ? L ? x = `'${A}' is not a valid first parameter: '${g(s)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${qo.join(\", \")} (macro target); ${m} (calculation input).` : x = `'${A}' is not a valid parameter type: '${g(s)}'. Allowed: ${m}.` : x = `'${A}' is not a valid return type: '${g(s)}'. Allowed: ${b}.`, c(s, y ? w.InvalidParamType : w.InvalidReturnType, x);\n return;\n }\n const B = s.typeArguments;\n if (B) {\n if (B.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${g(s)}'.`);\n return;\n }\n const m = B[0], b = y && e.isTypeReferenceNode(m) && ut.has(ve(m)), x = f.reportType;\n b && U.add(f), T(m, f, d, y), b && x === void 0 && delete f.reportType;\n const K = f.enum;\n K && !b && (c(B[0], w.EnumPosition, `'${A}' cannot hold the enum '${K.id}': '${g(s)}'. 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 ('${A}<${K.type}>').`), delete f.enum);\n }\n } else s.kind === e.SyntaxKind.FunctionType && M(s, f, d, y);\n }, Ge = (s) => (e.getCombinedModifierFlags(s) & e.ModifierFlags.Export) !== 0, qe = (s) => (e.getCombinedModifierFlags(s) & e.ModifierFlags.Default) !== 0;\n try {\n e.forEachChild(t, (s) => {\n if (Ge(s) && e.isFunctionDeclaration(s)) {\n const f = s?.name?.getText();\n if (!s.body) {\n c(s, w.NoBody, `'${f}': function has no body.`);\n return;\n }\n if (!f) {\n c(s, w.Anonymous, \"Anonymous exported functions are not allowed.\");\n return;\n }\n const d = {}, y = { parameters: {} };\n try {\n d.name = f;\n const E = r.getSymbolAtLocation(s.name), L = $e(E?.getDocumentationComment(r));\n L && (y.summary = L);\n const j = {};\n T(s.type, j, d, !1), d.returnType = j;\n const O = {};\n qe(s) && (O.default = !0, u = f), d.parameters = [];\n const A = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map(), V = /* @__PURE__ */ new Set();\n let z = null, B = null, m = null, b = 0, x = !1, K = 0;\n for (let D = 0; D < s.parameters.length; D++) {\n const _ = s.parameters[D], $ = {};\n $.name = _.name?.getText();\n const ne = d.parameters.length === 0;\n if (n?.lenient && D === 0 && !_.type && O.default) {\n d.context = Gt;\n continue;\n }\n const Ie = T(_.type, $, d, !0, ne, !_.dotDotDotToken, !!_.dotDotDotToken);\n if (Ie === Xt) {\n D === 0 && d.context === void 0 && (d.context = Gt);\n continue;\n }\n if (Ie) {\n if (d.parameters.length !== 0) {\n c(_, w.ContextNotFirst, `'${d.name}' contexts must be the first parameter: '${$.name}'.`);\n return;\n }\n d.context = Ie;\n continue;\n }\n if ($.lambda !== void 0) {\n if (z !== null) {\n c(_, w.MultipleLambda, `'${d.name}' has more than one Lambda parameter ('${z}' and '${$.name}'). Only one Lambda parameter is allowed.`);\n return;\n }\n z = $.name;\n } else if (z !== null) {\n c(_, w.LambdaNotLast, `'${d.name}' Lambda parameter ('${z}') must be the last parameter, but '${$.name}' follows it.`);\n return;\n }\n const ye = $.optional === !0 || !((_.initializer === void 0 || _.initializer === null) && (_.questionToken === void 0 || _.questionToken === null));\n let ae;\n if (ye && ($.optional = !0, _.initializer)) try {\n if (_.initializer.kind === e.SyntaxKind.StringLiteral) ae = _.initializer.text;\n else if (_.initializer.kind === e.SyntaxKind.NumericLiteral) ae = parseFloat(_.initializer.text);\n else if (_.initializer.kind === e.SyntaxKind.TrueKeyword || _.initializer.kind === e.SyntaxKind.FalseKeyword) ae = _.initializer.kind === e.SyntaxKind.TrueKeyword;\n else if (_.initializer.kind === e.SyntaxKind.NullKeyword) ae = null;\n else if (e.isPrefixUnaryExpression(_.initializer) && _.initializer.operator === e.SyntaxKind.MinusToken && _.initializer.operand.kind === e.SyntaxKind.NumericLiteral) ae = -parseFloat(_.initializer.operand.text);\n else if (e.isPropertyAccessExpression(_.initializer) || e.isElementAccessExpression(_.initializer)) {\n const ce = r.getTypeAtLocation(_.initializer);\n ce.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral) && (ae = ce.value);\n }\n } catch (ce) {\n console.warn(`Couldn't extract default value for parameter '${$.name}'`, ce);\n }\n _.dotDotDotToken && ($.rest = !0);\n const X = $.repeating;\n if (X) {\n if ($.rest) {\n c(_, w.RepeatingPosition, `'${d.name}' parameter '${$.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.`);\n return;\n }\n if (ye && X.length === 1) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' cannot be an optional repeating group. Use '...${$.name}: T[]' for zero-or-more, or drop the '?' for one-or-more.`);\n return;\n }\n if (B !== null) {\n c(_, w.MultipleRepeating, `'${d.name}' has more than one repeating group ('${B}' and '${$.name}'). Only one is allowed — two would make the argument count ambiguous.`);\n return;\n }\n if (m !== null) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${m}' is optional and precedes the repeating group '${$.name}'. Every parameter outside a group must be required.`);\n return;\n }\n B = $.name, b = X.length, x = X[X.length - 1].optional === !0;\n } else if (B !== null && $.rest) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' is a rest parameter and follows the repeating group '${B}'. Two variadic tails would make the argument count ambiguous.`);\n return;\n } else if (B !== null && ye) {\n if (K >= b - 1) {\n c(_, w.RepeatingOptional, b === 1 ? `'${d.name}' parameter '${$.name}' is optional and follows the period-1 repeating group '${B}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.` : `'${d.name}' has ${K + 1} optional parameters after the repeating group '${B}', which has period ${b}. At most ${b - 1} may be optional, or the argument count no longer decides the parse.`);\n return;\n }\n if (x) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' is optional and follows '${B}', whose own last slot is already optional. Both omissions reach the same argument count — drop one.`);\n return;\n }\n K++;\n }\n ye && !X && (m = $.name);\n const G = ($.range ? 2 : 0) + ($.arrayDepth ?? 0), Me = $.range === \"r\" || $.range === \"p\" || $.range === \"*\", Q = $.rest || Me ? 3 : 2;\n if (G > Q) {\n c(_, w.ArrayDepth, `'${d.name}' parameter '${$.name}' has an array depth of ${G}; the maximum is ${Q}${$.rest ? \" for a rest parameter\" : \" (use a rest parameter for one more level, or an IRange)\"}.`);\n return;\n }\n d.parameters.push($);\n const se = { description: \"\" };\n y.parameters[$.name] = se;\n const He = r.getSymbolAtLocation(_.name);\n se.description = $e(He?.getDocumentationComment(r)), ae !== void 0 && ($.defaultValue = ae);\n for (const ce of [$, ...$.repeating ?? []]) {\n const we = ce.enum ? C.get(ce.enum) : void 0;\n we && ((y.enums ??= {})[ce.enum.id] = we);\n }\n if (A.set($.name, $), F.set($.name, _), X && X.length > 1) {\n V.add($.name);\n for (const ce of X) {\n const we = `${$.name}.${ce.name}`;\n y.parameters[we] = { description: \"\" }, A.set(we, ce), F.set(we, _);\n }\n }\n }\n const re = d.maxArguments;\n if (re !== void 0) {\n const D = d.parameters ?? [];\n if (!D.some(($) => $.rest === !0 || $.repeating !== void 0)) {\n c(s, w.RepeatingMax, `'${d.name}' declares a maximum of ${re} arguments but takes a fixed ${D.length}. A maximum only means something on a variadic tail.`);\n return;\n }\n let _ = 0;\n for (const $ of D) $.rest === !0 || $.optional === !0 || (_ += $.repeating ? $.repeating.length : 1);\n if (re < _) {\n c(s, w.RepeatingMax, `'${d.name}' declares a maximum of ${re} arguments but requires ${_}.`);\n return;\n }\n }\n if (s.jsDoc && s.jsDoc.length > 0) {\n const D = s.jsDoc, _ = D.length;\n for (let $ = 0; $ < _; $++) {\n const ne = D[$]?.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 X = ae?.tagName?.text;\n if (!X) continue;\n X = X.toLowerCase();\n let G = ae.comment;\n const Me = Go(X);\n if (typeof G != \"string\" && !Me) {\n X === \"returnkind\" && c(ae, w.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...tt].map((Q) => `'${Q}'`).join(\", \")}.`);\n continue;\n }\n if (typeof G == \"string\" && (G = G.replace(/\\r\\n?/g, `\n`).trim()), !(!Me && G && (G = G.split(`\n`)[0].trim(), !G || G.length === 0))) {\n if (G && typeof G == \"string\") {\n const Q = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let se, He = G, ce = [];\n for (; (se = Q.exec(G)) !== null;) {\n const [we, Ca, Zr, ht] = se, Qr = [Zr.trim()];\n ht && Qr.push(ht.trim());\n }\n G = He, ce.length > 0 && X === \"see\" && (y.links || (y.links = []), y.links.push(...ce));\n }\n if (X === \"name\") {\n const Q = G;\n Q !== f && (y.name = Q);\n } else if (X !== \"description\") {\n if (X === \"param\") {\n const Q = ae.name?.getText?.() ?? ae.name?.text;\n if (!A.get(Q)) {\n c(ae, w.UnknownParam, `Parameter '${Q}' not found in function '${f}'.`);\n continue;\n }\n const se = y.parameters?.[Q];\n se && !se.description && typeof G == \"string\" && G && (se.description = G);\n } else if (X === \"returns\" || X === \"return\") d.returnType.description = G;\n else if (X === \"returnkind\") {\n const Q = (G ?? \"\").trim().toLowerCase();\n tt.has(Q) ? d.returnType.kind = Q : c(ae, w.UnknownReturnKind, `'@returnKind ${Q}' is not a known value kind. Known: ${[...tt].map((se) => `'${se}'`).join(\", \")}.`);\n } else if (X === \"category\") y.category = G;\n else if (X === \"deprecated\" || X === \"hidden\") {\n let Q = !0;\n const se = G?.toLowerCase();\n se === \"false\" ? Q = !1 : se !== \"true\" && (Q = G), Q !== !1 && (y.deprecated = Q ?? !0);\n }\n }\n }\n }\n }\n }\n Object.keys(d.returnType).length === 0 && delete d.returnType, Object.keys(O).length > 0 && (d.behavior = O), y.summary || h(s.name ?? s, w.MissingSummary, \"warning\", `'${f}': missing a description. Add a JSDoc comment above the function.`);\n const J = !d.context, ee = J && y.name || f;\n if (J && !Jo.test(ee)) {\n const D = y.name ? `'@name ${y.name}'` : `'${ee}'`;\n c(s.name ?? s, w.InvalidName, `'${f}': ${D} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.` + (y.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n if (J && !n?.isBuiltIn && Qo(ee)) {\n const D = y.name ? `'@name ${y.name}'` : `'${ee}'`;\n c(s.name ?? s, w.InvalidName, `'${f}': ${D} cannot be called from a formula. It reads as a cell address.` + (y.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n const ge = l.get(ee.toUpperCase());\n if (ge !== void 0) {\n c(s.name ?? s, w.DuplicateName, `'${f}': '${ee}' is already the name of '${ge}' in this module.`);\n return;\n }\n if (l.set(ee.toUpperCase(), f), J && o?.has(ee.toUpperCase())) {\n c(s.name ?? s, w.BuiltInName, `'${ee}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);\n return;\n }\n if (J) {\n const D = y.parameters ?? {};\n for (const [_, $] of Object.entries(D)) if (!V.has(_) && !$.description) {\n const ne = F.get(_);\n h(ne, w.MissingParamDescription, \"warning\", `'${f}': parameter '${_}' is missing a description. Add an '@param ${_}' tag.`);\n }\n }\n a.push([d, y]);\n } catch (E) {\n c(s, w.ParseError, `'${f}': ${E.message}`);\n }\n }\n });\n } catch (s) {\n c(void 0, w.ParseError, `Unable to analyze module: ${s?.message ?? s}`);\n }\n return {\n functions: a,\n autoRun: u,\n diagnostics: i\n };\n}\nconst Ve = \"__SHEETXL\";\nvar na = /* @__PURE__ */ Zt({ initialize: () => oa });\nasync function oa() {\n return Te || (Te = new Promise(async (e, t) => {\n try {\n const r = \"0.20.2\", n = `https://esm.sh/esbuild-wasm@${r}`, o = `https://esm.sh/esbuild-wasm@${r}/esbuild.wasm`, a = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n n\n)).default;\n await a.initialize({\n wasmURL: o,\n worker: !1\n }), e(a);\n } catch (r) {\n console.error(\"Error initializing esbuild:\", r), Te = null, t(new Error(\"The script bundler could not be loaded. Check your connection and try again.\", { cause: r }));\n }\n }), Te);\n}\nvar Te, aa = Yt((() => {\n Te = null;\n}));\nlet xe = null, Ue = null;\nasync function ia() {\n if (xe) return xe;\n if (Ue) {\n if (await Ue, !xe) throw new Error(\"ESBuild initialization promise resolved, but instance is not available.\");\n return xe;\n }\n let e, t;\n Ue = new Promise((r, n) => {\n e = r, t = n;\n });\n try {\n const { initialize: r } = await Promise.resolve().then(() => (aa(), na));\n return xe = await r(), e(), xe;\n } catch (r) {\n throw console.error(\"Failed to import or initialize esbuild:\", r), Ue = null, t(r), r;\n }\n}\nconst la = { compilerOptions: { target: \"esnext\" } };\nasync function sa(e, t, r = \"/script.js\", n = Ve) {\n try {\n const o = await ia(), a = \"@sheetxl/primitives\", l = `\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 `, i = 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(u) {\n const p = \"sheetxl-\" + (/* @__PURE__ */ new Date()).getTime();\n u.onResolve({ filter: new RegExp(`^(${r.replace(\"/\", \"\\\\/\")}|${a})$`) }, (h) => ({\n path: h.path,\n namespace: p\n })), u.onResolve({ filter: /.*/ }, (h) => {\n if (h.namespace !== p) return console.warn(`esbuild: Treating import \"${h.path}\" as external.`), {\n path: h.path,\n external: !0\n };\n }), u.onLoad({\n filter: /.*/,\n namespace: p\n }, (h) => {\n let c;\n if (h.path === r) c = t;\n else if (h.path === a) c = l;\n else return { errors: [{ text: `Cannot load unknown path in ${p}: ${h.path}` }] };\n return {\n contents: c,\n loader: \"ts\"\n };\n });\n }\n }],\n sourcemap: \"inline\",\n tsconfigRaw: la,\n minify: !0,\n platform: \"neutral\"\n });\n if (i.outputFiles && i.outputFiles.length > 0) return i.outputFiles[0].text;\n throw i.errors && i.errors.length > 0 ? /* @__PURE__ */ new Error(`esbuild bundling failed: ${i.errors.map((u) => u.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 ca(e, t, r) {\n return (n) => {\n const o = n.factory, a = () => o.createExpressionStatement(o.createCallChain(o.createPropertyAccessExpression(o.createIdentifier(Ve), \"checkRun\"), o.createToken(e.SyntaxKind.QuestionDotToken), void 0, [o.createStringLiteral(t), o.createNumericLiteral(r)])), l = (c) => {\n const g = c.statements;\n let T = 0;\n for (; T < g.length && e.isExpressionStatement(g[T]) && e.isStringLiteral(g[T].expression);) T++;\n return o.updateBlock(c, [\n ...g.slice(0, T),\n a(),\n ...g.slice(T)\n ]);\n }, i = (c) => e.isBlock(c) ? l(c) : o.createBlock([a(), c], !0), u = (c) => e.isBlock(c) ? l(c) : o.createBlock([a(), o.createReturnStatement(c)], !0), p = (c) => e.isForStatement(c) || e.isForInStatement(c) || e.isForOfStatement(c) || e.isWhileStatement(c) || e.isDoStatement(c), h = (c) => {\n if (p(c)) {\n const g = c.statement;\n return e.visitEachChild(c, (T) => {\n const I = h(T);\n return T === g ? i(I) : I;\n }, n);\n }\n if (e.isFunctionLike(c) && c.body) {\n const g = c.body;\n return e.visitEachChild(c, (T) => {\n const I = h(T);\n return T === g ? u(I) : I;\n }, n);\n }\n return e.visitEachChild(c, h, n);\n };\n return (c) => e.visitNode(c, h);\n };\n}\nconst ua = /* @__PURE__ */ new Set([\"TS2339\", \"TS2551\"]), da = \"TS2774\";\nfunction fa(e, t, r) {\n let n = null;\n const o = (a) => {\n r < a.getStart(t) || r >= a.end || (a.getStart(t) === r && (n = a), e.forEachChild(a, o));\n };\n return e.forEachChild(t, o), n;\n}\nconst pa = (e, t) => t.kind === e.SyntaxKind.NullKeyword || e.isIdentifier(t) && t.text === \"undefined\";\nfunction ma(e, t) {\n const r = t.parent;\n if (!r || !e.isPropertyAccessExpression(r) || r.name !== t) return !1;\n let n = r, o = r.parent;\n for (; o && (e.isParenthesizedExpression(o) || e.isNonNullExpression(o));) n = o, o = o.parent;\n if (!o) return !1;\n if ((e.isCallExpression(o) || e.isPropertyAccessExpression(o) || e.isElementAccessExpression(o)) && o.expression === n) return !!o.questionDotToken;\n if (e.isTypeOfExpression(o)) return !0;\n if (e.isPrefixUnaryExpression(o)) return o.operator === e.SyntaxKind.ExclamationToken;\n if (e.isConditionalExpression(o)) return o.condition === n;\n if (e.isIfStatement(o) || e.isWhileStatement(o) || e.isDoStatement(o)) return o.expression === n;\n if (e.isBinaryExpression(o)) {\n const a = o.operatorToken.kind, l = e.SyntaxKind;\n if (a === l.AmpersandAmpersandToken || a === l.BarBarToken || a === l.QuestionQuestionToken) return o.left === n;\n if (a === l.EqualsEqualsEqualsToken || a === l.ExclamationEqualsEqualsToken || a === l.EqualsEqualsToken || a === l.ExclamationEqualsToken) return pa(e, o.left === n ? o.right : o.left);\n }\n return !1;\n}\nfunction ga(e, t, r) {\n const n = [];\n for (const o of r) if (o.code !== w.MissingType) if (o.severity !== \"error\") n.push(o);\n else if (o.code === da) n.push({\n ...o,\n severity: \"warning\"\n });\n else if (ua.has(o.code)) {\n const a = fa(e, t, o.start);\n n.push(a && ma(e, a) ? {\n ...o,\n severity: \"warning\",\n message: `${o.message} Read as a probe, it is undefined.`\n } : o);\n } else n.push(o);\n return n;\n}\nconst Ht = \"//# sourceMappingURL\";\nvar Wr = /* @__PURE__ */ Zt({\n initialize: () => ha,\n readLibFile: () => ya\n});\nasync function ha() {\n return Ce || (Ce = new Promise(async (e, t) => {\n let r = null;\n try {\n r = await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"https://esm.sh/typescript@5.7.2\"\n);\n } catch (n) {\n console.error(\"Error initializing Browser TypeScript module:\", n);\n }\n r || (console.log(\"use script fallback\"), Ce = null), e(r);\n }), Ce);\n}\nfunction ya(e, t) {}\nvar Ce, Jr = Yt((() => {\n Ce = null;\n}));\nconst wa = `\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`, ba = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, Sa = async () => ba;\nlet je = null;\nconst rt = \"sheetxl.d.ts\", Wt = \"sheetxl-modules.d.ts\", Ea = `declare module '@sheetxl/primitives' { export = SheetXL; }\n`, va = [\n \"lib.webworker.d.ts\",\n \"lib.es2020.d.ts\",\n \"lib.esnext.asynciterable.d.ts\"\n], Jt = /* @__PURE__ */ new Map();\nlet nt = null, ot = null;\nasync function xa() {\n return ot || (ot = Promise.resolve().then(() => (Jr(), Wr)).then(async (e) => {\n const t = await Yr();\n return e.readLibFile(t, \"lib.es5.d.ts\") !== void 0 ? e.readLibFile : null;\n })), ot;\n}\nasync function Yr() {\n if (je) return je;\n try {\n const e = await (await Promise.resolve().then(() => (Jr(), Wr))).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 je = null, e;\n } finally {\n je = null;\n }\n}\nasync function Ta(e) {\n const t = e?.source ?? null;\n if (!t) return {\n module: null,\n diagnostics: []\n };\n const r = (e.disableBundle || e.declarationsOnly) ?? !1, [n, o, a] = await Promise.all([\n Sa(),\n Yr(),\n e.ambientTypes ? xa() : null\n ]), l = a ? e.ambientTypes ?? null : null;\n let i = \"\";\n const u = {\n allowJs: !0,\n declaration: !1,\n sourceMap: !1,\n inlineSourceMap: !1,\n inlineSources: !1,\n isolatedModules: !0,\n preserveConstEnums: !1,\n module: 99,\n noResolve: !0,\n emitDeclarationOnly: !1,\n target: o.ScriptTarget.ES2020,\n ...l ? {\n lib: va,\n skipLibCheck: !0,\n strict: !0\n } : {},\n ...l && e.lenient ? { noImplicitAny: !1 } : {}\n }, p = \"script\", h = `${p}.ts`, c = \"lib.d.ts\", g = \"global.d.ts\", T = {\n [h]: t,\n [c]: wa,\n [g]: n,\n ...l ? {\n [rt]: l,\n [Wt]: Ea\n } : {}\n }, I = (d) => T[d] ?? (a && d.startsWith(\"lib.\") ? a(o, d) : void 0), M = {\n getSourceFile: (d, y, E, L) => {\n if (d === rt) return nt?.text !== l && (nt = {\n text: l,\n file: o.createSourceFile(d, l, o.ScriptTarget.Latest, !1)\n }), nt.file;\n if (T[d] === void 0) {\n let j = Jt.get(d);\n if (!j) {\n const O = I(d);\n if (O === void 0) return;\n j = o.createSourceFile(d, O, o.ScriptTarget.Latest, !1), Jt.set(d, j);\n }\n return j;\n }\n return o.createSourceFile(d, T[d], o.ScriptTarget.Latest, !0);\n },\n fileExists: (d) => I(d) !== void 0,\n readFile: I,\n writeFile: (d, y) => {\n T[d] = y;\n },\n getCurrentDirectory: () => \"./\",\n getCanonicalFileName: (d) => d,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (d) => c,\n getNewLine: () => `\n`\n }, q = o.createProgram([\n h,\n g,\n ...l ? [rt, Wt] : []\n ], u, M), v = q.getTypeChecker(), C = q.getSourceFile(h), R = e.runGuard;\n q.emit(void 0, void 0, void 0, void 0, R ? { before: [ca(o, R.key, R.timeoutMs)] } : void 0), i = T[`${p}.js`] ?? \"\";\n const U = (d) => ({\n start: d.start ?? 0,\n length: d.length ?? 0,\n severity: d.category === o.DiagnosticCategory.Warning ? \"warning\" : \"error\",\n code: `TS${d.code}`,\n message: o.flattenDiagnosticMessageText(d.messageText, `\n`)\n }), Z = q.getSyntacticDiagnostics(C).map(U), P = l ? q.getSemanticDiagnostics(C).filter((d) => d.category === o.DiagnosticCategory.Error || d.category === o.DiagnosticCategory.Warning).map(U) : [], N = ra(o, C, v, {\n builtInNames: e.builtInNames,\n isBuiltIn: e.isBuiltIn,\n lenient: !!l && e.lenient\n });\n let k = [\n ...Z,\n ...P,\n ...N.diagnostics\n ];\n l && e.lenient && (k = ga(o, C, k));\n const pe = N.functions, W = N.autoRun, Ge = k.some((d) => d.severity === \"error\"), qe = `${Qt.uuidV4()}-script`;\n let s = null;\n if (Ge) i = \"\";\n else {\n try {\n r || (i = await sa(o, i, p));\n } catch {\n console.warn(\"Error bundling script\");\n }\n const d = i.indexOf(Ht);\n d > -1 && (s = i.substring(d + 20 + 1, i.length), i = i.substring(0, d), i = i.replaceAll(\"globalThis.__SHEETXL\", Ve));\n }\n const f = {\n functions: pe,\n commitId: qe,\n source: t,\n language: \"typescript\",\n compiled: i\n };\n return s && (f.sourceMap = s), W && (f.autoRun = W), {\n module: f,\n diagnostics: k\n };\n}\nself.addEventListener(\"message\", async (e) => {\n const { id: t, params: r } = e.data;\n try {\n const n = await Ta(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" });
52
+ }, n = "var yt = Object.defineProperty, Yt = (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}, Zt = (e, t) => {\n let r = {};\n for (var n in e) yt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || yt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, wt = Object.defineProperty, he = (e, t) => {\n let r = {};\n for (var n in e) wt(r, n, {\n get: e[n],\n enumerable: !0\n });\n return t || wt(r, Symbol.toStringTag, { value: \"Module\" }), r;\n}, ue = {\n Column: \"column\",\n Row: \"row\"\n};\n({ ...ue });\nfunction Be(e, t) {\n if (e === t) return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor) return !1;\n let r, n, o;\n if (Array.isArray(e)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (!Be(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 (!Be(n[1], t.get(n[0]))) return !1;\n return !0;\n }\n if (e instanceof Set && t instanceof Set) {\n if (e.size !== t.size) return !1;\n for (n of e.entries()) if (!t.has(n[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(e) && ArrayBuffer.isView(t)) {\n if (r = e.length, r != t.length) return !1;\n for (n = r; n-- !== 0;) if (e[n] !== t[n]) return !1;\n return !0;\n }\n if (e.constructor === RegExp) return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString) return e.toString() === t.toString();\n if (o = Object.keys(e), r = o.length, r !== Object.keys(t).length) return !1;\n for (n = r; n-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, o[n])) return !1;\n for (n = r; n-- !== 0;) {\n let a = o[n];\n if ((a !== \"_owner\" || !e.$$typeof) && !Be(e[a], t[a])) return !1;\n }\n return !0;\n }\n return e != e && t != t;\n}\nfunction en(e) {\n let t = Object.prototype.toString.call(e);\n return t === \"[object RegExp]\" || t === \"[object Date]\" || (function(r) {\n return r.$$typeof === tn;\n })(e);\n}\nvar tn = typeof Symbol == \"function\" && Symbol.for ? /* @__PURE__ */ Symbol.for(\"react.element\") : 60103;\nfunction rn(e) {\n return /* @__PURE__ */ (function(t) {\n return !!t && typeof t == \"object\";\n })(e) && !en(e);\n}\nfunction Ne(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Ee((r = e, Array.isArray(r) ? [] : {}), e, t) : e;\n var r;\n}\nfunction nn(e, t, r) {\n return e.concat(t).map(function(n) {\n return Ne(n, r);\n });\n}\nfunction St(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 bt(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction on(e, t, r) {\n let n = {};\n return r.isMergeableObject(e) && St(e).forEach(function(o) {\n n[o] = Ne(e[o], r);\n }), St(t).forEach(function(o) {\n (function(a, l) {\n return bt(a, l) && !(Object.hasOwnProperty.call(a, l) && Object.propertyIsEnumerable.call(a, l));\n })(e, o) || (bt(e, o) && r.isMergeableObject(t[o]) ? n[o] = (function(a, l) {\n if (!l.customMerge) return Ee;\n let i = l.customMerge(a);\n return typeof i == \"function\" ? i : Ee;\n })(o, r)(e[o], t[o], r) : n[o] = Ne(t[o], r));\n }), n;\n}\nfunction Ee(e, t, r) {\n (r ||= {}).arrayMerge = r.arrayMerge || nn, r.isMergeableObject = r.isMergeableObject || rn, r.cloneUnlessOtherwiseSpecified = Ne;\n let n = Array.isArray(t);\n return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : on(e, t, r) : Ne(t, r);\n}\nEe.all = function(e, t) {\n if (!Array.isArray(e)) throw Error(\"first argument should be an array\");\n return e.reduce(function(r, n) {\n return Ee(r, n, t);\n }, {});\n};\nvar Qt = he({\n DonePromise: () => ln,\n EmptyArray: () => _e,\n EmptyObject: () => an,\n OSType: () => fe,\n arrayMove: () => Tn,\n asNumber: () => dn,\n camelToPrettyCase: () => cn,\n castToString: () => Cn,\n cloneObject: () => gn,\n consoleWithNoSource: () => Ln,\n deepEqual: () => Be,\n deepFreeze: () => sr,\n deepMerge: () => Ee,\n diffValues: () => En,\n findEqualOrGreater: () => vn,\n findEqualOrLesser: () => xn,\n getFromPath: () => _n,\n getPlatform: () => Xe,\n isDefined: () => An,\n isEmpty: () => In,\n isEqualArrays: () => tr,\n isEqualBounds: () => yn,\n isNullOrUndefined: () => ir,\n isNumeric: () => fn,\n isObject: () => ke,\n isPromiseLike: () => $n,\n isRectInsideRect: () => Rn,\n isRectIntersect: () => lr,\n mergeContentful: () => bn,\n removeEmptyProperties: () => rr,\n removeEqualValues: () => or,\n removeEqualValuesLayered: () => ar,\n removeListenerAll: () => wn,\n roundAccurately: () => mn,\n setToPath: () => kn,\n splitNumber: () => pn,\n subtractRect: () => Nn,\n textToKey: () => un,\n toSafeJSON: () => at,\n transpose: () => Sn,\n uuidV4: () => Ke,\n validEnumValue: () => sn\n}), _e = Object.freeze([]), an = Object.freeze({}), ln = Promise.resolve(), er = (e) => e;\nfunction sn(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 cn(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 un(e) {\n return e.replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n}\nvar ie = Array.from({ length: 256 }, (e, t) => (t + 256).toString(16).slice(1));\nfunction Ke() {\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, ie[t[0]] + ie[t[1]] + ie[t[2]] + ie[t[3]] + \"-\" + ie[t[4]] + ie[t[5]] + \"-\" + ie[t[6]] + ie[t[7]] + \"-\" + ie[t[8]] + ie[t[9]] + \"-\" + ie[t[10]] + ie[t[11]] + ie[t[12]] + ie[t[13]] + ie[t[14]] + ie[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 dn(e) {\n let t = (function(r) {\n return 1 * r;\n })(e);\n return Number.isFinite(t) ? t : 0;\n}\nfunction fn(e) {\n let t = 1 * e;\n return Number.isFinite(t) && typeof t == \"number\";\n}\nvar We = [\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 pn(e) {\n let t = Math.abs(e);\n if (!Number.isFinite(t)) return null;\n let r = Math.trunc(t), n = t - r, o;\n r > 2 ** 53 - 1 ? o = Number(r.toExponential().split(\"e\")[1]) + 1 : (o = Math.ceil(Math.log10(r + 1)), We[o] <= r && o++);\n let a = 0, l = 0, i = 15 - o;\n if (n > 0 && i > 0) {\n let u = We[i];\n if (a = Math.round(n * u), a === u) r++, a = 0, r >= We[o] && o++;\n else if (a > 0) for (l = i; a % 10 == 0;) a /= 10, l--;\n }\n return {\n ip: e < 0 ? -r : r,\n fp: a,\n ipLength: o,\n fpLength: l\n };\n}\nfunction mn(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 gn(e) {\n return ir(e) ? e : JSON.parse(JSON.stringify(e));\n}\nvar hn = (e, t) => e === t;\nfunction tr(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 ||= hn;\n let n = e.length;\n for (let o = 0; o < n; o++) if (!r(e[o], t[o])) return !1;\n return !0;\n}\nfunction yn(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 ke(e) {\n return typeof e == \"object\" && !Array.isArray(e) && e !== null;\n}\nfunction rr(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\" ? rr(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 wn(e, t) {\n if (!e) return _e;\n let r = e.length;\n for (let n = 0; n < r; n++) {\n let o = e[n];\n o && o(t);\n }\n return _e;\n}\nfunction Sn(e) {\n if (!e) return e;\n let t = e.length, r = e[0].length, n = [];\n for (let o = 0; o < r; o++) n[o] = Array(t);\n for (let o = 0; o < t; o++) {\n let a = e[o];\n for (let l = 0; l < r; l++) n[l][o] = a[l];\n }\n return n;\n}\nvar nr = (e, t) => !(e !== t && !tr(e, t)) || !!e.isEqual?.(t);\nfunction or(e, t, r = nr) {\n if (e == null || e === t) return null;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) return r(e, t) ? null : e;\n let n = Object.keys(e), o = n.length;\n if (o === 0) return null;\n let a = !1;\n for (let l = 0; l < o; l++) {\n let i = n[l];\n or(e[i], t?.[i], r) === null && (a = !0, delete e[i]);\n }\n return a && Object.keys(e).length === 0 ? null : void 0;\n}\nfunction ar(e, t, r = nr) {\n if (e == null) return !0;\n if (!e || typeof e != \"object\" || Array.isArray(e) || e.isImmutable?.()) {\n let i, u = !1;\n for (let p = 0; !u && p < t.length; p++) t[p] !== void 0 && (u = !0, i = t[p]);\n return u && (e === i || r(e, i));\n }\n let n = Object.keys(e), o = n.length;\n if (o === 0) return !0;\n let a = t.length, l = !1;\n for (let i = 0; i < o; i++) {\n let u = n[i], p = [];\n for (let h = 0; h < a; h++) {\n let c = t[h]?.[u];\n c !== void 0 && p.push(c);\n }\n ar(e[u], p, r) && (l = !0, delete e[u]);\n }\n return l && Object.keys(e).length === 0;\n}\nfunction bn(...e) {\n let t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !ke(e[t - 1])) return e[t - 1];\n let r = e[0] || {};\n for (let n = 1; n < t; n++) r = Ee(r, e[n] || {}, { arrayMerge: (o, a) => [...a] });\n return r;\n}\nfunction En(e, t) {\n let r = {}, n = Object.keys(t), o = n.length;\n for (let a = 0; a < o; a++) {\n let l = n[a], i = e[l], u = t[l];\n i !== u && (r[l] = i === void 0 ? u : i);\n }\n return Object.keys(r).length === 0 ? null : r;\n}\nfunction vn(e, t, r = er) {\n let n = 0, o = e.length - 1;\n for (; n <= o;) {\n let a = Math.floor((n + o) / 2), l = r(e[a]);\n if (l === t) return a;\n l < t ? n = a + 1 : o = a - 1;\n }\n return n;\n}\nfunction xn(e, t, r = er) {\n let n = e.length - 1, o = 0;\n for (; n >= o;) {\n let a = Math.floor((n + o) / 2), l = r(e[a]);\n if (l === t) return a;\n l > t ? n = a - 1 : o = a + 1;\n }\n return n;\n}\nfunction Tn(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 Cn(e) {\n return e == null || e === void 0 ? \"\" : typeof e == \"string\" ? e : \"\" + e;\n}\nfunction ir(e) {\n return e == null;\n}\nfunction An(e) {\n return e != null;\n}\nfunction In(e) {\n return e == null || e === \"\";\n}\nfunction $n(e) {\n return !!e && typeof e.then == \"function\";\n}\nfunction lr(e, t) {\n return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top);\n}\nfunction Rn(e, t) {\n return e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right;\n}\nfunction Nn(e, t, r = !1) {\n if (!t) return [e];\n if (!lr(e, t)) return [];\n let n = [], o = e, a = () => {\n t.top > o.top && t.top < o.bottom && (n.push({\n ...o,\n bottom: t.top\n }), o = {\n ...o,\n top: t.top\n });\n }, l = () => {\n t.bottom > o.top && t.bottom < o.bottom && (n.push({\n ...o,\n top: t.bottom\n }), o = {\n ...o,\n bottom: t.bottom\n });\n }, i = () => {\n t.right > o.left && t.right < o.right && (n.push({\n ...o,\n left: t.right\n }), o = {\n ...o,\n right: t.right\n });\n }, u = () => {\n t.left > o.left && t.left < o.right && (n.push({\n ...o,\n right: t.left\n }), o = {\n ...o,\n left: t.left\n });\n };\n return r ? (u(), i(), a(), l()) : (a(), l(), i(), u()), n;\n}\nfunction _n(e, t) {\n let r = t.split(\".\"), n = e, o = r.length;\n for (let a = 0; a < o; a++) {\n let l = r[a];\n if (!n) return null;\n let i = n[l];\n if (typeof i == \"function\" && (i = i.bind(n)()), !i || !ke(i)) return i;\n n = i;\n }\n return n ?? null;\n}\nfunction kn(e, t, r) {\n let n = t.split(\".\"), o = e;\n if (!o) throw Error(\"Can not set path to a null path.\");\n let a = n.length;\n for (let l = 0; o && l < a - 1; l++) {\n let i = n[l], u = o[i];\n if (u ?? (u = {}, o[i] = u), !ke(u)) throw Error(\"Can not set path to a non object path.\");\n o = u;\n }\n if (typeof r != \"number\" && typeof r != \"boolean\" && typeof r != \"string\" && !ke(r)) throw Error(`Can not set path to ${r} that is not a a supported primitive.`);\n return o[n[a - 1]] = r, e;\n}\nfunction Ln(...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 Xe() {\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 sr(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]) || sr(t[r]);\n }), e;\n}\nfunction at(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) => at(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] = at(e[r]));\n return t;\n}\nhe({\n EmptyCell: () => cr,\n EmptyRange: () => On,\n EmptyRanges: () => Mn,\n EmptySelection: () => Dn,\n InsertCutShift: () => be,\n cellToRange: () => jn,\n classifyInsertCut: () => Jn,\n columnFirstCellComparator: () => mr,\n columnFirstRangeComparator: () => ur,\n createCellComparator: () => Fn,\n createConflatingRanges: () => Wn,\n createRangeComparator: () => wr,\n defaultRange: () => Gn,\n extendRangeToIntersectingRanges: () => Tr,\n extendRangeToUnionRanges: () => zn,\n intersectRanges: () => vr,\n isCellWithinRange: () => Pn,\n isEqualCells: () => Sr,\n isEqualRanges: () => dt,\n isEqualRangesArrays: () => Er,\n isEqualSelectionCoords: () => xr,\n isRangeWithinRange: () => br,\n isRangesIntersect: () => ft,\n isRefusedInsertCut: () => Yn,\n isSingleCell: () => Un,\n isValidRange: () => Kn,\n mergeRangeCoordValues: () => Ar,\n reverseColumnFirstCellComparator: () => yr,\n reverseColumnFirstRangeComparator: () => pr,\n reverseRowFirstCellComparator: () => hr,\n reverseRowFirstRangeComparator: () => fr,\n rowFirstCellComparator: () => gr,\n rowFirstRangeComparator: () => dr,\n sanitizeRange: () => Cr,\n sanitizeRangeArray: () => Xn,\n translateRange: () => Vn,\n unionRanges: () => it,\n unionRangesArrays: () => Bn\n});\nvar cr = Object.freeze({\n colIndex: 0,\n rowIndex: 0\n}), On = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 0,\n rowEnd: 0\n}), Mn = _e, Dn = Object.freeze({\n cell: cr,\n ranges: _e,\n rangeIndex: -1\n});\nfunction ur(e, t) {\n return e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart;\n}\nfunction dr(e, t) {\n return e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart;\n}\nfunction fr(e, t) {\n return e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd;\n}\nfunction pr(e, t) {\n return e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd;\n}\nfunction mr(e, t) {\n return e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex;\n}\nfunction gr(e, t) {\n return e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex;\n}\nfunction hr(e, t) {\n return e.rowIndex === t.rowIndex ? t.colIndex - e.colIndex : t.rowIndex - e.rowIndex;\n}\nfunction yr(e, t) {\n return e.colIndex === t.colIndex ? t.rowIndex - e.rowIndex : t.colIndex - e.colIndex;\n}\nfunction wr(e = ue.Row, t = !1) {\n return t ? e === ue.Column ? pr : fr : e === ue.Column ? ur : dr;\n}\nfunction Fn(e = ue.Row, t = !1) {\n return t ? e === ue.Column ? yr : hr : e === ue.Column ? mr : gr;\n}\nfunction Sr(e, t) {\n return e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex && e.scope === t.scope;\n}\nfunction dt(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 Pn(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 br(e, t) {\n return !(!e || !t) && !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd);\n}\nfunction ft(e, t) {\n return !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd);\n}\nfunction Er(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 (!dt(e[r], t[r])) return !1;\n return !0;\n}\nfunction Un(e) {\n return !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd;\n}\nfunction jn(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 vr(e, t, r) {\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n if (!e && !t || e.rowStart > t.rowEnd || e.rowEnd < t.rowStart || e.colStart > t.colEnd || e.colEnd < t.colStart) return null;\n let n = Math.max(e.colStart, t.colStart), o = Math.max(e.rowStart, t.rowStart), a = Math.min(e.colEnd, t.colEnd), l = Math.min(e.rowEnd, t.rowEnd), i = r;\n return i ? (i.colStart = n, i.rowStart = o, i.colEnd = a, i.rowEnd = l) : i = {\n colStart: n,\n rowStart: o,\n colEnd: a,\n rowEnd: l\n }, i;\n}\nfunction it(e, t, r) {\n if (!e && !t) return null;\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n let n = Math.min(e.colStart, t.colStart), o = Math.min(e.rowStart, t.rowStart), a = Math.max(e.colEnd, t.colEnd), l = Math.max(e.rowEnd, t.rowEnd), i = r;\n return i ? (i.colStart = n, i.rowStart = o, i.colEnd = a, i.rowEnd = l) : i = {\n colStart: n,\n rowStart: o,\n colEnd: a,\n rowEnd: l\n }, i;\n}\nfunction xr(e, t) {\n return e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!Sr(e.cell, t.cell) && Er(e.ranges, t.ranges);\n}\nfunction Bn(e, t, r) {\n if (!e || e.length === 0) return null;\n if (e.length === 1 && !t) return e[0];\n let n = e[0];\n for (let o = 1; o < e.length; o++) n = it(n, e[o], r);\n return t && (n = it(n, t, r)), n;\n}\nfunction Kn(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 zn(e, t) {\n if (!t || t.length === 0) return e;\n let r = e, n = null;\n for (; !dt(r, n);) n = r, r = Tr(n, t);\n return r;\n}\nfunction Tr(e, t) {\n if (!t || t.length === 0) return e;\n let r = { ...e };\n for (let n = 0; n < t.length; n++) {\n let o = t[n];\n ft(r, o) && (r.rowStart = Math.min(r.rowStart, o.rowStart), r.colStart = Math.min(r.colStart, o.colStart), r.rowEnd = Math.max(r.rowEnd, o.rowEnd), r.colEnd = Math.max(r.colEnd, o.colEnd));\n }\n return r;\n}\nfunction Vn(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 Cr(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 Xn(e, t) {\n if (!e) return null;\n let r = e.length, n = Array(r);\n for (let o = 0; o < r; o++) n[o] = Cr(e[o], t);\n return n;\n}\nfunction Gn(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], Hn = (e, t, r) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Ar(e, t = 2, r, n = ue.Row, o) {\n let a = [...e];\n if (t <= 0 || e.length <= 1) return a;\n let l = n === ue.Column, i = 0, u = !1;\n do {\n let p = a.sort(wr(l ? ue.Row : ue.Column));\n a = [], a.push(p[0]);\n let h = p.length, c = 0, g = p[0], T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n for (let v = 1; v < h; v++) {\n let C = p[v], R = !1;\n if (R = l ? g && I === C.rowStart && q === C.rowEnd && M + 1 === C.colStart : g && T === C.colStart && M === C.colEnd && q + 1 === C.rowStart, R) {\n let U = {\n colStart: T,\n rowStart: I,\n colEnd: l ? C.colEnd : M,\n rowEnd: l ? q : C.rowEnd\n };\n if (g.value !== void 0 && (U.value = g.value), r) {\n let Z = o ?? [null, null];\n Z[0] = g, Z[1] = C, U = r(Z, U, n);\n }\n if (U) {\n a[c] = U, u = !0, g = U, T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n continue;\n }\n }\n a[++c] = C, g = C, T = g.colStart, I = g.rowStart, M = g.colEnd, q = g.rowEnd;\n }\n i++, l = !l, i === 1 && (u = !0);\n } while (i < t && u && a.length > 1);\n return a;\n}\nfunction Wn(e, t = !1) {\n let r = [], n, o = null, a = -(2 ** 53 - 1), l = -(2 ** 53 - 1);\n return {\n append: (i, u, p) => {\n let h = !0, c = p !== void 0;\n if (c) {\n let I = e ? e(n, p, t) : n === p ? p : void 0;\n I === void 0 ? h = !1 : p = I;\n }\n if (h && u === l + 1 && i === a) return t ? o.rowEnd = u : o.colEnd = u, l = u, void (n = p);\n o && r.push(o);\n let g = t ? i : u, T = t ? u : i;\n o = {\n colStart: g,\n rowStart: T,\n colEnd: g,\n rowEnd: T\n }, c && (o.value = p), a = i, l = u, n = p;\n },\n done: (i) => (o &&= (r.push(o), null), i ? Ar(r, 3, i === !0 ? Hn : i, t ? ue.Column : ue.Row, qn) : r)\n };\n}\nvar be = {\n Close: \"close\",\n Blank: \"blank\",\n Inside: \"inside\",\n Tear: \"tear\"\n};\nfunction Jn(e, t, r) {\n let n = r === ue.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 Yn(e) {\n return e === be.Inside || e === be.Tear;\n}\nvar Y = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, H = {\n Html: \"text/html\",\n Plain: \"text/plain\",\n Png: \"image/png\"\n};\nhe({\n findNextCellWithinSelection: () => Ir,\n traverseHiddenHeaders: () => de\n});\nfunction de(e, t, r, n) {\n if (!e) return t;\n let o = t, a = r === Y.Right || r === Y.Down;\n for (;;) {\n let l = e(o, !a);\n if (l === 0) return o;\n let i = a ? o + l : o - l;\n if (n !== void 0 && (a ? i > n : i < n)) return n;\n o = i;\n }\n}\nfunction Ir(e, t = Y.Right, r, n, o, a = null) {\n if (a && xr(a, e)) return e;\n let l = e.ranges, i = e.rangeIndex, u = l[i];\n if (!ft({\n rowStart: e.cell.rowIndex,\n colStart: e.cell.colIndex,\n rowEnd: e.cell.rowIndex,\n colEnd: e.cell.colIndex\n }, u)) return e;\n let p = { ...e.cell }, h = i;\n switch (t) {\n case Y.Right:\n p.colIndex = de(o, p.colIndex + 1, t, u.colEnd + 1);\n break;\n case Y.Left:\n p.colIndex = de(o, p.colIndex - 1, t, u.colStart - 1);\n break;\n case Y.Down:\n p.rowIndex = de(n, p.rowIndex + 1, t, u.rowEnd + 1);\n break;\n case Y.Up: p.rowIndex = de(n, p.rowIndex - 1, t, u.rowStart - 1);\n }\n let c = (I) => {\n if (I) {\n h = i >= l.length - 1 ? 0 : i + 1;\n let M = l[h];\n p = {\n colIndex: M.colStart,\n rowIndex: M.rowStart\n };\n } else {\n h = i <= 0 ? l.length - 1 : i - 1;\n let M = l[h];\n p = {\n colIndex: M.colEnd,\n rowIndex: M.rowEnd\n };\n }\n };\n if (t === Y.Right && p.colIndex > u.colEnd && p.rowIndex === u.rowEnd) c(!0);\n else if (t === Y.Left && p.colIndex < u.colStart && p.rowIndex === u.rowStart) c(!1);\n else if (t === Y.Down && p.colIndex === u.colEnd && p.rowIndex > u.rowEnd) c(!0);\n else if (t === Y.Up && p.colIndex === u.colStart && p.rowIndex < u.rowStart) c(!1);\n else {\n let I = p.rowIndex, M = p.colIndex;\n switch (t) {\n case Y.Right:\n M > u.colEnd && (I = de(n, I + 1, t, u.rowEnd + 1), M = u.colStart, I > u.rowEnd && (I = u.rowStart));\n break;\n case Y.Left:\n M < u.colStart && (I = de(n, I - 1, t, u.rowStart - 1), M = u.colEnd, I < u.rowStart && (I = u.rowEnd));\n break;\n case Y.Down:\n I > u.rowEnd && (M = de(o, M + 1, t, u.colEnd + 1), I = u.rowStart, M > u.colEnd && (M = u.colStart));\n break;\n case Y.Up: I < u.rowStart && (M = de(o, M - 1, t, u.colStart - 1), I = u.rowEnd, M < u.colStart && (M = u.colEnd));\n }\n p = {\n rowIndex: I,\n colIndex: M\n };\n }\n let g = r(p);\n if (!br(g, u)) {\n let I = vr(g, u);\n I && (g = I);\n }\n let T = {\n rowStart: de(n, g.rowStart, Y.Down, g.rowEnd),\n colStart: de(o, g.colStart, Y.Right, g.colEnd),\n rowEnd: de(n, g.rowEnd, Y.Up, g.rowStart),\n colEnd: de(o, g.colEnd, Y.Left, g.colStart)\n };\n if (T.rowStart !== p.rowIndex || T.colStart !== p.colIndex) {\n switch (t) {\n case Y.Right:\n l[h].colStart === T.colStart && l[h].colEnd === T.colEnd && (p.rowIndex = T.rowEnd), p.colIndex = T.colEnd;\n break;\n case Y.Left:\n l[h].colStart === T.colStart && l[h].colEnd === T.colEnd && (p.rowIndex = T.rowStart), p.rowIndex === T.rowStart ? p.colIndex = T.colStart + 1 : p.colIndex = T.colStart;\n break;\n case Y.Down:\n l[h].rowStart === T.rowStart && l[h].rowEnd === T.rowEnd && (p.colIndex = T.colEnd), p.rowIndex = T.rowEnd;\n break;\n case Y.Up: l[h].rowStart === T.rowStart && l[h].rowEnd === T.rowEnd && (p.colIndex = T.colStart), p.colIndex === T.colStart ? p.rowIndex = T.rowStart + 1 : p.rowIndex = T.rowStart;\n }\n return Ir({\n cell: p,\n ranges: e.ranges,\n rangeIndex: h\n }, t, r, n, o, a ?? e);\n }\n return {\n ranges: e.ranges,\n cell: p,\n rangeIndex: h\n };\n}\nvar Zn = 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 a = this._onceMessageKeys;\n if (a.has(r.onceKey)) return;\n a.add(r.onceKey);\n }\n let n = r?.meta, o = this._overrides;\n if (o) {\n let a = o[e];\n if (a) return void a.bind(o)(t, r);\n }\n n === void 0 ? console[e](t) : console[e](t, n);\n }\n log(e, t) {\n return this._write(\"log\", e, t);\n }\n error(e, t) {\n return this._write(\"error\", e, t);\n }\n warn(e, t) {\n return this._write(\"warn\", e, t);\n }\n debug(e, t) {\n return this._write(\"debug\", e, t);\n }\n};\nnew Zn();\nvar Je;\nhe({\n EmptyBounds: () => to,\n EmptyRect: () => eo,\n EmptyTopLeft: () => Qn\n});\nvar Qn = Object.freeze({\n left: 0,\n top: 0\n}), eo = Object.freeze({\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n}), to = Object.freeze({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n});\nhe({\n canUseDOM: () => $r,\n getDPI: () => no,\n hasFocus: () => Rr,\n openFileDialog: () => ro,\n scrollIntoContainer: () => oo,\n whenFocus: () => ao\n});\nvar $r = !(typeof window > \"u\" || !window.document || !window.document.createElement), ro = (e = \"*.*\") => new Promise((t, r) => {\n if (!$r) return void r(\"Unable to open dialog with no dom.\");\n let n = document.createElement(\"input\");\n n.type = \"file\", n.accept = e;\n let o = null, a = !1;\n globalThis.addEventListener?.(\"focus\", () => {\n setTimeout(() => {\n o || a || (a = !0, t(null));\n }, 1e3);\n }, {\n once: !0,\n passive: !0\n }), n.onchange = () => {\n if (o = n.files?.[0] ?? null, o) {\n if (a) return void console.warn(\"File open detected after faux cancel.\", o);\n t(o);\n }\n }, n.autofocus = !0, n.click();\n}), no = () => {\n let e = 1;\n return typeof window == \"object\" && (e = window.devicePixelRatio || 1), e;\n}, Rr = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), oo = (e, t, r = \"auto\") => {\n if ((() => {\n if (Je === void 0) {\n let u = !1;\n try {\n document.createElement(\"div\").scrollIntoView({ get container() {\n return u = !0, \"nearest\";\n } });\n } catch {}\n Je = u;\n }\n return Je;\n })()) return void t.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n behavior: r,\n container: \"nearest\"\n });\n let n = e.getBoundingClientRect(), o = t.getBoundingClientRect(), a = n.top + e.clientTop, l = a + e.clientHeight, i = 0;\n o.top < a ? i = o.top - a : o.bottom > l && (i = Math.min(o.bottom - l, o.top - a)), i !== 0 && e.scrollBy({\n top: i,\n behavior: r\n });\n}, ao = async (e, t = !1) => new Promise((r) => {\n Rr(e, t) ? r(!0) : e.addEventListener(\"focusin\", () => {\n r(!0);\n }, { once: !0 }), e.focus();\n});\nhe({\n cancelTimeout: () => fo,\n debounce: () => so,\n nextTick: () => uo,\n rafThrottle: () => co,\n requestTimeout: () => po,\n throttle: () => lo\n});\nvar Le = globalThis.requestAnimationFrame, io = globalThis.cancelAnimationFrame;\nfunction lo(e, t) {\n let r = null;\n return (...n) => {\n let o = Date.now();\n (!r || o - r >= t) && (r = o, e(...n));\n };\n}\nfunction so(e, t = 300, r = !1) {\n let n, o, a, l = null, i = 0;\n function u() {\n let h = Date.now() - i;\n h < t && h >= 0 ? l = setTimeout(u, t - h) : (l = null, r || (a = e.apply(o, n), o = n = null));\n }\n t ??= 100;\n let p = function() {\n o = globalThis, n = arguments, i = Date.now();\n var h = r && !l;\n return l ||= setTimeout(u, t), h && (a = e.apply(o, n), o = n = null), a;\n };\n return p.clear = function() {\n l &&= (clearTimeout(l), null);\n }, p.flush = function() {\n l &&= (a = e.apply(o, n), o = n = null, clearTimeout(l), null);\n }, p;\n}\nvar co = (e) => {\n let t, r = !1, n = function() {\n r = !1, e(t);\n };\n return function(o) {\n t = o, t && t.persist && t.persist(), r || (r = !0, Le(n));\n };\n}, uo = (e) => {\n if (typeof Le == \"function\") Le(() => {\n e();\n });\n else {\n let t = globalThis.setImmediate;\n (typeof t == \"function\" ? t : setTimeout)(() => {\n e();\n });\n }\n}, Et = typeof performance == \"object\" && typeof performance.now == \"function\" ? () => performance.now() : () => Date.now(), fo = (e) => {\n io(e.id);\n}, po = (e, t) => {\n let r = Et(), n = { id: Le(function o() {\n Et() - r >= t ? e.call(null) : n.id = Le(o);\n }) };\n return n;\n};\nhe({ MESSAGE_ERROR_INVALID_ARG: () => mo });\nvar mo = (e) => `Invalid argument: '${e}'.`;\nhe({\n APP_MIME_TYPE: () => go,\n DEFAULT_MIME_TYPE: () => \"*/*\",\n JSONStableStringify: () => bo,\n arrayBufferToBase64: () => Nr,\n base64ToArrayBuffer: () => So,\n blobToString: () => lt,\n isLittleEndian: () => wo,\n isNodeBuffer: () => ho,\n isSharedArrayBufferSupported: () => yo\n});\nvar go = \"application/octet-stream\", Ae = globalThis.Buffer, ho = (e) => Ae?.isBuffer(e) ?? !1, yo = typeof SharedArrayBuffer == \"function\" && (globalThis.crossOriginIsolated === void 0 || globalThis.crossOriginIsolated === !0), wo = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1, vt = globalThis.FileReader, So = (e) => {\n let t = typeof globalThis.atob == \"function\" ? globalThis.atob(e) : Ae.from(e, \"base64\").toString(\"binary\"), r = t.length, n = new Uint8Array(r);\n for (let o = 0; o < r; o++) n[o] = t.charCodeAt(o);\n return n.buffer;\n}, Nr = (e) => {\n let t = new Uint8Array(e), r = t.byteLength, n = \"\";\n for (let o = 0; o < r; o++) n += String.fromCharCode(t[o]);\n if (typeof globalThis.btoa == \"function\") return globalThis.btoa(n);\n if (Ae) return Ae.from(n, \"binary\").toString(\"base64\");\n throw Error(\"Unsupported environment\");\n}, lt = (e) => new Promise((t, r) => {\n if (e) if (vt) {\n let n = new vt();\n n.onload = () => {\n t(n.result);\n }, n.onerror = () => {\n r(n.error);\n }, n.readAsText(e);\n } else if (Ae) {\n let n = (o) => Ae.from(o).toString(\"utf-8\");\n e.arrayBuffer().then((o) => {\n t(n(o));\n }).catch((o) => {\n r(o);\n });\n } else r(/* @__PURE__ */ Error(\"Unsupported environment\"));\n else t(\"\");\n});\nfunction bo(e, t) {\n t ||= {}, typeof t == \"function\" && (t = { cmp: t });\n let r = typeof t.cycles == \"boolean\" && t.cycles, n = t.cmp && (o = t.cmp, function(l) {\n return function(i, u) {\n return o({\n key: i,\n value: l[i]\n }, {\n key: u,\n value: l[u]\n });\n };\n });\n var o;\n let a = [];\n return (function l(i) {\n if (i && i.toJSON && typeof i.toJSON == \"function\" && (i = i.toJSON()), i === void 0) return;\n if (typeof i == \"number\") return isFinite(i) ? \"\" + i : \"null\";\n if (typeof i != \"object\") return JSON.stringify(i);\n let u;\n if (Array.isArray(i)) {\n u = \"[\";\n for (let c = 0; c < i.length; c++) c && (u += \",\"), u += l(i[c]) || \"null\";\n return u + \"]\";\n }\n if (i === null) return \"null\";\n if (a.indexOf(i) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw TypeError(\"Converting circular structure to JSON\");\n }\n let p = a.push(i) - 1, h = Object.keys(i).sort(n && n(i));\n u = \"\";\n for (let c = 0; c < h.length; c++) {\n let g = h[c], T = l(i[g]);\n T && (u && (u += \",\"), u += JSON.stringify(g) + \":\" + T);\n }\n return a.splice(p, 1), \"{\" + u + \"}\";\n })(e);\n}\nvar Eo;\nhe({\n DATA_URL_PNG_PREFIX: () => _r,\n getImageDataUrl: () => vo,\n loadImageDetails: () => xo\n});\nvar _r = \"data:image/png;base64,\", kr = \"Unable to resolve image.\", xt = (e) => new Promise(async (t, r) => {\n let n = null;\n try {\n let o = n = new Image();\n o.src = e, o.addEventListener(\"load\", function() {\n t({\n width: o.naturalWidth,\n height: o.naturalHeight\n });\n }, { once: !0 }), o.addEventListener(\"error\", function(a) {\n URL.revokeObjectURL(e);\n let l = a?.error?.message ?? \"\";\n l &&= `: ${l}`, r(`Invalid Image${l}`);\n }, { once: !0 }), await o.decode();\n } catch {\n n?.src && URL.revokeObjectURL(n.src);\n }\n n || r(Error(kr));\n}), vo = (e, t = 1) => new Promise(async (r, n) => {\n let o = null;\n try {\n let a = o = new Image();\n a.src = e, a.addEventListener(\"load\", function() {\n try {\n let l = document.createElement(\"canvas\");\n l.width = a.naturalWidth, l.height = a.naturalHeight;\n let i = l.getContext(\"2d\");\n if (!i) throw Error(\"Unable to create 2d context\");\n i.drawImage(a, 0, 0);\n let u = l.toDataURL(\"image/png\", t);\n r({\n elemImg: a,\n dataUrl: u\n });\n } catch (l) {\n URL.revokeObjectURL(e), n(l);\n }\n }, { once: !0 }), a.addEventListener(\"error\", function() {\n URL.revokeObjectURL(e), n(\"Invalid Image\");\n }, { once: !0 }), await a.decode();\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || n(Error(kr));\n}), Ye = \"image/svg+xml\", xo = async (e, t = null) => {\n let r = null, n = async () => {\n try {\n let a = t ?? \"image/*\", l = URL.createObjectURL(new Blob([e], { type: a }));\n r = {\n mimeType: a,\n naturalSize: await xt(l),\n asUrl: l\n };\n } catch {}\n }, o = async () => {\n try {\n let a = new TextDecoder().decode(e), l = URL.createObjectURL(new Blob([a], { type: Ye })), i = await xt(l);\n r = {\n mimeType: t ?? Ye,\n naturalSize: i,\n asUrl: l,\n asSVGText: a\n };\n } catch {}\n };\n if (t === Ye ? await o() : t?.startsWith(\"image/\") ? await n() : (await n(), r || await o()), !r) throw Error(\"Failed to load image\");\n return r;\n}, Tt = /* @__PURE__ */ new Set(), To = (e) => {\n Tt.has(e) || (Tt.add(e), console.warn(`Unknown property '${e}' in update; ignoring.`));\n};\n(function(e) {\n e.PassThrough = Object.freeze({});\n let t = e.resolveTypedUpdates = (r, n, o, a, l = !1) => {\n if (r === null) return r;\n if (r === void 0) return a;\n let i = r;\n if (n?.shorthand) {\n let c = n?.shorthand(r, o);\n c !== void 0 && (i = c);\n }\n if (i !== null && n?.getSubType) {\n let c = n.getSubType(i, a);\n c && (n = c);\n }\n let u = n?.properties, p = n?.arrayType ?? !1, h = i;\n if (n && n.merge && h && a) h = n.merge(h, a, o);\n else if (!p && u) {\n let c = Object.keys({\n ...i,\n ...a\n });\n h = null;\n let g = c.length;\n for (let T = 0; T < g; T++) {\n let I = c[T], M, q = i?.[I];\n if (q !== void 0) {\n let v = u[I];\n if (!v) {\n To(I);\n continue;\n }\n M = t(q, v, o, a?.[I], l);\n } else M = a?.[I];\n M == null ? l && q === null && (h ??= {}, h[I] = null) : (h ??= {}, h[I] = M);\n }\n }\n return h;\n };\n})(Eo ||= {});\nvar pt = {\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}, Lr = {\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}, Ct = Xe() === fe.Safari ? pt : Lr, Co = {\n Safari: pt,\n Perms: Lr,\n PermsWrite: Ct,\n PermsRead: Ct\n}, Ze = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.(\"focus\", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), Qe = async (e, t, r) => {\n if (Xe() === fe.Safari) return await r(Error(pt.message));\n try {\n let n = async (l) => {\n try {\n return await l();\n } catch (i) {\n if (i.message?.includes(\"Document is not focused\")) return !1;\n throw i;\n }\n }, o = await globalThis?.navigator?.permissions?.query({\n name: e,\n allowWithoutGesture: !0,\n allowWithoutSanitization: !0\n }), a = !1;\n if (o.state === \"prompt\" && (a = await n(t)), a || o.state !== \"granted\" || (a = await t()), !a) return await r(Error(o.state));\n } catch (n) {\n return n.message === \"No valid data on clipboard\" || n.name === \"DataError\" ? void 0 : await r(n);\n }\n}, Or = async (e) => {\n if (!e) return null;\n try {\n return await e.read({ unsanitized: [H.Html] });\n } catch {}\n return await e.read();\n}, Ao = async (e, t) => {\n if (!e) return null;\n let r = await Or(e), n = !1;\n for (let o = 0; !n && r && o < r.length; o++) if (n = r[o].types.includes(t), n) return await r[o].getType(t);\n return null;\n};\nif (!globalThis.ClipboardItem) {\n let e = (r, n) => new Blob([n], { type: r });\n class t {\n constructor(n, o) {\n this._items = {}, this._types = Object.keys(n);\n let a = {}, l = Object.keys(n);\n for (let i = 0; i < l.length; i++) {\n let u = l[i], p = n[u];\n a[u] = typeof p == \"string\" ? e(u, p) : p;\n }\n this._items = a, this._presentationStyle = o?.presentationStyle ?? \"unspecified\";\n }\n get types() {\n return this._types;\n }\n getType(n) {\n return Promise.resolve(this._items[n]);\n }\n supports(n) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nvar At, st = async (e, t = H.Html) => new Promise(async (r, n) => {\n try {\n let o = await Ao(e, t);\n if (o) {\n let a = new FileReader();\n a.onload = () => {\n r(a.result);\n }, a.onerror = () => {\n r(\"\");\n }, a.readAsText(o);\n } else r(\"\");\n } catch (o) {\n n(o);\n }\n}), It = async (e, t = H.Html) => {\n let r = await st(e, t);\n if (!r) return null;\n let n = null;\n try {\n n = new DOMParser().parseFromString(r, H.Html);\n } catch {\n console.warn(\"Can't parse html from clipboard.\");\n }\n return n;\n}, Io = async (e) => {\n e && await e.writeText(\"\");\n}, Oe = \"clipboard-uuid\", Re = \"web text/uuid\", $t = (e) => `<div style=\"display:none\" ${Oe}=\"${e}\"/>`, Rt = { type: H.Plain }, Nt = { type: H.Html }, _t = { type: Re }, $o = (e, t) => {\n let r = null;\n try {\n let n = new DOMParser().parseFromString(t, H.Html);\n n.body.firstElementChild?.setAttribute(Oe, e), r = n.getElementsByTagName(\"body\")[0].innerHTML;\n } catch (n) {\n console.warn(\"Can't embed uuid.\", n);\n }\n return r;\n}, kt = (e, t) => {\n if (!t || !e) return !1;\n try {\n let r = t.querySelectorAll(`[${Oe}=\"${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}, Lt = 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 Qe(\"clipboard-read\", async () => {\n await Ze();\n let e = await st(this._nativeClipboard, Re);\n if (!this._state || e && e === this._state.uuid) return !0;\n let t = await It(this._nativeClipboard, H.Html);\n return !this._state || (kt(this._state.uuid, t) || this.clear(), !0);\n }, async (e) => {\n e?.message === \"denied\" || e.message?.includes(\"Document is not focused\") || Xe() === 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 Qe(\"clipboard-read\", async () => {\n if (await Ze(), this._state?.uuid) {\n let t = await st(this._nativeClipboard, Re);\n if (t && t === e._state?.uuid) return !0;\n let r = await It(this._nativeClipboard, H.Html);\n if (kt(e._state?.uuid, r)) return !0;\n }\n return e._state = {\n items: await Or(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: Ke(),\n items: e,\n ref: null\n });\n }\n async _write(e) {\n if (!this._nativeClipboard) return this._state = e, this.dispatchEvent(new Event(\"clipboardwrite\")), void this.dispatchEvent(new Event(\"clipboardchange\"));\n let t = this, r = [], n = e.uuid, o = e.items ?? [], a = () => {\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 Qe(\"clipboard-write\", async () => {\n await Ze(), n && o.length === 0 && (o.push(new ClipboardItem({ [Re]: new Blob([n], _t) })), o.push(new ClipboardItem({ [H.Html]: new Blob([$t(n)], Nt) })));\n for (let l = 0; l < Math.min(1, o.length); l++) {\n let i = o[l], u = i.types.indexOf(H.Html), p = null;\n if (u !== -1 && (p = await lt(await i.getType(H.Html)), p &&= $o(n, p)), !p && i.types.includes(H.Plain)) {\n let I = await i.getType(H.Plain);\n if (I) {\n let M = null;\n typeof I == \"string\" ? (console.warn(\"text as string\", I), M = I) : M = await lt(I), M && (p = `<div ${Oe}=\"${n}\">${M}</div>`);\n }\n }\n if (!p && i.types.includes(H.Png)) {\n let I = Nr(await (await i.getType(H.Png)).arrayBuffer());\n p = `<div ${Oe}=\"${n}\"><img src=\"${_r + I}\"/></div>`;\n }\n !p && n && (p = $t(n));\n let h = new Blob([p ?? \"\"], Nt), c = {}, g = i.types, T = g.length;\n for (let I = 0; I < T; I++) {\n let M = g[I];\n c[M] = I === u ? h : i.getType(M);\n }\n p && u === -1 && (c[H.Html] = h), n && (c[Re] = new Blob([n], _t)), r.push(new ClipboardItem(c));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : await Io(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 a(), !0;\n }, async (l) => {\n this.dispatchEvent(new Event(\"clipboarderrorwrite\")), a();\n });\n }\n async writeReference(e) {\n if (!e) return void this.clear();\n let t = null, r = {};\n try {\n let o = await e.toText?.() ?? null;\n o && (r[H.Plain] = new Blob([o ?? \"\"], Rt));\n } catch (o) {\n t = o;\n }\n try {\n let o = await e.toHtml?.() ?? null;\n o && (r[H.Html] = new Blob([o], { type: H.Html }));\n } catch (o) {\n t = o, console.warn(\"export to html\", o);\n }\n try {\n let o = await e.toImage?.() ?? null;\n o && (r[H.Png] = o);\n } catch (o) {\n t = o, console.warn(\"export to png\", o);\n }\n let n = this._write({\n uuid: Ke(),\n ref: e,\n items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null\n });\n if (t) throw t;\n return n;\n }\n clear(e = !1) {\n this._state && (this._state = null, e && this._write({\n uuid: null,\n ref: null,\n items: null\n }), this.dispatchEvent(new Event(\"clipboardwrite\")), this.dispatchEvent(new Event(\"clipboardchange\")));\n }\n async readReference() {\n return await this.read(), this._state?.ref ?? null;\n }\n readText() {\n return new Promise(async (e, t) => {\n let r = await this.read(), n = null, o = r ? r.length : 0;\n for (let l = 0; !n && l < o; l++) {\n let i = r[l];\n i.types.includes(H.Plain) && (n = await i.getType(H.Plain));\n }\n if (!n) return void e(\"\");\n let a = new FileReader();\n a.onload = () => {\n e(a.result);\n }, a.readAsText(n), a.onerror = (l) => {\n t(l);\n };\n });\n }\n async writeText(e) {\n let t = [new ClipboardItem({ [H.Plain]: new Blob([e], Rt) })];\n return this._write({\n uuid: Ke(),\n items: t,\n ref: null\n });\n }\n addEventListener(e, t, r = {}) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o || (o = /* @__PURE__ */ new Map(), n.set(e, o)), t && o.set(t, typeof r == \"boolean\" ? {} : r);\n }\n dispatchEvent(e) {\n if (!e) return !1;\n let t = (r) => {\n let n = r.get(e.type);\n n && n.forEach((o, a) => {\n try {\n typeof a == \"function\" ? a(e) : a.handleEvent && a.handleEvent(e), o.once && n.delete(a);\n } catch (l) {\n console.warn(l);\n }\n });\n };\n return t(this._listenersCapture), t(this._listeners), !0;\n }\n removeEventListener(e, t, r) {\n let n = r?.capture ? this._listenersCapture : this._listeners, o = n.get(e);\n o && t && (o.delete(t), o.size === 0 && n.delete(e));\n }\n close() {\n this._onFocus && globalThis.removeEventListener?.(\"focus\", this._onFocus), this._onBlur && globalThis.removeEventListener?.(\"blur\", this._onBlur);\n }\n};\n(At = Lt ||= {}).ErrorMessages = Co, At.Global = new Lt();\nvar Mr = (e) => e === \" \" || e === \" \" || e === `\n` || e === \"\\r\";\nfunction Ot(e, t) {\n for (; t.i < e.length && Mr(e[t.i]);) t.i++;\n}\nfunction Dr(e, t, r, n) {\n let o = [], a = \"\", l = () => {\n a &&= (o.push(a), \"\");\n };\n for (; t.i < e.length;) {\n let i = e[t.i];\n if (i === \"}\" && n > 0) break;\n if (i !== \"{\") if (i === \"#\" && r) l(), o.push({ kind: \"hash\" }), t.i++;\n else {\n if (i === \"'\") {\n let u = e[t.i + 1];\n if (u === \"'\") {\n a += \"'\", t.i += 2;\n continue;\n }\n if (u === \"{\" || u === \"}\" || u === \"#\" && r) {\n for (t.i++; t.i < e.length;) {\n let p = e[t.i];\n if (p === \"'\") {\n if (e[t.i + 1] === \"'\") {\n a += \"'\", t.i += 2;\n continue;\n }\n t.i++;\n break;\n }\n a += p, t.i++;\n }\n continue;\n }\n a += \"'\", t.i++;\n continue;\n }\n a += i, t.i++;\n }\n else t.i++, l(), o.push(Ro(e, t, r, n));\n }\n return l(), o;\n}\nfunction Ro(e, t, r, n) {\n let o = t.i;\n for (; t.i < e.length && e[t.i] !== \",\" && e[t.i] !== \"}\";) t.i++;\n let a = e.slice(o, t.i).trim();\n if (e[t.i] === \"}\") return t.i++, {\n kind: \"arg\",\n name: a\n };\n if (t.i >= e.length) return {\n kind: \"arg\",\n name: a\n };\n t.i++;\n let l = t.i;\n for (; t.i < e.length && e[t.i] !== \",\" && e[t.i] !== \"}\";) t.i++;\n let i = e.slice(l, t.i).trim(), u = i === \"plural\" || i === \"selectordinal\" || i === \"select\";\n if (e[t.i] !== \",\" || !u) {\n let c = n + 1;\n for (; t.i < e.length && c > n;) e[t.i] === \"{\" ? c++ : e[t.i] === \"}\" && c--, t.i++;\n return {\n kind: \"arg\",\n name: a\n };\n }\n t.i++;\n let p = {}, h = 0;\n for (; Ot(e, t), !(t.i >= e.length);) {\n if (e[t.i] === \"}\") {\n t.i++;\n break;\n }\n let c = t.i;\n for (; t.i < e.length && e[t.i] !== \"{\" && e[t.i] !== \"}\" && !Mr(e[t.i]);) t.i++;\n let g = e.slice(c, t.i);\n if (g.startsWith(\"offset:\")) h = parseInt(g.slice(7), 10) || 0;\n else {\n if (Ot(e, t), e[t.i] !== \"{\") break;\n t.i++, p[g] = Dr(e, t, i !== \"select\" || r, n + 1), e[t.i] === \"}\" && t.i++;\n }\n }\n return {\n kind: \"branched\",\n type: i,\n name: a,\n offset: h,\n branches: p\n };\n}\nvar No = /* @__PURE__ */ new Map(), _o = /* @__PURE__ */ new Map(), Mt = /* @__PURE__ */ new Map();\nfunction ko(e, t) {\n let r = t ? _o : No, n = r.get(e);\n if (!n) {\n try {\n n = new Intl.PluralRules(e, t ? { type: \"ordinal\" } : void 0);\n } catch {\n n = new Intl.PluralRules(\"en\", t ? { type: \"ordinal\" } : void 0);\n }\n r.set(e, n);\n }\n return n;\n}\nfunction Lo(e) {\n let t = Mt.get(e);\n if (!t) {\n try {\n t = new Intl.NumberFormat(e);\n } catch {\n t = new Intl.NumberFormat(\"en\");\n }\n Mt.set(e, t);\n }\n return t;\n}\nfunction ze(e, t, r, n) {\n let o = \"\";\n for (let a of e) {\n if (typeof a == \"string\") {\n o += a;\n continue;\n }\n if (a.kind === \"arg\") {\n let h = t?.[a.name];\n o += h === void 0 ? `{${a.name}}` : String(h);\n continue;\n }\n if (a.kind === \"hash\") {\n o += n === void 0 ? \"#\" : Lo(r).format(n);\n continue;\n }\n let l = t?.[a.name];\n if (a.type === \"select\") {\n let h = (l === void 0 ? void 0 : a.branches[String(l)]) ?? a.branches.other;\n o += h ? ze(h, t, r, n) : l === void 0 ? `{${a.name}}` : String(l);\n continue;\n }\n let i = typeof l == \"number\" ? l : Number(l);\n if (l === void 0 || Number.isNaN(i)) {\n let h = a.branches.other;\n o += h ? ze(h, t, r, void 0) : `{${a.name}}`;\n continue;\n }\n let u = a.branches[`=${i}`], p = i - a.offset;\n if (!u) {\n let h = ko(r, a.type === \"selectordinal\").select(p);\n u = a.branches[h] ?? a.branches.other;\n }\n o += u ? ze(u, t, r, p) : String(l);\n }\n return o;\n}\nnew TextDecoder();\nvar Do;\n(function(e) {\n e.MAX_TEXT_LENGTH = 32767;\n let t = e.MAX_SIGNIFICANT_DIGITS = 15;\n e.truncateNumberText = function(r) {\n let n = r.length;\n if (n <= t) return r;\n let o = 0, a = null;\n for (let l = 0; l < n; l++) {\n let i = r.charCodeAt(l);\n if (i >= 48 && i <= 57) {\n if (o === 0 && i === 48) continue;\n o++, o > t && ((a ??= r.split(\"\"))[l] = \"0\");\n } else if ((i === 69 || i === 101) && o > 0) break;\n }\n return a === null ? r : a.join(\"\");\n };\n})(Do ||= {});\nvar Pt, et, Fo, b, me = {\n Number: \"number\",\n String: \"string\",\n Boolean: \"boolean\",\n Error: \"error\",\n RichData: \"richData\",\n Null: \"null\"\n}, Ut = {\n ...me,\n Date: \"date\"\n}, jt = {\n ...me,\n Reference: \"reference\",\n Array: \"array\",\n Lambda: \"lambda\",\n Omitted: \"omitted\"\n};\n(et = Pt ||= {}).Axis = {\n Column: \"column\",\n Row: \"row\"\n}, et.AxisSelection = {\n ...Pt.Axis,\n Both: \"both\"\n}, et.Direction = {\n Up: \"up\",\n Down: \"down\",\n Left: \"left\",\n Right: \"right\"\n}, (Fo ||= {}).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(N, k, pe, W) {\n super(pe, W), this._label = k, this._code = N, this.details = W;\n }\n static {\n this.code = b.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(N) {\n return !!N && (this._code === N._code || this._code === N.code);\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaError]\";\n }\n toString() {\n return this._label;\n }\n }\n e.Known = n;\n class o extends n {\n constructor(N, k) {\n super(t.Parse, r.Parse, N, k);\n }\n static {\n this.code = b.Code.Parse;\n }\n getDetails() {\n let N = this.details;\n return {\n line: N?.line ?? 1,\n column: N?.column ?? 1,\n offset: N?.offset ?? 0,\n length: N?.length ?? 0\n };\n }\n }\n e.Parse = o;\n class a extends n {\n constructor(N, k) {\n super(t.Null, r.Null, N, k);\n }\n static {\n this.code = b.Code.Null;\n }\n }\n e.Null = a;\n class l extends n {\n constructor(N, k) {\n super(t.Div0, r.Div0, N, k);\n }\n static {\n this.code = b.Code.Div0;\n }\n }\n e.Div0 = l;\n class i extends n {\n constructor(N, k) {\n super(t.Value, r.Value, N, k);\n }\n static {\n this.code = b.Code.Value;\n }\n }\n e.Value = i;\n class u extends n {\n constructor(N, k) {\n super(t.Ref, r.Ref, N, k);\n }\n static {\n this.code = b.Code.Ref;\n }\n }\n e.Ref = u;\n class p extends n {\n constructor(N, k) {\n super(t.Name, r.Name, N, k);\n }\n static {\n this.code = b.Code.Name;\n }\n }\n e.Name = p;\n class h extends n {\n constructor(N, k) {\n super(t.Num, r.Num, N, k);\n }\n static {\n this.code = b.Code.Num;\n }\n }\n e.Num = h;\n class c extends n {\n constructor(N, k) {\n super(t.NA, r.NA, N, k);\n }\n static {\n this.code = b.Code.NA;\n }\n }\n e.NA = c;\n class g extends n {\n constructor(N, k) {\n super(t.GettingData, r.GettingData, N, k);\n }\n static {\n this.code = b.Code.GettingData;\n }\n }\n e.GettingData = g;\n class T extends n {\n constructor(N, k) {\n super(t.Spill, r.Spill, N, k);\n }\n static {\n this.code = b.Code.Spill;\n }\n }\n e.Spill = T;\n class I extends n {\n constructor(N, k) {\n super(t.Connect, r.Connect, N, k);\n }\n static {\n this.code = b.Code.Connect;\n }\n }\n e.Connect = I;\n class M extends n {\n constructor(N, k) {\n super(t.Blocked, r.Blocked, N, k);\n }\n static {\n this.code = b.Code.Blocked;\n }\n }\n e.Blocked = M;\n class q extends n {\n constructor(N, k) {\n super(t.Unknown, r.Unknown, N, k);\n }\n static {\n this.code = b.Code.Unknown;\n }\n }\n e.Unknown = q;\n class v extends n {\n constructor(N, k) {\n super(t.Field, r.Field, N, k);\n }\n static {\n this.code = b.Code.Field;\n }\n }\n e.Field = v;\n class C extends n {\n constructor(N, k) {\n super(t.Calc, r.Calc, N, k);\n }\n static {\n this.code = b.Code.Calc;\n }\n }\n e.Calc = C;\n class R extends n {\n constructor(N, k) {\n super(t.Busy, r.Busy, N, k);\n }\n static {\n this.code = b.Code.Busy;\n }\n }\n e.Busy = R;\n class U extends n {\n constructor(N, k) {\n super(t.Python, r.Python, N, k);\n }\n static {\n this.code = b.Code.Python;\n }\n }\n e.Python = U;\n class Z extends n {\n constructor(N, k) {\n super(t.Timeout, r.Timeout, N, k);\n }\n static {\n this.code = b.Code.Timeout;\n }\n }\n e.Timeout = Z;\n})(b ||= {});\nvar te = {};\nte[b.Code.Parse] = b.Parse, te[b.Code.Null] = b.Null, te[b.Code.Div0] = b.Div0, te[b.Code.Value] = b.Value, te[b.Code.Ref] = b.Ref, te[b.Code.Name] = b.Name, te[b.Code.Num] = b.Num, te[b.Code.NA] = b.NA, te[b.Code.GettingData] = b.GettingData, te[b.Code.Spill] = b.Spill, te[b.Code.Connect] = b.Connect, te[b.Code.Blocked] = b.Blocked, te[b.Code.Unknown] = b.Unknown, te[b.Code.Field] = b.Field, te[b.Code.Calc] = b.Calc, te[b.Code.Busy] = b.Busy, te[b.Code.Python] = b.Python, te[b.Code.Timeout] = b.Timeout;\nvar Fr = /* @__PURE__ */ new Map(), Pr = /* @__PURE__ */ new Map(), Ur = /* @__PURE__ */ new Map(), jr = /* @__PURE__ */ new Map(), Bt = Object.keys(te);\nfor (let e = 0; e < Bt.length; e++) {\n let t = te[Bt[e]], r = new t();\n Ur.set(r.getLabel(), t), jr.set(r.getCode(), t), Fr.set(r.getLabel(), r), Pr.set(r.getCode(), r);\n}\n(function(e) {\n let t = e.getBuiltInByCode = (r) => Pr.get(r);\n e.BuiltIn = {\n Parse: t(b.Code.Parse),\n Null: t(b.Code.Null),\n Div0: t(b.Code.Div0),\n Value: t(b.Code.Value),\n Ref: t(b.Code.Ref),\n Name: t(b.Code.Name),\n Num: t(b.Code.Num),\n NA: t(b.Code.NA),\n GettingData: t(b.Code.GettingData),\n Spill: t(b.Code.Spill),\n Connect: t(b.Code.Connect),\n Blocked: t(b.Code.Blocked),\n Unknown: t(b.Code.Unknown),\n Field: t(b.Code.Field),\n Calc: t(b.Code.Calc),\n Busy: t(b.Code.Busy),\n Python: t(b.Code.Python),\n Timeout: t(b.Code.Timeout)\n }, e.newTypedError = (r, n, o) => {\n let a;\n return a = typeof r == \"string\" ? Ur.get(r) : jr.get(r), a ||= b.Unknown, new a(n, o);\n }, e.getBuiltInByLabel = (r) => Fr.get(r), e.isError = function(r, n) {\n return !!r && r.isFormulaError === !0 && (n === void 0 || r.getCode() === n);\n };\n})(b ||= {});\nvar Po = class {\n createRange(e, t, r) {\n throw new oe();\n }\n flattenAreas(e) {\n throw new oe();\n }\n getReference(e, t) {\n throw new oe();\n }\n getResizedReference(e, t, r) {\n throw new oe();\n }\n getNumberFormat(e, t) {\n throw new oe();\n }\n fromSerialDate(e, t) {\n throw new oe();\n }\n toSerialDate(e, t) {\n throw new oe();\n }\n getDateParts(e, t) {\n throw new oe();\n }\n getSerialDate(e, t, r, n, o, a, l) {\n throw new oe();\n }\n getNow() {\n throw new oe();\n }\n getRandom() {\n return Math.random();\n }\n getValueAt(e, t, r, n) {\n return null;\n }\n getEntireCoords() {\n return Kr;\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 > jo);\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 oe();\n }\n parseAsSerialDate(e, t) {\n throw new oe();\n }\n parseAsDate(e, t) {\n throw new oe();\n }\n parseAsNumber(e, t) {\n throw new oe();\n }\n createCriteria(e, t) {\n throw new oe();\n }\n parseAsLiteral(e) {\n let t = e.toUpperCase();\n return t === \"TRUE\" || t !== \"FALSE\" && b.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 = Kt(e), o = Kt(t);\n return n === o ? e < t ? -1 : +(e > t) : n < o ? -1 : 1;\n }\n getRuntime() {\n return Uo;\n }\n getArgs() {\n throw new oe(Br);\n }\n}, Kt = (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}, Br = \"FormulaContext.getArgs() is only valid while a function body is running\", oe = class extends Error {\n constructor(e = \"Not implemented in StubbedFormulaContext\") {\n super(e), this.name = \"NotImplementedError\";\n }\n}, Kr = Object.freeze({\n colStart: 0,\n rowStart: 0,\n colEnd: 2 ** 14 - 1,\n rowEnd: 2 ** 20 - 1\n}), Uo = {\n isDate1904: () => !1,\n getLocale: () => zt.tag,\n getLocaleProfile: () => zt,\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}, jo = 2958465, Pe = new Po(), Bo = 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() ?? Kr;\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 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, o = 0, a = 0, l = 0) {\n return this._getScope().getSerialDate(e, t, r, n, o, a, l);\n }\n getNow() {\n return this._getScope().getNow();\n }\n getRandom() {\n return this._getScope().getRandom?.() ?? Math.random();\n }\n createRange(e, t, r) {\n return this._getScope().createRange(e, t, r);\n }\n flattenAreas(e) {\n if (!Array.isArray(e)) return e;\n let t = [];\n for (let r = 0; r < e.length; r++) {\n let n = e[r], { rows: o, columns: a } = n.getShape();\n for (let l = 0; l < o; l++) for (let i = 0; i < a; i++) t.push(n.getValueAt(l, i));\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 oe(Br);\n return t;\n }\n get [Symbol.toStringTag]() {\n return \"[FormulaContext]\";\n }\n toString() {\n return this._getScope()?.toString?.() ?? \"{STUB SCOPE}\";\n }\n}, zt = 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 Bo();\nconst w = 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}), Ko = [\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], zo = (() => {\n const e = /* @__PURE__ */ new Map();\n for (const t of Ko) if (e.set(t.name, t), t.aliases) for (const r of t.aliases) e.set(r, t);\n return e;\n})();\nfunction Vo(e) {\n if (!e) return;\n const t = (e.startsWith(\"@\") ? e.slice(1) : e).toLowerCase();\n return zo.get(t);\n}\nfunction Xo(e) {\n return Vo(e)?.standalone === !0;\n}\nconst ct = /* @__PURE__ */ new Map([[\"IReferenceRange\", \"p\"], [\"IRange\", \"r\"]]), tt = new Set(Object.values(jt).filter((e) => e !== jt.Omitted)), mt = /* @__PURE__ */ new Map([\n [\"IWorkbook\", \"workbook\"],\n [\"ISheet\", \"sheet\"],\n [\"ICellRanges\", \"ranges\"],\n [\"ICellRange\", \"range\"]\n]), Go = Array.from(mt.keys()), gt = (e, t) => {\n Array.from(t.keys()).forEach((r) => {\n const n = t.get(r);\n t.set(`${e}.${r}`, n);\n });\n}, qo = /* @__PURE__ */ new Map([\n [\"Scalar\", \"*\"],\n [\"Lambda\", \"l\"],\n [\"FormulaError.Known\", me.Error],\n [\"Date\", Ut.Date],\n [\"IRichData\", Ut.RichData]\n]), zr = /* @__PURE__ */ new Map([[\"Repeating\", \"repeating\"]]), Ho = /* @__PURE__ */ new Set([\"Flatten\", \"SheetXL.Flatten\"]), Vr = /* @__PURE__ */ new Set([\"AcceptError\"]), Xr = /* @__PURE__ */ new Set([\"Omittable\"]), Gr = /* @__PURE__ */ new Set([\"NoLift\"]), qr = /* @__PURE__ */ new Set([\"NoFilter\"]), Hr = /* @__PURE__ */ new Set([\"Lazy\"]), ut = /* @__PURE__ */ new Set([\"ReportType\"]), Vt = 255, Wo = /^[a-zA-Z_-￿][a-zA-Z0-9_.-￿]*$/, Jo = /^([a-z]{1,3})([0-9]+)$/i, Yo = /^r[0-9]*c[0-9]*$/i, Zo = (e) => {\n if (Yo.test(e)) return !0;\n const t = Jo.exec(e);\n if (!t) return !1;\n let r = 0;\n for (const o of t[1].toUpperCase()) r = r * 26 + (o.charCodeAt(0) - 64);\n const n = Number(t[2]);\n return r <= 16384 && n >= 1 && n <= 1048576;\n}, le = \"SheetXL\", ve = (e) => {\n const t = e.typeName.getText();\n return t.startsWith(`${le}.`) ? t.slice(8) : t;\n};\ngt(le, ct);\ngt(le, mt);\ngt(le, zr);\nVr.add(\"SheetXL.AcceptError\");\nXr.add(`${le}.Omittable`);\nGr.add(`${le}.NoLift`);\nqr.add(`${le}.NoFilter`);\nHr.add(`${le}.Lazy`);\nut.add(`${le}.ReportType`);\nconst Qo = /* @__PURE__ */ new Map([\n [\"Promise\", () => ({ async: !0 })],\n [\"Observable\", () => ({ stream: !0 })],\n [\"Volatile\", () => ({ volatile: !0 })],\n [`${le}.Volatile`, () => ({ volatile: !0 })]\n]), Xt = \"__scriptContext__\", Gt = \"script\", ea = /* @__PURE__ */ new Set([\n \"IScript.ScriptContext\",\n `${le}.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], o = n.kind;\n if (o !== \"link\") {\n if (o === \"linkName\") {\n const a = e[r + 1];\n if (a?.kind === \"linkText\" && a.text.trim()) continue;\n t += n.text;\n continue;\n }\n if (o === \"linkText\") {\n t += n.text.trim();\n continue;\n }\n t += n.text;\n }\n }\n return t.replace(/\\r\\n?/g, `\n`).split(/\\n[^\\S\\n]*\\n\\s*/).map((r) => r.split(`\n`).map((n) => n.trim()).filter(Boolean).join(\" \")).filter(Boolean).join(`\n`).trim();\n};\nfunction ta(e, t, r, n) {\n const o = n?.builtInNames?.length ? new Set(n.builtInNames.map((s) => s.toUpperCase())) : null, a = [], l = /* @__PURE__ */ new Map(), i = [];\n let u = null;\n const p = (s) => {\n if (!s || typeof s.getStart != \"function\") return {\n start: 0,\n length: 0\n };\n try {\n return {\n start: s.getStart(),\n length: s.getWidth()\n };\n } catch {\n return {\n start: 0,\n length: 0\n };\n }\n }, h = (s, f, d, y) => {\n const { start: E, length: L } = p(s);\n i.push({\n start: E,\n length: L,\n severity: d,\n code: f,\n message: y\n });\n }, c = (s, f, d) => {\n h(s, f, \"error\", d);\n }, g = (s) => s?.parent?.name?.escapedText, T = (s, f, d, y, E = !1, L = !1, j = !1) => {\n const O = { count: 0 }, A = W(s, f, d, y, O, E, L, j);\n O.count >= 2 && (f.range || (f.range = \"m\", O.count -= 2), !y && O.count >= 1 && (O.count -= 1, O.count > 0 && c(s, w.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${g(s)}'.`))), O.count > 0 && (f.arrayDepth = O.count);\n const F = f.enum;\n return F && (O.count > (j ? 1 : 0) || f.range) && !U.has(f) && (f.valueOrRange || (c(s, w.EnumPosition, `A list cannot hold the enum '${F.id}': '${f.name ?? g(s)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: ${F.id}[]'), or type the list by its scalar ('${F.type}').`), delete f.enum)), A;\n }, I = (s, f, d, y, E) => {\n if (f !== \"Lambda\" && f !== `${le}.Lambda`) return !1;\n const L = s.typeArguments;\n let j = \"*\";\n if (L && L.length === 2) if (E && L[0].kind === e.SyntaxKind.TupleType && (d.lambdaArity = L[0].elements.length), L[1].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const O = {};\n W(L[1], O, y, !1, { count: 0 }), j = O.scalar ?? \"*\";\n }\n else if (L && L.length === 1 && L[0].kind !== e.SyntaxKind.TupleType && L[0].kind !== e.SyntaxKind.ArrayType) if (E && (d.lambdaArity = 2), L[0].kind === e.SyntaxKind.AnyKeyword) j = \"raw\";\n else {\n const O = {};\n W(L[0], O, y, !1, { count: 0 }), j = O.scalar ?? \"*\";\n }\n return d.lambda = j, !0;\n }, M = (s, f, d, y) => {\n if (!y) {\n c(s, w.FunctionReturn, `Function type is not a valid return type: '${g(s)}'. Declare a 'Lambda' return instead.`);\n return;\n }\n const E = s.type, L = {};\n let j = \"*\";\n E && (E.kind === e.SyntaxKind.AnyKeyword ? j = \"raw\" : (W(E, L, d, !1, { count: 0 }), j = L.scalar ?? \"*\"));\n const O = s.parameters;\n O && !O.some((A) => A.dotDotDotToken) && (f.lambdaArity = O.length), f.lambda = j;\n }, q = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Set(), U = /* @__PURE__ */ new WeakSet(), Z = (s) => s !== void 0 && s.getSourceFile() === t, P = (s, f = !1) => {\n return s.getJsDocTags(r).find((y) => y.name === \"name\")?.text?.map((y) => y.text).join(\"\").trim() || (f ? Qt.camelToPrettyCase(s.name) : s.name);\n }, N = (s) => {\n const f = s.getJsDocTags(r).find((d) => d.name === \"deprecated\");\n if (f) return f.text?.map((d) => d.text).join(\"\").trim() || !0;\n }, k = (s, f) => {\n const d = e.isTypeReferenceNode(s) ? s.typeName : void 0, y = d ? r.getSymbolAtLocation(d) : void 0, E = y?.declarations?.length ? y : void 0;\n if (d) {\n if (E && E.flags & e.SymbolFlags.Alias) {\n c(s, w.EnumNotLocal, `'${d.getText()}' is imported, so its declaration cannot be read: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n if (!E || !(E.flags & e.SymbolFlags.Type)) {\n const S = d.getText();\n if (!(E ? (E.flags & e.SymbolFlags.Variable) !== 0 : t.statements.some((x) => e.isVariableStatement(x) && x.declarationList.declarations.some((K) => e.isIdentifier(K.name) && K.name.text === S)))) return null;\n c(s, w.EnumMissingAlias, `'${S}' is a value, not a type: '${f}'. Pair the object with a same-name type — 'type ${S} = typeof ${S}[keyof typeof ${S}];' — or declare it as 'enum ${S} { … }'.`);\n return;\n }\n const m = q.get(E);\n if (m !== void 0) return m;\n if (R.has(E)) return;\n }\n const L = [];\n let j = !1;\n if (E && E.flags & e.SymbolFlags.Enum) {\n if (!E.declarations?.some(Z)) {\n c(s, w.EnumNotLocal, `'${E.name}' is not declared in this module: '${f}'. An enum must be declared in the module that uses it.`);\n return;\n }\n j = !0;\n let m = !1;\n if (E.exports?.forEach((S) => {\n const x = S.valueDeclaration;\n if (!x || !e.isEnumMember(x)) return;\n const K = r.getConstantValue(x);\n if (K === void 0) {\n c(x, w.EnumMemberNotConstant, `'${E.name}.${S.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.`), m = !0;\n return;\n }\n L.push([\n P(S, !0),\n K,\n x,\n $e(S.getDocumentationComment(r)),\n N(S)\n ]);\n }), m) {\n R.add(E);\n return;\n }\n } else {\n const m = r.getTypeFromTypeNode(s), S = e.TypeFlags.Null | e.TypeFlags.Undefined | e.TypeFlags.Void, x = (m.isUnion() ? m.types : [m]).filter((D) => !(D.flags & S)), K = [];\n for (const D of x) {\n if (!(D.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) return E && q.set(E, null), null;\n K.push(D.value);\n }\n if (K.length === 0) return null;\n const re = E?.declarations?.find((D) => e.isTypeAliasDeclaration(D)), J = e.isUnionTypeNode(s) ? s : re?.type;\n if (J && e.isUnionTypeNode(J)) {\n const D = J.types.map(($) => {\n const ne = r.getTypeFromTypeNode($);\n return ne.isLiteral() ? ne.value : void 0;\n }), _ = ($) => {\n const ne = D.indexOf($);\n return ne < 0 ? D.length : ne;\n };\n K.sort(($, ne) => _($) - _(ne));\n }\n const ee = E && E.flags & e.SymbolFlags.Variable ? E.valueDeclaration : void 0, ge = new Set(K);\n if (E && ee && Z(ee)) for (const D of r.getTypeOfSymbolAtLocation(E, ee).getProperties()) {\n const _ = D.valueDeclaration, $ = r.getTypeOfSymbolAtLocation(D, _ ?? ee);\n if (!($.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral))) continue;\n const ne = $.value;\n K.includes(ne) && (j = !0, ge.delete(ne), L.push([\n P(D, !0),\n ne,\n _,\n $e(D.getDocumentationComment(r)),\n N(D)\n ]));\n }\n for (const D of K) ge.has(D) && L.push([\n String(D),\n D,\n void 0,\n null\n ]);\n }\n if (L.length === 0) return null;\n const O = typeof L[0][1] == \"number\";\n if (L.some(([, m]) => typeof m == \"number\" !== O)) {\n c(s, w.EnumMixed, `'${E?.name ?? s.getText()}' mixes number and string members: '${f}'. A parameter has one type, so an enum is all numbers or all strings.`);\n return;\n }\n const A = E ? P(E) : L.map(([, m]) => String(m)).join(\"|\"), F = E ? void 0 : v.get(A);\n if (F) return F;\n if (j) {\n const m = /* @__PURE__ */ new Map();\n for (const [S, x, K, re] of L) {\n const J = K?.name?.getText() ?? S, ee = m.get(x);\n ee !== void 0 ? h(K ?? s, w.EnumDuplicateValue, \"warning\", `'${A}.${J}' has the same value as '${A}.${ee}' (${JSON.stringify(x)}). A formula passes the value, so the two cannot be told apart.`) : m.set(x, J), re === \"\" && h(K ?? s, w.EnumMemberUndocumented, \"warning\", `'${A}.${J}' is missing a description. Add a doc comment above the member — it is what the argument dropdown shows.`);\n }\n }\n const V = {\n id: A,\n type: O ? me.Number : me.String,\n members: L.map(([m, S, , , x]) => x ? [\n m,\n S,\n x\n ] : [m, S])\n };\n E ? q.set(E, V) : v.set(A, V);\n const z = E ? $e(E.getDocumentationComment(r)) : \"\", B = {};\n for (const [m, , , S] of L) S && (B[m] = { description: S });\n if (z || Object.keys(B).length > 0) {\n const m = {};\n z && (m.summary = z), Object.keys(B).length > 0 && (m.members = B), C.set(V, m);\n }\n return V;\n }, pe = (s, f, d, y) => {\n const E = (O, A, F) => {\n const V = { name: O };\n return T(A, V, d, !0), F && (V.optional = !0), y && !V.acceptError && (V.acceptError = !0), V;\n };\n if (s.kind !== e.SyntaxKind.TupleType) return [E(f, s, !1)];\n const L = s.elements;\n if (L.length < 2) return c(s, w.RepeatingSlots, `'${f}': a repeating group of period ${L.length} must be spelled 'Repeating<T>' without the tuple.`), null;\n const j = [];\n for (let O = 0; O < L.length; O++) {\n const A = L[O];\n if (A.kind !== e.SyntaxKind.NamedTupleMember) return c(A, w.RepeatingSlots, `'${f}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;\n const F = !!A.questionToken;\n if (F && O !== L.length - 1) return c(A, w.RepeatingOptional, `'${f}': only the LAST slot of a repeating group may be optional (slot '${A.name?.getText?.()}' is not).`), null;\n j.push(E(A.name?.getText?.() ?? `${O}`, A.type, F));\n }\n return j;\n }, W = (s, f, d, y, E, L = !1, j = !1, O = !1) => {\n if (!s) {\n c(s, w.MissingType, `Type is not defined for '${f?.name ?? \"return\"}'.`);\n return;\n }\n if (s.kind === e.SyntaxKind.ParenthesizedType) return W(s.type, f, d, y, E, L, j, O);\n if (s.kind === e.SyntaxKind.UnionType) {\n const A = (z) => z.kind === e.SyntaxKind.UndefinedKeyword || z.kind === e.SyntaxKind.VoidKeyword || z.kind === e.SyntaxKind.NullKeyword || z.kind === e.SyntaxKind.LiteralType && z.literal?.kind === e.SyntaxKind.NullKeyword, F = s.types.filter((z) => !A(z));\n if (F.length === 1) return W(F[0], f, d, y, E, L, j, O);\n const V = k(s, f.name ?? g(s));\n if (V === void 0) return;\n if (V !== null) {\n f.scalar = V.type, y && (f.enum = V);\n return;\n }\n if (!y) {\n f.scalar = \"*\";\n return;\n }\n if (F.length === 2) {\n const z = (m) => m.kind !== e.SyntaxKind.TypeReference ? !1 : e.isTypeReferenceNode(m) && ve(m) === \"Lambda\", B = F.findIndex(z);\n if (B >= 0 && !z(F[1 - B])) {\n W(F[1 - B], f, d, y, E, L, j, O), I(F[B], ve(F[B]), f, d, y);\n return;\n }\n }\n if (y && F.length === 2) {\n const z = (m) => {\n if (!(m.kind !== e.SyntaxKind.TypeReference || m.typeArguments?.length)) return ct.get(ve(m));\n }, B = F.findIndex((m) => z(m) !== void 0);\n if (B >= 0 && z(F[1 - B]) === void 0) {\n const m = {}, S = E.count;\n if (W(F[1 - B], m, d, y, E, L, !1), m.scalar && !m.range && m.lambda == null && E.count === S) {\n f.range = z(F[B]), f.scalar = m.scalar, f.valueOrRange = !0;\n const x = m.enum;\n x && (f.enum = x);\n return;\n }\n }\n }\n if (y && F.length === 2) {\n const z = (m) => m.kind === e.SyntaxKind.TypeReference && !m.typeArguments?.length && ve(m) === \"Scalar\", B = F.findIndex(z);\n if (B >= 0 && !z(F[1 - B])) {\n const m = k(F[1 - B], f.name ?? g(s));\n if (m === void 0) return;\n if (m !== null) {\n f.scalar = \"*\", f.enum = m;\n return;\n }\n }\n }\n c(s, w.InvalidParamType, `Union parameter types are not supported: '${g(s)}'. 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 (s.kind === e.SyntaxKind.NumberKeyword) f.scalar = me.Number;\n else if (s.kind === e.SyntaxKind.StringKeyword) f.scalar = me.String;\n else if (s.kind === e.SyntaxKind.BooleanKeyword) f.scalar = me.Boolean;\n else if (s.kind === e.SyntaxKind.UndefinedKeyword || s.kind === e.SyntaxKind.NullKeyword || s.kind === e.SyntaxKind.VoidKeyword) {\n if (y) {\n c(s, w.UndefinedInput, `'undefined' is not a valid type for input: '${g(s)}'.`);\n return;\n }\n f.scalar = me.Null;\n } else if (s.kind === e.SyntaxKind.BigIntKeyword) f.scalar = me.Number;\n else if (s.kind === e.SyntaxKind.AnyKeyword) y && (f.range = \"*\");\n else if (s.kind === e.SyntaxKind.ArrayType) {\n const A = s.elementType;\n if (!A) {\n c(s, w.UntypedArray, `'Array' must be typed: '${g(s)}'.`);\n return;\n }\n if (y && j) {\n const F = f, V = F.name ?? g(s) ?? \"parameter\", z = F.acceptError;\n delete F.acceptError;\n const B = { name: V };\n T(A, B, d, !0), z && !B.acceptError && (B.acceptError = !0), F.repeating = [B];\n return;\n }\n E.count++, W(A, f, d, y, E);\n } else if (s.kind !== e.SyntaxKind.TupleType) if (s.kind === e.SyntaxKind.TypeReference) {\n const A = ve(s);\n if (Vr.has(A)) {\n const m = g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'${A}' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = f;\n if (S.acceptError) {\n c(s, w.InvalidParamType, `'${m}' declares 'AcceptError' more than once.`);\n return;\n }\n const x = s.typeArguments;\n if (!x || x.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return S.acceptError = !0, W(x[0], f, d, y, E, L, j, O);\n }\n if (ut.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'ReportType' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = s.typeArguments;\n if (!S || S.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return f.reportType = !0, W(S[0], f, d, y, E, L, j, O);\n }\n if (Gr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'NoLift' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = s.typeArguments;\n if (!S || S.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n const x = f;\n x.noLift = !0;\n const K = E.count;\n W(S[0], f, d, y, E, L, j, O), (x.range || x.lambda != null || x.repeating || E.count !== K) && c(s, w.InvalidParamType, `'${m}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);\n return;\n }\n if (qr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'NoFilter' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = s.typeArguments;\n if (!S || S.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n const x = f;\n x.noFilter = !0;\n const K = E.count;\n if (W(S[0], f, d, y, E, L, j, O), x.range || x.lambda != null || E.count !== K) {\n c(s, w.InvalidParamType, `'${m}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.`);\n return;\n }\n const re = x.repeating;\n if (re) {\n if (delete x.noFilter, re.length !== 1) {\n c(s, w.InvalidParamType, `'${m}': '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 && c(s, w.InvalidParamType, `'${m}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);\n return;\n }\n if (Xr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Omittable' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = s.typeArguments;\n if (!S || S.length < 1 || S.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 or 2 types: '${m}'.`);\n return;\n }\n const x = f;\n if (x.omittable = !0, S.length === 2) {\n const J = qt(e, S[1]);\n if (J === void 0) {\n c(s, w.InvalidParamType, `'${m}' declares '${A}' 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 x.omittedValue = J;\n }\n const K = W(S[0], f, d, y, E, L, j, O), re = x.omittedValue;\n return x.enum && re !== void 0 && re !== null && !x.enum.members.some(([, J]) => J === re) && c(S[1], w.EnumOmittedValue, `'${m}': ${JSON.stringify(re)} is not a member of '${x.enum.id}'. An omitted argument must mean a member (${x.enum.members.map(([, J]) => JSON.stringify(J)).join(\", \")}) or null.`), K;\n }\n if (Hr.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Lazy' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = f;\n if (S.lazy) {\n c(s, w.InvalidParamType, `'${m}' declares 'Lazy' more than once.`);\n return;\n }\n const x = s.typeArguments;\n if (!x || x.length < 1 || x.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 or 2 types: '${m}'.`);\n return;\n }\n if (S.lazy = !0, x.length === 2) {\n const K = qt(e, x[1]);\n if (K === void 0) {\n c(s, w.InvalidParamType, `'${m}' declares '${A}' 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 S.optional = !0, S.defaultValue = K;\n }\n W(x[0], f, d, y, E, L, j, O), S.enum ? (c(s, w.EnumPosition, `'${m}': 'Lazy' cannot hold the enum '${S.enum.id}'. The argument may never be evaluated, so there is no point at which it could be checked against the members.`), delete S.enum) : S.lambda != null ? c(s, w.InvalidParamType, `'${m}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.`) : S.repeating && c(s, w.InvalidParamType, `'${m}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);\n return;\n }\n if (Ho.has(A)) {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.InvalidReturnType, `'Flatten' is not a valid return type: '${m}'. It describes how an ARGUMENT is received.`);\n return;\n }\n const S = s.typeArguments;\n if (!S || S.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${m}'.`);\n return;\n }\n return E.count++, W(S[0], f, d, y, E, L);\n }\n if (zr.get(A) === \"repeating\") {\n const m = f.name ?? g(s);\n if (!y) {\n c(s, w.RepeatingPosition, `'Repeating' is not a valid return type: '${m}'.`);\n return;\n }\n if (E.count !== 0) {\n c(s, w.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${m}'.`);\n return;\n }\n const S = f, x = s.typeArguments;\n if (!x || x.length < 1 || x.length > 2) {\n c(s, w.GenericArity, `'${A}' must be typed with 1 type, optionally followed by a maximum argument count: '${m}'.`);\n return;\n }\n let K;\n if (x.length === 2) {\n const ee = x[1], ge = ee.kind === e.SyntaxKind.LiteralType ? ee.literal : null, D = ge && ge.kind === e.SyntaxKind.NumericLiteral ? Number(ge.text) : NaN;\n if (!Number.isInteger(D) || D < 1 || D > Vt) {\n c(ee, w.RepeatingMax, `'${m}': '${A}'’s maximum must be a whole number between 1 and ${Vt}.`);\n return;\n }\n K = D, d.maxArguments = D;\n }\n if (O) {\n if (K === void 0) {\n c(s, w.RepeatingPosition, `'${m}' 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 W(x[0], f, d, y, E, L, j);\n }\n const re = S.acceptError;\n delete S.acceptError;\n const J = pe(x[0], m ?? \"parameter\", d, re);\n J && (S.repeating = J);\n return;\n }\n const F = ct.get(A);\n let V = !1;\n F && (f.range = F, V = !0);\n const z = qo.get(A);\n if (z && (f.scalar = z), z !== void 0 && (V = !0), I(s, A, f, d, y)) return;\n if (y) {\n if (A === \"Volatile\" || A === `${le}.Volatile`) {\n c(s, w.InvalidParamType, `'Volatile' is not a valid parameter type: '${g(s)}'. It describes the function's RESULT, so it belongs on the return type.`);\n return;\n }\n if (ea.has(A)) return Xt;\n const m = mt.get(A);\n if (m) return m;\n } else {\n const m = Qo.get(A);\n if (m) {\n const S = Object.assign(f, m());\n let x = 0;\n if (S.async && x++, S.stream && x++, x > 1) {\n c(s, w.MultipleModifiers, `'${A}' cannot have multiple modifiers: '${g(s)}'.`);\n return;\n }\n V = !0;\n }\n }\n if (!V) {\n const m = k(s, f.name ?? g(s));\n if (m === void 0) return;\n if (m !== null) {\n f.scalar = m.type, y && (f.enum = m);\n return;\n }\n }\n if (!V) {\n const m = \"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>)\", S = \"number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Promise<T>, Observable<T>, Volatile<T> (and arrays of these)\";\n let x;\n y ? L ? x = `'${A}' is not a valid first parameter: '${g(s)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${Go.join(\", \")} (macro target); ${m} (calculation input).` : x = `'${A}' is not a valid parameter type: '${g(s)}'. Allowed: ${m}.` : x = `'${A}' is not a valid return type: '${g(s)}'. Allowed: ${S}.`, c(s, y ? w.InvalidParamType : w.InvalidReturnType, x);\n return;\n }\n const B = s.typeArguments;\n if (B) {\n if (B.length !== 1) {\n c(s, w.GenericArity, `'${A}' must be typed with exactly 1 type: '${g(s)}'.`);\n return;\n }\n const m = B[0], S = y && e.isTypeReferenceNode(m) && ut.has(ve(m)), x = f.reportType;\n S && U.add(f), T(m, f, d, y), S && x === void 0 && delete f.reportType;\n const K = f.enum;\n K && !S && (c(B[0], w.EnumPosition, `'${A}' cannot hold the enum '${K.id}': '${g(s)}'. 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 ('${A}<${K.type}>').`), delete f.enum);\n }\n } else s.kind === e.SyntaxKind.FunctionType && M(s, f, d, y);\n }, Ge = (s) => (e.getCombinedModifierFlags(s) & e.ModifierFlags.Export) !== 0, qe = (s) => (e.getCombinedModifierFlags(s) & e.ModifierFlags.Default) !== 0;\n try {\n e.forEachChild(t, (s) => {\n if (Ge(s) && e.isFunctionDeclaration(s)) {\n const f = s?.name?.getText();\n if (!s.body) {\n c(s, w.NoBody, `'${f}': function has no body.`);\n return;\n }\n if (!f) {\n c(s, w.Anonymous, \"Anonymous exported functions are not allowed.\");\n return;\n }\n const d = {}, y = { parameters: {} };\n try {\n d.name = f;\n const E = r.getSymbolAtLocation(s.name), L = $e(E?.getDocumentationComment(r));\n L && (y.summary = L);\n const j = {};\n T(s.type, j, d, !1), d.returnType = j;\n const O = {};\n qe(s) && (O.default = !0, u = f), d.parameters = [];\n const A = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map(), V = /* @__PURE__ */ new Set();\n let z = null, B = null, m = null, S = 0, x = !1, K = 0;\n for (let D = 0; D < s.parameters.length; D++) {\n const _ = s.parameters[D], $ = {};\n $.name = _.name?.getText();\n const ne = d.parameters.length === 0;\n if (n?.lenient && D === 0 && !_.type && O.default) {\n d.context = Gt;\n continue;\n }\n const Ie = T(_.type, $, d, !0, ne, !_.dotDotDotToken, !!_.dotDotDotToken);\n if (Ie === Xt) {\n D === 0 && d.context === void 0 && (d.context = Gt);\n continue;\n }\n if (Ie) {\n if (d.parameters.length !== 0) {\n c(_, w.ContextNotFirst, `'${d.name}' contexts must be the first parameter: '${$.name}'.`);\n return;\n }\n d.context = Ie;\n continue;\n }\n if ($.lambda !== void 0) {\n if (z !== null) {\n c(_, w.MultipleLambda, `'${d.name}' has more than one Lambda parameter ('${z}' and '${$.name}'). Only one Lambda parameter is allowed.`);\n return;\n }\n z = $.name;\n } else if (z !== null) {\n c(_, w.LambdaNotLast, `'${d.name}' Lambda parameter ('${z}') must be the last parameter, but '${$.name}' follows it.`);\n return;\n }\n const ye = $.optional === !0 || !((_.initializer === void 0 || _.initializer === null) && (_.questionToken === void 0 || _.questionToken === null));\n let ae;\n if (ye && ($.optional = !0, _.initializer)) try {\n if (_.initializer.kind === e.SyntaxKind.StringLiteral) ae = _.initializer.text;\n else if (_.initializer.kind === e.SyntaxKind.NumericLiteral) ae = parseFloat(_.initializer.text);\n else if (_.initializer.kind === e.SyntaxKind.TrueKeyword || _.initializer.kind === e.SyntaxKind.FalseKeyword) ae = _.initializer.kind === e.SyntaxKind.TrueKeyword;\n else if (_.initializer.kind === e.SyntaxKind.NullKeyword) ae = null;\n else if (e.isPrefixUnaryExpression(_.initializer) && _.initializer.operator === e.SyntaxKind.MinusToken && _.initializer.operand.kind === e.SyntaxKind.NumericLiteral) ae = -parseFloat(_.initializer.operand.text);\n else if (e.isPropertyAccessExpression(_.initializer) || e.isElementAccessExpression(_.initializer)) {\n const ce = r.getTypeAtLocation(_.initializer);\n ce.flags & (e.TypeFlags.NumberLiteral | e.TypeFlags.StringLiteral) && (ae = ce.value);\n }\n } catch (ce) {\n console.warn(`Couldn't extract default value for parameter '${$.name}'`, ce);\n }\n _.dotDotDotToken && ($.rest = !0);\n const X = $.repeating;\n if (X) {\n if ($.rest) {\n c(_, w.RepeatingPosition, `'${d.name}' parameter '${$.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.`);\n return;\n }\n if (ye && X.length === 1) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' cannot be an optional repeating group. Use '...${$.name}: T[]' for zero-or-more, or drop the '?' for one-or-more.`);\n return;\n }\n if (B !== null) {\n c(_, w.MultipleRepeating, `'${d.name}' has more than one repeating group ('${B}' and '${$.name}'). Only one is allowed — two would make the argument count ambiguous.`);\n return;\n }\n if (m !== null) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${m}' is optional and precedes the repeating group '${$.name}'. Every parameter outside a group must be required.`);\n return;\n }\n B = $.name, S = X.length, x = X[X.length - 1].optional === !0;\n } else if (B !== null && $.rest) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' is a rest parameter and follows the repeating group '${B}'. Two variadic tails would make the argument count ambiguous.`);\n return;\n } else if (B !== null && ye) {\n if (K >= S - 1) {\n c(_, w.RepeatingOptional, S === 1 ? `'${d.name}' parameter '${$.name}' is optional and follows the period-1 repeating group '${B}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.` : `'${d.name}' has ${K + 1} optional parameters after the repeating group '${B}', which has period ${S}. At most ${S - 1} may be optional, or the argument count no longer decides the parse.`);\n return;\n }\n if (x) {\n c(_, w.RepeatingOptional, `'${d.name}' parameter '${$.name}' is optional and follows '${B}', whose own last slot is already optional. Both omissions reach the same argument count — drop one.`);\n return;\n }\n K++;\n }\n ye && !X && (m = $.name);\n const G = ($.range ? 2 : 0) + ($.arrayDepth ?? 0), Me = $.range === \"r\" || $.range === \"p\" || $.range === \"*\", Q = $.rest || Me ? 3 : 2;\n if (G > Q) {\n c(_, w.ArrayDepth, `'${d.name}' parameter '${$.name}' has an array depth of ${G}; the maximum is ${Q}${$.rest ? \" for a rest parameter\" : \" (use a rest parameter for one more level, or an IRange)\"}.`);\n return;\n }\n d.parameters.push($);\n const se = { description: \"\" };\n y.parameters[$.name] = se;\n const He = r.getSymbolAtLocation(_.name);\n se.description = $e(He?.getDocumentationComment(r)), ae !== void 0 && ($.defaultValue = ae);\n for (const ce of [$, ...$.repeating ?? []]) {\n const we = ce.enum ? C.get(ce.enum) : void 0;\n we && ((y.enums ??= {})[ce.enum.id] = we);\n }\n if (A.set($.name, $), F.set($.name, _), X && X.length > 1) {\n V.add($.name);\n for (const ce of X) {\n const we = `${$.name}.${ce.name}`;\n y.parameters[we] = { description: \"\" }, A.set(we, ce), F.set(we, _);\n }\n }\n }\n const re = d.maxArguments;\n if (re !== void 0) {\n const D = d.parameters ?? [];\n if (!D.some(($) => $.rest === !0 || $.repeating !== void 0)) {\n c(s, w.RepeatingMax, `'${d.name}' declares a maximum of ${re} arguments but takes a fixed ${D.length}. A maximum only means something on a variadic tail.`);\n return;\n }\n let _ = 0;\n for (const $ of D) $.rest === !0 || $.optional === !0 || (_ += $.repeating ? $.repeating.length : 1);\n if (re < _) {\n c(s, w.RepeatingMax, `'${d.name}' declares a maximum of ${re} arguments but requires ${_}.`);\n return;\n }\n }\n if (s.jsDoc && s.jsDoc.length > 0) {\n const D = s.jsDoc, _ = D.length;\n for (let $ = 0; $ < _; $++) {\n const ne = D[$]?.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 X = ae?.tagName?.text;\n if (!X) continue;\n X = X.toLowerCase();\n let G = ae.comment;\n const Me = Xo(X);\n if (typeof G != \"string\" && !Me) {\n X === \"returnkind\" && c(ae, w.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...tt].map((Q) => `'${Q}'`).join(\", \")}.`);\n continue;\n }\n if (typeof G == \"string\" && (G = G.replace(/\\r\\n?/g, `\n`).trim()), !(!Me && G && (G = G.split(`\n`)[0].trim(), !G || G.length === 0))) {\n if (G && typeof G == \"string\") {\n const Q = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let se, He = G, ce = [];\n for (; (se = Q.exec(G)) !== null;) {\n const [we, Ta, Zr, ht] = se, Qr = [Zr.trim()];\n ht && Qr.push(ht.trim());\n }\n G = He, ce.length > 0 && X === \"see\" && (y.links || (y.links = []), y.links.push(...ce));\n }\n if (X === \"name\") {\n const Q = G;\n Q !== f && (y.name = Q);\n } else if (X !== \"description\") {\n if (X === \"param\") {\n const Q = ae.name?.getText?.() ?? ae.name?.text;\n if (!A.get(Q)) {\n c(ae, w.UnknownParam, `Parameter '${Q}' not found in function '${f}'.`);\n continue;\n }\n const se = y.parameters?.[Q];\n se && !se.description && typeof G == \"string\" && G && (se.description = G);\n } else if (X === \"returns\" || X === \"return\") d.returnType.description = G;\n else if (X === \"returnkind\") {\n const Q = (G ?? \"\").trim().toLowerCase();\n tt.has(Q) ? d.returnType.kind = Q : c(ae, w.UnknownReturnKind, `'@returnKind ${Q}' is not a known value kind. Known: ${[...tt].map((se) => `'${se}'`).join(\", \")}.`);\n } else if (X === \"category\") y.category = G;\n else if (X === \"deprecated\" || X === \"hidden\") {\n let Q = !0;\n const se = G?.toLowerCase();\n se === \"false\" ? Q = !1 : se !== \"true\" && (Q = G), Q !== !1 && (y.deprecated = Q ?? !0);\n }\n }\n }\n }\n }\n }\n Object.keys(d.returnType).length === 0 && delete d.returnType, Object.keys(O).length > 0 && (d.behavior = O), y.summary || h(s.name ?? s, w.MissingSummary, \"warning\", `'${f}': missing a description. Add a JSDoc comment above the function.`);\n const J = !d.context, ee = J && y.name || f;\n if (J && !Wo.test(ee)) {\n const D = y.name ? `'@name ${y.name}'` : `'${ee}'`;\n c(s.name ?? s, w.InvalidName, `'${f}': ${D} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.` + (y.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n if (J && !n?.isBuiltIn && Zo(ee)) {\n const D = y.name ? `'@name ${y.name}'` : `'${ee}'`;\n c(s.name ?? s, w.InvalidName, `'${f}': ${D} cannot be called from a formula. It reads as a cell address.` + (y.name ? \"\" : \" Add an '@name' tag to register it under another name.\"));\n return;\n }\n const ge = l.get(ee.toUpperCase());\n if (ge !== void 0) {\n c(s.name ?? s, w.DuplicateName, `'${f}': '${ee}' is already the name of '${ge}' in this module.`);\n return;\n }\n if (l.set(ee.toUpperCase(), f), J && o?.has(ee.toUpperCase())) {\n c(s.name ?? s, w.BuiltInName, `'${ee}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);\n return;\n }\n if (J) {\n const D = y.parameters ?? {};\n for (const [_, $] of Object.entries(D)) if (!V.has(_) && !$.description) {\n const ne = F.get(_);\n h(ne, w.MissingParamDescription, \"warning\", `'${f}': parameter '${_}' is missing a description. Add an '@param ${_}' tag.`);\n }\n }\n a.push([d, y]);\n } catch (E) {\n c(s, w.ParseError, `'${f}': ${E.message}`);\n }\n }\n });\n } catch (s) {\n c(void 0, w.ParseError, `Unable to analyze module: ${s?.message ?? s}`);\n }\n return {\n functions: a,\n autoRun: u,\n diagnostics: i\n };\n}\nconst Ve = \"__SHEETXL\";\nvar ra = /* @__PURE__ */ Zt({ initialize: () => na });\nasync function na() {\n return Te || (Te = new Promise(async (e, t) => {\n try {\n const r = \"0.20.2\", n = `https://esm.sh/esbuild-wasm@${r}`, o = `https://esm.sh/esbuild-wasm@${r}/esbuild.wasm`, a = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n n\n)).default;\n await a.initialize({\n wasmURL: o,\n worker: !1\n }), e(a);\n } catch (r) {\n console.error(\"Error initializing esbuild:\", r), Te = null, t(new Error(\"The script bundler could not be loaded. Check your connection and try again.\", { cause: r }));\n }\n }), Te);\n}\nvar Te, oa = Yt((() => {\n Te = null;\n}));\nlet xe = null, Ue = null;\nasync function aa() {\n if (xe) return xe;\n if (Ue) {\n if (await Ue, !xe) throw new Error(\"ESBuild initialization promise resolved, but instance is not available.\");\n return xe;\n }\n let e, t;\n Ue = new Promise((r, n) => {\n e = r, t = n;\n });\n try {\n const { initialize: r } = await Promise.resolve().then(() => (oa(), ra));\n return xe = await r(), e(), xe;\n } catch (r) {\n throw console.error(\"Failed to import or initialize esbuild:\", r), Ue = null, t(r), r;\n }\n}\nconst ia = { compilerOptions: { target: \"esnext\" } };\nasync function la(e, t, r = \"/script.js\", n = Ve) {\n try {\n const o = await aa(), a = \"@sheetxl/primitives\", l = `\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 `, i = 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(u) {\n const p = \"sheetxl-\" + (/* @__PURE__ */ new Date()).getTime();\n u.onResolve({ filter: new RegExp(`^(${r.replace(\"/\", \"\\\\/\")}|${a})$`) }, (h) => ({\n path: h.path,\n namespace: p\n })), u.onResolve({ filter: /.*/ }, (h) => {\n if (h.namespace !== p) return console.warn(`esbuild: Treating import \"${h.path}\" as external.`), {\n path: h.path,\n external: !0\n };\n }), u.onLoad({\n filter: /.*/,\n namespace: p\n }, (h) => {\n let c;\n if (h.path === r) c = t;\n else if (h.path === a) c = l;\n else return { errors: [{ text: `Cannot load unknown path in ${p}: ${h.path}` }] };\n return {\n contents: c,\n loader: \"ts\"\n };\n });\n }\n }],\n sourcemap: \"inline\",\n tsconfigRaw: ia,\n minify: !0,\n platform: \"neutral\"\n });\n if (i.outputFiles && i.outputFiles.length > 0) return i.outputFiles[0].text;\n throw i.errors && i.errors.length > 0 ? /* @__PURE__ */ new Error(`esbuild bundling failed: ${i.errors.map((u) => u.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 sa(e, t, r) {\n return (n) => {\n const o = n.factory, a = () => o.createExpressionStatement(o.createCallChain(o.createPropertyAccessExpression(o.createIdentifier(Ve), \"checkRun\"), o.createToken(e.SyntaxKind.QuestionDotToken), void 0, [o.createStringLiteral(t), o.createNumericLiteral(r)])), l = (c) => {\n const g = c.statements;\n let T = 0;\n for (; T < g.length && e.isExpressionStatement(g[T]) && e.isStringLiteral(g[T].expression);) T++;\n return o.updateBlock(c, [\n ...g.slice(0, T),\n a(),\n ...g.slice(T)\n ]);\n }, i = (c) => e.isBlock(c) ? l(c) : o.createBlock([a(), c], !0), u = (c) => e.isBlock(c) ? l(c) : o.createBlock([a(), o.createReturnStatement(c)], !0), p = (c) => e.isForStatement(c) || e.isForInStatement(c) || e.isForOfStatement(c) || e.isWhileStatement(c) || e.isDoStatement(c), h = (c) => {\n if (p(c)) {\n const g = c.statement;\n return e.visitEachChild(c, (T) => {\n const I = h(T);\n return T === g ? i(I) : I;\n }, n);\n }\n if (e.isFunctionLike(c) && c.body) {\n const g = c.body;\n return e.visitEachChild(c, (T) => {\n const I = h(T);\n return T === g ? u(I) : I;\n }, n);\n }\n return e.visitEachChild(c, h, n);\n };\n return (c) => e.visitNode(c, h);\n };\n}\nconst ca = /* @__PURE__ */ new Set([\"TS2339\", \"TS2551\"]), ua = \"TS2774\";\nfunction da(e, t, r) {\n let n = null;\n const o = (a) => {\n r < a.getStart(t) || r >= a.end || (a.getStart(t) === r && (n = a), e.forEachChild(a, o));\n };\n return e.forEachChild(t, o), n;\n}\nconst fa = (e, t) => t.kind === e.SyntaxKind.NullKeyword || e.isIdentifier(t) && t.text === \"undefined\";\nfunction pa(e, t) {\n const r = t.parent;\n if (!r || !e.isPropertyAccessExpression(r) || r.name !== t) return !1;\n let n = r, o = r.parent;\n for (; o && (e.isParenthesizedExpression(o) || e.isNonNullExpression(o));) n = o, o = o.parent;\n if (!o) return !1;\n if ((e.isCallExpression(o) || e.isPropertyAccessExpression(o) || e.isElementAccessExpression(o)) && o.expression === n) return !!o.questionDotToken;\n if (e.isTypeOfExpression(o)) return !0;\n if (e.isPrefixUnaryExpression(o)) return o.operator === e.SyntaxKind.ExclamationToken;\n if (e.isConditionalExpression(o)) return o.condition === n;\n if (e.isIfStatement(o) || e.isWhileStatement(o) || e.isDoStatement(o)) return o.expression === n;\n if (e.isBinaryExpression(o)) {\n const a = o.operatorToken.kind, l = e.SyntaxKind;\n if (a === l.AmpersandAmpersandToken || a === l.BarBarToken || a === l.QuestionQuestionToken) return o.left === n;\n if (a === l.EqualsEqualsEqualsToken || a === l.ExclamationEqualsEqualsToken || a === l.EqualsEqualsToken || a === l.ExclamationEqualsToken) return fa(e, o.left === n ? o.right : o.left);\n }\n return !1;\n}\nfunction ma(e, t, r) {\n const n = [];\n for (const o of r) if (o.code !== w.MissingType) if (o.severity !== \"error\") n.push(o);\n else if (o.code === ua) n.push({\n ...o,\n severity: \"warning\"\n });\n else if (ca.has(o.code)) {\n const a = da(e, t, o.start);\n n.push(a && pa(e, a) ? {\n ...o,\n severity: \"warning\",\n message: `${o.message} Read as a probe, it is undefined.`\n } : o);\n } else n.push(o);\n return n;\n}\nconst Ht = \"//# sourceMappingURL\";\nvar Wr = /* @__PURE__ */ Zt({\n initialize: () => ga,\n readLibFile: () => ha\n});\nasync function ga() {\n return Ce || (Ce = new Promise(async (e, t) => {\n let r = null;\n try {\n r = await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"https://esm.sh/typescript@5.7.2\"\n);\n } catch (n) {\n console.error(\"Error initializing Browser TypeScript module:\", n);\n }\n r || (console.log(\"use script fallback\"), Ce = null), e(r);\n }), Ce);\n}\nfunction ha(e, t) {}\nvar Ce, Jr = Yt((() => {\n Ce = null;\n}));\nconst ya = `\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`, wa = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, Sa = async () => wa;\nlet je = null;\nconst rt = \"sheetxl.d.ts\", Wt = \"sheetxl-modules.d.ts\", ba = `declare module '@sheetxl/primitives' { export = SheetXL; }\n`, Ea = [\n \"lib.webworker.d.ts\",\n \"lib.es2020.d.ts\",\n \"lib.esnext.asynciterable.d.ts\"\n], Jt = /* @__PURE__ */ new Map();\nlet nt = null, ot = null;\nasync function va() {\n return ot || (ot = Promise.resolve().then(() => (Jr(), Wr)).then(async (e) => {\n const t = await Yr();\n return e.readLibFile(t, \"lib.es5.d.ts\") !== void 0 ? e.readLibFile : null;\n })), ot;\n}\nasync function Yr() {\n if (je) return je;\n try {\n const e = await (await Promise.resolve().then(() => (Jr(), Wr))).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 je = null, e;\n } finally {\n je = null;\n }\n}\nasync function xa(e) {\n const t = e?.source ?? null;\n if (!t) return {\n module: null,\n diagnostics: []\n };\n const r = (e.disableBundle || e.declarationsOnly) ?? !1, [n, o, a] = await Promise.all([\n Sa(),\n Yr(),\n e.ambientTypes ? va() : null\n ]), l = a ? e.ambientTypes ?? null : null;\n let i = \"\";\n const u = {\n allowJs: !0,\n declaration: !1,\n sourceMap: !1,\n inlineSourceMap: !1,\n inlineSources: !1,\n isolatedModules: !0,\n preserveConstEnums: !1,\n module: 99,\n noResolve: !0,\n emitDeclarationOnly: !1,\n target: o.ScriptTarget.ES2020,\n ...l ? {\n lib: Ea,\n skipLibCheck: !0,\n strict: !0\n } : {},\n ...l && e.lenient ? { noImplicitAny: !1 } : {}\n }, p = \"script\", h = `${p}.ts`, c = \"lib.d.ts\", g = \"global.d.ts\", T = {\n [h]: t,\n [c]: ya,\n [g]: n,\n ...l ? {\n [rt]: l,\n [Wt]: ba\n } : {}\n }, I = (d) => T[d] ?? (a && d.startsWith(\"lib.\") ? a(o, d) : void 0), M = {\n getSourceFile: (d, y, E, L) => {\n if (d === rt) return nt?.text !== l && (nt = {\n text: l,\n file: o.createSourceFile(d, l, o.ScriptTarget.Latest, !1)\n }), nt.file;\n if (T[d] === void 0) {\n let j = Jt.get(d);\n if (!j) {\n const O = I(d);\n if (O === void 0) return;\n j = o.createSourceFile(d, O, o.ScriptTarget.Latest, !1), Jt.set(d, j);\n }\n return j;\n }\n return o.createSourceFile(d, T[d], o.ScriptTarget.Latest, !0);\n },\n fileExists: (d) => I(d) !== void 0,\n readFile: I,\n writeFile: (d, y) => {\n T[d] = y;\n },\n getCurrentDirectory: () => \"./\",\n getCanonicalFileName: (d) => d,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (d) => c,\n getNewLine: () => `\n`\n }, q = o.createProgram([\n h,\n g,\n ...l ? [rt, Wt] : []\n ], u, M), v = q.getTypeChecker(), C = q.getSourceFile(h), R = e.runGuard;\n q.emit(void 0, void 0, void 0, void 0, R ? { before: [sa(o, R.key, R.timeoutMs)] } : void 0), i = T[`${p}.js`] ?? \"\";\n const U = (d) => ({\n start: d.start ?? 0,\n length: d.length ?? 0,\n severity: d.category === o.DiagnosticCategory.Warning ? \"warning\" : \"error\",\n code: `TS${d.code}`,\n message: o.flattenDiagnosticMessageText(d.messageText, `\n`)\n }), Z = q.getSyntacticDiagnostics(C).map(U), P = l ? q.getSemanticDiagnostics(C).filter((d) => d.category === o.DiagnosticCategory.Error || d.category === o.DiagnosticCategory.Warning).map(U) : [], N = ta(o, C, v, {\n builtInNames: e.builtInNames,\n isBuiltIn: e.isBuiltIn,\n lenient: !!l && e.lenient\n });\n let k = [\n ...Z,\n ...P,\n ...N.diagnostics\n ];\n l && e.lenient && (k = ma(o, C, k));\n const pe = N.functions, W = N.autoRun, Ge = k.some((d) => d.severity === \"error\"), qe = `${Qt.uuidV4()}-script`;\n let s = null;\n if (Ge) i = \"\";\n else {\n try {\n r || (i = await la(o, i, p));\n } catch {\n console.warn(\"Error bundling script\");\n }\n const d = i.indexOf(Ht);\n d > -1 && (s = i.substring(d + 20 + 1, i.length), i = i.substring(0, d), i = i.replaceAll(\"globalThis.__SHEETXL\", Ve));\n }\n const f = {\n functions: pe,\n commitId: qe,\n source: t,\n language: \"typescript\",\n compiled: i\n };\n return s && (f.sourceMap = s), W && (f.autoRun = W), {\n module: f,\n diagnostics: k\n };\n}\nself.addEventListener(\"message\", async (e) => {\n const { id: t, params: r } = e.data;\n try {\n const n = await xa(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" });
53
53
  function i(e) {
54
54
  let t;
55
55
  try {
@@ -81,7 +81,7 @@ async function a() {
81
81
  return await o();
82
82
  }
83
83
  var o = async () => {
84
- let { compileModule: e } = await import("./vDg2R-517z6mPR3B2.mjs"), n = new t((t) => e(t));
84
+ let { compileModule: e } = await import("./C9-p4koE4kCDp9UL2.mjs"), n = new t((t) => e(t));
85
85
  return await n.start(), n;
86
86
  };
87
87
  export { a as createCompilerWorker };