@sheetxl/sdk 0.7.28-beta.2 → 0.7.28-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/cjs/{BREMLtxkQhtNSVra.cjs → BF14ZEAnaqxXroSj.cjs} +1 -1
- package/browser/cjs/{BG7YDVxiC4ErxvF1.cjs → BXtvdT1Z-MsB_o5F.cjs} +1 -1
- package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +33 -0
- package/browser/cjs/{CQf4zxkBmheTVbjX.cjs → CD2RXdnfqSYNc6gX.cjs} +2 -2
- package/browser/cjs/DcLpXGexEtOxi-dD.cjs +1 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{DN4d5bDBkti28wuc.mjs → 0Mj5WKM362q6CECb.mjs} +213 -207
- package/browser/esm/{BxIOX1TojvA-1ZZP.mjs → CHSahmMFYNB0Ajkf.mjs} +2 -2
- package/browser/esm/{CZO1RubmqnJV96rq.mjs → CKk58ZLcrllMzfou.mjs} +2 -2
- package/browser/esm/{DRWu3TmcE9JFf78V.mjs → CPTtL2f6_4iblmFM.mjs} +2 -2
- package/browser/esm/{DPOelA1J3WHbMXyh.mjs → CoA-sUxjiIUIpTUF.mjs} +2 -2
- package/browser/esm/{vHWuKF-ftK7LM1uw.mjs → DBIu6NUHIcxOOBQp.mjs} +1 -1
- package/browser/esm/{CB_4gdPPPruwremH.mjs → Dy4Sdpju1T2icURu.mjs} +4748 -3883
- package/browser/esm/index.mjs +419 -411
- package/node/esm/{XQhP3dYwF_tEuswB.mjs → BtGxbEbBm79YvF_k.mjs} +303 -297
- package/node/esm/{B-tgcZihStNV9CbZ.mjs → DUYP6faJJHCaW1Xf.mjs} +1 -1
- package/node/esm/{C8tfYGL3wHy9IDDc.mjs → DqgWsVXROpSgKq6c.mjs} +2 -2
- package/node/esm/index.mjs +8686 -7802
- package/package.json +6 -6
- package/resources/locales/de/model.msg.json +12 -0
- package/resources/locales/en/model.msg.json +12 -0
- package/types/scripting-enums.json +2 -0
- package/types/scripting.d.ts +341 -15
- package/types/src/anchored/IAnchored.d.ts +27 -0
- package/types/src/calculation/Calculation.d.ts +21 -12
- package/types/src/calculation/ICalculation.d.ts +183 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +20 -0
- package/types/src/calculation/compiler/FormulaParser.d.ts +32 -6
- package/types/src/calculation/executor/CalcExecutor.d.ts +204 -13
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +31 -0
- package/types/src/calculation/executor/CircularReference.d.ts +81 -0
- package/types/src/calculation/functions/Operators.d.ts +1 -1
- package/types/src/calculation/grid/CalcGrid.d.ts +5 -1
- package/types/src/calculation/grid/CalcGridUtils.d.ts +3 -2
- package/types/src/calculation/grid/ICalcGrid.d.ts +23 -1
- package/types/src/calculation/spatial/CircularEntry.d.ts +18 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcNode.d.ts +24 -17
- package/types/src/calculation/state/CalcState.d.ts +78 -15
- package/types/src/calculation/state/CalculationContext.d.ts +39 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +90 -0
- package/types/src/cell/ICell.d.ts +16 -0
- package/types/src/cellRange/ICellRange.d.ts +72 -6
- package/types/src/condition/AnchoredConditional.d.ts +26 -6
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +8 -1
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +4 -1
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +6 -2
- package/types/src/dataValidation/IDataValidationCollection.d.ts +6 -2
- package/types/src/hyperlink/IHyperlink.d.ts +3 -1
- package/types/src/hyperlink/_Hyperlink.d.ts +6 -0
- package/types/src/lib/utils/utils.browser.d.ts +5 -0
- package/types/src/license/LicenseDetails.d.ts +5 -0
- package/types/src/primitives/CalcSignal.d.ts +20 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +7 -2
- package/types/src/scripting/_ScriptUtils.d.ts +13 -0
- package/types/src/sheet/Sheet.d.ts +33 -2
- package/types/src/sheet/SheetCell.d.ts +2 -0
- package/types/src/sheet/SheetRange.d.ts +12 -1
- package/types/src/sheet/_SheetStateTypes.d.ts +14 -1
- package/types/src/style/IStyle.d.ts +5 -0
- package/types/src/table/AnchoredTable.d.ts +17 -1
- package/types/src/text/TextUtils.d.ts +18 -0
- package/browser/cjs/DoemwsUQoGCk0vBK.cjs +0 -33
- package/browser/cjs/_c2uwwpr03Y7lzIj.cjs +0 -1
package/browser/cjs/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./B7_pDFYCVzt-3hUs.cjs"),t=require("./DoemwsUQoGCk0vBK.cjs"),n=require("./CQf4zxkBmheTVbjX.cjs");let r=require("@sheetxl/primitives"),i=require("@sheetxl/utils");var a;a||={};var o=class extends i.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?.()}},s=class e{constructor(n,r={}){this._password=null,this._emitter=new t.wn(this),this._path=n??null,this._name=r.name??null,this._format=r.format??null,this._size=r.size??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.bn(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.xn(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}canWrite(){return this._canWrite}setName(e){this.update({name:e})}update(e){let t=!1;return e.path!==void 0&&e.path!==this._path&&(this._path=e.path,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)]}`}},c=class{constructor(){this._defaultStringSourceType=`filepath`}async read(e){let n=e.options??{},r=e.source;if(typeof r==`function`&&(r=r()),r&&typeof r==`object`&&typeof r.then==`function`&&(r=await Promise.resolve(r)),r==null&&(r=await this.resolveSource(e),r==null))return null;let a=n.format,o=this._detectSourceType(r);if(!o)throw Error(`Unable to detect source type from provided input.`);let s,c,l=!1;if(o===`filepath`){let e=typeof r==`string`&&r.startsWith(`file://`)?r.slice(7):r;r=await this.filePathToFile(e),o=`file`,l=!0}switch(o){case`file`:{let e=r,n=e?.name,i=n?`${t.bn(n)}`:``;s=await e.arrayBuffer(),c={format:a,ext:t.xn(n),name:i,absolutePath:n,size:e.size,canWrite:l&&this._canWriteLocalPath()};break}case`blob`:{let e=r;s=await e.arrayBuffer(),c={format:a,size:e.size};break}case`base64`:{let e;if(r&&typeof r==`object`&&`base64`in r)e=r.base64;else if(typeof r==`string`&&r.startsWith(`data:`)){let[,t]=r.split(`,`);e=t}else e=r;s=i.BufferUtils.base64ToArrayBuffer(e),c={format:a,size:e.length};break}case`fetch`:{let e,n,i;if(typeof r==`string`)e=r;else{if(!r||typeof r!=`object`||!(`input`in r))throw Error(`Invalid fetch source provided.`);{let t=r;e=t.input,n=t.init,i=t.timeout}}let o=i||3e4,l=new AbortController,u=setTimeout(()=>l.abort(),o),d=typeof e==`string`?e:e.toString(),f=t.xn(d);try{let r=await fetch(e,{...n,signal:l.signal});if(clearTimeout(u),!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}`);s=i,c={format:a,ext:f,name:t.bn(d,!0),absolutePath:d}}catch(e){throw clearTimeout(u),e.name===`AbortError`?Error(`Fetch timeout after ${o}ms: ${d}`):e}break}case`buffer`:s=r,c={format:a};break;case`stream`:{let e=r.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 i=new ArrayBuffer(n),o=new Uint8Array(i),l=0;for(let e of t)o.set(e,l),l+=e.length;s=i,c={format:a};break}default:throw Error(`Unsupported source type: ${o}`)}let u=await e.decode(s,{sourceType:o,...c});return u?(await this.onWorkbookRead(u,r),u):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),r=i.BufferUtils.isNodeBuffer(e);return t||n||r?`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}},l=class extends c{constructor(e,t){super(),this._getWriteFormats=e,this._getReadFormats=t,this._defaultStringSourceType=`fetch`,this._handleCache=new WeakMap,this._pendingOpenHandle=null}async read(e){let t=e.source;return t&&t.kind===`file`&&typeof t.getFile==`function`?(this._pendingOpenHandle=t,super.read({...e,source:await t.getFile()})):super.read(e)}async resolveSource(){let e=await this._getReadFormats?.()??[];if(typeof globalThis.showOpenFilePicker==`function`)try{let t=function(e){let t=u(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 this._pendingOpenHandle=n,await n.getFile()}catch(e){if(e?.name===`AbortError`)return null;throw e}let t=e.flatMap(e=>e.exts.map(e=>`.`+e)).join(`, `);return i.DOMUtils.openFileDialog(t)}async onWorkbookRead(e){if(this._pendingOpenHandle){let t=e.getOrigin?.();t&&(this._handleCache.set(t,this._pendingOpenHandle),t instanceof s&&t.update({canWrite:!0})),this._pendingOpenHandle=null}}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:r,encode:i,prompt:a}=e,o=[r,...(await this._getWriteFormats()).filter(e=>e.key!==r.key)],c=typeof globalThis.showSaveFilePicker==`function`,l=!a&&t.canWrite()?this._handleCache.get(t):void 0;if(l?.name){let e=t.getPath()?.split(/[/\\]/).pop();e&&l.name!==e&&(l=void 0)}let p=!!l;if(c)try{if(l){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`}}(l);if(e===`denied`)return null;e!==`granted`&&(l=void 0)}l||=await globalThis.showSaveFilePicker({suggestedName:n,types:u(o)});let e=f(l.name??n),a=o.find(t=>t.exts.some(t=>t.toLowerCase()===e))??r,c=await i(a.key),m=new Blob([d(c)],{type:a.mimeType||`application/octet-stream`}),h=await l.createWritable();return await h.write(m),await h.close(),this._handleCache.set(t,l),t instanceof s&&t.update({size:m.size,...p?null:{path:l.name??n,name:null,format:a.key,canWrite:!0}}),t}catch(e){if(e?.name===`AbortError`)return null}let m=await i(r.key),h=new Blob([d(m)],{type:r.mimeType||`application/octet-stream`}),g=t.getPath(),_=g?g.split(/[/\\]/).pop():null,v=_&&f(_)?_:n;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)}(h,v),t instanceof s&&t.update({size:h.size,...t.getPath()===v?null:{path:v,name:null,format:r.key,canWrite:!1}}),t}};function u(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 d(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 f(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}var p=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}},m=e.n({findBestMatch:()=>C,getFontList:()=>x,setFontList:()=>b}),h=[`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`],g=new Map;g.set(t.rn.GenericName.Serif,[`Tahoma`]),g.set(t.rn.GenericName.SanSerif,[`Calibri`]),g.set(t.rn.GenericName.MonoSpace,[`Courier New`]),g.set(t.rn.GenericName.Cursive,[`Comic Sans MS`]),g.set(t.rn.GenericName.Fantasy,[`Luminari`]),g.set(t.rn.GenericName.UISystem,[`Arial`]),g.set(t.rn.GenericName.UISerif,[`Tahoma`]),g.set(t.rn.GenericName.UISanSerif,[`Arial`]),g.set(t.rn.GenericName.UIMonoSpace,[`Courier New`]),g.set(t.rn.GenericName.UIRounded,[`Arial`]),g.set(t.rn.GenericName.Math,[]),g.set(t.rn.GenericName.Emoji,[]),g.set(t.rn.GenericName.Fangsong,[]);var _=new Map,v=[];b(h);var y=eval;function b(e){e||b(h);let t=[];for(let n=0;n<e.length;n++){let r=e[n];typeof r==`string`&&(r=new p(r));let i=!0;try{i=y(`document.fonts.check('12px ${r.getFamily()}')`)}catch{}let a={fontRef:r,loaded:i};t.push(a),_.set(r.getFamily(),a)}v=Object.freeze(t)}function x(){return v}var S=new Map;function C(e,t){let n=S.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=_.get(t),!i){let e=g.get(t);if(e)for(let t=0;!i&&t<e.length;t++)i=_.get(e[t])}}return i?S.set(e,i):S.set(e,{fontRef:null,loaded:!1}),i}var w,T,E,D,ee=e.n({DefaultFontSizes:()=>O,findNextFontSize:()=>te}),O=Object.freeze([8,9,10,11,12,14,16,18,20,22,24,26,28,30,36,48,72]);function te(e,t=!0,n=O){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 r=i.CommonUtils.findEqualOrGreater(n,e);return t?(n[r]===e&&(r+=1),n[r]||--r,n[r]):(--r,n[r])}(w||={}).SortOn={Value:`value`,FillColor:`fillColor`,FontColor:`fontColor`,Icon:`icon`},(E=T||={}).Compound={Single:`sng`,Double:`dbl`,ThickThin:`thickThin`,ThinThick:`thinThick`,Triple:`tri`},E.Align={Center:`ctr`,Inset:`in`,Outset:`outset`},E.LineCap={Butt:`butt`,Round:`round`,Square:`square`},E.LineJoin={Bevel:`bevel`,Miter:`miter`,Round:`round`},E.PresetMarkerShape={Single:`none`,Double:`double`,ThickThin:`thickThin`,ThinThick:`thickThin`},E.StrokeStyle={None:`none`,Dashed:`dashed`,Dotted:`dotted`,LargeDash:`lgDash`,LargeDashDot:`lgDashDot`,LargeDashDotDot:`lgDashDotDot`,Solid:`solid`,SysDash:`sysDash`,SysDashDot:`sysDashDot`,SysDashDotDot:`sysDashDotDot`,SysDot:`sysDot`},(D||={}).Type={OuterShadow:`outerShadow`,InnerShadow:`innerShadow`,PresetShadow:`presetShadow`,Glow:`glow`,SoftEdge:`softEdge`,Reflection:`reflection`};var k=t.Rt.BuiltInName,ne={[k.Normal]:(0,i.messageKey)(`style.builtin.normal`),[k.Comma]:(0,i.messageKey)(`style.builtin.comma`),[k.Currency]:(0,i.messageKey)(`style.builtin.currency`),[k.Percent]:(0,i.messageKey)(`style.builtin.percent`),[k.Comma0]:(0,i.messageKey)(`style.builtin.comma0`),[k.Currency0]:(0,i.messageKey)(`style.builtin.currency0`),[k.Hyperlink]:(0,i.messageKey)(`style.builtin.hyperlink`),[k.FollowedHyperlink]:(0,i.messageKey)(`style.builtin.followedHyperlink`),[k.Note]:(0,i.messageKey)(`style.builtin.note`),[k.WarningText]:(0,i.messageKey)(`style.builtin.warningText`),[k.Title]:(0,i.messageKey)(`style.builtin.title`),[k.Input]:(0,i.messageKey)(`style.builtin.input`),[k.Output]:(0,i.messageKey)(`style.builtin.output`),[k.Calculation]:(0,i.messageKey)(`style.builtin.calculation`),[k.CheckCell]:(0,i.messageKey)(`style.builtin.checkCell`),[k.LinkedCell]:(0,i.messageKey)(`style.builtin.linkedCell`),[k.Total]:(0,i.messageKey)(`style.builtin.total`),[k.Good]:(0,i.messageKey)(`style.builtin.good`),[k.Bad]:(0,i.messageKey)(`style.builtin.bad`),[k.Neutral]:(0,i.messageKey)(`style.builtin.neutral`),[k.ExplanatoryText]:(0,i.messageKey)(`style.builtin.explanatoryText`)},re=(0,i.messageKey)(`style.builtin.heading`),ie=(0,i.messageKey)(`style.builtin.accent`),ae=(0,i.messageKey)(`style.builtin.accentTint`),oe=/^Heading ([1-4])$/,se=/^Accent([1-6])$/,ce=/^(20|40|60)% - Accent([1-6])$/,A,j,M,N,le=(e,n,r,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,i.t)(`op.lighterPercent`,{percent:n})):n<0&&(l=100+n,c=(0,i.t)(`op.darkerPercent`,{percent:-n})),l&&s.adjs.push({[t.Ht.AdjustmentType.LumMod]:l}),u&&s.adjs.push({[t.Ht.AdjustmentType.LumOff]:u});let d=new t.Bt({val:s.val,adjs:s.adjs},r),f=d.toString();a?.set(f,d);let p=d.toRGBA().toString();return o?.set(p,d),{description:e.description+`, `+c,definition:s}};function ue(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(le(e[o],t[a],n,r,i))},l=new t.Bt({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}(A||={}).buildPalette=ue,j||={},M||={},N||={};var P=null;function F(e,t){let n=I(e),i=I(t);return n===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:r.FormulaError.isError(e)&&r.FormulaError.isError(t)?e.getCode()-t.getCode():0:n-i}function I(e){if(e===null)return 0;switch(typeof e){case`number`:return 1;case`string`:return 2;case`boolean`:return 3;default:return r.FormulaError.isError(e)?4:5}}var de=class{constructor(e){this._children=e}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 fe;if(t===1)return e[0];let n=e[0];for(let r=1;r<t;r++)n=pe(n,e[r]);return Object.freeze(n)}(i)),this._sortedNumbers=e}return e}getRanked(e){return t.n(this._children,e,F)[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.ht,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.mt.fromGroups(i,n,e,F,s,c,l)}getTypedCounts(e){let t=this._typedCounts;if(!t){let e={[r.ScalarType.Number]:0,[r.ScalarType.String]:0,[r.ScalarType.Boolean]:0,[r.ScalarType.Error]:0,[r.ScalarType.RichData]:0,[r.ScalarType.Null]:0},n=this._children,i=n.length;for(let t=0;t<i;t++){let i=n[t].getTypedCounts();e[r.ScalarType.Number]+=i[r.ScalarType.Number]??0,e[r.ScalarType.String]+=i[r.ScalarType.String]??0,e[r.ScalarType.Boolean]+=i[r.ScalarType.Boolean]??0,e[r.ScalarType.Error]+=i[r.ScalarType.Error]??0,e[r.ScalarType.RichData]+=i[r.ScalarType.RichData]??0,e[r.ScalarType.Null]+=i[r.ScalarType.Null]??0}t=Object.freeze(e),this._typedCounts=t}if(e===void 0)return t;let n={},i=e.length;for(let r=0;r<i;r++)n[e[r]]=t[e[r]]??0;return n}get isIRangeStats(){return!0}_mergeAggregates(e){let n=this._children,i=n.length,a={count:0,min:void 0,max:void 0,numericalCount:0,sum:0,sumSq:0,typed:{[r.ScalarType.Number]:0,[r.ScalarType.String]:0,[r.ScalarType.Boolean]:0,[r.ScalarType.Error]:0,[r.ScalarType.RichData]:0,[r.ScalarType.Null]:0}};for(let t=0;t<i;t++){let r=n[t].getAggregates(e);a.count+=r.count;let i=r.numericalCount;i<=0||(a.numericalCount+=i,a.sum+=r.sum,a.sumSq+=r.varP*i+r.sum*r.sum/i,(a.min===void 0||r.min<a.min)&&(a.min=r.min),(a.max===void 0||r.max>a.max)&&(a.max=r.max))}return t.r(a)}},fe=Object.freeze([]);function pe(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 me=class{constructor(e){this.isIExternalBook=!0,this._json=e}getIdentity(){return this._json.identity}getSheetNames(){return this._json.sheetNames}getDefinedNames(){return this._json.definedNames??[]}getSheetData(e){return this._json.sheetDataSet?.find(t=>t.sheetIndex===e)??null}toJSON(){return this._json}},he=class{constructor(e){this.isIExternalBookCollection=!0,this._items=(e?.json??[]).map(e=>e?new me(e):null)}[Symbol.iterator](){return this.getItems()[Symbol.iterator]()}getItems(){let e=[],t=this._items.length;for(let n=0;n<t;n++){let t=this._items[n];t&&e.push(t)}return e}getCount(){return this.getItems().length}getByIndex(e){return this._items[e-1]??null}toJSON(){return this._items.length===0?null:this._items.map(e=>e?.toJSON()??null)}},ge=class{constructor(e){this._closed=!1,this._options={...e};let n=this;this._transactions=this._options.transactions??new t.En({transient:!0}),this._stateId=this._transactions.create(),this._transactionsRemoveListener=this._transactions.addStateListener(this._stateId,{onAfterStateChange(e,t,r){n._emitter.notify(`onCollectionChange`)}}),this._emitter=new t.wn(this,this._transactions),this._initState(e?.initial)}add(e,t,n){let r=this;t&&t.addListeners({onDelete:t=>{r._updateState(t=>{if(!t.modules[e])return;let n=t.modules[e];if(n){let i={...t};return r._options.onRemove?.(e,n),r._emitter.notify(`onCollectionChange`),delete i.modules[e],i}return t},(0,i.messageKey)(`op.deleteModule`))}},{once:!0});let a=this._getState()?.modules,o=a?.[e],s=n?.replace??!1;if(o&&!s)throw Error(`Already existing '${e}'`);let c={...a};t?(c[e]=t,r._options.onAdd?.(e,t),this._updateState({modules:c},s?(0,i.messageKey)(`op.saveScripts`):(0,i.messageKey)(`op.addScript`))):(delete c[e],r._options.onRemove?.(e,null),this._updateState({modules:c},(0,i.messageKey)(`op.removeScript`))),r._emitter.notify(`onCollectionChange`)}*[Symbol.iterator](){yield*this.getItems()}getItems(e){let t=this._getState();if(!t)return i.CommonUtils.EmptyArray;let n=t.modules,r=Object.keys(n),a=r.length;if(a===0)return i.CommonUtils.EmptyArray;let o=[],s=e?.name?e.name.toUpperCase():null;for(let e=0;e<a;e++){let t=r[e],i=n[t],a=!0;s&&s!==t.toUpperCase()&&(a=!1),a&&o.push(i)}return o??i.CommonUtils.EmptyArray}getByName(e){if(!e)return null;let t=this._getState();if(!t)return null;let n=e.toUpperCase(),r=t.modules,i=Object.keys(r),a=i.length;for(let e=0;e<a;e++){let t=i[e];if(n===t.toUpperCase())return r[t]}return null}getCount(){let e=this._getState();return e?Object.keys(e.modules).length:0}beginCommit(e){return this._beginCommit(e)}_getState(){if(this._closed)throw Error((0,i.t)(`error.model.modelClosed`));return this._transactions.getState(this._stateId)}_beginCommit(e){return this._transactions.beginCommit(typeof e==`string`?{description:e}:e)}_updateState(e,t=(0,i.messageKey)(`op.update`),n){if(!e)return;let r=this._beginCommit(t);try{r.updateState(this._stateId,e),r.commit(n)}catch(e){throw r.rollback(),e}}_initState(e){let t=e??{};this._updateState({modules:t},(0,i.messageKey)(`op.initialize`),{forceAmend:!0});let n=this._options.onAdd;if(n){let e=Object.keys(t),r=e.length;for(let i=0;i<r;i++){let r=e[i];n(r,t[r])}}}addListeners(e,t){return this._emitter.addListeners(e,t)}toJSON(){let e=this._getState();if(!e)return i.CommonUtils.EmptyArray;let t=e.modules,n=Object.keys(t),r=n.length,a={};for(let e=0;e<r;e++){let r=n[e];a[r]=t[r].toJSON()}return a}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify(`onClose`),this._closed=!0,this._transactionsRemoveListener?.())}get isFunctionCollection(){return!0}},_e=(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("./Bc4JjVVZfFo3R4He.cjs"),n=require("./CD2RXdnfqSYNc6gX.cjs");let r=require("@sheetxl/primitives"),i=require("@sheetxl/utils");var a;a||={};var o=class extends i.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?.()}},s=class e{constructor(n,r={}){this._password=null,this._emitter=new t.Tn(this),this._path=n??null,this._name=r.name??null,this._format=r.format??null,this._size=r.size??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.xn(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.Sn(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}canWrite(){return this._canWrite}setName(e){this.update({name:e})}update(e){let t=!1;return e.path!==void 0&&e.path!==this._path&&(this._path=e.path,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)]}`}},c=class{constructor(){this._defaultStringSourceType=`filepath`}async read(e){let n=e.options??{},r=e.source;if(typeof r==`function`&&(r=r()),r&&typeof r==`object`&&typeof r.then==`function`&&(r=await Promise.resolve(r)),r==null&&(r=await this.resolveSource(e),r==null))return null;let a=n.format,o=this._detectSourceType(r);if(!o)throw Error(`Unable to detect source type from provided input.`);let s,c,l=!1;if(o===`filepath`){let e=typeof r==`string`&&r.startsWith(`file://`)?r.slice(7):r;r=await this.filePathToFile(e),o=`file`,l=!0}switch(o){case`file`:{let e=r,n=e?.name,i=n?`${t.xn(n)}`:``;s=await e.arrayBuffer(),c={format:a,ext:t.Sn(n),name:i,absolutePath:n,size:e.size,canWrite:l&&this._canWriteLocalPath()};break}case`blob`:{let e=r;s=await e.arrayBuffer(),c={format:a,size:e.size};break}case`base64`:{let e;if(r&&typeof r==`object`&&`base64`in r)e=r.base64;else if(typeof r==`string`&&r.startsWith(`data:`)){let[,t]=r.split(`,`);e=t}else e=r;s=i.BufferUtils.base64ToArrayBuffer(e),c={format:a,size:e.length};break}case`fetch`:{let e,n,i;if(typeof r==`string`)e=r;else{if(!r||typeof r!=`object`||!(`input`in r))throw Error(`Invalid fetch source provided.`);{let t=r;e=t.input,n=t.init,i=t.timeout}}let o=i||3e4,l=new AbortController,u=setTimeout(()=>l.abort(),o),d=typeof e==`string`?e:e.toString(),f=t.Sn(d);try{let r=await fetch(e,{...n,signal:l.signal});if(clearTimeout(u),!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}`);s=i,c={format:a,ext:f,name:t.xn(d,!0),absolutePath:d}}catch(e){throw clearTimeout(u),e.name===`AbortError`?Error(`Fetch timeout after ${o}ms: ${d}`):e}break}case`buffer`:s=r,c={format:a};break;case`stream`:{let e=r.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 i=new ArrayBuffer(n),o=new Uint8Array(i),l=0;for(let e of t)o.set(e,l),l+=e.length;s=i,c={format:a};break}default:throw Error(`Unsupported source type: ${o}`)}let u=await e.decode(s,{sourceType:o,...c});return u?(await this.onWorkbookRead(u,r),u):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),r=i.BufferUtils.isNodeBuffer(e);return t||n||r?`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}},l=class extends c{constructor(e,t){super(),this._getWriteFormats=e,this._getReadFormats=t,this._defaultStringSourceType=`fetch`,this._handleCache=new WeakMap,this._pendingOpenHandle=null}async read(e){let t=e.source;return t&&t.kind===`file`&&typeof t.getFile==`function`?(this._pendingOpenHandle=t,super.read({...e,source:await t.getFile()})):super.read(e)}async resolveSource(){let e=await this._getReadFormats?.()??[];if(typeof globalThis.showOpenFilePicker==`function`)try{let t=function(e){let t=u(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 this._pendingOpenHandle=n,await n.getFile()}catch(e){if(e?.name===`AbortError`)return null;throw e}let t=e.flatMap(e=>e.exts.map(e=>`.`+e)).join(`, `);return i.DOMUtils.openFileDialog(t)}async onWorkbookRead(e){if(this._pendingOpenHandle){let t=e.getOrigin?.();t&&(this._handleCache.set(t,this._pendingOpenHandle),t instanceof s&&t.update({canWrite:!0})),this._pendingOpenHandle=null}}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:r,encode:i,prompt:a}=e,o=[r,...(await this._getWriteFormats()).filter(e=>e.key!==r.key)],c=typeof globalThis.showSaveFilePicker==`function`,l=!a&&t.canWrite()?this._handleCache.get(t):void 0;if(l?.name){let e=t.getPath()?.split(/[/\\]/).pop();e&&l.name!==e&&(l=void 0)}let p=!!l;if(c)try{if(l){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`}}(l);if(e===`denied`)return null;e!==`granted`&&(l=void 0)}l||=await globalThis.showSaveFilePicker({suggestedName:n,types:u(o)});let e=f(l.name??n),a=o.find(t=>t.exts.some(t=>t.toLowerCase()===e))??r,c=await i(a.key),m=new Blob([d(c)],{type:a.mimeType||`application/octet-stream`}),h=await l.createWritable();return await h.write(m),await h.close(),this._handleCache.set(t,l),t instanceof s&&t.update({size:m.size,...p?null:{path:l.name??n,name:null,format:a.key,canWrite:!0}}),t}catch(e){if(e?.name===`AbortError`)return null}let m=await i(r.key),h=new Blob([d(m)],{type:r.mimeType||`application/octet-stream`}),g=t.getPath(),_=g?g.split(/[/\\]/).pop():null,v=_&&f(_)?_:n;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)}(h,v),t instanceof s&&t.update({size:h.size,...t.getPath()===v?null:{path:v,name:null,format:r.key,canWrite:!1}}),t}};function u(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 d(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 f(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}var p=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}},m=e.n({findBestMatch:()=>C,getFontList:()=>x,setFontList:()=>b}),h=[`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`],g=new Map;g.set(t.in.GenericName.Serif,[`Tahoma`]),g.set(t.in.GenericName.SanSerif,[`Calibri`]),g.set(t.in.GenericName.MonoSpace,[`Courier New`]),g.set(t.in.GenericName.Cursive,[`Comic Sans MS`]),g.set(t.in.GenericName.Fantasy,[`Luminari`]),g.set(t.in.GenericName.UISystem,[`Arial`]),g.set(t.in.GenericName.UISerif,[`Tahoma`]),g.set(t.in.GenericName.UISanSerif,[`Arial`]),g.set(t.in.GenericName.UIMonoSpace,[`Courier New`]),g.set(t.in.GenericName.UIRounded,[`Arial`]),g.set(t.in.GenericName.Math,[]),g.set(t.in.GenericName.Emoji,[]),g.set(t.in.GenericName.Fangsong,[]);var _=new Map,v=[];b(h);var y=eval;function b(e){e||b(h);let t=[];for(let n=0;n<e.length;n++){let r=e[n];typeof r==`string`&&(r=new p(r));let i=!0;try{i=y(`document.fonts.check('12px ${r.getFamily()}')`)}catch{}let a={fontRef:r,loaded:i};t.push(a),_.set(r.getFamily(),a)}v=Object.freeze(t)}function x(){return v}var S=new Map;function C(e,t){let n=S.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=_.get(t),!i){let e=g.get(t);if(e)for(let t=0;!i&&t<e.length;t++)i=_.get(e[t])}}return i?S.set(e,i):S.set(e,{fontRef:null,loaded:!1}),i}var w,T,E,D,ee=e.n({DefaultFontSizes:()=>O,findNextFontSize:()=>te}),O=Object.freeze([8,9,10,11,12,14,16,18,20,22,24,26,28,30,36,48,72]);function te(e,t=!0,n=O){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 r=i.CommonUtils.findEqualOrGreater(n,e);return t?(n[r]===e&&(r+=1),n[r]||--r,n[r]):(--r,n[r])}(w||={}).SortOn={Value:`value`,FillColor:`fillColor`,FontColor:`fontColor`,Icon:`icon`},(E=T||={}).Compound={Single:`sng`,Double:`dbl`,ThickThin:`thickThin`,ThinThick:`thinThick`,Triple:`tri`},E.Align={Center:`ctr`,Inset:`in`,Outset:`outset`},E.LineCap={Butt:`butt`,Round:`round`,Square:`square`},E.LineJoin={Bevel:`bevel`,Miter:`miter`,Round:`round`},E.PresetMarkerShape={Single:`none`,Double:`double`,ThickThin:`thickThin`,ThinThick:`thickThin`},E.StrokeStyle={None:`none`,Dashed:`dashed`,Dotted:`dotted`,LargeDash:`lgDash`,LargeDashDot:`lgDashDot`,LargeDashDotDot:`lgDashDotDot`,Solid:`solid`,SysDash:`sysDash`,SysDashDot:`sysDashDot`,SysDashDotDot:`sysDashDotDot`,SysDot:`sysDot`},(D||={}).Type={OuterShadow:`outerShadow`,InnerShadow:`innerShadow`,PresetShadow:`presetShadow`,Glow:`glow`,SoftEdge:`softEdge`,Reflection:`reflection`};var k=t.zt.BuiltInName,ne={[k.Normal]:(0,i.messageKey)(`style.builtin.normal`),[k.Comma]:(0,i.messageKey)(`style.builtin.comma`),[k.Currency]:(0,i.messageKey)(`style.builtin.currency`),[k.Percent]:(0,i.messageKey)(`style.builtin.percent`),[k.Comma0]:(0,i.messageKey)(`style.builtin.comma0`),[k.Currency0]:(0,i.messageKey)(`style.builtin.currency0`),[k.Hyperlink]:(0,i.messageKey)(`style.builtin.hyperlink`),[k.FollowedHyperlink]:(0,i.messageKey)(`style.builtin.followedHyperlink`),[k.Note]:(0,i.messageKey)(`style.builtin.note`),[k.WarningText]:(0,i.messageKey)(`style.builtin.warningText`),[k.Title]:(0,i.messageKey)(`style.builtin.title`),[k.Input]:(0,i.messageKey)(`style.builtin.input`),[k.Output]:(0,i.messageKey)(`style.builtin.output`),[k.Calculation]:(0,i.messageKey)(`style.builtin.calculation`),[k.CheckCell]:(0,i.messageKey)(`style.builtin.checkCell`),[k.LinkedCell]:(0,i.messageKey)(`style.builtin.linkedCell`),[k.Total]:(0,i.messageKey)(`style.builtin.total`),[k.Good]:(0,i.messageKey)(`style.builtin.good`),[k.Bad]:(0,i.messageKey)(`style.builtin.bad`),[k.Neutral]:(0,i.messageKey)(`style.builtin.neutral`),[k.ExplanatoryText]:(0,i.messageKey)(`style.builtin.explanatoryText`)},re=(0,i.messageKey)(`style.builtin.heading`),ie=(0,i.messageKey)(`style.builtin.accent`),ae=(0,i.messageKey)(`style.builtin.accentTint`),oe=/^Heading ([1-4])$/,se=/^Accent([1-6])$/,ce=/^(20|40|60)% - Accent([1-6])$/,A,j,M,N,le=(e,n,r,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,i.t)(`op.lighterPercent`,{percent:n})):n<0&&(l=100+n,c=(0,i.t)(`op.darkerPercent`,{percent:-n})),l&&s.adjs.push({[t.Ut.AdjustmentType.LumMod]:l}),u&&s.adjs.push({[t.Ut.AdjustmentType.LumOff]:u});let d=new t.Vt({val:s.val,adjs:s.adjs},r),f=d.toString();a?.set(f,d);let p=d.toRGBA().toString();return o?.set(p,d),{description:e.description+`, `+c,definition:s}};function ue(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(le(e[o],t[a],n,r,i))},l=new t.Vt({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}(A||={}).buildPalette=ue,j||={},M||={},N||={};var P=null;function F(e,t){let n=I(e),i=I(t);return n===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:r.FormulaError.isError(e)&&r.FormulaError.isError(t)?e.getCode()-t.getCode():0:n-i}function I(e){if(e===null)return 0;switch(typeof e){case`number`:return 1;case`string`:return 2;case`boolean`:return 3;default:return r.FormulaError.isError(e)?4:5}}var de=class{constructor(e){this._children=e}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 fe;if(t===1)return e[0];let n=e[0];for(let r=1;r<t;r++)n=pe(n,e[r]);return Object.freeze(n)}(i)),this._sortedNumbers=e}return e}getRanked(e){return t.n(this._children,e,F)[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.gt,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.ht.fromGroups(i,n,e,F,s,c,l)}getTypedCounts(e){let t=this._typedCounts;if(!t){let e={[r.ScalarType.Number]:0,[r.ScalarType.String]:0,[r.ScalarType.Boolean]:0,[r.ScalarType.Error]:0,[r.ScalarType.RichData]:0,[r.ScalarType.Null]:0},n=this._children,i=n.length;for(let t=0;t<i;t++){let i=n[t].getTypedCounts();e[r.ScalarType.Number]+=i[r.ScalarType.Number]??0,e[r.ScalarType.String]+=i[r.ScalarType.String]??0,e[r.ScalarType.Boolean]+=i[r.ScalarType.Boolean]??0,e[r.ScalarType.Error]+=i[r.ScalarType.Error]??0,e[r.ScalarType.RichData]+=i[r.ScalarType.RichData]??0,e[r.ScalarType.Null]+=i[r.ScalarType.Null]??0}t=Object.freeze(e),this._typedCounts=t}if(e===void 0)return t;let n={},i=e.length;for(let r=0;r<i;r++)n[e[r]]=t[e[r]]??0;return n}get isIRangeStats(){return!0}_mergeAggregates(e){let n=this._children,i=n.length,a={count:0,min:void 0,max:void 0,numericalCount:0,sum:0,sumSq:0,typed:{[r.ScalarType.Number]:0,[r.ScalarType.String]:0,[r.ScalarType.Boolean]:0,[r.ScalarType.Error]:0,[r.ScalarType.RichData]:0,[r.ScalarType.Null]:0}};for(let t=0;t<i;t++){let r=n[t].getAggregates(e);a.count+=r.count;let i=r.numericalCount;i<=0||(a.numericalCount+=i,a.sum+=r.sum,a.sumSq+=r.varP*i+r.sum*r.sum/i,(a.min===void 0||r.min<a.min)&&(a.min=r.min),(a.max===void 0||r.max>a.max)&&(a.max=r.max))}return t.r(a)}},fe=Object.freeze([]);function pe(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 me=class{constructor(e){this.isIExternalBook=!0,this._json=e}getIdentity(){return this._json.identity}getSheetNames(){return this._json.sheetNames}getDefinedNames(){return this._json.definedNames??[]}getSheetData(e){return this._json.sheetDataSet?.find(t=>t.sheetIndex===e)??null}toJSON(){return this._json}},he=class{constructor(e){this.isIExternalBookCollection=!0,this._items=(e?.json??[]).map(e=>e?new me(e):null)}[Symbol.iterator](){return this.getItems()[Symbol.iterator]()}getItems(){let e=[],t=this._items.length;for(let n=0;n<t;n++){let t=this._items[n];t&&e.push(t)}return e}getCount(){return this.getItems().length}getByIndex(e){return this._items[e-1]??null}toJSON(){return this._items.length===0?null:this._items.map(e=>e?.toJSON()??null)}},ge=class{constructor(e){this._closed=!1,this._options={...e};let n=this;this._transactions=this._options.transactions??new t.Dn({transient:!0}),this._stateId=this._transactions.create(),this._transactionsRemoveListener=this._transactions.addStateListener(this._stateId,{onAfterStateChange(e,t,r){n._emitter.notify(`onCollectionChange`)}}),this._emitter=new t.Tn(this,this._transactions),this._initState(e?.initial)}add(e,t,n){let r=this;t&&t.addListeners({onDelete:t=>{r._updateState(t=>{if(!t.modules[e])return;let n=t.modules[e];if(n){let i={...t};return r._options.onRemove?.(e,n),r._emitter.notify(`onCollectionChange`),delete i.modules[e],i}return t},(0,i.messageKey)(`op.deleteModule`))}},{once:!0});let a=this._getState()?.modules,o=a?.[e],s=n?.replace??!1;if(o&&!s)throw Error(`Already existing '${e}'`);let c={...a};t?(c[e]=t,r._options.onAdd?.(e,t),this._updateState({modules:c},s?(0,i.messageKey)(`op.saveScripts`):(0,i.messageKey)(`op.addScript`))):(delete c[e],r._options.onRemove?.(e,null),this._updateState({modules:c},(0,i.messageKey)(`op.removeScript`))),r._emitter.notify(`onCollectionChange`)}*[Symbol.iterator](){yield*this.getItems()}getItems(e){let t=this._getState();if(!t)return i.CommonUtils.EmptyArray;let n=t.modules,r=Object.keys(n),a=r.length;if(a===0)return i.CommonUtils.EmptyArray;let o=[],s=e?.name?e.name.toUpperCase():null;for(let e=0;e<a;e++){let t=r[e],i=n[t],a=!0;s&&s!==t.toUpperCase()&&(a=!1),a&&o.push(i)}return o??i.CommonUtils.EmptyArray}getByName(e){if(!e)return null;let t=this._getState();if(!t)return null;let n=e.toUpperCase(),r=t.modules,i=Object.keys(r),a=i.length;for(let e=0;e<a;e++){let t=i[e];if(n===t.toUpperCase())return r[t]}return null}getCount(){let e=this._getState();return e?Object.keys(e.modules).length:0}beginCommit(e){return this._beginCommit(e)}_getState(){if(this._closed)throw Error((0,i.t)(`error.model.modelClosed`));return this._transactions.getState(this._stateId)}_beginCommit(e){return this._transactions.beginCommit(typeof e==`string`?{description:e}:e)}_updateState(e,t=(0,i.messageKey)(`op.update`),n){if(!e)return;let r=this._beginCommit(t);try{r.updateState(this._stateId,e),r.commit(n)}catch(e){throw r.rollback(),e}}_initState(e){let t=e??{};this._updateState({modules:t},(0,i.messageKey)(`op.initialize`),{forceAmend:!0});let n=this._options.onAdd;if(n){let e=Object.keys(t),r=e.length;for(let i=0;i<r;i++){let r=e[i];n(r,t[r])}}}addListeners(e,t){return this._emitter.addListeners(e,t)}toJSON(){let e=this._getState();if(!e)return i.CommonUtils.EmptyArray;let t=e.modules,n=Object.keys(t),r=n.length,a={};for(let e=0;e<r;e++){let r=n[e];a[r]=t[r].toJSON()}return a}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify(`onClose`),this._closed=!0,this._transactionsRemoveListener?.())}get isFunctionCollection(){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
|
-
`)}`},ve=class{constructor(e){this._options=e,this._emitter=new t.wn(this),this._initState()}_initState(){}getModules(){return this._modules}_builtInNames(){try{let e=this._options.getBuiltInFunctions?.();if(!e)return i.CommonUtils.EmptyArray;let t=[];for(let n of e.getItems())n.isBuiltIn()&&t.push(n.getName());return t}catch{return i.CommonUtils.EmptyArray}}async createModule(e){let n=await(await import(`@sheetxl/scripting`)).ScriptCompiler.compile({builtInNames:this._builtInNames(),...e});return n.module?await t.Ut(`scripts`,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.Ut(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.Ut(`scripts`,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 i.CommonUtils.EmptyArray;let r=e?.limit,a=r===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 i.CommonUtils.EmptyArray;let c=e?.text?e.text.trim().toUpperCase():null;return c&&n.length>1&&t.Wt(o,c),r!==void 0&&o.length>r?o.slice(0,r):o}async getFunctionCategories(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let t=await this._searchable(e);if(t.length===0)return i.CommonUtils.EmptyArray;if(t.length===1)return t[0].getCategories(e);let n=e?.includeDeprecated??!1,r=new Map,a=e=>{let t=e.toUpperCase(),n=r.get(t);n?n.count++:r.set(t,{name:e,count:1})};for(let n of await t[0].getCategories(e))r.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(r.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,r={};if(n){let e=Object.keys(n);for(let a=0;a<e.length;a++){let o=e[a],s=n[o];try{r[o]=await t.Ut(o,s)}catch(e){i.Notifier.error(`Could not load script '${o}'; it will be unavailable.`,e)}}}let a=this,o=new ge({transactions:this._options?.transactions,initial:r,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(i.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){i.Notifier.error(`Error executing autoRun script:`,e)}}}addListeners(e,t){return this._emitter.addListeners(e,t)}isReadOnly(){return!1===this._options.workbook?.getProtection().isStructureAllowed()}toJSON(){this._emitter.notify(`onBeforeSave`);let e=this._modules;if(!e)throw Error(`Scripts is initializing.`);return e.toJSON()}},ye=class{constructor(e,n,r,a){this._mergedReading=[],this._colsReading=[],this._rowsReading=[],this._styles=r,this._topLeft=n??i.CoordUtils.EmptyCell,this._sheet=new t.l({runtime:e,styles:this._styles,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.At(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.Dt(a.textDecoration);i.font.underline=s.underline,i.font.strike=s.strike,a.textUnderlineStyle&&(i.font.underline=t.Ot(a.textUnderlineStyle)),i.alignment={},a?.textAlign&&(i.alignment.horizontal=t.Et(a.textAlign)),a?.textAlign&&!i.alignment.horizontal&&a?.textAlign!==`general`&&(a.textAlign===`center-across`?i.alignment.horizontal=t.Sn.HorizontalAlignment.CenterContinuous:a.textAlign===`fill`?i.alignment.horizontal=t.Sn.HorizontalAlignment.Fill:a.textAlign===`121`||a.textAlign===`010`?(i.alignment.horizontal=t.Sn.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.rn.VerticalAlignment.Super:a.verticalAlign.toLowerCase()===`sup`?i.font.verticalAlign=t.rn.VerticalAlignment.Sub:i.alignment.vertical=t.kt(a.verticalAlign),i.alignment.vertical||(a.verticalAlign===`121`?i.alignment.vertical=t.Sn.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.Sn.Overflow.Visible:t.Sn.Overflow.Wrap),a.msoTextControl===`shrinktofit`&&(i.alignment.overflow=t.Sn.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.Mt(a.msoPattern);e&&(e.patternType===t.zt.BuiltInSheetPattern.Solid?i.fill={color:e.foreground}:e.patternType!==t.zt.BuiltInSheetPattern.None&&(c&&(e.background=c),i.fill=e))}a.msoRotate!==void 0&&(i.alignment.rotation=t.Tt(a.msoRotate));let l=(e,t)=>{e&&(i.border||={},i.border[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.Nt(a.msoNumberFormat),u.includes(`\\`)?u=null:u===`Fixed`?u=t.en.Styles.lookupStyle(i.numberFormat).formatType===t.en.Type.Number?null:t.en.Type.Number:u===`Percent`&&(u=t.en.Styles.lookupStyle(i.numberFormat).formatType===t.en.Type.Percentage?null:t.en.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,r,a,o){let s=a(o),c={value:n===void 0?r??``: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.rn.VerticalAlignment.Sub),o.querySelectorAll(`sup`).length>0&&(n.verticalAlign=t.rn.VerticalAlignment.Super),(o.querySelectorAll(`b`).length>0||o.querySelectorAll(`strong`).length>0)&&(n.weight=700),o.querySelectorAll(`i`).length>0&&(n.style=t.rn.Style.Italic),o.querySelectorAll(`u`).length>0&&(n.underline=t.rn.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(!i.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),!i.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.jt(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.jt(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.rn.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.jt(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.rn.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}},L={showFormulaBar:!0,showTabs:!0,tabRatio:600,showHorizontalScrollbar:!0,showVerticalScrollbar:!0,showStatusBar:!0,activeSheetId:0},R=class{constructor(e){this._emitter=new t.wn(this),this._state={...L},e?.json&&this._fromJSON(e?.json)}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!==L[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={...L,...this._state,...e},t&&this._emitter.notify(`onViewChange`)}get[Symbol.toStringTag](){return`[WorkbookView]`}toString(){let e=this.toJSON();return e?JSON.stringify(e):`DefaultWorkbookView`}},be=Object.freeze({structure:!1,windows:!1,revision:!1,password:null,revisionsPassword:null}),z=class extends t.Ct{isWindowsAllowed(){return this._isPropertyAllowed(`windows`)}isRevisionAllowed(){return this._isPropertyAllowed(`revision`)}isStructureAllowed(){return this._isPropertyAllowed(`structure`)}_fromJSON(e){this._properties=e}_toJSON(e){let t=this._properties;if(t){e={...e,...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]`}};function B(e){return(0,i.t)(`error.workbook.invalidSheetKey`,{key:e})}var xe=class{constructor(e,t){this._add=e,this._get=t}add(e){return this._add(e)}*[Symbol.iterator](){yield*this.getItems()}getItems(e){return this._get(e?.name,e?.visibility)}getByName(e){return this._get(e)?.[0]??null}getCount(){return this._get().length}},V=new RegExp(/[\\/\\*?:[\]]+/),Se=new RegExp(/\(((\d+)(?!.*\d))\)$/,`g`);function Ce(e){let t=(0,i.t)((0,i.messageKey)(`workbook.defaultSheetName`),{n:e+1});return t===`workbook.defaultSheetName`?`Sheet${e+1}`:t}function H(e,n){return{...t.s,getSheet:()=>null,toString:()=>t.Yt(e,n)}}function U(e,t=!1){if(!e)throw Error((0,i.t)(`error.workbook.sheetNameBlank`));if(V.test(e)){if(!t)throw Error(function(e){return e?(0,i.t)(`error.workbook.sheetNameInvalidCharsNamed`,{sheetName:e}):(0,i.t)(`error.workbook.sheetNameInvalidChars`)}(e));e=e.replace(V,``)}if(e.length===0)throw Error((0,i.t)(`error.workbook.sheetNameBlank`));let n=e.length;if(n>31){if(!t)throw Error((0,i.t)(`error.workbook.sheetNameTooLong`));e=e.substring(0,31)}if(e.charAt(0)===`'`||e.charAt(n-1)===`'`){if(!t)throw Error((0,i.t)(`error.workbook.sheetNameQuotes`));e=e.replace(/^'|'$/g,``)}return e}var W,G,K=class e extends t.c{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.$t.Visibility.VeryHidden):null;if(!i){let e=this._workbook.getSelectedSheet();return delete r?.scope,H(r,r?{scope:t.qt,...e.getEntireRange().getCoords()}:null)}let a=this._options;return n&&(a={...this._options,getOptions:t.o(this._options.getOptions,n)}),new q(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.Jt(this.getCoords(),{...r,scope:n.getName()},t.Yt,t.Zt,e)}toString(){return this.getAddress()}},q=class e extends t.it{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 K(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.Yt(this.getCoords(),{...r,scope:n.getName()})}toString(){return this.getAddress()}},J=class{constructor(e){this._lastTransactionUUID=null,this._closed=!1,this._listenerOrigin=null,this._lastOriginName=null,this._initializing=!0,this._isDate1904=!1,this._locale=null,this._localeOverrides=null;let n=typeof e==`string`?{origin:e}:{...e},r=n.origin;this._origin=typeof r==`string`?new s(null,{name:r}):r??new s(null),delete n.origin,this._lastOriginName=this._origin.getName(),this._listenerOrigin=this._origin.addListeners({onChange:()=>{if(this._closed)return;let e=this._origin.getName();e!==this._lastOriginName&&(this._lastOriginName=e,this._emitter.notify(`onNameChange`))}});let a=n.json;delete n.json,this._transactions=n.transactions??new t.En,this._id=this._transactions.create(),this._ownTransactions=!n.transactions,this._emitter=new t.wn(this,this._transactions),this._runtime=n.runtime??new t.fn(`Workbook Runtime`,{isDate1904:()=>this._isDate1904,getLocale:()=>this._locale??t.mn()??t.pn(),getLocaleOverrides:()=>this._localeOverrides}),this._listenerLanguage=i.DefaultLanguagePackService.addChangeListener(()=>{this._locale!==null||this._closed||this._notifyAllChange()});let o=this,c=this._beginCommit({description:a?(0,i.messageKey)(`op.openWorkbook`):(0,i.messageKey)(`op.newWorkbook`)});try{this._strings=n.strings??new t.yt,this._ownStrings=!n.strings,this._externalBooks=new he({json:a?.externalBooks}),this._resources=n.resources??new t.bt,this._ownResources=!n.resources,this._createSheetName=n.createSheetNameCallback??Ce;let e=n.createSheetCallback;e||=e=>new t.l(e),this._sheetOnNameChange=new Map,this._sheetOnVisibilityChange=new Map,this._sheetOnIndexChange=new Map,this._createSheet=(n,r,i,a,s)=>{let c=null,l={runtime:o._runtime,readonly:o._options.readonly??!1,disableLoadAutoFit:o._options.disableLoadAutoFit??!1,formulaTransform:o._options.formulaTransform,opener:o._options.opener,transactions:o._transactions,styles:o._styles,strings:o._strings,resources:o._resources,names:o._names,workbook:o,calculation:o._calculation,resolveRange:e=>o._options.resolveRange?.(e)??o.getRange(e),container:{beforeFromJSON:e=>{c=e,o._addSheetRef({name:r,id:n,visibility:i??t.$t.Visibility.Visible,sheet:e},a)},getName:()=>{let e=o._getSheetRef(c);return e?e.name:r},setName:(e,t)=>{o._getSheetRef(c)&&o._setSheetName(c,e,t)},setNameChangeCallback:e=>{o._sheetOnNameChange.set(n,e)},getVisibility:()=>{let e=o._getSheetRef(c);return e?e.visibility:t.$t.Visibility.Visible},setVisibility:(e,t)=>{o._setSheetVisibility(c,e,t)},setVisibilityCallback:e=>{o._sheetOnVisibilityChange.set(n,e)},duplicate:()=>o._duplicateSheet(c),getIndex:()=>{let e=o._getSheetRef(c);return e?o._getOffsetForId(e.id,o._getSheetRefs(t.$t.Visibility.VeryHidden)):a},setIndex:(e,n)=>{let r=o._getSheetRef(c,t.$t.Visibility.VeryHidden);return!!r&&(o._moveSheet(r,e,n),!0)},setIndexCallback:e=>{o._sheetOnIndexChange.set(n,e)},requestSelect:async()=>(o._setSelectedSheet(c),await this._emitter.notify(`onRequestSelect`,{source:o,params:c,async:!0}),o.getSelectedSheet()===c)}};return s&&(l.json=s),c=e(l,r,a,i),c},this._namedTableSource=new t._t({getSheets:()=>o._sheets?o.getSheets().getItems():i.CommonUtils.EmptyArray,addSheetsListener:(e,t)=>o.addListeners({onSheetsChange:e},t)}),this._names=n.names??new t.dt({addressToRanges:e=>o.getRanges(e),getCurrentScope:()=>o.getSelectedSheet().getName(),isReadOnly:()=>o._options.readonly??!1,transactions:o._transactions,getSources:()=>o._calculation?[o._calculation.getNamedFormulas(),o._namedTableSource]:i.CommonUtils.EmptyArray}),this._ownNames=!n.names,this._calculation=n.calculation??new t.d({runtime:o._runtime,functions:n.functions,getActiveCell:()=>{let e=o.getSelectedSheet(),t=e?.getSelectedRange()?.getCoords();return t?{rowIndex:t.rowStart,colIndex:t.colStart,scope:e.getId()}:null},getRange:o.getRange.bind(o),getRanges:o.getRanges.bind(o),createGraphRanges:(e,t)=>o._createGraphRanges(e,t),getSheetIndex:e=>{if(e===void 0){let e=o.getSelectedSheet();return e?this._getSheetRefs(t.$t.Visibility.VeryHidden).findIndex(t=>t.sheet===e):-1}let n=this._getSheetRefs(t.$t.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{Y.address=e;let n=this._names.getItems(Y);if(!n||n.length===0)return-1;let r=n[0].getRanges?.()?.getCoords()?.[0]?.scope;if(!r)return-1;let i=this._getSheetRefs(t.$t.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:()=>o.getSheets().getItems({visibility:t.$t.Visibility.VeryHidden}).length,getSheetById:e=>{let n=o.getSheets().getItems({visibility:t.$t.Visibility.VeryHidden}),r=n.length;for(let t=0;t<r;t++)if(n[t].getId()===e)return n[t];return null},getSheetByName:e=>{try{return o.getSheets().getByName(e)??null}catch{return null}},namedCollection:o._names,strings:o._strings,transactions:o._transactions,names:a?.names,formulaTransform:n.formulaTransform}),this._ownCalculation=!n.calculation,this._scripts=this._createScripts(),this._ownNames=!n.names,this._options=Object.freeze({...n});let r=async()=>{this._ownCalculation&&await this._calculation.start(),await this._scripts.start(),this._starting=null};this._starting=r(),this._starting?.catch(()=>{}),a?this._fromJSON(a):(this._initState(),this._addSheet(!1)),this._sheets=new xe(e=>o._addSheetOptions(e),(e,t)=>{if(e){let n=this._getSheetRef(e,t);return n?[n.sheet]:i.CommonUtils.EmptyArray}return this._getSheets(t)}),this._ownCalculation&&this._calculation.hydrateNames(),this._emitter.notify(`onLoad`),c.commit({forceAmend:this._ownTransactions})}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.It().getDefaultTheme(),this._styles=n?.styles??new t.wt(this._theme),this._ownStyles=!n.styles,this._styles.getTheme()||this._styles.setTheme(this.getTheme()),this._activeSheetOffset=0,this.setView(new R),this._listenerProtection?.(),this._protection=new z(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){if(t&&t.activeSheetId!==void 0&&t.view===r.getView()&&n.getId()===r._lastTransactionUUID&&await r._getSheetRef({id:t.activeSheetId})?.sheet.select(),t&&n.getId()!==r._lastTransactionUUID){let n=r.getView().getActiveSheetId();t.view===r.getView()&&(n=t.activeSheetId);let i=0;try{i=r._getOffsetForId(n,e.sheetRefsVisible)}catch{}r._adjustRemoveSelectionIfRequired(i,n)}r._lastTransactionUUID=n.getId(),r._notifyAllChange()},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._origin}getView(){return this._view}setView(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!e)throw new i.ExpectedError((0,i.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,i.t)(`error.workbook.modelClosed`));return this._isDate1904=e,this._notifyAllChange(),this}getLocale(){return this._runtime.getLocale()}getPinnedLocale(){return this._locale}setLocale(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(e)try{new Intl.Locale(e)}catch{throw Error((0,i.t)(`error.workbook.invalidLocale`,{locale:e}))}return this._locale===e||(this._locale=e,this._notifyAllChange()),this}getLocaleOverrides(){return this._localeOverrides}setLocaleOverrides(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let t=e&&Object.keys(e).length>0?e:null;return this._localeOverrides=t,this._notifyAllChange(),this}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}getExternalBooks(){return this._externalBooks}getTheme(){return this._theme}setTheme(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!e)throw new i.ExpectedError((0,i.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.$t.Visibility.Visible){if(e===void 0)return this.getSelectedSheet();if(!e)throw Error((0,i.t)(`error.workbook.sheetNameNotProvided`));let r=this._getSheetRef(e,n);if(!r)throw new i.OutOfBoundsError((a=e,(0,i.t)(`error.workbook.sheetNameNotFound`,{sheetName:a})));var a;return r.sheet}getSheetAt(e,n=t.$t.Visibility.Visible){let r=this._getSheetRef(e,n);if(!r)throw new i.OutOfBoundsError(function(e){return(0,i.t)(`error.workbook.sheetIndexNotFound`,{index:e})}(e));return r.sheet}getSheets(){return this._sheets}addSheet(e){return this.getSheets().add(e)}_getSheets(e=t.$t.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.$t.Visibility.Visible){let n=this._getState();return n?e===t.$t.Visibility.Visible?n.sheetRefsVisible:e===t.$t.Visibility.Hidden?n.sheetRefsVisibleAndHidden:e===t.$t.Visibility.VeryHidden?n.sheetRefsAll:i.CommonUtils.EmptyArray:[]}_getSheetRef(e,n=t.$t.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.l?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(U(e),t&&this._getState().sheetsByLowerCaseName.has(e.toLowerCase()))throw new i.ExpectedError((0,i.t)(`error.workbook.nameTaken`));return e.substring(0,31)}findValidSheetName(e){e&&=U(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!V.test(e)}_addSheetOptions(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.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,i.messageKey)(`op.addSheet`)};let r=this.beginCommit(t);try{let e=t?.autoSelect??!1;n=this._addSheet(!0,t.name,t.index??null);let a=this.getView().getActiveSheetId(),o,s;if(!1!==e){let t=this.getView().getActiveSheetId();t=this._getSheetRef(n).id,e&&(o={view:this.getView(),activeSheetId:a},s={view:this.getView(),activeSheetId:t})}if(r.commit({description:(0,i.t)(`op.addSheetNamed`,{name:n.getName()}),viewBefore:o,viewAfter:s}),!1!==e){let t=typeof e==`boolean`?void 0:e;n.select(t)}}catch(e){throw r.rollback(),e}return n}_nextSheetName(e=null){let t=e?e.toLowerCase():null,n=this._getState(),r=n.sheetsByLowerCaseName;if(e&&r.has(t))throw new i.ExpectedError(function(e){return(0,i.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();r.has(n)?a++:e=t}return this._updateState({lastId:a}),e}_addSheet(e,n=null,r=null){n=this._nextSheetName(n);let a=this._getState(),o=this._createSheet(a.lastId,n,t.$t.Visibility.Visible,r,null);if(!o)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetNameBlank`));return e&&this._emitter.notify(`onSheetsChange`),o}_updateSheetRefStates(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this._initializing&&!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let n=e,r=[],a=[],o=n.length;for(let e=0;e<o;e++)n[e].visibility===t.$t.Visibility.Visible?(r.push(n[e]),a.push(n[e])):n[e].visibility===t.$t.Visibility.Hidden&&a.push(n[e]);this._updateState({sheetRefsAll:n,sheetRefsVisible:r,sheetRefsVisibleAndHidden:a})}_addSheetRef(e,n=null){let r=this._getState(),a=r.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(r.refsById);u.set(e.id,e);let d=new Map(r.refsByLowerCaseName);d.set(l,e);let f=new Map(r.refsByInstance);f.set(c,e);let p=new Map(r.sheetsById);p.set(e.id,c);let m=new Map(r.sheetsByLowerCaseName);m.set(l,c);let h=this,g=r.listenersSheets;if(c!==void 0){let n=c.addListeners({onBeforeDelete:e=>{h._validateDeleteSheet(e)},onDelete(e){let n=h._getSheetRef(e,t.$t.Visibility.VeryHidden);if(!n)return;let r=h._beginCommit({description:(0,i.t)(`op.deleteSheet`,{name:n.name})});try{let t=h._getState(),i=t.sheetRefsAll,a=h._getOffsetForId(n.id,i),o=[...i];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}),r.commit()}catch(e){throw r.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(r.listenersSheets),g.set(e.id,()=>{n(),a()})}let _=r.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}_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.$t.Visibility.Visible&&(this._activeSheetOffset=this._getOffsetForId(r,e.sheetRefsVisible))}_validateDeleteSheet(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let t=this._getSheetRef(e);if(!t)throw new i.ExpectedError(function(e){return(0,i.t)(`error.workbook.deleteKey`,{key:e})}(e));let n=this._getState().sheetRefsVisible;if(n.length===1&&n[0].id===t.id)throw new i.ExpectedError((0,i.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 i.ExpectedError((0,i.t)(`error.workbook.noVisibleRefs`))}find(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheets();if(n.length===1)return n[0].find(e);typeof e==`string`&&(e={text:e});let r=!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=i.CoordUtils.createCellComparator(e?.axis,e?.reverse);delete(e={...e}).from;let h=()=>{if(!p&&f.done&&(l&&s===o?p=!0:r?(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.dn,e}let i=f;return f=d.next(),i};return{next:()=>{let e=h();for(;!p&&e.done;)e=h();return e}}}replace(e,n,r){let a=0,o=null,s=typeof n==`function`,c=r?.maxCount??2**53-1,l=!r?.maxCount,u=``,d=typeof n==`string`?t.yn(n):null,f=r?.description??(0,i.messageKey)(`op.replace`),p=this._transactions.beginCommit({description:f});try{let t=null,f=null,m=e.next();for(;!m.done&&a<c;){let i=m.value,c=i.getSheet();c!==t&&(t=c,f!==null&&f.apply(),f=t.getEntireRange().createSparseBuilder({axis:r?.axis,allowUnorderedWrites:!0}));let l=s?n(i):n;l!==void 0&&l!==i&&(f.push(i,l),a++,o=i),m=e.next()}f?.apply(),a===1&&c===1&&o&&(u=o.getAddress()),a===0?p.rollback():p.commit({description:r?.description??(l?d===null?(0,i.messageKey)(`op.replaceAll`):(0,i.t)(`op.replaceAllWith`,{value:d}):u?d===null?(0,i.t)(`op.replaceAt`,{address:u}):(0,i.t)(`op.replaceAtWith`,{address:u,value:d}):d===null?(0,i.messageKey)(`op.replace`):(0,i.t)(`op.replaceWith`,{value:d})),viewAfter:{selection:null}})}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,i.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._nextSheetIndex(e,t)]?.sheet??null}getPreviousSheet(e){if(this._closed)throw Error((0,i.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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let t=this._getSheetRefs(),n=this.getSelectedSheetIndex(),r=null;if(e){if(r=this._getSheetRef(e),!r)throw new i.ExpectedError(B(r))}else r=t[n];if(!r)return null;let a=r.sheet,o=this._strings.beginPersist(),s=this.getResources().beginPersist(),c=this.getStyles().beginPersist(),l=null,u=this.beginCommit((0,i.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,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 r=e?{...e}:null,a=r?this._getSheetRef(r.scope,t.$t.Visibility.VeryHidden):null;if(!a){let e=this.getSelectedSheet();return e?(delete r?.scope,H(r,r?{scope:t.qt,...e.getEntireRange().getCoords()}:null)):void console.warn((0,i.t)(`error.workbook.noVisibleRefs`))}let o=a.sheet,s=null;return n&&(s={getOptions:n}),new q(e,t.a(o),this,s)}_createRanges(e,n){let r=this.getSelectedSheet(),i=null;return n&&(i={getOptions:n}),new K(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 i.ExpectedError((0,i.t)(`error.address.singleRangeOnlyAlt`));return this._createRange(t[0],n)}catch(n){throw n instanceof i.OutOfBoundsError?new i.OutOfBoundsError(n.message):new i.ExpectedError(n.message??t.St(e))}}getCell(e){if(e===void 0)return this.getSelectedCell();let t=this.getRange(e);if(t.size>1)throw new i.ExpectedError((0,i.t)(`error.address.singleCellOnly`));return t.getCell()}getRanges(e,n){let r=this._rangesAddressToCoords(e);if(r.length===0)throw new i.ExpectedError(t.St(e));return this._createRanges(r,n)}_createGraphRanges(e,n){let r=[];for(let e=0;e<n.length;e++){let i=n[e],a=(i.sheetName?this._getSheetRef(i.sheetName,t.$t.Visibility.VeryHidden):null)?.sheet??this.getSelectedSheet();a&&r.push(new t.rt(i,t.a(a),null))}for(let t=0;t<e.length;t++)r.push(e[t]);return r.length===0?null:new K(r,t.a(this.getSelectedSheet()),this,null)}getStats(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheets(t.$t.Visibility.VeryHidden),r=n.length;if(r===1)return n[0].getStats(e);let a=Array(r);for(let t=0;t<r;t++)a[t]=n[t].getStats(e);return new de(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,r=t.$t.Visibility.Hidden){if(!e)throw new i.ExpectedError((0,i.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.Xt(e,o,t.Qt,e=>{if(!n)return null;if(typeof e==`string`){let t=c.getNames().getByName(e)?.getRanges?.();if(t)return t.getCoords()}throw new i.ExpectedError(`Invalid sheet reference '${e}'.`)}),u=l.length;for(let e=0;e<u;e++)this._validateCoords(l[e],r);return l}_validateCoords(e,n=t.$t.Visibility.Visible,r=(0,i.t)(`error.sheet.oobRange`)){if(e===null)return;let a=this.getSheet(e.scope,n).getEntireRange().getCoords();if(!i.CoordUtils.isRangeWithinRange(e,a))throw new i.OutOfBoundsError(r);if(e.rowEnd<e.rowStart||e.colEnd<e.colStart)throw new i.ExpectedError((0,i.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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let r=this._getSheetRef(e);if(!r)throw new i.ExpectedError(B(e));if(t===r.name)return r.sheet;if((t=this._validateNewSheetName(t))==null)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetNameNotProvided`));let a=Object.freeze({...r,name:t}),o=null,s=this.beginCommit((0,i.messageKey)(`op.renameSheet`));try{let e=this._updateSheetRef(r,a);this._adjustSheetNamesIfRequired(),this._sheetOnNameChange.forEach((e,t)=>{r.id===t&&e()}),this._emitter.notify(`onSheetsChange`),r.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.$t.Visibility.Visible,r){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let a=this._getSheetRef(e,t.$t.Visibility.VeryHidden);if(!a)return null;if(n===a.visibility)return;let o=null,s=``;n===t.$t.Visibility.Visible?s=(0,i.messageKey)(`op.unhideSheet`):n===t.$t.Visibility.Hidden?s=(0,i.messageKey)(`op.hideSheet`):n===t.$t.Visibility.VeryHidden&&(s=(0,i.messageKey)(`op.veryHideSheet`));let c=this.beginCommit(s);try{let e=this._getState().sheetRefsVisible;if(n!==t.$t.Visibility.Visible&&e.length===1&&e[0].id===a.id)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetOne`));let s={...a,visibility:n},l=-1;n!==t.$t.Visibility.Visible&&(l=this._getOffsetForId(a.id,e)),o=this._updateSheetRef(a,s).sheet,n!==t.$t.Visibility.Visible&&this._adjustRemoveSelectionIfRequired(l,a.id),this._adjustSheetNamesIfRequired(),c.commit(r)}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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let r=null,a=this.beginCommit((0,i.t)(`op.moveSheetNamed`,{name:e.name}));try{let o=this._getState(),s=o.sheetRefsVisible;if(t<0||t>s.length-1)throw new i.ExpectedError(`Invalid to index: ${t}`);let c={view:this.getView(),activeSheetId: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._adjustSheetNamesIfRequired(),this._sheetOnIndexChange.forEach((e,t)=>{t>=u&&t<=d&&e()}),this._emitter.notify(`onSheetsChange`),r=f.sheet,a.commit({...n,viewBefore:c,viewAfter:{view:this.getView(),activeSheetId:this.getView().getActiveSheetId()}})}catch(e){throw a.rollback(),e}return r}_setSelectedSheet(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheetRef(e);if(!n)throw new i.ExpectedError(B(e));let r=null;return n.visibility!==t.$t.Visibility.Visible&&this._setSheetVisibility(n,t.$t.Visibility.Visible),this._view.setActiveSheetId(n.id),r=n.sheet,r}getProtection(){return this._protection}getNames(){return this._names}getCalculation(){return this._calculation}createFormula(e,t){return this.getCalculation().createFormula(e,t)}evaluate(e,t){return this.getCalculation().evaluate(e,t)}whenCalculationReady(){return this.getCalculation().ready()}getScripts(){return this._scripts||=this._createScripts(),this._scripts}_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.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 i.ExpectedError((0,i.t)(`error.workbook.sheetOne`));e.theme&&(this._theme=new t.Ft(e.theme),this._styles.setTheme(this._theme));let n=this._strings.beginPersist(),r=this._resources.beginPersist(),a=this._styles.beginPersist();try{n.fromJSON(e.strings),r.fromJSON(e.resources),a.fromJSON(e.styles),e.date1904&&(this._isDate1904=!0),e.locale&&(this._locale=e.locale),e.localeOverrides&&(this._localeOverrides=e.localeOverrides),e.view||={};let i=e.sheets,o=i.length,s=e.view.activeSheetId??null;s!==null&&(s=Math.min(Math.max(0,s),o-1));let c=null,l=null,u=-1;for(let e=0;e<o;e++){let n=i[e],r=n.visibility||t.$t.Visibility.Visible,a=e;l=a,r===t.$t.Visibility.Visible?(u++,c===null&&(c=a)):s!==null&&s===a&&(s=null),this._createSheet(a,n.name,r,u,n.sheet)}this._updateState({lastId:l}),e.view.activeSheetId=s??c,this.setView(new R({json:e.view})),this._adjustSheetNamesIfRequired(),this._listenerProtection?.();let d=this;this._protection=new z(e?.protection,this._options?.readonly),this._listenerProtection=this._protection.addListeners({onChange:e=>{d._emitter.notify(`onProtectionChange`,{source:e})}}),e.scripts&&(this._scripts=this._createScripts(e.scripts)),this._emitter.notify(`onLoad`)}finally{a.endPersist(),r.endPersist(),n.endPersist()}}_createScripts(e){let n=this;return new ve({transactions:this._transactions,json:e,workbook:n,getBuiltInFunctions:()=>n._calculation?.getFunctions(),onAdd:(e,r)=>{let a=n._calculation;a.getStatus()!==t.nt.Status.Off&&a.start().then(async()=>{let e=r.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){i.Notifier.error(e?.message??String(e),e)}}}).catch(()=>{})},onRemove:(e,t)=>{}})}async toJSON(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));await Promise.resolve(this._starting),await this._emitter.notify(`onBeforeSave`,{async:!0});let n={sheets:[]},r=e?.ignoreStyles??!1;if(!r){let e=this._theme.toJSON();(e?Object.keys(e).length:0)>0&&(n.theme=e)}if(this._scripts){let e=this._scripts.toJSON();e&&Object.keys(e).length>0&&(n.scripts=e)}this._isDate1904&&(n.date1904=!0),this._locale&&(n.locale=this._locale),this._localeOverrides&&(n.localeOverrides=this._localeOverrides);let a=e?.ignoreResources??!1,o=this._strings.beginPersist(),s=a?null:this._resources.beginPersist(),c=this._styles.beginPersist();try{let i=this._getSheetRef(this.getSelectedSheetIndex()).id,l=i,u=null,d=this._getState(),f=d.sheetRefsAll,p=d.sheetsById,m=f.length;for(let r=0;r<m;r++){let a=f[r],o=r+1,s=await p.get(a.id).toJSON(e),c={name:a.name,sheet:s};a.visibility===t.$t.Visibility.Visible?u===null&&(u=o):c.visibility=a.visibility,a.id===i&&(l=o),n.sheets.push(c)}if(!r){let e=c.toJSON();e&&Object.keys(e).length>0&&(n.styles=e)}let h=this.getProtection().toJSON();h&&(n.protection=h);let g=await o.toJSONAsync();g&&g.length>0&&(n.strings=g);let _=this._externalBooks.toJSON();if(_&&(n.externalBooks=_),!a){let e=await s.toJSONAsync();e&&e.length>0&&(n.resources=e)}let v=this._calculation.getNamedFormulas().toJSON();v&&v.length>0&&(n.names=v);let y=this._view.toJSON();y&&(l===u?delete y.activeSheetId:y.activeSheetId=l,Object.keys(y).length>0&&(n.view=y))}finally{c.endPersist(),a||s.endPersist(),o.endPersist()}return this._emitter.notify(`onSave`,{params:n}),n}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._closed=!0}beginCommit(e){if(this._closed)throw Error((0,i.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,i.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,i.messageKey)(`op.updateWorkbook`),n){if(!e)return;let r=this._beginCommit(t);try{r.updateState(this._id,e),r.commit(n)}catch(e){throw r.rollback(),e}}get options(){return this._options}get[Symbol.toStringTag](){return`[Workbook]`}toString(){return`[${this.getName()??`(untitled)`}]`}get isIWorkbook(){return!0}},Y={address:null},we=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})}},X=e=>!!e&&typeof e==`object`&&typeof e.getPath==`function`&&typeof e.canWrite==`function`,Z=class{constructor(){this._setInstalled=new WeakSet,this._backingStore=null,this._emitter=new t.wn(this),this._registry=new we,this._defaultStore=new l(()=>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 s(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).`);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,r=null){let i=t.format,a=t.ext;if(!i&&!a)throw Error(`Either format or file extension must be provided to determine read type.`);let o=(await this._registry.getReadFormats({search:i,ext:a}))[0];if(!o)throw Error(`No read format available for '${i??a}' input.`);let c=n?.typedCreateWorkbookOptions,l=c?Object.keys(c).find(e=>e.toLowerCase()===o.key.toLowerCase()):void 0,u={...n,...l===void 0?void 0:c[l]};delete u.typedCreateWorkbookOptions,delete u.source;let d=r??new s(t.absolutePath??null,{name:t.name??null,format:o.key,size:t.size??null,canWrite:t.canWrite??!1});r instanceof s&&r.update({format:o.key,size:t.size??null}),u.createWorkbookOptions={...u.createWorkbookOptions||{},origin:d},u.readonly!==void 0&&(u.createWorkbookOptions={readonly:u.readonly,...u.createWorkbookOptions},delete u.readonly),u.calcOnly&&(u.createWorkbookOptions={disableLoadAutoFit:!0,...u.createWorkbookOptions});let f=await this._decrypt(e,d,u);if(f===null)return null;e=f.bytes;let p=u?.progress?.onStart?.bind(u.progress);p&&await Promise.resolve(p(d,t.size));try{let t=await this._readArrayBuffer(e,o,u);return f.password!==null&&d.setPassword(f.password),u?.progress?.onComplete?.(d),this._emitter.notify(`onRead`,{params:{workbook:t,origin:d},transactional:!1}),t}catch(e){throw u?.progress?.onError?.(e),u?.progress?.onComplete?.(null),e}}async _decrypt(e,t,n){let r=await this._registry.detectEncryption(e);if(t instanceof s&&t.update({encryption:r?r.key:null}),!r)return{bytes:e,password:null};let a=null,o=async t=>{try{return a=await r.decode(e,t),!0}catch(e){if(!(e instanceof i.InvalidPasswordError))throw e;return!1}};if(n?.password&&await o(n.password))return{bytes:a,password:n.password};if(!n?.onPassword)throw new i.PasswordRequiredError(`'${t.getName()??`This file`}' is encrypted. Supply options.password or options.onPassword to open it.`);let c=await Promise.resolve(n.onPassword({origin:t,encryption:r.key,validate:o}));if(c==null)return null;if(a!==null||await o(c))return{bytes:a,password:c};throw new i.InvalidPasswordError}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 Error(`No write format available for '${t.format}'.`);return this._writeArrayBuffer(e,n,t)}async write(e,n,r){if(!e)throw Error(`Workbook must be provided.`);if(!e.isIWorkbook)throw Error(`Invalid workbook model provided. Must be an instance of IWorkbook.`);let a=r,o=null;typeof n==`string`?o=this.getOrigin(n):X(n)?o=n:n&&(a=n);let c=!o,l=o??e.getOrigin(),u=l.getFormat(),d;if((a?.format||u)&&(d=(await this._registry.getWriteFormats({search:a?.format??u??void 0}))[0]),d||l.getPath()&&l.canWrite()&&l.getExtension()||(d=(await this._registry.getWriteFormats({ext:`sxl`}))[0]??(await this._registry.getWriteFormats())[0]),!d)throw Error(`Unable to determine a write format. Specify options.format, or a destination with a known extension.`);if(o&&typeof n==`string`){let e=o.getPath();e&&!t.xn(e)&&o.update?.({path:`${e}.${d.exts[0]}`})}let f=l.getEncryption(),p=e.getOrigin?.(),m=(l instanceof s?l.getPassword():null)??(p instanceof s?p.getPassword():null),h=l.isEncrypted()||(p?.isEncrypted()??!1),g=a?.password===void 0?m??(h?void 0:null):a.password,_=null;if(g===void 0){if(h)throw new i.PasswordRequiredError(`'${l.getName()??`This file`}' is encrypted. Supply options.password to re-encrypt it, or options.password = null to write it without a password.`)}else if(g!==null&&(_=await this._registry.getEncryption(f),!_))throw Error(`No encryption support is installed, so this workbook cannot be password protected.`);let v=`${l.getName()??`workbook`}.${d.exts[0]}`,y=a?.progress,b=!1,x=this,S=null,C={workbook:e,format:d,origin:l,suggestedName:v,prompt:a?.prompt,async encode(t){await(async()=>{b||(b=!0,y?.onStart&&await Promise.resolve(y.onStart(l)))})(),S=e.getTransactions?.()?.getCurrentCommit()??S;let n=t?(await x._registry.getWriteFormats({search:t}))[0]??d:d,r=await x._writeArrayBuffer(e,n,a);return _?_.encode(r,g):r}},w=null;try{let t=this.getBackingStore();if(!t.write)throw Error(`The active backing store is read-only (no write implementation).`);if(w=await t.write(C),w){g!==void 0&&w instanceof s&&(w.setPassword(g),w.update({encryption:_?_.key:null}));let t=S??e.getTransactions?.()?.getCurrentCommit()??null;this._emitter.notify(`onWrite`,{params:{workbook:e,origin:w,commitId:t?.getId()??null,save:c},transactional:!1})}y?.onComplete&&await Promise.resolve(y.onComplete(w))}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)),Error(`Unable to write workbook.`,{cause:e})}return w}async writeAs(e,n,r){if(!n)throw Error(`A target must be provided for writeAs (use write(workbook) for a plain save).`);let i=e?.getOrigin?.();if(!(i instanceof s))return this.write(e,n,r);let a=typeof n==`string`?n:n.getPath(),o=a&&t.xn(a)?.toLowerCase()||null,c=o?(await this._registry.getWriteFormats({search:o}))[0]?.key??o:null,l={path:i.getPath(),name:i.getName(),format:i.getFormat(),canWrite:i.canWrite()};i.update({path:a,name:typeof n==`string`?null:n.getName(),format:c,canWrite:a!=null});let u=null;try{u=await this.write(e,void 0,r)}finally{u||i.update(l)}return u}_stripExtension(e){let n=t.xn(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(`Invalid write type for '${t}'.`);try{let r=t.handler;if(!r)throw Error(`Unable to resolve handler for type: ${t.description??t}.`);return r(e,{...n,format:t.key})}catch(e){throw Error(`Unable to load handler for '${t}.'`,{cause:e})}}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 J(n?.createWorkbookOptions);let r=t.handler;if(!r)throw Error(`Unable to resolve handler for format type: ${t?.description??t}.`);let i;try{i=await r(e,n)}catch(e){throw Error(`Unable to read ${t.description??t.key} — ${e?.message??String(e)}`,{cause:e})}return i}},Te=new Z,Q=`locales`,Ee=`fonts`,De=[{kind:Q,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:Ee,files:[`.woff2`,`.woff`,`.ttf`,`.otf`,`.ttc`].map(e=>({suffix:e,place:(e,t)=>t?`${t}/${e}`:e}))}];W||={},G||={};var $,Oe=e.n({nowWithPrecision:()=>ke});function ke(e=6e4){return new Date(Math.floor(Date.now()/e)*e)}$||={};var Ae=class extends t.ft{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=>null},super._initializeOptions(e)}};Object.defineProperty(exports,"AddressUtils",{enumerable:!0,get:function(){return t.ct}}),exports.ArrayBackingStore=class{constructor(){this._buffer=null,this._formatKey=null}get buffer(){return this._buffer}async write(e){let t=await e.encode();return this._buffer=t,this._formatKey=e.format.key,e.origin}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.f}}),exports.BUILD_DATE=`Mon Aug 24 2026`,exports.Color=t.Bt,Object.defineProperty(exports,"Condition",{enumerable:!0,get:function(){return t.pt}}),Object.defineProperty(exports,"DateUtils",{enumerable:!0,get:function(){return Oe}}),exports.DefaultWorkbookIO=Z,exports.ExternalRangeClipboardItem=class{constructor(e,t,n,r,a){if(this._parsed=void 0,this._runtime=e,!t)throw new i.NullNotAllowedError(`nativeItems are required.`);this._topLeft=n??i.CoordUtils.EmptyCell,this._native=t,this._markOptions=Object.freeze(r??{}),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,r=this._native.html;if(r===null&&n&&n.includes(`<table`))try{let e=new DOMParser().parseFromString(n,i.MimeType.Html),t=e.querySelector(`parsererror`);if(t)throw new i.ExpectedError(`Unable to parse: `+t);r=e,n=null}catch{console.warn(`Discovered text as html table but could could not parse.`)}try{let i=new ye(this._runtime,this._topLeft,this._styles,r?`HTML`:`Text`);await i.sheet().getCalculation().ready(),await i.sheet().getCalculation().stop();let a=await Promise.resolve(n?t.m(n):[[]]),o;if(t.p(r,a,i)?(e=i.sheet(),o=e.getUsedRange()):r=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&&!r&&this._native.image){let e=this;return this._parsed={async copyTo(t,n){let r=t.getSheet(),a=await e._native.image.arrayBuffer(),o=await r.getMovables().addPicture({source:{buffer:a}},{type:`picture`,description:(0,i.messageKey)(`op.copyImageFromClipboard`)});return r.getView().selectMovables([o]),null},getName:()=>`Image`},!0}return!1}get isClipboardItem(){return!0}},exports.FONTS_KIND=Ee,Object.defineProperty(exports,"FontUtils",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"GeomUtils",{enumerable:!0,get:function(){return t.h}}),Object.defineProperty(exports,"IAnchored",{enumerable:!0,get:function(){return t.vt}}),Object.defineProperty(exports,"IBorder",{enumerable:!0,get:function(){return t.nn}}),Object.defineProperty(exports,"ICalculation",{enumerable:!0,get:function(){return t.nt}}),Object.defineProperty(exports,"ICell",{enumerable:!0,get:function(){return t.ut}}),Object.defineProperty(exports,"ICellHeaderRange",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"ICellRange",{enumerable:!0,get:function(){return t.lt}}),Object.defineProperty(exports,"ICellRanges",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"IColor",{enumerable:!0,get:function(){return t.Ht}}),Object.defineProperty(exports,"ICondition",{enumerable:!0,get:function(){return t.gt}}),Object.defineProperty(exports,"IConditionalFormat",{enumerable:!0,get:function(){return t.st}}),Object.defineProperty(exports,"IDataValidation",{enumerable:!0,get:function(){return t.ot}}),Object.defineProperty(exports,"IEffect",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"IFill",{enumerable:!0,get:function(){return t.zt}}),Object.defineProperty(exports,"IFont",{enumerable:!0,get:function(){return t.rn}}),Object.defineProperty(exports,"IFontCollection",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"IMovable",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"IPicture",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"IPrint",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"IResource",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"ISheet",{enumerable:!0,get:function(){return t.$t}}),Object.defineProperty(exports,"ISheetView",{enumerable:!0,get:function(){return t.at}}),Object.defineProperty(exports,"ISort",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"IStroke",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"IStyle",{enumerable:!0,get:function(){return t.Rt}}),Object.defineProperty(exports,"ITableStyle",{enumerable:!0,get:function(){return t.Pt}}),Object.defineProperty(exports,"IText",{enumerable:!0,get:function(){return t.Cn}}),Object.defineProperty(exports,"ITextFrame",{enumerable:!0,get:function(){return t.Sn}}),Object.defineProperty(exports,"ITheme",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"IThemeCollection",{enumerable:!0,get:function(){return t.Lt}}),Object.defineProperty(exports,"IWorkbookIO",{enumerable:!0,get:function(){return a}}),exports.LOCALES_KIND=Q,exports.LicenseManager=t.Kt,Object.defineProperty(exports,"NumberFormat",{enumerable:!0,get:function(){return t.en}}),exports.RangeClipboardItem=class{constructor(e){if(!e)throw new i.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.Dn,exports.Resource=t.xt,exports.ResourceCollection=t.bt,exports.SHEETXL_RESOURCE_KINDS=De,exports.SYSTEM_COLOR_CSS_PREFIX=t.Vt,exports.Sheet=t.l,exports.SimpleFontFace=p,Object.defineProperty(exports,"Sort",{enumerable:!0,get:function(){return t.tn}}),exports.StringCollection=t.yt,exports.StyleCollection=t.wt,exports.Table=Ae,Object.defineProperty(exports,"TextRotation",{enumerable:!0,get:function(){return t._n}}),Object.defineProperty(exports,"TextUtils",{enumerable:!0,get:function(){return t.vn}}),exports.Theme=t.Ft,exports.ThemeCollection=t.It,exports.TransactionConflictError=t.Tn,exports.TransactionSaveStateManager=class{constructor(e,n){this._dirty=!1,this._store=e,this._savedCommitId=e.getCurrentCommit()?.getId()??null,this._emitter=new t.wn(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.En,exports.TransactionUndoManager=o,Object.defineProperty(exports,"Tuple",{enumerable:!0,get:function(){return t.un}}),exports.VERSION=`0.7.28-beta.2`,exports.Workbook=J,exports.WorkbookIO=Te,exports.WorkbookOrigin=s,exports.WorkbookView=R,exports.builtInStyleNameDisplay=function(e){let t=ne[e];if(t)return{key:t};let n=oe.exec(e);return n?{key:re,params:{n:+n[1]}}:(n=se.exec(e),n?{key:ie,params:{n:+n[1]}}:(n=ce.exec(e),n?{key:ae,params:{pct:+n[1],n:+n[2]}}:null))},exports.createCellRangeCounts=t.u,exports.getBuiltInFunctionNames=function(){if(!P){let e=Promise.resolve().then(()=>require("./BG7YDVxiC4ErxvF1.cjs")).then(({initializeFunctions:e})=>{let t=e(()=>null);return Object.freeze(Array.from(t.keys()))});e.catch(()=>{P=null}),P=e}return P},exports.getLanguagePack=t.an,exports.getLocaleProfile=t.hn,exports.localizeBoolean=t.on,exports.localizeErrorLabel=t.sn,exports.makeLocaleProfile=t.gn,exports.parseBooleanLocal=t.cn,exports.parseErrorLocal=t.ln,exports.parseFormulaLiteral=function(e){let r=e.trim();if(!r)return;let i;try{let e=n.t.shared().tokenize(r,!1);if(e.errors.length>0)return;i=e.tokens}catch{return}let a=0,o=0;if(i.length===2){let e=i[0].tokenType?.name;e===`MinOp`?(a=-1,o=1):e===`PlusOp`&&(a=1,o=1)}if(i.length-o!==1)return;let s=i[o],c=s.image;try{switch(s.tokenType?.name){case`NumberToken`:case`ScientificDigit`:case`DigitToken`:{let e=t.H(c).value;return a===0?e:a*e}case`StringToken`:return a===0?t.J(c).value:void 0;case`BooleanToken`:return a===0?t.j(c).value:void 0;case`LiteralError`:case`RefError`:return a===0?t.z(c).value:void 0;default:return}}catch{return}},exports.registerSdkLocales=t.in,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]}})}),Object.keys(i).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return i[e]}})});
|
|
3
|
+
`)}`},ve=class{constructor(e){this._options=e,this._emitter=new t.Tn(this),this._initState()}_initState(){}getModules(){return this._modules}_builtInNames(){try{let e=this._options.getBuiltInFunctions?.();if(!e)return i.CommonUtils.EmptyArray;let t=[];for(let n of e.getItems())n.isBuiltIn()&&t.push(n.getName());return t}catch{return i.CommonUtils.EmptyArray}}async createModule(e){let n=await(await import(`@sheetxl/scripting`)).ScriptCompiler.compile({builtInNames:this._builtInNames(),...e});return n.module?await t.Wt(`scripts`,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.Wt(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.Wt(`scripts`,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 i.CommonUtils.EmptyArray;let r=e?.limit,a=r===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 i.CommonUtils.EmptyArray;let c=e?.text?e.text.trim().toUpperCase():null;return c&&n.length>1&&t.Gt(o,c),r!==void 0&&o.length>r?o.slice(0,r):o}async getFunctionCategories(e){await this._emitter.notify(`onBeforeSearch`,{async:!0});let t=await this._searchable(e);if(t.length===0)return i.CommonUtils.EmptyArray;if(t.length===1)return t[0].getCategories(e);let n=e?.includeDeprecated??!1,r=new Map,a=e=>{let t=e.toUpperCase(),n=r.get(t);n?n.count++:r.set(t,{name:e,count:1})};for(let n of await t[0].getCategories(e))r.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(r.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,r={};if(n){let e=Object.keys(n);for(let a=0;a<e.length;a++){let o=e[a],s=n[o];try{r[o]=await t.Wt(o,s)}catch(e){i.Notifier.error(`Could not load script '${o}'; it will be unavailable.`,e)}}}let a=this,o=new ge({transactions:this._options?.transactions,initial:r,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(i.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){i.Notifier.error(`Error executing autoRun script:`,e)}}}addListeners(e,t){return this._emitter.addListeners(e,t)}isReadOnly(){return!1===this._options.workbook?.getProtection().isStructureAllowed()}toJSON(){this._emitter.notify(`onBeforeSave`);let e=this._modules;if(!e)throw Error(`Scripts is initializing.`);return e.toJSON()}},ye=class{constructor(e,n,r,a){this._mergedReading=[],this._colsReading=[],this._rowsReading=[],this._styles=r,this._topLeft=n??i.CoordUtils.EmptyCell,this._sheet=new t.l({runtime:e,styles:this._styles,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.jt(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.Ot(a.textDecoration);i.font.underline=s.underline,i.font.strike=s.strike,a.textUnderlineStyle&&(i.font.underline=t.kt(a.textUnderlineStyle)),i.alignment={},a?.textAlign&&(i.alignment.horizontal=t.Dt(a.textAlign)),a?.textAlign&&!i.alignment.horizontal&&a?.textAlign!==`general`&&(a.textAlign===`center-across`?i.alignment.horizontal=t.Cn.HorizontalAlignment.CenterContinuous:a.textAlign===`fill`?i.alignment.horizontal=t.Cn.HorizontalAlignment.Fill:a.textAlign===`121`||a.textAlign===`010`?(i.alignment.horizontal=t.Cn.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.in.VerticalAlignment.Super:a.verticalAlign.toLowerCase()===`sup`?i.font.verticalAlign=t.in.VerticalAlignment.Sub:i.alignment.vertical=t.At(a.verticalAlign),i.alignment.vertical||(a.verticalAlign===`121`?i.alignment.vertical=t.Cn.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.Cn.Overflow.Visible:t.Cn.Overflow.Wrap),a.msoTextControl===`shrinktofit`&&(i.alignment.overflow=t.Cn.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.Nt(a.msoPattern);e&&(e.patternType===t.Bt.BuiltInSheetPattern.Solid?i.fill={color:e.foreground}:e.patternType!==t.Bt.BuiltInSheetPattern.None&&(c&&(e.background=c),i.fill=e))}a.msoRotate!==void 0&&(i.alignment.rotation=t.Et(a.msoRotate));let l=(e,t)=>{e&&(i.border||={},i.border[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.Pt(a.msoNumberFormat),u.includes(`\\`)?u=null:u===`Fixed`?u=t.tn.Styles.lookupStyle(i.numberFormat).formatType===t.tn.Type.Number?null:t.tn.Type.Number:u===`Percent`&&(u=t.tn.Styles.lookupStyle(i.numberFormat).formatType===t.tn.Type.Percentage?null:t.tn.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,r,a,o){let s=a(o),c={value:n===void 0?r??``: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.in.VerticalAlignment.Sub),o.querySelectorAll(`sup`).length>0&&(n.verticalAlign=t.in.VerticalAlignment.Super),(o.querySelectorAll(`b`).length>0||o.querySelectorAll(`strong`).length>0)&&(n.weight=700),o.querySelectorAll(`i`).length>0&&(n.style=t.in.Style.Italic),o.querySelectorAll(`u`).length>0&&(n.underline=t.in.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(!i.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),!i.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.Mt(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.Mt(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.in.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.Mt(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.in.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}},L={showFormulaBar:!0,showTabs:!0,tabRatio:600,showHorizontalScrollbar:!0,showVerticalScrollbar:!0,showStatusBar:!0,activeSheetId:0},R=class{constructor(e){this._emitter=new t.Tn(this),this._state={...L},e?.json&&this._fromJSON(e?.json)}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!==L[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={...L,...this._state,...e},t&&this._emitter.notify(`onViewChange`)}get[Symbol.toStringTag](){return`[WorkbookView]`}toString(){let e=this.toJSON();return e?JSON.stringify(e):`DefaultWorkbookView`}},be=Object.freeze({structure:!1,windows:!1,revision:!1,password:null,revisionsPassword:null}),z=class extends t.wt{isWindowsAllowed(){return this._isPropertyAllowed(`windows`)}isRevisionAllowed(){return this._isPropertyAllowed(`revision`)}isStructureAllowed(){return this._isPropertyAllowed(`structure`)}_fromJSON(e){this._properties=e}_toJSON(e){let t=this._properties;if(t){e={...e,...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]`}};function B(e){return(0,i.t)(`error.workbook.invalidSheetKey`,{key:e})}var xe=class{constructor(e,t){this._add=e,this._get=t}add(e){return this._add(e)}*[Symbol.iterator](){yield*this.getItems()}getItems(e){return this._get(e?.name,e?.visibility)}getByName(e){return this._get(e)?.[0]??null}getCount(){return this._get().length}},V=new RegExp(/[\\/\\*?:[\]]+/),Se=new RegExp(/\(((\d+)(?!.*\d))\)$/,`g`);function Ce(e){let t=(0,i.t)((0,i.messageKey)(`workbook.defaultSheetName`),{n:e+1});return t===`workbook.defaultSheetName`?`Sheet${e+1}`:t}function H(e,n){return{...t.s,getSheet:()=>null,toString:()=>t.Xt(e,n)}}function U(e,t=!1){if(!e)throw Error((0,i.t)(`error.workbook.sheetNameBlank`));if(V.test(e)){if(!t)throw Error(function(e){return e?(0,i.t)(`error.workbook.sheetNameInvalidCharsNamed`,{sheetName:e}):(0,i.t)(`error.workbook.sheetNameInvalidChars`)}(e));e=e.replace(V,``)}if(e.length===0)throw Error((0,i.t)(`error.workbook.sheetNameBlank`));let n=e.length;if(n>31){if(!t)throw Error((0,i.t)(`error.workbook.sheetNameTooLong`));e=e.substring(0,31)}if(e.charAt(0)===`'`||e.charAt(n-1)===`'`){if(!t)throw Error((0,i.t)(`error.workbook.sheetNameQuotes`));e=e.replace(/^'|'$/g,``)}return e}var W,G,K=class e extends t.c{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.en.Visibility.VeryHidden):null;if(!i){let e=this._workbook.getSelectedSheet();return delete r?.scope,H(r,r?{scope:t.Jt,...e.getEntireRange().getCoords()}:null)}let a=this._options;return n&&(a={...this._options,getOptions:t.o(this._options.getOptions,n)}),new q(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.Yt(this.getCoords(),{...r,scope:n.getName()},t.Xt,t.Qt,e)}toString(){return this.getAddress()}},q=class e extends t.at{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 K(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.Xt(this.getCoords(),{...r,scope:n.getName()})}toString(){return this.getAddress()}},J=class{constructor(e){this._lastTransactionUUID=null,this._closed=!1,this._listenerOrigin=null,this._lastOriginName=null,this._initializing=!0,this._isDate1904=!1,this._locale=null,this._localeOverrides=null;let n=typeof e==`string`?{origin:e}:{...e},r=n.origin;this._origin=typeof r==`string`?new s(null,{name:r}):r??new s(null),delete n.origin,this._lastOriginName=this._origin.getName(),this._listenerOrigin=this._origin.addListeners({onChange:()=>{if(this._closed)return;let e=this._origin.getName();e!==this._lastOriginName&&(this._lastOriginName=e,this._emitter.notify(`onNameChange`))}});let a=n.json;delete n.json,this._transactions=n.transactions??new t.Dn,this._id=this._transactions.create(),this._ownTransactions=!n.transactions,this._emitter=new t.Tn(this,this._transactions),this._runtime=n.runtime??new t.pn(`Workbook Runtime`,{isDate1904:()=>this._isDate1904,getLocale:()=>this._locale??t.hn()??t.mn(),getLocaleOverrides:()=>this._localeOverrides}),this._listenerLanguage=i.DefaultLanguagePackService.addChangeListener(()=>{this._locale!==null||this._closed||this._notifyAllChange()});let o=this,c=this._beginCommit({description:a?(0,i.messageKey)(`op.openWorkbook`):(0,i.messageKey)(`op.newWorkbook`)});try{this._strings=n.strings??new t.bt,this._ownStrings=!n.strings,this._externalBooks=new he({json:a?.externalBooks}),this._resources=n.resources??new t.xt,this._ownResources=!n.resources,this._createSheetName=n.createSheetNameCallback??Ce;let e=n.createSheetCallback;e||=e=>new t.l(e),this._sheetOnNameChange=new Map,this._sheetOnVisibilityChange=new Map,this._sheetOnIndexChange=new Map,this._createSheet=(n,r,i,a,s)=>{let c=null,l={runtime:o._runtime,readonly:o._options.readonly??!1,disableLoadAutoFit:o._options.disableLoadAutoFit??!1,formulaTransform:o._options.formulaTransform,opener:o._options.opener,transactions:o._transactions,styles:o._styles,strings:o._strings,resources:o._resources,names:o._names,workbook:o,calculation:o._calculation,resolveRange:e=>o._options.resolveRange?.(e)??o.getRange(e),container:{beforeFromJSON:e=>{c=e,o._addSheetRef({name:r,id:n,visibility:i??t.en.Visibility.Visible,sheet:e},a)},getName:()=>{let e=o._getSheetRef(c);return e?e.name:r},setName:(e,t)=>{o._getSheetRef(c)&&o._setSheetName(c,e,t)},setNameChangeCallback:e=>{o._sheetOnNameChange.set(n,e)},getVisibility:()=>{let e=o._getSheetRef(c);return e?e.visibility:t.en.Visibility.Visible},setVisibility:(e,t)=>{o._setSheetVisibility(c,e,t)},setVisibilityCallback:e=>{o._sheetOnVisibilityChange.set(n,e)},duplicate:()=>o._duplicateSheet(c),getIndex:()=>{let e=o._getSheetRef(c);return e?o._getOffsetForId(e.id,o._getSheetRefs(t.en.Visibility.VeryHidden)):a},setIndex:(e,n)=>{let r=o._getSheetRef(c,t.en.Visibility.VeryHidden);return!!r&&(o._moveSheet(r,e,n),!0)},setIndexCallback:e=>{o._sheetOnIndexChange.set(n,e)},requestSelect:async()=>(o._setSelectedSheet(c),await this._emitter.notify(`onRequestSelect`,{source:o,params:c,async:!0}),o.getSelectedSheet()===c)}};return s&&(l.json=s),c=e(l,r,a,i),c},this._namedTableSource=new t.vt({getSheets:()=>o._sheets?o.getSheets().getItems():i.CommonUtils.EmptyArray,addSheetsListener:(e,t)=>o.addListeners({onSheetsChange:e},t)}),this._names=n.names??new t.ft({addressToRanges:e=>o.getRanges(e),getCurrentScope:()=>o.getSelectedSheet().getName(),isReadOnly:()=>o._options.readonly??!1,transactions:o._transactions,getSources:()=>o._calculation?[o._calculation.getNamedFormulas(),o._namedTableSource]:i.CommonUtils.EmptyArray}),this._ownNames=!n.names,this._calculation=n.calculation??new t.d({runtime:o._runtime,functions:n.functions,json:a?.calc,getActiveCell:()=>{let e=o.getSelectedSheet(),t=e?.getSelectedRange()?.getCoords();return t?{rowIndex:t.rowStart,colIndex:t.colStart,scope:e.getId()}:null},getRange:o.getRange.bind(o),getRanges:o.getRanges.bind(o),createGraphRanges:(e,t)=>o._createGraphRanges(e,t),getSheetIndex:e=>{if(e===void 0){let e=o.getSelectedSheet();return e?this._getSheetRefs(t.en.Visibility.VeryHidden).findIndex(t=>t.sheet===e):-1}let n=this._getSheetRefs(t.en.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{Y.address=e;let n=this._names.getItems(Y);if(!n||n.length===0)return-1;let r=n[0].getRanges?.()?.getCoords()?.[0]?.scope;if(!r)return-1;let i=this._getSheetRefs(t.en.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:()=>o.getSheets().getItems({visibility:t.en.Visibility.VeryHidden}).length,getSheetById:e=>{let n=o.getSheets().getItems({visibility:t.en.Visibility.VeryHidden}),r=n.length;for(let t=0;t<r;t++)if(n[t].getId()===e)return n[t];return null},getSheetByName:e=>{try{return o.getSheets().getByName(e)??null}catch{return null}},namedCollection:o._names,strings:o._strings,transactions:o._transactions,names:a?.names,formulaTransform:n.formulaTransform}),this._ownCalculation=!n.calculation,this._scripts=this._createScripts(),this._ownNames=!n.names,this._options=Object.freeze({...n});let r=async()=>{this._ownCalculation&&await this._calculation.start(),await this._scripts.start(),this._starting=null};this._starting=r(),this._starting?.catch(()=>{}),a?this._fromJSON(a):(this._initState(),this._addSheet(!1)),this._sheets=new xe(e=>o._addSheetOptions(e),(e,t)=>{if(e){let n=this._getSheetRef(e,t);return n?[n.sheet]:i.CommonUtils.EmptyArray}return this._getSheets(t)}),this._ownCalculation&&this._calculation.hydrateNames(),this._emitter.notify(`onLoad`),c.commit({forceAmend:this._ownTransactions})}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.Lt().getDefaultTheme(),this._styles=n?.styles??new t.Tt(this._theme),this._ownStyles=!n.styles,this._styles.getTheme()||this._styles.setTheme(this.getTheme()),this._activeSheetOffset=0,this.setView(new R),this._listenerProtection?.(),this._protection=new z(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){if(t&&t.activeSheetId!==void 0&&t.view===r.getView()&&n.getId()===r._lastTransactionUUID&&await r._getSheetRef({id:t.activeSheetId})?.sheet.select(),t&&n.getId()!==r._lastTransactionUUID){let n=r.getView().getActiveSheetId();t.view===r.getView()&&(n=t.activeSheetId);let i=0;try{i=r._getOffsetForId(n,e.sheetRefsVisible)}catch{}r._adjustRemoveSelectionIfRequired(i,n)}r._lastTransactionUUID=n.getId(),r._notifyAllChange()},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._origin}getView(){return this._view}setView(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!e)throw new i.ExpectedError((0,i.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,i.t)(`error.workbook.modelClosed`));return this._isDate1904=e,this._notifyAllChange(),this}getLocale(){return this._runtime.getLocale()}getPinnedLocale(){return this._locale}setLocale(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(e)try{new Intl.Locale(e)}catch{throw Error((0,i.t)(`error.workbook.invalidLocale`,{locale:e}))}return this._locale===e||(this._locale=e,this._notifyAllChange()),this}getLocaleOverrides(){return this._localeOverrides}setLocaleOverrides(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let t=e&&Object.keys(e).length>0?e:null;return this._localeOverrides=t,this._notifyAllChange(),this}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}getExternalBooks(){return this._externalBooks}getTheme(){return this._theme}setTheme(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!e)throw new i.ExpectedError((0,i.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.en.Visibility.Visible){if(e===void 0)return this.getSelectedSheet();if(!e)throw Error((0,i.t)(`error.workbook.sheetNameNotProvided`));let r=this._getSheetRef(e,n);if(!r)throw new i.OutOfBoundsError((a=e,(0,i.t)(`error.workbook.sheetNameNotFound`,{sheetName:a})));var a;return r.sheet}getSheetAt(e,n=t.en.Visibility.Visible){let r=this._getSheetRef(e,n);if(!r)throw new i.OutOfBoundsError(function(e){return(0,i.t)(`error.workbook.sheetIndexNotFound`,{index:e})}(e));return r.sheet}getSheets(){return this._sheets}addSheet(e){return this.getSheets().add(e)}_getSheets(e=t.en.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.en.Visibility.Visible){let n=this._getState();return n?e===t.en.Visibility.Visible?n.sheetRefsVisible:e===t.en.Visibility.Hidden?n.sheetRefsVisibleAndHidden:e===t.en.Visibility.VeryHidden?n.sheetRefsAll:i.CommonUtils.EmptyArray:[]}_getSheetRef(e,n=t.en.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.l?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(U(e),t&&this._getState().sheetsByLowerCaseName.has(e.toLowerCase()))throw new i.ExpectedError((0,i.t)(`error.workbook.nameTaken`));return e.substring(0,31)}findValidSheetName(e){e&&=U(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!V.test(e)}_addSheetOptions(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.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,i.messageKey)(`op.addSheet`)};let r=this.beginCommit(t);try{let e=t?.autoSelect??!1;n=this._addSheet(!0,t.name,t.index??null);let a=this.getView().getActiveSheetId(),o,s;if(!1!==e){let t=this.getView().getActiveSheetId();t=this._getSheetRef(n).id,e&&(o={view:this.getView(),activeSheetId:a},s={view:this.getView(),activeSheetId:t})}if(r.commit({description:(0,i.t)(`op.addSheetNamed`,{name:n.getName()}),viewBefore:o,viewAfter:s}),!1!==e){let t=typeof e==`boolean`?void 0:e;n.select(t)}}catch(e){throw r.rollback(),e}return n}_nextSheetName(e=null){let t=e?e.toLowerCase():null,n=this._getState(),r=n.sheetsByLowerCaseName;if(e&&r.has(t))throw new i.ExpectedError(function(e){return(0,i.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();r.has(n)?a++:e=t}return this._updateState({lastId:a}),e}_addSheet(e,n=null,r=null){n=this._nextSheetName(n);let a=this._getState(),o=this._createSheet(a.lastId,n,t.en.Visibility.Visible,r,null);if(!o)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetNameBlank`));return e&&this._emitter.notify(`onSheetsChange`),o}_updateSheetRefStates(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this._initializing&&!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let n=e,r=[],a=[],o=n.length;for(let e=0;e<o;e++)n[e].visibility===t.en.Visibility.Visible?(r.push(n[e]),a.push(n[e])):n[e].visibility===t.en.Visibility.Hidden&&a.push(n[e]);this._updateState({sheetRefsAll:n,sheetRefsVisible:r,sheetRefsVisibleAndHidden:a})}_addSheetRef(e,n=null){let r=this._getState(),a=r.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(r.refsById);u.set(e.id,e);let d=new Map(r.refsByLowerCaseName);d.set(l,e);let f=new Map(r.refsByInstance);f.set(c,e);let p=new Map(r.sheetsById);p.set(e.id,c);let m=new Map(r.sheetsByLowerCaseName);m.set(l,c);let h=this,g=r.listenersSheets;if(c!==void 0){let n=c.addListeners({onBeforeDelete:e=>{h._validateDeleteSheet(e)},onDelete(e){let n=h._getSheetRef(e,t.en.Visibility.VeryHidden);if(!n)return;let r=h._beginCommit({description:(0,i.t)(`op.deleteSheet`,{name:n.name})});try{let t=h._getState(),i=t.sheetRefsAll,a=h._getOffsetForId(n.id,i),o=[...i];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}),r.commit()}catch(e){throw r.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(r.listenersSheets),g.set(e.id,()=>{n(),a()})}let _=r.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}_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.en.Visibility.Visible&&(this._activeSheetOffset=this._getOffsetForId(r,e.sheetRefsVisible))}_validateDeleteSheet(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let t=this._getSheetRef(e);if(!t)throw new i.ExpectedError(function(e){return(0,i.t)(`error.workbook.deleteKey`,{key:e})}(e));let n=this._getState().sheetRefsVisible;if(n.length===1&&n[0].id===t.id)throw new i.ExpectedError((0,i.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 i.ExpectedError((0,i.t)(`error.workbook.noVisibleRefs`))}find(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheets();if(n.length===1)return n[0].find(e);typeof e==`string`&&(e={text:e});let r=!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=i.CoordUtils.createCellComparator(e?.axis,e?.reverse);delete(e={...e}).from;let h=()=>{if(!p&&f.done&&(l&&s===o?p=!0:r?(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.fn,e}let i=f;return f=d.next(),i};return{next:()=>{let e=h();for(;!p&&e.done;)e=h();return e}}}replace(e,n,r){let a=0,o=null,s=typeof n==`function`,c=r?.maxCount??2**53-1,l=!r?.maxCount,u=``,d=typeof n==`string`?t.bn(n):null,f=r?.description??(0,i.messageKey)(`op.replace`),p=this._transactions.beginCommit({description:f});try{let t=null,f=null,m=e.next();for(;!m.done&&a<c;){let i=m.value,c=i.getSheet();c!==t&&(t=c,f!==null&&f.apply(),f=t.getEntireRange().createSparseBuilder({axis:r?.axis,allowUnorderedWrites:!0}));let l=s?n(i):n;l!==void 0&&l!==i&&(f.push(i,l),a++,o=i),m=e.next()}f?.apply(),a===1&&c===1&&o&&(u=o.getAddress()),a===0?p.rollback():p.commit({description:r?.description??(l?d===null?(0,i.messageKey)(`op.replaceAll`):(0,i.t)(`op.replaceAllWith`,{value:d}):u?d===null?(0,i.t)(`op.replaceAt`,{address:u}):(0,i.t)(`op.replaceAtWith`,{address:u,value:d}):d===null?(0,i.messageKey)(`op.replace`):(0,i.t)(`op.replaceWith`,{value:d})),viewAfter:{selection:null}})}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,i.t)(`error.workbook.modelClosed`));let t=this._getSheetRefs();return t[this._nextSheetIndex(e,t)]?.sheet??null}getPreviousSheet(e){if(this._closed)throw Error((0,i.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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let t=this._getSheetRefs(),n=this.getSelectedSheetIndex(),r=null;if(e){if(r=this._getSheetRef(e),!r)throw new i.ExpectedError(B(r))}else r=t[n];if(!r)return null;let a=r.sheet,o=this._strings.beginPersist(),s=this.getResources().beginPersist(),c=this.getStyles().beginPersist(),l=null,u=this.beginCommit((0,i.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,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 r=e?{...e}:null,a=r?this._getSheetRef(r.scope,t.en.Visibility.VeryHidden):null;if(!a){let e=this.getSelectedSheet();return e?(delete r?.scope,H(r,r?{scope:t.Jt,...e.getEntireRange().getCoords()}:null)):void console.warn((0,i.t)(`error.workbook.noVisibleRefs`))}let o=a.sheet,s=null;return n&&(s={getOptions:n}),new q(e,t.a(o),this,s)}_createRanges(e,n){let r=this.getSelectedSheet(),i=null;return n&&(i={getOptions:n}),new K(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 i.ExpectedError((0,i.t)(`error.address.singleRangeOnlyAlt`));return this._createRange(t[0],n)}catch(n){throw n instanceof i.OutOfBoundsError?new i.OutOfBoundsError(n.message):new i.ExpectedError(n.message??t.Ct(e))}}getCell(e){if(e===void 0)return this.getSelectedCell();let t=this.getRange(e);if(t.size>1)throw new i.ExpectedError((0,i.t)(`error.address.singleCellOnly`));return t.getCell()}getRanges(e,n){let r=this._rangesAddressToCoords(e);if(r.length===0)throw new i.ExpectedError(t.Ct(e));return this._createRanges(r,n)}_createGraphRanges(e,n){let r=[];for(let e=0;e<n.length;e++){let i=n[e],a=(i.sheetName?this._getSheetRef(i.sheetName,t.en.Visibility.VeryHidden):null)?.sheet??this.getSelectedSheet();a&&r.push(new t.it(i,t.a(a),null))}for(let t=0;t<e.length;t++)r.push(e[t]);return r.length===0?null:new K(r,t.a(this.getSelectedSheet()),this,null)}getStats(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheets(t.en.Visibility.VeryHidden),r=n.length;if(r===1)return n[0].getStats(e);let a=Array(r);for(let t=0;t<r;t++)a[t]=n[t].getStats(e);return new de(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,r=t.en.Visibility.Hidden){if(!e)throw new i.ExpectedError((0,i.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.Zt(e,o,t.$t,e=>{if(!n)return null;if(typeof e==`string`){let t=c.getNames().getByName(e)?.getRanges?.();if(t)return t.getCoords()}throw new i.ExpectedError(`Invalid sheet reference '${e}'.`)}),u=l.length;for(let e=0;e<u;e++)this._validateCoords(l[e],r);return l}_validateCoords(e,n=t.en.Visibility.Visible,r=(0,i.t)(`error.sheet.oobRange`)){if(e===null)return;let a=this.getSheet(e.scope,n).getEntireRange().getCoords();if(!i.CoordUtils.isRangeWithinRange(e,a))throw new i.OutOfBoundsError(r);if(e.rowEnd<e.rowStart||e.colEnd<e.colStart)throw new i.ExpectedError((0,i.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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let r=this._getSheetRef(e);if(!r)throw new i.ExpectedError(B(e));if(t===r.name)return r.sheet;if((t=this._validateNewSheetName(t))==null)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetNameNotProvided`));let a=Object.freeze({...r,name:t}),o=null,s=this.beginCommit((0,i.messageKey)(`op.renameSheet`));try{let e=this._updateSheetRef(r,a);this._adjustSheetNamesIfRequired(),this._sheetOnNameChange.forEach((e,t)=>{r.id===t&&e()}),this._emitter.notify(`onSheetsChange`),r.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.en.Visibility.Visible,r){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let a=this._getSheetRef(e,t.en.Visibility.VeryHidden);if(!a)return null;if(n===a.visibility)return;let o=null,s=``;n===t.en.Visibility.Visible?s=(0,i.messageKey)(`op.unhideSheet`):n===t.en.Visibility.Hidden?s=(0,i.messageKey)(`op.hideSheet`):n===t.en.Visibility.VeryHidden&&(s=(0,i.messageKey)(`op.veryHideSheet`));let c=this.beginCommit(s);try{let e=this._getState().sheetRefsVisible;if(n!==t.en.Visibility.Visible&&e.length===1&&e[0].id===a.id)throw new i.ExpectedError((0,i.t)(`error.workbook.sheetOne`));let s={...a,visibility:n},l=-1;n!==t.en.Visibility.Visible&&(l=this._getOffsetForId(a.id,e)),o=this._updateSheetRef(a,s).sheet,n!==t.en.Visibility.Visible&&this._adjustRemoveSelectionIfRequired(l,a.id),this._adjustSheetNamesIfRequired(),c.commit(r)}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,i.t)(`error.workbook.modelClosed`));if(!this.getProtection().isStructureAllowed())throw new i.ExpectedError((0,i.t)(`error.workbook.protection`));let r=null,a=this.beginCommit((0,i.t)(`op.moveSheetNamed`,{name:e.name}));try{let o=this._getState(),s=o.sheetRefsVisible;if(t<0||t>s.length-1)throw new i.ExpectedError(`Invalid to index: ${t}`);let c={view:this.getView(),activeSheetId: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._adjustSheetNamesIfRequired(),this._sheetOnIndexChange.forEach((e,t)=>{t>=u&&t<=d&&e()}),this._emitter.notify(`onSheetsChange`),r=f.sheet,a.commit({...n,viewBefore:c,viewAfter:{view:this.getView(),activeSheetId:this.getView().getActiveSheetId()}})}catch(e){throw a.rollback(),e}return r}_setSelectedSheet(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));let n=this._getSheetRef(e);if(!n)throw new i.ExpectedError(B(e));let r=null;return n.visibility!==t.en.Visibility.Visible&&this._setSheetVisibility(n,t.en.Visibility.Visible),this._view.setActiveSheetId(n.id),r=n.sheet,r}getProtection(){return this._protection}getNames(){return this._names}getCalculation(){return this._calculation}createFormula(e,t){return this.getCalculation().createFormula(e,t)}evaluate(e,t){return this.getCalculation().evaluate(e,t)}whenCalculationReady(){return this.getCalculation().ready()}getScripts(){return this._scripts||=this._createScripts(),this._scripts}_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.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 i.ExpectedError((0,i.t)(`error.workbook.sheetOne`));e.theme&&(this._theme=new t.It(e.theme),this._styles.setTheme(this._theme));let n=this._strings.beginPersist(),r=this._resources.beginPersist(),a=this._styles.beginPersist();try{n.fromJSON(e.strings),r.fromJSON(e.resources),a.fromJSON(e.styles),e.date1904&&(this._isDate1904=!0),e.locale&&(this._locale=e.locale),e.localeOverrides&&(this._localeOverrides=e.localeOverrides),e.view||={};let i=e.sheets,o=i.length,s=e.view.activeSheetId??null;s!==null&&(s=Math.min(Math.max(0,s),o-1));let c=null,l=null,u=-1;for(let e=0;e<o;e++){let n=i[e],r=n.visibility||t.en.Visibility.Visible,a=e;l=a,r===t.en.Visibility.Visible?(u++,c===null&&(c=a)):s!==null&&s===a&&(s=null),this._createSheet(a,n.name,r,u,n.sheet)}this._updateState({lastId:l}),e.view.activeSheetId=s??c,this.setView(new R({json:e.view})),this._adjustSheetNamesIfRequired(),this._listenerProtection?.();let d=this;this._protection=new z(e?.protection,this._options?.readonly),this._listenerProtection=this._protection.addListeners({onChange:e=>{d._emitter.notify(`onProtectionChange`,{source:e})}}),e.scripts&&(this._scripts=this._createScripts(e.scripts)),this._emitter.notify(`onLoad`)}finally{a.endPersist(),r.endPersist(),n.endPersist()}}_createScripts(e){let n=this;return new ve({transactions:this._transactions,json:e,workbook:n,getBuiltInFunctions:()=>n._calculation?.getFunctions(),onAdd:(e,r)=>{let a=n._calculation;a.getStatus()!==t.rt.Status.Off&&a.start().then(async()=>{let e=r.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){i.Notifier.error(e?.message??String(e),e)}}}).catch(()=>{})},onRemove:(e,t)=>{}})}async toJSON(e){if(this._closed)throw Error((0,i.t)(`error.workbook.modelClosed`));await Promise.resolve(this._starting),await this._emitter.notify(`onBeforeSave`,{async:!0});let n={sheets:[]},r=e?.ignoreStyles??!1;if(!r){let e=this._theme.toJSON();(e?Object.keys(e).length:0)>0&&(n.theme=e)}if(this._scripts){let e=this._scripts.toJSON();e&&Object.keys(e).length>0&&(n.scripts=e)}this._isDate1904&&(n.date1904=!0),this._locale&&(n.locale=this._locale),this._localeOverrides&&(n.localeOverrides=this._localeOverrides);let a=e?.ignoreResources??!1,o=this._strings.beginPersist(),s=a?null:this._resources.beginPersist(),c=this._styles.beginPersist();try{let i=this._getSheetRef(this.getSelectedSheetIndex()).id,l=i,u=null,d=this._getState(),f=d.sheetRefsAll,p=d.sheetsById,m=f.length;for(let r=0;r<m;r++){let a=f[r],o=r+1,s=await p.get(a.id).toJSON(e),c={name:a.name,sheet:s};a.visibility===t.en.Visibility.Visible?u===null&&(u=o):c.visibility=a.visibility,a.id===i&&(l=o),n.sheets.push(c)}if(!r){let e=c.toJSON();e&&Object.keys(e).length>0&&(n.styles=e)}let h=this.getProtection().toJSON();h&&(n.protection=h);let g=this._calculation.toJSON();Object.keys(g).length>0&&(n.calc=g);let _=await o.toJSONAsync();_&&_.length>0&&(n.strings=_);let v=this._externalBooks.toJSON();if(v&&(n.externalBooks=v),!a){let e=await s.toJSONAsync();e&&e.length>0&&(n.resources=e)}let y=this._calculation.getNamedFormulas().toJSON();y&&y.length>0&&(n.names=y);let b=this._view.toJSON();b&&(l===u?delete b.activeSheetId:b.activeSheetId=l,Object.keys(b).length>0&&(n.view=b))}finally{c.endPersist(),a||s.endPersist(),o.endPersist()}return this._emitter.notify(`onSave`,{params:n}),n}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._closed=!0}beginCommit(e){if(this._closed)throw Error((0,i.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,i.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,i.messageKey)(`op.updateWorkbook`),n){if(!e)return;let r=this._beginCommit(t);try{r.updateState(this._id,e),r.commit(n)}catch(e){throw r.rollback(),e}}get options(){return this._options}get[Symbol.toStringTag](){return`[Workbook]`}toString(){return`[${this.getName()??`(untitled)`}]`}get isIWorkbook(){return!0}},Y={address:null},we=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})}},X=e=>!!e&&typeof e==`object`&&typeof e.getPath==`function`&&typeof e.canWrite==`function`,Z=class{constructor(){this._setInstalled=new WeakSet,this._backingStore=null,this._emitter=new t.Tn(this),this._registry=new we,this._defaultStore=new l(()=>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 s(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).`);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,r=null){let a=t.format,o=t.ext;if(!a&&!o)throw Error(`Either format or file extension must be provided to determine read type.`);let c=(await this._registry.getReadFormats({search:a,ext:o}))[0];if(!c)throw new i.ExpectedError((0,i.t)(`error.io.readFormatUnavailable`,{format:a??o}));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;let f=r??new s(t.absolutePath??null,{name:t.name??null,format:c.key,size:t.size??null,canWrite:t.canWrite??!1});r instanceof s&&r.update({format:c.key,size:t.size??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 r=await this._registry.detectEncryption(e);if(t instanceof s&&t.update({encryption:r?r.key:null}),!r)return{bytes:e,password:null};let a=null,o=async t=>{try{return a=await r.decode(e,t),!0}catch(e){if(!(e instanceof i.InvalidPasswordError))throw e;return!1}};if(n?.password&&await o(n.password))return{bytes:a,password:n.password};if(!n?.onPassword){let e=t.getName();throw new i.PasswordRequiredError(e?(0,i.t)(`error.io.passwordRequired`,{name:e}):(0,i.t)(`error.io.passwordRequiredUnnamed`))}let c=await Promise.resolve(n.onPassword({origin:t,encryption:r.key,validate:o}));if(c==null)return null;if(a!==null||await o(c))return{bytes:a,password:c};throw new i.InvalidPasswordError((0,i.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 i.ExpectedError((0,i.t)(`error.io.writeFormatUnavailable`,{format:t.format}));return this._writeArrayBuffer(e,n,t)}async write(e,n,r){if(!e)throw Error(`Workbook must be provided.`);if(!e.isIWorkbook)throw Error(`Invalid workbook model provided. Must be an instance of IWorkbook.`);let a=r,o=null;typeof n==`string`?o=this.getOrigin(n):X(n)?o=n:n&&(a=n);let c=!o,l=o??e.getOrigin(),u=l.getFormat(),d;if((a?.format||u)&&(d=(await this._registry.getWriteFormats({search:a?.format??u??void 0}))[0]),d||l.getPath()&&l.canWrite()&&l.getExtension()||(d=(await this._registry.getWriteFormats({ext:`sxl`}))[0]??(await this._registry.getWriteFormats())[0]),!d)throw new i.ExpectedError((0,i.t)(`error.io.writeFormatUnresolved`));if(o&&typeof n==`string`){let e=o.getPath();e&&!t.Sn(e)&&o.update?.({path:`${e}.${d.exts[0]}`})}let f=l.getEncryption(),p=e.getOrigin?.(),m=(l instanceof s?l.getPassword():null)??(p instanceof s?p.getPassword():null),h=l.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=l.getName();throw new i.PasswordRequiredError(e?(0,i.t)(`error.io.passwordRequiredSave`,{name:e}):(0,i.t)(`error.io.passwordRequiredSaveUnnamed`))}}else if(g!==null&&(_=await this._registry.getEncryption(f),!_))throw new i.ExpectedError((0,i.t)(`error.io.encryptionUnavailable`));let v=`${l.getName()??(0,i.t)(`workbook.defaultName`)}.${d.exts[0]}`,y=a?.progress,b=!1,x=this,S=null,C={workbook:e,format:d,origin:l,suggestedName:v,prompt:a?.prompt,async encode(t){await(async()=>{b||(b=!0,y?.onStart&&await Promise.resolve(y.onStart(l)))})(),S=e.getTransactions?.()?.getCurrentCommit()??S;let n=t?(await x._registry.getWriteFormats({search:t}))[0]??d:d,r=await x._writeArrayBuffer(e,n,a);return _?_.encode(r,g):r}},w=null;try{let t=this.getBackingStore();if(!t.write)throw Error(`The active backing store is read-only (no write implementation).`);if(w=await t.write(C),w){g!==void 0&&w instanceof s&&(w.setPassword(g),w.update({encryption:_?_.key:null}));let t=S??e.getTransactions?.()?.getCurrentCommit()??null;this._emitter.notify(`onWrite`,{params:{workbook:e,origin:w,commitId:t?.getId()??null,save:c},transactional:!1})}y?.onComplete&&await Promise.resolve(y.onComplete(w))}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 i.ExpectedError?t:Error((0,i.t)(`error.io.writeFailed`,{reason:t.message}),{cause:e})}return w}async writeAs(e,n,r){if(!n)throw Error(`A target must be provided for writeAs (use write(workbook) for a plain save).`);let i=e?.getOrigin?.();if(!(i instanceof s))return this.write(e,n,r);let a=typeof n==`string`?n:n.getPath(),o=a&&t.Sn(a)?.toLowerCase()||null,c=o?(await this._registry.getWriteFormats({search:o}))[0]?.key??o:null,l={path:i.getPath(),name:i.getName(),format:i.getFormat(),canWrite:i.canWrite()};i.update({path:a,name:typeof n==`string`?null:n.getName(),format:c,canWrite:a!=null});let u=null;try{u=await this.write(e,void 0,r)}finally{u||i.update(l)}return u}_stripExtension(e){let n=t.Sn(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 J(n?.createWorkbookOptions);let r=t.handler;if(!r)throw Error(`Unable to resolve a read handler for '${t.key}'.`);let a;try{a=await r(e,n)}catch(e){throw e instanceof i.ExpectedError?e:new i.ExpectedError((0,i.t)(`error.io.readFailed`,{format:t.description??t.key,reason:e?.message??String(e)}),{cause:e})}return a}},Te=new Z,Q=`locales`,Ee=`fonts`,De=[{kind:Q,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:Ee,files:[`.woff2`,`.woff`,`.ttf`,`.otf`,`.ttc`].map(e=>({suffix:e,place:(e,t)=>t?`${t}/${e}`:e}))}];W||={},G||={};var $,Oe=e.n({nowWithPrecision:()=>ke});function ke(e=6e4){return new Date(Math.floor(Date.now()/e)*e)}$||={};var Ae=class extends t.pt{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=>null},super._initializeOptions(e)}};Object.defineProperty(exports,"AddressUtils",{enumerable:!0,get:function(){return t.lt}}),exports.ArrayBackingStore=class{constructor(){this._buffer=null,this._formatKey=null}get buffer(){return this._buffer}async write(e){let t=await e.encode();return this._buffer=t,this._formatKey=e.format.key,e.origin}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.f}}),exports.BUILD_DATE=`Wed Aug 26 2026`,exports.Color=t.Vt,Object.defineProperty(exports,"Condition",{enumerable:!0,get:function(){return t.mt}}),Object.defineProperty(exports,"DateUtils",{enumerable:!0,get:function(){return Oe}}),exports.DefaultWorkbookIO=Z,exports.ExternalRangeClipboardItem=class{constructor(e,t,n,r,a){if(this._parsed=void 0,this._runtime=e,!t)throw new i.NullNotAllowedError(`nativeItems are required.`);this._topLeft=n??i.CoordUtils.EmptyCell,this._native=t,this._markOptions=Object.freeze(r??{}),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,r=this._native.html;if(r===null&&n&&n.includes(`<table`))try{let e=new DOMParser().parseFromString(n,i.MimeType.Html),t=e.querySelector(`parsererror`);if(t)throw new i.ExpectedError(`Unable to parse: `+t);r=e,n=null}catch{console.warn(`Discovered text as html table but could could not parse.`)}try{let i=new ye(this._runtime,this._topLeft,this._styles,r?`HTML`:`Text`);await i.sheet().getCalculation().ready(),await i.sheet().getCalculation().stop();let a=await Promise.resolve(n?t.m(n):[[]]),o;if(t.p(r,a,i)?(e=i.sheet(),o=e.getUsedRange()):r=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&&!r&&this._native.image){let e=this;return this._parsed={async copyTo(t,n){let r=t.getSheet(),a=await e._native.image.arrayBuffer(),o=await r.getMovables().addPicture({source:{buffer:a}},{type:`picture`,description:(0,i.messageKey)(`op.copyImageFromClipboard`)});return r.getView().selectMovables([o]),null},getName:()=>`Image`},!0}return!1}get isClipboardItem(){return!0}},exports.FONTS_KIND=Ee,Object.defineProperty(exports,"FontUtils",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"GeomUtils",{enumerable:!0,get:function(){return t.h}}),Object.defineProperty(exports,"IAnchored",{enumerable:!0,get:function(){return t.yt}}),Object.defineProperty(exports,"IBorder",{enumerable:!0,get:function(){return t.rn}}),Object.defineProperty(exports,"ICalculation",{enumerable:!0,get:function(){return t.rt}}),Object.defineProperty(exports,"ICell",{enumerable:!0,get:function(){return t.dt}}),Object.defineProperty(exports,"ICellHeaderRange",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"ICellRange",{enumerable:!0,get:function(){return t.ut}}),Object.defineProperty(exports,"ICellRanges",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"IColor",{enumerable:!0,get:function(){return t.Ut}}),Object.defineProperty(exports,"ICondition",{enumerable:!0,get:function(){return t._t}}),Object.defineProperty(exports,"IConditionalFormat",{enumerable:!0,get:function(){return t.ct}}),Object.defineProperty(exports,"IDataValidation",{enumerable:!0,get:function(){return t.st}}),Object.defineProperty(exports,"IEffect",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"IFill",{enumerable:!0,get:function(){return t.Bt}}),Object.defineProperty(exports,"IFont",{enumerable:!0,get:function(){return t.in}}),Object.defineProperty(exports,"IFontCollection",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"IMovable",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"IPicture",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"IPrint",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"IResource",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"ISheet",{enumerable:!0,get:function(){return t.en}}),Object.defineProperty(exports,"ISheetView",{enumerable:!0,get:function(){return t.ot}}),Object.defineProperty(exports,"ISort",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"IStroke",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"IStyle",{enumerable:!0,get:function(){return t.zt}}),Object.defineProperty(exports,"ITableStyle",{enumerable:!0,get:function(){return t.Ft}}),Object.defineProperty(exports,"IText",{enumerable:!0,get:function(){return t.wn}}),Object.defineProperty(exports,"ITextFrame",{enumerable:!0,get:function(){return t.Cn}}),Object.defineProperty(exports,"ITheme",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"IThemeCollection",{enumerable:!0,get:function(){return t.Rt}}),Object.defineProperty(exports,"IWorkbookIO",{enumerable:!0,get:function(){return a}}),exports.LOCALES_KIND=Q,exports.LicenseManager=t.qt,Object.defineProperty(exports,"NumberFormat",{enumerable:!0,get:function(){return t.tn}}),exports.RangeClipboardItem=class{constructor(e){if(!e)throw new i.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.On,exports.Resource=t.St,exports.ResourceCollection=t.xt,exports.SHEETXL_RESOURCE_KINDS=De,exports.SYSTEM_COLOR_CSS_PREFIX=t.Ht,exports.Sheet=t.l,exports.SimpleFontFace=p,Object.defineProperty(exports,"Sort",{enumerable:!0,get:function(){return t.nn}}),exports.StringCollection=t.bt,exports.StyleCollection=t.Tt,exports.Table=Ae,Object.defineProperty(exports,"TextRotation",{enumerable:!0,get:function(){return t.vn}}),Object.defineProperty(exports,"TextUtils",{enumerable:!0,get:function(){return t.yn}}),exports.Theme=t.It,exports.ThemeCollection=t.Lt,exports.TransactionConflictError=t.En,exports.TransactionSaveStateManager=class{constructor(e,n){this._dirty=!1,this._store=e,this._savedCommitId=e.getCurrentCommit()?.getId()??null,this._emitter=new t.Tn(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.Dn,exports.TransactionUndoManager=o,Object.defineProperty(exports,"Tuple",{enumerable:!0,get:function(){return t.dn}}),exports.VERSION=`0.7.28-beta.4`,exports.Workbook=J,exports.WorkbookIO=Te,exports.WorkbookOrigin=s,exports.WorkbookView=R,exports.builtInStyleNameDisplay=function(e){let t=ne[e];if(t)return{key:t};let n=oe.exec(e);return n?{key:re,params:{n:+n[1]}}:(n=se.exec(e),n?{key:ie,params:{n:+n[1]}}:(n=ce.exec(e),n?{key:ae,params:{pct:+n[1],n:+n[2]}}:null))},exports.createCellRangeCounts=t.u,exports.getBuiltInFunctionNames=function(){if(!P){let e=Promise.resolve().then(()=>require("./BXtvdT1Z-MsB_o5F.cjs")).then(({initializeFunctions:e})=>{let t=e(()=>null);return Object.freeze(Array.from(t.keys()))});e.catch(()=>{P=null}),P=e}return P},exports.getLanguagePack=t.on,exports.getLocaleProfile=t.gn,exports.localizeBoolean=t.sn,exports.localizeErrorLabel=t.cn,exports.makeLocaleProfile=t._n,exports.parseBooleanLocal=t.ln,exports.parseErrorLocal=t.un,exports.parseFormulaLiteral=function(e){let r=e.trim();if(!r)return;let i;try{let e=n.t.shared().tokenize(r,!1);if(e.errors.length>0)return;i=e.tokens}catch{return}let a=0,o=0;if(i.length===2){let e=i[0].tokenType?.name;e===`MinOp`?(a=-1,o=1):e===`PlusOp`&&(a=1,o=1)}if(i.length-o!==1)return;let s=i[o],c=s.image;try{switch(s.tokenType?.name){case`NumberToken`:case`ScientificDigit`:case`DigitToken`:{let e=t.U(c).value;return a===0?e:a*e}case`StringToken`:return a===0?t.Y(c).value:void 0;case`BooleanToken`:return a===0?t.M(c).value:void 0;case`LiteralError`:case`RefError`:return a===0?t.B(c).value:void 0;default:return}}catch{return}},exports.registerSdkLocales=t.an,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]}})}),Object.keys(i).forEach(function(e){e==="default"||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return i[e]}})});
|