@sheetxl/sdk 0.4.9 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/browser/cjs/1aBi7EjSv7rlHImN.cjs +7 -0
  2. package/browser/cjs/2U_vaFrfcRohWzeU.cjs +7 -0
  3. package/browser/cjs/2nOrVMTAGGx_9TGL.cjs +7 -0
  4. package/browser/cjs/36TOhwWf_rpUol3H.cjs +7 -0
  5. package/browser/cjs/5zykq8Nm9_DGD2DJ.cjs +7 -0
  6. package/browser/cjs/7sNFPxy75NuqCDQh.cjs +7 -0
  7. package/browser/cjs/B73Zu8_s9vFWOh_O.cjs +7 -0
  8. package/browser/cjs/BAsFktGxZpUGmZLe.cjs +7 -0
  9. package/browser/cjs/BEsz-1T9Bb9AaMYL.cjs +7 -0
  10. package/browser/cjs/B_NhkERIkAJotIbp.cjs +7 -0
  11. package/browser/cjs/BdTk8Nhw8G_OzMbe.cjs +7 -0
  12. package/browser/cjs/Bo-zjba28_CWMlTu.cjs +7 -0
  13. package/browser/cjs/C06jNASkAfV7kAJt.cjs +7 -0
  14. package/browser/cjs/C9wOzvC_v6DonctC.cjs +7 -0
  15. package/browser/cjs/CMCnH7IuCm_auikF.cjs +7 -0
  16. package/browser/cjs/CVXGzVLWLx2CJQm9.cjs +13 -0
  17. package/browser/cjs/CaFJIY4BbuoM7WDD.cjs +7 -0
  18. package/{node/esm/CT933Kus8lsY5BJ2.mjs → browser/cjs/CcEyzUYgzJ50PUJe.cjs} +2 -5
  19. package/browser/cjs/Ch3tbUYQx16tKF7k.cjs +7 -0
  20. package/browser/cjs/Cv7d06asyk54h4qg.cjs +7 -0
  21. package/browser/cjs/DDRgvBqROJxESdD7.cjs +7 -0
  22. package/browser/cjs/DHpCAbHLYqvLP0Z6.cjs +7 -0
  23. package/browser/cjs/DNv6ybWP5Fldgc2s.cjs +7 -0
  24. package/browser/cjs/Dl3IO1DS4B5jgpKI.cjs +7 -0
  25. package/browser/cjs/DtBxSbHruNTMTsh-.cjs +10 -0
  26. package/browser/cjs/EU56rWjRMrkea9af.cjs +7 -0
  27. package/browser/cjs/Yi2_Rw5GDVzd_VxU.cjs +7 -0
  28. package/browser/cjs/ZJKVquWhB5WR-iPJ.cjs +7 -0
  29. package/browser/cjs/ZcKbNkAX98aqbRl3.cjs +7 -0
  30. package/browser/cjs/index.cjs +4 -3
  31. package/browser/cjs/kyw6u7fpNVXpqgsI.cjs +7 -0
  32. package/browser/cjs/nQY-7MdNrbTu3EmK.cjs +7 -0
  33. package/browser/cjs/trblZTDJ1nAz0rWR.cjs +7 -0
  34. package/browser/cjs/uyHKBD07R0GGZXep.cjs +10 -0
  35. package/browser/esm/1RkwhM87R80gyTMd.mjs +7 -0
  36. package/browser/esm/5w39mZuW-sWnmmdV.mjs +7 -0
  37. package/browser/esm/A8C5de6v1CBMgJZq.mjs +7 -0
  38. package/browser/esm/B9JgD2n0XcFJj3bo.mjs +7 -0
  39. package/browser/esm/BEs22-ynP5XGO3w2.mjs +7 -0
  40. package/browser/esm/BHc7eG4nZizeMBb5.mjs +7 -0
  41. package/browser/esm/BO0ncqgpx-62w_oX.mjs +7 -0
  42. package/browser/esm/BQCIUvZDEabV77HK.mjs +7 -0
  43. package/browser/esm/BVi-ZLSVMKE-zvx4.mjs +7 -0
  44. package/browser/esm/BsDRByzxyMQ1n9k6.mjs +7 -0
  45. package/browser/esm/BuUARF4geX1QlFaV.mjs +7 -0
  46. package/browser/esm/Bv47rNz3qnYylQjD.mjs +7 -0
  47. package/browser/esm/C-CL0OoNkb1zC70z.mjs +7 -0
  48. package/browser/esm/CK55N2ZgYHqyYvC2.mjs +7 -0
  49. package/browser/esm/{leTtDbQ6871lFfJe.mjs → CM_TdYA35a4ZBdwx.mjs} +2 -7
  50. package/browser/esm/COIpRrbH0PIAxGAv.mjs +7 -0
  51. package/browser/esm/CV82qaLuZfxcBBSy.mjs +10 -0
  52. package/browser/esm/CW0tmrVd5h3U4RZa.mjs +7 -0
  53. package/browser/esm/ChEVz9V1woVRX6WL.mjs +7 -0
  54. package/browser/esm/CuVRE_tWXcHiZiqD.mjs +7 -0
  55. package/browser/esm/DCgtfzoZVReua9he.mjs +7 -0
  56. package/browser/esm/DS7nkzMuzXOAIPF2.mjs +7 -0
  57. package/browser/esm/DTfK5ukJi2A2cG4a.mjs +13 -0
  58. package/browser/esm/Dk8xANVVmSj4hMfy.mjs +7 -0
  59. package/browser/esm/DkBcYI5GMfGWjMpw.mjs +7 -0
  60. package/browser/esm/DoolQNF8KdKfxJym.mjs +7 -0
  61. package/browser/esm/Du5u3LhdTaqIps_D.mjs +7 -0
  62. package/browser/esm/DyvAZkeumXN8GHi4.mjs +7 -0
  63. package/browser/esm/PVTl6mvmxvLJIzh9.mjs +7 -0
  64. package/browser/esm/Y5czqevaHtgUcl4L.mjs +7 -0
  65. package/browser/esm/iKCrpPPbOnKlkUDb.mjs +7 -0
  66. package/browser/esm/index.mjs +2 -84
  67. package/browser/esm/lfu13YaazVLqtmeU.mjs +10 -0
  68. package/browser/esm/s7QvhDE2kJkgBcZ8.mjs +7 -0
  69. package/licenses/dependencies.txt +3 -3
  70. package/node/esm/3LAM4nbl-SF93GnL.mjs +80 -0
  71. package/{browser/esm/6U_gCZNSSMBtVpQI.mjs → node/esm/BMXFtr-jXZGBZS1-.mjs} +1 -1
  72. package/node/esm/{CYI5_V7h9SYP9uuu.mjs → BmYqJNOwK3UJW3Xe.mjs} +1 -1
  73. package/node/esm/{DxQdDzIhBW98FzK0.mjs → C9U5rfU-8XoDc_V8.mjs} +4 -4
  74. package/node/esm/{BMwuCJEUqdaa7U-p.mjs → CFWQqFvDJMGXn8Qq.mjs} +1 -1
  75. package/node/esm/{De2OxC60SZUNAEyp.mjs → CFsZ2V-cxUHf5_Sy.mjs} +1 -1
  76. package/node/esm/{BIsxN-sskhnDr5fG.mjs → COCgGLfPgG-NG4Ei.mjs} +1 -1
  77. package/node/esm/{Dfr8q3AEbG7QZ6Xr.mjs → CW0oFlrKt5Uj6nuK.mjs} +1 -1
  78. package/node/esm/{CswjcUAc3OQ1SAwa.mjs → CXrQQnxTwsX0wNvN.mjs} +2 -2
  79. package/node/esm/{-vEyF-b1iAJfL3xp.mjs → CfeR1dXEw7Hep352.mjs} +1 -1
  80. package/node/esm/{Cu9r1uru0-RQmPlz.mjs → Ck1Jwm7rnsCLVeO1.mjs} +1 -1
  81. package/node/esm/{V08nP8uFHLrde5Md.mjs → Cn1RL1hYSYnF25uZ.mjs} +1 -1
  82. package/{browser/esm/P_0pzZ_mRTUIQOo8.mjs → node/esm/CnhQwEj214g59Jgw.mjs} +1 -1
  83. package/{browser/esm/CatWZ5LT2Nm4rT4U.mjs → node/esm/Cuk6l5jbAp5qG99L.mjs} +1 -1
  84. package/node/esm/{DYiuMNxXQxzsyogd.mjs → D8Hpg5A5WcmsFCPu.mjs} +1 -1
  85. package/node/esm/{bLL4P-mQqtHnzf3p.mjs → D90o-RTQ6VATF0Rk.mjs} +1 -1
  86. package/{browser/esm/CT933Kus8lsY5BJ2.mjs → node/esm/DLdBwr1RlyAhJCV0.mjs} +1 -1
  87. package/{browser/esm/225JOcHgUUs1EIBP.mjs → node/esm/DRM7eoEZII5c6Rbr.mjs} +1 -1
  88. package/{browser/esm/SwZDnMDw8b9gb6VD.mjs → node/esm/DSPiPnJGbhnNKLaY.mjs} +1 -1
  89. package/node/esm/{LpwVK3fzNuCZJlGb.mjs → DUlT61b-CgdPCdu7.mjs} +1 -1
  90. package/{browser/esm/BEWDCb-GzXXALTyM.mjs → node/esm/DWlgrg4IlFnKTR6y.mjs} +1 -1
  91. package/node/esm/{CydkHy4FDohjJzxv.mjs → DbLo1yZBy3dKaDrf.mjs} +1 -1
  92. package/node/esm/{Br12zSs0kOLavLkw.mjs → DpmEPBmhU3gneOpb.mjs} +1 -1
  93. package/{browser/esm/_N05nCCXsyDthwPS.mjs → node/esm/JIc401vM9srbtF9d.mjs} +1 -1
  94. package/node/esm/{Dtn71I8yWx6At8T4.mjs → KATYAmh0NIiQ-uaD.mjs} +1 -1
  95. package/node/esm/{DU-md5cmoqIFoIRF.mjs → QvMgUimFvzdL6-mo.mjs} +2 -2
  96. package/node/esm/{DRFDJvGYzZ2y7MNr.mjs → VINTYbFQolKKX9Cn.mjs} +1 -1
  97. package/node/esm/index.mjs +21 -16
  98. package/node/esm/{DtJRjSTG45Z8JwZ-.mjs → jqWzWUQAPXE6S4pP.mjs} +1 -1
  99. package/node/esm/{D8eFLYgEWXBVLJzP.mjs → p6tOM2g4fibuTbKy.mjs} +1 -1
  100. package/node/esm/{bz-ja27axdBXn18A.mjs → sroYp2c6WrIr_3vO.mjs} +2 -2
  101. package/node/esm/{BRW_h-uc47yzfnF7.mjs → uUNVoKRRBhW28hYx.mjs} +1 -1
  102. package/package.json +4 -4
  103. package/browser/cjs/B-re3P7cjOaJW97v.cjs +0 -6
  104. package/browser/cjs/B4xf1YLqOOQ2BAAw.cjs +0 -6
  105. package/browser/cjs/BQX47jn1fcYJXavn.cjs +0 -6
  106. package/browser/cjs/BZSt5E8X7SYSVhPs.cjs +0 -6
  107. package/browser/cjs/B_RNceQBZ8p6fj3Q.cjs +0 -6
  108. package/browser/cjs/BbwQg7G0IFkXlUYY.cjs +0 -6
  109. package/browser/cjs/BjwfHgXl1fEZAU3g.cjs +0 -60
  110. package/browser/cjs/Bm5UJ5gS-Q06VEPK.cjs +0 -7
  111. package/browser/cjs/C3td5E8SlcrJ5Mv-.cjs +0 -15
  112. package/browser/cjs/CGHOtBonLRy9pyo4.cjs +0 -6
  113. package/browser/cjs/CS2JAHasZYfPuOEI.cjs +0 -6
  114. package/browser/cjs/CSkIIY8fgAYcsfJ0.cjs +0 -6
  115. package/browser/cjs/CTM9G6roqBNmXvvV.cjs +0 -6
  116. package/browser/cjs/Cje8OteEkSLIh4eg.cjs +0 -6
  117. package/browser/cjs/CnRawGcFEjRg8E7W.cjs +0 -6
  118. package/browser/cjs/Cq-KGEktCK47S1ii.cjs +0 -6
  119. package/browser/cjs/CqczY8H5IIx8Ki4Z.cjs +0 -6
  120. package/browser/cjs/DLVyZuPozs2kGRVY.cjs +0 -6
  121. package/browser/cjs/DQtLMWxJks5D1_ut.cjs +0 -6
  122. package/browser/cjs/DSeBxJODV2wiVBFh.cjs +0 -6
  123. package/browser/cjs/DSx2MKFyVvU32PBX.cjs +0 -6
  124. package/browser/cjs/DlgBYRYQwJb2Cmz0.cjs +0 -124
  125. package/browser/cjs/DmMxyZPbvj8EvAvA.cjs +0 -6
  126. package/browser/cjs/DxXvv5mYl4GyI4oU.cjs +0 -13
  127. package/browser/cjs/K35RWj2GxR0lKfCY.cjs +0 -32
  128. package/browser/cjs/L5ui83i8s4hwRnmo.cjs +0 -6
  129. package/browser/cjs/Ntd4n6__drNXyV8Q.cjs +0 -6
  130. package/browser/cjs/OpVs8OmX1WcXQ1RU.cjs +0 -6
  131. package/browser/cjs/WZhB_pgRZi4U_oXo.cjs +0 -6
  132. package/browser/cjs/eL9bgEPz6WhChraJ.cjs +0 -6
  133. package/browser/cjs/nRRE57j_GGf6KVD8.cjs +0 -6
  134. package/browser/cjs/pPmY7gcYQCH96lE4.cjs +0 -6
  135. package/browser/cjs/xjh_alRipVqo8cZy.cjs +0 -1501
  136. package/browser/esm/-vEyF-b1iAJfL3xp.mjs +0 -10
  137. package/browser/esm/9sdhSM-1zkdTJ6pD.mjs +0 -5651
  138. package/browser/esm/B5GEE2P8-Fc2ApiM.mjs +0 -426
  139. package/browser/esm/BMWawWgFuxMRf1cM.mjs +0 -10
  140. package/browser/esm/BRW_h-uc47yzfnF7.mjs +0 -10
  141. package/browser/esm/BhPXhyivX9t4qJ2l.mjs +0 -820
  142. package/browser/esm/Br12zSs0kOLavLkw.mjs +0 -10
  143. package/browser/esm/BsN1Iav913PM0DTb.mjs +0 -21
  144. package/browser/esm/C8aGSiCyYUCLobsp.mjs +0 -10
  145. package/browser/esm/CYI5_V7h9SYP9uuu.mjs +0 -10
  146. package/browser/esm/Cu1bjUPEdAVn7e23.mjs +0 -10
  147. package/browser/esm/CydkHy4FDohjJzxv.mjs +0 -10
  148. package/browser/esm/CzRlLyr7iG0quh7r.mjs +0 -472
  149. package/browser/esm/DStq39R2rKQKUU7b.mjs +0 -24
  150. package/browser/esm/DbT42LuoRjjQ7Rtu.mjs +0 -3974
  151. package/browser/esm/DdU01D1n6S9BZnIr.mjs +0 -10
  152. package/browser/esm/De2OxC60SZUNAEyp.mjs +0 -10
  153. package/browser/esm/DtJRjSTG45Z8JwZ-.mjs +0 -10
  154. package/browser/esm/DwOgeqVyZwdrw1FB.mjs +0 -24004
  155. package/browser/esm/HTu8yzgCTwbf9HU4.mjs +0 -29
  156. package/browser/esm/LpwVK3fzNuCZJlGb.mjs +0 -10
  157. package/browser/esm/PC3F5BEQCLQN_a3x.mjs +0 -10
  158. package/browser/esm/cthDTk2_8Syhe1Uh.mjs +0 -10
  159. package/browser/esm/eYXmF3L6pehVXEBJ.mjs +0 -1575
  160. package/node/esm/225JOcHgUUs1EIBP.mjs +0 -10
  161. package/node/esm/6U_gCZNSSMBtVpQI.mjs +0 -10
  162. package/node/esm/BEWDCb-GzXXALTyM.mjs +0 -10
  163. package/node/esm/CatWZ5LT2Nm4rT4U.mjs +0 -10
  164. package/node/esm/D6NZZinV6uCFvvPK.mjs +0 -80
  165. package/node/esm/P_0pzZ_mRTUIQOo8.mjs +0 -10
  166. package/node/esm/SwZDnMDw8b9gb6VD.mjs +0 -10
  167. package/node/esm/_N05nCCXsyDthwPS.mjs +0 -10
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";const e=require("./DtBxSbHruNTMTsh-.cjs");function t(e,t){for(var i=0;i<t.length;i++){const r=t[i];if("string"!=typeof r&&!Array.isArray(r))for(const t in r)if("default"!==t&&!(t in e)){const i=Object.getOwnPropertyDescriptor(r,t);i&&Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>r[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var i,r={exports:{}};var n=(i||(i=1,r.exports=function e(){var t,i="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==i?i:{},r=!i.document&&!!i.postMessage,n=i.IS_PAPA_WORKER||!1,s={},a=0,o={};function h(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=k(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new c(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||(s=this._config.quoteChar||'"',t=this._handle.guessLineEndings(e,s)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&v(this._config.beforeFirstChunk)&&void 0!==(s=this._config.beforeFirstChunk(e))&&(e=s),this.isFirstChunk=!1,this._halted=!1,r=this._partialLine+e;var s=(this._partialLine="",this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=s.meta.cursor,this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),s&&s.data&&(this._rowCount+=s.data.length),r=this._finished||this._config.preview&&this._rowCount>=this._config.preview,n)i.postMessage({results:s,workerId:o.WORKER_ID,finished:r});else if(v(this._config.chunk)&&!t){if(this._config.chunk(s,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=s=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(s.data),this._completeResults.errors=this._completeResults.errors.concat(s.errors),this._completeResults.meta=s.meta),this._completed||!r||!v(this._config.complete)||s&&s.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||s&&s.meta.paused||this._nextChunk(),s}this._halted=!0},this._sendError=function(e){v(this._config.error)?this._config.error(e):n&&this._config.error&&i.postMessage({workerId:o.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e=e||{}).chunkSize||(e.chunkSize=o.RemoteChunkSize),h.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!r),this._config.downloadRequestHeaders){var e,i=this._config.downloadRequestHeaders;for(e in i)t.setRequestHeader(e,i[e])}var n;this._config.chunkSize&&(n=this._start+this._config.chunkSize-1,t.setRequestHeader("Range","bytes="+this._start+"-"+n));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader("Content-Range"))?parseInt(e.substring(e.lastIndexOf("/")+1)):-1)(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(new Error(e))}}function d(e){(e=e||{}).chunkSize||(e.chunkSize=o.LocalChunkSize),h.call(this,e);var t,i,r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,n=(this._config.chunkSize&&(n=Math.min(this._start+this._config.chunkSize,this._input.size),e=i.call(e,this._start,n)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:n}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function f(e){var t;h.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,i;if(!this._finished)return e=this._config.chunkSize,t=e?(i=t.substring(0,e),t.substring(e)):(i=t,""),this._finished=!t,this.parseChunk(i)}}function l(e){h.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=b(function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=b(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=b(function(){this._streamCleanUp(),r=!0,this._streamData("")},this),this._streamCleanUp=b(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function c(e){var t,i,r,n,s=Math.pow(2,53),a=-s,h=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,u=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,f=0,l=0,c=!1,_=!1,m=[],y={data:[],errors:[],meta:{}};function b(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function E(){if(y&&r&&(C("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),r=!1),e.skipEmptyLines&&(y.data=y.data.filter(function(e){return!b(e)})),w()){if(y)if(Array.isArray(y.data[0])){for(var t=0;w()&&t<y.data.length;t++)y.data[t].forEach(d);y.data.splice(0,1)}else y.data.forEach(d);function d(t,i){v(e.transformHeader)&&(t=e.transformHeader(t,i)),m.push(t)}}function i(t,i){for(var r=e.header?{}:[],n=0;n<t.length;n++){var o=n,d=t[n];d=((t,i)=>(t=>(e.dynamicTypingFunction&&void 0===e.dynamicTyping[t]&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?"true"===i||"TRUE"===i||"false"!==i&&"FALSE"!==i&&((e=>{if(h.test(e)&&(e=parseFloat(e),a<e&&e<s))return 1})(i)?parseFloat(i):u.test(i)?new Date(i):""===i?null:i):i)(o=e.header?n>=m.length?"__parsed_extra":m[n]:o,d=e.transform?e.transform(d,o):d),"__parsed_extra"===o?(r[o]=r[o]||[],r[o].push(d)):r[o]=d}return e.header&&(n>m.length?C("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+n,l+i):n<m.length&&C("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+n,l+i)),r}var n;y&&(e.header||e.dynamicTyping||e.transform)&&(n=1,!y.data.length||Array.isArray(y.data[0])?(y.data=y.data.map(i),n=y.data.length):y.data=i(y.data,0),e.header&&y.meta&&(y.meta.fields=m),l+=n)}function w(){return e.header&&0===m.length}function C(e,t,i,r){e={type:e,code:t,message:i},void 0!==r&&(e.row=r),y.errors.push(e)}v(e.step)&&(n=e.step,e.step=function(t){y=t,w()?E():(E(),0!==y.data.length&&(f+=t.data.length,e.preview&&f>e.preview?i.abort():(y.data=y.data[0],n(y,d))))}),this.parse=function(n,s,a){var h=e.quoteChar||'"';return e.newline||(e.newline=this.guessLineEndings(n,h)),r=!1,e.delimiter?v(e.delimiter)&&(e.delimiter=e.delimiter(n),y.meta.delimiter=e.delimiter):((h=((t,i,r,n,s)=>{var a,h,u,d;s=s||[",","\t","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var f=0;f<s.length;f++){for(var l,c=s[f],p=0,_=0,m=0,y=(u=void 0,new g({comments:n,delimiter:c,newline:i,preview:10}).parse(t)),k=0;k<y.data.length;k++)r&&b(y.data[k])?m++:(_+=l=y.data[k].length,void 0===u?u=l:0<l&&(p+=Math.abs(l-u),u=l));0<y.data.length&&(_/=y.data.length-m),(void 0===h||p<=h)&&(void 0===d||d<_)&&1.99<_&&(h=p,a=c,d=_)}return{successful:!!(e.delimiter=a),bestDelimiter:a}})(n,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=h.bestDelimiter:(r=!0,e.delimiter=o.DefaultDelimiter),y.meta.delimiter=e.delimiter),h=k(e),e.preview&&e.header&&h.preview++,t=n,i=new g(h),y=i.parse(t,s,a),E(),c?{meta:{paused:!0}}:y||{meta:{paused:!1}}},this.paused=function(){return c},this.pause=function(){c=!0,i.abort(),t=v(e.chunk)?"":t.substring(i.getCharIndex())},this.resume=function(){d.streamer._halted?(c=!1,d.streamer.parseChunk(t,!0)):setTimeout(d.resume,3)},this.aborted=function(){return _},this.abort=function(){_=!0,i.abort(),y.meta.aborted=!0,v(e.complete)&&e.complete(y),t=""},this.guessLineEndings=function(e,t){e=e.substring(0,1048576),t=new RegExp(p(t)+"([^]*?)"+p(t),"gm");var i=(e=e.replace(t,"")).split("\r");if(e=1<(t=e.split("\n")).length&&t[0].length<i[0].length,1===i.length||e)return"\n";for(var r=0,n=0;n<i.length;n++)"\n"===i[n][0]&&r++;return r>=i.length/2?"\r\n":"\r"}}function p(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function g(e){var t=(e=e||{}).delimiter,i=e.newline,r=e.comments,n=e.step,s=e.preview,a=e.fastMode,h=null,u=!1,d=null==e.quoteChar?'"':e.quoteChar,f=d;if(void 0!==e.escapeChar&&(f=e.escapeChar),("string"!=typeof t||-1<o.BAD_DELIMITERS.indexOf(t))&&(t=","),r===t)throw new Error("Comment character same as delimiter");!0===r?r="#":("string"!=typeof r||-1<o.BAD_DELIMITERS.indexOf(r))&&(r=!1),"\n"!==i&&"\r"!==i&&"\r\n"!==i&&(i="\n");var l=0,c=!1;this.parse=function(o,g,_){if("string"!=typeof o)throw new Error("Input must be a string");var m=o.length,y=t.length,k=i.length,b=r.length,E=v(n),w=[],C=[],R=[],O=l=0;if(!o)return P();if(a||!1!==a&&-1===o.indexOf(d)){for(var S=o.split(i),x=0;x<S.length;x++){if(R=S[x],l+=R.length,x!==S.length-1)l+=i.length;else if(_)return P();if(!r||R.substring(0,b)!==r){if(E){if(w=[],F(R.split(t)),U(),c)return P()}else F(R.split(t));if(s&&s<=x)return w=w.slice(0,s),P(!0)}}return P()}for(var A=o.indexOf(t,l),I=o.indexOf(i,l),T=new RegExp(p(f)+p(d),"g"),D=o.indexOf(d,l);;)if(o[l]===d)for(D=l,l++;;){if(-1===(D=o.indexOf(d,D+1)))return _||C.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:w.length,index:l}),z();if(D===m-1)return z(o.substring(l,D).replace(T,d));if(d===f&&o[D+1]===f)D++;else if(d===f||0===D||o[D-1]!==f){-1!==A&&A<D+1&&(A=o.indexOf(t,D+1));var L=j(-1===(I=-1!==I&&I<D+1?o.indexOf(i,D+1):I)?A:Math.min(A,I));if(o.substr(D+1+L,y)===t){R.push(o.substring(l,D).replace(T,d)),o[l=D+1+L+y]!==d&&(D=o.indexOf(d,l)),A=o.indexOf(t,l),I=o.indexOf(i,l);break}if(L=j(I),o.substring(D+1+L,D+1+L+k)===i){if(R.push(o.substring(l,D).replace(T,d)),M(D+1+L+k),A=o.indexOf(t,l),D=o.indexOf(d,l),E&&(U(),c))return P();if(s&&w.length>=s)return P(!0);break}C.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:w.length,index:l}),D++}}else if(r&&0===R.length&&o.substring(l,l+b)===r){if(-1===I)return P();l=I+k,I=o.indexOf(i,l),A=o.indexOf(t,l)}else if(-1!==A&&(A<I||-1===I))R.push(o.substring(l,A)),l=A+y,A=o.indexOf(t,l);else{if(-1===I)break;if(R.push(o.substring(l,I)),M(I+k),E&&(U(),c))return P();if(s&&w.length>=s)return P(!0)}return z();function F(e){w.push(e),O=l}function j(e){var t=0;return-1!==e&&(e=o.substring(D+1,e))&&""===e.trim()?e.length:t}function z(e){return _||(void 0===e&&(e=o.substring(l)),R.push(e),l=m,F(R),E&&U()),P()}function M(e){l=e,F(R),R=[],I=o.indexOf(i,l)}function P(r){if(e.header&&!g&&w.length&&!u){var n=w[0],s=Object.create(null),a=new Set(n);let t=!1;for(let i=0;i<n.length;i++){let r=n[i];if(s[r=v(e.transformHeader)?e.transformHeader(r,i):r]){let e,o=s[r];for(;e=r+"_"+o,o++,a.has(e););a.add(e),n[i]=e,s[r]++,t=!0,(h=null===h?{}:h)[e]=r}else s[r]=1,n[i]=r;a.add(r)}t&&console.warn("Duplicate headers found and renamed."),u=!0}return{data:w,errors:C,meta:{delimiter:t,linebreak:i,aborted:c,truncated:!!r,cursor:O+(g||0),renamedHeaders:h}}}function U(){n(P()),w=[],C=[]}},this.abort=function(){c=!0},this.getCharIndex=function(){return l}}function _(e){var t=e.data,i=s[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(v(i.userStep)){for(var a=0;a<t.results.data.length&&(i.userStep({data:t.results.data[a],errors:t.results.errors,meta:t.results.meta},n),!r);a++);delete t.results}else v(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&m(t.workerId,t.results)}function m(e,t){var i=s[e];v(i.userComplete)&&i.userComplete(t),i.terminate(),delete s[e]}function y(){throw new Error("Not implemented.")}function k(e){if("object"!=typeof e||null===e)return e;var t,i=Array.isArray(e)?[]:{};for(t in e)i[t]=k(e[t]);return i}function b(e,t){return function(){e.apply(t,arguments)}}function v(e){return"function"==typeof e}return o.parse=function(t,r){var n=(r=r||{}).dynamicTyping||!1;if(v(n)&&(r.dynamicTypingFunction=n,n={}),r.dynamicTyping=n,r.transform=!!v(r.transform)&&r.transform,!r.worker||!o.WORKERS_SUPPORTED)return n=null,o.NODE_STREAM_INPUT,"string"==typeof t?(t=(e=>65279!==e.charCodeAt(0)?e:e.slice(1))(t),n=new(r.download?u:f)(r)):!0===t.readable&&v(t.read)&&v(t.on)?n=new l(r):(i.File&&t instanceof File||t instanceof Object)&&(n=new d(r)),n.stream(t);(n=(()=>{var t;return!!o.WORKERS_SUPPORTED&&(t=(()=>{var t=i.URL||i.webkitURL||null,r=e.toString();return o.BLOB_URL||(o.BLOB_URL=t.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",r,")();"],{type:"text/javascript"})))})(),(t=new i.Worker(t)).onmessage=_,t.id=a++,s[t.id]=t)})()).userStep=r.step,n.userChunk=r.chunk,n.userComplete=r.complete,n.userError=r.error,r.step=v(r.step),r.chunk=v(r.chunk),r.complete=v(r.complete),r.error=v(r.error),delete r.worker,n.postMessage({input:t,config:r,workerId:n.id})},o.unparse=function(e,t){var i=!1,r=!0,n=",",s="\r\n",a='"',h=a+a,u=!1,d=null,f=!1,l=((()=>{if("object"==typeof t){if("string"!=typeof t.delimiter||o.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(n=t.delimiter),"boolean"!=typeof t.quotes&&"function"!=typeof t.quotes&&!Array.isArray(t.quotes)||(i=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(u=t.skipEmptyLines),"string"==typeof t.newline&&(s=t.newline),"string"==typeof t.quoteChar&&(a=t.quoteChar),"boolean"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");d=t.columns}void 0!==t.escapeChar&&(h=t.escapeChar+a),t.escapeFormulae instanceof RegExp?f=t.escapeFormulae:"boolean"==typeof t.escapeFormulae&&t.escapeFormulae&&(f=/^[=+\-@\t\r].*$/)}})(),new RegExp(p(a),"g"));if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return c(null,e,u);if("object"==typeof e[0])return c(d||Object.keys(e[0]),e,u)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||d),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),c(e.fields||[],e.data||[],u);throw new Error("Unable to serialize unrecognized input");function c(e,t,i){var a="",o=("string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),h=!Array.isArray(t[0]);if(o&&r){for(var u=0;u<e.length;u++)0<u&&(a+=n),a+=g(e[u],u);0<t.length&&(a+=s)}for(var d=0;d<t.length;d++){var f=(o?e:t[d]).length,l=!1,c=o?0===Object.keys(t[d]).length:0===t[d].length;if(i&&!o&&(l="greedy"===i?""===t[d].join("").trim():1===t[d].length&&0===t[d][0].length),"greedy"===i&&o){for(var p=[],_=0;_<f;_++){var m=h?e[_]:_;p.push(t[d][m])}l=""===p.join("").trim()}if(!l){for(var y=0;y<f;y++){0<y&&!c&&(a+=n);var k=o&&h?e[y]:y;a+=g(t[d][k],y)}d<t.length-1&&(!i||0<f&&!c)&&(a+=s)}}return a}function g(e,t){var r,s;return null==e?"":e.constructor===Date?JSON.stringify(e).slice(1,25):(s=!1,f&&"string"==typeof e&&f.test(e)&&(e="'"+e,s=!0),r=e.toString().replace(l,h),(s=s||!0===i||"function"==typeof i&&i(e,t)||Array.isArray(i)&&i[t]||((e,t)=>{for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1})(r,o.BAD_DELIMITERS)||-1<r.indexOf(n)||" "===r.charAt(0)||" "===r.charAt(r.length-1))?a+r+a:r)}},o.RECORD_SEP=String.fromCharCode(30),o.UNIT_SEP=String.fromCharCode(31),o.BYTE_ORDER_MARK="\ufeff",o.BAD_DELIMITERS=["\r","\n",'"',o.BYTE_ORDER_MARK],o.WORKERS_SUPPORTED=!r&&!!i.Worker,o.NODE_STREAM_INPUT=1,o.LocalChunkSize=10485760,o.RemoteChunkSize=5242880,o.DefaultDelimiter=",",o.Parser=g,o.ParserHandle=c,o.NetworkStreamer=u,o.FileStreamer=d,o.StringStreamer=f,o.ReadableStreamStreamer=l,i.jQuery&&((t=i.jQuery).fn.parse=function(e){var r=e.config||{},n=[];return this.each(function(e){if("INPUT"!==t(this).prop("tagName").toUpperCase()||"file"!==t(this).attr("type").toLowerCase()||!i.FileReader||!this.files||0===this.files.length)return!0;for(var s=0;s<this.files.length;s++)n.push({file:this.files[s],inputElem:this,instanceConfig:t.extend({},r)})}),s(),this;function s(){if(0===n.length)v(e.complete)&&e.complete();else{var i,r,s,h,u=n[0];if(v(e.before)){var d=e.before(u.file,u.inputElem);if("object"==typeof d){if("abort"===d.action)return i="AbortError",r=u.file,s=u.inputElem,h=d.reason,void(v(e.error)&&e.error({name:i},r,s,h));if("skip"===d.action)return void a();"object"==typeof d.config&&(u.instanceConfig=t.extend(u.instanceConfig,d.config))}else if("skip"===d)return void a()}var f=u.instanceConfig.complete;u.instanceConfig.complete=function(e){v(f)&&f(e,u.file,u.inputElem),a()},o.parse(u.file,u.instanceConfig)}}function a(){n.splice(0,1),s()}}),n&&(i.onmessage=function(e){e=e.data,void 0===o.WORKER_ID&&e&&(o.WORKER_ID=e.workerId),"string"==typeof e.input?i.postMessage({workerId:o.WORKER_ID,results:o.parse(e.input,e.config),finished:!0}):(i.File&&e.input instanceof File||e.input instanceof Object)&&(e=o.parse(e.input,e.config))&&i.postMessage({workerId:o.WORKER_ID,results:e,finished:!0})}),(u.prototype=Object.create(h.prototype)).constructor=u,(d.prototype=Object.create(h.prototype)).constructor=d,(f.prototype=Object.create(f.prototype)).constructor=f,(l.prototype=Object.create(h.prototype)).constructor=l,o}()),r.exports);const s=t({__proto__:null,default:e.getDefaultExportFromCjs(n)},[n]);exports.papaparse_min=s;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={DELAY:{s:"Returns the input value after a delay.",p:{time:{d:"the delay time in milliseconds. Default is 1000ms (1 second)."},input:{d:"returns the input."},label:{d:"optional label for the delay function.",v:"No label"}},h:"Testing"},WAIT:{s:"Starts waiting for event",p:{type:{d:"the type of message."},input:{d:"an optional dependency."}},h:"Testing"}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={ERF:{s:"Returns the error function",p:{lowerLimit:{d:"is the lower bound for integrating ERF"},upperLimit:{d:"is the upper bound for integrating ERF",v:0}}},"ERF.PRECISE":{s:"Returns the error function",p:{x:{d:"is the lower bound for integrating ERF.PRECISE"}}},ERFC:{s:"Returns the complementary error function",p:{x:{d:"is the lower bound for integrating ERF"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={CUBEKPIMEMBER:{s:"Returns a key performance indicator (KPI) property and displays the KPI name in the cell.",p:{connection:{d:"is the name of a connection to an OLAP cube"},kpiName:{d:"is the KPI name"},kpiProperty:{d:"is the KPI property"},caption:{d:"is the caption to be displayed in the cell"}},h:"Unimplemented"},CUBEMEMBER:{s:"Returns a member or tuple from the cube.",p:{connection:{d:"is the name of a connection to an OLAP cube"},memberExpression:{d:"is the expression representing the name of a member or tuple in the OLAP cube"},caption:{d:"is the caption to be displayed in the cell"}},h:"Unimplemented"},CUBEMEMBERPROPERTY:{s:"Returns the value of a member property from the cube.",p:{connection:{d:"is the name of a connection to an OLAP cube"},memberExpression:{d:"is the expression representing the name of a member in the OLAP cube"},kpiProperty:{d:"is the property name"}},h:"Unimplemented"},CUBERANKEDMEMBER:{s:"Returns the nth, or ranked, member in a set.",p:{connection:{d:"is the name of a connection to an OLAP cube"},setExpression:{d:"is the set from which the element is to be retrieved"},rank:{d:"is the rank of the element to be retrieved"},caption:{d:"is the caption to be displayed in the cell"}},h:"Unimplemented"},CUBESET:{s:"Defines a calculated set of members or tuples by sending a set expression to the cube on the server, which creates the set, and then returns that set to Microsoft Excel.",p:{connection:{d:"is the name of a connection to an OLAP cube"},setExpression:{d:"is the expression for the set"},caption:{d:"is the caption to be displayed in the cell"},sortOrder:{d:"is the sort order"},sortBy:{d:"is the sort by"}},h:"Unimplemented"},CUBESETCOUNT:{s:"Returns the number of items in a set.",p:{set:{d:"is the set whose elements are to be counted"}},h:"Unimplemented"},CUBEVALUE:{s:"Returns an aggregated value from the cube.",p:{connection:{d:"is the name of a connection to an OLAP cube"},memberExpression:{}},h:"Unimplemented"}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let n=class{constructor(n){this._worker=null,this._nextId=1,this._pendingRequests=new Map,this._workerFactory=n}start(){if(typeof Worker>"u")throw new Error("Web Workers are not supported in this environment.");return this._worker||(this._worker=this._workerFactory(),this._worker.onmessage=n=>{const{id:e,result:t,error:r}=n.data,o=this._pendingRequests.get(e);if(o)if(this._pendingRequests.delete(e),r){const n=new Error(r.message);n.stack=r.stack,r.cause&&(n.cause=r.cause),o.reject(n)}else o.resolve(t)},this._worker.onerror=n=>{console.error("Worker error:",n),this._pendingRequests.forEach(e=>{e.reject(new Error(`Worker failed: ${n.message}`))}),this._pendingRequests.clear(),this._worker=null}),Promise.resolve()}execute(n){if(!this._worker)throw new Error("Worker is not initialized. Call start() first.");const e=this._nextId++;return new Promise((t,r)=>{this._pendingRequests.set(e,{resolve:t,reject:r}),this._worker.postMessage({id:e,params:n})})}terminate(){this._worker&&(this._worker.terminate(),this._worker=null)}};class e{constructor(n){this._onExecute=n}execute(n){return this._onExecute(n)}start(){return Promise.resolve()}terminate(){}}const t='/**\n * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.4.11\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 n 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 = n;\n class r 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 = r;\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(), nt = /* @__PURE__ */ new Map(), ke = Object.keys(_);\nfor (let e = 0; e < ke.length; e++) {\n const t = ke[e], n = _[t];\n tt.set(d.Label[t], n), nt.set(d.Code[t], n);\n const r = new n();\n et.set(r.getLabel(), r), Te.set(r.getCode(), r);\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, n) => {\n let r;\n return r = typeof e == "string" ? tt.get(e) : nt.get(e), r || (r = v.Unknown), new r(t, n);\n}, v.getBuiltInById = (e) => Te.get(e) || Et;\n/**\n * @license @sheetxl/utils - Utils - Utilities used by most SheetXL components. - v0.4.11\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 }), rt = (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 : rt, 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 n = 0; n < e.length; n++) if (!Se(e[n], t[n])) return !1;\n return !0;\n}, he = (e, t, n) => {\n if (!e && !t) return null;\n if (!e) return n ? t : { ...t };\n if (!t) return n ? e : { ...e };\n const r = 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 = n;\n return l ? (l.colStart = r, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: r, rowStart: o, colEnd: i, rowEnd: a }, l;\n}, Pe = (e, t) => {\n if (!t || t.length === 0) return e;\n const n = { ...e };\n for (let r = 0; r < t.length; r++) {\n const o = t[r];\n xe(n, o) && (n.rowStart = Math.min(n.rowStart, o.rowStart), n.colStart = Math.min(n.colStart, o.colStart), n.rowEnd = Math.max(n.rowEnd, o.rowEnd), n.colEnd = Math.max(n.colEnd, o.colEnd));\n }\n return n;\n}, It = [null, null], Nt = (e, t, n) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Fe(e, t = 2, n, r = j.Row, o) {\n let i = [...e];\n if (t <= 0 || e.length <= 1) return i;\n let a = r === 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), n) {\n const c = o ?? [null, null];\n c[0] = p, c[1] = I, E = n(c, E, r);\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 n = t;\n return n || (n = { ...e }, delete n.colIndex, delete n.rowIndex), n.colStart = e.colIndex ?? 0, n.rowStart = e.rowIndex ?? 0, n.colEnd = e.colIndex ?? 0, n.rowEnd = e.rowIndex ?? 0, n;\n}, columnFirstCellComparator: Le, columnFirstRangeComparator: rt, createCellComparator: (e = j.Row, t = !1) => t ? e !== j.Column ? (n, r) => n.rowIndex === r.rowIndex ? r.colIndex - n.colIndex : r.rowIndex - n.rowIndex : (n, r) => n.colIndex === r.colIndex ? r.rowIndex - n.rowIndex : r.colIndex - n.colIndex : e !== j.Column ? Ae : Le, createConflatingRanges: (e, t = !1) => {\n const n = [];\n let r, 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 ? r.rowEnd = u : r.colEnd = u, a = u, void (o = f);\n r && n.push(r);\n const p = t ? l : u, y = t ? u : l;\n r = { colStart: p, rowStart: y, colEnd: p, rowEnd: y }, g && (r.value = f), i = l, a = u, o = f;\n }, done: (l) => (r && (n.push(r), r = null), l ? Fe(n, 3, l === !0 ? Nt : l, t ? j.Column : j.Row, It) : n) };\n}, createRangeComparator: it, defaultRange: (e, t, n) => e ? n ? (n.colStart = e.colStart ?? t.colStart, n.rowStart = e.rowStart ?? t.rowStart, n.colEnd = e.colEnd ?? t.colEnd, n.rowEnd = e.rowEnd ?? t.rowEnd, n) : { 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 n = e, r = null;\n for (; !Se(n, r); ) r = n, n = Pe(r, t);\n return n;\n}, indexOfCoords: (e, t) => {\n const n = { colStart: e.colIndex, rowStart: e.rowIndex, colEnd: e.colIndex, rowEnd: e.rowIndex };\n for (let r = t.length - 1; r >= 0; r--) if (xe(n, t[r])) return r;\n return -1;\n}, intersectRanges: (e, t, n) => {\n if (!e) return n ? t : { ...t };\n if (!t) return n ? 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 r = 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 = n;\n return l ? (l.colStart = r, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: r, 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, n = -e.colStart, r) => r ? (r.colStart = e.colStart + n, r.rowStart = e.rowStart + t, r.colEnd = e.colEnd + n, r.rowEnd = e.rowEnd + t, r) : { colStart: e.colStart + n, rowStart: e.rowStart + t, colEnd: e.colEnd + n, rowEnd: e.rowEnd + t }, unionRanges: he, unionRangesArrays: (e, t, n) => {\n if (!e || e.length === 0) return null;\n if (e.length === 1 && !t) return e[0];\n let r = e[0];\n for (let o = 1; o < e.length; o++) r = he(r, e[o], n);\n return t && (r = he(r, t, n)), r;\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(n) {\n return n.$$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 re(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Y((n = e, Array.isArray(n) ? [] : {}), e, t) : e;\n var n;\n}\nfunction At(e, t, n) {\n return e.concat(t).map(function(r) {\n return re(r, n);\n });\n}\nfunction De(e) {\n return Object.keys(e).concat(function(t) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(t).filter(function(n) {\n return Object.propertyIsEnumerable.call(t, n);\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, n) {\n const r = {};\n return n.isMergeableObject(e) && De(e).forEach(function(o) {\n r[o] = re(e[o], n);\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) && n.isMergeableObject(t[o]) ? r[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, n)(e[o], t[o], n) : r[o] = re(t[o], n));\n }), r;\n}\nfunction Y(e, t, n) {\n (n = n || {}).arrayMerge = n.arrayMerge || At, n.isMergeableObject = n.isMergeableObject || Lt, n.cloneUnlessOtherwiseSpecified = re;\n const r = Array.isArray(t);\n return r === Array.isArray(e) ? r ? n.arrayMerge(e, t, n) : Mt(e, t, n) : re(t, n);\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(n, r) {\n return Y(n, r, 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((n, r) => n === t[r]), ne = (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, n = Dt) => {\n if (e == null || e === t) return null;\n if (!e || typeof e != "object" || Array.isArray(e) || e.isImmutable?.()) return n(e, t) ? null : e;\n const r = Object.keys(e);\n if (r.length === 0) return null;\n let o = !1;\n for (let i = 0; i < r.length; i++) {\n const a = r[i];\n st(e[a], t?.[a], n) === 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, n) {\n const r = e.slice();\n return r.splice(n < 0 ? r.length + n : n, 0, r.splice(t, 1)[0]), r;\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, n = !1) {\n let r, o, i, a, l = 0;\n function u() {\n let h = Date.now() - l;\n h < t && h >= 0 ? r = setTimeout(u, t - h) : (r = null, n || (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 = n && !r;\n return r || (r = setTimeout(u, t)), h && (a = e.apply(i, o), i = o = null), a;\n };\n return f.clear = function() {\n r && (clearTimeout(r), r = null);\n }, f.flush = function() {\n r && (a = e.apply(i, o), i = o = null, clearTimeout(r), r = null);\n }, f;\n}, deepEqual: function e(t, n) {\n if (t === n) return !0;\n if (t && n && typeof t == "object" && typeof n == "object") {\n if (t.constructor !== n.constructor) return !1;\n let r, o, i;\n if (Array.isArray(t)) {\n if (r = t.length, r != n.length) return !1;\n for (o = r; o-- !== 0; ) if (!e(t[o], n[o])) return !1;\n return !0;\n }\n if (t instanceof Map && n instanceof Map) {\n if (t.size !== n.size) return !1;\n for (o of t.entries()) if (!n.has(o[0])) return !1;\n for (o of t.entries()) if (!e(o[1], n.get(o[0]))) return !1;\n return !0;\n }\n if (t instanceof Set && n instanceof Set) {\n if (t.size !== n.size) return !1;\n for (o of t.entries()) if (!n.has(o[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(t) && ArrayBuffer.isView(n)) {\n if (r = t.length, r != n.length) return !1;\n for (o = r; o-- !== 0; ) if (t[o] !== n[o]) return !1;\n return !0;\n }\n if (t.constructor === RegExp) return t.source === n.source && t.flags === n.flags;\n if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === n.valueOf();\n if (t.toString !== Object.prototype.toString) return t.toString() === n.toString();\n if (i = Object.keys(t), r = i.length, r !== Object.keys(n).length) return !1;\n for (o = r; o-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(n, i[o])) return !1;\n for (o = r; o-- !== 0; ) {\n let a = i[o];\n if ((a !== "_owner" || !t.$$typeof) && !e(t[a], n[a])) return !1;\n }\n return !0;\n }\n return t != t && n != n;\n}, deepFreeze: function e(t) {\n return Object.freeze(t), Object.keys(t).forEach((n) => {\n typeof t[n] != "object" || t[n] === null || Object.isFrozen(t[n]) || e(t[n]);\n }), t;\n}, deepMerge: Y, diffValues: (e, t) => {\n const n = {}, r = Object.keys(t), o = r.length;\n for (let i = 0; i < o; i++) {\n const a = r[i];\n e[a] !== t[a] && (e[a] === void 0 ? n[a] = t[a] : n[a] = e[a]);\n }\n return Object.keys(n).length === 0 ? null : n;\n}, findEqualOrGreater: function(e, t, n = Be) {\n let r = 0, o = e.length - 1;\n for (; r <= o; ) {\n let i = Math.floor((r + o) / 2), a = n(e[i]);\n if (a === t) return i;\n a < t ? r = i + 1 : o = i - 1;\n }\n return r;\n}, findEqualOrLesser: function(e, t, n = Be) {\n let r = e.length - 1, o = 0;\n for (; r >= o; ) {\n let i = Math.floor((r + o) / 2), a = n(e[i]);\n if (a === t) return i;\n a > t ? r = i - 1 : o = i + 1;\n }\n return r;\n}, findNextStep: (e, t = !0, n = 15, r = 10, o = 400) => {\n const i = Math.max(e - r, 0) + (t ? 1 : -1);\n return Math.min(o, Math[t ? "ceil" : "floor"](i / n) * n + r);\n}, getDPI: () => {\n let e = 1;\n return typeof window == "object" && (e = window.devicePixelRatio || 1), e;\n}, getFromPath: (e, t) => {\n const n = t.split(".");\n let r = e;\n for (let o = 0; o < n.length; o++) {\n const i = n[o];\n if (!r) return null;\n let a = r[i];\n if (typeof a == "function" && (a = a.bind(r)()), !a || !ne(a)) return a;\n r = a;\n }\n return r ?? 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 n = Object.keys(e);\n if (n.length !== Object.keys(t).length) return !1;\n for (let r = 0; r < n.length; r++) if (e[n[r]] !== t[n[r]]) 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: ne, 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 && !ne(e[t - 1])) return e[t - 1];\n let n = e[0] || {};\n for (let r = 1; r < t; r++) n = Y(n, e[r] || {}, { arrayMerge: (o, i) => [...i] });\n return n;\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, n) => {\n if (!Ve) return void n("Unable to open dialog with no dom.");\n const r = document.createElement("input");\n r.type = "file", r.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 }), r.onchange = () => {\n if (o = r.files[0], o) {\n if (i) return void console.warn("File open detected after faux cancel.", o);\n t(o);\n }\n }, r.autofocus = !0, r.click();\n}), rafThrottle: (e) => {\n let t, n = !1, r = function() {\n n = !1, e(t);\n };\n return function(o) {\n t = o, t && t.persist && t.persist(), n || (n = !0, requestAnimationFrame(r));\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 n = $e(), r = { id: requestAnimationFrame(function o() {\n $e() - n >= t ? e.call(null) : r.id = requestAnimationFrame(o);\n }) };\n return r;\n}, roundAccurately: (e, t = 0) => {\n if (e == null || !isFinite(e)) return null;\n const n = 10 ** t;\n return Number(Math.round(e * n) / n);\n}, setToPath: (e, t, n) => {\n const r = 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 < r.length - 1; i++) {\n const a = r[i];\n let l = o[a];\n if (l == null && (l = {}, o[a] = l), !ne(l)) throw new Error("Can not set path to a non object path.");\n o = l;\n }\n if (typeof n != "number" && typeof n != "boolean" && typeof n != "string" && !ne(n)) throw new Error(`Can not set path to ${n} that is not a a supported primitive.`);\n return o[r[r.length - 1]] = n, e;\n}, splitNumber: (e) => {\n let t = Math.abs(e);\n if (isNaN(t) || !isFinite(e)) return null;\n let n = 0 | t, r = t - n, o = 0, i = 0, a = 1;\n if (r > 5e-8) for (; i < 8 && Math.abs(o / a - r) > 5e-8; ) i++, a *= 10, o = Math.round(r * a);\n return { ip: Math.trunc(e), fp: o, ipLength: Math.ceil(Math.log10(n + 1)), fpLength: i };\n}, subtractRect: (e, t, n = !1) => {\n if (!t) return [e];\n if (!Ke(e, t)) return [];\n const r = [];\n let o = e;\n const i = () => {\n t.top > o.top && t.top < o.bottom && (r.push({ ...o, bottom: t.top }), o = { ...o, top: t.top });\n }, a = () => {\n t.bottom > o.top && t.bottom < o.bottom && (r.push({ ...o, top: t.bottom }), o = { ...o, bottom: t.bottom });\n }, l = () => {\n t.right > o.left && t.right < o.right && (r.push({ ...o, left: t.right }), o = { ...o, right: t.right });\n }, u = () => {\n t.left > o.left && t.left < o.right && (r.push({ ...o, right: t.left }), o = { ...o, left: t.left });\n };\n return n ? (u(), l(), i(), a()) : (i(), a(), l(), u()), r;\n}, textToKey: (e) => e.replace(/[^a-zA-Z0-9]/g, "").toLowerCase(), throttle: function(e, t) {\n let n = null;\n return (...r) => {\n const o = Date.now();\n (!n || o - n >= t) && (n = o, e(...r));\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((r) => e(r));\n if (typeof t.toString == "function" && t.toString !== Object.prototype.toString) return t.toString();\n const n = {};\n for (const r in t) t.hasOwnProperty(r) && (n[r] = e(t[r]));\n return n;\n}, transpose: (e) => {\n if (!e) return e;\n const t = e.length, n = e[0].length, r = [];\n for (let o = 0; o < n; o++) r[o] = Array(t);\n for (let o = 0; o < t; o++) for (let i = 0; i < n; i++) r[i][o] = e[o][i];\n return r;\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((n) => {\n qe(e, t) ? n(!0) : e.addEventListener("focusin", () => {\n n(!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), n = t.byteLength;\n let r = "";\n for (let o = 0; o < n; o++) r += String.fromCharCode(t[o]);\n if (typeof window < "u" && typeof globalThis.btoa == "function") return globalThis.btoa(r);\n if (typeof Buffer < "u") return Buffer.from(r, "binary").toString("base64");\n throw new Error("Unsupported environment");\n}, Ce = (e) => new Promise((t, n) => {\n if (e) if (typeof FileReader < "u") {\n const r = new FileReader();\n r.onload = () => {\n t(r.result);\n }, r.onerror = () => {\n n(r.error);\n }, r.readAsText(e);\n } else if (typeof Buffer < "u") {\n const r = (o) => Buffer.from(o).toString("utf-8");\n e.arrayBuffer().then((o) => {\n t(r(o));\n }).catch((o) => {\n n(o);\n });\n } else n(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"), n = t.length, r = new Uint8Array(n);\n for (let o = 0; o < n; o++) r[o] = t.charCodeAt(o);\n return r.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, n) => {\n let r = null;\n try {\n r = new Image(), r.src = e, r.addEventListener("load", function() {\n t({ width: r.naturalWidth, height: r.naturalHeight });\n }, { once: !0 }), r.addEventListener("error", function() {\n URL.revokeObjectURL(e), n("Invalid Image");\n }, { once: !0 }), await r.decode("sync");\n } catch {\n r?.src && URL.revokeObjectURL(r.src);\n }\n r || n(ft);\n}), we = "image/svg+xml";\nObject.freeze(Object.defineProperty({ __proto__: null, DATA_URL_PNG_PREFIX: dt, getImageDataUrl: (e, t = 1) => new Promise(async (n, r) => {\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 n({ elemImg: o, dataUrl: a });\n } catch (i) {\n URL.revokeObjectURL(e), r(i);\n }\n }, { once: !0 }), o.addEventListener("error", function() {\n URL.revokeObjectURL(e), r("Invalid Image");\n }, { once: !0 }), await o.decode("sync");\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || r(ft);\n}), loadImageDetails: async (e, t = null) => {\n let n = null;\n const r = async () => {\n try {\n const i = t ?? "image/*", a = URL.createObjectURL(new Blob([e], { type: i })), l = await Ge(a);\n n = { 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 n = { mimeType: t ?? we, naturalDimensions: l, asUrl: a, asSVGText: i };\n } catch {\n }\n };\n if (t === we ? await o() : t.startsWith("image/") ? await r() : (await r(), n || await o()), !n) throw new Error("Failed to load image");\n return n;\n} }, Symbol.toStringTag, { value: "Module" }));\nvar We, Ye;\n(Ye = We || (We = {})).resolveTypedUpdates = (e, t, n, r) => {\n if (e === null) return e;\n if (e === void 0) return r;\n let o = e;\n if (t?.shorthand) {\n const u = t?.shorthand(e, n);\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 && r) l = t.merge(l, r, n);\n else if (!a) {\n if (i) {\n const u = Object.keys({ ...o, ...r });\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, n, r?.[h]) : p;\n } else g = r?.[h];\n g != null && (l = l ?? {}, l[h] = g);\n }\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, n) => {\n if (oe() === k.Safari) return await n(new Error(pt.Safari));\n try {\n const r = 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 r(t)), i || o.state !== "granted" || (i = await t()), !i) return await n(new Error(o.state));\n } catch (r) {\n return r.message === "No valid data on clipboard" || r.name === "DataError" ? void 0 : await n(r);\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 n = await mt(e);\n let r = !1;\n for (let o = 0; !r && n && o < n.length; o++) if (r = n[o].types.includes(t), r)\n return await n[o].getType(t);\n return r ? void 0 : null;\n};\nif (!globalThis.ClipboardItem) {\n const e = (n, r) => new Blob([r], { type: n });\n class t {\n constructor(r, o) {\n this._items = {}, this._types = Object.keys(r);\n const i = {}, a = Object.keys(r);\n for (let l = 0; l < a.length; l++) {\n const u = a[l];\n let f = r[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(r) {\n return Promise.resolve(this._items[r]);\n }\n supports(r) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nconst ve = async (e, t = S.html) => new Promise(async (n, r) => {\n try {\n const o = await Bt(e, t);\n if (o) {\n const i = new FileReader();\n i.onload = () => {\n n(i.result);\n }, i.onerror = () => {\n n("");\n }, i.readAsText(o);\n } else n("");\n } catch (o) {\n r(o);\n }\n}), He = async (e, t = S.html) => {\n const n = await ve(e, t);\n if (!n) return null;\n let r = null;\n try {\n r = new DOMParser().parseFromString(n, S.html);\n } catch {\n console.warn("Can\'t parse html from clipboard.");\n }\n return r;\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 n = null;\n try {\n const r = new DOMParser().parseFromString(t, S.html);\n r.body.firstElementChild.setAttribute(ie, e), n = r.getElementsByTagName("body")[0].innerHTML;\n } catch (r) {\n console.warn("Can\'t embed uuid.", r);\n }\n return n;\n}, Ze = (e, t) => {\n if (!t || !e) return !1;\n try {\n const n = t.querySelectorAll(`[${ie}="${e}"]`);\n if (n && n.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 n = await He(this._nativeClipboard, S.html);\n return !this._state || (Ze(this._state.uuid, n) || 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", (n) => {\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 n = await ve(this._nativeClipboard, Q);\n if (n && n === t._state.uuid) return !0;\n const r = await He(this._nativeClipboard, S.html);\n if (Ze(t._state?.uuid, r)) return !0;\n }\n return t._state = { items: await mt(this._nativeClipboard), uuid: null, ref: null }, this.dispatchEvent(new Event("clipboardread")), !0;\n }, async (n) => {\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 n = this, r = [], o = t.uuid;\n let i = t.items ?? [];\n const a = () => {\n n._state = { uuid: o, ref: t.ref, items: r }, n.dispatchEvent(new Event("clipboardwrite")), n.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 })), r.push(new ClipboardItem(p));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : 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 n = null;\n const r = {};\n try {\n const i = await t.toText?.() ?? null;\n i && (r[S.plain] = new Blob([i ?? ""], { type: S.plain }));\n } catch (i) {\n n = i;\n }\n try {\n const i = await t.toHtml?.() ?? null;\n i && (r[S.html] = new Blob([i], { type: S.html }));\n } catch (i) {\n n = i, console.warn("export to html", i);\n }\n try {\n const i = await t.toImage?.() ?? null;\n i && (r[S.png] = i);\n } catch (i) {\n n = i, console.warn("export to png", i);\n }\n const o = this._write({ uuid: de(), ref: t, items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null });\n if (n) throw n;\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, n) => {\n const r = await this.read();\n let o = null;\n for (let a = 0; !o && r && a < r.length; a++) r[a].types.includes(S.plain) && (o = await r[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 n(a);\n };\n });\n }\n async writeText(t) {\n const n = [new ClipboardItem({ [S.plain]: new Blob([t], { type: S.plain }) })];\n return this._write({ uuid: de(), items: n, ref: null });\n }\n addEventListener(t, n, r = {}) {\n const o = r?.capture ? this._listenersCapture : this._listeners;\n let i = o.get(t);\n i || (i = /* @__PURE__ */ new Map(), o.set(t, i)), i.set(n, typeof r == "boolean" ? {} : r);\n }\n dispatchEvent(t) {\n if (!t) return;\n const n = (r) => {\n const o = r.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 n(this._listenersCapture), n(this._listeners), !0;\n }\n removeEventListener(t, n, r) {\n const o = r?.capture ? this._listenersCapture : this._listeners, i = o.get(t);\n i && (i.delete(n), 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((n, r) => {\n e = n, t = r;\n });\n try {\n const { initialize: n } = await Promise.resolve().then(function() {\n return nn;\n });\n return ee = await n(), e(), ee;\n } catch (n) {\n throw console.error("Failed to import or initialize esbuild:", n), le = null, t(n), n;\n }\n}\nconst qt = {\n // ESBuild.TsconfigRaw =\n compilerOptions: {\n target: "esnext"\n }\n};\nasync function Gt(e, t, n = "/script.js", r = Kt) {\n try {\n const o = await Vt(), i = "@sheetxl/primitives", a = `\n export const FormulaContext = globalThis.${r}?.FormulaContext;\n export const ScalarType = globalThis.${r}?.ScalarType;\n export const Observable = globalThis.${r}?.Observable;\n export const IRange = globalThis.${r}?.IRange;\n export const FormulaError = globalThis.${r}?.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(`^(${n.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 === n)\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: [n],\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((r) => {\n const o = t.get(r);\n t.set(`${e}.${r}`, 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 on;\n })).initialize();\n } catch (e) {\n throw se = null, e;\n } finally {\n se = null;\n }\n}\nasync function en(e) {\n const t = e?.source ?? null;\n if (!t) return null;\n const n = (e.disableBundle || e.declarationsOnly) ?? !1, r = [\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(r), 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 !n && 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: n } = e.data;\n try {\n const r = await en(n);\n self.postMessage({ id: t, result: r, error: null });\n } catch (r) {\n self.postMessage({\n id: t,\n result: null,\n error: {\n message: r.message,\n stack: r.stack,\n cause: r.cause\n }\n });\n }\n});\nlet ce = null;\nasync function tn() {\n return ce || (ce = new Promise(async (e, t) => {\n try {\n const n = "0.20.2", r = `https://esm.sh/esbuild-wasm@${n}`, o = `https://esm.sh/esbuild-wasm@${n}/esbuild.wasm`, a = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n r\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 (n) {\n console.error("Error initializing esbuild:", n), t(n);\n }\n }), ce);\n}\nvar nn = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: tn\n});\nlet ue = null;\nasync function rn() {\n return ue || (ue = new Promise(async (e, t) => {\n let n = null;\n try {\n n = await import("https://esm.sh/typescript@5.7.2");\n } catch (r) {\n console.error("Error initializing Browser TypeScript module:", r);\n }\n n || console.log("use script fallback"), e(n);\n }), ue);\n}\nvar on = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: rn\n});\n',r=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",t],{type:"text/javascript;charset=utf-8"});function o(n){let e;try{if(e=r&&(self.URL||self.webkitURL).createObjectURL(r),!e)throw"";const t=new Worker(e,{type:"module",name:n?.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(t),{type:"module",name:n?.name})}}const i=async()=>{const{compileModule:n}=await Promise.resolve().then(()=>require("./DHpCAbHLYqvLP0Z6.cjs")),t=new e(e=>n(e));return await t.start(),t};exports.createCompilerWorker=async function(){if(typeof process<"u"&&process.versions?.node&&typeof Worker>"u")return await i();if(typeof Worker<"u"){const e=new n(()=>new o);try{return await e.start(),e}catch(n){console.error("Failed to start TypescriptCompiler worker reverting to fallback:",n)}}return await i()};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={ABS:{s:"Returns the absolute value of a number, a number without its sign",p:{number:{d:"is the real number for which you want the absolute value"}}},AGGREGATE:{s:"Returns information about the cell.",p:{functionNum:{d:"Is the number 1 to 19 that specifies the summary function for the aggregate."},options:{d:"Is the number 0 to 78 that specified the values to ignore for the aggregate."},array:{d:"Is the array or range of numerical data on which to calculate the aggregate."},K:{d:"indicates the position of the array; it is k-th largest, k-th smallest, k-th percentile, or k-th quartile."}},h:"Unimplemented"},ARABIC:{s:"Converts a Roman numeral to Arabic",p:{text:{d:"is the Roman numeral you want to convert"}}},BASE:{s:"Converts a number into a text representation with the given radix (base)",p:{number:{d:"is the number that you want to convert"},radix:{d:"is the base Radix that you want to convert the number into"},minLength:{d:"is the minimum length of the returned string",v:0}}},CEILING:{s:"Rounds a number up, to the nearest multiple of significance",p:{number:{d:"is the value you want to round"},significance:{d:"is the multiple to which you want to round",v:"undefined"}},c:"Compatible"},"CEILING.MATH":{s:"Rounds a number up, to the nearest integer or to the nearest multiple of significance",p:{number:{d:"is the real number you want to round"},significance:{d:"when given and nonzero this function will round away from zero",v:"undefined"},mode:{v:0}}},"CEILING.PRECISE":{s:"Rounds a number up to the nearest integer or to the nearest multiple of significance",p:{number:{d:"is the real number you want to round"},significance:{d:"is the multiple to which you want to round",v:1}},c:"Compatible"},COMBIN:{s:"Returns the number of combinations for a given number of items",p:{number:{d:"is the total number of items"},numberChosen:{d:"is the number of items in each combination"}}},COMBINA:{s:"Returns the number of combinations with repetitions for a given number of items",p:{number:{d:"is the total number of items"},numberChosen:{d:"is the number of items in each combination"}}},DECIMAL:{s:"Converts a text representation of a number in a given base into a decimal number",p:{number:{d:"is the number that you want to convert"},radix:{d:"is the base Radix of the number you are converting"}}},DEGREES:{s:"Converts radians to degrees",p:{angle:{d:"is the angle in radians that you want to convert"}}},EVEN:{s:"Rounds a positive number up and negative number down to the nearest even integer",p:{number:{d:"is the value to round"}}},EXP:{s:"Returns e raised to the power of a given number",p:{number:{d:"is the exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm"}}},FACT:{s:"Returns the factorial of a number, equal to 1*2*3*...* Number",p:{number:{d:"is the nonnegative number you want the factorial of"}}},FACTDOUBLE:{s:"Returns the double factorial of a number",p:{number:{d:"is the value for which to return the double factorial"}}},FLOOR:{s:"Rounds a number down to the nearest multiple of significance",p:{number:{d:"is the real number you want to round"},significance:{d:"is the multiple to which you want to round. Number and Significance must either both be positive or both be negative",v:"undefined"}},c:"Compatible"},"FLOOR.MATH":{s:"Rounds a number down, to the nearest integer or to the nearest multiple of significance",p:{number:{d:"is the real number you want to round"},significance:{d:"is the multiple to which you want to round",v:"undefined"},mode:{d:"when given and nonzero this function will round towards zero",v:0}}},"FLOOR.PRECISE":{s:"Rounds a number down to the nearest integer or to the nearest multiple of significance",p:{number:{d:"is the real number you want to round"},significance:{d:"is the multiple to which you want to round",v:1}}},GCD:{s:"Returns the greatest common divisor",p:{number:{d:"number1,number2,... are 1 to 255 values"}}},INT:{s:"Rounds a number down to the nearest integer",p:{number:{d:"is the real number you want to round down to an integer"}}},"ISO.CEILING":{s:"Rounds a number up to the nearest integer",p:{number:{d:"is the real number you want to round up to an integer"},significance:{d:"is the multiple to which you want to round number",v:"undefined"}},c:"Compatible"},LCM:{s:"Returns the least common multiple",p:{number:{d:"number1,number2,... are 1 to 255 values for which you want the least common multiple"}}},LN:{s:"Returns the natural logarithm of a number",p:{number:{d:"is the positive real number for which you want the natural logarithm"}}},LOG:{s:"Returns the logarithm of a number to the base you specify",p:{number:{d:"is the positive real number for which you want the logarithm"},base:{d:"is the base of the logarithm",v:10}}},LOG10:{s:"Returns the base-10 logarithm of a number",p:{number:{d:"is the positive real number for which you want the base-10 logarithm"}}},MDETERM:{s:"Returns the matrix determinant of an array",p:{array:{d:"is a numeric array with an equal number of rows and columns, either a cell range or an array constant"}}},MINVERSE:{s:"Returns the inverse matrix for the matrix stored in an array",p:{array:{d:"is a numeric array with an equal number of rows and columns, either a cell range or an array constant"}}},MMULT:{s:"Returns the matrix product of two arrays, an array with the same number of rows as array1 and columns as array2",p:{array1:{d:"is the first array of numbers to multiply and must have the same number of columns as Array2 has rows"},array2:{d:"is the second array of numbers to multiply and must have the same number of columns as Array1 has rows"}}},MOD:{s:"Returns the remainder after a number is divided by a divisor",p:{number:{d:"is the number for which you want to find the remainder after the division is performed"},divisor:{d:"is the number by which you want to divide Number"}}},MROUND:{s:"Returns a number rounded to the desired multiple",p:{number:{d:"is the value to round"},multiple:{d:"is the multiple to which you want to round number"}}},MULTINOMIAL:{s:"Returns the multinomial of a set of numbers",p:{number:{d:"number1,number2,... are 1 to 255 values for which you want the multinomial"}}},MUNIT:{s:"Returns the unit matrix for the specified dimension",p:{dimension:{d:"is an integer specifying the dimension of the unit matrix that you want to return"}}},ODD:{s:"Rounds a positive number up and negative number down to the nearest odd integer",p:{number:{d:"is the value to round"}}},PI:{s:"Returns the value of Pi, 3.14159265358979, accurate to 15 digits",p:{}},POWER:{s:"Returns the result of a number raised to a power",p:{number:{d:"is the base number, any real number"},power:{d:"is the exponent, to which the base number is raised"}}},PRODUCT:{s:"Multiplies all the numbers given as arguments",p:{number:{d:"number1,number2,... are 1 to 255 numbers, logical values, or text representations of numbers that you want to multiply"}}},QUOTIENT:{s:"Returns the integer portion of a division",p:{numerator:{d:"is the dividend"},denominator:{d:"is the divisor"}}},RADIANS:{s:"Converts degrees to radians",p:{angle:{d:"is an angle in degrees that you want to convert"}}},RAND:{s:"Returns a random number greater than or equal to 0 and less than 1, evenly distributed (changes on recalculation)",p:{}},RANDARRAY:{s:"Returns an array of random numbers",p:{rows:{d:"the number of rows in the returned array",v:1},columns:{d:"the number of columns in the returned array",v:1},min:{d:"the minimum number you would like returned",v:0},max:{d:"the maximum number you would like returned",v:1},integer:{d:"return an integer or a decimal value. TRUE for an integer, FALSE for a decimal number",v:!1}}},RANDBETWEEN:{s:"Returns a random number between the numbers you specify",p:{bottom:{d:"is the smallest integer RANDBETWEEN will return"},top:{d:"is the largest integer RANDBETWEEN will return"}}},ROMAN:{s:"Converts an Arabic numeral to Roman, as text",p:{number:{d:"is the Arabic numeral you want to convert"},form:{d:"is the number specifying the type of Roman numeral you want.",v:0}}},ROUND:{s:"Rounds a number to a specified number of digits",p:{number:{d:"is the number you want to round"},numDigits:{d:"is the number of digits to which you want to round. Negative rounds to the left of the decimal point to the nearest integer"}}},ROUNDDOWN:{s:"Rounds a number down, toward zero",p:{number:{d:"is any real number that you want rounded down"},numDigits:{d:"is the number of digits to which you want to round. Negative rounds to the left of the decimal point to the nearest integer"}}},ROUNDUP:{s:"Rounds a number up, away from zero",p:{number:{d:"is any real number that you want rounded up"},numDigits:{d:"is the number of digits to which you want to round. Negative rounds to the left of the decimal point to the nearest integer"}}},SEQUENCE:{s:"Returns a sequence of numbers",p:{rows:{d:"the number of rows to return"},columns:{d:"the number of columns to return",v:1},start:{d:"the first number in the sequence",v:1},step:{d:"the amount to increment each subsequent value in the sequence",v:1}}},SERIESSUM:{s:"Returns the sum of a power series based on the formula",p:{x:{d:"is the input value to the power series"},n:{d:"is the initial power to which you want to raise x"},m:{d:"is the step by which to increase n for each term in the series"},coefficients:{d:"is a set of coefficients by which each successive power of x is multiplied"}}},SIGN:{s:"Returns the sign of a number: 1 if the number is positive, zero if the number is zero, or -1 if the number is negative",p:{number:{d:"is any real number"}}},SQRT:{s:"Returns the square root of a number",p:{number:{d:"is the number for which you want the square root"}}},SQRTPI:{s:"Returns the square root of (number * Pi)",p:{number:{d:"is the number by which p is multiplied"}}},SUBTOTAL:{s:"Returns a subtotal in a list or database",p:{functionNum:{d:"is the number 1 to 11 that specifies the summary function for the subtotal."},ref:{d:"ref1,ref2,... are 1 to 254 ranges or references for which you want the subtotal"}},h:"Unimplemented"},SUM:{s:"Adds all the numbers in a range of cells",p:{number:{d:"number1,number2,... are 1 to 255 numbers to sum. Logical values and text are ignored in cells, included if typed as arguments"}}},SUMIF:{s:"Adds the cells specified by a given condition or criteria",p:{range:{d:"is the range of cells you want evaluated"},criteria:{d:"is the condition or criteria in the form of a number, expression, or text that defines which cells will be added"},sumRange:{d:"are the actual cells to sum. If omitted, the cells in range are used"}},h:"Unimplemented"},SUMIFS:{s:"Adds the cells specified by a given set of conditions or criteria",p:{sumRange:{d:"are the actual cells to sum."},criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want evaluated for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition or criteria in the form of a number, expression, or text that defines which cells will be added"}},h:"Unimplemented"},SUMPRODUCT:{s:"Returns the sum of the products of corresponding ranges or arrays",p:{array1:{d:"array1,array2,... are 2 to 255 arrays for which you want to multiply and then add components. All arrays must have the same dimensions"},rest:{}}},SUMSQ:{s:"Returns the sum of the squares of the arguments. The arguments can be numbers, arrays, names, or references to cells that contain numbers",p:{number:{d:"number1,number2,... are 1 to 255 numbers, arrays, names, or references to arrays for which you want the sum of the squares"}}},SUMX2MY2:{s:"Sums the differences between the squares of two corresponding ranges or arrays",p:{arrayX:{d:"is the first range or array of numbers and can be a number or name, array, or reference that contains numbers"},arrayY:{d:"is the second range or array of numbers and can be a number or name, array, or reference that contains numbers"}}},SUMX2PY2:{s:"Returns the sum total of the sums of squares of numbers in two corresponding ranges or arrays",p:{arrayX:{d:"is the first range or array of numbers and can be a number or name, array, or reference that contains numbers"},arrayY:{d:"is the second range or array of numbers and can be a number or name, array, or reference that contains numbers"}}},SUMXMY2:{s:"Sums the squares of the differences in two corresponding ranges or arrays",p:{arrayX:{d:"is the first range or array of numbers and can be a number or name, array, or reference that contains numbers"},arrayY:{d:"is the second range or array of numbers and can be a number or name, array, or reference that contains numbers"}}},TRUNC:{s:"Truncates a number to an integer by removing the decimal, or fractional, part of the number",p:{number:{d:"is the number you want to truncate"},numDigits:{d:"is a number specifying the precision of the truncation",v:0}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={AVEDEV:{s:"Returns the average of the absolute deviations of data points from their mean. Arguments can be numbers or names, arrays, or references that contain numbers",p:{number:{d:"number1,number2,... are 1 to 255 arguments for which you want the average of the absolute deviations"}}},AVERAGE:{s:"Returns the average (arithmetic mean) of its arguments, which can be numbers or names, arrays, or references that contain numbers",p:{number:{d:"number1,number2,... are 1 to 255 numeric arguments for which you want the average"}}},AVERAGEA:{s:"Returns the average (arithmetic mean) of its arguments, evaluating text and FALSE in arguments as 0; TRUE evaluates as 1. Arguments can be numbers, names, arrays, or references",p:{value:{d:"value1,value2,... are 1 to 255 arguments for which you want the average"}}},AVERAGEIF:{s:"Finds average(arithmetic mean) for the cells specified by a given condition or criteria",p:{range:{d:"is the range of cells you want evaluated"},criteria:{d:"is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average"},averageRange:{d:"are the actual cells to be used to find the average. If omitted, the cells in range are used"}},h:"Unimplemented"},AVERAGEIFS:{s:"Finds average(arithmetic mean) for the cells specified by a given set of conditions or criteria",p:{averageRange:{d:"are the actual cells to be used to find the average."},criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want evaluated for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average"}},h:"Unimplemented"},COUNT:{s:"Counts the number of cells in a range that contain numbers",p:{number:{d:"value1,value2,... are 1 to 255 arguments that can contain or refer to a variety of different types of data, but only numbers are counted"}}},COUNTA:{s:"Counts the number of cells in a range that are not empty",p:{value:{d:"value1,value2,... are 1 to 255 arguments representing the values and cells you want to count. Values can be any type of information"}}},COUNTBLANK:{s:"Counts the number of empty cells in a specified range of cells",p:{range:{d:"is the range from which you want to count the empty cells"}},h:"Unimplemented"},COUNTIF:{s:"Counts the number of cells within a range that meet the given condition",p:{range:{d:"is the range of cells from which you want to count nonblank cells"},criteria:{d:"is the condition in the form of a number, expression, or text that defines which cells will be counted"}},h:"Unimplemented"},COUNTIFS:{s:"Counts the number of cells specified by a given set of conditions or criteria",p:{criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want evaluated for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition in the form of a number, expression, or text that defines which cells will be counted"}},h:"Unimplemented"},LARGE:{s:"Returns the k-th largest value in a data set. For example, the fifth largest number.",p:{array:{d:"is the array or range of data for which you want to determine the k-th largest value."},k:{d:"is the position (from the largest) in the array or cell range of the value to return."}}},MAX:{s:"Returns the largest value in a set of values. Ignores logical values and text",p:{number:{d:"number1,number2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum"}}},MAXA:{s:"Returns the largest value in a set of values. Does not ignore logical values and text",p:{value:{d:"value1,value2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum"}}},MAXIFS:{s:"Returns the maximum value among cells specified by a given set of conditions or criteria",p:{maxRange:{d:"the cells in which to determine the maximum value"},criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want to evaluate for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition or criteria in the form of a number, expression, or text that defines which cells will be included when determining the maximum value"}},h:"Unimplemented"},MEDIAN:{s:"Returns the median, or the number in the middle of the set of given numbers",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the median"}}},MIN:{s:"Returns the smallest number in a set of values. Ignores logical values and text",p:{number:{d:"number1,number2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum"}}},MINA:{s:"Returns the smallest value in a set of values. Does not ignore logical values and text",p:{value:{d:"value1,value2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum"}}},MINIFS:{s:"Returns the minimum value among cells specified by a given set of conditions or criteria",p:{maxRange:{d:"is the range of cells to evaluate for the minimum value"},criteriaRange:{d:"is the range of cells to evaluate against the criteria"},criteria:{d:"is the criteria to evaluate against the criteria range"}},h:"Unimplemented"},PERMUT:{s:"Returns the number of permutations for a given number of objects that can be selected from the total objects",p:{number:{d:"is the total number of objects"},numberChoosen:{d:"is the number of objects in each permutation"}},h:"Unimplemented"},PERMUTATIONA:{s:"Returns the number of permutations for a given number of objects (with repetitions) that can be selected from the total objects",p:{number:{d:"is the total number of objects"},numberChoosen:{d:"is the number of objects in each permutation"}},h:"Unimplemented"},SMALL:{s:"Returns the k-th smallest value in a data set. For example, the fifth smallest number",p:{array:{d:"is an array or range of numerical data for which you want to determine the k-th smallest value"},k:{d:"is the position (from the smallest) in the array or range of the value to return"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={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"}}}};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={ADDRESS:{s:"Creates a cell reference as text, given specified row and column numbers",p:{rowNum:{d:"is the row number to use in the cell reference: Row_number = 1 for row 1"},columnNum:{d:"is the column number to use in the cell reference. For example, Column_number = 4 for column D"},absNum:{d:"specifies the reference type: absolute = 1; absolute row/relative column = 2; relative row/absolute column = 3; relative = 4",v:1},a1:{d:"is a logical value that specifies the reference style: A1 style = 1 or TRUE; R1C1 style = 0 or FALSE",v:!0},sheetText:{d:"is text specifying the name of the worksheet to be used as the external reference",v:""}}},AREAS:{s:"Returns the number of areas in a reference. An area is a range of contiguous cells or a single cell",p:{references:{d:"is a reference to a cell or range of cells and can refer to multiple areas"}}},CHOOSE:{s:"Chooses a value or action to perform from a list of values, based on an index number",p:{indexNum:{d:"specifies which value argument is selected. Index_num must be between 1 and 254, or a formula or a reference to a number between 1 and 254"},value1:{d:"value1,value2,... are 1 to 254 numbers, cell references, defined names, formulas, functions, or text arguments from which CHOOSE selects"},value:{}}},CHOOSECOLS:{s:"Returns columns from an array or reference.",p:{array:{d:"The array or reference from which to choose columns."},colNum1:{d:"col_num1,col_num2,... The number of the column to be returned."},colNum:{}}},CHOOSEROWS:{s:"Returns rows from an array or reference.",p:{array:{d:"The array or reference from which to choose rows."},rowNum1:{d:"row_num1,row_num2,... The number of the row to be returned."},rowNum:{}}},COLUMN:{s:"Returns the column number of a reference",p:{reference:{d:"is the cell or range of contiguous cells for which you want the column number. If omitted, the cell containing the COLUMN function is used"}}},COLUMNS:{s:"Returns the number of columns in an array or reference",p:{array:{d:"is an array or array formula, or a reference to a range of cells for which you want the number of columns"}}},DROP:{s:"Drops rows or columns from array start or end.",p:{array:{d:"The array from which to drop rows or columns."},row:{d:"The number of rows to drop. A negative value drops from the end of the array."},columns:{d:"The number of columns to drop. A negative value drops from the end of the array.",v:0}},h:"Unimplemented"},EXPAND:{s:"Expands an array to the specified dimensions.",p:{array:{d:"The array to expand."},row:{d:"The number of rows in the expanded array. If missing, rows will not be expanded."},columns:{d:"The number of columns in the expanded array. If missing, columns will not be expanded.",v:0},padWidth:{d:"The value with which to pad. The default is #N/A.",v:"FormulaError.BuiltIn.NA"}},h:"Unimplemented"},FIELDVALUE:{s:"Extracts a value from a field of a given record",p:{value:{d:"The record from which you want to extract the field"},fieldName:{d:"The names of the field or fields that you want to extract"}},h:"Unimplemented"},FILTER:{s:"Filter a range or array",p:{array:{d:"the range or array to filter"},include:{d:"an array of booleans where TRUE represents a row or column to retain"},ifEmpty:{d:"return if no items are retained"}},h:"Unimplemented"},FORMULATEXT:{s:"Returns a formula as a string",p:{reference:{d:"is a reference to a formula"}}},GETPIVOTDATA:{s:"Extracts data stored in a PivotTable.",p:{dataField:{d:"is the name of the data field to extract data from"},pivotTable:{d:"is a reference to a cell or range of cells in the PivotTable that contains the data you want to retrieve"},field1:{d:"field1,field2,... field to refer to"},item1:{d:"item1,item2,... field item to refer to"}},h:"Unimplemented"},GROUPBY:{s:"Aggregate values by row fields",p:{rowFields:{d:"The range or array containing the row fields"},values:{d:"The range or array containing the values to aggregate"},fn:{d:"The function used to do the aggregations"},fieldHeaders:{d:"A number between 0 and 3 that specifies whether the field data has headers and whether field headers should be returned in the results",v:null},totalDepth:{d:"Show totals for the row fields. 0 for none, 1 for grand totals, 2 for grand total and first level subtotals, etc",v:2},sortOrder:{d:"The column index to sort the row fields on. A negative index will sort in reverse order",v:null},filterArray:{d:"param-534 paramName-535",v:null},fieldRelationship:{d:"The relationship of fields when multiple columns are supplied to the row_fields argument",v:0}},h:"Unimplemented"},HLOOKUP:{p:{lookupValue:{d:"is the value to be found in the first row of the table and can be a value, a reference, or a text string"},tableArray:{d:"is a table of text, numbers, or logical values in which data is looked up. Table_array can be a reference to a range or a range name"},rowIndexNum:{d:"is the row number in table_array from which the matching value should be returned. The first row of values in the table is row 1"},rangeLookup:{d:"is a logical value: to find the closest match in the top row (sorted in ascending order) = TRUE; find an exact match = FALSE",v:!0}}},HSTACK:{s:"Horizontally stacks arrays into one array.",p:{array1:{},array:{d:"array1,array2,... An array or reference to be stacked."}},h:"Unimplemented"},HYPERLINK:{s:"Creates a shortcut or jump that opens a document stored on your hard drive, a network server, or on the Internet",p:{linkLocation:{d:"is the text giving the path and file name to the document to be opened, a hard drive location, UNC address, or URL path"},friendlyName:{d:"is text or a number that is displayed in the cell. If omitted, the cell displays the Link_location text"}},h:"Unimplemented"},IMAGE:{s:"Returns an image from a given source",p:{source:{d:"The path of the source that points to the image"},alternateText:{d:"The alternative text that describes the image for accessibility"},sizing:{d:"The setting that determines the dimensions in which the image will be rendered in the cell"},height:{d:"The custom height of the image in pixels"},width:{d:"The custom width of the image in pixels"}},h:"Unimplemented"},INDEX:{s:"Returns a value or reference of the cell at the intersection of a particular row and column, in a given range",p:{array:{d:"is a range of cells or an array constant."},rowNum:{d:"selects the row in Array or Reference from which to return a value. If omitted, Column_num is required",v:0},colNum:{d:"selects the column in Array or Reference from which to return a value. If omitted, Row_num is required",v:0},areaNum:{d:"selects the area in Array or Reference from which to return a value. If omitted, the first area is used",v:1}}},INDIRECT:{s:"Returns the reference specified by a text string",p:{refText:{d:"is a reference to a cell that contains an A1- or R1C1-style reference, a name defined as a reference, or a reference to a cell as a text string"},a1:{d:"is a logical value that specifies the type of reference in Ref_text: R1C1-style = FALSE; A1-style = TRUE.",v:!0}}},LOOKUP:{s:"Looks up a value either from a one-row or one-column range or from an array. Provided for backward compatibility",p:{lookupValue:{d:"is a value that LOOKUP searches for in Lookup_vector and can be a number, text, a logical value, or a name or reference to a value"},lookupVector:{d:"is a range that contains only one row or one column of text, numbers, or logical values, placed in ascending order"},resultVector:{d:"is a range that contains only one row or column, the same size as Lookup_vector"}},h:"Unimplemented"},MATCH:{s:"Returns the relative position of an item in an array that matches a specified value in a specified order",p:{lookupValue:{d:"is the value you use to find the value you want in the array, a number, text, or logical value, or a reference to one of these"},lookupArray:{d:"is a contiguous range of cells containing possible lookup values, an array of values, or a reference to an array"},matchType:{d:"is a number 1, 0, or -1 indicating which value to return."}},h:"Unimplemented"},OFFSET:{s:"Returns a reference to a range that is a given number of rows and columns from a given reference",p:{reference:{d:"is the reference from which you want to base the offset, a reference to a cell or range of adjacent cells"},rows:{d:"is the number of rows, up or down, that you want the upper-left cell of the result to refer to"},cols:{d:"is the number of columns, to the left or right, that you want the upper-left cell of the result to refer to"},height:{d:"is the height, in number of rows, that you want the result to be, the same height as Reference if omitted"},width:{d:"is the width, in number of columns, that you want the result to be, the same width as Reference if omitted"}}},PIVOTBY:{p:{rowFields:{},colFields:{},values:{},fn:{},fieldHeaders:{v:null},rowTotalDepth:{v:2},rowSortOrder:{v:null},colTotalDepth:{v:2},colSortOrder:{v:null},filterArray:{v:null},relativeTo:{v:0}},h:"Unimplemented"},ROW:{s:"Returns the row number of a reference",p:{reference:{d:"is the cell or a single range of cells for which you want the row number; if omitted, returns the cell containing the ROW function"}}},ROWS:{s:"Returns the number of rows in a reference or array",p:{array:{d:"is an array, an array formula, or a reference to a range of cells for which you want the number of rows"}}},RTD:{s:"Retrieves the real-time data (RTD) from a program that supports COM automation",p:{progId:{d:"is the programmatic identifier (ProgID) of a registered COM automation add-in. Enclose the id in quotation marks"},server:{d:"is the name of the server that provides the real-time data. If running locally us an empty string"},topic:{d:"topic1,topic2,... are 1 to 38 parameters that specify a piece of data"}},h:"Unimplemented"},SORT:{s:"Sorts a range or array",p:{array:{d:"the range or array to sort"},sortIndex:{d:"a number indicating the row or column to sort by"},sortOrder:{d:"a number indicating the desired sort order; 1 for ascending order (default), -1 for descending order"},byCol:{d:"a logical value indicating the desired sort direction: FALSE to sort by row (default), TRUE to sort by column",v:!1}},h:"Unimplemented"},SORTBY:{s:"Sorts a range or array based on the values in a corresponding range or array",p:{array:{d:"the range or array to sort"},byArray1:{d:"by_array1,by_array2,... the range or array to sort on"},sortOrder:{d:"sort_order1,sort_order2,... a number indicating the desired sort order; 1 for ascending order (default), -1 for descending order"}},h:"Unimplemented"},TAKE:{s:"Returns rows or columns from array start or end.",p:{array:{d:"The array from which to take rows or columns."},rows:{d:"The number of rows to take. A negative value takes from the end of the array."},columns:{d:"The number of columns to take. A negative value takes from the end of the array.",v:0}},h:"Unimplemented"},TOCOL:{s:"Returns the array as one column.",p:{array:{d:"The array or reference to return as a column."},ignore:{d:"Whether to ignore certain types of values. By default, no values are ignored.",v:0},scanByColumn:{d:"Scan the array by column. By default, the array is scanned by row.",v:!1}},h:"Unimplemented"},TOROW:{s:"Returns the array as one row.",p:{array:{d:"The array or reference to return as a column."},ignore:{d:"Whether to ignore certain types of values. By default, no values are ignored.",v:0},scanByColumn:{d:"Scan the array by column. By default, the array is scanned by row.",v:!1}},h:"Unimplemented"},TRANSPOSE:{s:"Converts a vertical range of cells to a horizontal range, or vice versa",p:{array:{d:"is a range of cells on a worksheet or an array of values that you want to transpose"}}},TRIMRANGE:{s:"Trims a range to the last used cell in any direction.",p:{range:{d:"The range to be trimmed"},rowTrimMode:{d:"Row trim direction. 0 - none, 1 - leading, 2 - trailing, 3 - both.",v:3},colTrimMode:{d:"Column trim direction. 0 - none. 1 - leading, 2 - trailing, 3 - both.",v:3}}},UNIQUE:{s:"Returns the unique values from a range or array.",p:{array:{d:"the range or array from which to return unique rows or columns"},byCol:{d:"is a logical value: compare rows against each other and return the unique rows = FALSE; compare columns against each other and return the unique columns = TRUE",v:!1},exactlyOnce:{d:"is a logical value: return rows or columns that occur exactly once from the array = TRUE; return all distinct rows or columns from the array = FALSE",v:!1}},h:"Unimplemented"},VLOOKUP:{s:"Looks for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify. By default, the table must be sorted in an ascending order",p:{lookupValue:{d:"is the value to be found in the first column of the table, and can be a value, a reference, or a text string"},tableArray:{d:"is a table of text, numbers, or logical values, in which data is retrieved. Table_array can be a reference to a range or a range name"},colIndexNum:{d:"is the column number in table_array from which the matching value should be returned. The first column of values in the table is column 1"},rangeLookup:{d:"is a logical value: to find the closest match in the first column (sorted in ascending order) = TRUE; find an exact match = FALSE",v:!0}}},VSTACK:{s:"Vertically stacks arrays into one array.",p:{array1:{d:"array1,array2,... An array or reference to be stacked."},array:{d:"array1,array2,... An array or reference to be stacked."}},h:"Unimplemented"},WRAPCOLS:{s:"Wraps a row or column vector after a specified number of values.",p:{vector:{d:"The vector or reference to wrap."},wrapCount:{d:"The maximum number of values per column."},padWith:{d:"The value with which to pad. The default is #N/A.",v:"FormulaError.BuiltIn.NA"}},h:"Unimplemented"},WRAPROWS:{s:"Wraps a row or column vector after a specified number of values.",p:{vector:{d:"The vector or reference to wrap."},wrapCount:{d:"The maximum number of values per column."},padWith:{d:"The value with which to pad. The default is #N/A.",v:"FormulaError.BuiltIn.NA"}},h:"Unimplemented"},XLOOKUP:{s:"Searches a range or an array for a match and returns the corresponding item from a second range or array. By default, an exact match is used",p:{lookupValue:{d:"is the value to search for"},lookupArray:{d:"is the array or range to search"},returnArray:{d:"is the array or range to return"},ifNotFound:{d:"returned if no match is found"},rangeLookup:{v:!0},matchMode:{d:"specify how to match lookup_value against the values in lookup_array"},searchMode:{d:"specify the search mode to use. By default, a first to last search will be used",v:!0}},h:"Unimplemented"},XMATCH:{s:"Returns the relative position of an item in an array. By default, an exact match is required",p:{lookupValue:{d:"is the value to search for"},lookupArray:{d:"is the array or range to search"},matchMode:{d:"specify how to match the lookup_value against the values in lookup_array"},searchMode:{d:"specify the search mode to use. By default, a first to last search will be used",v:!0}},h:"Unimplemented"}};