@sheetxl/sdk 0.8.0-beta.5 → 0.8.0-beta.7

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 (109) hide show
  1. package/browser/cjs/{BV3LBQXG3kA013a2.cjs → CrcmEew-dr51xpf9.cjs} +1 -1
  2. package/browser/cjs/CwzIjMpnMKeypivl.cjs +1 -0
  3. package/browser/cjs/D3Vlh9UOBKtvlXBL.cjs +93 -0
  4. package/browser/cjs/{D_hl_D3IBlVqjbUu.cjs → E08wpSuqr-UadjSZ.cjs} +1 -1
  5. package/browser/cjs/{CvjJnxfMX3aal6Zj.cjs → O6F5xVsoF2hTiprv.cjs} +1 -1
  6. package/browser/cjs/index.cjs +2 -2
  7. package/browser/esm/{DWJJtu3q6iMfUbbN.mjs → B7v0PdbyuBlceMLG.mjs} +2 -2
  8. package/browser/esm/{BiUnakUlo61EtntE.mjs → BADV_AABAw-3U9iO.mjs} +1 -1
  9. package/browser/esm/{CoiupvxiR8tLrCa4.mjs → CFDfAmU2o5HFRTu4.mjs} +2 -2
  10. package/browser/esm/{CLfbadk6S57dy8sc.mjs → DRpWwH6CWI0QaNlp.mjs} +9549 -8412
  11. package/browser/esm/{ahTq_KBqu4jWkQ8A.mjs → DkHfJEJlvjDJnXEU.mjs} +2 -2
  12. package/browser/esm/{B45qhpdlbHHa6-gu.mjs → bSQdR4WlmM40WWFR.mjs} +2 -2
  13. package/browser/esm/index.mjs +9 -8
  14. package/browser/esm/{B6t-k7D3HcTIJ-Xl.mjs → tBEZ_r7Bkp7CrFLF.mjs} +2 -2
  15. package/node/esm/{BP9JmWMpUInDk4OG.mjs → BShIHUY7pxerJVT8.mjs} +1 -1
  16. package/node/esm/{CDh1Fw2maXvyOhIs.mjs → CWJELJxqO-1z0tJU.mjs} +1 -1
  17. package/node/esm/{B2dQyLw_fQU5VuXt.mjs → DbAKZ-Ythj1VwgyS.mjs} +1 -1
  18. package/node/esm/{K4Xw9Ur7uFf9M5Gh.mjs → HMR0po5avaUU1XUZ.mjs} +1 -1
  19. package/node/esm/index.mjs +11533 -10368
  20. package/package.json +6 -6
  21. package/resources/locales/de/model.msg.json +16 -0
  22. package/resources/locales/en/model.msg.json +16 -0
  23. package/types/scripting-api.json +6891 -6844
  24. package/types/scripting.d.ts +493 -137
  25. package/types/src/calculation/_TableRename.d.ts +13 -0
  26. package/types/src/calculation/grid/CalcGrid.d.ts +18 -3
  27. package/types/src/calculation/grid/CalcGridBackend.d.ts +49 -0
  28. package/types/src/calculation/grid/CalcGridProxy.d.ts +5 -0
  29. package/types/src/calculation/grid/ICalcGrid.d.ts +37 -0
  30. package/types/src/calculation/grid/_CalcRequest.d.ts +22 -0
  31. package/types/src/calculation/state/CalculationContext.d.ts +7 -1
  32. package/types/src/cell/ICell.d.ts +21 -1
  33. package/types/src/chart/Chart.d.ts +5 -18
  34. package/types/src/chart/ChartCollection.d.ts +1 -1
  35. package/types/src/chart/IChart.d.ts +11 -10
  36. package/types/src/chart/IChartCollection.d.ts +3 -3
  37. package/types/src/color/_BuiltInIndexDefs.d.ts +6 -0
  38. package/types/src/comment/Comment.d.ts +69 -7
  39. package/types/src/comment/IComment.d.ts +70 -51
  40. package/types/src/comment/NoteMovable.d.ts +26 -0
  41. package/types/src/comment/_CommentUtils.d.ts +23 -1
  42. package/types/src/comment/_NoteBox.d.ts +50 -0
  43. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +27 -2
  44. package/types/src/condition/BuiltInOperators/AfterEqualToOperator.d.ts +2 -0
  45. package/types/src/condition/BuiltInOperators/AfterOperator.d.ts +2 -0
  46. package/types/src/condition/BuiltInOperators/AndOperator.d.ts +3 -1
  47. package/types/src/condition/BuiltInOperators/AverageOperator.d.ts +2 -0
  48. package/types/src/condition/BuiltInOperators/BeforeEqualToOperator.d.ts +2 -0
  49. package/types/src/condition/BuiltInOperators/BeforeOperator.d.ts +2 -0
  50. package/types/src/condition/BuiltInOperators/BetweenOperator.d.ts +2 -0
  51. package/types/src/condition/BuiltInOperators/ContainsOperator.d.ts +2 -0
  52. package/types/src/condition/BuiltInOperators/EndsWithOperator.d.ts +2 -0
  53. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -0
  54. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +2 -0
  55. package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +2 -0
  56. package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +2 -0
  57. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +2 -0
  58. package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +2 -0
  59. package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +2 -0
  60. package/types/src/condition/BuiltInOperators/NotOperator.d.ts +2 -0
  61. package/types/src/condition/BuiltInOperators/OrOperator.d.ts +3 -1
  62. package/types/src/condition/BuiltInOperators/StartsWithOperator.d.ts +2 -0
  63. package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +2 -0
  64. package/types/src/condition/BuiltInOperators/TopNOperator.d.ts +6 -0
  65. package/types/src/condition/Condition.d.ts +2 -0
  66. package/types/src/condition/ICondition.d.ts +59 -2
  67. package/types/src/condition/_ConditionUtils.d.ts +10 -0
  68. package/types/src/filter/IFilter.d.ts +76 -1
  69. package/types/src/movable/AbstractMovableContent.d.ts +54 -0
  70. package/types/src/movable/Control.d.ts +5 -7
  71. package/types/src/movable/CustomElement.d.ts +4 -5
  72. package/types/src/movable/IControl.d.ts +7 -5
  73. package/types/src/movable/ICustomElement.d.ts +7 -2
  74. package/types/src/movable/IMovable.d.ts +74 -42
  75. package/types/src/movable/IMovableCollection.d.ts +6 -0
  76. package/types/src/movable/Movable.d.ts +53 -32
  77. package/types/src/numFmt/_FormatCell.d.ts +9 -0
  78. package/types/src/person/index.d.ts +1 -0
  79. package/types/src/picture/IPicture.d.ts +7 -1
  80. package/types/src/picture/Picture.d.ts +5 -4
  81. package/types/src/primitives/Range.d.ts +31 -1
  82. package/types/src/primitives/RangeStats.d.ts +7 -2
  83. package/types/src/primitives/ReferenceRange.d.ts +2 -0
  84. package/types/src/primitives/stats/AggregateStats.d.ts +49 -15
  85. package/types/src/primitives/stats/FrequencyStats.d.ts +1 -1
  86. package/types/src/primitives/stats/Ranked.d.ts +1 -1
  87. package/types/src/primitives/stats/SortedNumbers.d.ts +2 -2
  88. package/types/src/shape/IShape.d.ts +6 -4
  89. package/types/src/shape/Shape.d.ts +5 -10
  90. package/types/src/sheet/ISheet.d.ts +3 -2
  91. package/types/src/sheet/Sheet.d.ts +73 -21
  92. package/types/src/sheet/SheetCell.d.ts +1 -1
  93. package/types/src/sheet/_SheetFilterUtils.d.ts +17 -0
  94. package/types/src/sheet/_SheetStateTypes.d.ts +18 -0
  95. package/types/src/sheet/_SheetUtils.d.ts +15 -0
  96. package/types/src/sheetHeader/ISheetHeader.d.ts +17 -0
  97. package/types/src/sheetHeader/SheetHeader.d.ts +11 -0
  98. package/types/src/slicer/ISlicer.d.ts +7 -2
  99. package/types/src/slicer/Slicer.d.ts +5 -9
  100. package/types/src/table/AnchoredTable.d.ts +46 -6
  101. package/types/src/table/ITable.d.ts +10 -1
  102. package/types/src/table/ITableCollection.d.ts +10 -0
  103. package/types/src/table/_FilterField.d.ts +9 -1
  104. package/types/src/text/richtext/IRichText.d.ts +36 -0
  105. package/types/src/text/richtext/index.d.ts +1 -0
  106. package/types/src/transaction/ITransaction.d.ts +11 -0
  107. package/types/src/transaction/Transaction.d.ts +2 -0
  108. package/browser/cjs/By2s44r4eRFvMq6H.cjs +0 -93
  109. package/browser/cjs/Nt1C8528otcBXJ2J.cjs +0 -1
@@ -1 +1 @@
1
- async function e(e){let t=`@0.8.0-beta.5`;t!==`@local`&&t!==`@0.0.0`||(t=``);let n=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${t}/types/${e}`,r=await fetch(n);if(!r.ok)throw Error(`Unable to load ${e} (${r.status}) from ${n}.`);return r.text()}exports.loadScriptingApi=function(){return e(`scripting-api.json`)},exports.loadScriptingDeclarations=function(){return e(`scripting.d.ts`)};
1
+ async function e(e){let t=`@0.8.0-beta.7`;t!==`@local`&&t!==`@0.0.0`||(t=``);let n=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${t}/types/${e}`,r=await fetch(n);if(!r.ok)throw Error(`Unable to load ${e} (${r.status}) from ${n}.`);return r.text()}exports.loadScriptingApi=function(){return e(`scripting-api.json`)},exports.loadScriptingDeclarations=function(){return e(`scripting.d.ts`)};
@@ -1 +1 @@
1
- exports.loadEnumManifest=async function(){let e=`@0.8.0-beta.5`;e!==`@local`&&e!==`@0.0.0`||(e=``);let t=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${e}/types/scripting-enums.json`,n=await fetch(t);if(!n.ok)throw Error(`Unable to load script enum runtime (${n.status}) from ${t}.`);return n.json()};
1
+ exports.loadEnumManifest=async function(){let e=`@0.8.0-beta.7`;e!==`@local`&&e!==`@0.0.0`||(e=``);let t=`https://cdn.jsdelivr.net/npm/@sheetxl/sdk${e}/types/scripting-enums.json`,n=await fetch(t);if(!n.ok)throw Error(`Unable to load script enum runtime (${n.status}) from ${t}.`);return n.json()};
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./B7_pDFYCVzt-3hUs.cjs"),t=require("./By2s44r4eRFvMq6H.cjs");let n=require("@sheetxl/primitives"),r=require("@sheetxl/utils");var i,a=class extends r.UndoManager{constructor(e,t=50){super(t),this._transactions=e,this._floorId=e?e.getCurrentCommit(!1).getId():null,this._removeListener=e?.addListener({onCommitChange:()=>this._notifyOnStackChange()})}_undoCommits(e=this.maxStack){let t=this._transactions;if(!t)return[];let n=t.getLog(t.getCurrentCommit(!1).getId(),2**53-1),r=[];for(let t=0;t<n.length&&r.length<e;t++){let e=n[t];if(e.getId()===this._floorId||t===n.length-1)break;e.getDescription()&&r.push(e)}return r}_redoCommits(e=this.maxStack){let t=this._transactions;if(!t)return[];let n=t.getCurrentCommit(!1).getId(),r=t.getTipCommit().getId();if(r===n)return[];let i=t.getLog(r,2**53-1),a=[],o=!1;for(let e of i){if(e.getId()===n){o=!0;break}a.push(e)}if(!o)return[];a.reverse();let s=[];for(let t of a)if(t.getDescription()&&s.push(t),s.length>=e)break;return s}undo(e=1){let t=this._transactions;if(!t)return;let n=!1;try{for(let r=0;r<e;r++){let[e]=this._undoCommits(1);if(!e)break;t.revert(e.getId()),n=!0}}finally{n&&this._notifyOnStackChange()}}redo(e=1){let t=this._transactions;if(!t)return;let n=!1;try{for(let r=0;r<e;r++){let[e]=this._redoCommits(1);if(!e){r===0&&this._repeatOperation?.repeat();break}t.restore(e.getId()),n=!0}}finally{n&&this._notifyOnStackChange()}}hasUndo(){return this._undoCommits(1).length>0}hasRedo(){return this._redoCommits(1).length>0||this._repeatOperation!==null}getTopUndoDescription(){return this._undoCommits(1)[0]?.getDescription()??null}getTopRedoDescription(){return this._repeatOperation===null?this._redoCommits(1)[0]?.getDescription()??null:this._repeatOperation.description}getUndoDescriptions(){return this._undoCommits().map(e=>e.getDescription())}getRedoDescriptions(){let e=this._redoCommits().map(e=>e.getDescription());return e.length===0&&this._repeatOperation!==null&&e.push(this._repeatOperation.description),Object.freeze(e)}addUndoOperation(){throw Error(`TransactionUndoManager derives its stack from the commit log; commit a described transaction instead.`)}clear(e=!0){this._transactions&&(this._floorId=this._transactions.getCurrentCommit(!1).getId()),super.clear(e)}close(){this._removeListener?.()}};i||={};var o=class e{constructor(n,r={}){this._password=null,this._emitter=new t.Pn(this),this._path=n??null,this._name=r.name??null,this._format=r.format??null,this._size=r.size??null,this._lastModified=r.lastModified??null,this._canWrite=r.canWrite??e._defaultCanWrite(this._path),this._encryption=r.encryption??null}static _defaultCanWrite(e){return!!e&&!/^(https?:|data:|blob:)/i.test(e)}_cleanPath(){return this._path?this._path.split(/[?#]/)[0]:null}getName(){if(this._name!==null&&this._name!==void 0)return this._name;let e=this._cleanPath();return e&&t.On(e)||null}getPath(){return this._path}getFormat(){return this._format?this._format:this.getExtension()}getExtension(){let e=this._cleanPath();if(!e)return null;let n=t.kn(e);return n?n.toLowerCase():null}getEncryption(){return this._encryption}isEncrypted(){return this._encryption!==null||this._password!==null}setPassword(e){this._password!==(e??null)&&(this._password=e??null,this._password===null&&(this._encryption=null),this._emitter.notify(`onChange`))}getPassword(){return this._password}getSize(){return this._size}getLastModified(){return this._lastModified}canWrite(){return this._canWrite}setName(e){this.update({name:e})}update(e){let t=!1;return e.lastModified!==void 0&&e.lastModified!==this._lastModified&&(this._lastModified=e.lastModified,t=!0),e.name!==void 0&&e.name!==this._name&&(this._name=e.name,t=!0),e.format!==void 0&&e.format!==this._format&&(this._format=e.format,t=!0),e.size!==void 0&&e.size!==this._size&&(this._size=e.size,t=!0),e.canWrite!==void 0&&e.canWrite!==this._canWrite&&(this._canWrite=e.canWrite,t=!0),e.encryption!==void 0&&e.encryption!==this._encryption&&(this._encryption=e.encryption,t=!0),t&&this._emitter.notify(`onChange`),this}addListeners(e,t){return this._emitter.addListeners(e,t)}get[Symbol.toStringTag](){return`[Origin]`}toString(){let e=this._cleanPath(),t=e?e.split(/[/\\]/).pop()||e:this._name??`(unbound)`,n=this._size;if(n==null)return t;if(n<1024)return`${t} ${n}B`;let r=Math.floor(Math.log(n)/Math.log(1024)),i=[`B`,`KB`,`MB`,`GB`,`TB`];return`${t} ${(n/1024**r).toFixed(2)}${i[Math.min(r,i.length-1)]}`}},s=new WeakMap,c=new Set,l=e=>s.get(e)??null,u=()=>Array.from(c,e=>e.getOrigin()),d=class e{constructor(n){this._released=!1,e._assertFree(n),this._emitter=new t.Pn(this),this._origin=n,s.set(n,this),c.add(this)}getOrigin(){return this._origin}setOrigin(t){t!==this._origin&&(e._assertFree(t),this._released||(s.delete(this._origin),s.set(t,this)),this._origin=t,this._emitter.notify(`onOriginChange`))}release(){this._released||(this._released=!0,s.get(this._origin)===this&&s.delete(this._origin),c.delete(this))}addListeners(e,t){return this._emitter.addListeners(e,t)}static _assertFree(e){if(s.has(e))throw Error(`This origin already backs an open workbook; an origin backs one workbook at a time.`)}},f=class{constructor(){this._defaultStringSourceType=`filepath`}async read(e){let n=e.options??{},i=e.source;if(typeof i==`function`&&(i=i()),i&&typeof i==`object`&&typeof i.then==`function`&&(i=await Promise.resolve(i)),i==null&&(i=await this.resolveSource(e),i==null))return null;let a=i,o=await this.fileFromHandle(i);o&&(i=o);let s=n.format,c=this._detectSourceType(i);if(!c)throw Error(`Unable to detect source type from provided input.`);let l,u,d=!1;if(c===`filepath`){let e=typeof i==`string`&&i.startsWith(`file://`)?i.slice(7):i;i=await this.filePathToFile(e),c=`file`,d=!0}switch(c){case`file`:{let e=i,r=e?.name,a=r?`${t.On(r)}`:``;l=await e.arrayBuffer(),u={format:s,ext:t.kn(r),name:a,absolutePath:r,size:e.size,lastModified:e.lastModified,canWrite:!n.asCopy&&(!!o||d&&this._canWriteLocalPath())};break}case`blob`:{let e=i;l=await e.arrayBuffer(),u={format:s,size:e.size};break}case`base64`:{let e;if(i&&typeof i==`object`&&`base64`in i)e=i.base64;else if(typeof i==`string`&&i.startsWith(`data:`)){let[,t]=i.split(`,`);e=t}else e=i;l=r.BufferUtils.base64ToArrayBuffer(e),u={format:s,size:e.length};break}case`fetch`:{let e,n,r;if(typeof i==`string`)e=i;else{if(!i||typeof i!=`object`||!(`input`in i))throw Error(`Invalid fetch source provided.`);{let t=i;e=t.input,n=t.init,r=t.timeout}}let a=r||3e4,o=new AbortController,c=setTimeout(()=>o.abort(),a),d=typeof e==`string`?e:e.toString(),f=t.kn(d);try{let r=await fetch(e,{...n,signal:o.signal});if(clearTimeout(c),!r.ok)throw Error(`Failed to fetch: ${r.status} ${r.statusText}`);let i=await r.arrayBuffer();if(!i)throw Error(`Unable to fetched content: ${d}`);l=i,u={format:s,ext:f,name:t.On(d,!0),absolutePath:d}}catch(e){throw clearTimeout(c),e.name===`AbortError`?Error(`Fetch timeout after ${a}ms: ${d}`):e}break}case`buffer`:l=i,u={format:s};break;case`stream`:{let e=i.getReader(),t=[],n=0;try{for(;;){let{done:r,value:i}=await e.read();if(r)break;t.push(i),n+=i.length}}finally{e.releaseLock()}let r=new ArrayBuffer(n),a=new Uint8Array(r),o=0;for(let e of t)a.set(e,o),o+=e.length;l=r,u={format:s};break}default:throw Error(`Unsupported source type: ${c}`)}u.canWrite&&await this.findOpenOrigin(a,u)&&(u.canWrite=!1);let f=await e.decode(l,{sourceType:c,...u});return f?(await this.onWorkbookRead(f,a),f):null}async findOpenOrigin(e,t){return t.absolutePath?this.findOpenPath(t.absolutePath):null}findOpenPath(e,t){return u().find(n=>{if(n===t||!n.canWrite())return!1;let r=n.getPath();return!!r&&this.isSamePath(r,e)})??null}isSamePath(e,t){return e===t}async fileFromHandle(e){return null}async resolveSource(e){return null}async onWorkbookRead(e,t){}_canWriteLocalPath(){return!1}_detectSourceType(e){if(e&&typeof e==`object`&&`base64`in e)return`base64`;if(e&&typeof e==`object`&&`input`in e)return`fetch`;if(typeof e==`string`){if(e.startsWith(`data:`))return`base64`;if(e.startsWith(`http://`)||e.startsWith(`https://`))return`fetch`;if(e.startsWith(`file://`))return`filepath`;let t=this._defaultStringSourceType;return e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`)||/^[a-zA-Z]:[/\\]/.test(e),t}if(typeof File<`u`&&e instanceof File)return`file`;if(typeof Blob<`u`&&e instanceof Blob)return`blob`;let t=e instanceof ArrayBuffer||Object.prototype.toString.call(e)===`[object ArrayBuffer]`,n=ArrayBuffer.isView(e),i=r.BufferUtils.isNodeBuffer(e);return t||n||i?`buffer`:typeof ReadableStream<`u`&&e instanceof ReadableStream||Object.prototype.toString.call(e)===`[object ReadableStream]`||e&&typeof e.getReader==`function`&&e.locked!==void 0?`stream`:null}},p=class extends f{constructor(e,t){super(),this._getWriteFormats=e,this._getReadFormats=t,this._defaultStringSourceType=`fetch`,this._handleCache=new WeakMap}async fileFromHandle(e){return h(e)?e.getFile():null}async resolveSource(){let e=await this._getReadFormats?.()??[];if(typeof globalThis.showOpenFilePicker==`function`)try{let t=function(e){let t=m(e);if(t.length<=1)return t;let n=new Set,r={};for(let e of t)for(let[t,i]of Object.entries(e.accept))for(let e of i)n.has(e)||(n.add(e),(r[t]??=[]).push(e));return[{description:`All Supported`,accept:r},...t]}(e),[n]=await globalThis.showOpenFilePicker(t.length?{types:t}:void 0);return n}catch(e){if(e?.name===`AbortError`)return null;throw e}let t=e.flatMap(e=>e.exts.map(e=>`.`+e)).join(`, `);return r.DOMUtils.openFileDialog(t)}async findOpenOrigin(e){return h(e)?this._findOpenHandle(e):null}async _findOpenHandle(e,t){for(let n of u()){if(n===t||!n.canWrite())continue;let r=this._handleCache.get(n);if(r&&typeof r.isSameEntry==`function`&&await r.isSameEntry(e))return n}return null}async onWorkbookRead(e,t){if(!h(t))return;let n=e.getOrigin?.();n?.canWrite()&&this._handleCache.set(n,t)}async filePathToFile(e){throw Error(`Cannot read local file path '${e}' in browser environment. Use a file input element or fetch for remote URLs.`)}async write(e){let{origin:t,suggestedName:n,format:i,encode:a,prompt:s}=e,c=[i,...(await this._getWriteFormats()).filter(e=>e.key!==i.key)],l=typeof globalThis.showSaveFilePicker==`function`,u=!s&&t.canWrite()?this._handleCache.get(t):void 0;if(l)try{if(u){let e=await async function(e){try{if(typeof e.queryPermission!=`function`)return`granted`;let t={mode:`readwrite`};return await e.queryPermission(t)===`granted`||await e.requestPermission(t)===`granted`?`granted`:`denied`}catch{return`unavailable`}}(u);if(e===`denied`)return null;e!==`granted`&&(u=void 0)}let s=!!u;if(!s){u=await globalThis.showSaveFilePicker({suggestedName:n,types:m(c)});let t=await this._findOpenHandle(u,e.workbook?.getOrigin?.());if(t)throw new r.ExpectedError((0,r.t)(`error.io.openElsewhere`,{name:t.getName()??u.name??``}))}let l=_(u.name??n),d=c.find(e=>e.exts.some(e=>e.toLowerCase()===l))??i,f=s?t:new o(u.name??n,{format:d.key,canWrite:!0}),p=await a(d.key,f);if(!p)return null;let h=new Blob([g(p)],{type:d.mimeType||`application/octet-stream`}),v=await u.createWritable();if(await v.write(h),await v.close(),this._handleCache.set(f,u),f instanceof o){let e=await Promise.resolve(u.getFile?.()).then(e=>e?.lastModified??null,()=>null);f.update({size:h.size,lastModified:e})}return f}catch(e){if(e?.name===`AbortError`)return null;if(e instanceof r.ExpectedError)throw e}let d=t.getPath(),f=d?d.split(/[/\\]/).pop():null,p=f&&i.exts.some(e=>e.toLowerCase()===_(f))?f:n,h=d!==p||t.canWrite()?new o(p,{format:i.key,canWrite:!1}):t,v=await a(i.key,h);if(!v)return null;let y=new Blob([g(v)],{type:i.mimeType||`application/octet-stream`});return function(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.style.display=`none`,r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}(y,p),h instanceof o&&h.update({size:y.size}),h}};function m(e){return e.map(e=>{let t=e.mimeType&&e.mimeType.includes(`/`)?e.mimeType:`application/octet-stream`;return{description:e.description??e.key,accept:{[t]:e.exts.map(e=>`.`+e)}}})}function h(e){return!!e&&e.kind===`file`&&typeof e.getFile==`function`}function g(e){if(typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e}function _(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}var v=class{constructor(e){this._private={input:e},typeof e==`string`?this._private.name=e:Object.assign(this._private,e)}toJSON(){return this._private.input}getFamily(){return this._private.name}getPitch(){return this._private.pitch}getPanose(){return this._private.panose}toString(){return typeof this._private.input==`string`?this._private.input:JSON.stringify(this._private.input)}get isIFont(){return!0}},y=e.n({findBestMatch:()=>ee,getFontList:()=>E,setFontList:()=>T}),b=[`Arial`,`Arial Black`,`Brush Script MT`,`Calibri`,`Comic Sans MS`,`Courier New`,`Garamond`,`Georgia`,`Impact`,`Luminari`,`Palatino Linotype`,`Tahoma`,`Times New Roman`,`Trebuchet MS`,`Verdana`],x=new Map;x.set(t.un.GenericName.Serif,[`Tahoma`]),x.set(t.un.GenericName.SanSerif,[`Calibri`]),x.set(t.un.GenericName.MonoSpace,[`Courier New`]),x.set(t.un.GenericName.Cursive,[`Comic Sans MS`]),x.set(t.un.GenericName.Fantasy,[`Luminari`]),x.set(t.un.GenericName.UISystem,[`Arial`]),x.set(t.un.GenericName.UISerif,[`Tahoma`]),x.set(t.un.GenericName.UISanSerif,[`Arial`]),x.set(t.un.GenericName.UIMonoSpace,[`Courier New`]),x.set(t.un.GenericName.UIRounded,[`Arial`]),x.set(t.un.GenericName.Math,[]),x.set(t.un.GenericName.Emoji,[]),x.set(t.un.GenericName.Fangsong,[]);var S=new Map,C=[];T(b);var w=eval;function T(e){e||T(b);let t=[];for(let n=0;n<e.length;n++){let r=e[n];typeof r==`string`&&(r=new v(r));let i=!0;try{i=w(`document.fonts.check('12px ${r.getFamily()}')`)}catch{}let a={fontRef:r,loaded:i};t.push(a),S.set(r.getFamily(),a)}C=Object.freeze(t)}function E(){return C}var D=new Map;function ee(e,t){let n=D.get(e);if(n)return n.fontRef===null?null:n;let r=[e];t?.fallbacks&&(r=r.concat(t.fallbacks));let i=null;for(let e=0;!i&&e<r.length;e++){let t=r[e];if(i=S.get(t),!i){let e=x.get(t);if(e)for(let t=0;!i&&t<e.length;t++)i=S.get(e[t])}}return i?D.set(e,i):D.set(e,{fontRef:null,loaded:!1}),i}var te,O,k,A,ne=e.n({DefaultFontSizes:()=>j,findNextFontSize:()=>re}),j=Object.freeze([8,9,10,11,12,14,16,18,20,22,24,26,28,30,36,48,72]);function re(e,t=!0,n=j){if(!n||n.length===0)return e;if(e===void 0)return n[0];if(t&&e>=n[n.length-1]||!t&&e<=n[0])return e;let i=r.CommonUtils.findEqualOrGreater(n,e);return t?(n[i]===e&&(i+=1),n[i]||--i,n[i]):(--i,n[i])}(te||={}).SortOn={Value:`value`,FillColor:`fillColor`,FontColor:`fontColor`,Icon:`icon`},(k=O||={}).Compound={Single:`sng`,Double:`dbl`,ThickThin:`thickThin`,ThinThick:`thinThick`,Triple:`tri`},k.Align={Center:`ctr`,Inset:`in`,Outset:`outset`},k.LineCap={Butt:`butt`,Round:`round`,Square:`square`},k.LineJoin={Bevel:`bevel`,Miter:`miter`,Round:`round`},k.PresetMarkerShape={Single:`none`,Double:`double`,ThickThin:`thickThin`,ThinThick:`thinThick`},k.StrokeStyle={None:`none`,Dashed:`dashed`,Dotted:`dotted`,LargeDash:`lgDash`,LargeDashDot:`lgDashDot`,LargeDashDotDot:`lgDashDotDot`,Solid:`solid`,SysDash:`sysDash`,SysDashDot:`sysDashDot`,SysDashDotDot:`sysDashDotDot`,SysDot:`sysDot`},(A||={}).Type={OuterShadow:`outerShadow`,InnerShadow:`innerShadow`,PresetShadow:`presetShadow`,Glow:`glow`,SoftEdge:`softEdge`,Reflection:`reflection`};var M=t.Jt.BuiltInName,ie={[M.Normal]:(0,r.messageKey)(`style.builtin.normal`),[M.Comma]:(0,r.messageKey)(`style.builtin.comma`),[M.Currency]:(0,r.messageKey)(`style.builtin.currency`),[M.Percent]:(0,r.messageKey)(`style.builtin.percent`),[M.Comma0]:(0,r.messageKey)(`style.builtin.comma0`),[M.Currency0]:(0,r.messageKey)(`style.builtin.currency0`),[M.Hyperlink]:(0,r.messageKey)(`style.builtin.hyperlink`),[M.FollowedHyperlink]:(0,r.messageKey)(`style.builtin.followedHyperlink`),[M.Note]:(0,r.messageKey)(`style.builtin.note`),[M.WarningText]:(0,r.messageKey)(`style.builtin.warningText`),[M.Title]:(0,r.messageKey)(`style.builtin.title`),[M.Input]:(0,r.messageKey)(`style.builtin.input`),[M.Output]:(0,r.messageKey)(`style.builtin.output`),[M.Calculation]:(0,r.messageKey)(`style.builtin.calculation`),[M.CheckCell]:(0,r.messageKey)(`style.builtin.checkCell`),[M.LinkedCell]:(0,r.messageKey)(`style.builtin.linkedCell`),[M.Total]:(0,r.messageKey)(`style.builtin.total`),[M.Good]:(0,r.messageKey)(`style.builtin.good`),[M.Bad]:(0,r.messageKey)(`style.builtin.bad`),[M.Neutral]:(0,r.messageKey)(`style.builtin.neutral`),[M.ExplanatoryText]:(0,r.messageKey)(`style.builtin.explanatoryText`)},ae=(0,r.messageKey)(`style.builtin.heading`),oe=(0,r.messageKey)(`style.builtin.accent`),se=(0,r.messageKey)(`style.builtin.accentTint`),ce=/^Heading ([1-4])$/,le=/^Accent([1-6])$/,ue=/^(20|40|60)% - Accent([1-6])$/,N,P,F,I,de=(e,n,i,a,o)=>{let s=JSON.parse(JSON.stringify(e.definition));s.adjs||=[];let c=``,l=0,u=0;n>0?(u=n,l=100-n,c=(0,r.t)(`op.lighterPercent`,{percent:n})):n<0&&(l=100+n,c=(0,r.t)(`op.darkerPercent`,{percent:-n})),l&&s.adjs.push({[t.Qt.AdjustmentType.LumMod]:l}),u&&s.adjs.push({[t.Qt.AdjustmentType.LumOff]:u});let d=new t.Xt({val:s.val,adjs:s.adjs},i),f=d.toString();a?.set(f,d);let p=d.toRGBA().toString();return o?.set(p,d),{description:e.description+`, `+c,definition:s}};function fe(e,n,r,i){let a=[];for(let o=0;o<e.length;o++){let s=[];a.push(s);let c=t=>{for(let a=0;a<t.length;a++)s.push(de(e[o],t[a],n,r,i))},l=new t.Xt({val:e[o].definition.val,adjs:e[o].definition.adjs},n).toHSLA().lum;c(l===0?[50,35,25,15,5]:l===100?[-5,-15,-25,-35,-50]:l<=20?[90,75,50,25,10]:l>=80?[-10,-25,-50,-75,-90]:[80,60,40,-25,-50])}return a}(N||={}).buildPalette=fe,P||={},F||={},I||={};var L=null;function R(e,t){let r=z(e),i=z(t);return r===i?e===t?0:typeof e==`number`&&typeof t==`number`?e<t?-1:1:typeof e==`string`&&typeof t==`string`?e<t?-1:+(e>t):typeof e==`boolean`?e?1:-1:n.FormulaError.isError(e)&&n.FormulaError.isError(t)?e.getCode()-t.getCode():0:r-i}function z(e){if(e===null)return 0;switch(typeof e){case`number`:return 1;case`string`:return 2;case`boolean`:return 3;default:return n.FormulaError.isError(e)?4:5}}var pe=class{constructor(e){this._children=e}getCoords(){let e=this._children,t=null;for(let n=0;n<e.length;n++){let r=e[n].getCoords();r&&(t=t?{rowStart:Math.min(t.rowStart,r.rowStart),colStart:Math.min(t.colStart,r.colStart),rowEnd:Math.max(t.rowEnd,r.rowEnd),colEnd:Math.max(t.colEnd,r.colEnd)}:r)}return t}getSize(){let e=this._children,t=e.length,n=0;for(let r=0;r<t;r++)n+=e[r].getSize();return n}getCount(){let e=this._children,t=e.length,n=0;for(let r=0;r<t;r++)n+=e[r].getCount();return n}getAggregates(e){if(e)return this._mergeAggregates(e);let t=this._aggregates;return t||(t=this._mergeAggregates(),this._aggregates=t),t}getSnappedSum(e){let t=e??this.getAggregates().sum??0,n=this._children;for(let e=n.length-1;e>=0;e--)if(n[e].getAggregates().numericalCount>0)return n[e].getSnappedSum(t);return t}getSortedNumbers(){let e=this._sortedNumbers;if(!e){let n=this._children,r=n.length,i=[];for(let e=0;e<r;e++){let t=n[e].getSortedNumbers().getValues();t.length>0&&i.push(t)}e=new t.t(function(e){let t=e.length;if(t===0)return me;if(t===1)return e[0];let n=e[0];for(let r=1;r<t;r++)n=he(n,e[r]);return Object.freeze(n)}(i)),this._sortedNumbers=e}return e}getRanked(e){return t.n(this._children,e,R)[Symbol.iterator]()}getFrequencies(e){if(e)return this._mergeFrequencies(e);let t=this._frequencies;return t||(t=this._mergeFrequencies(),this._frequencies=t),t}_mergeFrequencies(e){let n=e?.keyFn??t.bt,r=e?.limit,i=new Map,a=this._children,o=a.length,s=0,c=0,l=!1;for(let t=0;t<o;t++){let o=a[t].getFrequencies(e);s+=o.getVisitedCount(),c+=o.getTotalCount(),l||=o.isTruncated();let u=o.getValueCounts(),d=u.next();for(;!d.done;){let[e,t]=d.value,a=n(e),o=i.get(a);o?o.count+=t:r===void 0||i.size<r?i.set(a,{value:e,count:t}):l=!0,d=u.next()}}return t.yt.fromGroups(i,n,e,R,s,c,l)}getTypedCounts(e){let t=this._typedCounts;if(!t){let e={[n.ScalarType.Number]:0,[n.ScalarType.String]:0,[n.ScalarType.Boolean]:0,[n.ScalarType.Error]:0,[n.ScalarType.RichData]:0,[n.ScalarType.Null]:0},r=this._children,i=r.length;for(let t=0;t<i;t++){let i=r[t].getTypedCounts();e[n.ScalarType.Number]+=i[n.ScalarType.Number]??0,e[n.ScalarType.String]+=i[n.ScalarType.String]??0,e[n.ScalarType.Boolean]+=i[n.ScalarType.Boolean]??0,e[n.ScalarType.Error]+=i[n.ScalarType.Error]??0,e[n.ScalarType.RichData]+=i[n.ScalarType.RichData]??0,e[n.ScalarType.Null]+=i[n.ScalarType.Null]??0}t=Object.freeze(e),this._typedCounts=t}if(e===void 0)return t;let r={},i=e.length;for(let n=0;n<i;n++)r[e[n]]=t[e[n]]??0;return r}get isIRangeStats(){return!0}_mergeAggregates(e){let r=this._children,i=r.length,a={count:0,min:void 0,max:void 0,numericalCount:0,sum:0,sumSq:0,typed:{[n.ScalarType.Number]:0,[n.ScalarType.String]:0,[n.ScalarType.Boolean]:0,[n.ScalarType.Error]:0,[n.ScalarType.RichData]:0,[n.ScalarType.Null]:0}};for(let t=0;t<i;t++){let n=r[t].getAggregates(e);a.count+=n.count;let i=n.numericalCount;i<=0||(a.numericalCount+=i,a.sum+=n.sum,a.sumSq+=n.varP*i+n.sum*n.sum/i,(a.min===void 0||n.min<a.min)&&(a.min=n.min),(a.max===void 0||n.max>a.max)&&(a.max=n.max))}return t.r(a)}},me=Object.freeze([]);function he(e,t){let n=e.length,r=t.length,i=Array(n+r),a=0,o=0,s=0;for(;a<n&&o<r;)i[s++]=e[a]<=t[o]?e[a++]:t[o++];for(;a<n;)i[s++]=e[a++];for(;o<r;)i[s++]=t[o++];return i}var ge=class{constructor(e,t){this._deleted=!1,this._json={...e},this._deleteFromCollection=t??null}getId(){return this._json.id}getDisplayName(){return this._json.displayName}getUserId(){return this._json.userId??null}getProviderId(){return this._json.providerId??null}delete(){this._deleted||(this._deleted=!0,this._deleteFromCollection?.(this))}isDeleted(){return this._deleted}toJSON(){return{...this._json}}get[Symbol.toStringTag](){return`[Person]`}toString(){return`Person:${this.getDisplayName()}`}get isIPerson(){return!0}},_e=class extends t.Nn{constructor(e){super(),this._byId=new Map,this._byDisplayName=new Map,this._items=null,this._current=null,e&&this.fromJSON(e)}_getItems(){return this._items??=Array.from(this._byId.values())}getCount(){return this._byId.size}add(e){let t=typeof e==`string`?{displayName:e}:e,n=t.id;if(n){let e=this._byId.get(n);if(e)return e}let i=t.displayName??``;if(!n){let e=this._byDisplayName.get(i);if(e)return e}let a=new ge({...t,displayName:i,id:n??r.CommonUtils.uuidV4().toUpperCase()},e=>this._remove(e));return this._byId.set(a.getId(),a),i&&!this._byDisplayName.has(i)&&this._byDisplayName.set(i,a),this._items=null,this._notifyCollectionChange(),a}getById(e){return typeof e==`string`?this._byId.get(e)??null:null}getByDisplayName(e){return typeof e==`string`?this._byDisplayName.get(e)??null:null}getCurrent(){return this._current??=this.add(`Author`)}setCurrent(e){if(e!==null){if(typeof e==`object`&&e.isIPerson){let t=e;this._current=this.getById(t.getId())??this.add(t.toJSON());return}this._current=this.add(e)}else this._current=null}_remove(e){this._byId.get(e.getId())===e&&(this._byId.delete(e.getId()),this._byDisplayName.get(e.getDisplayName())===e&&this._byDisplayName.delete(e.getDisplayName()),this._current===e&&(this._current=null),this._items=null,this._notifyCollectionChange())}toJSON(){return this._byId.size===0?null:this._getItems().map(e=>e.toJSON())}fromJSON(e){if(!e)return;let t=e.length;for(let n=0;n<t;n++){let t=e[n];t&&typeof t.id==`string`&&this.add(t)}}get isIPersonCollection(){return!0}},ve=(e,t)=>{let n=[0];for(let t=0;t<e.length;t++)e[t]===`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./B7_pDFYCVzt-3hUs.cjs"),t=require("./D3Vlh9UOBKtvlXBL.cjs");let n=require("@sheetxl/primitives"),r=require("@sheetxl/utils");var i,a=class extends r.UndoManager{constructor(e,t=50){super(t),this._transactions=e,this._floorId=e?e.getCurrentCommit(!1).getId():null,this._removeListener=e?.addListener({onCommitChange:()=>this._notifyOnStackChange()})}_undoCommits(e=this.maxStack){let t=this._transactions;if(!t)return[];let n=t.getLog(t.getCurrentCommit(!1).getId(),2**53-1),r=[];for(let t=0;t<n.length&&r.length<e;t++){let e=n[t];if(e.getId()===this._floorId||t===n.length-1)break;e.getDescription()&&r.push(e)}return r}_redoCommits(e=this.maxStack){let t=this._transactions;if(!t)return[];let n=t.getCurrentCommit(!1).getId(),r=t.getTipCommit().getId();if(r===n)return[];let i=t.getLog(r,2**53-1),a=[],o=!1;for(let e of i){if(e.getId()===n){o=!0;break}a.push(e)}if(!o)return[];a.reverse();let s=[];for(let t of a)if(t.getDescription()&&s.push(t),s.length>=e)break;return s}undo(e=1){let t=this._transactions;if(!t)return;let n=!1;try{for(let r=0;r<e;r++){let[e]=this._undoCommits(1);if(!e)break;t.revert(e.getId()),n=!0}}finally{n&&this._notifyOnStackChange()}}redo(e=1){let t=this._transactions;if(!t)return;let n=!1;try{for(let r=0;r<e;r++){let[e]=this._redoCommits(1);if(!e){r===0&&this._repeatOperation?.repeat();break}t.restore(e.getId()),n=!0}}finally{n&&this._notifyOnStackChange()}}hasUndo(){return this._undoCommits(1).length>0}hasRedo(){return this._redoCommits(1).length>0||this._repeatOperation!==null}getTopUndoDescription(){return this._undoCommits(1)[0]?.getDescription()??null}getTopRedoDescription(){return this._repeatOperation===null?this._redoCommits(1)[0]?.getDescription()??null:this._repeatOperation.description}getUndoDescriptions(){return this._undoCommits().map(e=>e.getDescription())}getRedoDescriptions(){let e=this._redoCommits().map(e=>e.getDescription());return e.length===0&&this._repeatOperation!==null&&e.push(this._repeatOperation.description),Object.freeze(e)}addUndoOperation(){throw Error(`TransactionUndoManager derives its stack from the commit log; commit a described transaction instead.`)}clear(e=!0){this._transactions&&(this._floorId=this._transactions.getCurrentCommit(!1).getId()),super.clear(e)}close(){this._removeListener?.()}};i||={};var o=class e{constructor(n,r={}){this._password=null,this._emitter=new t.Pn(this),this._path=n??null,this._name=r.name??null,this._format=r.format??null,this._size=r.size??null,this._lastModified=r.lastModified??null,this._canWrite=r.canWrite??e._defaultCanWrite(this._path),this._encryption=r.encryption??null}static _defaultCanWrite(e){return!!e&&!/^(https?:|data:|blob:)/i.test(e)}_cleanPath(){return this._path?this._path.split(/[?#]/)[0]:null}getName(){if(this._name!==null&&this._name!==void 0)return this._name;let e=this._cleanPath();return e&&t.On(e)||null}getPath(){return this._path}getFormat(){return this._format?this._format:this.getExtension()}getExtension(){let e=this._cleanPath();if(!e)return null;let n=t.kn(e);return n?n.toLowerCase():null}getEncryption(){return this._encryption}isEncrypted(){return this._encryption!==null||this._password!==null}setPassword(e){this._password!==(e??null)&&(this._password=e??null,this._password===null&&(this._encryption=null),this._emitter.notify(`onChange`))}getPassword(){return this._password}getSize(){return this._size}getLastModified(){return this._lastModified}canWrite(){return this._canWrite}setName(e){this.update({name:e})}update(e){let t=!1;return e.lastModified!==void 0&&e.lastModified!==this._lastModified&&(this._lastModified=e.lastModified,t=!0),e.name!==void 0&&e.name!==this._name&&(this._name=e.name,t=!0),e.format!==void 0&&e.format!==this._format&&(this._format=e.format,t=!0),e.size!==void 0&&e.size!==this._size&&(this._size=e.size,t=!0),e.canWrite!==void 0&&e.canWrite!==this._canWrite&&(this._canWrite=e.canWrite,t=!0),e.encryption!==void 0&&e.encryption!==this._encryption&&(this._encryption=e.encryption,t=!0),t&&this._emitter.notify(`onChange`),this}addListeners(e,t){return this._emitter.addListeners(e,t)}get[Symbol.toStringTag](){return`[Origin]`}toString(){let e=this._cleanPath(),t=e?e.split(/[/\\]/).pop()||e:this._name??`(unbound)`,n=this._size;if(n==null)return t;if(n<1024)return`${t} ${n}B`;let r=Math.floor(Math.log(n)/Math.log(1024)),i=[`B`,`KB`,`MB`,`GB`,`TB`];return`${t} ${(n/1024**r).toFixed(2)}${i[Math.min(r,i.length-1)]}`}},s=new WeakMap,c=new Set,l=e=>s.get(e)??null,u=()=>Array.from(c,e=>e.getOrigin()),d=class e{constructor(n){this._released=!1,e._assertFree(n),this._emitter=new t.Pn(this),this._origin=n,s.set(n,this),c.add(this)}getOrigin(){return this._origin}setOrigin(t){t!==this._origin&&(e._assertFree(t),this._released||(s.delete(this._origin),s.set(t,this)),this._origin=t,this._emitter.notify(`onOriginChange`))}release(){this._released||(this._released=!0,s.get(this._origin)===this&&s.delete(this._origin),c.delete(this))}addListeners(e,t){return this._emitter.addListeners(e,t)}static _assertFree(e){if(s.has(e))throw Error(`This origin already backs an open workbook; an origin backs one workbook at a time.`)}},f=class{constructor(){this._defaultStringSourceType=`filepath`}async read(e){let n=e.options??{},i=e.source;if(typeof i==`function`&&(i=i()),i&&typeof i==`object`&&typeof i.then==`function`&&(i=await Promise.resolve(i)),i==null&&(i=await this.resolveSource(e),i==null))return null;let a=i,o=await this.fileFromHandle(i);o&&(i=o);let s=n.format,c=this._detectSourceType(i);if(!c)throw Error(`Unable to detect source type from provided input.`);let l,u,d=!1;if(c===`filepath`){let e=typeof i==`string`&&i.startsWith(`file://`)?i.slice(7):i;i=await this.filePathToFile(e),c=`file`,d=!0}switch(c){case`file`:{let e=i,r=e?.name,a=r?`${t.On(r)}`:``;l=await e.arrayBuffer(),u={format:s,ext:t.kn(r),name:a,absolutePath:r,size:e.size,lastModified:e.lastModified,canWrite:!n.asCopy&&(!!o||d&&this._canWriteLocalPath())};break}case`blob`:{let e=i;l=await e.arrayBuffer(),u={format:s,size:e.size};break}case`base64`:{let e;if(i&&typeof i==`object`&&`base64`in i)e=i.base64;else if(typeof i==`string`&&i.startsWith(`data:`)){let[,t]=i.split(`,`);e=t}else e=i;l=r.BufferUtils.base64ToArrayBuffer(e),u={format:s,size:e.length};break}case`fetch`:{let e,n,r;if(typeof i==`string`)e=i;else{if(!i||typeof i!=`object`||!(`input`in i))throw Error(`Invalid fetch source provided.`);{let t=i;e=t.input,n=t.init,r=t.timeout}}let a=r||3e4,o=new AbortController,c=setTimeout(()=>o.abort(),a),d=typeof e==`string`?e:e.toString(),f=t.kn(d);try{let r=await fetch(e,{...n,signal:o.signal});if(clearTimeout(c),!r.ok)throw Error(`Failed to fetch: ${r.status} ${r.statusText}`);let i=await r.arrayBuffer();if(!i)throw Error(`Unable to fetched content: ${d}`);l=i,u={format:s,ext:f,name:t.On(d,!0),absolutePath:d}}catch(e){throw clearTimeout(c),e.name===`AbortError`?Error(`Fetch timeout after ${a}ms: ${d}`):e}break}case`buffer`:l=i,u={format:s};break;case`stream`:{let e=i.getReader(),t=[],n=0;try{for(;;){let{done:r,value:i}=await e.read();if(r)break;t.push(i),n+=i.length}}finally{e.releaseLock()}let r=new ArrayBuffer(n),a=new Uint8Array(r),o=0;for(let e of t)a.set(e,o),o+=e.length;l=r,u={format:s};break}default:throw Error(`Unsupported source type: ${c}`)}u.canWrite&&await this.findOpenOrigin(a,u)&&(u.canWrite=!1);let f=await e.decode(l,{sourceType:c,...u});return f?(await this.onWorkbookRead(f,a),f):null}async findOpenOrigin(e,t){return t.absolutePath?this.findOpenPath(t.absolutePath):null}findOpenPath(e,t){return u().find(n=>{if(n===t||!n.canWrite())return!1;let r=n.getPath();return!!r&&this.isSamePath(r,e)})??null}isSamePath(e,t){return e===t}async fileFromHandle(e){return null}async resolveSource(e){return null}async onWorkbookRead(e,t){}_canWriteLocalPath(){return!1}_detectSourceType(e){if(e&&typeof e==`object`&&`base64`in e)return`base64`;if(e&&typeof e==`object`&&`input`in e)return`fetch`;if(typeof e==`string`){if(e.startsWith(`data:`))return`base64`;if(e.startsWith(`http://`)||e.startsWith(`https://`))return`fetch`;if(e.startsWith(`file://`))return`filepath`;let t=this._defaultStringSourceType;return e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`)||/^[a-zA-Z]:[/\\]/.test(e),t}if(typeof File<`u`&&e instanceof File)return`file`;if(typeof Blob<`u`&&e instanceof Blob)return`blob`;let t=e instanceof ArrayBuffer||Object.prototype.toString.call(e)===`[object ArrayBuffer]`,n=ArrayBuffer.isView(e),i=r.BufferUtils.isNodeBuffer(e);return t||n||i?`buffer`:typeof ReadableStream<`u`&&e instanceof ReadableStream||Object.prototype.toString.call(e)===`[object ReadableStream]`||e&&typeof e.getReader==`function`&&e.locked!==void 0?`stream`:null}},p=class extends f{constructor(e,t){super(),this._getWriteFormats=e,this._getReadFormats=t,this._defaultStringSourceType=`fetch`,this._handleCache=new WeakMap}async fileFromHandle(e){return h(e)?e.getFile():null}async resolveSource(){let e=await this._getReadFormats?.()??[];if(typeof globalThis.showOpenFilePicker==`function`)try{let t=function(e){let t=m(e);if(t.length<=1)return t;let n=new Set,r={};for(let e of t)for(let[t,i]of Object.entries(e.accept))for(let e of i)n.has(e)||(n.add(e),(r[t]??=[]).push(e));return[{description:`All Supported`,accept:r},...t]}(e),[n]=await globalThis.showOpenFilePicker(t.length?{types:t}:void 0);return n}catch(e){if(e?.name===`AbortError`)return null;throw e}let t=e.flatMap(e=>e.exts.map(e=>`.`+e)).join(`, `);return r.DOMUtils.openFileDialog(t)}async findOpenOrigin(e){return h(e)?this._findOpenHandle(e):null}async _findOpenHandle(e,t){for(let n of u()){if(n===t||!n.canWrite())continue;let r=this._handleCache.get(n);if(r&&typeof r.isSameEntry==`function`&&await r.isSameEntry(e))return n}return null}async onWorkbookRead(e,t){if(!h(t))return;let n=e.getOrigin?.();n?.canWrite()&&this._handleCache.set(n,t)}async filePathToFile(e){throw Error(`Cannot read local file path '${e}' in browser environment. Use a file input element or fetch for remote URLs.`)}async write(e){let{origin:t,suggestedName:n,format:i,encode:a,prompt:s}=e,c=[i,...(await this._getWriteFormats()).filter(e=>e.key!==i.key)],l=typeof globalThis.showSaveFilePicker==`function`,u=!s&&t.canWrite()?this._handleCache.get(t):void 0;if(l)try{if(u){let e=await async function(e){try{if(typeof e.queryPermission!=`function`)return`granted`;let t={mode:`readwrite`};return await e.queryPermission(t)===`granted`||await e.requestPermission(t)===`granted`?`granted`:`denied`}catch{return`unavailable`}}(u);if(e===`denied`)return null;e!==`granted`&&(u=void 0)}let s=!!u;if(!s){u=await globalThis.showSaveFilePicker({suggestedName:n,types:m(c)});let t=await this._findOpenHandle(u,e.workbook?.getOrigin?.());if(t)throw new r.ExpectedError((0,r.t)(`error.io.openElsewhere`,{name:t.getName()??u.name??``}))}let l=_(u.name??n),d=c.find(e=>e.exts.some(e=>e.toLowerCase()===l))??i,f=s?t:new o(u.name??n,{format:d.key,canWrite:!0}),p=await a(d.key,f);if(!p)return null;let h=new Blob([g(p)],{type:d.mimeType||`application/octet-stream`}),v=await u.createWritable();if(await v.write(h),await v.close(),this._handleCache.set(f,u),f instanceof o){let e=await Promise.resolve(u.getFile?.()).then(e=>e?.lastModified??null,()=>null);f.update({size:h.size,lastModified:e})}return f}catch(e){if(e?.name===`AbortError`)return null;if(e instanceof r.ExpectedError)throw e}let d=t.getPath(),f=d?d.split(/[/\\]/).pop():null,p=f&&i.exts.some(e=>e.toLowerCase()===_(f))?f:n,h=d!==p||t.canWrite()?new o(p,{format:i.key,canWrite:!1}):t,v=await a(i.key,h);if(!v)return null;let y=new Blob([g(v)],{type:i.mimeType||`application/octet-stream`});return function(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.style.display=`none`,r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}(y,p),h instanceof o&&h.update({size:y.size}),h}};function m(e){return e.map(e=>{let t=e.mimeType&&e.mimeType.includes(`/`)?e.mimeType:`application/octet-stream`;return{description:e.description??e.key,accept:{[t]:e.exts.map(e=>`.`+e)}}})}function h(e){return!!e&&e.kind===`file`&&typeof e.getFile==`function`}function g(e){if(typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e}function _(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}var v=class{constructor(e){this._private={input:e},typeof e==`string`?this._private.name=e:Object.assign(this._private,e)}toJSON(){return this._private.input}getFamily(){return this._private.name}getPitch(){return this._private.pitch}getPanose(){return this._private.panose}toString(){return typeof this._private.input==`string`?this._private.input:JSON.stringify(this._private.input)}get isIFont(){return!0}},y=e.n({findBestMatch:()=>ee,getFontList:()=>E,setFontList:()=>T}),b=[`Arial`,`Arial Black`,`Brush Script MT`,`Calibri`,`Comic Sans MS`,`Courier New`,`Garamond`,`Georgia`,`Impact`,`Luminari`,`Palatino Linotype`,`Tahoma`,`Times New Roman`,`Trebuchet MS`,`Verdana`],x=new Map;x.set(t.un.GenericName.Serif,[`Tahoma`]),x.set(t.un.GenericName.SanSerif,[`Calibri`]),x.set(t.un.GenericName.MonoSpace,[`Courier New`]),x.set(t.un.GenericName.Cursive,[`Comic Sans MS`]),x.set(t.un.GenericName.Fantasy,[`Luminari`]),x.set(t.un.GenericName.UISystem,[`Arial`]),x.set(t.un.GenericName.UISerif,[`Tahoma`]),x.set(t.un.GenericName.UISanSerif,[`Arial`]),x.set(t.un.GenericName.UIMonoSpace,[`Courier New`]),x.set(t.un.GenericName.UIRounded,[`Arial`]),x.set(t.un.GenericName.Math,[]),x.set(t.un.GenericName.Emoji,[]),x.set(t.un.GenericName.Fangsong,[]);var S=new Map,C=[];T(b);var w=eval;function T(e){e||T(b);let t=[];for(let n=0;n<e.length;n++){let r=e[n];typeof r==`string`&&(r=new v(r));let i=!0;try{i=w(`document.fonts.check('12px ${r.getFamily()}')`)}catch{}let a={fontRef:r,loaded:i};t.push(a),S.set(r.getFamily(),a)}C=Object.freeze(t)}function E(){return C}var D=new Map;function ee(e,t){let n=D.get(e);if(n)return n.fontRef===null?null:n;let r=[e];t?.fallbacks&&(r=r.concat(t.fallbacks));let i=null;for(let e=0;!i&&e<r.length;e++){let t=r[e];if(i=S.get(t),!i){let e=x.get(t);if(e)for(let t=0;!i&&t<e.length;t++)i=S.get(e[t])}}return i?D.set(e,i):D.set(e,{fontRef:null,loaded:!1}),i}var te,O,k,A,ne=e.n({DefaultFontSizes:()=>j,findNextFontSize:()=>re}),j=Object.freeze([8,9,10,11,12,14,16,18,20,22,24,26,28,30,36,48,72]);function re(e,t=!0,n=j){if(!n||n.length===0)return e;if(e===void 0)return n[0];if(t&&e>=n[n.length-1]||!t&&e<=n[0])return e;let i=r.CommonUtils.findEqualOrGreater(n,e);return t?(n[i]===e&&(i+=1),n[i]||--i,n[i]):(--i,n[i])}(te||={}).SortOn={Value:`value`,FillColor:`fillColor`,FontColor:`fontColor`,Icon:`icon`},(k=O||={}).Compound={Single:`sng`,Double:`dbl`,ThickThin:`thickThin`,ThinThick:`thinThick`,Triple:`tri`},k.Align={Center:`ctr`,Inset:`in`,Outset:`outset`},k.LineCap={Butt:`butt`,Round:`round`,Square:`square`},k.LineJoin={Bevel:`bevel`,Miter:`miter`,Round:`round`},k.PresetMarkerShape={Single:`none`,Double:`double`,ThickThin:`thickThin`,ThinThick:`thinThick`},k.StrokeStyle={None:`none`,Dashed:`dashed`,Dotted:`dotted`,LargeDash:`lgDash`,LargeDashDot:`lgDashDot`,LargeDashDotDot:`lgDashDotDot`,Solid:`solid`,SysDash:`sysDash`,SysDashDot:`sysDashDot`,SysDashDotDot:`sysDashDotDot`,SysDot:`sysDot`},(A||={}).Type={OuterShadow:`outerShadow`,InnerShadow:`innerShadow`,PresetShadow:`presetShadow`,Glow:`glow`,SoftEdge:`softEdge`,Reflection:`reflection`};var M=t.Jt.BuiltInName,ie={[M.Normal]:(0,r.messageKey)(`style.builtin.normal`),[M.Comma]:(0,r.messageKey)(`style.builtin.comma`),[M.Currency]:(0,r.messageKey)(`style.builtin.currency`),[M.Percent]:(0,r.messageKey)(`style.builtin.percent`),[M.Comma0]:(0,r.messageKey)(`style.builtin.comma0`),[M.Currency0]:(0,r.messageKey)(`style.builtin.currency0`),[M.Hyperlink]:(0,r.messageKey)(`style.builtin.hyperlink`),[M.FollowedHyperlink]:(0,r.messageKey)(`style.builtin.followedHyperlink`),[M.Note]:(0,r.messageKey)(`style.builtin.note`),[M.WarningText]:(0,r.messageKey)(`style.builtin.warningText`),[M.Title]:(0,r.messageKey)(`style.builtin.title`),[M.Input]:(0,r.messageKey)(`style.builtin.input`),[M.Output]:(0,r.messageKey)(`style.builtin.output`),[M.Calculation]:(0,r.messageKey)(`style.builtin.calculation`),[M.CheckCell]:(0,r.messageKey)(`style.builtin.checkCell`),[M.LinkedCell]:(0,r.messageKey)(`style.builtin.linkedCell`),[M.Total]:(0,r.messageKey)(`style.builtin.total`),[M.Good]:(0,r.messageKey)(`style.builtin.good`),[M.Bad]:(0,r.messageKey)(`style.builtin.bad`),[M.Neutral]:(0,r.messageKey)(`style.builtin.neutral`),[M.ExplanatoryText]:(0,r.messageKey)(`style.builtin.explanatoryText`)},ae=(0,r.messageKey)(`style.builtin.heading`),oe=(0,r.messageKey)(`style.builtin.accent`),se=(0,r.messageKey)(`style.builtin.accentTint`),ce=/^Heading ([1-4])$/,le=/^Accent([1-6])$/,ue=/^(20|40|60)% - Accent([1-6])$/,N,P,F,I,de=(e,n,i,a,o)=>{let s=JSON.parse(JSON.stringify(e.definition));s.adjs||=[];let c=``,l=0,u=0;n>0?(u=n,l=100-n,c=(0,r.t)(`op.lighterPercent`,{percent:n})):n<0&&(l=100+n,c=(0,r.t)(`op.darkerPercent`,{percent:-n})),l&&s.adjs.push({[t.Qt.AdjustmentType.LumMod]:l}),u&&s.adjs.push({[t.Qt.AdjustmentType.LumOff]:u});let d=new t.Xt({val:s.val,adjs:s.adjs},i),f=d.toString();a?.set(f,d);let p=d.toRGBA().toString();return o?.set(p,d),{description:e.description+`, `+c,definition:s}};function fe(e,n,r,i){let a=[];for(let o=0;o<e.length;o++){let s=[];a.push(s);let c=t=>{for(let a=0;a<t.length;a++)s.push(de(e[o],t[a],n,r,i))},l=new t.Xt({val:e[o].definition.val,adjs:e[o].definition.adjs},n).toHSLA().lum;c(l===0?[50,35,25,15,5]:l===100?[-5,-15,-25,-35,-50]:l<=20?[90,75,50,25,10]:l>=80?[-10,-25,-50,-75,-90]:[80,60,40,-25,-50])}return a}(N||={}).buildPalette=fe,P||={},F||={},I||={};var L=null;function R(e,t){let r=z(e),i=z(t);return r===i?e===t?0:typeof e==`number`&&typeof t==`number`?e<t?-1:1:typeof e==`string`&&typeof t==`string`?e<t?-1:+(e>t):typeof e==`boolean`?e?1:-1:n.FormulaError.isError(e)&&n.FormulaError.isError(t)?e.getCode()-t.getCode():0:r-i}function z(e){if(e===null)return 0;switch(typeof e){case`number`:return 1;case`string`:return 2;case`boolean`:return 3;default:return n.FormulaError.isError(e)?4:5}}var pe=class{constructor(e){this._children=e}getCoords(){let e=this._children,t=null;for(let n=0;n<e.length;n++){let r=e[n].getCoords();r&&(t=t?{rowStart:Math.min(t.rowStart,r.rowStart),colStart:Math.min(t.colStart,r.colStart),rowEnd:Math.max(t.rowEnd,r.rowEnd),colEnd:Math.max(t.colEnd,r.colEnd)}:r)}return t}getSize(){let e=this._children,t=e.length,n=0;for(let r=0;r<t;r++)n+=e[r].getSize();return n}getCount(){let e=this._children,t=e.length,n=0;for(let r=0;r<t;r++)n+=e[r].getCount();return n}getAggregates(e){if(e)return this._mergeAggregates(e);let t=this._aggregates;return t||(t=this._mergeAggregates(),this._aggregates=t),t}getSnappedSum(e){let t=e??this.getAggregates().sum??0,n=this._children;for(let e=n.length-1;e>=0;e--)if(n[e].getAggregates().numericalCount>0)return n[e].getSnappedSum(t);return t}getSortedNumbers(){let e=this._sortedNumbers;if(!e){let n=this._children,r=n.length,i=[];for(let e=0;e<r;e++){let t=n[e].getSortedNumbers().getValues();t.length>0&&i.push(t)}e=new t.t(function(e){let t=e.length;if(t===0)return me;if(t===1)return e[0];let n=e[0];for(let r=1;r<t;r++)n=he(n,e[r]);return Object.freeze(n)}(i)),this._sortedNumbers=e}return e}getRanked(e){return t.n(this._children,e,R)[Symbol.iterator]()}getFrequencies(e){if(e)return this._mergeFrequencies(e);let t=this._frequencies;return t||(t=this._mergeFrequencies(),this._frequencies=t),t}_mergeFrequencies(e){let n=e?.keyFn??t.bt,r=e?.limit,i=new Map,a=this._children,o=a.length,s=0,c=0,l=!1;for(let t=0;t<o;t++){let o=a[t].getFrequencies(e);s+=o.getVisitedCount(),c+=o.getTotalCount(),l||=o.isTruncated();let u=o.getValueCounts(),d=u.next();for(;!d.done;){let[e,t]=d.value,a=n(e),o=i.get(a);o?o.count+=t:r===void 0||i.size<r?i.set(a,{value:e,count:t}):l=!0,d=u.next()}}return t.yt.fromGroups(i,n,e,R,s,c,l)}getTypedCounts(e){let t=this._typedCounts;if(!t){let e={[n.ScalarType.Number]:0,[n.ScalarType.String]:0,[n.ScalarType.Boolean]:0,[n.ScalarType.Error]:0,[n.ScalarType.RichData]:0,[n.ScalarType.Null]:0},r=this._children,i=r.length;for(let t=0;t<i;t++){let i=r[t].getTypedCounts();e[n.ScalarType.Number]+=i[n.ScalarType.Number]??0,e[n.ScalarType.String]+=i[n.ScalarType.String]??0,e[n.ScalarType.Boolean]+=i[n.ScalarType.Boolean]??0,e[n.ScalarType.Error]+=i[n.ScalarType.Error]??0,e[n.ScalarType.RichData]+=i[n.ScalarType.RichData]??0,e[n.ScalarType.Null]+=i[n.ScalarType.Null]??0}t=Object.freeze(e),this._typedCounts=t}if(e===void 0)return t;let r={},i=e.length;for(let n=0;n<i;n++)r[e[n]]=t[e[n]]??0;return r}get isIRangeStats(){return!0}_mergeAggregates(e){let r=this._children,i=r.length,a={count:0,min:void 0,max:void 0,numericalCount:0,sum:0,sumSq:0,typed:{[n.ScalarType.Number]:0,[n.ScalarType.String]:0,[n.ScalarType.Boolean]:0,[n.ScalarType.Error]:0,[n.ScalarType.RichData]:0,[n.ScalarType.Null]:0}};for(let t=0;t<i;t++){let n=r[t].getAggregates(e);a.count+=n.count;let i=n.numericalCount;i<=0||(a.numericalCount+=i,a.sum+=n.sum,a.sumSq+=n.varP*i+n.sum*n.sum/i,(a.min===void 0||n.min<a.min)&&(a.min=n.min),(a.max===void 0||n.max>a.max)&&(a.max=n.max))}return t.r(a)}},me=Object.freeze([]);function he(e,t){let n=e.length,r=t.length,i=Array(n+r),a=0,o=0,s=0;for(;a<n&&o<r;)i[s++]=e[a]<=t[o]?e[a++]:t[o++];for(;a<n;)i[s++]=e[a++];for(;o<r;)i[s++]=t[o++];return i}var ge=class{constructor(e,t){this._deleted=!1,this._json={...e},this._deleteFromCollection=t??null}getId(){return this._json.id}getDisplayName(){return this._json.displayName}getUserId(){return this._json.userId??null}getProviderId(){return this._json.providerId??null}delete(){this._deleted||(this._deleted=!0,this._deleteFromCollection?.(this))}isDeleted(){return this._deleted}toJSON(){return{...this._json}}get[Symbol.toStringTag](){return`[Person]`}toString(){return`Person:${this.getDisplayName()}`}get isIPerson(){return!0}},B=class extends t.Nn{constructor(e){super(),this._byId=new Map,this._byDisplayName=new Map,this._items=null,this._current=null,e&&this.fromJSON(e)}_getItems(){return this._items??=Array.from(this._byId.values())}getCount(){return this._byId.size}add(e){let t=typeof e==`string`?{displayName:e}:e,n=t.id;if(n){let e=this._byId.get(n);if(e)return e}let i=t.displayName??``;if(!n){let e=this._byDisplayName.get(i);if(e)return e}let a=new ge({...t,displayName:i,id:n??r.CommonUtils.uuidV4().toUpperCase()},e=>this._remove(e));return this._byId.set(a.getId(),a),i&&!this._byDisplayName.has(i)&&this._byDisplayName.set(i,a),this._items=null,this._notifyCollectionChange(),a}getById(e){return typeof e==`string`?this._byId.get(e)??null:null}getByDisplayName(e){return typeof e==`string`?this._byDisplayName.get(e)??null:null}getCurrent(){return this._current??=this.add(`Author`)}setCurrent(e){if(e!==null){if(typeof e==`object`&&e.isIPerson){let t=e;this._current=this.getById(t.getId())??this.add(t.toJSON());return}this._current=this.add(e)}else this._current=null}_remove(e){this._byId.get(e.getId())===e&&(this._byId.delete(e.getId()),this._byDisplayName.get(e.getDisplayName())===e&&this._byDisplayName.delete(e.getDisplayName()),this._current===e&&(this._current=null),this._items=null,this._notifyCollectionChange())}toJSON(){return this._byId.size===0?null:this._getItems().map(e=>e.toJSON())}fromJSON(e){if(!e)return;let t=e.length;for(let n=0;n<t;n++){let t=e[n];t&&typeof t.id==`string`&&this.add(t)}}get isIPersonCollection(){return!0}},_e=(e,t)=>{let n=[0];for(let t=0;t<e.length;t++)e[t]===`
2
2
  `&&n.push(t+1);let r=t.map(e=>` ${(e=>{let t=0,r=n.length-1;for(;t<r;){let i=t+r+1>>1;n[i]<=e?t=i:r=i-1}return`${t+1}:${e-n[t]+1}`})(e.start)} ${e.code}: ${e.message}`),i=t.length;return`Script has ${i} compile error${i===1?``:`s`}:\n${r.join(`
3
- `)}`},ye=class{constructor(e){this._options=e,this._emitter=new t.Pn(this),this._initState()}_initState(){}getModules(){return this._modules}_builtInNames(){try{let e=this._options.getBuiltInFunctions?.();if(!e)return r.CommonUtils.EmptyArray;let t=[];for(let n of e.getItems())n.isBuiltIn()&&t.push(n.getName());return t}catch{return r.CommonUtils.EmptyArray}}async createModule(e){let n=await(await import(`@sheetxl/scripting`)).ScriptCompiler.compile({builtInNames:this._builtInNames(),...e});return n.module?await t.O(t.A.DEFAULT_MODULE,n.module,e?.declarationsOnly??!1,n.diagnostics):null}addModule(e,t,n){this._modules.add(e,t,n)}async addModuleFromJSON(e,n,r){let i=await t.O(e,n);return this.addModule(e,i,r),i}executeMacro(e,t,n){let r=this._modules.getItems({name:t}),i=r.length;for(let t=0;t<i;t++){let i=r[t].getFunctions().getByName(e);if(i)return i.execute(this._options.workbook,{applyResult:!0,...n})}throw Error(`No macro ${e} found.`)}async run(e,n){try{let r=typeof e==`string`?await this.createModule({source:e}):await t.O(t.A.DEFAULT_MODULE,e),i=typeof e==`string`?e:e?.source??``;return await this._runModule(r,i,n)}catch(e){return{ok:!1,error:e}}}async _runModule(e,t,n){let r=this._options?.workbook;if(!e)return{ok:!1,error:Error(`The script did not compile to a module.`)};let i=e.getDiagnostics(),a=i.filter(e=>e.severity===`error`);if(a.length>0){let e=Error(ve(t,a));return e.diagnostics=a,{ok:!1,error:e,diagnostics:i}}let o=e.getFunctions(),s=(await o.search({type:`autoRun`}))[0]??(await o.search({type:`macro`}))[0]??null;if(!s)return{ok:!1,error:Error("The script has no runnable entry. Export a default function taking the script context, e.g. `export default function run(ctx: IScript.ScriptContext) { ... }` (the workbook is `ctx.wb`; a macro may instead take its target first, e.g. `(sheet: ISheet, ctx)`).")};let c=await s.execute(r,n);return{ok:!0,result:c?.results,commitId:c?.commitId,diagnostics:i}}async _searchable(e){let t=[];if(e?.includeBuiltIn){await this._options.workbook?.getCalculation()?.start();let e=this._options.getBuiltInFunctions?.();e&&t.push(e)}let n=this._modules;if(!n||n.getCount()===0)return t;let r=e?.moduleName,i=r?n.getItems({name:r}):n.getItems(),a=i.length;for(let e=0;e<a;e++)t.push(i[e].getFunctions());return t}async searchFunctions(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let n=await this._searchable(e);if(n.length===0)return r.CommonUtils.EmptyArray;let i=e?.limit,a=i===void 0?e:{...e,limit:void 0},o,s=new Set;for(let e=0;e<n.length;e++){let t=await n[e].search(a);if(t.length!==0){o||=[];for(let e=0;e<t.length;e++){let n=t[e],r=n.getName().toUpperCase();s.has(r)||(s.add(r),o.push(n))}}}if(!o||o.length===0)return r.CommonUtils.EmptyArray;let c=e?.text?e.text.trim().toUpperCase():null;return c&&n.length>1&&t.k(o,c),i!==void 0&&o.length>i?o.slice(0,i):o}async getFunctionCategories(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let t=await this._searchable(e);if(t.length===0)return r.CommonUtils.EmptyArray;if(t.length===1)return t[0].getCategories(e);let n=e?.includeDeprecated??!1,i=new Map,a=e=>{let t=e.toUpperCase(),n=i.get(t);n?n.count++:i.set(t,{name:e,count:1})};for(let n of await t[0].getCategories(e))i.set(n.name.toUpperCase(),{name:n.name,count:n.count});for(let r=1;r<t.length;r++){let i=await t[r].search(e?.type?{type:e.type}:void 0);for(let e=0;e<i.length;e++){let o=i[e],s=o.getName().toUpperCase(),c=!1;for(let e=0;e<r&&!c;e++)c=!!t[e].getByName(s);if(c)continue;let l=await o.getDescriptor().catch(()=>null);!n&&l?.isDeprecated()||a(l?.getCategory()??`Uncategorized`)}}let o=Array.from(i.values());return o.sort((e,t)=>e.name.localeCompare(t.name)),o}async start(){if(!this._modules)return this._startPromise||(this._startPromise=this._doStart(),this._startPromise.catch(()=>{this._startPromise=void 0})),this._startPromise}async _doStart(){let e=this._options?.workbook,n=this._options?.json,i={};if(n){let a=Object.keys(n);for(let o=0;o<a.length;o++){let s=a[o],c=n[s];try{i[s]=await t.O(s,c,!1,[],c?.scope===`workbook`?e:null)}catch(e){r.Notifier.error(`Could not load script '${s}'; it will be unavailable.`,e)}}}let a=this,o=new t.N({transactions:this._options?.transactions,initial:i,isReadOnly:()=>a.isReadOnly(),onRemove:(e,t)=>{a._options?.onRemove?.(e,t)},onAdd:(e,t)=>{a._emitter.notify(`onChange`),a._options?.onAdd?.(e,t)}});this._modules=o;let s=o.getItems();if(s.length===0)return Promise.resolve(r.CommonUtils.EmptyArray);let c=s.length;for(let t=0;t<c;t++){let n=s[t];try{let t=await n.getFunctions().search({type:`autoRun`}),r=t.length;for(let n=0;n<r;n++)await t[n].execute(e)}catch(e){r.Notifier.error(`Error executing autoRun script:`,e)}}}addListeners(e,t){return this._emitter.addListeners(e,t)}isReadOnly(){return this._options.workbook?._isStructureProtected?.()??!1}toJSON(){this._emitter.notify(`onBeforeSave`);let e=this._modules;if(!e)throw Error(`Scripts is initializing.`);return e.toJSON()}get isIScript(){return!0}},be=class{constructor(e,n,i,a){this._mergedReading=[],this._colsReading=[],this._rowsReading=[],this._styles=i,this._topLeft=n??r.CoordUtils.EmptyCell,this._sheet=new t.u({runtime:e,styles:this._styles,calcOnLoad:`none`,container:{getName:()=>a,getIndex:()=>1}}),this._builder=this._sheet.getEntireRange().createSparseBuilder()}applyCSSStyle(e,n){let r=!1;e.style||(e.style={},r=!0);let i=e.style,a={...n};if(n.msoIgnore){let e=n.msoIgnore.split(`,`),t=Object.keys(a);for(let n=0;n<t.length;n++){let r=t[n];e.includes(r)&&delete a[r]}}let o=t.Lt(a.fontFamily);i.font={},o&&(i.font.family=o.family,i.font.fallbacks=o.fallbacks,i.font.size=o.size),i.font.size=a.fontSize,i.font.weight=a.fontWeight,i.font.style=a.fontStyle,i.font.color=a.color;let s=t.Pt(a.textDecoration);i.font.underline=s.underline,i.font.strike=s.strike,a.textUnderlineStyle&&(i.font.underline=t.Ft(a.textUnderlineStyle)),i.alignment={},a?.textAlign&&(i.alignment.horizontal=t.Nt(a.textAlign)),a?.textAlign&&!i.alignment.horizontal&&a?.textAlign!==`general`&&(a.textAlign===`center-across`?i.alignment.horizontal=t.An.HorizontalAlignment.CenterContinuous:a.textAlign===`fill`?i.alignment.horizontal=t.An.HorizontalAlignment.Fill:a.textAlign===`121`||a.textAlign===`010`?(i.alignment.horizontal=t.An.HorizontalAlignment.Distributed,i.alignment.justifyLastLine=a.textAlign===`121`):console.warn(`unknown text-align`,a.textAlign)),a.verticalAlign&&(a.verticalAlign.toLowerCase()===`super`?i.font.verticalAlign=t.un.VerticalAlignment.Super:a.verticalAlign.toLowerCase()===`sup`?i.font.verticalAlign=t.un.VerticalAlignment.Sub:i.alignment.vertical=t.It(a.verticalAlign),i.alignment.vertical||(a.verticalAlign===`121`?i.alignment.vertical=t.An.VerticalAlignment.Distributed:console.warn(`unknown vertical-align`,a.verticalAlign))),a.msoCharIndentCount&&(i.alignment.indent=a.msoCharIndentCount),a.whiteSpace&&(i.alignment.overflow=a.whiteSpace===`no-wrap`||a.whiteSpace===`nowrap`?t.An.Overflow.Visible:t.An.Overflow.Wrap),a.msoTextControl===`shrinktofit`&&(i.alignment.overflow=t.An.Overflow.Shrink);let c=null;if(a.background?c=a.background:a.backgroundColor&&(c=a.backgroundColor),c&&(i.fill={color:c}),a.msoPattern){let e=t.zt(a.msoPattern);e&&(e.patternType===t.Yt.BuiltInSheetPattern.Solid?i.fill={color:e.foreground}:e.patternType!==t.Yt.BuiltInSheetPattern.None&&(c&&(e.background=c),i.fill=e))}a.layoutFlow===`vertical`||a.layoutFlow===`vertical-ideographic`?i.alignment.stacked=!0:a.msoRotate!==void 0&&(i.alignment.rotation=t.Mt(a.msoRotate));let l=(e,t)=>{e&&(i.borders||={},i.borders[e]=t)};a.border&&a.border!==`none`&&(l(`top`,a.border),l(`left`,a.border),l(`right`,a.border),l(`bottom`,a.border)),a.borderTop&&l(`top`,a.borderTop),a.borderLeft&&l(`left`,a.borderLeft),a.borderRight&&l(`right`,a.borderRight),a.borderBottom&&l(`bottom`,a.borderBottom),a.msoDiagonalUp&&l(`diagonalUp`,a.msoDiagonalUp),a.msoDiagonalDown&&l(`diagonalDown`,a.msoDiagonalDown);let u=i.numberFormat;a.msoNumberFormat&&(u=t.Bt(a.msoNumberFormat),u.includes(`\\`)?u=null:u===`Fixed`?u=t.on.Styles.lookupStyle(i.numberFormat).formatType===t.on.Type.Number?null:t.on.Type.Number:u===`Percent`&&(u=t.on.Styles.lookupStyle(i.numberFormat).formatType===t.on.Type.Percentage?null:t.on.Type.Percentage)),u&&(i.numberFormat=u),e.style=this._styles.normalize(i),r&&Object.keys(e.style).length===0&&delete e.style}onCell(e,n,i,a,o){let s=a(o),c={value:n===void 0?i??``:n};if(typeof c.value==`string`&&c.value.length===0&&(c.value=void 0),s&&this.applyCSSStyle(c,s),o?.tagName.toUpperCase()===`TD`){let e=c.style,n=e?.font??{};(o.querySelectorAll(`s`).length>0||o.querySelectorAll(`strike`).length>0)&&(n.strike=!0),o.querySelectorAll(`sub`).length>0&&(n.verticalAlign=t.un.VerticalAlignment.Sub),o.querySelectorAll(`sup`).length>0&&(n.verticalAlign=t.un.VerticalAlignment.Super),(o.querySelectorAll(`b`).length>0||o.querySelectorAll(`strong`).length>0)&&(n.weight=700),o.querySelectorAll(`i`).length>0&&(n.style=t.un.Style.Italic),o.querySelectorAll(`u`).length>0&&(n.underline=t.un.UnderlineStyle.Single),Object.keys(n).length>0&&(e||(e={},c.style=e),e.font||=n);let r=o.querySelectorAll(`a`);if(r.length>0){let e=r[0].getAttribute(`href`);e&&(c.hyperlink=e)}}if(!r.CoordUtils.isSingleCell(e)){let t={rowStart:this._topLeft.rowIndex+e.rowStart,colStart:this._topLeft.colIndex+e.colStart,rowEnd:this._topLeft.rowIndex+e.rowEnd,colEnd:this._topLeft.colIndex+e.colEnd};this._mergedReading.push(t)}if(c.value===void 0&&!c.style&&Object.keys(c).length<=1)return;let l=this._builder,u=this._topLeft;if(l.pushAt(u.rowIndex+e.rowStart,u.colIndex+e.colStart,c),!r.CoordUtils.isSingleCell(e)&&s.msoIgnore){if(s.msoIgnore.includes(`colspan`)){let t={};s&&this.applyCSSStyle(t,s);let n=e.colEnd-e.colStart,r=u.rowIndex+e.rowStart;for(let i=1;i<=n;i++)l.pushAt(r,u.colIndex+e.colStart+i,t);e={...e,colEnd:e.colStart}}s.msoIgnore.includes(`rowspan`)&&(e={...e,rowEnd:e.rowStart})}}onNoTable(e,t,n){this.onCell({rowStart:this._topLeft.rowIndex,colStart:this._topLeft.colIndex,rowEnd:this._topLeft.rowIndex,colEnd:this._topLeft.colIndex},e,null,t,n)}onRowStart(e,n,r,i){let a=r(i);if(a.msoHeightSource!==`userset`||!i)return;let o=i.getAttribute(`height`)??a.height,s=null;if(o&&(s=t.Rt(o,this._styles.getNormal().getFont().getSize(),`px`)),s===null)for(let e=0;e<i.cells.length;e++){let n=i.cells[e],a=n.getAttribute(`height`)??r(n).height,o=t.Rt(a,this._styles.getNormal().getFont().getSize(),`px`);o!==null&&(s=Math.max(o,s??0))}s!==null&&this._rowsReading.push({address:{min:this._topLeft.rowIndex+e,max:this._topLeft.rowIndex+e+n-1},update:{size:s*t.un.getDeviceScale()}})}onColumn(e,n,r,i){let a=r(i);if(a.msoWidthSource!==`userset`||!i)return;let o=i.getAttribute(`width`)??a.width,s=null;o&&(s=t.Rt(o,this._styles.getNormal().getFont().getSize(),`px`)),s!==null&&this._colsReading.push({address:{min:this._topLeft.colIndex+e,max:this._topLeft.colIndex+e+n-1},update:{size:s*t.un.getDeviceScale()}})}onDone(){this._colsReading.length>0&&this._sheet.getColumnHeaders().updateHeaderPairs(this._colsReading),this._rowsReading.length>0&&this._sheet.getRowHeaders().updateHeaderPairs(this._rowsReading),this._sheet.doBatch(()=>{this._builder.apply()}),this._mergedReading.length>0&&this._sheet.getRanges(this._mergedReading).merge()}sheet(){return this._sheet}},B={showFormulaBar:!0,showTabs:!0,tabRatio:600,showHorizontalScrollbar:!0,showVerticalScrollbar:!0,showStatusBar:!0,activeSheetId:0},V=class{constructor(e){this._id=r.CommonUtils.uuidV4(),this._emitter=new t.Pn(this),this._state={...B},e?.json&&this._fromJSON(e?.json)}getId(){return this._id}isShowFormulaBar(){return this._state.showFormulaBar}setShowFormulaBar(e){return this._state.showFormulaBar=e,this._emitter.notify(`onViewChange`),this}isShowTabs(){return this._state.showTabs}setShowTabs(e){return this._state.showTabs=e,this._emitter.notify(`onViewChange`),this}getTabRatio(){return this._state.tabRatio}setTabRatio(e){return this._state.tabRatio=e,this._emitter.notify(`onViewChange`),this}isShowHorizontalScrollbar(){return this._state.showHorizontalScrollbar}setShowHorizontalScrollbar(e){return this._state.showHorizontalScrollbar=e,this._emitter.notify(`onViewChange`),this}isShowVerticalScrollbar(){return this._state.showVerticalScrollbar}setShowVerticalScrollbar(e){return this._state.showVerticalScrollbar=e,this._emitter.notify(`onViewChange`),this}isShowStatusBar(){return this._state.showStatusBar}setShowStatusBar(e){return this._state.showStatusBar=e,this._emitter.notify(`onViewChange`),this}getActiveSheetId(){return this._state.activeSheetId}setActiveSheetId(e){let t=this._state,n=t.activeSheetId;return t.activeSheetId=e,n!==e&&this._emitter.notify(`onViewChange`),this}addListeners(e,t){return this._emitter.addListeners(e,t)}toJSON(){let e={},t=Object.keys(this._state),n=t.length;for(let r=0;r<n;r++){let n=t[r],i=this._state[n];i!=null&&i!==B[n]&&(e[n]=i)}return Object.keys(e).length===0&&(e=null),e}_fromJSON(e,t=!0){let n=e||{};this.update(n,t)}update(e,t=!0){this._state={...B,...this._state,...e},t&&this._emitter.notify(`onViewChange`)}get[Symbol.toStringTag](){return`[WorkbookView]`}toString(){let e=this.toJSON();return e?JSON.stringify(e):`DefaultWorkbookView`}get isIWorkbookView(){return!0}},xe=Object.freeze({structure:!1,windows:!1,revision:!1,password:null,revisionsPassword:null}),H=class extends t.At{isWindowsAllowed(){return this._isPropertyAllowed(`windows`)}isRevisionAllowed(){return this._isPropertyAllowed(`revision`)}isStructureAllowed(){return this._isPropertyAllowed(`structure`)}_getAllowedKey(){return`workbook`}_fromJSON(e){this._properties=e}_toJSON(e){let t=this._properties;if(t){let n=Object.keys(t),r=n.length;for(let i=0;i<r;i++){let r=n[i],a=t[r];a!=null&&a!==xe[r]&&(e[r]=a)}}return super._toJSON(e)}get[Symbol.toStringTag](){return`[WorkbookProtection]`}get isIWorkbookProtection(){return!0}};function U(e){return(0,r.t)(`error.workbook.invalidSheetKey`,{key:e})}var Se=class extends t.Nn{constructor(e,t,n){super(),this._add=e,this._get=t,this._addListeners=n}add(e){return this._add(e)}_getItems(e){return this._get(e?.name,e?.visibility)}getByName(e){return this._get(e)?.[0]??null}addListeners(e,t){return this._addListeners(e,t)}get isISheetCollection(){return!0}},W=new RegExp(/[\\/\\*?:[\]]+/),Ce=new RegExp(/\(((\d+)(?!.*\d))\)$/,`g`);function we(e){let t=(0,r.t)((0,r.messageKey)(`workbook.defaultSheetName`),{n:e+1});return t===`workbook.defaultSheetName`?`Sheet${e+1}`:t}function G(e,n){return{...t.s,getSheet:()=>null,toString:()=>t.tn(e,n)}}function K(e,t=!1){if(!e)throw Error((0,r.t)(`error.workbook.sheetNameBlank`));if(W.test(e)){if(!t)throw Error(function(e){return e?(0,r.t)(`error.workbook.sheetNameInvalidCharsNamed`,{sheetName:e}):(0,r.t)(`error.workbook.sheetNameInvalidChars`)}(e));e=e.replace(W,``)}if(e.length===0)throw Error((0,r.t)(`error.workbook.sheetNameBlank`));let n=e.length;if(n>31){if(!t)throw Error((0,r.t)(`error.workbook.sheetNameTooLong`));e=e.substring(0,31)}if(e.charAt(0)===`'`||e.charAt(n-1)===`'`){if(!t)throw Error((0,r.t)(`error.workbook.sheetNameQuotes`));e=e.replace(/^'|'$/g,``)}return e}var q,Te,Ee,De,Oe=`workbook.activeSheet`,J=class e extends t.l{constructor(e,t,n,r){super(e,t,r),this._workbook=n}getSource(){return this._workbook}_createRanges(n,r){let i=this._options;return r&&(i={...this._options,getOptions:t.o(this._options?.getOptions,r)}),new e(n,this._internal,this._workbook,i)}_createRange(e,n){let r=e?{...e}:null,i=r?this._workbook._getSheetRef(r.scope,t.an.Visibility.VeryHidden):null;if(!i){let e=this._workbook.getSelectedSheet();return delete r?.scope,G(r,r?{scope:t.$t,...e.getEntireRange().getCoords()}:null)}let a=this._options;return n&&(a={...this._options,getOptions:t.o(this._options.getOptions,n)}),new ke(e,t.a(i.sheet),this._workbook,a)}async select(e){let t=[],n=null,r=this.getCoords();for(let e=0;e<r.length;e++){let i=r[e];i&&(n||=i.scope,i&&i.scope===n&&t.push(i))}n||=this._workbook.getSelectedSheet().getName();let i=this._workbook.getSheets().getByName(n);if(!i)return;let a=await i.getRanges(t).select(e),o=this._workbook._rangesAddressToCoords(a.getCoords());return this._createRanges(o)}addListener(e,t){if(!this.getCoords())return()=>{};let n=this._workbook._sheetToWBEvent(e);return super.addListener(n,t)}get[Symbol.toStringTag](){return`[WorkbookRanges]`}getAddress(e){let n=this._internal.getSheet(),r=n.getEntireRange().getCoords();return t.en(this.getCoords(),{...r,scope:n.getName()},t.tn,t.rn,e)}toString(){return this.getAddress()}},ke=class e extends t.v{constructor(e,t,n,r){super(e,t,r),this._workbook=n}_createRanges(e,n){let r=this._options;return n&&(r={...this._options,getOptions:t.o(this._options?.getOptions,n)}),new J(e,this._internal,this._workbook,r)}_createRange(n,r){let i=this._internal;if(!n)return t.i(i.getSheet(),i.getSheet().getEntireCoords());if(i.validateCoords(n),i.getSheet().isClosed())return t.i(null,i.getSheet().getEntireCoords(),n);let a=this._options;return r&&(a={...this._options,getOptions:t.o(this._options?.getOptions,r)}),new e(n,this._internal,this._workbook,a)}addListener(e,t){if(!this.getCoords())return()=>{};let n=this._workbook._sheetToWBEvent(e);return super.addListener(n,t)}get[Symbol.toStringTag](){return`[WorkbookRange]`}getAddress(e){let n=this._internal.getSheet(),r=n?.getEntireRange().getCoords()??null;return t.tn(this.getCoords(),{...r,scope:n.getName()})}toString(){return this.getAddress()}},Ae=e=>!!e&&typeof e==`object`&&typeof e.getOrigin==`function`,je=class{constructor(e){this._isLoadingSheets=!1,this._lastTransactionUUID=null,this._starting=null,this._closed=!1,this._listenerOriginProvider=null,this._listenerOrigin=null,this._lastOriginName=null,this._initializing=!0,this._pivotCaches=[],this._pivotTableCollection=new t.T(()=>{let e=[];for(let t of this.getSheets())e.push(...t.getPivotTables());return e}),this._people=new _e,this._commentCollection=new t.b(null,(e,t,n)=>{let r=[];for(let i of this.getSheets())r.push(...i.getComments().getItems(e?{address:e,ignoreHidden:t,fullyContained:n}:{ignoreHidden:t,fullyContained:n}));return r},(e,t)=>this.addListeners({onSheetsChange:e.onCollectionChange?()=>{e.onCollectionChange(this._commentCollection)}:void 0},t)),this._restoringSheets=!1,this._isDate1904=!1,this._codeName=null,this._updateLinks=null,this._locale=null,this._localeOverrides=null;let n=typeof e==`string`?{origin:e}:{...e},i=n.origin;this._ownOriginProvider=!Ae(i),this._originProvider=Ae(i)?i:new d(typeof i==`string`?new o(null,{name:i}):i??new o(null)),delete n.origin,this._bindOrigin(this._originProvider.getOrigin()),this._listenerOriginProvider=this._originProvider.addListeners({onOriginChange:()=>this._onOriginChange()});let a=n.json;delete n.json,this._transactions=n.transactions??new t.In,this._id=this._transactions.create(),this._ownTransactions=!n.transactions,this._emitter=new t.Pn(this,this._transactions),this._runtime=n.runtime??new t.yn(`Workbook Runtime`,{isDate1904:()=>this._isDate1904,getNow:()=>this._transactions.getCurrentCommit().getTimestamp(),getLocale:()=>this._locale??t.xn()??t.bn(),getLocaleOverrides:()=>this._localeOverrides}),this._listenerLanguage=r.DefaultLanguagePackService.addChangeListener(()=>{this._closed||this._notifyAllChange()});let s=this,c=this._beginCommit({description:a?(0,r.messageKey)(`op.openWorkbook`):(0,r.messageKey)(`op.newWorkbook`)});try{this._strings=n.strings??new t.Tt,this._ownStrings=!n.strings,this._resources=n.resources??new t.Et,this._ownResources=!n.resources,this._createSheetName=n.createSheetNameCallback??we;let e=n.createSheetCallback;e||=e=>new t.u(e),this._sheetOnNameChange=new Map,this._sheetOnVisibilityChange=new Map,this._sheetOnIndexChange=new Map,this._createSheet=(n,r,i,a,o,c)=>{let l=null,u={runtime:s._runtime,readonly:s._options.readonly??!1,disableLoadAutoFit:s._options.disableLoadAutoFit??!1,opener:s._options.opener,transactions:s._transactions,styles:s._styles,strings:s._strings,resources:s._resources,names:s._names,workbook:s,calculation:s._calculation,resolveRange:e=>s._options.resolveRange?.(e)??s.getRange(e),container:{beforeFromJSON:e=>{l=e,s._addSheetRef({name:r,id:n,visibility:i??t.an.Visibility.Visible,sheetId:o,sheet:e},a)},getName:()=>{let e=s._getSheetRef(l);return e?e.name:r},setName:(e,t)=>{s._getSheetRef(l)&&s._setSheetName(l,e,t)},setNameChangeCallback:e=>{s._sheetOnNameChange.set(n,e)},getVisibility:()=>{let e=s._getSheetRef(l);return e?e.visibility:t.an.Visibility.Visible},setVisibility:(e,t)=>{s._setSheetVisibility(l,e,t)},setVisibilityCallback:e=>{s._sheetOnVisibilityChange.set(n,e)},duplicate:()=>s._duplicateSheet(l),getIndex:()=>{let e=s._getSheetRef(l);return e?s._getOffsetForId(e.id,s._getSheetRefs(t.an.Visibility.VeryHidden)):a},setIndex:(e,n)=>{let r=s._getSheetRef(l,t.an.Visibility.VeryHidden);return!!r&&(s._moveSheet(r,e,n),!0)},setIndexCallback:e=>{s._sheetOnIndexChange.set(n,e)},requestSelect:async()=>(s._setSelectedSheet(l),await this._emitter.notify(`onRequestSelect`,{source:s,params:l,async:!0}),s.getSelectedSheet()===l)}};return c&&(u.json=c),l=e(u,r,a,i),l},this._namedTableSource=new t.Ct({getSheets:()=>s._sheets?s.getSheets().getItems():r.CommonUtils.EmptyArray,addSheetsListener:(e,t)=>s.addListeners({onSheetsChange:e},t)}),this._names=n.names??new t.D({addressToRanges:e=>s.getRanges(e),getCurrentScope:()=>s.getSelectedSheet().getName(),isReadOnly:()=>(s._options.readonly??!1)||s._isStructureProtected(),transactions:s._transactions,getSources:()=>s._calculation?[s._calculation.getNamedFormulas(),s._namedTableSource]:r.CommonUtils.EmptyArray}),this._ownNames=!n.names,this._calculation=n.calculation??new t.f({runtime:s._runtime,functions:n.functions,json:a?.calc,isNamesReadOnly:()=>s._isStructureProtected(),getActiveCell:()=>{let e=s.getSelectedSheet(),t=e?.getSelectedRange()?.getCoords();return t?{rowIndex:t.rowStart,colIndex:t.colStart,scope:e.getId()}:null},getRange:s.getRange.bind(s),getRanges:s.getRanges.bind(s),createGraphRanges:(e,t)=>s._createGraphRanges(e,t),getSheetIndex:e=>{if(e===void 0){let e=s.getSelectedSheet();return e?this._getSheetRefs(t.an.Visibility.VeryHidden).findIndex(t=>t.sheet===e):-1}let n=this._getSheetRefs(t.an.Visibility.VeryHidden);e=e.toLowerCase();let r=n.length;for(let t=0;t<r;t++)if(n[t].name.toLowerCase()===e)return t;try{Me.address=e;let n=this._names.getItems(Me);if(!n||n.length===0)return-1;let r=n[0].getRanges?.()?.getCoords()?.[0]?.scope;if(!r)return-1;let i=this._getSheetRefs(t.an.Visibility.VeryHidden);r=r.toLowerCase();let a=i.length;for(let e=0;e<a;e++)if(i[e].name.toLowerCase()===r)return e}catch{return-1}return-1},getSheetCount:()=>s.getSheets().getItems({visibility:t.an.Visibility.VeryHidden}).length,getSheetIds:()=>s._sheets?.getItems({visibility:t.an.Visibility.VeryHidden}).map(e=>e.getId())??[],addSheetsListener:(e,t)=>s.addListeners({onSheetsChange:()=>{s._restoringSheets||e()}},t),getSheetById:e=>{let n=s.getSheets().getItems({visibility:t.an.Visibility.VeryHidden}),r=n.length;for(let t=0;t<r;t++)if(n[t].getId()===e)return n[t];return null},externalBooks:a?.externalBooks,externalBookResolver:n.externalBookResolver,namedCollection:s._names,strings:s._strings,transactions:s._transactions,names:a?.names}),this._ownCalculation=!n.calculation,this._scripts=this._createScripts(a?.modules),this._ownNames=!n.names,this._options=Object.freeze({...n});let i=n.calcOnLoad??`auto`,o=!1,l=(async()=>{try{if(this._ownCalculation&&i!==`none`&&(i===`full`||i===`auto`&&!0===a?.calc?.fullCalcOnLoad?await this._calculation.calculate({full:!0}):await this._calculation.start(),this._closed))return;await this._scripts.start()}finally{o=!0,this._starting=null}})();o||(this._starting=l),this._starting?.catch(()=>{}),a?this._fromJSON(a):(this._initState(),this._addSheet(!1)),this._sheets=new Se(e=>s._addSheetOptions(e),(e,t)=>{if(e){let n=this._getSheetRef(e,t);return n?[n.sheet]:r.CommonUtils.EmptyArray}return this._getSheets(t)},(e,t)=>{let n=e.onCollectionChange,r=e.onInvalidated;return s._emitter.addListeners({onSheetsChange:n?()=>{n(s._sheets)}:void 0,onInvalidated:r?()=>{r(s._sheets)}:void 0},t)}),this._ownCalculation&&(n.calcOnLoad??`auto`)!==`none`&&this._calculation.hydrateNames(),this._emitter.notify(`onLoad`),this._ownTransactions?c.amend():c.commit()}catch(e){throw c.rollback(),e}this._initializing=!1}_initState(){let e=this._getSheetRefs();for(let t=(e?e.length:0)-1;t>=0;t--);let n=this._options;this._isDate1904=n.runtime?.isDate1904()??!1,this._locale=null,this._localeOverrides=null,this._theme=n.theme??new t.Kt().getDefaultTheme(),this._styles=n?.styles??new t.jt(this._theme),this._ownStyles=!n.styles,this._styles.getTheme()||this._styles.setTheme(this.getTheme()),this._activeSheetOffset=0,this.setView(new V),this._listenerProtection?.(),this._protection=new H(void 0,this._options.readonly??!1),this._listenerProtection=this._protection.addListeners({onChange:e=>{r._emitter.notify(`onProtectionChange`)}});let r=this;this._transactionsRemoveListener=this._transactions.addStateListener(this._id,{async onAfterStateChange(e,t,n,i,a){let o=r._view,s=a?.[Oe],c=n?s?.before:s?.after,l=s?.viewId===o.getId()&&c!=null,u=l?c:o.getActiveSheetId(),d=l&&t.getId()===r._lastTransactionUUID?r._getSheetRef({id:u}):null;if(d?await d.sheet.select():r._resyncActiveSheet(u,e),r._lastTransactionUUID=t.getId(),n||i){r._restoringSheets=!0;try{r._emitter.notify(`onSheetsChange`)}finally{r._restoringSheets=!1}}r._emitter.notify(`onSelectedSheetChange`),r._emitter.notify(`onViewChange`)},onRestoreOrRevert(){r._ownCalculation,r._emitter.notify(`onInvalidated`)}});let i=this._getState();i?.listenersSheets&&(i?.listenersSheets.forEach(e=>{e()}),i?.listenersSheets.clear()),this._updateState({sheetRefsAll:[],sheetRefsVisibleAndHidden:[],sheetRefsVisible:[],refsById:new Map,sheetsById:new Map,refsByLowerCaseName:new Map,sheetsByLowerCaseName:new Map,refsByInstance:new Map,lastId:-1,sheetsCreated:new Set,listenersSheets:new Map})}getId(){return this._id}getVersionId(){return this._transactions.getVersionId(this._id)}getName(){return this._closed?null:this._origin.getName()}getOrigin(){return this._originProvider.getOrigin()}_onOriginChange(){if(this._closed)return;let e=this._originProvider.getOrigin();if(e===this._origin)return;this._listenerOrigin?.();let t=this._lastOriginName;this._bindOrigin(e),this._emitter.notify(`onOriginChange`),this._lastOriginName!==t&&this._emitter.notify(`onNameChange`)}_bindOrigin(e){this._origin=e,this._lastOriginName=e.getName(),this._listenerOrigin=e.addListeners({onChange:()=>{if(this._closed)return;let t=e.getName();t!==this._lastOriginName&&(this._lastOriginName=t,this._emitter.notify(`onNameChange`))}})}getView(){return this._view}setView(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!e)throw new r.ExpectedError((0,r.t)(`error.sheet.emptyView`));this._listenerWorkbookView?.();let t=this,n=-1;return this._listenerWorkbookView=e.addListeners({onViewChange:e=>{let r=t._getState(),i=this._view.getActiveSheetId(),a=r.sheetRefsVisible,o=this._getOffsetForId(i,a);this._activeSheetOffset=o,t._emitter.notify(`onViewChange`),n!==i&&(t._emitter.notify(`onSelectionChange`),t._emitter.notify(`onSelectedSheetChange`)),n=i}}),this._view=e,t._emitter.notify(`onViewChange`),this}getRuntime(){return this._runtime}setDate1904(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._isDate1904===e||(this._isDate1904=e,this._emitter.notify(`onRegionalChange`)),this}getLocale(){return this._runtime.getLocale()}getPinnedLocale(){return this._locale}setLocale(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(e)try{new Intl.Locale(e)}catch{throw Error((0,r.t)(`error.workbook.invalidLocale`,{locale:e}))}return this._locale===e||(this._locale=e,this._emitter.notify(`onRegionalChange`)),this}getLocaleOverrides(){return this._localeOverrides}setLocaleOverrides(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=e&&Object.keys(e).length>0?e:null;return this._localeOverrides=t,this._emitter.notify(`onRegionalChange`),this}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}getExternalBooks(){return this._calculation.getExternalBooks()}getUpdateLinks(){return this._updateLinks}setUpdateLinks(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._updateLinks=e,this}getPivotTables(){return this._pivotTableCollection}getComments(){return this._commentCollection}getPeople(){return this._people}getTheme(){return this._theme}setTheme(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!e)throw new r.ExpectedError((0,r.t)(`error.workbook.notSetValue`));let t=this._theme;return this._theme=e,this.getStyles().setTheme(e),this._emitter.notify(`onThemeChange`),t}getSelectedSheetIndex(){return this._activeSheetOffset}getSelectedSheet(){let e=this._getSheetRef(this.getSelectedSheetIndex());return e?e?.sheet:null}getSheet(e,n=t.an.Visibility.Visible){if(e===void 0)return this.getSelectedSheet();if(!e)throw Error((0,r.t)(`error.workbook.sheetNameNotProvided`));let i=this._getSheetRef(e,n);if(!i)throw new r.OutOfBoundsError((a=e,(0,r.t)(`error.workbook.sheetNameNotFound`,{sheetName:a})));var a;return i.sheet}getSheetAt(e,n=t.an.Visibility.Visible){let i=this._getSheetRef(e,n);if(!i)throw new r.OutOfBoundsError(function(e){return(0,r.t)(`error.workbook.sheetIndexNotFound`,{index:e})}(e));return i.sheet}getSheets(){return this._sheets}addSheet(e){return this.getSheets().add(e)}_getSheets(e=t.an.Visibility.Visible){let n=this._getSheetRefs(e),r=[],i=n.length;for(let e=0;e<i;e++)r.push(n[e].sheet);return r}_getSheetRefs(e=t.an.Visibility.Visible){let n=this._getState();return n?e===t.an.Visibility.Visible?n.sheetRefsVisible:e===t.an.Visibility.Hidden?n.sheetRefsVisibleAndHidden:e===t.an.Visibility.VeryHidden?n.sheetRefsAll:r.CommonUtils.EmptyArray:[]}_getSheetRef(e,n=t.an.Visibility.Visible){let r=null;return typeof e==`number`?this._getSheetRefs(n)[e]:(typeof e==`string`?r=this._getState().refsByLowerCaseName.get(e.toLowerCase()):e instanceof t.u?r=this._getState().refsByInstance.get(e):e?.id!==void 0&&(r=this._getState().refsById.get(e.id)),r)}_validateNewSheetName(e,t=!0){if(e==null)return e;if(K(e),t&&this._getState().sheetsByLowerCaseName.has(e.toLowerCase()))throw new r.ExpectedError((0,r.t)(`error.workbook.nameTaken`));return e.substring(0,31)}findValidSheetName(e){e&&=K(e,!0);try{return function(e,t){try{if(t(e))return e}catch{}let n,r,i=Ce.exec(e);for(i===null?(n=e+` `,r=1):(n=e.substring(0,i.index),r=parseFloat(i[1]));r<256;){r++;let e=`(`+r+`)`,i=n.substring(0,31-e.length)+e;try{if(t(i))return i}catch{}}throw Error(e+` is not a valid sheet name`)}(e,e=>this._validateNewSheetName(e))}catch{return this._nextSheetName()}}isValidSheetNameCharacter(e){return!W.test(e)}_isStructureProtected(){return!this._initializing&&!this.getProtection().isStructureAllowed()}_addSheetOptions(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t,n=null;t=typeof e==`string`?{name:e}:typeof e==`number`?{index:e}:e,t={...t,description:t?.description??(0,r.messageKey)(`op.addSheet`)};let i=this.beginCommit(t);try{let e=t?.autoSelect??!1;n=this._addSheet(!0,t.name,t.index??null);let a=this.getView().getActiveSheetId();if(e&&this._recordActiveSheet(i,a,this._getSheetRef(n).id),i.commit({description:(0,r.t)(`op.addSheetNamed`,{name:n.getName()})}),!1!==e){let t=typeof e==`boolean`?void 0:e;n.select(t)}}catch(e){throw i.rollback(),e}return n}_nextSheetName(e=null){let t=e?e.toLowerCase():null,n=this._getState(),i=n.sheetsByLowerCaseName;if(e&&i.has(t))throw new r.ExpectedError(function(e){return(0,r.t)(`error.workbook.nameDuplicate`,{sheetName:e})}(e));t=(e=this._validateNewSheetName(e))?e.toLowerCase():null;let a=n.lastId+1;for(;!e;){let t=this._createSheetName(a),n=t.toLowerCase();i.has(n)?a++:e=t}return this._updateState({lastId:a}),e}_addSheet(e,n=null,i=null){n=this._nextSheetName(n);let a=this._getState(),o=this._createSheet(a.lastId,n,t.an.Visibility.Visible,i,void 0,null);if(!o)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetNameBlank`));return e&&this._emitter.notify(`onSheetsChange`),o}_updateSheetRefStates(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this._initializing&&!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let n=e,i=[],a=[],o=n.length;for(let e=0;e<o;e++)n[e].visibility===t.an.Visibility.Visible?(i.push(n[e]),a.push(n[e])):n[e].visibility===t.an.Visibility.Hidden&&a.push(n[e]);this._updateState({sheetRefsAll:n,sheetRefsVisible:i,sheetRefsVisibleAndHidden:a})}_addSheetRef(e,n=null){let i=this._getState(),a=i.sheetRefsAll,o=Math.max(0,Math.min(a.length,n??a.length)),s=[...a.slice(0,o),e,...a.slice(o)];this._updateSheetRefStates(s);let c=e.sheet,l=e.name.toLowerCase(),u=new Map(i.refsById);u.set(e.id,e);let d=new Map(i.refsByLowerCaseName);d.set(l,e);let f=new Map(i.refsByInstance);f.set(c,e);let p=new Map(i.sheetsById);p.set(e.id,c);let m=new Map(i.sheetsByLowerCaseName);m.set(l,c);let h=this,g=i.listenersSheets;if(c!==void 0){let n=c.addListeners({onBeforeDelete:e=>{h._validateDeleteSheet(e)},onDelete(e){let n=h._getSheetRef(e,t.an.Visibility.VeryHidden);if(!n)return;let i=h._beginCommit({description:(0,r.t)(`op.deleteSheet`,{name:n.name})});try{let t=h._getState(),r=t.sheetRefsAll,a=h._getOffsetForId(n.id,r),o=[...r];o.splice(a,1),h._updateSheetRefStates(o);let s=new Map(t.refsById);s.delete(n.id);let l=new Map(t.sheetsById);l.delete(n.id);let u=n.name.toLowerCase(),d=new Map(t.refsByLowerCaseName);d.delete(u);let f=new Map(t.sheetsByLowerCaseName);f.delete(u);let p=new Map(t.refsByInstance);p.delete(e),t.listenersSheets.get(n.id)();let m=new Map(t.listenersSheets);m.delete(n.id),h._adjustRemoveSelectionIfRequired(a,n.id),h._adjustSheetNamesIfRequired(),h._sheetOnNameChange.delete(n.id),h._sheetOnVisibilityChange.delete(n.id),h._sheetOnIndexChange.delete(n.id),h._emitter.notify(`onSheetsChange`);let g=new Set(t.sheetsCreated);g.has(c)&&g.delete(c),h._updateState({refsById:s,sheetsById:l,refsByLowerCaseName:d,sheetsByLowerCaseName:f,refsByInstance:p,sheetsCreated:g,listenersSheets:m}),i.commit()}catch(e){throw i.rollback(),e}}}),a=c.addListeners({onSelectionChange:e=>{h.getView().getActiveSheetId()===h._getSheetRef(e)?.id&&h._emitter.notify(`onSelectionChange`,{source:h,params:e})}},{transactional:!1});g=new Map(i.listenersSheets),g.set(e.id,()=>{n(),a()})}let _=i.lastId;_!==-1&&(_=Math.max(_,e.id)),this._updateState({lastId:_}),this._updateState({refsById:u,refsByLowerCaseName:d,refsByInstance:f,sheetsById:p,sheetsByLowerCaseName:m,listenersSheets:g}),this._adjustSheetNamesIfRequired();let v=new Set(this._getState().sheetsCreated);return v.add(e.sheet),this._updateState({sheetsCreated:v}),e}_recordActiveSheet(e,t,n){let r=this.getView().getId();e.setIntent(Oe,e=>({viewId:r,before:e?.before??t,after:n}))}_resyncActiveSheet(e,t){let n=t?.sheetRefsVisible;if(!n?.length)return;let r=-1,i=n.length;for(let t=0;t<i;t++)if(n[t].id===e){r=t;break}r===-1&&(r=Math.min(Math.max(this._activeSheetOffset,0),i-1));let a=n[r].id;this._view.getActiveSheetId()===a?this._activeSheetOffset=r:this._view.setActiveSheetId(a)}_adjustRemoveSelectionIfRequired(e,t){if(this._view.getActiveSheetId()===t){let t,n=this._getState().sheetRefsVisible;t=e<n.length?n[e].id:n[e-1].id,this._view.setActiveSheetId(t)}}_adjustSheetNamesIfRequired(){let e=this._getState(),n=e.lastId;if(n===-1)return;let r=this._view.getActiveSheetId();r??=(this._view.setActiveSheetId(n),n);let i=e.refsById.get(r);i||(this._view.setActiveSheetId(n),i=e.refsById.get(n),r=n),i.visibility===t.an.Visibility.Visible&&(this._activeSheetOffset=this._getOffsetForId(r,e.sheetRefsVisible))}_validateDeleteSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t=this._getSheetRef(e);if(!t)throw new r.ExpectedError(function(e){return(0,r.t)(`error.workbook.deleteKey`,{key:e})}(e));let n=this._getState().sheetRefsVisible;if(n.length===1&&n[0].id===t.id)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`))}_getOffsetForId(e,t){let n=t.length;for(let r=0;r<n;r++)if(t[r].id===e)return r;throw new r.ExpectedError((0,r.t)(`error.workbook.noVisibleRefs`))}find(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheets();if(n.length===1)return n[0].find(e);typeof e==`string`&&(e={text:e});let i=!e?.reverse,a=e?.disableWrap??!1,o=this.getSelectedSheetIndex(),s=o,c=n[s],l=!1;e={...e,disableWrap:!0};let u,d=c.find(e),f=d.next(),p=!1;if(e?.from){let t=this._rangesAddressToCoords(e?.from);u={colIndex:t[0].colStart,rowIndex:t[0].rowStart}}let m=r.CoordUtils.createCellComparator(e?.axis,e?.reverse);delete(e={...e}).from;let h=()=>{if(!p&&f.done&&(l&&s===o?p=!0:i?(s++,s>n.length-1&&(s=0,l=!0)):(s--,s<0&&(s=n.length-1,l=!0)),a&&l&&(p=!0),p||u||!l||s!==o||(p=!0),!p)){c=n[s],d=c.find(e);let t=f;return f=d.next(),t}if(!p&&l&&s===o&&(f.done||!u||!f.done&&m(f.value.getCoords(),u)>=0)&&(p=!0),p){let e=f;return f=t.vn,e}let r=f;return f=d.next(),r};return{next:()=>{let e=h();for(;!p&&e.done;)e=h();return e}}}replace(e,n,i){let a=0,o=null,s=typeof n==`function`,c=i?.maxCount??2**53-1,l=!i?.maxCount,u=``,d=typeof n==`string`?t.Dn(n):null,f=i?.description??(0,r.messageKey)(`op.replace`),p=this._transactions.beginCommit({description:f});try{let t=null,f=null,m=e.next();for(;!m.done&&a<c;){let r=m.value,c=r.getSheet();c!==t&&(t=c,f!==null&&f.apply(),f=t.getEntireRange().createSparseBuilder({axis:i?.axis,allowUnorderedWrites:!0}));let l=s?n(r):n;l!==void 0&&l!==r&&(f.push(r,l),a++,o=r),m=e.next()}f?.apply(),a===1&&c===1&&o&&(u=o.getAddress()),a===0?p.rollback():p.commit({description:i?.description??(l?d===null?(0,r.messageKey)(`op.replaceAll`):(0,r.t)(`op.replaceAllWith`,{value:d}):u?d===null?(0,r.t)(`op.replaceAt`,{address:u}):(0,r.t)(`op.replaceAtWith`,{address:u,value:d}):d===null?(0,r.messageKey)(`op.replace`):(0,r.t)(`op.replaceWith`,{value:d}))})}catch(e){throw p.rollback(),e}return{count:a,last:o}}_nextSheetIndex(e,t=this._getSheetRefs()){let n=t.length;return n===1?0:(e===void 0&&(e=this.getSelectedSheetIndex()),(e=Math.max(0,Math.min(e,n-1)))>=n-1?0:e+1)}_prevSheetIndex(e,t=this._getSheetRefs()){let n=t.length;return n===1?0:(e===void 0&&(e=this.getSelectedSheetIndex()),(e=Math.max(0,Math.min(e,n-1)))<=0?n-1:e-1)}getNextSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._nextSheetIndex(e,t)]?.sheet??null}getPreviousSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._prevSheetIndex(e,t)]?.sheet??null}async _duplicateSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t=this._getSheetRefs(),n=this.getSelectedSheetIndex(),i=null;if(e){if(i=this._getSheetRef(e),!i)throw new r.ExpectedError(U(i))}else i=t[n];if(!i)return null;let a=i.sheet,o=this._strings.beginPersist(),s=this.getResources().beginPersist(),c=this.getStyles().beginPersist(),l=null,u=this.beginCommit((0,r.t)(`op.duplicateNamed`,{name:a.getName()}));try{let e=this._getState().refsByInstance.get(a),r=await a.toJSON(),i=t.length+1,o=this.findValidSheetName(e.name),s=this._createSheet(i,o,e.visibility,n,void 0,r);this._emitter.notify(`onSheetsChange`),l=s,u.commit()}catch(e){throw u.rollback(),e}finally{c.endPersist(),s.endPersist(),o.endPersist()}return l}_createRange(e,n){let i=e?{...e}:null,a=i?this._getSheetRef(i.scope,t.an.Visibility.VeryHidden):null;if(!a){let e=this.getSelectedSheet();return e?(delete i?.scope,G(i,i?{scope:t.$t,...e.getEntireRange().getCoords()}:null)):void console.warn((0,r.t)(`error.workbook.noVisibleRefs`))}let o=a.sheet,s=null;return n&&(s={getOptions:n}),new ke(e,t.a(o),this,s)}_createRanges(e,n){let r=this.getSelectedSheet(),i=null;return n&&(i={getOptions:n}),new J(e,t.a(r),this,i)}getRange(e,n){if(e===void 0)return this.getSelectedRange(n);try{let t=this._rangesAddressToCoords(e);if(t.length!==1)throw new r.ExpectedError((0,r.t)(`error.address.singleRangeOnlyAlt`));return this._createRange(t[0],n)}catch(n){throw n instanceof r.OutOfBoundsError?new r.OutOfBoundsError(n.message):new r.ExpectedError(n.message??t.kt(e))}}getCell(e){if(e===void 0)return this.getSelectedCell();let t=this.getRange(e);if(t.size>1)throw new r.ExpectedError((0,r.t)(`error.address.singleCellOnly`));return t.getCell()}getRanges(e,n){let i=this._rangesAddressToCoords(e);if(i.length===0)throw new r.ExpectedError(t.kt(e));return this._createRanges(i,n)}_createGraphRanges(e,n){let r=[],i=this.getCalculation()?.getNamedFormulas()??null;for(let e=0;e<n.length;e++){let a=n[e],o=(a.sheetName?this._getSheetRef(a.sheetName,t.an.Visibility.VeryHidden):null)?.sheet??this.getSelectedSheet();o&&r.push(new t._(a,i,t.a(o),null))}for(let t=0;t<e.length;t++)r.push(e[t]);return r.length===0?null:new J(r,t.a(this.getSelectedSheet()),this,null)}getStats(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheets(t.an.Visibility.VeryHidden),i=n.length;if(i===1)return n[0].getStats(e);let a=Array(i);for(let t=0;t<i;t++)a[t]=n[t].getStats(e);return new pe(a)}_activeRangeCoords(){let e=this.getSelectedSheet(),t=e.getSelection().getRanges().getCoords(),n=e.getName(),r=t.length,i=Array(r);for(let e=0;e<r;e++){let r=t[e];i[e]={colStart:r.colStart,colEnd:r.colEnd,rowStart:r.rowStart,rowEnd:r.rowEnd,scope:n}}return i}getSelectedRange(e){return this.getRange(this._activeRangeCoords()[0],e)}getSelectedRanges(e){return this.getRanges(this._activeRangeCoords(),e)}getSelectedCell(){return this.getSelectedSheet().getSelectedCell()}_rangesAddressToCoords(e,n=!0,i=t.an.Visibility.Hidden){if(!e)throw new r.ExpectedError((0,r.t)(`error.address.noAddress`));let a=this.getSelectedSheet(),o={...a?.getEntireRange().getCoords()},s=a?.getName();if(s&&(o.scope=s),typeof e==`string`){let t=e.trim().toLowerCase();if(t===`r`||t===`c`){let n=this.getSelectedCell().getCoords(),r={};t===`r`?r.rowStart=r.rowEnd=n.rowIndex:r.colStart=r.colEnd=n.colIndex,e=r}}let c=this,l=t.nn(e,o,t.in,e=>{if(!n)return null;if(typeof e==`string`){let t=c.getNames().getByName(e)?.getRanges?.();if(t)return t.getCoords()}throw new r.ExpectedError(`Invalid sheet reference '${e}'.`)}),u=l.length;for(let e=0;e<u;e++)this._validateCoords(l[e],i);return l}_validateCoords(e,n=t.an.Visibility.Visible,i=(0,r.t)(`error.sheet.oobRange`)){if(e===null)return;let a=this.getSheet(e.scope,n).getEntireRange().getCoords();if(!r.CoordUtils.isRangeWithinRange(e,a))throw new r.OutOfBoundsError(i);if(e.rowEnd<e.rowStart||e.colEnd<e.colStart)throw new r.ExpectedError((0,r.t)(`error.address.invalidRangeInverted`))}_updateSheetRef(e,t){let n=this._getState(),r=[...n.sheetRefsAll];r[this._getOffsetForId(e.id,n.sheetRefsAll)]=t,this._updateSheetRefStates(r);let i=new Map(n.refsById);i.set(e.id,t);let a=e.name.toLowerCase(),o=t.name.toLowerCase(),s=new Map(n.refsByLowerCaseName);s.delete(a),s.set(o,t);let c=new Map(n.sheetsByLowerCaseName),l=c.get(a);c.delete(a),c.set(o,l);let u=new Map(n.refsByInstance);return u.set(l,t),this._updateState({refsById:i,refsByLowerCaseName:s,sheetsByLowerCaseName:c,refsByInstance:u}),t}_setSheetName(e,t,n){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let i=this._getSheetRef(e);if(!i)throw new r.ExpectedError(U(e));if(t===i.name)return i.sheet;if((t=this._validateNewSheetName(t))==null)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetNameNotProvided`));let a=Object.freeze({...i,name:t}),o=null,s=this.beginCommit((0,r.messageKey)(`op.renameSheet`));try{let e=this._updateSheetRef(i,a);this._adjustSheetNamesIfRequired(),this._sheetOnNameChange.forEach((e,t)=>{i.id===t&&e()}),this._emitter.notify(`onSheetsChange`),i.id===this.getView().getActiveSheetId()&&this._emitter.notify(`onSelectionChange`),o=e.sheet,s.commit(n)}catch(e){throw s.rollback(),e}return o}_setSheetVisibility(e,n=t.an.Visibility.Visible,i){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let a=this._getSheetRef(e,t.an.Visibility.VeryHidden);if(!a)return null;if(n===a.visibility)return;let o=null,s=``;n===t.an.Visibility.Visible?s=(0,r.messageKey)(`op.unhideSheet`):n===t.an.Visibility.Hidden?s=(0,r.messageKey)(`op.hideSheet`):n===t.an.Visibility.VeryHidden&&(s=(0,r.messageKey)(`op.veryHideSheet`));let c=this.beginCommit(s);try{let e=this._getState().sheetRefsVisible;if(n!==t.an.Visibility.Visible&&e.length===1&&e[0].id===a.id)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`));let s={...a,visibility:n},l=-1;n!==t.an.Visibility.Visible&&(l=this._getOffsetForId(a.id,e)),o=this._updateSheetRef(a,s).sheet,n!==t.an.Visibility.Visible&&this._adjustRemoveSelectionIfRequired(l,a.id),this._adjustSheetNamesIfRequired(),c.commit(i)}catch(e){throw c.rollback(),e}return this._sheetOnVisibilityChange.forEach((e,t)=>{a.id===t&&e()}),this._emitter.notify(`onSheetsChange`),o}_moveSheet(e,t,n){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let i=null,a=this.beginCommit((0,r.t)(`op.moveSheetNamed`,{name:e.name}));try{let o=this._getState(),s=o.sheetRefsVisible;if(t<0||t>s.length-1)throw new r.ExpectedError(`Invalid to index: ${t}`);let c=this.getView().getActiveSheetId(),l=o.sheetRefsAll,u=this._getOffsetForId(e.id,l),d=this._getOffsetForId(s[t].id,l);if(u===d)return;let f=l[u],p=[...l];p.splice(u,1),p.splice(d,0,f),this._updateSheetRefStates(p),this._calculation._replaceSheetSpans?.(l.map(e=>e.sheet.getId()),p.map(e=>e.sheet.getId()),f.sheet.getId()),this._adjustSheetNamesIfRequired(),this._sheetOnIndexChange.forEach((e,t)=>{t>=u&&t<=d&&e()}),this._emitter.notify(`onSheetsChange`),i=f.sheet,this._recordActiveSheet(a,c,this.getView().getActiveSheetId()),a.commit(n)}catch(e){throw a.rollback(),e}return i}_setSelectedSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheetRef(e);if(!n)throw new r.ExpectedError(U(e));let i=null;return n.visibility!==t.an.Visibility.Visible&&this._setSheetVisibility(n,t.an.Visibility.Visible),this._view.setActiveSheetId(n.id),i=n.sheet,i}getProtection(){return this._protection}getCodeName(){return this._codeName}getNames(){return this._names}getCalculation(){return this._calculation}createFormula(e,t,n){return this.getCalculation().createFormula(e,t,n)}evaluate(e,t){return this.getCalculation().evaluate(e,t)}whenCalculationReady(){let e=this._starting;return e?e.then(()=>this.getCalculation().ready()):this.getCalculation().ready()}getScripts(){return this._scripts||=this._createScripts(),this._scripts}getModules(){return this.getScripts().getModules()}_notifyAllChange(){this._emitter.notify(`onSheetsChange`),this._emitter.notify(`onSelectedSheetChange`),this._emitter.notify(`onViewChange`)}addListeners(e,t){return this._emitter.addListeners(e,t)}_sheetToWBEvent(e){let t=this;return n=>{let r=()=>{let e=n.getSource();if(e.isInvalid())return e;if(e.isICellRanges){let n=[...e.getCoords()],r=n.length;for(let t=0;t<r;t++){let r=n[t];!r.scope&&e.getSheet().getName()&&(n[t]={...r,scope:e.getSheet().getName()})}return t.getRanges(n)}if(e.isICellRange){let n=e.getCoords(),r=e.getSheet().getName();return t.getRange({...n,scope:r})}};e({getSource:r,trigger:n.trigger,getFrom:()=>t.getRanges(n.getFrom()),getTo:()=>t.getRange(n.getTo()),isDataChange:n.isDataChange,getTransactionId:n.getTransactionId,isUndo:n.isUndo,toString:()=>`WorkbookRangeEvent: ('${n.trigger}', ${r().toString()})`,timeStamp:Date.now()})}}_fromJSON(e){if(this._emitter.notify(`onBeforeLoad`,{params:e}),this._initState(),!e.sheets||e.sheets.length===0)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`));e.theme&&(this._theme=new t.Gt(e.theme),this._styles.setTheme(this._theme));let n=this._strings.beginPersist(),i=this._resources.beginPersist(),a=this._styles.beginPersist();try{n.fromJSON(e.strings),i.fromJSON(e.resources),a.fromJSON(e.styles),e.date1904&&(this._isDate1904=!0),this._codeName=e.codeName??null,this._updateLinks=e.updateLinks??null,e.locale&&(this._locale=e.locale),e.localeOverrides&&(this._localeOverrides=e.localeOverrides),e.view||={};let r=[],o=e.pivotCaches;if(o){let e=i.fromResourceId.bind(i);for(let n=0;n<o.length;n++){let i=o[n];i&&typeof i.cacheId==`number`&&r.push({cacheId:i.cacheId,part:t.E.fromJSON(i.part,e)})}}this._pivotCaches=r,this._people.fromJSON(e.people);let s=e.sheets,c=s.length,l=e.view.activeSheetId??null;l!==null&&(l=Math.min(Math.max(0,l),c-1));let u=null,d=null;this._isLoadingSheets=!0;for(let e=0;e<c;e++){let n=s[e],r=n.visibility||t.an.Visibility.Visible,i=e;d=i,r===t.an.Visibility.Visible?u===null&&(u=i):l!==null&&l===i&&(l=null);try{this._createSheet(i,n.name,r,e,n.sheetId,n.sheet)}catch(e){throw this._isLoadingSheets=!1,e}}this._isLoadingSheets=!1,this._updateState({lastId:d}),e.view.activeSheetId=l??u,this.setView(new V({json:e.view})),this._adjustSheetNamesIfRequired(),this._listenerProtection?.();let f=this;this._protection=new H(e?.protection,this._options?.readonly),this._listenerProtection=this._protection.addListeners({onChange:e=>{f._emitter.notify(`onProtectionChange`,{source:e})}}),this._emitter.notify(`onLoad`)}finally{a.endPersist(),i.endPersist(),n.endPersist()}}_createScripts(e){let n=this;return new ye({transactions:this._transactions,json:e,workbook:n,getBuiltInFunctions:()=>n._calculation?.getFunctions(),onAdd:(e,i)=>{let a=n._calculation;a.getStatus()!==t.vt.Status.Off&&a.start().then(async()=>{let e=i.getFunctions().getItems({type:`formula`}),t=e.length;for(let n=0;n<t;n++){let t=e[n];try{await this._calculation.getFunctions().add(t)}catch(e){r.Notifier.error(e?.message??String(e),e)}}}).catch(()=>{})},onRemove:(e,t)=>{}})}async toJSON(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));await Promise.resolve(this._starting);let n=this.getCalculation();n.getStatus()!==t.vt.Status.Off&&(await n.ready(),await n._whenRequestsSettled?.()),await this._emitter.notify(`onBeforeSave`,{async:!0});let i={sheets:[]},a=e?.ignoreStyles??!1;if(!a){let e=this._theme.toJSON();(e?Object.keys(e).length:0)>0&&(i.theme=e)}if(this._scripts){let e=this._scripts.toJSON();e&&Object.keys(e).length>0&&(i.modules=e)}this._isDate1904&&(i.date1904=!0),this._codeName&&(i.codeName=this._codeName),this._updateLinks&&(i.updateLinks=this._updateLinks),this._locale&&(i.locale=this._locale),this._localeOverrides&&(i.localeOverrides=this._localeOverrides);let o=e?.resources??`embed`,s=o===`ignore`,c=this._strings.beginPersist(),l=s?null:this._resources.beginPersist(),u=this._styles.beginPersist();try{let n=this._getSheetRef(this.getSelectedSheetIndex()).id,r=n,d=null,f=this._getState(),p=f.sheetRefsAll,m=f.sheetsById,h=p.length;for(let a=0;a<h;a++){let o=p[a],s=a+1,c=await m.get(o.id).toJSON(e),l={name:o.name,sheet:c};o.sheetId!==void 0&&(l.sheetId=o.sheetId),o.visibility===t.an.Visibility.Visible?d===null&&(d=s):l.visibility=o.visibility,o.id===n&&(r=s),i.sheets.push(l)}if(!a){let e=u.toJSON();e&&Object.keys(e).length>0&&(i.styles=e)}let g=this.getProtection().toJSON();g&&(i.protection=g);let _=this._calculation.toJSON();Object.keys(_).length>0&&(i.calc=_);let v=await c.toJSONAsync();v&&v.length>0&&(i.strings=v);let y=this._calculation.getExternalBooks().toJSON();y&&(i.externalBooks=y);let b=this._pivotCaches;if(b.length>0){let e=l?l.toResourceId.bind(l):()=>null,n=[];for(let r=0;r<b.length;r++){let i={cacheId:b[r].cacheId},a=t.E.toJSON(b[r].part,e);a&&(i.part=a),n.push(i)}n.length>0&&(i.pivotCaches=n)}let x=this._people.toJSON();if(x&&(i.people=x),!s){let e=await l.toJSONAsync(typeof o==`function`?o:void 0);e&&e.length>0&&(i.resources=e)}let S=this._calculation.getNamedFormulas().toJSON();S&&S.length>0&&(i.names=S);let C=this._view.toJSON();C&&(r===d?delete C.activeSheetId:C.activeSheetId=r,Object.keys(C).length>0&&(i.view=C))}finally{u.endPersist(),s||l.endPersist(),c.endPersist()}return this._emitter.notify(`onSave`,{params:i}),i}isClosed(){return this._closed}close(){if(this._closed)return;this._emitter.notify(`onClose`);let e=this._getState();e.listenersSheets.forEach(e=>{e()}),e.listenersSheets.clear();let t=e.sheetRefsAll;for(let e=t.length-1;e>=0;e--)try{t[e].sheet.close()}catch(e){console.warn(`error on close`,e)}this._ownResources,this._ownNames&&this._names.close(),this._ownCalculation&&this._calculation.close(),this._ownStyles,this._transactionsRemoveListener?.(),this._listenerLanguage?.(),this._listenerOrigin?.(),this._listenerOriginProvider?.(),this._ownOriginProvider&&this._originProvider instanceof d&&this._originProvider.release(),this._closed=!0}beginCommit(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._beginCommit(typeof e==`string`?{description:e}:e)}doBatch(e,t){let n=this;return t=typeof t==`string`?{description:t}:{description:(0,r.messageKey)(`op.updateWorkbook`),...t},this._transactions.doBatch(e,t,(e,t)=>{e.getDepth()===0&&(n._lastTransactionUUID=e.getId())})}_beginCommit(e){let t=this;return this._transactions.beginCommit(typeof e==`string`?{description:e}:e,e=>{e.getDepth()===0&&(t._lastTransactionUUID=e.getId())})}_getState(){return this._transactions.getState(this._id)}_updateState(e,t=(0,r.messageKey)(`op.updateWorkbook`),n){if(!e)return;let i=this._beginCommit(t);try{i.updateState(this._id,e),i.commit(n)}catch(e){throw i.rollback(),e}}get options(){return this._options}get[Symbol.toStringTag](){return`[Workbook]`}toString(){return`[${this.getName()??`(untitled)`}]`}get isIWorkbook(){return!0}},Me={address:null},Ne=class{constructor(){this._readFormats=[],this._writeFormats=[],this._encryptions=[]}async registerReadFormat(e){this._readFormats=await this._registerFormatType(e,this._readFormats)}async registerWriteFormat(e){this._writeFormats=await this._registerFormatType(e,this._writeFormats)}async registerEncryption(e){if(!e)throw Error(`encryption must be provided.`);if(!e.key)throw Error(`encryption.key must be provided.`);let t=e.key.toLowerCase(),n=this._encryptions.findIndex(e=>e.key.toLowerCase()===t);if(n!==-1){let t=[...this._encryptions];t[n]=e,this._encryptions=Object.freeze(t);return}this._encryptions=Object.freeze([...this._encryptions,e])}async getEncryption(e){return this.peekEncryption(e)}peekEncryption(e){if(!e)return this._encryptions[0]??null;let t=e.toLowerCase();return this._encryptions.find(e=>e.key.toLowerCase()===t)??null}async detectEncryption(e){for(let t of this._encryptions)if(await t.detect(e))return t;return null}async getReadFormats(e){return e?this._filterFormats(e,this._readFormats):[...this._readFormats]}async getWriteFormats(e){return this._writeFormats?e?this._filterFormats(e,this._writeFormats):[...this._writeFormats]:[]}async _registerFormatType(e,t){return this._registerFormatTypeSync(e,t)}_registerFormatTypeSync(e,t){if(!e)throw Error(`format must be provided.`);if(!e.key)throw Error(`format.key must be provided.`);let n=e.key.toLowerCase(),r=t.findIndex(e=>e.key.toLowerCase()===n);if(r!==-1){let n=[...t];return n[r]=e,Object.freeze(n)}return Object.freeze([...t,e])}_filterFormats(e,t,n){if(!e||Object.keys(e).length===0){if(!n)return[...t];e={ext:n}}let r=e.search?.toLocaleLowerCase();return t.filter(t=>{if(r){let e=t.key.toLocaleLowerCase().includes(r),n=!!t.exts&&t.exts.some(e=>e.toLocaleLowerCase().includes(r)),i=!!t.mimeType&&t.mimeType.toLocaleLowerCase().includes(r),a=!!t.tags&&t.tags.some(e=>e.toLocaleLowerCase().includes(r)),o=!!t.description&&t.description.toLocaleLowerCase().includes(r);if(!(e||n||i||a||o))return!1}let i=e.ext||n;if(i){let e=i.toLocaleLowerCase();if(!t.exts.some(t=>t.toLocaleLowerCase()===e))return!1}if(e.mimeType&&t.mimeType!==e.mimeType||e.key&&t.key.toLocaleLowerCase()!==e.key.toLocaleLowerCase())return!1;if(e.tags){let n=t.tags||[];if(!(typeof e.tags==`string`?[e.tags]:e.tags).every(e=>n.includes(e)))return!1}return!0})}},Y=new WeakMap,X=e=>!!e&&typeof e==`object`&&typeof e.getPath==`function`&&typeof e.canWrite==`function`,Pe=class{constructor(){this._setInstalled=new WeakSet,this._backingStore=null,this._emitter=new t.Pn(this),this._registry=new Ne,this._defaultStore=new p(()=>this.getWriteFormats(),()=>this.getReadFormats())}getBackingStore(){return this._backingStore??this._defaultStore}setBackingStore(e){this._backingStore=e??null}canWrite(){return typeof this.getBackingStore().write==`function`}canRead(){return typeof this.getBackingStore().read==`function`}async install(e){this._setInstalled.has(e)||(await e.register(this._registry),this._setInstalled.add(e))}addListeners(e,t){return this._emitter.addListeners(e,t)}addCommitListener(e){return this._emitter.addListeners({onWrite:(t,n)=>{n.save&&e.onCommit?.({store:n.workbook.getTransactions(),commitId:n.commitId})}})}async getReadFormats(e){return this._registry.getReadFormats(e)}async getWriteFormats(e){return this._registry.getWriteFormats(e)}getOrigin(e){return new o(e)}async read(e){let t=null;if(typeof e==`string`)e={source:e};else if(X(e)){let n=e.getPath();if(!n)throw Error(`Cannot read from an unbound origin (no path).`);l(e)?e={source:n,asCopy:!0}:(t=e,e={source:n})}let n=e??{},{source:r=null,...i}=n,a=this.getBackingStore();return(a.read?a:this._defaultStore).read({source:r,options:i,decode:(e,r)=>this._decodeBuffer(e,r,n,t)})}async _decodeBuffer(e,t={},n,i=null){let a=t.format,s=t.ext;if(!a&&!s)throw Error(`Either format or file extension must be provided to determine read type.`);let c=(await this._registry.getReadFormats({search:a,ext:s}))[0];if(!c)throw new r.ExpectedError((0,r.t)(`error.io.readFormatUnavailable`,{format:a??s}));let l=n?.typedCreateWorkbookOptions,u=l?Object.keys(l).find(e=>e.toLowerCase()===c.key.toLowerCase()):void 0,d={...n,...u===void 0?void 0:l[u]};delete d.typedCreateWorkbookOptions,delete d.source,delete d.asCopy;let f=i??new o(t.absolutePath??null,{name:t.name??null,format:c.key,size:t.size??null,lastModified:t.lastModified??null,canWrite:t.canWrite??!1});i instanceof o&&i.update({format:c.key,size:t.size??null,lastModified:t.lastModified??null}),d.createWorkbookOptions={...d.createWorkbookOptions||{},origin:f},d.readonly!==void 0&&(d.createWorkbookOptions={readonly:d.readonly,...d.createWorkbookOptions},delete d.readonly),d.calcOnly&&(d.createWorkbookOptions={disableLoadAutoFit:!0,...d.createWorkbookOptions});let p=await this._decrypt(e,f,d);if(p===null)return null;e=p.bytes;let m=d?.progress?.onStart?.bind(d.progress);m&&await Promise.resolve(m(f,t.size));try{let t=await this._readArrayBuffer(e,c,d);return p.password!==null&&f.setPassword(p.password),d?.progress?.onComplete?.(f),this._emitter.notify(`onRead`,{params:{workbook:t,origin:f},transactional:!1}),t}catch(e){throw d?.progress?.onError?.(e),d?.progress?.onComplete?.(null),e}}async _decrypt(e,t,n){let i=await this._registry.detectEncryption(e);if(t instanceof o&&t.update({encryption:i?i.key:null}),!i)return{bytes:e,password:null};let a=null,s=async t=>{try{return a=await i.decode(e,t),!0}catch(e){if(!(e instanceof r.InvalidPasswordError))throw e;return!1}};if(n?.password&&await s(n.password))return{bytes:a,password:n.password};if(!n?.onPassword){let e=t.getName();throw new r.PasswordRequiredError(e?(0,r.t)(`error.io.passwordRequired`,{name:e}):(0,r.t)(`error.io.passwordRequiredUnnamed`))}let c=await Promise.resolve(n.onPassword({origin:t,encryption:i.key,validate:s}));if(c==null)return null;if(a!==null||await s(c))return{bytes:a,password:c};throw new r.InvalidPasswordError((0,r.t)(`error.io.passwordIncorrect`))}async writeArrayBuffer(e,t){if(!t?.format)throw Error(`A format must be specified to write to an ArrayBuffer (e.g. { format: 'xlsx' }).`);let n=(await this._registry.getWriteFormats({search:t.format}))[0];if(!n)throw new r.ExpectedError((0,r.t)(`error.io.writeFormatUnavailable`,{format:t.format}));return this._writeArrayBuffer(e,n,t)}async write(e,t,n){return typeof t==`string`||X(t)?this._write(e,t,!1,n):this._write(e,e?.getOrigin?.(),!0,t??n)}async writeAs(e,t,n){if(!t)throw Error(`A target must be provided for writeAs (use write(workbook) for a plain save).`);return this._write(e,t,!0,n)}async _write(e,n,i,a){if(!e)throw Error(`Workbook must be provided.`);if(!e.isIWorkbook)throw Error(`Invalid workbook model provided. Must be an instance of IWorkbook.`);let s=typeof n==`string`?this.getOrigin(n):n,c=s.getFormat(),u;if((a?.format||c)&&(u=(await this._registry.getWriteFormats({search:a?.format??c??void 0}))[0]),u||s.getPath()&&s.canWrite()&&s.getExtension()||(u=(await this._registry.getWriteFormats({ext:`sxl`}))[0]??(await this._registry.getWriteFormats())[0]),!u)throw new r.ExpectedError((0,r.t)(`error.io.writeFormatUnresolved`));let d=s.getExtension();if(a?.format&&d&&s.getPath()&&s.canWrite()&&!u.exts.includes(d)){let e=(await this._registry.getWriteFormats({ext:d}))[0];if(e&&e.key!==u.key){let e=s.getPath().split(/[/\\]/).pop();throw new r.ExpectedError((0,r.t)(`error.io.writeFormatMismatch`,{format:a.format,file:e}))}}if(typeof n==`string`){let e=s.getPath();s=new o(t.kn(e)?e:`${e}.${u.exts[0]}`,{format:u.key})}let f=s.getEncryption(),p=e.getOrigin?.(),m=(s instanceof o?s.getPassword():null)??(p instanceof o?p.getPassword():null),h=s.isEncrypted()||(p?.isEncrypted()??!1),g=a?.password===void 0?m??(h?void 0:null):a.password,_=null;if(g===void 0){if(h){let e=s.getName();throw new r.PasswordRequiredError(e?(0,r.t)(`error.io.passwordRequiredSave`,{name:e}):(0,r.t)(`error.io.passwordRequiredSaveUnnamed`))}}else if(g!==null&&(_=await this._registry.getEncryption(f),!_))throw new r.ExpectedError((0,r.t)(`error.io.encryptionUnavailable`));let v=`${s.getName()??(0,r.t)(`workbook.defaultName`)}.${u.exts[0]}`,y=a?.progress,b=!s.getPath()||!s.canWrite()||!!a?.prompt,x=!1,S=this,C=null,w=[],T={workbook:e,format:u,origin:s,suggestedName:v,prompt:a?.prompt,async encode(t,n){let r=n??s;await(async e=>{x||(x=!0,y?.onStart&&await Promise.resolve(y.onStart(e)))})(r),C=e.getTransactions?.()?.getCurrentCommit()??C;let o=t?(await S._registry.getWriteFormats({search:t}))[0]??u:u,c=[],l=((e,t)=>({onStart:e?.onStart?(t,n)=>e.onStart(t,n):void 0,onProgress:e?.onProgress?(t,n)=>e.onProgress(t,n):void 0,onError:e?.onError?t=>e.onError(t):void 0,onComplete:e?.onComplete?t=>e.onComplete(t):void 0,onWarning:(n,r)=>{t.push({message:n??``,context:r}),e?.onWarning?.(n,r)}}))(y,c),d=await S._writeArrayBuffer(e,o,{...a,progress:l}),f=Y.get(r);if(c.some(e=>!f?.has(e.message))&&a?.onWarnings){let t=await Promise.resolve(a.onWarnings({workbook:e,origin:r,warnings:c,save:i,canCancel:!b}));if(!b&&!1===t)return null}return w=c,_?_.encode(d,g):d}},E=null;try{let t=this.getBackingStore();if(!t.write)throw Error(`The active backing store is read-only (no write implementation).`);if(E=await t.write(T),E){if(g!==void 0&&E instanceof o&&(E.setPassword(g),E.update({encryption:_?_.key:null})),w.length){let e=Y.get(E)??new Set;for(let t of w)e.add(t.message);Y.set(E,e)}i&&E!==e.getOrigin()&&l(e.getOrigin())?.setOrigin(E);let t=C??e.getTransactions?.()?.getCurrentCommit()??null;this._emitter.notify(`onWrite`,{params:{workbook:e,origin:E,commitId:t?.getId()??null,save:i},transactional:!1})}y?.onComplete&&await Promise.resolve(y.onComplete(E))}catch(e){let t=e instanceof Error?e:Error(String(e));throw y?.onError&&await Promise.resolve(y.onError(t)),y?.onComplete&&await Promise.resolve(y.onComplete(null)),t instanceof r.ExpectedError?t:Error((0,r.t)(`error.io.writeFailed`,{reason:t.message}),{cause:e})}return E}_stripExtension(e){let n=t.kn(e);return n?e.slice(0,e.length-n.length-1):e}_baseName(e){if(!e)return null;let t=e.split(/[?#]/)[0],n=t.split(/[/\\]/).pop()??t;return this._stripExtension(n)||null}async _writeArrayBuffer(e,t,n){if(!t)throw Error(`A write format must be provided.`);let r=t.handler;if(!r)throw Error(`Unable to resolve a write handler for '${t.key}'.`);return r(e,{...n,format:t.key})}async _readArrayBuffer(e,t,n){if(!e)throw Error(`ArrayBuffer must be specified.`);if(!t)throw Error(`format must be specified.`);if(e.byteLength===0)return new je(n?.createWorkbookOptions);let i=t.handler;if(!i)throw Error(`Unable to resolve a read handler for '${t.key}'.`);let a;try{a=await i(e,n)}catch(e){throw e instanceof r.ExpectedError?e:new r.ExpectedError((0,r.t)(`error.io.readFailed`,{format:t.description??t.key,reason:e?.message??String(e)}),{cause:e})}return a}get isIWorkbookIO(){return!0}},Fe=new Pe,Ie=`locales`,Le=`fonts`,Re=[{kind:Ie,files:[{suffix:`.msg.json`,async extract(e){let t=e.relPath.split(`/`);return t.length===2?{locale:t[0],role:`messages`}:null},place:(e,t)=>t?`${t}/${e}`:null}]},{kind:Le,files:[`.woff2`,`.woff`,`.ttf`,`.otf`,`.ttc`].map(e=>({suffix:e,place:(e,t)=>t?`${t}/${e}`:e}))}];q||={},Te||={},(De=Ee||={}).PathFill={Darken:`darken`,DarkenLess:`darkenLess`,Lighten:`lighten`,LightenLess:`lightenLess`,None:`none`,Normal:`normal`},De.PresetGeometry={Line:`line`,LineInv:`lineInv`,triangle:`triangle`,rtTriangle:`rtTriangle`,Rect:`rect`};var Z=null,Q,$=null;Q||={};var ze=class extends t.P{constructor(e){super(e)}_initializeOptions(e){return e={...e,coords:{colStart:0,rowStart:0,colEnd:(e?.size?.width??5)-1,rowEnd:(e?.size?.height??5)-1},getRanges:e=>new t.c(null)},super._initializeOptions(e)}};exports.AbstractCollection=t.Nn,Object.defineProperty(exports,"AddressUtils",{enumerable:!0,get:function(){return t.C}}),exports.ArrayBackingStore=class{constructor(){this._buffer=null,this._formatKey=null}get buffer(){return this._buffer}async write(e){let t=await e.encode();return t?(this._buffer=t,this._formatKey=e.format.key,e.origin):null}async read(e){return this._buffer?e.decode(this._buffer,{format:this._formatKey??void 0}):null}},Object.defineProperty(exports,"AutoFill",{enumerable:!0,get:function(){return t.p}}),exports.BUILD_DATE=`2026-09-29T22:51:09.088Z`,exports.Color=t.Xt,Object.defineProperty(exports,"Condition",{enumerable:!0,get:function(){return t.F}}),Object.defineProperty(exports,"DateUtils",{enumerable:!0,get:function(){return t.sn}}),exports.DefaultWorkbookIO=Pe,exports.EXTERNAL_LINK_PATH_REL_TYPE=t.tt,exports.ExternalRangeClipboardItem=class{constructor(e,t,n,i,a){if(this._parsed=void 0,this._runtime=e,!t)throw new r.NullNotAllowedError(`nativeItems are required.`);this._topLeft=n??r.CoordUtils.EmptyCell,this._native=t,this._markOptions=Object.freeze(i??{}),this._styles=a}getItemType(){return`range`}isCut(){return!1}toText(){return this._native?.text}toHtml(){return this._native?.html?.documentElement.outerHTML||null}toImage(){return this._native?.image}getItem(){let e=this._parsed;if(e===void 0)throw Error(`Must call 'parse()' before getItem().`);if(e===null)return null;if(this._snapshot)return this._snapshot;let t=this;return this._snapshot={copyTo:(n,r)=>e.copyTo(n,{...t._markOptions,...r}),getMarkOptions:()=>t._markOptions,getName:()=>e?.getName()??`Clipboard Data`,getCoords:()=>e?.getCoords?.()??null,toText:()=>t.toText(),toHtml:()=>t.toHtml(),toImage:()=>t.toImage(),getSource:()=>e?.getSource?.()??null,isISnapshot:!0},this._snapshot}async parse(){let e,n=this._native?.text,i=this._native.html;if(i===null&&n&&n.includes(`<table`))try{let e=new DOMParser().parseFromString(n,r.MimeType.Html),t=e.querySelector(`parsererror`);if(t)throw new r.ExpectedError(`Unable to parse: `+t);i=e,n=null}catch{console.warn(`Discovered text as html table but could could not parse.`)}try{let r=new be(this._runtime,this._topLeft,this._styles,i?`HTML`:`Text`),a=await Promise.resolve(n?t.h(n):[[]]),o;if(t.m(i,a,r)?(e=r.sheet(),o=e.getUsedRange()):i=null,o)return this._parsed={copyTo:async(e,t)=>(await e.copyFrom(o,t))?.getCoords()??null,getCoords:()=>o.getCoords(),getSource:()=>e,getName:()=>e.getName()},!0}catch(e){throw e}if(!n&&!i&&this._native.image){let e=this;return this._parsed={async copyTo(t,n){let i=t.getSheet(),a=await e._native.image.arrayBuffer(),o=await i.getMovables().addPicture({source:{buffer:a}},{type:`picture`,description:(0,r.messageKey)(`op.copyImageFromClipboard`)});return i.getView().selectMovables([o]),null},getName:()=>`Image`},!0}return this._parsed=null,!1}get isClipboardItem(){return!0}},exports.FONTS_KIND=Le,Object.defineProperty(exports,"FontUtils",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"FormulaText",{enumerable:!0,get:function(){return t.I}}),Object.defineProperty(exports,"FunctionDeclarations",{enumerable:!0,get:function(){return t.L}}),Object.defineProperty(exports,"GeomUtils",{enumerable:!0,get:function(){return t.g}}),Object.defineProperty(exports,"IAnchored",{enumerable:!0,get:function(){return t.wt}}),Object.defineProperty(exports,"IBorders",{enumerable:!0,get:function(){return t.ln}}),Object.defineProperty(exports,"ICalculation",{enumerable:!0,get:function(){return t.vt}}),Object.defineProperty(exports,"ICell",{enumerable:!0,get:function(){return t.w}}),Object.defineProperty(exports,"ICellHeaderRange",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"ICellRange",{enumerable:!0,get:function(){return t.St}}),Object.defineProperty(exports,"ICellRanges",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"IColor",{enumerable:!0,get:function(){return t.Qt}}),Object.defineProperty(exports,"ICondition",{enumerable:!0,get:function(){return t.xt}}),Object.defineProperty(exports,"IConditionalFormat",{enumerable:!0,get:function(){return t.S}}),Object.defineProperty(exports,"IDataValidation",{enumerable:!0,get:function(){return t.x}}),Object.defineProperty(exports,"IEffect",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"IFill",{enumerable:!0,get:function(){return t.Yt}}),Object.defineProperty(exports,"IFont",{enumerable:!0,get:function(){return t.un}}),Object.defineProperty(exports,"IFontCollection",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"IMovable",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"IPicture",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"IPrint",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"IResource",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"IScript",{enumerable:!0,get:function(){return t.A}}),Object.defineProperty(exports,"IShape",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"ISheet",{enumerable:!0,get:function(){return t.an}}),Object.defineProperty(exports,"ISheetView",{enumerable:!0,get:function(){return t.y}}),Object.defineProperty(exports,"ISort",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"IStroke",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"IStyle",{enumerable:!0,get:function(){return t.Jt}}),Object.defineProperty(exports,"ITable",{enumerable:!0,get:function(){return t.Wt}}),Object.defineProperty(exports,"ITableStyle",{enumerable:!0,get:function(){return t.Ut}}),Object.defineProperty(exports,"IText",{enumerable:!0,get:function(){return t.jn}}),Object.defineProperty(exports,"ITextFrame",{enumerable:!0,get:function(){return t.An}}),Object.defineProperty(exports,"ITheme",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"IThemeCollection",{enumerable:!0,get:function(){return t.qt}}),Object.defineProperty(exports,"IWorkbookIO",{enumerable:!0,get:function(){return i}}),exports.LOCALES_KIND=Ie,exports.LicenseManager=t.Ot,exports.NamedStyleCollection=t.Ht,Object.defineProperty(exports,"NumberFormat",{enumerable:!0,get:function(){return t.on}}),exports.RangeClipboardItem=class{constructor(e){if(!e)throw new r.NullNotAllowedError(`snapshot is required.`);this._snapshot=e}getItemType(){return`range`}getItem(){return this._snapshot}editMode(){return this._snapshot?.getMarkOptions().editMode??null}isCut(){return this._snapshot?.getMarkOptions().isCut??!1}getName(){return this._snapshot.getName()}toText(){return this._snapshot.toText()}toHtml(){return this._snapshot.toHtml()}toImage(){return this._snapshot.toImage()}get isClipboardItem(){return!0}},exports.Registry=t.Mn,exports.Resource=t.Dt,exports.ResourceCollection=t.Et,exports.SHEETXL_RESOURCE_KINDS=Re,exports.SYSTEM_COLOR_CSS_PREFIX=t.Zt,exports.Sheet=t.u,exports.SimpleFontFace=v,Object.defineProperty(exports,"Sort",{enumerable:!0,get:function(){return t.cn}}),exports.StringCollection=t.Tt,exports.StyleCollection=t.jt,exports.Table=ze,exports.TableStyleCollection=t.Vt,Object.defineProperty(exports,"TextRotation",{enumerable:!0,get:function(){return t.Tn}}),Object.defineProperty(exports,"TextStacked",{enumerable:!0,get:function(){return t.wn}}),Object.defineProperty(exports,"TextUtils",{enumerable:!0,get:function(){return t.En}}),exports.Theme=t.Gt,exports.ThemeCollection=t.Kt,exports.TransactionConflictError=t.Fn,exports.TransactionSaveStateManager=class{constructor(e,n){this._dirty=!1,this._store=e,this._savedCommitId=e.getCurrentCommit()?.getId()??null,this._emitter=new t.Pn(this);let r=this;this._removeStoreListener=e.addListener({onCommitEnd(){r._recompute()},onCommitChange(){r._recompute()}}),this._removeCommitListener=n?.addCommitListener({onCommit(e){e.store===r._store&&r.markSaved(e.commitId)}})}getStore(){return this._store}isDirty(){return(this._store.getCurrentCommit()?.getId()??null)!==this._savedCommitId}getSavedCommitId(){return this._savedCommitId}markSaved(e=this._store.getCurrentCommit()?.getId()??null){e!==this._savedCommitId&&(this._savedCommitId=e??null,this._recompute())}addListeners(e,t){return this._emitter.addListeners(e,t)}_recompute(){let e=this.isDirty();e!==this._dirty&&(this._dirty=e,this._emitter.notify(e?`onDirty`:`onClean`,{transactional:!1}))}close(){this._removeStoreListener?.(),this._removeCommitListener?.(),this._emitter.close()}},exports.TransactionStore=t.In,exports.TransactionUndoManager=a,Object.defineProperty(exports,"Tuple",{enumerable:!0,get:function(){return t._n}}),exports.VERSION=`0.8.0-beta.5`,exports.Workbook=je,exports.WorkbookIO=Fe,exports.WorkbookOrigin=o,exports.WorkbookView=V,exports.builtInStyleNameDisplay=function(e){let t=ie[e];if(t)return{key:t};let n=ce.exec(e);return n?{key:ae,params:{n:+n[1]}}:(n=le.exec(e),n?{key:oe,params:{n:+n[1]}}:(n=ue.exec(e),n?{key:se,params:{pct:+n[1],n:+n[2]}}:null))},exports.createCellRangeCounts=t.d,exports.externalBookClosedName=t.nt,exports.externalBookFileName=t.rt,exports.externalBookLocation=t.it,exports.externalBookOpenName=t.at,exports.getBuiltInFunctionNames=function(){if(!L){let e=Promise.resolve().then(()=>require("./Nt1C8528otcBXJ2J.cjs")).then(({initializeFunctions:e})=>{let t=e(()=>null);return Object.freeze(Array.from(t.keys()))});e.catch(()=>{L=null}),L=e}return L},exports.getLanguagePack=t.fn,exports.getLocaleProfile=t.Sn,exports.getScriptRuntime=t.j,exports.getScriptingApi=function(){if(!$){let e=Promise.resolve().then(()=>require("./D_hl_D3IBlVqjbUu.cjs")).then(e=>e.loadScriptingApi()).then(e=>JSON.parse(e));e.catch(()=>{$=null}),$=e}return $},exports.getScriptingDeclarations=function(){if(!Z){let e=Promise.resolve().then(()=>require("./D_hl_D3IBlVqjbUu.cjs")).then(e=>e.loadScriptingDeclarations());e.catch(()=>{Z=null}),Z=e}return Z},exports.localizeBoolean=t.pn,exports.localizeErrorLabel=t.mn,exports.makeLocaleProfile=t.Cn,exports.parseBooleanLocal=t.hn,exports.parseErrorLocal=t.gn,exports.parseExternalScope=t.ot,exports.parseFormulaLiteral=function(e){let n=e.trim();if(!n)return;let r;try{let e=t.gt.shared().tokenize(n,!1);if(e.errors.length>0)return;r=e.tokens}catch{return}let i=0,a=0;if(r.length===2){let e=r[0].tokenType?.name;e===`MinOp`?(i=-1,a=1):e===`PlusOp`&&(i=1,a=1)}if(r.length-a!==1)return;let o=r[a],s=o.image;try{switch(o.tokenType?.name){case`NumberToken`:case`ScientificDigit`:case`DigitToken`:{let e=t.mt(s).value;return i===0?e:i*e}case`StringToken`:return i===0?t.ht(s).value:void 0;case`BooleanToken`:return i===0?t.ft(s).value:void 0;case`LiteralError`:case`RefError`:return i===0?t.pt(s).value:void 0;default:return}}catch{return}},exports.registerSdkLocales=t.dn,exports.sourceEntryFromPath=t.st,exports.withScriptRuntime=t.M,Object.keys(n).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return n[e]}})}),Object.keys(r).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return r[e]}})});
3
+ `)}`},ve=class{constructor(e){this._options=e,this._emitter=new t.Pn(this),this._initState()}_initState(){}getModules(){return this._modules}_builtInNames(){try{let e=this._options.getBuiltInFunctions?.();if(!e)return r.CommonUtils.EmptyArray;let t=[];for(let n of e.getItems())n.isBuiltIn()&&t.push(n.getName());return t}catch{return r.CommonUtils.EmptyArray}}async createModule(e){let n=await(await import(`@sheetxl/scripting`)).ScriptCompiler.compile({builtInNames:this._builtInNames(),minify:!0,...e});return n.module?await t.O(t.A.DEFAULT_MODULE,n.module,e?.declarationsOnly??!1,n.diagnostics):null}addModule(e,t,n){this._modules.add(e,t,n)}async addModuleFromJSON(e,n,r){let i=await t.O(e,n);return this.addModule(e,i,r),i}executeMacro(e,t,n){let r=this._modules.getItems({name:t}),i=r.length;for(let t=0;t<i;t++){let i=r[t].getFunctions().getByName(e);if(i)return i.execute(this._options.workbook,{applyResult:!0,...n})}throw Error(`No macro ${e} found.`)}async run(e,n){try{let r=typeof e==`string`?await this.createModule({source:e}):await t.O(t.A.DEFAULT_MODULE,e),i=typeof e==`string`?e:e?.source??``;return await this._runModule(r,i,n)}catch(e){return{ok:!1,error:e}}}async _runModule(e,t,n){let r=this._options?.workbook;if(!e)return{ok:!1,error:Error(`The script did not compile to a module.`)};let i=e.getDiagnostics(),a=i.filter(e=>e.severity===`error`);if(a.length>0){let e=Error(_e(t,a));return e.diagnostics=a,{ok:!1,error:e,diagnostics:i}}let o=e.getFunctions(),s=(await o.search({type:`autoRun`}))[0]??(await o.search({type:`macro`}))[0]??null;if(!s)return{ok:!1,error:Error("The script has no runnable entry. Export a default function taking the script context, e.g. `export default function run(ctx: IScript.ScriptContext) { ... }` (the workbook is `ctx.wb`; a macro may instead take its target first, e.g. `(sheet: ISheet, ctx)`).")};let c=await s.execute(r,n);return{ok:!0,result:c?.results,commitId:c?.commitId,diagnostics:i}}async _searchable(e){let t=[];if(e?.includeBuiltIn){await this._options.workbook?.getCalculation()?.start();let e=this._options.getBuiltInFunctions?.();e&&t.push(e)}let n=this._modules;if(!n||n.getCount()===0)return t;let r=e?.moduleName,i=r?n.getItems({name:r}):n.getItems(),a=i.length;for(let e=0;e<a;e++)t.push(i[e].getFunctions());return t}async searchFunctions(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let n=await this._searchable(e);if(n.length===0)return r.CommonUtils.EmptyArray;let i=e?.limit,a=i===void 0?e:{...e,limit:void 0},o,s=new Set;for(let e=0;e<n.length;e++){let t=await n[e].search(a);if(t.length!==0){o||=[];for(let e=0;e<t.length;e++){let n=t[e],r=n.getName().toUpperCase();s.has(r)||(s.add(r),o.push(n))}}}if(!o||o.length===0)return r.CommonUtils.EmptyArray;let c=e?.text?e.text.trim().toUpperCase():null;return c&&n.length>1&&t.k(o,c),i!==void 0&&o.length>i?o.slice(0,i):o}async getFunctionCategories(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let t=await this._searchable(e);if(t.length===0)return r.CommonUtils.EmptyArray;if(t.length===1)return t[0].getCategories(e);let n=e?.includeDeprecated??!1,i=new Map,a=e=>{let t=e.toUpperCase(),n=i.get(t);n?n.count++:i.set(t,{name:e,count:1})};for(let n of await t[0].getCategories(e))i.set(n.name.toUpperCase(),{name:n.name,count:n.count});for(let r=1;r<t.length;r++){let i=await t[r].search(e?.type?{type:e.type}:void 0);for(let e=0;e<i.length;e++){let o=i[e],s=o.getName().toUpperCase(),c=!1;for(let e=0;e<r&&!c;e++)c=!!t[e].getByName(s);if(c)continue;let l=await o.getDescriptor().catch(()=>null);!n&&l?.isDeprecated()||a(l?.getCategory()??`Uncategorized`)}}let o=Array.from(i.values());return o.sort((e,t)=>e.name.localeCompare(t.name)),o}async start(){if(!this._modules)return this._startPromise||(this._startPromise=this._doStart(),this._startPromise.catch(()=>{this._startPromise=void 0})),this._startPromise}async _doStart(){let e=this._options?.workbook,n=this._options?.json,i={};if(n){let a=Object.keys(n);for(let o=0;o<a.length;o++){let s=a[o],c=n[s];try{i[s]=await t.O(s,c,!1,[],c?.scope===`workbook`?e:null)}catch(e){r.Notifier.error(`Could not load script '${s}'; it will be unavailable.`,e)}}}let a=this,o=new t.N({transactions:this._options?.transactions,initial:i,isReadOnly:()=>a.isReadOnly(),onRemove:(e,t)=>{a._options?.onRemove?.(e,t)},onAdd:(e,t)=>{a._emitter.notify(`onChange`),a._options?.onAdd?.(e,t)}});this._modules=o;let s=o.getItems();if(s.length===0)return Promise.resolve(r.CommonUtils.EmptyArray);let c=s.length;for(let t=0;t<c;t++){let n=s[t];try{let t=await n.getFunctions().search({type:`autoRun`}),r=t.length;for(let n=0;n<r;n++)await t[n].execute(e)}catch(e){r.Notifier.error(`Error executing autoRun script:`,e)}}}addListeners(e,t){return this._emitter.addListeners(e,t)}isReadOnly(){return this._options.workbook?._isStructureProtected?.()??!1}toJSON(){this._emitter.notify(`onBeforeSave`);let e=this._modules;if(!e)throw Error(`Scripts is initializing.`);return e.toJSON()}get isIScript(){return!0}},ye=class{constructor(e,n,i,a){this._mergedReading=[],this._colsReading=[],this._rowsReading=[],this._styles=i,this._topLeft=n??r.CoordUtils.EmptyCell,this._sheet=new t.u({runtime:e,styles:this._styles,calcOnLoad:`none`,container:{getName:()=>a,getIndex:()=>1}}),this._builder=this._sheet.getEntireRange().createSparseBuilder()}applyCSSStyle(e,n){let r=!1;e.style||(e.style={},r=!0);let i=e.style,a={...n};if(n.msoIgnore){let e=n.msoIgnore.split(`,`),t=Object.keys(a);for(let n=0;n<t.length;n++){let r=t[n];e.includes(r)&&delete a[r]}}let o=t.Lt(a.fontFamily);i.font={},o&&(i.font.family=o.family,i.font.fallbacks=o.fallbacks,i.font.size=o.size),i.font.size=a.fontSize,i.font.weight=a.fontWeight,i.font.style=a.fontStyle,i.font.color=a.color;let s=t.Pt(a.textDecoration);i.font.underline=s.underline,i.font.strike=s.strike,a.textUnderlineStyle&&(i.font.underline=t.Ft(a.textUnderlineStyle)),i.alignment={},a?.textAlign&&(i.alignment.horizontal=t.Nt(a.textAlign)),a?.textAlign&&!i.alignment.horizontal&&a?.textAlign!==`general`&&(a.textAlign===`center-across`?i.alignment.horizontal=t.An.HorizontalAlignment.CenterContinuous:a.textAlign===`fill`?i.alignment.horizontal=t.An.HorizontalAlignment.Fill:a.textAlign===`121`||a.textAlign===`010`?(i.alignment.horizontal=t.An.HorizontalAlignment.Distributed,i.alignment.justifyLastLine=a.textAlign===`121`):console.warn(`unknown text-align`,a.textAlign)),a.verticalAlign&&(a.verticalAlign.toLowerCase()===`super`?i.font.verticalAlign=t.un.VerticalAlignment.Super:a.verticalAlign.toLowerCase()===`sup`?i.font.verticalAlign=t.un.VerticalAlignment.Sub:i.alignment.vertical=t.It(a.verticalAlign),i.alignment.vertical||(a.verticalAlign===`121`?i.alignment.vertical=t.An.VerticalAlignment.Distributed:console.warn(`unknown vertical-align`,a.verticalAlign))),a.msoCharIndentCount&&(i.alignment.indent=a.msoCharIndentCount),a.whiteSpace&&(i.alignment.overflow=a.whiteSpace===`no-wrap`||a.whiteSpace===`nowrap`?t.An.Overflow.Visible:t.An.Overflow.Wrap),a.msoTextControl===`shrinktofit`&&(i.alignment.overflow=t.An.Overflow.Shrink);let c=null;if(a.background?c=a.background:a.backgroundColor&&(c=a.backgroundColor),c&&(i.fill={color:c}),a.msoPattern){let e=t.zt(a.msoPattern);e&&(e.patternType===t.Yt.BuiltInSheetPattern.Solid?i.fill={color:e.foreground}:e.patternType!==t.Yt.BuiltInSheetPattern.None&&(c&&(e.background=c),i.fill=e))}a.layoutFlow===`vertical`||a.layoutFlow===`vertical-ideographic`?i.alignment.stacked=!0:a.msoRotate!==void 0&&(i.alignment.rotation=t.Mt(a.msoRotate));let l=(e,t)=>{e&&(i.borders||={},i.borders[e]=t)};a.border&&a.border!==`none`&&(l(`top`,a.border),l(`left`,a.border),l(`right`,a.border),l(`bottom`,a.border)),a.borderTop&&l(`top`,a.borderTop),a.borderLeft&&l(`left`,a.borderLeft),a.borderRight&&l(`right`,a.borderRight),a.borderBottom&&l(`bottom`,a.borderBottom),a.msoDiagonalUp&&l(`diagonalUp`,a.msoDiagonalUp),a.msoDiagonalDown&&l(`diagonalDown`,a.msoDiagonalDown);let u=i.numberFormat;a.msoNumberFormat&&(u=t.Bt(a.msoNumberFormat),u.includes(`\\`)?u=null:u===`Fixed`?u=t.on.Styles.lookupStyle(i.numberFormat).formatType===t.on.Type.Number?null:t.on.Type.Number:u===`Percent`&&(u=t.on.Styles.lookupStyle(i.numberFormat).formatType===t.on.Type.Percentage?null:t.on.Type.Percentage)),u&&(i.numberFormat=u),e.style=this._styles.normalize(i),r&&Object.keys(e.style).length===0&&delete e.style}onCell(e,n,i,a,o){let s=a(o),c={value:n===void 0?i??``:n};if(typeof c.value==`string`&&c.value.length===0&&(c.value=void 0),s&&this.applyCSSStyle(c,s),o?.tagName.toUpperCase()===`TD`){let e=c.style,n=e?.font??{};(o.querySelectorAll(`s`).length>0||o.querySelectorAll(`strike`).length>0)&&(n.strike=!0),o.querySelectorAll(`sub`).length>0&&(n.verticalAlign=t.un.VerticalAlignment.Sub),o.querySelectorAll(`sup`).length>0&&(n.verticalAlign=t.un.VerticalAlignment.Super),(o.querySelectorAll(`b`).length>0||o.querySelectorAll(`strong`).length>0)&&(n.weight=700),o.querySelectorAll(`i`).length>0&&(n.style=t.un.Style.Italic),o.querySelectorAll(`u`).length>0&&(n.underline=t.un.UnderlineStyle.Single),Object.keys(n).length>0&&(e||(e={},c.style=e),e.font||=n);let r=o.querySelectorAll(`a`);if(r.length>0){let e=r[0].getAttribute(`href`);e&&(c.hyperlink=e)}}if(!r.CoordUtils.isSingleCell(e)){let t={rowStart:this._topLeft.rowIndex+e.rowStart,colStart:this._topLeft.colIndex+e.colStart,rowEnd:this._topLeft.rowIndex+e.rowEnd,colEnd:this._topLeft.colIndex+e.colEnd};this._mergedReading.push(t)}if(c.value===void 0&&!c.style&&Object.keys(c).length<=1)return;let l=this._builder,u=this._topLeft;if(l.pushAt(u.rowIndex+e.rowStart,u.colIndex+e.colStart,c),!r.CoordUtils.isSingleCell(e)&&s.msoIgnore){if(s.msoIgnore.includes(`colspan`)){let t={};s&&this.applyCSSStyle(t,s);let n=e.colEnd-e.colStart,r=u.rowIndex+e.rowStart;for(let i=1;i<=n;i++)l.pushAt(r,u.colIndex+e.colStart+i,t);e={...e,colEnd:e.colStart}}s.msoIgnore.includes(`rowspan`)&&(e={...e,rowEnd:e.rowStart})}}onNoTable(e,t,n){this.onCell({rowStart:this._topLeft.rowIndex,colStart:this._topLeft.colIndex,rowEnd:this._topLeft.rowIndex,colEnd:this._topLeft.colIndex},e,null,t,n)}onRowStart(e,n,r,i){let a=r(i);if(a.msoHeightSource!==`userset`||!i)return;let o=i.getAttribute(`height`)??a.height,s=null;if(o&&(s=t.Rt(o,this._styles.getNormal().getFont().getSize(),`px`)),s===null)for(let e=0;e<i.cells.length;e++){let n=i.cells[e],a=n.getAttribute(`height`)??r(n).height,o=t.Rt(a,this._styles.getNormal().getFont().getSize(),`px`);o!==null&&(s=Math.max(o,s??0))}s!==null&&this._rowsReading.push({address:{min:this._topLeft.rowIndex+e,max:this._topLeft.rowIndex+e+n-1},update:{size:s*t.un.getDeviceScale()}})}onColumn(e,n,r,i){let a=r(i);if(a.msoWidthSource!==`userset`||!i)return;let o=i.getAttribute(`width`)??a.width,s=null;o&&(s=t.Rt(o,this._styles.getNormal().getFont().getSize(),`px`)),s!==null&&this._colsReading.push({address:{min:this._topLeft.colIndex+e,max:this._topLeft.colIndex+e+n-1},update:{size:s*t.un.getDeviceScale()}})}onDone(){this._colsReading.length>0&&this._sheet.getColumnHeaders().updateHeaderPairs(this._colsReading),this._rowsReading.length>0&&this._sheet.getRowHeaders().updateHeaderPairs(this._rowsReading),this._sheet.doBatch(()=>{this._builder.apply()}),this._mergedReading.length>0&&this._sheet.getRanges(this._mergedReading).merge()}sheet(){return this._sheet}},V={showFormulaBar:!0,showTabs:!0,tabRatio:600,showHorizontalScrollbar:!0,showVerticalScrollbar:!0,showStatusBar:!0,activeSheetId:0},H=class{constructor(e){this._id=r.CommonUtils.uuidV4(),this._emitter=new t.Pn(this),this._state={...V},e?.json&&this._fromJSON(e?.json)}getId(){return this._id}isShowFormulaBar(){return this._state.showFormulaBar}setShowFormulaBar(e){return this._state.showFormulaBar=e,this._emitter.notify(`onViewChange`),this}isShowTabs(){return this._state.showTabs}setShowTabs(e){return this._state.showTabs=e,this._emitter.notify(`onViewChange`),this}getTabRatio(){return this._state.tabRatio}setTabRatio(e){return this._state.tabRatio=e,this._emitter.notify(`onViewChange`),this}isShowHorizontalScrollbar(){return this._state.showHorizontalScrollbar}setShowHorizontalScrollbar(e){return this._state.showHorizontalScrollbar=e,this._emitter.notify(`onViewChange`),this}isShowVerticalScrollbar(){return this._state.showVerticalScrollbar}setShowVerticalScrollbar(e){return this._state.showVerticalScrollbar=e,this._emitter.notify(`onViewChange`),this}isShowStatusBar(){return this._state.showStatusBar}setShowStatusBar(e){return this._state.showStatusBar=e,this._emitter.notify(`onViewChange`),this}getActiveSheetId(){return this._state.activeSheetId}setActiveSheetId(e){let t=this._state,n=t.activeSheetId;return t.activeSheetId=e,n!==e&&this._emitter.notify(`onViewChange`),this}addListeners(e,t){return this._emitter.addListeners(e,t)}toJSON(){let e={},t=Object.keys(this._state),n=t.length;for(let r=0;r<n;r++){let n=t[r],i=this._state[n];i!=null&&i!==V[n]&&(e[n]=i)}return Object.keys(e).length===0&&(e=null),e}_fromJSON(e,t=!0){let n=e||{};this.update(n,t)}update(e,t=!0){this._state={...V,...this._state,...e},t&&this._emitter.notify(`onViewChange`)}get[Symbol.toStringTag](){return`[WorkbookView]`}toString(){let e=this.toJSON();return e?JSON.stringify(e):`DefaultWorkbookView`}get isIWorkbookView(){return!0}},be=Object.freeze({structure:!1,windows:!1,revision:!1,password:null,revisionsPassword:null}),U=class extends t.At{isWindowsAllowed(){return this._isPropertyAllowed(`windows`)}isRevisionAllowed(){return this._isPropertyAllowed(`revision`)}isStructureAllowed(){return this._isPropertyAllowed(`structure`)}_getAllowedKey(){return`workbook`}_fromJSON(e){this._properties=e}_toJSON(e){let t=this._properties;if(t){let n=Object.keys(t),r=n.length;for(let i=0;i<r;i++){let r=n[i],a=t[r];a!=null&&a!==be[r]&&(e[r]=a)}}return super._toJSON(e)}get[Symbol.toStringTag](){return`[WorkbookProtection]`}get isIWorkbookProtection(){return!0}};function W(e){return(0,r.t)(`error.workbook.invalidSheetKey`,{key:e})}var xe=class extends t.Nn{constructor(e,t,n){super(),this._add=e,this._get=t,this._addListeners=n}add(e){return this._add(e)}_getItems(e){return this._get(e?.name,e?.visibility)}getByName(e){return this._get(e)?.[0]??null}addListeners(e,t){return this._addListeners(e,t)}get isISheetCollection(){return!0}},G=new RegExp(/[\\/\\*?:[\]]+/),Se=new RegExp(/\(((\d+)(?!.*\d))\)$/,`g`);function Ce(e){let t=(0,r.t)((0,r.messageKey)(`workbook.defaultSheetName`),{n:e+1});return t===`workbook.defaultSheetName`?`Sheet${e+1}`:t}function K(e,n){return{...t.s,getSheet:()=>null,toString:()=>t.tn(e,n)}}function q(e,t=!1){if(!e)throw Error((0,r.t)(`error.workbook.sheetNameBlank`));if(G.test(e)){if(!t)throw Error(function(e){return e?(0,r.t)(`error.workbook.sheetNameInvalidCharsNamed`,{sheetName:e}):(0,r.t)(`error.workbook.sheetNameInvalidChars`)}(e));e=e.replace(G,``)}if(e.length===0)throw Error((0,r.t)(`error.workbook.sheetNameBlank`));let n=e.length;if(n>31){if(!t)throw Error((0,r.t)(`error.workbook.sheetNameTooLong`));e=e.substring(0,31)}if(e.charAt(0)===`'`||e.charAt(n-1)===`'`){if(!t)throw Error((0,r.t)(`error.workbook.sheetNameQuotes`));e=e.replace(/^'|'$/g,``)}return e}var we,Te,Ee,De,Oe=`workbook.activeSheet`,J=class e extends t.l{constructor(e,t,n,r){super(e,t,r),this._workbook=n}getSource(){return this._workbook}_createRanges(n,r){let i=this._options;return r&&(i={...this._options,getOptions:t.o(this._options?.getOptions,r)}),new e(n,this._internal,this._workbook,i)}_createRange(e,n){let r=e?{...e}:null,i=r?this._workbook._getSheetRef(r.scope,t.an.Visibility.VeryHidden):null;if(!i){let e=this._workbook.getSelectedSheet();return delete r?.scope,K(r,r?{scope:t.$t,...e.getEntireRange().getCoords()}:null)}let a=this._options;return n&&(a={...this._options,getOptions:t.o(this._options.getOptions,n)}),new ke(e,t.a(i.sheet),this._workbook,a)}async select(e){let t=[],n=null,r=this.getCoords();for(let e=0;e<r.length;e++){let i=r[e];i&&(n||=i.scope,i&&i.scope===n&&t.push(i))}n||=this._workbook.getSelectedSheet().getName();let i=this._workbook.getSheets().getByName(n);if(!i)return;let a=await i.getRanges(t).select(e),o=this._workbook._rangesAddressToCoords(a.getCoords());return this._createRanges(o)}addListener(e,t){if(!this.getCoords())return()=>{};let n=this._workbook._sheetToWBEvent(e);return super.addListener(n,t)}get[Symbol.toStringTag](){return`[WorkbookRanges]`}getAddress(e){let n=this._internal.getSheet(),r=n.getEntireRange().getCoords();return t.en(this.getCoords(),{...r,scope:n.getName()},t.tn,t.rn,e)}toString(){return this.getAddress()}},ke=class e extends t.v{constructor(e,t,n,r){super(e,t,r),this._workbook=n}_createRanges(e,n){let r=this._options;return n&&(r={...this._options,getOptions:t.o(this._options?.getOptions,n)}),new J(e,this._internal,this._workbook,r)}_createRange(n,r){let i=this._internal;if(!n)return t.i(i.getSheet(),i.getSheet().getEntireCoords());if(i.validateCoords(n),i.getSheet().isClosed())return t.i(null,i.getSheet().getEntireCoords(),n);let a=this._options;return r&&(a={...this._options,getOptions:t.o(this._options?.getOptions,r)}),new e(n,this._internal,this._workbook,a)}addListener(e,t){if(!this.getCoords())return()=>{};let n=this._workbook._sheetToWBEvent(e);return super.addListener(n,t)}get[Symbol.toStringTag](){return`[WorkbookRange]`}getAddress(e){let n=this._internal.getSheet(),r=n?.getEntireRange().getCoords()??null;return t.tn(this.getCoords(),{...r,scope:n.getName()})}toString(){return this.getAddress()}},Ae=e=>!!e&&typeof e==`object`&&typeof e.getOrigin==`function`,je=class{constructor(e){this._isLoadingSheets=!1,this._lastTransactionUUID=null,this._starting=null,this._closed=!1,this._listenerOriginProvider=null,this._listenerOrigin=null,this._lastOriginName=null,this._initializing=!0,this._pivotCaches=[],this._pivotTableCollection=new t.T(()=>{let e=[];for(let t of this.getSheets())e.push(...t.getPivotTables());return e}),this._people=new B,this._commentCollection=new t.b(null,(e,t,n)=>{let r=[];for(let i of this.getSheets())r.push(...i.getComments().getItems(e?{address:e,ignoreHidden:t,fullyContained:n}:{ignoreHidden:t,fullyContained:n}));return r},(e,t)=>this.addListeners({onSheetsChange:e.onCollectionChange?()=>{e.onCollectionChange(this._commentCollection)}:void 0},t)),this._restoringSheets=!1,this._isDate1904=!1,this._codeName=null,this._updateLinks=null,this._locale=null,this._localeOverrides=null;let n=typeof e==`string`?{origin:e}:{...e},i=n.origin;this._ownOriginProvider=!Ae(i),this._originProvider=Ae(i)?i:new d(typeof i==`string`?new o(null,{name:i}):i??new o(null)),delete n.origin,this._bindOrigin(this._originProvider.getOrigin()),this._listenerOriginProvider=this._originProvider.addListeners({onOriginChange:()=>this._onOriginChange()});let a=n.json;delete n.json,this._transactions=n.transactions??new t.In,this._id=this._transactions.create(),this._ownTransactions=!n.transactions,this._emitter=new t.Pn(this,this._transactions),this._runtime=n.runtime??new t.yn(`Workbook Runtime`,{isDate1904:()=>this._isDate1904,getNow:()=>this._transactions.getCurrentCommit().getTimestamp(),getLocale:()=>this._locale??t.xn()??t.bn(),getLocaleOverrides:()=>this._localeOverrides}),this._listenerLanguage=r.DefaultLanguagePackService.addChangeListener(()=>{this._closed||this._notifyAllChange()});let s=this,c=this._beginCommit({description:a?(0,r.messageKey)(`op.openWorkbook`):(0,r.messageKey)(`op.newWorkbook`)});try{this._strings=n.strings??new t.Tt,this._ownStrings=!n.strings,this._resources=n.resources??new t.Et,this._ownResources=!n.resources,this._createSheetName=n.createSheetNameCallback??Ce;let e=n.createSheetCallback;e||=e=>new t.u(e),this._sheetOnNameChange=new Map,this._sheetOnVisibilityChange=new Map,this._sheetOnIndexChange=new Map,this._createSheet=(n,r,i,a,o,c)=>{let l=null,u={runtime:s._runtime,readonly:s._options.readonly??!1,disableLoadAutoFit:s._options.disableLoadAutoFit??!1,opener:s._options.opener,transactions:s._transactions,styles:s._styles,strings:s._strings,resources:s._resources,names:s._names,workbook:s,calculation:s._calculation,resolveRange:e=>s._options.resolveRange?.(e)??s.getRange(e),container:{beforeFromJSON:e=>{l=e,s._addSheetRef({name:r,id:n,visibility:i??t.an.Visibility.Visible,sheetId:o,sheet:e},a)},getName:()=>{let e=s._getSheetRef(l);return e?e.name:r},setName:(e,t)=>{s._getSheetRef(l)&&s._setSheetName(l,e,t)},setNameChangeCallback:e=>{s._sheetOnNameChange.set(n,e)},getVisibility:()=>{let e=s._getSheetRef(l);return e?e.visibility:t.an.Visibility.Visible},setVisibility:(e,t)=>{s._setSheetVisibility(l,e,t)},setVisibilityCallback:e=>{s._sheetOnVisibilityChange.set(n,e)},duplicate:()=>s._duplicateSheet(l),getIndex:()=>{let e=s._getSheetRef(l);return e?s._getOffsetForId(e.id,s._getSheetRefs(t.an.Visibility.VeryHidden)):a},setIndex:(e,n)=>{let r=s._getSheetRef(l,t.an.Visibility.VeryHidden);return!!r&&(s._moveSheet(r,e,n),!0)},setIndexCallback:e=>{s._sheetOnIndexChange.set(n,e)},requestSelect:async()=>(s._setSelectedSheet(l),await this._emitter.notify(`onRequestSelect`,{source:s,params:l,async:!0}),s.getSelectedSheet()===l)}};return c&&(u.json=c),l=e(u,r,a,i),l},this._namedTableSource=new t.Ct({getSheets:()=>s._sheets?s.getSheets().getItems():r.CommonUtils.EmptyArray,addSheetsListener:(e,t)=>s.addListeners({onSheetsChange:e},t)}),this._names=n.names??new t.D({addressToRanges:e=>s.getRanges(e),getCurrentScope:()=>s.getSelectedSheet().getName(),isReadOnly:()=>(s._options.readonly??!1)||s._isStructureProtected(),transactions:s._transactions,getSources:()=>s._calculation?[s._calculation.getNamedFormulas(),s._namedTableSource]:r.CommonUtils.EmptyArray}),this._ownNames=!n.names,this._calculation=n.calculation??new t.f({runtime:s._runtime,functions:n.functions,json:a?.calc,isNamesReadOnly:()=>s._isStructureProtected(),getActiveCell:()=>{let e=s.getSelectedSheet(),t=e?.getSelectedRange()?.getCoords();return t?{rowIndex:t.rowStart,colIndex:t.colStart,scope:e.getId()}:null},getRange:s.getRange.bind(s),getRanges:s.getRanges.bind(s),createGraphRanges:(e,t)=>s._createGraphRanges(e,t),getSheetIndex:e=>{if(e===void 0){let e=s.getSelectedSheet();return e?this._getSheetRefs(t.an.Visibility.VeryHidden).findIndex(t=>t.sheet===e):-1}let n=this._getSheetRefs(t.an.Visibility.VeryHidden);e=e.toLowerCase();let r=n.length;for(let t=0;t<r;t++)if(n[t].name.toLowerCase()===e)return t;try{Me.address=e;let n=this._names.getItems(Me);if(!n||n.length===0)return-1;let r=n[0].getRanges?.()?.getCoords()?.[0]?.scope;if(!r)return-1;let i=this._getSheetRefs(t.an.Visibility.VeryHidden);r=r.toLowerCase();let a=i.length;for(let e=0;e<a;e++)if(i[e].name.toLowerCase()===r)return e}catch{return-1}return-1},getSheetCount:()=>s.getSheets().getItems({visibility:t.an.Visibility.VeryHidden}).length,getSheetIds:()=>s._sheets?.getItems({visibility:t.an.Visibility.VeryHidden}).map(e=>e.getId())??[],addSheetsListener:(e,t)=>s.addListeners({onSheetsChange:()=>{s._restoringSheets||e()}},t),getSheetById:e=>{let n=s.getSheets().getItems({visibility:t.an.Visibility.VeryHidden}),r=n.length;for(let t=0;t<r;t++)if(n[t].getId()===e)return n[t];return null},externalBooks:a?.externalBooks,externalBookResolver:n.externalBookResolver,namedCollection:s._names,strings:s._strings,transactions:s._transactions,names:a?.names}),this._ownCalculation=!n.calculation,this._scripts=this._createScripts(a?.modules),this._ownNames=!n.names,this._options=Object.freeze({...n});let i=n.calcOnLoad??`auto`,o=!1,l=(async()=>{try{if(this._ownCalculation&&i!==`none`&&(i===`full`||i===`auto`&&!0===a?.calc?.fullCalcOnLoad?await this._calculation.calculate({full:!0}):await this._calculation.start(),this._closed))return;await this._scripts.start()}finally{o=!0,this._starting=null}})();o||(this._starting=l),this._starting?.catch(()=>{}),a?this._fromJSON(a):(this._initState(),this._addSheet(!1)),this._sheets=new xe(e=>s._addSheetOptions(e),(e,t)=>{if(e){let n=this._getSheetRef(e,t);return n?[n.sheet]:r.CommonUtils.EmptyArray}return this._getSheets(t)},(e,t)=>{let n=e.onCollectionChange,r=e.onInvalidated;return s._emitter.addListeners({onSheetsChange:n?()=>{n(s._sheets)}:void 0,onInvalidated:r?()=>{r(s._sheets)}:void 0},t)}),this._ownCalculation&&(n.calcOnLoad??`auto`)!==`none`&&this._calculation.hydrateNames(),this._emitter.notify(`onLoad`),this._ownTransactions?c.amend():c.commit()}catch(e){throw c.rollback(),e}this._initializing=!1}_initState(){let e=this._getSheetRefs();for(let t=(e?e.length:0)-1;t>=0;t--);let n=this._options;this._isDate1904=n.runtime?.isDate1904()??!1,this._locale=null,this._localeOverrides=null,this._theme=n.theme??new t.Kt().getDefaultTheme(),this._styles=n?.styles??new t.jt(this._theme),this._ownStyles=!n.styles,this._styles.getTheme()||this._styles.setTheme(this.getTheme()),this._activeSheetOffset=0,this.setView(new H),this._listenerProtection?.(),this._protection=new U(void 0,this._options.readonly??!1),this._listenerProtection=this._protection.addListeners({onChange:e=>{r._emitter.notify(`onProtectionChange`)}});let r=this;this._transactionsRemoveListener=this._transactions.addStateListener(this._id,{async onAfterStateChange(e,t,n,i,a){let o=r._view,s=a?.[Oe],c=n?s?.before:s?.after,l=s?.viewId===o.getId()&&c!=null,u=l?c:o.getActiveSheetId(),d=l&&t.getId()===r._lastTransactionUUID?r._getSheetRef({id:u}):null;if(d?await d.sheet.select():r._resyncActiveSheet(u,e),r._lastTransactionUUID=t.getId(),n||i){r._restoringSheets=!0;try{r._emitter.notify(`onSheetsChange`)}finally{r._restoringSheets=!1}}r._emitter.notify(`onSelectedSheetChange`),r._emitter.notify(`onViewChange`)},onRestoreOrRevert(){r._ownCalculation,r._emitter.notify(`onInvalidated`)}});let i=this._getState();i?.listenersSheets&&(i?.listenersSheets.forEach(e=>{e()}),i?.listenersSheets.clear()),this._updateState({sheetRefsAll:[],sheetRefsVisibleAndHidden:[],sheetRefsVisible:[],refsById:new Map,sheetsById:new Map,refsByLowerCaseName:new Map,sheetsByLowerCaseName:new Map,refsByInstance:new Map,lastId:-1,sheetsCreated:new Set,listenersSheets:new Map})}getId(){return this._id}getVersionId(){return this._transactions.getVersionId(this._id)}getName(){return this._closed?null:this._origin.getName()}getOrigin(){return this._originProvider.getOrigin()}_onOriginChange(){if(this._closed)return;let e=this._originProvider.getOrigin();if(e===this._origin)return;this._listenerOrigin?.();let t=this._lastOriginName;this._bindOrigin(e),this._emitter.notify(`onOriginChange`),this._lastOriginName!==t&&this._emitter.notify(`onNameChange`)}_bindOrigin(e){this._origin=e,this._lastOriginName=e.getName(),this._listenerOrigin=e.addListeners({onChange:()=>{if(this._closed)return;let t=e.getName();t!==this._lastOriginName&&(this._lastOriginName=t,this._emitter.notify(`onNameChange`))}})}getView(){return this._view}setView(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!e)throw new r.ExpectedError((0,r.t)(`error.sheet.emptyView`));this._listenerWorkbookView?.();let t=this,n=-1;return this._listenerWorkbookView=e.addListeners({onViewChange:e=>{let r=t._getState(),i=this._view.getActiveSheetId(),a=r.sheetRefsVisible,o=this._getOffsetForId(i,a);this._activeSheetOffset=o,t._emitter.notify(`onViewChange`),n!==i&&(t._emitter.notify(`onSelectionChange`),t._emitter.notify(`onSelectedSheetChange`)),n=i}}),this._view=e,t._emitter.notify(`onViewChange`),this}getRuntime(){return this._runtime}setDate1904(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._isDate1904===e||(this._isDate1904=e,this._emitter.notify(`onRegionalChange`)),this}getLocale(){return this._runtime.getLocale()}getPinnedLocale(){return this._locale}setLocale(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(e)try{new Intl.Locale(e)}catch{throw Error((0,r.t)(`error.workbook.invalidLocale`,{locale:e}))}return this._locale===e||(this._locale=e,this._emitter.notify(`onRegionalChange`)),this}getLocaleOverrides(){return this._localeOverrides}setLocaleOverrides(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=e&&Object.keys(e).length>0?e:null;return this._localeOverrides=t,this._emitter.notify(`onRegionalChange`),this}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}getExternalBooks(){return this._calculation.getExternalBooks()}getUpdateLinks(){return this._updateLinks}setUpdateLinks(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._updateLinks=e,this}getPivotTables(){return this._pivotTableCollection}getComments(){return this._commentCollection}getPeople(){return this._people}getTheme(){return this._theme}setTheme(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!e)throw new r.ExpectedError((0,r.t)(`error.workbook.notSetValue`));let t=this._theme;return this._theme=e,this.getStyles().setTheme(e),this._emitter.notify(`onThemeChange`),t}getSelectedSheetIndex(){return this._activeSheetOffset}getSelectedSheet(){let e=this._getSheetRef(this.getSelectedSheetIndex());return e?e?.sheet:null}getSheet(e,n=t.an.Visibility.Visible){if(e===void 0)return this.getSelectedSheet();if(!e)throw Error((0,r.t)(`error.workbook.sheetNameNotProvided`));let i=this._getSheetRef(e,n);if(!i)throw new r.OutOfBoundsError((a=e,(0,r.t)(`error.workbook.sheetNameNotFound`,{sheetName:a})));var a;return i.sheet}getSheetAt(e,n=t.an.Visibility.Visible){let i=this._getSheetRef(e,n);if(!i)throw new r.OutOfBoundsError(function(e){return(0,r.t)(`error.workbook.sheetIndexNotFound`,{index:e})}(e));return i.sheet}getSheets(){return this._sheets}addSheet(e){return this.getSheets().add(e)}_getSheets(e=t.an.Visibility.Visible){let n=this._getSheetRefs(e),r=[],i=n.length;for(let e=0;e<i;e++)r.push(n[e].sheet);return r}_getSheetRefs(e=t.an.Visibility.Visible){let n=this._getState();return n?e===t.an.Visibility.Visible?n.sheetRefsVisible:e===t.an.Visibility.Hidden?n.sheetRefsVisibleAndHidden:e===t.an.Visibility.VeryHidden?n.sheetRefsAll:r.CommonUtils.EmptyArray:[]}_getSheetRef(e,n=t.an.Visibility.Visible){let r=null;return typeof e==`number`?this._getSheetRefs(n)[e]:(typeof e==`string`?r=this._getState().refsByLowerCaseName.get(e.toLowerCase()):e instanceof t.u?r=this._getState().refsByInstance.get(e):e?.id!==void 0&&(r=this._getState().refsById.get(e.id)),r)}_validateNewSheetName(e,t=!0){if(e==null)return e;if(q(e),t&&this._getState().sheetsByLowerCaseName.has(e.toLowerCase()))throw new r.ExpectedError((0,r.t)(`error.workbook.nameTaken`));return e.substring(0,31)}findValidSheetName(e){e&&=q(e,!0);try{return function(e,t){try{if(t(e))return e}catch{}let n,r,i=Se.exec(e);for(i===null?(n=e+` `,r=1):(n=e.substring(0,i.index),r=parseFloat(i[1]));r<256;){r++;let e=`(`+r+`)`,i=n.substring(0,31-e.length)+e;try{if(t(i))return i}catch{}}throw Error(e+` is not a valid sheet name`)}(e,e=>this._validateNewSheetName(e))}catch{return this._nextSheetName()}}isValidSheetNameCharacter(e){return!G.test(e)}_isStructureProtected(){return!this._initializing&&!this.getProtection().isStructureAllowed()}_addSheetOptions(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t,n=null;t=typeof e==`string`?{name:e}:typeof e==`number`?{index:e}:e,t={...t,description:t?.description??(0,r.messageKey)(`op.addSheet`)};let i=this.beginCommit(t);try{let e=t?.autoSelect??!1;n=this._addSheet(!0,t.name,t.index??null);let a=this.getView().getActiveSheetId();if(e&&this._recordActiveSheet(i,a,this._getSheetRef(n).id),i.commit({description:(0,r.t)(`op.addSheetNamed`,{name:n.getName()})}),!1!==e){let t=typeof e==`boolean`?void 0:e;n.select(t)}}catch(e){throw i.rollback(),e}return n}_nextSheetName(e=null){let t=e?e.toLowerCase():null,n=this._getState(),i=n.sheetsByLowerCaseName;if(e&&i.has(t))throw new r.ExpectedError(function(e){return(0,r.t)(`error.workbook.nameDuplicate`,{sheetName:e})}(e));t=(e=this._validateNewSheetName(e))?e.toLowerCase():null;let a=n.lastId+1;for(;!e;){let t=this._createSheetName(a),n=t.toLowerCase();i.has(n)?a++:e=t}return this._updateState({lastId:a}),e}_addSheet(e,n=null,i=null){n=this._nextSheetName(n);let a=this._getState(),o=this._createSheet(a.lastId,n,t.an.Visibility.Visible,i,void 0,null);if(!o)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetNameBlank`));return e&&this._emitter.notify(`onSheetsChange`),o}_updateSheetRefStates(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this._initializing&&!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let n=e,i=[],a=[],o=n.length;for(let e=0;e<o;e++)n[e].visibility===t.an.Visibility.Visible?(i.push(n[e]),a.push(n[e])):n[e].visibility===t.an.Visibility.Hidden&&a.push(n[e]);this._updateState({sheetRefsAll:n,sheetRefsVisible:i,sheetRefsVisibleAndHidden:a})}_addSheetRef(e,n=null){let i=this._getState(),a=i.sheetRefsAll,o=Math.max(0,Math.min(a.length,n??a.length)),s=[...a.slice(0,o),e,...a.slice(o)];this._updateSheetRefStates(s);let c=e.sheet,l=e.name.toLowerCase(),u=new Map(i.refsById);u.set(e.id,e);let d=new Map(i.refsByLowerCaseName);d.set(l,e);let f=new Map(i.refsByInstance);f.set(c,e);let p=new Map(i.sheetsById);p.set(e.id,c);let m=new Map(i.sheetsByLowerCaseName);m.set(l,c);let h=this,g=i.listenersSheets;if(c!==void 0){let n=c.addListeners({onBeforeDelete:e=>{h._validateDeleteSheet(e)},onDelete(e){let n=h._getSheetRef(e,t.an.Visibility.VeryHidden);if(!n)return;let i=h._beginCommit({description:(0,r.t)(`op.deleteSheet`,{name:n.name})});try{let t=h._getState(),r=t.sheetRefsAll,a=h._getOffsetForId(n.id,r),o=[...r];o.splice(a,1),h._updateSheetRefStates(o);let s=new Map(t.refsById);s.delete(n.id);let l=new Map(t.sheetsById);l.delete(n.id);let u=n.name.toLowerCase(),d=new Map(t.refsByLowerCaseName);d.delete(u);let f=new Map(t.sheetsByLowerCaseName);f.delete(u);let p=new Map(t.refsByInstance);p.delete(e),t.listenersSheets.get(n.id)();let m=new Map(t.listenersSheets);m.delete(n.id),h._adjustRemoveSelectionIfRequired(a,n.id),h._adjustSheetNamesIfRequired(),h._sheetOnNameChange.delete(n.id),h._sheetOnVisibilityChange.delete(n.id),h._sheetOnIndexChange.delete(n.id),h._emitter.notify(`onSheetsChange`);let g=new Set(t.sheetsCreated);g.has(c)&&g.delete(c),h._updateState({refsById:s,sheetsById:l,refsByLowerCaseName:d,sheetsByLowerCaseName:f,refsByInstance:p,sheetsCreated:g,listenersSheets:m}),i.commit()}catch(e){throw i.rollback(),e}}}),a=c.addListeners({onSelectionChange:e=>{h.getView().getActiveSheetId()===h._getSheetRef(e)?.id&&h._emitter.notify(`onSelectionChange`,{source:h,params:e})}},{transactional:!1});g=new Map(i.listenersSheets),g.set(e.id,()=>{n(),a()})}let _=i.lastId;_!==-1&&(_=Math.max(_,e.id)),this._updateState({lastId:_}),this._updateState({refsById:u,refsByLowerCaseName:d,refsByInstance:f,sheetsById:p,sheetsByLowerCaseName:m,listenersSheets:g}),this._adjustSheetNamesIfRequired();let v=new Set(this._getState().sheetsCreated);return v.add(e.sheet),this._updateState({sheetsCreated:v}),e}_recordActiveSheet(e,t,n){let r=this.getView().getId();e.setIntent(Oe,e=>({viewId:r,before:e?.before??t,after:n}))}_resyncActiveSheet(e,t){let n=t?.sheetRefsVisible;if(!n?.length)return;let r=-1,i=n.length;for(let t=0;t<i;t++)if(n[t].id===e){r=t;break}r===-1&&(r=Math.min(Math.max(this._activeSheetOffset,0),i-1));let a=n[r].id;this._view.getActiveSheetId()===a?this._activeSheetOffset=r:this._view.setActiveSheetId(a)}_adjustRemoveSelectionIfRequired(e,t){if(this._view.getActiveSheetId()===t){let t,n=this._getState().sheetRefsVisible;t=e<n.length?n[e].id:n[e-1].id,this._view.setActiveSheetId(t)}}_adjustSheetNamesIfRequired(){let e=this._getState(),n=e.lastId;if(n===-1)return;let r=this._view.getActiveSheetId();r??=(this._view.setActiveSheetId(n),n);let i=e.refsById.get(r);i||(this._view.setActiveSheetId(n),i=e.refsById.get(n),r=n),i.visibility===t.an.Visibility.Visible&&(this._activeSheetOffset=this._getOffsetForId(r,e.sheetRefsVisible))}_validateDeleteSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t=this._getSheetRef(e);if(!t)throw new r.ExpectedError(function(e){return(0,r.t)(`error.workbook.deleteKey`,{key:e})}(e));let n=this._getState().sheetRefsVisible;if(n.length===1&&n[0].id===t.id)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`))}_getOffsetForId(e,t){let n=t.length;for(let r=0;r<n;r++)if(t[r].id===e)return r;throw new r.ExpectedError((0,r.t)(`error.workbook.noVisibleRefs`))}find(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheets();if(n.length===1)return n[0].find(e);typeof e==`string`&&(e={text:e});let i=!e?.reverse,a=e?.disableWrap??!1,o=this.getSelectedSheetIndex(),s=o,c=n[s],l=!1;e={...e,disableWrap:!0};let u,d=c.find(e),f=d.next(),p=!1;if(e?.from){let t=this._rangesAddressToCoords(e?.from);u={colIndex:t[0].colStart,rowIndex:t[0].rowStart}}let m=r.CoordUtils.createCellComparator(e?.axis,e?.reverse);delete(e={...e}).from;let h=()=>{if(!p&&f.done&&(l&&s===o?p=!0:i?(s++,s>n.length-1&&(s=0,l=!0)):(s--,s<0&&(s=n.length-1,l=!0)),a&&l&&(p=!0),p||u||!l||s!==o||(p=!0),!p)){c=n[s],d=c.find(e);let t=f;return f=d.next(),t}if(!p&&l&&s===o&&(f.done||!u||!f.done&&m(f.value.getCoords(),u)>=0)&&(p=!0),p){let e=f;return f=t.vn,e}let r=f;return f=d.next(),r};return{next:()=>{let e=h();for(;!p&&e.done;)e=h();return e}}}replace(e,n,i){let a=0,o=null,s=typeof n==`function`,c=i?.maxCount??2**53-1,l=!i?.maxCount,u=``,d=typeof n==`string`?t.Dn(n):null,f=i?.description??(0,r.messageKey)(`op.replace`),p=this._transactions.beginCommit({description:f});try{let t=null,f=null,m=e.next();for(;!m.done&&a<c;){let r=m.value,c=r.getSheet();c!==t&&(t=c,f!==null&&f.apply(),f=t.getEntireRange().createSparseBuilder({axis:i?.axis,allowUnorderedWrites:!0}));let l=s?n(r):n;l!==void 0&&l!==r&&(f.push(r,l),a++,o=r),m=e.next()}f?.apply(),a===1&&c===1&&o&&(u=o.getAddress()),a===0?p.rollback():p.commit({description:i?.description??(l?d===null?(0,r.messageKey)(`op.replaceAll`):(0,r.t)(`op.replaceAllWith`,{value:d}):u?d===null?(0,r.t)(`op.replaceAt`,{address:u}):(0,r.t)(`op.replaceAtWith`,{address:u,value:d}):d===null?(0,r.messageKey)(`op.replace`):(0,r.t)(`op.replaceWith`,{value:d}))})}catch(e){throw p.rollback(),e}return{count:a,last:o}}_nextSheetIndex(e,t=this._getSheetRefs()){let n=t.length;return n===1?0:(e===void 0&&(e=this.getSelectedSheetIndex()),(e=Math.max(0,Math.min(e,n-1)))>=n-1?0:e+1)}_prevSheetIndex(e,t=this._getSheetRefs()){let n=t.length;return n===1?0:(e===void 0&&(e=this.getSelectedSheetIndex()),(e=Math.max(0,Math.min(e,n-1)))<=0?n-1:e-1)}getNextSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._nextSheetIndex(e,t)]?.sheet??null}getPreviousSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._prevSheetIndex(e,t)]?.sheet??null}async _duplicateSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let t=this._getSheetRefs(),n=this.getSelectedSheetIndex(),i=null;if(e){if(i=this._getSheetRef(e),!i)throw new r.ExpectedError(W(i))}else i=t[n];if(!i)return null;let a=i.sheet,o=this._strings.beginPersist(),s=this.getResources().beginPersist(),c=this.getStyles().beginPersist(),l=null,u=this.beginCommit((0,r.t)(`op.duplicateNamed`,{name:a.getName()}));try{let e=this._getState().refsByInstance.get(a),r=await a.toJSON(),i=t.length+1,o=this.findValidSheetName(e.name),s=this._createSheet(i,o,e.visibility,n,void 0,r);this._emitter.notify(`onSheetsChange`),l=s,u.commit()}catch(e){throw u.rollback(),e}finally{c.endPersist(),s.endPersist(),o.endPersist()}return l}_createRange(e,n){let i=e?{...e}:null,a=i?this._getSheetRef(i.scope,t.an.Visibility.VeryHidden):null;if(!a){let e=this.getSelectedSheet();return e?(delete i?.scope,K(i,i?{scope:t.$t,...e.getEntireRange().getCoords()}:null)):void console.warn((0,r.t)(`error.workbook.noVisibleRefs`))}let o=a.sheet,s=null;return n&&(s={getOptions:n}),new ke(e,t.a(o),this,s)}_createRanges(e,n){let r=this.getSelectedSheet(),i=null;return n&&(i={getOptions:n}),new J(e,t.a(r),this,i)}getRange(e,n){if(e===void 0)return this.getSelectedRange(n);try{let t=this._rangesAddressToCoords(e);if(t.length!==1)throw new r.ExpectedError((0,r.t)(`error.address.singleRangeOnlyAlt`));return this._createRange(t[0],n)}catch(n){throw n instanceof r.OutOfBoundsError?new r.OutOfBoundsError(n.message):new r.ExpectedError(n.message??t.kt(e))}}getCell(e){if(e===void 0)return this.getSelectedCell();let t=this.getRange(e);if(t.size>1)throw new r.ExpectedError((0,r.t)(`error.address.singleCellOnly`));return t.getCell()}getRanges(e,n){let i=this._rangesAddressToCoords(e);if(i.length===0)throw new r.ExpectedError(t.kt(e));return this._createRanges(i,n)}_createGraphRanges(e,n){let r=[],i=this.getCalculation()?.getNamedFormulas()??null;for(let e=0;e<n.length;e++){let a=n[e],o=(a.sheetName?this._getSheetRef(a.sheetName,t.an.Visibility.VeryHidden):null)?.sheet??this.getSelectedSheet();o&&r.push(new t._(a,i,t.a(o),null))}for(let t=0;t<e.length;t++)r.push(e[t]);return r.length===0?null:new J(r,t.a(this.getSelectedSheet()),this,null)}getStats(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheets(t.an.Visibility.VeryHidden),i=n.length;if(i===1)return n[0].getStats(e);let a=Array(i);for(let t=0;t<i;t++)a[t]=n[t].getStats(e);return new pe(a)}_activeRangeCoords(){let e=this.getSelectedSheet(),t=e.getSelection().getRanges().getCoords(),n=e.getName(),r=t.length,i=Array(r);for(let e=0;e<r;e++){let r=t[e];i[e]={colStart:r.colStart,colEnd:r.colEnd,rowStart:r.rowStart,rowEnd:r.rowEnd,scope:n}}return i}getSelectedRange(e){return this.getRange(this._activeRangeCoords()[0],e)}getSelectedRanges(e){return this.getRanges(this._activeRangeCoords(),e)}getSelectedCell(){return this.getSelectedSheet().getSelectedCell()}_rangesAddressToCoords(e,n=!0,i=t.an.Visibility.Hidden){if(!e)throw new r.ExpectedError((0,r.t)(`error.address.noAddress`));let a=this.getSelectedSheet(),o={...a?.getEntireRange().getCoords()},s=a?.getName();if(s&&(o.scope=s),typeof e==`string`){let t=e.trim().toLowerCase();if(t===`r`||t===`c`){let n=this.getSelectedCell().getCoords(),r={};t===`r`?r.rowStart=r.rowEnd=n.rowIndex:r.colStart=r.colEnd=n.colIndex,e=r}}let c=this,l=t.nn(e,o,t.in,e=>{if(!n)return null;if(typeof e==`string`){let t=c.getNames().getByName(e)?.getRanges?.();if(t)return t.getCoords()}throw new r.ExpectedError(`Invalid sheet reference '${e}'.`)}),u=l.length;for(let e=0;e<u;e++)this._validateCoords(l[e],i);return l}_validateCoords(e,n=t.an.Visibility.Visible,i=(0,r.t)(`error.sheet.oobRange`)){if(e===null)return;let a=this.getSheet(e.scope,n).getEntireRange().getCoords();if(!r.CoordUtils.isRangeWithinRange(e,a))throw new r.OutOfBoundsError(i);if(e.rowEnd<e.rowStart||e.colEnd<e.colStart)throw new r.ExpectedError((0,r.t)(`error.address.invalidRangeInverted`))}_updateSheetRef(e,t){let n=this._getState(),r=[...n.sheetRefsAll];r[this._getOffsetForId(e.id,n.sheetRefsAll)]=t,this._updateSheetRefStates(r);let i=new Map(n.refsById);i.set(e.id,t);let a=e.name.toLowerCase(),o=t.name.toLowerCase(),s=new Map(n.refsByLowerCaseName);s.delete(a),s.set(o,t);let c=new Map(n.sheetsByLowerCaseName),l=c.get(a);c.delete(a),c.set(o,l);let u=new Map(n.refsByInstance);return u.set(l,t),this._updateState({refsById:i,refsByLowerCaseName:s,sheetsByLowerCaseName:c,refsByInstance:u}),t}_setSheetName(e,t,n){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let i=this._getSheetRef(e);if(!i)throw new r.ExpectedError(W(e));if(t===i.name)return i.sheet;if((t=this._validateNewSheetName(t))==null)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetNameNotProvided`));let a=Object.freeze({...i,name:t}),o=null,s=this.beginCommit((0,r.messageKey)(`op.renameSheet`));try{let e=this._updateSheetRef(i,a);this._adjustSheetNamesIfRequired(),this._sheetOnNameChange.forEach((e,t)=>{i.id===t&&e()}),this._emitter.notify(`onSheetsChange`),i.id===this.getView().getActiveSheetId()&&this._emitter.notify(`onSelectionChange`),o=e.sheet,s.commit(n)}catch(e){throw s.rollback(),e}return o}_setSheetVisibility(e,n=t.an.Visibility.Visible,i){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let a=this._getSheetRef(e,t.an.Visibility.VeryHidden);if(!a)return null;if(n===a.visibility)return;let o=null,s=``;n===t.an.Visibility.Visible?s=(0,r.messageKey)(`op.unhideSheet`):n===t.an.Visibility.Hidden?s=(0,r.messageKey)(`op.hideSheet`):n===t.an.Visibility.VeryHidden&&(s=(0,r.messageKey)(`op.veryHideSheet`));let c=this.beginCommit(s);try{let e=this._getState().sheetRefsVisible;if(n!==t.an.Visibility.Visible&&e.length===1&&e[0].id===a.id)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`));let s={...a,visibility:n},l=-1;n!==t.an.Visibility.Visible&&(l=this._getOffsetForId(a.id,e)),o=this._updateSheetRef(a,s).sheet,n!==t.an.Visibility.Visible&&this._adjustRemoveSelectionIfRequired(l,a.id),this._adjustSheetNamesIfRequired(),c.commit(i)}catch(e){throw c.rollback(),e}return this._sheetOnVisibilityChange.forEach((e,t)=>{a.id===t&&e()}),this._emitter.notify(`onSheetsChange`),o}_moveSheet(e,t,n){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new r.ProtectedError((0,r.t)(`error.workbook.protection`));let i=null,a=this.beginCommit((0,r.t)(`op.moveSheetNamed`,{name:e.name}));try{let o=this._getState(),s=o.sheetRefsVisible;if(t<0||t>s.length-1)throw new r.ExpectedError(`Invalid to index: ${t}`);let c=this.getView().getActiveSheetId(),l=o.sheetRefsAll,u=this._getOffsetForId(e.id,l),d=this._getOffsetForId(s[t].id,l);if(u===d)return;let f=l[u],p=[...l];p.splice(u,1),p.splice(d,0,f),this._updateSheetRefStates(p),this._calculation._replaceSheetSpans?.(l.map(e=>e.sheet.getId()),p.map(e=>e.sheet.getId()),f.sheet.getId()),this._adjustSheetNamesIfRequired(),this._sheetOnIndexChange.forEach((e,t)=>{t>=u&&t<=d&&e()}),this._emitter.notify(`onSheetsChange`),i=f.sheet,this._recordActiveSheet(a,c,this.getView().getActiveSheetId()),a.commit(n)}catch(e){throw a.rollback(),e}return i}_setSelectedSheet(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));let n=this._getSheetRef(e);if(!n)throw new r.ExpectedError(W(e));let i=null;return n.visibility!==t.an.Visibility.Visible&&this._setSheetVisibility(n,t.an.Visibility.Visible),this._view.setActiveSheetId(n.id),i=n.sheet,i}getProtection(){return this._protection}getCodeName(){return this._codeName}getNames(){return this._names}getCalculation(){return this._calculation}createFormula(e,t,n){return this.getCalculation().createFormula(e,t,n)}evaluate(e,t){return this.getCalculation().evaluate(e,t)}whenCalculationReady(){let e=this._starting;return e?e.then(()=>this.getCalculation().ready()):this.getCalculation().ready()}getScripts(){return this._scripts||=this._createScripts(),this._scripts}getModules(){return this.getScripts().getModules()}_notifyAllChange(){this._emitter.notify(`onSheetsChange`),this._emitter.notify(`onSelectedSheetChange`),this._emitter.notify(`onViewChange`)}addListeners(e,t){return this._emitter.addListeners(e,t)}_sheetToWBEvent(e){let t=this;return n=>{let r=()=>{let e=n.getSource();if(e.isInvalid())return e;if(e.isICellRanges){let n=[...e.getCoords()],r=n.length;for(let t=0;t<r;t++){let r=n[t];!r.scope&&e.getSheet().getName()&&(n[t]={...r,scope:e.getSheet().getName()})}return t.getRanges(n)}if(e.isICellRange){let n=e.getCoords(),r=e.getSheet().getName();return t.getRange({...n,scope:r})}};e({getSource:r,trigger:n.trigger,getFrom:()=>t.getRanges(n.getFrom()),getTo:()=>t.getRange(n.getTo()),isDataChange:n.isDataChange,getTransactionId:n.getTransactionId,isUndo:n.isUndo,toString:()=>`WorkbookRangeEvent: ('${n.trigger}', ${r().toString()})`,timeStamp:Date.now()})}}_fromJSON(e){if(this._emitter.notify(`onBeforeLoad`,{params:e}),this._initState(),!e.sheets||e.sheets.length===0)throw new r.ExpectedError((0,r.t)(`error.workbook.sheetOne`));e.theme&&(this._theme=new t.Gt(e.theme),this._styles.setTheme(this._theme));let n=this._strings.beginPersist(),i=this._resources.beginPersist(),a=this._styles.beginPersist();try{n.fromJSON(e.strings),i.fromJSON(e.resources),a.fromJSON(e.styles),e.date1904&&(this._isDate1904=!0),this._codeName=e.codeName??null,this._updateLinks=e.updateLinks??null,e.locale&&(this._locale=e.locale),e.localeOverrides&&(this._localeOverrides=e.localeOverrides),e.view||={};let r=[],o=e.pivotCaches;if(o){let e=i.fromResourceId.bind(i);for(let n=0;n<o.length;n++){let i=o[n];i&&typeof i.cacheId==`number`&&r.push({cacheId:i.cacheId,part:t.E.fromJSON(i.part,e)})}}this._pivotCaches=r,this._people.fromJSON(e.people);let s=e.sheets,c=s.length,l=e.view.activeSheetId??null;l!==null&&(l=Math.min(Math.max(0,l),c-1));let u=null,d=null;this._isLoadingSheets=!0;for(let e=0;e<c;e++){let n=s[e],r=n.visibility||t.an.Visibility.Visible,i=e;d=i,r===t.an.Visibility.Visible?u===null&&(u=i):l!==null&&l===i&&(l=null);try{this._createSheet(i,n.name,r,e,n.sheetId,n.sheet)}catch(e){throw this._isLoadingSheets=!1,e}}this._isLoadingSheets=!1,this._updateState({lastId:d}),e.view.activeSheetId=l??u,this.setView(new H({json:e.view})),this._adjustSheetNamesIfRequired(),this._listenerProtection?.();let f=this;this._protection=new U(e?.protection,this._options?.readonly),this._listenerProtection=this._protection.addListeners({onChange:e=>{f._emitter.notify(`onProtectionChange`,{source:e})}}),this._emitter.notify(`onLoad`)}finally{a.endPersist(),i.endPersist(),n.endPersist()}}_createScripts(e){let n=this;return new ve({transactions:this._transactions,json:e,workbook:n,getBuiltInFunctions:()=>n._calculation?.getFunctions(),onAdd:(e,i)=>{let a=n._calculation;a.getStatus()!==t.vt.Status.Off&&a.start().then(async()=>{let e=i.getFunctions().getItems({type:`formula`}),t=e.length;for(let n=0;n<t;n++){let t=e[n];try{await this._calculation.getFunctions().add(t)}catch(e){r.Notifier.error(e?.message??String(e),e)}}}).catch(()=>{})},onRemove:(e,t)=>{}})}async toJSON(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));await Promise.resolve(this._starting);let n=this.getCalculation();n.getStatus()!==t.vt.Status.Off&&(await n.ready(),await n._whenRequestsSettled?.()),await this._emitter.notify(`onBeforeSave`,{async:!0});let i={sheets:[]},a=e?.ignoreStyles??!1;if(!a){let e=this._theme.toJSON();(e?Object.keys(e).length:0)>0&&(i.theme=e)}if(this._scripts){let e=this._scripts.toJSON();e&&Object.keys(e).length>0&&(i.modules=e)}this._isDate1904&&(i.date1904=!0),this._codeName&&(i.codeName=this._codeName),this._updateLinks&&(i.updateLinks=this._updateLinks),this._locale&&(i.locale=this._locale),this._localeOverrides&&(i.localeOverrides=this._localeOverrides);let o=e?.resources??`embed`,s=o===`ignore`,c=this._strings.beginPersist(),l=s?null:this._resources.beginPersist(),u=this._styles.beginPersist();try{let n=this._getSheetRef(this.getSelectedSheetIndex()).id,r=n,d=null,f=this._getState(),p=f.sheetRefsAll,m=f.sheetsById,h=p.length;for(let a=0;a<h;a++){let o=p[a],s=a+1,c=await m.get(o.id).toJSON(e),l={name:o.name,sheet:c};o.sheetId!==void 0&&(l.sheetId=o.sheetId),o.visibility===t.an.Visibility.Visible?d===null&&(d=s):l.visibility=o.visibility,o.id===n&&(r=s),i.sheets.push(l)}if(!a){let e=u.toJSON();e&&Object.keys(e).length>0&&(i.styles=e)}let g=this.getProtection().toJSON();g&&(i.protection=g);let _=this._calculation.toJSON();Object.keys(_).length>0&&(i.calc=_);let v=await c.toJSONAsync();v&&v.length>0&&(i.strings=v);let y=this._calculation.getExternalBooks().toJSON();y&&(i.externalBooks=y);let b=this._pivotCaches;if(b.length>0){let e=l?l.toResourceId.bind(l):()=>null,n=[];for(let r=0;r<b.length;r++){let i={cacheId:b[r].cacheId},a=t.E.toJSON(b[r].part,e);a&&(i.part=a),n.push(i)}n.length>0&&(i.pivotCaches=n)}let x=this._people.toJSON();if(x&&(i.people=x),!s){let e=await l.toJSONAsync(typeof o==`function`?o:void 0);e&&e.length>0&&(i.resources=e)}let S=this._calculation.getNamedFormulas().toJSON();S&&S.length>0&&(i.names=S);let C=this._view.toJSON();C&&(r===d?delete C.activeSheetId:C.activeSheetId=r,Object.keys(C).length>0&&(i.view=C))}finally{u.endPersist(),s||l.endPersist(),c.endPersist()}return this._emitter.notify(`onSave`,{params:i}),i}isClosed(){return this._closed}close(){if(this._closed)return;this._emitter.notify(`onClose`);let e=this._getState();e.listenersSheets.forEach(e=>{e()}),e.listenersSheets.clear();let t=e.sheetRefsAll;for(let e=t.length-1;e>=0;e--)try{t[e].sheet.close()}catch(e){console.warn(`error on close`,e)}this._ownResources,this._ownNames&&this._names.close(),this._ownCalculation&&this._calculation.close(),this._ownStyles,this._transactionsRemoveListener?.(),this._listenerLanguage?.(),this._listenerOrigin?.(),this._listenerOriginProvider?.(),this._ownOriginProvider&&this._originProvider instanceof d&&this._originProvider.release(),this._closed=!0}beginCommit(e){if(this._closed)throw Error((0,r.t)(`error.workbook.modelClosed`));return this._beginCommit(typeof e==`string`?{description:e}:e)}doBatch(e,t){let n=this;return t=typeof t==`string`?{description:t}:{description:(0,r.messageKey)(`op.updateWorkbook`),...t},this._transactions.doBatch(e,t,(e,t)=>{e.getDepth()===0&&(n._lastTransactionUUID=e.getId())})}_beginCommit(e){let t=this;return this._transactions.beginCommit(typeof e==`string`?{description:e}:e,e=>{e.getDepth()===0&&(t._lastTransactionUUID=e.getId())})}_getState(){return this._transactions.getState(this._id)}_updateState(e,t=(0,r.messageKey)(`op.updateWorkbook`),n){if(!e)return;let i=this._beginCommit(t);try{i.updateState(this._id,e),i.commit(n)}catch(e){throw i.rollback(),e}}get options(){return this._options}get[Symbol.toStringTag](){return`[Workbook]`}toString(){return`[${this.getName()??`(untitled)`}]`}get isIWorkbook(){return!0}},Me={address:null},Ne=class{constructor(){this._readFormats=[],this._writeFormats=[],this._encryptions=[]}async registerReadFormat(e){this._readFormats=await this._registerFormatType(e,this._readFormats)}async registerWriteFormat(e){this._writeFormats=await this._registerFormatType(e,this._writeFormats)}async registerEncryption(e){if(!e)throw Error(`encryption must be provided.`);if(!e.key)throw Error(`encryption.key must be provided.`);let t=e.key.toLowerCase(),n=this._encryptions.findIndex(e=>e.key.toLowerCase()===t);if(n!==-1){let t=[...this._encryptions];t[n]=e,this._encryptions=Object.freeze(t);return}this._encryptions=Object.freeze([...this._encryptions,e])}async getEncryption(e){return this.peekEncryption(e)}peekEncryption(e){if(!e)return this._encryptions[0]??null;let t=e.toLowerCase();return this._encryptions.find(e=>e.key.toLowerCase()===t)??null}async detectEncryption(e){for(let t of this._encryptions)if(await t.detect(e))return t;return null}async getReadFormats(e){return e?this._filterFormats(e,this._readFormats):[...this._readFormats]}async getWriteFormats(e){return this._writeFormats?e?this._filterFormats(e,this._writeFormats):[...this._writeFormats]:[]}async _registerFormatType(e,t){return this._registerFormatTypeSync(e,t)}_registerFormatTypeSync(e,t){if(!e)throw Error(`format must be provided.`);if(!e.key)throw Error(`format.key must be provided.`);let n=e.key.toLowerCase(),r=t.findIndex(e=>e.key.toLowerCase()===n);if(r!==-1){let n=[...t];return n[r]=e,Object.freeze(n)}return Object.freeze([...t,e])}_filterFormats(e,t,n){if(!e||Object.keys(e).length===0){if(!n)return[...t];e={ext:n}}let r=e.search?.toLocaleLowerCase();return t.filter(t=>{if(r){let e=t.key.toLocaleLowerCase().includes(r),n=!!t.exts&&t.exts.some(e=>e.toLocaleLowerCase().includes(r)),i=!!t.mimeType&&t.mimeType.toLocaleLowerCase().includes(r),a=!!t.tags&&t.tags.some(e=>e.toLocaleLowerCase().includes(r)),o=!!t.description&&t.description.toLocaleLowerCase().includes(r);if(!(e||n||i||a||o))return!1}let i=e.ext||n;if(i){let e=i.toLocaleLowerCase();if(!t.exts.some(t=>t.toLocaleLowerCase()===e))return!1}if(e.mimeType&&t.mimeType!==e.mimeType||e.key&&t.key.toLocaleLowerCase()!==e.key.toLocaleLowerCase())return!1;if(e.tags){let n=t.tags||[];if(!(typeof e.tags==`string`?[e.tags]:e.tags).every(e=>n.includes(e)))return!1}return!0})}},Y=new WeakMap,X=e=>!!e&&typeof e==`object`&&typeof e.getPath==`function`&&typeof e.canWrite==`function`,Pe=class{constructor(){this._setInstalled=new WeakSet,this._backingStore=null,this._emitter=new t.Pn(this),this._registry=new Ne,this._defaultStore=new p(()=>this.getWriteFormats(),()=>this.getReadFormats())}getBackingStore(){return this._backingStore??this._defaultStore}setBackingStore(e){this._backingStore=e??null}canWrite(){return typeof this.getBackingStore().write==`function`}canRead(){return typeof this.getBackingStore().read==`function`}async install(e){this._setInstalled.has(e)||(await e.register(this._registry),this._setInstalled.add(e))}addListeners(e,t){return this._emitter.addListeners(e,t)}addCommitListener(e){return this._emitter.addListeners({onWrite:(t,n)=>{n.save&&e.onCommit?.({store:n.workbook.getTransactions(),commitId:n.commitId})}})}async getReadFormats(e){return this._registry.getReadFormats(e)}async getWriteFormats(e){return this._registry.getWriteFormats(e)}getOrigin(e){return new o(e)}async read(e){let t=null;if(typeof e==`string`)e={source:e};else if(X(e)){let n=e.getPath();if(!n)throw Error(`Cannot read from an unbound origin (no path).`);l(e)?e={source:n,asCopy:!0}:(t=e,e={source:n})}let n=e??{},{source:r=null,...i}=n,a=this.getBackingStore();return(a.read?a:this._defaultStore).read({source:r,options:i,decode:(e,r)=>this._decodeBuffer(e,r,n,t)})}async _decodeBuffer(e,t={},n,i=null){let a=t.format,s=t.ext;if(!a&&!s)throw Error(`Either format or file extension must be provided to determine read type.`);let c=(await this._registry.getReadFormats({search:a,ext:s}))[0];if(!c)throw new r.ExpectedError((0,r.t)(`error.io.readFormatUnavailable`,{format:a??s}));let l=n?.typedCreateWorkbookOptions,u=l?Object.keys(l).find(e=>e.toLowerCase()===c.key.toLowerCase()):void 0,d={...n,...u===void 0?void 0:l[u]};delete d.typedCreateWorkbookOptions,delete d.source,delete d.asCopy;let f=i??new o(t.absolutePath??null,{name:t.name??null,format:c.key,size:t.size??null,lastModified:t.lastModified??null,canWrite:t.canWrite??!1});i instanceof o&&i.update({format:c.key,size:t.size??null,lastModified:t.lastModified??null}),d.createWorkbookOptions={...d.createWorkbookOptions||{},origin:f},d.readonly!==void 0&&(d.createWorkbookOptions={readonly:d.readonly,...d.createWorkbookOptions},delete d.readonly),d.calcOnly&&(d.createWorkbookOptions={disableLoadAutoFit:!0,...d.createWorkbookOptions});let p=await this._decrypt(e,f,d);if(p===null)return null;e=p.bytes;let m=d?.progress?.onStart?.bind(d.progress);m&&await Promise.resolve(m(f,t.size));try{let t=await this._readArrayBuffer(e,c,d);return p.password!==null&&f.setPassword(p.password),d?.progress?.onComplete?.(f),this._emitter.notify(`onRead`,{params:{workbook:t,origin:f},transactional:!1}),t}catch(e){throw d?.progress?.onError?.(e),d?.progress?.onComplete?.(null),e}}async _decrypt(e,t,n){let i=await this._registry.detectEncryption(e);if(t instanceof o&&t.update({encryption:i?i.key:null}),!i)return{bytes:e,password:null};let a=null,s=async t=>{try{return a=await i.decode(e,t),!0}catch(e){if(!(e instanceof r.InvalidPasswordError))throw e;return!1}};if(n?.password&&await s(n.password))return{bytes:a,password:n.password};if(!n?.onPassword){let e=t.getName();throw new r.PasswordRequiredError(e?(0,r.t)(`error.io.passwordRequired`,{name:e}):(0,r.t)(`error.io.passwordRequiredUnnamed`))}let c=await Promise.resolve(n.onPassword({origin:t,encryption:i.key,validate:s}));if(c==null)return null;if(a!==null||await s(c))return{bytes:a,password:c};throw new r.InvalidPasswordError((0,r.t)(`error.io.passwordIncorrect`))}async writeArrayBuffer(e,t){if(!t?.format)throw Error(`A format must be specified to write to an ArrayBuffer (e.g. { format: 'xlsx' }).`);let n=(await this._registry.getWriteFormats({search:t.format}))[0];if(!n)throw new r.ExpectedError((0,r.t)(`error.io.writeFormatUnavailable`,{format:t.format}));return this._writeArrayBuffer(e,n,t)}async write(e,t,n){return typeof t==`string`||X(t)?this._write(e,t,!1,n):this._write(e,e?.getOrigin?.(),!0,t??n)}async writeAs(e,t,n){if(!t)throw Error(`A target must be provided for writeAs (use write(workbook) for a plain save).`);return this._write(e,t,!0,n)}async _write(e,n,i,a){if(!e)throw Error(`Workbook must be provided.`);if(!e.isIWorkbook)throw Error(`Invalid workbook model provided. Must be an instance of IWorkbook.`);let s=typeof n==`string`?this.getOrigin(n):n,c=s.getFormat(),u;if((a?.format||c)&&(u=(await this._registry.getWriteFormats({search:a?.format??c??void 0}))[0]),u||s.getPath()&&s.canWrite()&&s.getExtension()||(u=(await this._registry.getWriteFormats({ext:`sxl`}))[0]??(await this._registry.getWriteFormats())[0]),!u)throw new r.ExpectedError((0,r.t)(`error.io.writeFormatUnresolved`));let d=s.getExtension();if(a?.format&&d&&s.getPath()&&s.canWrite()&&!u.exts.includes(d)){let e=(await this._registry.getWriteFormats({ext:d}))[0];if(e&&e.key!==u.key){let e=s.getPath().split(/[/\\]/).pop();throw new r.ExpectedError((0,r.t)(`error.io.writeFormatMismatch`,{format:a.format,file:e}))}}if(typeof n==`string`){let e=s.getPath();s=new o(t.kn(e)?e:`${e}.${u.exts[0]}`,{format:u.key})}let f=s.getEncryption(),p=e.getOrigin?.(),m=(s instanceof o?s.getPassword():null)??(p instanceof o?p.getPassword():null),h=s.isEncrypted()||(p?.isEncrypted()??!1),g=a?.password===void 0?m??(h?void 0:null):a.password,_=null;if(g===void 0){if(h){let e=s.getName();throw new r.PasswordRequiredError(e?(0,r.t)(`error.io.passwordRequiredSave`,{name:e}):(0,r.t)(`error.io.passwordRequiredSaveUnnamed`))}}else if(g!==null&&(_=await this._registry.getEncryption(f),!_))throw new r.ExpectedError((0,r.t)(`error.io.encryptionUnavailable`));let v=`${s.getName()??(0,r.t)(`workbook.defaultName`)}.${u.exts[0]}`,y=a?.progress,b=!s.getPath()||!s.canWrite()||!!a?.prompt,x=!1,S=this,C=null,w=[],T={workbook:e,format:u,origin:s,suggestedName:v,prompt:a?.prompt,async encode(t,n){let r=n??s;await(async e=>{x||(x=!0,y?.onStart&&await Promise.resolve(y.onStart(e)))})(r),C=e.getTransactions?.()?.getCurrentCommit()??C;let o=t?(await S._registry.getWriteFormats({search:t}))[0]??u:u,c=[],l=((e,t)=>({onStart:e?.onStart?(t,n)=>e.onStart(t,n):void 0,onProgress:e?.onProgress?(t,n)=>e.onProgress(t,n):void 0,onError:e?.onError?t=>e.onError(t):void 0,onComplete:e?.onComplete?t=>e.onComplete(t):void 0,onWarning:(n,r)=>{t.push({message:n??``,context:r}),e?.onWarning?.(n,r)}}))(y,c),d=await S._writeArrayBuffer(e,o,{...a,progress:l}),f=Y.get(r);if(c.some(e=>!f?.has(e.message))&&a?.onWarnings){let t=await Promise.resolve(a.onWarnings({workbook:e,origin:r,warnings:c,save:i,canCancel:!b}));if(!b&&!1===t)return null}return w=c,_?_.encode(d,g):d}},E=null;try{let t=this.getBackingStore();if(!t.write)throw Error(`The active backing store is read-only (no write implementation).`);if(E=await t.write(T),E){if(g!==void 0&&E instanceof o&&(E.setPassword(g),E.update({encryption:_?_.key:null})),w.length){let e=Y.get(E)??new Set;for(let t of w)e.add(t.message);Y.set(E,e)}i&&E!==e.getOrigin()&&l(e.getOrigin())?.setOrigin(E);let t=C??e.getTransactions?.()?.getCurrentCommit()??null;this._emitter.notify(`onWrite`,{params:{workbook:e,origin:E,commitId:t?.getId()??null,save:i},transactional:!1})}y?.onComplete&&await Promise.resolve(y.onComplete(E))}catch(e){let t=e instanceof Error?e:Error(String(e));throw y?.onError&&await Promise.resolve(y.onError(t)),y?.onComplete&&await Promise.resolve(y.onComplete(null)),t instanceof r.ExpectedError?t:Error((0,r.t)(`error.io.writeFailed`,{reason:t.message}),{cause:e})}return E}_stripExtension(e){let n=t.kn(e);return n?e.slice(0,e.length-n.length-1):e}_baseName(e){if(!e)return null;let t=e.split(/[?#]/)[0],n=t.split(/[/\\]/).pop()??t;return this._stripExtension(n)||null}async _writeArrayBuffer(e,t,n){if(!t)throw Error(`A write format must be provided.`);let r=t.handler;if(!r)throw Error(`Unable to resolve a write handler for '${t.key}'.`);return r(e,{...n,format:t.key})}async _readArrayBuffer(e,t,n){if(!e)throw Error(`ArrayBuffer must be specified.`);if(!t)throw Error(`format must be specified.`);if(e.byteLength===0)return new je(n?.createWorkbookOptions);let i=t.handler;if(!i)throw Error(`Unable to resolve a read handler for '${t.key}'.`);let a;try{a=await i(e,n)}catch(e){throw e instanceof r.ExpectedError?e:new r.ExpectedError((0,r.t)(`error.io.readFailed`,{format:t.description??t.key,reason:e?.message??String(e)}),{cause:e})}return a}get isIWorkbookIO(){return!0}},Fe=new Pe,Ie=`locales`,Le=`fonts`,Re=[{kind:Ie,files:[{suffix:`.msg.json`,async extract(e){let t=e.relPath.split(`/`);return t.length===2?{locale:t[0],role:`messages`}:null},place:(e,t)=>t?`${t}/${e}`:null}]},{kind:Le,files:[`.woff2`,`.woff`,`.ttf`,`.otf`,`.ttc`].map(e=>({suffix:e,place:(e,t)=>t?`${t}/${e}`:e}))}];we||={},Te||={},(De=Ee||={}).PathFill={Darken:`darken`,DarkenLess:`darkenLess`,Lighten:`lighten`,LightenLess:`lightenLess`,None:`none`,Normal:`normal`},De.PresetGeometry={Line:`line`,LineInv:`lineInv`,triangle:`triangle`,rtTriangle:`rtTriangle`,Rect:`rect`};var Z=null,Q,$=null;Q||={};var ze=class extends t.P{constructor(e){super(e)}_initializeOptions(e){return e={...e,coords:{colStart:0,rowStart:0,colEnd:(e?.size?.width??5)-1,rowEnd:(e?.size?.height??5)-1},getRanges:e=>new t.c(null)},super._initializeOptions(e)}};exports.AbstractCollection=t.Nn,Object.defineProperty(exports,"AddressUtils",{enumerable:!0,get:function(){return t.C}}),exports.ArrayBackingStore=class{constructor(){this._buffer=null,this._formatKey=null}get buffer(){return this._buffer}async write(e){let t=await e.encode();return t?(this._buffer=t,this._formatKey=e.format.key,e.origin):null}async read(e){return this._buffer?e.decode(this._buffer,{format:this._formatKey??void 0}):null}},Object.defineProperty(exports,"AutoFill",{enumerable:!0,get:function(){return t.p}}),exports.BUILD_DATE=`2026-10-02T16:56:23.154Z`,exports.Color=t.Xt,Object.defineProperty(exports,"Condition",{enumerable:!0,get:function(){return t.F}}),Object.defineProperty(exports,"DateUtils",{enumerable:!0,get:function(){return t.sn}}),exports.DefaultWorkbookIO=Pe,exports.EXTERNAL_LINK_PATH_REL_TYPE=t.tt,exports.ExternalRangeClipboardItem=class{constructor(e,t,n,i,a){if(this._parsed=void 0,this._runtime=e,!t)throw new r.NullNotAllowedError(`nativeItems are required.`);this._topLeft=n??r.CoordUtils.EmptyCell,this._native=t,this._markOptions=Object.freeze(i??{}),this._styles=a}getItemType(){return`range`}isCut(){return!1}toText(){return this._native?.text}toHtml(){return this._native?.html?.documentElement.outerHTML||null}toImage(){return this._native?.image}getItem(){let e=this._parsed;if(e===void 0)throw Error(`Must call 'parse()' before getItem().`);if(e===null)return null;if(this._snapshot)return this._snapshot;let t=this;return this._snapshot={copyTo:(n,r)=>e.copyTo(n,{...t._markOptions,...r}),getMarkOptions:()=>t._markOptions,getName:()=>e?.getName()??`Clipboard Data`,getCoords:()=>e?.getCoords?.()??null,toText:()=>t.toText(),toHtml:()=>t.toHtml(),toImage:()=>t.toImage(),getSource:()=>e?.getSource?.()??null,isISnapshot:!0},this._snapshot}async parse(){let e,n=this._native?.text,i=this._native.html;if(i===null&&n&&n.includes(`<table`))try{let e=new DOMParser().parseFromString(n,r.MimeType.Html),t=e.querySelector(`parsererror`);if(t)throw new r.ExpectedError(`Unable to parse: `+t);i=e,n=null}catch{console.warn(`Discovered text as html table but could could not parse.`)}try{let r=new ye(this._runtime,this._topLeft,this._styles,i?`HTML`:`Text`),a=await Promise.resolve(n?t.h(n):[[]]),o;if(t.m(i,a,r)?(e=r.sheet(),o=e.getUsedRange()):i=null,o)return this._parsed={copyTo:async(e,t)=>(await e.copyFrom(o,t))?.getCoords()??null,getCoords:()=>o.getCoords(),getSource:()=>e,getName:()=>e.getName()},!0}catch(e){throw e}if(!n&&!i&&this._native.image){let e=this;return this._parsed={async copyTo(t,n){let i=t.getSheet(),a=await e._native.image.arrayBuffer(),o=await i.getMovables().addPicture({source:{buffer:a}},{type:`picture`,description:(0,r.messageKey)(`op.copyImageFromClipboard`)});return i.getView().selectMovables([o]),null},getName:()=>`Image`},!0}return this._parsed=null,!1}get isClipboardItem(){return!0}},exports.FONTS_KIND=Le,Object.defineProperty(exports,"FontUtils",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"FormulaText",{enumerable:!0,get:function(){return t.I}}),Object.defineProperty(exports,"FunctionDeclarations",{enumerable:!0,get:function(){return t.L}}),Object.defineProperty(exports,"GeomUtils",{enumerable:!0,get:function(){return t.g}}),Object.defineProperty(exports,"IAnchored",{enumerable:!0,get:function(){return t.wt}}),Object.defineProperty(exports,"IBorders",{enumerable:!0,get:function(){return t.ln}}),Object.defineProperty(exports,"ICalculation",{enumerable:!0,get:function(){return t.vt}}),Object.defineProperty(exports,"ICell",{enumerable:!0,get:function(){return t.w}}),Object.defineProperty(exports,"ICellHeaderRange",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"ICellRange",{enumerable:!0,get:function(){return t.St}}),Object.defineProperty(exports,"ICellRanges",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"IColor",{enumerable:!0,get:function(){return t.Qt}}),Object.defineProperty(exports,"ICondition",{enumerable:!0,get:function(){return t.xt}}),Object.defineProperty(exports,"IConditionalFormat",{enumerable:!0,get:function(){return t.S}}),Object.defineProperty(exports,"IDataValidation",{enumerable:!0,get:function(){return t.x}}),Object.defineProperty(exports,"IEffect",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"IFill",{enumerable:!0,get:function(){return t.Yt}}),Object.defineProperty(exports,"IFont",{enumerable:!0,get:function(){return t.un}}),Object.defineProperty(exports,"IFontCollection",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"IMovable",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"IPicture",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"IPrint",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"IResource",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"IScript",{enumerable:!0,get:function(){return t.A}}),Object.defineProperty(exports,"IShape",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"ISheet",{enumerable:!0,get:function(){return t.an}}),Object.defineProperty(exports,"ISheetView",{enumerable:!0,get:function(){return t.y}}),Object.defineProperty(exports,"ISort",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"IStroke",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"IStyle",{enumerable:!0,get:function(){return t.Jt}}),Object.defineProperty(exports,"ITable",{enumerable:!0,get:function(){return t.Wt}}),Object.defineProperty(exports,"ITableStyle",{enumerable:!0,get:function(){return t.Ut}}),Object.defineProperty(exports,"IText",{enumerable:!0,get:function(){return t.jn}}),Object.defineProperty(exports,"ITextFrame",{enumerable:!0,get:function(){return t.An}}),Object.defineProperty(exports,"ITheme",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"IThemeCollection",{enumerable:!0,get:function(){return t.qt}}),Object.defineProperty(exports,"IWorkbookIO",{enumerable:!0,get:function(){return i}}),exports.LOCALES_KIND=Ie,exports.LicenseManager=t.Ot,exports.NamedStyleCollection=t.Ht,Object.defineProperty(exports,"NumberFormat",{enumerable:!0,get:function(){return t.on}}),exports.PersonCollection=B,exports.RangeClipboardItem=class{constructor(e){if(!e)throw new r.NullNotAllowedError(`snapshot is required.`);this._snapshot=e}getItemType(){return`range`}getItem(){return this._snapshot}editMode(){return this._snapshot?.getMarkOptions().editMode??null}isCut(){return this._snapshot?.getMarkOptions().isCut??!1}getName(){return this._snapshot.getName()}toText(){return this._snapshot.toText()}toHtml(){return this._snapshot.toHtml()}toImage(){return this._snapshot.toImage()}get isClipboardItem(){return!0}},exports.Registry=t.Mn,exports.Resource=t.Dt,exports.ResourceCollection=t.Et,exports.SHEETXL_RESOURCE_KINDS=Re,exports.SYSTEM_COLOR_CSS_PREFIX=t.Zt,exports.Sheet=t.u,exports.SimpleFontFace=v,Object.defineProperty(exports,"Sort",{enumerable:!0,get:function(){return t.cn}}),exports.StringCollection=t.Tt,exports.StyleCollection=t.jt,exports.Table=ze,exports.TableStyleCollection=t.Vt,Object.defineProperty(exports,"TextRotation",{enumerable:!0,get:function(){return t.Tn}}),Object.defineProperty(exports,"TextStacked",{enumerable:!0,get:function(){return t.wn}}),Object.defineProperty(exports,"TextUtils",{enumerable:!0,get:function(){return t.En}}),exports.Theme=t.Gt,exports.ThemeCollection=t.Kt,exports.TransactionConflictError=t.Fn,exports.TransactionSaveStateManager=class{constructor(e,n){this._dirty=!1,this._store=e,this._savedCommitId=e.getCurrentCommit()?.getId()??null,this._emitter=new t.Pn(this);let r=this;this._removeStoreListener=e.addListener({onCommitEnd(){r._recompute()},onCommitChange(){r._recompute()}}),this._removeCommitListener=n?.addCommitListener({onCommit(e){e.store===r._store&&r.markSaved(e.commitId)}})}getStore(){return this._store}isDirty(){return(this._store.getCurrentCommit()?.getId()??null)!==this._savedCommitId}getSavedCommitId(){return this._savedCommitId}markSaved(e=this._store.getCurrentCommit()?.getId()??null){e!==this._savedCommitId&&(this._savedCommitId=e??null,this._recompute())}addListeners(e,t){return this._emitter.addListeners(e,t)}_recompute(){let e=this.isDirty();e!==this._dirty&&(this._dirty=e,this._emitter.notify(e?`onDirty`:`onClean`,{transactional:!1}))}close(){this._removeStoreListener?.(),this._removeCommitListener?.(),this._emitter.close()}},exports.TransactionStore=t.In,exports.TransactionUndoManager=a,Object.defineProperty(exports,"Tuple",{enumerable:!0,get:function(){return t._n}}),exports.VERSION=`0.8.0-beta.7`,exports.Workbook=je,exports.WorkbookIO=Fe,exports.WorkbookOrigin=o,exports.WorkbookView=H,exports.builtInStyleNameDisplay=function(e){let t=ie[e];if(t)return{key:t};let n=ce.exec(e);return n?{key:ae,params:{n:+n[1]}}:(n=le.exec(e),n?{key:oe,params:{n:+n[1]}}:(n=ue.exec(e),n?{key:se,params:{pct:+n[1],n:+n[2]}}:null))},exports.createCellRangeCounts=t.d,exports.externalBookClosedName=t.nt,exports.externalBookFileName=t.rt,exports.externalBookLocation=t.it,exports.externalBookOpenName=t.at,exports.getBuiltInFunctionNames=function(){if(!L){let e=Promise.resolve().then(()=>require("./CwzIjMpnMKeypivl.cjs")).then(({initializeFunctions:e})=>{let t=e(()=>null);return Object.freeze(Array.from(t.keys()))});e.catch(()=>{L=null}),L=e}return L},exports.getLanguagePack=t.fn,exports.getLocaleProfile=t.Sn,exports.getScriptRuntime=t.j,exports.getScriptingApi=function(){if(!$){let e=Promise.resolve().then(()=>require("./E08wpSuqr-UadjSZ.cjs")).then(e=>e.loadScriptingApi()).then(e=>JSON.parse(e));e.catch(()=>{$=null}),$=e}return $},exports.getScriptingDeclarations=function(){if(!Z){let e=Promise.resolve().then(()=>require("./E08wpSuqr-UadjSZ.cjs")).then(e=>e.loadScriptingDeclarations());e.catch(()=>{Z=null}),Z=e}return Z},exports.localizeBoolean=t.pn,exports.localizeErrorLabel=t.mn,exports.makeLocaleProfile=t.Cn,exports.parseBooleanLocal=t.hn,exports.parseErrorLocal=t.gn,exports.parseExternalScope=t.ot,exports.parseFormulaLiteral=function(e){let n=e.trim();if(!n)return;let r;try{let e=t.gt.shared().tokenize(n,!1);if(e.errors.length>0)return;r=e.tokens}catch{return}let i=0,a=0;if(r.length===2){let e=r[0].tokenType?.name;e===`MinOp`?(i=-1,a=1):e===`PlusOp`&&(i=1,a=1)}if(r.length-a!==1)return;let o=r[a],s=o.image;try{switch(o.tokenType?.name){case`NumberToken`:case`ScientificDigit`:case`DigitToken`:{let e=t.mt(s).value;return i===0?e:i*e}case`StringToken`:return i===0?t.ht(s).value:void 0;case`BooleanToken`:return i===0?t.ft(s).value:void 0;case`LiteralError`:case`RefError`:return i===0?t.pt(s).value:void 0;default:return}}catch{return}},exports.registerSdkLocales=t.dn,exports.sourceEntryFromPath=t.st,exports.withScriptRuntime=t.M,Object.keys(n).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return n[e]}})}),Object.keys(r).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return r[e]}})});
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.5
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.7
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
6
  */
7
- import { R as e } from "./CLfbadk6S57dy8sc.mjs";
7
+ import { R as e } from "./DRpWwH6CWI0QaNlp.mjs";
8
8
  export { e as initializeFunctions };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.5
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.7
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.5
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.7
3
3
  *
4
4
  * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
5
  * License: The license can be found at https://www.sheetxl.com/license.
6
6
  */
7
- import { $ as e, B as t, G as n, H as r, J as i, K as a, Q as o, U as s, V as c, W as l, X as u, Y as d, Z as f, _t as p, ct as m, dt as h, et as g, lt as _, q as v, ut as y, vt as b, z as x } from "./CLfbadk6S57dy8sc.mjs";
7
+ import { $ as e, B as t, G as n, H as r, J as i, K as a, Q as o, U as s, V as c, W as l, X as u, Y as d, Z as f, _t as p, ct as m, dt as h, et as g, lt as _, q as v, ut as y, vt as b, z as x } from "./DRpWwH6CWI0QaNlp.mjs";
8
8
  import { FormulaError as S } from "@sheetxl/primitives";
9
9
  import { CommonUtils as C } from "@sheetxl/utils";
10
10
  var w = class {