@sheetxl/sdk 0.4.10 → 0.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/browser/cjs/39ybckEYrSwofEL8.cjs +7 -0
  2. package/browser/cjs/7F9Y23ZviM83MrLB.cjs +7 -0
  3. package/browser/cjs/9OWmR6t6tmtR3HKs.cjs +7 -0
  4. package/browser/cjs/AoftwE84s7sGV4YJ.cjs +7 -0
  5. package/browser/cjs/BJZM9I81r8nRPehZ.cjs +7 -0
  6. package/browser/cjs/BLHJddfDq44WHNs6.cjs +7 -0
  7. package/browser/cjs/BdbcopQNFs0VAYoZ.cjs +7 -0
  8. package/browser/cjs/C2McR1ZSNpfPMaI1.cjs +7 -0
  9. package/browser/cjs/CAC1euA3bA1IpMhZ.cjs +7 -0
  10. package/browser/cjs/CDwPpmyZAYF_aBaX.cjs +7 -0
  11. package/browser/cjs/CP2yuwDM2Fzm2bQy.cjs +7 -0
  12. package/browser/cjs/CSn-hMrEUwFcYpBT.cjs +13 -0
  13. package/browser/cjs/CeuXJMoeKjSnby5j.cjs +7 -0
  14. package/browser/cjs/Ch5W6IQIqcVy3CUV.cjs +10 -0
  15. package/browser/cjs/CtaH9jllSQmzD2AZ.cjs +7 -0
  16. package/browser/cjs/Ctw9E_2VE0l2P6Yk.cjs +7 -0
  17. package/browser/cjs/Czl-z-_3jRiufzFq.cjs +7 -0
  18. package/browser/cjs/D-HLMUqMDuHV5fFD.cjs +7 -0
  19. package/browser/cjs/D5pK8FbUHJmgHMVR.cjs +7 -0
  20. package/browser/cjs/DA7BmT8kgTnFcBps.cjs +7 -0
  21. package/browser/cjs/DBBaD9qGTCHmDZzt.cjs +7 -0
  22. package/browser/cjs/DD24B_zQQtT3iqLe.cjs +7 -0
  23. package/browser/cjs/DKwnqzohEhfP9-D8.cjs +7 -0
  24. package/browser/cjs/DO-igV-beWuURc9q.cjs +7 -0
  25. package/browser/cjs/DR2yNdWmKOx4XEn_.cjs +7 -0
  26. package/browser/cjs/D_PNelhiuhC_pYQe.cjs +7 -0
  27. package/{node/esm/Dk3ABmYKlVup4l-u.mjs → browser/cjs/Dg4inQb_qTGcwKWj.cjs} +2 -5
  28. package/browser/cjs/KlMBkdsOI1TbINZi.cjs +7 -0
  29. package/browser/cjs/Me1cXPMFZnMqu9Ni.cjs +10 -0
  30. package/browser/cjs/P1V-5yUNwU9r5yLw.cjs +7 -0
  31. package/browser/cjs/Vkjfeba56sx1eWi0.cjs +7 -0
  32. package/browser/cjs/dwUVhGNDSgZfRm3P.cjs +7 -0
  33. package/browser/cjs/index.cjs +4 -3
  34. package/browser/cjs/txLIAZHRWIU9kf0I.cjs +7 -0
  35. package/browser/esm/30SRICLt1PAxlGS8.mjs +7 -0
  36. package/browser/esm/{CsPZhcz5eLf-CbkJ.mjs → 9jeiH8SVL_ZJYLxo.mjs} +2 -7
  37. package/browser/esm/B-xoX7KIAUytU1_U.mjs +7 -0
  38. package/browser/esm/B_bzVKesE_JRp6EW.mjs +7 -0
  39. package/browser/esm/BbO1W_XgpJnqTSty.mjs +7 -0
  40. package/browser/esm/BngRU84kl6oeKeYG.mjs +7 -0
  41. package/browser/esm/BuJVzVii6s-ETLFo.mjs +7 -0
  42. package/browser/esm/ByHA0yF73W3Lubv1.mjs +13 -0
  43. package/browser/esm/C9XmeyBj3CidGuuQ.mjs +7 -0
  44. package/browser/esm/CGlSMtRCaIAn2kcK.mjs +7 -0
  45. package/browser/esm/CNZEHpuUipSLJnir.mjs +7 -0
  46. package/browser/esm/CUDgLpRqpHPjfaCi.mjs +7 -0
  47. package/browser/esm/ChB6ZgoNr49oUuh9.mjs +7 -0
  48. package/browser/esm/D0HYMuygnYvY7Atx.mjs +7 -0
  49. package/browser/esm/D1PWaFTHEZfGGXTb.mjs +7 -0
  50. package/browser/esm/D2zmZcBdOoyixeUA.mjs +7 -0
  51. package/browser/esm/D525g_2eyexUf3Zf.mjs +7 -0
  52. package/browser/esm/DMJw8DmfeX6u2glN.mjs +7 -0
  53. package/browser/esm/DfHQEyIlLlv5P49Q.mjs +7 -0
  54. package/browser/esm/Dhvtq8jHg8BxOR0C.mjs +7 -0
  55. package/browser/esm/DkPPc6PpShDjAHJV.mjs +7 -0
  56. package/browser/esm/DqEqprkW8poZvfjh.mjs +7 -0
  57. package/browser/esm/DtSj65a0yyYL8HUw.mjs +7 -0
  58. package/browser/esm/Dw0Okzcg5hIcHUcc.mjs +7 -0
  59. package/browser/esm/Dzo7yK5H2NRkocTa.mjs +7 -0
  60. package/browser/esm/G_2bOLOa20d7iobX.mjs +7 -0
  61. package/browser/esm/MRXgg6FvbB08Ze4M.mjs +7 -0
  62. package/browser/esm/SePiM6uWrcY09dym.mjs +7 -0
  63. package/browser/esm/eCZnrKI7SxPgdErZ.mjs +7 -0
  64. package/browser/esm/index.mjs +2 -84
  65. package/browser/esm/nE8H93zlwoi3F8Ii.mjs +10 -0
  66. package/browser/esm/ui3SG2ZyuCKIR0An.mjs +7 -0
  67. package/browser/esm/vk7TdrD0zPqtT8_n.mjs +7 -0
  68. package/browser/esm/yM_d2jrPPN_EupI0.mjs +10 -0
  69. package/licenses/dependencies.txt +3 -3
  70. package/{browser/esm/70MScShy9oEFZGC-.mjs → node/esm/BJvhZja9zXr81ch6.mjs} +1 -1
  71. package/node/esm/{YqgO5dqnNDu6tJAq.mjs → BK_7sJa3fTDIKVsK.mjs} +2 -2
  72. package/node/esm/{CdbncxwuP2LcomiC.mjs → BPhIhbwKpbuhJ5n5.mjs} +1 -1
  73. package/node/esm/{BYw54CVi5Zykf7P_.mjs → BQb_TIMVKb4ap8qn.mjs} +1 -1
  74. package/node/esm/{B2GPpiwGDiHZ4Mnx.mjs → BW1-l-HQdvRTQ7Bm.mjs} +4 -4
  75. package/{browser/esm/Dk3ABmYKlVup4l-u.mjs → node/esm/Bkj8joA7ej1p4iQv.mjs} +1 -1
  76. package/node/esm/{BD4U7piuPUWGdmvF.mjs → BnQS3_N8ZEyMLfgn.mjs} +1 -1
  77. package/node/esm/{CYs7VtVLEbhMy_iG.mjs → Bs1vmYEblngyWvkW.mjs} +1 -1
  78. package/node/esm/{BWm5puKy7haAGpHu.mjs → BtDgmaUXSuZwZauR.mjs} +2 -2
  79. package/node/esm/{Blozz9cX9jUqOnkK.mjs → C2nQBB-2yJ1qfKsG.mjs} +1 -1
  80. package/node/esm/{mkuXwkQcdkBHUMsY.mjs → CEBBIejO4nn_eoLE.mjs} +1 -1
  81. package/{browser/esm/3AEwlfYXdvg1zUXm.mjs → node/esm/CEBaRGnJ6Pau61Z3.mjs} +1 -1
  82. package/node/esm/{CxkMMFqIme5dCX9o.mjs → CSr4e1I9DtTv2w79.mjs} +1 -1
  83. package/node/esm/CWUmgm7_b5VypIPN.mjs +80 -0
  84. package/node/esm/{BW04nsyJWeVHBcFW.mjs → Cb2A-sSxQbrq7_st.mjs} +1 -1
  85. package/node/esm/{DQwOIKwLzYjUwPmT.mjs → CfSD4cLmkg0FqnhQ.mjs} +1 -1
  86. package/node/esm/{C8OHYChkHQk2jVzy.mjs → ChgW0mo5gCgLQ4qn.mjs} +1 -1
  87. package/node/esm/{Br_wraXbAu-VOj0p.mjs → Cl6j-EVdzk8MvmYu.mjs} +1 -1
  88. package/node/esm/{CXhWG2Dg31l6Mo8r.mjs → Cvzp8bwJnKvjvZSp.mjs} +1 -1
  89. package/node/esm/{BJgxNxKnNgVBP4Hp.mjs → D-7D30G3TPv5yZHW.mjs} +1 -1
  90. package/node/esm/{0OTV9xpta6cm7Yx6.mjs → DPWAK-dKa7BGHzhV.mjs} +1 -1
  91. package/{browser/esm/DbezlvRyCGtHZgSZ.mjs → node/esm/DaA9EfLaa4eAL5v5.mjs} +1 -1
  92. package/{browser/esm/sUZorY3sws86BcMb.mjs → node/esm/DdQQdRO6WRU-o7fW.mjs} +1 -1
  93. package/{browser/esm/BLET1HFCb5u0-_Eo.mjs → node/esm/DqzaLjnlgJ73P6fj.mjs} +1 -1
  94. package/node/esm/{DXj8p7NZndUJBRAj.mjs → KTvP9pq_hIePsIcs.mjs} +1 -1
  95. package/node/esm/{Dq32tysuLIKWEFO_.mjs → R6sbyZ3F8U46a2pT.mjs} +1 -1
  96. package/node/esm/{DrU-yP_Fb9i7w1lb.mjs → RjYTditNvvkkhvec.mjs} +1 -1
  97. package/{browser/esm/CCcaxwoCKpK91TYc.mjs → node/esm/Ru2U-PXJ-wtFJVIi.mjs} +1 -1
  98. package/{browser/esm/CA504N_MgS6GSFmG.mjs → node/esm/_50UNzbNjsJJ5JeA.mjs} +1 -1
  99. package/node/esm/{Cyb9hq0LVkNm7yoj.mjs → ebMdiumtVWrujqaH.mjs} +1 -1
  100. package/node/esm/index.mjs +8 -8
  101. package/node/esm/{BelMCqHHX_Ln7ik4.mjs → wYdBXNtyuqNnNqw7.mjs} +2 -2
  102. package/package.json +4 -4
  103. package/browser/cjs/-4uKwgMCs2uA4zYY.cjs +0 -6
  104. package/browser/cjs/23Opade9fWTWmOw5.cjs +0 -6
  105. package/browser/cjs/6SNZR9WEya-Mi0Ec.cjs +0 -1501
  106. package/browser/cjs/7lk46bEggXm0Adux.cjs +0 -6
  107. package/browser/cjs/B0U3u9iqqnQvnw_Z.cjs +0 -6
  108. package/browser/cjs/BEQPlpKfeBPKELfa.cjs +0 -6
  109. package/browser/cjs/BKdxsyIZAckH_1Rs.cjs +0 -6
  110. package/browser/cjs/BKu_2G3LBpnvF7WK.cjs +0 -6
  111. package/browser/cjs/BTWYrYyq7P04Hhgy.cjs +0 -6
  112. package/browser/cjs/BVgdgozKIof0HqZa.cjs +0 -6
  113. package/browser/cjs/BXi-7ztAEss53BNW.cjs +0 -6
  114. package/browser/cjs/BzzSS21ndAnpHnTK.cjs +0 -6
  115. package/browser/cjs/C-JX44FribP4xuCm.cjs +0 -6
  116. package/browser/cjs/C12NQkp7rKKeLgpL.cjs +0 -60
  117. package/browser/cjs/CIisU9Fr1gqlOapx.cjs +0 -13
  118. package/browser/cjs/CRjnB0UGZizopxIy.cjs +0 -7
  119. package/browser/cjs/CfmxldeTiQsDhe4k.cjs +0 -6
  120. package/browser/cjs/CrkVZFNUXb_YVEfl.cjs +0 -6
  121. package/browser/cjs/Csmvu-Gg7GIET2fx.cjs +0 -124
  122. package/browser/cjs/D5kea7N3qYrpyi6Z.cjs +0 -6
  123. package/browser/cjs/DDPVADUPfi4JqKY9.cjs +0 -15
  124. package/browser/cjs/DJSDSOdIMakiUL9U.cjs +0 -6
  125. package/browser/cjs/DgJG2zU2CpBE2JKD.cjs +0 -6
  126. package/browser/cjs/DqHT7AmlwwAApU0v.cjs +0 -32
  127. package/browser/cjs/DqdKJmCBZ3tiiTyS.cjs +0 -6
  128. package/browser/cjs/Dy_w3ejsXCUjhwLi.cjs +0 -6
  129. package/browser/cjs/EAjldglgyKcpKzX6.cjs +0 -6
  130. package/browser/cjs/QraWsiDLYuP865Pt.cjs +0 -6
  131. package/browser/cjs/TMXcSm2F77kJ6GbS.cjs +0 -6
  132. package/browser/cjs/g9Un0PdQLp8LcMP-.cjs +0 -6
  133. package/browser/cjs/hNHT5yLsXAZ-mS5K.cjs +0 -6
  134. package/browser/cjs/o_FLjAWENTjXcsuZ.cjs +0 -6
  135. package/browser/cjs/rBPqKMZ7T6poaL7T.cjs +0 -6
  136. package/browser/esm/3-pvLx1jF0RJ56jT.mjs +0 -472
  137. package/browser/esm/3kB3KaOgV-3ox4C3.mjs +0 -426
  138. package/browser/esm/BJgxNxKnNgVBP4Hp.mjs +0 -10
  139. package/browser/esm/BO-YRuEp35GIVL4O.mjs +0 -10
  140. package/browser/esm/BOL-jxmJyje4-Hxe.mjs +0 -10
  141. package/browser/esm/BSFibAPQFeBovPl3.mjs +0 -10
  142. package/browser/esm/BW04nsyJWeVHBcFW.mjs +0 -10
  143. package/browser/esm/BaGFns-M8bCUjgnc.mjs +0 -3974
  144. package/browser/esm/BifIJRmeTJJLYCr-.mjs +0 -24
  145. package/browser/esm/Br_wraXbAu-VOj0p.mjs +0 -10
  146. package/browser/esm/BvE9cJg2esqHIr98.mjs +0 -10
  147. package/browser/esm/CMO8yX7mxIaFV5GC.mjs +0 -820
  148. package/browser/esm/Cqf8ZomeNI_0U-UD.mjs +0 -29
  149. package/browser/esm/DQwOIKwLzYjUwPmT.mjs +0 -10
  150. package/browser/esm/DXj8p7NZndUJBRAj.mjs +0 -10
  151. package/browser/esm/DcPcMjMOmfyIGaSN.mjs +0 -1575
  152. package/browser/esm/DhqkybSwX2wqkqcf.mjs +0 -24009
  153. package/browser/esm/DpJLw2aGOg6yuBjH.mjs +0 -10
  154. package/browser/esm/Dq32tysuLIKWEFO_.mjs +0 -10
  155. package/browser/esm/DrU-yP_Fb9i7w1lb.mjs +0 -10
  156. package/browser/esm/WY6tkuqX7I-Tw85_.mjs +0 -5651
  157. package/browser/esm/mkuXwkQcdkBHUMsY.mjs +0 -10
  158. package/browser/esm/skZ-cAv6270PFv3k.mjs +0 -10
  159. package/browser/esm/xUdz3zy_nz-hMfhq.mjs +0 -21
  160. package/node/esm/3AEwlfYXdvg1zUXm.mjs +0 -10
  161. package/node/esm/70MScShy9oEFZGC-.mjs +0 -10
  162. package/node/esm/BLET1HFCb5u0-_Eo.mjs +0 -10
  163. package/node/esm/CA504N_MgS6GSFmG.mjs +0 -10
  164. package/node/esm/CCcaxwoCKpK91TYc.mjs +0 -10
  165. package/node/esm/CSgS-BWwvF8YA6gv.mjs +0 -80
  166. package/node/esm/DbezlvRyCGtHZgSZ.mjs +0 -10
  167. package/node/esm/sUZorY3sws86BcMb.mjs +0 -10
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { BESSELI: { s: "Returns the modified Bessel function In(x)", p: { x: { d: "is the value at which to evaluate the function" }, n: { d: "is the order of the Bessel function" } } }, BESSELJ: { s: "Returns the Bessel function Jn(x)", p: { x: { d: "is the value at which to evaluate the function" }, n: { d: "is the order of the Bessel function" } } }, BESSELK: { s: "Returns the modified Bessel function Kn(x)", p: { x: { d: "is the value at which to evaluate the function" }, n: { d: "is the order of the function" } } }, BESSELY: { s: "Returns the Bessel function Yn(x)", p: { x: { d: "is the value at which to evaluate the function" }, n: { d: "is the order of the function" } } } };
8
- export {
9
- e as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { ACCRINT: { p: { issue: { d: "is the security's issue date, expressed as a serial date number" }, firstInterest: { d: "is the security's first interest date, expressed as a serial date number" }, settlement: { d: "is the security's settlement date, expressed as a serial date number" }, rate: { d: "is the security's annual coupon rate" }, par: { d: "is the security's par value" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 }, calcMethod: { d: "is a logical value: to accrued interest from issue date = TRUE; to calculate from last coupon payment date = FALSE", v: !0 } } }, ACCRINTM: { s: "Returns the accrued interest for a security that pays interest at maturity", p: { issue: { d: "is the security's issue date, expressed as a serial date number" }, settlement: { d: "is the security's maturity date, expressed as a serial date number" }, rate: { d: "is the security's annual coupon rate" }, par: { d: "is the security's par value" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, AMORLINC: { s: "Returns the prorated linear depreciation of an asset for each accounting period.", p: { cost: { d: "is the cost of the asset" }, datePurchased: { d: "is the date the asset is purchased" }, firstPeriod: { d: "is the date of the end of the first period" }, salvarge: { d: "is the salvage value at the end of life of the asset." }, period: { d: "is the period" }, rate: { d: "is the rate of depreciation" }, basis: { d: "year_basis : 0 for year of 360 days, 1 for actual, 3 for year of 365 days.", v: 0 } }, h: "Unimplemented" }, COUPDAYBS: { s: "Returns the number of days from the beginning of the coupon period to the settlement date", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, COUPDAYS: { s: "Returns the number of days from the beginning of the coupon period to the settlement date", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } } }, COUPNCD: { s: "Returns the next coupon date after the settlement date", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, COUPNUM: { s: "Returns the number of coupons payable between the settlement date and maturity date", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, COUPPCD: { s: "Returns the previous coupon date before the settlement date", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, CUMIPMT: { s: "Returns the cumulative interest paid between two periods", p: { rate: { d: "is the interest rate" }, nper: { d: "is the total number of payment periods" }, pv: { d: "is the present value of the investment" }, startPeriod: { d: "is the first period in the calculation" }, endPeriod: { d: "is the last period in the calculation" }, type: { d: "is the timing of the payment" } } }, CUMPRINC: { s: "Returns the cumulative principal paid on a loan between two periods", p: { rate: { d: "is the interest rate" }, nper: { d: "is the total number of payment periods" }, pv: { d: "is the present value of the investment" }, startPeriod: { d: "is the first period in the calculation" }, endPeriod: { d: "is the last period in the calculation" }, type: { d: "is the timing of the payment" } } }, DB: { s: "Returns the depreciation of an asset for a specified period using the fixed-declining balance method", p: { cost: { d: "is the initial cost of the asset" }, salvage: { d: "is the salvage value at the end of the life of the asset" }, life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)" }, period: { d: "is the period for which you want to calculate the depreciation. Period must use the same units as Life" }, month: { d: "is the number of months in the first year", v: 12 } } }, DDB: { s: "Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify", p: { cost: { d: "is the initial cost of the asset" }, salvage: { d: "is the salvage value at the end of the life of the asset" }, life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)" }, period: { d: "is the period for which you want to calculate the depreciation. Period must use the same units as Life" }, factor: { d: "is the rate at which the balance declines", v: 2 } } }, DISC: { s: "Returns the discount rate for a security", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, pr: { d: "is the security's price per $100 face value" }, redemption: { d: "is the security's redemption value per $100 face value" }, basis: { d: "is the type of day count basis to use", v: 0 } } }, DOLLARDE: { s: "Converts a dollar price, expressed as a fraction, into a dollar price, expressed as a decimal number", p: { fractionalDollar: { d: "is a number expressed as a fraction" }, fraction: { d: "is the integer to use in the denominator of the fraction" } } }, DOLLARFR: { s: "Converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fraction", p: { decimalDollar: { d: "is a decimal number" }, fraction: { d: "is the integer to use in the denominator of the fraction" } } }, DURATION: { s: "Returns the annual duration of a security with periodic interest payments", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, coupon: { d: "is the security's annual coupon rate" }, yld: { d: "is the security's annual yield" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, EFFECT: { s: "Returns the effective annual interest rate", p: { nominalRate: { d: "is the nominal interest rate" }, npery: { d: "is the number of compounding periods per year" } } }, FV: { s: "Returns the future value of an investment based on periodic, constant payments and a constant interest rate", p: { rate: { d: "is the interest rate" }, nper: { d: "is the total number of payment periods" }, pmt: { d: "is the payment made each period; it cannot change over the life of the investment" }, pv: { d: "is the present value of the investment", v: 0 }, type: { d: "Indicates when pmts are due.", v: 0 } } }, FVSCHEDULE: { s: "Returns the future value of an initial principal after applying a series of compound interest rates", p: { principal: { d: "is the present value" }, schedule: { d: "is an array of interest rates to apply" } } }, INTRATE: { s: "Returns the interest rate for a fully invested security", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, investment: { d: "is the amount invested in the security" }, redemption: { d: "is the amount to be received at maturity" }, basis: { d: "is the type of day count basis to use", v: 2 } }, h: "Unimplemented" }, IPMT: { s: "Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate", p: { rate: { d: "is the interest rate" }, per: { d: "is the period for which you want to find the interest and must be in the range 1 to Nper" }, nper: { d: "is the total number of payment periods" }, pv: { d: "is the present value of the investment" }, fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made", v: 0 }, type: { d: "is a logical value representing the timing of payment: at the end of the period = 0, at the beginning of the period = 1", v: 0 } } }, IRR: { s: "Returns the internal rate of return for a series of cash flows", p: { values: { d: "is an array or a reference to cells that contain numbers for which you want to calculate the internal rate of return" }, guess: { d: "is a number that you guess is close to the result of IRR", v: 0.1 } }, h: "Unimplemented" }, ISPMT: { s: "Returns the interest paid during a specific period of an investment", p: { rate: { d: "is the interest rate" }, per: { d: "period for which you want to find the interest" }, nper: { d: "number of payment periods in an investment" }, pv: { d: "lump sum amount that a series of future payments is right now" } } }, MDURATION: { s: "Returns the Macauley modified duration for a security with an assumed par value of $100", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, coupon: { d: "is the security's annual coupon rate" }, yld: { d: "is the security's annual yield" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 2 } }, h: "Unimplemented" }, MIRR: { s: "Returns the internal rate of return for a series of periodic cash flows, considering both cost of investment and interest on reinvestment of cash", p: { values: { d: "is an array or a reference to cells that contain numbers that represent a series of payments (negative) and income (positive) at regular periods" }, financeRate: { d: "is the interest rate you pay on the money used in the cash flows" }, reinvestRate: { d: "is the interest rate you receive on the cash flows as you reinvest them" } } }, NOMINAL: { s: "Returns the annual nominal interest rate", p: { effectiveRate: { d: "is the effective interest rate" }, npery: { d: "is the number of compounding periods per year@param npery" } } }, NPER: { s: "Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate", p: { rate: { d: "is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR" }, pmt: { d: "is the payment made each period; it cannot change over the life of the investment" }, pv: { d: "is the present value, or the lump-sum amount that a series of future payments is worth now" }, fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made", v: 0 }, type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0", v: 0 } } }, NPV: { s: "Returns the net present value of an investment based on a discount rate and a series of future payments (negative values) and income (positive values)", p: { rate: { d: "is the rate of discount over the length of one period" }, value: { d: "value1,value2,... are 1 to 254 payments and income, equally spaced in time and occurring at the end of each period" } } }, ODDFPRICE: { s: "Returns the price per $100 face value of a security with an odd first period", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, issue: { d: "is the security's issue date, expressed as a serial date number" }, firstCoupon: { d: "is the security's first coupon date, expressed as a serial date number" }, yld: { d: "is the security's annual yield" }, redemption: { d: "is the security's redemption value per $100 face value" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, ODDFYIELD: { s: "Returns the yield of a security with an odd first period", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, issue: { d: "is the security's issue date, expressed as a serial date number" }, firstCoupon: { d: "is the security's first coupon date, expressed as a serial date number" }, yld: { d: "is the security's annual yield" }, redemption: { d: "is the amount to be received at maturity" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, ODDLPRICE: { s: "Returns the price per $100 face value of a security with an odd last period", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, lastInterest: { d: "is the security's last coupon date, expressed as a serial date number" }, rate: { d: "is the interest rate" }, yld: { d: "is the security's annual yield" }, redemption: { d: "is the amount to be received at maturity" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, ODDLYIELD: { s: "Returns the yield of a security with an odd last period", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, lastInterest: { d: "is the security's last coupon date, expressed as a serial date number" }, rate: { d: "is the interest rate" }, pr: { d: "is the security's price" }, redemption: { d: "is the amount to be received at maturity" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, PDURATION: { s: "Returns the number of periods required by an investment to reach a specified value", p: { rate: { d: "is the interest rate" }, pv: { d: "is the present value of the investment" }, fv: { d: "is the desired future value of the investment" } } }, PMT: { s: "Calculates the payment for a loan based on constant payments and a constant interest rate", p: { rate: { d: "is the interest rate" }, nper: { d: "is the total number of payment periods" }, pv: { d: "is the present value of the investment" }, fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made", v: 0 }, type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0", v: 0 } } }, PRICE: { s: "Returns the price per $100 face value of a security that pays periodic interest", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, rate: { d: "is the interest rate" }, yld: { d: "is the security's annual yield" }, redemption: { d: "is the amount to be received at maturity" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, PRICEDISC: { s: "Returns the price per $100 face value of a discounted security", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, discount: { d: "is the security's discount rate" }, redemption: { d: "is the amount to be received at maturity" }, basis: { d: "is the type of day count basis to use", v: 0 } } }, PRICEMAT: { s: "Returns the price per $100 face value of a security that pays interest at maturity", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, issue: { d: "is the security's issue date, expressed as a serial date number" }, rate: { d: "is the interest rate" }, yld: { d: "is the security's annual yield" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, PV: { s: "Returns the present value of an investment: the total amount that a series of future payments is worth now", p: { rate: { d: "is the interest rate" }, nper: { d: "is the total number of payment periods in an investment" }, pmt: { d: "is the payment made each period and cannot change over the life of the investment" }, fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made", v: 0 }, type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0", v: 0 } } }, RATE: { s: "Returns the interest rate per period of a loan or an investment. For example, use 6%/4 for quarterly payments at 6% APR", p: { nper: { d: "is the total number of payment periods" }, pmt: { d: "is the payment made each period and cannot change over the life of the loan or investment" }, pv: { d: "is the present value: the total amount that a series of future payments is worth now" }, fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made", v: 0 }, type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0", v: 0 }, guess: { d: "is your guess for what the rate will be", v: 0.1 } } }, RECEIVED: { s: "Returns the amount received at maturity for a fully invested security", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, investment: { d: "is the amount invested in the security" }, discount: { d: "is the security's discount rate" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, RRI: { s: "Returns an equivalent interest rate for the growth of an investment", p: { nper: { d: "is the total number of payment periods" }, pv: { d: "is the present value of the investment" }, fv: { d: "is the future value of the investment" } } }, SLN: { s: "Returns the straight-line depreciation of an asset for one period", p: { cost: { d: "is the initial cost of the asset" }, salvage: { d: "is the salvage value at the end of the life of the asset" }, life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)" } } }, STOCKHISTORY: { s: "Returns an array of historical quote data for a symbol and date range you specify.", p: { stock: { d: "Symbol of financial instrument to be considered or a Stock data type." }, startDate: { d: "First date to return data from." }, endDate: { d: "Last date to return data from." }, interval: { d: "A number indicating the granularity of the data; 0 - Daily, 1 - Weekly, 2 - Monthly", v: 0 }, headers: { d: "A logical value to add column header data; 0 - No column header, 1 - Show column header, 2 - Show instrument identifier and column header", v: 1 }, properties: { d: "properties1,properties2,... A number indicating which column of data to return; 0 through 5", v: "[0, 1, 2, 3, 4]" } }, h: "Unimplemented" }, SYD: { s: "Returns the sum-of-years' digits depreciation of an asset for a specified period", p: { cost: { d: "is the initial cost of the asset" }, salvage: { d: "is the salvage value at the end of the life of the asset" }, life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)" }, per: { d: "is the period and must use the same units as Life" } } }, TBILLEQ: { s: "Returns the bond-equivalent yield for a treasury bill", p: { settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number" }, maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number" }, discount: { d: "is the Treasury bill's discount rate" } } }, TBILLPRICE: { s: "Returns the price per $100 face value for a treasury bill", p: { settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number" }, maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number" }, discount: { d: "is the Treasury bill's discount rate" } } }, TBILLYIELD: { s: "Returns the yield for a treasury bill", p: { settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number" }, maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number" }, pr: { d: "is the Treasury Bill's price per $100 face value" } } }, VDB: { s: "Returns the depreciation of an asset for any period you specify, including partial periods, using the double-declining balance method or some other method you specify", p: { cost: { d: "is the initial cost of the asset" }, salvage: { d: "is the salvage value at the end of the life of the asset" }, life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)" }, startPeriod: { d: "is the first period in the calculation" }, endPeriod: { d: "is the last period in the calculation" }, factor: { d: "is the rate at which the balance declines", v: 2 }, noSwitch: { d: "switch to straight-line depreciation when depreciation is greater than the declining balance = FALSE; do not switch = TRUE", v: !1 } }, h: "Unimplemented" }, XIRR: { s: "Returns the internal rate of return for a schedule of cash flows", p: { values: { d: "is a series of cash flows that correspond to a schedule of payments in dates" }, dates: { d: "is a schedule of payment dates that corresponds to the cash flow payments" }, guess: { d: "is a number that you guess is close to the result of XIRR", v: 0.1 } }, h: "Unimplemented" }, XNPV: { s: "Returns the net present value for a schedule of cash flows", p: { rate: { d: "is the discount rate to apply to the cash flows" }, values: { d: "is a series of cash flows that correspond to a schedule of payments in dates" }, dates: { d: "is a schedule of payment dates that corresponds to the cash flow payments" } } }, YIELD: { s: "Returns the yield on a security that pays periodic interest", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, rate: { d: "is the security's annual coupon rate" }, pr: { d: "is the security's price per $100 face value" }, redemption: { d: "is the security's redemption value per $100 face value" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, YIELDDISC: { s: "Returns the annual yield for a discounted security. For example, a treasury bill", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, pr: { d: "is the security's price per $100 face value" }, redemption: { d: "is the security's redemption value per $100 face value" }, frequency: { d: "is the number of coupon payments per year" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" }, YIELDMAT: { s: "Returns the annual yield of a security that pays interest at maturity", p: { settlement: { d: "is the security's settlement date, expressed as a serial date number" }, maturity: { d: "is the security's maturity date, expressed as a serial date number" }, issue: { d: "is the security's issue date, expressed as a serial date number" }, rate: { d: "is the interest rate" }, pr: { d: "is the security's price per $100 face value" }, basis: { d: "is the type of day count basis to use", v: 0 } }, h: "Unimplemented" } };
8
- export {
9
- e as default
10
- };
@@ -1,21 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- let e = null;
8
- async function n() {
9
- return e || (e = new Promise(async (i, l) => {
10
- let r = null;
11
- try {
12
- r = await import("https://esm.sh/typescript@5.7.2");
13
- } catch (t) {
14
- console.error("Error initializing Browser TypeScript module:", t);
15
- }
16
- r || console.log("use script fallback"), i(r);
17
- }), e);
18
- }
19
- export {
20
- n as initialize
21
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { DAVERAGE: { s: "Averages the values in a column in a list or database that match conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DCOUNT: { s: "Counts the cells containing numbers in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DCOUNTA: { s: "Counts nonblank cells in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DGET: { s: "Extracts from a database a single record that matches the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DMAX: { s: "Returns the largest number in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DMIN: { s: "Returns the smallest number in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DPRODUCT: { s: "Multiplies the values in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DSTDEV: { s: "Estimates the standard deviation based on a sample from selected database entries", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DSTDEVP: { s: "Calculates the standard deviation based on the entire population of selected database entries", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DSUM: { s: "Adds the numbers in the field (column) of records in the database that match the conditions you specify", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DVAR: { s: "Estimates variance based on a sample from selected database entries", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" }, DVARP: { s: "Calculates variance based on the entire population of selected database entries", p: { database: { d: "is the range of cells that makes up the list or database. A database is a list of related data" }, field: { d: "is either the label of the column in double quotation marks or a number that represents the column's position in the list" }, criteria: { d: "is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition" } }, h: "Unimplemented" } };
8
- export {
9
- e as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { COMPLEX: { s: "Converts real and imaginary coefficients into a complex number", p: { realNum: { d: "is the real coefficient of the complex number" }, iNum: { d: "is the imaginary coefficient of the complex number" }, suffix: { d: "is the suffix for the imaginary component of the complex number", v: "i" } } }, IMABS: { s: "Returns the absolute value (modulus) of a complex number", p: { inumber: { d: "is a complex number for which you want the absolute value" } } }, IMAGINARY: { s: "Returns the imaginary coefficient of a complex number", p: { inumber: { d: "is a complex number for which you want the imaginary coefficient" } } }, IMARGUMENT: { s: "Returns the argument q, an angle expressed in radians", p: { inumber: { d: "is a complex number for which you want the argument" } } }, IMCONJUGATE: { s: "Returns the complex conjugate of a complex number", p: { inumber: { d: "is a complex number for which you want the conjugate" } } }, IMCOS: { s: "Returns the cosine of a complex number", p: { inumber: { d: "is a complex number for which you want the cosine" } } }, IMCOSH: { s: "Returns the hyperbolic cosine of a complex number", p: { inumber: { d: "is a complex number for which you want the hyperbolic cosine" } } }, IMCOT: { s: "Returns the cotangent of a complex number", p: { inumber: { d: "is a complex number for which you want the cotangent" } } }, IMCSC: { s: "Returns the cosecant of a complex number", p: { inumber: { d: "is a complex number for which you want the cosecant" } } }, IMCSCH: { s: "Returns the hyperbolic cosecant of a complex number", p: { inumber: { d: "is a complex number for which you want the hyperbolic cosecant" } } }, IMDIV: { s: "Returns the quotient of two complex numbers", p: { inumber1: { d: "is the complex numerator or dividend" }, inumber2: { d: "is the complex denominator or divisor" } } }, IMEXP: { s: "Returns the exponential of a complex number", p: { inumber: { d: "is a complex number for which you want the exponential" } } }, IMLN: { s: "Returns the exponential of a complex number", p: { inumber: { d: "is a complex number for which you want the exponential" } } }, IMLOG10: { s: "Returns the base-10 logarithm of a complex number", p: { inumber: { d: "is a complex number for which you want the common logarithm" } } }, IMLOG2: { s: "Returns the base-2 logarithm of a complex number", p: { inumber: { d: "is a complex number for which you want the base-2 logarithm" } } }, IMPOWER: { s: "Returns the base-2 logarithm of a complex number", p: { inumber: { d: "is a complex number for which you want the base-2 logarithm" }, number: {} } }, IMPRODUCT: { s: "Returns the product of 1 to 255 complex numbers", p: { inumber: { d: "inumber1,inumber2,... Inumber1, Inumber2,... are from 1 to 255 complex numbers to multiply." } } }, IMREAL: { s: "Returns the real coefficient of a complex number", p: { inumber: { d: "is a complex number for which you want the real coefficient" } } }, IMSEC: { s: "Returns the secant of a complex number", p: { inumber: { d: "is a complex number for which you want the secant" } } }, IMSECH: { s: "Returns the hyperbolic secant of a complex number", p: { inumber: { d: "is a complex number for which you want the hyperbolic secant" } } }, IMSIN: { s: "Returns the sine of a complex number", p: { inumber: { d: "is a complex number for which you want the sine" } } }, IMSINH: { s: "Returns the hyperbolic sine of a complex number", p: { inumber: { d: "is a complex number for which you want the hyperbolic sine" } } }, IMSQRT: { s: "Returns the square root of a complex number", p: { inumber: { d: "is a complex number for which you want the square root" } } }, IMSUB: { s: "Returns the difference of two complex numbers", p: { inumber1: { d: "is the complex number from which to subtract inumber2" }, inumber2: { d: "is the complex number to subtract from inumber1" } } }, IMSUM: { s: "Returns the sum of complex numbers", p: { inumber: { d: "inumber1,inumber2,... are from 1 to 255 complex numbers to add" } } }, IMTAN: { s: "Returns the tangent of a complex number", p: { inumber: { d: "is a complex number for which you want the tangent" } } } };
8
- export {
9
- e as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { ENCODEURL: { s: "Returns a URL-encoded string", p: { text: { d: "is a string to be URL encoded" } } }, WEBSERVICE: { s: "Retrieves data from a web service.", p: { url: { d: "is the URL of the web service" } } } };
8
- export {
9
- e as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const t = { FILTERXML: { s: "Returns specific data from XML content using the specified XPath.", p: { xml: { d: "is a string in valid XML format." }, xpath: { d: "is a string in standard XPath format." } } } };
8
- export {
9
- t as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { ACOS: { s: "Returns the arccosine of a number, in radians in the range 0 to Pi. The arccosine is the angle whose cosine is Number", p: { number: { d: "is the cosine of the angle you want and must be from -1 to 1" } } }, ACOSH: { s: "Returns the inverse hyperbolic cosine of a number", p: { number: { d: "is any real number equal to or greater than 1" } } }, ACOT: { s: "Returns the arccotangent of a number, in radians in the range 0 to Pi.", p: { number: { d: "is the cotangent of the angle you want" } } }, ACOTH: { s: "Returns the inverse hyperbolic cotangent of a number", p: { number: { d: "is the hyperbolic cotangent of the angle that you want" } } }, ASIN: { s: "Returns the arcsine of a number in radians, in the range -Pi/2 to Pi/2", p: { number: { d: "is the sine of the angle you want and must be from -1 to 1" } } }, ASINH: { s: "Returns the inverse hyperbolic sine of a number", p: { number: { d: "is any real number equal to or greater than 1" } } }, ATAN: { s: "Returns the arctangent of a number in radians, in the range -Pi/2 to Pi/2", p: { number: { d: "is the tangent of the angle you want" } } }, ATAN2: { s: "Returns the arctangent of the specified x- and y- coordinates, in radians between -Pi and Pi, excluding -Pi", p: { x: { d: "is the x-coordinate of the point" }, y: { d: "is the y-coordinate of the point" } } }, ATANH: { s: "Returns the inverse hyperbolic tangent of a number", p: { number: { d: "is any real number between -1 and 1 excluding -1 and 1" } } }, COS: { s: "Returns the cosine of an angle", p: { number: { d: "is the angle in radians for which you want the cosine" } } }, COSH: { s: "Returns the hyperbolic cosine of a number", p: { number: { d: "is any real number" } } }, COT: { s: "Returns the cotangent of an angle", p: { number: { d: "is the angle in radians for which you want the cotangent" } } }, COTH: { s: "Returns the hyperbolic cotangent of a number", p: { number: { d: "is the angle in radians for which you want the hyperbolic cotangent" } } }, CSC: { s: "Returns the cosecant of an angle", p: { number: { d: "is the angle in radians for which you want the cosecant" } } }, CSCH: { s: "Returns the hyperbolic cosecant of an angle", p: { number: { d: "is the angle in radians for which you want the hyperbolic cosecant" } } }, SEC: { s: "Returns the secant of an angle", p: { number: { d: "is the angle in radians for which you want the secant" } } }, SECH: { s: "Returns the hyperbolic secant of an angle", p: { number: { d: "is the angle in radians for which you want the hyperbolic secant" } } }, SIN: { s: "Returns the sine of an angle", p: { number: { d: "is the angle in radians for which you want the sine. Degrees * PI()/180 = radians" } } }, SINH: { s: "Returns the hyperbolic sine of a number", p: { number: { d: "is any real number" } } }, TAN: { s: "Returns the tangent of an angle", p: { number: { d: "is the angle in radians for which you want the tangent. Degrees * PI()/180 = radians" } } }, TANH: { s: "Returns the hyperbolic tangent of a number", p: { number: { d: "is any real number" } } } };
8
- export {
9
- e as default
10
- };
@@ -1,80 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- let n = class {
8
- constructor(n2) {
9
- this._worker = null, this._nextId = 1, this._pendingRequests = /* @__PURE__ */ new Map(), this._workerFactory = n2;
10
- }
11
- start() {
12
- if (typeof Worker > "u") throw new Error("Web Workers are not supported in this environment.");
13
- return this._worker || (this._worker = this._workerFactory(), this._worker.onmessage = (n2) => {
14
- const { id: e2, result: t2, error: r2 } = n2.data, o2 = this._pendingRequests.get(e2);
15
- if (o2) if (this._pendingRequests.delete(e2), r2) {
16
- const n3 = new Error(r2.message);
17
- n3.stack = r2.stack, r2.cause && (n3.cause = r2.cause), o2.reject(n3);
18
- } else o2.resolve(t2);
19
- }, this._worker.onerror = (n2) => {
20
- console.error("Worker error:", n2), this._pendingRequests.forEach((e2) => {
21
- e2.reject(new Error(`Worker failed: ${n2.message}`));
22
- }), this._pendingRequests.clear(), this._worker = null;
23
- }), Promise.resolve();
24
- }
25
- execute(n2) {
26
- if (!this._worker) throw new Error("Worker is not initialized. Call start() first.");
27
- const e2 = this._nextId++;
28
- return new Promise((t2, r2) => {
29
- this._pendingRequests.set(e2, { resolve: t2, reject: r2 }), this._worker.postMessage({ id: e2, params: n2 });
30
- });
31
- }
32
- terminate() {
33
- this._worker && (this._worker.terminate(), this._worker = null);
34
- }
35
- };
36
- class e {
37
- constructor(n2) {
38
- this._onExecute = n2;
39
- }
40
- execute(n2) {
41
- return this._onExecute(n2);
42
- }
43
- start() {
44
- return Promise.resolve();
45
- }
46
- terminate() {
47
- }
48
- }
49
- const t = '/**\n * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.4.10\n *\n * (C) 2025-present SheetXL Inc. & Michael T. Ford\n * License: The license can be found at https://www.sheetxl.com/license.\n */\nconst W = { Number: "n", String: "s", Boolean: "b", Error: "e", Null: "z" };\nvar Re, ae, d;\n(ae = Re || (Re = {})).Orientation = { Column: "column", Row: "row" }, ae.Orientations = { ...ae.Orientation, Both: "both" }, ae.Direction = { Up: "up", Down: "down", Left: "left", Right: "right" }, ((e) => {\n e.Code = { Parse: 0, Null: 1, Div0: 2, Value: 3, Ref: 4, Name: 5, Num: 6, NA: 7, GettingData: 8, Spill: 9, Connect: 10, Blocked: 11, Unknown: 12, Field: 13, Calc: 14, Busy: 16, Python: 19, Timeout: 20 }, e.Label = { Parse: "#PARSE!", Null: "#NULL!", Div0: "#DIV/0!", Value: "#VALUE!", Ref: "#REF!", Name: "#NAME?", Num: "#NUM!", NA: "#N/A", GettingData: "#GETTING_DATA", Spill: "#SPILL!", Connect: "#CONNECT!", Blocked: "#BLOCKED!", Unknown: "#UNKNOWN!", Field: "#FIELD!", Calc: "#CALC!", Busy: "#BUSY!", Python: "#PYTHON!", Timeout: "#TIMEOUT!" };\n class t extends Error {\n constructor(c, m, fe, B) {\n super(fe, B), this._label = m, this._code = c, this.details = B;\n }\n static {\n this.code = e.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(c) {\n return !!c && (this._code === c._code || this._code === c.code);\n }\n get [Symbol.toStringTag]() {\n return "[FormulaError]";\n }\n toString() {\n return this.message || this._label;\n }\n }\n e.Known = t;\n class r extends t {\n constructor(c, m) {\n super(e.Code.Parse, e.Label.Parse, c, m);\n }\n static {\n this.code = e.Code.Parse;\n }\n getDetails() {\n const c = this.details;\n return { line: c?.line ?? 1, column: c?.column ?? 1, offset: c?.offset ?? 0, length: c?.length ?? 0 };\n }\n }\n e.Parse = r;\n class n extends t {\n constructor(c, m) {\n super(e.Code.Null, e.Label.Null, c, m);\n }\n static {\n this.code = e.Code.Null;\n }\n }\n e.Null = n;\n class o extends t {\n constructor(c, m) {\n super(e.Code.Div0, e.Label.Div0, c, m);\n }\n static {\n this.code = e.Code.Div0;\n }\n }\n e.Div0 = o;\n class i extends t {\n constructor(c, m) {\n super(e.Code.Value, e.Label.Value, c, m);\n }\n static {\n this.code = e.Code.Value;\n }\n }\n e.Value = i;\n class a extends t {\n constructor(c, m) {\n super(e.Code.Ref, e.Label.Ref, c, m);\n }\n static {\n this.code = e.Code.Ref;\n }\n }\n e.Ref = a;\n class l extends t {\n constructor(c, m) {\n super(e.Code.Name, e.Label.Name, c, m);\n }\n static {\n this.code = e.Code.Name;\n }\n }\n e.Name = l;\n class u extends t {\n constructor(c, m) {\n super(e.Code.Num, e.Label.Num, c, m);\n }\n static {\n this.code = e.Code.Num;\n }\n }\n e.Num = u;\n class f extends t {\n constructor(c, m) {\n super(e.Code.NA, e.Label.NA, c, m);\n }\n static {\n this.code = e.Code.NA;\n }\n }\n e.NA = f;\n class h extends t {\n constructor(c, m) {\n super(e.Code.GettingData, e.Label.GettingData, c, m);\n }\n static {\n this.code = e.Code.GettingData;\n }\n }\n e.GettingData = h;\n class g extends t {\n constructor(c, m) {\n super(e.Code.Spill, e.Label.Spill, c, m);\n }\n static {\n this.code = e.Code.Spill;\n }\n }\n e.Spill = g;\n class p extends t {\n constructor(c, m) {\n super(e.Code.Connect, e.Label.Connect, c, m);\n }\n static {\n this.code = e.Code.Connect;\n }\n }\n e.Connect = p;\n class y extends t {\n constructor(c, m) {\n super(e.Code.Blocked, e.Label.Blocked, c, m);\n }\n static {\n this.code = e.Code.Blocked;\n }\n }\n e.Blocked = y;\n class T extends t {\n constructor(c, m) {\n super(e.Code.Unknown, e.Label.Unknown, c, m);\n }\n static {\n this.code = e.Code.Unknown;\n }\n }\n e.Unknown = T;\n class A extends t {\n constructor(c, m) {\n super(e.Code.Field, e.Label.Field, c, m);\n }\n static {\n this.code = e.Code.Field;\n }\n }\n e.Field = A;\n class D extends t {\n constructor(c, m) {\n super(e.Code.Calc, e.Label.Calc, c, m);\n }\n static {\n this.code = e.Code.Calc;\n }\n }\n e.Calc = D;\n class U extends t {\n constructor(c, m) {\n super(e.Code.Busy, e.Label.Busy, c, m);\n }\n static {\n this.code = e.Code.Busy;\n }\n }\n e.Busy = U;\n class I extends t {\n constructor(c, m) {\n super(e.Code.Python, e.Label.Python, c, m);\n }\n static {\n this.code = e.Code.Python;\n }\n }\n e.Python = I;\n class J extends t {\n constructor(c, m) {\n super(e.Code.Timeout, e.Label.Timeout, c, m);\n }\n static {\n this.code = e.Code.Timeout;\n }\n }\n e.Timeout = J;\n})(d || (d = {}));\nconst _ = {};\n_[d.Code.Parse] = d.Parse, _[d.Code.Null] = d.Null, _[d.Code.Div0] = d.Div0, _[d.Code.Value] = d.Value, _[d.Code.Ref] = d.Ref, _[d.Code.Name] = d.Name, _[d.Code.Num] = d.Num, _[d.Code.NA] = d.NA, _[d.Code.GettingData] = d.GettingData, _[d.Code.Spill] = d.Spill, _[d.Code.Connect] = d.Connect, _[d.Code.Blocked] = d.Blocked, _[d.Code.Unknown] = d.Unknown, _[d.Code.Field] = d.Field, _[d.Code.Calc] = d.Calc, _[d.Code.Busy] = d.Busy, _[d.Code.Python] = d.Python, _[d.Code.Timeout] = d.Timeout;\nconst et = /* @__PURE__ */ new Map(), Te = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map(), rt = /* @__PURE__ */ new Map(), ke = Object.keys(_);\nfor (let e = 0; e < ke.length; e++) {\n const t = ke[e], r = _[t];\n tt.set(d.Label[t], r), rt.set(d.Code[t], r);\n const n = new r();\n et.set(n.getLabel(), n), Te.set(n.getCode(), n);\n}\nconst Et = Te.get(d.Code.Unknown);\nvar v;\n(v = d || (d = {})).BuiltIn = { Parse: new v.Parse(), Null: new v.Null(), Div0: new v.Div0(), Value: new v.Value(), Ref: new v.Ref(), Name: new v.Name(), Num: new v.Num(), NA: new v.NA(), GettingData: new v.GettingData(), Spill: new v.Spill(), Connect: new v.Connect(), Blocked: new v.Blocked(), Unknown: new v.Unknown(), Field: new v.Field(), Calc: new v.Calc(), Busy: new v.Busy(), Python: new v.Python(), Timeout: new v.Timeout() }, v.getBuiltInByLabel = (e) => et.get(e), v.newTypedError = (e, t, r) => {\n let n;\n return n = typeof e == "string" ? tt.get(e) : rt.get(e), n || (n = v.Unknown), new n(t, r);\n}, v.getBuiltInById = (e) => Te.get(e) || Et;\n/**\n * @license @sheetxl/utils - Utils - Utilities used by most SheetXL components. - v0.4.10\n *\n * (C) 2025-present SheetXL Inc. & Michael T. Ford\n * License: The license can be found at https://www.sheetxl.com/license.\n */\nconst S = { html: "text/html", plain: "text/plain", png: "image/png" }, St = Object.freeze({ left: 0, top: 0 }), xt = Object.freeze({ left: 0, top: 0, bottom: 0, right: 0 }), Ct = Object.freeze({ x: 0, y: 0, width: 0, height: 0 });\nObject.freeze(Object.defineProperty({ __proto__: null, EmptyBounds: Ct, EmptyRect: xt, EmptyTopLeft: St }, Symbol.toStringTag, { value: "Module" }));\nconst j = { Column: "column", Row: "row" }, vt = Object.freeze({ colIndex: 0, rowIndex: 0 }), Tt = Object.freeze({ colStart: 0, rowStart: 0, colEnd: 0, rowEnd: 0 }), nt = (e, t) => e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart, ot = (e, t) => e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart, _t = (e, t) => e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd, Ot = (e, t) => e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd, Le = (e, t) => e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex, Ae = (e, t) => e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex, it = (e = j.Row, t = !1) => t ? e !== j.Column ? _t : Ot : e !== j.Column ? ot : nt, Me = (e, t) => e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex, Se = (e, t) => e === t || !(!e || !t) && e.rowStart === t.rowStart && e.rowEnd === t.rowEnd && e.colStart === t.colStart && e.colEnd === t.colEnd, xe = (e, t) => !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd), je = (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 (!Se(e[r], t[r])) return !1;\n return !0;\n}, he = (e, t, r) => {\n if (!e && !t) return null;\n if (!e) return r ? t : { ...t };\n if (!t) return r ? e : { ...e };\n const n = Math.min(e.colStart, t.colStart), o = Math.min(e.rowStart, t.rowStart), i = Math.max(e.colEnd, t.colEnd), a = Math.max(e.rowEnd, t.rowEnd);\n let l = r;\n return l ? (l.colStart = n, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: n, rowStart: o, colEnd: i, rowEnd: a }, l;\n}, Pe = (e, t) => {\n if (!t || t.length === 0) return e;\n const r = { ...e };\n for (let n = 0; n < t.length; n++) {\n const o = t[n];\n xe(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}, It = [null, null], Nt = (e, t, r) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Fe(e, t = 2, r, n = j.Row, o) {\n let i = [...e];\n if (t <= 0 || e.length <= 1) return i;\n let a = n === j.Column, l = 0, u = !1;\n do {\n const f = i.sort(it(a ? j.Row : j.Column));\n i = [], i.push(f[0]);\n const h = f.length;\n let g = 0, p = f[0], y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n for (let U = 1; U < h; U++) {\n const I = f[U];\n let J = !1;\n if (J = a ? p && T === I.rowStart && D === I.rowEnd && A + 1 === I.colStart : p && y === I.colStart && A === I.colEnd && D + 1 === I.rowStart, J) {\n let E = { colStart: y, rowStart: T, colEnd: a ? I.colEnd : A, rowEnd: a ? D : I.rowEnd };\n if (p.value !== void 0 && (E.value = p.value), r) {\n const c = o ?? [null, null];\n c[0] = p, c[1] = I, E = r(c, E, n);\n }\n if (E) {\n i[g] = E, u = !0, p = E, y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n continue;\n }\n }\n i[++g] = I, p = I, y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n }\n l++, a = !a, l === 1 && (u = !0);\n } while (l < t && u && i.length > 1);\n return i;\n}\nObject.freeze(Object.defineProperty({ __proto__: null, EmptyCell: vt, EmptyRange: Tt, cellToRange: (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}, columnFirstCellComparator: Le, columnFirstRangeComparator: nt, createCellComparator: (e = j.Row, t = !1) => t ? e !== j.Column ? (r, n) => r.rowIndex === n.rowIndex ? n.colIndex - r.colIndex : n.rowIndex - r.rowIndex : (r, n) => r.colIndex === n.colIndex ? n.rowIndex - r.rowIndex : n.colIndex - r.colIndex : e !== j.Column ? Ae : Le, createConflatingRanges: (e, t = !1) => {\n const r = [];\n let n, o, i = Number.MIN_SAFE_INTEGER, a = Number.MIN_SAFE_INTEGER;\n return { append: (l, u, f) => {\n let h = !0;\n const g = f !== void 0;\n if (g) {\n const T = e ? e(o, f, t) : o === f ? f : void 0;\n T === void 0 ? h = !1 : f = T;\n }\n if (h && u === a + 1 && l === i) return t ? n.rowEnd = u : n.colEnd = u, a = u, void (o = f);\n n && r.push(n);\n const p = t ? l : u, y = t ? u : l;\n n = { colStart: p, rowStart: y, colEnd: p, rowEnd: y }, g && (n.value = f), i = l, a = u, o = f;\n }, done: (l) => (n && (r.push(n), n = null), l ? Fe(r, 3, l === !0 ? Nt : l, t ? j.Column : j.Row, It) : r) };\n}, createRangeComparator: it, defaultRange: (e, t, r) => 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) : { colStart: e.colStart ?? t.colStart, rowStart: e.rowStart ?? t.rowStart, colEnd: e.colEnd ?? t.colEnd, rowEnd: e.rowEnd ?? t.rowEnd } : t, extendRangeToIntersectingRanges: Pe, extendRangeToUnionRanges: (e, t) => {\n if (!t || t.length === 0) return e;\n let r = e, n = null;\n for (; !Se(r, n); ) n = r, r = Pe(n, t);\n return r;\n}, indexOfCoords: (e, t) => {\n const r = { colStart: e.colIndex, rowStart: e.rowIndex, colEnd: e.colIndex, rowEnd: e.rowIndex };\n for (let n = t.length - 1; n >= 0; n--) if (xe(r, t[n])) return n;\n return -1;\n}, intersectRanges: (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 const n = Math.max(e.colStart, t.colStart), o = Math.max(e.rowStart, t.rowStart), i = Math.min(e.colEnd, t.colEnd), a = Math.min(e.rowEnd, t.rowEnd);\n let l = r;\n return l ? (l.colStart = n, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: n, rowStart: o, colEnd: i, rowEnd: a }, l;\n}, isCellWithinRange: (e, t) => !(!e || !t) && !(e.rowIndex < t.rowStart || e.rowIndex > t.rowEnd) && !(e.colIndex < t.colStart || e.colIndex > t.colEnd), isEqualCells: Me, isEqualRanges: Se, isEqualRangesArrays: je, isEqualSelectionCoords: (e, t) => e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!Me(e.cell, t.cell) && je(e.ranges, t.ranges), isRangeWithinRange: (e, t) => !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd), isRangesIntersect: xe, isSingleCell: (e) => !!e && e.rowEnd === e.rowStart && e.colStart === e.colEnd, isValidRange: (e) => !!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), mergeRangedValues: Fe, rowFirstCellComparator: Ae, rowFirstRangeComparator: ot, sanitizeRange: (e) => e ? { colStart: e.colIndex ?? e.colStart ?? 0, rowStart: e.rowIndex ?? e.rowStart ?? 0, colEnd: e.colIndex ?? e.colEnd ?? 0, rowEnd: e.rowIndex ?? e.rowEnd ?? 0 } : null, translateRange: (e, t = -e.rowStart, r = -e.colStart, n) => n ? (n.colStart = e.colStart + r, n.rowStart = e.rowStart + t, n.colEnd = e.colEnd + r, n.rowEnd = e.rowEnd + t, n) : { colStart: e.colStart + r, rowStart: e.rowStart + t, colEnd: e.colEnd + r, rowEnd: e.rowEnd + t }, unionRanges: he, unionRangesArrays: (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 = he(n, e[o], r);\n return t && (n = he(n, t, r)), n;\n} }, Symbol.toStringTag, { value: "Module" }));\nfunction Rt(e) {\n const t = Object.prototype.toString.call(e);\n return t === "[object RegExp]" || t === "[object Date]" || function(r) {\n return r.$$typeof === kt;\n }(e);\n}\nconst kt = typeof Symbol == "function" && Symbol.for ? Symbol.for("react.element") : 60103;\nfunction Lt(e) {\n return /* @__PURE__ */ function(t) {\n return !!t && typeof t == "object";\n }(e) && !Rt(e);\n}\nfunction ne(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Y((r = e, Array.isArray(r) ? [] : {}), e, t) : e;\n var r;\n}\nfunction At(e, t, r) {\n return e.concat(t).map(function(n) {\n return ne(n, r);\n });\n}\nfunction De(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 Ue(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction Mt(e, t, r) {\n const n = {};\n return r.isMergeableObject(e) && De(e).forEach(function(o) {\n n[o] = ne(e[o], r);\n }), De(t).forEach(function(o) {\n (function(i, a) {\n return Ue(i, a) && !(Object.hasOwnProperty.call(i, a) && Object.propertyIsEnumerable.call(i, a));\n })(e, o) || (Ue(e, o) && r.isMergeableObject(t[o]) ? n[o] = function(i, a) {\n if (!a.customMerge) return Y;\n const l = a.customMerge(i);\n return typeof l == "function" ? l : Y;\n }(o, r)(e[o], t[o], r) : n[o] = ne(t[o], r));\n }), n;\n}\nfunction Y(e, t, r) {\n (r = r || {}).arrayMerge = r.arrayMerge || At, r.isMergeableObject = r.isMergeableObject || Lt, r.cloneUnlessOtherwiseSpecified = ne;\n const n = Array.isArray(t);\n return n === Array.isArray(e) ? n ? r.arrayMerge(e, t, r) : Mt(e, t, r) : ne(t, r);\n}\nY.all = function(e, t) {\n if (!Array.isArray(e)) throw new Error("first argument should be an array");\n return e.reduce(function(r, n) {\n return Y(r, n, t);\n }, {});\n};\nconst jt = Object.freeze([]), Pt = Object.freeze({}), Be = (e) => e, de = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {\n let t = 16 * Math.random() | 0;\n return (e === "x" ? t : 3 & t | 8).toString(16);\n}), Ft = (e) => 1 * e, at = (e, t) => e === t || !(!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) && e.every((r, n) => r === t[n]), re = (e) => typeof e == "object" && !Array.isArray(e) && e !== null, lt = (e) => typeof e != "object" || Array.isArray(e) || e === null ? e : (Object.keys(e).forEach(function(t) {\n e[t] && typeof e[t] == "object" ? lt(e[t]) : e[t] !== null && e[t] !== void 0 || delete e[t], typeof e[t] == "object" && Object.keys(e[t]).length === 0 && delete e[t];\n}), Object.keys(e).length === 0 ? null : e), Dt = (e, t) => !(e !== t && !at(e, t)) || !!e.isEqual?.(t), st = (e, t, r = Dt) => {\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 const n = Object.keys(e);\n if (n.length === 0) return null;\n let o = !1;\n for (let i = 0; i < n.length; i++) {\n const a = n[i];\n st(e[a], t?.[a], r) === null && (o = !0, delete e[a]);\n }\n return o && Object.keys(e).length === 0 ? null : void 0;\n}, $e = typeof performance == "object" && typeof performance.now == "function" ? () => performance.now() : () => Date.now(), ze = (e) => e == null, Ke = (e, t) => !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top), Ve = !(typeof window > "u" || !window.document || !window.document.createElement), k = { Windows: "windows", MacOS: "macos", IOS: "ios", Linux: "linux", Android: "android", Safari: "safari", Firefox: "firefox", Node: "node", Unknown: "unknown" }, oe = () => {\n if (ct()) return k.Node;\n const e = globalThis.navigator !== void 0 && globalThis.navigator.userAgent ? globalThis.navigator.userAgent.toLowerCase() : "";\n return e ? /(win32|win64|windows|wince)/i.test(e) ? k.Windows : /(macintosh|macintel|macppc|mac68k|macos)/i.test(e) ? k.MacOS : /(iphone|ipad|ipod)/i.test(e) ? k.IOS : /android/.test(e) ? k.Android : /linux/.test(e) ? k.Linux : /^((?!chrome|android|).)*safari/i.test(e) ? k.Safari : /^((?!chrome|android|Seamonkey).)*firefox/i.test(e) ? k.Firefox : k.Unknown : k.Unknown;\n};\nfunction ct() {\n return typeof process < "u" && process.release?.name === "node" || (typeof process < "u" && process.browser, !1);\n}\nconst qe = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), Ut = Object.freeze(Object.defineProperty({ __proto__: null, EmptyArray: jt, EmptyObject: Pt, OSType: k, arrayMove: function(e, t, r) {\n const n = e.slice();\n return n.splice(r < 0 ? n.length + r : r, 0, n.splice(t, 1)[0]), n;\n}, asNumber: (e) => {\n const t = Ft(e);\n return Number.isFinite(t) ? t : 0;\n}, camelToPrettyCase: (e) => e.length === 1 ? e.toUpperCase() : e.replace(/([A-Z])/g, " $1").replace(/^./, function(t) {\n return t.toUpperCase();\n}).trim(), canUseDOM: Ve, cancelTimeout: (e) => {\n cancelAnimationFrame(e.id);\n}, castToString: (e) => e == null || e === void 0 ? "" : typeof e != "string" ? "" + e : e, cloneObject: (e) => ze(e) ? e : JSON.parse(JSON.stringify(e)), consoleWithNoSource: (...e) => new Promise((t) => {\n setTimeout(() => {\n Function("console.log.apply(console, arguments)").apply(null, e), t();\n });\n}), debounce: function(e, t = 300, r = !1) {\n let n, o, i, a, l = 0;\n function u() {\n let h = Date.now() - l;\n h < t && h >= 0 ? n = setTimeout(u, t - h) : (n = null, r || (a = e.apply(i, o), i = o = null));\n }\n t == null && (t = 100);\n const f = function() {\n i = globalThis, o = arguments, l = Date.now();\n var h = r && !n;\n return n || (n = setTimeout(u, t)), h && (a = e.apply(i, o), i = o = null), a;\n };\n return f.clear = function() {\n n && (clearTimeout(n), n = null);\n }, f.flush = function() {\n n && (a = e.apply(i, o), i = o = null, clearTimeout(n), n = null);\n }, f;\n}, deepEqual: function e(t, r) {\n if (t === r) return !0;\n if (t && r && typeof t == "object" && typeof r == "object") {\n if (t.constructor !== r.constructor) return !1;\n let n, o, i;\n if (Array.isArray(t)) {\n if (n = t.length, n != r.length) return !1;\n for (o = n; o-- !== 0; ) if (!e(t[o], r[o])) return !1;\n return !0;\n }\n if (t instanceof Map && r instanceof Map) {\n if (t.size !== r.size) return !1;\n for (o of t.entries()) if (!r.has(o[0])) return !1;\n for (o of t.entries()) if (!e(o[1], r.get(o[0]))) return !1;\n return !0;\n }\n if (t instanceof Set && r instanceof Set) {\n if (t.size !== r.size) return !1;\n for (o of t.entries()) if (!r.has(o[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(t) && ArrayBuffer.isView(r)) {\n if (n = t.length, n != r.length) return !1;\n for (o = n; o-- !== 0; ) if (t[o] !== r[o]) return !1;\n return !0;\n }\n if (t.constructor === RegExp) return t.source === r.source && t.flags === r.flags;\n if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === r.valueOf();\n if (t.toString !== Object.prototype.toString) return t.toString() === r.toString();\n if (i = Object.keys(t), n = i.length, n !== Object.keys(r).length) return !1;\n for (o = n; o-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(r, i[o])) return !1;\n for (o = n; o-- !== 0; ) {\n let a = i[o];\n if ((a !== "_owner" || !t.$$typeof) && !e(t[a], r[a])) return !1;\n }\n return !0;\n }\n return t != t && r != r;\n}, deepFreeze: function e(t) {\n return Object.freeze(t), Object.keys(t).forEach((r) => {\n typeof t[r] != "object" || t[r] === null || Object.isFrozen(t[r]) || e(t[r]);\n }), t;\n}, deepMerge: Y, diffValues: (e, t) => {\n const r = {}, n = Object.keys(t), o = n.length;\n for (let i = 0; i < o; i++) {\n const a = n[i];\n e[a] !== t[a] && (e[a] === void 0 ? r[a] = t[a] : r[a] = e[a]);\n }\n return Object.keys(r).length === 0 ? null : r;\n}, findEqualOrGreater: function(e, t, r = Be) {\n let n = 0, o = e.length - 1;\n for (; n <= o; ) {\n let i = Math.floor((n + o) / 2), a = r(e[i]);\n if (a === t) return i;\n a < t ? n = i + 1 : o = i - 1;\n }\n return n;\n}, findEqualOrLesser: function(e, t, r = Be) {\n let n = e.length - 1, o = 0;\n for (; n >= o; ) {\n let i = Math.floor((n + o) / 2), a = r(e[i]);\n if (a === t) return i;\n a > t ? n = i - 1 : o = i + 1;\n }\n return n;\n}, findNextStep: (e, t = !0, r = 15, n = 10, o = 400) => {\n const i = Math.max(e - n, 0) + (t ? 1 : -1);\n return Math.min(o, Math[t ? "ceil" : "floor"](i / r) * r + n);\n}, getDPI: () => {\n let e = 1;\n return typeof window == "object" && (e = window.devicePixelRatio || 1), e;\n}, getFromPath: (e, t) => {\n const r = t.split(".");\n let n = e;\n for (let o = 0; o < r.length; o++) {\n const i = r[o];\n if (!n) return null;\n let a = n[i];\n if (typeof a == "function" && (a = a.bind(n)()), !a || !re(a)) return a;\n n = a;\n }\n return n ?? null;\n}, getOS: oe, hasFocus: qe, isDefined: (e) => e != null, isEmpty: (e) => e == null || e === "", isEqualArrays: at, isEqualBounds: (e, t) => e === t || !(e && !t || t && !e) && e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height, isEqualObjectKeys: (e, t) => {\n if (e === t) return !0;\n if (e && !t || t && !e) return !1;\n const r = Object.keys(e);\n if (r.length !== Object.keys(t).length) return !1;\n for (let n = 0; n < r.length; n++) if (e[r[n]] !== t[r[n]]) return !1;\n return !0;\n}, isNode: ct, isNullOrUndefined: ze, isNumeric: (e) => {\n const t = 1 * e;\n return Number.isFinite(t) && typeof t == "number";\n}, isObject: re, isPromiseLike: (e) => !!e && typeof e.then == "function", isRectInsideRect: (e, t) => e.top >= t.top && e.bottom <= t.bottom && e.left >= t.left && e.right <= t.right, isRectIntersect: Ke, mergeContentful: (...e) => {\n const t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !re(e[t - 1])) return e[t - 1];\n let r = e[0] || {};\n for (let n = 1; n < t; n++) r = Y(r, e[n] || {}, { arrayMerge: (o, i) => [...i] });\n return r;\n}, nextTick: (e) => {\n typeof window < "u" && typeof window.requestAnimationFrame == "function" ? window.requestAnimationFrame(() => {\n e();\n }) : (typeof setImmediate == "function" ? setImmediate : setTimeout)(() => {\n e();\n });\n}, openFileDialog: (e = "*.*") => new Promise((t, r) => {\n if (!Ve) return void r("Unable to open dialog with no dom.");\n const n = document.createElement("input");\n n.type = "file", n.accept = e;\n let o = null, i = !1;\n globalThis.addEventListener?.("focus", () => {\n setTimeout(() => {\n o || i || (i = !0, t(null));\n }, 1e3);\n }, { once: !0, passive: !0 }), n.onchange = () => {\n if (o = n.files[0], o) {\n if (i) return void console.warn("File open detected after faux cancel.", o);\n t(o);\n }\n }, n.autofocus = !0, n.click();\n}), rafThrottle: (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, requestAnimationFrame(n));\n };\n}, removeEmptyProperties: lt, removeEqualValues: st, removeListenerAll: (e) => {\n if (!e) return [];\n for (let t = 0; t < e.length; t++) e[t] && e[t]();\n return [];\n}, requestTimeout: (e, t) => {\n const r = $e(), n = { id: requestAnimationFrame(function o() {\n $e() - r >= t ? e.call(null) : n.id = requestAnimationFrame(o);\n }) };\n return n;\n}, roundAccurately: (e, t = 0) => {\n if (e == null || !isFinite(e)) return null;\n const r = 10 ** t;\n return Number(Math.round(e * r) / r);\n}, setToPath: (e, t, r) => {\n const n = t.split(".");\n let o = e;\n if (!o) throw new Error("Can not set path to a null path.");\n for (let i = 0; o && i < n.length - 1; i++) {\n const a = n[i];\n let l = o[a];\n if (l == null && (l = {}, o[a] = l), !re(l)) throw new Error("Can not set path to a non object path.");\n o = l;\n }\n if (typeof r != "number" && typeof r != "boolean" && typeof r != "string" && !re(r)) throw new Error(`Can not set path to ${r} that is not a a supported primitive.`);\n return o[n[n.length - 1]] = r, e;\n}, splitNumber: (e) => {\n let t = Math.abs(e);\n if (isNaN(t) || !isFinite(e)) return null;\n let r = 0 | t, n = t - r, o = 0, i = 0, a = 1;\n if (n > 5e-8) for (; i < 8 && Math.abs(o / a - n) > 5e-8; ) i++, a *= 10, o = Math.round(n * a);\n return { ip: Math.trunc(e), fp: o, ipLength: Math.ceil(Math.log10(r + 1)), fpLength: i };\n}, subtractRect: (e, t, r = !1) => {\n if (!t) return [e];\n if (!Ke(e, t)) return [];\n const n = [];\n let o = e;\n const i = () => {\n t.top > o.top && t.top < o.bottom && (n.push({ ...o, bottom: t.top }), o = { ...o, top: t.top });\n }, a = () => {\n t.bottom > o.top && t.bottom < o.bottom && (n.push({ ...o, top: t.bottom }), o = { ...o, bottom: t.bottom });\n }, l = () => {\n t.right > o.left && t.right < o.right && (n.push({ ...o, left: t.right }), o = { ...o, right: t.right });\n }, u = () => {\n t.left > o.left && t.left < o.right && (n.push({ ...o, right: t.left }), o = { ...o, left: t.left });\n };\n return r ? (u(), l(), i(), a()) : (i(), a(), l(), u()), n;\n}, textToKey: (e) => e.replace(/[^a-zA-Z0-9]/g, "").toLowerCase(), throttle: function(e, t) {\n let r = null;\n return (...n) => {\n const o = Date.now();\n (!r || o - r >= t) && (r = o, e(...n));\n };\n}, toSafeJSON: function e(t) {\n if (t === null || typeof t != "object") return t;\n if (typeof t.toJSON == "function") return t.toJSON();\n if (Array.isArray(t)) return t.map((n) => e(n));\n if (typeof t.toString == "function" && t.toString !== Object.prototype.toString) return t.toString();\n const r = {};\n for (const n in t) t.hasOwnProperty(n) && (r[n] = e(t[n]));\n return r;\n}, transpose: (e) => {\n if (!e) return e;\n const 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++) for (let i = 0; i < r; i++) n[i][o] = e[o][i];\n return n;\n}, uuidV4: de, validEnumValue: (e, t) => {\n if (!Object.values(e).includes(t)) throw new Error(`Invalid type: ${t ?? "null"}. Must be one of: ${Object.values(t).join(", ")}.`);\n}, whenFocus: async (e, t = !1) => new Promise((r) => {\n qe(e, t) ? r(!0) : e.addEventListener("focusin", () => {\n r(!0);\n }, { once: !0 }), e.focus();\n}) }, Symbol.toStringTag, { value: "Module" }));\nObject.freeze(Object.defineProperty({ __proto__: null, MESSAGE_ERROR_INVALID_ARG: (e) => `Invalid argument: \'${e}\'.` }, Symbol.toStringTag, { value: "Module" }));\nconst ut = (e) => {\n const t = new Uint8Array(e), r = t.byteLength;\n let n = "";\n for (let o = 0; o < r; o++) n += String.fromCharCode(t[o]);\n if (typeof window < "u" && typeof globalThis.btoa == "function") return globalThis.btoa(n);\n if (typeof Buffer < "u") return Buffer.from(n, "binary").toString("base64");\n throw new Error("Unsupported environment");\n}, Ce = (e) => new Promise((t, r) => {\n if (e) if (typeof FileReader < "u") {\n const n = new FileReader();\n n.onload = () => {\n t(n.result);\n }, n.onerror = () => {\n r(n.error);\n }, n.readAsText(e);\n } else if (typeof Buffer < "u") {\n const n = (o) => Buffer.from(o).toString("utf-8");\n e.arrayBuffer().then((o) => {\n t(n(o));\n }).catch((o) => {\n r(o);\n });\n } else r(new Error("Unsupported environment"));\n else t("");\n});\nObject.freeze(Object.defineProperty({ __proto__: null, DEFAULT_MIME_TYPE: "*/*", arrayBufferToBase64: ut, base64ToArrayBuffer: (e) => {\n const t = typeof window < "u" && typeof globalThis.atob == "function" ? globalThis.atob(e) : Buffer.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}, blobToString: Ce }, Symbol.toStringTag, { value: "Module" }));\nconst dt = "data:image/png;base64,", ft = "Unable to resolve image.", Ge = (e) => new Promise(async (t, r) => {\n let n = null;\n try {\n n = new Image(), n.src = e, n.addEventListener("load", function() {\n t({ width: n.naturalWidth, height: n.naturalHeight });\n }, { once: !0 }), n.addEventListener("error", function() {\n URL.revokeObjectURL(e), r("Invalid Image");\n }, { once: !0 }), await n.decode("sync");\n } catch {\n n?.src && URL.revokeObjectURL(n.src);\n }\n n || r(ft);\n}), we = "image/svg+xml";\nObject.freeze(Object.defineProperty({ __proto__: null, DATA_URL_PNG_PREFIX: dt, getImageDataUrl: (e, t = 1) => new Promise(async (r, n) => {\n let o = null;\n try {\n o = new Image(), o.src = e, o.addEventListener("load", function() {\n try {\n const i = document.createElement("canvas");\n i.width = o.naturalWidth, i.height = o.naturalHeight, i.getContext("2d").drawImage(o, 0, 0);\n const a = i.toDataURL("image/png", t);\n r({ elemImg: o, dataUrl: a });\n } catch (i) {\n URL.revokeObjectURL(e), n(i);\n }\n }, { once: !0 }), o.addEventListener("error", function() {\n URL.revokeObjectURL(e), n("Invalid Image");\n }, { once: !0 }), await o.decode("sync");\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || n(ft);\n}), loadImageDetails: async (e, t = null) => {\n let r = null;\n const n = async () => {\n try {\n const i = t ?? "image/*", a = URL.createObjectURL(new Blob([e], { type: i })), l = await Ge(a);\n r = { mimeType: i, naturalDimensions: l, asUrl: a };\n } catch {\n }\n }, o = async () => {\n try {\n const i = new TextDecoder().decode(e), a = URL.createObjectURL(new Blob([i], { type: we })), l = await Ge(a);\n r = { mimeType: t ?? we, naturalDimensions: l, asUrl: a, asSVGText: i };\n } catch {\n }\n };\n if (t === we ? await o() : t.startsWith("image/") ? await n() : (await n(), r || await o()), !r) throw new Error("Failed to load image");\n return r;\n} }, Symbol.toStringTag, { value: "Module" }));\nvar We, Ye;\n(Ye = We || (We = {})).resolveTypedUpdates = (e, t, r, n) => {\n if (e === null) return e;\n if (e === void 0) return n;\n let o = e;\n if (t?.shorthand) {\n const u = t?.shorthand(e, r);\n u !== void 0 && (o = u);\n }\n if (o !== null && t?.getSubType) {\n const u = t.getSubType(o);\n u && (t = u);\n }\n const i = t?.properties, a = t?.arrayType ?? !1;\n let l = o;\n if (t && t.merge && l && n) l = t.merge(l, n, r);\n else if (!a && i) {\n const u = Object.keys({ ...o, ...n });\n l = null;\n for (let f = 0; f < u.length; f++) {\n const h = u[f];\n let g, p = o[h];\n if (p !== void 0) {\n const y = i[h];\n g = y ? (0, Ye.resolveTypedUpdates)(p, y, r, n?.[h]) : p;\n } else g = n?.[h];\n g != null && (l = l ?? {}, l[h] = g);\n }\n }\n return l;\n};\nconst Je = `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.`, ye = `You do not have permissions to access the clipboard.\nAll copy and paste operations will be limited to the browser tab.`, pt = { Safari: `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.`, Perms: ye, PermsWrite: oe() === k.Safari ? Je : ye, PermsRead: oe() === k.Safari ? Je : ye }, ge = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.("focus", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), be = async (e, t, r) => {\n if (oe() === k.Safari) return await r(new Error(pt.Safari));\n try {\n const n = async (a) => {\n try {\n return await a();\n } catch (l) {\n if (l.message?.includes("Document is not focused")) return !1;\n throw l;\n }\n }, o = await globalThis?.navigator?.permissions?.query({ name: e, allowWithoutGesture: !0, allowWithoutSanitization: !0 });\n let i = !1;\n if (o.state === "prompt" && (i = await n(t)), i || o.state !== "granted" || (i = await t()), !i) return await r(new 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}, mt = async (e) => {\n try {\n return await e.read({ unsanitized: [S.html] });\n } catch {\n }\n return await e.read();\n}, Bt = async (e, t) => {\n if (!e) return null;\n const r = await mt(e);\n let n = !1;\n for (let o = 0; !n && r && o < r.length; o++) if (n = r[o].types.includes(t), n)\n return await r[o].getType(t);\n return n ? void 0 : null;\n};\nif (!globalThis.ClipboardItem) {\n const e = (r, n) => new Blob([n], { type: r });\n class t {\n constructor(n, o) {\n this._items = {}, this._types = Object.keys(n);\n const i = {}, a = Object.keys(n);\n for (let l = 0; l < a.length; l++) {\n const u = a[l];\n let f = n[u];\n i[u] = typeof f == "string" ? e(u, f) : f;\n }\n this._items = i, this._presentationStyle = o?.presentationStyle ?? "unspecified";\n }\n get types() {\n return this._types;\n }\n getType(n) {\n return Promise.resolve(this._items[n]);\n }\n supports(n) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nconst ve = async (e, t = S.html) => new Promise(async (r, n) => {\n try {\n const o = await Bt(e, t);\n if (o) {\n const i = new FileReader();\n i.onload = () => {\n r(i.result);\n }, i.onerror = () => {\n r("");\n }, i.readAsText(o);\n } else r("");\n } catch (o) {\n n(o);\n }\n}), He = async (e, t = S.html) => {\n const r = await ve(e, t);\n if (!r) return null;\n let n = null;\n try {\n n = new DOMParser().parseFromString(r, S.html);\n } catch {\n console.warn("Can\'t parse html from clipboard.");\n }\n return n;\n}, $t = async (e) => {\n e && await e.writeText("");\n}, ie = "clipboard-uuid", Q = "web text/uuid", Xe = (e) => `<div style="display:none" ${ie}="${e}"/>`, zt = (e, t) => {\n let r = null;\n try {\n const n = new DOMParser().parseFromString(t, S.html);\n n.body.firstElementChild.setAttribute(ie, e), r = n.getElementsByTagName("body")[0].innerHTML;\n } catch (n) {\n console.warn("Can\'t embed uuid.", n);\n }\n return r;\n}, Ze = (e, t) => {\n if (!t || !e) return !1;\n try {\n const r = t.querySelectorAll(`[${ie}="${e}"]`);\n if (r && r.length === 1) return !0;\n if (t.querySelector("parsererror")) throw new Error("We are unable to parse node");\n return !1;\n } catch {\n return !1;\n }\n};\nclass Qe {\n constructor(t) {\n if (t?.nativeClipboard === void 0 || t?.nativeClipboard === !0) try {\n this._nativeClipboard = globalThis?.navigator.clipboard;\n } catch {\n t?.nativeClipboard === !0 && console.warn("NativeClipboard option set to true but no native clipboard available.");\n }\n else this._nativeClipboard = t?.nativeClipboard === !1 ? null : t?.nativeClipboard;\n this._disableCheckOnFocus = t?.disableCheckOnFocus ?? !1, this._init();\n }\n async _checkForChanges() {\n this._nativeClipboard && this._state && !this._disableCheckOnFocus && await be("clipboard-read", async () => {\n await ge();\n const t = await ve(this._nativeClipboard, Q);\n if (!this._state || t && t === this._state.uuid) return !0;\n const r = await He(this._nativeClipboard, S.html);\n return !this._state || (Ze(this._state.uuid, r) || this.clear(), !0);\n }, async (t) => {\n t?.message === "denied" || t.message?.includes("Document is not focused") || oe() === k.Safari || console.warn("Unable to detect clipboard changes: ", t);\n });\n }\n _init() {\n const t = this;\n this._listeners = /* @__PURE__ */ new Map(), this._listenersCapture = /* @__PURE__ */ new Map(), this._state = null, this._nativeClipboard && (this._onFocus = () => {\n t._checkForChanges();\n }, this._onBlur = () => {\n globalThis.addEventListener?.("focus", t._onFocus, { once: !0 });\n }, globalThis.addEventListener?.("blur", this._onBlur), this._nativeClipboard.addEventListener("clipboardchange", (r) => {\n t._checkForChanges();\n }));\n }\n async read() {\n if (!this._nativeClipboard) return this._state?.items ?? null;\n const t = this;\n return await be("clipboard-read", async () => {\n if (await ge(), this._state?.uuid) {\n const r = await ve(this._nativeClipboard, Q);\n if (r && r === t._state.uuid) return !0;\n const n = await He(this._nativeClipboard, S.html);\n if (Ze(t._state?.uuid, n)) return !0;\n }\n return t._state = { items: await mt(this._nativeClipboard), uuid: null, ref: null }, this.dispatchEvent(new Event("clipboardread")), !0;\n }, async (r) => {\n this.dispatchEvent(new Event("clipboarderrorread"));\n }), this._state?.items ?? [];\n }\n async write(t) {\n return this._write({ uuid: de(), items: t, ref: null });\n }\n async _write(t) {\n if (!this._nativeClipboard) return this._state = t, this.dispatchEvent(new Event("clipboardwrite")), this.dispatchEvent(new Event("clipboardchange")), null;\n const r = this, n = [], o = t.uuid;\n let i = t.items ?? [];\n const a = () => {\n r._state = { uuid: o, ref: t.ref, items: n }, r.dispatchEvent(new Event("clipboardwrite")), r.dispatchEvent(new Event("clipboardchange"));\n };\n await be("clipboard-write", async () => {\n await ge(), o && i.length === 0 && (i.push(new ClipboardItem({ [Q]: new Blob([o], { type: Q }) })), i.push(new ClipboardItem({ [S.html]: new Blob([Xe(o)], { type: S.html }) })));\n for (let l = 0; l < Math.min(1, i.length); l++) {\n const u = i[l];\n let f = u.types.indexOf(S.html), h = null;\n if (f !== -1) {\n const y = await u.getType(S.html);\n h = await Ce(y), h && (h = zt(o, h));\n }\n if (!h && u.types.includes(S.plain)) {\n const y = await u.getType(S.plain);\n if (y) {\n let T = null;\n typeof y == "string" ? (console.warn("text as string", y), T = y) : T = await Ce(y), T && (h = `<div ${ie}="${o}">${T}</div>`);\n }\n }\n if (!h && u.types.includes(S.png)) {\n const y = await u.getType(S.png), T = ut(await y.arrayBuffer());\n h = `<div ${ie}="${o}"><img src="${dt + T}"/></div>`;\n }\n !h && o && (h = Xe(o));\n const g = new Blob([h ?? ""], { type: S.html }), p = {};\n for (let y = 0; y < u.types.length; y++) {\n const T = u.types[y];\n p[T] = y === f ? g : u.getType(T);\n }\n h && f === -1 && (p[S.html] = g), o && (p[Q] = new Blob([o], { type: Q })), n.push(new ClipboardItem(p));\n }\n try {\n n && n.length !== 0 ? await this._nativeClipboard.write(n) : await $t(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(t) {\n if (!t) return void this.clear();\n let r = null;\n const n = {};\n try {\n const i = await t.toText?.() ?? null;\n i && (n[S.plain] = new Blob([i ?? ""], { type: S.plain }));\n } catch (i) {\n r = i;\n }\n try {\n const i = await t.toHtml?.() ?? null;\n i && (n[S.html] = new Blob([i], { type: S.html }));\n } catch (i) {\n r = i, console.warn("export to html", i);\n }\n try {\n const i = await t.toImage?.() ?? null;\n i && (n[S.png] = i);\n } catch (i) {\n r = i, console.warn("export to png", i);\n }\n const o = this._write({ uuid: de(), ref: t, items: Object.keys(n).length > 0 ? [new ClipboardItem(n)] : null });\n if (r) throw r;\n return o;\n }\n clear(t = !1) {\n this._state && (this._state = null, t && this._write({ uuid: null, ref: null, items: null }), 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 (t, r) => {\n const n = await this.read();\n let o = null;\n for (let a = 0; !o && n && a < n.length; a++) n[a].types.includes(S.plain) && (o = await n[a].getType(S.plain));\n if (!o) return void t("");\n const i = new FileReader();\n i.onload = () => {\n t(i.result);\n }, i.readAsText(o), i.onerror = (a) => {\n r(a);\n };\n });\n }\n async writeText(t) {\n const r = [new ClipboardItem({ [S.plain]: new Blob([t], { type: S.plain }) })];\n return this._write({ uuid: de(), items: r, ref: null });\n }\n addEventListener(t, r, n = {}) {\n const o = n?.capture ? this._listenersCapture : this._listeners;\n let i = o.get(t);\n i || (i = /* @__PURE__ */ new Map(), o.set(t, i)), i.set(r, typeof n == "boolean" ? {} : n);\n }\n dispatchEvent(t) {\n if (!t) return;\n const r = (n) => {\n const o = n.get(t.type);\n o && o.forEach((i, a) => {\n try {\n typeof a == "function" ? a(t) : a.handleEvent && a.handleEvent(t), i.once && o.delete(a);\n } catch (l) {\n console.warn(l);\n }\n });\n };\n return r(this._listenersCapture), r(this._listeners), !0;\n }\n removeEventListener(t, r, n) {\n const o = n?.capture ? this._listenersCapture : this._listeners, i = o.get(t);\n i && (i.delete(r), i.size === 0 && o.delete(t));\n }\n close() {\n globalThis.removeEventListener?.("focus", this._onFocus), globalThis.removeEventListener?.("blur", this._onBlur);\n }\n}\nvar Ee;\n(Ee = Qe || (Qe = {})).ErrorMessages = pt, Ee.Global = new Ee();\nconst Kt = "__SHEETXL";\nlet ee = null, le = null;\nasync function Vt() {\n if (ee)\n return ee;\n if (le) {\n if (await le, !ee)\n throw new Error("ESBuild initialization promise resolved, but instance is not available.");\n return ee;\n }\n let e, t;\n le = new Promise((r, n) => {\n e = r, t = n;\n });\n try {\n const { initialize: r } = await Promise.resolve().then(function() {\n return rr;\n });\n return ee = await r(), e(), ee;\n } catch (r) {\n throw console.error("Failed to import or initialize esbuild:", r), le = null, t(r), r;\n }\n}\nconst qt = {\n // ESBuild.TsconfigRaw =\n compilerOptions: {\n target: "esnext"\n }\n};\nasync function Gt(e, t, r = "/script.js", n = Kt) {\n try {\n const o = await Vt(), i = "@sheetxl/primitives", a = `\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 `, l = {\n // ESBuild.Plugin = {\n name: "sheetxl-esbuild-in-memory",\n setup(f) {\n const h = "sheetxl-" + (/* @__PURE__ */ new Date()).getTime();\n f.onResolve({ filter: new RegExp(`^(${r.replace("/", "\\\\/")}|${i})$`) }, (g) => ({\n path: g.path,\n namespace: h\n })), f.onResolve({ filter: /.*/ }, (g) => {\n if (g.namespace !== h)\n return console.warn(`esbuild: Treating import "${g.path}" as external.`), { path: g.path, external: !0 };\n }), f.onLoad({ filter: /.*/, namespace: h }, (g) => {\n let p;\n if (g.path === r)\n p = t;\n else if (g.path === i)\n p = a;\n else\n return {\n errors: [{ text: `Cannot load unknown path in ${h}: ${g.path}` }]\n };\n return {\n contents: p,\n loader: "ts"\n // leave this as \'ts\' so esbuild generates proper sourcemaps\n };\n });\n }\n }, u = await o.build({\n entryPoints: [r],\n // Use the virtual entry point\n bundle: !0,\n // IMPORTANT: Enable bundling\n write: !1,\n // IMPORTANT: Return result in memory\n format: "esm",\n // Output format\n plugins: [l],\n // TODO - later change to external and prepend when executing from ui\n sourcemap: "inline",\n // Generate separate source map string\n tsconfigRaw: qt,\n // Pass the mapped options\n minify: !0,\n // sourcemap: \'external\', // Generate separate source map string\n // Or use \'inline\' if you prefer data URLs embedded in the code\n // To suppress warnings about dynamic import() if esbuild complains:\n // supported: { \'dynamic-import\': true },\n platform: "neutral"\n // not really needed\n });\n if (u.outputFiles && u.outputFiles.length > 0)\n return u.outputFiles[0].text;\n throw u.errors && u.errors.length > 0 ? new Error(`esbuild bundling failed: ${u.errors.map((f) => f.text).join(`\n`)}`) : new Error("esbuild did not produce an output file.");\n } catch (o) {\n throw console.error("esbuild bundling process failed:", o), o;\n }\n}\nconst Wt = `\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`, Yt = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, Jt = async () => Yt, ht = /* @__PURE__ */ new Map([\n ["IReferenceRange", "r"],\n ["IRange", "l"]\n]), wt = /* @__PURE__ */ new Map([\n ["IWorkbook", "workbook"],\n ["ISheet", "sheet"],\n ["ICellRanges", "ranges"],\n ["ICellRange", "range"],\n ["IFormulaContext", "context"]\n]), _e = (e, t) => {\n Array.from(t.keys()).forEach((n) => {\n const o = t.get(n);\n t.set(`${e}.${n}`, o);\n });\n}, Ht = /* @__PURE__ */ new Map([\n ["Scalar", "*"],\n ["FormulaError.Known", W.Error],\n ["Date", "Date"],\n ["JSON", "JSON"]\n]), Xt = /* @__PURE__ */ new Map([\n // Repeating\n]), Oe = "SheetXL";\n_e(Oe, ht);\n_e(Oe, wt);\n_e(Oe, Xt);\nconst Zt = /* @__PURE__ */ new Map([\n ["Promise", () => ({ async: !0 })],\n // [\'PromiseLike\', (): Partial<IFunction.ReturnTypeJSON> => {\n // return { async: true };\n // }],\n ["Observable", () => ({ stream: !0 })]\n]);\nlet se = null;\nasync function Qt() {\n if (se)\n return se;\n try {\n return await (await Promise.resolve().then(function() {\n return or;\n })).initialize();\n } catch (e) {\n throw se = null, e;\n } finally {\n se = null;\n }\n}\nasync function er(e) {\n const t = e?.source ?? null;\n if (!t) return null;\n const r = (e.disableBundle || e.declarationsOnly) ?? !1, n = [\n Jt(),\n //import(\'typescript\'), // when bundled, but node check causes issues. We could bundle replace isNode but felt hacky\n Qt()\n ], o = await Promise.all(n), i = o[0], a = o[1];\n let l = "", u = null;\n const f = [], h = {\n allowJs: !0,\n declaration: !1,\n sourceMap: !1,\n // was true but now bundler will do this\n inlineSourceMap: !1,\n inlineSources: !1,\n isolatedModules: !0,\n preserveConstEnums: !1,\n // types: [\'WebWorker\'],\n module: 99,\n //"esNext",\n noResolve: !0,\n emitDeclarationOnly: !1,\n target: a.ScriptTarget.ES2020\n // lib: [\'webworker\', \'es2020\', \'esnext.asynciterable\'], // Use the webworker lib instead of dom\n }, g = "script", p = `${g}.ts`, y = "lib.d.ts", T = "global.d.ts", A = {\n [p]: t,\n [y]: Wt,\n [T]: i\n }, D = {\n getSourceFile: (s, w, L, P) => a.createSourceFile(s, A[s], a.ScriptTarget.Latest, !0),\n fileExists: (s) => A[s] !== void 0,\n readFile: (s) => A[s],\n writeFile: (s, w) => {\n A[s] = w;\n },\n // not used\n getCurrentDirectory: () => "./",\n getCanonicalFileName: (s) => s,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (s) => y,\n getNewLine: () => `\n`\n }, U = a.createProgram([p, T], h, D), I = U.getTypeChecker(), J = U.getSourceFile(p), E = U.emit();\n E.diagnostics.length > 0 && console.warn(E.diagnostics), l = A[`${g}.js`];\n const c = (s, w, L, P) => {\n if (!s) {\n $(s, new Error(`Type is not defined for \'${w?.name ?? "return"}\'.`));\n return;\n }\n if (s.kind === a.SyntaxKind.NumberKeyword)\n w.scalar = W.Number;\n else if (s.kind === a.SyntaxKind.StringKeyword)\n w.scalar = W.String;\n else if (s.kind === a.SyntaxKind.BooleanKeyword)\n w.scalar = W.Boolean;\n else if (s.kind === a.SyntaxKind.UndefinedKeyword || s.kind === a.SyntaxKind.NullKeyword || s.kind === a.SyntaxKind.VoidKeyword) {\n if (P) {\n $(s, new Error(`\'undefined\' is not a valid type for input: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w.scalar = W.Null;\n } else if (s.kind === a.SyntaxKind.BigIntKeyword)\n w.scalar = W.Number;\n else if (s.kind === a.SyntaxKind.AnyKeyword)\n w.scalar = W.Null;\n else if (s.kind === a.SyntaxKind.ArrayType) {\n const M = s.elementType;\n if (!M) {\n $(s, new Error(`\'Array\' must be typed: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w.arrayDepth = (w.arrayDepth ?? 0) + 1, c(M, w, L, P);\n } else if (s.kind !== a.SyntaxKind.TupleType) {\n if (s.kind === a.SyntaxKind.TypeReference) {\n const M = s.typeName?.getText?.() ?? null, K = ht.get(M);\n let V = !1;\n K && (w.range = K, V = !0);\n const q = Ht.get(M);\n if (q && (w.scalar = q), q !== void 0 && (V = !0), P) {\n const R = wt.get(M);\n if (R)\n return R;\n } else {\n const R = Zt.get(M);\n if (R) {\n const b = { ...w, ...R() };\n let N = 0;\n if (b.async && N++, b.stream && N++, N > 1) {\n $(s, new Error(`\'${M}\' cannot have multiple modifiers: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w = b, V = !0;\n }\n }\n if (!V) {\n $("node", new Error(`\'${M}\' is not a valid type: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n const H = s.typeArguments;\n if (H) {\n if (H.length !== 1) {\n $(s, new Error(`\'${M}\' must be typed with exactly 1 type: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n c(H[0], w, L, P);\n }\n }\n }\n }, m = (s) => (a.getCombinedModifierFlags(s) & a.ModifierFlags.Export) !== 0, fe = (s) => (a.getCombinedModifierFlags(s) & a.ModifierFlags.Default) !== 0, B = [], $ = (s, w) => {\n B.push(w);\n };\n if (a.forEachChild(J, (s) => {\n if (m(s) && a.isFunctionDeclaration(s)) {\n const w = {}, L = {\n parameters: {}\n }, P = s?.name?.getText();\n try {\n w.name = P;\n const K = I.getSymbolAtLocation(s.name).getDocumentationComment(I);\n if (K && K.length > 0 && K[0].text) {\n let R = K[0].text;\n R = R.replace(/[\\r\\n]+/g, "\\\\n").trim(), L.summary = R;\n }\n const V = {};\n c(s.type, V, w, !1), w.returnType = V;\n const q = {};\n fe(s) && (q.default = !0, u = P), Object.keys(q).length > 0 && (w.behavior = q), w.parameters = [];\n const H = /* @__PURE__ */ new Map();\n for (let R = 0; R < s.parameters.length; R++) {\n const b = s.parameters[R], N = {};\n N.name = b.name?.getText();\n const X = c(b.type, N, w, !0);\n if (X) {\n if (w.parameters.length !== 0) {\n const F = s?.parent?.name?.getText();\n $(s, new Error(`\'${w.name}\' contexts must be the first parameter: \'${F}\'.`));\n return;\n }\n w.context = X;\n continue;\n }\n const z = !((b.initializer === void 0 || b.initializer === null) && (b.questionToken === void 0 || b.questionToken === null));\n let C;\n if (z && (N.optional = !0, b.initializer))\n try {\n b.initializer.kind === a.SyntaxKind.StringLiteral ? C = b.initializer.text : b.initializer.kind === a.SyntaxKind.NumericLiteral ? C = parseFloat(b.initializer.text) : b.initializer.kind === a.SyntaxKind.TrueKeyword || b.initializer.kind === a.SyntaxKind.FalseKeyword ? C = b.initializer.kind === a.SyntaxKind.TrueKeyword : b.initializer.kind === a.SyntaxKind.NullKeyword ? C = null : b.initializer.kind === a.SyntaxKind.ObjectLiteralExpression || b.initializer.kind === a.SyntaxKind.ArrayLiteralExpression ? C = b.initializer.getText() : C = b.initializer.getText?.();\n } catch (O) {\n console.warn(`Couldn\'t extract default value for parameter \'${N.name}\'`, O);\n }\n b.dotDotDotToken && (N.rest = !0), w.parameters.push(N);\n const x = { description: "" };\n L.parameters[N.name] = x;\n const G = I.getSymbolAtLocation(b.name).getDocumentationComment(I);\n G && G.length > 0 && G[0].text && (x.description = G[0].text), C !== void 0 && (x.defaultValue = C), H.set(N.name, N);\n }\n if (s.jsDoc && s.jsDoc.length > 0) {\n const R = s.jsDoc;\n for (let b = 0; b < R.length; b++) {\n const N = R[b]?.tags;\n if (N)\n for (let X = 0; X < N.length; X++) {\n const z = N[X];\n let C = z?.tagName?.text;\n if (!C) continue;\n C = C.toLowerCase();\n let x = z.comment;\n const G = C === "hidden";\n if (!(typeof x != "string" && !G) && (typeof x == "string" && (x = x.replace(/[\\r\\n]+/g, "\\\\n").trim()), !(!G && x && (x = x.split(/\\\\n/)[0], !x || x.length === 0)))) {\n if (x && typeof x == "string") {\n const O = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let F, Z = x, te = [];\n for (; (F = O.exec(x)) !== null; ) {\n const [pe, me, gt, Ne] = F, bt = [gt.trim()];\n Ne && bt.push(Ne.trim());\n }\n x = Z, te.length > 0 && C === "see" && (L.links || (L.links = []), L.links.push(...te));\n }\n if (C === "name") {\n const O = x;\n O !== P && (L.name = O);\n } else if (C === "description") {\n const O = x;\n } else if (C === "summary") {\n const O = x;\n O && (L.summary = O);\n } else if (C === "param") {\n const O = z.name?.text, F = H.get(O);\n if (!F) {\n B.push(new Error(`Parameter \'${O}\' not found in function \'${P}\'.`));\n continue;\n }\n if (z.typeExpression && z.typeExpression.type)\n try {\n const Z = z.typeExpression.type;\n if (Z.kind === a.SyntaxKind.UnionType) {\n const te = [];\n F.enums = te, Z.types.forEach((pe) => {\n if (pe.kind === a.SyntaxKind.LiteralType) {\n const me = pe.literal.text;\n me && te.push(me);\n }\n });\n }\n } catch (Z) {\n console.warn("Error parsing JSDoc type expression:", Z);\n }\n } else if (C === "returns" || C === "return")\n w.returnType.description = x;\n else if (C === "category")\n L.category = x;\n else if (C === "hidden") {\n let O = !0;\n const F = x?.toLowerCase();\n F === "false" ? O = !1 : F !== "true" && (O = x), O !== !1 && (L.hidden = O ?? !0);\n }\n }\n }\n }\n }\n Object.keys(w.returnType).length === 0 && delete w.returnType, f.push([w, L]);\n } catch (M) {\n $(s, new Error(`\'${P}\': ${M.message}`));\n }\n }\n }), B.length > 0)\n throw console.warn(B), new Error("There were compilation errors.", { cause: B });\n if (f.length === 0)\n throw new Error("No exported functions.");\n const yt = `${Ut.uuidV4()}-script`;\n try {\n !r && B.length === 0 && (l = await Gt(a, l, g));\n } catch {\n console.warn("Error bundling script");\n }\n const Ie = {\n functions: f,\n commitId: yt,\n source: t,\n name: "Script",\n language: "typescript",\n // default\n compiled: l\n };\n return u && (Ie.autoRun = u), Ie;\n}\nself.addEventListener("message", async (e) => {\n const { id: t, params: r } = e.data;\n try {\n const n = await er(r);\n self.postMessage({ id: t, result: n, error: null });\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});\nlet ce = null;\nasync function tr() {\n return ce || (ce = 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 // Provide the specific WASM URL\n worker: !1\n // Keep processing on the current thread\n }), e(a);\n } catch (r) {\n console.error("Error initializing esbuild:", r), t(r);\n }\n }), ce);\n}\nvar rr = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: tr\n});\nlet ue = null;\nasync function nr() {\n return ue || (ue = new Promise(async (e, t) => {\n let r = null;\n try {\n r = await import("https://esm.sh/typescript@5.7.2");\n } catch (n) {\n console.error("Error initializing Browser TypeScript module:", n);\n }\n r || console.log("use script fallback"), e(r);\n }), ue);\n}\nvar or = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: nr\n});\n', r = typeof self < "u" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", t], { type: "text/javascript;charset=utf-8" });
50
- function o(n2) {
51
- let e2;
52
- try {
53
- if (e2 = r && (self.URL || self.webkitURL).createObjectURL(r), !e2) throw "";
54
- const t2 = new Worker(e2, { type: "module", name: n2?.name });
55
- return t2.addEventListener("error", () => {
56
- (self.URL || self.webkitURL).revokeObjectURL(e2);
57
- }), t2;
58
- } catch {
59
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(t), { type: "module", name: n2?.name });
60
- }
61
- }
62
- async function i() {
63
- if (typeof process < "u" && process.versions?.node && typeof Worker > "u") return await a();
64
- if (typeof Worker < "u") {
65
- const e2 = new n(() => new o());
66
- try {
67
- return await e2.start(), e2;
68
- } catch (n2) {
69
- console.error("Failed to start TypescriptCompiler worker reverting to fallback:", n2);
70
- }
71
- }
72
- return await a();
73
- }
74
- const a = async () => {
75
- const { compileModule: n2 } = await import("./B2GPpiwGDiHZ4Mnx.mjs"), t2 = new e((e2) => n2(e2));
76
- return await t2.start(), t2;
77
- };
78
- export {
79
- i as createCompilerWorker
80
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { DELTA: { s: "Tests whether two numbers are equal", p: { number1: { d: "is the first number" }, number2: { d: "is the second number", v: 0 } } }, GESTEP: { s: "Tests whether a number is greater than a threshold value", p: { number: { d: "is the value to test against step" }, step: { d: "is the threshold value", v: 0 } } } };
8
- export {
9
- e as default
10
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.10
3
- *
4
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- const e = { AND: { s: "Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE", p: { logical: { d: "logical1,logical2,... are 1 to 255 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references" } } }, BYCOL: { s: "Applies a LAMBDA function to each column and returns an array of the results.", p: { array: { d: "is an array to be separated by column" }, fn: { d: "is a LAMBDA that is called to scan the array. The LAMBDA takes two parameters, accumulator and value." } }, h: "Unimplemented" }, BYROW: { s: "Applies a LAMBDA function to each row and returns an array of the results.", p: { array: { d: "is an array to be separated by column" }, fn: { d: "is a LAMBDA that is called to scan the array. The LAMBDA takes two parameters, accumulator and value." } }, h: "Unimplemented" }, FALSE: { s: "Returns the logical value FALSE", p: {} }, IF: { s: "Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE", p: { logicalTest: { d: "is any value or expression that can be evaluated to TRUE or FALSE" }, valueIfTrue: { d: "is the value that is returned if Logical_test is TRUE. If omitted, TRUE is returned. You can nest up to seven IF functions" }, valueIfFalse: { d: "is the value that is returned if Logical_test is FALSE. If omitted, FALSE is returned" } } }, IFERROR: { s: "Returns value_if_error if expression is an error and the value of the expression itself otherwise", p: { value: { d: "is any value or expression or reference" }, valueIfError: { d: "is any value or expression or reference" } } }, IFNA: { s: "Returns the value you specify if the expression resolves to #N/A, otherwise returns the result of the expression", p: { value: { d: "is any value or expression or reference" }, valueIfError: { d: "is any value or expression or reference" } } }, IFS: { s: "Checks whether one or more conditions are met and returns a value corresponding to the first TRUE condition", p: { logicalTest: { d: "logical_test1,logical_test2,... is any value or expression that can be evaluated to TRUE or FALSE" }, logicalTrue: { d: "value_if_true1,value_if_true2,... is the value returned if Logical_test is TRUE" }, rest: {} } }, LAMDA: { s: "Creates a function value with can be called within formulas.", p: { parameterOrCalculation: { d: "a parameter or a calculation that returns a value. If a parameter, it must be the last argument." } }, h: "Unimplemented" }, LET: { s: "Assigns calculation results to names. Useful for storing intermediate calculations and values by defining names inside a formula. These names only apply within the scope of the LET function.", p: { name: { d: "name1,name2,... the name, or a calculation which can make use of all names within the LET. Names must start with a letter, cannot be the output of a formula, or conflict with range syntax." }, nameOrValue: { d: "name_value1,name_value2,... the value associated with the name." }, calculationOrName: {}, rest: {} }, h: "Unimplemented" }, MAKEARRAY: { s: "Returns a calculated array of a specified row and column size, by applying a LAMBDA function.", p: { rows: { d: "is the number of rows in the array. Must be greater than zero." }, columns: { d: "is the number of columns in the array. Must be greater than zero." }, fn: { d: "is a LAMBDA that is called to create the array. The LAMBDA takes two parameters, row index and column index." } }, h: "Unimplemented" }, MAP: { s: "Returns an array formed by 'mapping' each value in the array(s) to a new value by applying a lambda to create a new value.", p: { array: { d: "is an array to be mapped" }, lamdaOrArray: { d: "lambda_or_array1,lambda_or_array2,... is a LAMBDA which must be the last argument and must have a parameter for each array passed, or another array to be mapped" } }, h: "Unimplemented" }, NOT: { s: "Changes FALSE to TRUE, or TRUE to FALSE", p: { logical: { d: "is a value or expression that can be evaluated to TRUE or FALSE" } } }, OR: { s: "Checks whether any of the arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE", p: { logical: { d: "logical1,logical2,... are 1 to 255 conditions that you want to test that can be either TRUE or FALSE" } } }, REDUCE: { s: "Reduces an array to an accumulated value by applying a LAMBDA function to each value and returning the total value in the accumulator.", p: { initialValue: { d: "is the starting value for the accumulator" }, array: { d: "is an array to be reduced" }, fn: { d: "is a LAMBDA that is called to reduce the array. The LAMBDA takes two parameters, accumulator and value." } }, h: "Unimplemented" }, SCAN: { s: "Scans an array by applying a LAMBDA function to each value and returns an array that has each intermediate value", p: { initialValue: { d: "is the starting value for the accumulator" }, array: { d: "is an array to be reduced" }, fn: { d: "is a LAMBDA that is called to reduce the array. The LAMBDA takes two parameters, accumulator and value." } }, h: "Unimplemented" }, SWITCH: { s: "Evaluates an expression against a list of values and returns the result corresponding to the first matching value. If there is no match, an optional default value is returned", p: { expression: {}, value: { d: "is an expression to be evaluated" }, results: { d: "result1,result2,... is a result to be returned if the corresponding value matches expression" } }, h: "Unimplemented" }, TRUE: { s: "Returns the logical value TRUE", p: {} }, XOR: { s: "Returns a logical 'Exclusive Or' of all arguments", p: { logical: { d: "logical1,logical2,... are 1 to 254 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references" } } } };
8
- export {
9
- e as default
10
- };