@sheetxl/sdk 0.7.21 → 0.7.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/browser/cjs/{CdLUUmZCUY5uWnq5.cjs → 4ehQu8sjj5Pnrysi.cjs} +1 -1
  2. package/browser/cjs/{Bm_Mc6TDFCZ1OJNj.cjs → 8P123x_psu0vZSU9.cjs} +1 -1
  3. package/browser/cjs/{BLBAZ-Bmj0EAhunn.cjs → B8W9RuhDKmuIzhpX.cjs} +1 -1
  4. package/browser/cjs/{DMfUZBX5dMS-QcFB.cjs → BF-zwvT-2M-AV0hY.cjs} +1 -1
  5. package/browser/cjs/{DUbyVNEdEpgkjI-U.cjs → BG81a_nQI23GJS2e.cjs} +1 -1
  6. package/browser/cjs/{BP8dBZEDNeacQUNp.cjs → BG_oucq-hFgpN3c_.cjs} +3 -3
  7. package/browser/cjs/{Btp8A0kzb6cHSEMD.cjs → BPqqnIrbiWknh9gL.cjs} +1 -1
  8. package/browser/cjs/{DK27kwlwz0N4_IpD.cjs → BWVgq2uGlV4ae5C1.cjs} +1 -1
  9. package/browser/cjs/{BvS2Hclafqxj6DCP.cjs → BjtI3uBzEXjY1mkq.cjs} +1 -1
  10. package/browser/cjs/{CnlnOI_NWWeETB4i.cjs → Bwdp2MZZ_KMUSHFP.cjs} +1 -1
  11. package/browser/cjs/{DzZ_6y4OF7HzFZLT.cjs → BwnUVVFNWZGHfNoa.cjs} +1 -1
  12. package/browser/cjs/{D0Qme7PcsKfdtShi.cjs → BzeCA_-fu9cCwq8D.cjs} +1 -1
  13. package/browser/cjs/{CphmaCdyCfgLRsS0.cjs → C9c-bLrS-ABA59Nt.cjs} +1 -1
  14. package/browser/cjs/{DUiZ8WcVcUyjfILT.cjs → CKxBDw1KEkPQauXM.cjs} +1 -1
  15. package/browser/cjs/CY9eCFSjX4vHL2wh.cjs +55 -0
  16. package/browser/cjs/{DTrbxLKRbIsj3mPI.cjs → Crp9TU9-MK3650CN.cjs} +1 -1
  17. package/browser/cjs/{CASsDxt2bA8JHiEW.cjs → DAsr1dw3BvkcVNSg.cjs} +1 -1
  18. package/browser/cjs/{Cegi9isUAUZKUYFl.cjs → DLiId6Hk_ia6LkL1.cjs} +1 -1
  19. package/browser/cjs/{B6GPcN051NmcYcIT.cjs → DWBmsvMLywwdyxBk.cjs} +2 -2
  20. package/browser/cjs/{B1wkCHMcDuFkMcC_.cjs → DXR0dXDjeEBxAu4n.cjs} +1 -1
  21. package/browser/cjs/{BhNultME1o9xbmcX.cjs → DaENj_w2AIRp0Mqp.cjs} +2 -2
  22. package/browser/cjs/{CNw4tHphpF3kplDH.cjs → DtIDwaFB44U_fs6n.cjs} +1 -1
  23. package/browser/cjs/{vQgVD2EniUvkeXnq.cjs → Prn8RKUoSRnLhv0l.cjs} +1 -1
  24. package/browser/cjs/{Bo1CE3hgxUD5DGqu.cjs → RCfQ4lI4PRIrMC8x.cjs} +1 -1
  25. package/browser/cjs/{DFQA35q7KQ-zS2eo.cjs → eNn-ZEASuspyp1hx.cjs} +1 -1
  26. package/browser/cjs/index.cjs +2 -2
  27. package/browser/cjs/{CO7SAK1ru6qnh7fr.cjs → kPuyJm8mZoWTYS_E.cjs} +1 -1
  28. package/browser/cjs/{D74bWkyzhU8E2TDh.cjs → rh6SPofhK2I4u0wE.cjs} +1 -1
  29. package/browser/esm/{B8depZMfw4f8vJ6H.mjs → B7pD0rGUnhHtNaJF.mjs} +1 -1
  30. package/browser/esm/{D6VvBNUOfq8QUBY5.mjs → BDSR4TWQKSu4MJs5.mjs} +1 -1
  31. package/browser/esm/{BgKy-xWSJeSV_EyO.mjs → BLLhl3k63e5tEJYP.mjs} +1 -1
  32. package/{node/esm/C4EnSMaP8fTEJmhu.mjs → browser/esm/BeNiW7K89qdTHcyZ.mjs} +1 -1
  33. package/browser/esm/{Cd2b3Z4DxOR0M3qa.mjs → C4B6ieQfBNQ8NWT8.mjs} +3 -3
  34. package/browser/esm/{DORXFXgRUsjkR1kA.mjs → C4mqQtlHSj_kEvZt.mjs} +1 -1
  35. package/browser/esm/{D0Mb17_7UFEFNmkU.mjs → C95Fv6Jcx41y7Ojk.mjs} +2 -2
  36. package/{node/esm/DE0iHIHhP7sczC_y.mjs → browser/esm/CQc0tnp5lxsTPGdY.mjs} +1 -1
  37. package/browser/esm/{DbK0GAKpj9hwwFwY.mjs → CRdl_Q0yPGAfPz6h.mjs} +1 -1
  38. package/browser/esm/{DTPLUnlOvF2feqR4.mjs → CVZfQjAdTLHiHG6R.mjs} +1 -1
  39. package/browser/esm/{Cg7YNnt2uhmFG_3d.mjs → CYEygIjH4EBxGCp5.mjs} +1 -1
  40. package/browser/esm/{C39Yfk__mPOF8auo.mjs → Ccad_NL38ZuzsOuN.mjs} +1 -1
  41. package/browser/esm/{oRsIla0R_H7slM9k.mjs → Ckwnr4G6FNOBxUKU.mjs} +1 -1
  42. package/browser/esm/{DrIkV6ixO7gbuv7Q.mjs → Cx9SZZloPWCEjdF7.mjs} +1 -1
  43. package/browser/esm/{BDSqdyFcw4FRrODg.mjs → DBrBKxntXAS4EBsJ.mjs} +5883 -5889
  44. package/{node/esm/DoMqoQP6F7OPue_g.mjs → browser/esm/DHzDNjbwGeV557ui.mjs} +1 -1
  45. package/browser/esm/{CWj2Ts01muSR6zp-.mjs → DNCwOd97er-oE4i-.mjs} +1 -1
  46. package/browser/esm/{Bi2_8iLEY_M-v_34.mjs → DSq_gbos0Y_f1e79.mjs} +1 -1
  47. package/browser/esm/{Bzs_r45vqhZAtTZK.mjs → DgV8M1pBIWVXUkDT.mjs} +1 -1
  48. package/browser/esm/{D_lQo-PErOoj-8tN.mjs → DhJTZCn3Uv0UfNlL.mjs} +1 -1
  49. package/browser/esm/{B9z2sURkI9ThbLxE.mjs → DtMc3NKUQdBlPqjH.mjs} +1 -1
  50. package/browser/esm/{mxYovIi79sCzcZtQ.mjs → DxDSAU2V0O76Q2g9.mjs} +1 -1
  51. package/browser/esm/{DflesN5VzS43jsHK.mjs → DzXpNzto_AaLbLeR.mjs} +2 -2
  52. package/browser/esm/{CkU9J_RtpNfpxh0y.mjs → E1JJ_668Lc6gmWHk.mjs} +1 -1
  53. package/browser/esm/{BLoU0uz84A8fWYom.mjs → JFehdQ_Sk02CZY_O.mjs} +1 -1
  54. package/{node/esm/DTzUiMAnLD_Zuf0f.mjs → browser/esm/eQPdjMXubhwL38RR.mjs} +1 -1
  55. package/browser/esm/{u5XTTNCFdsbCZ-ud.mjs → iaNS1GssHrDrrGa9.mjs} +1 -1
  56. package/browser/esm/index.mjs +2 -2
  57. package/node/esm/{BE2XMKirjoBI9zkt.mjs → 5ncGZrnXLJWZdlAS.mjs} +1 -1
  58. package/node/esm/{CS080xy3HgmgAFgx.mjs → B3pPsPOxXfjIbpBc.mjs} +1 -1
  59. package/node/esm/{D6VvBNUOfq8QUBY5.mjs → BDSR4TWQKSu4MJs5.mjs} +1 -1
  60. package/node/esm/{BgKy-xWSJeSV_EyO.mjs → BLLhl3k63e5tEJYP.mjs} +1 -1
  61. package/node/esm/{D7cm1_99nK7c_-6L.mjs → BS2w8nLO6jwewlIh.mjs} +1 -1
  62. package/{browser/esm/C4EnSMaP8fTEJmhu.mjs → node/esm/BeNiW7K89qdTHcyZ.mjs} +1 -1
  63. package/node/esm/{DORXFXgRUsjkR1kA.mjs → C4mqQtlHSj_kEvZt.mjs} +1 -1
  64. package/node/esm/{BNoPG6CBaybfp_G7.mjs → C5z5W2VKCDZxZErS.mjs} +1 -1
  65. package/node/esm/{3vOMW8PI4UI73pTa.mjs → C8SJyJrK7wauvaYH.mjs} +1 -1
  66. package/{browser/esm/DE0iHIHhP7sczC_y.mjs → node/esm/CQc0tnp5lxsTPGdY.mjs} +1 -1
  67. package/node/esm/{DbK0GAKpj9hwwFwY.mjs → CRdl_Q0yPGAfPz6h.mjs} +1 -1
  68. package/node/esm/{Cg7YNnt2uhmFG_3d.mjs → CYEygIjH4EBxGCp5.mjs} +1 -1
  69. package/node/esm/{oRsIla0R_H7slM9k.mjs → Ckwnr4G6FNOBxUKU.mjs} +1 -1
  70. package/node/esm/{BL_7m0SH43tASZc8.mjs → D5GT8lL2mkHYYpEm.mjs} +1 -1
  71. package/node/esm/{DP7a0Jrz8vTZnv2W.mjs → D6vgNmNn2sa8Zo2E.mjs} +1 -1
  72. package/{browser/esm/DoMqoQP6F7OPue_g.mjs → node/esm/DHzDNjbwGeV557ui.mjs} +1 -1
  73. package/node/esm/{Bi2_8iLEY_M-v_34.mjs → DSq_gbos0Y_f1e79.mjs} +1 -1
  74. package/node/esm/{D_lQo-PErOoj-8tN.mjs → DhJTZCn3Uv0UfNlL.mjs} +1 -1
  75. package/node/esm/{sVuz1UjytOtK5gck.mjs → DlH4gSCmCWHrZ5KA.mjs} +2 -2
  76. package/node/esm/{B9z2sURkI9ThbLxE.mjs → DtMc3NKUQdBlPqjH.mjs} +1 -1
  77. package/node/esm/{DElHitSTYjDdkUx1.mjs → DtMeBzYnl2ofA3SU.mjs} +1 -1
  78. package/node/esm/{mxYovIi79sCzcZtQ.mjs → DxDSAU2V0O76Q2g9.mjs} +1 -1
  79. package/node/esm/{BLoU0uz84A8fWYom.mjs → JFehdQ_Sk02CZY_O.mjs} +1 -1
  80. package/{browser/esm/DTzUiMAnLD_Zuf0f.mjs → node/esm/eQPdjMXubhwL38RR.mjs} +1 -1
  81. package/node/esm/{u5XTTNCFdsbCZ-ud.mjs → iaNS1GssHrDrrGa9.mjs} +1 -1
  82. package/node/esm/index.mjs +827 -824
  83. package/package.json +4 -4
  84. package/types/index.d.ts +0 -1
  85. package/types/scripting.d.ts +0 -1
  86. package/browser/cjs/CI7HTC82ehwZZ7G9.cjs +0 -55
@@ -0,0 +1,55 @@
1
+ "use strict";var lm=Object.create;var Vl=Object.defineProperty;var cm=Object.getOwnPropertyDescriptor;var hm=Object.getOwnPropertyNames;var dm=Object.getPrototypeOf,um=Object.prototype.hasOwnProperty;var gm=(a,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of hm(t))!um.call(a,r)&&r!==e&&Vl(a,r,{get:()=>t[r],enumerable:!(n=cm(t,r))||n.enumerable});return a};var mm=(a,t,e)=>(e=a!=null?lm(dm(a)):{},gm(t||!a||!a.__esModule?Vl(e,"default",{value:a,enumerable:!0}):e,a));/**
2
+ * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.7.22
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */const A=require("@sheetxl/primitives"),w=require("@sheetxl/utils"),jl=(a,t)=>{const e=new Map;return a.forEach((n,r)=>{t.get(r)!==n&&e.set(r,n)}),e};let Gl=!1;class $l{constructor(t){this._record=t}getId(){return this._record.id}getDescription(){return this._record.description}getMeta(){return Object.freeze(this._record.meta)}getAuthor(){return this._record.author}getTimestamp(){return this._record.timestamp}getOperation(){return this._record.operation}}class xe{constructor(t){this._listeners=new Set,this._listenersState=new Map,this._commits=new Map,this._locked=!1,this._current=null,this._pending=null,this._isSync=t?.sync??Gl,this._isTransient=t?.transient??!1,this._author=t?.author;const e={id:"0",description:"initial",meta:{},author:this._author,timestamp:Date.now(),states:new Map,version:0,previousId:null},n={record:e,commit:new $l(e)};this._current=n,this._cacheModel=null,this._cacheState=null,this._states=e.states,this._transactionStack=[],this._transactionOpen=!1;const r=new Map;r.set(e.id,n),this._commits=r}static{this.setDefaultSync=t=>{Gl=t}}getLog(t,e=100){const n=[];let r=t;do{const o=this._commits.get(r);if(!o)throw new Error(`Invalid commit id: '${r}'`);if(n.push(o.commit),r=o.record.previousId,!r)return n}while(n.length<e)}getCommitCount(){return this._commits.size}isOpenTransaction(){return this._transactionStack.length>0||this._transactionOpen}getPendingView(){const t=this._transactionStack;return t.length>0?t[0].getView():null}getState(t){const e=this._transactionStack;if(e.length===0){if(this._cacheModel===t)return this._cacheState;const n=this._states.get(t);return this._cacheModel=t,this._cacheState=n,n}return e[e.length-1].getState(t)}getCurrentCommit(){return this._pending?.commit??this._current.commit}restore(t,e){const n=this._getCommitContainer(t,e);if(this._current.commit.getId()===n.commit.getId())return n.commit;let r;e?.viewId&&e?.viewId!=="custom"||(r=n.record.viewAfter);const o=jl(n.record.states,this._current.record.states);this._notifyStates("onBeforeCommitStart",this._current,o,r,!0,!1),this._current=n,this._states=this._current.record.states,this._cacheModel=null,this._cacheState=null,this._notifyStates("onAfterStateChange",n,o,r,!1,!0,!0),this._notify("onCommitChange",n.commit,!0),this._transactionOpen=!0;try{this._notifyStates("onRestoreOrRevert",n,n.record.states,r,!1,!0)}finally{this._transactionOpen=!1}return n.commit}revert(t,e){const n=this._getCommitContainer(t,e),r=this._commits.get(n.record.previousId);if(!r)throw new Error(`Invalid commit id: '${n.record.previousId}'`);let o;e?.viewId&&e?.viewId!==" custom"||(o=n.record.viewBefore??n.record.viewAfter);const s=jl(r.record.states,this._current.record.states);this._notifyStates("onBeforeCommitStart",this._current,s,o,!0,!1),this._current=r,this._states=this._current.record.states,this._cacheModel=null,this._cacheState=null,this._notifyStates("onAfterStateChange",r,s,o,!0,!1,!0),this._notify("onCommitChange",r.commit,!0),this._transactionOpen=!0;try{this._notifyStates("onRestoreOrRevert",r,r.record.states,o,!0,!0)}finally{this._transactionOpen=!1}return r.commit}_getCommitContainer(t,e){const n=this._commits.get(t);if(!n)throw new Error(`Invalid commit id: '${t}'`);if(this._isTransient)throw new Error("Cannot revert transient store");if(e?.force&&this._transactionStack.length>0&&this._transactionStack[0].rollback(),this._transactionStack.length!==0)throw new Error("Open transactions.");return n}_pruneForwards(t){}beginCommit(t,e){const n=this._transactionStack,r=n.length;if(this._locked)throw console.warn("TransactionStore locked",n),new Error(`TransactionStore is locked by '${n[r-1].getDescription()}`);const o=t?.preventFurtherTransactions,s=this,i=(c,h,d)=>{const u=s._transactionStack;r!==u.length-1&&console.warn("Transaction stack out of sync",r,u.length,u),o&&(this._locked=!1),u.pop(),e?.(c,h,d),u.length===0&&(s._pending=null)};let l;if(n.length===0){const c=this._current.record,h={states:new Map,id:w.CommonUtils.uuidV4(),description:typeof t=="string"?t:t?.description??null,meta:{},timestamp:Date.now(),author:null,version:c.version+1,previousId:c.id,viewBefore:null,viewAfter:{},operation:t?.operation},d={record:h,commit:new $l(h)};this._pending=d,this._notify("onCommitStart",d.commit),l=new fm(this,d,c?.states,t,i)}else l=n[n.length-1].beginTransaction(t,i);return o&&(this._locked=!0),this._transactionStack.push(l),l}doBatch(t,e,n){let r;const o=this.beginCommit(e,n),s=this.getCurrentCommit();try{r=t?.(s);const i=()=>{o.commit(e)};if(r&&typeof r.then=="function")return new Promise((l,c)=>{r.then(h=>{try{i(),l(h)}catch(d){c(d)}}).catch(h=>{o.rollback(),c(h)})});i()}catch(i){throw o.rollback(),i}return r}remove(t){return!!t}addListener(t){const e=this._listeners;return e.add(t),()=>{e.delete(t)}}addStateListener(t,e){if(!t)throw new Error("Model is required");if(!e)throw new Error("Listener is required");let n=this._listenersState.get(t);return n||(n=new Set,this._listenersState.set(t,n)),n.add(e),()=>{n.delete(e),n.size===0&&this._listenersState.delete(t)}}dispatchEvents(t,e=!1){!e||this._isSync?t():setTimeout(t,0)}_commitRecord(t,e,n){let r=t.record,o=t.commit;if(!this._isTransient){if(n){const s=this._commits.get(r.previousId);if(s){r.previousId=s.record.id;const i=s.record,l=i.states;l&&r.states.forEach((c,h)=>{l.set(h,c)}),i.viewAfter={...i.viewAfter,...r.viewAfter},i.meta={...i.meta,...r.meta},i.timestamp=r.timestamp,r=i,o=s.commit,t={record:r,commit:o}}}this._commits.set(r.id,t)}this._current=t,this._states=this._current.record.states,this._cacheModel=null,this._cacheState=null,n||this._notify("onCommitChange",o),this._notifyStates("onAfterStateChange",t,e,t.record.viewAfter,!1,!1,!0),n||this._notify("onCommitEnd",o,!0)}_notifyStates(t,e,n,r,o=!1,s=!1,i=!1){const l=e.commit,c=this._listenersState;n.forEach((h,d)=>{const u=c.get(d);u&&this.dispatchEvents(()=>{u.forEach(g=>{g[t]?.(h,r,l,o,s)})},i)})}_notify(t,e,n=!1){this.dispatchEvents(()=>{this._listeners.forEach(r=>{r[t]?.(e)})},n)}}class ou{constructor(t,e){this._children=new Set,this._depth=0,this._container=null,this._closed=!1,this._container=t,e=typeof e=="string"?{description:e}:e,this._description=e?.description??"",e?.viewBefore!==void 0&&(t.record.viewBefore=t.record.viewBefore&&e.viewBefore?{...t.record.viewBefore,...e.viewBefore}:e.viewBefore),e?.viewAfter!==void 0&&(t.record.viewAfter=t.record.viewAfter&&e.viewAfter?{...t.record.viewAfter,...e.viewAfter}:e.viewAfter)}getView(){return this._container.record.viewAfter??this._container.record.viewBefore}getDepth(){return this._depth}getDescription(){return this._description}getStates(){return this._states}beginTransaction(t,e){this._ensureOpen();const n=new pm(this,this._container,typeof t=="string"?{description:t}:t,e);return this._children||this._children,this._children.add(n),n}updateState(t,e){this._ensureOpen();const n=this.getState(t),r=typeof e=="function"?e(n):e===void 0?n:{...n,...e};if(r){let o=this._states;o||(o=new Map,this._states=o),o.set(t,r)}return r}commit(t){if(this._ensureOpen(),typeof t=="string"&&(t={description:t}),t){if(t.description&&(this._description=t.description),t.meta&&(this._meta=w.CommonUtils.mergeContentful(t.meta,this._meta)),t.viewAfter!==void 0){const e=this._container.record;let n=t.viewAfter;if(n===null)e.viewAfter=null;else{const r=e.viewAfter;typeof n=="function"&&(n=n(r)),e.viewAfter={...r,...n}}}if(t.viewBefore!==void 0){const e=this._container.record;let n=t.viewBefore;if(n===null)e.viewAfter=null;else{const r=e.viewBefore;typeof n=="function"&&(n=n(r)),e.viewBefore={...r,...n}}}}return this._children&&this._children.forEach(e=>{e.commit(t)}),this}isClose(){return this._closed}_ensureOpen(){if(this._closed)throw this._descriptions&&console.warn(`stack: [${this._descriptions.join(",")}]`),new Error("Transaction already closed")}_removeChild(t){this._children.delete(t),this._mergeStates(t._states)}_mergeStates(t){if(!t||t.size===0)return;let e=this._states;return e?(t.forEach((n,r)=>{const o=this.updateState(r,n);e.set(r,o)}),e):(this._states=t,t)}}class fm extends ou{constructor(t,e,n,r,o){super(e,r),this._store=t,this._prevStates=n,this._onClose=o,this._states=new Map,this._meta=e.record.meta}getId(){return this._container.commit.getId()}getParent(){return this}commit(t){const e=this._states,n=this._container,r=n.record.viewAfter;this._store._notifyStates("onBeforeCommitStart",n,e,r,!1,!1),super.commit(t),this._store._notifyStates("onBeforeCommitEnd",n,e,r,!1,!1);const o=new Map(this._prevStates);return this._states.forEach((s,i)=>{s===null?o.delete(i):o.set(i,s)}),this._states=o,this._description&&(n.record.description=this._description),this._meta&&(n.record.meta=this._meta),n.record.states=o,this._closed=!0,this._onClose?.(this,!1,t),this._store._commitRecord(n,e,t?.forceAmend??!1),this}rollback(){return this._ensureOpen(),this._children&&this._children.forEach(t=>{t.rollback()}),this._closed=!0,this._onClose?.(this,!0,null),this}updateState(t,e){const n=super.updateState(t,e);return this._states.set(t,n),n}getState(t){let e=this._states.get(t);return e||(e=this._prevStates.get(t)),e}_mergeStates(t){return!t||t.size===0?new Map:super._mergeStates(t)}}class pm extends ou{constructor(t,e,n,r){if(super(e,n),!t)throw new Error("Parent transaction required");this._parent=t,this._depth=this._parent.getDepth()+1,this._onClose=r}getId(){return this._parent.getId()}getParent(){return this._parent}getState(t){const e=this._states?this._states.get(t):void 0;return e!==void 0?e:this._parent.getState(t)}commit(t){return super.commit(t),this._parent._removeChild(this),this._closed=!0,this._onClose?.(this,!1,t),this._parent??this}rollback(){return this._ensureOpen(),this._children&&this._children.forEach(t=>{t.rollback()}),this._parent._removeChild(this),this._closed=!0,this._onClose?.(this,!0,null),this._parent??this}}class Sm extends w.UndoManager{constructor(t,e=50){super(e),this._transactions=t;const n=this;t?.addListener({onCommitEnd:r=>{r.getDescription()&&n.addUndoOperation({description:r.getDescription(),undo:()=>(t.revert(r.getId()),()=>{t.restore(r.getId())})})}})}clear(){super.clear()}close(){this._removeLister()}}const su=()=>{try{return"0.7.22"}catch{return""}},nn=Object.freeze(Object.defineProperty({__proto__:null,getBuildDate:()=>{try{return"Sun Oct 19 2025"}catch{return""}},getBuildVersion:su},Symbol.toStringTag,{value:"Module"})),_m=`
7
+ https://www.sheetxl.com ${su()}`,Ti="#1976d2",wm=()=>typeof window=="object"?window.location.hostname:w.CommonUtils.getOS(),nr=Object.freeze(Object.defineProperty({__proto__:null,generateNodeId:async()=>"0",getKey:async()=>{throw new Error("getKey is not implemented in browser environment")},printBanner:async a=>{const t=a?console.log:w.CommonUtils.consoleWithNoSource,e=`%c
8
+ ███████╗██╗ ██╗███████╗███████╗████████╗ ██╗ ██╗██╗
9
+ ██╔════╝██║ ██║██╔════╝██╔════╝╚══██╔══╝ ╚██╗██╔╝██║
10
+ ███████╗███████║█████╗ █████╗ ██║ ╚███╔╝ ██║
11
+ ╚════██║██╔══██║██╔══╝ ██╔══╝ ██║ ██╔██╗ ██║
12
+ ███████║██║ ██║███████╗███████╗ ██║ ██╔╝ ██╗███████╗
13
+ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝${_m}
14
+ `;return await t(`${e}`,`font-family:monospace;color:${Ti};font-size:12px;`),Promise.resolve()},printDetails:async(a,t=!1,e=!1,n=!1)=>{let r;const o=console.log,s=[`color:${Ti};font-size:12px`];if(a.isEval())s.push(`font-family:monospace;color:${Ti};font-size:12px;`),r="%cEvaluation Only",s[0]="color:#E12929;font-size:12px",r+=`%c
15
+ Please visit https://my.sheetxl.com to register.`;else{r=`%cLicensee: ${a.getLicensee()??"Invalid License"}`;const i=a.getExpiration()?.toLocaleDateString();i&&(r+=`
16
+ Expires: ${i}`);const l=a.getDomains();l&&l.length>0&&(r+=`
17
+ Domains: ${l.join(", ")}`);const c=a.getCpuCount();c>0&&(r+=`
18
+ Cpus: ${c}`)}if(!n&&a.hasExceptions()){s.push("color:red;font-size:12px"),r+=`
19
+ Exceptions:
20
+ %c`;const i=a.getExceptions(),l=i.length;for(let c=0;c<l;c++)r+=` ${i[c]}`}if(e){s.push("color:#FFA726;font-size:12px"),r+="%c",r+=`
21
+ Location: '${wm()}'`;const i=a.getKeyFrom();i&&(r+=`
22
+ KeyFrom: '${i}'`)}return await o(`${r}`,...s),Promise.resolve()},setKey:async(a,t=!1)=>{throw new Error("setKey is not implemented in browser environment")}},Symbol.toStringTag,{value:"Module"})),ym=(a,t,e=126)=>((n,r,o=126)=>{let s=n.split("");for(let i=0;i<s.length;i++)s[i].charCodeAt(0)<=o&&(s[i]=String.fromCharCode((s[i].charCodeAt(0)+r)%o));return s.join("")})(a,e-t),Cm=a=>typeof window=="object"?window.atob(a):Buffer.from(a,"base64").toString("ascii");function ft(a,t){const e=yl();return ft=function(n,r){let o=e[n-=175];if(ft.ZIHIyq===void 0){const l=function(c,h){let d,u,g=[],m=0,f="";for(c=(function(p){let S="",_="";for(let E,C,I=0,y=0;C=p.charAt(y++);~C&&(E=I%4?64*E+C:C,I++%4)?S+=String.fromCharCode(255&E>>(-2*I&6)):0)C="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(C);for(let E=0,C=S.length;E<C;E++)_+="%"+("00"+S.charCodeAt(E).toString(16)).slice(-2);return decodeURIComponent(_)})(c),u=0;u<256;u++)g[u]=u;for(u=0;u<256;u++)m=(m+g[u]+h.charCodeAt(u%h.length))%256,d=g[u],g[u]=g[m],g[m]=d;u=0,m=0;for(let p=0;p<c.length;p++)u=(u+1)%256,m=(m+g[u])%256,d=g[u],g[u]=g[m],g[m]=d,f+=String.fromCharCode(c.charCodeAt(p)^g[(g[u]+g[m])%256]);return f};ft.rXsqrk=l,a=arguments,ft.ZIHIyq=!0}const s=n+e[0],i=a[s];return i?o=i:(ft.wWPEXJ===void 0&&(ft.wWPEXJ=!0),o=ft.rXsqrk(o,r),a[s]=o),o},ft(a,t)}(function(){const a="GE28",t="lhE&",n="ir(*",r="q$aP",s="Dt$4",i="Jmj&",l="rXZa";function u(p,S,_,E,C){return ft(_-548,p)}function g(p,S,_,E,C){return ft(C-487,p)}function m(p,S,_,E,C){return ft(E- -99,C)}const f=yl();for(;;)try{if(-parseInt(g(a,0,0,0,716))/1*(parseInt(g(t,0,0,0,799))/2)+-parseInt(m(0,0,0,224,"GE28"))/3*(parseInt(m(0,0,0,234,n))/4)+parseInt(g("tISf",0,0,0,806))/5+parseInt(g(r,0,0,0,707))/6+-parseInt(g(s,0,0,0,770))/7*(parseInt(u(i,0,812))/8)+parseInt(u(")9M0",0,732))/9+-parseInt(g(l,0,0,0,746))/10===931148)break;f.push(f.shift())}catch{f.push(f.shift())}})();const Js=()=>{const e="iypn",n="E%in";if(typeof window===r(1187,1146,"7073"))return window[r(1287,1326,"#c4A")][o(-446,-346,-309,e)];function r(s,i,l,c,h){return ft(s-917,l)}function o(s,i,l,c,h){return ft(i- -677,c)}return w.CommonUtils[o(0,-437,0,n)]()},Wa=()=>{const e="abYw";function o(l,c,h,d,u){return ft(u-49,c)}return Js()[s=701,i="m6RL",ft(s-396,i)](o(0,"rXZa",0,0,315))||Js()===o(0,e,0,0,243);var s,i};function Ne(a,t,e,n,r){return ft(t- -898,r)}function Sn(a,t,e,n,r){return ft(t- -790,n)}const Em=(a,t,e,n)=>{const r="[3zo",s="y@P5",i="GE28";function h(m,f,p,S,_){return ft(_- -372,f)}function d(m,f,p,S,_){return ft(S- -812,p)}function u(m,f,p,S,_){return ft(m-138,f)}function g(m,f,p,S,_){return ft(m- -165,f)}return{getLicensee:()=>a[h(0,")9M0",0,0,-94)],getExpiration:()=>new Date(a[h(0,"xUTw",0,0,-87)]),getDomains:()=>a[g(138,"IO!T")]??[],getDeveloperCount:()=>a[d(0,0,"q$aP",-444)]??1,getCpuCount:()=>a[g(152,"m6RL")]??0,getType:()=>{return a[m=456,f="tZ[*",ft(m-157,f)]??u(478,"0(VX");var m,f},getExceptions:()=>t,hasExceptions(){return!!t&&t[m=-276,f=i,u(m- -711,f)]>0;var m,f},isValidFor:m=>{return!(t?.[p=533,S=s,h(0,S,0,0,p-695)]>0);var p,S},isValid:()=>!0,isEval:()=>!1,getFeatures:()=>Object[h(0,"Bzz1",0,0,-110)](a[h(0,"abYw",0,0,-16)]??{}),getKeyFrom:()=>e,getBuildVersion:nn[d(0,0,r,-603)],getBuildDate:nn[u(382,"GE28")]}};function Te(a,t,e,n,r){return ft(n-213,e)}const Jl=a=>{const e="3r0&",r="aX%8",o="tZ[*",i="xUTw",l="7073",c="0Piy";let h=w.CommonUtils[u(-147,30,-73,-58,"IO!T")];function d(m,f,p,S,_){return ft(m- -481,p)}function u(m,f,p,S,_){return ft(S- -273,_)}function g(m,f,p,S,_){return ft(m-63,p)}if(Wa()||w.CommonUtils[d(-190,0,e)]()){const m=nn[g(350,0,"AMiU")](),f=new Date(m),p=new Date;Math[u(0,0,0,-19,r)]((p[d(-188,0,o)]()-f[g(389,0,i)]())/864e5)>=120&&(h=[d(-260,0,l)])}else h=[];return{getLicensee:()=>u(0,0,0,-97,"haSn"),getExpiration:()=>null,getDomains:()=>[Js()],getDeveloperCount:()=>1,getCpuCount:()=>0,getType:()=>u(0,0,0,54,"0Piy"),isEval:()=>!0,getExceptions:()=>h,hasExceptions:()=>h[u(0,0,0,4,"7073")]>0,isValidFor:()=>{return h[m="tZ[*",f=997,ft(f-805,m)]===0;var m,f},isValid:()=>!1,getFeatures:()=>Object[d(-228,0,")9M0")]({}),getKeyFrom:()=>a,getBuildVersion:nn[g(305,0,"%%[3")],getBuildDate:nn[u(0,0,0,-48,c)]}},ql=()=>{const e="PS0L",r="1fPO",s="Jmj&",i="1fPO";function c(p,S,_,E,C){return ft(S- -346,C)}if(vt[c(0,-8,0,0,"tj0u")]&&vt[g(1062,1150,1033,e)])return!1;const h=vt[c(0,19,0,0,"I3%r")];var d,u;function g(p,S,_,E,C){return ft(p-799,E)}var m,f;return!!(h[d=r,u=806,ft(u-605,d)]()||h[m=-189,f=s,ft(m- -484,f)]()||h[g(1025,0,0,i)]()?.pb)},vt={promise:null,printNeeded:!1,details:null,bannerPrinted:!1,detailsPrinted:!1,licenseKey:null,keyFrom:null};function je(a,t,e,n,r){return ft(a-466,n)}let Mi=!1,Xl=!1;function On(a,t,e,n,r){return ft(r- -918,t)}const Kl=Ne(0,-690,0,0,"ir(*")[Ne(0,-684,0,0,"i]Sa")]("")[Sn(0,-613,0,"0Piy")]((a,t)=>t+a,"");class Im{constructor(){function e(n,r,o,s,i){return Sn(0,i-61,0,o)}this[e(0,0,"G[z%",0,-550)][e(0,0,"xUTw",0,-367)]=null}async[Te(0,0,"ir(*",573)](t,e=!1){const n="3r0&",i="R2By",l="Jmj&",c="Dt$4",h="I3%r",m="(2g&",S=")9M0",_="AMiU",I="0Piy",v="haSn",k="Dt$4";if(!t||t[H(-435,-414,-410,"AMiU")](H(-391,-439,-444,n))||t[H(-471,-414,-433,"AMiU")](G(1144,1138,1102,1192,i))||t[H(-441,-401,-389,l)](H(-467,-388,-393,"1fPO"))||t[B(-397,-446,-387,-390,c)](B(-398,-361,-508,-419,h)))return Mi=!0,w.CommonUtils[G(1188,1271,1264,1319,m)]()&&await nr[D(216,177,182,240,"#c4A")](t,e),await this[G(1085,1176,1133,1087,S)](!0);function D(z,V,j,q,J){return je(z- -598,0,0,J)}function B(z,V,j,q,J){return Te(0,0,J,q- -940)}if(Mi=!1,!e&&vt[B(0,0,0,-549,_)]){const z=await this[H(-504,-497,-571,")9M0")]();if(z[D(118,0,0,0,"kCpc")]()&&!z[G(1140,1269,1236,1194,I)]())return z}vt[G(1194,1186,1235,1224,v)]=t,vt[H(-365,-378,-444,"y@P5")]=H(-471,-512,-569,"GE28"),vt[D(156,0,0,0,"1@qr")]=null,vt[G(1178,1135,1214,1258,"[3zo")]=null;const P=await this[L=180,W="lhE&",Te(0,0,W,L- -298)]();var L,W;if(!P[G(1338,1182,1266,1176,k)]())throw await this[D(226,0,0,0,"haSn")](!0),new Error(H(-455,-522,-452,"ir(*"));function H(z,V,j,q,J){return je(V- -1174,0,0,q)}function G(z,V,j,q,J){return Ne(0,j-1820,0,0,J)}return await nr[D(58,0,0,0,"m6RL")](t,e),P}async[Ne(0,-650,0,0,"B7ow")](t=!1){const e="1fPO",n="abYw",o="3r0&",s="%%[3",i="mJcu",h="i]Sa",g="AMiU",f="0(VX",S="B7ow",_="0Piy",E="Uljv",I="G[z%",y="mJcu",v="Jmj&",x="9aS6",k="iypn",O="c[S]",W="tj0u",G="Jmj&",z="iypn",V="GE28",X="1@qr";function $(at,_t,dt,pt,Rt){return On(0,at,0,0,dt-196)}if(t&&(vt[$(e,-407,-411,-476)]&&!vt[$("0Piy",-393,-443,-458)]&&this[ct(-491,n,-531,-458)](),vt[et(-35,e,-116,64,-17)]=!0),vt[ct(-526,o,-518,-426)])return vt[$(s,0,-450)];if(!this[et(22,i,68,53,41)][ot(1001,h,1070)]&&(this[ct(-472,i,-387,-467)][Y(840,769,"7073")]=new Error("FV")),vt[Y(729,780,"G[z%")])return vt[ct(-482,"m6RL",-497,-430)];let tt=null;vt[et(-68,g,-96,30,-25)]=new Promise(at=>{tt=at});let st,K=null;const nt=async(at,_t)=>{try{const wt=(Et=>{let it=Et;const ut=it[it.length-1],St=ut.charCodeAt(0)-52;if(it=it.substring(0,it.length-1),it=it.split("").reverse().join(""),it=Cm(it),it=it.trim(),it[it.length-1]!==ut)throw new Error;it=it.substring(0,it.length-1),it=ym(it,St);try{it.startsWith("{")||(it="{"+it);const ht=JSON.parse(it),bt={licensee:ht.l,domains:ht.d,nodeId:ht.n,expiry:ht.e,developerCount:ht.dc,cpuCount:ht.cc,type:ht.t};return ht.f&&(bt.features=ht.f),bt}catch{throw new Error("Invalid license key.")}})(_t),Ft=await(async Et=>{const it="1@qr",ht="Bzz1",bt="0Piy",Nt="c[S]",Ct=")9M0",Mt="1fPO",fe="3G2!",Yn="3G2!",Dr="3r0&",Qn="G[z%",Uo=Et[zo("tj0u",358,401,367)];function zo(Ae,kn,Be,tr,er){return ft(tr-58,Ae)}const Po=Et[Ai(-421,-311,-387,"1@qr",-410)]?new Date(Et[Ai(-395,-393,-323,it,-410)]):null;function Wo(Ae,kn,Be,tr,er){return ft(kn- -505,er)}Et[Hl(425,328,ht)];const Nn=[];function Zn(Ae,kn,Be,tr,er){return ft(Ae-815,Be)}function Ai(Ae,kn,Be,tr,er){return ft(er- -728,tr)}if(Po?isNaN(Po)?Nn[Wo(0,-300,0,0,"i]Sa")](Zn(1012,0,Nt)):Po<new Date&&Nn[zo("haSn",0,0,359)](Wo(0,-250,0,0,Ct)+Po[Zn(1066,0,"ir(*")]()):Nn[Wo(0,-141,0,0,"q$aP")](Zn(1113,0,bt)),!w.CommonUtils[Zn(1082,0,Mt)]()){if(Wa())return Nn;if(Uo&&Uo[zo(fe,0,0,307)]!==0){let Ae=!1;const kn=Js();for(let Be=0;!Ae&&Be<Uo[Zn(1021,0,Dr)];Be++)Ae=kn[Zn(1019,0,Qn)](Uo[Be]);!Ae&&Nn[Ai(0,0,0,"q$aP",-364)](Hl(450,433,"rXZa"))}else Nn[Wo(0,-266,0,0,fe)](zo(Yn,0,0,390))}function Hl(Ae,kn,Be,tr,er){return ft(Ae-232,Be)}return Nn})(wt),Gt=Em(wt,Ft,at);return Gt[pt=-110,Rt=-143,se=X,ot(pt-474,se,Rt- -1289)]()&&(st=Gt),Gt}catch{st=(Ft=>{function Et(St,ht,bt,yt,Nt){return ft(bt- -547,ht)}return{getLicensee:()=>null,getExpiration:()=>null,getDomains:()=>[],getDeveloperCount:()=>0,getCpuCount:()=>0,getType:()=>Et(0,"R2By",-330),getExceptions:()=>{return[(St=-87,ht="tZ[*",Et(0,ht,St-150)+Ft+"'")];var St,ht},hasExceptions:()=>!0,isValidFor:St=>!1,isValid:()=>!1,isEval:()=>!1,getFeatures:()=>Object[Et(0,"]@zT",-247)]({}),getKeyFrom:()=>Ft,getBuildVersion:nn[it=1271,ut="mJcu",ft(it-925,ut)],getBuildDate:nn[Et(0,"AMiU",-260)]};var it,ut})(at)}var pt,Rt,se};vt[Y(660,628,f)]&&(K=await nt(vt[Y(760,697,"[3zo")],vt[$(S,0,-494)]));let rt=!1;function et(at,_t,dt,pt,Rt){return On(0,_t,0,0,Rt-625)}function Y(at,_t,dt,pt,Rt){return Te(0,0,dt,_t-228)}if(Mi&&(rt=!0,K=Jl($("abYw",0,-348))),!K)if(w.CommonUtils[$(_,0,-464)]()){if(!K){const at=process[et(0,"0(VX",0,0,-70)],_t=at[et(0,E,0,0,36)]||at[ot(1070,"1@qr",1119)]||at[$(I,0,-503)]||at[et(0,y,0,0,9)];_t&&(K=await nt(ot(1346,v,1246),_t))}if(!K){const at=await nr[$("[3zo",0,-527)]();at&&(K=await nt(ct(-572,x,-617,-657),at))}!K&&(rt=!0)}else{if(!K){let at=!1;try{const _t=await fetch("./"+Kl);let dt=null;if(_t[Y(0,702,"9aS6")]===200){const pt=(await _t[Y(0,763,I)]())[ct(-561,g,-615,-564,-606)](`
23
+ `),Rt=pt[ot(1148,k,1087,1098,1182)];for(let se=0;!dt&&se<Rt;se++){const wt=pt[se][$(O,0,-534)]();wt[et(0,"tj0u",0,0,74)]!==0&&(wt[ot(1239,g,1183,1229,1124)](et(0,W,0,0,70))?at=!0:dt=wt)}}if(at&&dt){const pt=Y(0,737,"R2By")+Kl+"')";K=await nt(pt,dt)}}catch{}}!K&&Wa()&&(rt=!0)}function ot(at,_t,dt,pt,Rt){return je(dt-423,0,0,_t)}function ct(at,_t,dt,pt,Rt){return Ne(0,at-92,0,0,_t)}return!K&&rt&&(K=Jl(Y(0,812,G))),!K&&st&&(K=st),!K&&(K={getLicensee:()=>null,getExpiration:()=>null,getDomains:()=>[],getDeveloperCount:()=>0,getCpuCount:()=>0,getType:()=>null,isEval:()=>!1,getExceptions:()=>[Y(0,716,"3G2!")],hasExceptions:()=>!0,isValidFor:at=>!1,isValid:()=>!1,getFeatures:()=>Object[Y(0,807,"i]Sa")]({}),getKeyFrom:()=>Y(0,725,"3r0&"),getBuildVersion:nn[$("haSn",0,-510)],getBuildDate:nn[ct(-573,"kCpc")]}),vt[ct(-575,"0(VX")]=K,vt[$("Uljv",0,-379)]=t&&ql(),tt(K),vt[ct(-579,z)]&&this[et(0,V,0,0,13)](),vt[Y(0,641,"y@P5")]}async[On(0,"(2g&",0,0,-569)](t){const e="3G2!",n="%%[3",r="GE28";vt[d(972,963,1054,998,"y@P5")]=!0;const c=await this[u("abYw",-643,-568,-635)]();function h(g,m,f,p,S){return je(S-335,0,0,g)}function d(g,m,f,p,S){return Sn(0,f-1528,0,S)}function u(g,m,f,p,S){return Te(0,0,g,p- -1051)}return await nr[u("0(VX",-623,-600,-600)](t),!t&&!vt[d(0,0,1091,0,e)]&&(c[u(n,-647,-706,-616)]()||c[h("PS0L",0,0,0,1074)]())&&await this[h(r,0,0,0,1091)](t,c[h(")9M0",0,0,0,1008)]()),Promise[d(0,0,1074,0,"3r0&")]()}async[On(0,"Uljv",0,0,-567)](t=!1,e=!1,n=!1){const c="#c4A";vt[g(703,743,732,"GE28")]=!0;const u=await this[m(-515,-485,"mJcu")]();function g(p,S,_,E,C){return Ne(0,p-1315,0,0,E)}function m(p,S,_,E,C){return je(p- -1205,0,0,_)}function f(p,S,_,E,C){return Sn(0,p-1272,0,E)}vt[f(836,854,824,"PS0L")]||!u[m(-378,-329,"G[z%")]()&&!u[g(592,646,650,"IO!T")]()?await nr[m(-450,0,c)](u,t,e,n):await this[f(695,686,660,"G[z%")](t)}async[je(747,0,0,"0(VX")](){const t=")9M0",n=")9M0";if(ql()){if(Xl)return void setTimeout(()=>{var s,i;this[s=-409,i=n,ft(s- -669,i)](!1,!1)},8e3);await this[r=t,o=1065,Te(0,0,r,o-592)](!1,!1)}var r,o}async[je(648,0,0,"lhE&")](t,e){const r="(2g&",i="0Piy",l="tZ[*",c="[3zo";if(!t&&(vt[E(337,369,"9aS6",403)]||vt[E(404,481,r,422)]))return;var m,f;vt[E(391,413,"B7ow",409)]=!0,vt[_(i,199,250)]=!0,await this[m=l,f=-514,Te(0,0,m,f- -1079)](t);const p=w.CommonUtils[_(c,370,326)](),S=t||p?console[_("R2By",328,258)]:w.CommonUtils[E(425,432,"ir(*",405)];function _(y,b,v,R,x){return Te(0,0,y,v- -237)}function E(y,b,v,R,x){return Te(0,0,v,R-7)}var C,I;p&&S(""),await this[C="iypn",I=33,Ne(0,I-699,0,0,C)](t,e),S("")}[Ne(0,-662,0,0,"tZ[*")](){return this[t="G[z%",e=866,Te(0,0,t,e-294)](!0);var t,e}[On(0,"[3zo",0,0,-549)](t){return this[e=-368,n="(2g&",Ne(0,e-339,0,0,n)](!0,t);var e,n}[Sn(0,-435,0,"0(VX")](){return vt[o=-114,s="kCpc",Ne(0,o-409,0,0,s)]||vt[n="Lo*O",r=825,je(r- -14,0,0,n)];var n,r,o,s}[Sn(0,-519,0,"tj0u")](t){Xl=!0}async[On(0,"q$aP",0,0,-573)](){return this[t="3G2!",e=-486,je(e- -1195,0,0,t)](!0);var t,e}async[Sn(0,-443,0,"G[z%")](t,e){const s=await this[i=58,l="tISf",Sn(0,i-601,0,l)]();var i,l,c,h;return await this[c="(2g&",h=-256,Ne(0,h-396,0,0,c)](!0,t,e),s}async[On(0,"Bzz1",0,0,-683)](){var t,e;return await nr[t=-268,e="%%[3",Te(0,0,e,t- -806)]()}}const wl=new Im;function yl(){const a=["WR0xgCkdW4pcNSkS","kdtcJdRcJK8","C8oOdCkrpCoz","q8odWOhcPmoZW4NdHmo7W4PVW6ddPSoN","W540hqhcICoUcq","WR02gSkYWOZcLaBdI8k6i0FcTCkS","W7imlNiVcqTLW6VdHCkaWRC5W5e","EGhdK8kDWPhcGCk2qmoDdcFdNmo3pJBcVSkOuZG","gCofi3hcKqhcI0FdQtav","CmoVcCktkSof","lhmtWQXMWQtdPCo/","W7qinh0JfYHhW7ddGSkAWQy4","lI/cKd7cKXXW","BCohWQlcVCkndCk6WRG","W4y+qq","W7xdNfVdMea9W5hdJevpBq","edldNZJcNXy","ENBcUWnvbG","Dmk+x8ksWQldSvT2wIbMDcL5","WQOaaSkSW5/cHmkLWRRcQhDPWPK","W5vhdflcTaxcUW","WOK7W5LtW6qpWOW9W5tdHmogsa","t8kRwCkAWQxdQwXdxcHHBd8","nY7cStZcNGO","WQaJsIdcItxcPa","WQFdGmk6A8kXW7ep","WR4rf8kCW57cNSkEWRFcMh4","W4/cQvXSW4VcHCkRCmo/xxhcPmo7","W4W0uNxcHmo+WQNcRSoa","Fmk+rCkuWR/dTq","W5GgENy+frfhW7JdMmkhWQWY","WRtdNmk+wG","u8ocumk1tKm","WRa3W7BdSq","WP0EW5xdIIOOmCo1W7KBWOJdVCkMW4nSW4hdQdS5","ct7cP0pcNCoKWRO","W7BdNfFcQq8HW6VdSxe","xHqta8oZWQbxWQS","t8k/rmkJWRNdTezs","W5tcVe5BW4FcLCkzACo/xa","E8oGWPvL","vmozWPZcTCoOW4ldHa","WONdI8k4xSk0W7uoW6vwW7P2q8oxWP/cSCoUW5SyrmoBW5FdOKtdRGPqW48","dCospN7cJcpcNq","cCo7WOBdUCkuW4HoWPvPsmof","WQWRW6BdVdlcMCkZEfpdTW","W78Ah2uNcq","WQNcMCkZFgJdQCk2ka","W7nhWOGJWQH2fvzjW7foWQi8","waOcm8olWRXnWRC","W5rAcfRcRXa","ACktW6aapZ7cKmk7W7/dJhFcJ1W","hCofi37cIq","BSkrW6ugnJtcL8oVW7ldHvZcRNZcJG","W5VcJSk/WRC","jCoSCCkDWONdU2Tn","sWGyhConWRPg","W4KJhaNcKSo8gg5taSouvcxcJG","EgVcVZ5oeHe","W7mFo38","ASoRc8kbo8oRW7y","W7FdTHxcSK7cH1q6W6FcVSobWOFcSSkbW6yEpmk4tG","W7PdWP8lWR9Rka","iSocjrW9WRXmWRi","EGhdK8kvWPFcJ8kYr8oagIFdN8o1ncpcVSkQxZNdJG","ub0qc3hdVSoXdSoRWQpcHSoQ","WRePW4ddNteKmSo1W4O","WQmrW5z0W7u0lgjYW6vqWRu","ldJcJdZcLHLW","WRtcMalcNGibW43dLLnj","uSoxWP/cUSoKW57dP8o6W7nZW73dRCo3","W5/cMCkOWQ4JWRpdVW","CComWQdcGmkkcSk9WRJcGG","adZdUrFcUudcKSkgW5r7W4y","w8k8eCkyW5lcPG","W5tdJdNcMw7cKx0aW4/cKSoM","WQ7cNZxcJrOBW74","dmkCW6tdNrO5dwzFW5FdTq","WOKtW4tdRsS5mCooW4mxWPNdQ8kHW59N","W5/cMCkUWQ0+WOtdV8oWdWDzW5y","WOOSW4r2W7uY","BCk/lCkEW5JcTY3dPCofnuldKW","WRKIAYlcHcm","W7VdJIlcNNtcQ1WaW5/cLSoRWQ7cJW","WP/dLCk8vSk2W6GOWQr0W71Wva","uaVcH8kqWPhcJSkGFSoCagNdMmoGnq","WRC2b8kzWPhcHtpdICkNjfZcVSk7","rCocWR7cVCkndCk6WRJcNJe","WPdcMmk9wg/dSSk9lW","W4lcPLL/W5lcLa","WP8YW7FdSdlcNG","W7dcNCkMWQ8JWQtdU8oWcW","eu9uFIdcRCo9jSokWRZcP8o9mq","W4BcMmkcWRuRWQW","Aw/cPX9coqi","e8kwWR3cVCoIW4NdMCo7W789W4ldRCoQ","dmkBW77dMW","ESoZWObOW6RcV8ow","W5lcVduHACoZ","xmotWP/cS8o1W4q","gmklW7VdLGiuhg1dW7hdQadcTCkH","WQaJtcpcLa","WPuMW5nCW6qIWOyN","W6NcPW9LW5RcHCkRBSo4ut7cGCoTcW","cK9drmoJWQvkWQNdTSk6","W7VdP3fqWQrgx8kOrgfrWQ0tnW","WRpcI8k9qdRdJmkXp8kkmCkxW67cTcJdTCk4","W4FdTHnRW4DstWdcLxqPWQpcPW","btdcUwFcJmoPWQZcSSoEWRNcLgSf","WOu0W6tdTsNcI8kIwLNdOmkxWPS2wCoVvmonWQy","W6qmpMyLaa","WQemfCklW4tcNSkSWPxcIw8","W7dcTmk3WReLWRtdTCoBmq","W488r3/cGmo2","W4lcRZWXDSoqxq","z8k6W4dcO8ooW4O","f2tdHLdcSSknWQZcRSkXW7uRumoV","Cs5bW78XW6tcSSkRW5ieW5TJArG","auvoqsBcOSo9h8oqWQ3cHmowjYBcL8okz2Pz","k0rwuYxcP8o8AmovWRdcJ8o9jGBcNCkFFMXfW40","xSokWQ7cImkrf8kXWOFcNIW","W7pdUmo7WPK","drvjnmkgvmkHE8oLduNdV8kH","sb8do8obWRa","BCk/lCkEW5JcTW","WQZdGmkGwmkSW7q","WPtdMmkvmSkNWOe","W4FdJ8oRaIRcRSoOCSoE","WRC0uqBcHt8","y8k+x8k/WQldVK1iwYXdztu","W47dPmoKWPuaW50NW67cHZaRzYP+sCkElYm","jSoioa8NWRu","B23dIMddJLWMW5aXbcNdIshdOW","W7vdWPiSWQrOnG","amoed2NcHcm","vSkQk8kwW5/cRXZdLmozmKNdLsxdGa","WPhcMmkOAh/dTmk5nCkdla","W4RcHCkJWRaDWQNdRSoS","W4tcUYmS","mJJcKttcJGC","khSdWOXWWRtdPCoQW5mbW7f7tG","aunmhcxcTSoSlCoCWRhcNW","WRC0uq/cLs/cRCkpmxvOECkszSkg","W71dWOGQWRLS","h2WrWQvHWRpdOCoUW4i","WQCNW7hdMYNcG8k6v2ddQ8ofWQq2vCoK","W7dcM8k1WQOKWRtdMmoLaabqW5C","W4FcVJWTzW","kdZcULBcJColWRVcSmolWQK","kmkGW4a5WRpdQSkqdmkgjSk+fgq","W4m/uhFcGmk/W6O","E2lcT0ldO2BcVCovW5j6W5ldSdRcGa","W5ZcG8kIWQy+WRJdTG","rCoCWR7cGv5jxhfqW7FdIs3cGq","wCo8bSkyk8omW7tcP8k6qaaYW7xcPmo4WR5xkSkqBe1Fkuu7","W4C1nXRcGCoX","v8onWRS","WOKtW4tdQZSKpmodW7Kb","W7emlLeZdbrrW53dJCkAWQy","dSospLNcGc7cMLFdVZac","oSoFpWyNWPneWRlcNXC+","aX1ep8knvCkuqSoPgG","iCoRh8k2WRldJLLOFG","W6jQpxBcIthcHa","vSogWRNcJmkwcmkN","fCoDjae9WQLLWRlcJXmZgbi","W4ldSGLhW5DjCXBcUhSPWQm","fMRdHLJcVSkyWQ/cQmk3W6K6","WP3dKSkfgCkbWOhdNmoUkq","WQFdGmk6E8k9W6GlWQX2W6a","F8kAdayrWRTIWRW","qSorWQtcG8kljSk1WQlcLtdcLW","rbVcGmkz","W6ZcICoSofG","CmkJksOWW6ddTSoRBSo9WRi","W4KJbI7cLCo0ag9lcmocqGxcHCo6","AX7cGCkyWPBcLSkrt8oab2ldNG","D8k+x8kXWR7dTercBcH8zq","WR4vgSkhW54","BCk/lCkEW5JcTYVdOCoFoK7dJtm","omoaWQb0ANpdHmk3W6VdMG","majgnSkkqSkqFCoP","waVcNCkwWOZcIG","W4ZdPcTKW45jEW","fKvSxsRcR8o0lCo9WRJcMmo9gWhcISowE24","jCk4vmogBSkFWRdcT8k0A24AW4O","jMGvWQXYWRi","W6Xhrejr","dhmtWQXMWQtdPCk6W4iqW658tZRdTmkyo39I","WRS0xaVcKINcRa","W5Ldc3BcPqRcRqG3W5PBWP9k","W78AfhWIaa","aZZdTbdcUZZdQSofW6jbW5xdVt3cPa","h2OcWQbMWQm","bNhdIuRcOSkm","WPZdHCkumSkuWOa","WReYhCkwWP3cMXddQ8k8i0BcR8k6WQa","WPBdVrSDW7tcISkNASo5xq","z8k8W5pcPSojW5PTWOba","xMpcOKldO2FcTSkgW4i","amoebhdcGsO"];return(yl=function(){return a})()}const Ha=(a,t)=>{const e=[];for(let n=0;n<a.length;n++){const r=a[n];e.push({x:r.x+t.x,y:r.y+t.y})}return e},Va=(a,t)=>{if(!a)return{...t};if(!t)return{...a};let e=Math.min(a.x,t.x),n=Math.min(a.y,t.y);return{x:e,y:n,width:Math.max(a.width+a.x,t.width+t.x)-e,height:Math.max(a.height+a.y,t.height+t.y)-n}},Fi=a=>[{x:a.x,y:a.y},{x:a.x+a.width,y:a.y},{x:a.x+a.width,y:a.y+a.height},{x:a.x,y:a.y+a.height}],ja=a=>{let t=Number.MAX_SAFE_INTEGER,e=Number.MAX_SAFE_INTEGER,n=Number.MIN_SAFE_INTEGER,r=Number.MIN_SAFE_INTEGER;for(let o=0;o<a.length;o++){let s=a[o];t=Math.min(t,s.x),e=Math.min(e,s.y),n=Math.max(n,s.x),r=Math.max(r,s.y)}return{x:t,y:e,width:n-t,height:r-e}},Ni=(a,t,e)=>{if(!e){const i=ja(a);e={x:i.x+i.width/2,y:i.y+i.height/2}}a=Ha(a,{x:-e.x,y:-e.y});const n=t*Math.PI/180,r=Math.sin(n),o=Math.cos(n),s=[];for(let i=0;i<a.length;i++){const l=a[i],c=o*l.x-r*l.y,h=r*l.x+o*l.y;s.push({x:c,y:h})}return a=Ha(s,{x:e.x,y:e.y})},iu=(a,t,e,n,r,o,s,i,l=!0)=>{if(a===e&&t===n||r===s&&o===i)return!1;let c=(i-o)*(e-a)-(s-r)*(n-t);if(c===0)return!1;let h=((s-r)*(t-o)-(i-o)*(a-r))/c,d=((e-a)*(t-o)-(n-t)*(a-r))/c;return(!l||!(h<0||h>1||d<0||d>1))&&{x:a+h*(e-a),y:t+h*(n-t)}},ne=(a,t,e=!0)=>iu(a.p1.x,a.p1.y,a.p2.x,a.p2.y,t.p1.x,t.p1.y,t.p2.x,t.p2.y,e),Ho=a=>({top:{p1:a[0],p2:a[1]},left:{p1:a[3],p2:a[0]},right:{p1:a[1],p2:a[2]},bottom:{p1:a[2],p2:a[3]}}),Yl=(a,t,e)=>{let n=e*Math.PI/180,r=Math.sin(n),o=Math.cos(n);return{x:a*o-t*r,y:a*r+t*o}},dn=(a,t)=>{let e=a.p2.x-t.x,n=a.p2.y-t.y;const r=Yl(e,n,90);e=r.x+t.x,n=r.y+t.y;let o=a.p1.x-t.x,s=a.p1.y-t.y;const i=Yl(o,s,90);return o=i.x+t.x,s=i.y+t.y,{p1:{x:o,y:s},p2:{x:e,y:n}}},bm=Object.freeze(Object.defineProperty({__proto__:null,angleToPoints:(a,t)=>{const e=(180-a)/180*Math.PI,n=Math.abs(t.width*Math.sin(e))+Math.abs(t.height*Math.cos(e)),r=Math.sin(e)*n/2,o=Math.cos(e)*n/2,s=t.width/2,i=t.height/2;return{x1:s-r,y1:i-o,x2:s+r,y2:i+o}},boundsToPoints:Fi,centerPoint:a=>({x:a.width/2+a.x,y:a.height/2+a.y}),clipToOuterRect:(a,t,e=0)=>{if(e<0&&(e+=360),e>90&&e<=180?e+=180:e>180&&e<=270&&(e-=180),e===0||e===180)return{height:t.height,width:t.width};if(e===90||e===270)return{height:t.width,width:t.height};let n=Fi({...t,x:0,y:0}),r=Fi({...a,x:0,y:0});r=Ha(r,{x:t.width/2-a.width/2,y:t.height/2-a.height/2}),r=Ni(r,e);let o=Ho(r),s=Ho(n);if(e>90){const l=ne(o.top,s.top);if(l){const h=l,d=ne(o.bottom,s.bottom,!1)||r[3];r[0]=ne(o.top,dn(o.bottom,d),!1)||r[0],r[1]=h,r[3]=d,r[2]=ne(o.bottom,dn(o.top,h),!1)||r[2],o=Ho(r)}const c=ne(o.top,s.left);if(c){const h=c,d=ne(o.bottom,s.right,!1)||r[2];r[0]=h,r[1]=ne(o.top,dn(o.bottom,d),!1)||r[1],r[3]=ne(o.bottom,dn(o.top,h),!1)||r[3],r[2]=d}}else if(e<90){const l=ne(o.top,s.top);if(l){const h=l,d=ne(o.bottom,s.bottom,!1)||r[2];r[0]=h,r[1]=ne(o.top,dn(o.bottom,d),!1)||r[1],r[3]=ne(o.bottom,dn(o.top,h),!1)||r[3],r[2]=d,o=Ho(r)}const c=ne(o.top,s.right);if(c){const h=c,d=ne(o.bottom,s.left,!1)||r[3];r[0]=ne(o.top,dn(o.bottom,d),!1)||r[0],r[1]=h,r[3]=d,r[2]=ne(o.bottom,dn(o.top,h),!1)||r[2]}}r=Ni(r,-e);const i=ja(r);return{width:i.width,height:i.height}},findIntersectMath:(a,t,e,n)=>{let r=iu(a.x,a.y,t.x,t.y,5e4,0,-5e4,0);return r&&(e=Math.min(e,r.x),n=Math.max(n,r.x)),{min:e,max:n}},leastSquaresSlopeAndIntercept:a=>{let t=0,e=0,n=0,r=0,o=0,s=0,i=0,l=a.length;if(l===0)return{m:0,b:0};if(l===1)return{m:1,b:a[0]};for(let h=0;h<l;h++)s=h+1,i=a[h],i==null||isNaN(i)||(t+=s,e+=i,r+=s*s,n+=s*i,o++);const c=(o*n-t*e)/(o*r-t*t);return{m:c,b:e/o-c*t/o}},minBoundingRect:ja,rotatePoints:Ni,unionBounds:Va},Symbol.toStringTag,{value:"Module"}));class mt{constructor(t,e,n){this._root=ki,this._size=0,this._maxNodeSize=n>=4?Math.min(n,256):32,this._compare=e||mt.defaultComparator,t&&this.setPairs(t)}get size(){return this._size}get length(){return this._size}get isEmpty(){return this._size===0}clear(){this._root=ki,this._size=0}forEach(t,e){return e!==void 0&&(t=t.bind(e)),this.forEachPair((n,r)=>t(r,n,this))}forEachPair(t,e){const n=this.minKey(),r=this.maxKey();return this.forRange(n,r,!0,t,e)}get(t,e){return this._root.get(t,e,this)}set(t,e,n){this._root.isShared&&(this._root=this._root.clone());const r=this._root.set(t,e,n,this);return r===!0||r===!1?r:(this._root=new So([this._root,r]),!0)}has(t){return this.forRange(t,t,!0,void 0)!==0}delete(t){return this.editRange(t,t,!0,mt.DeleteRange)!==0}with(t,e,n){const r=this.clone();return r.set(t,e,n)||n?r:this}withPairs(t,e){const n=this.clone();return n.setPairs(t,e)!==0||e?n:this}withKeys(t,e){const n=this.clone();let r=!1;for(let o=0;o<t.length;o++)r=n.set(t[o],void 0,!1)||r;return e&&!r?this:n}without(t,e){return this.withoutRange(t,t,!0,e)}withoutKeys(t,e){const n=this.clone();return n.deleteKeys(t)||!e?n:this}withoutRange(t,e,n,r){const o=this.clone();return o.deleteRange(t,e,n)===0&&r?this:o}filter(t,e){const n=this.greedyClone();let r;return n.editAll((o,s,i)=>{if(!t(o,s,i))return r=mt.DeleteValue}),!r&&e?this:n}mapValues(t){const e=this.greedyClone();return e.editAll((n,r,o)=>t(r,n,o)),e}reduce(t,e){let n,r=0,o=e;const s=this.entries(this.minKey());for(;!(n=s.next()).done;)o=t(o,n.value,r++,this);return o}entries(t,e){const n=this.findPath(t);if(n===void 0)return rr();let{nodeQueue:r,nodeIndex:o,leaf:s}=n,i=e!==void 0?1:0,l=t===void 0?-1:s.indexOf(t,0,this._compare)-1;return rr(()=>{t:for(;;)switch(i){case 0:if(++l<s.keys.length)return{done:!1,value:[s.keys[l],s.values[l]]};i=2;continue;case 1:if(++l<s.keys.length){const h=s.keys[l],d=s.values[l];return e?(e.done=!1,e.value[0]=h,e.value[1]=d,e):{done:!1,value:[h,d]}}i=2;case 2:for(var c=-1;;){if(++c>=r.length){i=3;continue t}if(++o[c]<r[c].length)break}for(;c>0;c--)r[c-1]=r[c][o[c]].children,o[c-1]=0;s=r[0][o[0]],l=-1,i=e!==void 0?1:0;continue;case 3:return Ga}})}entriesReversed(t,e,n){if(t===void 0&&(n=void 0,(t=this.maxKey())===void 0))return rr();let{nodeQueue:r,nodeIndex:o,leaf:s}=this.findPath(t)||this.findPath(this.maxKey());ue(!r[0]||s===r[0][o[0]],"wat!");let i=s.indexOf(t,0,this._compare);!n&&i<s.keys.length&&this._compare(s.keys[i],t)<=0&&i++;let l=e!==void 0?1:0;return rr(()=>{t:for(;;)switch(l){case 0:if(--i>=0)return{done:!1,value:[s.keys[i],s.values[i]]};l=2;continue;case 1:if(--i>=0){const h=s.keys[i],d=s.values[i];return e?(e.done=!1,e.value[0]=h,e.value[1]=d,e):{done:!1,value:[h,d]}}l=2;case 2:for(var c=-1;;){if(++c>=r.length){l=3;continue t}if(--o[c]>=0)break}for(;c>0;c--)r[c-1]=r[c][o[c]].children,o[c-1]=r[c-1].length-1;s=r[0][o[0]],i=s.keys.length,l=e!==void 0?1:0;continue;case 3:return Ga}})}findPath(t){let e,n,r=this._root;if(r.isLeaf)e=Ql,n=Ql;else{e=[],n=[];for(let o=0;!r.isLeaf;o++){if(e[o]=r.children,n[o]=t===void 0?0:r.indexOf(t,0,this._compare),n[o]>=e[o].length)return;r=e[o][n[o]]}e.reverse(),n.reverse()}return{nodeQueue:e,nodeIndex:n,leaf:r}}diffAgainst(t,e,n,r){if(t._compare!==this._compare)throw new Error("SortedMap: Comparators are not the same.");if(this.isEmpty||t.isEmpty)return this.isEmpty&&t.isEmpty?void 0:this.isEmpty?n===void 0?void 0:mt.stepToEnd(mt.makeDiffCursor(t),n):e===void 0?void 0:mt.stepToEnd(mt.makeDiffCursor(this),e);const{_compare:o}=this,s=mt.makeDiffCursor(this),i=mt.makeDiffCursor(t);let l=!0,c=!0,h=mt.compare(s,i,o);for(;l&&c;){const d=mt.compare(s,i,o),{leaf:u,internalSpine:g,levelIndices:m}=s,{leaf:f,internalSpine:p,levelIndices:S}=i;if(u||f){if(h!==0){if(d===0){if(u&&f&&r){const _=u.values[m[m.length-1]],E=f.values[S[S.length-1]];if(!Object.is(_,E)){const C=r(s.currentKey,_,E);if(C&&C.break)return C.break}}}else if(d>0){if(f&&n){const _=f.values[S[S.length-1]],E=n(i.currentKey,_);if(E&&E.break)return E.break}}else if(e&&u&&h!==0){const _=u.values[m[m.length-1]],E=e(s.currentKey,_);if(E&&E.break)return E.break}}}else if(!u&&!f&&d===0){const _=g.length-1,E=p.length-1,C=g[_][m[_]];if(p[E][S[E]]===C){h=0,l=mt.step(s,!0),c=mt.step(i,!0);continue}}h=d,d<0?l=mt.step(s):c=mt.step(i)}return l&&e?mt.finishCursorWalk(s,i,o,e):c&&n?mt.finishCursorWalk(i,s,o,n):void 0}static finishCursorWalk(t,e,n,r){const o=mt.compare(t,e,n);if(o===0){if(!mt.step(t))return}else o<0&&ue(!1,"cursor walk terminated early");return mt.stepToEnd(t,r)}static stepToEnd(t,e){let n=!0;for(;n;){const{leaf:r,levelIndices:o,currentKey:s}=t;if(r){const i=e(s,r.values[o[o.length-1]]);if(i&&i.break)return i.break}n=mt.step(t)}}static makeDiffCursor(t){const{_root:e,height:n}=t;return{height:n,internalSpine:[[e]],levelIndices:[0],leaf:void 0,currentKey:e.maxKey()}}static step(t,e){const{internalSpine:n,levelIndices:r,leaf:o}=t;if(e===!0||o){const s=r.length;if(e===!0||r[s-1]===0){const i=n.length;if(i===0)return!1;const l=i-1;let c=l;for(;c>=0;){if(r[c]>0)return c<s-1&&(t.leaf=void 0,r.pop()),c<l&&(t.internalSpine=n.slice(0,c+1)),t.currentKey=n[c][--r[c]].maxKey(),!0;c--}return!1}{const i=--r[s-1];return t.currentKey=o.keys[i],!0}}{const s=n.length,i=s-1,l=n[i][r[i]];if(l.isLeaf){t.leaf=l;const c=r[s]=l.values.length-1;t.currentKey=l.keys[c]}else{const c=l.children;n[s]=c;const h=c.length-1;r[s]=h,t.currentKey=c[h].maxKey()}return!0}}static compare(t,e,n){const{height:r,currentKey:o,levelIndices:s}=t,{height:i,currentKey:l,levelIndices:c}=e,h=n(l,o);if(h!==0)return h;const d=r<i?r:i;return s.length-(r-d)-(c.length-(i-d))}keys(t,e){const n=this.entries(t,e);return rr(()=>{const r=n.next();return r.value&&(r.value=r.value[0]),r})}values(t,e){const n=this.entries(t,e);return rr(()=>{const r=n.next();return r.value&&(r.value=r.value[1]),r})}get maxNodeSize(){return this._maxNodeSize}minKey(){return this._root.minKey()}maxKey(){return this._root.maxKey()}clone(){this._root.isShared=!0;const t=new mt(void 0,this._compare,this._maxNodeSize);return t._root=this._root,t._size=this._size,t}greedyClone(t){const e=new mt(void 0,this._compare,this._maxNodeSize);return e._root=this._root.greedyClone(t),e._size=this._size,e}toArray(t=2147483647){const e=this.minKey(),n=this.maxKey();return e!==void 0?this.getRange(e,n,!0,t):[]}keysArray(){const t=[];return this._root.forRange(this.minKey(),this.maxKey(),!0,!1,this,0,(e,n)=>{t.push(e)}),t}valuesArray(){const t=[];return this._root.forRange(this.minKey(),this.maxKey(),!0,!1,this,0,(e,n)=>{t.push(n)}),t}toString(){return this.toArray().toString()}setIfNotPresent(t,e){return this.set(t,e,!1)}nextHigherPair(t,e){return t===void 0?this._root.minPair(e):this._root.getPairOrNextHigher(t,this._compare,!1,e)}nextHigherKey(t,e){const n=this.nextHigherPair(t,e);return n&&n[0]}nextLowerPair(t,e){return t===void 0?this._root.maxPair(e):this._root.getPairOrNextLower(t,this._compare,!1,e)}nextLowerKey(t,e){const n=this.nextLowerPair(t,e);return n&&n[0]}getPairOrNextLower(t,e){return this._root.getPairOrNextLower(t,this._compare,!0,e)}getPairOrNextHigher(t,e){return this._root.getPairOrNextHigher(t,this._compare,!0,e)}changeIfPresent(t,e){return this.editRange(t,t,!0,(n,r)=>({value:e}))!==0}getRange(t,e,n,r=67108863){const o=[];return this._root.forRange(t,e,n,!1,this,0,(s,i)=>(o.push([s,i]),o.length>r?mt.Break:void 0)),o}setPairs(t,e){let n=0;for(let r=0;r<t.length;r++)this.set(t[r][0],t[r][1],e)&&n++;return n}forRange(t,e,n,r,o){const s=this._root.forRange(t,e,n,!1,this,o||0,r);return typeof s=="number"?s:s.break}forEditRange(t,e,n,r,o,s){return this._root.forRange(t,e,n,r,this,s||0,o)}editRange(t,e,n,r,o){let s=this._root;s.isShared&&(this._root=s=s.clone());try{const i=s.forRange(t,e,n,!0,this,o||0,r);return typeof i=="number"?i:i.break}finally{let i;for(;s.keys.length<=1&&!s.isLeaf;)i||=s.isShared,this._root=s=s.keys.length===0?ki:s.children[0];i&&(s.isShared=!0)}}editAll(t,e){return this.editRange(this.minKey(),this.maxKey(),!0,t,e)}deleteRange(t,e,n){return this.editRange(t,e,n,mt.DeleteRange)}deleteKeys(t){let e=0;for(let n=0;n<t.length;n++)this.delete(t[n])&&e++;return e}get height(){let t=this._root,e=-1;for(;t;)e++,t=t.isLeaf?void 0:t.children[0];return e}freeze(){const t=this;t.clear=t.set=t.editRange=function(){throw new Error("SortedMap: Attempted to modify when frozen.")}}unfreeze(){delete this.clear,delete this.set,delete this.editRange}get isFrozen(){return this.hasOwnProperty("editRange")}checkValid(){const t=this._root.checkValid(0,this,0);ue(t===this.size,"size mismatch: counted ",t,"but stored",this.size)}}function rr(a=()=>Ga){const t={next:a};return Symbol&&Symbol.iterator&&(t[Symbol.iterator]=function(){return this}),t}Symbol&&Symbol.iterator&&(mt.prototype[Symbol.iterator]=mt.prototype.entries),mt.prototype.where=mt.prototype.filter,mt.prototype.setRange=mt.prototype.setPairs,mt.prototype.add=mt.prototype.set;class Co{get isLeaf(){return this.children===void 0}constructor(t=[],e){this.keys=t,this.values=e||Kt,this.isShared=void 0}maxKey(){return this.keys[this.keys.length-1]}indexOf(t,e,n){const r=this.keys;let o=0,s=r.length,i=s>>1;for(;o<s;){const l=n(r[i],t);if(l<0)o=i+1;else{if(!(l>0)){if(l===0)return i;if(t==t)return r.length;throw new Error("SortedMap: NaN was used as a key.")}s=i}i=o+s>>1}return i^e}minKey(){return this.keys[0]}minPair(t){if(this.keys.length!==0)return(t=t??[null,null])[0]=this.keys[0],t[1]=this.values[0],t}maxPair(t){if(this.keys.length===0)return;const e=this.keys.length-1;return(t=t??[null,null])[0]=this.keys[e],t[1]=this.values[e],t}clone(){const t=this.values,e=t===Kt?t:t.slice(0),n=this.keys.slice(0);return new Co(n,e)}greedyClone(t){return this.isShared&&!t?this:this.clone()}get(t,e,n){const r=this.indexOf(t,-1,n._compare);return r<0?e:this.values[r]}getPairOrNextLower(t,e,n,r){const o=this.indexOf(t,-1,e),s=o<0?~o-1:n?o:o-1;if(s>=0){const i=this.keys[s],l=this.values[s];return r?(r[0]=i,r[1]=l,r):[i,l]}}getPairOrNextHigher(t,e,n,r){const o=this.indexOf(t,-1,e),s=o<0?~o:n?o:o+1;if(s<this.keys.length){const i=this.keys[s],l=this.values[s];return r?(r[0]=i,r[1]=l,r):[i,l]}}checkValid(t,e,n){const r=this.keys.length,o=this.values.length;return ue(this.values===Kt?r<=o:r===o,"keys/values length mismatch: depth",t,"with lengths",r,o,"and baseIndex",n),ue(t===0||r>0,"empty leaf at depth",t,"and baseIndex",n),r}set(t,e,n,r){let o=this.indexOf(t,-1,r._compare);if(o<0){if(o=~o,r._size++,this.keys.length<r._maxNodeSize)return this.insertInLeaf(o,t,e,n,r);{const s=this.splitOffRightSide();let i=this;return o>this.keys.length&&(o-=this.keys.length,i=s),i.insertInLeaf(o,t,e,n,r),s}}if(n!==!1){e!==void 0&&this.reifyValues(),this.keys[o]=t;let s=e;if(typeof n=="function"){const i=n(this.values[o],t,e);i!==void 0&&(s=i)}this.values[o]=s}return!1}reifyValues(){return this.values===Kt?this.values=this.values.slice(0,this.keys.length):this.values}insertInLeaf(t,e,n,r,o){if(this.keys.splice(t,0,e),this.values===Kt){for(;Kt.length<o._maxNodeSize;)Kt.push(void 0);if(n===void 0)return!0;this.values=Kt.slice(0,this.keys.length-1)}let s=n;if(typeof r=="function"){const i=r(void 0,e,n);i!==void 0&&(s=i)}return this.values.splice(t,0,s),!0}takeFromRight(t){let e=this.values;t.values===Kt?e!==Kt&&e.push(void 0):(e=this.reifyValues(),e.push(t.values.shift())),this.keys.push(t.keys.shift())}takeFromLeft(t){let e=this.values;t.values===Kt?e!==Kt&&e.unshift(void 0):(e=this.reifyValues(),e.unshift(t.values.pop())),this.keys.unshift(t.keys.pop())}splitOffRightSide(){const t=this.keys.length>>1,e=this.keys.splice(t),n=this.values===Kt?Kt:this.values.splice(t);return new Co(e,n)}forRange(t,e,n,r,o,s,i){const l=o._compare;let c,h;if(e===t){if(!n||(h=(c=this.indexOf(t,-1,l))+1,c<0))return s}else c=this.indexOf(t,0,l),h=this.indexOf(e,-1,l),h<0?h=~h:n===!0&&h++;const d=this.keys,u=this.values;if(i!==void 0)for(let g=c;g<h;g++){const m=d[g],f=i(m,u[g],s++);if(f!==void 0){if(f.break!==void 0)return f;if(r===!0){if(m!==d[g]&&o._compare(m,d[g])!==0||this.isShared===!0)throw new Error("SortedMap: illegally changed or cloned in editRange.");f.delete?(this.keys.splice(g,1),this.values!==Kt&&this.values.splice(g,1),o._size--,g--,h--):f.hasOwnProperty("value")&&(u[g]=f.value)}}}else s+=h-c;return s}mergeSibling(t,e){if(this.keys.push.apply(this.keys,t.keys),this.values===Kt){if(t.values===Kt)return;this.values=this.values.slice(0,this.keys.length)}this.values.push.apply(this.values,t.reifyValues())}}class So extends Co{constructor(t,e){if(!e){e=[];for(let n=0;n<t.length;n++)e[n]=t[n].maxKey()}super(e),this.children=t}clone(){const t=this.children.slice(0);for(let e=0;e<t.length;e++)t[e].isShared=!0;return new So(t,this.keys.slice(0))}greedyClone(t){if(this.isShared&&!t)return this;const e=new So(this.children.slice(0),this.keys.slice(0));for(let n=0;n<e.children.length;n++)e.children[n]=e.children[n].greedyClone(t);return e}minKey(){return this.children[0].minKey()}minPair(t){return this.children[0].minPair(t)}maxPair(t){return this.children[this.children.length-1].maxPair(t)}get(t,e,n){const r=this.indexOf(t,0,n._compare),o=this.children;return r<o.length?o[r].get(t,e,n):void 0}getPairOrNextLower(t,e,n,r){const o=this.indexOf(t,0,e),s=this.children;if(o>=s.length)return this.maxPair(r);const i=s[o].getPairOrNextLower(t,e,n,r);return i===void 0&&o>0?s[o-1].maxPair(r):i}getPairOrNextHigher(t,e,n,r){const o=this.indexOf(t,0,e),s=this.children,i=s.length;if(o>=i)return;const l=s[o].getPairOrNextHigher(t,e,n,r);return l===void 0&&o<i-1?s[o+1].minPair(r):l}checkValid(t,e,n){const r=this.keys.length,o=this.children.length;ue(r===o,"keys/children length mismatch: depth",t,"lengths",r,o,"baseIndex",n),ue(r>1||t>0,"internal node has length",r,"at depth",t,"baseIndex",n);let s=0,i=this.children,l=this.keys,c=0;for(let d=0;d<o;d++)s+=i[d].checkValid(t+1,e,n+s),c+=i[d].keys.length,ue(s>=c,"wtf",n),ue(d===0||i[d-1].constructor===i[d].constructor,"type mismatch, baseIndex:",n),i[d].maxKey()!==l[d]&&ue(!1,"keys[",d,"] =",l[d],"is wrong, should be ",i[d].maxKey(),"at depth",t,"baseIndex",n),d===0||e._compare(l[d-1],l[d])<0||ue(!1,"sort violation at depth",t,"index",d,"keys",l[d-1],l[d]);const h=c===0;return(h||c>e.maxNodeSize*o)&&ue(!1,h?"too few":"too many","children (",c,s,") at depth",t,"maxNodeSize:",e.maxNodeSize,"children.length:",o,"baseIndex:",n),s}set(t,e,n,r){const o=this.children,s=r._maxNodeSize,i=r._compare;let l=Math.min(this.indexOf(t,0,i),o.length-1),c=o[l];if(c.isShared&&(o[l]=c=c.clone()),c.keys.length>=s){let d;l>0&&(d=o[l-1]).keys.length<s&&i(c.keys[0],t)<0?(d.isShared&&(o[l-1]=d=d.clone()),d.takeFromRight(c),this.keys[l-1]=d.maxKey()):(d=o[l+1])!==void 0&&d.keys.length<s&&i(c.maxKey(),t)<0&&(d.isShared&&(o[l+1]=d=d.clone()),d.takeFromLeft(c),this.keys[l]=o[l].maxKey())}const h=c.set(t,e,n,r);if(h===!1)return!1;if(this.keys[l]=c.maxKey(),h===!0)return!0;if(this.keys.length<s)return this.insert(l+1,h),!0;{const d=this.splitOffRightSide();let u=this;return i(h.maxKey(),this.maxKey())>0&&(u=d,l-=this.keys.length),u.insert(l+1,h),d}}insert(t,e){this.children.splice(t,0,e),this.keys.splice(t,0,e.maxKey())}splitOffRightSide(){const t=this.children.length>>1;return new So(this.children.splice(t),this.keys.splice(t))}takeFromRight(t){this.keys.push(t.keys.shift()),this.children.push(t.children.shift())}takeFromLeft(t){this.keys.unshift(t.keys.pop()),this.children.unshift(t.children.pop())}forRange(t,e,n,r,o,s,i){const l=o._compare,c=this.keys,h=this.children;let d=this.indexOf(t,0,l),u=d,g=Math.min(e===t?d:this.indexOf(e,0,l),c.length-1);if(r){if(u<=g)try{for(;u<=g;u++){h[u].isShared&&(h[u]=h[u].clone());const m=h[u].forRange(t,e,n,r,o,s,i);if(c[u]=h[u].maxKey(),typeof m!="number")return m;s=m}}finally{const m=o._maxNodeSize>>1;for(d>0&&d--,u=g;u>=d;u--)h[u].keys.length<=m&&(h[u].keys.length!==0?this.tryMerge(u,o._maxNodeSize):(c.splice(u,1),h.splice(u,1)));h.length!==0&&h[0].keys.length===0&&ue(!1,"emptiness bug")}}else for(;u<=g;u++){const m=h[u].forRange(t,e,n,r,o,s,i);if(typeof m!="number")return m;s=m}return s}tryMerge(t,e){const n=this.children;return t>=0&&t+1<n.length&&n[t].keys.length+n[t+1].keys.length<=e&&(n[t].isShared&&(n[t]=n[t].clone()),n[t].mergeSibling(n[t+1],e),n.splice(t+1,1),this.keys.splice(t+1,1),this.keys[t]=n[t].maxKey(),!0)}mergeSibling(t,e){const n=this.keys.length;this.keys.push.apply(this.keys,t.keys);const r=t.children;if(this.children.push.apply(this.children,r),t.isShared&&!this.isShared)for(let o=0;o<r.length;o++)r[o].isShared=!0;this.tryMerge(n-1,e)}}const Kt=[],Ga=Object.freeze({done:!0,value:void 0}),ki=(function(){const a=new Co;return a.isShared=!0,a})(),Ql=[],ue=(a,...t)=>{if(!a)throw t.unshift("SortedMap:"),new Error(t.join(" "))};var un;(un=mt||(mt={})).DeleteValue=Object.freeze({delete:!0}),un.Break=Object.freeze({break:!0}),un.DeleteRange=()=>un.DeleteValue,un.EmptySortedMap=(()=>{const a=new un;return a.freeze(),a})(),un.defaultComparator=function(a,t){if(Number.isFinite(a)&&Number.isFinite(t))return a-t;let e=typeof a,n=typeof t;if(e!==n)return e<n?-1:1;if(e==="object"){if(a===null)return t===null?0:-1;if(t===null)return 1;if(e=typeof(a=a.valueOf()),n=typeof(t=t.valueOf()),e!==n)return e<n?-1:1}return a<t?-1:a>t?1:a===t?0:Number.isNaN(a)?Number.isNaN(t)?0:-1:Number.isNaN(t)?1:Array.isArray(a)?0:Number.NaN},un.simpleComparator=function(a,t){return a>t?1:a<t?-1:0};const Zl=[-1,null],vm={done:!1,value:[-1,null]};exports.Tuple=void 0,(a=>{a.Builder=class{constructor(e,n=0,r=0){this._tuples=[],this._minors=null,this._values=null,this._minorMin=Number.MAX_SAFE_INTEGER,this._minorMax=0,this._majorIndex=Number.MIN_SAFE_INTEGER,this._minorIndex=Number.MIN_SAFE_INTEGER,this._offsetMajor=0,this._offsetMinor=0,this._createList=e,this._offsetMajor=n,this._offsetMinor=r}addValues(e,n,r){if(r&&r.isIList)return this.addValue(e,n,r);Array.isArray(r)||(r=[r]),this.addValue(e,n,r[0]);const o=r.length,s=this._values;for(let i=1;i<o;i++)s.push(r[i]);return this._minorIndex=this._minorIndex+s.length-1,this}addValue(e,n,r){const o=this._majorIndex,s=this._minorIndex;if(e+=this._offsetMajor,n+=this._offsetMinor,e<o||e===o&&n<=s)throw new t(`major: ${e}, minor: ${n}, prevMajor: ${this._majorIndex}, prevMinor: ${this._minorIndex}`);let i=this._minors;if(e!==o){if(i){this._minorMin=Math.min(this._minorMin,i[0][0]);const l=i[i.length-1];this._minorMax=Math.max(this._minorMax,l[0]+l[1].length-1)}this._minors=i=[],this._tuples.push([e,i]),this._majorIndex=e}if(r&&r.isIList){n===s+1&&o!==e&&this._values;const l=r;i.push([n,l]),n=n+l.length-1}else{let l=null;n!==s+1||o!==e?(this._values=l=[],i.push([n,l])):l=this._values,l.push(r)}return this._minorIndex=n,this}build(){const e=this._tuples;if(e.length===0)return null;const n=this._minors;this._minorMin=Math.min(this._minorMin,n[0][0]);const r=n[n.length-1];this._minorMax=Math.max(this._minorMax,r[0]+r[1].length-1);const o=this._createList;if(o){const s=n.length;for(let i=0;i<s;i++)n[i][1]=o(n[i][1])}return{tuples:e,bounds:{majorStart:e[0][0],minorStart:this._minorMin,majorEnd:e[e.length-1][0],minorEnd:this._minorMax}}}},a.TransposedBuilder=class{constructor(e,n=0,r=0){this._majorMin=Number.MAX_SAFE_INTEGER,this._majorMax=0,this._majorIndex=Number.MIN_SAFE_INTEGER,this._minorIndex=Number.MIN_SAFE_INTEGER,this._offsetMajor=0,this._offsetMinor=0,this._createList=e,this._offsetMajor=n,this._offsetMinor=r,this._minors=new mt}addValues(e,n,r){Array.isArray(r)||(r=[r]);const o=r.length;for(let s=0;s<o;s++){const i=n+s;this.addValue(e,i,r[s])}return this}addValue(e,n,r){let o,s;const i=this._majorIndex;let l=this._minorIndex;if(e+=this._offsetMajor,n+=this._offsetMinor,s=this._current,e!==i){if(this._majorIndex=e,e<i)throw new t(`major: ${e}, minor: ${n}, prevMajor: ${this._majorIndex}, prevMinor: ${this._minorIndex}`);l=Number.MIN_SAFE_INTEGER}else if(s=this._current,n<=l)throw new t(`major: ${e}, minor: ${n}, prevMajor: ${this._majorIndex}, prevMinor: ${this._minorIndex}`);if(s&&s.minor===n&&(o=s.span),o)s.minor>=n&&s.next&&(this._current=s.next);else{const g=this._minors,m=s?s.next??s.prev:null;if(m){let f;const p=m.minor;m&&m.minor===n?(s=m,o=s.span):f=p>n?g.getPairOrNextHigher(n,Zl):g.getPairOrNextLower(n,Zl),f&&(s=f[1],f[0]===n&&(o=s.span))}if(!o){this._majorMin=Math.min(this._majorMin,e),o=[n,[[e,[]]]];const f={minor:n,span:o,prev:null,next:null};s&&(s.minor<n?(f.prev=s,f.next=s.next,s.next&&(s.next.prev=f),s.next=f):(f.prev=s.prev,f.next=s,s.prev&&(s.prev.next=f),s.prev=f)),g.set(n,f),this._current=f;const p=this._first;(!p||n<p.minor)&&(this._first=f),f.next&&(this._current=f.next)}}let c=o[1];const h=c[c.length-1];let d=h[0],u=h[1];return d+u.length!==e&&(u=[],d=e,c.push([d,u])),u.push(r),this._majorMax=Math.max(this._majorMax,e),this._minorIndex=n,this}build(){const e=[],n=this._createList,r=this._minors.entries(void 0,vm);let o=r.next();for(;!o.done;){const s=o.value[1].span;if(n){const i=s.length;for(let l=0;l<i;l++)s[l][1]=this._createList(s[l][1])}e.push(s),o=r.next()}return e.length===0?null:{tuples:e,bounds:{majorStart:e[0][0],minorStart:this._majorMin,majorEnd:e[e.length-1][0],minorEnd:this._majorMax}}}};class t extends w.ChainedError{constructor(n="Out of order",r=null){super(n,r),this.name="OutOfOrderError"}}a.OutOfOrderError=t})(exports.Tuple||(exports.Tuple={}));const xm={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Oi(a){return(t={})=>{const e=t.width?String(t.width):a.defaultWidth;return a.formats[e]||a.formats[a.defaultWidth]}}const Rm={date:Oi({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Oi({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Oi({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},Am={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Lr(a){return(t,e)=>{let n;if((e?.context?String(e.context):"standalone")==="formatting"&&a.formattingValues){const r=a.defaultFormattingWidth||a.defaultWidth,o=e?.width?String(e.width):r;n=a.formattingValues[o]||a.formattingValues[r]}else{const r=a.defaultWidth,o=e?.width?String(e.width):a.defaultWidth;n=a.values[o]||a.values[r]}return n[a.argumentCallback?a.argumentCallback(t):t]}}function Ur(a){return(t,e={})=>{const n=e.width,r=n&&a.matchPatterns[n]||a.matchPatterns[a.defaultMatchWidth],o=t.match(r);if(!o)return null;const s=o[0],i=n&&a.parsePatterns[n]||a.parsePatterns[a.defaultParseWidth],l=Array.isArray(i)?(function(h,d){for(let u=0;u<h.length;u++)if(d(h[u]))return u})(i,h=>h.test(s)):(function(h,d){for(const u in h)if(Object.prototype.hasOwnProperty.call(h,u)&&d(h[u]))return u})(i,h=>h.test(s));let c;return c=a.valueCallback?a.valueCallback(l):l,c=e.valueCallback?e.valueCallback(c):c,{value:c,rest:t.slice(s.length)}}}var zr;const Tm={code:"en-US",formatDistance:(a,t,e)=>{let n;const r=xm[a];return n=typeof r=="string"?r:t===1?r.one:r.other.replace("{{count}}",t.toString()),e?.addSuffix?e.comparison&&e.comparison>0?"in "+n:n+" ago":n},formatLong:Rm,formatRelative:(a,t,e,n)=>Am[a],localize:{ordinalNumber:(a,t)=>{const e=Number(a),n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"},era:Lr({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Lr({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:Lr({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Lr({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Lr({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(zr={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)},(a,t={})=>{const e=a.match(zr.matchPattern);if(!e)return null;const n=e[0],r=a.match(zr.parsePattern);if(!r)return null;let o=zr.valueCallback?zr.valueCallback(r[0]):r[0];return o=t.valueCallback?t.valueCallback(o):o,{value:o,rest:a.slice(n.length)}}),era:Ur({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Ur({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:a=>a+1}),month:Ur({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Ur({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Ur({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}},tc=(a,t)=>{switch(a){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ec=(a,t)=>{switch(a){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},nc={p:ec,P:(a,t)=>{const e=a.match(/(P+)(p+)?/)||[],n=e[1],r=e[2];if(!r)return tc(a,t);let o;switch(n){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;default:o=t.dateTime({width:"full"})}return o.replace("{{date}}",tc(n,t)).replace("{{time}}",ec(r,t))}},Mm=/^D+$/,Fm=/^Y+$/,Nm=["D","DD","YY","YYYY"];function km(a){return Mm.test(a)}function Om(a){return Fm.test(a)}function rc(a,t,e){const n=(function(r,o,s){const i=r[0]==="Y"?"years":"days of the month";return`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${o}\`) for formatting ${i} to the input \`${s}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`})(a,t,e);if(console.warn(n),Nm.includes(a))throw new RangeError(n)}const oc=Symbol.for("constructDateFrom");function yr(a,t){return typeof a=="function"?a(t):a&&typeof a=="object"&&oc in a?a[oc](t):a instanceof Date?new a.constructor(t):new Date(t)}let Bm={};function au(){return Bm}function qs(a,t){return yr(t||a,a)}class lu{constructor(){this.subPriority=0}validate(t,e){return!0}}class Dm extends lu{constructor(t,e,n,r,o){super(),this.value=t,this.validateValue=e,this.setValue=n,this.priority=r,o&&(this.subPriority=o)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,n){return this.setValue(t,e,this.value,n)}}class Lm extends lu{constructor(t,e){super(),this.priority=10,this.subPriority=-1,this.context=t||(n=>yr(e,n))}set(t,e){return e.timestampIsSet?t:yr(t,(function(n,r){const o=(function(s){return typeof s=="function"&&s.prototype?.constructor===s})(r)?new r(0):yr(r,0);return o.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),o.setHours(n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()),o})(t,this.context))}}let _s=class{run(a,t,e,n){const r=this.parse(a,t,e,n);return r?{setter:new Dm(r.value,this.validate,this.set,this.priority,this.subPriority),rest:r.rest}:null}validate(a,t,e){return!0}};const cu=/^(1[0-2]|0?\d)/,Um=/^(3[0-1]|[0-2]?\d)/,zm=/^\d/,Pm=/^\d{1,2}/,Wm=/^\d{1,3}/,Hm=/^\d{1,4}/;function sn(a,t){return a&&{value:t(a.value),rest:a.rest}}function En(a,t){const e=t.match(a);return e?{value:parseInt(e[0],10),rest:t.slice(e[0].length)}:null}function _o(a,t){switch(a){case 1:return En(zm,t);case 2:return En(Pm,t);case 3:return En(Wm,t);case 4:return En(Hm,t);default:return En(new RegExp("^\\d{1,"+a+"}"),t)}}class hu extends _s{constructor(){super(...arguments),this.incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"],this.priority=110}parse(t,e,n){const r=o=>o-1;switch(e){case"M":return sn(En(cu,t),r);case"MM":return sn(_o(2,t),r);case"Mo":return sn(n.ordinalNumber(t,{unit:"month"}),r);case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}const Vm=[31,28,31,30,31,30,31,31,30,31,30,31],jm=[31,29,31,30,31,30,31,31,30,31,30,31];function Gm(a,t,e){const n=au(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=qs(a,e?.in),s=o.getDay(),i=7-r;return(function(l,c,h){const d=qs(l,h?.in);return isNaN(c)?yr(h?.in||l,NaN):(c&&d.setDate(d.getDate()+c),d)})(o,t<0||t>6?t-(s+i)%7:((t%7+7)%7+i)%7-(s+i)%7,e)}const oo={y:new class extends _s{constructor(){super(...arguments),this.priority=130,this.incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"]}parse(a,t,e){const n=r=>({year:r,isTwoDigitYear:t==="yy"});switch(t){case"y":return sn(_o(4,a),n);case"yo":return sn(e.ordinalNumber(a,{unit:"year"}),n);default:return sn(_o(t.length,a),n)}}validate(a,t){return t.isTwoDigitYear||t.year>0}set(a,t,e){const n=a.getFullYear();if(e.isTwoDigitYear){const o=(function(s,i){const l=i>0,c=l?i:1-i;let h;if(c<=50)h=s||100;else{const d=c+50;h=s+100*Math.trunc(d/100)-(s>=d%100?100:0)}return l?h:1-h})(e.year,n);return a.setFullYear(o,0,1),a.setHours(0,0,0,0),a}const r="era"in t&&t.era!==1?1-e.year:e.year;return a.setFullYear(r,0,1),a.setHours(0,0,0,0),a}},M:new hu,d:new class extends _s{constructor(){super(...arguments),this.priority=90,this.subPriority=1,this.incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}parse(a,t,e){switch(t){case"d":return En(Um,a);case"do":return e.ordinalNumber(a,{unit:"date"});default:return _o(t.length,a)}}validate(a,t){const e=(function(r){return r%400==0||r%4==0&&r%100!=0})(a.getFullYear()),n=a.getMonth();return e?t>=1&&t<=jm[n]:t>=1&&t<=Vm[n]}set(a,t,e){return a.setDate(e),a.setHours(0,0,0,0),a}},E:new class extends _s{constructor(){super(...arguments),this.priority=90,this.incompatibleTokens=["D","i","e","c","t","T"]}parse(a,t,e){switch(t){case"E":case"EE":case"EEE":return e.day(a,{width:"abbreviated",context:"formatting"})||e.day(a,{width:"short",context:"formatting"})||e.day(a,{width:"narrow",context:"formatting"});case"EEEEE":return e.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(a,{width:"short",context:"formatting"})||e.day(a,{width:"narrow",context:"formatting"});default:return e.day(a,{width:"wide",context:"formatting"})||e.day(a,{width:"abbreviated",context:"formatting"})||e.day(a,{width:"short",context:"formatting"})||e.day(a,{width:"narrow",context:"formatting"})}}validate(a,t){return t>=0&&t<=6}set(a,t,e,n){return(a=Gm(a,e,n)).setHours(0,0,0,0),a}}},$m=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Jm=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,qm=/^'([^]*?)'?$/,Xm=/''/g,Km=/\S/,Ym=/[a-zA-Z]/;function Qm(a,t,e,n){const r=()=>yr(n?.in||e,NaN),o=Object.assign({},au()),s=n?.locale??o.locale??Tm,i=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(!t)return a?r():qs(e,n?.in);const c={firstWeekContainsDate:i,weekStartsOn:l,locale:s},h=[new Lm(n?.in,e)],d=t.match(Jm).map(p=>{const S=p[0];return S in nc?(0,nc[S])(p,s.formatLong):p}).join("").match($m),u=[];for(let p of d){!n?.useAdditionalWeekYearTokens&&Om(p)&&rc(p,t,a),!n?.useAdditionalDayOfYearTokens&&km(p)&&rc(p,t,a);const S=p[0],_=oo[S];if(_){const{incompatibleTokens:E}=_;if(Array.isArray(E)){const I=u.find(y=>E.includes(y.token)||y.token===S);if(I)throw new RangeError(`The format string mustn't contain \`${I.fullToken}\` and \`${p}\` at the same time`)}else if(_.incompatibleTokens==="*"&&u.length>0)throw new RangeError(`The format string mustn't contain \`${p}\` and any other token at the same time`);u.push({token:S,fullToken:p});const C=_.run(a,p,s.match,c);if(!C)return r();h.push(C.setter),a=C.rest}else{if(S.match(Ym))throw new RangeError("Format string contains an unescaped latin alphabet character `"+S+"`");if(p==="''"?p="'":S==="'"&&(p=Zm(p)),a.indexOf(p)!==0)return r();a=a.slice(p.length)}}if(a.length>0&&Km.test(a))return r();const g=h.map(p=>p.priority).sort((p,S)=>S-p).filter((p,S,_)=>_.indexOf(p)===S).map(p=>h.filter(S=>S.priority===p).sort((S,_)=>_.subPriority-S.subPriority)).map(p=>p[0]);let m=qs(e,n?.in);if(isNaN(+m))return r();const f={};for(const p of g){if(!p.validate(m,c))return r();const S=p.set(m,f,c);Array.isArray(S)?(m=S[0],Object.assign(f,S[1])):m=S}return m}function Zm(a){return a.match(qm)[1].replace(Xm,"'")}const du=a=>!isNaN(a)&&(Object.prototype.toString.call(a)==="[object Date]"||a instanceof Date);function sc(a,t,e){let n=a,r=a.length,o=t.length;for(var s=r;s<o;++s){const i=t[s];if(i==="#")return n;n=e?n+i:i+n}return n}function me(a,t){for(var e="";e.length<t;)e+=a;return e}function Cr(a){for(var t="",e=a.length-1;e>=0;)t+=a.charAt(e--);return t}function Ie(a,t){var e=""+a;return e.length>=t?e:me("0",t-e.length)+e}function $a(a,t){var e=""+a;return e.length>=t?e:me(" ",t-e.length)+e}function Xs(a,t){var e=""+a;return e.length>=t?e:e+me(" ",t-e.length)}var ic=Math.pow(2,32);function or(a,t){return a>ic||a<-ic?(function(e,n){var r=""+Math.round(e);return r.length>=n?r:me("0",n-r.length)+r})(a,t):(function(e,n){var r=""+e;return r.length>=n?r:me("0",n-r.length)+r})(Math.round(a),t)}function ws(a,t){return t=t||0,a.length>=7+t&&(32|a.charCodeAt(t))==103&&(32|a.charCodeAt(t+1))==101&&(32|a.charCodeAt(t+2))==110&&(32|a.charCodeAt(t+3))==101&&(32|a.charCodeAt(t+4))==114&&(32|a.charCodeAt(t+5))==97&&(32|a.charCodeAt(t+6))==108}var ac=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],Bi=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]],Hn={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",5:"$#,##0_);($#,##0)",6:"$#,##0_);[Red]($#,##0)",7:"$#,##0.00_);($#,##0.00)",8:"$#,##0.00_);[Red]($#,##0.00)",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",23:"General",24:"General",25:"General",26:"General",27:"m/d/yyyy",28:"m/d/yyyy",29:"m/d/yyyy",30:"m/d/yyyy",32:"h:mm:ss",31:"m/d/yyyy",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yyyy",37:"#,##0_);(#,##0)",38:"#,##0_);[Red](#,##0)",39:"#,##0.00_);(#,##0.00)",40:"#,##0.00_);[Red](#,##0.00)",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)',45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",50:"m/d/yyyy",51:"m/d/yyyy",52:"m/d/yyyy",53:"m/d/yyyy",54:"m/d/yyyy",55:"m/d/yyyy",56:'"上午/下午 "hh"時"mm"分"ss"秒 "'},lc={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},tf={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function Ks(a,t,e){for(var n=a<0?-1:1,r=a*n,o=0,s=1,i=0,l=1,c=0,h=0,d=Math.floor(r);c<t&&(i=(d=Math.floor(r))*s+o,h=d*c+l,!(r-d<5e-8));)r=1/(r-d),o=s,s=i,l=c,c=h;if(h>t&&(c>t?(h=l,i=o):(h=c,i=s)),!e)return[0,n*i,h];var u=Math.floor(n*i/h);return[u,n*i-u*h,h]}function so(a,t,e){if(a>2958465||a<0)return null;var n=0|a,r=Math.floor(86400*(a-n)),o=0,s=[],i={D:n,T:r,u:86400*(a-n)-r,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(i.u)<1e-6&&(i.u=0),t&&t.date1904&&(n+=1462),i.u>.9999&&(i.u=0,++r===86400&&(i.T=r=0,++n,++i.D)),n===60)s=e?[1317,10,29]:[1900,2,29],o=3;else if(n===0)s=e?[1317,8,29]:[1900,1,0],o=6;else{n>60&&--n;var l=new Date(1900,0,1);l.setDate(l.getDate()+n-1),s=[l.getFullYear(),l.getMonth()+1,l.getDate()],o=l.getDay(),n<60&&(o=(o+6)%7),e&&(o=(function(c,h){h[0]-=581;var d=c.getDay();return c<60&&(d=(d+6)%7),d})(l,s))}return i.y=s[0],i.m=s[1],i.d=s[2],i.S=r%60,r=Math.floor(r/60),i.M=r%60,r=Math.floor(r/60),i.H=r,i.q=o,i}var uu=new Date(1899,11,31,0,0,0),ef=uu.getTime(),nf=new Date(1900,2,1,0,0,0);function Cl(a,t=!1){var e=a.getTime();return t?e-=1262304e5:a>=nf&&(e+=864e5),(e-(ef+6e4*(a.getTimezoneOffset()-uu.getTimezoneOffset())))/864e5}function Di(a){return a.indexOf(".")===-1?a:a.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function rf(a){var t,e=Math.floor(Math.log(Math.abs(a))*Math.LOG10E);return t=e>=-4&&e<=-1?a.toPrecision(10+e):Math.abs(e)<=9?(function(n){var r=n<0?12:11,o=Di(n.toFixed(12));return o.length<=r||(o=n.toPrecision(10)).length<=r?o:n.toExponential(5)})(a):e===10?a.toFixed(10).substr(0,12):(function(n){var r=Di(n.toFixed(11));return r.length>(n<0?12:11)||r==="0"||r==="-0"?n.toPrecision(6):r})(a),Di((function(n){return n.indexOf("E")===-1?n:n.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")})(t.toUpperCase()))}function Li(a,t){switch(typeof a){case"string":return a;case"boolean":return a?"TRUE":"FALSE";case"number":return(0|a)===a?a.toString(10):rf(a);case"undefined":return"";case"object":if(a==null)return"";if(du(a))return Iu(14,Cl(a,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+a)}function of(a,t,e,n){var r,o="",s=0,i=0,l=e.y,c=0;switch(a){case 98:l=e.y+543;case 121:switch(t.length){case 1:case 2:r=l%100,c=2;break;default:r=l%1e4,c=4}break;case 109:switch(t.length){case 1:case 2:r=e.m,c=t.length;break;case 3:return Bi[e.m-1][1];case 5:return Bi[e.m-1][0];default:return Bi[e.m-1][2]}break;case 100:switch(t.length){case 1:case 2:r=e.d,c=t.length;break;case 3:return ac[e.q][0];default:return ac[e.q][1]}break;case 104:switch(t.length){case 1:case 2:r=1+(e.H+11)%12,c=t.length;break;default:throw new Error("bad hour format: "+t)}break;case 72:switch(t.length){case 1:case 2:r=e.H,c=t.length;break;default:throw new Error("bad hour format: "+t)}break;case 77:switch(t.length){case 1:case 2:r=e.M,c=t.length;break;default:throw new Error("bad minute format: "+t)}break;case 115:if(t!=="s"&&t!=="ss"&&t!==".0"&&t!==".00"&&t!==".000")throw new Error("bad second format: "+t);return e.u!==0||t!=="s"&&t!=="ss"?(i=n>=2?n===3?1e3:100:n===1?10:1,(s=Math.round(i*(e.S+e.u)))>=60*i&&(s=0),t==="s"?s===0?"0":""+s/i:(o=Ie(s,2+n),t==="ss"?o.substr(0,2):"."+o.substr(2,t.length-1))):Ie(e.S,t.length);case 90:switch(t){case"[h]":case"[hh]":r=24*e.D+e.H;break;case"[m]":case"[mm]":r=60*(24*e.D+e.H)+e.M;break;case"[s]":case"[ss]":r=60*(60*(24*e.D+e.H)+e.M)+Math.round(e.S+e.u);break;default:throw new Error("bad absolute time format: "+t)}c=t.length===3?1:2;break;case 101:r=l,c=1}return c>0?Ie(r,c):""}function vn(a){if(a.length<=3)return a;for(var t=a.length%3,e=a.substr(0,t);t!==a.length;t+=3)e+=(e.length>0?",":"")+a.substr(t,3);return e}var gu=/%/g;function mu(a,t){var e,n=a.indexOf("E")-a.indexOf(".")-1;if(a.match(/^#+0.0E\+0$/)){if(t===0)return"0.0E+0";if(t<0)return"-"+mu(a,-t);var r=a.indexOf(".");r===-1&&(r=a.indexOf("E"));var o=Math.floor(Math.log(t)*Math.LOG10E)%r;if(o<0&&(o+=r),(e=(t/Math.pow(10,o)).toPrecision(n+1+(r+o)%r)).indexOf("e")===-1){var s=Math.floor(Math.log(t)*Math.LOG10E);for(e.indexOf(".")===-1?e=e.charAt(0)+"."+e.substr(1)+"E+"+(s-e.length+o):e+="E+"+(s-o);e.substr(0,2)==="0.";)e=(e=e.charAt(0)+e.substr(2,r)+"."+e.substr(2+r)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");e=e.replace(/\+-/,"-")}e=e.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(i,l,c,h){return l+c+h.substr(0,(r+o)%r)+"."+h.substr(o)+"E"})}else e=t.toExponential(n);return a.match(/E\+00$/)&&e.match(/e[+-]\d$/)&&(e=e.substr(0,e.length-1)+"0"+e.charAt(e.length-1)),a.match(/E-/)&&e.match(/e\+/)&&(e=e.replace(/e\+/,"e")),e.replace("e","E")}var fu=/[0#?] (\?+)( ?)\/( ?)(\d+)/,pu=/^([0#?]+)\.([0#?]+)/,Su=/\).*[0#]/,_u=/\(###\) ###\\?-####/;function ye(a){var t="";let e,n=a.length;for(var r=0;r!==n;++r)switch(e=a.charAt(r),e){case"#":break;case" ":t+=" ";break;case"0":t+="0";break;case"?":t+="?";break;default:t+=String.fromCharCode(cc)}return t}function hc(a,t){var e=Math.pow(10,t);return""+Math.round(a*e)/e}function dc(a,t){var e=Math.pow(10,t);return Math.round(a*e)/e}function uc(a,t){var e=a-Math.floor(a),n=Math.pow(10,t);return t<(""+Math.round(e*n)).length?0:Math.round(e*n)}function he(a,t,e){if(a.charCodeAt(0)===40&&!t.match(Su)){var n=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return e>=0?he("n",n,e):"("+he("n",n,-e)+")"}if(t.charCodeAt(t.length-1)===44)return(function(f,p,S){let _=p.length-1;for(;p.charCodeAt(_-1)===44;)--_;return an(f,p.substr(0,_),S/Math.pow(10,3*(p.length-_)))})(a,t,e);if(t.indexOf("%")!==-1)return(function(f,p,S){let _=p.replace(gu,""),E=p.length-_.length;return an(f,_,S*Math.pow(10,2*E))+me("%",E)})(a,t,e);if(t.indexOf("E")!==-1)return mu(t,e);if(t.charCodeAt(0)===36)return"$"+he(a,t.substr(t.charAt(1)===" "?2:1),e);var r,o,s,i,l=Math.abs(e),c=e<0?"-":"";if(t.match(/^00+$/))return c+or(l,t.length);if(t.match(/^[#?]+$/))return(r=or(e,0))==="0"&&(r=""),r.length>t.length?r:ye(t.substr(0,t.length-r.length))+r;if(o=t.match(fu))return(function(f,p,S){var _=parseInt(f[4],10),E=Math.round(p*_),C=Math.floor(E/_),I=E-C*_,y=_;return S+(C===0?"":""+C)+" "+(I===0?me(" ",f[1].length+1+f[4].length):$a(I,f[1].length)+f[2]+"/"+f[3]+Ie(y,f[4].length))})(o,l,c);if(t.match(/^#+0+$/))return c+or(l,t.length-t.indexOf("0"));if(o=t.match(pu)){s=Math.trunc(hc(e,o[2].length));var h=(function(f){if(!isFinite(f))return 0;for(var p=1,S=0;Math.round(f*p)/p!==f;)p*=10,S++;return S})(i=dc(Math.abs(s-e),o[2].length));return i=(i=""+dc(i,h)).replace(/^0\./,""),r=sc(""+Math.abs(s),o[1])+"."+sc(""+i,o[2],!0),r=t.indexOf("0.")!==-1?r:r.replace(/^0\./,"."),e<0?"-"+r:r}if(o=(t=t.replace(/^#+([0.])/,"$1")).match(/^(0*)\.(#*)$/))return c+hc(l,o[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=t.match(/^#{1,3},##0(\.?)$/))return c+vn(or(l,0));if(o=t.match(/^#,##0\.([#0]*0)$/))return e<0?"-"+he(a,t,-e):vn(""+(Math.floor(e)+(function(f,p){return p<(""+Math.round((f-Math.floor(f))*Math.pow(10,p))).length?1:0})(e,o[1].length)))+"."+Ie(uc(e,o[1].length),o[1].length);if(o=t.match(/^#,#*,#0/))return he(a,t.replace(/^#,#*,/,""),e);if(o=t.match(/^([0#]+)(\\?-([0#]+))+$/))return r=Cr(he(a,t.replace(/[\\-]/g,""),e)),s=0,Cr(Cr(t.replace(/\\/g,"")).replace(/[0#]/g,function(f){return s<r.length?r.charAt(s++):f==="0"?"0":""}));if(t.match(_u))return"("+(r=he(a,"##########",e)).substr(0,3)+") "+r.substr(3,3)+"-"+r.substr(6);var d="";if(o=t.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return s=Math.min(o[4].length,7),i=Ks(l,Math.pow(10,s)-1,!1),r=""+c,(d=an("n",o[1],i[1])).charAt(d.length-1)===" "&&(d=d.substr(0,d.length-1)+"0"),r+=d+o[2]+"/"+o[3],(d=Xs(i[2],s)).length<o[4].length&&(d=ye(o[4].substr(o[4].length-d.length))+d),r+=d;if(o=t.match(/[#0?] ([#0?]+)( ?)\/( ?)([#0?]+)/))return s=Math.min(Math.max(o[1].length,o[4].length),7),i=Ks(l,Math.pow(10,s)-1,!0),c+he(a,t.substring(0,o.index+1),i[0])+" "+(i[1]?$a(i[1],s)+o[2]+"/"+o[3]+Xs(i[2],s):me(" ",2*s+1+o[2].length+o[3].length));if(o=t.match(/^[#0?]+$/))return r=or(e,0),t.length<=r.length?r:ye(t.substr(0,t.length-r.length))+r;if(o=t.match(/^([#0?]+)\.([#0]+)$/)){r=""+e.toFixed(Math.min(o[2].length,10)).replace(/([^0])0+$/,"$1"),s=r.indexOf(".");var u=t.indexOf(".")-s,g=t.length-r.length-u;return ye(t.substr(0,u)+r+t.substr(t.length-g))}if(o=t.match(/^00,000\.([#0]*0)$/))return s=uc(e,o[1].length),e<0?"-"+he(a,t,-e):vn((function(f){return f<2147483647&&f>-2147483648?""+(f>=0?0|f:f-1|0):""+Math.floor(f)})(e)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(f){return"00,"+(f.length<3?Ie(0,3-f.length):"")+f})+"."+Ie(s,o[1].length);switch(t){case"###,##0.00":return he(a,"#,##0.00",e);case"###,###":case"##,###":case"#,###":var m=vn(or(l,0));return m!=="0"?c+m:"";case"###,###.00":return he(a,"###,##0.00",e).replace(/^0\./,".");case"#,###.00":return he(a,"#,##0.00",e).replace(/^0\./,".")}throw new Error("unsupported format |"+t+"|")}function wu(a,t){var e,n=a.indexOf("E")-a.indexOf(".")-1;if(a.match(/^#+0.0E\+0$/)){if(t===0)return"0.0E+0";if(t<0)return"-"+wu(a,-t);var r=a.indexOf(".");r===-1&&(r=a.indexOf("E"));var o=Math.floor(Math.log(t)*Math.LOG10E)%r;if(o<0&&(o+=r),!(e=(t/Math.pow(10,o)).toPrecision(n+1+(r+o)%r)).match(/[Ee]/)){var s=Math.floor(Math.log(t)*Math.LOG10E);e.indexOf(".")===-1?e=e.charAt(0)+"."+e.substr(1)+"E+"+(s-e.length+o):e+="E+"+(s-o),e=e.replace(/\+-/,"-")}e=e.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(i,l,c,h){return l+c+h.substr(0,(r+o)%r)+"."+h.substr(o)+"E"})}else e=t.toExponential(n);return a.match(/E\+00$/)&&e.match(/e[+-]\d$/)&&(e=e.substr(0,e.length-1)+"0"+e.charAt(e.length-1)),a.match(/E-/)&&e.match(/e\+/)&&(e=e.replace(/e\+/,"e")),e.replace("e","E")}function Le(a,t,e){if(a.charCodeAt(0)===40&&!t.match(Su)){var n=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return e>=0?Le("n",n,e):"("+Le("n",n,-e)+")"}if(t.charCodeAt(t.length-1)===44)return(function(m,f,p){for(var S=f.length-1;f.charCodeAt(S-1)===44;)--S;return an(m,f.substr(0,S),p/Math.pow(10,3*(f.length-S)))})(a,t,e);if(t.indexOf("%")!==-1)return(function(m,f,p){var S=f.replace(gu,""),_=f.length-S.length;return an(m,S,p*Math.pow(10,2*_))+me("%",_)})(a,t,e);if(t.indexOf("E")!==-1)return wu(t,e);if(t.charCodeAt(0)===36)return"$"+Le(a,t.substr(t.charAt(1)===" "?2:1),e);var r,o,s,i,l=Math.abs(e),c=e<0?"-":"";if(t.match(/^00+$/))return c+Ie(l,t.length);if(t.match(/^[#?]+$/))return r=""+e,e===0&&(r=""),r.length>t.length?r:ye(t.substr(0,t.length-r.length))+r;if(o=t.match(fu))return(function(m,f,p){return p+(f===0?"":""+f)+me(" ",m[1].length+2+m[4].length)})(o,l,c);if(t.match(/^#+0+$/))return c+Ie(l,t.length-t.indexOf("0"));if(o=t.match(pu))return r=(""+e).replace(/^([^.]+)$/,"."+ye(o[2])).replace(/\.$/,"."+ye(o[2])),r=Ie(Math.abs(e),o[1].length)+r.replace(/\.(\d*)$/,function(m,f){return"."+f+me("0",ye(o[2]).length-f.length)}),r=t.indexOf("0.")!==-1?r:r.replace(/^0\./,"."),e<0?"-"+r:r;if(t=t.replace(/^#+([0.])/,"$1"),o=t.match(/^(0*)\.(#*)$/))return c+(""+l).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=t.match(/^#{1,3},##0(\.?)$/))return c+vn(""+l);if(o=t.match(/^#,##0\.([#0]*0)$/))return e<0?"-"+Le(a,t,-e):vn(""+e)+"."+me("0",o[1].length);if(o=t.match(/^#,#*,#0/))return Le(a,t.replace(/^#,#*,/,""),e);if(o=t.match(/^([0#]+)(\\?-([0#]+))+$/))return r=Cr(Le(a,t.replace(/[\\-]/g,""),e)),s=0,Cr(Cr(t.replace(/\\/g,"")).replace(/[0#]/g,function(m){return s<r.length?r.charAt(s++):m==="0"?"0":""}));if(t.match(_u))return"("+(r=Le(a,"##########",e)).substr(0,3)+") "+r.substr(3,3)+"-"+r.substr(6);var h="";if(o=t.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return s=Math.min(o[4].length,7),i=Ks(l,Math.pow(10,s)-1,!1),r=""+c,(h=an("n",o[1],i[1])).charAt(h.length-1)===" "&&(h=h.substr(0,h.length-1)+"0"),r+=h+o[2]+"/"+o[3],(h=Xs(i[2],s)).length<o[4].length&&(h=ye(o[4].substr(o[4].length-h.length))+h),r+=h;if(o=t.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return s=Math.min(Math.max(o[1].length,o[4].length),7),c+((i=Ks(l,Math.pow(10,s)-1,!0))[0]||(i[1]?"":"0"))+" "+(i[1]?$a(i[1],s)+o[2]+"/"+o[3]+Xs(i[2],s):me(" ",2*s+1+o[2].length+o[3].length));if(o=t.match(/^[#0?]+$/))return r=""+e,t.length<=r.length?r:ye(t.substr(0,t.length-r.length))+r;if(o=t.match(/^([#0]+)\.([#0]+)$/)){r=""+e.toFixed(Math.min(o[2].length,10)).replace(/([^0])0+$/,"$1"),s=r.indexOf(".");var d=t.indexOf(".")-s,u=t.length-r.length-d;return ye(t.substr(0,d)+r+t.substr(t.length-u))}if(o=t.match(/^00,000\.([#0]*0)$/))return e<0?"-"+Le(a,t,-e):vn(""+e).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(m){return"00,"+(m.length<3?Ie(0,3-m.length):"")+m})+"."+Ie(0,o[1].length);switch(t){case"###,###":case"##,###":case"#,###":var g=vn(""+l);return g!=="0"?c+g:"";default:if(t.match(/\.[0#?]*$/))return Le(a,t.slice(0,t.lastIndexOf(".")),e)+ye(t.slice(t.lastIndexOf(".")))}throw new Error("unsupported format |"+t+"|")}function an(a,t,e){return(0|e)===e?Le(a,t,e):he(a,t,e)}function yu(a){var t=[],e=!1;const n=a.length;for(var r=0,o=0;r<n;++r)switch(a.charCodeAt(r)){case 34:e=!e;break;case 95:case 42:case 92:++r;break;case 59:t[t.length]=a.substr(o,r-o),o=r+1}if(t[t.length]=a.substr(o),e===!0)throw new Error("Format |"+a+"| unterminated string ");return t}var Cu=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function Eu(a){for(var t=0,e="",n="",r=a.length;t<r;)switch(e=a.charAt(t)){case"G":ws(a,t)&&(t+=6),t++;break;case'"':for(;a.charCodeAt(++t)!==34&&t<a.length;);++t;break;case"\\":case"_":t+=2;break;case"@":++t;break;case"B":case"b":if(a.charAt(t+1)==="1"||a.charAt(t+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(a.substr(t,3).toUpperCase()==="A/P"||a.substr(t,5).toUpperCase()==="AM/PM"||a.substr(t,5).toUpperCase()==="上午/下午")return!0;++t;break;case"[":for(n=e;a.charAt(t++)!=="]"&&t<a.length;)n+=a.charAt(t);if(n.match(Cu))return!0;break;case".":case"0":case"#":for(;t<a.length&&("0#?.,E+-%".indexOf(e=a.charAt(++t))>-1||e==="\\"&&a.charAt(t+1)==="-"&&"0#".indexOf(a.charAt(t+2))>-1););break;case"?":for(;a.charAt(++t)===e;);break;case"*":++t,a.charAt(t)!==" "&&a.charAt(t)!=="*"||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t<a.length&&"0123456789".indexOf(a.charAt(++t))>-1;);break;default:++t}return!1}var gc=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function mc(a,t){if(t==null)return!1;var e=parseFloat(t[2]);switch(t[1]){case"=":if(a===e)return!0;break;case">":if(a>e)return!0;break;case"<":if(a<e)return!0;break;case"<>":if(a!==e)return!0;break;case">=":if(a>=e)return!0;break;case"<=":if(a<=e)return!0}return!1}function Iu(a,t,e){e==null&&(e=w.CommonUtils.EmptyObject);var n="";switch(typeof a){case"string":n=a==="m/d/yy"&&e.dateNF?e.dateNF:a;break;case"number":(n=a===14&&e.dateNF?e.dateNF:(e.table!=null?e.table:Hn)[a])==null&&(n=e.table&&e.table[lc[a]]||Hn[lc[a]]),n==null&&(n=tf[a]||"General")}if(ws(n,0))return Li(t,e);du(t)&&(t=Cl(t,e.date1904));var r=(function(o,s){var i=yu(o),l=i.length,c=i[l-1].indexOf("@");if(c!==-1&&i[l-1][c-1]==="\\"&&(c=-1),l<4&&c>-1&&--l,i.length>4)throw new Error("We can't find right format for |"+i.join("|")+"|");if(typeof s!="number")return[4,i.length===4||c>-1?i[i.length-1]:"@"];switch(i.length){case 1:i=c>-1?["General","General","General",i[0]]:[i[0],i[0],i[0],"@"];break;case 2:i=c>-1?[i[0],i[0],i[0],i[1]]:[i[0],i[1],i[0],"@"];break;case 3:i=c>-1?[i[0],i[1],i[0],i[2]]:[i[0],i[1],i[2],"@"]}var h=s>0?i[0]:s<0?i[1]:i[2];if(i[0].indexOf("[")===-1&&i[1].indexOf("[")===-1)return[l,h];if(i[0].match(/\[[=<>]/)!=null||i[1].match(/\[[=<>]/)!=null){var d=i[0].match(gc),u=i[1].match(gc);return mc(s,d)?[l,i[0]]:mc(s,u)?[l,i[1]]:[l,i[d!=null&&u!=null?2:1]]}return[l,h]})(n,t);if(ws(r[1]))return Li(t,e);if(t===!0)t="TRUE";else if(t===!1)t="FALSE";else if(t===""||t==null)return"";return(function(o,s,i,l){var c,h,d,u=[],g="",m=0,f="",p="t",S="H";let _=o.length;for(;m<_;)switch(f=o.charAt(m)){case"G":if(!ws(o,m))throw new Error("unrecognized character "+f+" in "+o);u[u.length]={t:"G",v:"General"},m+=7;break;case'"':for(g="";(d=o.charCodeAt(++m))!==34&&m<o.length;)g+=String.fromCharCode(d);u[u.length]={t:"t",v:g},++m;break;case"\\":var E=o.charAt(++m),C=E==="("||E===")"?E:"t";u[u.length]={t:C,v:E},++m;break;case"@":u[u.length]={t:"T",v:s},++m;break;case"B":case"b":if(o.charAt(m+1)==="1"||o.charAt(m+1)==="2"){if(c==null&&(c=so(s,i,o.charAt(m+1)==="2"))==null)return"";u[u.length]={t:"X",v:o.substr(m,2)},p=f,m+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":f=f.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if(s<0||c==null&&(c=so(s,i))==null)return"";for(g=f;++m<o.length&&o.charAt(m).toLowerCase()===f;)g+=f;f==="m"&&p.toLowerCase()==="h"&&(f="M"),f==="h"&&(f=S),u[u.length]={t:f,v:g},p=f;break;case"A":case"a":case"上":var I={t:f,v:f};if(c==null&&(c=so(s,i)),o.substr(m,3).toUpperCase()==="A/P"?(c!=null&&(I.v=c.H>=12?"P":"A"),I.t="T",S="h",m+=3):o.substr(m,5).toUpperCase()==="AM/PM"?(c!=null&&(I.v=c.H>=12?"PM":"AM"),I.t="T",m+=5,S="h"):o.substr(m,5).toUpperCase()==="上午/下午"?(c!=null&&(I.v=c.H>=12?"下午":"上午"),I.t="T",m+=5,S="h"):(I.t="t",++m),c==null&&I.t==="T")return"";u[u.length]=I,p=f;break;case"[":for(g=f;o.charAt(m++)!=="]"&&m<o.length;)g+=o.charAt(m);if(g.slice(-1)!=="]")throw new Error('unterminated "[" block: |'+g+"|");if(g.match(Cu)){if(c==null&&(c=so(s,i))==null)return"";u[u.length]={t:"Z",v:g.toLowerCase()},p=g.charAt(1)}else g.indexOf("$")>-1&&(g=(g.match(/\$([^-[\]]*)/)||[])[1]||"$",Eu(o)||(u[u.length]={t:"t",v:g}));break;case".":if(c!=null){for(g=f;++m<o.length&&(f=o.charAt(m))==="0";)g+=f;u[u.length]={t:"s",v:g};break}case"0":case"#":for(g=f;++m<o.length&&"0#?.,E+-%".indexOf(f=o.charAt(m))>-1;)g+=f;u[u.length]={t:"n",v:g};break;case"?":for(g=f;o.charAt(++m)===f;)g+=f;u[u.length]={t:f,v:g},p=f;break;case"*":if(++m,!(g=o.charAt(m)))throw new Error("no character specified for repeat function: "+o);u[u.length]={t:"R",v:g},++m;break;case"_":if(++m,!(g=o.charAt(m)))throw new Error("no character specified for spacing function: "+o);u[u.length]={t:"S",v:g},++m;break;case"(":case")":u[u.length]={t:l===1?"t":f,v:f},++m;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(g=f;m<o.length&&"0123456789".indexOf(o.charAt(++m))>-1;)g+=o.charAt(m);u[u.length]={t:"D",v:g};break;case" ":u[u.length]={t:f,v:f},++m;break;case"$":u[u.length]={t:"t",v:"$"},++m;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f)===-1)throw new Error("unrecognized character "+f+" in "+o);u[u.length]={t:"t",v:f},++m}var y,b=0,v=0;for(m=u.length-1,p="t";m>=0;--m)switch(u[m].t){case"h":case"H":u[m].t=S,p="h",b<1&&(b=1);break;case"s":(y=u[m].v.match(/\.0+$/))&&(v=Math.max(v,y[0].length-1)),b<3&&(b=3);case"d":case"y":case"M":case"e":p=u[m].t;break;case"m":p==="s"&&(u[m].t="M",b<2&&(b=2));break;case"X":break;case"Z":b<1&&u[m].v.match(/[Hh]/)&&(b=1),b<2&&u[m].v.match(/[Mm]/)&&(b=2),b<3&&u[m].v.match(/[Ss]/)&&(b=3)}switch(b){case 0:break;case 1:c.u>=.5&&(c.u=0,++c.S),c.S>=60&&(c.S=0,++c.M),c.M>=60&&(c.M=0,++c.H);break;case 2:c.u>=.5&&(c.u=0,++c.S),c.S>=60&&(c.S=0,++c.M)}var R,x="";for(_=u.length,m=0;m<_;++m)switch(u[m].t){case"t":case"T":case" ":case"D":break;case"X":u[m].v="",u[m].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":u[m].v=of(u[m].t.charCodeAt(0),u[m].v,c,v),u[m].t="t";break;case"n":case"?":for(R=m+1;u[R]!=null&&((f=u[R].t)==="?"||f==="D"||(f===" "||f==="t")&&u[R+1]!=null&&(u[R+1].t==="?"||u[R+1].t==="t"&&u[R+1].v==="/")||u[m].t==="("&&(f===" "||f==="n"||f===")")||f==="t"&&(u[R].v==="/"||u[R].v===" "&&u[R+1]!=null&&u[R+1].t==="?"));)u[m].v+=u[R].v,u[R]={v:"",t:";"},++R;x+=u[m].v,m=R-1;break;case"G":u[m].t="t",u[m].v=Li(s,i)}var T,M,F="";if(x.length>0){x.charCodeAt(0)===40?(T=s<0&&x.charCodeAt(0)===45?-s:s,M=an("n",x,T)):(M=an("n",x,T=s<0&&l>1?-s:s),T<0&&u[0]&&u[0].t==="t"&&(M=M.substr(1),u[0].v="-"+u[0].v)),R=M.length-1;var N=u.length;for(_=u.length,m=0;m<_;++m)if(u[m]!=null&&u[m].t!=="t"&&u[m].v.indexOf(".")>-1){N=m;break}var k=_;if(N===_&&M.indexOf("E")===-1){for(m=u.length-1;m>=0;--m)u[m]!=null&&"n?".indexOf(u[m].t)!==-1&&(R>=u[m].v.length-1?(R-=u[m].v.length,u[m].v=M.substr(R+1,u[m].v.length)):R<0?u[m].v="":(u[m].v=M.substr(0,R+1),R=-1),u[m].t=u[m].v.indexOf("?")>=0?"N":"t",k=m);R>=0&&k<u.length&&(u[k].v=M.substr(0,R+1)+u[k].v)}else if(N!==u.length&&M.indexOf("E")===-1){for(R=M.indexOf(".")-1,m=N;m>=0;--m)if(u[m]!=null&&"n?".indexOf(u[m].t)!==-1){for(h=u[m].v.indexOf(".")>-1&&m===N?u[m].v.indexOf(".")-1:u[m].v.length-1,F=u[m].v.substr(h+1);h>=0;--h)R>=0&&(u[m].v.charAt(h)==="0"||u[m].v.charAt(h)==="#"||u[m].v.charAt(h)==="?")&&(F=M.charAt(R--)+F);u[m].v=F,u[m].t=F.indexOf("?")>=0?"N":"t",k=m}for(R>=0&&k<u.length&&(u[k].v=M.substr(0,R+1)+u[k].v),R=M.indexOf(".")+1,m=N;m<u.length;++m)if(u[m]!=null&&("n?(".indexOf(u[m].t)!==-1||m===N)){for(h=u[m].v.indexOf(".")>-1&&m===N?u[m].v.indexOf(".")+1:0,F=u[m].v.substr(0,h);h<u[m].v.length;++h)R<M.length&&(F+=M.charAt(R++));u[m].v=F,u[m].t=F.indexOf("?")>=0?"N":"t",k=m}}}for(m=0;m<_;++m)u[m]!=null&&"n?".indexOf(u[m].t)>-1&&(T=l>1&&s<0&&m>0&&u[m-1].v==="-"?-s:s,u[m].v=an(u[m].t,u[m].v,T),u[m].t=u[m].v.indexOf("?")>=0?"N":"t");var U="";for(_=u.length,m=0;m<_;m++)if(u[m].t==="R")i?.onRepeatChar?.(U.length,u[m].v);else if(u[m].t==="S")i?.onSpacingChar?.(U.length,u[m].v),U+=i?.spacingCharacter??" ";else if(u[m].t==="N"){F=u[m].v;for(var O=0;O<F.length;O++)(f=F[O])==="?"&&(i?.onDigitChar?.(U.length,f),f=i?.digitCharacter??" "),U+=f}else u[m]!=null&&(U+=u[m].v);return U})(r[1],t,e,r[0])}function fc(a,t){if(typeof t!="number"){t=+t||-1;for(var e=0;e<392;++e)if(Hn[e]!==void 0){if(Hn[e]===a){t=e;break}}else t<0&&(t=e);t<0&&(t=391)}return Hn[t]=a,t}const zt={format:Iu,dateNumLocal:Cl,load:fc,split_fmt:yu,_table:Hn,load_table:function(a){for(var t=0;t!==392;++t)a[t]!==void 0&&fc(a[t],t)},parse_date_code:so,is_date:Eu,get_table:function(){return zt._table=Hn}},Vt="\\s*([-]?[0-9e]*[.]?[0-9]+)",sf=new RegExp(`^rgb\\(${Vt},${Vt},${Vt}\\)$`),af=new RegExp(`^rgba\\(${Vt},${Vt},${Vt},${Vt}\\)$`),lf=new RegExp(`^lrgb\\(${Vt},${Vt},${Vt}\\)$`),cf=new RegExp(`^lrgba\\(${Vt},${Vt},${Vt},${Vt}\\)$`),hf=new RegExp(`^hsl\\(${Vt},${Vt},${Vt}\\)$`),df=new RegExp(`^hsla\\(${Vt},${Vt},${Vt},${Vt}\\)$`),uf=new RegExp(/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/),gf=new RegExp(/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/),mf=new RegExp("^index(\\d+)$","i"),Ui=(a,t,e)=>[parseFloat(a),parseFloat(t),parseFloat(e)],zi=(a,t=255)=>{const e=[...a];for(var n=0;n<a.length;n++)e[n]=a[n]/t;return e},pc=(a,t=0)=>{const e=[...a];for(var n=0;n<a.length;n++)w.CommonUtils.roundAccurately(a[n],t+8)%1==.5?e[n]=Math.floor(a[n]):e[n]=w.CommonUtils.roundAccurately(a[n],t);return e},ee=(a,t=!0)=>{const e=[...a],n=t?1:255;for(var r=0;r<a.length;r++)e[r]=Math.max(0,Math.min(n,a[r]));return e},pr=a=>Math.max(0,Math.min(1,a)),bu=a=>((a%=360)<0&&(a-=360),a),Gn=a=>{const t=[...a];for(var e=0;e<a.length;e++)t[e]=ys(a[e]);return t},Jn=a=>{const t=[...a];for(var e=0;e<a.length;e++)t[e]=Cs(a[e]);return t},ys=a=>a<.04045?a/12.92:Math.pow((a+.055)/1.055,2.4),Cs=a=>a<.0031308?12.92*a:1.055*Math.pow(a,1/2.4)-.055,qn=a=>{let t=a[0],e=a[1],n=a[2];t%=360,t/=360,e/=100,n/=100;let r=n<.5?n*(1+e):n+e-e*n,o=2*n-r;return[Math.max(0,Pi(o,r,t+1/3)),Math.max(0,Pi(o,r,t)),Math.max(0,Pi(o,r,t-1/3))]},Pi=(a,t,e)=>(e<0&&(e+=1),e>1&&(e-=1),6*e<1?a+6*(t-a)*e:2*e<1?t:3*e<2?a+6*(t-a)*(2/3-e):a),An=a=>{let t=a[0],e=a[1],n=a[2],r=Math.min(t,Math.min(e,n)),o=Math.max(t,Math.max(e,n)),s=0;o===r?s=0:o===t?s=(60*(e-n)/(o-r)+360)%360:o===e?s=60*(n-t)/(o-r)+120:o===n&&(s=60*(t-e)/(o-r)+240);const i=(o+r)/2;let l=0;return l=o===r?0:i<=.5?(o-r)/(o+r):(o-r)/(2-o-r),[s,100*l,100*i]},te=0,Wi=1,Pr=2,Es=0,Is=1,bs=2,vs=0,xs=1,Rs=2,ff=(a,t)=>{let e=t/100;return((n,r)=>{let o=Gn(n);o[0]=r(o[0],o),o[1]=r(o[1],o),o[2]=r(o[2],o);let s=Jn(o);return s=ee(s),s})(a,(n,r)=>n*e)},Vo=2.55,pf=(a,t)=>{const e=An(a),n=e[2],r=w.CommonUtils.roundAccurately((o=n,(s=t)>0?(o*Vo*(1-s)+(255-255*(1-s)))/Vo:s<0?o*Vo*(1+s)/Vo:o),3);var o,s;e[2]=r;let i=qn(e);return i=ee(i),i},Sf=(a,t)=>{let e=Gn(a),n=t/100;for(var r=0;r<3;r++)e[r]=e[r]*n+(1-n);let o=Jn(e);return o=ee(o),o},Hi=(a,t,e)=>{let n=An(t),r=e/1;a===te&&(r=bu(e)),n[a]=r;let o=qn(n);return o=ee(o),o},Vi=(a,t,e)=>{let n=An(t);if(a===te){let o=e/360;n[te]=360*(n[te]/360+o),n[te]%=360,n[te]<0&&(n[te]-=360)}else{let o=e/.1;n[a]=.1*(n[a]/.1+o)}let r=qn(n);return r=ee(r),r},ji=(a,t,e)=>{let n=An(t),r=e/100;n[a]=n[a]*r,a===te&&(n[te]=bu(n[te]));let o=qn(n);return o=ee(o),o},Ge=(a,t,e,n)=>{let r=Gn(t),o=e/100;n===vs?r[a]=o:n===xs?r[a]+=o:n===Rs&&(r[a]*=o);let s=Jn(r);return s=ee(s),s},_f=a=>{let t=Gn(a),e=.213*t[Es]+.715*t[Is]+.072*t[bs];t[0]=e,t[1]=e,t[2]=e;let n=Jn(t);return n=ee(n),n},wf=a=>{let t=An(a);t[te]+=180,t[te]%=360,t[te]<0&&(t[te]-=360);let e=qn(t);return e=ee(e),e},Sc=(a,t=!0)=>{let e=t?Gn(a):[...a];const n=t?1:255;return e[0]=n-e[0],e[1]=n-e[1],e[2]=n-e[2],t&&(e=Jn(e)),e=ee(e,t),e},yf=a=>{const t=[0,0,0];return t[0]=Cs(a[0]),t[1]=Cs(a[1]),t[2]=Cs(a[2]),ee(t)},Cf=a=>{const t=[0,0,0];return t[0]=ys(a[0]),t[1]=ys(a[1]),t[2]=ys(a[2]),ee(t)},_c=(a,t,e,n=null)=>{const r=o=>{let s=o.toString(16);return s.length===1?"0"+s:s};return(n===null?"":r(Math.round(255*n)))+r(Number(a)).toUpperCase()+r(Number(t)).toUpperCase()+r(Number(e)).toUpperCase()},sr=.2126,gn=.7152,ir=.0722;var en;(a=>{a.RGBA=class{constructor(e,n,r,o=1){this._private={red:e,green:n,blue:r,alpha:o}}get red(){return this._private.red}get green(){return this._private.green}get blue(){return this._private.blue}get alpha(){return this._private.alpha??1}toString(e=!0){return e&&this._private.alpha!==null?`rgba(${this.red},${this.green},${this.blue},${this.alpha})`:`rgb(${this.red},${this.green},${this.blue})`}isEqual(e){return!!e&&e.red===this.red&&e.green===this.green&&e.blue===this.blue&&e.alpha===this.alpha}isAlmostEqual(e){if(!e)return!1;const n=1.5;return!(Math.abs(e.red-this.red)>n)&&!(Math.abs(e.green-this.green)>n)&&!(Math.abs(e.blue-this.blue)>n)&&!(Math.abs(e.alpha-this.alpha)>n)}},a.HSLA=class{constructor(e,n,r,o){this._private={hue:e,sat:n,lum:r,alpha:o}}get hue(){return this._private.hue}get sat(){return this._private.sat}get lum(){return this._private.lum}get alpha(){return this._private.alpha??1}toString(e=!0){return e&&this._private.alpha!==null?`hsla(${this.hue},${this.sat},${this.lum},${this.alpha})`:`hsl(${this.hue},${this.sat},${this.lum})`}isEqual(e){return!!e&&e.hue===this.hue&&e.sat===this.sat&&e.lum===this.lum&&e.alpha===this.alpha}isAlmostEqual(e){if(!e)return!1;const n=1.5;return!(Math.abs(e.hue-this.hue)>n)&&!(Math.abs(e.sat-this.sat)>n)&&!(Math.abs(e.lum-this.lum)>n)&&!(Math.abs(e.alpha-this.alpha)>n)}};class t extends a.RGBA{toString(n=!0){return n&&this._private.alpha!==null?"#"+_c(this.red,this.green,this.blue,this.alpha??1).toUpperCase():"#"+_c(this.red,this.green,this.blue).toUpperCase()}}a.HEX=t})(en||(en={}));const Ef=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,If=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,As=function(a){if(!a)return null;a=a.replace(Ef,function(e,n,r,o){return n+n+r+r+o+o});let t=If.exec(a);return t?new en.RGBA(parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)):null},wc=["000000","FFFFFF","FF0000","00FF00","0000FF","FFFF00","FF00FF","00FFFF","000000","FFFFFF","FF0000","00FF00","0000FF","FFFF00","FF00FF","00FFFF","800000","008000","000080","808000","800080","008080","C0C0C0","808080","9999FF","993366","FFFFCC","CCFFFF","660066","FF8080","0066CC","CCCCFF","000080","FF00FF","FFFF00","00FFFF","800080","800000","008080","0000FF","00CCFF","CCFFFF","CCFFCC","FFFF99","99CCFF","FF99CC","CC99FF","FFCC99","3366FF","33CCCC","99CC00","FFCC00","FF9900","FF6600","666699","969696","003366","339966","003300","333300","993300","993366","333399","333333"],Pn=new Map;for(let a=0;a<wc.length;a++)Pn.set(a,As(wc[a]));Pn.set(-4105,null),Pn.set(-4142,null),Pn.set(64,As("000000")),Pn.set(65,As("FFFFFF")),Pn.set(81,As("FFFFFF"));const Ys=a=>Pn.get(a),lt={General:"General",Number:"Number",Currency:"Currency",Accounting:"Accounting",ShortDate:"Short Date",LongDate:"Long Date",MediumDate:"Medium Date",ShortTime:"Short Time",MediumTime:"Medium Time",LongTime:"Long Time",Comma:"Comma",Percentage:"Percentage",Fraction:"Fraction",Scientific:"Scientific",Text:"Text",Special:"Special",Custom:"Custom"};let Gi=null;const vu=()=>Gi||(Gi=Intl.DateTimeFormat().resolvedOptions().locale??"en-US",Gi),bf=/^\[\$-(.*?)\]/i,vf=/^[0-9a-fA-F]+$/,xf=zt.split_fmt,El=(a,t,e)=>{const n=bf.exec(a);let r=vu();if(n&&n[1]){let o=n[1];vf.test(o)||o.includes("-")}if(yc[a]&&(a=yc[a]),typeof t=="number"){const o=io(a,t,{locale:r,...e});if(o!==null)return o.fmt}return zt.format(a,t,e)},io=(a,t,e)=>{if(typeof t!="number")return null;const n=Or(t,e?.date1904??!1),r=e?.locale??vu();let o=!1,s=a,i=-1;if((i=s.indexOf("Short Date"))!==-1){const l=new Intl.DateTimeFormat(r).format(n);s=s.substring(0,i)+l+s.substring(i+10),o=!0}if((i=s.indexOf("Medium Date"))!==-1){const l=zt.format(zt.get_table()[15],t,e);s=s.substring(0,i)+l+s.substring(i+11),o=!0}if((i=s.indexOf("Long Date"))!==-1){const l=new Intl.DateTimeFormat(r,{dateStyle:"full"}).format(n);s=s.substring(0,i)+l+s.substring(i+9),o=!0}if((i=s.indexOf("Short Time"))!==-1){const l=zt.format(zt.get_table()[20],t,e);s=s.substring(0,i)+l+s.substring(i+10),o=!0}if((i=s.indexOf("Medium Time"))!==-1){const l=zt.format(zt.get_table()[18],t,e);s=s.substring(0,i)+l+s.substring(i+11),o=!0}if((i=s.indexOf("Long Time"))!==-1){const l=new Intl.DateTimeFormat(r,{timeStyle:"medium"}).format(n);s=s.substring(0,i)+l+s.substring(i+9),o=!0}return o?{fmt:s,date:n}:null},yc=Object.freeze({"General Number":"General","General Date":"m/d/yyyy h:mm","Medium Date":zt.get_table()[15],"Medium Time":zt.get_table()[18],"Short Time":zt.get_table()[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:zt.get_table()[2],Standard:zt.get_table()[4],Percent:zt.get_table()[10],Scientific:zt.get_table()[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'}),Rf=Object.freeze({black:0,white:1,red:2,green:3,blue:4,yellow:5,magenta:6,cyan:7}),Af=a=>{let t=null;if((a=a.toLowerCase()).startsWith("color")){const e=parseInt(a.substring(5));e>=0&&e<=56&&(t=`Index${e+7}`)}if(!t){const e=Rf[a];e!==void 0&&(t=Ys(e).toString())}return t},xu="=",Tf="<>",Ru=">",Au="<",Tu=">=",Mf="<=",Un=new Map;Un.set(xu,(a,t)=>a===t),Un.set(Tf,(a,t)=>a!==t),Un.set(Ru,(a,t)=>a>t),Un.set(Au,(a,t)=>a<t),Un.set(Tu,(a,t)=>a>=t),Un.set(Mf,(a,t)=>a<=t);const Ff=/(Black|Blue|Cyan|Green|Magenta|Red|White|Yellow|Color[0-9]+)/i,Nf=/(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)/i,kf=/\[(.*?)\]/g,Of=(a,t)=>{const e={color:null,condition:null};let n=null,r=new RegExp(kf);for(;(n=r.exec(a))!==null;){let o=!1,s=Ff.exec(n[1]);if(s){if(o=!0,e.color)throw new Error(`format error, two colors specified: '${a}' and '${e.color}'.`);e.color=Af(s[1]),e.color||console.warn("Unable to parse LegacyColor",s[1])}let i=Nf.exec(n[1]);if(i){if(o=!0,e.condition)throw new Error(`Format error, two conditions specified: ' ${a}'`);e.condition={op:i[1],comp:parseFloat(i[2])}}if(!o)return e}return e.condition||(e.condition=t),e},Bf=Object.freeze({op:Tu,comp:0}),Cc=Object.freeze({op:Au,comp:0}),Df=Object.freeze({op:Ru,comp:0}),Lf=Object.freeze({op:xu,comp:0}),Uf=(a,t)=>{let e=(o=>{if(!o)return w.CommonUtils.EmptyArray;const s=[],i=o.split(";"),l=i.length;for(let c=0;c<l;c++){let h=null;l===2?c===0?h=Bf:c===1&&(h=Cc):l!==3&&l!==4||(h=c===0?Df:c===1?Cc:c===2?Lf:null);const d=i[c],u=Of(d,h);s.push({format:d,colorAndCondition:u})}return s})(a);const n=e.length;if(n===0)return null;let r=e[0].colorAndCondition;if(n===1&&r&&!r.condition&&r.color)return r.color;for(let o=0;o<n;o++){r=e[o].colorAndCondition;let s=r?.condition??void 0;if(o===3)return typeof t=="string"&&r?.color?r.color:null;if(s&&typeof t=="number"&&Un.get(s.op)(t,s.comp))return r?.color??null}},Ec=a=>{if(a===lt.MediumDate||a===lt.LongDate||a===lt.ShortDate||a===lt.MediumTime||a===lt.LongTime||a===lt.ShortTime)return!0},zf=(a,t)=>a===t?0:Ec(a)?1:Ec(t)?-1:a===lt.Percentage?1:t===lt.Percentage?-1:a===lt.Currency||a===lt.Accounting?1:t===lt.Currency||t===lt.Accounting?-1:0,kr=a=>(a instanceof Date||Object.prototype.toString.call(a)==="[object Date]")&&!isNaN(a.getTime()),Pf=(a,t,e)=>{return e==="month"||e==="months"||e==="m"?(n=a,12*((r=t).getUTCFullYear()-n.getUTCFullYear())+(r.getUTCMonth()-n.getUTCMonth())+(r.getUTCDate()-n.getUTCDate()<0?-1:0)):e==="year"||e==="years"||e==="y"?((o,s)=>Math.abs(s.getFullYear()-o.getFullYear()))(a,t):e==="day"||e==="days"||e==="d"?((o,s)=>Math.floor((Date.UTC(s.getFullYear(),s.getMonth(),s.getDate())-Date.UTC(o.getFullYear(),o.getMonth(),o.getDate()))/864e5))(a,t):void console.warn("invalid unit"+e);var n,r},jo="d",Ic="m",bc="y",vc=(a,t,e)=>{if(e==="month"||e==="months"||e==="m"){const n=new Date(a.getTime());return new Date(n.setMonth(n.getMonth()+t))}if(e==="year"||e==="years"||e==="y"){const n=new Date(a.getTime());return n.setFullYear(n.getFullYear()+t),n}if(e==="day"||e==="days"||e==="d"){const n=new Date(a.getTime());return n.setDate(n.getDate()+t),n}if(e==="hour"||e==="hours"||e==="h"){const n=new Date(a.getTime());return n.setHours(n.getHours()+t),n}return console.warn("invalid unit"+e),null},Or=(a,t=!1)=>{let e=zt.parse_date_code(a,{date1904:t});return e?new Date(e.y,e.m-1,e.d,e.H,e.M,e.S,Math.round(1e3*e.u)):null},Ao=(a,t=!1)=>isNaN(a)?null:zt.dateNumLocal(a,t),Wf=new class extends hu{parse(a,t,e){const n=r=>r-1;switch(t){case"M":return sn(En(cu,a),n);case"MM":return sn(_o(2,a),n);case"Mo":return sn(e.ordinalNumber(a,{unit:"month"}),n);case"MMM":return e.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(a,{width:"narrow",context:"formatting"});default:return e.month(a,{width:"wide",context:"formatting"})}}},$e=(a=>{let t=a,e=[];for(let n=0;n<t.length;n++){let r=t[n][0].indexOf("yyy")>-1,o=t[n][0].indexOf(".")>-1,s=t[n][0].indexOf("-")>-1;e.push({parseFormat:t[n][0],numberFormat:t[n][1],todaysYear:!r,windowYear:!0,containsDot:o,containsDash:s}),r&&e.push({parseFormat:t[n][0].replace(/yyy/g,"yyyy"),numberFormat:t[n][1],todaysYear:!1,windowYear:!1,containsDot:o,containsDash:s})}return e})([["MM-d","d-mmm"],["MM-yyy","mmm-yy"],["M-yyy","mmm-yy"],["M-d-yyy","m/d/yyyy"],["yyy-M-d","m/d/yyyy"],["yyy-d-M","m/d/yyyy"],["d.MMM","d-mmm"],["d.MMMM","d-mmm"],["d.MMM.yyy","d-mmm-yy"],["d.MMMM.yyy","d-mmm-yy"],["MMM.d","d-mmm"],["MMMM.d","d-mmm"],["MMM.yyy","mmm-yy"],["MMMM.yyy","mmm-yy"],["MMM dd, yyy","d-mmm-yy"],["MMMM dd, yyy","d-mmm-yy"],["EEE, MMMM dd, yyy","[$-x-sysdate]ddd, mmmm dd, yyyy"],["EEEE, MMMM dd, yyy","[$-x-sysdate]dddd, mmmm dd, yyyy"]]),Hf={year:0,month:1,day:0,hour:0,minute:0,second:0,millis:0},Vf=(a,t=!1)=>{const e={...Hf,...a};return e.year=t?1904:1900,e.dow=-1,e.oaDateTime=((n,r=!1)=>{if(!n)return null;let o=n.day,s=n.hour;s>24&&(o+=Math.floor(s/24),s%=24),o>60&&--o;const i=new Date(n.year,n.month-1,o,s,n.minute,n.second,n.millis);return Ao(i,r)})(e,t),e},jf=new RegExp("([0-9]{1,2})\\s*(P[M]?|A[M]?)\\s*$","i"),Gf=new RegExp("([0-9]+)\\s*\\:$","i"),$i=new RegExp("(\\s*[0-9]{1,2})\\s+(P[M]?|A[M]?)\\s*$","i"),xc=new RegExp("(\\s*[0-9]{1,4})\\s*([\\.]{1}\\s*[0-9]+)?\\s*\\:","i"),$f=new RegExp("(\\s*[0-9]{1,4})\\s*([\\.]{1}\\s*[0-9]*)?\\s*$","i"),Mu=(a,t=!1,e=!1)=>{if(!a||a.trim().length<2||a.indexOf(":")===-1&&a.match($i)===null)return null;let n=null,r=null,o=null,s=!1,i=!1,l="h:mm AM/PM",c=[],h=a,d=null;do{let p=h.indexOf(":");p===-1?(c.push(h),h=null):(c.push(h.substring(0,p+1)),h=h.substring(p+1,h.length))}while(c.length<3&&h&&h.length>0);if(h?.length>0)return null;const u=(p,S,_)=>{let E=p.match(S);if(!E)return null;d===null&&(d=p.substring(0,E.index));let C=parseInt(E[1]);if(E[2]&&o===null){if(_){let y=parseFloat(E[2].substring(1,E[2].length));isNaN(y)||(r=y)}let I=parseFloat(E[2]);isNaN(I)||(n=I),o=_}return C},g=(p,S)=>{let _=p.match(S);if(!_||_.length!==3)return null;d===null&&(d=p.substring(0,_.index)),s=!0;let E=parseInt(_[1]);return i=_[2].charAt(0)==="p"||_[2].charAt(0)==="P",E};c[c.length-1].trim().length===0&&c.pop();const m=[];if(c.length>0){let p=u(c[0],Gf,!1);if(p===null&&(p=g(c[0],jf)),p===null)return null;m.push(p)}if(c.length>2){let p=u(c[1],xc,!0);if(p===null&&(p=g(c[0],$i)),p===null)return null;m.push(p)}if(c.length>1){const p=c[c.length-1];let S=u(p,xc,!1);if(S===null&&(S=u(p,$f,!1)),S===null&&(S=g(p,$i)),S===null)return null;m.push(S)}if(d!==null&&d.length>0&&!e)return null;if(o===!0&&(m.length===2&&m.splice(1,0,0),m[2]=r||0),s){if(m[0]>12||m[1]>=60||m[2]>=60)return null;m[0]===12?m[0]=i?12:0:i&&(m[0]+=12)}else l=c.length>2?"h:mm:ss":"h:mm",m[0]>23&&(l="[h]:mm:ss"),n!==null&&(l="mm:ss.0"),m[1]>=60&&(l="General"),m[2]>=60&&(l="General");l!=="General"&&(m.length===1&&m.push(0),m.length===2&&(n===null?m.push(0):m.unshift(0)));let f={hour:m[0]??0,minute:m[1]??0,second:m[2]??0,millis:1e3*(n??0)};return{numberFormat:l,parsed:Vf(f,t),leadingText:d}},Jf={},Il=(a,t=!1,e=null)=>{const n=e??Date.now(),r=new Date(n).getFullYear();let o=a.trim().replaceAll(/\s+/g," ");o=o.replaceAll(/\s*([-/])\s*/g,"$1");let s=o.replaceAll(/[-/ ]/g,"."),i=o.replaceAll(/[/]/g,"-");const l=oo.M;oo.M=Wf;for(let c=0;c<$e.length;c++){let h=o;$e[c].containsDot?h=s:$e[c].containsDash&&(h=i);let d=Qm(h,$e[c].parseFormat,n,Jf),u=zt.dateNumLocal(d,t);if(kr(d)&&($e[c].windowYear||u>0)){if($e[c].windowYear){let m=d.getFullYear()<=29?2e3+d.getFullYear():1900+d.getFullYear();d.setFullYear(m)}if($e[c].todaysYear&&d.setFullYear(r),u=zt.dateNumLocal(d,t),$e[c].parseFormat.indexOf("EEE")>-1){const m=El("ddd",u,{date1904:t});if(!h.toLowerCase().includes(m.toLowerCase()))return null}let g=$e[c].numberFormat;return oo.M=l,{asOADate:u,asJSDate:d,numberFormat:g}}}return oo.M=l,null};function To(a){if(!a)return!1;let t=a.replaceAll(/\[([^)]+)\]/g,"").toLowerCase();return t=t.replaceAll(/".*"/g,""),t=t.replaceAll(/\\./g,""),t=t.replace(/[_*]./g,""),!t.includes("time")&&!!(t.includes("d")||t.includes("m")&&!t.includes("h")&&!t.includes("s")||t.includes("y")||t==="short date"||t==="medium date"||t==="long date")}function gi(a){if(!a)return!1;let t=a.replaceAll(/\[([^)]+)\]/g,"").toLowerCase();return t=t.replaceAll(/".*"/g,""),t=t.replaceAll(/\\./g,""),t=t.replace(/[_*]./g,""),!t.includes("date")&&!(!t.includes("h")&&!t.includes("s")&&t!=="short time"&&t!=="medium time"&&t!=="long time")}var Rc,Je;exports.IText=void 0,(Rc=exports.IText||(exports.IText={})).SmallCaps={None:"none",Small:"small",All:"all"},Rc.StrikeStyle={None:"none",Single:"single",Double:"double"},exports.ITextFrame=void 0,(Je=exports.ITextFrame||(exports.ITextFrame={})).TabStop=class{},Je.HorizontalAlignment={General:"general",Left:"left",Center:"center",Right:"right",Justify:"justify",Distributed:"distributed",CenterContinuous:"centerContinuous",Fill:"fill"},Je.VerticalAlignment={Top:"top",Center:"center",Bottom:"bottom",Justify:"justify",Distributed:"distributed"},Je.Orientation={Horizontal:"horizontal",Vertical:"90",Vertical270:"270",Stacked:"stacked"},Je.ReadingDirection={Auto:"auto",LeftToRight:"ltr",RightToLeft:"rtl"},Je.Overflow={Visible:"visible",Wrap:"wrap",Clip:"clip",Shrink:"shrink",Ellipsis:"ellipsis"},Je.Autofit={None:"none",Normal:"normal",Shape:"shape"},Je.TabStopAlignment={Default:"default",Left:"left",Right:"right",Center:"center"},Je.toCSSHorizontalTextAlign=a=>a?a.toLowerCase():null;const Fu=(a,t,e=1e3)=>{if(!a)throw new Error("A template string must be specified.");if(t(a))return a;let n=new RegExp(/\d+/,"g").exec(a),r=null,o=0;n!==null?(r=a,o=parseFloat(n[0]),isNaN(o)&&(o=0)):(o=1,r=`${a}_${o}`);let s=isNaN(o)?0:o;for(;o<s+e;)try{const i=r.replace(/\d+/g,()=>""+o++);if(t(i))return i}catch{}throw new Error(`Unable to find valid name for '${a}'.`)},Rr=(a,t=!1)=>{if(!a||a.length===0)return a;const e=a.charAt(0);if(e>="a"&&e<="z"){const n=String.fromCharCode(e.charCodeAt(0)-32);return t?n+a.slice(1).toLowerCase():n+a.slice(1)}return a},Ac=a=>{if(!a||typeof a!="string")return"";const t=a.split(/[\\/]/).pop()||"",e=t.lastIndexOf(".");return t===""||e<1?"":t.slice(e+1)},Nu=a=>a.toLowerCase().replace(/([-_][a-z])/g,t=>t.toUpperCase().replace("-","").replace("_","")),ku=(a,t=36)=>a.substring(0,36)+(a.length>t?"…":""),Ts=a=>{if(a===void 0)return 0;let t=a.toString().split(".");return t.length<=1?0:t[1].length||0},Ou=new RegExp(/^["|'|`](.*)["|'|`]$/),qf=new RegExp("^([a-zA-Z]+:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i"),Bu=(a=",",t="'")=>new RegExp(`\\s*${a}\\s*(?=(?:[^${t}]*${t}[^${t}]*${t})*[^${t}]*$)`,"g"),Du=Bu(),Lu=a=>a&&a.length>1&&Ou.test(a)&&a[0]===a[a.length-1],bl=a=>a.replace(Ou,"$1"),Uu=(a,t="'")=>`${t}${a}${t}`,zu=(a,t=void 0,e=void 0)=>{let n=Du;return t===void 0&&e===void 0||(n=Bu(t,e)),a.split(n)},Pu=a=>{let t;try{t=new URL(a)}catch{return!1}return(t.protocol==="http:"||t.protocol==="https:")&&qf.test(a)},Xf=new RegExp(/^[^\s@]+@[^\s@]+\.[^\s@]+$/i),Wu=a=>!!a.toLowerCase().startsWith("mailto:")||Xf.test(a),Hu=a=>((a>=26?Hu((a/26|0)-1):"")+"abcdefghijklmnopqrstuvwxyz"[a%26|0]).toUpperCase(),Kf=Object.freeze(Object.defineProperty({__proto__:null,DefaultUnQuoteRegEx:Du,camelToSnake:a=>a&&a.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`),capitalize:Rr,clampString:ku,countDecimals:Ts,findValidTextValue:Fu,getBaseName:(a,t=!1)=>{if(!a||typeof a!="string")return"";const e=a.split(/[\\/]/).pop()||"";if(e==="")return"";const n=Ac(e),r=n.length===0?e:e.slice(0,e.length-n.length-1);return t?Rr(r,!0):r},getFileNameExtension:Ac,isQuoted:Lu,isValidEmail:Wu,isValidHttpUrl:Pu,numberToAlphabet:Hu,quote:Uu,snakeToCamel:Nu,splitUnquoted:zu,unquote:bl},Symbol.toStringTag,{value:"Module"})),Yf=(a,t,e,n=null)=>{const r=(t||11*exports.IFont.getDeviceScale())/exports.IFont.getDeviceScale(),o=n?.letterSpacing||0,s=a.length,i=s*(.55*r)-(a.match(/[il.,;!|]/g)||[]).length*r*.15+(a.match(/[mwMW]/g)||[]).length*r*.1+(s>0?(s-1)*o:0),l=Math.ceil(1.2*r),c=Math.ceil(.8*r),h=Math.ceil(.2*r),d=Math.ceil(.45*r),u=Math.ceil(1.1*r),g=Math.max(1,Math.ceil(.08*r));return{width:i,lineHeight:l,baseline:c,lineGap:h,strikePosition:d,underlinePosition:u,strikeThickness:g,underlineThickness:g,actualBoundingBoxLeft:0,actualBoundingBoxRight:i,actualBoundingBoxAscent:c,actualBoundingBoxDescent:l-c,fontBoundingBoxAscent:c,fontBoundingBoxDescent:l-c,emHeightAscent:c,emHeightDescent:l-c,hangingBaseline:.8*c,alphabeticBaseline:c,ideographicBaseline:l}},Yt={},Tc=(a,t)=>{let e="normal";return a&&t?e="bold italic":a?e="bold":t&&(e="italic"),e},Mc=a=>a.split(",").map(t=>{const e=(t=t.trim()).indexOf(" ")>=0,n=t.indexOf('"')>=0||t.indexOf("'")>=0;return e&&!n&&(t=`"${t}"`),t}).join(", "),Fc=new Map,Ji=new Map;let qe=null;const Qf=(a,t,e,n=null)=>{const r=n?.letterSpacing||0;typeof window>"u"||Yt.contextMeasure||(Yt.canvasMeasure=document?document.createElement("canvas"):null,Yt.contextMeasure=Yt.canvasMeasure.getContext("2d"),Yt.contextMeasure.letterSpacing=`${r}px`,Yt.contextMeasure.textRendering="geometricPrecision",Yt.contextMeasure.textBaseline="alphabetic",Yt.contextMeasure.textAlign="left");const o=e||"calibri",s=t||11*exports.IFont.getDeviceScale(),i=n?.isBold||!1,l=n?.isItalic||!1;let c=null;if(a==="#"||a==="0"||a==="M"||a===""||a==="_"||a==="-"){c=((f,p,S,_,E,C)=>f+Math.round(100*p)/100+S+_+E+C)(a,s,o,i,l,r);const m=Fc.get(c);if(m)return m}if(qe&&qe.text===a&&qe.size===t&&qe.family===e&&qe.options?.isBold===n?.isBold&&qe.options?.isItalic===n?.isItalic&&qe.options?.letterSpacing===n?.letterSpacing)return qe.metrics;let h={};const d=Tc(i,l)+" "+w.CommonUtils.roundAccurately(s,2)+"px "+Mc(o);Yt.contextMeasure?(Yt.contextMeasure.font=d,Yt.contextMeasure.letterSpacing=`${n?.letterSpacing??0}px`,h=Yt.contextMeasure.measureText(a)):h.width=a.length*w.CommonUtils.roundAccurately(s/exports.IFont.getDeviceScale()*.6,2);let u=Ji.get(d);if(!u&&typeof window<"u"){const m=document.createElement("div");m.style.visibility="hidden",m.style.position="absolute";const f=document.createElement("span");f.textContent="Mj",f.style.fontSize="100px",f.style.fontWeight=n?.isBold?"bold":"normal",f.style.fontStyle=n?.isItalic?"italic":"normal",f.style.fontFamily=`'${o}'`,f.style.lineHeight="1.2",m.appendChild(f),document.body.appendChild(m);const p=m.getBoundingClientRect(),S=f.getBoundingClientRect();document.body.removeChild(m),Yt.contextMeasure.font=Tc(i,l)+" "+w.CommonUtils.roundAccurately(100,2)+"px "+Mc(o);const _=Yt.contextMeasure.measureText("M"),E=p.bottom-p.top,C=E-(_.fontBoundingBoxAscent+_.fontBoundingBoxDescent),I=_.fontBoundingBoxAscent+S.top,y=Yt.contextMeasure.measureText("_"),b=I-y.actualBoundingBoxAscent,v=Math.max(1,Math.abs(y.actualBoundingBoxAscent+y.actualBoundingBoxDescent)),R=Yt.contextMeasure.measureText("-"),x=w.CommonUtils.roundAccurately(I-R.actualBoundingBoxAscent+Math.max(1,.05*E,0)),T=v,M=s/100;u={lineHeight:Math.ceil(E*M),baseline:Math.ceil(I*M),lineGap:Math.ceil(C*M),strikePosition:Math.ceil(x*M),underlinePosition:Math.ceil(b*M),strikeThickness:Math.ceil(T*M),underlineThickness:Math.ceil(v*M)},Yt.contextMeasure.font=d,Ji.set(d,u)}u||(u={lineHeight:Math.ceil(1.2*s),baseline:Math.ceil(s)+Math.floor(.1*s),lineGap:Math.ceil(.1*s),strikePosition:Math.ceil(.55*s)+Math.floor(.1*s),strikeThickness:1,underlinePosition:Math.ceil(1.1*s),underlineThickness:1},Ji.set(d,u));const g={...h,width:h.width,...u};return c!==null&&Fc.set(c,g),qe={text:a,size:t,family:e,options:n,metrics:g},g};let ar=null;const Zf=()=>{if(ar)return ar;try{const a=document.createElement("canvas"),t=a.getContext&&a.getContext("2d");t&&typeof t.fillText=="function"&&(ar=Qf)}catch{}return ar||(console.warn("⚠️ CanvasFontMeasurer not available, falling back to SimpleFontMeasurer"),ar=Yf),ar};let Go=null;var Xe;exports.IFont=void 0,(Xe=exports.IFont||(exports.IFont={})).Style={Normal:"normal",Italic:"italic"},Xe.Scheme={Major:"major",Minor:"minor",None:"none"},Xe.UnderlineStyle={None:"none",Double:"double",DoubleAccounting:"doubleAccounting",Single:"single",SingleAccounting:"singleAccounting"},Xe.VerticalAlignment={Baseline:"baseline",Sub:"sub",Super:"super"},Xe.setSharedMeasurer=a=>{Go=a},Xe.getSharedMeasurer=()=>Go||(Go=Zf(),Go),Xe.getDeviceScale=()=>96/72*1,Xe.getPanoseFallback=a=>{const t=[],e=a.length;for(let s=0;s<e;s+=2)t.push(parseInt(a.substring(s,s+2),16));const n=t[0],r=t[1],o=t[3];switch(n){case 2:return o===9?"monospace":r>=2&&r<=8?"serif":"sans-serif";case 3:return"cursive";case 4:return"fantasy";case 5:return"monospace";default:return"sans-serif"}},Xe.GenericName={Serif:"serif",SanSerif:"sans-serif",MonoSpace:"monospace",Cursive:"cursive",Fantasy:"fantasy",SystemUI:"system-ui",UISystem:"ui-system",UISerif:"ui-serif",UISanSerif:"ui-sans-serif",UIMonoSpace:"ui-monospace",UIRounded:"ui-rounded",Math:"math",Emoji:"emoji",Fangsong:"fangsong"};class Vu{constructor(t){this._private={input:t},typeof t=="string"?this._private.name=t:Object.assign(this._private,t)}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}}const ju=["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"],ae=new Map;ae.set(exports.IFont.GenericName.Serif,["Tahoma"]),ae.set(exports.IFont.GenericName.SanSerif,["Calibri"]),ae.set(exports.IFont.GenericName.MonoSpace,["Courier New"]),ae.set(exports.IFont.GenericName.Cursive,["Comic Sans MS"]),ae.set(exports.IFont.GenericName.Fantasy,["Luminari"]),ae.set(exports.IFont.GenericName.UISystem,["Arial"]),ae.set(exports.IFont.GenericName.UISerif,["Tahoma"]),ae.set(exports.IFont.GenericName.UISanSerif,["Arial"]),ae.set(exports.IFont.GenericName.UIMonoSpace,["Courier New"]),ae.set(exports.IFont.GenericName.UIRounded,["Arial"]),ae.set(exports.IFont.GenericName.Math,[]),ae.set(exports.IFont.GenericName.Emoji,[]),ae.set(exports.IFont.GenericName.Fangsong,[]);const Ja=new Map;let Gu=[];vl(ju);const tp=eval;function vl(a){a||vl(ju);let t=[];for(let e=0;e<a.length;e++){let n=a[e];typeof n=="string"&&(n=new Vu(n));let r=!0;const o="document";try{r=tp(`${o}.fonts.check('12px ${n.getFamily()}')`)}catch{}const s={fontRef:n,loaded:r};t.push(s),Ja.set(n.getFamily(),s)}Gu=Object.freeze(t)}const qi=new Map,ep=Object.freeze(Object.defineProperty({__proto__:null,findBestMatch:(a,t)=>{const e=qi.get(a);if(e)return e.fontRef===null?null:e;let n=[a];t.fallbacks&&(n=n.concat(t.fallbacks));let r=null;for(let o=0;!r&&o<n.length;o++){let s=n[o];if(r=Ja.get(s),!r){const i=ae.get(s);if(i)for(let l=0;!r&&l<i.length;l++)r=Ja.get(i[l])}}return r?qi.set(a,r):qi.set(a,{fontRef:null,loaded:!1}),r},getFontList:function(){return Gu},setFontList:vl},Symbol.toStringTag,{value:"Module"})),Nc=Object.freeze([8,9,10,11,12,14,16,18,20,22,24,26,28,30,36,48,72]),np=Object.freeze(Object.defineProperty({__proto__:null,DefaultFontSizes:Nc,findNextFontSize:(a,t=!0,e=Nc)=>{if(!e||e.length===0)return a;if(a===void 0)return e[0];if(t&&a>=e[e.length-1]||!t&&a<=e[0])return a;let n=w.CommonUtils.findEqualOrGreater(e,a);return t?(e[n]===a&&(n+=1),e[n]||(n-=1),e[n]):(n-=1,e[n])}},Symbol.toStringTag,{value:"Module"}));class mi{constructor(t,e,n,r=null,o=null,s=null){this._private={wrapped:!0,insets:w.TypesUtils.EmptyRect,orientation:exports.ITextFrame.Orientation.Horizontal,autoFit:exports.ITextFrame.Autofit.None,fontScale:1,vertical:!1,columnCount:1,columnSpacing:0,verticalAlignment:exports.ITextFrame.VerticalAlignment.Center,horizontalCentered:!1,lineReduction:0,isSpaceFirstLastPara:!1,presetTextWarp:null,paragraphs:w.CommonUtils.EmptyArray},this._bounds=null,this._textBounds=null,this._lines=null,this._lastLayoutSize=void 0,this._lastLayout=void 0,this._private=Object.assign(this._private,t||{}),this._defaultFont=e,this._alignment=n,this._lines=r,this._bounds=Object.freeze(o),this._textBounds=Object.freeze(s)}visitParas(t){t?.visitTextFrame?.(this);const e=this.paragraphs,n=e.length;for(let r=0;r<n;r++){const o=e[r];t?.visitTextParagraph?.(o,r,n);const s=o.runs,i=s.length;for(let l=0;l<i;l++)t?.visitTextRun?.(s[l],l,i)}}visitLines(t){t?.visitTextFrame?.(this);const e=this.lines,n=e.length;for(let r=0;r<n;r++){const o=e[r];t?.visitTextLine?.(o,r,n);const s=o.runs,i=s.length;for(let l=0;l<i;l++)t?.visitTextRun?.(s[l],l,i)}}layout(t=null){return this._lastLayout&&this._lastLayoutSize?.width===t?.width&&this._lastLayoutSize?.height===t?.height||(this._lastLayout=hp(this,this._defaultFont,this._alignment,t),this._lastLayoutSize=t),this._lastLayout}clone(t){const e=t?.visitTextFrame?.(this),n=Object.assign(this._private,e||{});return delete n.bounds,new mi(n,this._defaultFont,this._alignment)}equals(t){return w.CommonUtils.deepEqual(this._private,t._private)}createTemporaryTextFrame(t,e){return Si(t,this._defaultFont,this._alignment,e??this._private.wrapped)}get bounds(){if(this._bounds===null)throw new Error(kc);return this._bounds}get textBounds(){if(this._textBounds===null)throw new Error(kc);return this._textBounds}get lines(){return this._lines}get wrapped(){return this._private.wrapped}get insets(){return this._private.insets}get orientation(){return this._private.orientation}get autoFit(){return this._private.autoFit}get fontScale(){return this._private.fontScale}get vertical(){return this._private.vertical}get columnCount(){return this._private.columnCount}get columnSpacing(){return this._private.columnSpacing}get verticalAlignment(){return this._private.verticalAlignment}get horizontalCentered(){return this._private.horizontalCentered}get lineReduction(){return this._private.lineReduction}get isSpaceFirstLastPara(){return this._private.isSpaceFirstLastPara}get presetTextWarp(){return this._private.presetTextWarp}get paragraphs(){return this._private.paragraphs}}const kc="bounds can not be used until layout";class Oc{static{this.NL=`
24
+ `}static{this.DefaultLineSpacing=100}static{this.DefaultTabWidth=72}}class fi{constructor(t){this._private={defaultFontSize:11,defaultTabSize:Oc.DefaultTabWidth,tabOverrides:w.CommonUtils.EmptyArray,spacingBefore:0,spacingAfter:0,lineSpacing:Oc.DefaultLineSpacing,align:exports.ITextFrame.HorizontalAlignment.Left,endParagraphSize:0,indentLevel:0,leadingIndent:0,hangingIndent:0,rightMargin:0,bullet:null},this._private=Object.assign(this._private,t||{})}clone(t){const e=t?.visitTextParagraph?.(this,0,1),n=Object.assign(this._private,e||{});return delete n.bounds,new fi(n)}equals(t){return w.CommonUtils.deepEqual(this._private,t._private)}get bounds(){return this._bounds}get defaultFontSize(){return this._private.defaultFontSize}get defaultTabSize(){return this._private.defaultTabSize}get tabOverrides(){return this._private.tabOverrides}get spacingBefore(){return this._private.spacingBefore}get spacingAfter(){return this._private.spacingAfter}get lineSpacing(){return this._private.lineSpacing}get align(){return this._private.align}get endParagraphSize(){return this._private.endParagraphSize}get indentLevel(){return this._private.indentLevel}get leadingIndent(){return this._private.leadingIndent}get hangingIndent(){return this._private.hangingIndent}get rightMargin(){return this._private.rightMargin}get bullet(){return this._private.bullet}get runs(){return this._private.runs}}class pi{constructor(t,e=null){this._private={text:null,fontName:"Arial",bold:!1,italic:!1,superSub:!1,fontSize:11,letterSpacing:0,kerningMin:10,smallCaps:exports.IText.SmallCaps.None,offset:0,strikeStyle:exports.IText.StrikeStyle.None},this._private={...this._private,...t},this._bounds=e}clone(t){const e=t?.visitTextRun?.(this,0,1),n=Object.assign(this._private,e||{});return delete n.bounds,new pi(n)}equals(t){return w.CommonUtils.deepEqual(this._private,t._private)}get bounds(){return this._bounds}get text(){return this._private.text}get fontName(){return this._private.fontName}get bold(){return this._private.bold}get italic(){return this._private.italic}get fontSize(){return this._private.fontSize}get superSub(){return this._private.superSub}get letterSpacing(){return this._private.letterSpacing}get kerningMin(){return this._private.kerningMin}get smallCaps(){return this._private.smallCaps}get offset(){return this._private.offset}get strikeStyle(){return this._private.strikeStyle}}class $u{constructor(t,e,n){this._private={},this._private={bounds:t,baseline:e,runs:n}}get bounds(){return this._private.bounds}get baseline(){return this._private.baseline}get runs(){return this._private.runs}get bullet(){return null}}function xl(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Bc,Dc,Lc,Uc,zc,Pc;function rp(){if(Uc)return Lc;Uc=1;const a=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,t=(e,n,r)=>{let o=e[n];e[n]=e[r],e[r]=o};return Lc={swap32LE:e=>{a&&(n=>{const r=n.length;for(let o=0;o<r;o+=4)t(n,o,o+3),t(n,o+1,o+2)})(e)}}}var op=(function(){if(Pc)return zc;Pc=1;const a=(function(){if(Dc)return Bc;function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function n(y,b){this.source=y,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=b,this.destLen=0,this.ltree=new e,this.dtree=new e}Dc=1;var r=new e,o=new e,s=new Uint8Array(30),i=new Uint16Array(30),l=new Uint8Array(30),c=new Uint16Array(30),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new e,u=new Uint8Array(320);function g(y,b,v,R){var x,T;for(x=0;x<v;++x)y[x]=0;for(x=0;x<30-v;++x)y[x+v]=x/v|0;for(T=R,x=0;x<30;++x)b[x]=T,T+=1<<y[x]}var m=new Uint16Array(16);function f(y,b,v,R){var x,T;for(x=0;x<16;++x)y.table[x]=0;for(x=0;x<R;++x)y.table[b[v+x]]++;for(y.table[0]=0,T=0,x=0;x<16;++x)m[x]=T,T+=y.table[x];for(x=0;x<R;++x)b[v+x]&&(y.trans[m[b[v+x]]++]=x)}function p(y){y.bitcount--||(y.tag=y.source[y.sourceIndex++],y.bitcount=7);var b=1&y.tag;return y.tag>>>=1,b}function S(y,b,v){if(!b)return v;for(;y.bitcount<24;)y.tag|=y.source[y.sourceIndex++]<<y.bitcount,y.bitcount+=8;var R=y.tag&65535>>>16-b;return y.tag>>>=b,y.bitcount-=b,R+v}function _(y,b){for(;y.bitcount<24;)y.tag|=y.source[y.sourceIndex++]<<y.bitcount,y.bitcount+=8;var v=0,R=0,x=0,T=y.tag;do R=2*R+(1&T),T>>>=1,++x,v+=b.table[x],R-=b.table[x];while(R>=0);return y.tag=T,y.bitcount-=x,b.trans[v+R]}function E(y,b,v){var R,x,T,M,F,N;for(R=S(y,5,257),x=S(y,5,1),T=S(y,4,4),M=0;M<19;++M)u[M]=0;for(M=0;M<T;++M){var k=S(y,3,0);u[h[M]]=k}for(f(d,u,0,19),F=0;F<R+x;){var U=_(y,d);switch(U){case 16:var O=u[F-1];for(N=S(y,2,3);N;--N)u[F++]=O;break;case 17:for(N=S(y,3,3);N;--N)u[F++]=0;break;case 18:for(N=S(y,7,11);N;--N)u[F++]=0;break;default:u[F++]=U}}f(b,u,0,R),f(v,u,R,x)}function C(y,b,v){for(;;){var R,x,T,M,F=_(y,b);if(F===256)return 0;if(F<256)y.dest[y.destLen++]=F;else for(R=S(y,s[F-=257],i[F]),x=_(y,v),M=T=y.destLen-S(y,l[x],c[x]);M<T+R;++M)y.dest[y.destLen++]=y.dest[M]}}function I(y){for(var b,v;y.bitcount>8;)y.sourceIndex--,y.bitcount-=8;if((b=256*(b=y.source[y.sourceIndex+1])+y.source[y.sourceIndex])!==(65535&~(256*y.source[y.sourceIndex+3]+y.source[y.sourceIndex+2])))return-3;for(y.sourceIndex+=4,v=b;v;--v)y.dest[y.destLen++]=y.source[y.sourceIndex++];return y.bitcount=0,0}return(function(y,b){var v;for(v=0;v<7;++v)y.table[v]=0;for(y.table[7]=24,y.table[8]=152,y.table[9]=112,v=0;v<24;++v)y.trans[v]=256+v;for(v=0;v<144;++v)y.trans[24+v]=v;for(v=0;v<8;++v)y.trans[168+v]=280+v;for(v=0;v<112;++v)y.trans[176+v]=144+v;for(v=0;v<5;++v)b.table[v]=0;for(b.table[5]=32,v=0;v<32;++v)b.trans[v]=v})(r,o),g(s,i,4,3),g(l,c,2,1),s[28]=0,i[28]=258,Bc=function(y,b){var v,R,x=new n(y,b);do{switch(v=p(x),S(x,2,0)){case 0:R=I(x);break;case 1:R=C(x,r,o);break;case 2:E(x,x.ltree,x.dtree),R=C(x,x.ltree,x.dtree);break;default:R=-3}if(R!==0)throw new Error("Data error")}while(!v);return x.destLen<x.dest.length?typeof x.dest.slice=="function"?x.dest.slice(0,x.destLen):x.dest.subarray(0,x.destLen):x.dest}})(),{swap32LE:t}=rp();return zc=class{constructor(e){const n=typeof e.readUInt32BE=="function"&&typeof e.slice=="function";if(n||e instanceof Uint8Array){let r;if(n)this.highStart=e.readUInt32LE(0),this.errorValue=e.readUInt32LE(4),r=e.readUInt32LE(8),e=e.slice(12);else{const o=new DataView(e.buffer);this.highStart=o.getUint32(0,!0),this.errorValue=o.getUint32(4,!0),r=o.getUint32(8,!0),e=e.subarray(12)}e=a(e,new Uint8Array(r)),e=a(e,new Uint8Array(r)),t(e),this.data=new Uint32Array(e.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=e)}get(e){let n;return e<0||e>1114111?this.errorValue:e<55296||e>56319&&e<=65535?(n=(this.data[e>>5]<<2)+(31&e),this.data[n]):e<=65535?(n=(this.data[2048+(e-55296>>5)]<<2)+(31&e),this.data[n]):e<this.highStart?(n=this.data[2080+(e>>11)],n=this.data[n+(e>>5&63)],n=(n<<2)+(31&e),this.data[n]):this.data[this.data.length-4]}}})();const sp=xl(op);var Wc,Hc={},ip=(Wc||(Wc=1,(function(a){var t=typeof Uint8Array<"u"?Uint8Array:Array,e=43,n=47,r=48,o=97,s=65,i=45,l=95;function c(h){var d=h.charCodeAt(0);return d===e||d===i?62:d===n||d===l?63:d<r?-1:d<r+10?d-r+26+26:d<s+26?d-s:d<o+26?d-o+26:void 0}a.toByteArray=function(h){var d,u,g,m,f,p;if(h.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var S=h.length;f=h.charAt(S-2)==="="?2:h.charAt(S-1)==="="?1:0,p=new t(3*h.length/4-f),g=f>0?h.length-4:h.length;var _=0;function E(C){p[_++]=C}for(d=0,u=0;d<g;d+=4,u+=3)E((16711680&(m=c(h.charAt(d))<<18|c(h.charAt(d+1))<<12|c(h.charAt(d+2))<<6|c(h.charAt(d+3))))>>16),E((65280&m)>>8),E(255&m);return f===2?E(255&(m=c(h.charAt(d))<<2|c(h.charAt(d+1))>>4)):f===1&&(E((m=c(h.charAt(d))<<10|c(h.charAt(d+1))<<4|c(h.charAt(d+2))>>2)>>8&255),E(255&m)),p},a.fromByteArray=function(h){var d,u,g,m=h.length%3,f="";function p(_){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(_)}function S(_){return p(_>>18&63)+p(_>>12&63)+p(_>>6&63)+p(63&_)}for(d=0,g=h.length-m;d<g;d+=3)f+=S(u=(h[d]<<16)+(h[d+1]<<8)+h[d+2]);switch(m){case 1:f+=p((u=h[h.length-1])>>2),f+=p(u<<4&63),f+="==";break;case 2:f+=p((u=(h[h.length-2]<<8)+h[h.length-1])>>10),f+=p(u>>4&63),f+=p(u<<2&63),f+="="}return f}})(Hc)),Hc),qa={};const ap=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],lp=new sp(xl(ip).toByteArray("AAgOAAAAAAAQ4QAAAQ0P8vDtnQuMXUUZx+eyu7d7797d9m5bHoWltKVUlsjLWE0VJNigQoMVqkStEoNQQUl5GIo1KKmogEgqkKbBRki72lYabZMGKoGAjQRtJJDaCCIRiiigREBQS3z+xzOTnZ3O+3HOhd5NfpkzZx7fN9988zivu2M9hGwB28F94DnwEngd/Asc1EtIs9c/bIPDwCxwLDgezHcodyo4w5C+CCwBS8FnwSXgCnA1uFbI93XwbXAbWAfWgx+CzWAb+An4KfgFeAzsYWWfYuFz4CXwGvgb+Dfo6yNkEEwGh4CZYB44FpwI3g1OY+kfBItZOo2fB84Hy8DF4HJwNbiWpV8PVoO1LH4n2NRXyN+KcAd4kNVP9XsY4aPgcfAbsBfs6SniL4K/sPjfEf6HlanXCRkCw2BGvUh/keWfXS/CY+pFXs7x9XHmM94LTmWIeU2cgbxnS/k/B3kf86jDhU8L9V2E40vAFWAlWFUfb++NOL4F3C7JX4/4GiE+hvgWsF0oS7mXldspnN+F493gyXrh9xTav0cg3EvzgVfBG6wsmVSEkxBOBgdPGpd7JI6PnqRvJ68/xlbHof53gPeA94OzwLngk+ACsAwsByvASrAK3MB0Ws3CtQjvBJvAVrADPMDSHkb4CNijaccTwvnf4fiPEs8Lxy+D18A/QU8/xjgYBjPAbDAKTgYLwOngTHAO+EQ/8wuEF4EvsPiVCFf2+9tsFStzA8LVHuXXBsi6QyqzUYiPMR/7Mc7dAx7oL8bzw/3u/Bw8Bp4Az4AXwCtgHzsmDXP5fiF9iiVvly5d0sHngar16NKlS5cuXbp06fLmYlqHXrcd3ph4P0THUY3iXh49novju4S0tzfs5d+JPKewfAsRntZb3K9ZhOMlrO6lCC8An28U9+OuovcPcPxlVu5rCL/VmHh/iHIrzn3fIPu7SN8Axmg+8AOwEWwCm7tp3bRuWjetm5Y8bSu4B9zbKO6ZVsnORrVU3f4uXTqZ2H3sLoyx3eDXjfDndE9qyj6L838CfwVvgFpzYnof4oNgOhgBc8Fos9DrZIQLmtXPP1MmF6wGj4H+KXoWguvADkXaPil+YpuQy8Am8Ey7ODdtmJDF4HowBp4De6HDTNjhfHAHeBr0DBBy0kDxfPbcgSIusgrcWhtnJ8vL+TPix7UIOQtcBq4C28Cr4KRBnANbwSuDE+s50JgyNNFuXbp06XIgsXjIvPafjvXozKY+fVFz/z0LT1uCtKVSWbrOLWPnztG8e0Xfy7ol8XtZJi7WtG+5od2UFXQ/A12vUeS7jp27yVKHjdsU9lXB869TyNvAzt0lpP2oWbwLdjiO78bx/Sz+EMJHwK9Y/LcIfw+eZ3F67/Hl5vh9xX80J+rwX8SvRDhpgL17iPAQMHNArfPrqHPewLheI+AERV6efwV418B4nOZ/H+IfYHV8GOF5LJ3eAz0fx8sM9S0fUNud39O9CulfGZhY5huI3wzWgNvBelbHZoTbNPVpfYjKQpkHwUNgl0LWblbnk0LbbDxr0OMFpL3iqWdu9nWYPlVAWkXY39LnGdCkDbeqv1YNbfcMQ3t9oe8lzm6NH9N1ZB6Ln4BwfkJZJk7RyFnYKt6b/JDQXx9p5X+eFdqOjzM9P9MB/lUlFzr20aXIdzlY4dmn9F3YqtvoO76/2hp/D/xA5Zue88nNyL8GbFbs075X0tyUig3Qd2MCnf//HjnzpbsR3g9+1kHzzVjdnE71/qVBX9rGPUh/ysNWe1neFzvIDi5zAufV1sT0N0poR22wkFUfTOPfA4N2mbZ5fSrqOHSw+IbkSBbOGSzSRgf91/GTUWYBOB2cIZQ/G8cfBZ8CFwrnL8XxF8FKcA24jqXdiPA7Qr61OF7H4mMItwzuv2/YLth1ISt3Hzu3k4W7EH5JqPdRHD/O4k+z8A8IX5Lq3y7Z4nXE9xn6kX6vQ4bKfy+ok+hH+xf3hq9dnTTHhjKd2GmDuWA242iHMq4cC7A8kJ7i8o1+skSa7Jieo38HCWnoNjKFhdSFBxzpZ7QE6lI8N4S14aASZcryaV/WWHw66f6NHuCoxuQxmvM56GX9QMd8Q4D65ywGP+ZzRJuM+zQvx/MOS2VFeqQ4IXnH26zM9Xe6/E6D+4foAzzuajPZp8Qyw5ayZVDWuH0z0BtYRkeIDqH9KO9VbH1btd/lhNqCzvl8zeLnG0S/hnU6baHfpiuO6yy0rd+DHURo/zYF5H26j03rQsip2ndzz82u1z9N4VjWKWeb68Tedpt95HRVXp7H1R6p+/Wt4FPy/PpWwscOLRJ+PVWF/+W0iVyGzs18TIvXkOJ1Wxm66vSXz+vylenrZcj1ub439W+K8RNCGTJi2p/TJ1K23VaXr35tRpnzmjxequgfcfyk6B/TGBVlyedsNgpdd/h+W1U3P99QyFPNo1X3TwpM/WLTIWYfoBqXrv6iskHZ/RFr79R6hIyHBrH3f1nrUVnjP8SnZZ+rYtzr9Exld5MNbPNErusAPg+77u/eDOPftU9yj39TH7rezxd1LvsZQJlzkWlOirG/79zjMj/mtHUKu7vKy+3/LnXr9okyKedjX5/0He9iP/j63LwOQdarEVlfy8OO/Lqw023j6xcqmwxLiOd6heM2i9cV9LJy8jMJ23yQ+rpbfu7EQ/pXE8KYvUSqvVnb4XzZa6LrHMXHR+zcLvqWbm/Bn0/HzIs6fWPHoat8XfnDKmZGxRxeMbn2UqZ5Q94nmcZRbqqUXbZ8+lcjE+cPX11t814orvvAXNcG8vqj2vvk1MGn3anlj0bIT72v47bvE+Lc98T9b6r7AKn6j+8Duf7D0nnZx/j7Zjn0j9nbpSTndaLr9WNLivP+iN23xF7L+fqv6ZouFyb78jxVXvv5jJ9YUs9/sddO8h7KNg5jrhfaJGztT6G7KF+1d6yCmD5Kdb2fan60rSc552fZr3zeQ9DpnPp+Si5cx5Ktv2QfSzF/mMbWdOm46rFI4XstnU9xeqX4NKb7TKEdcr6pZOK3ID1k/LvFHkVczEuZLEDr499YqvqBym1aEHWgcvoYOtv0M91qQl5TfpO/in6rWx8OVpT1Wedkv3f5xom3T/xeR/6Gx6V86PWAOB4bBpqWdN+yTcVxjIyGRz/FrDGu6w/3d7kPm8StX8RyPu+uuvpNju/vTLJV37GpvoM0oZPnW87VLnL/5pDno1NoW1R6yedU6TyUv3u19a3KFnIbTLYz+ZCLP4T0tU1uivFgso0pnsJ/UtXvarNY28Xq5cvkBDrQP/E5ZaiuQwwfmTlsOiQRU1fMuqrDd/3ISSuwjOwXOfTyGUMpZIXq4GpLn3pUcdfzch2x7XO1u2uZHOPb1G6b3Xg9PH1IIWeEpJlPQtqos2EKW8b0u8rnuP1UeVLoXJb9be0uG9nnbchjU+XTszT5VeNBThPHnc5OKj1U9aj0GTHIVaGy1YhEWT4ixns00DT+XEzWn/7VAsIc63Cov3OdyhwjrnaqQqZvWKXdypRdlq+k8msZ031U+Rm4fA+3TtyeR9hwfW9G9yxDN0fZMN33F+9TE6md4hwoxumfaUzI9fN3PFT3xVV2msrQ3UsnChm6Nulk8TndpS28D3zX9tTIPsF/z7Am5OkTjm1tI1JZW74+4VgsZ0N3L1yXV3WeP5uR7TGHHdvC3JQlxybfpd22tDlk/2eofRK8TzrN/qnar/K/OUTth6I/+jAnEptNbPvFHP2gs40N3+dfMWtwqvVct7/wfd8gtQ7imifial9ZJ9/3IHLYU6eDj3+4PhsNhX+vwvcWLnu6kGfEMe8DuciPfUfGZB8X/7HJy/Gefe5n+VRGFd/wyP2ta7/LO4yh/sbLV/k9lev6kfO9Dt/5U67b1/6u/epqB1U9Me23jfHY9sscAg4tkbLl+e4/U36rJ9ddxfd6sg5vq5ice42Wpk/pb9FOJ36/W9tpv4kbC79nUbZceX8Zu6/qJ+P3WvhvA8v3reh7Jbn2d6rrNC7XNZTLma4Ba0JI9efX2uLzF5scG/w9UNU1ZxW+ymUfzELeTllXlQ1rUuhzjS5fp9c964iFBOqeSz63bU065nZKdU+mDEz3qHIjjifquw0pnb/raRtvrnsYcb46ihT3taoYz6brdNW9l6rWRnE/navdPn1XlR1km7hcz1WlH/elKuSOSvLLuE8U6m8uzwRdfcGl73VyTHuyMvzJ1Sa2cWDTP/Z63Kc94n2B1PYr24dz1JlyHLlcP+S4B6vD1c9EW4q2LWstCvUjeVy63k/LMYdUNd5D1xQfvVTzX1VjkMsUv88N8VH5fReVn/Fjn++/h6X6Q8a6b1/q3g/i/ewi0/Scs8zxXeV6mWIOUPlPzBgdFerW+bZrm2P18dnjuK6HunEp+rHvPMXbr+sHVb/lnL+pTP57jPw9Cvk3PW178JD9qChfzuvTf7Htl38L1QUf/VKu9SFjwWbTWPvFEvu7Uq76y7+31g6QlYPc669pbsm9Xur2LWI9Pu8ypfDXqm3A2z8s1FWGn4ntL9NfQu2oSlftX9uetvTtv7J8Ql4zxfXGZ3zk8PeQ9w59x2uMfqI8/q5eKh/l9cb2rwsu9rSNl06ZP2Pmxtz+rNMx93yno0n2/82rVH7rQ+y9P15H6FyRun9ViH81ATmffI7nJ5r8uXXW6enbP6b/B8/l5OifVHYLnb9S39s2zcc+Ph+rh8+eQgVPS72elzGWY/tUtbbabBpDiI7yN1q6/4th2y+ErAc5+9BVvu/7KamJbWNZeuqI/R4tRf+YyD1HmOZM1bMV3/14Sn10c0Xu+Sj1nOXb5jL73ncdy02uvlXZNde65dOHYl7Vs4KYuS6FzWLn2zJlpZqPXPVPOa5yzKOyn1VhT9lmMfdbfH7D11Wf2PXN5h9y+dD287+qxgSnaYmnIrRtIb8pJe6/Uv9OVer6Whn0zfGO/BEloZI9ojmfAlUflClDd178bTmVHVTpZXOkAlk/lb42UujmI89HH5V+cl7XtowY6vTxLVWok6UrGzoGTHN+bB+6ri05687VNpvfuvRfaP2uMlNQth1D5JjGelm/8yn+9p3p/7qk9gnfeddXZmq/Sm333PJT659Kv1zjNbZ9uv2Oi//67CV8/N1nj1DmviyXDNVeJkaeaX8UsyesYg8cu2+NvdaPfb+lLDu5tvt/")),Vc=function(a){switch(a){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return a}},jc=function(a){switch(a){case 37:case 38:return 34;case 41:return 22;default:return a}};class Xi{constructor(t,e=!1){this.position=t,this.required=e}}qa=class{nextCodePoint(){const a=this.string.charCodeAt(this.pos++),t=this.string.charCodeAt(this.pos);return 55296<=a&&a<=56319&&56320<=t&&t<=57343?(this.pos++,1024*(a-55296)+(t-56320)+65536):a}nextCharClass(){return Vc(lp.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(a){let t=!1;switch(ap[this.curClass][this.nextClass]){case 0:t=!0;break;case 1:t=a===41;break;case 2:if(t=a===41,!t)return t=!1,t;break;case 3:if(a!==41)return t}return this.LB8a&&(t=!1),!this.LB21a||this.curClass!==16&&this.curClass!==17?this.LB21a=this.curClass===13:(t=!1,this.LB21a=!1),this.curClass===28?(this.LB30a++,this.LB30a==2&&this.nextClass===28&&(t=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,t}nextBreak(){if(this.curClass==null){let a=this.nextCharClass();this.curClass=jc(a),this.nextClass=a,this.LB8a=a===31,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const a=this.nextClass;if(this.nextClass=this.nextCharClass(),this.curClass===34||this.curClass===36&&this.nextClass!==37)return this.curClass=jc(Vc(this.nextClass)),new Xi(this.lastPos,!0);let t=this.getSimpleBreak();if(t===null&&(t=this.getPairTableBreak(a)),this.LB8a=this.nextClass===31,t)return new Xi(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new Xi(this.string.length)):null}constructor(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};class cp{constructor(t){this._textMeasurer=t}_measureText(t){const e=this._fontSize,n=this._fontName,r=this._metricOptions;if(this._isSuperSub){const o=this._textMeasurer(t,.6*e,n,r);return{...this._textMeasurer("M",e,n,r),width:o.width}}return this._textMeasurer(t,e,n,r)}_breakWord(t,e,n){let r=0;for(;r<t.length;){let o={startPosition:this._charactersRead+r,text:"",x:0,y:0,width:0,widthWhitespace:0,height:0,baseline:0},s=!1,i=0;const l=this._maxWidth;do{s=!1;const c=t.substring(r,r+i+1),h=c.replace(/\s+$/,""),d=this._measureText(h);let u=d;c.length!==h.length&&(u=this._measureText(c)),(o.x+d.width<=l||c.length<=1)&&(o.text=c,o.width=d.width,o.widthWhitespace=u.width,o.height=Math.max(o.height,d.lineHeight),o.baseline=Math.max(o.baseline,d.baseline),s=!0,i++)}while(s&&r+i<t.length);if(s){const c=t.substring(r,t.length),h=c.replace(/\s+$/,""),d=this._measureText(h);let u=d;c.length!==h.length&&(u=this._measureText(c)),e.startPosition=this._charactersRead+r,e.width=d.width,o.widthWhitespace=u.width,e.height=Math.max(e.height,d.lineHeight),e.baseline=Math.max(e.baseline,d.baseline),e.text=c}else if(n?.(o)===!1)return!1;r+=i}}_breakWhiteSpace(t,e=null){for(;t&&this._charactersRead<t.length;){let n={startPosition:this._charactersRead,text:"",x:0,y:0,width:0,widthWhitespace:0,height:0,baseline:0},r=!1;const o=this._maxWidth,s=this._indent,i=this._breaker;do if(r=!1,n.startPosition===0&&n.text.length===0&&(n.x=s,this._lastBreak=i.nextBreak()),this._lastBreak){const c=t.substring(n.startPosition,this._lastBreak.position),h=c.replace(/\s+$/,""),d=this._measureText(h);let u=d;c.length!==h.length&&(u=this._measureText(c)),n.x+d.width<=o?(n.text=c,n.width=d.width,n.widthWhitespace=u.width,n.height=Math.max(n.height,d.lineHeight),n.baseline=Math.max(n.baseline,d.baseline),r=!0,this._charactersRead=this._lastBreak.position):n.text.length===0&&this._breakWord(c,n,e)!==!1&&(r=!0,this._charactersRead=this._lastBreak.position),(r||c.indexOf(`
25
+ `)===-1)&&this._lastBreak.required&&(this._lastBreak=i.nextBreak(),r=!1)}while(r&&(this._lastBreak=i.nextBreak()));if(e?.(n)===!1)return!1}}wrap(t,e=null){this._breaker=new qa(t),this._linesRead=[],this._charactersRead=0,this._maxXRead=0,this._maxXWhitespaceRead=0,this._maxYRead=0,this._fontName=e?.fontName??"Arial",this._fontSize=e?.fontSize??12,this._metricOptions={isBold:e?.bold??!1,isItalic:e?.italic??!1,letterSpacing:e?.letterSpacing??0},this._isSuperSub=e?.superSub??!1,this._indent=e?.indent??0,this._maxWidth=e?.maxWidth??Number.MAX_SAFE_INTEGER,this._maxWidth<=0&&(this._maxWidth=Number.MAX_SAFE_INTEGER),this._maxHeight=e?.maxHeight??Number.MAX_SAFE_INTEGER,this._maxHeight<=0&&(this._maxHeight=Number.MAX_SAFE_INTEGER);const n=o=>{if(this._linesRead.length>0){let s=this._linesRead[this._linesRead.length-1];o.y=s.y+s.height}if(o.y+o.height>this._maxHeight)return!1;this._maxXRead=Math.max(this._maxXRead,o.x+o.width),this._maxXWhitespaceRead=Math.max(this._maxXWhitespaceRead,o.x+o.widthWhitespace),this._maxYRead=Math.max(this._maxYRead,o.y+o.height),this._linesRead.push(o)};if(t===""){const o=this._measureText(t);n({startPosition:0,text:"",x:0,y:0,width:0,widthWhitespace:0,height:o.lineHeight,baseline:o.baseline})}else if(this._breakWhiteSpace(t,n),new qa(t.charAt(t.length-1).repeat(2)).nextBreak().required){const o=this._measureText(t);n({startPosition:t.length,text:"",x:0,y:0,width:0,widthWhitespace:0,height:o.lineHeight,baseline:o.baseline})}const r={bounds:{x:0,y:0,width:this._maxXRead,widthWhitespace:this._maxXWhitespaceRead,height:this._maxYRead},lines:this._linesRead};return this._breaker=null,this._linesRead=[],r}}const hp=(a,t,e,n=null,r=exports.IFont.getSharedMeasurer())=>{let o="",s=null,i=null;const l=a.paragraphs,c=l.length;for(let C=0;C<c;C++){const I=l[C].runs,y=I.length;for(let b=0;b<y;b++)o+=I[b].text,b===0&&(s=I[b]);C===0&&(i=l[C])}const h=a.insets??w.TypesUtils.EmptyRect,d=new cp(r),u=n?.width?n.width-h.right-h.left:n?.width,g=n?.height?n.height-h.bottom-h.top:null,m=d.wrap(o,{fontName:s.fontName,fontSize:s.fontSize*exports.IFont.getDeviceScale(),bold:s.bold,italic:s.italic,superSub:s.superSub,letterSpacing:s.letterSpacing,maxWidth:a.wrapped&&u?u:null,maxHeight:g});let f=[];const p=m.lines,S=p.length,_=new Array(S);for(let C=0;C<S;C++){const I=p[C],y={x:I.x,y:I.y,width:I.width,height:I.height},b=new pi({text:I.text,fontName:s.fontFamily,fontSize:s.fontSize,bold:s.bold,italic:s.italic,superSub:s.superSub,letterSpacing:s.letterSpacing},y);f.push(b),_[C]=new $u(y,I.baseline,[b])}const E=new fi({runs:f,align:i.align});return new mi({paragraphs:[E],wrapped:a.wrapped,verticalAlignment:a.verticalAlignment},t,e,_,{x:m.bounds.x,y:m.bounds.y,width:m.bounds.widthWhitespace,height:m.bounds.height},{x:m.bounds.x,y:m.bounds.y,width:m.bounds.width,height:m.bounds.height})},Gc=a=>{let t=!1,e=!1;for(let n=0;n<a.length;n++){const r=a.charCodeAt(n);if(r>=65&&r<=90?t=!0:r>=97&&r<=122&&(e=!0),t&&e)return 0}return t?1:e?-1:0},Si=(a,t,e,n,r=!1)=>{if(a==null)return null;const o=new pi({text:a,fontName:t.toCSS().fontFamily,fontSize:t.getSize(),bold:t.getWeight()>400,italic:t.getStyle()===exports.IFont.Style.Italic,superSub:!r&&(t.getVerticalAlignment()===exports.IFont.VerticalAlignment.Sub||t.getVerticalAlignment()===exports.IFont.VerticalAlignment.Super),letterSpacing:t.getLetterSpacing()}),s=r?exports.ITextFrame.HorizontalAlignment.Left:e.getHorizontal(),i=e.getVertical(),l=new fi({runs:[o],align:s});let c=[];return c.push(new $u(null,t.getSize(),[o])),new mi({paragraphs:[l],wrapped:n&&(e.getOverflow()===exports.ITextFrame.Overflow.Wrap||s===exports.ITextFrame.HorizontalAlignment.Justify||s===exports.ITextFrame.HorizontalAlignment.Distributed||i===exports.ITextFrame.VerticalAlignment.Justify||i===exports.ITextFrame.VerticalAlignment.Distributed),verticalAlignment:i},t,e,c)},$o=(a,t,e,n)=>({x:a*n-t*e,y:a*e+t*n}),$c=a=>{let t=0,e=0,n=0,r=0,o=0,s=0,i=0,l=a.length;if(l===0)return{m:0,b:0};if(l===1)return{m:1,b:a[0]};for(let h=0;h<l;h++)s=h+1,i=a[h],i==null||isNaN(i)||(t+=s,e+=i,r+=s*s,n+=s*i,o++);const c=(o*n-t*e)/(o*r-t*t);return{m:c,b:e/o-c*t/o}},Xa=(a,t)=>{if(t===null)return null;const e=w.CommonUtils.isObject(t);return a!=null&&e?w.CommonUtils.mergeContentful(a,t):e?w.CommonUtils.cloneObject(t):t},dp=(a,t,e)=>a==null||typeof a=="object"&&Object.keys(a).length===0;function Rl(a,t,e,n){if(a===t)return a??null}function up(a){return a==null}function gp(a,t,e=1,n){if(e===0)return{preceding:a?[...a]:[],modified:[],trailing:[]};const r=(function(l,c,h=1){let d=w.CommonUtils.findEqualOrGreater(l,c,f=>f.max);const u=l.slice(0,d),g=[],m=[];if(!l[d])return{preceding:u,modified:g,trailing:m};for(let f=d;f<l.length;f++)c+h<l[f].min?m.push({...l[f],min:l[f].min-h,max:l[f].max-h}):c>=l[f].min?Math.max(c,l[f].max+1-h)>l[f].min&&g.push({...l[f],max:Math.max(c-1,l[f].max-h)}):c<l[f].min&&c+h<=l[f].max&&g.push({...l[f],min:Math.max(c,l[f].min-h),max:l[f].max-h});return{preceding:u,modified:g,trailing:m}})(a,t,e),o=r.preceding,s=r.trailing;let i=[];return o.length>0&&i.push(o.pop()),i=i.concat(r.modified),s.length>0&&i.push(s.shift()),{preceding:o,modified:$n(i,{onMerge:Rl}).modified,trailing:s}}function Jc(a,t,e){if(!a)throw new Error("runs can not be null");if(!t)return{preceding:[],modified:a?[...a]:[],trailing:[]};const n=(function(s,i,l,c,h=!1){if(!i)return{preceding:[],modified:s?[...s]:[],trailing:[]};let d,u=w.CommonUtils.findEqualOrGreater(s,i.min,_=>_.max),g=s.slice(0,u),m=s.slice(u),f=[],p={...i},S=m[0]||{min:i.min,max:i.max,value:void 0};for(d=h?(_,E,C)=>{const I=(c||Xa)(E,C,_);I!==void 0?_.value=I:delete _.value,f.push(_)}:(_,E,C)=>{let I=(c||Xa)(E??null,C,_);I!==void 0?_.value=I:delete _.value,f.push(_)};m.length>=0&&p.max-p.min>=0;){if(p.min<S.min)d({min:p.min,max:Math.min(p.max,S.min-1)},void 0,p.value),p={min:S.min,max:p.max,value:p.value},S={min:p.min,max:S.max,value:S.value};else if(p.min>S.min){const _=S.value!==void 0&&l?l(S,p.min):[S.value,S.value];f.push({min:S.min,max:Math.min(p.min,S.max)-1,value:_[0]}),p={min:Math.min(p.min,S.max),max:p.max,value:p.value},S={min:p.min,max:S.max,value:_[1]}}else{const _=S.value!==void 0&&l?l(S,p.min):[S.value,S.value];d({min:S.min,max:Math.min(p.max,S.max)},_[0],p.value),p={min:Math.min(p.max,S.max)+1,max:p.max,value:p.value},S={min:Math.min(p.max,S.max)+1,max:S.max,value:_[1]}}S.min<=S.max?m[0]=S:(m=m.slice(1),S=m[0]||{min:S.min,max:p.max})}return{preceding:g,modified:f,trailing:m}})(a,t,e?.onSplit,e?.onUpdate,e?.inPlace);let r=[];n.preceding.length>0&&r.push(n.preceding.pop()),r=r.concat(n.modified),n.trailing.length>0&&r.push(n.trailing.shift());const o=(function(s,i){if(!s||s.length===0)return{preceding:[],modified:s?[...s]:[],trailing:[]};const l=Math.min(s.length-1,i?.startOffset??0),c=Math.min(s.length,i?.endOffset??s.length),h=i?.cull??up;let d=s.slice(0,l),u=s.slice(c);const g=[];for(let m=l;m<c;m++)h(s[m].value,s[m].min,s[m].max)!==!0&&g.push(s[m]);return{preceding:d,modified:g,trailing:u}})($n(r,{onMerge:e?.onMerge??Rl}).modified,{cull:e?.isCull||dp});return{preceding:n.preceding,modified:o.modified,trailing:n.trailing}}function Qe(a){return[...a.preceding,...a.modified,...a.trailing]}function $n(a,t){if(!a||a.length===0)return{preceding:[],modified:a?[...a]:[],trailing:[]};const e=Math.min(a.length-1,t?.startOffset??0),n=Math.min(a.length,t?.endOffset??a.length),r=t?.onMerge??Rl;let o=a.slice(0,e),s=a.slice(n);const i=[];let l={...a[e]},c=a[e]?.max||0;for(let h=e+1;h<=n;h++){const d=a[h];let u=!1;if(d&&d.min<=a[h-1].max+1)if(l.value===void 0&&d.value===void 0)u=!0;else{const g=r(l.value,d.value,l.max-l.min+1,d.max-d.min+1);g!==void 0&&(u=!0,l.value=g)}u?l.max=Math.max(c,d.max):(i.push(l),l={...a[h]},d&&(l.max=Math.max(c,d.max))),l&&(c=l.max)}return{preceding:o,modified:i,trailing:s}}function qc(a){return a&&a.sort((t,e)=>{let n=t.min-e.min;return n===0&&(n=t.max-e.max),n})}const Xc=(a,t=!1)=>{if(!a||a.length===0)return w.CommonUtils.EmptyArray;const e=t?a:a.sort(),n=[];let r=null;for(let o=0;o<e.length;o++){const s=e[o];r?r.max===s-1?r.max=s:(n.push(r),r={min:s,max:s}):r={min:s,max:s}}return r&&n.push(r),n},Kc=(a,t)=>a?t?a||t?a.min>t.max||a.max<t.min?null:{min:Math.max(a.min,t.min),max:Math.min(a.max,t.max)}:null:{...a}:{...t},Ju=a=>{const t=a.length===0;return{runs:a,run:{min:t?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,max:t?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,value:null},index:Number.MAX_SAFE_INTEGER}},qu=(a,t)=>{const e=t.run,n=e.min,r=e.max;if(a>=n&&a<=r)return e.value;let o=t.index;const s=t.runs;if(o<s.length-1&&a>r){o++;const h=s[o],d=h.min,u=h.max;if(a>=d&&a<=u)return t.index=o,e.min=d,e.max=u,e.value=h.value,e.value}if(o!==Number.MAX_SAFE_INTEGER&&o>0&&a<n){o--;const h=s[o],d=h.min,u=h.max;if(a>=d&&a<=u)return t.index=o,e.min=d,e.max=u,e.value=h.value,e.value}if(o=w.CommonUtils.findEqualOrGreater(s,a,h=>h.max),o===s.length)return o=s.length,t.index=o,e.min=s[o-1].max+1,e.max=Number.MAX_SAFE_INTEGER,e.value=null,null;const i=s[o],l=i.min,c=i.max;if(a>=l&&a<=c){t.index=o,e.min=l,e.max=c;const h=i.value;return e.value=h,h}return o--,t.index=o,e.min=o>=0?s[o].max+1:Number.MIN_SAFE_INTEGER,e.max=l-1,e.value=null,null},Xu=function(a,t,e,n){if(a.length===0){if(e!=null||n!=null){const c=t({min:e??n,max:n??e});if(c&&c.break)return c}return}const r=e??a[0].min,o=n??a[a.length-1].max;let s=r-1,i=w.CommonUtils.findEqualOrGreater(a,r,c=>c.max),l=a[i];for(;l&&l.min<=o;){if(s<l.min-1){const h=t({min:Math.max(s+1,r),max:Math.min(l.min-1,o)});if(h&&h.break)return h}const c=t({...l,min:Math.max(l.min,r),max:Math.min(l.max,o)});if(c&&c.break)return c;s=l.max,l=a[++i]}if(s<o){const c=t({min:Math.min(s+1,o),max:o});if(c&&c.break)return c}},Yc=new RegExp("([0-9]+)$");var Jo,qo;exports.AutoFill=void 0,(a=>{a.Date=class{constructor(i){this._options=i}canFill(i,l){return kr(i)}createFillAt(i,l){l={...this._options,...l};let c=0,h=this._options?.unit;h||(h=i.length===1?jo:((g,m=!1)=>{if(!g||g.length<1)return jo;let f=g;m||(f=g.slice(),f=f.sort((E,C)=>E.getTime()-C.getTime()));let p=!1,S=-1,_=-1;for(let E=0;E<f.length;E++){let C=f[E];if(E>f.length-1&&C.getTime()<f[E+1].getTime())throw new Error("Dates are expected to be sorted.");let I=12*C.getFullYear()+C.getMonth();if(I===_)return jo;_=I;let y=C.getFullYear();y>S?S=y:p=!0}return p?Ic:bc})(i));const d=vc(i[0],0,h);d.setHours(0,0,0,0);let u=1;l?.reverse&&(u*=-1,c*=-1);for(let g=1;g<i.length;g++){let m=Pf(i[g-1],i[g],h);if(g===1)u=m;else if(m!==u)return null}return i.length===1&&l.multiFill,g=>{const m=vc(d,u*g,h);if(c!==0){const f=0+c*g,p=f%1440,S=Math.floor(p/60),_=p%60;m.setHours(S,_,0,0);const E=Math.floor(f/1440),C=Math.floor(E/365),I=E%365,y=Math.floor(I/30),b=I%30;C>0&&m.setFullYear(m.getFullYear()+C),y>0&&m.setMonth(m.getMonth()+y),b>0&&m.setDate(m.getDate()+b)}return m}}},a.Linear=class{constructor(i){this._options=i}canFill(i,l){return typeof i=="number"||i===null}createFillAt(i,l){l={...this._options,...l};const c=$c(i),h=c.b;let d=c.m;return i.length===1?(l.reverse&&(d=-d),l.multiFill?u=>u*d+h:null):u=>d*(u+1)+h}};const t={value:null,template:null},e={sensitivity:"accent"};a.Ordinal=class{_template(i){const l=i.match(Yc);if(!l)return null;const c=l[1],h=i.lastIndexOf(c);return h===-1?null:i.substring(0,h)}canFill(i,l){if(i===null)return!0;if(typeof i!="string")return t.value=null,!1;const c=this._template(i);return c&&(l===void 0||l===t.value&&c.localeCompare(t.template,void 0,e)===0)?(t.value=i,t.template=c,!0):(t.value=null,!1)}createFillAt(i,l){const c=[],h=i[0];let d=null,u=null,g=0;if(h){const _=h.match(Yc);if(_){d=_[1],d.startsWith("0")&&(g=d.length);const E=h.lastIndexOf(d);u=h.substring(0,E)}}const m=i.length;for(let _=0;_<m;_++){const E=i[_];let C=null;if(E){const I=E.substring(u.length,E.length);I.startsWith("0")&&(g=Math.max(g,I.length));const y=parseFloat(I);isNaN(y)||(C=y)}c.push(C)}const f=$c(c),p=f.b;let S=f.m;return S!==0&&Number.isInteger(S)?_=>{if(i[_%m]===null)return null;const E=(m===1?l.reverse?-_:_:S*(_+1))+p,C=""+Math.abs(E),I="0".repeat(Math.max(0,g-C.length))+C;return u+I}:null}},a.Copy=class{canFill(i,l){return!0}createFillAt(i,l){const c=i.length;return h=>i[h%c]??null}};const n=Object.freeze(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),r=Object.freeze(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),o=Object.freeze(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),s=Object.freeze(["January","February","March","April","May","June","July","August","September","October","November","December"]);a.List=class{constructor(i){this._lists=[],this._map=new Map;const l=[];if(i?.customLists){const d=i.customLists;for(let u=d.length-1;u>0;u--)l.push(d[u])}l.push(s),l.push(o),l.push(r),l.push(n);const c=this._map,h=[];for(let d=0;d<l.length;d++){const u=l[d],g=[];h.push(g);for(let m=0;m<u.length;m++){const f=u[m],p=Rr(f,!0),S=p.toLowerCase().trim();let _=c.get(S);_||(_=[],c.set(S,_));const E={value:p,asKey:S,major:d,minor:m};_.push(E),g.push(E)}}this._lists=Object.freeze(h)}canFill(i,l){return i===null?!0:typeof i!="string"?!1:!!this._map.get(i.toLowerCase().trim())}createFillAt(i,l){const c=[],h=i[0];c.push(h.toLowerCase().trim());const d=this._map.get(c[0]);let u;const g=new Map,m=new Set;for(let x=0;x<d.length;x++){const T=d[x];g.set(T.major,T)}if(i.length>1){for(let x=1;x<i.length;x++){const T=i[x].toLowerCase().trim(),M=this._map.get(T);if(!M)return null;x===1&&(u=M),c.push(T);for(let F=0;F<M.length;F++){const N=M[F].major;g.has(N)&&m.add(N)}}if(m.size===0)return null}let f=null;const p=this._lists;for(let x=0;!f&&x<p.length;x++)(i.length===1||m.has(x))&&(f=g.get(x));if(!f)return null;let S=null;for(let x=0;!S&&u&&x<u.length;x++)u[x].asKey===c[1]&&(S=u[x]);let _=!1,E=!1;const C=Gc(h);C===1?_=!0:(C===-1||Gc(h[0])===-1)&&(E=!0);const I=p[f.major];let y=f.minor,b=1;if(c.length>1){b=S.minor-f.minor;for(let x=2;x<c.length;x++)if(I[x+y].minor-I[x-1+y].minor!==b)return null}i.length===1&&l?.reverse&&(b=-b);const v=i.length,R=I.length;return x=>{if(i[x%v]===null)return null;let T=(x*b+y)%R;T<0&&(T=R+T);const M=I[T].value??null;return _?M.toUpperCase():E?M.toLowerCase():M}}},a.Composite=class{constructor(i){i=Array.isArray(i)?[...i]:[i],this._fillers=i}canFill(i,l){return!0}createFillAt(i,l){const c=this._fillers;l={multiFill:i.length>1,...l};const h=i.length;let d=0,u=!1;for(let b=0;!u&&b<=h;b++)i[b]===null?d++:u=!0;let g=0;u=!1;for(let b=h-1;!u&&b>=d;b--)i[b]===null?g++:u=!0;const m=[];let f=null,p=null,S=[],_=d,E=0;const C=b=>{if(f&&f.max+1===_){const v=f.value;v.fillAt.push(b),f.max=_,v.length++,v.valuesLength++}else f={min:_,max:_,value:{fillAt:[b],start:_,length:1,valuesLength:h,blankInterval:0}};m.push(f)},I=h-g;for(_=d;_<I;){let b=i[_];if(b===null){_++;continue}p=null;let v,R=1,x=!1;for(let N=0;!x&&N<c.length+1;N++){const k=c[N];k&&(x=k.canFill(b,v),x&&(p=k))}if(!p){b!==null&&C(b),_++;continue}let T=0;E=0,v=b;do b=i[_+R],x=p.canFill(b,v),x&&(b!==null?(v=b,T>0&&(R-T===1?E=T:T!==E&&(E=0)),T=0):T++,R++);while(x&&_+R<I);S=[i[_]];const M=1+E,F=R-T;for(let N=M;N<F;N+=M)S.push(i[_+N]);if(S.length>0){const N=S.length,k=N+(N-1)*E,U=p.createFillAt?.(S,l)??S;m.push({min:_,max:_+k-1,value:{fillAt:U,start:_,length:k,valuesLength:N,blankInterval:E}})}_+=R}const y=Ju(m);return b=>{const v=b>=0,R=Math.abs(b),x=qu(R%h,y);if(!x)return null;const T=Math.floor(R/h),M=x.length,F=x.start,N=(T+(v?1:0))*F+(T+(v?0:1))*(h-(F+M));let k=b+(v?-N:N);const U=x.blankInterval;if(U!==0){let D=k%M;if(D%(1+U)!==0)return null;k=Math.floor(D/(1+U))+x.valuesLength*T}const O=x.fillAt;return typeof O=="function"?O(k):O[k%O.length]}}},a.Types={Series:new a.Composite([new a.Date,new a.Linear,new a.Ordinal,new a.List]),DateDays:new a.Date({unit:jo}),DateMonths:new a.Date({unit:Ic}),DateYears:new a.Date({unit:bc}),Copy:new a.Copy},a.fillTo=(i,l,c,h)=>{const d=[],u=l.length,g=i.createFillAt(l,h);for(let m=u;m<c;m++)d.push(g(m));return d}})(exports.AutoFill||(exports.AutoFill={})),exports.IPrint=void 0,exports.IPrint||(exports.IPrint={}),exports.IFill=void 0,(Jo=exports.IFill||(exports.IFill={})).Type={None:"none",Solid:"solid",Gradient:"gradient",Pattern:"pattern",Image:"pattern",Background:"background",Group:"group",Custom:"custom"},Jo.GradientType={Linear:"linear",Path:"path",Circular:"circular",Rect:"rect"},Jo.TileMirror={None:"none",Vertical:"v",Horizontal:"h",Both:"b"},Jo.BuiltInSheetPattern={None:"none",Solid:"solid",DarkGray:"darkGray",MediumGray:"mediumGray",LightGray:"lightGray",Gray0625:"gray0625",Gray125:"gray125",DarkHorizontal:"darkHorizontal",DarkVertical:"darkVertical",DarkDown:"darkDown",DarkUp:"darkUp",DarkGrid:"darkGrid",DarkTrellis:"darkTrellis",LightHorizontal:"lightHorizontal",LightVertical:"lightVertical",LightDown:"lightDown",LightUp:"lightUp",LightGrid:"lightGrid",LightTrellis:"lightTrellis",Custom:"custom"},exports.IColor=void 0,(qo=exports.IColor||(exports.IColor={})).AdjustmentType={Alpha:"alpha",AlphaOff:"alphaOff",AlphaMod:"alphaMod",Hue:"hue",Sat:"sat",Lum:"lum",HueOff:"hueOff",SatOff:"satOff",LumOff:"lumOff",HueMod:"hueMod",SatMod:"satMod",LumMod:"lumMod",Red:"red",Green:"green",Blue:"blue",RedOff:"redOff",GreenOff:"greenOff",BlueOff:"blueOff",RedMod:"redMod",GreenMod:"greenMod",BlueMod:"blueMod",Shade:"shade",Tint:"tint",ETint:"eTint",Gray:"gray",Comp:"comp",Inv:"inv",Gamma:"gamma",InvGamma:"invGamma"},qo.Named={ActiveBorder:"activeBorder",ActiveCaption:"activeCaption",CaptionText:"captionText",AppWorkspace:"appWorkspace",BtnFace:"btnFace",BtnShadow:"btnShadow",DkShadow3d:"3dDkShadow",BtnHighlight:"btnHighlight",Light3d:"3dLight",BtnText:"btnText",Background:"background",GrayText:"grayText",Highlight:"highlight",HighlightText:"highlightText",HotLight:"hotLight",InactiveBorder:"inactiveBorder",InactiveCaption:"inactiveCaption",InactiveCaptionText:"inactiveCaptionText",InfoBk:"infoBk",InfoText:"infoText",Menu:"menu",MenuText:"menuText",ScrollBar:"scrollBar",Window:"window",WindowFrame:"windowFrame",WindowText:"windowText",Transparent:"transparent",AliceBlue:"aliceBlue",AntiqueWhite:"antiqueWhite",Aqua:"aqua",Aquamarine:"aquamarine",Azure:"azure",Beige:"beige",Bisque:"bisque",Black:"black",BlanchedAlmond:"blanchedAlmond",Blue:"blue",BlueViolet:"blueViolet",Brown:"brown",BurlyWood:"burlyWood",CadetBlue:"cadetBlue",Chartreuse:"chartreuse",Chocolate:"chocolate",Coral:"coral",CornflowerBlue:"cornflowerBlue",Cornsilk:"cornsilk",Crimson:"crimson",Cyan:"cyan",DkBlue:"dkBlue",DkCyan:"dkCyan",DkGoldenrod:"dkGoldenrod",DkGray:"dkGray",DkGreen:"dkGreen",DkKhaki:"dkKhaki",DkMagenta:"dkMagenta",DkOliveGreen:"dkOliveGreen",DkOrange:"dkOrange",DkOrchid:"dkOrchid",DkRed:"dkRed",DkSalmon:"dkSalmon",DkSeaGreen:"dkSeaGreen",DkSlateBlue:"dkSlateBlue",DkSlateGray:"dkSlateGray",DkTurquoise:"dkTurquoise",DkViolet:"dkViolet",DeepPink:"deepPink",DeepSkyBlue:"deepSkyBlue",DimGray:"dimGray",DodgerBlue:"dodgerBlue",Firebrick:"firebrick",FloralWhite:"floralWhite",ForestGreen:"forestGreen",Fuchsia:"fuchsia",Gainsboro:"gainsboro",GhostWhite:"ghostWhite",Gold:"gold",Goldenrod:"goldenrod",Gray:"gray",Green:"green",GreenYellow:"greenYellow",Honeydew:"honeydew",HotPink:"hotPink",IndianRed:"indianRed",Indigo:"indigo",Ivory:"ivory",Khaki:"khaki",Lavender:"lavender",LavenderBlush:"lavenderBlush",LawnGreen:"lawnGreen",LemonChiffon:"lemonChiffon",LtBlue:"ltBlue",LtCoral:"ltCoral",LtCyan:"ltCyan",LtGoldenrodYellow:"ltGoldenrodYellow",LtGray:"ltGray",LtGreen:"ltGreen",LtPink:"ltPink",LtSalmon:"ltSalmon",LtSeaGreen:"ltSeaGreen",LtSkyBlue:"ltSkyBlue",LtSlateGray:"ltSlateGray",LtSteelBlue:"ltSteelBlue",LtYellow:"ltYellow",Lime:"lime",LimeGreen:"limeGreen",Linen:"linen",Magenta:"magenta",Maroon:"maroon",MedAquamarine:"medAquamarine",MedBlue:"medBlue",MedOrchid:"medOrchid",MedPurple:"medPurple",MedSeaGreen:"medSeaGreen",MedSlateBlue:"medSlateBlue",MedSpringGreen:"medSpringGreen",MedTurquoise:"medTurquoise",MedVioletRed:"medVioletRed",MidnightBlue:"midnightBlue",MintCream:"mintCream",MistyRose:"mistyRose",Moccasin:"moccasin",NavajoWhite:"navajoWhite",Navy:"navy",OldLace:"oldLace",Olive:"olive",OliveDrab:"oliveDrab",Orange:"orange",OrangeRed:"orangeRed",Orchid:"orchid",PaleGoldenrod:"paleGoldenrod",PaleGreen:"paleGreen",PaleTurquoise:"paleTurquoise",PaleVioletRed:"paleVioletRed",PapayaWhip:"papayaWhip",PeachPuff:"peachPuff",Peru:"peru",Pink:"pink",Plum:"plum",PowderBlue:"powderBlue",Purple:"purple",Red:"red",RosyBrown:"rosyBrown",RoyalBlue:"royalBlue",SaddleBrown:"saddleBrown",Salmon:"salmon",SandyBrown:"sandyBrown",SeaGreen:"seaGreen",SeaShell:"seaShell",Sienna:"sienna",Silver:"silver",SkyBlue:"skyBlue",SlateBlue:"slateBlue",SlateGray:"slateGray",Snow:"snow",SpringGreen:"springGreen",SteelBlue:"steelBlue",Tan:"tan",Teal:"teal",Thistle:"thistle",Tomato:"tomato",Turquoise:"turquoise",Violet:"violet",Wheat:"wheat",White:"white",WhiteSmoke:"whiteSmoke",Yellow:"yellow",YellowGreen:"yellowGreen",ButtonFace:"buttonFace",ButtonHighlight:"buttonHighlight",ButtonShadow:"buttonShadow",GradientActiveCaption:"gradientActiveCaption",GradientInactiveCaption:"gradientInactiveCaption",MenuBar:"menuBar",MenuHighlight:"menuHighlight"},qo.Scheme={Bg1:"bg1",Bg2:"bg2",Tx1:"tx1",Tx2:"tx2",Accent1:"accent1",Accent2:"accent2",Accent3:"accent3",Accent4:"accent4",Accent5:"accent5",Accent6:"accent6",Hlink:"hlink",FolHlink:"folHlink"},qo.Type={Scheme:"scheme",Named:"named",Index:"index",HSL:"hsl",RGB:"rgb",LRGB:"lrgb",Hex:"hex"};const Qc=[[4290032820,1,exports.IColor.Named.ActiveBorder,!0],[4288263377,2,exports.IColor.Named.ActiveCaption,!0],[4278190080,3,exports.IColor.Named.CaptionText,!0],[4289440683,4,exports.IColor.Named.AppWorkspace,!0],[4293980400,5,exports.IColor.Named.BtnFace,!0],[4285098345,6,exports.IColor.Named.BtnShadow,!0],[4278190080,7,exports.IColor.Named.DkShadow3d,!0],[4293125091,8,exports.IColor.Named.BtnHighlight,!0],[4293125091,9,exports.IColor.Named.Light3d,!0],[4278190080,10,exports.IColor.Named.BtnText,!0],[4278190080,11,exports.IColor.Named.Background,!0],[4285361517,12,exports.IColor.Named.GrayText,!0],[4281571839,13,exports.IColor.Named.Highlight,!0],[4294967295,14,exports.IColor.Named.HighlightText,!0],[4278216396,15,exports.IColor.Named.HotLight,!0],[4294244348,16,exports.IColor.Named.InactiveBorder,!0],[4290760155,17,exports.IColor.Named.InactiveCaption,!0],[4278190080,18,exports.IColor.Named.InactiveCaptionText,!0],[4294967265,19,exports.IColor.Named.InfoBk,!0],[4278190080,20,exports.IColor.Named.InfoText,!0],[4293980400,21,exports.IColor.Named.Menu,!0],[4278190080,22,exports.IColor.Named.MenuText,!0],[4291348680,23,exports.IColor.Named.ScrollBar,!0],[4294967295,24,exports.IColor.Named.Window,!0],[4284769380,25,exports.IColor.Named.WindowFrame,!0],[4278190080,26,exports.IColor.Named.WindowText,!0],[16777215,27,exports.IColor.Named.Transparent],[4293982463,28,exports.IColor.Named.AliceBlue],[4294634455,29,exports.IColor.Named.AntiqueWhite],[4278255615,30,exports.IColor.Named.Aqua],[4286578644,31,exports.IColor.Named.Aquamarine],[4293984255,32,exports.IColor.Named.Azure],[4294309340,33,exports.IColor.Named.Beige],[4294960324,34,exports.IColor.Named.Bisque],[4278190080,35,exports.IColor.Named.Black],[4294962125,36,exports.IColor.Named.BlanchedAlmond],[4278190335,37,exports.IColor.Named.Blue],[4287245282,38,exports.IColor.Named.BlueViolet],[4289014314,39,exports.IColor.Named.Brown],[4292786311,40,exports.IColor.Named.BurlyWood],[4284456608,41,exports.IColor.Named.CadetBlue],[4286578432,42,exports.IColor.Named.Chartreuse],[4291979550,43,exports.IColor.Named.Chocolate],[4294934352,44,exports.IColor.Named.Coral],[4284782061,45,exports.IColor.Named.CornflowerBlue],[4294965468,46,exports.IColor.Named.Cornsilk],[4292613180,47,exports.IColor.Named.Crimson],[4278255615,48,exports.IColor.Named.Cyan],[4278190219,49,exports.IColor.Named.DkBlue],[4278225803,50,exports.IColor.Named.DkCyan],[4290283019,51,exports.IColor.Named.DkGoldenrod],[4289309097,52,exports.IColor.Named.DkGray],[4278215680,53,exports.IColor.Named.DkGreen],[4290623339,54,exports.IColor.Named.DkKhaki],[4287299723,55,exports.IColor.Named.DkMagenta],[4283788079,56,exports.IColor.Named.DkOliveGreen],[4294937600,57,exports.IColor.Named.DkOrange],[4288230092,58,exports.IColor.Named.DkOrchid],[4287299584,59,exports.IColor.Named.DkRed],[4293498490,60,exports.IColor.Named.DkSalmon],[4287609995,61,exports.IColor.Named.DkSeaGreen],[4282924427,62,exports.IColor.Named.DkSlateBlue],[4281290575,63,exports.IColor.Named.DkSlateGray],[4278243025,64,exports.IColor.Named.DkTurquoise],[4287889619,65,exports.IColor.Named.DkViolet],[4294907027,66,exports.IColor.Named.DeepPink],[4278239231,67,exports.IColor.Named.DeepSkyBlue],[4285098345,68,exports.IColor.Named.DimGray],[4280193279,69,exports.IColor.Named.DodgerBlue],[4289864226,70,exports.IColor.Named.Firebrick],[4294966e3,71,exports.IColor.Named.FloralWhite],[4280453922,72,exports.IColor.Named.ForestGreen],[4294902015,73,exports.IColor.Named.Fuchsia],[4292664540,74,exports.IColor.Named.Gainsboro],[4294506751,75,exports.IColor.Named.GhostWhite],[4294956800,76,exports.IColor.Named.Gold],[4292519200,77,exports.IColor.Named.Goldenrod],[4286611584,78,exports.IColor.Named.Gray],[4278222848,79,exports.IColor.Named.Green],[4289593135,80,exports.IColor.Named.GreenYellow],[4293984240,81,exports.IColor.Named.Honeydew],[4294928820,82,exports.IColor.Named.HotPink],[4291648604,83,exports.IColor.Named.IndianRed],[4283105410,84,exports.IColor.Named.Indigo],[4294967280,85,exports.IColor.Named.Ivory],[4293977740,86,exports.IColor.Named.Khaki],[4293322490,87,exports.IColor.Named.Lavender],[4294963445,88,exports.IColor.Named.LavenderBlush],[4286381056,89,exports.IColor.Named.LawnGreen],[4294965965,90,exports.IColor.Named.LemonChiffon],[4289583334,91,exports.IColor.Named.LtBlue],[4293951616,92,exports.IColor.Named.LtCoral],[4292935679,93,exports.IColor.Named.LtCyan],[4294638200,94,exports.IColor.Named.LtGoldenrodYellow],[4292072403,95,exports.IColor.Named.LtGray],[4287688336,96,exports.IColor.Named.LtGreen],[4294948545,97,exports.IColor.Named.LtPink],[4294942842,98,exports.IColor.Named.LtSalmon],[4280332970,99,exports.IColor.Named.LtSeaGreen],[4287090426,100,exports.IColor.Named.LtSkyBlue],[4286023833,101,exports.IColor.Named.LtSlateGray],[4289774814,102,exports.IColor.Named.LtSteelBlue],[4294967264,103,exports.IColor.Named.LtYellow],[4278255360,104,exports.IColor.Named.Lime],[4281519410,105,exports.IColor.Named.LimeGreen],[4294635750,106,exports.IColor.Named.Linen],[4294902015,107,exports.IColor.Named.Magenta],[4286578688,108,exports.IColor.Named.Maroon],[4284927402,109,exports.IColor.Named.MedAquamarine],[4278190285,110,exports.IColor.Named.MedBlue],[4290401747,111,exports.IColor.Named.MedOrchid],[4287852763,112,exports.IColor.Named.MedPurple],[4282168177,113,exports.IColor.Named.MedSeaGreen],[4286277870,114,exports.IColor.Named.MedSlateBlue],[4278254234,115,exports.IColor.Named.MedSpringGreen],[4282962380,116,exports.IColor.Named.MedTurquoise],[4291237253,117,exports.IColor.Named.MedVioletRed],[4279834992,118,exports.IColor.Named.MidnightBlue],[4294311930,119,exports.IColor.Named.MintCream],[4294960353,120,exports.IColor.Named.MistyRose],[4294960309,121,exports.IColor.Named.Moccasin],[4294958765,122,exports.IColor.Named.NavajoWhite],[4278190208,123,exports.IColor.Named.Navy],[4294833638,124,exports.IColor.Named.OldLace],[4286611456,125,exports.IColor.Named.Olive],[4285238819,126,exports.IColor.Named.OliveDrab],[4294944e3,127,exports.IColor.Named.Orange],[4294919424,128,exports.IColor.Named.OrangeRed],[4292505814,129,exports.IColor.Named.Orchid],[4293847210,130,exports.IColor.Named.PaleGoldenrod],[4288215960,131,exports.IColor.Named.PaleGreen],[4289720046,132,exports.IColor.Named.PaleTurquoise],[4292571283,133,exports.IColor.Named.PaleVioletRed],[4294963157,134,exports.IColor.Named.PapayaWhip],[4294957753,135,exports.IColor.Named.PeachPuff],[4291659071,136,exports.IColor.Named.Peru],[4294951115,137,exports.IColor.Named.Pink],[4292714717,138,exports.IColor.Named.Plum],[4289781990,139,exports.IColor.Named.PowderBlue],[4286578816,140,exports.IColor.Named.Purple],[4294901760,141,exports.IColor.Named.Red],[4290547599,142,exports.IColor.Named.RosyBrown],[4282477025,143,exports.IColor.Named.RoyalBlue],[4287317267,144,exports.IColor.Named.SaddleBrown],[4294606962,145,exports.IColor.Named.Salmon],[4294222944,146,exports.IColor.Named.SandyBrown],[4281240407,147,exports.IColor.Named.SeaGreen],[4294964718,148,exports.IColor.Named.SeaShell],[4288696877,149,exports.IColor.Named.Sienna],[4290822336,150,exports.IColor.Named.Silver],[4287090411,151,exports.IColor.Named.SkyBlue],[4285160141,152,exports.IColor.Named.SlateBlue],[4285563024,153,exports.IColor.Named.SlateGray],[4294966010,154,exports.IColor.Named.Snow],[4278255487,155,exports.IColor.Named.SpringGreen],[4282811060,156,exports.IColor.Named.SteelBlue],[4291998860,157,exports.IColor.Named.Tan],[4278222976,158,exports.IColor.Named.Teal],[4292394968,159,exports.IColor.Named.Thistle],[4294927175,160,exports.IColor.Named.Tomato],[4282441936,161,exports.IColor.Named.Turquoise],[4293821166,162,exports.IColor.Named.Violet],[4294303411,163,exports.IColor.Named.Wheat],[4294967295,164,exports.IColor.Named.White],[4294309365,165,exports.IColor.Named.WhiteSmoke],[4294967040,166,exports.IColor.Named.Yellow],[4288335154,167,exports.IColor.Named.YellowGreen],[4293980400,168,exports.IColor.Named.ButtonFace],[4294967295,169,exports.IColor.Named.ButtonHighlight],[4288716960,170,exports.IColor.Named.ButtonShadow],[4290367978,171,exports.IColor.Named.GradientActiveCaption],[4292338930,172,exports.IColor.Named.GradientInactiveCaption],[4293980400,173,exports.IColor.Named.MenuBar],[4281571839,174,exports.IColor.Named.MenuHighlight]],mp=new class{constructor(){this._lookupByName=new Map;for(let a=0;a<Qc.length;a++){const t=Qc[a],e=t[0],n=(e>>24&255)/255,r=e>>16&255,o=e>>8&255,s=255&e,i={id:t[1],name:t[2],rgbaColor:{r,g:o,b:s,a:n},system:t.length>3};this._lookupByName.set(i.name.toLowerCase(),i)}}valueOfName(a){return this._lookupByName.get(a?a.toLowerCase():"transparent")}},Ki=[{scheme:exports.IColor.Scheme.Tx1,description:"First Text Color"},{scheme:exports.IColor.Scheme.Tx2,description:"Second Text Color"},{scheme:exports.IColor.Scheme.Bg1,description:"First Background Color"},{scheme:exports.IColor.Scheme.Bg2,description:"Second Background Color"},{scheme:exports.IColor.Scheme.Accent1,description:"Accent 1"},{scheme:exports.IColor.Scheme.Accent2,description:"Accent 2"},{scheme:exports.IColor.Scheme.Accent3,description:"Accent 3"},{scheme:exports.IColor.Scheme.Accent4,description:"Accent 4"},{scheme:exports.IColor.Scheme.Accent5,description:"Accent 5"},{scheme:exports.IColor.Scheme.Accent6,description:"Accent 6"},{scheme:exports.IColor.Scheme.Hlink,description:"Hyperlink"},{scheme:exports.IColor.Scheme.FolHlink,description:"Followed Hyperlink"},{scheme:"dk1",description:"Text/Background - Dark 1"},{scheme:"lt1",description:"Text/Background - Light 1"},{scheme:"dk2",description:"Text/Background - Dark 2"},{scheme:"lt2",description:"Text/Background - Light 2"}],Ku=new Map;for(let a=0;a<Ki.length;a++)Ku.set(Ki[a].scheme.toLowerCase(),Ki[a]);const Zc=a=>a?{srgb:[a.red/255,a.green/255,a.blue/255],alpha:a.alpha!==void 0?a.alpha:1}:null,th=function(a,t,e,n){let r=Zc((c=>{let h=mp.valueOfName(c);return h?new en.RGBA(h.rgbaColor.r,h.rgbaColor.g,h.rgbaColor.b,h.rgbaColor.a):null})(a)),o=null,s=null,i=null;if(r===null&&(l=a,Ku.get(l.toLowerCase()))){if(!t)throw new Error("a scheme val was used but a schemeLookup was not provided");o=a,s=t(o),r=Zc(s),i=exports.IColor.Type.Scheme}var l;if(r===null){let c=a.match(uf)||a.match(gf);if(c){let h,d=1;c.length===4?h=[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(h=[parseInt(c[2],16),parseInt(c[3],16),parseInt(c[4],16)],d=pr(parseInt(c[1],16)/255)),h=zi(h),h=ee(h),r={srgb:h,alpha:d},i=exports.IColor.Type.Hex}}if(r===null){let c=a.match(sf)||a.match(af);if(c){let h=Ui(c[1],c[2],c[3]);h=zi(h),h=ee(h),r={srgb:h,alpha:c[4]?pr(parseFloat(c[4])):1},i=exports.IColor.Type.RGB}}if(r===null){let c=a.match(lf)||a.match(cf);if(c){let h=Ui(c[1],c[2],c[3]);h=zi(h,100),h=Jn(h),h=ee(h),r={srgb:h,alpha:c[4]?pr(parseFloat(c[4])):1},i=exports.IColor.Type.LRGB}}if(r===null){let c=a.match(hf)||a.match(df);if(c){let h=Ui(c[1],c[2],c[3]);h=qn(h),h=ee(h),r={srgb:h,alpha:c[4]?pr(parseFloat(c[4])):1},i=exports.IColor.Type.HSL}}if(r===null){let c=a.match(mf);if(c){const h=parseInt(c[1]);let d=e?.(h)??Ys(h);d&&(r={srgb:[d.red/255,d.green/255,d.blue/255],alpha:d.alpha},i=exports.IColor.Type.Index)}}if(r===null)throw new Error("Not a valid color format: "+a);return{srgbAlpha:r,key:o,color:s,type:i}},Ka=new Map,Yu=Object.keys(exports.IColor.AdjustmentType),fp=Yu.length;for(let a=0;a<fp;a++){const t=Yu[a];Ka.set(exports.IColor.AdjustmentType[t].toLowerCase(),exports.IColor.AdjustmentType[t])}const eh=new RegExp("\\s+\\s*(?![^()]*\\))|,\\s*(?![^()]*\\))"),nh=new RegExp("\\s*[,]\\s*|\\s+");let Yi=null;const rh={[exports.IColor.Scheme.Bg1]:"window",[exports.IColor.Scheme.Bg2]:"E7E6E6",[exports.IColor.Scheme.Tx1]:"windowText",[exports.IColor.Scheme.Tx2]:"44546A",[exports.IColor.Scheme.Accent1]:"4472C4",[exports.IColor.Scheme.Accent2]:"ED7D31",[exports.IColor.Scheme.Accent3]:"A5A5A5",[exports.IColor.Scheme.Accent4]:"FFC000",[exports.IColor.Scheme.Accent5]:"5B9BD5",[exports.IColor.Scheme.Accent6]:"70AD47",[exports.IColor.Scheme.Hlink]:"0563C1",[exports.IColor.Scheme.FolHlink]:"954F72"};class Pt{constructor(t,e,n,r=null){let o=null,s=null;if(t instanceof Pt)o=t.getVal(),t.getAdjustments()&&(s=[...t.getAdjustments()]);else if(typeof t=="string"){const i=this._parse(t);o=i.val,s=i.adjs}else t?.val&&(o=t.val,s=t.adjs);if(!o)throw new Error("Unable to determine color value");this._private={val:o,adjs:s,schemeLookup:e,indexedLookup:n,parsedVal:th(o,e,n),adjusted:null,resolved:null}}_parse(t){let e=null,n=t.toLowerCase().trim();const r=n.split(eh);if(r&&(e=r[0],n=n.substring(e.length,n.length).trim()),!e)throw new Error("no color key found");const o=[],s=n.split(nh),i=s.length;for(let l=0;l<i;l++){const c=s[l];if(!c)continue;const h=Ka.get(c.toLowerCase());if(!h)throw new Error("Invalid adjustment type:"+c);let d=null;if(!(h===exports.IColor.AdjustmentType.Gray||h===exports.IColor.AdjustmentType.Comp||h===exports.IColor.AdjustmentType.Inv||h===exports.IColor.AdjustmentType.Gamma||h===exports.IColor.AdjustmentType.InvGamma)){l++;const u=s[l];if(d=parseFloat(u),d==null)throw new Error(`Invalid adjustment value: missing value for'${c}'`);if(isNaN(d))throw new Error("Invalid adjustment value:"+u)}o.push({[h]:d})}return{val:e,adjs:o}}_forceDark(t=!0){this._resolve();const e=this._private.resolved;let n=[e.red,e.green,e.blue];n=((i,l)=>{l=(l%360+360)%360;const c=[1,0,0,0,1,0,0,0,1],h=Math.cos(l*Math.PI/180),d=Math.sin(l*Math.PI/180);c[0]=sr+.7874*h-sr*d,c[1]=gn-gn*h-gn*d,c[2]=ir-ir*h+.9278*d,c[3]=sr-sr*h+.143*d,c[4]=gn+(1-gn)*h+.14*d,c[5]=ir-ir*h-.283*d,c[6]=sr-sr*h-.7874*d,c[7]=gn-gn*h+gn*d,c[8]=ir+.9278*h+ir*d;const u=p=>Math.round(Math.max(0,Math.min(255,p))),g=i[0],m=i[1],f=i[2];return[u(c[0]*g+c[1]*m+c[2]*f),u(c[3]*g+c[4]*m+c[5]*f),u(c[6]*g+c[7]*m+c[8]*f)]})(n,180),n=Sc(n,!1);let r=Gn(n);const o=An(r);if(o[Pr]=.95*o[Pr],r=qn(o),n=Jn(r),n=pc(n),n=ee(n,!1),t)return new en.RGBA(n[0],n[1],n[2],e.alpha);const s=An(Gn(n));return new en.HSLA(s[0],s[1],s[2],e.alpha)}_resolve(){if(this._private.resolved){if(!this._private.parsedVal.key)return;let o=this._private.schemeLookup(this._private.parsedVal.key);if(o===this._private.parsedVal.color||o?.isEqual(this._private.parsedVal.color))return}const t=th(this._private.val,this._private.schemeLookup,this._private.indexedLookup,this._private.last);let e=((o,s)=>{let i=[...o.srgb],l=o.alpha!==void 0?o.alpha:1;const c=s?s.length:0;for(var h=0;h<c;h++){const d=s[h],u=Object.keys(d)[0],g=d[u];u===exports.IColor.AdjustmentType.Alpha?(l=g/100,l=Math.max(0,Math.min(1,l))):u===exports.IColor.AdjustmentType.AlphaOff?(l+=g/100,l=Math.max(0,Math.min(1,l))):u===exports.IColor.AdjustmentType.AlphaMod?(l*=g/100,l=Math.max(0,Math.min(1,l))):u===exports.IColor.AdjustmentType.Hue?i=Hi(te,i,g):u===exports.IColor.AdjustmentType.Sat?i=Hi(Wi,i,g):u===exports.IColor.AdjustmentType.Lum?i=Hi(Pr,i,g):u===exports.IColor.AdjustmentType.HueOff?i=Vi(te,i,g):u===exports.IColor.AdjustmentType.SatOff?i=Vi(Wi,i,g):u===exports.IColor.AdjustmentType.LumOff?i=Vi(Pr,i,g):u===exports.IColor.AdjustmentType.HueMod?i=ji(te,i,g):u===exports.IColor.AdjustmentType.SatMod?i=ji(Wi,i,g):u===exports.IColor.AdjustmentType.LumMod?i=ji(Pr,i,g):u===exports.IColor.AdjustmentType.Red?i=Ge(Es,i,g,vs):u===exports.IColor.AdjustmentType.Green?i=Ge(Is,i,g,vs):u===exports.IColor.AdjustmentType.Blue?i=Ge(bs,i,g,vs):u===exports.IColor.AdjustmentType.RedOff?i=Ge(Es,i,g,xs):u===exports.IColor.AdjustmentType.GreenOff?i=Ge(Is,i,g,xs):u===exports.IColor.AdjustmentType.BlueOff?i=Ge(bs,i,g,xs):u===exports.IColor.AdjustmentType.RedMod?i=Ge(Es,i,g,Rs):u===exports.IColor.AdjustmentType.GreenMod?i=Ge(Is,i,g,Rs):u===exports.IColor.AdjustmentType.BlueMod?i=Ge(bs,i,g,Rs):u===exports.IColor.AdjustmentType.Shade?i=ff(i,g):u===exports.IColor.AdjustmentType.Tint?i=Sf(i,g):u===exports.IColor.AdjustmentType.ETint?i=pf(i,g):u===exports.IColor.AdjustmentType.Gray?i=_f(i):u===exports.IColor.AdjustmentType.Comp?i=wf(i):u===exports.IColor.AdjustmentType.Inv?i=Sc(i,g):u===exports.IColor.AdjustmentType.Gamma?i=yf(i):u===exports.IColor.AdjustmentType.InvGamma?i=Cf(i):console.warn("unknown adjustmentType: "+u)}return{srgb:i,alpha:l}})(t.srgbAlpha,this._private.adjs),n=((o,s=255)=>{const i=[...o];for(var l=0;l<o.length;l++)i[l]=o[l]*s;return i})(e.srgb);n=pc(n);let r=pr(e.alpha);this._private.adjusted=e,this._private.parsedVal=t,this._private.resolved=new en.RGBA(n[0],n[1],n[2],r)}static parse(t,e,n,r=null){if(t instanceof Pt)return t;const o=t;let s=null,i=o?.trim(),l=null;try{if(!s){const u=i?.split(eh);u&&(s=u[0],i=i.substring(s.length,i.length).trim())}if(!s)throw new Error("no color found");const c=[],h=i.split(nh),d=h.length;for(let u=0;u<d;u++){const g=h[u];if(!g)continue;const m=Ka.get(g.toLowerCase());if(!m)throw new Error("Invalid adjustment type:"+g);let f=null;if(!(m===exports.IColor.AdjustmentType.Gray||m===exports.IColor.AdjustmentType.Comp||m===exports.IColor.AdjustmentType.Inv||m===exports.IColor.AdjustmentType.Gamma||m===exports.IColor.AdjustmentType.InvGamma)){u++;const p=h[u];if(f=parseFloat(p),f==null)throw new Error(`Invalid adjustment value: missing value for'${g}'`);if(isNaN(f))throw new Error("Invalid adjustment value:"+p)}c.push({[m]:f})}l=new Pt({val:s,adjs:c},e,n,r)}catch(c){throw c}return l}static getDefaultSchemeLookup(){if(!Yi){const t=new Map,e=Object.keys(rh),n=e.length;for(let r=0;r<n;r++){const o=e[r];t.set(o.toLowerCase(),Pt.parse(rh[o],null))}Yi=r=>t.get(r.toLowerCase())?.toRGBA()}return Yi}isEqual(t){return t instanceof Pt&&this.toString().toLowerCase()===t.toString().toLowerCase()}getVal(){return this._private.val}getAdjustments(){return this._private.adjs}adjust(t){return new Pt({val:this._private.val,adjs:this._private.adjs?this._private.adjs.concat(t):t},this._private.schemeLookup,this._private.indexedLookup,this._private.last)}getType(){return this._resolve(),this._private.parsedVal.type??null}toCSS(t=!1,e=!0){const n=t?this._forceDark():this.toRGBA();return n.alpha===0?"none":n.toString(e)}toRGBA(t=!1){return this._resolve(),t?this._forceDark():this._private.resolved}toHSLA(t=!1){if(this._resolve(),t)return this._forceDark(!1);let e=An(this._private.adjusted.srgb);return new en.HSLA(e[0],e[1],e[2],pr(this._private.adjusted.alpha??1))}toHex(t=!1){this._resolve();const e=t?this._forceDark():this._private.resolved;return new en.HEX(e.red,e.green,e.blue,e.alpha??1)}toBlackOrWhite(t=!1,e=157){const n=this.toRGBA(t),r=.299*n.red+.587*n.green+.114*n.blue>e;return new Pt(r?"#000000":"#FFFFFF",this._private.schemeLookup,this._private.indexedLookup,this._private.last)}get[Symbol.toStringTag](){return this.toString()}toString(){let t=this._private.val;const e=this._private.adjs,n=e?e.length:0;for(let r=0;r<n;r++){const o=e[r];if(!o)continue;const s=Object.keys(o)[0];t+=" "+s;const i=o[s];typeof i=="number"&&(t+=" "+i),r<n-1&&(t+=",")}return t}get isIColor(){return!0}}var oh;exports.IBorder=void 0,(oh=exports.IBorder||(exports.IBorder={})).StrokeStyle={None:"none",DashDot:"dashDot",MediumDashDot:"mediumDashDot",Dotted:"dotted",Hair:"hair",Thin:"thin",Medium:"medium",Thick:"thick",MediumDashDotDot:"mediumDashDotDot",DashDotDot:"dashDotDot",Dashed:"dashed",MediumDashed:"mediumDashed",SlantDashDot:"slantDashDot",Double:"double"},oh.Edge={Left:"left",Top:"top",Right:"right",Bottom:"bottom",Horizontal:"horizontal",Vertical:"vertical",DiagonalUp:"diagonalUp",DiagonalDown:"diagonalDown"};const Qu=[],Zu=new Map,sh=Object.freeze([[exports.IBorder.StrokeStyle.Thin,"Thin",1,null],[exports.IBorder.StrokeStyle.Hair,"Hair",1,[1,1]],[exports.IBorder.StrokeStyle.Dotted,"Dotted",1,[2,2]],[exports.IBorder.StrokeStyle.Dashed,"Dashed",1,[3,1]],[exports.IBorder.StrokeStyle.DashDot,"Dash Dot",1,[3,3,9,3]],[exports.IBorder.StrokeStyle.DashDotDot,"Dash Dot Dot",1,[3,3,3,3,9,3]],[exports.IBorder.StrokeStyle.Double,"Double",3,null],[exports.IBorder.StrokeStyle.Medium,"Medium",2,null],[exports.IBorder.StrokeStyle.MediumDashed,"Medium Dashed",2,[9,3]],[exports.IBorder.StrokeStyle.MediumDashDot,"Medium Dash Dot",2,[3,3,9,3]],[exports.IBorder.StrokeStyle.MediumDashDotDot,"Medium Dash Dot Dot",2,[3,3,3,3,9,3]],[exports.IBorder.StrokeStyle.SlantDashDot,"Slant Dash Dot",2,[5,1,11,1]],[exports.IBorder.StrokeStyle.Thick,"Thick",3,null],[exports.IBorder.StrokeStyle.None,"None",0,null]]);for(let a=0;a<sh.length;a++){const t=sh[a],e=t[0],n=Object.freeze({style:e,description:t[1],width:t[2],pattern:t[3]});Qu.push(n),Zu.set(e,n)}(a=>{a.isEqualStrokes=(t,e)=>!(t&&!e||e&&!t)&&(t===e||t.getStyle()===e.getStyle()&&t.getColor().isEqual(e.getColor())),a.oppositeEdge=t=>t===a.Edge.Left?a.Edge.Right:t===a.Edge.Right?a.Edge.Left:t===a.Edge.Top?a.Edge.Bottom:t===a.Edge.Bottom?a.Edge.Top:t,a.BuiltInDefinitionsArray=Qu,a.BuiltInDefinitions=Zu})(exports.IBorder||(exports.IBorder={}));const pp={Text:"text",Repeat:"repeat",Spacing:"spacing"},ih=a=>!(!a.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)&&!a.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)),Sp=Object.freeze({formatValue:El,isFractionFormat:ih,adjustDecimalPlaces:(a,t)=>{if(!a)return"";const e=(s,i)=>{let l=s||"";const c=l.length===0||l.endsWith(".")?"0":l.charAt(l.length-1);return i<0?(l=l.substring(0,Math.max(0,l.length+i)),l==="."&&(l="")):(l.startsWith(".")||(l+="."),l+=c.repeat(i)),l},n=(s,i)=>{if(s==="General")return i>0?"0"+e("",i):s;if(ih(s))return s;let l=s,c=-1,h=-1,d=l.indexOf("E");if(d>=0&&(l=l.substring(0,d)),c=l.indexOf("."),c>=0){l=l.substring(c,l.length);let u=l&&l.match(/([.]{1}[0,#]+)/);if(!u)return s;l=u[1],h=c+l.length}else{if(i<=0)return s;c=l.lastIndexOf("0"),c<0&&(c=l.lastIndexOf("#")),c>=0&&(c+=1),h=c,l=""}return c===-1?s:(l=e(l,i),s.substring(0,c)+l+s.substring(h,s.length))},r=[];let o=xf(a);for(let s=0;s<o.length;s++)r.push(n(o[s].trim(),t));return r.join(";")}}),_p=zt._table,Al=a=>a===14?"Short Date":_p[a]??null,Wr=[{numberFormat:"General",formatType:lt.General,primary:1},{numberFormat:"0",formatType:lt.Number,regMatch:/^0[.]{0,1}[0]*$/,args:{decimalPlaces:0,separator:!1}},{numberFormat:"#,##0.00",formatType:lt.Number,regMatch:/^#,##0[.]{0,1}[0]*$/,primary:2,args:{decimalPlaces:2,separator:!0}},{numberFormat:"#,##0_);(#,##0)",formatType:lt.Number,args:{decimalPlaces:0,separator:!0}},{numberFormat:"#,##0_);[Red](#,##0)",formatType:lt.Number,args:{decimalPlaces:0,separator:!0}},{numberFormat:"#,##0.00_);(#,##0.00)",formatType:lt.Number,args:{decimalPlaces:2,separator:!0}},{numberFormat:"#,##0.00_);[Red](#,##0.00)",formatType:lt.Number,args:{decimalPlaces:2,separator:!0}},{numberFormat:"$#,##0.00",formatType:lt.Currency,primary:3,args:{decimalPlaces:2,currencySymbol:"$"}},{numberFormat:"$#,##0_);($#,##0)",formatType:lt.Currency,args:{decimalPlaces:0,currencySymbol:"$"}},{numberFormat:"$#,##0_);[Red]($#,##0)",formatType:lt.Currency,args:{decimalPlaces:0,currencySymbol:"$"}},{numberFormat:"$#,##0.00_);($#,##0.00)",formatType:lt.Currency,args:{decimalPlaces:2,currencySymbol:"$"}},{numberFormat:"$#,##0.00_);[Red]($#,##0.00)",formatType:lt.Currency,args:{decimalPlaces:2,currencySymbol:"$"}},{numberFormat:'_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)',primary:4,formatType:lt.Accounting},{numberFormat:'_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)',formatType:lt.Accounting},{numberFormat:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',formatType:lt.Accounting},{numberFormat:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',formatType:lt.Accounting},{numberFormat:"Short Date",formatType:lt.ShortDate,primary:5},{numberFormat:"d-mmm-yy",formatType:lt.MediumDate,primary:5.5},{numberFormat:"Long Date",formatType:lt.LongDate,primary:6},{numberFormat:"h:mm",formatType:lt.ShortTime,primary:7},{numberFormat:"h:mm AM/PM",formatType:lt.MediumTime,primary:7.5},{numberFormat:"Long Time",formatType:lt.LongTime,primary:8},{numberFormat:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',formatType:lt.Comma,primary:9},{numberFormat:"0.00%",formatType:lt.Percentage,primary:10,args:{decimalPlaces:2},regMatch:/^^[0#?]*[.]{0,1}[0#?]*%*$/},{numberFormat:"0%",formatType:lt.Percentage,args:{decimalPlaces:0}},{numberFormat:"# ?/?",formatType:lt.Fraction,primary:11},{numberFormat:"# ??/??",formatType:lt.Fraction},{numberFormat:"0.00E+00",formatType:lt.Scientific,primary:12,args:{decimalPlaces:2},regMatch:/^[0#?]*[.]{0,1}[0#?]*E\+[0#?]*$/},{numberFormat:"##0.0E+0",formatType:lt.Custom,args:{decimalPlaces:0}},{numberFormat:"@",formatType:lt.Text,primary:13},{numberFormat:"d-mmm",formatType:lt.Custom},{numberFormat:"mmm-yy",formatType:lt.Custom},{numberFormat:"h:mm:ss",formatType:lt.Custom},{numberFormat:"m/d/yyyy h:mm",formatType:lt.Custom},{numberFormat:"mm:ss",formatType:lt.Custom},{numberFormat:"mm:ss.0",formatType:lt.Custom},{numberFormat:"[h]:mm:ss",formatType:lt.Custom}],Qi=[{numberFormat:"00000",formatType:lt.Special,primary:11},{numberFormat:"00000-0000",formatType:lt.Special},{numberFormat:"[<=9999999]###-####;(###) ###-####",formatType:lt.Special},{numberFormat:"000-00-0000",formatType:lt.Special}],Mo=new Map,ao=[];for(let a=0;a<Wr.length;a++){let t=Wr[a].numberFormat.toLowerCase();Mo.set(t,Wr[a]),Wr[a].regMatch&&ao.unshift(Wr[a])}for(let a=0;a<Qi.length;a++){let t=Qi[a].numberFormat.toLowerCase();Mo.set(t,Qi[a])}const Ya=[],tg=new Map;Mo.forEach(function(a,t,e){a.primary&&(Ya.push(a),tg.set(w.CommonUtils.textToKey(a.formatType),a.numberFormat))}),Ya.sort(function(a,t){return a.primary-t.primary});const ah=Mo.get(lt.General.toLowerCase());class wp{lookupStyle(t){if(!t)return ah;if(typeof t=="number"&&(t=Al(t)),!t.toLowerCase)return console.warn("Invalid numberFormat",t),ah;t=t.toLowerCase();let e=Mo.get(t);if(e)return e;for(let n=0;!e&&n<ao.length;n++)ao[n].regMatch&&t.match(ao[n].regMatch)&&(e=ao[n]);return e||{numberFormat:t,formatType:lt.Custom}}lookupPrimary(){return Ya}lookupDefault(t){return tg.get(w.CommonUtils.textToKey(t))}}var Xo,lh;exports.NumberFormat=void 0,(Xo=exports.NumberFormat||(exports.NumberFormat={})).Type=lt,Xo.Parser=Sp,Xo.Styles=new wp,Xo.ParseRunType=pp,exports.IStyle=void 0,(lh=exports.IStyle||(exports.IStyle={})).BuiltInName={Normal:"Normal",RowLevel:"RowLevel_#",ColLevel:"ColLevel_#",Comma:"Comma",Currency:"Currency",Percent:"Percent",Comma0:"Comma [0]",Currency0:"Currency [0]",Hyperlink:"Hyperlink",FollowedHyperlink:"Followed Hyperlink",Note:"Note",WarningText:"Warning Text",Unknown12:"??-12",Unknown13:"??-13",Unknown14:"??-14",Title:"Title",Heading1:"Heading 1",Heading2:"Heading 2",Heading3:"Heading 3",Heading4:"Heading 4",Input:"Input",Output:"Output",Calculation:"Calculation",CheckCell:"Check Cell",LinkedCell:"Linked Cell",Total:"Total",Good:"Good",Bad:"Bad",Neutral:"Neutral",Accent1:"Accent1",Accent1_20:"20% - Accent1",Accent1_40:"40% - Accent1",Accent1_60:"60% - Accent1",Accent2:"Accent2",Accent2_20:"20% - Accent2",Accent2_40:"40% - Accent2",Accent2_60:"60% - Accent2",Accent3:"Accent3",Accent3_20:"20% - Accent3",Accent3_40:"40% - Accent3",Accent3_60:"60% - Accent3",Accent4:"Accent4",Accent4_20:"20% - Accent4",Accent4_40:"40% - Accent4",Accent4_60:"60% - Accent4",Accent5:"Accent5",Accent5_20:"20% - Accent5",Accent5_40:"40% - Accent5",Accent5_60:"60% - Accent5",Accent6:"Accent6",Accent6_20:"20% - Accent6",Accent6_40:"40% - Accent6",Accent6_60:"60% - Accent6",ExplanatoryText:"Explanatory Text"},lh.IconSet={Arrows3:"3Arrows",ArrowsGray3:"3ArrowsGray",Flags3:"3Flags",Signs3:"3Signs",Symbols3:"3Symbols",Symbols3_2:"3Symbols2",TrafficLights3:"3TrafficLights1",TrafficLights3_2:"3TrafficLights2",Arrows4:"4Arrows",ArrowsGray4:"4ArrowsGray",Rating4:"4Rating",RedToBlack4:"4RedToBlack",TrafficLights4:"4TrafficLights",Arrows5:"5Arrows",ArrowsGray5:"5ArrowsGray",Quarters5:"5Quarters",Rating5:"5Rating"};const yp=(a,t,e,n,r)=>{const o=JSON.parse(JSON.stringify(a.definition));o.adjs||(o.adjs=[]);let s="",i=0,l=0;t>0?(l=t,i=100-t,s=`Lighter ${t}%`):t<0&&(i=100+t,s=`Darker ${-t}%`),i&&o.adjs.push({[exports.IColor.AdjustmentType.LumMod]:i}),l&&o.adjs.push({[exports.IColor.AdjustmentType.LumOff]:l});const c=new Pt({val:o.val,adjs:o.adjs},e),h=c.toString();n?.set(h,c);const d=c.toRGBA().toString();return r?.set(d,c),{description:a.description+", "+s,definition:o}},Cp=(a,t,e,n)=>{let r=[];for(let o=0;o<a.length;o++){let s=[];r.push(s);const i=c=>{for(let h=0;h<c.length;h++)s.push(yp(a[o],c[h],t,e,n))};let l=new Pt({val:a[o].definition.val,adjs:a[o].definition.adjs},t).toHSLA().lum;i(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 r};exports.ITheme=void 0,(exports.ITheme||(exports.ITheme={})).buildPalette=Cp,exports.IThemeCollection=void 0,(exports.IThemeCollection||(exports.IThemeCollection={})).BuiltInFilterType={BuiltIn:"builtIn",All:"all",Custom:"custom"};const Ep=[["Office","windowText","window","0E2841","E8E8E8","156082","E97132","196B24","0F9ED5","A02B93","4EA72E","467886","96607D"],["Office 2013-2022","windowText","window","44546A","E7E6E6","4472C4","ED7D31","A5A5A5","FFC000","5B9BD5","70AD47","0563C1","954F72"],["Office 2007-2010","windowText","window","1F497D","EEECE1","4F81BD","C0504D","9BBB59","8064A2","4BACC6","F79646","0000FF","800080"],["Grayscale","windowText","window","000000","F8F8F8","DDDDDD","B2B2B2","969696","808080","5F5F5F","4D4D4D","5F5F5F","919191"],["Atlas","windowText","window","454545","E0E0E0","F81B02","FC7715","AFBF41","50C49F","3B95C4","B560D4","FC5A1A","B49E74"],["Banded","2C2C2C","FFFFFF","099BDD","F2F2F2","FFC000","A5D028","08CC78","F24099","828288","F56617","005DBA","6C606A"],["Basis","000000","FFFFFF","565349","DDDDDD","A6B727","DF5327","FE9E00","418AB3","D7D447","818183","F59E00","B2B2B2"],["Berlin","windowText","window","9D360E","E7E6E6","F09415","C1B56B","4BAF73","5AA6C0","D17DF9","FA7E5C","FFAE3E","FCC77E"],["Celestial","windowText","window","18276C","EBEBEB","AC3EC1","477BD1","46B298","90BA4C","DD9D31","E25247","C573D2","CCAEE8"],["Circuit","windowText","window","134770","82FFFF","9ACD4C","FAA93A","D35940","B258D3","63A0CC","8AC4A7","B8FA56","7AF8CC"],["Damask","windowText","window","2A5B7F","ABDAFC","9EC544","50BEA3","4A9CCC","9A66CA","C54F71","DE9C3C","6BA9DA","A0BCD3"],["Depth","windowText","window","455F51","94D7E4","41AEBD","97E9D5","A2CF49","608F3D","F4DE3A","FCB11C","FBCA98","D3B86D"],["Dividend","windowText","window","3D3D3D","EBEBEB","4D1434","903163","B2324B","969FA7","66B1CE","40619D","828282","A5A5A5"],["Droplet","windowText","window","355071","AABED7","2FA3EE","4BCAAD","86C157","D99C3F","CE6633","A35DD1","56BCFE","97C5E3"],["Facet","windowText","window","2C3C43","EBEBEB","90C226","54A021","E6B91E","E76618","C42F1A","918655","99CA3C","B9D181"],["Frame","000000","FFFFFF","545454","BFBFBF","40BAD2","FAB900","90BB23","EE7008","1AB39F","D5393D","90BB23","EE7008"],["Gallery","windowText","window","454545","DFDBD5","B71E42","DE478E","BC72F0","795FAF","586EA6","6892A0","FA2B5C","BC658E"],["Integral","windowText","window","335B74","DFE3E5","1CADE4","2683C6","27CED7","42BA97","3E8853","62A39F","6B9F25","B26B02"],["Ion Boardroom","windowText","window","3B3059","EBEBEB","B31166","E33D6F","E45F3C","E9943A","9B6BF2","D53DD0","8F8F8F","A5A5A5"],["Ion","windowText","window","1E5155","EBEBEB","B01513","EA6312","E6B729","6AAC90","54849A","9E5E9B","58C1BA","9DFFCB"],["Madison","windowText","window","1F2D29","C5FAEB","A1D68B","5EC795","4DADCF","CDB756","E29C36","8EC0C1","6D9D9B","6D8583"],["Main Event","windowText","window","424242","C8C8C8","B80E0F","A6987D","7F9A71","64969F","9B75B2","80737A","F21213","B6A394"],["Mesh","windowText","window","363D46","EBEBEB","6F6F6F","BFBFA5","DCD084","E7BF5F","E9A039","CF7133","F28943","F1B76C"],["Metropolitan","windowText","window","162F33","EAF0E0","50B4C8","A8B97F","9B9256","657689","7A855D","84AC9D","2370CD","877589"],["Organic","windowText","window","212121","DADADA","83992A","3C9770","44709D","A23C33","D97828","DEB340","A8BF4D","B4CA80"],["Parallax","windowText","window","212121","CDD0D1","30ACEC","80C34F","E29D3E","D64A3B","D64787","A666E1","3085ED","82B6F4"],["Parcel","000000","FFFFFF","4A5356","E8E3CE","F6A21D","9BAFB5","C96731","9CA383","87795D","A0988C","00B0F0","738F97"],["Quotable","windowText","window","212121","636363","00C6BB","6FEBA0","B6DF5E","EFB251","EF755F","ED515C","8F8F8F","A5A5A5"],["Retrospect","000000","window","637052","CCDDEA","E48312","BD582C","865640","9B8357","C2BC80","94A088","2998E3","8C8C8C"],["Savon","windowText","window","1485A4","E3DED1","1CADE4","2683C6","27CED7","42BA97","3E8853","62A39F","F49100","739D9B"],["Slate","windowText","window","212123","DADADA","BC451B","D3BA68","BB8640","AD9277","A55A43","AD9D7B","E98052","F4B69B"],["Slice","windowText","window","146194","76DBF4","052F61","A50E82","14967C","6A9E1F","E87D37","C62324","0D2E46","356A95"],["Vapor Trail","windowText","window","454545","DADADA","DF2E28","FE801A","E9BF35","81BB42","32C7A9","4A9BDC","F0532B","F38B53"],["View","000000","FFFFFF","46464A","D6D3CC","6F6F74","92A9B9","A7B789","B9A489","8D6374","9B7362","67AABF","ABAFA5"],["Wisp","windowText","window","766F54","E3EACF","A53010","DE7E18","9F8351","728653","92AA4C","6AAC91","FB4A18","FB9318"],["Wood Type","windowText","window","696464","E9E5DC","D34817","9B2D1F","A28E6A","956251","918485","855D5D","CC9900","96A9A9"]],Ip=[["Office","Calibri Light","Calibri"],["Office 2013-2022","Calibri Light","Calibri"],["Office 2007-2010","Calibri Light","Calibri"],["Grayscale","Calibri Light","Calibri"],["Atlas","Calibri Light","Rockwell"],["Banded","Corbel","Corbel"],["Basis","Corbel","Corbel"],["Berlin","Trebuchet MS","Trebuchet MS"],["Celestial","Calibri Light","Calibri"],["Circuit","Tw Cen MT","Tw Cen MT"],["Damask","Bookman Old Style","Rockwell"],["Depth","Corbel","Corbel"],["Madison","Arial","Arial"],["Main Event","Impact","Impact"],["Mesh","Century Gothic","Century Gothic"],["Metropolitan","Calibri Light","Calibri Light"],["Organic","Garamond","Garamond"],["Parallax","Corbel","Corbel"],["Parcel","Gill Sans MT","Gill Sans MT"],["Quotable","Century Gothic","Century Gothic"],["Retrospect","Calibri Light","Calibri"],["Savon","Century Gothic","Century Gothic"],["Slate","Calisto MT","Calisto MT"],["Slice","Century Gothic","Century Gothic"],["Vapor Trail","Century Gothic","Century Gothic"],["View","Century Schoolbook","Century Schoolbook"],["Wisp","Century Gothic","Century Gothic"],["Wood Type","Rockwell Condensed","Rockwell"]],bp=[["Office","Office","Office"],["2013-2022","Office 2013-2022","Office 2013-2022"],["Atlas","Atlas","Atlas"],["Banded","Banded","Banded"],["Basis","Basis","Basis"],["Berlin","Berlin","Berlin"],["Celestial","Celestial","Celestial"],["Circuit","Circuit","Circuit"],["Damask","Damask","Damask"],["Depth","Depth","Depth"],["Dividend","Dividend","Dividend"],["Droplet","Droplet","Droplet"],["Facet","Facet","Facet"],["Frame","Frame","Frame"],["Gallery","Gallery","Gallery"],["Grayscale","Grayscale","Grayscale"],["Integral","Integral","Integral"],["Ion Boardroom","Ion Boardroom","Ion Boardroom"],["Ion","Ion","Ion"],["Madison","Madison","Madison"],["Main Event","Main Event","Main Event"],["Mesh","Mesh","Mesh"],["Metropolitan","Metropolitan","Metropolitan"],["Organic","Organic","Organic"],["Parallax","Parallax","Parallax"],["Parcel","Parcel","Parcel"],["Quotable","Quotable","Quotable"],["Retrospect","Retrospect","Retrospect"],["Savon","Savon","Savon"],["Slate","Slate","Slate"],["Slice","Slice","Slice"],["Vapor Trail","Vapor Trail","Vapor Trail"],["View","View","View"],["Wisp","Wisp","Wisp"],["Wood Type","Wood Type","Wood Type"],["Office 2007-2010","Office 2007-2010","Office 2007-2010"]],Zi="Themes is readonly. To make modifications create a new DocsThemes instance.",ch={[exports.IColor.Scheme.Bg1]:"lt1",[exports.IColor.Scheme.Bg2]:"lt2",[exports.IColor.Scheme.Tx1]:"dk1",[exports.IColor.Scheme.Tx2]:"dk2",[exports.IColor.Scheme.Accent1]:"accent1",[exports.IColor.Scheme.Accent2]:"accent2",[exports.IColor.Scheme.Accent3]:"accent3",[exports.IColor.Scheme.Accent4]:"accent4",[exports.IColor.Scheme.Accent5]:"accent5",[exports.IColor.Scheme.Accent6]:"accent6",[exports.IColor.Scheme.Hlink]:"hlink",[exports.IColor.Scheme.FolHlink]:"folHlink"},Ar="Office",Qa=[Ar,"Calibri Light","Calibri"],Tr=["dk1","lt1","dk2","lt2","accent1","accent2","accent3","accent4","accent5","accent6","hlink","folHlink"],eg=a=>{const t={};for(let e=0;e<a.length;e++){const n=a[e],r=n[0],o={name:r};t[r]=o;for(let s=0;s<Tr.length;s++){const i=Tr[s],l=n[s+1];if(!l)continue;const c=Pt.parse(l);l&&(o[i]=c.toString())}}return t},ng=a=>{const t={};for(let e=0;e<a.length;e++){const n=a[e],r=n[0],o={name:r};t[r]=o,o.majorFont=n[1]??Qa[1],o.minorFont=n[2]??Qa[2]}return t},vp=eg([[Ar,"windowText","window","44546A","E7E6E6","4472C4","ED7D31","A5A5A5","FFC000","5B9BD5","70AD47","0563C1","954F72"]]),xp=ng([Qa]),Eo=vp[Ar],mr=xp[Ar];let Ue=null;const Rp=new class{constructor(){this._colors={};for(let a=0;a<Tr.length;a++){const t=Tr[a],e=Pt.parse(Eo[t]);this._colors[t]=e}}getName(){return Eo.name}getDk1(){return this._colors.dk1}getLt1(){return this._colors.lt1}getDk2(){return this._colors.dk2}getLt2(){return this._colors.lt2}getAccent1(){return this._colors.accent1}getAccent2(){return this._colors.accent2}getAccent3(){return this._colors.accent3}getAccent4(){return this._colors.accent4}getAccent5(){return this._colors.accent5}getAccent6(){return this._colors.accent6}getHlink(){return this._colors.hlink}getFolHlink(){return this._colors.folHlink}toJSON(){return null}};class Ap{constructor(t,e=Rp){this._delegate=e,this._fromJSON(t)}_fromJSON(t){if(this._overrides={},!t)return;const e=Object.keys(t);if(e.length!==0)for(let n=0;n<e.length;n++){const r=e[n];this._overrides[r]=r==="name"?t[r]:Pt.parse(t[r])}}_value(t,e){return this._overrides&&this._overrides[t]!==null&&this._overrides[t]!==void 0?this._overrides[t]:this._delegate?.[e]?.()}getName(){return this._value("name","getName")}getDk1(){return this._value("dk1","getDk1")}getLt1(){return this._value("lt1","getLt1")}getDk2(){return this._value("dk2","getDk2")}getLt2(){return this._value("lt2","getLt2")}getAccent1(){return this._value("accent1","getAccent1")}getAccent2(){return this._value("accent2","getAccent2")}getAccent3(){return this._value("accent3","getAccent3")}getAccent4(){return this._value("accent4","getAccent4")}getAccent5(){return this._value("accent5","getAccent5")}getAccent6(){return this._value("accent6","getAccent6")}getHlink(){return this._value("hlink","getHlink")}getFolHlink(){return this._value("folHlink","getFolHlink")}toJSON(){const t=w.CommonUtils.toSafeJSON(this._overrides),e=this.getName();return e&&(t.name=e),t}}const Tp=new class{constructor(){this._colors={};for(let a=0;a<Tr.length;a++){const t=Tr[a],e=Pt.parse(Eo[t]);this._colors[t]=e}}getName(){return mr.name}getMajorFont(){return mr.majorFont}getMinorFont(){return mr.minorFont}getMajorFallbacks(){return mr.majorFallbacks}getMinorFallbacks(){return mr.minorFallbacks}};class Mp{constructor(t,e=Tp){this._delegate=e,this._fromJSON(t)}_fromJSON(t){if(this._overrides={},!t)return;const e=Object.keys(t);if(e.length!==0)for(let n=0;n<e.length;n++){const r=e[n];this._overrides[r]=t[r]}}_value(t,e){return this._overrides&&this._overrides[t]!==null&&this._overrides[t]!==void 0?this._overrides[t]:this._delegate?.[e]?.()}getName(){return this._value("name","getName")}getMajorFont(){return this._value("majorFont","getMajorFont")}getMinorFont(){return this._value("minorFont","getMinorFont")}getMajorFallbacks(){return this._value("majorFallbacks","getMajorFallbacks")}getMinorFallbacks(){return this._value("minorFallbacks","getMinorFallbacks")}toJSON(){const t=w.CommonUtils.toSafeJSON(this._overrides),e=this.getName();return e&&(t.name=e),t}}class Qs{constructor(t,e=null,n=null){if(this._cacheColors=new Map,!e&&t?.name){const l=Ue?Ue.get(t.name.toLowerCase()):null;l&&(e=l)}if(!e&&Ue&&(e=Ue.get(Ar.toLowerCase())),this._name=t?.name??e?.getName(),!this._name)throw new Error("Theme must have a name.");this._builtInID=n,this._delegate=e,this._colors=new Ap(t?.colors,this._delegate?.getColorScheme()),this._fonts=new Mp(t?.fonts,this._delegate?.getFontScheme());const r=ch,o={},s=Object.keys(r);for(let l=0;l<s.length;l++){const c=s[l];o[c]=`get${Rr(r[c])}`}o.dk1="getDk1",o.dk2="getDk2",o.lt1="getLt1",o.lt2="getLt2",o.folhlink="getFolHlink",this._colorMap=o;const i=this;this._schemeLookup=l=>{let c=i._cacheColors[l];if(c)return c;const h=i._colorMap[l];if(!h)throw new Error(`Invalid color scheme key: ${l}`);const d=i.getColorScheme();let u=d[h].bind(d)();return u||(u=Eo[ch[l]??l]),c=new Pt(u).toRGBA(),i._cacheColors[l]=c,c}}get builtInID(){return this._builtInID??null}getName(){return this._name??this._delegate?.getName()??null}isCustom(){return this._builtInID!==null&&this._builtInID!==void 0}getColorScheme(){return this._colors}getFontScheme(){return this._fonts}schemeLookup(){return this._schemeLookup}parseColor(t){return Pt.parse(t,this._schemeLookup)}toJSON(){const t={name:this.getName()},e=this._colors.toJSON();e&&(Object.keys(e).length>1||e.name&&e.name!==t.name)&&(t.colors=e);const n=this._fonts.toJSON();return n&&(Object.keys(n).length>1||n.name&&n.name!==t.name)&&(t.fonts=n),Object.keys(t).length===1&&t.name===Ar?null:t}}const Fp=()=>{if(Ue)return Ue;const a=((e,n,r)=>{const o=[];for(let s=0;s<e.length;s++){const i=e[s],l=i[0],c=n[i[1]]??Eo,h=r[i[2]]??mr;o.push({name:l,colors:c,fonts:h})}return o})(bp,eg(Ep),ng(Ip)),t=new Map;for(let e=0;e<a.length;e++){const n=new Qs(a[e]),r=new Qs(null,n,e+1);t.set(r.getName().toLowerCase(),r)}return Ue=t,t};class Tl{constructor(t=null,e=!1){Fp(),this._isReadOnly=e,this._customMap=new Map,this._defaultTheme=this.getByName("Office")}getDefaultTheme(){return this._defaultTheme}setDefaultTheme(t){if(this._isReadOnly)throw new Error(Zi);if(!t)throw new Error("Theme cannot be null.");const e=this.getDefaultTheme();return this.getByName(t.getName())||this.setCustomTheme(t),this._defaultTheme=t,e}getByName(t){return t=t.toLowerCase(),this._customMap.get(t)||(Ue.get(t)??null)}getItems(t){const e=t?.type??exports.IThemeCollection.BuiltInFilterType.All,n=new Map;return e!==exports.IThemeCollection.BuiltInFilterType.BuiltIn&&e!==exports.IThemeCollection.BuiltInFilterType.All||Ue.forEach((r,o)=>n.set(o,r)),e!==exports.IThemeCollection.BuiltInFilterType.Custom&&e!==exports.IThemeCollection.BuiltInFilterType.All||this._customMap.forEach((r,o)=>n.set(o,r)),t?.selected&&n.set(t.selected.getName().toLowerCase(),t.selected),(r=>{const o=[...r];return o.sort((s,i)=>w.CommonUtils.isDefined(s.builtInID)&&!w.CommonUtils.isDefined(i.builtInID)?1:!w.CommonUtils.isDefined(s.builtInID)&&w.CommonUtils.isDefined(i.builtInID)?-1:w.CommonUtils.isDefined(s.builtInID)&&w.CommonUtils.isDefined(i.builtInID)?s.builtInID-i.builtInID:s.getName().localeCompare(i.getName())),o})(Array.from(n.values()))}getCount(){return this._customMap.size+Ue.size}setCustomTheme(t){if(this._isReadOnly)throw new Error(Zi);const e=t.getName().toLowerCase(),n=this._customMap.get(e);return this._customMap.set(e,t),n??null}deleteCustomTheme(t){if(this._isReadOnly)throw new Error(Zi);let e=null;e=typeof t=="string"?t.toLowerCase():t.getName().toLowerCase();const n=this._customMap.get(e);return this._customMap.delete(e),n??null}}exports.ITableStyle=void 0,(exports.ITableStyle||(exports.ITableStyle={})).ElementType={WholeTable:"wholeTable",FirstColumnStripe:"firstColumnStripe",SecondColumnStripe:"secondColumnStripe",FirstRowStripe:"firstRowStripe",SecondRowStripe:"secondRowStripe",LastColumn:"lastColumn",FirstColumn:"firstColumn",HeaderRow:"headerRow",TotalRow:"totalRow",FirstHeaderCell:"firstHeaderCell",LastHeaderCell:"lastHeaderCell",FirstTotalCell:"firstTotalCell",LastTotalCell:"lastTotalCell"},(exports.ITableStyle||(exports.ITableStyle={})).Empty=class{constructor(a){this._normalStyle=a}getName(){return"None"}isShownInTableStyles(){return!1}isShownInPivotStyles(){return!1}getRanged(a){return null}getProperties(){return w.CommonUtils.EmptyObject}isBuiltIn(){return!0}delete(){}toJSON(){return null}get isITableStyle(){return!0}},exports.IAnchored=void 0,(exports.IAnchored||(exports.IAnchored={})).Type={Absolute:"absolute",OneCell:"oneCell",TwoCell:"twoCell"};const Ee="Model has been closed. No further operations are allowed.",hh="Name is required";class Xt{constructor(t,e){this._listeners=new Set,this._pending=null,this._listeners=new Set,this._transactions=e??new xe({transient:!0}),this._src=t;const n=this;this._transactionsRemoveListener=this._transactions?.addListener({onCommitEnd(r){const o=n._pending;if(!o)return;n._pending=null;const s=r.getId(),i=new Set,l=o.length;for(let c=0;c<l;c++){const h=o[c];h.commitId===s&&n._doNotify(h.listeners,h.removes,h.options,i)}}})}addListeners(t,e){const n=e?.transactional??this._transactions.isOpenTransaction(),r={listeners:t},o=this,s=()=>{if(!n)return void o._listeners.delete(r);const i=o._transactions.getState(o)?.listeners,l=new Set(i);l.delete(r);const c=o._transactions.beginCommit();try{c.updateState(o,{listeners:l}),c.commit({forceAmend:!0})}catch(h){throw c.rollback(),h}};if(r.remove=e?.once?s:null,n){const i=o._transactions.getState(o)?.listeners,l=new Set(i);l.add(r);const c=this._transactions.beginCommit();try{c.updateState(o,{listeners:l}),c.commit({forceAmend:!0})}catch(h){throw c.rollback(),h}}else o._listeners.add(r);return s}async _doNotify(t,e=null,n,r){const o=n?.source??this._src,s=[],i=n?.params,l=t.length;for(let h=0;h<l;h++){const d=t[h];r&&r.has(d)||(r?.add(d),s.push(d(o,i)))}let c=null;if(e&&(c=()=>{const h=e.length;for(let d=0;d<h;d++)e[d]()}),n?.async)return new Promise(async(h,d)=>{try{const u=await Promise.all(s);c?.(),h(u)}catch(u){c?.(),d(u)}});c?.()}notify(t,e){let n=null,r=null;const o=d=>{d.forEach(u=>{const g=u.listeners[t];g&&(n||(n=[]),n.push(g),u.remove&&(r||(r=[]),r.push(u.remove)))})},s=e?.transactional??this._transactions.isOpenTransaction();if(s){const d=this._transactions.getState(this)?.listeners;d&&o(d)}const i=n,l=r;n=null,r=null,o(this._listeners);const c=n,h=r;if(n=null,r=null,s){if(i&&this._doNotify(i,l,e),c){let d=this._pending;return d||(this._pending=d=[]),d.push({commitId:this._transactions.getCurrentCommit().getId(),listeners:c,removes:h,options:e}),this._doNotify(c,l,e)}}else if(c)return this._doNotify(c,h,e)}close(){this._transactions.remove(this),this._transactionsRemoveListener()}}class Xn{constructor(t){this._emitter=null,this._closed=!1,this._options={...t};const e=this;this._transactions=this._options?.transactions??new xe({transient:!0}),this._emitter=new Xt(this,this._transactions),this._updateState({isDeleted:!1}),t?.json&&this._fromJSON(t.json),this._options?.setContainerReadOnlyCallback?.(()=>{e._processOnContainerReadOnly()}),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(n,r,o){e._processStateChange(n,r,o)},onRestoreOrRevert(n,r,o){e._processRestoreOrRevert(n,r,o)}}),this._processInit()}_fromJSON(t){}isReadOnly(){return this._options.isReadOnly?.()??!1}isDeleted(){return this._getState().isDeleted??!1}getType(){return this._options.type}get isIModel(){return!0}_processTransactionDone(t){}_getDescription(){return null}_getState(){if(this._closed)throw new Error(Ee);return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(typeof t=="string"?{description:t}:t)}_getTransactions(){return this._transactions}_updateState(t,e,n){if(this._closed)throw new Error(Ee);if(!t)return;const r=this._beginCommit(e?.description);try{r.updateState(this,t);let o=!1;if(n)for(let s=0;s<n.length;s++){const i=n[s];o=o||i==="onAnyChange",this._emitter.notify(i)}!o&&n&&n.length>0&&this._emitter.notify("onAnyChange"),r.commit()}catch(o){throw r.rollback(),o}return this}_getEmitter(){return this._emitter}_processInit(){}_processStateChange(t,e,n){}_processRestoreOrRevert(t,e,n){this._emitter.notify("onInvalidated")}delete(t){if(this._getState().isDeleted)throw new Error("Model has been deleted.");this._options.deleteFromContainer&&this._options.deleteFromContainer?.(t),this._delete()}_delete(){const t=this._getDescription(),e="Delete",n=t?`${e} ${t}`:e,r=this._beginCommit(n);try{this._processDelete(),r.commit()}catch(o){throw r.rollback(),o}}_processOnContainerDeleted(){this._processDelete()}_processDelete(){this._updateState({isDeleted:!0},null,["onDelete"])}_processOnContainerReadOnly(){this._emitter.notify("onReadOnlyChange")}addListeners(t,e){return this._emitter.addListeners(t,e)}beginCommit(t){return this._beginCommit(t)}doBatch(t,e){const n=this;return this._transactions.doBatch(t,typeof e=="string"?{description:e}:e,r=>{n._processTransactionDone(r)})}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify("onClose"),this._closed=!0,this._transactionsRemoveListener?.())}}class rg extends Xn{_fromJSON(t){const e={};if(e.name=t?.name??null,!e.name)throw new Error(hh);e.comment=t?.comment??null,e.hidden=t?.hidden??!1,e.scope=t?.scope??null,this._updateState(e,{description:this._options.createDescription??"Create Item"+(e.name?` '${e.name}'`:"")})}_toJSON(){const t=this._getState(),e={name:t.name};return t.comment&&(e.comment=t.comment),t.hidden&&(e.hidden=t.hidden),t.hidden&&(e.hidden=t.hidden),e}getName(){return this._getState().name}setName(t,e){if(!t)throw new Error(hh);return this._updateState({name:t},{description:`Update Named '${t}'`,...e})}getComment(){return this._getState().comment}setComment(t,e){return this._updateState({comment:t},{description:"Set Comment",...e})}isHidden(){return this._getState().hidden}getScope(){return this._getState().scope}get isINamed(){return!0}}var ie;exports.ISort=void 0,(exports.ISort||(exports.ISort={})).SortOn={Value:"value",FillColor:"fillColor",FontColor:"fontColor",Icon:"icon"},exports.Sort=void 0,(ie=exports.Sort||(exports.Sort={})).CaseInsensitiveOptions={sensitivity:"base",numeric:!1},ie.CaseSensitiveOptions={sensitivity:"case",numeric:!1},ie.BooleanCollator=Object.freeze({type:A.ScalarType.Boolean,compare:(a,t,e)=>a===!0?1:-1}),ie.StringCollator=Object.freeze({type:A.ScalarType.String,compare:(a,t,e)=>a.localeCompare(t,"en",e),defaultOptions:ie.CaseInsensitiveOptions}),ie.NumberCollator=Object.freeze({type:A.ScalarType.Number,compare:(a,t,e)=>a<t?-1:1}),ie.RichDataCollator=Object.freeze({type:A.ScalarType.RichData,compare:(a,t,e)=>a.type.localeCompare(t.type,"en")}),ie.DefaultRangeOptions=Object.freeze({hasHeader:!1,reverse:!1,includeHidden:!1,collatorOptions:ie.CaseInsensitiveOptions,orientation:A.IRange.Orientation.Row,offset:0}),ie.DefaultCollators=Object.freeze([ie.BooleanCollator,ie.StringCollator,ie.NumberCollator,ie.RichDataCollator]);const Np=(a,t,e,n)=>{let r;for(;!(r=a.next()).done;)try{t(r.value[1],r.value[0],e)}catch(o){if(typeof a.throw!="function")throw o;a.throw(o)}typeof a.return=="function"&&a.return()},og=a=>{const t=a.next.bind(a),e={next:n=>{const r=t(n);return r.done?xt:{done:r.done,value:r.value[1]}},[Symbol.iterator]:()=>e,...a.return&&{return:a.return.bind(a)},...a.throw&&{throw:a.throw.bind(a)}};return e},Hr=a=>{if(!a||a.length===0)return null;let t=Number.MAX_SAFE_INTEGER,e=-1,n=null;return(r,o=!1)=>{if(r===t)return r;o!==!1&&(t=Number.MAX_SAFE_INTEGER),r!==t+(o?-1:1)&&(e=((i,l,c=!0)=>{if(!i||i.length===0)return null;let h,d=-1;return c?(d=w.CommonUtils.findEqualOrGreater(i,l,u=>u.max),h=i[d]):(d=w.CommonUtils.findEqualOrLesser(i,l,u=>u.min),h=i[d]),h?(c?l>h.max&&(d+=1,h=i[d]):l<h.min&&(d-=1,h=i[d]),h?d:-1):-1})(a,r,!o),n=a[e]);let s=r;if(o)for(;n&&s<=n.max;)s=n.min-1,n=a[--e];else for(;n&&s>=n.min;)s=n.max+1,n=a[++e];return t=s,s}},xt=Object.freeze({done:!0,value:void 0}),Wt=Object.freeze({next:()=>xt,[Symbol.iterator]:()=>Wt});var Er;Object.seal({done:!1,value:void 0}),(a=>{a.isList=e=>!!e&&!!e.isIList,a.isListLike=e=>!!e&&typeof e.length=="number"&&typeof e.at=="function",a.fromArray=(e,n,r,o)=>new t(e,n,r,o);class t{constructor(n,r,o,s){this.g=r,this.s=o;let i=n??s;if(o&&n&&!s){s=new Array(n.length);for(let l=0;l<n.length;l++){let c=n[l];s[l]=o(c,l)}i=s}this.a=i??w.CommonUtils.EmptyArray,r&&(this.at=l=>{l<0&&(l=i.length+l);const c=i[l];if(c!==void 0)return r(c,l)})}at(n){const r=this.a;return n<0&&(n=r.length+n),r[n]}fromArray(n){return new t(n,this.g,this.s)}get length(){return this.a.length}get isIList(){return!0}}a.ArrayList=t})(Er||(Er={}));class ve{constructor(t){if(this._s=null,this._r=null,this._l=0,t&&t.length>0){const e=Er.isList(t)&&!Array.isArray(t)?t:new Er.ArrayList(t);this._s=e,this._l=t.length}}at(t){const e=this._s;if(e)return e.at(t);const n=this._c;if(n&&n.min<=t&&n.max>=t){const i=n.value;return i.v.at(t-n.min+i.s)}const r=this._r,o=r[w.CommonUtils.findEqualOrGreater(r,t,i=>i.max)];if(!o)return;const s=o.value;return this._c=o,s.v.at(t-o.min+s.s)}toArray(t=Number.MAX_SAFE_INTEGER){const e=[],n=this.entries(kp);let r=n.next();for(;!r.done&&e.length<t;)e.push(r.value[1]),r=n.next();return e}entries(t){const e=this.length;if(e===0)return Wt;let n,r,o,s=!0,i=0,l=e-1;if(t){s=!t.reverse;const g=t.bounds;g&&(i=Math.max(g.min??i,i),l=Math.min(g.max??l,l)),n=t.reuseResult??null,r=t.processSkip}const c=s?1:-1;let h=(s?i:l)-c;const d=this._s;if(d)o=g=>{if(!(g<i||g>l))return d.at(g)};else{const g=this._r;let m=s?0:g.length-1,f=g[m];const p=(S,_)=>{const E=S===m?f:g[S];if(E&&_>=E.min&&_<=E.max)return m=S,f=E,E};o=S=>{if(S<i||S>l)return;let _=p(m,S);if(_||(_=p(m+c,S)),!_){const C=w.CommonUtils.findEqualOrGreater(g,S,I=>I.max);_=p(C,S)}if(!_)return;const E=_.value;return E.v.at(S-_.min+E.s)}}const u={next:g=>{let m,f=h+c;return g!==void 0&&(g<0&&(g=e+g),f=g),f<i||f>l||r&&(f=r(f,!s),f<i||f>l)?xt:(m=o(f),h=f,n?(lo.done=!1,lo.value[0]=f,lo.value[1]=m,lo):{done:!1,value:[h,m]})},[Symbol.iterator]:()=>u};return u}slice(t,e=void 0){const n=this._r??dh(this._s);if(!n)return ta;const r=this.length;if(t=Math.min(Math.max(0,t),r),(e=Math.min(Math.max(0,e??r),r))-t<=0)return ta;if(t<=0&&e>=r)return this;const o=t,s=e-1;let i=[],l=0;for(let h=0;h<n.length;h++){let d=n[h];const u=d.max;if(o===0&&u<=s){i.push(d);continue}const g=d.min;if(g>s){h=n.length;continue}if(u<o){l=u+1;continue}const m=Math.max(0,o-g),f=Math.max(0,u-s),p=f+m,S=d.value;i.push({min:g-l,max:u-p-l,value:{s:S.s+m,e:S.e-f,v:S.v}}),l+=p}const c=new ve;return c._r=i,c._l=s-o+1,c}concat(t){if(!t)return this;if(!Er.isListLike(t))throw new Error("Value must be IListLike");const e=this._l;if(e===0)return t.isIReadableList?t:t.length===0?ta:new ve(t);const n=t,r=t.length;if(r===0)return this;const o=this._r??dh(this._s),s=o.slice(0,o.length-1);let i=o[o.length-1],l=i?i.min:0,c=i?i.max:0,h=i?i.value:null,d=h?h.v:null,u=h?h.e-h.s:0;const g=p=>{const S=p.s,_=p.e,E=_-S;if(E+u<Op&&d&&d.fromArray){let y=p.v;const b=[],v=h.s,R=h.e;for(let T=v;T<=R;T++)b.push(d.at(T));for(let T=S;T<=_;T++)b.push(y.at(T));const x=d.fromArray(b);if(x)return y=x,u=y.length-1,h={s:0,e:u,v:y},i={min:l,max:l+u,value:h},c=l+u,void(d=y)}s.push(i);const C=c+1,I=C+E;i={min:C,max:I,value:p},l=C,c=I,h=i?i.value:null,d=h?h.v:null,u=h?h.e-h.s:0};if(t instanceof ve){const p=t._s;if(p)g({s:0,e:p.length-1,v:p});else{const S=t._r;for(let _=0;_<S.length;_++)g(S[_].value)}}else g({s:0,e:r-1,v:n});s.push(i);const m=new ve,f=e+r;return s.length===1&&s[0].min===0&&s[0].max===f-1?m._s=s[0].value.v:m._r=s,m._l=f,m}get length(){return this._l}[Symbol.iterator](){return og(this.entries())}get isIReadableList(){return!0}get isIList(){return!0}get[Symbol.toStringTag](){return"[ImmutableList]"}toString(){const t=this.length;if(t===0)return"";let e="";for(let n=0;n<t;n++){n>0&&(e+=",");const r=this.at(n);e+=r==null?"":String(r)}return e}}const dh=a=>[{min:0,max:a.length-1,value:{s:0,e:a.length-1,v:a}}],ta=new ve,lo=Object.seal({done:!1,value:[-1,null]}),kp=Object.freeze({reverse:!1,bounds:{min:0,max:Number.MAX_SAFE_INTEGER},skipRuns:null,reuseResult:lo}),Op=4;var Io;(a=>{const t=(n,r)=>{const o=n!==w.RangeOrientation.Row;return r?(s,i)=>{if(s===i)return 0;const l=s[0],c=s[1],h=i[1];if(c===h)return l?-1:1;const d=i[0];let u=0,g=0;if(o?(u=l?c.colEnd:c.colStart,g=d?h.colEnd:h.colStart):(u=l?c.rowEnd:c.rowStart,g=d?h.rowEnd:h.rowStart),u===g&&l!==d)return l?-1:1;if(u!==g)return g-u;let m=0,f=0;if(o?(m=l?c.colStart:c.colEnd,f=d?h.colStart:h.colEnd):(m=l?c.rowStart:c.rowEnd,f=d?h.rowStart:h.rowEnd),m===f&&l!==d)return l?-1:1;if(m!==f)return f-m;const p=s[2]??0;return(i[2]??0)-p}:(s,i)=>{if(s===i)return 0;const l=s[0],c=s[1],h=i[1];if(c===h)return l?-1:1;const d=i[0];let u=0,g=0;if(o?(u=l?c.colStart:c.colEnd,g=d?h.colStart:h.colEnd):(u=l?c.rowStart:c.rowEnd,g=d?h.rowStart:h.rowEnd),u===g&&l!==d)return l?-1:1;if(u!==g)return u-g;let m=0,f=0;return o?(m=l?c.colEnd:c.colStart,f=d?h.colEnd:h.colStart):(m=l?c.rowEnd:c.rowStart,f=d?h.rowEnd:h.rowStart),m===f&&l!==d?l?-1:1:m!==f?m-f:(s[2]??0)-(i[2]??0)}};class e{constructor(r,o){if(this._isColumn=!0,this._isByCell=!1,this._isReverse=!1,this._cursor=null,this._reuse=null,this._localReuse={done:!1,value:[null,null]},this._eventsMajor=null,this._eventMajorIndex=0,this._majorStart=0,this._majorEnd=0,this._eventMinorPeek=null,this._minorStart=0,this._minorEnd=0,!r||r.length===0)return;let s=w.RangeOrientation.Column,i=!1,l=!0,c=!1;o&&(s=o.orientation??w.RangeOrientation.Column,this._isColumn=l=s!==w.RangeOrientation.Row,this._isReverse=i=o.reverse??!1,this._isByCell=c=o.byCell??!1);const h=r.length,d=new Array(2*h);for(let f=0;f<h;f++){const p=r[f],S=[null,null];d[2*f]=[!0,p,f,S],d[2*f+1]=[!1,p,f,S]}d.sort(t(s,i)),this._eventsMajor=d;const u=d[0][1];this._majorStart=i?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,this._majorEnd=l?i?u.colEnd+1:u.colStart-1:i?u.rowEnd+1:u.rowStart-1,this._eventsMinor=new mt(null,t(l?w.RangeOrientation.Row:w.RangeOrientation.Column,i));const g=new Array(16);if(g.length=0,this._cursor={cell:null,range:{colStart:u.colStart,rowStart:u.rowStart,colEnd:u.colEnd,rowEnd:u.rowEnd},overlaps:g},c&&(this._cursor.cell={colIndex:i?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,rowIndex:i?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER}),o?.reuseIterator)throw new Error("Not implemented yet")}next(r){const o=this._isColumn,s=this._isReverse;if(r){if(!this._isByCell)throw new Error("nextCell is only supported when byCell is true");const T=w.CoordUtils.createCellComparator(o?w.RangeOrientation.Column:w.RangeOrientation.Row,s);let M;do{const F=this._cursor,N=F.cell,k=N.colIndex===Number.MAX_SAFE_INTEGER||N.rowIndex===Number.MAX_SAFE_INTEGER;if(!k&&T(N,r)>=0)throw new Error("nextCell must be after the current iteration cell");if(M=this.next(),M.done)return M;const U=M.value.cell;if(T(U,r)>=0)return M;const O=F.range;if(o){const D=r.colIndex===N.colIndex;N.rowIndex=s?D?Math.max(r.rowIndex,O.rowStart):O.rowStart:D?Math.min(r.rowIndex,O.rowEnd):O.rowEnd}else{const D=r.rowIndex===N.rowIndex;N.colIndex=s?D?Math.max(r.colIndex,O.colStart):O.colStart:D?Math.min(r.colIndex,O.colEnd):O.colEnd}if(!k&&T(N,r)>=0)return U.rowIndex=N.rowIndex,U.colIndex=N.colIndex,M}while(!M.done);return M}let i=this._cursor;if(!i)return xt;let l=this._reuse;const c=i.cell,h=i.range;if(l){l.done=!1;const T=l.value,M=T.cell;c?(M.colIndex=c.colIndex,M.rowIndex=c.rowIndex):M&&(M.colIndex=-1,M.rowIndex=-1);const F=T.range;F.colStart=h.colStart,F.rowStart=h.rowStart,F.colEnd=h.colEnd,F.rowEnd=h.rowEnd,T.overlaps=[...i.overlaps],this._cursor.overlaps=T.overlaps}else{const T={cell:null,range:{colStart:h.colStart,rowStart:h.rowStart,colEnd:h.colEnd,rowEnd:h.rowEnd},overlaps:[...i.overlaps]};c&&(T.cell={colIndex:c.colIndex,rowIndex:c.rowIndex}),this._cursor=T,l={done:!1,value:T}}const d=l.value,u=d.range,g=d.cell,m=this._isByCell,f=s?-1:1;let p=!1;if(m){const T=g.rowIndex,M=g.colIndex,F=o?T:M,N=o?s?u.rowStart:u.rowEnd:s?u.colStart:u.colEnd;if((s?F>=N:F<=N)&&(o?g.rowIndex=T+f:g.colIndex=M+f,s?F>N:F<N))return l;const k=o?g.colIndex:g.rowIndex,U=o?s?u.colStart:u.colEnd:s?u.rowStart:u.rowEnd;(s?k>U:k<U)&&(p=!0)}const S=d.overlaps;let _=this._majorStart,E=this._majorEnd,C=this._eventsMinor,I=this._minorStart,y=this._minorEnd,b=this._eventsMinorIterator,v=this._eventMinorPeek,R=v;for(;R&&!R.done;){const T=R.value[0];if(T[0])R=null;else{if(v=b.next(),v.done)S.length=0;else{const M=T[1];let F=S.length;if(F>1){const N=S.indexOf(M);N!==-1&&(S[N]=S[F-1])}if(S.length=F-1,F=S.length,F>0){const N=v.value[0],k=N[1],U=o?s?k.colStart:k.colEnd:s?k.rowStart:k.rowEnd;if(s?_>=U:_<=U){let O=!1;if(N[0]){const D=o?s?k.rowEnd:k.rowStart:s?k.colEnd:k.colStart;(s?D<y+f:D>y+f)&&(I=y+f,y=D-f,O=!0)}else{const D=o?s?k.rowStart:k.rowEnd:s?k.colStart:k.colEnd;(s?D<y:D>y)&&(I=y+f,y=D,O=!0)}if(O)return o?(u.rowStart=s?y:I,u.rowEnd=s?I:y):(u.colStart=s?y:I,u.colEnd=s?I:y),this._minorStart=I,this._minorEnd=y,this._eventMinorPeek=v,l}}}v.done&&(v=null),R=v}}if(!v)if(p){b=C.entries(void 0,this._localReuse),v=b.next(),this._eventsMinorIterator=b;const T=v.value[0][1],M=o?s?T.rowEnd:T.rowStart:s?T.colEnd:T.colStart;o?(g.colIndex=g.colIndex+f,g.rowIndex=M):(g.colIndex=M,g.rowIndex=g.rowIndex+f)}else{let T=this._eventMajorIndex;const M=this._eventsMajor,F=M.length;if(T>=F)return this._cursor=null,xt;let N=M[T],k=N[0],U=!1;for(;!k&&!U&&N;){const D=N[1],B=o?s?D.colStart:D.colEnd:s?D.rowStart:D.rowEnd;if(s?B<E:B>E){U=!0;continue}const P=N[3];C.delete(P[0]),C.delete(P[1]),T++,N=M[T],N&&(k=N[0])}let O=C.size>0?E+f:-1;for(U=!1;k&&!U&&N;){const D=N[1];if(O!==-1&&(o?s?D.colEnd:D.colStart:s?D.rowEnd:D.rowStart)!==O){U=!0;continue}const B=N[2],P=[!0,D,B],L=[!1,D,B],W=N[3];if(W[0]=P,W[1]=L,C.set(P,0),C.set(L,0),O===-1&&(O=o?s?D.colEnd:D.colStart:s?D.rowEnd:D.rowStart),T++,N=M[T],!N||(k=N[0],!k))continue;const H=N[1];(o?s?H.colEnd:H.colStart:s?H.rowEnd:H.rowStart)!==O&&(U=!0)}if(O!==-1&&(_=O),m&&(o?g.colIndex=_:g.rowIndex=_),this._eventMajorIndex=T,T>=F)return this._eventsMinorIterator=b,this._cursor=null,xt;if(N){const D=N[0],B=N[1],P=o?s?B.colEnd:B.colStart:s?B.rowEnd:B.rowStart,L=o?s?B.colStart:B.colEnd:s?B.rowStart:B.rowEnd;E=D?P-f:L}S.length=0,b=C.entries(void 0,this._localReuse),v=b.next(),this._eventsMinorIterator=b}let x=v;do{const T=x.value;x=null;const M=T[0],F=M[1];if(!M[0])continue;const N=o?s?F.rowEnd:F.rowStart:s?F.colEnd:F.colStart;I!==N&&(I=N),v=b.next();const k=v.value[0],U=k[0],O=k[1],D=o?s?O.rowEnd:O.rowStart:s?O.colEnd:O.colStart;if(U&&D===I)x=v;else{const B=o?s?F.rowStart:F.rowEnd:s?F.colStart:F.colEnd,P=o?s?O.rowStart:O.rowEnd:s?O.colStart:O.colEnd;y=(s?Math.max:Math.min)(B,U?D-f:P),m&&(o?g.rowIndex=I:g.colIndex=I)}S[S.length]=Object.freeze(F)}while(x);return o?(u.colStart=s?E:_,u.colEnd=s?_:E,u.rowStart=s?y:I,u.rowEnd=s?I:y):(u.rowStart=s?E:_,u.rowEnd=s?_:E,u.colStart=s?y:I,u.colEnd=s?I:y),this._eventMinorPeek=v,this._minorStart=I,this._minorEnd=y,this._majorStart=_,this._majorEnd=E,l}return(r){return null}throw(r){return null}[Symbol.iterator](){return this}}a.IteratorInstance=e})(Io||(Io={}));const _n=(a,t=w.Direction.Right,e=null)=>{if(!a)return a;if(a.length===0)return[];const n=t===w.Direction.Right,r=t===w.Direction.Left,o=t===w.Direction.Up,s=t===w.Direction.Down;return a.sort((i,l)=>{if(!i&&!l)return 0;if(i&&!l)return-1;if(l&&!i)return 1;const c=e?.(i,l)??0;return c!==0?c:n?i.rowStart===l.rowStart?i.colStart-l.colStart:i.rowStart-l.rowStart:s?i.colStart===l.colStart?i.rowStart-l.rowStart:i.colStart-l.colStart:r?i.rowStart===l.rowStart?l.colStart-i.colStart:l.rowStart-i.rowStart:o?i.colStart===l.colStart?l.rowStart-i.rowStart:l.colStart-i.colStart:0})},Bp=(a,t)=>{const e=t.min,n=a.min;if(t.max===Number.MAX_SAFE_INTEGER){const r=e,o=a.max;return n<=r&&r<=o?0:o<r?-1:n>r?1:(console.warn("coords are not inserted correctly",a,t),0)}return n-e};class Tn{constructor(t){this._runs=null,this._dataCoords=null,this._count=0,this._length=0,this._maxCoords=null,this._options=t,t?.maxCoords&&(this._maxCoords=Object.freeze({...t.maxCoords})),this._runs=new mt(void 0,Bp,t?.nodeSize),this._reuseRunsIterator={done:!1,value:[null,null]},this._reuseRunsEntry=[null,null]}_validateBounds(t=Number.MIN_SAFE_INTEGER,e=Number.MAX_SAFE_INTEGER){const n=this._maxCoords,r=n?.min??Number.MIN_SAFE_INTEGER,o=n?.max??Number.MAX_SAFE_INTEGER;if(t<r||e>o)throw new w.OutOfBoundsError}entries(t){let e,n,r=Number.MIN_SAFE_INTEGER,o=Number.MAX_SAFE_INTEGER,s=!0;t&&(t?.bounds&&(r=t.bounds?.min??Number.MIN_SAFE_INTEGER,o=t.bounds?.max??Number.MAX_SAFE_INTEGER,this._validateBounds(r,o)),s=!t.reverse,e=Dp(t.reuseResult),n=t.processSkip);const i=this._dataCoords;if(!i)return Wt;r=Math.max(i.min,r),o=Math.min(i.max,o);let l=null,c=null,h=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER;if(n){const p=n;n=(S,_)=>p(S+h,_)-h}const u=p=>{let S;p!==Number.MIN_SAFE_INTEGER&&p!==Number.MAX_SAFE_INTEGER&&(pe.min=p,S=pe),l=s?this._runs.entries(S,this._reuseRunsIterator):this._runs.entriesReversed(S,this._reuseRunsIterator),h=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,c=null},g=p=>{if(p!==void 0){if(p<h||p>d)return void(c=void 0);p-=h}if(!c)return;let S=c.next(p);if(!c)return;let _=S.value,E=_?.[1];return S.done?void(c=void 0):Lp(_[0]+h,E,e)},m=p=>{let S;return S=g(p),S||(S=(_=>{let E;do{if(_!==void 0&&u(_),!l)return;if(E=l.next(),E.done)return void(l=void 0);const C=E.value,I=C[0],y=C[1],b=I.min,v=I.max,R=Math.max(b,r)-b,x=Math.max(R,Math.min(v,o))-b;lr.bounds.min=R,lr.bounds.max=x,lr.reverse=!s,lr.processSkip=n,lr.reuseResult=e,h=b,d=v,c=y.entries(lr);const T=g(_);if(T)return T;_=void 0}while(!E.done);l=void 0})(p),S||xt)},f={next(p){if(p!==void 0&&(p<0||p>o))throw new w.OutOfBoundsError;return m(p)},return:p=>null,throw:p=>null};return u(s?r:o),f}runs(t){let e,n=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER,o=!0,s=!1;t&&(t.bounds&&(n=t.bounds?.min??Number.MIN_SAFE_INTEGER,r=t.bounds?.max??Number.MAX_SAFE_INTEGER,this._validateBounds(n,r),t.overflowRun&&(s=!0)),o=!t.reverse,e=Up(t.reuseResult));const i=this._dataCoords;if(!i)return Wt;n=Math.max(i.min,n),r=Math.min(i.max,r);let l=null;const c=d=>{let u;d!==Number.MIN_SAFE_INTEGER&&d!==Number.MAX_SAFE_INTEGER&&(pe.min=d,u=pe),l=o?this._runs.entries(u,this._reuseRunsIterator):this._runs.entriesReversed(u,this._reuseRunsIterator)},h={next(d){if(d!==void 0){if(d<n||d>r)throw new w.OutOfBoundsError;c(d)}if(!l)return xt;const u=l.next();if(u.done)return l=void 0,xt;const g=u.value,m=g[0];let f=m;const p=f.min,S=f.max;if(o&&p>r||!o&&S<n)return xt;let _=g[1];return s||(S>r&&(_=_.slice(0,_.length-(S-r)),f={...f},f.max=r),p<n&&(_=_.slice(n-p),f===m&&(f={...f}),f.min=n)),zp(f,_,e)},return:d=>null,throw:d=>null};return c(o?n:r),h}slice(t,e){const n=this._runs,r=n.minKey().min,o=n.maxKey().max;if(e===void 0&&(e=o+1),this._count===0||t<=r&&e-1>=o)return this.clone();const s=Math.max(r,t),i=Math.min(o,e-1),l=i-s,c=[];let h=0;na.bounds.min=s,na.bounds.max=i;const d=this.runs(na);let u=d.next();for(;!u.done;){const m=u.value;let f=m[0],p=m[1];f={min:f.min-s,max:f.max-s},f.min<0&&(p=p.slice(-f.min),f.min=0),f.max>=l&&(p=p.slice(0,p.length-(f.max-l)),f.max=l),h+=p.length,c.push([f,p]),u=d.next()}const g=new Tn(this._options);return g._runs.setPairs(c),g._updateCount(h),g}concat(t){const e=this.clone();if(!t||t.length===0)return e;const n=this._runs.nextLowerPair(void 0,this._reuseRunsEntry),r=n[0],o=n[1],s=r.max+1;let i=!1,l=0;const c=[];if(t.isISparseList){const h=t.runs();let d=h.next();for(;!d.done;){const u=d.value;let g=u[0];const m={min:g.min+s,max:g.max+s};let f=u[1];if(g.min===0){i=!0,l-=o.length,f=o.concat(f);const p=r.min;m.min=p,m.max=f.length-1+p}l+=f.length,c.push([m,f]),d=h.next()}}else{const h=t.length,d={min:r.min,max:h-1+s};t=o.concat(t),i=!0,l+=h,c.push([d,t])}return i&&e._runs.delete(r),e._runs.setPairs(c),e._updateCount(l),e}toArray(t=Number.MAX_SAFE_INTEGER,e=!0){if(this.length===0)return w.CommonUtils.EmptyArray;const n=e?0:Number.MIN_SAFE_INTEGER,r=Math.min(this._runs.maxKey().max,t);return ea.bounds.min=Number.MIN_SAFE_INTEGER,ea.bounds.max=r,Pp(this.entries(ea),e,r,n)}get isIReadableList(){return!0}get length(){return this._length}getCoords(){return this._dataCoords}clear(){this._runs.clear(),this._dataCoords=null,this._count=0,this._length=0}get isISparseList(){return!0}get isIList(){return!0}_updateCount(t){if(this._count+=t,this._lastRunsRead=void 0,this._lastListRead=void 0,this._count>0){const e=this._runs,n=Object.freeze({min:e.minKey().min,max:e.maxKey().max});this._dataCoords=n,this._length=n.max+1}else this._dataCoords=null,this._length=0}_update(t,e,n=null,r=void 0){const o=t,s=o+e-1;let i=0,l=s,c=s,h=null,d=null;pe.min=o,cr.min=s,(n||r)&&(pe.min-=1,cr.min+=1);const u=this._runs;let g=!1;if(u.editRange(pe,cr,!0,(m,f,p)=>{const S=m.min,_=m.max;return S<o&&_+1>=o&&(l=S,h=f),S-1<=s&&_>s&&(c=S,d=f),i-=_-S+1,g=!0,mt.DeleteValue}),n||r===void 0||(n=new ve([r])),n){let m=n;g=!0;let f=o;h&&(h=h.slice(0,o-l),m=h.concat(m),f=l),d&&(d=d.slice(s+1-c),m=m.concat(d)),i+=m.length,u.set({min:f,max:f+m.length-1},m)}else h&&(h=h.slice(0,o-l),i+=h.length,u.set({min:l,max:l+h.length-1},h)),d&&(d=d.slice(s+1-c),i+=d.length,u.set({min:s+1,max:s+d.length},d));return this._updateCount(i),g}setAt(t,e){if(t===void 0)throw new w.NullNotAllowedError;return this._validateBounds(t,t),this._update(t,1,null,e)}setRunAt(t,e){if(!e||e.length===0)return!1;if(t===void 0||!e.length)throw new w.NullNotAllowedError;const n=e.length;return this._validateBounds(t,t+n-1),this._update(t,n,e)}delete(t,e){return e===void 0&&(e=Math.max(this.getCoords().max-t+1,0)),!(e<=0)&&(this._validateBounds(t,t),this._update(t,e,null))}shift(t,e){if(e===0)return!1;let n=t,r=t;e<0&&(r=t-e-1),this._validateBounds(n,r);const o=this._runs,s=o.maxKey();if(e<0&&r>=s.max&&n<=o.minKey().min)return this._runs.clear(),this._dataCoords=null,this._count=0,this._length=0,!0;let i=0,l=n,c=r,h=null,d=null;pe.min=l,cr.min=s.min,e<0&&(pe.min-=1,cr.min+=1);let u=!1;const g=[];if(o.editRange(pe,cr,!0,(m,f,p)=>{const S=m.min,_=m.max;return S<n&&_+1>=n&&(l=S,h=f),(S<n||e<0)&&S-1<=r&&m.max>r&&(c=S,d=f),e>0&&S>=n||e<0&&S-1>r?g.push([{min:S+e,max:_+e},f]):i-=_-S+1,u=!0,mt.DeleteValue}),e>0){const m=h||d;m&&(h=m.slice(0,n-l),c=t+e,d=m.slice(n-l))}else h&&(h=h.slice(0,n-l)),d&&(d=d.slice(r+1-c),c=t),h&&d&&l+h.length===c&&(h=h.concat(d),d=null);return h&&h.length>0&&(i+=h.length,o.set({min:l,max:l+h.length-1},h)),d&&(i+=d.length,o.set({min:c,max:c+d.length-1},d)),g.length>0&&o.setPairs(g),this._updateCount(i),u}at(t){pe.min=t;const e=this._lastRunsRead;if(e){const s=e.min;if(s<=t&&e.max>=t)return this._lastListRead.at(t-s)}let n,r;const o=this._runs.getPairOrNextHigher(pe,Hp);if(o&&(n=o[0],r=o[1]),this._lastRunsRead=n,this._lastListRead=r,!(!n||t<n.min||t>n.max))return r.at(t-n.min)}[Symbol.iterator](){return og(this.entries())}clone(){const t=new Tn(this._options);return t._runs=this._runs.clone(),t._count=this._count,t._dataCoords=this._dataCoords,t._length=this._length,t}getMaxCoords(){return this._maxCoords||null}getCount(){return this._count}getRunsCount(){return this._runs.size}get[Symbol.toStringTag](){return"[SparseList]"}}Tn||(Tn={});const Dp=a=>typeof a!="boolean"?(a&&!a.value&&(a.value=[-1,null]),a):a===!0?Ml:void 0,Lp=(a,t,e)=>{const n=e??{done:!1,value:[-1,null]},r=n.value;return r[0]=a,r[1]=t,n},Up=a=>typeof a!="boolean"?(a&&!a.value&&(a.value=[null,null]),a):a===!0?Wp:void 0,zp=(a,t,e)=>{const n=e??{done:!1,value:[null,null]},r=n.value;return r[0]=a,r[1]=t,n},Pp=(a,t=!1,e=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER)=>{const r=[];let o=a.next(),s=Math.max(n,0)-1;for(;!o.done;){if(t){const i=o.value[0];for(let l=s;l<i-1;l++)r.push(void 0);s=i}r.push(o.value[1]),o=a.next()}if(t)for(let i=s;i<e;i++)r.push(void 0);return r},Wp=Object.seal({done:!1,value:[{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER},null]}),Ml=Object.seal({done:!1,value:[-1,null]}),lr={reverse:!1,bounds:{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER},processSkip:null,reuseResult:Ml},ea=Object.freeze({reverse:!1,bounds:{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER},processSkip:null,reuseResult:Ml}),pe={min:0,max:Number.MAX_SAFE_INTEGER},cr={min:0,max:Number.MAX_SAFE_INTEGER},Hp=[null,null],na={bounds:{min:0,max:0},overflowRun:!0};class Vp{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(t){return this.data.children.length===0?[]:this._all(this.data,t??[])}isEmpty(){return this.data.children.length===0}search(t,e){let n=this.data;if(n.children.length===0||!Yo(t,n))return w.CommonUtils.EmptyArray;const r=e??[],o=this.toBBox,s=[];for(;n;){const i=n.children,l=i.length,c=n.leaf;for(let h=0;h<l;h++){const d=i[h],u=c?o(d):d;Yo(t,u)&&(c?r.push(d):oa(t,u)?this._all(d,r):s.push(d))}n=s.pop()}return r}collides(t){let e=this.data;if(!Yo(t,e))return!1;const n=[];for(;e;){for(let r=0;r<e.children.length;r++){const o=e.children[r],s=e.leaf?this.toBBox(o):o;if(Yo(t,s)){if(e.leaf||oa(t,s))return!0;n.push(o)}}e=n.pop()}return!1}load(t){if(!t||!t.length)return this;const e=this._minEntries;if(t.length<e){for(let r=0;r<t.length;r++)this.insert(t[r]);return this}let n=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){const r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=fr([]),this}remove(t,e){if(!t)return this;let n=this.data;const r=this.toBBox(t),o=[],s=[];let i,l,c;for(;n||o.length;){if(n||(n=o.pop(),l=o[o.length-1],i=s.pop(),c=!0),n.leaf){const h=jp(t,n.children,e);if(h!==-1)return n.children.splice(h,1),o.push(n),this._condense(o),this}c||n.leaf||!oa(n,r)?l?(i++,n=l.children[i],c=!1):n=null:(o.push(n),s.push(i),i=0,l=n,n=n.children[0])}return this}toBBox(t){return t}compareMinX(t,e){return t.minX-e.minX}compareMinY(t,e){return t.minY-e.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,e){const n=[];for(;t;)t.leaf?e.push(...t.children):n.push(...t.children),t=n.pop();return e}_build(t,e,n,r){const o=n-e+1;let s,i=this._maxEntries;if(o<=i)return s=fr(t.slice(e,n+1)),hr(s,this.toBBox),s;r||(r=Math.ceil(Math.log(o)/Math.log(i)),i=Math.ceil(o/Math.pow(i,r-1))),s=fr([]),s.leaf=!1,s.height=r;const l=Math.ceil(o/i),c=l*Math.ceil(Math.sqrt(i));uh(t,e,n,c,this.compareMinX);for(let h=e;h<=n;h+=c){const d=Math.min(h+c-1,n);uh(t,h,d,l,this.compareMinY);for(let u=h;u<=d;u+=l){const g=Math.min(u+l-1,d);s.children.push(this._build(t,u,g,r-1))}}return hr(s,this.toBBox),s}_chooseSubtree(t,e,n,r){for(;r.push(e),!e.leaf&&r.length-1!==n;){let o,s=1/0,i=1/0;for(let l=0;l<e.children.length;l++){const c=e.children[l],h=ra(c),d=Jp(t,c)-h;d<i?(i=d,s=h<s?h:s,o=c):d===i&&h<s&&(s=h,o=c)}e=o||e.children[0]}return e}_insert(t,e,n=!1){const r=n?t:this.toBBox(t),o=[],s=this._chooseSubtree(r,this.data,e,o);for(s.children.push(t),ho(s,r);e>=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(r,o,e)}_split(t,e){const n=t[e],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);const s=this._chooseSplitIndex(n,o,r),i=fr(n.children.splice(s,n.children.length-s));i.height=n.height,i.leaf=n.leaf,hr(n,this.toBBox),hr(i,this.toBBox),e?t[e-1].children.push(i):this._splitRoot(n,i)}_splitRoot(t,e){this.data=fr([t,e]),this.data.height=t.height+1,this.data.leaf=!1,hr(this.data,this.toBBox)}_chooseSplitIndex(t,e,n){let r=-1,o=1/0,s=1/0;for(let i=e;i<=n-e;i++){const l=co(t,0,i,this.toBBox),c=co(t,i,n,this.toBBox),h=qp(l,c),d=ra(l)+ra(c);h<o?(o=h,r=i,s=d<s?d:s):h===o&&d<s&&(s=d,r=i)}return r||n-e}_chooseSplitAxis(t,e,n){const r=t.leaf?this.compareMinX:Gp,o=t.leaf?this.compareMinY:$p;this._allDistMargin(t,e,n,r)<this._allDistMargin(t,e,n,o)&&t.children.sort(r)}_allDistMargin(t,e,n,r){t.children.sort(r);const o=this.toBBox,s=co(t,0,e,o),i=co(t,n-e,n,o);let l=Ko(s)+Ko(i);for(let c=e;c<n-e;c++){const h=t.children[c];ho(s,t.leaf?o(h):h),l+=Ko(s)}for(let c=n-e-1;c>=e;c--){const h=t.children[c];ho(i,t.leaf?o(h):h),l+=Ko(i)}return l}_adjustParentBBoxes(t,e,n){for(let r=n;r>=0;r--)ho(e[r],t)}_condense(t){for(let e,n=t.length-1;n>=0;n--)t[n].children.length===0?n>0?(e=t[n-1].children,e.splice(e.indexOf(t[n]),1)):this.clear():hr(t[n],this.toBBox)}}function jp(a,t,e){if(!e)return t.indexOf(a);for(let n=0;n<t.length;n++)if(e(a,t[n]))return n;return-1}function hr(a,t){co(a,0,a.children.length,t,a)}function co(a,t,e,n,r=null){r||(r=fr(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let o=t;o<e;o++){const s=a.children[o];ho(r,a.leaf?n(s):s)}return r}function ho(a,t){return a.minX=Math.min(a.minX,t.minX),a.minY=Math.min(a.minY,t.minY),a.maxX=Math.max(a.maxX,t.maxX),a.maxY=Math.max(a.maxY,t.maxY),a}function Gp(a,t){return a.minX-t.minX}function $p(a,t){return a.minY-t.minY}function ra(a){return(a.maxX-a.minX)*(a.maxY-a.minY)}function Ko(a){return a.maxX-a.minX+(a.maxY-a.minY)}function Jp(a,t){return(Math.max(t.maxX,a.maxX)-Math.min(t.minX,a.minX))*(Math.max(t.maxY,a.maxY)-Math.min(t.minY,a.minY))}function qp(a,t){const e=Math.max(a.minX,t.minX),n=Math.max(a.minY,t.minY),r=Math.min(a.maxX,t.maxX),o=Math.min(a.maxY,t.maxY);return Math.max(0,r-e)*Math.max(0,o-n)}function oa(a,t){return a.minX<=t.minX&&a.minY<=t.minY&&t.maxX<=a.maxX&&t.maxY<=a.maxY}function Yo(a,t){return t.minX<=a.maxX&&t.minY<=a.maxY&&t.maxX>=a.minX&&t.maxY>=a.minY}function fr(a){return{children:a,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function uh(a,t,e,n,r){const o=[t,e];for(;o.length;){if((e=o.pop())-(t=o.pop())<=n)continue;const s=t+Math.ceil((e-t)/n/2)*n;sg(a,s,t,e,r),o.push(t,s,s,e)}}function sg(a,t,e,n,r){for(;n>e;){if(n-e>600){const l=n-e+1,c=t-e+1,h=Math.log(l),d=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*d*(l-d)/l)*(c-l/2<0?-1:1);sg(a,t,Math.max(e,Math.floor(t-c*d/l+u)),Math.min(n,Math.floor(t+(l-c)*d/l+u)),r)}const o=a[t];let s=e,i=n;for(Vr(a,e,t),r(a[n],o)>0&&Vr(a,e,n);s<i;){for(Vr(a,s,i),s++,i--;r(a[s],o)<0;)s++;for(;r(a[i],o)>0;)i--}r(a[e],o)===0?Vr(a,e,i):(i++,Vr(a,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function Vr(a,t,e){const n=a[t];a[t]=a[e],a[e]=n}class gh extends Vp{toBBox(t){return{minX:10*t.colStart,minY:10*t.rowStart,maxX:10*t.colEnd+5,maxY:10*t.rowEnd+5}}compareMinX(t,e){return t.colStart-e.colStart}compareMinY(t,e){return t.rowStart-e.rowStart}isEmpty(){return this.data.children.length===0}searchRange(t,e=!1,n){if(this.isEmpty())return w.CommonUtils.EmptyArray;const r=this.search(this.toBBox(t),n);return e?r.filter(o=>o.colStart>=t.colStart&&o.rowStart>=t.rowStart&&o.colEnd<=t.colEnd&&o.rowEnd<=t.rowEnd):r}}class It{constructor(t){this._shared=null,this._rTree=null,this._cloneKey=null,this._lastMiss={colStart:Number.MAX_SAFE_INTEGER,rowStart:0,colEnd:0,rowEnd:0},this._lastSingle=null,this._lastSingleResult=null,this._options=t,this._rTree=new gh(t?.maxNodeEntries??16)}visitRanges(t,e,n=null){let r=this.search(t);n&&(r=_n(r,n));const o=[],s=[];let i=null;const l=r.length;for(let c=0;!i&&c<l;c++){const h=r[c],d=e?.(h);d&&(d.delete===!0?s.push(h):d.update!==void 0&&(s.push(h),o.push(d.update)),d&&d.break===!0&&(i=d))}for(let c=0;c<s.length;c++)this.remove(s[c]);return this.load(o),i}getBoundingCoords(){const t=this._getReadTree().toJSON();return t&&t.children&&t.children.length!==0?{colStart:t.minX/10,rowStart:t.minY/10,colEnd:(t.maxX-5)/10,rowEnd:(t.maxY-5)/10}:null}size(){return this._getReadTree().all().length}isEmpty(){return this._getReadTree().isEmpty()}search(t,e=!1,n){const r=this._getReadTree();if(r.isEmpty())return w.CommonUtils.EmptyArray;let o;if(!e){if(o=this._lastMiss,o.colStart!==Number.MAX_SAFE_INTEGER&&w.CoordUtils.isRangeWithinRange(t,o))return w.CommonUtils.EmptyArray;if(this._lastSingle&&w.CoordUtils.isRangeWithinRange(t,o))return this._lastSingleResult}const s=r.searchRange(t,e,n);return e||(s.length===0?(o.colStart=t.colStart,o.rowStart=t.rowStart,o.colEnd=t.colEnd,o.rowEnd=t.rowEnd):s.length===1?(this._lastSingle=s[0],this._lastSingleResult=s):(this._lastMiss.colStart=Number.MAX_SAFE_INTEGER,this._lastSingle=null,this._lastSingleResult=null)),s}has(t){const e=this._getReadTree();return e.collides(e.toBBox(t))}all(t){return this._getReadTree().all(t)}shift(t){const e=t.range,n=t.direction,r=t.cloneIfUpdate??!1,o=t.coordValidator??null,s=t.onShift??null,i=n===w.Direction.Left||n===w.Direction.Right,l=i?w.RangeOrientation.Column:w.RangeOrientation.Row,c=n===w.Direction.Up||n===w.Direction.Left?-1:1,h=(i?e.colEnd-e.colStart+1:e.rowEnd-e.rowStart+1)*c,d=[],u=[];let g=null;const m=this.getBoundingCoords();if(!m)return this;const f=n===w.Direction.Up||n===w.Direction.Left?w.Direction.Right:w.Direction.Left,p=new Map,S=new Map,_=this._options?.updateEntryOptions,E=_?.isMergeOnShift??!1,C=_?.isSplitOnExpand??!1,I=_?.isTrailingEdge??!1,y=n===w.Direction.Left||n===w.Direction.Up,b=_?.getSplit??Ms,v=_?.getShifted,R=_?.onShifted,x=_?.onRemoved,T=_?.onMerged,M=_?.onUpdated,F=R?[]:null,N=x?[]:null,k=M?[]:null;this.visitRanges({colStart:e.colStart-(i?1:0),rowStart:e.rowStart-(i?0:1),colEnd:i?m.colEnd:e.colEnd,rowEnd:i?e.rowEnd:m.rowEnd},D=>{if((i?D.colEnd<e.colStart:D.rowEnd<e.rowStart)&&!I)return;const B=Qp(e,D,i?w.RangeOrientations.Column:w.RangeOrientations.Row),P=D.group;if(y&&!P&&e.colStart<=D.colStart&&e.rowStart<=D.rowStart&&e.colEnd>=D.colEnd&&e.rowEnd>=D.rowEnd){const z=ph(D,null,{after:null,before:D,intersect:e,isSplit:B,orientation:l,amount:h},v,b,s,!1);if(z===void 0)return;if(z===null)return g=w.CoordUtils.unionRanges(g,D),N&&N.push(D),void d.push(D)}let L={...D};n===w.Direction.Right?(e.colStart<=L.colStart&&(L.colStart+=h),L.colEnd+=h):n===w.Direction.Left?e.colStart<L.colStart?(L.colStart=Math.max(L.colStart+h,e.colStart),L.colEnd=Math.max(L.colEnd+h,L.colStart-1)):L.colEnd+=Math.max(h,e.colStart-L.colEnd-1):n===w.Direction.Down?(e.rowStart<=L.rowStart&&(L.rowStart+=h),L.rowEnd+=h):n===w.Direction.Up&&(e.rowStart<L.rowStart?(L.rowStart=Math.max(L.rowStart+h,e.rowStart),L.rowEnd=Math.max(L.rowEnd+h,e.rowStart-1)):L.rowEnd+=Math.max(h,e.rowStart-L.rowEnd-1)),(L.colEnd<L.colStart||L.rowEnd<L.rowStart)&&(L=null);const W=ph(D,L,{after:L,before:D,intersect:e,isSplit:B,orientation:l,amount:h},v,b,s,C&&h>0);if(W===void 0)return;const H=W===null?[L]:W,G=H.length;if(H[0]!==D||G!==1){if(o)for(let V=0;V<G;V++){const j=H[V];j&&o(j)}let z;P?(p.set(P.uuid,P),z=[],S.set(D.uuid,z)):d.push(D);for(let V=0;V<G;V++){const j=H[V];g=w.CoordUtils.unionRanges(g,j),P?z.push(j):(u.push(j),F&&F.push(j),k&&k.push(D))}}},f);let U=null;U=r&&(d.length>0||u.length>0||S.size>0)?this.clone():this,U._updateNodes(u,d),S.size>0&&U._updateGroupedEntries(p,S);let O=w.CommonUtils.EmptyArray;if(E&&m&&g){let D=!0;if(h>0&&(D=i?e.rowStart>m.rowStart||e.rowEnd<m.rowEnd:e.colStart>m.colStart||e.colEnd<m.colEnd),D){const B=mh(g,w.CoordUtils.unionRanges(m,g),i?0:1,i?1:0);T&&(O=U._mergeNodes(B,!1))}}return M&&k.length>0&&M(k),R&&F.length>0&&R(F),T&&O.length>0&&T(O),x&&N.length>0&&x(N),U}insertNonOverlapping(t,e){const n=e?.onIntersect??((E,C)=>({...E,value:C.value})),r=this.search(t),o=new Map,s=new Map,i=this._options?.updateEntryOptions,l=i?.onUpdated,c=i?.onRemoved,h=i?.onMerged,d=i?.getSplit,u=i?.getIntersect,g=i?.getUpdate;let m=null,f=null,p=null,S=(function(E,C,I){const y=I?.getIntersect??Kp,b=I?.getUpdate??Yp;if(E.length===0){if(y){const B=y({...C,value:null},C);C=B&&B.value!==null?{...B}:null}if(b){const B=b(C);B!==void 0&&(C=B)}return C?[C]:w.CommonUtils.EmptyArray}const v=I?.getSplit??Xp,R=(B,P,L=!0)=>{const W=P.search(B),H=W.length;for(let G=0;G<H;G++){const z=W[G];if(w.CoordUtils.isEqualRanges(z,B))continue;P?.remove(z);const V=Mr(z,B,v,L);for(let j=0;j<V.length;j++){const q=V[j];P.insert(q),R(q,P,!1)}}},x=new It;x.load(E),R(C,x);const T=new It;T.load([C]);const M=x.search(C);for(let B=0;B<M.length;B++)R(M[B],T);const F=(B,P,L)=>{let W=P.search(B);console.assert(W.length<=1,"intersecting incorrect ranges");const H=W[0]??{...B,value:null};if(w.CoordUtils.isEqualRanges(H,B)){let G=y(H,B);P.remove(H),L.insert(G)}else{P.remove(H);const G=Mr(H,B,v),z=G.length;for(let V=0;V<z;V++){const j=G[V];if(w.CoordUtils.isEqualRanges(j,B)){const q=y(j,B);L.insert(q)}else P.insert(j)}}},N=new It,k=T.all(),U=k.length;for(let B=0;B<U;B++)F(k[B],x,N);const O=(B,P)=>{const L=B.all(),W=L.length;for(let H=0;H<W;H++){let G=L[H];if(b){const z=b(G);z!==void 0&&(G=z)}G!==null&&G.value!==null&&P.push(G)}},D=x.all();return O(N,D),D})(r,t,{getSplit:(E,C,I,y)=>{let b;return d?(b=d(E,C,I,y),b):(b=Ms(E,C,I,y),b)},getIntersect:(E,C)=>{u&&(C=u(E,C));const I=n(E,C);return I===void 0||(I===null||I.value===null)&&E.value?.onRemove?.(E),I},getUpdate:E=>{const C=E?.group;if(C){o.set(C.uuid,C);let y=s.get(E.lastId??E.uuid);y||(y=[],s.set(E.lastId??E.uuid,y)),y.push(E.value===null?null:E)}let I=E;if(g&&(I=g(E)),I&&I.value!==null)l&&(m||(m=[]),m.push(I));else if(c&&!p){p=[];let y=I&&I.value===null?I:{...E,value:null};p.push(y)}return I}});const _=this.getBoundingCoords();if(o.size>0){const E=[],C=S.length;for(let I=0;I<C;I++){let y=S[I];y.group||E.push(y)}S=E}if(this._updateNodes(S,r,e?.onUpdates),o.size>0&&this._updateGroupedEntries(o,s),_&&!i?.noMerge&&!e?.noMerge){const E=mh(t,w.CoordUtils.unionRanges(_,t)),C=this.search(E);if(C.length>1){const I=i?.getMerged??fh;let y=C;y=ze(y,w.RangeOrientation.Column,1,I),y=ze(y,w.RangeOrientation.Row,1,I),C.length!==y.length&&(h&&y.length>0&&(f=y),this._updateNodes(y,C,e?.onUpdates))}}return m&&l(m),f&&h(f),p&&c(p),this}insertGroup(t,e){e=e??w.CommonUtils.uuidV4();const n=[],r=t.length;for(let o=0;o<r;o++){const s={...t[o],group:{entries:n,uuid:e,offset:o},uuid:w.CommonUtils.uuidV4()};n.push(s),t[o]=s}return this.load(t),this._options?.updateEntryOptions?.onGroupUpdate?.(t,e),this}createCopiedEntries(t,e,n,r,o){return Zp(this,t,e,n,r,o,this._options?.updateEntryOptions?.getSplit??Ms)}_updateGroupedEntries(t,e){const n=[],r=[],o=new Map,s=t.values();let i=s.next();for(;!i.done;){const l=i.value,c=l.entries,h=l.uuid,d=[];for(let u=0;u<c.length;u++){let g=c[u];n.push(g);let m=e.get(g.uuid);m===void 0&&(m=[{...g}]);for(let f=0;f<m.length;f++){let p=m[f];p!==null&&(p={...p,group:{offset:d.length,entries:d,uuid:h}},d.push(p),r.push(p))}}d.sort((u,g)=>u.group.offset-g.group.offset),o.set(h,d),i=s.next()}if(this._updateNodes(r,n),o){const l=this._options?.updateEntryOptions?.onGroupUpdate;if(l){const c=o.entries();let h=c.next();for(;!h.done;){const d=h.value[0];l(h.value[1],d),h=c.next()}}}}_copy(t,e){let n=t.rTree.all();const r=new gh(this._options?.maxNodeEntries);return e&&(n=n.concat(e)),n.length>0&&r.load(n),{refCount:1,rTree:r}}_updateNodes(t,e,n){if(!(t&&t.length!==0||e&&e.length!==0))return;const r=this._getWritableTree();if(e){const o=e.length;for(let s=0;s<o;s++)r.remove(e[s])}t.length>0&&r.load(t),n?.(t,e,this),this._options?.updateEntryOptions?.onUpdates?.(t,e,this)}_mergeNodes(t,e){const n=this.search(t,e);let r=w.CommonUtils.EmptyArray;if(n.length>1){const o=this._options?.updateEntryOptions.getMerged??fh;let s=n;s.length>1&&(s=ze(s,w.RangeOrientation.Column,1,o)),s.length>1&&(s=ze(s,w.RangeOrientation.Row,1,o)),n.length!==s.length&&(r=s,this._updateNodes(s,n))}return r}_getReadTree(){return this._shared?.rTree??this._rTree}_ensureWritable(t){const e=this._shared;if(!e)return;if(e.refCount--,e.refCount===0)return this._shared=null,void(t&&this._rTree.load(t));const n=this._copy(e,t);this._shared=null,this._rTree=n.rTree}_getWritableTree(t){return this._lastMiss.colStart=Number.MAX_SAFE_INTEGER,this._lastSingle=null,this._lastSingleResult=null,this._shared?(this._ensureWritable(t),this._rTree):(t&&this._rTree.load(t),this._rTree)}remove(t,e){return t&&this._getWritableTree().remove(t,e??w.CoordUtils.isEqualRanges),this}insert(t){return t&&this._getWritableTree().insert(t),this}load(t){return t&&t.length>0&&this._getWritableTree(t),this}clear(){return this.isEmpty()||this._getWritableTree().clear(),this}clone(t=null){if(t!==null&&this._cloneKey===t)return this;let e=this._shared;e||(e={rTree:this._rTree,refCount:1},this._shared=e),e.refCount++;const n=new It(this._options);return n._shared=e,n._cloneKey=t,n}fromJSON(t){return this._getWritableTree().fromJSON(t),this}}const mh=(a,t=a,e=1,n=1)=>({...a,colStart:Math.max(a.colStart-e,t.colStart),rowStart:Math.max(a.rowStart-n,t.rowStart),colEnd:Math.min(a.colEnd+e,t.colEnd),rowEnd:Math.min(a.rowEnd+n,t.rowEnd)});function Xp(a,t,e,n){return[{...t[0],value:a.value},{...t[0],value:a.value}]}function Kp(a,t){return{...a}}function Mr(a,t,e=null,n=!0){if(w.CoordUtils.isEqualRanges(a,t))return[{...a}];const r=w.CoordUtils.intersectRanges(a,t,t0);if(!r)return null;const o=[],s=a.uuid;let i=a;if(i.rowStart<r.rowStart){const l={...i,colStart:i.colStart,rowStart:i.rowStart,colEnd:i.colEnd,rowEnd:r.rowStart-1};s&&(n&&(l.lastId=s),l.uuid=w.CommonUtils.uuidV4());const c={...i,colStart:i.colStart,rowStart:r.rowStart,colEnd:i.colEnd,rowEnd:i.rowEnd};s&&(n&&(c.lastId=s),c.uuid=w.CommonUtils.uuidV4());const h=c.rowStart-l.rowStart;Se[0]=l,Se[1]=c;const d=e(i,Se,w.RangeOrientation.Row,h);d!==void 0&&(o.push(d[0]),i=d[1])}if(i.rowEnd>r.rowEnd){const l={...i,colStart:i.colStart,rowStart:i.rowStart,colEnd:i.colEnd,rowEnd:r.rowEnd};s&&(n&&(l.lastId=s),l.uuid=w.CommonUtils.uuidV4());const c={...i,colStart:i.colStart,rowStart:r.rowEnd+1,colEnd:i.colEnd,rowEnd:i.rowEnd};s&&(n&&(c.lastId=s),c.uuid=w.CommonUtils.uuidV4());const h=c.rowStart-l.rowStart;Se[0]=l,Se[1]=c;const d=e(i,Se,w.RangeOrientation.Row,h);d!==void 0&&(o.push(d[1]),i=d[0])}if(i.colStart<r.colStart){const l={...i,colStart:i.colStart,rowStart:i.rowStart,colEnd:r.colStart-1,rowEnd:i.rowEnd};s&&(n&&(l.lastId=s),l.uuid=w.CommonUtils.uuidV4());const c={...i,colStart:r.colStart,rowStart:i.rowStart,colEnd:i.colEnd,rowEnd:i.rowEnd};s&&(n&&(c.lastId=s),c.uuid=w.CommonUtils.uuidV4());const h=c.colStart-l.colStart;Se[0]=l,Se[1]=c;const d=e(i,Se,w.RangeOrientation.Column,h);d!==void 0&&(o.push(d[0]),i=d[1])}if(i.colEnd>r.colEnd){const l={...i,colStart:i.colStart,rowStart:i.rowStart,colEnd:r.colEnd,rowEnd:i.rowEnd};s&&(n&&(l.lastId=s),l.uuid=w.CommonUtils.uuidV4());const c={...i,colStart:r.colEnd+1,rowStart:i.rowStart,colEnd:i.colEnd,rowEnd:i.rowEnd};s&&(n&&(c.lastId=s),c.uuid=w.CommonUtils.uuidV4());const h=c.colStart-l.colStart;Se[0]=l,Se[1]=c;const d=e(i,Se,w.RangeOrientation.Column,h);d!==void 0&&(o.push(d[1]),i=d[0])}return i===a&&(i={...a}),o.push(i),o}function Yp(a){return a.value===null?null:a}function ze(a,t=w.RangeOrientation.Column,e=2,n,r){let o=[...a];if(e<=0||a.length<=1)return o;let s=t===w.RangeOrientation.Column,i=0,l=!1;do{const c=o.sort(w.CoordUtils.createRangeComparator(s?w.RangeOrientation.Row:w.RangeOrientation.Column));o=[],l=!1,o.push(c[0]);for(let h=1;h<c.length;h++){const d=c[h],u=o[o.length-1];let g=!1;if(g=s?u&&u.rowStart===d.rowStart&&u.rowEnd===d.rowEnd&&u.colEnd+1===d.colStart:u&&u.colStart===d.colStart&&u.colEnd===d.colEnd&&u.rowEnd+1===d.rowStart,g){let m={...u,colEnd:s?d.colEnd:u.colEnd,rowEnd:s?u.rowEnd:d.rowEnd};if(n){const f=r??[null,null];f[0]=u,f[1]=d,m=n(f,m,t)}if(m){o[o.length-1]=m,l=!0;continue}}o.push(d)}i++,s=!s}while(i<e&&l&&o.length>1);return o}const Za=(a,t=2,e=w.RangeOrientation.Row,n,r,o)=>{if(a.length<=1)return[...a];let s=[];const i=e===w.RangeOrientation.Column,l=new Io.IteratorInstance(a,{orientation:i?w.RangeOrientation.Row:w.RangeOrientation.Column});let c=l.next();for(;!c.done;){const h=c.value;c=l.next();const d=h.range;if(t>0){const u=s[s.length-1];let g=!1;if(g=i?u&&u.rowStart===d.rowStart&&u.rowEnd===d.rowEnd&&u.colEnd+1===d.colStart:u&&u.colStart===d.colStart&&u.colEnd===d.colEnd&&u.rowEnd+1===d.rowStart,g){let m={...u,colEnd:i?d.colEnd:u.colEnd,rowEnd:i?u.rowEnd:d.rowEnd};if(m){s[s.length-1]=m;continue}}}s.push(d)}return t>1&&(s=ze(s,i?w.RangeOrientation.Row:w.RangeOrientation.Column,t,n,o)),s};function Ms(a,t,e,n){const r=a.value;if(r?.getSplit){const o=r.getSplit(t,e,n);if(o===void 0)return;t[0].value=o[0],t[1].value=o[1]}return t}function fh(a,t,e){const n=a[0].value,r=a[1].value;if(n?.getMerged&&r){const o=n.getMerged(a[1].value,w.CoordUtils.sanitizeRange(t),e);if(o===void 0)return;t.value=o}return t}const Qp=(a,t,e=w.RangeOrientations.Both)=>{const n=s=>s?a.rowStart>t.rowStart&&a.rowStart<=t.rowEnd||a.rowEnd<t.rowEnd&&a.rowEnd>=t.rowStart:a.colStart>t.colStart&&a.colStart<=t.colEnd||a.colEnd<t.colEnd&&a.colEnd>=t.colStart;let r=e===w.RangeOrientations.Column,o=e===w.RangeOrientations.Row;return e===w.RangeOrientations.Both&&(r=o=!0),!(!r||!n(!0))||!(!o||!n(!1))};function ph(a,t,e,n,r,o,s){const i=e.orientation===w.RangeOrientation.Column,l=e.intersect,c=(h,d)=>{let u=h.value,g=null,m=d.after;if(s){let f=null,p=0,S=0;if(i&&l.colStart>h.colStart?(f={...h,colEnd:l.colStart-1},S=d.amount):!i&&l.rowStart>h.rowStart&&(f={...h,rowEnd:l.rowStart-1},p=d.amount),f){const _=Mr(a,f,r);if(_.length>1)for(let E=0;E<_.length;E++){let C=_[E];w.CoordUtils.isEqualRanges(C,f)?(g=g??[],g.push(C)):(m=C,u=C.value,d={...d,after:{...C,colStart:C.colStart+S,rowStart:C.rowStart+p,colEnd:C.colEnd+S,rowEnd:C.rowEnd+p,uuid:w.CommonUtils.uuidV4()},before:C,intersect:f,isSplit:!0})}}}if(n?m=n(d.before,d.after,d):u&&u.getShifted?m=u.getShifted(d):d.after&&(m={...d.after,value:h.value}),m!==void 0)return o&&(m!==d.after&&(d={...d,after:m}),o(d)),m=(f=>{if(!f){const p=a.value;return p.onRemove&&p.onRemove(w.CoordUtils.sanitizeRange(e.before)),null}return f})(m),m&&(g=g??[],g.push(m)),g};if(e.isSplit){let h;h=i?{...a,rowStart:Math.max(l.rowStart,e.before.rowStart),rowEnd:Math.min(l.rowEnd,e.before.rowEnd)}:{...a,colStart:Math.max(l.colStart,e.before.colStart),colEnd:Math.min(l.colEnd,e.before.colEnd)};const d=Mr(a,h,r),u=[];for(let g=0;g<d.length;g++){const m=d[g];if(w.CoordUtils.isEqualRanges(m,h)){let f=null;t&&(f=i?{colStart:t.colStart,rowStart:h.rowStart,colEnd:t.colEnd,rowEnd:h.rowEnd,value:m.value}:{colStart:h.colStart,rowStart:t.rowStart,colEnd:h.colEnd,rowEnd:t.rowEnd,value:m.value});const p=c(m,{...e,before:m,after:f});if(p)for(let S=0;S<p.length;S++)u.push(p[S])}else u.push(m)}return u}return c(a,e)}const Zp=(a,t,e,n,r,o,s)=>{const i=e.colEnd-e.colStart+1,l=e.rowEnd-e.rowStart+1,c=e.colStart-t.colStart,h=e.rowStart-t.rowStart,d=n?.transpose??!1;let u=1,g=1;d?(u=t.rowEnd-t.rowStart+1,g=t.colEnd-t.colStart+1):(u=t.colEnd-t.colStart+1,g=t.rowEnd-t.rowStart+1);const m=Math.ceil(i/u),f=Math.ceil(l/g),p=r??[],S=o??w.CommonUtils.EmptyArray,_=e.colEnd,E=e.rowEnd;return a.visitRanges(t,C=>{let I=C.value;if(!I.copyTo)return;let y=C;if(!w.CoordUtils.isRangeWithinRange(y,t)){const k=Mr(y,t,s);y=k[k.length-1]}I=y.value;let b=y.colEnd-y.colStart+1,v=y.rowEnd-y.rowStart+1,R=c+y.colStart,x=h+y.rowStart;if(d){R=y.rowStart-t.rowStart+e.colStart,x=y.colStart-t.colStart+e.rowStart;const k=b;b=v,v=k}let T=m,M=f;const F=i<=T*b,N=l<=M*v;if(F||N){const k=I?.canTile?.({colStart:R,rowStart:x,colEnd:Math.min(R+(F?i:b)-1,_),rowEnd:Math.min(x+(N?l:v)-1,E)},n);!F||k!==!0&&k!==w.RangeOrientation.Column||(b=i,T=1),!N||k!==!0&&k!==w.RangeOrientation.Row||(v=l,M=1)}for(let k=0;k<T;k++){const U=R+k*u;for(let O=0;O<M;O++){const D=x+O*g,B=Math.min(U+b-1,_),P=Math.min(D+v-1,E),L={colStart:U,rowStart:D,colEnd:B,rowEnd:P};if(U>B||D>P)continue;const W=I.copyTo(L,n);W&&p.push({...L,value:W})}}},w.Direction.Right),{inserts:p,removes:S}},Se=[null,null],t0={colStart:0,rowStart:0,colEnd:0,rowEnd:0},ge=(a=Number.MIN_SAFE_INTEGER,t=Number.MIN_SAFE_INTEGER,e=Number.MAX_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER,r,o,s)=>{if(o&&(a!==Number.MIN_SAFE_INTEGER&&a<o.colStart||t!==Number.MIN_SAFE_INTEGER&&t<o.rowStart||e!==Number.MAX_SAFE_INTEGER&&e>o.colEnd||n!==Number.MAX_SAFE_INTEGER&&n>o.rowEnd))throw new w.OutOfBoundsError;return s&&(a=Math.max(s.colStart,a),t=Math.max(s.rowStart,t),e=Math.min(s.colEnd,e),n=Math.min(s.rowEnd,n),e<a||n<t)?null:(jr.majorStart=r?a:t,jr.majorEnd=r?e:n,jr.minorStart=r?t:a,jr.minorEnd=r?n:e,jr)},bo=(a,t,e)=>{const n={colStart:0,rowStart:0,colEnd:0,rowEnd:0};return n.colStart=t?a.majorStart:a.minorStart,n.rowStart=t?a.minorStart:a.majorStart,n.colEnd=t?a.majorEnd:a.minorEnd,n.rowEnd=t?a.minorEnd:a.majorEnd,n},jr={majorStart:0,majorEnd:0,minorStart:0,minorEnd:0},Sh=(a,t)=>a[0]-t[0];class ig{constructor(t,e){this._isColumn=!0,this._isReverse=!1,this._skipMajors=!1,this._majorMin=Number.MAX_SAFE_INTEGER,this._majorMax=Number.MIN_SAFE_INTEGER,this._minorMin=Number.MAX_SAFE_INTEGER,this._minorMax=Number.MIN_SAFE_INTEGER,this._majorIndex=Number.MIN_SAFE_INTEGER,this._minorIndex=Number.MIN_SAFE_INTEGER,this._delegateMajorIndex=Number.MIN_SAFE_INTEGER,this._delegateMinorIndex=Number.MIN_SAFE_INTEGER,this._delegate=t;const n=(e.orientation??w.RangeOrientation.Column)===w.RangeOrientation.Column;this._isColumn=n,this._isReverse=e.reverse??!1,this._skipMajors=e.skipMajors??!1;const r=e.bounds,o=r.colStart,s=r.rowStart,i=r.colEnd,l=r.rowEnd;this._majorMin=n?o:s,this._majorMax=n?i:l,this._minorMin=n?s:o,this._minorMax=n?l:i,this._processMajorSkip=n?e.processColumnSkip:e.processRowSkip,this._processMinorSkip=n?e.processRowSkip:e.processColumnSkip;const c=t.next();this._delegateResult=c,this._initialize()}_initialize(){const t=this._isColumn,e=this._isReverse,n=e?-1:1;let r=e?this._majorMax:this._majorMin,o=(e?this._minorMax:this._minorMin)-n;const s=this._processMinorSkip;s&&(o=s(o,e));const i=this._processMajorSkip;i&&(r=i(r,e)),this._majorIndex=r,this._minorIndex=o;const l=this._delegateResult;if(l.done)this._delegateMajorIndex=this._majorMax,this._delegateMinorIndex=this._minorMax+n;else{const c=l.value[0];this._delegateMajorIndex=t?c.colIndex:c.rowIndex,this._delegateMinorIndex=t?c.rowIndex:c.colIndex}}next(t){t!==void 0&&(this._delegateResult=this._delegate.next(t),this._initialize());const e=this._isReverse,n=this._isColumn,r=this._majorMin,o=this._majorMax;let s=this._majorIndex,i=this._minorIndex;if(s>o||s<r)return xt;let l=this._delegateMajorIndex,c=this._delegateMinorIndex,h=this._delegateResult.done;if(s===l&&i===c){const g=this._delegate.next();if(this._delegateResult=g,h=g.done,h)l=e?r:o,l=e?this._minorMin:this._minorMax;else{const m=g.value[0];l=n?m.colIndex:m.rowIndex,c=n?m.rowIndex:m.colIndex}this._delegateMajorIndex=l,this._delegateMinorIndex=c}const d=e?-1:1;if(this._minorIndex=i+=d,s===l&&i===c&&!h)return this._delegateResult;const u=this._processMinorSkip;if(u&&(i=u(i,e)),i>this._minorMax||i<this._minorMin){s+=d;const g=this._processMajorSkip;g&&(s=g(s,e)),this._skipMajors&&(!e&&s<l||e&&s>l)&&(s=l),this._majorIndex=s,i=e?this._minorMax:this._minorMin}return this._minorIndex=i,s===l&&i===c&&!h?this._delegateResult:s>o||s<r?xt:{done:!1,value:[{colIndex:n?s:i,rowIndex:n?i:s}]}}return(t){return null}throw(t){return null}[Symbol.iterator](){return this}}class tl{constructor(t){this._isColumn=!0,this._majorSize=Number.MAX_SAFE_INTEGER,this._minorSize=Number.MAX_SAFE_INTEGER,this._majorMin=Number.MAX_SAFE_INTEGER,this._majorMax=Number.MIN_SAFE_INTEGER,this._minorMin=Number.MAX_SAFE_INTEGER,this._minorMax=Number.MIN_SAFE_INTEGER,this._majorIndex=Number.MAX_SAFE_INTEGER,this._minorIndex=Number.MAX_SAFE_INTEGER,this._minorOffset=0,this._minorRepeat=0,this._majorOffset=-1,this._majorRepeat=1,this._pattern=[];const e=t.delegate;this._delegate=e;const n=(t.orientation??w.RangeOrientation.Column)===w.RangeOrientation.Column;this._isColumn=n;const r=t.dims,o=t.bounds,s=o.colStart,i=o.rowStart,l=o.colEnd,c=o.rowEnd;if(this._majorSize=1+(n?l-s:c-i),this._minorSize=1+(n?c-i:l-s),this._majorMin=n?s:i,this._minorMin=n?i:s,this._majorMax=(n?s+r.major:i+r.major)-1,this._minorMax=(n?i+r.minor:s+r.minor)-1,this._majorSize>this._majorMax+1||this._minorSize>this._minorMax+1)throw new Error("The dimensions must be larger than the bounds.");const h=e.next();this._nextDelegateResult=h,this._initialize()}_initialize(){const t=this._isColumn,e=this._nextDelegateResult;if(e.done)this._nextResult=xt;else{const n=e.value[0],r=t?n.colIndex:n.rowIndex,o=t?n.rowIndex:n.colIndex,s=[[o,e.value[1]]];this._minorSpan=s,this._majorIndex=r,this._minorIndex=o,this._pattern.push([r,s]),this._nextResult=e}}next(t){if(t!==void 0)throw new w.NotImplementedError;const e=this._nextResult,n=this._isColumn;let r=this._majorIndex,o=this._nextDelegateResult;if(!o.done){const c=o.value[0];if((n?c.colIndex:c.rowIndex)===r&&(o=this._delegate.next(),this._nextDelegateResult=o,!o.done)){const h=o.value,d=h[0],u=n?d.colIndex:d.rowIndex,g=n?d.rowIndex:d.colIndex;if(u===r)return this._minorSpan.push([g,h[1]]),this._minorOffset=this._minorSpan.length-1,this._minorIndex=g,this._nextResult=o,e}}const s=this._minorMax;let i=this._minorIndex;if(i<s){let c=this._minorOffset;c++;const h=this._minorSpan;c>=h.length&&(c=0,this._minorRepeat++);const d=h[c],u=this._minorMin;if(i=u+(d[0]-u+this._minorSize*this._minorRepeat),this._minorIndex=i,this._minorOffset=c,i<=s){const g=[{colIndex:n?r:i,rowIndex:n?i:r},d[1]];return this._nextResult={done:!1,value:g},e}}if(!o.done){const c=o.value,h=c[0],d=n?h.colIndex:h.rowIndex,u=n?h.rowIndex:h.colIndex,g=[[u,c[1]]];return this._pattern.push([d,g]),this._majorIndex=d,this._minorSpan=g,this._minorOffset=0,this._minorIndex=u,this._minorRepeat=0,this._nextResult=o,e}const l=this._majorMax;if(r<l){let c=this._majorOffset;c++;const h=this._pattern;c>=h.length&&(c=0,this._majorRepeat++);const d=h[c],u=d[1],g=u[0],m=this._majorMin;if(r=m+(d[0]-m+this._majorSize*this._majorRepeat),this._majorIndex=r,this._majorOffset=c,r<=l){this._minorSpan=u,this._minorOffset=0,i=g[0],this._minorIndex=i,this._minorRepeat=0;const f=[{colIndex:n?r:i,rowIndex:n?i:r},g[1]];return this._nextResult={done:!1,value:f},e}}return e.done||(this._nextResult=xt),e}return(t){return null}throw(t){return null}[Symbol.iterator](){return this}}class _h{constructor(t,e,n){this._comparator=t?.comparator??w.CoordUtils.createCellComparator(t.orientation??w.RangeOrientation.Column,t.reverse??!1),this._iterator1=e,this._iterator2=n;const r=e.next();this._nextResult1=r;const o=n.next();this._nextResult2=o,t?.reuseResult&&(t.reuseResult===!0?this._reuseResult={done:!1,value:[void 0,void 0,void 0,void 0]}:this._reuseResult=t.reuseResult)}next(t){let e=this._nextResult1,n=this._nextResult2;if(e.done&&n.done)return e;if(e.done){const i=n;this._nextResult2=this._iterator2.next();const l=this._reuseResult??{done:!1,value:[void 0,void 0,void 0,void 0]};l.done=!1;const c=l.value,h=i.value;return c[2]=h[0],c[3]=h[1],c[0]=void 0,c[1]=void 0,l}if(n.done){const i=e;this._nextResult1=this._iterator1.next();const l=this._reuseResult??{done:!1,value:[void 0,void 0,void 0,void 0]};l.done=!1;const c=l.value,h=i.value;return c[0]=h[0],c[1]=h[1],c[2]=void 0,c[3]=void 0,l}let r=(0,this._comparator)(e.value[0],n.value[0]);if(r<0){const i=e;this._nextResult1=this._iterator1.next();const l=this._reuseResult??{done:!1,value:[void 0,void 0,void 0,void 0]};l.done=!1;const c=l.value,h=i.value;return c[0]=h[0],c[1]=h[1],c[2]=void 0,c[3]=void 0,l}if(r>0){const i=n;this._nextResult2=this._iterator2.next();const l=this._reuseResult??{done:!1,value:[void 0,void 0,void 0,void 0]};l.done=!1;const c=l.value,h=i.value;return c[2]=h[0],c[3]=h[1],c[0]=void 0,c[1]=void 0,l}this._nextResult1=this._iterator1.next(),this._nextResult2=this._iterator2.next();const o=this._reuseResult??{done:!1,value:[void 0,void 0,void 0,void 0]};o.done=!1;const s=o.value;return s[0]=e.value[0],s[1]=e.value[1],s[2]=n.value[0],s[3]=n.value[1],o}return(t){return null}throw(t){return null}[Symbol.iterator](){return this}}const wh="Must be an array of arrays.",Fs=(a,t,e)=>{const n=t.majorStart,r=t.minorStart,o=t.majorEnd,s=[],i=t.minorEnd-r+1,l=typeof a=="function";for(let c=n;c<=o;c++){const h=new Array(i);if(l)if(e){let u=r;for(let g=0;g<i;g++)h[g]=a(u++,c)}else{let u=r;for(let g=0;g<i;g++)h[g]=a(c,u++)}else h.fill(a,0,i);const d=[[r,h]];s.push([c,d])}return{tuples:s,bounds:t}},Zs=(a,t=!1,e=null,n=!1)=>{let r=0,o=0,s=Number.MAX_SAFE_INTEGER,i=Number.MAX_SAFE_INTEGER;if(e&&(r=e.majorStart??0,o=e.minorStart??0,s=(e.majorEnd??Number.MAX_SAFE_INTEGER)-r+1,i=(e.minorEnd??Number.MAX_SAFE_INTEGER)-o+1),t){const c=r;r=o,o=c;const h=s;s=i,i=h}if(!Array.isArray(a))throw new Error(wh);if(a.length>s)throw new w.OutOfBoundsError;const l=t?new exports.Tuple.TransposedBuilder:new exports.Tuple.Builder;for(let c=0;c<a.length;c++){let h=a[c];if(h!=null&&h.length!==0){if(!Array.isArray(h))throw new Error(wh);if(h.length>i)throw new w.OutOfBoundsError;if(n){let d=-1;for(let u=0;u<h.length;u++)h[u]==null?d!==-1&&(l.addValues(c+r,o+d,h.slice(d,u)),d=-1):d===-1&&(d=u);d!==-1&&l.addValues(c+r,o+d,h.slice(d))}else l.addValues(c+r,o,h)}}return l.build()},e0=(a,t,e)=>{if(a===t)return t},n0=(a,t,e)=>{if(a[0].value===a[1].value)return t},r0=[null,null],xn=(a=!0,t=e0)=>{const e=[];let n,r,o=Number.MIN_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER;return{append:(i,l,c)=>{let h=!0;if(c!==void 0){const g=r===void 0?c:t(r,c,a);g===void 0?h=!1:c=g}if(h&&l===s+1&&i===o)return a?n.rowEnd=l:n.colEnd=l,s=l,void(r=c);n&&e.push(n);const d=a?i:l,u=a?l:i;n={colStart:d,rowStart:u,colEnd:d,rowEnd:u,value:c},o=i,s=l,r=c},done:(i=!1)=>(n&&(e.push(n),n=null),i?ze(e,a?w.RangeOrientation.Column:w.RangeOrientation.Row,2,n0,r0):e)}};class He{constructor(t){this._major=null,this._dataCoords=null,this._count=0,this._isColumn=!0,this._lastMajor=Number.MIN_SAFE_INTEGER,this._lastMinorSpan=null,this._maxCoords=null,this._isShared=!1,this._options={orientation:w.RangeOrientation.Row,...t},this._isColumn=(t?.orientation??w.RangeOrientation.Column)===w.RangeOrientation.Column,t?.maxCoords&&(this._maxCoords=Object.freeze({colStart:Math.max(0,t.maxCoords.colStart??0),rowStart:Math.max(0,t.maxCoords.rowStart??0),colEnd:Math.min(Number.MAX_SAFE_INTEGER,t.maxCoords.colEnd??Number.MAX_SAFE_INTEGER),rowEnd:Math.min(Number.MAX_SAFE_INTEGER,t.maxCoords.rowEnd??Number.MAX_SAFE_INTEGER)})),this._createRun=t?.createRun??(e=>new ve(e)),this._optionsMinor={},this._major=new Tn({nodeSize:o0})}getRuns(t){const e=this._isColumn,n=this._maxCoords,r=this.getCoords();if(!r)return Wt;const o=t?.bounds;let s,i;if(o){const p=ge(o?.colStart??Number.MIN_SAFE_INTEGER,o?.rowStart??Number.MIN_SAFE_INTEGER,o?.colEnd??Number.MAX_SAFE_INTEGER,o?.rowEnd??Number.MAX_SAFE_INTEGER,e,n,r);if(!p)return Wt;s={bounds:{min:p.majorStart,max:p.majorEnd}},i={bounds:{min:p.minorStart,max:p.minorEnd}}}const l=this._major.entries(s);let c=l.next();if(c.done)return Wt;let h=c.value[0],d=c.value[1],u=d.runs(i),g=u.next();if(g.done)return Wt;let m=g.value[0].min,f=g.value[1];return{[Symbol.iterator](){return this},next(){if(c.done)return xt;const p={done:!1,value:[h,m,f]};for(g=u.next();g.done&&!c.done;)c=l.next(),c.done||(h=c.value[0],d=c.value[1],u=d.runs(i),g=u.next());return g.done||(m=g.value[0].min,f=g.value[1]),p}}}getOrientation(){return this._isColumn?w.RangeOrientation.Column:w.RangeOrientation.Row}entries(t){const e=this._isColumn;let n=e,r=!0;const o=this._maxCoords,s=this.getCoords(),i=ge(Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,e,o,s);if(!i)return Wt;let l,c,h,d=i.majorStart,u=i.majorEnd,g=i.minorStart,m=i.minorEnd,f=!1;if(t){t?.orientation&&(n=t?.orientation===w.RangeOrientation.Column,r=e===n);const y=t?.bounds;if(y){const b=ge(y.colStart,y.rowStart,y.colEnd,y.rowEnd,e,o,s);if(!b)return Wt;d=b.majorStart,u=b.majorEnd,g=b.minorStart,m=b.minorEnd}f=t.reverse??!1,h=(b=>typeof b!="boolean"?b:b===!0?{done:!1,value:[{colIndex:-1,rowIndex:-1},null]}:void 0)(t.reuseResult),l=e?t.processColumnSkip:t.processRowSkip,l&&(f?u=l(u,f):d=l(d,f)),c=e?t.processRowSkip:t.processColumnSkip,c&&(f?m=c(u,f):g=c(g,f))}if(!s)return Wt;r||d!==u||(r=!0),kt.bounds.min=d,kt.bounds.max=u,kt.reverse=f,kt.processSkip=l,kt.reuseResult=uo;let p=this._major.entries(kt),S=yh();const _=y=>{if(!y.nextActive)return;const b=x=>{const T=y.nextMinorIndex,M=y.nextMinorValue,F=y.nextActive;return x?(y.nextMinorIndex=x[0],y.nextMinorValue=x[1],y.nextActive=!0):(y.nextActive=!1,y.nextMinorIndex=f?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,y.nextMinorValue=null),y.value=M,y.minorIndex=T,y.active=F,mn[0]=y.majorIndex,mn[1]=T,mn[2]=M,mn},v=y.minorIterator;if(!v)return b();const R=v.next();return R.done&&(y.minorIterator=null),b(R.value)},E=y=>{if(p)for(;;){const b=p.next();if(b.done)return void(p=void 0);const v=b.value,R=v[1];R||console.warn("issue",R),y.majorIndex=v[0],y.active=!0,y.nextActive=!1,_e.bounds.min=g,_e.bounds.max=m,_e.reverse=f,_e.processSkip=c,_e.reuseResult=ag;const x=R.entries(_e),T=x.next();if(!T.done){const M=T.value;return y.nextMinorIndex=M[0],y.nextMinorValue=M[1],y.minorIterator=x,y.nextActive=!0,_(y)}}};let C=null;if(r)C=()=>{let y;return y=_(S),y||(y=E(S),y||void 0)};else{const y=f?m:g,b=f?g:m;let v,R=y,x=b,T=!0;const M=()=>{if(S.nextMajorCursor)return S=S.nextMajorCursor,S;S=v,(R<g||R>m||R===x)&&(S=null),R=x,x=b};C=()=>{for(;S;){let F=null;if(T){let N=v?yh():S;if(F=E(N),F){v?(N.prevMajorCursor=S,S.nextMajorCursor=N,S=N):v=S,x=f?Math.max(x,S.nextMinorIndex):Math.min(x,S.nextMinorIndex);const k=S.minorIndex;k!==y&&(x=f?Math.max(x,k):Math.min(x,k),F=null)}else T=!1,M()}else{const N=S.minorIndex,k=S.nextMinorIndex;N===R?(mn[0]=S.majorIndex,mn[1]=N,mn[2]=S.value,F=mn):!f&&N>R||f&&N<R?x=f?Math.max(x,N):Math.min(x,N):!f&&k>R||f&&k<R?x=f?Math.max(x,k):Math.min(x,k):F=_(S),S.active&&(x=f?Math.max(x,S.nextMinorIndex):Math.min(x,S.nextMinorIndex)),b===R||S.active||(S.prevMajorCursor?S.prevMajorCursor.nextMajorCursor=S.nextMajorCursor:v=S.nextMajorCursor,S.nextMajorCursor&&(S.nextMajorCursor.prevMajorCursor=S.prevMajorCursor)),M()}if(F)return F}}}return{next(y){if(y)throw new w.NotImplementedError("Iterator with next argument is not supported.");const b=C();return b?((R,x,T,M,F)=>{const N=F??{done:!1,value:[{colIndex:-1,rowIndex:-1},null]},k=N.value,U=k[0];return U.colIndex=M?R:x,U.rowIndex=M?x:R,k[1]=T,N})(b[0],b[1],b[2],e,h):xt},[Symbol.iterator](){return this},return:y=>null,throw:y=>null}}values(t){const e=this.entries(t);let n;return t?.reuseResult&&(n=t.reuseResult===!0?{done:!1,value:null}:t.reuseResult),{next(r){const o=e.next(r);return o.done?xt:n?(n.value=o.value[1],n):{done:!1,value:o.value[1]}},[Symbol.iterator](){return this},return:r=>null,throw:r=>null}}keys(t){const e=this.entries(t);let n;return t?.reuseResult&&(n=t.reuseResult===!0?{done:!1,value:null}:t.reuseResult),{next(r){const o=e.next(r);return o.done?xt:n?(n.value=o.value[0],n):{done:!1,value:o.value[0]}},[Symbol.iterator](){return this},return:r=>null,throw:r=>null}}_updateMajorSpan(t,e=!1){if(!t||t.length===0)return;e&&t.sort((l,c)=>l[0]-c[0]);const n=this._major,r=t[0];let o=r[0],s=o,i=[r[1]];for(let l=1;l<t.length;l++){const c=t[l],h=c[0],d=c[1];h===s+1?i.push(d):(n.setRunAt(o,new ve(i)),o=h,i=[d]),s=h}i.length>0&&n.setRunAt(o,new ve(i))}setValues(t){if(!t)throw new w.NullNotAllowedError;if(t.length===0)return this;const e=(t=t.sort(Sh))[0][0],n=t[t.length-1][0];let r=Number.MIN_SAFE_INTEGER,o=Number.MAX_SAFE_INTEGER;const s=this._isColumn,i=this._maxCoords;if(i){const I=s?i.colStart:i.rowStart,y=s?i.colEnd:i.rowEnd;if(e<I||n>y)throw new w.OutOfBoundsError;r=s?i.rowStart:i.colStart,o=s?i.rowEnd:i.colEnd}if(!t||t.length===0)return this;let l=Number.MAX_SAFE_INTEGER,c=Number.MIN_SAFE_INTEGER,h=0,d=e-1;const u=[],g=(I,y,b)=>{if(d===b)throw new exports.Tuple.OutOfOrderError(`Duplicate major Indices: {${b}}.`);d=b,y=y.sort(Sh),I=I.clone();let v=Number.MIN_SAFE_INTEGER;const R=y.length;for(let x=0;x<R;x++){const T=y[x],M=T[0],F=T[1],N=M+F.length-1;if(v>=M)throw new exports.Tuple.OutOfOrderError(`Overlapping minor Indices: {${b}, ${M}}.`);if(M<r||N>o)throw new w.OutOfBoundsError;if(F&&F.length>0){const k=I.getCount();I.setRunAt(M,m(F));const U=I.getCount();h+=U-k,l=Math.min(l,I.getCoords().min),c=Math.max(c,I.getCoords().max)}v=N}p++,u.push([b,I])},m=this._createRun,f=this._optionsMinor;let p=0;const S=()=>{const I=t[p],y=I[0],b=I[1],v=new Tn(f);g(v,b,y)},_=this._major;kt.bounds.min=e,kt.bounds.max=n,kt.reverse=!1,kt.processSkip=null,kt.reuseResult=uo;const E=_.entries(kt);let C=E.next();for(;!C.done;){const I=C.value,y=I[0];let b=t[p],v=b[0];if(v>y)C=E.next();else{for(;v<y;)S(),b=t[p],v=b[0];if(v===y){const R=b[1],x=I[1];g(x,R,y)}C=E.next()}}for(;t[p];)S();return this._updateMajorSpan(u),this._updateCountAndCoords(h,e,l,n,c),this}_updateCountAndCoords(t,e,n,r,o,s=!1){const i=this._count+t;if(this._count=i,this._lastMajor=Number.MIN_SAFE_INTEGER,!this._dataCoords)return;const l=this._isColumn;let c=l?e:n,h=l?n:e,d=l?r:o,u=l?o:r;if(i===0)this._dataCoords=null;else{const g=this._dataCoords;g&&(c=(s?Math.max:Math.min)(c,g.colStart),h=(s?Math.max:Math.min)(h,g.rowStart),d=(s?Math.min:Math.max)(d,g.colEnd),u=(s?Math.min:Math.max)(u,g.rowEnd));const m={colStart:c,rowStart:h,colEnd:d,rowEnd:u};this._dataCoords=m}}clear(){this._major.clear(),this._dataCoords=null,this._count=0}delete(t){const e=this._count;if(!t)return this.clear(),e>0;const n=this._isColumn,r=this._maxCoords,o=this.getCoords(),s=ge(t.colStart,t.rowStart,t.colEnd,t.rowEnd,n,r,o);if(!s||e===0)return!1;if(w.CoordUtils.isRangeWithinRange(o,t))return this.clear(),e>0;const i=s.majorStart,l=s.majorEnd,c=s.minorStart,h=s.minorEnd;let d=n?o.colStart:o.rowStart,u=n?o.colEnd:o.rowEnd;const g=n?o.rowStart:o.colStart,m=n?o.rowEnd:o.colEnd;let f=!1,p=0;const S=this._major;if(c<=g&&h>=m){kt.bounds.min=i,kt.bounds.max=l;const v=S.entries(kt);let R=v.next();for(;!R.done;)p-=R.value[1].getCount(),R=v.next();return S.delete(i,l-i+1),this._count+=p,this._dataCoords=null,p!==0}const _=[],E=this._isShared,C=[];kt.bounds.min=i,kt.bounds.max=l,_e.reverse=!1,_e.processSkip=null,_e.reuseResult=uo;const I=S.entries(kt);let y=I.next();for(;!y.done;){const v=y.value,R=v[0];let x=v[1];const T=x.getCoords(),M=T.min,F=T.max;if(c<=M&&h>=M||c<=F&&c<=F)if((M===g&&c<=g||F===m&&h>=m)&&(f=!0),M>=c&&F<=h)_.push(R),p-=x.getCount();else{const N=x.getCount();E&&(x=x.clone(),C.push([R,x])),x.delete(c,h-c+1),p+=x.getCount()-N}y=I.next()}this._updateMajorSpan(C);const b=_.length;if(b>0){const v=Xc(_,!0);for(let x=0;x<v.length;x++){const T=v[x];S.delete(T.min,T.max-T.min+1)}const R=S.getCoords();if(!R)return this.clear(),!0;d=R.min,u=R.max}return f?(this._count+=p,this._dataCoords=null,!0):b===0?(this._count+=p,p!==0):(this._updateCountAndCoords(p,d,g,u,m,!0),p!==0)}shift(t,e){if(!t||!e)throw new w.NullNotAllowedError;const n=this._isColumn,r=this._maxCoords,o=e===w.Direction.Right||e===w.Direction.Down,s=e===w.Direction.Left||e===w.Direction.Right,i=ge(t.colStart,t.rowStart,t.colEnd,t.rowEnd,n,r,t);if(!i)return!1;const l=i.majorStart,c=i.majorEnd,h=i.minorStart,d=i.minorEnd,u=this.getCoords();if(!u)return!1;const g=n?u.colStart:u.rowStart,m=n?u.colEnd:u.rowEnd,f=n?u.rowStart:u.colStart,p=n?u.rowEnd:u.colEnd,S=h<=f&&d>=p,_=n===s;if((_&&S||!_&&l<=g&&c>=m)&&!ge(u.colStart,u.rowStart,u.colEnd+(o&&s?t.colEnd-t.colStart+1:0),u.rowEnd+(o&&!s?t.rowEnd-t.rowStart+1:0),n,r)||_&&l>m||!_&&h>p)return!1;let E=_?c-l+1:d-h+1;if(!o&&(E*=-1,w.CoordUtils.isRangeWithinRange(u,t)))return this.clear(),!0;let C=0;const I=this._major,y=[];if(kt.bounds.min=l,kt.bounds.max=_?Number.MAX_SAFE_INTEGER:c,_e.reverse=!o,_e.processSkip=null,_e.reuseResult=uo,_&&S){if(!o){kt.bounds.max=c;const L=I.entries(kt);let W=L.next();for(;!W.done;)C-=W.value[1].getCount(),W=L.next()}I.shift(l,E);const P=I.getCoords();return this._dataCoords=null,this._updateCountAndCoords(C,P.min,f,P.max,p),!0}let b=n?u.colStart:u.rowStart,v=n?u.colEnd:u.rowEnd,R=n?u.rowStart:u.colStart,x=n?u.rowEnd:u.colEnd;o||(R=Number.MAX_SAFE_INTEGER,x=Number.MIN_SAFE_INTEGER);let T=Number.MAX_SAFE_INTEGER;r&&(T=s?r.colEnd:r.rowEnd);const M=new Set,F=_?new Map:null,N=[],k=I.entries(kt),U={bounds:{min:h,max:d}};let O=k.next();for(;!O.done;){const P=O.value,L=P[0],W=P[1].clone(),H=W.getCoords(),G=H.min,z=H.max;if(_&&F.set(L,W),h<=z){const V=W.getCount();_?(L>=l-E&&Np(W.runs(U),(q,J)=>{const X=J.min,Q=J.max;let $=q;X-1<=d&&Q>d&&($=$.slice(0,d+1-X)),X<h&&Q+1>=h&&($=$.slice(h-X)),N.push({majorIndex:L+E,minorIndex:Math.max(X,h),run:$})}),W.delete(h,d-h+1)):W.shift(h,E);const j=W.getCount();if(j===0)M.add(L),R=Math.min(R,z),x=Math.max(x,G);else{const q=W.getCoords();if(R=Math.min(R,q.min),x=Math.max(x,q.max),x>T)throw new w.OutOfBoundsError}C+=j-V,y.push([L,W])}O=k.next()}const D=this._optionsMinor;let B=!1;for(let P=0;P<N.length;P++){const L=N[P],W=L.majorIndex,H=L.run;let G=F.get(W);G||(G=new Tn(D),F.set(W,G),y.push([W,G]),B=!0),G.setRunAt(L.minorIndex,H),C+=H.length,b=Math.min(b,W),v=Math.max(v,W),M&&M.delete(W)}if(this._updateMajorSpan(y,B),M&&M.size>0){const P=Array.from(M.values()),L=Xc(P);for(let H=0;H<L.length;H++){const G=L[H];I.delete(G.min,G.max-G.min+1)}const W=I.getCoords();if(!W)return this.clear(),!0;b=W.min,v=W.max}if(x!==p||R!==f)return this._count+=C,this._dataCoords=null,!0;{const P=this._count+C;this._count=P,this._dataCoords=P===0?null:Object.freeze({colStart:n?b:R,rowStart:n?R:b,colEnd:n?v:x,rowEnd:n?x:v})}return C!==0||!w.CoordUtils.isEqualRanges(u,this.getCoords())}getCount(){return this._count}getValueAt(t,e){const n=this._isColumn,r=n?e:t,o=n?t:e,s=this._lastMajor;let i;if(s===r&&s!==Number.MIN_SAFE_INTEGER?i=this._lastMinorSpan:(i=this._major.at(r),this._lastMajor=r,this._lastMinorSpan=i),!!i)return i.at(o)}setValueAt(t,e,n){const r=this._isColumn,o=[r?e:t,[[r?t:e,[n]]]];this.setValues([o])}copyTo(t,e,n){if(this.getCount()===0)return;const r=this.getOrientation(),o=t.getOrientation(),s=this.getRuns({bounds:n});let i=s.next();const l=w.CoordUtils.cellToRange(e);l.colEnd=n.colEnd-n.colStart+e.colIndex,l.rowEnd=n.rowEnd-n.rowStart+e.rowIndex;const c=this._isColumn,h=this._maxCoords,d=this.getCoords();let u,g=ge(n.colStart??Number.MIN_SAFE_INTEGER,n.rowStart??Number.MIN_SAFE_INTEGER,n.colEnd??Number.MAX_SAFE_INTEGER,n.rowEnd??Number.MAX_SAFE_INTEGER,c,h,d);g={...g};const m=o!==w.RangeOrientation.Row,f=t.getMaxCoords();u=ge(l?.colStart??Number.MIN_SAFE_INTEGER,l?.rowStart??Number.MIN_SAFE_INTEGER,l?.colEnd??Number.MAX_SAFE_INTEGER,l?.rowEnd??Number.MAX_SAFE_INTEGER,m,f),u={...u};const p=u.majorStart-g.majorStart,S=u.minorStart-g.minorStart,_=r===o?new exports.Tuple.Builder:new exports.Tuple.TransposedBuilder;for(;!i.done;){const C=i.value[0];let I=i.value[1],y=i.value[2];I+y.length>g.minorEnd&&(y=y.slice(0,g.minorEnd-I+1)),I<g.minorStart&&(y=y.slice(g.minorStart-I),I=g.minorStart),_.addValues(C+p,I+S,y),i=s.next()}const E=_.build();t.delete(l),E&&t.setValues(E.tuples)}getCoords(){if(this._dataCoords)return this._dataCoords;if(this._major.getCount()===0)return null;let t=Number.MAX_SAFE_INTEGER,e=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER,r=Number.MIN_SAFE_INTEGER;const o=this._major.entries();let s=o.next();for(;!s.done;){const c=s.value,h=c[0];t=Math.min(h,t),e=Math.max(h,e);const d=c[1].getCoords();n=Math.min(d.min,n),r=Math.max(d.max,r),s=o.next()}const i=this._isColumn,l=Object.freeze({colStart:i?t:n,rowStart:i?n:t,colEnd:i?e:r,rowEnd:i?r:e});return this._dataCoords=l,l}clone(t){this._isShared=!0;const e=new He(this._options);return e._isShared=!0,e._major=this._major.clone(),e._dataCoords=this._dataCoords,e._count=this._count,e}cloneEmpty(t){return new He(this._options)}getMaxCoords(){return this._maxCoords||null}get[Symbol.toStringTag](){let t="";const e=this.getCoords();if(e){const n=e.colEnd-e.colStart+1,r=e.rowEnd-e.rowStart+1;t=`${this.getCount()}-${this._isColumn?n:r}x${this._isColumn?r:n}`}return`[SparseGrid:${t}]`}}He||(He={});const o0=12;Object.seal({done:!1,value:null});const mn=[-1,-1,null],ag=Object.seal({done:!1,value:[-1,null]}),uo=Object.seal({done:!1,value:[-1,null]}),_e={bounds:{min:-1,max:-1},reverse:!1,processSkip:null,reuseResult:ag},kt={bounds:{min:-1,max:-1},reverse:!1,processSkip:null,reuseResult:uo},yh=()=>({majorIndex:-1,minorIndex:-1,value:null,active:!1,nextMinorIndex:-1,nextActive:!1,nextMinorValue:null,minorIterator:null,nextMajorCursor:null,prevMajorCursor:null});class ti{constructor(t){if(this._l=0,this._at=null,this._dt=Ch.Undefined,this._a32=null,this._a64=null,this._cv=null,this._vt=null,this._vi32=null,this._vi64=null,this._vf32=null,this._vf64=null,!t)throw new Error("options is required");const e=t.length;if(this._l=e,this._dt=t.type,this._cv=t.getCoercedValue??null,e>0){t.types&&(this._at=t.types,this._vt=new Uint8Array(this._at));const n=t.values32??null;n&&(this._a32=n,this._vi32=new Int32Array(n),this._vf32=new Float32Array(n));const r=t.values64??null;if(r&&(this._a64=r,this._vf64=new Float64Array(r),this._vi64=new BigInt64Array(r)),!n&&!r)throw new Error("values32 or values64 is required")}}getConstructorOptions(){return{length:this._l,type:this._dt,types:this._at,values32:this._a32,values64:this._a64,getCoercedValue:this._cv}}at(t){if(t>>>0>=this._l)return;const e=this._vt,n=e&&e[t]||this._dt;let r,o=!1;switch(this._vi32?r=this._vi32[t]:(o=!0,r=Number(this._vi64[t])),n){case Ns:return o?Number(r):r;case wo:return o?this._vf64[t]:this._vf32[t];case ks:return!!r;case Os:case Bs:return this._cv(n,o?Number(r):r);case go:return this._vi64[o?t:r];case mo:return this._vf64[o?t:r];case hg:return Number.NaN;case dg:return Number.MAX_SAFE_INTEGER;case ug:return Number.MIN_SAFE_INTEGER;case lg:return 1/0;case cg:return-1/0;case gg:return null;case Fl:case Ds:return}return this._cv(n,o?Number(r):r)}toArray(t){const e=[],n=Math.max(t,this._l);for(let r=0;r<n;r++)e.push(this.at(r));return e}get length(){return this._l}get[Symbol.toStringTag](){return"[MixTypedArrayList]"}toString(){const t=this._a32,e=this._a64;let n="";return t&&!e?n="32":e&&!t&&(n="64"),`{${n}${this._at?"":":SINGLE_TYPE"}}:${this._l}}`}static _createArrayBuffer(t){try{return new SharedArrayBuffer(t)}catch{}return new ArrayBuffer(t)}static fromArray(t,e,n,r,o=s0){const s=t.length;if(s===0)return new ti({type:Ch.Undefined,length:s,getCoercedValue:n});let i=this._createArrayBuffer(s*Int8Array.BYTES_PER_ELEMENT),l=new Uint8Array(i),c=0,h=!1,d=Eh(t[0],r);for(let y=0;y<s;y++){const b=t[y],v=Eh(b,r);v!==mo&&v!==go||c++,d!==v&&(l[y]=v,h=!0)}h||(l=null,i=null);let u,g,m,f,p,S,_,E,C=!1;c/s>o&&(C=!0,c=s),c!==0&&(m=this._createArrayBuffer(c*BigInt64Array.BYTES_PER_ELEMENT),f=new BigInt64Array(m),p=new Float64Array(m)),C?(u=f,g=p):(S=this._createArrayBuffer(s*Int32Array.BYTES_PER_ELEMENT),_=new Int32Array(S),E=new Float32Array(S),u=_,g=E);let I=d;if(C)for(let y=0;y<s;y++){const b=t[y];switch(l&&(I=l[y]||d),I){case Ns:u[y]=BigInt(b);break;case ks:u[y]=BigInt(b?1:0);break;case wo:g[y]=b;break;case go:u[y]=b;break;case mo:g[y]=b;break;case Os:case Bs:u[y]=BigInt(e?.(I,b)??0);break;default:I>127&&I<255&&(u[y]=BigInt(e?.(I,b)??0))}}else{let y=0;for(let b=0;b<s;b++){const v=t[b];switch(l&&(I=l[b]||d),I){case Ns:u[b]=v;break;case ks:u[b]=v?1:0;break;case wo:g[b]=v;break;case go:_[b]=y,f[y]=v,y++;break;case mo:_[b]=y,p[y]=v,y++;break;case Os:case Bs:u[b]=e?.(I,v)??0;break;default:I>127&&I<255&&(u[b]=e?.(I,v)??0)}}}return new ti({length:s,types:h?i:null,type:d,values32:S,values64:m,getCoercedValue:n})}}const s0=.1,Ns=1,wo=2,ks=3,go=4,mo=5,Os=6,Bs=7,lg=8,cg=9,hg=10,dg=11,ug=12,gg=13,Fl=14,Ds=127,Ch={Undefined:Fl},Eh=(a,t)=>{switch(typeof a){case"number":const e=a;return Number.isNaN(e)?hg:e===1/0?lg:e===-1/0?cg:Object.is(e,-0)?wo:e===Number.MAX_SAFE_INTEGER?dg:e===Number.MIN_SAFE_INTEGER?ug:Number.isInteger(e)&&e<=2147483647&&e>=-2147483648?Ns:Math.fround(e)===e?wo:mo;case"string":return Os;case"boolean":return ks;case"object":if(a===null)return gg;if(a instanceof Error)return Bs;if(!t)return Ds;const n=t(a);if(n<128||n>255)throw new Error("Custom type must be between 128 and 255");return n;case"bigint":return go;case"undefined":return Fl;case"symbol":case"function":return Ds}return Ds},fo=a=>{if(!a||a.length<=1)return!1;if(a.length===2)return w.CoordUtils.isRangesIntersect(a[0],a[1]);const t=new It;t.load(a);const e=a.length;for(let n=0;n<e;n++)if(t.search(a[n]).length>1)return!0;return!1},el=(a,t,e)=>{const n=[];if(w.CoordUtils.isRangesIntersect(a,t)){const r=w.CommonUtils.subtractRect({top:a.rowStart,left:a.colStart,bottom:a.rowEnd+1,right:a.colEnd+1},{top:t.rowStart,left:t.colStart,bottom:t.rowEnd+1,right:t.colEnd+1},e===A.IRange.Orientation.Column),o=r.length;for(let s=0;s<o;s++){const i={colStart:r[s].left,rowStart:r[s].top,colEnd:r[s].right-1,rowEnd:r[s].bottom-1};n.push(i)}}else n.push(a);return n},Ih=(a,t,e)=>{if(!t||!a?.[0])return;const n=a.length;for(let r=0;r<n;r++){const o=a[r];w.CoordUtils.intersectRanges(o,t)&&e(o,!w.CoordUtils.isRangeWithinRange(o,t),r)}},bh=(a,t)=>{const e=a.colStart,n=a.rowStart,r=t.colStart,o=t.rowStart;return(s,i)=>{const l=s.colIndex-e,c=i.colIndex-r;return l===c?s.rowIndex-n-(i.rowIndex-o):l-c}},vh=(a,t)=>{const e=a.colStart,n=a.rowStart,r=t.colStart,o=t.rowStart;return(s,i)=>{const l=s.rowIndex-n,c=i.rowIndex-o;return l===c?s.colIndex-e-(i.colIndex-r):l-c}},nl=(a,t,e=!1,n=!1)=>{t||(t=a);let r=t.colEnd-t.colStart+1,o=t.rowEnd-t.rowStart+1;if(n){const c=r;r=o,o=c}const s={colStart:a.colStart,rowStart:a.rowStart,colEnd:a.colStart+r-1,rowEnd:a.rowStart+o-1};if(e){let c=a.colStart,h=a.rowStart;return w.CoordUtils.isSingleCell(a)?(c+=r-1,h+=o-1):(c+=a.colEnd-a.colStart,h+=a.rowEnd-a.rowStart),s.colEnd=n?h:c,s.rowEnd=n?c:h,s}const i=a.colEnd-a.colStart+1;if(i%r!==0)return s;const l=a.rowEnd-a.rowStart+1;return l%o!==0||(s.colEnd=a.colStart+i-1,s.rowEnd=a.rowStart+l-1),s};class sa{constructor(t,e){this._l=0,t&&e>0&&(this._u=t,this._l=e)}at(t){if(t>this._l||t<0||!this._u)return;const e=Math.floor(t%this._u.length);return this._u.at(e)}toArray(t){const e=[],n=this._u,r=n.length;for(let o=0;o<t;o++){const s=Math.floor(o%r);e.push(n.at(s))}return e}get length(){return this._l}get[Symbol.toStringTag](){return"[RepeatingList]"}get isIList(){return!0}}class Zt{constructor(t,e,n=null,r=!1){this._isLiteral=!1,this._values=t,this._coords=e,this._type=n,this._isLiteral=r}getValueAt(t,e,n){const r=this._coords;if(!r)return;let o=this._values.getValueAt(t+r.rowStart,e+r.colStart)??null;o===void 0&&(o=null);const s=n?.type,i=s!==void 0?s:this._type;return i&&(o=be(o,qt(o,!0),i)),o}_applyBuilder(t,e,n=!1){if(!e)return t;const r=e.build();return r&&(n&&(t=t.clone()),t.setValues(r.tuples)),t}_cloneFromBuilder(t,e,n,r){if(!t)return this;const o=t.build();if(!o)return this;let s=this._values;const i=s.getOrientation(),l=(e?.orientation??i)===A.IRange.Orientation.Column,c=bo(o.bounds,l),h=this._coords??w.CoordUtils.EmptyRange,d=Math.max(c.colEnd-c.colStart+1,n??h.colEnd-h.colStart+1),u=Math.max(c.rowEnd-c.rowStart+1,r??h.rowEnd-h.rowStart+1),g=h.colStart,m=h.rowStart,f=g+d-1,p=m+u-1;return s=s.clone(),s.setValues(o.tuples),new Zt(s,{colStart:g,rowStart:m,colEnd:f,rowEnd:p},this._type,this._isLiteral)}forEach(t,e){if(!t)return;const n=this.entries(e);let r=n.next();for(;!r.done;){const o=r.value,s=t(o.value,o.coords,this);if(s)return s.break;r=n.next()}}reduce(t,e,n){if(!t)return e;const r=this.entries(n);let o=r.next(),s=e;for(;!o.done;){const i=o.value;s=t(s,i.value,i.coords,this),o=r.next()}return s}some(t,e){if(!t)return!1;const n=this.entries(e);let r=n.next();for(;!r.done;){const o=r.value;if(t(o.value,o.coords,this))return!0;r=n.next()}return!1}every(t,e){if(!t)return!0;const n=this.entries(e);let r=n.next();for(;!r.done;){const o=r.value;if(!t(o.value,o.coords,this))return!1;r=n.next()}return!0}replace(t,e){let n;if(n=t?.isIRange?t:fg(t,this._values,this._coords,this._type),this.size===0)return n;if(n.size===0)return this;const r=this._values.clone(),o=n._values,s=n._coords??w.CoordUtils.EmptyRange,i=this._coords??w.CoordUtils.EmptyRange,l=i.colStart,c=i.rowStart,h=l+(e.colIndex??0),d=c+(e.rowIndex??0);o.copyTo(r,{colIndex:h,rowIndex:d},s);const u=Math.max(this.getWidth(),n.getWidth()+(e?.colIndex??0)),g=Math.max(this.getHeight(),n.getHeight()+(e?.rowIndex??0));return new Zt(r,{colStart:l,rowStart:c,colEnd:l+u-1,rowEnd:c+ +g-1},this._type)}slice(t){if(!t)return this;const e=this._coords??w.CoordUtils.EmptyRange,n=(t.colStart??0)+e.colStart,r=(t.rowStart??0)+e.rowStart,o={colStart:n,rowStart:r,colEnd:(t.colEnd??e.colEnd-n)+e.colStart,rowEnd:(t.rowEnd??e.rowEnd-r)+e.rowStart},s=w.CoordUtils.intersectRanges(e,o);return new Zt(this._values,s,this._type)}resize(t,e,n=null){if(t<0||e<0)throw new Error(`Invalid resize dimensions: ${t} x ${e}`);const r=this._coords??w.CoordUtils.EmptyRange,o=r.colEnd-r.colStart+1,s=r.rowEnd-r.rowStart+1;if(t===o&&e===s)return this;const i={colStart:r.colStart,rowStart:r.rowStart,colEnd:r.colStart+t-1,rowEnd:r.rowStart+e-1};let l=this._values;return(t>o||e>s)&&(l=l.clone(),t>o&&($t.colStart=r.colEnd+1,$t.rowStart=r.rowStart,$t.colEnd=r.colEnd,$t.rowEnd=r.rowEnd,this._fill(l,r,n)),e>s&&($t.colStart=r.colStart,$t.rowStart=r.rowEnd+1,$t.colEnd=r.colEnd,$t.rowEnd=r.rowEnd,this._fill(l,r,n))),new Zt(l,i,this._type)}_mergeIterators(t,e,n){const r=this._coords??w.CoordUtils.EmptyRange,o=t._coords??w.CoordUtils.EmptyRange,s=this._values.getOrientation(),i=n?.orientation??s,l=i!==A.IRange.Orientation.Row,c=this._entries(n),h=this._entries(n),d=r.colStart,u=r.rowStart,g=d-o.colStart,m=u-o.rowStart,f=i===s?new exports.Tuple.Builder:new exports.Tuple.TransposedBuilder,p=new _h({...n,bounds:r,comparator:(l?bh:vh)(r,o)},c,h);let S=p.next();for(;!S.done;){const _=S.value;let E=_[1],C=_[3];const I=_[0],y=_[2],b=I?I.colIndex:y.colIndex+g,v=I?I.rowIndex:y.rowIndex+m,R=e(E,C,{colIndex:b-d,rowIndex:v-u},this),x=l?b:v,T=l?v:b;f.addValue(x,T,R),S=p.next()}return f}intersect(t,e,n){if(!t)throw new Error("Invalid range to intersect");const r=t,o=this._coords??null,s=r._coords??null;if(!w.CoordUtils.intersectRanges(o,s))return new Zt(this._values,null,this._type);const i=this._mergeIterators(r,e,n);return this._cloneFromBuilder(i,n)}startIncrementalUpdates(t){const e=t?.orientation??A.IRange.Orientation.Column,n=this._values.getOrientation(),r=(t?.orientation??n)!==A.IRange.Orientation.Row,o=e===n?new exports.Tuple.Builder:new exports.Tuple.TransposedBuilder,s=this,i=this._coords??w.CoordUtils.EmptyRange,l=i.colStart,c=i.rowStart,h=r?l:c,d=r?c:l,u={pushAt(g,m,f){const p=r?m:g,S=r?g:m;return o.addValue(p+h,S+d,f),u},pushMultipleAt(g,m,f){const p=r?m:g,S=r?g:m;return o.addValues(p+h,S+d,f),u},apply(){const g=o.build();return g?(g.bounds.majorStart=h,g.bounds.minorStart=d,s._cloneFromBuilder(o,t)):null}};return u}map(t,e){const n=this._values;if(!this._coords||n.getCount()===0)return this;const r=n.getOrientation(),o=e?.orientation??r;let s;const i=this.entries(e);let l=i.next();l.done||(s=this._createTupleBuilder(o));const c=o===A.IRange.Orientation.Column;for(;!l.done;){const h=l.value,d=h.coords,u=t(h.value,d,this),g=c?d.colIndex:d.rowIndex,m=c?d.rowIndex:d.colIndex;s.addValue(g,m,u),l=i.next()}return this._cloneFromBuilder(s,e)}filter(t,e){const n=this._values;if(!this._coords||n.getCount()===0)return this;const r=n.getOrientation(),o=e?.orientation??r,s=this._createTupleBuilder(o),i=this.entries(e);let l=i.next();const c=o===A.IRange.Orientation.Column;for(;!l.done;){const h=l.value,d=h.coords,u=h.value;if(t(u,d,this)){const g=c?d.colIndex:d.rowIndex,m=c?d.rowIndex:d.colIndex;s.addValue(g,m,u)}l=i.next()}return this._cloneFromBuilder(s,e)}broadcast(t,e,n){let r=this._coords;if(t==null)return this;let o=n?.type,s=n?.otherType??o;const i=o?be(null,A.ScalarType.Null,o):null,l=s?be(null,A.ScalarType.Null,s):null;let c;if(t.isIRange)c=t;else{const B=this._values.clone();B.setValueAt(0,0,t),c=new Zt(B,w.CoordUtils.EmptyRange,qt(t,!0))}const h=c,d=this.getWidth(),u=this.getHeight(),g=h.getWidth(),m=h.getHeight();let f=Math.min(d,g),p=Math.min(u,m),S=Math.max(d,g),_=Math.max(u,m);const E=n?.mismatchFill;let C=!1;if(d!==g)if(d===1)f=g;else if(g===1)f=d;else{if(!E)throw new Error(`Incompatible shapes for broadcast: width dimensions ${d} and ${g} must be equal or one must be 1`);C=!0}if(u!==m)if(u===1)p=m;else if(m===1)p=u;else{if(!E)throw new Error(`Incompatible shapes for broadcast: height dimensions ${u} and ${m} must be equal or one must be 1`);C=!0}const I=this._values.getOrientation(),y=I,b=y===A.IRange.Orientation.Column;r=r??w.CoordUtils.EmptyRange;let v,R,x=h._coords??w.CoordUtils.EmptyRange;if(C&&(r={colStart:r.colStart,rowStart:r.rowStart,colEnd:r.colStart+f-1,rowEnd:r.rowStart+f-1},x={colStart:x.colStart,rowStart:x.rowStart,colEnd:x.colStart+f-1,rowEnd:x.rowStart+f-1}),d===1&&d<g||u===1&&u<m){const B={...r};d===1&&(B.colEnd=B.colStart),u===1&&(B.rowEnd=B.rowStart),v=new tl({delegate:this._entries({...n,orientation:y,bounds:B,reuseResult:!1}),bounds:B,orientation:y,dims:{major:b?f:p,minor:b?p:f}})}else v=this._entries({...n,orientation:y,bounds:r,reuseResult:!1});if(g===1&&g<d||m===1&&m<u){const B={...x};g===1&&(B.colEnd=B.colStart),m===1&&(B.rowEnd=B.rowStart),R=new tl({delegate:h._entries({...n,type:s??null,orientation:y,bounds:B,reuseResult:!1}),bounds:B,orientation:y,dims:{major:b?f:p,minor:b?p:f}})}else R=h._entries({...n,type:s??null,orientation:y,bounds:x,reuseResult:!1});const T=r.colStart,M=r.rowStart,F=T-x.colStart,N=M-x.rowStart,k=y===I?new exports.Tuple.Builder:new exports.Tuple.TransposedBuilder,U=new _h({...n,bounds:r,comparator:(b?bh:vh)(r,x)},v,R);let O,D=U.next();for(;!D.done;){const B=D.value;let P=B[1],L=B[3];const W=B[0],H=B[2],G=W?W.colIndex:H.colIndex+F,z=W?W.rowIndex:H.rowIndex+N;let V,j;P instanceof A.FormulaError.Value?V=P:L instanceof A.FormulaError.Value&&(V=L),j=V||e(P??i,L??l,{colIndex:G-T,rowIndex:z-M},this);const q=b?G:z,J=b?z:G;k.addValue(q,J,j),D=U.next()}if(E&&S>f||_>p){const B=this._values.clone();if(this._applyBuilder(B,k),S>f){const P=ge(T+f,M,T+S-1,M+_-1,b),L=Fs(E,P,b);B.setValues(L.tuples)}if(_>p){const P=ge(T,M+p,T+S-1,M+_-1,b),L=Fs(E,P,b);B.setValues(L.tuples)}O=new Zt(B,{colStart:T,rowStart:M,colEnd:T+S-1,rowEnd:M+_-1},this._type)}else O=this._cloneFromBuilder(k,n,S,_);return O}_fill(t,e,n){if(n===null)return void t.delete(e);const r=t.getOrientation()===A.IRange.Orientation.Column,o=ge(e.colStart,e.rowStart,e.colEnd,e.rowEnd,r),s=Fs(n,o,r);t.setValues(s.tuples)}_validateCoords(t){}fill(t,e){let n=this._coords;if(!n&&!e)return this;n=n??w.CoordUtils.EmptyRange,e&&($t.colStart=(e.colStart??0)+n.colStart,$t.rowStart=(e.rowStart??0)+n.rowStart,$t.colEnd=(e.colEnd??n.colEnd-n.colStart)+n.colStart,$t.rowEnd=(e.rowEnd??n.rowEnd-n.rowStart)+n.rowStart),this._validateCoords($t);const r=this._values.clone();return this._fill(r,$t,t),($t.rowEnd>n.rowEnd||$t.colEnd>n.colEnd)&&(n={colStart:n.colStart,rowStart:n.rowStart,colEnd:Math.max(n.colEnd,$t.colEnd),rowEnd:Math.max(n.rowEnd,$t.rowEnd)}),new Zt(r,n,this._type)}empty(){const t=this._values.cloneEmpty();return new Zt(t,null,this._type)}flatten(t){const e=[],n=this.values(t);let r=n.next();for(;!r.done;)e.push(r.value),r=n.next();return e}fillEmpty(t,e=1,n=1){const r=this._coords;if(!r)return this;const o=this._values;if(e<1&&n<1)throw new Error("Must be at least size of 1");const s=o.getOrientation(),i=s,l=i===A.IRange.Orientation.Column,c=Math.max(this.getWidth(),e),h=Math.max(this.getHeight(),n),d=l?r.colStart:r.rowStart,u=l?r.rowStart:r.colStart,g=l?r.colStart+c-1:r.rowStart+h-1,m=l?r.rowStart+h-1:r.colStart+c-1,f=o.getRuns({bounds:{colStart:r.colStart,rowStart:r.rowStart,colEnd:l?g:m,rowEnd:l?m:g},overflowRun:!0});let p=f.next(),S=d,_=u;const E=i===s?new exports.Tuple.Builder:new exports.Tuple.TransposedBuilder;for(;!p.done;){const C=p.value,I=C[0];for(;S<I;){const x=new sa([t],m+1-_);E.addValues(S,_,x),S++,_=u}const y=C[1],b=Math.max(y,u),v=C[2],R=Math.min(y+v.length-1,m);if(_<b){const x=new sa([t],y-_);E.addValues(S,_,x)}_=R+1,R>=m?(S=I+1,_=u):S=I,p=f.next()}for(;S<=g;){const C=new sa([t],m+1-_);E.addValues(S,_,C),S++,_=u}return this._cloneFromBuilder(E,void 0,c,h)}transpose(){if(this.size<=1)return this;const t=this._values.getOrientation(),e=this._coords,n=this.getWidth(),r=this.getHeight(),o=this._entries({orientation:t===A.IRange.Orientation.Column?A.IRange.Orientation.Row:A.IRange.Orientation.Column,bounds:e,reuseResult:!0}),s=t===A.IRange.Orientation.Column,i=new exports.Tuple.Builder,l=s?e.colStart:e.rowStart,c=s?e.rowStart:e.colStart;let h=o.next();for(;!h.done;){const d=h.value,u=d[0],g=s?u.colIndex:u.rowIndex-l,m=(s?u.rowIndex:u.colIndex-c)+l,f=g+c,p=d[1];i.addValue(m,f,p),h=o.next()}return this._cloneFromBuilder(i,void 0,r,n)}values(t){const e=this.entries(t);return{[Symbol.iterator](){return this},next(){const n=e.next();return n.done?xt:{done:!1,value:n.value.value}}}}_createTupleBuilder(t){const e=this._coords,n=this._values.getOrientation(),r=t??n,o=r!==A.IRange.Orientation.Row,s=o?e.colStart:e.rowStart,i=o?e.rowStart:e.colStart;return r===n?new exports.Tuple.Builder(null,s,i):new exports.Tuple.TransposedBuilder(null,s,i)}entries(t){const e=this._coords;if(!e)return Wt;const n=t?.bounds;if(t={...t,bounds:e},n){const s=(n.colStart??0)-e.colStart,i=(n.rowStart??0)-e.rowStart,l=Math.max(s+e.colStart,e.colStart),c=Math.max(i+e.rowStart,e.rowStart),h=Math.min((n.colEnd??Number.MAX_SAFE_INTEGER)-s,e.colEnd-e.colStart)+1,d=Math.min((n.rowEnd??Number.MAX_SAFE_INTEGER)-i,e.rowEnd-e.rowStart)+1;t.bounds={colStart:l,rowStart:c,colEnd:l+h-1,rowEnd:c+d-1}}const r=this._entries(t),o={[Symbol.iterator]:()=>o,next(){for(;;){let s=r.next();if(s.done)return xt;const i=s.value,l=i[0];return{done:!1,value:{coords:{colIndex:l.colIndex-e.colStart,rowIndex:l.rowIndex-e.rowStart},value:i[1]}}}}};return o}_entries(t){if(!this._coords)return Wt;let e=this._values.entries(t);const n=t?.type??this._type;let r=null;if(t?.includeEmpty&&(e=new ig(e,t),n&&(r=be(null,A.ScalarType.Null,n))),n){const o=e,s=t.coerce??!1,i=t.includeBoolean??!1,l=t.includeMistyped??!1;e={[Symbol.iterator]:()=>e,next(){for(;;){let c=o.next();if(c.done)return xt;const h=c.value,d=h[1];let u=d;if(u==null)u=r;else if(n&&(s||!l)){let g=qt(u,!0),m=g!==n;if(m&&(s&&(u=be(u,g,n,i),m=u?.isFormulaError),m&&!l))continue}return u===d?c:{done:!1,value:[h[0],u]}}}}}return e}getValues(t){if(!this._coords)return[[]];const e={...t,includeEmpty:!0,reverse:!1,bounds:{colStart:0,rowStart:0,colEnd:this.getWidth()-1,rowEnd:this.getHeight()-1}};let n=!1;e.orientation=t?.orientation??A.IRange.Orientation.Row,t&&(t.maxHeight&&(e.bounds.rowEnd=0+t.maxHeight-1),t.maxWidth&&(e.bounds.colEnd=0+t.maxWidth-1),t.trailingEmpties&&(n=t.trailingEmpties),e.orientation=t?.orientation??A.IRange.Orientation.Row);const r=[];if(!n){e.includeEmpty=!1,e.reverse=!0;const d=this.entries(e).next();if(d.done)return i0;const u=d.value.coords;e.bounds.colEnd=u.colIndex,e.bounds.rowEnd=u.rowIndex,e.includeEmpty=!0,e.reverse=!1}const o=this.entries(e),s=e.orientation!==A.IRange.Orientation.Row,i=t?.onValue;let l,c=-1,h=[];for(l=o.next();!l.done;){const d=l.value,u=d.coords,g=s?u.colIndex:u.rowIndex;g!==c&&(h=[],r.push(h),c=g);let m=d.value;if(i){const f=i(m,u.rowIndex,u.colIndex,this);f!==void 0&&(m=f)}h.push(m),l=o.next()}return r}toType(t){return new Zt(this._values,this._coords,t,this._isLiteral)}getWidth(){const t=this._coords;return t?t.colEnd-t.colStart+1:0}getHeight(){const t=this._coords;return t?t.rowEnd-t.rowStart+1:0}get size(){const t=this._coords;return t?(t.colEnd-t.colStart+1)*(t.rowEnd-t.rowStart+1):0}isLiteral(){return this._isLiteral}getScalarType(){return this._type}[Symbol.iterator](){const t=this.entries();return{next(){const e=t.next();return e.done?xt:{done:!1,value:e.value.value}},[Symbol.iterator](){return this}}}get[Symbol.toStringTag](){return"[Range]"}toString(){const t=this._coords,e=t?`${t.colEnd-t.colStart+1}x${t.rowEnd-t.rowStart+1}`:A.FormulaError.Ref.toString();let n="{";const r=this.entries({includeEmpty:!0,orientation:A.IRange.Orientation.Row});let o=r.next(),s=0,i=o.value?.coords.rowIndex??0;for(;!o.done&&s<10;){const l=o.value;l.coords.rowIndex>i?(n+=";",i=l.coords.rowIndex):s>0&&(n+=","),s++;let c=l.value;typeof c=="string"?c=`"${c}"`:typeof c=="boolean"&&(c=c?"TRUE":"FALSE"),n+=c,o=r.next()}return o.done?n+="}":n+="...",`[${e}:${n}]`}get isIRange(){return!0}}const $t={colStart:Number.MIN_SAFE_INTEGER,rowStart:Number.MIN_SAFE_INTEGER,colEnd:Number.MAX_SAFE_INTEGER,rowEnd:Number.MAX_SAFE_INTEGER},i0=Object.freeze([Object.freeze([null])]),Fo=Object.freeze({colStart:0,rowStart:0,colEnd:Math.pow(2,14)-1,rowEnd:Math.pow(2,20)-1}),a0=Object.freeze({colIndex:0,rowIndex:0}),ei=()=>Fo,qt=(a,t=!1)=>typeof a=="number"?isNaN(a)||a===1/0||a===-1/0?A.ScalarType.Error:A.ScalarType.Number:typeof a=="string"?A.ScalarType.String:typeof a=="boolean"?A.ScalarType.Boolean:a?.isFormulaError?A.ScalarType.Error:a===null?A.ScalarType.Null:w.CommonUtils.isObject(a)&&a.hasOwnProperty("type")&&typeof a.type=="string"?A.ScalarType.RichData:t&&kr(a)?"Date":a===void 0?(console.warn("undefined"),A.ScalarType.Null):null,xh=new Map([[A.ScalarType.Null,"any"],[A.ScalarType.Number,"number"],[A.ScalarType.String,"string"],[A.ScalarType.Boolean,"boolean"],[A.ScalarType.Error,"FormulaError"],[A.ScalarType.RichData,"richData"],["*","Scalar"]]),l0=new Map([["p","IReferenceRange"],["r","IRange"]]),c0={orientation:A.IRange.Orientation.Row},be=(a,t,e=A.ScalarType.Number,n=!1,r=!1)=>{if(t===e||!e)return t===A.ScalarType.Number&&(a=No(a,null,"number")),a;if(e===A.ScalarType.Number){switch(t){case A.ScalarType.Null:return 0;case A.ScalarType.String:let o=0;try{const s=jg(a);o=s&&typeof s.value=="number"?s.value:Number.NaN}catch{}return!Number.isFinite(o)||Math.abs(o)>999e305?A.FormulaError.BuiltIn.Value:o;case A.ScalarType.Boolean:return n?a?1:0:A.FormulaError.BuiltIn.Value;case"Date":return Ao(a,r)??A.FormulaError.BuiltIn.Value;case A.ScalarType.Error:return a}return a.toString()}if(e===A.ScalarType.String){switch(t){case A.ScalarType.Null:return"";case A.ScalarType.Number:return a.toString();case A.ScalarType.Boolean:return a?"TRUE":"FALSE";case A.ScalarType.Error:return a}return a}if(e===A.ScalarType.Boolean){switch(t){case A.ScalarType.Null:return 0;case A.ScalarType.Number:return!!a;case A.ScalarType.String:let o=a.trim().toUpperCase();return o==="TRUE"||o!=="FALSE"&&A.FormulaError.BuiltIn.Value;case A.ScalarType.Error:return a}return A.FormulaError.BuiltIn.Value}if(e==="Date"){switch(t){case A.ScalarType.Number:return Or(a,r)??A.FormulaError.BuiltIn.Value;case A.ScalarType.String:try{const o=Il(a,r);if(o)return o.asJSDate??A.FormulaError.BuiltIn.Value}catch{}return a;case A.ScalarType.Error:return a}return A.FormulaError.BuiltIn.Value}return A.FormulaError.BuiltIn.Value},Rh=a=>{let t=a;for(;Array.isArray(t);){if(t.length>1)return!1;t=t[0]}return!t||!t.isIRange||t.size===1},mg=(a,t,e,n,r,o=!1)=>{if(Array.isArray(e)){const s=e.length;for(let i=0;i<s;i++){let l=e[i];if(Array.isArray(l)){const c=mg(a,t,l,n,r,o);if(o)continue;if(c instanceof A.FormulaError.Value)return c}else{if(n){if(l=be(l,qt(l,!0),n,o),o)continue;if(l instanceof A.FormulaError.Value)return l}t.push(l)}}return}if(e&&e.colStart!==void 0){let s=a.getReference?.(e);n&&(s=s.toType(n)),e=s}if(e?.isIRange)return((s,i)=>{let l=s.next();for(;!l.done;){let c=l.value;if(c instanceof A.FormulaError.Value)return c;i.push(c),l=s.next()}})(e.values({type:n,coerce:!0,includeMistyped:!o,...c0}),t);if(n){if(e=be(e,qt(e,!0),n,r!==null),o)return;if(e instanceof A.FormulaError.Value)return e}t.push(e)},Gr=(a,t,e,n,r,o)=>{if(r==="r"){let i=e;return i&&i.isIReferenceRange?(n&&(i=i.toType(n)),void t.push(e)):new A.FormulaError.Value("Cannot convert a literal to a reference.")}let s=e?.isIRange?e:null;if(r!=="l"){if(s){const i=s.getValues({type:n});return void t.push(i)}{Array.isArray(e)||(e=[e]);const i=e.length,l=new Array(i);for(let c=0;c<i;c++){let h=e[c];Array.isArray(h)||(h=[h]);const d=h.length,u=new Array(d);for(let g=0;g<d;g++){let m=h[g];if(n&&(m=be(m,qt(m,!0),n)),m instanceof A.FormulaError.Value)return m;u[g]=m}l[c]=u}t.push(l)}}else{if(s)n&&s.getScalarType()!==n&&(s=s.toType(n));else try{if(!o&&(e=No(e),n&&(e=be(e,qt(e,!0),n,!0),e?.isFormulaError&&n!==A.ScalarType.Error)))return t.push(e),e;s=a.getRange(e),n&&(s=s.toType(n))}catch(i){return i}t.push(s)}},No=(a,t,e=typeof a)=>{if(e==="number")return isNaN(a)?A.FormulaError.BuiltIn.Num:isFinite(a)?a+=0:A.FormulaError.BuiltIn.Div0;if(a==null)return null;if(!t)return a;if(Array.isArray(a))try{a=t.getRange(a)}catch{return A.FormulaError.BuiltIn.Value}return t.isValidDate(a)?(t.formatResults("Short Date"),t.toOADate(a)):a},fg=(a,t,e,n)=>{let r;r=Array.isArray(a)?Array.isArray(a[0])?a:[a]:[[a]],t||(t=new He({orientation:A.IRange.Orientation.Column}));const o=t.getOrientation()===A.IRange.Orientation.Column,s=Zs(r,o,ge(e?.colStart??0,e?.rowStart??0,void 0,void 0,o),!0),i=bo(s.bounds,o);return t.setValues(s.tuples),new Zt(t,i,n,!e)},h0=new RegExp(/^([$]?[a-zA-Z]*[$]?[0-9]*)[:]?([$]?[a-zA-Z]*[$]?[0-9]*)?$/),d0=new RegExp(/^(R(?:\[?[-+]?\d+\]?|\d+)?C(?:\[?[-+]?\d+\]?|\d+)?)(:(R(?:\[?[-+]?\d+\]?|\d+)?C(?:\[?[-+]?\d+\]?|\d+)?))?$/,"i"),u0=new RegExp(/^(R?)(\[?[-+]?\d+\]?|\d+)?(C?)(\[?[-+]?\d+\]?|\d+)?$/,"i"),g0=new RegExp("(?:'[^']+'|[A-Za-z0-9_\\-.]+?!)?(\\$?[A-Za-z]+\\$?\\d+(?::\\$?[A-Za-z]+\\$?\\d+)?|\\$?[A-Za-z]+:\\$?[A-Za-z]+|\\$?\\d+:\\$?\\d+)","g"),m0=/\s+/g,f0=/"(?:[^"]|"")*"|\[[^[\]]+\]/g,ia=/[\uE000-\uF8FF]/g,jt="#REF!",pg=Math.pow(2,14),p0=Math.pow(2,20);let Ah,Th;const Oe=a=>(Ah===a||(Th=""+(a+1),Ah=a),Th);let Mh,aa;const Re=a=>{if(Mh===a)return aa;if(Mh=a,a<0)throw new Error("invalid column "+a);let t="";for(++a;a;a=Math.floor((a-1)/26))t=String.fromCharCode((a-1)%26+65)+t;return aa=t,aa},S0=/[^a-zA-Z0-9]/,ko=a=>a?Re(a.colIndex)+Oe(a.rowIndex):null,Fn=a=>{if(!a)return jt;const t=Re(a.colIndex),e=Oe(a.rowIndex);return(a.$colIndex?"$"+t:t)+(a.$rowIndex?"$"+e:e)},Nl=(a,t)=>{let e=a??t;var n;return e&&(e=bl(e),e=e.replace(/'/g,"''"),n=e,S0.test(n)&&(e=Uu(e))),e},Sg=(a,t)=>a?a+(a.endsWith("!")?"":"!")+t:jt,cn=(a,t,e=ko)=>{if(!a)return null;const n=a.colStart,r=a.rowStart,o=a.colEnd,s=a.rowEnd;if(n===o&&r===s)return e({colIndex:n,rowIndex:r});a={...t,...a};const i=n===Number.MIN_SAFE_INTEGER||t&&n<=t.colStart&&o>=t.colEnd,l=r===Number.MIN_SAFE_INTEGER||t&&r<=t.rowStart&&s>=t.rowEnd;let c=null;c=l?Re(n):i?Oe(r):e({colIndex:n,rowIndex:r});let h=null;return h=l?Re(o):i?Oe(s):e({colIndex:o,rowIndex:s}),c+":"+h},la=(a,t,e=Fn)=>{if(!a)return jt;const n=a.colIndex,r=a.rowIndex,o=n===Number.MIN_SAFE_INTEGER;let s=null;if(r===Number.MIN_SAFE_INTEGER?(s=Re(n),a.$colIndex&&(s="$"+s)):o?(s=Oe(r),a.$rowIndex&&(s="$"+s)):s=e(a),a.sheetName||t){const i=Nl(a.sheetName,t);s=Sg(i,s)}return s},Pe=(a,t,e=Fn)=>{if(!a)return jt;const n=a.rowStart!==void 0&&a.rowStart===a.rowEnd;if(a.colStart!==void 0&&a.colStart===a.colEnd&&n)return e({colIndex:a.colStart,rowIndex:a.rowStart,$colIndex:a.$colStart,$rowIndex:a.$rowStart});a={...t,...a};const r=t&&a.rowStart<=t.rowStart&&a.rowEnd>=t.rowEnd,o=t&&a.colStart<=t.colStart&&a.colEnd>=t.colEnd;let s=null;r?(s=Re(a.colStart),s=a.$colStart?"$"+s:s):o?(s=Oe(a.rowStart),s=a.$rowStart?"$"+s:s):s=e({colIndex:a.colStart,rowIndex:a.rowStart,$colIndex:a.$colStart,$rowIndex:a.$rowStart});let i=null;return r?(i=Re(a.colEnd),i=a.$colEnd?"$"+i:i):o?(i=Oe(a.rowEnd),i=a.$rowEnd?"$"+i:i):i=e({colIndex:a.colEnd,rowIndex:a.rowEnd,$colIndex:a.$colEnd,$rowIndex:a.$rowEnd}),s+":"+i},_i=(a,t,e=Fn)=>{const n=Pe(a,t,e),r=Nl(a?.sheetName,t?.sheetName);return Sg(r,n)},_g=(a,t=!1)=>{if(!a)return null;let e=0,n=0,r=!1,o=!1;const s=a.length;for(let l=0;l<s;++l){const c=a.charCodeAt(l);if(c>=48&&c<=57){if(n=10*n+(c-48),e===0&&!t)return}else if(c>=65&&c<=90){if(e=26*e+(c-64),n!==0)return}else if(c>=97&&c<=122){if(e=26*e+(c-96),n!==0)return}else{if(c!==36)return;if(e!==0||r){if(n!==0||o)return;o=!0}else r=!0}}const i={};return t||n!==0&&e!==0?(e>0&&(i.colIndex=e-1,r&&(i.$colIndex=r)),n>0&&(i.rowIndex=n-1,(o||t&&r)&&(i.$rowIndex=o||t&&r)),i):null},Ce=(a,t=Fo,e=!1)=>{if(!a)return null;let n=a.toUpperCase();const r=Cg(n,e);let o=null,s=null;if(r?.[1]){const l=!!r[2],c=e?Ls:_g;o=c(r[1],l),s=c(r[2]??r[1],l)}if(!o&&!s||o&&s&&(o.rowIndex===void 0&&s.rowIndex!==void 0||o.rowIndex!==void 0&&s.rowIndex===void 0||o.colIndex===void 0&&s.colIndex!==void 0||o.colIndex!==void 0&&s.colIndex===void 0))return null;const i={};return o&&(o.colIndex!==void 0&&(i.colStart=o.colIndex),o.rowIndex!==void 0&&(i.rowStart=o.rowIndex),o.$colIndex!==void 0&&(i.$colStart=o.$colIndex),o.$rowIndex!==void 0&&(i.$rowStart=o.$rowIndex),i?.colStart!==void 0&&i?.colStart>t?.colEnd)?null:(s&&(s.colIndex!==void 0&&(i.colEnd=s.colIndex),s.rowIndex!==void 0&&(i.rowEnd=s.rowIndex),s.$colIndex!==void 0&&(i.$colEnd=s.$colIndex),s.$rowIndex!==void 0&&(i.$rowEnd=s.$rowIndex)),{...t,...i})},Oo=(a,t,e=!1)=>{const n=(o=>{const s=o.lastIndexOf("!");if(s===-1)return null;let i=o.slice(0,s);return i=bl(i),i=i.replace(/''/g,"'"),[i,o.slice(s+1)]})(a);let r;if(n){if(r=Ce(n[1],t,e),!r)return null;r.sheetName=n[0]}else r=Ce(a,t,e);return r||null},kl=(a,t,e=Pe,n=Fn)=>{if(!a||a.length===0)return null;const r=[],o=a.length;for(let s=0;s<o;s++){const i=a[s];let l=null;i?i.rowIndex!==void 0||i.colIndex!==void 0?l=n(i):i.rowStart!==void 0||i.colStart!==void 0?l=e(i,t,n):typeof i=="string"&&(l=i):l=jt,l&&r.push(l)}return r},wg=(a,t,e=_i,n=Fn)=>{const r=kl(a,t,e,n);return r?r.join(","):jt},yg=(a,t,e,n=Oo,r,o=!1)=>{if(t!==null){if(typeof t=="string"){const s=n(t,e,o);if(!s){const i=r?.(t);if(i){const l=i.length;for(let c=0;c<l;c++){const h=i[c];yg(a,h,e,n,r,o)}}return}t=s}else t.isICellRange?t=t.getCoords():t.isICell&&(t=w.CoordUtils.cellToRange(t.getCoords()));if(t!==null){if(t.rowStart!==void 0||t.colStart!==void 0||t.colEnd!==void 0||t.rowEnd!==void 0){const s=t;a.push({...e,...s})}else if(t.rowIndex!==void 0||t.colIndex!==void 0){const s=t,i={...e,...s,colStart:s.colIndex,rowStart:s.rowIndex,colEnd:s.colIndex,rowEnd:s.rowIndex};i.sheetName===null&&e.sheetName&&(i.sheetName=e.sheetName),delete i.colIndex,delete i.rowIndex,a.push(i)}}else a.push(null)}else a.push(null)},wi=(a,t,e=Oo,n,r=!1)=>{if(!a)return[t];let o;o=typeof a=="string"?zu(a):a.isICellRanges?a.getCoords():Array.isArray(a)?a:[a];const s=[],i=o.length;for(let l=0;l<i;l++){const c=o[l];yg(s,c,t,e,n,r)}return s},Sr=(a,t)=>{let e=0,n=0;const r=a.length;for(let o=0;o<r;++o){const s=a.charCodeAt(o);if(s>=48&&s<=57){if(e=10*e+(s-48),n===0)return}else if(s>=65&&s<=90){if(n=26*n+(s-64),e!==0)return}else if(!(s>=97&&s<=122)||(n=26*n+(s-96),e!==0))return}return t?(t.colIndex=n-1,t.rowIndex=e-1,t):{colIndex:n-1,rowIndex:e-1}},Ls=(a,t=!1,e)=>{e?(e.colIndex=Number.MIN_SAFE_INTEGER,e.rowIndex=Number.MIN_SAFE_INTEGER,e.$colIndex=!1,e.$rowIndex=!1):e={colIndex:Number.MIN_SAFE_INTEGER,rowIndex:Number.MIN_SAFE_INTEGER,$colIndex:!1,$rowIndex:!1};const n=u0.exec(a);if(!n)return null;const r=n[1],o=n[3];if(!(t||r&&o))return null;if(r){const s=n[2];s?s&&(s.startsWith("[")?(e.rowIndex=parseInt(s.slice(1,-1)),e.$rowIndex=!1):(e.rowIndex=parseInt(s)-1,e.$rowIndex=!0)):(e.rowIndex=0,e.$rowIndex=!1)}if(o){const s=n[4];s?s.startsWith("[")?(e.colIndex=parseInt(s.slice(1,-1)),e.$colIndex=!1):(e.colIndex=parseInt(s)-1,e.$colIndex=!0):(e.colIndex=0,e.$colIndex=!1)}return e},rl=(a,t)=>{let e=0,n=0,r=!1,o=!1;const s=a.length;for(let i=0;i<s;++i){const l=a.charCodeAt(i);l>=48&&l<=57?e=10*e+(l-48):l>=65&&l<=90?n=26*n+(l-64):l>=97&&l<=122?n=26*n+(l-96):l===36&&(i===0?r=!0:o=!0)}return n--,e--,t.colIndex=n,t.rowIndex=e,e===-1?(t.$colIndex=r,t.$rowIndex=!1,t):n===-1?(t.$colIndex=!1,t.$rowIndex=r,t):(t.$colIndex=r,t.$rowIndex=o,t)},_0=a=>{let t=0;const e=a.length;for(let n=0;n<e;++n){const r=a.charCodeAt(n);if(r>=65&&r<=90)t=26*t+(r-64);else{if(!(r>=97&&r<=122))return t-1;t=26*t+(r-96)}}return t-1},de=(a,t)=>{let e=t;e?(e.rowStart=0,e.colStart=0,e.rowEnd=0,e.colEnd=0):e={rowStart:0,colStart:0,rowEnd:0,colEnd:0};let n=0,r=0,o=0,s=a.length;for(n=0;r<s&&(o=a.charCodeAt(r),o>96&&o<123&&(o-=32),!(o<65||o>91));++r)n=26*n+(o-64);for(e.colStart=--n,n=0;r<s;++r){let i=a.charCodeAt(r)-48;if(i<0||i>9)break;n=10*n+i}if(e.rowStart=--n,r===s||a.charCodeAt(++r)===58)return e.colEnd=e.colStart,e.rowEnd=e.rowStart,e;for(n=0;r!==s&&(o=a.charCodeAt(r),o>96&&o<123&&(o-=32),!(o<65||o>91));++r)n=26*n+(o-64);for(e.colEnd=--n,n=0;r!==s;++r){let i=a.charCodeAt(r)-48;if(i<0||i>9)break;n=10*n+i}return e.rowEnd=--n,e},Cg=(a,t=!1)=>{const e=a.match(t?d0:h0);return a.endsWith(":")?null:e},ol={rowIndex:-1,colIndex:-1,$colIndex:!1,$rowIndex:!1},ca=(a,t,e,n=pg)=>{let r=a.lastIndexOf("!"),o="";r!==-1&&(o=a.slice(0,r)+"!",a=a.slice(r+1));let s=null;const i=()=>{let c="";const h=s.rowIndex;if(h!==-1)if(s.$rowIndex)c+=`R${h+1}`;else{const g=h-t;c+=g===0?"R":`R[${g}]`}let d="";const u=s.colIndex;if(u!==-1)if(s.$colIndex)d+=`C${u+1}`;else{const g=u-e;d+=g===0?"C":`C[${g}]`}o+=c+d};r=a.lastIndexOf(":");const l=r!==-1;if(l){const c=a.slice(0,r);a=a.slice(r+1),s=rl(c,ol),s.colIndex!==-1&&s.rowIndex!==-1&&(i(),o+=":")}return s=rl(a,ol),!l&&s.colIndex>n?a:(i(),o)},Ir=[],w0=a=>(Ir.push(a),String.fromCharCode(57344+Ir.length-1)),y0=a=>{const t=a.charCodeAt(0)-57344;return Ir[t]},C0=(a,t,e)=>{let n="";const r=a.length;for(let o=0;o<r;o++){const s=a[o];n+=typeof s=="string"?s:Eg(s,t,e)}return n},Us=(a,t)=>{let e="";const n=a.rowIndex;n!==Number.MIN_SAFE_INTEGER&&(a.$rowIndex?e+=`R${n+1}`:e+=n===0?"R":`R[${n+1}]`);let r="";const o=a.colIndex;return o!==Number.MIN_SAFE_INTEGER&&(a.$colIndex?r+=`C${o+1}`:r+=o===0?"C":`C[${o+1}]`),a.sheetName&&(e=Nl(a.sheetName,t)+"!"+e),e+r},Eg=(a,t,e)=>{let n="";const r=a.colIndex;r!==Number.MIN_SAFE_INTEGER&&(a.$colIndex?n+="$"+Re(r):n+=Re(r+e));const o=a.rowIndex;return o!==Number.MIN_SAFE_INTEGER&&(a.$rowIndex?n+="$"+Oe(o):n+=Oe(o+t)),n},E0=(a,t,e,n)=>{Ir.length=0;let r=0,o=a.replace(f0,w0),s=0,i=o.replace(g0,(l,c,h)=>{const d=ca(l,t,e);if(n){if(h>s){const g=o.slice(s,h).replace(ia,(m,f)=>Ir[r++]);n.push(g)}const u=l.lastIndexOf(":");if(u!==-1){const g=l.slice(0,u),m=l.slice(u+1),f=ca(g,t,e),p=ca(m,t,e);n.push(Ls(f,!0)??f),n.push(":"),n.push(Ls(p,!0)??p)}else n.push(Ls(d,!0)??d)}return s=h+l.length,d});if(n&&s<o.length){const l=o.slice(s);n.push(l.replace(ia,(c,h)=>Ir[r++]))}return i=i.toUpperCase().replace(m0,""),i.replace(ia,y0)},Vn="Must specify an address.",Ig="Only a single range is allowed for this operation. Use 'getRanges' instead.",Fh="Only a single cell is allowed.",bg="Invalid range. The Range must be specified as '{ TOP_LEFT:BOTTOM_RIGHT }'.",br=a=>`Invalid address. Can not parse ${typeof a=="string"?`'${a}' `:""}as an address or named item.`,gt=()=>{throw new Error("Invalid range.")};class jn{constructor(t,e,n=!1){this._c=t,this._cycleId=e,this._e=n}getCycleId(){return this._cycleId}getError(){return this._e}getCoords(){return this._c}setError(t,e){const n=this._c;return{...n,value:new jn(n,e,t)}}getShifted(t){const e=t.after;if(!e)return null;const n=w.CoordUtils.sanitizeRange(e);return{...n,value:new jn(n,this._cycleId,this._e)}}getMerged(t,e,n){}getSplit(t,e){}}class ke{constructor(t,e){this._c=t,this._o=e}getCoords(){return this._c}getOrientation(){return this._o}getShifted(t){return t.after?{...t.after,value:new ke(t.after,this._o)}:null}getMerged(t,e,n){const r=this._o;return new ke(e,r)}getSplit(t,e){const n=this._o;return[new ke(t[0],n),new ke(t[1],n)]}getState(){return this._c}}const Nh=(a,t)=>{if(!a||a.length===0)return w.CommonUtils.EmptyArray;const e=[],n=t?A.IRange.Orientation.Column:A.IRange.Orientation.Row;for(let r=0;r<a.length;r++){const o=a[r],s=o[0],i=o[1];for(let l=0;l<i.length;l++){const c=i[l],h=c[0],d=c[1].length-1,u={colStart:t?s:h,rowStart:t?h:s,colEnd:t?s:h+d,rowEnd:t?h+d:s,value:new ke({colStart:t?s:h,rowStart:t?h:s,colEnd:t?s:h+d,rowEnd:t?h+d:s},n)};e.push(u)}}return e},sl=0,kh=1;class Ze{constructor(t,e,n){this.ref=t,this.formula=e;const r=t.colStart,o=t.rowStart;if(n){const s=n,i=s.length;for(let l=0;l<i;l++){const c=[...s[l]];s[l]=c;const h=c.length;for(let d=0;d<h;d++){const u={...c[d]};c[d]=u,u.colIndex=d+r,u.rowIndex=l+o,u.block=this}}this.calcs=s}else{const s=e.getDirectPrecedentsAt(o,r),i=s?.length??0,l=new Array(t.rowEnd-o+1),c=t.colEnd-r+1,h=l.length;for(let d=0;d<h;d++){const u=new Array(c),g=u.length;for(let m=0;m<g;m++)u[m]={block:this,colIndex:m+r,rowIndex:d+o,cycleId:0,markId:0,inDegree:0,dependents:w.CommonUtils.EmptyArray,inputs:i===0?w.CommonUtils.EmptyArray:new Array(i),precedents:i===0?w.CommonUtils.EmptyArray:new Array(i),dynamic:null,cachedValue:void 0,removed:!1,pending:!1,pendingPrecedents:!1,pendingPromise:null,pendingResolved:!1,state:sl,error:void 0};l[d]=u}this.calcs=l}}toJSON(){const t=this.ref;return[cn(t),this.formula.getTextAt(t.rowStart,t.colStart)]}getCoords(){return this.ref}getShifted(t){if(!t.after)return null;const e=w.CoordUtils.sanitizeRange(t.after),n=[...this.calcs],r=new Ze(e,this.formula,n);return{...t.after,value:r}}setReferenceAt(t,e){const n=this.formula.setReferenceAt(t,e),r=[...this.calcs];return new Ze(this.ref,n,r)}getMerged(t,e,n){const r=this.formula,o=t.formula;if(!r.isEquals(o))return;const s=this.calcs,i=t.calcs;let l;if(n===A.IRange.Orientation.Row)l=[...s,...i];else{const c=s.length;l=new Array(c);for(let h=0;h<c;h++)l[h]=[...s[h],...i[h]]}return new Ze(e,r,l)}getSplit(t,e,n){const r=this.formula,o=e===A.IRange.Orientation.Column;let s,i;const l=this.calcs;if(o){const c=l.length;s=new Array(c),i=new Array(c);for(let h=0;h<c;h++){const d=l[h];s[h]=d.slice(0,n),i[h]=d.slice(n)}}else s=l.slice(0,n),i=l.slice(n);return[new Ze(t[0],r,s),new Ze(t[1],r,i)]}copyTo(t,e){const n=this.formula;return new Ze(t,n)}canTile(t,e){return!0}onRemove(t){const e=t.value.calcs,n=e.length;for(let r=0;r<n;r++){const o=e[r],s=o.length;for(let i=0;i<s;i++){const l=o[i];l.pendingPromise&&(l.pendingPromise.cancelled=!0),l.removed=!0}}}}const I0=Object.freeze({break:!0});var Z;(Z||(Z={})).Type={Style:"style",Table:"table",Merge:"merge",Hyperlink:"hyperlink",Comments:"comments",Unlock:"unlock",Contentful:"contentful",Conditional:"conditional",Formula:"formula",Spill:"spill",Continuous:"continuous",Pending:"pending",CalcError:"calcError"};const b0=Object.freeze({[Z.Type.Style]:!1,[Z.Type.Table]:!1,[Z.Type.Merge]:!1,[Z.Type.Hyperlink]:!1,[Z.Type.Comments]:!1,[Z.Type.Unlock]:!1,[Z.Type.Formula]:!1,[Z.Type.Spill]:!1,[Z.Type.Pending]:!1,[Z.Type.CalcError]:!1,[Z.Type.Contentful]:!1,[Z.Type.Conditional]:!1,[Z.Type.Continuous]:!1}),vg=Object.freeze({[Z.Type.Style]:!1,[Z.Type.Table]:!1,[Z.Type.Merge]:!1,[Z.Type.Hyperlink]:!1,[Z.Type.Comments]:!1,[Z.Type.Unlock]:!1,[Z.Type.Formula]:!1,[Z.Type.Spill]:!1,[Z.Type.Pending]:!1,[Z.Type.CalcError]:!1,[Z.Type.Conditional]:!1,[Z.Type.Continuous]:!1}),v0=Object.freeze({[Z.Type.Style]:!1,[Z.Type.Table]:!0,[Z.Type.Merge]:!1,[Z.Type.Hyperlink]:!1,[Z.Type.Comments]:!1,[Z.Type.Unlock]:!1,[Z.Type.Formula]:!1});Object.freeze({[Z.Type.Style]:!1,[Z.Type.Table]:!1,[Z.Type.Hyperlink]:!1,[Z.Type.Comments]:!1,[Z.Type.Unlock]:!1,[Z.Type.Contentful]:!1,[Z.Type.Formula]:!1});const x0=Object.freeze({[Z.Type.Style]:!1,[Z.Type.Hyperlink]:!1,[Z.Type.Continuous]:!1,[Z.Type.Contentful]:!1}),Qo="This sheet is protected. To make a change, unprotect the sheet. You might be requested to enter a password.",R0=(a="update")=>`Unable to ${a}, this sheet is protected. To make a change, unprotect the sheet. You might be requested to enter a password.`,ni="The range is outside of the bounds of the sheet.",Oh="Listener can not be null",Bh="We can't insert items. The sheet is protected.",Dh=a=>`We can't create a ${a} that overlaps with another table or merge.`,Lh="Overlapping ranges can not be merged.",ha="We can't insert cells because this would push values off the end of the worksheet. These cells may appear empty but they have some formatting or formulas. Delete enough rows or columns and try again.",Uh="Unable to partially fill over merged cells.",zh="Unable to sort merged cells unless they are all the same size.",le="Sheet has been closed. No further operations are allowed.",vr="IteratorContext can only be used during visit.",Ph="When using addresses directly from the sheet do not include the sheet name.",xg=a=>`Unable to return more than ${a} values. To access values in a more scalable solution use 'ICellRange.forEach' or an iterator.`,Wh="'setValue' expects a single value; when working with an array use 'setValue'.",Hh="Multiple selection ranges can not be copied.",Vh="Unable to determine source.",jh="When pasting before or after the cut area both areas must align.",A0=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Gh=new Set,il=typeof process=="object"&&process?process:{},Rg=(a,t,e,n)=>{typeof il.emitWarning=="function"?il.emitWarning(a,t,e,n):console.error(`[${e}] ${t}: ${a}`)};let ri=globalThis.AbortController,$h=globalThis.AbortSignal;if(ri===void 0){$h=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(e,n){this._onabort.push(n)}},ri=class{constructor(){t()}signal=new $h;abort(e){if(!this.signal.aborted){this.signal.reason=e,this.signal.aborted=!0;for(const n of this.signal._onabort)n(e);this.signal.onabort?.(e)}}};let a=il.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1";const t=()=>{a&&(a=!1,Rg("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}const wn=a=>a&&a===Math.floor(a)&&a>0&&isFinite(a),Ag=a=>wn(a)?a<=Math.pow(2,8)?Uint8Array:a<=Math.pow(2,16)?Uint16Array:a<=Math.pow(2,32)?Uint32Array:a<=Number.MAX_SAFE_INTEGER?zs:null:null;class zs extends Array{constructor(t){super(t),this.fill(0)}}class _r{heap;length;static#l=!1;static create(t){const e=Ag(t);if(!e)return[];_r.#l=!0;const n=new _r(t,e);return _r.#l=!1,n}constructor(t,e){if(!_r.#l)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}}class Ol{#l;#d;#f;#A;#p;#N;#k;#S;get perf(){return this.#S}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#o;#_;#r;#n;#t;#c;#u;#a;#s;#w;#i;#y;#C;#g;#E;#R;#h;#O;static unsafeExposeInternals(t){return{starts:t.#C,ttls:t.#g,sizes:t.#y,keyMap:t.#r,keyList:t.#n,valList:t.#t,next:t.#c,prev:t.#u,get head(){return t.#a},get tail(){return t.#s},free:t.#w,isBackgroundFetch:e=>t.#e(e),backgroundFetch:(e,n,r,o)=>t.#L(e,n,r,o),moveToTail:e=>t.#F(e),indexes:e=>t.#I(e),rindexes:e=>t.#b(e),isStale:e=>t.#m(e)}}get max(){return this.#l}get maxSize(){return this.#d}get calculatedSize(){return this.#_}get size(){return this.#o}get fetchMethod(){return this.#N}get memoMethod(){return this.#k}get dispose(){return this.#f}get onInsert(){return this.#A}get disposeAfter(){return this.#p}constructor(t){const{max:e=0,ttl:n,ttlResolution:r=1,ttlAutopurge:o,updateAgeOnGet:s,updateAgeOnHas:i,allowStale:l,dispose:c,onInsert:h,disposeAfter:d,noDisposeOnSet:u,noUpdateTTL:g,maxSize:m=0,maxEntrySize:f=0,sizeCalculation:p,fetchMethod:S,memoMethod:_,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:C,allowStaleOnFetchRejection:I,allowStaleOnFetchAbort:y,ignoreFetchAbort:b,perf:v}=t;if(v!==void 0&&typeof v?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#S=v??A0,e!==0&&!wn(e))throw new TypeError("max option must be a nonnegative integer");const R=e?Ag(e):Array;if(!R)throw new Error("invalid max value: "+e);if(this.#l=e,this.#d=m,this.maxEntrySize=f||this.#d,this.sizeCalculation=p,this.sizeCalculation){if(!this.#d&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(_!==void 0&&typeof _!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#k=_,S!==void 0&&typeof S!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#N=S,this.#R=!!S,this.#r=new Map,this.#n=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#c=new R(e),this.#u=new R(e),this.#a=0,this.#s=0,this.#w=_r.create(e),this.#o=0,this.#_=0,typeof c=="function"&&(this.#f=c),typeof h=="function"&&(this.#A=h),typeof d=="function"?(this.#p=d,this.#i=[]):(this.#p=void 0,this.#i=void 0),this.#E=!!this.#f,this.#O=!!this.#A,this.#h=!!this.#p,this.noDisposeOnSet=!!u,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!I,this.allowStaleOnFetchAbort=!!y,this.ignoreFetchAbort=!!b,this.maxEntrySize!==0){if(this.#d!==0&&!wn(this.#d))throw new TypeError("maxSize must be a positive integer if specified");if(!wn(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#j()}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!C,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!i,this.ttlResolution=wn(r)||r===0?r:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!wn(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#U()}if(this.#l===0&&this.ttl===0&&this.#d===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#l&&!this.#d){const x="LRU_CACHE_UNBOUNDED";(T=>!Gh.has(T))(x)&&(Gh.add(x),Rg("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",x,Ol))}}getRemainingTTL(t){return this.#r.has(t)?1/0:0}#U(){const t=new zs(this.#l),e=new zs(this.#l);this.#g=t,this.#C=e,this.#z=(o,s,i=this.#S.now())=>{if(e[o]=s!==0?i:0,t[o]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{this.#m(o)&&this.#v(this.#n[o],"expire")},s+1);l.unref&&l.unref()}},this.#T=o=>{e[o]=t[o]!==0?this.#S.now():0},this.#x=(o,s)=>{if(t[s]){const i=t[s],l=e[s];if(!i||!l)return;o.ttl=i,o.start=l,o.now=n||r();const c=o.now-l;o.remainingTTL=i-c}};let n=0;const r=()=>{const o=this.#S.now();if(this.ttlResolution>0){n=o;const s=setTimeout(()=>n=0,this.ttlResolution);s.unref&&s.unref()}return o};this.getRemainingTTL=o=>{const s=this.#r.get(o);if(s===void 0)return 0;const i=t[s],l=e[s];return!i||!l?1/0:i-((n||r())-l)},this.#m=o=>{const s=e[o],i=t[o];return!!i&&!!s&&(n||r())-s>i}}#T=()=>{};#x=()=>{};#z=()=>{};#m=()=>!1;#j(){const t=new zs(this.#l);this.#_=0,this.#y=t,this.#M=e=>{this.#_-=t[e],t[e]=0},this.#P=(e,n,r,o)=>{if(this.#e(n))return 0;if(!wn(r)){if(!o)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(r=o(n,e),!wn(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return r},this.#B=(e,n,r)=>{if(t[e]=n,this.#d){const o=this.#d-t[e];for(;this.#_>o;)this.#D(!0)}this.#_+=t[e],r&&(r.entrySize=n,r.totalCalculatedSize=this.#_)}}#M=t=>{};#B=(t,e,n)=>{};#P=(t,e,n,r)=>{if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:t=this.allowStale}={}){if(this.#o)for(let e=this.#s;this.#W(e)&&(!t&&this.#m(e)||(yield e),e!==this.#a);)e=this.#u[e]}*#b({allowStale:t=this.allowStale}={}){if(this.#o)for(let e=this.#a;this.#W(e)&&(!t&&this.#m(e)||(yield e),e!==this.#s);)e=this.#c[e]}#W(t){return t!==void 0&&this.#r.get(this.#n[t])===t}*entries(){for(const t of this.#I())this.#t[t]===void 0||this.#n[t]===void 0||this.#e(this.#t[t])||(yield[this.#n[t],this.#t[t]])}*rentries(){for(const t of this.#b())this.#t[t]===void 0||this.#n[t]===void 0||this.#e(this.#t[t])||(yield[this.#n[t],this.#t[t]])}*keys(){for(const t of this.#I()){const e=this.#n[t];e===void 0||this.#e(this.#t[t])||(yield e)}}*rkeys(){for(const t of this.#b()){const e=this.#n[t];e===void 0||this.#e(this.#t[t])||(yield e)}}*values(){for(const t of this.#I())this.#t[t]===void 0||this.#e(this.#t[t])||(yield this.#t[t])}*rvalues(){for(const t of this.#b())this.#t[t]===void 0||this.#e(this.#t[t])||(yield this.#t[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(const n of this.#I()){const r=this.#t[n],o=this.#e(r)?r.__staleWhileFetching:r;if(o!==void 0&&t(o,this.#n[n],this))return this.get(this.#n[n],e)}}forEach(t,e=this){for(const n of this.#I()){const r=this.#t[n],o=this.#e(r)?r.__staleWhileFetching:r;o!==void 0&&t.call(e,o,this.#n[n],this)}}rforEach(t,e=this){for(const n of this.#b()){const r=this.#t[n],o=this.#e(r)?r.__staleWhileFetching:r;o!==void 0&&t.call(e,o,this.#n[n],this)}}purgeStale(){let t=!1;for(const e of this.#b({allowStale:!0}))this.#m(e)&&(this.#v(this.#n[e],"expire"),t=!0);return t}info(t){const e=this.#r.get(t);if(e===void 0)return;const n=this.#t[e],r=this.#e(n)?n.__staleWhileFetching:n;if(r===void 0)return;const o={value:r};if(this.#g&&this.#C){const s=this.#g[e],i=this.#C[e];if(s&&i){const l=s-(this.#S.now()-i);o.ttl=l,o.start=Date.now()}}return this.#y&&(o.size=this.#y[e]),o}dump(){const t=[];for(const e of this.#I({allowStale:!0})){const n=this.#n[e],r=this.#t[e],o=this.#e(r)?r.__staleWhileFetching:r;if(o===void 0||n===void 0)continue;const s={value:o};if(this.#g&&this.#C){s.ttl=this.#g[e];const i=this.#S.now()-this.#C[e];s.start=Math.floor(Date.now()-i)}this.#y&&(s.size=this.#y[e]),t.unshift([n,s])}return t}load(t){this.clear();for(const[e,n]of t){if(n.start){const r=Date.now()-n.start;n.start=this.#S.now()-r}this.set(e,n.value,n)}}set(t,e,n={}){if(e===void 0)return this.delete(t),this;const{ttl:r=this.ttl,start:o,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:i=this.sizeCalculation,status:l}=n;let{noUpdateTTL:c=this.noUpdateTTL}=n;const h=this.#P(t,e,n.size||0,i);if(this.maxEntrySize&&h>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.#v(t,"set"),this;let d=this.#o===0?void 0:this.#r.get(t);if(d===void 0)d=this.#o===0?this.#s:this.#w.length!==0?this.#w.pop():this.#o===this.#l?this.#D(!1):this.#o,this.#n[d]=t,this.#t[d]=e,this.#r.set(t,d),this.#c[this.#s]=d,this.#u[d]=this.#s,this.#s=d,this.#o++,this.#B(d,h,l),l&&(l.set="add"),c=!1,this.#O&&this.#A?.(e,t,"add");else{this.#F(d);const u=this.#t[d];if(e!==u){if(this.#R&&this.#e(u)){u.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:g}=u;g===void 0||s||(this.#E&&this.#f?.(g,t,"set"),this.#h&&this.#i?.push([g,t,"set"]))}else s||(this.#E&&this.#f?.(u,t,"set"),this.#h&&this.#i?.push([u,t,"set"]));if(this.#M(d),this.#B(d,h,l),this.#t[d]=e,l){l.set="replace";const g=u&&this.#e(u)?u.__staleWhileFetching:u;g!==void 0&&(l.oldValue=g)}}else l&&(l.set="update");this.#O&&this.onInsert?.(e,t,e===u?"update":"replace")}if(r===0||this.#g||this.#U(),this.#g&&(c||this.#z(d,r,o),l&&this.#x(l,d)),!s&&this.#h&&this.#i){const u=this.#i;let g;for(;g=u?.shift();)this.#p?.(...g)}return this}pop(){try{for(;this.#o;){const t=this.#t[this.#a];if(this.#D(!0),this.#e(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#h&&this.#i){const t=this.#i;let e;for(;e=t?.shift();)this.#p?.(...e)}}}#D(t){const e=this.#a,n=this.#n[e],r=this.#t[e];return this.#R&&this.#e(r)?r.__abortController.abort(new Error("evicted")):(this.#E||this.#h)&&(this.#E&&this.#f?.(r,n,"evict"),this.#h&&this.#i?.push([r,n,"evict"])),this.#M(e),t&&(this.#n[e]=void 0,this.#t[e]=void 0,this.#w.push(e)),this.#o===1?(this.#a=this.#s=0,this.#w.length=0):this.#a=this.#c[e],this.#r.delete(n),this.#o--,e}has(t,e={}){const{updateAgeOnHas:n=this.updateAgeOnHas,status:r}=e,o=this.#r.get(t);if(o!==void 0){const s=this.#t[o];if(this.#e(s)&&s.__staleWhileFetching===void 0)return!1;if(!this.#m(o))return n&&this.#T(o),r&&(r.has="hit",this.#x(r,o)),!0;r&&(r.has="stale",this.#x(r,o))}else r&&(r.has="miss");return!1}peek(t,e={}){const{allowStale:n=this.allowStale}=e,r=this.#r.get(t);if(r===void 0||!n&&this.#m(r))return;const o=this.#t[r];return this.#e(o)?o.__staleWhileFetching:o}#L(t,e,n,r){const o=e===void 0?void 0:this.#t[e];if(this.#e(o))return o;const s=new ri,{signal:i}=n;i?.addEventListener("abort",()=>s.abort(i.reason),{signal:s.signal});const l={signal:s.signal,options:n,context:r},c=(g,m=!1)=>{const{aborted:f}=s.signal,p=n.ignoreFetchAbort&&g!==void 0;if(n.status&&(f&&!m?(n.status.fetchAborted=!0,n.status.fetchError=s.signal.reason,p&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),f&&!p&&!m)return h(s.signal.reason);const S=d,_=this.#t[e];return(_===d||p&&m&&_===void 0)&&(g===void 0?S.__staleWhileFetching!==void 0?this.#t[e]=S.__staleWhileFetching:this.#v(t,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(t,g,l.options))),g},h=g=>{const{aborted:m}=s.signal,f=m&&n.allowStaleOnFetchAbort,p=f||n.allowStaleOnFetchRejection,S=p||n.noDeleteOnFetchRejection,_=d;if(this.#t[e]===d&&(!S||_.__staleWhileFetching===void 0?this.#v(t,"fetch"):f||(this.#t[e]=_.__staleWhileFetching)),p)return n.status&&_.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),_.__staleWhileFetching;if(_.__returned===_)throw g};n.status&&(n.status.fetchDispatched=!0);const d=new Promise((g,m)=>{const f=this.#N?.(t,o,l);f&&f instanceof Promise&&f.then(p=>g(p===void 0?void 0:p),m),s.signal.addEventListener("abort",()=>{n.ignoreFetchAbort&&!n.allowStaleOnFetchAbort||(g(void 0),n.allowStaleOnFetchAbort&&(g=p=>c(p,!0)))})}).then(c,g=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=g),h(g))),u=Object.assign(d,{__abortController:s,__staleWhileFetching:o,__returned:void 0});return e===void 0?(this.set(t,u,{...l.options,status:void 0}),e=this.#r.get(t)):this.#t[e]=u,u}#e(t){if(!this.#R)return!1;const e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof ri}async fetch(t,e={}){const{allowStale:n=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:i=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:h=this.noUpdateTTL,noDeleteOnFetchRejection:d=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:f,forceRefresh:p=!1,status:S,signal:_}=e;if(!this.#R)return S&&(S.fetch="get"),this.get(t,{allowStale:n,updateAgeOnGet:r,noDeleteOnStaleGet:o,status:S});const E={allowStale:n,updateAgeOnGet:r,noDeleteOnStaleGet:o,ttl:s,noDisposeOnSet:i,size:l,sizeCalculation:c,noUpdateTTL:h,noDeleteOnFetchRejection:d,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:m,ignoreFetchAbort:g,status:S,signal:_};let C=this.#r.get(t);if(C===void 0){S&&(S.fetch="miss");const I=this.#L(t,C,E,f);return I.__returned=I}{const I=this.#t[C];if(this.#e(I)){const R=n&&I.__staleWhileFetching!==void 0;return S&&(S.fetch="inflight",R&&(S.returnedStale=!0)),R?I.__staleWhileFetching:I.__returned=I}const y=this.#m(C);if(!p&&!y)return S&&(S.fetch="hit"),this.#F(C),r&&this.#T(C),S&&this.#x(S,C),I;const b=this.#L(t,C,E,f),v=b.__staleWhileFetching!==void 0&&n;return S&&(S.fetch=y?"stale":"refresh",v&&y&&(S.returnedStale=!0)),v?b.__staleWhileFetching:b.__returned=b}}async forceFetch(t,e={}){const n=await this.fetch(t,e);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(t,e={}){const n=this.#k;if(!n)throw new Error("no memoMethod provided to constructor");const{context:r,forceRefresh:o,...s}=e,i=this.get(t,s);if(!o&&i!==void 0)return i;const l=n(t,i,{options:s,context:r});return this.set(t,l,s),l}get(t,e={}){const{allowStale:n=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:s}=e,i=this.#r.get(t);if(i!==void 0){const l=this.#t[i],c=this.#e(l);return s&&this.#x(s,i),this.#m(i)?(s&&(s.get="stale"),c?(s&&n&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),n?l.__staleWhileFetching:void 0):(o||this.#v(t,"expire"),s&&n&&(s.returnedStale=!0),n?l:void 0)):(s&&(s.get="hit"),c?l.__staleWhileFetching:(this.#F(i),r&&this.#T(i),l))}s&&(s.get="miss")}#H(t,e){this.#u[e]=t,this.#c[t]=e}#F(t){t!==this.#s&&(t===this.#a?this.#a=this.#c[t]:this.#H(this.#u[t],this.#c[t]),this.#H(this.#s,t),this.#s=t)}delete(t){return this.#v(t,"delete")}#v(t,e){let n=!1;if(this.#o!==0){const r=this.#r.get(t);if(r!==void 0)if(n=!0,this.#o===1)this.#V(e);else{this.#M(r);const o=this.#t[r];if(this.#e(o)?o.__abortController.abort(new Error("deleted")):(this.#E||this.#h)&&(this.#E&&this.#f?.(o,t,e),this.#h&&this.#i?.push([o,t,e])),this.#r.delete(t),this.#n[r]=void 0,this.#t[r]=void 0,r===this.#s)this.#s=this.#u[r];else if(r===this.#a)this.#a=this.#c[r];else{const s=this.#u[r];this.#c[s]=this.#c[r];const i=this.#c[r];this.#u[i]=this.#u[r]}this.#o--,this.#w.push(r)}}if(this.#h&&this.#i?.length){const r=this.#i;let o;for(;o=r?.shift();)this.#p?.(...o)}return n}clear(){return this.#V("delete")}#V(t){for(const e of this.#b({allowStale:!0})){const n=this.#t[e];if(this.#e(n))n.__abortController.abort(new Error("deleted"));else{const r=this.#n[e];this.#E&&this.#f?.(n,r,t),this.#h&&this.#i?.push([n,r,t])}}if(this.#r.clear(),this.#t.fill(void 0),this.#n.fill(void 0),this.#g&&this.#C&&(this.#g.fill(0),this.#C.fill(0)),this.#y&&this.#y.fill(0),this.#a=0,this.#s=0,this.#w.length=0,this.#_=0,this.#o=0,this.#h&&this.#i){const e=this.#i;let n;for(;n=e?.shift();)this.#p?.(...n)}}}var Jh;exports.ICell=void 0,(Jh=exports.ICell||(exports.ICell={})).CalcStatus={Ready:"ready",Stale:"stale",Pending:"pending",Streaming:"streaming"},Jh.Content={Values:"values",Formats:"formats",Formulas:"formula",Hyperlinks:"hyperlinks",Tables:"tables",Notes:"notes",Comments:"comments",Warnings:"warnings",Errors:"errors",Merges:"merges"};class T0{constructor(t,e,n){if(!n)throw new w.NullNotAllowedError;if(typeof n=="string"&&(n={address:n}),typeof n.address!="string")throw new Error("Invalid hyperlink");this._t=t,this._r=e,this._p=n}open(t,e){return this._r(this.getAddress(),null,t??this.getTarget(),e)}getTarget(){let t=this._p.target;return t||(this._p.address.startsWith("#")?"_self":"_blank")}getDisplayText(){return this._t()??this.getAddress()}getAddress(){return this._p.address??""}getTooltip(){return this._p.tooltip??null}get isIHyperlink(){return!0}}function qh(a){return!/^(-?\d|--)/.test(a)}function Xh(a){const t=[];let e="",n="",r=7;for(let o,s=0;o=a.charAt(s);s++)if(/[a-zA-Z\d\xa0-\uffff_-]/.test(o)&&r===7)e+=o;else if(o==="\\"&&r===7)r=6;else if(o===" "&&r===7){if(e!==""){if(!qh(e))return null;t.push(e),e=""}}else if(r===6)/[0-9a-f]/i.test(o)?(n+=o,r=8):(e+=o,r=7);else{if(r!==8)return null;/[0-9a-f]/i.test(o)&&n.length<6?n+=o:(e+=String.fromCodePoint(parseInt(n,16)),e+=o,n="",r=7)}if(e!==""){if(!qh(e))return null;t.push(e)}return t.join(" ")}function Kh(a,t){let e=t,n="";const r={"font-family":[]};for(let o,s=0;o=a.charAt(s);s+=1)if(e!==4||o!=='"'&&o!=="'")if(e===3&&o===",")e=4,n="";else if(e===4&&o===","){const i=Xh(n);i&&r["font-family"].push(i),n=""}else if(e===5&&o===" ")/^(?:\+|-)?(?:[0-9]*\.)?[0-9]+(?:deg|grad|rad|turn)$/.test(n)?(r["font-style"]+=" "+n,n=""):s-=1,e=1;else if(e!==1||o!==" "&&o!=="/")e===2&&o===" "?(/^(?:\+|-)?([0-9]*\.)?[0-9]+(?:em|ex|ch|rem|vh|vw|vmin|vmax|px|mm|cm|in|pt|pc|%)?$/.test(n)&&(r["line-height"]=n),e=4,n=""):n+=o;else{if(/^(?:(?:xx|x)-large|(?:xx|s)-small|small|large|medium)$/.test(n)||/^(?:larg|small)er$/.test(n)||/^(?:\+|-)?(?:[0-9]*\.)?[0-9]+(?:em|ex|ch|rem|vh|vw|vmin|vmax|px|mm|cm|in|pt|pc|%)$/.test(n))e=o==="/"?2:4,r["font-size"]=n;else if(/^italic$/.test(n))r["font-style"]=n;else if(/^oblique$/.test(n))r["font-style"]=n,e=5;else if(/^small-caps$/.test(n))r["font-variant"]=n;else if(/^(?:bold(?:er)?|lighter|normal)$/.test(n))r["font-weight"]=n;else if(/^[+-]?(?:[0-9]*\.)?[0-9]+(?:e[+-]?(?:0|[1-9][0-9]*))?$/.test(n)){const i=parseFloat(n);i>=1&&i<=1e3&&(r["font-weight"]=n)}else/^(?:(?:ultra|extra|semi)-)?(?:condensed|expanded)$/.test(n)&&(r["font-stretch"]=n);n=""}else{let i=s+1;do if(i=a.indexOf(o,i)+1,!i)return null;while(a.charAt(i-2)==="\\");r["font-family"].push(a.slice(s+1,i-1).replace(/\\('|")/g,"$1")),s=i-1,e=3,n=""}if(e===3&&!/^\s*$/.test(n))return null;if(e===4){const o=Xh(n);o&&r["font-family"].push(o)}return r}const Ps=a=>{if(typeof a!="string")return null;let t=(function(o){const s=Kh(o,4);return s!==null?s["font-family"]:null})(a);Array.isArray(t)&&t.length===0&&(t=null),t=t?{"font-family":t}:(function(o){const s=Kh(o,1);return s!==null&&s["font-size"]&&s["font-family"].length?s:null})(a);let e=null,n=null,r=null;if(t){let o=t["font-family"];const s=o.shift();s&&(e=s),o.length>0&&(n=o),t["font-size"]!==void 0&&(r=t["font-size"])}return{family:e,fallbacks:n,size:r}},We=(a,t=!1)=>a?.toHex(t)?.toString(!1).toLowerCase()??null,Yh=a=>a==null?null:w.CommonUtils.roundAccurately(a,2)+"pt",Tg=(a,t)=>{let e="";const n=a&&a!==exports.IFont.UnderlineStyle.None;return t&&(e+="line-through"),n&&t&&(e+=" "),n&&(e+="underline",a!==!0&&a!==exports.IFont.UnderlineStyle.Single&&a!==exports.IFont.UnderlineStyle.SingleAccounting||(e+=" solid"),a!==exports.IFont.UnderlineStyle.Double&&a!==exports.IFont.UnderlineStyle.DoubleAccounting||(e+=" double")),e},M0=Object.freeze({underline:exports.IFont.UnderlineStyle.None,strike:!1}),Mg=a=>a?(a=a.toLowerCase())==="single"?exports.IFont.UnderlineStyle.Single:a==="double"?exports.IFont.UnderlineStyle.Double:a==="single-accounting"||a==="singleaccounting"?exports.IFont.UnderlineStyle.SingleAccounting:a==="double-accounting"||a==="doubleaccounting"?exports.IFont.UnderlineStyle.DoubleAccounting:exports.IFont.UnderlineStyle.None:exports.IFont.UnderlineStyle.None,Qh=a=>a?a.toLowerCase():null,Zh=a=>a?a===exports.ITextFrame.Overflow.Visible||a===exports.ITextFrame.Overflow.Clip||a===exports.ITextFrame.Overflow.Shrink?"nowrap":a===exports.ITextFrame.Overflow.Wrap?"normal":void 0:null,oi=(a,t)=>{let e="";if(a&&(a.includes(" ")&&(a='"'+a+'"'),e=a),t)for(let n=0;n<t.length;n++)e.length>0&&(e+=", "),e+=t[n];return e},td=a=>{let t="",e=!1,n="";for(let r=0;r<a.length;r++){const o=a.charAt(r);e&&o!=="]"&&o!=='"'?t+=o:o==='"'?(t+="\\0022",e=!e):["[","]",",","#",".","@","/",":",";","-"," "].includes(o)?(t+="\\"+o,o==="["?e=!0:o==="]"&&(e=!1)):["(",")"].includes(o)?t+=n==="_"?"\\"+o:"\\\\\\"+o:["$"].includes(o)?t+="\\0022"+o+"\\0022":t+=o,n=o}return'"'+t+'"'},F0="Thin",N0="Hairline",k0="Extra Light",O0="Ultra Light",B0="Light",ed="Normal",D0="Regular",L0="Medium",U0="Semi Bold",z0="Demi Bold",P0="Bold",W0="Extra Bold",H0="Ultra Bold",V0="Black",j0="Heavy",G0="Extra Black",$0="Ultra Black",J0="lighter",q0="normal",X0="bold",K0="bolder",Ot=new Map;Ot.set(w.CommonUtils.textToKey(F0),100),Ot.set(w.CommonUtils.textToKey(N0),100),Ot.set(w.CommonUtils.textToKey(k0),200),Ot.set(w.CommonUtils.textToKey(O0),200),Ot.set(w.CommonUtils.textToKey(B0),300),Ot.set(w.CommonUtils.textToKey(ed),400),Ot.set(w.CommonUtils.textToKey(D0),400),Ot.set(w.CommonUtils.textToKey(L0),500),Ot.set(w.CommonUtils.textToKey(U0),600),Ot.set(w.CommonUtils.textToKey(z0),600),Ot.set(w.CommonUtils.textToKey(ed),400),Ot.set(w.CommonUtils.textToKey(P0),700),Ot.set(w.CommonUtils.textToKey(W0),800),Ot.set(w.CommonUtils.textToKey(H0),800),Ot.set(w.CommonUtils.textToKey(V0),900),Ot.set(w.CommonUtils.textToKey(j0),900),Ot.set(w.CommonUtils.textToKey(G0),950),Ot.set(w.CommonUtils.textToKey($0),950),Ot.set(w.CommonUtils.textToKey(J0),100),Ot.set(w.CommonUtils.textToKey(q0),400),Ot.set(w.CommonUtils.textToKey(X0),700),Ot.set(w.CommonUtils.textToKey(K0),700);const Y0="xx-small",Q0="x-small",Z0="small",tS="medium",eS="large",nS="x-large",rS="xx-large",oS="xxx-large",sS="smaller",iS="larger",aS="math",lS=new RegExp("^[0-9]*[.]?[0-9]+$","g"),we=new Map;we.set(w.CommonUtils.textToKey(Y0),a=>.4*a),we.set(w.CommonUtils.textToKey(Q0),a=>.5*a),we.set(w.CommonUtils.textToKey(Z0),a=>.6*a),we.set(w.CommonUtils.textToKey(tS),a=>a),we.set(w.CommonUtils.textToKey(eS),a=>1.1*a),we.set(w.CommonUtils.textToKey(nS),a=>1.25*a),we.set(w.CommonUtils.textToKey(rS),a=>1.5*a),we.set(w.CommonUtils.textToKey(oS),a=>2*a),we.set(w.CommonUtils.textToKey(sS),a=>.9*a),we.set(w.CommonUtils.textToKey(iS),a=>1.1*a),we.set(w.CommonUtils.textToKey(aS),a=>a);const xr=(a,t=11,e="pt")=>{if(!a)return null;let n=t;a=a.trim().toLowerCase();const r=e==="pt"?exports.IFont.getDeviceScale():1,o=e==="pt"?1:exports.IFont.getDeviceScale();if(lS.test(a)){const s=parseFloat(a);isNaN(s)||(a=s+e)}if(a.endsWith("pt"))n=parseFloat(a.substring(0,a.length-2).trim())*o;else if(a.endsWith("px"))n=parseFloat(a.substring(0,a.length-2).trim())/r;else if(a.endsWith("em"))n=parseFloat(a.substring(0,a.length-2).trim())*t;else if(a.endsWith("rem"))n=parseFloat(a.substring(0,a.length-3).trim())*t;else if(a.endsWith("%"))n=parseFloat(a.substring(0,a.length-1).trim())/100*t;else if(typeof a=="string"){const s=w.CommonUtils.textToKey(a),i=we.get(s);if(i)return i(t)}return isNaN(n)?null:n},Ut=new Map;Ut.set(exports.IFill.BuiltInSheetPattern.None,{description:"None",cssKey:"none"}),Ut.set(exports.IFill.BuiltInSheetPattern.Solid,{description:"Solid",cssKey:"solid"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkGray,{description:"75% gray",cssKey:"gray-75"}),Ut.set(exports.IFill.BuiltInSheetPattern.MediumGray,{description:"50% gray",cssKey:"gray-50"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightGray,{description:"25% gray",cssKey:"gray-25"}),Ut.set(exports.IFill.BuiltInSheetPattern.Gray125,{description:"12.5% Gray",cssKey:"gray-125"}),Ut.set(exports.IFill.BuiltInSheetPattern.Gray0625,{description:"6.25% Gray",cssKey:"gray-0625"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkHorizontal,{description:"Horizontal Strip",cssKey:"horz-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkVertical,{description:"Vertical Strip",cssKey:"vert-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkDown,{description:"Reverse Diagonal Stripe",cssKey:"reverse-diag-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkUp,{description:"Diagonal Strip",cssKey:"diag-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkGrid,{description:"Diagonal Crosshatch",cssKey:"diag-cross"}),Ut.set(exports.IFill.BuiltInSheetPattern.DarkTrellis,{description:"Thick Diagonal Crosshatch",cssKey:"thick-diag-cross"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightHorizontal,{description:"Thin Horizontal Stripe",cssKey:"thin-horz-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightVertical,{description:"Thin Vertical Stripe",cssKey:"thin-vert-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightDown,{description:"Thin Reverse Diagonal Stripe",cssKey:"thin-reverse-diag-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightUp,{description:"Thin Diagonal Stripe",cssKey:"thin-diag-stripe"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightGrid,{description:"Thin Horizontal Cross",cssKey:"thin-horz-cross"}),Ut.set(exports.IFill.BuiltInSheetPattern.LightTrellis,{description:"Thin Diagonal Cross",cssKey:"thin-diag-cross"});let Ws="";const Fg=new Map;Ut.forEach((a,t)=>{Ws.length>0&&(Ws+="|"),Ws+="\\b"+a.cssKey+"\\b",Fg.set(a.cssKey,t)});const cS=new RegExp(`(\\s*(?:${Ws}))`,"g"),hS=a=>{if(!a)return null;let t=a.toLowerCase();t=t.replace(/;/,"");let e=t.match(cS);if(!e)return null;let n=null;e&&e.length>0&&(n=(o=>{if(!o)return null;let s=t.indexOf(o);return t=t.substring(0,s)+t.substring(s+o.length,t.length),o.trim()})(e[0])),t=t.trim();const r=t?t.trim():null;return!n&&!r?null:{patternType:Fg.get(n??"solid"),foreground:r??null}},Ng=(a,t=!1,e=null)=>{if(!a||!a.getStops()||a.getStops().length<1)return null;if(a.getStops().length===1)return We(a.getStops()[0].getColor(),t);let n="";for(let o=0;o<a.getStops().length;o++){const s=a.getStops()[o];n+=We(s.getColor(),t)+" "+100*(s.getOffset()??o*(a.getStops().length-1))+"%",o<a.getStops().length-1&&(n+=", ")}let r=a.getAngle()??0;if(a.getGradientType()===exports.IFill.GradientType.Path){const o=We(a.getStops()[0]?.getColor(),t),s=We((a.getStops()[1]??a.getStops()[0])?.getColor(),t),i=a.getFillTo()??{left:0,top:0,right:0,bottom:0},l=-1;let c=`${100-l}% ${100-l}%`;if(r=315,i.left===1&&i.right===1&&i.right===1&&i.bottom===1)r=135,c=`${l}% ${l}%`;else if(i.top!==0&&i.bottom!==0&&i.left===0&&i.right===0)r=225,c=`${100-l}% ${l}%`;else if(i.left===1&&i.right!==0&&i.top===0&&i.bottom===0)r=45,c=`${l}% ${100-l}%`;else if(i.left!==0&&i.right!==0&&i.top!==0&&i.bottom!==0)return`radial-gradient(${n})`;const h=70;return`conic-gradient(from ${r}deg at ${c}, ${o} 0deg, ${s} ${h/2}deg,${s} ${360-h/2}deg, ${o} 360deg)`}return`linear-gradient(${r}deg, ${n})`},re=new Map;re.set(exports.IBorder.StrokeStyle.None,{size:null,cssKey:"none"}),re.set(exports.IBorder.StrokeStyle.DashDot,{size:.5,cssKey:"dot-dash"}),re.set(exports.IBorder.StrokeStyle.DashDotDot,{size:.5,cssKey:"dot-dot-dash"}),re.set(exports.IBorder.StrokeStyle.Dashed,{size:.5,cssKey:"dashed"}),re.set(exports.IBorder.StrokeStyle.MediumDashed,{size:1,cssKey:"dashed"}),re.set(exports.IBorder.StrokeStyle.Dotted,{size:.5,cssKey:"dotted"}),re.set(exports.IBorder.StrokeStyle.MediumDashDot,{size:1,cssKey:"dot-dash"}),re.set(exports.IBorder.StrokeStyle.MediumDashDotDot,{size:1,cssKey:"dot-dot-dash"}),re.set(exports.IBorder.StrokeStyle.Hair,{size:.5,cssKey:"hairline"}),re.set(exports.IBorder.StrokeStyle.Thin,{size:.5,cssKey:"solid"}),re.set(exports.IBorder.StrokeStyle.Thick,{size:1.5,cssKey:"solid"}),re.set(exports.IBorder.StrokeStyle.Medium,{size:1,cssKey:"solid"}),re.set(exports.IBorder.StrokeStyle.Double,{size:2,cssKey:"double"}),re.set(exports.IBorder.StrokeStyle.SlantDashDot,{size:1,cssKey:"dot-dash-slanted"});const zn=a=>{if(!a)return"none";const t=re.get(a.getStyle());if(!t)return null;if(t.cssKey==="none")return t.cssKey;let e=((n,r=!1)=>n?.toRGBA(r).toString(!1)??null)(a?.getColor());return e=e?" "+e:"",`${t.size!==null?`${t.size}pt `:""}${t.cssKey}${e}`};let yi=[];const nd=new Set,al=new Map,yo=(a,t)=>{let e=a.size!==null?`${a.size.toString()} ${a.cssKey}`:a.cssKey;al.set(e,t),nd.has(a.cssKey)||(yi.push(a.cssKey),nd.add(a.cssKey))};re.forEach(yo);const da=Object.keys(exports.IBorder.StrokeStyle);for(let a=0;a<da.length;a++)yo({size:null,cssKey:da[a].toLowerCase()},exports.IBorder.StrokeStyle[da[a]]);yo({size:null,cssKey:"double"},exports.IBorder.StrokeStyle.Double),yo({size:null,cssKey:"solid"},exports.IBorder.StrokeStyle.Medium),yo({size:null,cssKey:"hidden"},exports.IBorder.StrokeStyle.None),yi.sort((a,t)=>t.length-a.length);let Hs="";const dS=yi.length;for(let a=0;a<dS;a++)Hs.length>0&&(Hs+="|"),Hs+="\\b"+yi[a]+"\\b";const uS=new RegExp(`(\\s*(?:${Hs}))`,"g"),gS=new RegExp("(\\s*[0-9]*[.]?[0-9]+(?:pt|px){0,1})","g"),kg=(a,t)=>{if(!a)return null;let e=a.toLowerCase(),n=e.match(uS);if(!n){const h=t?.(e);return h?{color:h,style:exports.IBorder.StrokeStyle.Medium}:null}const r=h=>{if(!h)return null;let d=e.indexOf(h);return e=e.substring(0,d)+e.substring(d+h.length,e.length).trim(),h.trim()};let o=null;if(n&&n.length>0&&(o=r(n[0])),!o)return null;let s=null;if(n=e.match(gS),n&&n.length>0){let h=r(n[0]);s=parseFloat(h.substring(0,h.length-2))}e=e.trim();const i=e?e.trim():null;let l=s===null?o:`${s.toString()} ${o}`,c=al.get(l);return c||(c=al.get(o)),c?{color:i,style:c}:null},mS="start",fS="end",pS="left",SS="right",_S="center",wS="justify",yS="justify-all",CS="baseline",ES="top",IS="middle",bS="bottom",vS="sub",xS="text-top",RS="justify",AS="distributed",yn=new Map;yn.set(w.CommonUtils.textToKey(mS),exports.ITextFrame.HorizontalAlignment.Left),yn.set(w.CommonUtils.textToKey(pS),exports.ITextFrame.HorizontalAlignment.Left),yn.set(w.CommonUtils.textToKey(fS),exports.ITextFrame.HorizontalAlignment.Right),yn.set(w.CommonUtils.textToKey(SS),exports.ITextFrame.HorizontalAlignment.Right),yn.set(w.CommonUtils.textToKey(_S),exports.ITextFrame.HorizontalAlignment.Center),yn.set(w.CommonUtils.textToKey(wS),exports.ITextFrame.HorizontalAlignment.Justify),yn.set(w.CommonUtils.textToKey(yS),exports.ITextFrame.HorizontalAlignment.Justify);const Ye=new Map;Ye.set(w.CommonUtils.textToKey(CS),exports.ITextFrame.VerticalAlignment.Bottom),Ye.set(w.CommonUtils.textToKey(ES),exports.ITextFrame.VerticalAlignment.Top),Ye.set(w.CommonUtils.textToKey(IS),exports.ITextFrame.VerticalAlignment.Center),Ye.set(w.CommonUtils.textToKey(bS),exports.ITextFrame.VerticalAlignment.Bottom),Ye.set(w.CommonUtils.textToKey(vS),exports.ITextFrame.VerticalAlignment.Bottom),Ye.set(w.CommonUtils.textToKey(xS),exports.ITextFrame.VerticalAlignment.Top),Ye.set(w.CommonUtils.textToKey(RS),exports.ITextFrame.VerticalAlignment.Justify),Ye.set(w.CommonUtils.textToKey(AS),exports.ITextFrame.VerticalAlignment.Distributed);const ll=a=>{if(a instanceof Pt)return{color:a.toString()};if(typeof a=="string")try{return{color:a==="none"||a==="transparent"?null:a}}catch(t){throw t}return a},vo={shorthand:(a,t)=>{if(!a||a==="none"||a==="transparent")return null;try{return t.parseColor(a).toString()}catch(e){console.warn("error",e)}return a},merge:(a,t,e)=>a},fn={shorthand:(a,t)=>{if(a.isIStroke)return a.getProperties();if(typeof a=="string"&&(a=kg(a,n=>{try{return t.parseColor(n).toString()}catch{}return null})),!a)return null;const e={};return a.style&&(e.style=a.style),a.color&&(e.color=a.color),e},properties:{color:vo}},TS={shorthand:(a,t)=>{if(a.isIBorder)return a.getProperties();if(typeof a=="string"){const e=kg(a,n=>{try{return t.parseColor(n).toString()}catch{}return null});return{left:e,right:e,top:e,bottom:e,horizontal:null,vertical:null,diagonalUp:null,diagonalDown:null}}return a},properties:{top:fn,left:fn,right:fn,bottom:fn,horizontal:fn,vertical:fn,diagonalUp:fn,diagonalDown:fn}},MS={shorthand:(a,t)=>{if(typeof a=="string"){let e=exports.NumberFormat.Styles.lookupDefault(a);return e!==void 0?e:a}return typeof a=="number"?Al(a):null}},FS={shorthand:(a,t)=>{if(a.isIStyledFont)return a.toJSON();if(typeof a=="string"){const e=Ps(a);if(e){const n={};if(e.family&&(n.family=e.family),e.fallbacks&&(n.fallbacks=e.fallbacks),e.size&&(n.size=xr(e.size)),Object.keys(e).length>0)return n}}return a},properties:{family:{shorthand:(a,t)=>Ps(a)?.family??null},fallbacks:{shorthand:(a,t)=>{if(typeof a!="string")return a;let e=Ps(a);if(!e)return null;let n=[e.family];return e.fallbacks&&(n=n.concat(e.fallbacks)),n}},size:{shorthand:(a,t)=>{let e=a;return typeof a=="string"&&(e=xr(a,t.getNormal().getFont().getSize())),isNaN(e)||typeof e!="number"?null:(e=Math.max(1,Math.min(w.CommonUtils.roundAccurately(e,1),409)),e)}},weight:{shorthand:(a,t)=>{if(typeof a!="string")return a;const e=(n=>{let r=400;if(r=typeof n=="number"?n:parseFloat(n),!isNaN(r))return r;if(typeof n=="string"){const o=w.CommonUtils.textToKey(n),s=Ot.get(o);if(s)return s}return r})(a);return isNaN(e)||typeof e!="number"?null:e}},underline:{shorthand:(a,t)=>a?a===!0?exports.IFont.UnderlineStyle.Single:Mg(a):exports.IFont.UnderlineStyle.None}}},NS={properties:{indent:{shorthand:(a,t)=>{let e=a;return typeof a=="string"&&(e=parseFloat(a)),isNaN(e)||typeof e!="number"?null:e}},rotation:{shorthand:(a,t)=>{let e=a;return typeof a=="string"&&(e=parseFloat(a)),isNaN(e)||typeof e!="number"?null:(e%=360,e<0&&(e+=360),e)}}}},Og={shorthand:(a,t)=>a==="none"||a==="transparent"||typeof a=="object"&&Object.keys(a).length===0?{type:exports.IFill.Type.None}:(a.getType?.(),exports.IFill.Type.None,a)},Bg={shorthand:a=>(typeof(a=ll(a))=="object"&&a.color&&(a.type=exports.IFill.Type.Solid),a),merge:(a,t)=>a.color?a:(t?.toJSON&&(t=t.toJSON()),t?.type===exports.IFill.Type.Solid?{...t}:t?.type===exports.IFill.Type.Gradient?{type:exports.IFill.Type.Solid,color:t?.stops?.[0]?.color??exports.IColor.Scheme.Bg1}:t?.type===exports.IFill.Type.Pattern?{type:exports.IFill.Type.Solid,color:t?.foreground??exports.IColor.Scheme.Bg1}:a?{...a}:null),properties:{color:vo}},kS={shorthand:a=>(typeof a=="string"&&(a=a.split(",").map(t=>t.trim())),Array.isArray(a)&&(a=a.map((t,e)=>{if(!t)return;let n=t;return typeof t=="string"&&(n=ll(t)),t.isIColor&&(n={color:t.toString()}),n})),a),arrayType:{shorthand:a=>a=ll(a),properties:{color:vo}}},Dg={shorthand:a=>(typeof a=="object"&&a.stops&&(a.type=exports.IFill.Type.Gradient),a),merge:(a,t,e)=>a.stops?a:(t?.toJSON&&(t=t.toJSON()),t?.type===exports.IFill.Type.Gradient?{...t}:t?.type===exports.IFill.Type.Solid?{type:exports.IFill.Type.Gradient,stops:[{offset:0,color:t?.color??exports.IColor.Scheme.Accent1},{offset:1,color:exports.IColor.Scheme.Bg1}]}:t?.type===exports.IFill.Type.Pattern?{type:exports.IFill.Type.Gradient,stops:[{offset:0,color:t?.foreground??exports.IColor.Scheme.Bg1},{offset:1,color:t?.background??exports.IColor.Scheme.Accent1}]}:a?{...a}:null),properties:{stops:kS}},Lg={shorthand:(a,t)=>{if(typeof a=="object"){const e=a;(e.foreground||e.background||e.patternType)&&(e.type=exports.IFill.Type.Pattern,e.patternType=e.patternType??exports.IFill.BuiltInSheetPattern.Solid)}return a},merge:(a,t,e)=>{if(a.background&&a.foreground)return a;t?.toJSON&&(t=t.toJSON());const n=exports.IFill.BuiltInSheetPattern.MediumGray;return t?.type===exports.IFill.Type.Pattern?{...t,...a}:t?.type===exports.IFill.Type.Solid?{patternType:n,foreground:t?.color??exports.IColor.Named.WindowText,background:exports.IColor.Scheme.Bg1,...a}:t?.type===exports.IFill.Type.Gradient?{patternType:n,foreground:t?.stops?.[0]?.color??exports.IColor.Named.WindowText,background:t?.stops?.[1]?.color??exports.IColor.Scheme.Bg1,...a}:a?{type:exports.IFill.Type.Pattern,patternType:exports.IFill.BuiltInSheetPattern.Solid,foreground:exports.IColor.Named.WindowText,background:exports.IColor.Scheme.Bg1,...a}:null},properties:{foreground:vo,background:vo}},rd=[Og,Bg,Dg,Lg],Bl=[];for(let a=0;a<rd.length;a++){const t=rd[a]?.shorthand;Bl.push(t)}const OS=Bl.length,Dt={properties:{font:FS,fill:{shorthand:(a,t)=>{a.isIFill&&(a=a.toJSON());for(let e=0;e<OS;e++){let n=Bl[e](a,t);if(n?.type)return n}return a},getSubType:a=>a.type===exports.IFill.Type.None?Og:a.type===exports.IFill.Type.Solid?Bg:a.type===exports.IFill.Type.Gradient?Dg:a.type===exports.IFill.Type.Pattern?Lg:null},alignment:NS,border:TS,numberFormat:MS}},BS={properties:{style:Dt}},DS=Object.freeze({displayText:"",conditionalColor:null,repeatChars:w.CommonUtils.EmptyArray,spacingChars:w.CommonUtils.EmptyArray,repeatPlaceholder:null,formattedRuns:Object.freeze({runs:w.CommonUtils.EmptyArray,length:0,width:0,lastRepeatIndex:-1}),canWrap:!1,asDate:null,isDateFormat:!1,isTimeFormat:!1,isDate1904:!1}),Ug=(a,t,e,n,r,o=!1)=>{if(a==null)return DS;let s="",i=null,l=null,c=null;if(e===A.ScalarType.Error)s=a.getLabel();else if(e===A.ScalarType.RichData)s="(Rich Object)";else if(e===A.ScalarType.Boolean)s=a?"TRUE":"FALSE";else if(n)try{s=El(n,a,{date1904:o,spacingCharacter:"",digitCharacter:"",onRepeatChar:(b,v)=>{l||(l=[]),l.push({offset:b,char:v})},onSpacingChar:(b,v)=>{c||(c=[]),c.push({offset:b,char:v})},onDigitChar:b=>{c||(c=[]),c.push({offset:b,char:"0"})}})}catch{}const h=To(n),d=gi(n),u=h||d?Or(a,o):null;(h||d)&&parseFloat(a)<0&&(i="#",s=i.repeat(5));let g=null;const m=t.getAlignment(),f=m.getHorizontal(),p=m.getVertical(),S=m.getOverflow(),_=!(e!==A.ScalarType.String||f===exports.ITextFrame.HorizontalAlignment.Fill||l!==null&&l.length!==0||S!==exports.ITextFrame.Overflow.Wrap&&f!==exports.ITextFrame.HorizontalAlignment.Justify&&f!==exports.ITextFrame.HorizontalAlignment.Distributed&&p!==exports.ITextFrame.VerticalAlignment.Justify&&p!==exports.ITextFrame.VerticalAlignment.Distributed);let E=s;_||e!==A.ScalarType.String||(E=E.replaceAll(/\n/g,""));const C=c?.length>0||l?.length>0;if(S!==exports.ITextFrame.Overflow.Wrap||C){const b=t.getFont();let v=b.getSize();b.isSuperSub()&&(v*=b.getSuperSubScale());let R=[];for(let U=0;U<c?.length;U++){const O=c[U],D=t.measureText(O.char,v).width;R.push({...O,type:"spacing",width:D})}if(l?.length>0){const U=l[l.length-1],O=t.measureText(U.char,v).width;R.push({...U,type:"repeat",width:O})}R=R.sort((U,O)=>U.offset-O.offset);let x=[],T=0,M=0,F=-1,N=-1;const k=U=>{const O={type:"text",width:t.measureText(U,v).width,text:U};x.push(O),M+=O.width,T+=U.length};for(let U=0;U<R.length;U++){const O=R[U];if(N!==O.offset){const B=E.substring(T,O.offset);B&&k(B)}const D={type:O.type,width:O.width,text:O.char};O.type!=="repeat"?M+=D.width:F=x.length,x.push(D),N=O.offset}if(T<E.length){let U=E.substring(T,E.length);U&&k(U)}g={runs:Object.freeze(x),length:T,width:M,lastRepeatIndex:F}}const I=Uf(n,a),y={displayText:s??"",conditionalColor:I?r(I):null,repeatChars:l??w.CommonUtils.EmptyArray,spacingChars:c??w.CommonUtils.EmptyArray,repeatPlaceholder:i,formattedRuns:g,canWrap:_,asDate:u,isDateFormat:h,isTimeFormat:d,isDate1904:o};return Object.freeze(y)},Lt=Object.freeze({fallbacks:w.CommonUtils.EmptyArray,weight:400,style:exports.IFont.Style.Normal,fill:exports.IColor.Scheme.Tx1,letterSpacing:null,underline:exports.IFont.UnderlineStyle.None,strike:!1,scheme:exports.IFont.Scheme.Minor,verticalAlign:exports.IFont.VerticalAlignment.Baseline,shadow:!1,outline:!1,extend:!1}),pn=Object.freeze({style:exports.IBorder.StrokeStyle.None,color:exports.IColor.Scheme.Tx1}),LS=Object.freeze({[exports.IBorder.Edge.Top]:pn,[exports.IBorder.Edge.Left]:pn,[exports.IBorder.Edge.Bottom]:pn,[exports.IBorder.Edge.Right]:pn,[exports.IBorder.Edge.Horizontal]:pn,[exports.IBorder.Edge.Vertical]:pn,[exports.IBorder.Edge.DiagonalUp]:pn,[exports.IBorder.Edge.DiagonalDown]:pn}),US=Object.freeze({horizontal:exports.ITextFrame.HorizontalAlignment.General,vertical:exports.ITextFrame.VerticalAlignment.Bottom,indent:0,relativeIndent:0,overflow:exports.ITextFrame.Overflow.Visible,rotation:0,stacked:!1,quotePrefix:!1,justifyLastLine:!1,readingOrder:exports.ITextFrame.ReadingDirection.Auto,readingDirection:exports.ITextFrame.ReadingDirection.Auto}),zS=Object.freeze({locked:!1,formulaHidden:!1}),zg=Object.freeze({fill:{type:exports.IFill.Type.None},numberFormat:"General",alignment:US,font:Lt,border:LS,protection:zS,quotePrefix:!1,namedStyle:null}),PS=(()=>{const a=[{named:exports.IStyle.BuiltInName.Normal},{named:exports.IStyle.BuiltInName.RowLevel},{named:exports.IStyle.BuiltInName.ColLevel},{named:exports.IStyle.BuiltInName.Comma,numberFormat:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'},{named:exports.IStyle.BuiltInName.Currency,numberFormat:'_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)'},{named:exports.IStyle.BuiltInName.Percent,numberFormat:"0%"},{named:exports.IStyle.BuiltInName.Comma0,numberFormat:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'},{named:exports.IStyle.BuiltInName.Currency0,numberFormat:'_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)'},{named:exports.IStyle.BuiltInName.Hyperlink,font:{...Lt,fill:exports.IColor.Scheme.Hlink,underline:exports.IFont.UnderlineStyle.Single}},{named:exports.IStyle.BuiltInName.FollowedHyperlink,font:{...Lt,fill:exports.IColor.Scheme.FolHlink,underline:exports.IFont.UnderlineStyle.Single}},{named:exports.IStyle.BuiltInName.Note,fill:"FFFFFFCC",font:{...Lt,style:exports.IFont.Style.Normal,fill:exports.IColor.Scheme.Tx1},border:{left:{style:exports.IBorder.StrokeStyle.Thin,color:"FFB2B2B2"},top:{style:exports.IBorder.StrokeStyle.Thin,color:"FFB2B2B2"},right:{style:exports.IBorder.StrokeStyle.Thin,color:"FFB2B2B2"},bottom:{style:exports.IBorder.StrokeStyle.Thin,color:"FFB2B2B2"}}},{named:exports.IStyle.BuiltInName.WarningText,font:{...Lt,fill:"FFFF0000"}},{named:exports.IStyle.BuiltInName.Unknown12},{named:exports.IStyle.BuiltInName.Unknown13},{named:exports.IStyle.BuiltInName.Unknown14},{named:exports.IStyle.BuiltInName.Title,font:{...Lt,size:18,fill:exports.IColor.Scheme.Tx2}},{named:exports.IStyle.BuiltInName.Heading1,font:{...Lt,size:15,weight:"bold",fill:exports.IColor.Scheme.Tx2},border:{bottom:{style:exports.IBorder.StrokeStyle.Thick,color:exports.IColor.Scheme.Accent1}}},{named:exports.IStyle.BuiltInName.Heading2,font:{...Lt,size:13,weight:"bold",fill:exports.IColor.Scheme.Tx2},border:{bottom:{style:exports.IBorder.StrokeStyle.Thick,color:"accent1 lumMod 40, lumOff 60"}}},{named:exports.IStyle.BuiltInName.Heading3,font:{...Lt,weight:"bold",fill:exports.IColor.Scheme.Tx2},border:{bottom:{style:exports.IBorder.StrokeStyle.Medium,color:"accent1 lumMod 40, lumOff 60"}}},{named:exports.IStyle.BuiltInName.Heading4,font:{weight:"bold",fill:exports.IColor.Scheme.Tx2,...Lt}},{named:exports.IStyle.BuiltInName.Input,fill:"FFFFCC99",font:{...Lt,fill:"FF3F3F76"},border:{left:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},top:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},right:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},bottom:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"}}},{named:exports.IStyle.BuiltInName.Output,fill:"FFF2F2F2",font:{...Lt,fill:"FF3F3F3F"},border:{left:{style:exports.IBorder.StrokeStyle.Thin,color:"FF3F3F3F"},top:{style:exports.IBorder.StrokeStyle.Thin,color:"FF3F3F3F"},right:{style:exports.IBorder.StrokeStyle.Thin,color:"FF3F3F3F"},bottom:{style:exports.IBorder.StrokeStyle.Thin,color:"FF3F3F3F"}}},{named:exports.IStyle.BuiltInName.Calculation,fill:"FFF2F2F2",font:{...Lt,fill:"FFFA7D00"},border:{left:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},top:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},right:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"},bottom:{style:exports.IBorder.StrokeStyle.Thin,color:"FF7F7F7F"}}},{named:exports.IStyle.BuiltInName.CheckCell,fill:"FFA5A5A5",font:{...Lt,fill:exports.IColor.Scheme.Bg1},border:{left:{style:exports.IBorder.StrokeStyle.Double,color:"FF3F3F3F"},top:{style:exports.IBorder.StrokeStyle.Double,color:"FF3F3F3F"},right:{style:exports.IBorder.StrokeStyle.Double,color:"FF3F3F3F"},bottom:{style:exports.IBorder.StrokeStyle.Double,color:"FF3F3F3F"}}},{named:exports.IStyle.BuiltInName.LinkedCell,font:{...Lt,fill:"FFFA7D00"},border:{bottom:{style:exports.IBorder.StrokeStyle.Double,color:"FFFF8001"}}},{named:exports.IStyle.BuiltInName.Total,font:{...Lt,weight:"bold",fill:exports.IColor.Scheme.Tx1},border:{top:{style:exports.IBorder.StrokeStyle.Thin,color:exports.IColor.Scheme.Accent1},bottom:{style:exports.IBorder.StrokeStyle.Double,color:exports.IColor.Scheme.Accent1}}},{named:exports.IStyle.BuiltInName.Good,fill:"FFC6EFCE",font:{...Lt,fill:"FF006100"}},{named:exports.IStyle.BuiltInName.Bad,fill:"FFFFC7CE",font:{...Lt,fill:"FF9C0006"}},{named:exports.IStyle.BuiltInName.Neutral,fill:"FFFFEB9C",font:{...Lt,fill:"FF9C5700"}},{named:exports.IStyle.BuiltInName.Accent1},{named:exports.IStyle.BuiltInName.Accent1_20},{named:exports.IStyle.BuiltInName.Accent1_40},{named:exports.IStyle.BuiltInName.Accent1_60},{named:exports.IStyle.BuiltInName.Accent2},{named:exports.IStyle.BuiltInName.Accent2_20},{named:exports.IStyle.BuiltInName.Accent2_40},{named:exports.IStyle.BuiltInName.Accent2_60},{named:exports.IStyle.BuiltInName.Accent3},{named:exports.IStyle.BuiltInName.Accent3_20},{named:exports.IStyle.BuiltInName.Accent3_40},{named:exports.IStyle.BuiltInName.Accent3_60},{named:exports.IStyle.BuiltInName.Accent4},{named:exports.IStyle.BuiltInName.Accent4_20},{named:exports.IStyle.BuiltInName.Accent4_40},{named:exports.IStyle.BuiltInName.Accent4_60},{named:exports.IStyle.BuiltInName.Accent5},{named:exports.IStyle.BuiltInName.Accent5_20},{named:exports.IStyle.BuiltInName.Accent5_40},{named:exports.IStyle.BuiltInName.Accent5_60},{named:exports.IStyle.BuiltInName.Accent6},{named:exports.IStyle.BuiltInName.Accent6_20},{named:exports.IStyle.BuiltInName.Accent6_40},{named:exports.IStyle.BuiltInName.Accent6_60},{named:exports.IStyle.BuiltInName.ExplanatoryText,font:{...Lt,style:exports.IFont.Style.Italic,fill:"FF7F7F7F"}}];for(let t=29;t<=52;t++){const e=(t-29)%4,n=Math.floor((t-29)/4);let r="";e===1?r=" lumMod 20, lumOff 80":e===2?r=" lumMod 40, lumOff 60":e===3&&(r=" lumMod 60, lumOff 40"),a[t].fill=`accent${n+1}${r}`,a[t].font={fill:e===0?exports.IColor.Scheme.Bg1:exports.IColor.Scheme.Tx1,...Lt}}return w.CommonUtils.deepFreeze(a)})(),WS=new class{_svgImage(a,t,e,n=8){return{backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${n}' height='${n}' viewBox='0 0 ${n} ${n}' shape-rendering='crispEdges' %3E%3Cpath d='${e}' stroke='${a}' %3E%3C/path%3E%3C/svg%3E")`,backgroundRepeat:"repeat",backgroundSize:`${n}px ${n}px`,backgroundPositionX:"0px",backgroundPositionY:"0px",backgroundPosition:""+-n,backgroundColor:t}}toCSS(a,t,e){return a&&a!==exports.IFill.BuiltInSheetPattern.None?a===exports.IFill.BuiltInSheetPattern.Solid?{background:e}:a===exports.IFill.BuiltInSheetPattern.Gray0625?this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 0.5 4.5 L 0.5 5.5 M 4.5 2.5 L 4.5 3.5 M 4.5 6.5 L 4.5 7.5",8):a===exports.IFill.BuiltInSheetPattern.LightGray?this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 0.5 2.5 L 0.5 3.5 M 2.5 -0.5 L 2.5 0.5 M 2.5 1.5 L 2.5 2.5 M 2.5 3.5 L 2.5 4.5",4):a===exports.IFill.BuiltInSheetPattern.MediumGray?this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 1.5 1.5 L 1.5 2.5 M 1.5 -0.5 L 1.5 0.5 M -0.5 -0.5 L -0.5 0.5",2):a===exports.IFill.BuiltInSheetPattern.DarkGray?this._svgImage(t,e,"M 0 0 L 0 4 M 1 1 L 1 2 M 1 3 L 1 4 M 2 0 L 2 4 M 3 0.5 L 3 1.5 M 3 2.5 L 3 3.5 M 4 0 L 4 4",4):a===exports.IFill.BuiltInSheetPattern.LightHorizontal?this._svgImage(t,e,"M 0 2 L 4 2",4):a===exports.IFill.BuiltInSheetPattern.DarkHorizontal?this._svgImage(t,e,"M 0 2 L 4 2 M 0 3 L 4 3",4):a===exports.IFill.BuiltInSheetPattern.LightVertical?this._svgImage(t,e,"M 2 0 L 2 4",4):a===exports.IFill.BuiltInSheetPattern.DarkVertical?this._svgImage(t,e,"M 2 0 L 2 4 M 3 0 L 3 4",4):a===exports.IFill.BuiltInSheetPattern.LightUp?this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 1.5 3.5 L 1.5 4.5 M 1.5 -0.5 L 1.5 0.5 M 2.5 2.5 L 2.5 3.5 M 3.5 1.5 L 3.5 2.5",4):a===exports.IFill.BuiltInSheetPattern.DarkUp?this._svgImage(t,e,"M 0.5 -0.5 L 0.5 1.5 M 0.5 3.5 L 0.5 4.5 M 1.5 2.5 L 1.5 4.5 M 2.5 1.5 L 2.5 3.5 M 3.5 0.5 L 3.5 2.5 M 1.5 -0.5 L 1.5 0.5",4):a===exports.IFill.BuiltInSheetPattern.LightDown?this._svgImage(t,e,"M 0.5 0 L 0.5 1 M 1.5 1 L 1.5 2 M 2.5 2 L 2.5 3 M 3.5 3 L 3.5 4",4):a===exports.IFill.BuiltInSheetPattern.DarkDown?this._svgImage(t,e,"M 0.5 -0.5 L 0.5 2 M 1.5 1 L 1.5 3 M 2.5 2 L 2.5 4 M 3.5 3 L 3.5 5 M 3.5 -0.5 L 3.5 1.0",4):a===exports.IFill.BuiltInSheetPattern.LightGrid?this._svgImage(t,e,"M 1.5 -0.5 L 1.5 4.5 M -0.5 1.5 L 4.5 1.5",4):a===exports.IFill.BuiltInSheetPattern.DarkGrid?this._svgImage(t,e,"M 0.5 -0.5 L 0.5 1.5 M 1.5 -0.5 L 1.5 1.5 M 2.5 1.5 L 2.5 3.5 M 3.5 1.5 L 3.5 3.5 M 0.5 3.5 L 0.5 4.5 M 1.5 3.5 L 1.5 4.5",4):a===exports.IFill.BuiltInSheetPattern.LightTrellis?this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 1.5 3.5 L 1.5 4.5 M 1.5 -0.5 L 1.5 0.5 M 2.5 2.5 L 2.5 3.5 M 3.5 1.5 L 3.5 2.5 M 1.5 1.5 L 1.5 2.5 M 3.5 3.5 L 3.5 4.5 M 3.5 -0.5 L 3.5 0.5",4):a===exports.IFill.BuiltInSheetPattern.DarkTrellis?this._svgImage(t,e,"M 0 0 L 4 0 M 0 1 L 2 1 M 0 2 L 4 2 M 2 3 L 4 3 M 0 4 L 4 4",4):(exports.IFill.BuiltInSheetPattern.Custom,this._svgImage(t,e,"M 0.5 0.5 L 0.5 1.5 M 0.5 4.5 L 0.5 5.5 M 2.5 2.5 L 2.5 3.5 M 2.5 6.5 L 2.5 7.5 M 4.5 0.5 L 4.5 1.5 M 4.5 4.5 L 4.5 5.5 M 6.5 2.5 L 6.5 3.5 M 6.5 6.5 L 6.5 7.5",8)):{background:"none"}}},Ci=(a,t,e)=>{if(t===void 0)return;if(t===null)return null;if(t.isIStyle)return t._p.getProperties();let n=null;return typeof t=="function"?n=t(typeof e=="function"?e():e):n=t,n};class HS{constructor(t){this._p=Object.freeze(Array.isArray(t)?t:[t??null])}value(t){const e=this._p;for(let n=e.length-1;n>=0;n--){const r=e[n];if(!r)continue;const o=r[t];if(o!==void 0)return o}}values(t){const e=this._p,n=e.length;let r;for(let o=0;o<n;o++){const s=e[o];if(!s)continue;const i=s[t];i!==void 0&&(r===void 0&&(r=[]),r.push(i))}return r}getProperties(){const t=this._p;return t?t[t.length-1]:null}toJSON(){const t=this._p,e=t.length;let n={};for(let r=0;r<e;r++){const o=t[r];n=w.CommonUtils.deepMerge(n,o)}return n}}class hn{constructor(t,e){this._o=t,this._c=t.styles,this._p=Object.freeze(e)}_setValue(t,e){const n={[t]:e};this._o.updater(n)}_value(t){const e=this._p;for(let n=e.length-1;n>=0;n--){const r=e[n];if(!r)continue;const o=r[t];if(o!==void 0)return o}}_values(t){const e=this._p,n=e.length;let r;for(let o=0;o<n;o++){const s=e[o];if(!s)continue;const i=s[t];i!==void 0&&(r===void 0&&(r=[]),r.push(i))}return r}getProperties(){const t=this._p;return t?t[t.length-1]:null}toJSON(){return null}}class dr extends hn{constructor(t,e,n){super(e,n),this._edge=t}getStyle(){return this._value("style")}setStyle(t,e){const n=this._edge,r=n.charAt(0).toUpperCase()+n.slice(1);return this._o.updater({border:{[n]:{style:t}}},{description:`Set ${r} Border Style`,...e}).getBorder()["get"+r]()}getColor(){const t=this._value("color");return t?this._c.parseColor(t):null}setColor(t,e){const n=this._edge,r=n.charAt(0).toUpperCase()+n.slice(1);return this._o.updater({border:{[n]:{color:t}}},{description:`Set ${r} Border Color`,...e}).getBorder()["get"+r]()}isNone(){return this.getStyle()===exports.IBorder.StrokeStyle.None}toCSS(){const t=zn(this);switch(this._edge){case exports.IBorder.Edge.Left:return{borderLeft:t};case exports.IBorder.Edge.Right:return{borderRight:t};case exports.IBorder.Edge.Top:return{borderTop:t};case exports.IBorder.Edge.Bottom:return{borderBottom:t};case exports.IBorder.Edge.DiagonalUp:case exports.IBorder.Edge.DiagonalDown:return{borderDiagonalUp:t}}}get[Symbol.toStringTag](){return"[CellBorderStroke]"}toString(){return"[CellBorderStroke]"}get isIStroke(){return!0}}class VS extends hn{getLeft(){return new dr(exports.IBorder.Edge.Left,this._o,this._values(exports.IBorder.Edge.Left))}setLeft(t,e){return this._o.updater({border:{left:t}},{description:"Set Left Border",...e}).getBorder()}getRight(){return new dr(exports.IBorder.Edge.Right,this._o,this._values(exports.IBorder.Edge.Right))}setRight(t,e){return this._o.updater({border:{right:t}},{description:"Set Right Border",...e}).getBorder()}getTop(){return new dr(exports.IBorder.Edge.Top,this._o,this._values(exports.IBorder.Edge.Top))}setTop(t,e){return this._o.updater({border:{top:t}},{description:"Set Top Border",...e}).getBorder()}getBottom(){return new dr(exports.IBorder.Edge.Bottom,this._o,this._values(exports.IBorder.Edge.Bottom))}setBottom(t,e){return this._o.updater({border:{bottom:t}},{description:"Set Bottom Border",...e}).getBorder()}getDiagonalUp(){return new dr(exports.IBorder.Edge.DiagonalUp,this._o,this._values(exports.IBorder.Edge.DiagonalUp))}setDiagonalUp(t,e){return this._o.updater({border:{diagonalUp:t}},{description:"Set Diagonal Up Border",...e}).getBorder()}getDiagonalDown(){return new dr(exports.IBorder.Edge.DiagonalDown,this._o,this._values(exports.IBorder.Edge.DiagonalDown))}setDiagonalDown(t,e){return this._o.updater({border:{diagonalDown:t}},{description:"Set Diagonal Down Border",...e}).getBorder()}isEmpty(){return!1}get[Symbol.toStringTag](){return"[CellBorder]"}toString(){return"[CellBorder]"}get isIBorder(){return!0}}class jS extends hn{getHorizontal(){return this._value("horizontal")}setHorizontal(t,e){return this._o.updater({alignment:{horizontal:t}},{description:"Set Horizontal Alignment",...e}).getAlignment()}getVertical(){return this._value("vertical")}setVertical(t,e){return this._o.updater({alignment:{vertical:t}},{description:"Set Vertical Alignment",...e}).getAlignment()}getIndent(){return this._value("indent")}setIndent(t,e){return this._o.updater({alignment:{indent:t}},{description:"Set Indent",...e}).getAlignment()}getRelativeIndent(){return this._value("relativeIndent")}setRelativeIndent(t,e){return this._o.updater({alignment:{relativeIndent:t}},{description:"Set Relative Indent",...e}).getAlignment()}getOverflow(){return this._value("overflow")}setOverflow(t,e){return this._o.updater({alignment:{overflow:t}},{description:"Set Overflow",...e}).getAlignment()}getRotation(){return this._value("rotation")}setRotation(t,e){return this._o.updater({alignment:{rotation:t}},{description:"Set Rotation",...e}).getAlignment()}getStacked(){return this._value("stacked")}setStacked(t,e){return this._o.updater({alignment:{stacked:t}},{description:"Set Stacked",...e}).getAlignment()}getJustifyLastLine(){return this._value("justifyLastLine")}setJustifyLastLine(t,e){return this._o.updater({alignment:{justifyLastLine:t}},{description:"Set Justify Last Line",...e}).getAlignment()}getReadingDirection(){return this._value("readingDirection")}setReadingDirection(t,e){return this._o.updater({alignment:{readingDirection:t}},{description:"Set Reading Direction",...e}).getAlignment()}get[Symbol.toStringTag](){return"[CellAlignment]"}toString(){return"[CellAlignment]"}get isITextBoxAlignment(){return!0}}class GS extends hn{isEqualMeasure(t){return!!t&&this.getFamily()===t.getFamily()&&!!w.CommonUtils.isEqualArrays(this.getFallbacks(),t.getFallbacks())&&this.getSize()===t.getSize()&&this.getWeight()===t.getWeight()&&this.getStyle()===t.getStyle()&&this.getStrike()===t.getStrike()&&this.getScheme()===t.getScheme()&&this.getShadow()===t.getShadow()&&this.getOutline()===t.getOutline()&&this.getLetterSpacing()===t.getLetterSpacing()&&this.getVerticalAlignment()===t.getVerticalAlignment()}toCSS(t,e=1,n=!1){const r={fontFamily:oi(this.getFamily(),this.getFallbacks()),letterSpacing:`${this.getLetterSpacing()}px`,fontWeight:this.getWeight(),fontStyle:this.getStyle(),textDecoration:Tg(this.getUnderline(),this.getStrike()),color:this.getFill().toCSS(t),fontSize:`${w.CommonUtils.roundAccurately(this.getSize()*exports.IFont.getDeviceScale()*e,2)}px`,textRendering:"geometricPrecision"};if(n){const o=this._c.getNormal().getFont().toCSS(t,e,!1),s=r.textDecoration,i=r.fontWeight;w.CommonUtils.removeEqualValues(r,o),s&&(r.textDecoration=s),i&&(r.fontWeight=i)}return r}isSuperSub(){const t=this.getVerticalAlignment();return t===exports.IFont.VerticalAlignment.Sub||t===exports.IFont.VerticalAlignment.Super}isSuperScript(){const t=this.getVerticalAlignment();return t===exports.IFont.VerticalAlignment.Sub||t===exports.IFont.VerticalAlignment.Super}getSuperSubScale(){return this.getFamily(),this.getSize(),this.getVerticalAlignment(),.6}getSuperSubShift(){return this.getFamily(),t=this.getSize(),(e=this.getVerticalAlignment())===exports.IFont.VerticalAlignment.Super?-t/3:e===exports.IFont.VerticalAlignment.Sub?t/5:0;var t,e}getFamily(){return this._value("family")??this._c.getTheme().getFontScheme().getMinorFont()}setFamily(t,e){return this._o.updater({font:{family:t}},{description:"Set Font Family",...e}).getFont()}getFallbacks(){let t=this._value("fallbacks")??this._c.getTheme().getFontScheme().getMinorFallbacks()??w.CommonUtils.EmptyArray;return this.getFamily()==="Aptos Narrow"&&(t=["Calibri",...t]),t}setFallbacks(t,e){return this._o.updater({font:{fallbacks:t}},{description:"Set Font Fallbacks",...e}).getFont()}getSize(){return this._value("size")??this._c.getDefaultFontSize()??11}setSize(t,e){return this._o.updater({font:{size:t}},{description:"Set Font Size",...e}).getFont()}getWeight(){return this._value("weight")}setWeight(t,e){return this._o.updater({font:{weight:t}},{description:"Set Font Weight",...e}).getFont()}getStyle(){return this._value("style")}setStyle(t,e){return this._o.updater({font:{style:t}},{description:"Set Font Style",...e}).getFont()}getFill(){const t=this._value("fill");return this._c.parseColor(t??exports.IColor.Scheme.Bg1)}setFill(t,e){return this._o.updater({font:{fill:t}},{description:"Set Font Fill",...e}).getFont()}getLetterSpacing(){return this._value("letterSpacing")??this.getSize()/-25}setLetterSpacing(t,e){return this._o.updater({font:{letterSpacing:t}},{description:"Set Font Letter Spacing",...e}).getFont()}getUnderline(){return this._value("underline")}setUnderline(t,e){return this._o.updater({font:{underline:t}},{description:"Set Font Underline",...e}).getFont()}getStrike(){return this._value("strike")}setStrike(t,e){return this._o.updater({font:{strike:t}},{description:"Set Font Strike",...e}).getFont()}getScheme(){return this._value("scheme")}setScheme(t,e){return this._o.updater({font:{scheme:t}},{description:"Set Font Scheme",...e}).getFont()}getVerticalAlignment(){return this._value("verticalAlign")}setVerticalAlignment(t,e){return this._o.updater({font:{verticalAlign:t}},{description:"Set Font Vertical Alignment",...e}).getFont()}getShadow(){return this._value("shadow")}setShadow(t,e){return this._o.updater({font:{shadow:t}},{description:"Set Font Shadow",...e}).getFont()}getOutline(){return this._value("outline")}setOutline(t,e){return this._o.updater({font:{outline:t}},{description:"Set Font Outline",...e}).getFont()}getExtend(){return this._value("extend")}setExtend(t,e){return this._o.updater({font:{extend:t}},{description:"Set Font Extend",...e}).getFont()}get[Symbol.toStringTag](){return"[StyledFont]"}toString(){return"[StyledFont]"}get isIStyledFont(){return!0}}const $S=Object.freeze({background:"none"});class od extends hn{getType(){return exports.IFill.Type.None}toCSS(t){return $S}toJSON(){return{type:exports.IFill.Type.None}}get[Symbol.toStringTag](){return"[NoneFill]"}toString(){return"[NoneFill]"}get isIFill(){return!0}}class JS extends hn{getType(){return exports.IFill.Type.Solid}getColor(){return this._c.parseColor(this._value("color")??exports.IColor.Scheme.Bg1)}setColor(t,e){return this._o.updater({fill:{color:t}},{description:"Set Fill Color",...e}).getFill()}toCSS(t){return{background:this.getColor().toCSS(t)}}toJSON(){return{type:exports.IFill.Type.Solid,color:this.getColor()?.toString()??null}}get[Symbol.toStringTag](){return"[SolidFill]"}toString(){return"[SolidFill]"}get isIFill(){return!0}}class qS extends hn{constructor(t,e,n,r){super(n,r),this._i=t,this._l=e}getOffset(){return this._value("offset")??this._i/this._l*100}getColor(){return this._c.parseColor(this._value("color")??exports.IColor.Scheme.Bg1)}}class XS extends hn{getType(){return exports.IFill.Type.Gradient}getStops(){const t=this._value("stops")??w.CommonUtils.EmptyArray,e=t.length,n=e===0?w.CommonUtils.EmptyArray:new Array(e);for(let r=0;r<e;r++){const o=t[r];n[r]=new qS(r,e,this._o,[o])}return n}setStops(t,e){return this._o.updater({fill:{stops:t}},{description:"Set Stops",...e}).getFill()}getGradientType(){return this._value("gradientType")??exports.IFill.GradientType.Linear}setGradientType(t,e){return this._o.updater({fill:{gradientType:t}},{description:"Set Gradient Type",...e}).getFill()}getAngle(){return this._value("angle")??0}setAngle(t,e){return this._o.updater({fill:{angle:t}},{description:"Set Angle",...e}).getFill()}getFillTo(){return this._value("fillTo")??null}setFillTo(t,e){return this._o.updater({fill:{fillTo:t}},{description:"Set Fill To",...e}).getFill()}toCSS(t,e){const n=Ng(this,t,e);return n?{background:n}:null}toJSON(){const t={type:exports.IFill.Type.Gradient},e=this._value("stops")??w.CommonUtils.EmptyArray,n=e.length;if(n>0){const r=new Array(n);for(let o=0;o<n;o++){const s=e[o],i={color:s.color.toString()},l=s.offset;l!==void 0&&(i.offset=l),r[o]=i}t.stops=r}return this.getAngle()!==0&&(t.angle=this.getAngle()),this.getGradientType()!==exports.IFill.GradientType.Linear&&(t.gradientType=this.getGradientType()),this.getFillTo()&&(t.fillTo=this.getFillTo()),t}get[Symbol.toStringTag](){return"[GradientFill]"}toString(){return"[GradientFill]"}get isIFill(){return!0}}class KS extends hn{getType(){return exports.IFill.Type.Pattern}getBackground(){const t=this._value("background")??exports.IColor.Named.Window;return this._c.parseColor(t)}setBackground(t,e){return this._o.updater({fill:{background:t}},{description:"Set Background Color",...e}).getFill()}getForeground(){return this._c.parseColor(this._value("foreground")??exports.IColor.Scheme.Tx1)}setForeground(t,e){return this._o.updater({fill:{foreground:t}},{description:"Set Foreground Color",...e}).getFill()}getPatternType(){return this._value("patternType")??exports.IFill.BuiltInSheetPattern.None}setPatternType(t,e){return this._o.updater({fill:{patternType:t}},{description:"Set Pattern Type",...e}).getFill()}toCSS(t){const e=this.getBackground().toCSS(t),n=this.getForeground().toCSS(t);return this.getPatternType()===exports.IFill.BuiltInSheetPattern.None?{background:"none"}:this.getPatternType()===exports.IFill.BuiltInSheetPattern.Solid?{background:this.getForeground().toCSS(t)}:WS.toCSS(this.getPatternType(),n,e)}toJSON(){const t={type:exports.IFill.Type.Pattern};this.getPatternType()!==exports.IFill.BuiltInSheetPattern.None&&(t.patternType=this.getPatternType());const e=this.getForeground();e&&(t.foreground=e.toString());const n=this.getBackground();return n&&(t.background=n.toString()),t}get[Symbol.toStringTag](){return"[PatternFill]"}toString(){return"[PatternFill]"}get isIFill(){return!0}}class Pg{constructor(t){this._o=t,this._p=new HS(t.properties),this._hasVisibleStyling=!this.getFill()||this.getFill().getType()!==exports.IFill.Type.None||!this.getBorder().isEmpty()}toJSON(){const t=this._p.toJSON(),e=t.namedStyle??exports.IStyle.BuiltInName.Normal;return delete t.namedStyle,t.named=e,t}hasVisibleStyling(){return this._hasVisibleStyling}isNormal(){return!1}createTemporaryStyle(t){const e=this._o,n=e.styles,r=Ci(0,t,this),o=e.range,s=e.direct.cloneWithUpdate(r);return Fr(n,s,o)}measureText(t,e=this.getFont().getSize(),n,r){const o=this.getFont();n||(n=o.getFamily());let s=o.getFallbacks();n==="Aptos Narrow"&&(s=["Calibri",...s]);const i=oi(n,s);return exports.IFont.getSharedMeasurer()(t,e*exports.IFont.getDeviceScale(),i,{isBold:o.getWeight()>400,isItalic:o.getStyle().includes("italic"),letterSpacing:o.getLetterSpacing(),...r})}createTemporaryTextFrame(t,e=!1){return Si(t,this.getFont(),this.getAlignment(),e)}update(t,e){return this._o.updater(t,e)}getBestFit(){if(this._bestFit!==void 0)return this._bestFit;const t=this.getInsets(),e=this.measureText("My");return this._bestFit={width:null,height:e.lineHeight+t.top+t.bottom},this._bestFit}getInsets(){if(this._insets!==void 0)return this._insets;const t=(this.getFont().getSize(),1),e=(n=this.getFont().getSize(),Math.max(2,Math.round(n<225?n/5:n/3.5)));var n;const r={top:t,left:e,bottom:t,right:e},o=this._p,s=o?.value("insets");return s&&(s.top!==void 0&&(r.top+=s.top),s.left!==void 0&&(r.left+=s.left),s.bottom!==void 0&&(r.bottom+=s.bottom),s.right!==void 0&&(r.right+=s.right)),this._insets=Object.freeze(r),this._insets}getBorder(){return new VS(this._o,this._p.values("border"))}setBorder(t,e){return this._o.updater({border:t},{description:"Set Border",...e})}getFont(){return new GS(this._o,this._p.values("font"))}setFont(t,e){return this._o.updater({font:t},{description:"Set Font",...e})}getFill(){const t=this._p;let e=t.values("fill"),n=t.value("fill");return n.type===exports.IFill.Type.None?new od(this._o,e):n.type===exports.IFill.Type.Solid||!n.type&&n.color?new JS(this._o,e):n.type===exports.IFill.Type.Gradient?new XS(this._o,e):n.type===exports.IFill.Type.Pattern?new KS(this._o,e):new od(this._o,e)}setFill(t,e){return this._o.updater({fill:t},{description:"Set Fill",...e})}getAlignment(){return new jS(this._o,this._p.values("alignment"))}setAlignment(t,e){return this._o.updater({alignment:t},{description:"Set Alignment",...e})}getNumberFormat(){const t=this._p.value("numberFormat");return typeof t=="number"?Al(t):t}setNumberFormat(t,e){return this._o.updater({numberFormat:t},{description:"Set Number Format",...e})}getQuotePrefix(){return this._p.value("quotePrefix")}setQuotePrefix(t,e){return this._o.updater({quotePrefix:t},{description:"Set Quote Prefix",...e})}getNamed(){const t=this._p.value("named")??exports.IStyle.BuiltInName.Normal;return this._o.styles.getNamed(t)}setNamed(t,e){return this._o.updater({named:t},{description:"Set Named Style",...e})}get[Symbol.toStringTag](){return"[SheetCellStyle]"}toString(){return null}get isIStyle(){return!0}}const Fr=(a,t,e,n=QS)=>{const r=e?.rowStart??w.CoordUtils.EmptyCell.rowIndex,o=e?.colStart??w.CoordUtils.EmptyCell.colIndex,s=[zg],i=a.getNormalRanged(),l=i.getPropertiesAt(r,o,null);l&&s.push(l);const c=(d,u)=>n(d,u,e);if(!t)return new YS({styles:a,range:e,properties:s,layerTypes:null,direct:i,updater:c});const h=t.getPropertiesAt(r,o,null);return h&&s.push(h),new Pg({styles:a,range:e,properties:s,direct:t,updater:c})};class YS extends Pg{isNormal(){return!0}}const QS=a=>{throw new Error("Style is read-only and cannot be updated")},Bn=(a,t)=>{if(a&&!t||t&&!a)return!1;if(a===t)return!0;if(a.style!==t.style)return!1;if(a.color===t.color)return!0;let e=a.color;(a&&a.color).isIColor&&(e=a.color.toString());let n=t.color;return(t&&t.color).isIColor&&(n=t.color.toString()),e===n};class Ht{constructor(t,e,n,r,o){this._c=t,this._r=e,this._p=n??null,this._t=r??null,this._o=o??A.IRange.Orientations.Both,this._e=this._p===null||Object.keys(this._p).length===1&&this._p.named===exports.IStyle.BuiltInName.Normal}isEmpty(){return this._e}getProperties(){return this._p}getCoords(){return this._r}cloneWithUpdate(t){if(t===void 0)return this;const e=this._c,n=this._r,r=this._p,o=w.TypedObject.resolveTypedUpdates(t,Dt,e,r);return new Ht(e,n,o,this._t,this._o)}copyTo(t,e){const n=this._c,r=this._r,o=t.rowStart-r.rowStart,s=t.colStart-r.colStart;let i=null;return w.CoordUtils.isEqualRanges(r,this._t)||(i=w.CoordUtils.translateRange(r,o,s)),new Ht(n,t,this._p,i,this._o)}canTile(t,e){return!this._p.border}_createShifted(t){return new Ht(this._c,t,this._p,this._t,this._o)}getShifted(t){return t.after?{...t.after,value:this._createShifted(w.CoordUtils.sanitizeRange(t.after))}:null}getSplit(t,e){const n=this._c,r=this._p,o=this._r;let s=r;const i=t[0];let l=r;const c=t[1],h=r?r.border:null;if(h){const g=e===A.IRange.Orientation.Column;if(g?h.left!==void 0||h.right!==void 0||h.vertical!==void 0:h.top!==void 0||h.bottom!==void 0||h.horizontal!==void 0){s={...s};const m=this._splitBorderRange(h,o,i,g);m?s.border=m:m===null&&delete s.border,l={...l};const f=this._splitBorderRange(h,o,c,g);f?l.border=f:f===null&&delete l.border}}const d=this._t,u=this._o;return[new Ht(n,t[0],s,d,u),new Ht(n,t[1],l,d,u)]}getMerged(t,e,n){const r=n===A.IRange.Orientation.Column,o=this._p,s=t._p;if(o&&!s||s&&!o||!o&&!s)return;let i=Object.keys(o),l=Object.keys(s);const c=i.length;if(c!==l.length)return;for(let g=0;g<c;g++){const m=i[g];if(m==="border")continue;const f=o[m],p=s[m];if(!w.CommonUtils.deepEqual(f,p))return}const h=o.border,d=s.border;if(h&&!d||d&&!h)return;const u=this._c;if(h||d){const g=r?exports.IBorder.Edge.Top:exports.IBorder.Edge.Left,m=r?exports.IBorder.Edge.Bottom:exports.IBorder.Edge.Right;if(!Bn(h[g],d[g])||!Bn(h[m],d[m]))return;const f=this._r,p=t._r,S=1+(r?f.rowEnd-f.rowStart:f.colEnd-f.colStart),_=1+(r?f.colEnd-f.colStart:f.rowEnd-f.rowStart),E=1+(r?p.colEnd-p.colStart:p.rowEnd-p.rowStart),C=r?exports.IBorder.Edge.Horizontal:exports.IBorder.Edge.Vertical;if(S>1&&!Bn(h[C],d[C]))return;const I=r?exports.IBorder.Edge.Right:exports.IBorder.Edge.Bottom,y=r?exports.IBorder.Edge.Left:exports.IBorder.Edge.Top;if(!Bn(h[I],d[y]))return;const b=r?exports.IBorder.Edge.Vertical:exports.IBorder.Edge.Horizontal,v=h[I];if(_>1&&!Bn(v,h[b]))return;const R=E===1?d[y]:d[b];if(E>1&&!Bn(R,d[b])||!Bn(v,R))return;const x={border:{[g]:h[g],[m]:h[m],[C]:h[C],[b]:v,[y]:h[y],[I]:d[I]}},T=w.TypedObject.resolveTypedUpdates(x,Dt,u,o);return new Ht(u,e,T,this._t,this._o)}return new Ht(u,e,this._p,this._t,this._o)}hasTrailingEdge(){return!0}isMergeOnShift(){return!0}_splitBorderRange(t,e,n,r){const o=r?exports.IBorder.Edge.Left:exports.IBorder.Edge.Top,s=r?exports.IBorder.Edge.Right:exports.IBorder.Edge.Bottom,i=r?exports.IBorder.Edge.Vertical:exports.IBorder.Edge.Horizontal,l=r?e.colStart:e.rowStart,c=r?e.colEnd:e.rowEnd,h=r?n.colStart:n.rowStart,d=r?n.colEnd:n.rowEnd;let u={...t};return delete u[o],delete u[s],delete u[i],l===h?t[o]&&(u[o]=t[o]):t[i]&&(u[o]=t[i]),c===d?t[s]&&(u[s]=t[s]):t[i]&&(u[s]=t[i]),d-h>0&&t[i]&&(u[i]=t[i]),Object.keys(u).length===0?null:u}_localizeBorderRange(t,e,n){if(!t)return;let r=null;const o=e.rowStart,s=e.rowEnd,i=n.rowStart,l=n.rowEnd;t.top&&i===o&&(r=r??{},r.top=t.top),t.bottom&&l===s&&(r=r??{},r.bottom=t.bottom),t.horizontal&&(l-i>0&&(r=r??{},r.horizontal=t.horizontal),i>o&&(r=r??{},r.top=t.horizontal),l<s&&(r=r??{},r.bottom=t.horizontal));const c=e.colStart,h=e.colEnd,d=n.colStart,u=n.colEnd;return t.left&&d===c&&(r=r??{},r.left=t.left),t.right&&u===h&&(r=r??{},r.right=t.right),t.vertical&&(u-d>0&&(r=r??{},r.vertical=t.vertical),d>c&&(r=r??{},r.left=t.vertical),u<h&&(r=r??{},r.right=t.vertical)),r}_localizeBorder(t,e,n,r){if(!t)return;let o=null;const s=e.rowStart,i=e.rowEnd;t.top&&n===s&&(o=o??{},o.top=t.top),t.bottom&&n===i&&(o=o??{},o.bottom=t.bottom),t.horizontal&&(n>s&&(o=o??{},o.top=t.horizontal),n<i&&(o=o??{},o.bottom=t.horizontal));const l=e.colStart,c=e.colEnd;return t.left&&r===l&&(o=o??{},o.left=t.left),t.right&&r===c&&(o=o??{},o.right=t.right),t.vertical&&(r>l&&(o=o??{},o.left=t.vertical),r<c&&(o=o??{},o.right=t.vertical)),o}getPropertiesAt(t,e,n){const r=this._p;let o=r,s=null;const i=this._t;if(i){const d=this._r,u=i.colEnd-i.colStart+1,g=i.rowEnd-i.rowStart+1;e=d.colStart+(e-d.colStart+(i.colStart-d.colStart))%u,t=d.rowStart+(t-d.rowStart+(i.rowStart-d.rowStart))%g}const l=r?.font;l&&l.fill&&(s=s??this._c.getNormalRanged().getPropertiesAt(t,e,n),s&&s.font&&l.fill===s.font.fill&&(o===r&&(o={...o}),o.font={...l},delete o.font.fill));const c=r?.fill;c&&(s=s??this._c.getNormalRanged().getPropertiesAt(t,e,n),s&&w.CommonUtils.deepEqual(c,s.fill)&&(o===r&&(o={...o}),delete o.fill));const h=o?.border;if(h){const d=i??this._r,u=this._localizeBorder(h,d,t,e);u!==void 0&&(o===r&&(o={...o}),u===null?delete o.border:o.border=u)}return o}toJSON(){return w.CommonUtils.toSafeJSON(this._p)}}const ZS=Object.freeze({value:null,style:null,hyperlink:null,formula:null,type:A.ScalarType.Null,stringToParse:null}),sd=Object.seal({value:void 0,style:void 0,hyperlink:void 0,formula:void 0,type:void 0,stringToParse:void 0}),t_=Object.seal({value:void 0,style:void 0,hyperlink:void 0,formula:void 0}),e_=Object.freeze({width:1,height:1}),n_=new Ol({max:1e3}),r_=new class{isEditAllowed(){return!0}isFormulaHidden(){return!1}get isICellProtection(){return!0}},cl=(a,t,e=null,n=null,r=!1)=>{if(a===void 0)return;if(a===null)return ZS;if(a&&a.isICell){const S=a,_=sd;return _.value=S.getValue(),S.getStyle().isNormal()?_.style=null:_.style=S.getStyle()._p.getProperties(),_.formula=S.getFormulaText(),_.hyperlink=S.getHyperlink(),_.type=S.getType(),_}let o;a.value!==void 0||a.style!==void 0||a.hyperlink!==void 0?o=a:(o=t_,o.value=a,o.style=void 0,o.hyperlink=void 0);const s=sd;s.type=void 0,s.value=void 0,s.style=void 0,s.formula=void 0,s.hyperlink=void 0,s.stringToParse=void 0;let i,l=o.value,c=!1;if(o.value!==void 0&&(i=qt(l),i||(c=kr(l),c&&(i=A.ScalarType.Number)),!i))throw new Error("Invalid cell type. See documentation for information on valid built in cell types and creating custom cell types.");let h,d,u=null,g=null,m;if(i===A.ScalarType.String){if(m=o.value,e){let S=n?.get(m);if(!S){const _=m.length,E=m.charAt(0);E==="="&&_>1?(d=m.substring(1),l=null):(S=jg(m,e),!S||typeof S.value!="string"||E!=="+"&&E!=="-"||(d="="+m,l=null),S!==void 0&&n&&n.set(m,S))}S&&(S.value!==void 0&&(l=S.value,i=qt(l)),S.style!==void 0&&(u=S.style),S.hyperlink!==void 0&&(h=S.hyperlink)),!r&&e.parse&&(g=m)}}else if(c){const S=e?.date1904??t.date1904;l=Ao(o.value,S),u=_=>{if(!To(_.getNumberFormat()))return{numberFormat:"Short Date"}}}else l=o.value;let f=o.style;if(f&&f.isIStyle&&(f=f._p.getProperties()),h=o.hyperlink??h,u)if(f){const S=f;f=_=>{let E=_.createTemporaryStyle(u);return E=E.createTemporaryStyle(S),E=E._p.getProperties(),E}}else f=u;let p=!1;return l!==void 0&&(l===null?(s.value=null,s.type=A.ScalarType.Null):(s.value=l,s.type=i),p=!0),f!==void 0&&(s.style=f,p=!0),h!==void 0&&(s.hyperlink=h,p=!0),d!==void 0&&(s.formula=d,p=!0),r||(s.stringToParse=g,p=!0),p?(s.type=i,s):void 0},Wg=(a,t,e,n)=>Ug(e,t,a,t.getNumberFormat(),r=>n.styles.parseColor(r),n.date1904),Hg=(a,t,e,n,r=!1)=>{if(a===A.ScalarType.Null)return null;let o="";if(r)o=""+e;else{const s=Wg(a,t,e,n);if(s.formattedRuns){const i=s.formattedRuns.runs;for(let l=0;l<i.length;l++)o+=i[l].text}else o=s.displayText}return Si(o,t.getFont(),t.getAlignment(),a===A.ScalarType.String,r)},Dl=(a,t)=>{const e=t.getInsets();if(a===A.ScalarType.Null)return e;let n=e;const r=Ei(a,t),o=t.getAlignment().getIndent();if(o&&(r===exports.ITextFrame.HorizontalAlignment.Left||r===exports.ITextFrame.HorizontalAlignment.Right)){n={...e};const s=t.measureText(" ".repeat(1*o)),i=Math.min(3,Math.max(1,(26-t.getFont().getSize())/2));let l=s.width*i;r===exports.ITextFrame.HorizontalAlignment.Left?n.left+=l:r===exports.ITextFrame.HorizontalAlignment.Right&&(n.right+=l)}return Object.freeze(n)},Ei=(a,t)=>{const e=t.getAlignment(),n=e.getRotation(),r=e.getHorizontal();return n!==0&&r===exports.ITextFrame.HorizontalAlignment.General?n>0&&n<90||n>180&&n<=270?exports.ITextFrame.HorizontalAlignment.Right:exports.ITextFrame.HorizontalAlignment.Left:r===exports.ITextFrame.HorizontalAlignment.General?a===A.ScalarType.Null?exports.ITextFrame.HorizontalAlignment.Left:a===A.ScalarType.Boolean||a===A.ScalarType.Error?exports.ITextFrame.HorizontalAlignment.Center:t.getNumberFormat()==="@"?exports.ITextFrame.HorizontalAlignment.Left:a===A.ScalarType.Number?exports.ITextFrame.HorizontalAlignment.Right:exports.ITextFrame.HorizontalAlignment.Left:r},Vg=(a,t,e,n,r,o,s,i,l)=>{if(e===A.ScalarType.Null||r==="")return null;const c=t;if(!((B,P,L=!1,W=!1)=>{if(B===A.ScalarType.Null)return!1;const H=P.getAlignment(),G=H.getHorizontal();if(G===exports.ITextFrame.HorizontalAlignment.CenterContinuous||G===exports.ITextFrame.HorizontalAlignment.Fill)return!0;if(G===exports.ITextFrame.HorizontalAlignment.Distributed||B!==A.ScalarType.String||H.getOverflow()!==exports.ITextFrame.Overflow.Visible||G===exports.ITextFrame.HorizontalAlignment.Right&&L||G===exports.ITextFrame.HorizontalAlignment.Center&&L&&W||W&&(G===exports.ITextFrame.HorizontalAlignment.General||G===exports.ITextFrame.HorizontalAlignment.Left))return!1;const z=H.getVertical();return z!==exports.ITextFrame.VerticalAlignment.Justify&&z!==exports.ITextFrame.VerticalAlignment.Distributed})(e,n,o!==null&&o.colIndex+1===c,s!==null&&s.colIndex-1===c))return null;const h=s_(e,n,r,l),d=n.getAlignment(),u=d.getHorizontal(),g=d.getOverflow()===exports.ITextFrame.Overflow.Wrap||e===A.ScalarType.String&&(u===exports.ITextFrame.HorizontalAlignment.Justify||u===exports.ITextFrame.HorizontalAlignment.Distributed||d.getVertical()===exports.ITextFrame.VerticalAlignment.Justify||d.getVertical()===exports.ITextFrame.VerticalAlignment.Distributed),m=u===exports.ITextFrame.HorizontalAlignment.Fill,f=u===exports.ITextFrame.HorizontalAlignment.CenterContinuous||m;if(!h&&!f)return null;const p=(B=>B===exports.ITextFrame.HorizontalAlignment.Center||B===exports.ITextFrame.HorizontalAlignment.CenterContinuous?w.AnchorLocation.Center:B===exports.ITextFrame.HorizontalAlignment.Right?w.AnchorLocation.Right:w.AnchorLocation.Left)(Ei(e,n));let S=0,_=0,E=0,C=0,I=1;if(f&&r!==null&&i){ua.colIndex=t,ua.rowIndex=a;const B=i.colEnd;I=Math.min(l.nextContentful(ua,B),B)-t+1}const y=l.colHeaders,b=y.findOffset.bind(y),v=y.findIndex.bind(y);let R=b(c);const x=R;let T=b(c+I),M=T-R,F=c,N=c;const k={x:0,y:0,width:M,height:h?.height??0},U=c-c+I;let O=h?h.width-M:0,D=k;return M>0&&O>0&&!g&&(p===w.AnchorLocation.Center&&(O/=2),p!==w.AnchorLocation.Left&&p!==w.AnchorLocation.Center||(N=v(T+O),s!==null&&(N=Math.min(N,s.colIndex-1)),T=b(N),C=O,_=N-c),p!==w.AnchorLocation.Right&&p!==w.AnchorLocation.Center||(F=v(R-O),o!==null&&(F=Math.max(F,o.colIndex+1)),R=b(F),E=O,S=c-F),k.x=x-R,D.x=k.x),I>1&&(_=p===w.AnchorLocation.Center?Math.max(U-1,_):I-1,T=b(c+1),k.width=T-R,D={...k},D.width=M),{anchorBounds:k,leftIndex:S,rightIndex:_,leftOffset:E,rightOffset:C,colSpan:U,colBounds:D}};class o_{constructor(t,e){this._styles=t,this._ri=e;const n=e?.table;n&&(this._table=n.getStyle().getRanged(n));const r=e?.conditionals;if(r){const o=r.length,s=new Array(o);for(let i=0;i<o;i++){const l=r[i];s[i]=l}this._conditionals=s}}getCoords(){return w.CoordUtils.EmptyRange}getPropertiesAt(t,e,n){let r=null,o=this._ri.directStyle?.getPropertiesAt(t,e,n)??null;const s=this._styles;if(o&&o.named){const h=o.named;if(h!==exports.IStyle.BuiltInName.Normal){const d=this._styles.getNamed(h);d?r=d.getRanged().getPropertiesAt(t,e,n):console.warn(`A named styled was referenced but not found: '${h}'.`)}}let i=null;const l=this._table?.getPropertiesAt(t,e,n);l&&(i=i?w.TypedObject.resolveTypedUpdates(l,Dt,s,i):l),r&&(i=i?w.TypedObject.resolveTypedUpdates(r,Dt,s,i):r);const c=this._conditionals;if(c)for(let h=0;h<c.length;h++){const d=c[h].getPropertiesAt(t,e,n);d&&(i=i?w.TypedObject.resolveTypedUpdates(d,Dt,s,i):d)}return o&&(i=i?w.TypedObject.resolveTypedUpdates(o,Dt,s,i):o),i}cloneWithUpdate(t){return(this._ri.directStyle??this._styles.getNormalRanged()).cloneWithUpdate(t)}}const wr=(a,t,e,n)=>{const r=n.styles;return Fr(r,e?new o_(r,e):null,t,n.styleUpdater)},Cn=(a,t,e,n,r,o,s,i=null,l=n_)=>{if(e===null)return t?t.getBestFit():null;const c=a===A.ScalarType.String,h=t.getFont(),d=h.getWeight(),u=h.getSize(),g=h.getFamily(),m=t.getAlignment(),f=m.getOverflow(),p=m.getRotation(),S=m.getVertical(),_=t.getNumberFormat(),E=c&&f===exports.ITextFrame.Overflow.Visible,C=c&&(f===exports.ITextFrame.Overflow.Wrap||S===exports.ITextFrame.VerticalAlignment.Justify||S===exports.ITextFrame.VerticalAlignment.Distributed),I=(i??"")+"\0"+u+g+d+_+p+E+C+o+s+(i?"":e),y=l.get(I);if(y)return y;let b=null,v=null;const R=Dl(a,t),x=R.top+R.bottom+ +h_(t);let T=!1,M=!1;s&&(M=!0,(p!==0||C)&&(M=!1));const F=M?void 0:Hg(a,t,e,n),N=R.left+R.right+2;if(F){if(a===A.ScalarType.Number&&_==="General"&&o){let O=e,D=w.CommonUtils.splitNumber(O),B="";B=Math.abs(O)>=Math.pow(10,12)||Math.abs(O)<=Math.pow(10,-12)?`0.${"0".repeat(Math.max(2,Math.min(D.ipLength,5)))}E+00`:Math.abs(D.ipLength)===0?"0.0":Math.abs(D.fpLength)>0?"0".repeat(D.ipLength)+".0":"0".repeat(D.ipLength),O<0&&(B="-"+B),B="0".repeat(B.length);const P=t.measureText(B);b=P.width,v=P.lineHeight}else{let O=null;C&&(O={width:Math.max(1,r-N)});const D=F.layout(O);b=D.bounds.width,v=D.bounds.height}if(b!==null&&(b+=N),v!==null&&(v+=x),T=a===A.ScalarType.String,p){T&&f===exports.ITextFrame.Overflow.Wrap&&(T=!1);const O=((D,B)=>{const{x:P,y:L,width:W,height:H}=D,G=B*Math.PI/180,z=Math.sin(G),V=Math.cos(G),j=W/2,q=H/2,J=$o(-j,-q,z,V),X=$o(j,-q,z,V),Q=$o(-j,q,z,V),$=$o(j,q,z,V);let tt=Math.min(J.x,X.x,Q.x,$.x)+j,st=Math.max(J.x,X.x,Q.x,$.x)+j,K=Math.min(J.y,X.y,Q.y,$.y)+q;return{x:P+tt,y:L+K,width:st-tt,height:Math.max(J.y,X.y,Q.y,$.y)+q-K}})({x:0,y:0,width:b,height:v},p);b=O.width,v=O.height}}else v=t.getBestFit().height;o&&T&&(b=0);const k={width:b,height:v},U=Object.freeze(k);return l.set(I,U),U},s_=(a,t,e,n)=>{const r=Dl(a,t),o=Ei(a,t);let s=r.left+r.right;o===exports.ITextFrame.HorizontalAlignment.Left?s=r.right:o===exports.ITextFrame.HorizontalAlignment.Right?s=r.left:o===exports.ITextFrame.HorizontalAlignment.Center&&(s=r.left+r.right);const i=Cn(a,t,e,n,Number.MAX_SAFE_INTEGER,!1,!1);return{width:Math.ceil(i.width-s),height:Math.ceil(i.height)}};class Mn{constructor(t,e,n=A.ScalarType.Null,r=null,o=null,s=null,i=null){this._options=t,this._coords=e??null,this._t=n,this._ri=o,this._v=r,this._p=s,this._n=i}getRange(){const t=this._coords;return this._options.getRange(t?w.CoordUtils.cellToRange(t):null)}isEqual(t){if(!t)return!1;if(this===t)return!0;const e=t;return!!e.isICell&&this._v===e._v&&!!w.CoordUtils.isEqualCells(this._coords,t.getCoords())&&this._options.sheet===e._options?.sheet}getCoords(){return this._coords}getA1(){const t=this._coords;return t?Pe(this._options.resolveRange(t).getCoords()):jt}getSheet(){return this._options.sheet}select(t){return this._options.opener("#"+ko(this._coords),t)}getColumnFilter(){if(!this._ri)return null;let t=null;if(this._ri.table){const e=this._ri.table.getHeaderRange().getCoords();if(e&&w.CoordUtils.isCellWithinRange(this._coords,e)){const n=this._coords.colIndex-e.colStart;t=this._ri.table.getColumnFilter(n)??null}}return t}getProtection(){return r_}getTextOverflow(){const t=this._to;if(t!==void 0)return t;const e=this._ri;if(e&&e.merge)return this._to=null,null;const n=this._t;let r=null;if(n===A.ScalarType.String||e&&e.continuous){const o=this.getStyle(),s=this._coords;r=Vg(s.rowIndex,s.colIndex,n,o,this._v,this._p,this._n,e?.continuous?.getCoords()??null,this._options)}return r===null||r.leftIndex===0&&r.rightIndex===0&&r.colSpan<=1?(this._to=null,null):(this._to=r,this._to)}getRenderHorizontalAlignment(){return Ei(this._t,this.getStyle())}isEmpty(){return this._v===null&&!this._ri}getExtrusions(){const t=this._ri;if(!t&&this._to===null)return null;if(t){const r=t.merge;if(r!==void 0)return r.getCoords()}const e=this.getTextOverflow();if(!e)return null;const n=this._coords;return{colStart:n.colIndex-e.leftIndex,rowStart:n.rowIndex,colEnd:n.colIndex+e.rightIndex,rowEnd:n.rowIndex}}isEditAllowed(){const t=this._options;return t?!t.getProtection().isLocked()||!!this._ri&&this.getProtection().isEditAllowed():!0}isFormulaHidden(){return!!this._options.getProtection().isLocked()&&!!this._ri&&this.getProtection().isFormulaHidden()}isContentful(){return this._v!==null}getBestFit(t,e=!1){return t===void 0&&(t=this._options.sheet.getColumnHeaders().getSpanSize(this._coords.colIndex)??64),Cn(this._t,this.getStyle(),this._v,this._options,t,e,!1)}getInsets(){return this._v===null?this.getStyle().getInsets():Dl(this._t,this.getStyle())}getTextFrame(t){let e,n;if(t&&(n=this.getFormulaText()),e=n??this._v,e===null)return null;const r=this.getStyle();return n?((o,s)=>s===A.ScalarType.Null?null:Si(s,o.getFont(),o.getAlignment(),!1,!0))(r,e,this._options):Hg(this._t,r,e,this._options,t)}getValue(){return this._v}getFormula(){let t=this._ri?.formula;if(!t)return null;const e=this._coords;return e?(Array.isArray(t)&&(t=t[0]),new a_(this._options,t,e)):null}getFormulaText(){let t=this._ri?.formula;if(!t)return null;const e=this._coords;return e?(Array.isArray(t)&&(t=t[0]),"="+t.getFormulaTextAt(e.rowIndex,e.colIndex)):null}getCalcStatus(){const t=this._ri;return t&&t.pending?exports.ICell.CalcStatus.Pending:exports.ICell.CalcStatus.Ready}getType(){return this._t}getStyle(t=!1){if(!t&&this._styleConditional)return this._styleConditional;if(t&&this._styleSpecific)return this._styleSpecific;const e=wr(0,w.CoordUtils.cellToRange(this._coords),this._ri,this._options);return t?this._styleSpecific=e:this._styleConditional=e,e}createTemporaryCell(t){const e=this._options;if(t===null)return new Mn(e,this._coords,null);const n=cl(t,this._options);let r=this._ri;if(n.style!==void 0){const i=this._coords??w.CoordUtils.EmptyCell,l=w.CoordUtils.cellToRange(i),c=()=>wr(0,l,this._ri,this._options),h=Ci(this._options.styles,n.style,c),d=(this._ri?.directStyle??new Ht(e.styles,l)).cloneWithUpdate(h);r={...r,directStyle:d}}let o=this._t,s=this._v;return n&&n.value!==void 0&&(s=n.value,o=n.type),s===this._v&&o===this._t&&r===this._ri?this:s!==null||r?new Mn(this._options,this._coords,o,s,r):new Mn(this._options,this._coords)}_isDate1904(){return this._options.date1904}getNumberFormat(t){if(t!==void 0){const e=this._v;return Ug(e,this.getStyle(),this._t,t,n=>this._options.styles.parseColor(n),this._isDate1904())}return Wg(this._t,this.getStyle(),this._v,this._options)}toDate(){return this._t!==A.ScalarType.Number?null:this._ri?this.getNumberFormat().asDate:null}toText(){return this.getNumberFormat().displayText}toTextUnformatted(t){if(t){const n=this.getFormulaText();if(n)return n}let e=this._v;return this.isSpillOverflow()&&(e=null),((n,r,o,s)=>{if(r===A.ScalarType.Null||n==null)return"";if(r===A.ScalarType.Number){const i=n,l=To(o),c=gi(o);if(l||c){const h=parseFloat(n),d=h%1!=0,u=h>=1;if(h<0)return w.CommonUtils.castToString(n);if(!l||c||d)if(!c||l||u){const g=io("Short Date",i,s),m=io("Long Time",i,s);if(g&&m)return g.fmt+" "+m.fmt}else{const g=io("Long Time",i,s);if(g)return g.fmt}else{const g=io("Short Date",i,s);if(g)return g.fmt}}}if(r===A.ScalarType.Number&&o.endsWith("%")){let i=w.CommonUtils.roundAccurately(100*parseFloat(n));if(!isNaN(i))return i+"%"}return r===A.ScalarType.Boolean?n?"TRUE":"FALSE":r===A.ScalarType.Error?n?.getLabel?.()??A.FormulaError.Label.Unknown:r===A.ScalarType.RichData?"(Rich Object)":w.CommonUtils.castToString(n)})(e,this._t,this.getStyle().getNumberFormat(),{date1904:this._isDate1904()})}getComments(){const t=this._ri?.comments;return t?Object.freeze(t):null}getHyperlink(){const t=this._ri?.hyperlink;return t?new T0(this.toText.bind(this),this._options.opener,t):null}getErrors(){const t=this._ri;return t&&t.calcError?[t.calcError]:w.CommonUtils.EmptyArray}getWarnings(){return w.CommonUtils.EmptyArray}getSpans(){const t=this._ri?.merge;if(!t)return e_;const e=t.getCoords();return Object.freeze({width:e.colEnd-e.colStart+1,height:e.rowEnd-e.rowStart+1})}isTopLeft(){const t=this._ri?.merge;if(!t)return!0;const e=t.getCoords();return this._coords&&this._coords.colIndex===e.colStart&&this._coords.rowIndex===e.rowStart}getSpill(){let t=this._ri?.spills;if(!t||!this._coords)return null;Array.isArray(t)||(Zo[0]=t,t=Zo);let e=null;for(let n=0;!e&&n<t.length;n++){const r=t[n];r.getError()||(e=r)}return e||(e=t[0]),this._options.getRange(e.getCoords())}isSpillOverflow(){let t=this._ri?.spills;if(!t)return!1;if(!this._coords)return null;Array.isArray(t)||(Zo[0]=t,t=Zo);for(let e=0;e<t.length;e++){const n=t[e].getCoords();if(this._coords.colIndex===n.colStart&&this._coords.rowIndex===n.rowStart)return!1}return!0}get[Symbol.toStringTag](){return"[Cell]"}toString(){let t="{blank}";return this._v!==null&&(t=this.toTextUnformatted(),this.getType()===A.ScalarType.String&&(t=`'${t}'`)),`${this.getA1()} => ${t}`}get isICell(){return!0}}let i_=class extends Mn{constructor(a){super(a,null,null,null)}isEmpty(){return!0}isContentful(){return!1}toString(){return"{EMPTY CELL}"}};class a_{constructor(t,e,n){this._options=t,this._entry=e,this._coords=n}getTokens(t){const e=this._coords;return e?this._entry.getTokensAt(e.rowIndex,e.colIndex,t):w.CommonUtils.EmptyArray}evaluate(t){const e=this._coords;return e?this._options.calcGraph().evaluateAt(e.rowIndex,e.colIndex,t):w.CommonUtils.EmptyArray}toText(t){const e=this._coords;return e?"="+this._entry.getFormulaTextAt(e.rowIndex,e.colIndex,t):null}getDirectPrecedents(){const t=this._coords;return t?this._options.calcGraph().getDirectPrecedentsAt(t.rowIndex,t.colIndex):w.CommonUtils.EmptyArray}getReferences(){const t=this._coords;return t?this._entry.getReferencesAt(t.rowIndex,t.colIndex):w.CommonUtils.EmptyArray}setReferenceAt(t,e){const n=this._coords;return n?(this._options.calcGraph().setReferenceAt(n.rowIndex,n.colIndex,t,e),this):w.CommonUtils.EmptyArray}get[Symbol.toStringTag](){return"[Formula]"}toString(){return this.toText()}}const Zo=[null],ua={colIndex:-1,rowIndex:-1};let ga;const si=(a,t,e,n=!1)=>{const r=e===A.IRange.Orientation.Row,o=a.length,s=new Array(o);for(let i=0;i<o;i++){const l=a[i];if(r){const c=l.colEnd-l.colStart+1;s[i]={...l,colStart:n?l.colEnd+1:l.colStart,rowStart:t.rowStart,colEnd:n?l.colEnd+c:l.colEnd,rowEnd:t.rowEnd}}else{const c=l.rowEnd-l.rowStart+1;s[i]={...l,colStart:t.colStart,rowStart:n?l.rowEnd+1:l.rowStart,colEnd:t.colEnd,rowEnd:n?l.rowEnd+c:l.rowEnd}}}return s},hl=(a,t,e)=>{const n=t,r=a.length,o=n.rowStart,s=n.rowEnd;for(let i=0;i<r;i++){const l=a[i];if((l.rowStart<=o&&l.rowEnd>=s)!==e)return!e}return e},dl=(a,t,e)=>{const n=t,r=a.length,o=n.colStart,s=n.colEnd;for(let i=0;i<r;i++){const l=a[i];if((l.colStart<=o&&l.colEnd>=s)!==e)return!e}return e},l_=(a,t)=>{if(t){if(a.colStart<=t.colStart&&a.colEnd>=t.colEnd)return A.IRange.Orientation.Row;if(a.rowStart<=t.rowStart&&a.rowEnd>=t.rowEnd)return A.IRange.Orientation.Column}return a?(e=>e.rowEnd-e.rowStart>e.colEnd-e.colStart?A.IRange.Orientation.Column:A.IRange.Orientation.Row)(a):A.IRange.Orientation.Row},ts=()=>!1,ma=()=>!0,es=()=>null,fa=()=>Wt,Ke=()=>0,id=new class extends Mn{constructor(){super(null,null)}createTemporaryCell(){return this}getType(){return A.ScalarType.Error}getWarnings(){return[jt]}getStyle(a=!1){return ga||(ga=new Br().getNormal(),ga)}toString(){return`${this._coords?ko(this._coords):jt} => ${this._v??"{blank}"}`}},De=()=>Rn,Rn={forEach:()=>{},[Symbol.iterator]:fa,entries:fa,values:fa,select:gt,find:gt,calculate:gt,getCell:()=>id,getValue:es,setValue:gt,setFormula:gt,setValues:gt,updateCells:gt,getCells:()=>[[id]],getStyle:gt,getValues:()=>[[null]],toText:()=>"",getBounds:es,getIntersect:De,getUnion:De,getDifferences:gt,getResizeBy:De,getResizeTo:De,getOffsetBy:De,getOffsetTo:De,getFixed:De,getUsedRange:De,getEntireRows:De,getEntireColumns:De,getSurrounding:gt,getExtended:gt,isEntireRows:ts,isEntireColumns:ts,isEntireRange:ts,getWidth:Ke,getHeight:Ke,size:0,sort:gt,clear:gt,setHyperlink:gt,setComments:gt,merge:gt,unmerge:gt,getMerges:gt,insert:gt,insertFrom:gt,delete:gt,getDefaultShiftOrientation:gt,getDefaultSortCriteria:gt,autoFill:gt,autoFit:gt,getSnapshot:gt,copyFrom:gt,doBatch:gt,startIncrementalUpdates:gt,getRowHeaders:gt,getColumnHeaders:gt,getCounts:gt,getCount:Ke,isContentful:ts,addListener:gt,getColumnStart:Ke,getRowStart:Ke,getColumnEnd:Ke,getRowEnd:Ke,getRowCount:Ke,getColumnCount:Ke,getVisible:gt,getCoords:es,isEmpty:ma,toString:()=>jt,getA1:()=>jt,isInvalid:ma,getSheet:es,isReadOnly:ma,isICellRange:!0};function rn(a,t=null,e=null,n=jt){return a||e?Object.freeze({...Rn,getSheet:()=>a,bounds:()=>e,getA1:()=>n,toString:()=>e?cn(e,t):n}):Rn}const c_=/^[\\+-]?[0-9]*\.?[0-9]*$/,jg=(a,t,e)=>{if(a===void 0)throw new Error("A value is required to create a cell from a text.");const n=e??{value:null};if((a=w.CommonUtils.castToString(a)).trim()==="")return n;if(a.toUpperCase()==="TRUE"||a.toUpperCase()==="FALSE")return n.value=a.toUpperCase()==="TRUE",n;if(a.startsWith("'")&&!t?.ignoreQuotePrefix)return n.style={quotePrefix:!0},n.value=a.substring(1,a.length),n;n.value=a;const r=",",o="$",s=".";let i=a.trim(),l=1,c=!1;i=(p=>{const S=new RegExp("([(]{1}([^(|^)]+)[)]{1})").exec(p);if(S?.[2]){const _=p.substring(0,S.index)+S[2].trim()+p.substring(S.index+("("+S[2]+")").length-1,p.length-1);return _.indexOf("(")>-1||_.indexOf(")")>-1?p:(c=!0,l=-1,_)}return p})(i);let h=0;i=(p=>{const S=new RegExp("[0-9]+([eE][-+]?[0-9]+)?$").exec(p);if(S?.[1]){const _=p.substring(0,p.length-S[1].length);let E=1,C=S[1].substring(1,S[1].length);if(C.startsWith("-")?(C=C.substring(1,C.length),E=-1):C.startsWith("+")&&(C=C.substring(1,C.length)),!isNaN(C))return h=C*E,_}return p})(i);let d=!1;if(i=(p=>{const S=new RegExp(`^(\\${o}[\\ ]*\\-|\\${o}[\\ ]*\\+|\\-[\\ ]*\\${o}|\\+[\\ ]*\\${o}|\\-|\\+)?`).exec(p);if(S?.[1]){const _=S?.[1].indexOf(o)>-1,E=S?.[1].indexOf("-")>-1,C=S?.[1].indexOf("+")>-1,I=(_?o:"")+p.substring(S.index+S[1].length,p.length).trim(),y=I.indexOf("-")>-1,b=I.indexOf("+")>-1;return y||b?p:(d=E||C,E&&(l=-1),I)}return p})(i),d&&(c||i.length===0))return n;let u=!1;if(i=(p=>{if(new RegExp(`^(?:\\${o}[\\ ]*)?((\\d{1,3}(${r}\\d{3})*)|(\\d*))(\\${s}|\\${s}\\d*)?(?:[\\ ]*\\%)?$`).test(i)){const S=p.replace(new RegExp(`${r}`,"g"),"");return u=S.length<p.length,S}return p})(i),i.match(c_)&&!isNaN(i)){if(n.value=i*l,h!==0)n.value=n.value*Math.pow(10,h),n.style={numberFormat:`0${s+"0".repeat(2)}E+00`};else if(u){let p=Ts(i);n.style=p>0?{numberFormat:`#${r}##0${s+"0".repeat(2)}`}:{numberFormat:`#${r}##0`}}return n}if(i.trimEnd().endsWith("%")&&i.trimEnd().length>1){let p=i.substring(0,i.length-1);if(!isNaN(p)){n.value=p*l/100;const S=Ts(p);n.style=_=>{if(!_.getNumberFormat().includes("%"))return{numberFormat:S>0?`0${s+"0".repeat(2)}%`:"0%"}}}return n}if(i.startsWith(o)&&a.trim().length>1){let p=i.replace(o,"");if(!isNaN(p)){let S=Ts(p);n.value=p*l,n.style=_=>{if(_.getNumberFormat().includes(o))return;let E;return E=S>0?`${o}#${r}##0${s+"0".repeat(2)}_);[Red](${o}#${r}##0${s+"0".repeat(2)})`:`${o}#${r}##0_);[Red](${o}#${r}##0)`,{numberFormat:E}}}return n}let g=null,m=null;try{m=Mu(a,t?.date1904,!0);let p=a;m&&(p=m.leadingText),p.trim().length>0&&(g=Il(p,t?.date1904)),!g&&m?.leadingText.trim().length>0&&(m=null)}catch{}if(g||m){n.style=S=>{let _=S.getNumberFormat();const E=To(_);if(g&&E)return;const C=gi(_);if(!m||!C){if(g&&m&&!E&&!C?_="m/d/yyyy h:mm":g&&!E?_=g.numberFormat:m&&!C&&(_=m.numberFormat),m&&m.parsed.oaDateTime>1&&(_="General"),g&&!E&&!m){const I=exports.NumberFormat.Parser.formatValue(g.numberFormat,g.asOADate,{date1904:t?.date1904}),y=Intl.DateTimeFormat().resolvedOptions().locale??"en-US";I===new Intl.DateTimeFormat(y).format(g.asJSDate)?_="Short Date":I===new Intl.DateTimeFormat(y,{dateStyle:"full"}).format(g.asJSDate)?_="Long Date":I===new Intl.DateTimeFormat(y,{timeStyle:"medium"}).format(g.asJSDate)&&(_="Long Time")}return{numberFormat:_}}};let p=0;return g&&(p+=g.asOADate),m&&(p+=m.parsed.oaDateTime),n.value=p,n}const f=A.FormulaError.getBuiltInByLabel(a);return f?(n.value=f,n):(n.value=a,Pu(a)?n.hyperlink=a:Wu(a)&&(n.hyperlink=a,n.hyperlink.toLowerCase().startsWith("mailto:")||(n.hyperlink=`mailto:${n.hyperlink}`)),a.includes(`
26
+ `)&&(n.style={...n?.style,alignment:{overflow:exports.ITextFrame.Overflow.Wrap}}),n)},h_=a=>{const t=a.getFont().getUnderline()===exports.IFont.UnderlineStyle.SingleAccounting,e=a.getFont().getUnderline()===exports.IFont.UnderlineStyle.DoubleAccounting;let n=0;return(t||e)&&(n=a.measureText("").underlineThickness+1,e?n*=2:n+=1),n},pa=a=>{const t=[];return a.getUsedRange().forEachSpan((e,n)=>{const r=n.getCoords();e===0&&t.push(r)},{includeStyles:!1}),Qe($n(t))},ad=a=>{if(!a)return null;let t=null;const e=a.length;for(let n=0;n<e;n++){const r=a[n].value;if(!r)continue;t||(t={...t});const o=Object.keys(r),s=o.length;for(let i=0;i<s;i++){const l=o[i],c=t[l];if(c)if(Array.isArray(c)){const h=r[l];if(Array.isArray(h)){const d=h.length;for(let u=0;u<d;u++)c.push(h[u])}else c.push(h)}else t[l]=[c,r[l]];else t[l]=r[l]}}return t},Sa=(a,t,e,n)=>{const r=n?.asJSDate;let o;e?o=vg:(r||n?.includeMergeOverflow)&&(o={},r&&(o[Z.Type.Style]=!1,o[Z.Type.Table]=!1),n.includeMergeOverflow&&(o[Z.Type.Merge]=!1));const s=n?.orientation??A.IRange.Orientation.Row,i=n?.maxSize??1e4,l=a({includeEmpty:!0,orientation:s,reverse:n?.reverse,ignoreHidden:n?.ignoreHidden,includeMergeOverflow:n?.includeMergeOverflow,includeRangeTypes:o,bounds:t,ignoreCellDetails:!r}),c=s!==A.IRange.Orientation.Row,h=[];let d,u=-1,g=null,m=0;for(d=l.next();!d.done;){if(m>i)throw new Error(xg(i));const f=d.value,p=f.context.getCoords(),S=c?p.colIndex:p.rowIndex;S!==u&&(g=[],h.push(g),u=S);let _=f.value;if(e)_=f.context.getCell();else if(r&&_!==null&&typeof _=="number"){const E=f.context.getCell().toDate();E&&(_=E)}g.push(_),d=l.next(),m++}return h},po=(a,t)=>a===t||!(!a||!t)&&a.rowStart===t.rowStart&&a.rowEnd===t.rowEnd&&a.colStart===t.colStart&&a.colEnd===t.colEnd&&a.$rowStart===t.$rowStart&&a.$rowEnd===t.$rowEnd&&a.$colStart===t.$colStart&&a.$colEnd===t.$colEnd,Gg=(a,t)=>{if(!a)return;const e={...a};return t?typeof t=="boolean"?(e.$colStart=t,e.$rowStart=t,e.$colEnd=t,e.$rowEnd=t,e):(typeof t.colStart=="boolean"&&(e.$colStart=t.colStart),typeof t.rowStart=="boolean"&&(e.$rowStart=t.rowStart),typeof t.colEnd=="boolean"&&(e.$colEnd=t.colEnd),typeof t.rowEnd=="boolean"&&(e.$rowEnd=t.rowEnd),e):e};class _a{constructor(t,e,n){const r=this;this.setState=o=>{const s=o[0];let i=o[1],l=o[2];if(e&&e.includeMergeOverflow&&l&&l.merge){const h=e.bounds,d=l.merge.getCoords();let u=!1;const g=d.colStart,m=d.rowStart,f=h.colStart,p=h.rowStart,S=s.colIndex,_=s.rowIndex;!u&&g<f&&m>=p&&S===f&&_===m&&(u=!0),!u&&m<p&&g>=f&&_===p&&S===g&&(u=!0),!u&&m<p&&g<f&&_===p&&S===f&&(u=!0),u&&(i=l.merge.tvTl())}l&&Object.keys(l).length===0&&(l=null);let c=i;return i===void 0?(this._t=null,this._v=null,c=null):(this._t=qt(c),this._v=c),this._r=l,this._p=o[3],this._n=o[4],this._c=s,c},this.clear=()=>{r._c=null},this.context={getCoords(){const o=r._c;if(!o)throw new Error(vr);return o},getCell(){const o=r._c;if(!o)throw new Error(vr);if(this.ignoreCellDetails)throw new Error("IteratorContext can only return a cell if the forEach ignoreCellDetails has not been set to false.");const s=r._r,i=r._t,l=r._v;return l!==null||s?new Mn(n,o,i,l,s,r._p,r._n):new Mn(n,o)},getType:()=>r._t,getA1(o){if(!r.context)throw new Error(vr);let s=r._c;return o&&(s={...r._c,...o}),n.resolveRange(s).toString()},toJSDate(o){if(r._t!==A.ScalarType.Number)return null;let s=o;if(s===void 0)s=r._v;else if(typeof s!="number")throw new Error("The arguments are not valid.");return Or(s,n.date1904)}}}}const ln=(a,t)=>{if(a||t)return a&&t?{...a,...t}:a||t},ld=(a,t,e,n=A.IRange.Orientation.Row)=>{const r=a.getRange(t,{ignoreHidden:n}),o=r.forEach((_,E)=>({break:E.getCoords()}),{ignoreCellDetails:!0,orientation:n});if(!o)return;const s=n===A.IRange.Orientation.Row,i=new Map;let l;const c=new Map;let h=null;const d=s?o.rowIndex:o.colIndex;r.forEach((_,E)=>{const C=E.getCoords(),I=s?C.colIndex:C.rowIndex;if((s?C.rowIndex:C.colIndex)===d)i.set(I,_),l=E.getType();else{const y=E.getType();l!==y&&(h=!0)}if(h)return I0},{orientation:n===A.IRange.Orientation.Row?A.IRange.Orientation.Column:A.IRange.Orientation.Row,ignoreCellDetails:!0,includeEmpty:!0,address:{colStart:t.colStart,rowStart:t.rowStart,colEnd:s?t.colEnd:t.colStart+1,rowEnd:s?t.rowStart+1:t.rowEnd}}),h&&i.forEach((_,E)=>{c.set(E,_+"")});const u={colStart:o.colIndex,rowStart:o.rowIndex,colEnd:t.colEnd,rowEnd:t.rowEnd};if(u.colStart>u.colEnd||u.rowStart>u.rowEnd||w.CoordUtils.isSingleCell(u))return null;const g=Math.min(Math.max(e?.colIndex??0,u.colStart),u.colEnd),m=Math.min(Math.max(e?.rowIndex??0,u.rowStart),u.rowEnd),f=n!==A.IRange.Orientation.Row,p={...exports.Sort.DefaultRangeOptions,hasHeader:h,orientation:n,offset:f?m-u.rowStart:g-u.colStart};let S=u;return h&&(S={colStart:f?u.colStart+1:u.colStart,rowStart:f?u.rowStart:u.rowStart+1,colEnd:u.colEnd,rowEnd:u.rowEnd}),{coords:u,options:p,headers:c,sortCoords:S}},cd=(a,t,e=null)=>Er.fromArray(a,(n,r)=>{const o=n?.[1];if(o==null)return null;let s=n[0]??null;switch(o){case A.ScalarType.String:s=t.getById(s);break;case A.ScalarType.Error:s=A.FormulaError.getBuiltInById(s);case A.ScalarType.RichData:}return s},(n,r)=>{const o=qt(n);let s=n;switch(o){case A.ScalarType.String:s=t.add(s);break;case A.ScalarType.Error:s=s.getCode();case A.ScalarType.RichData:}return[s,o]},e),hd=(a,t)=>{const e=[],n=t?A.IRange.Orientation.Column:A.IRange.Orientation.Row,r=a.length;for(let o=0;o<r;o++){const s=a[o],i=s[0],l=s[1],c=l.length;for(let h=0;h<c;h++){const d=l[h],u=d[0],g=d[1].length-1,m={colStart:t?i:u,rowStart:t?u:i,colEnd:t?i:u+g,rowEnd:t?u+g:i,value:new ke({colStart:t?i:u,rowStart:t?u:i,colEnd:t?i:u+g,rowEnd:t?u+g:i},n)};e.push(m)}}return e},dd=(a,t,e)=>{if(!a||a.length===0)return null;const n=a.length;let r,o=-1;const s=[],i=t===A.IRange.Orientation.Column,l=i?e.rowStart:e.colStart,c=i?e.rowEnd:e.colEnd,h=i?A.IRange.Orientations.Column:A.IRange.Orientations.Row;for(let d=0;d<n;d++){const u=a[d],g=u.s;if(g===void 0){o=-1;continue}const m=u.min,f=u.max;g!==o||r.colEnd+1!==m?(r={colStart:i?m:l,rowStart:i?l:m,colEnd:i?f:c,rowEnd:i?c:f,value:{orientations:h,index:g}},o=g,s.push(r)):r.colEnd=f}return s.length===0?null:s},ud="Item has been closed. No further operations are allowed.";class Ii{constructor(t){if(this._emitter=null,this._closed=!1,!t)throw new Error("Anchored.ConstructorOptions is required");if(this._options={...t},!this._options.initialAnchor)throw new Error("Initial anchor is required");const e=this;this._transactions=this._options.transactions??new xe({transient:!0}),this._emitter=new Xt(this,this._transactions),this._updateState({anchor:this._options.initialAnchor},{description:t?.createDescription??"Create Anchored Item"}),this._options.setContainerShiftCallback?.(n=>e._processContainerShift(n)),this._options.setContainerLayoutCallback?.(()=>{e._processContainerLayout()}),this._options.setContainerDeleteCallback?.(()=>{e._processContainerDelete()}),this._options.setContainerProtectionCallback?.(()=>{e._processContainerProtection()}),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onBeforeCommitStart(n,r,o){e._processBeforeCommitStart(n,r,o)},onAfterStateChange(n,r,o){e._processStateChange(n,r,o),e._processAnchorCoords(),e._emitter.notify("onAnchorCoordsChange")},onRestoreOrRevert(n,r,o){e._processRestoreOrRevert(n,r,o)}})}_getEmitter(){return this._emitter}delete(t){this._options.deleteFromContainer?.(t)}getAnchorCoords(){return this._getState()?.anchor??null}getAnchorType(){return this._getState()?.anchorType??exports.IAnchored.Type.TwoCell}isProtected(){return this._options.isProtected?.()??!1}beginCommit(t){return this._beginCommit(t)}_getState(){if(this._closed)throw new Error(ud);return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(typeof t=="string"?{description:t}:t)}_getTransactions(){return this._transactions}_updateState(t,e,n){if(this._closed)throw new Error(ud);if(!t)return;const r=this._beginCommit(e?.description);try{r.updateState(this,t);let o=!1;if(n)for(let s=0;s<n.length;s++){const i=n[s];o=o||i==="onAnyChange",this._emitter.notify(i)}!o&&n&&n.length>0&&this._emitter.notify("onAnyChange"),r.commit()}catch(o){throw r.rollback(),o}return this}_processContainerShift(t){let e=null;const n={anchor:t.after};return t.after||(n.isDeleted=!0,e=["onDelete"]),this._updateState(n,{description:"Update Anchor"},e),t.after}_processBeforeCommitStart(t,e,n){}_processStateChange(t,e,n){}_processRestoreOrRevert(t,e,n){this._emitter.notify("onInvalidated")}_processAnchorCoords(){}_processContainerLayout(){}_getDescription(){return null}_delete(){const t=this._getDescription(),e="Delete",n=t?`${e} ${t}`:e,r=this._beginCommit(n);try{this._processDelete(),r.commit()}catch(o){throw r.rollback(),o}}_processContainerDelete(){this._processDelete()}_processDelete(){}_processContainerProtection(){this._emitter.notify("onProtectedChange")}addListeners(t,e){return this._emitter.addListeners(t,e)}isClosed(){return this._closed}_processClose(){this._closed=!0,this._emitter.notify("onClose"),this._transactionsRemoveListener?.()}close(){this._closed||this._processClose()}get isIAnchored(){return!0}}var Dn;exports.AddressUtils=void 0,(Dn=exports.AddressUtils||(exports.AddressUtils={})).fastStringToCol=_0,Dn.fastStringToCell=Sr,Dn.fastStringToRange=de,Dn.rangeToString=cn,Dn.cellToString=Fn,Dn.normalizeA1ToR1C1=E0,Dn.resolveRelativeToA1=C0;const d_=(a,t)=>a.offset-t.offset,gd=a=>{if(!a||a.size===0)return[];let t=[];return a.forEach((e,n)=>{e&&Object.keys(e).length!==0&&t.push({...e,offset:n})}),t.sort(d_)};class u_ extends Ii{constructor(t){super({...t,createDescription:"Insert AutoSort"}),this._apply=t.apply,this._processUpdate=t.processUpdate,this._fromJSON(t.json)}getRange(){return this._getState().anchor}getFieldAt(t){const e=this._getState().byOffset.get(t)??null;return e?Object.keys(e).length===0||Object.keys(e).length===1&&e.hasOwnProperty("offset")?null:{collatorOptions:null,...e}:null}insertSort(){return null}getSort(){return null}apply(t){const e=this._getState().byOffset,n=new Map(e);for(let r=0;r<t.length;r++){const o={...t[r]},s=o.offset;delete o.offset,n.set(s,o)}return this._updateState({byOffset:n},{description:"Set Sort Criteria"}),this.reapply()}setFieldAt(t,e){const n=this._getState().byOffset,r=new Map(n);return e&&Object.keys(e).length>0?r.set(t,e):r.delete(t),this._updateState({byOffset:r},{description:"Sort"}),this.reapply()}_processStateChange(t,e,n){super._processStateChange(t,e,n),this._processUpdate?.()}reapply(){const t=this._getState(),e=gd(t.byOffset);return this._apply?.(e),this}clear(){return this._updateState({byOffset:new Map},{description:"Clear Sort"}),this.reapply()}_fromJSON(t){const e=t??{},n={byOffset:new Map};if(e.fields)for(let r=0;r<e.fields.length;r++){let o=e.fields[r];const s=o.offset;o={...e.fields[r]},delete o.offset,n.byOffset.set(s,o)}this._updateState(n,{description:"Load"})}toJSON(){const t={},e=this._getState();e.anchor&&(t.ref=exports.AddressUtils.rangeToString(e.anchor,this._options.maxRangeCoords));const n=gd(e.byOffset);return n.length>0&&(t.fields=n),Object.keys(t).length===0?null:t}}const g_=(a,t)=>a.offset-t.offset,wa=a=>{if(!a||a.size===0)return[];let t=[];return a.forEach((e,n)=>{e&&Object.keys(e).length!==0&&t.push({...e,offset:n})}),t.sort(g_)},md=(a,t=new Map)=>{if(!a||a.length===0)return t;for(let e=0;e<a.length;e++){const n={...a[e]},r=n.offset;delete n.offset,t.set(r,n)}return t},ya=a=>{let t=0;const e=a.entries();let n=null;do n=e.next(),n.value?.[1]&&n.value[1].hiddenButton&&t++;while(!n.done);return t};class $g extends Ii{constructor(t){super({...t,createDescription:"Insert AutoFilter"}),this._apply=t.apply,this._processUpdate=t.processUpdate,t.setFilterCoordsCallback?.(e=>{this._getState().anchor}),this._fromJSON(t.json)}getCoords(){return this._getState().anchor}getFieldAt(t){const e=this._getState().byOffset.get(t)??null;return e?Object.keys(e).length===0||Object.keys(e).length===1&&e.hasOwnProperty("offset")?null:{hiddenButton:!1,criteria:w.CommonUtils.EmptyArray,...e}:null}insertSort(){return null}getSort(){return null}apply(t){const e=this._getState().byOffset,n=new Map(e);return md(t,n),this._updateState({byOffset:n,hiddenCount:ya(n)},{description:"Set Filter Criteria"}),this.reapply()}setFieldAt(t,e){const n=this._getState(),r=n.anchor.colEnd-n.anchor.colStart+1;if(t<0||t>r-1)throw new Error(`Invalid range: '${t}'`);const o=n.byOffset,s=new Map(o);e&&Object.keys(e).length>0?s.set(t,e):s.delete(t);const i=o.get(t)?.hiddenButton===!0?1:0,l=e?.hiddenButton===!0?1:0;return this._updateState({byOffset:s,hiddenCount:Math.min(r,Math.max(0,n.hiddenCount+l-i))},{description:"Set Filter Criteria"}),this.reapply()}getShowFilterButton(){const t=this._getState(),e=t.anchor,n=e.colEnd-e.colStart+1;return t.hiddenCount<n}setShowFilterButton(t){const e=this.getAnchorCoords(),n=e.colEnd-e.colStart+1;let r=Array(n);const o=this._getState().byOffset,s=wa(o);for(let l=0;s&&l<s.length;l++){const c={...s[l]};r[c.offset]=c,t?delete c.hiddenButton:c.hiddenButton=!0}if(!t)for(let l=0;l<r.length;l++)r[l]||(r[l]={hiddenButton:!0});const i=new Map;for(let l=0;l<r.length;l++){const c=r[l];i.set(l,c)}return this._updateState({byOffset:i,hiddenCount:t?i.size:0},{description:(t?"Hide":"Show")+" Filter Buttons"}),this._processUpdate?.(),this}_processStateChange(t,e,n){super._processStateChange(t,e,n),this._processUpdate?.()}_processContainerShift(t){if(t.after&&t.orientation===A.IRange.Orientation.Column){let e=t.intersect.colStart-t.before.colStart,n=t.amount;e<=0&&(n-=e,e=0);const r=this._getState().byOffset,o=new Map(r);if(r.forEach((s,i)=>{s&&Object.keys(s).length!==0&&(i>=e&&o.delete(i),i>e&&o.set(i+n,s))}),n>0&&this._getState().hiddenCount>0)for(let s=e;s<e+n;s++)o.set(s,{hiddenButton:!0});this._updateState({byOffset:o,hiddenCount:ya(o),sort:null},{description:"Update Fields"})}return super._processContainerShift(t)}reapply(){const t=this._getState(),e=wa(t.byOffset);return this._apply?.(e),this}clear(){return this._updateState({byOffset:new Map,hiddenCount:0,sort:null},{description:"Set Filter Criteria"}),this.reapply()}_fromJSON(t){const e=t??{},n={byOffset:new Map,hiddenCount:0};e.fields&&(md(e.fields,n.byOffset),n.hiddenCount=ya(n.byOffset)),e.sort,this._updateState(n,{description:"Load"})}toJSON(){const t={},e=this._getState();e.anchor&&(t.ref=cn(e.anchor,this._options.maxRangeCoords));const n=wa(e.byOffset);return n.length>0&&(t.fields=n),e.sort,Object.keys(t).length===0?null:t}}const ul="A table must have a least one row for the data.",fd="Table1",ns=Object.freeze({showRowStripes:!0,showColumnStripes:!1,showFirstColumn:!1,showLastColumn:!1}),pd=(a,t,e)=>{if(a.length!==t.length)return console.warn("make columns the same length"),!1;const n=new Set;for(let l=0;l<t.length;l++){const c=t[l]?.name;c&&n.add(c.toLocaleLowerCase())}for(let l=0;e&&l<e.length;l++){const c=e[l]?.name;c&&n.add(c.toLocaleLowerCase())}const r=(l,c="")=>{if(!l)return!1;const h=l.toLocaleLowerCase();return h===c||!n.has(h)};let o=1;const s=(l,c,h,d,u=1e3)=>{if(d(l,h=(h??"").trim().toLocaleLowerCase()))return l;for(;o<u;)try{const g=c+ ++o;if(d(g,h))return g}catch{}throw new Error(`Unable to find valid name for '${c}'.`)};let i=0;for(let l=0;l<a.length;l++){const c=a[l]?.name;if(c&&c===t[l]?.name)continue;const h=s(c,a[l]?.name||"Column",t[l]?.name,r);n.add(h.toLocaleLowerCase()),t[l]?.name!==h&&(a[l].name=h,i++)}return i>0};class m_{constructor(t,e,n,r){this._name=t,this._filter=e,this._sort=n,this._offset=r}getName(){return this._name}getField(){return this._filter?this._filter.getFieldAt(this._offset)??null:null}setField(t){return this._filter?(this._filter.setFieldAt(this._offset,t),this):this}getSortField(){return this._sort?this._sort.getFieldAt(this._offset):null}setSortField(t){return this._sort?(this._sort.setFieldAt(this._offset,t),this):this}reapply(){return this._filter?.reapply(),this}clear(){return this._filter?.setFieldAt(this._offset,null),this._sort?.setFieldAt(this._offset,null),this}hasHiddenButton(){return this._filter?.getFieldAt(this._offset)?.hiddenButton??!1}}class f_ extends rg{constructor(t,e,n,r){super({...r,type:"namedTable"}),this._names=t,this._sheet=e,this._table=n;const o=this;this._table.addListeners({onDelete:()=>{o._options.deleteFromContainer?o._options.deleteFromContainer?.():o._delete()},onAnyChange:()=>{o._emitter.notify("onAnyChange")},onAnchorCoordsChange:()=>{o._emitter.notify("onAnyChange")}},{transactional:!0})}async select(t){return await this._table.select(t),this}getRanges(){return this._names.getRanges(this._table.getUsedRange())}getScope(){return null}getType(){return"table"}getName(){return this._table.getName()}getValue(){return this._table}}class Jg extends Ii{constructor(t){if(super({...t,createDescription:"Insert Table"}),this._isUpdatingHeader=!1,this._colHeadersSizeUnlistener=null,this._rowHeadersSizeUnlistener=null,this._visibleRange=null,this._isHeaderVisible=!0,this._isTotalVisible=!0,this._isFirstColumnVisible=!0,this._isLastColumnVisible=!0,this._range=null,!t.json)throw new Error("json is required");if(!t.json.ref)throw new Error("json.ref is required");const e=this;this._styles=t.styles??t.sheet?.getStyles()??new Br,this._names=t.names,this._sheet=t.sheet,this._processTableUpdate=t.processTableUpdate,this._setNameOnContainer=t.setNameOnContainer,this._options={...t},this._styleCache=null,this._stylePropsCache=null,this._stylesRemoveListener=this._styles.addListeners({onTableStylesChange(){e._styleCache=null,e._stylePropsCache=null,e._getEmitter().notify("onStyleChange"),e._getEmitter().notify("onAnyChange")}});const n={...t?.json};if(t.sheet){const r=t.sheet;if(this._autoExpandRemoveListener=r.getEntireRange().addListener(i=>{if(i.trigger!=="setCells"||i.isUndo)return;const l=e.getAnchorCoords();if(!l)return;const c=i.getFrom().getCoords()[0];let h=null;if(c.rowStart>=l.rowStart&&c.rowEnd<=l.rowEnd&&c.colStart>=l.colStart&&c.colStart<=l.colEnd+1&&c.colEnd>l.colEnd){const d={...c,colStart:l.colEnd+1};if(r.getRange(d).isContentful()){const u={...d,rowStart:l.rowStart,rowEnd:d.rowStart-1};if(u.rowEnd-u.rowStart<0||!r.getRange(u).isContentful()){const g={...d,rowStart:d.rowEnd+1,rowEnd:l.rowEnd};(g.rowEnd-g.rowStart<0||!r.getRange(g).isContentful())&&(h={...l,colEnd:c.colEnd})}}}else if(!e.getShowTotals()&&c.colStart>=l.colStart&&c.colEnd<=l.colEnd&&c.rowStart>=l.rowStart&&c.rowStart<=l.rowEnd+1&&c.rowEnd>l.rowEnd){const d={...c,rowStart:l.rowEnd+1};if(r.getRange(d).isContentful()){const u={...d,colStart:l.colStart,colEnd:d.colStart-1};if(u.colEnd-u.colStart<0||!r.getRange(u).isContentful()){const g={...d,colStart:d.colEnd+1,colEnd:l.colEnd};(g.colEnd-g.colStart<0||!r.getRange(g).isContentful())&&(h={...l,rowEnd:c.rowEnd})}}}if(h&&r.getRange(h).getMerges().length>0&&(h=null),h&&r.getTables().getItems({address:h}).length!==1&&(h=null),h){const d=e._beginCommit("Table Auto Expansion");try{e.resize(h),d.commit({viewAfter:null})}catch(u){d.rollback(),console.warn("Unable to AutoExpand"),console.warn(u)}}},{transactional:!1,ignoreShifts:!0}),this._headerValueListener=()=>{if(this._isUpdatingHeader)return;const i=this._columnsFromSheet();i&&this._updateColumns(i.columns,!1,i.forceUpdate,null)},t.readSheetHeader){const i=this._columnsFromSheet();n.columns=i.columns}const o=()=>{const i=this.getAnchorCoords();let l=0,c=0;if(i&&(l=r.getColumnHeaders().findVisibleIndex(i.colEnd).min,c=r.getRowHeaders().findVisibleIndex(i.rowEnd).min),i&&(l<i.colEnd||c<i.rowEnd)){const h=r.getColumnHeaders(),d=r.getRowHeaders(),u=h.findVisibleIndex(i.colStart).max,g=d.findVisibleIndex(i.rowStart).max;this._visibleRange={colStart:u,colEnd:l,rowStart:g,rowEnd:c},this._isHeaderVisible=!d.at(i.rowStart).isHidden(),this._isTotalVisible=!d.at(i.rowEnd).isHidden(),this._isFirstColumnVisible=!h.at(i.colStart).isHidden(),this._isLastColumnVisible=!h.at(i.colEnd).isHidden()}else this._visibleRange=null,this._isHeaderVisible=!0,this._isTotalVisible=!0,this._isFirstColumnVisible=!0,this._isLastColumnVisible=!0},s={onSizesChange:()=>{o()}};this._colHeadersSizeUnlistener=r.getColumnHeaders().addListeners(s),this._rowHeadersSizeUnlistener=r.getRowHeaders().addListeners(s),o()}this._fromJSON(n),this._names&&(this._namedItem=this._createNamed(),this._namedItem&&this._names.add(this._namedItem))}getSnapshot(t){const e=this.toJSON(),n=this.getAnchorCoords(),r=this.getName(),o={...e};delete o.ref;const s=this,i=Object.freeze({...t});let l=!1;return{async copyTo(c,h){const d=c.tables,u=c.range;({...i,...h}).isCut&&!l&&(s.delete(),l=!0);const g={colStart:u.colStart,rowStart:u.rowStart,colEnd:n.colEnd-n.colStart+u.colStart,rowEnd:n.rowEnd-n.rowStart+u.rowStart};return d.add(g,{json:o,isLoad:!0,hasHeader:!0,styleName:o.styleOptions?.name??null}),g},getCoords:()=>n,getSource:()=>s,getName:()=>r,getMarkOptions:()=>i,isISnapshot:!0}}getAnchorType(){return exports.IAnchored.Type.TwoCell}getStyle(){if(this._styleCache)return this._styleCache;const t=this._getState();return t?(this._styleCache=this._styles.getTableStyle(t.styleOptions.name)??this._styles.getDefaultTableStyle(),this._styleCache):this._styles.getTableStyle(null)}addRows(t,e=1){const n={...this._getState().anchor};return n.rowEnd+=e,this._modifyTable({anchor:n},"Add Table Row"+(e>1?"s":"")),this}deleteRowsAt(t,e=1){let n={...this._getState().anchor};return n.rowEnd-=e,n.rowEnd<n.rowStart&&(n=null),this._modifyTable({anchor:n},"Delete Table Row"+(e>1?"s":"")),this}addColumn(t,e){const n=this._getState(),r={...n.anchor};r.colEnd+=1;const o=[],s={name:`${e??n.columns[t-1]?.name??`Column${t+1}`}3`};o.push(s);const i=[...n.columns.slice(0,t),...o,...n.columns.slice(t)];return this._modifyTable({anchor:r,columns:i},"Add Table Column"),s}getColumns(){return this._getState()?.columns}convertToRange(t=Number.MAX_SAFE_INTEGER){let e=this._beginCommit("Convert to Range");try{if(this._sheet){const n=this.getAnchorCoords(),r=(n.colEnd-n.colStart+1)*(n.rowEnd-n.rowStart+1);if(r>t)throw new Error(`There are ${r} and there is a limit of ${t}.`);const o=this._sheet.getRange(n),s=o.startIncrementalUpdates({orientation:A.IRange.Orientation.Column});o.forEach((i,l)=>{const c=l.getCoords(),h=l.getCell();s.pushAt(c.rowIndex,c.colIndex,{style:h.getStyle(!1)})},{includeEmpty:!0,orientation:A.IRange.Orientation.Column}),s.apply()}this.delete()}catch{e.rollback(),e=null}return e&&e.commit(),this._sheet.getRange(this._getState()?.anchor)}resize(t,e="Resize Table"){let n=this._sheet.getRange(t).getCoords();const r=this._getState().anchor;if(r.rowStart!==n.rowStart||n.colEnd<r.colStart||n.colStart>r.colEnd)throw new Error("The top of the table must not change and the new table location must overlap with the original table.");const o=this._beginCommit(e);try{n=this._options.setContainerCoords(t),w.CoordUtils.isEqualRanges(n,r)||this._modifyTable({anchor:n}),o.commit()}catch(s){throw console.warn(s),o.rollback(),s}return this._sheet.getRange(n)}getName(){return this._getState()?.name}setName(t){const e=this._beginCommit(`Set Table Name '${t}'`);try{this._modifyTable({name:t}),e.commit()}catch(n){throw e.rollback(),n}return this}getDescription(){return this._getState()?.description}setDescription(t){return this._modifyTable({description:t})}select(t){return this.getUsedRange().select(t)}getRange(){return this._range?this._range:this._getState()?this._range=this._sheet.getRange(this._getState().anchor):Rn}_processRestoreOrRevert(t,e,n){this._styleCache=null,super._processRestoreOrRevert(t,e,n)}_processAnchorCoords(){this._range=null,super._processAnchorCoords()}getUsedRange(){const t=this._getUsedCoords();return t?this._sheet.getRange(t):Rn}_getUsedCoords(){const t=this._getState(),e=t.headerRowCount,n=t.totalsRowCount,r=t.anchor;if(!r)return null;const o={...r,rowStart:r.rowStart+e,rowEnd:r.rowEnd-n};return o.rowEnd<o.rowStart||o.colEnd<o.colStart?null:o}getHeaderRange(){const t=this._getHeaderCoords();return t?this._sheet.getRange(t):Rn}_getHeaderCoords(){const t=this._getState(),e=t.headerRowCount;if(e<1)return null;const n=t.anchor;return n?{...n,rowEnd:n.rowStart+e-1}:null}getTotalRange(){const t=this._getTotalCoords();return t?this._sheet.getRange(t):Rn}_getTotalCoords(){const t=this._getState(),e=t.totalsRowCount;if(e<1)return null;const n=t.anchor;return n?{...n,rowStart:n.rowEnd-e+1}:null}getStyleOptions(){return this.isClosed()?ns:this._getState()?.styleOptions}updateStyleOptions(t,e="Update Style Info"){const n=this.getStyleOptions(),r=t?{...n,...t}:ns;return this._modifyTable({styleOptions:r},e),this._styleCache=null,this._getEmitter().notify("onStyleChange"),this}getStyleAt(t){let e=this._stylePropsCache;return e||(e=this.getStyle().getRanged(this),this._stylePropsCache=e),Fr(this._styles,e,w.CoordUtils.cellToRange(t))}getShowTotals(){return this._getState()?.totalsRowCount>0}setShowTotals(t){return this._modifyTable({totalsRowCount:t?1:0},"Toggle Show Totals")}getShowHeaders(){return this._getState()?.headerRowCount>0}setShowHeaders(t){return this._modifyTable({headerRowCount:t?1:0},"Toggle Show Headers")}getShowFilterButton(){const t=this.getFilter();return!!t&&t.getShowFilterButton()}setShowFilterButton(t){const e=this.getFilter();return e?(e.setShowFilterButton(t),this):this}_applyFilterAndSort(){console.log("apply Filter",this.getFilter(),this.getSort()),this._processTableUpdate?.(),this._getEmitter().notify("onAnyChange")}_processUpdate(){this._processTableUpdate?.(),this._getEmitter().notify("onAnyChange")}_createFilter(t){const e=this;return new $g({initialAnchor:this._getUsedCoords(),maxRangeCoords:this._options.maxRangeCoords,json:t,transactions:this._getTransactions(),setContainerShiftCallback(n){e._filterShiftCallback=n},setFilterCoordsCallback(n){e._filterCoordsCallback=n},deleteFromContainer:n=>{this._updateState({filter:null},{description:n?.description??"Delete Filter"}),e._processUpdate?.()},apply:n=>{e._applyFilterAndSort()},processUpdate:()=>{e._processUpdate?.()},isProtected:()=>e.isProtected()})}insertFilter(){let t=this.getFilter();return t||(t=this._createFilter(),this._updateState({filter:t},{description:"Insert Filter"}),t)}getFilter(){return this._getState()?.filter??null}_createSort(t){const e=this;return new u_({initialAnchor:this._getUsedCoords(),maxRangeCoords:this._options.maxRangeCoords,json:t,transactions:this._getTransactions(),deleteFromContainer:n=>{this._updateState({sort:null},{description:n?.description??"Delete Sort"}),e._processUpdate?.()},apply:n=>{e._applyFilterAndSort()},processUpdate:()=>{e._processUpdate?.()},isProtected:()=>e.isProtected()})}insertSort(){let t=this.getSort();return t||(t=this._createSort(),this._updateState({sort:t},{description:"Insert Sort"}),t)}getSort(){return this._getState()?.sort??null}getColumnFilter(t){const e=this.getFilter();if(!e)return null;const n=this.getSort();let r=null;return r=this._getState()?.columns[t],r===null?null:new m_(r.name,e,n,t)}getVisibleRefRangeCoords(){return this._visibleRange?this._visibleRange:this.getAnchorCoords()}getVisibleCellCoords(t){return t&&this._visibleRange?{colIndex:Math.min(this._visibleRange.colEnd,Math.max(this._visibleRange.colStart,this._sheet.getColumnHeaders().findVisibleIndex(t.colIndex).min)),rowIndex:Math.min(this._visibleRange.rowEnd,Math.max(this._visibleRange.rowStart,this._sheet.getRowHeaders().findVisibleIndex(t.rowIndex).min))}:t}isHeaderVisible(){return this._isHeaderVisible}isTotalVisible(){return this._isTotalVisible}isFirstColumnVisible(){return this._isFirstColumnVisible}isLastColumnVisible(){return this._isLastColumnVisible}_columnsFromSheet(){const t=this._getHeaderCoords();if(!t||!this._sheet){const n=this.getAnchorCoords();return{columns:n?Array(n.colEnd-n.colStart+1).fill(null):[],forceUpdate:!0}}const e={columns:[],forceUpdate:!1};return this._sheet.getRange({...t,rowEnd:t.rowStart}).forEach((n,r)=>{const o=r.getCell();e.columns.push({name:o.toText()}),e.forceUpdate=e.forceUpdate||o.getType()!==A.ScalarType.String},{includeEmpty:!0}),e}_updateColumns(t,e,n=!1,r){if(this._isUpdatingHeader)return;const o=this._getHeaderCoords(),s=this._getUsedCoords(),i=[];if(s){const u=s.colEnd-s.colStart+1;for(let g=0;g<u;g++){const m=t[g];i.push({...m})}}let l=!1;const c=this._getState().columns;if(l=e?((u,g)=>{const m=new Set,f=_=>!!_&&!m.has(_.toLocaleLowerCase()),p=(_,E,C,I)=>I(_)?_:E+(C+1);let S=0;for(let _=0;_<u.length;_++){const E=p(u[_]?.name||g[_]?.name,u[_]?.name||"Column",S,f);m.add(E.toLocaleLowerCase()),u[_]?.name!==E&&(u[_].name=E,S++)}return S>0})(i,c):pd(i,c,r),!(n||c.length!==i.length||l))return;const h="Update Columns";this._isUpdatingHeader=!0;let d=this._beginCommit(h);try{if(this._updateState({columns:i},{description:h}),this._sheet&&o){const u=this._sheet.getEntireRange().startIncrementalUpdates({orientation:A.IRange.Orientation.Row});for(let g=0;g<i.length;g++){const m=i[g].name;u.pushAt(o.rowStart,o.colStart+g,m)}u.apply({textParser:!1})}}catch{d.rollback()}return d&&d.commit(),this._isUpdatingHeader=!1,i}_processDelete(){this._getState().headerRemoveListener?.(),this._updateState({headerRemoveListener:null}),super._processDelete()}_processFilterUpdate(){const t=this._getUsedCoords();console.log("process on Filter and Sort dataRange",t)}_processContainerShift(t){if(t.isSplit)throw new Error("We can not partially insert or remove cells as this would split a table.");const e=this._getState();if(t.after&&t.after.rowStart+e.headerRowCount>=t.after.rowEnd+1)throw new Error(ul);const n=t.orientation===A.IRange.Orientation.Column;if(t.amount<0&&t.after&&!n){const o=this._getHeaderCoords();if(o&&t.intersect.rowStart<=o.rowEnd&&t.intersect.rowEnd>=o.rowStart)throw new Error("We can not remove rows that contain table headers. Remove the table header.")}const r=super._processContainerShift(t);if(n){let o=t.amount,s=t.intersect.colStart-t.before.colStart;if(s<=0&&o>0)return;s<0&&(o-=s,s=0);const i=this._getState()?.columns;let l=[...i],c=[],h=[];if(o>0){l.splice(s,0,...Array(o).fill(null)),c=[...l];const d=new Set;for(let p=0;p<i.length;p++)d.add(i[p]?.name?.toLowerCase().trim());const u=i[s-1],g=u?.name?.match(/\d+$/);let m=null,f=0;g&&(m=g.input.substring(0,g.index),f=parseInt(g[0]));for(let p=0;p<o;p++){let S={...u};c[s+p]=S;const _=m+(f+p+1);_&&!d.has(_.toLowerCase().trim())&&(S.name=_)}pd(c,l,null)}else c=l,h=c.splice(s,-o);this._updateState({columns:c},{description:"Process Columns"}),this._updateColumns(c,!1,!0,h)}else t.after||this._updateState({columns:[]},{description:"Process Columns"});return t.after||this._delete(),this._filterShiftCallback&&this._filterShiftCallback({...t,after:this._getUsedCoords()}),r}_modifyTable(t,e="Modify Table"){if(this.isClosed())throw new Error("Table has been closed. No further operations are allowed.");const n=this._getState(),r=n.anchor,o=n.headerRowCount,s=this._getHeaderCoords();let i=this._beginCommit(e);try{if(this._updateState(t),t.name!==void 0){if(!t.name)throw new Error("Table must have a name.");this._setNameOnContainer?.(t.name)}let l=t.anchor??null;if((t.anchor!==void 0||t.headerRowCount!==void 0||t.totalsRowCount!==void 0)&&t.headerRowCount!==void 0&&o!==t.headerRowCount)if(t.headerRowCount>o){const c=r.rowStart-(t.headerRowCount-o);this._sheet&&(c<this._options.maxRangeCoords.rowStart||this._sheet.getRange({...r,rowStart:c,rowEnd:r.rowStart-1}).isContentful())?(this._sheet.getRange({...r,rowStart:r.rowStart+t.headerRowCount,rowEnd:r.rowStart+t.headerRowCount}).insert(A.IRange.Orientation.Row),l={...r,rowEnd:r.rowEnd+(t.headerRowCount-o)}):l={...r,rowStart:r.rowStart+(o-t.headerRowCount)}}else s&&this._sheet&&this._sheet.doBatch(()=>{this._sheet.getRange(s).clear()},{}),l={...r,rowStart:r.rowStart+(o-(t.headerRowCount??o))};if(l){let c=n.columns;const h=t.headerRowCount!==void 0&&t.headerRowCount!==n.headerRowCount||t.totalsRowCount!==void 0&&t.totalsRowCount!==n.totalsRowCount,d=l.colStart!==r.colStart||l.colEnd!==r.colEnd;let u=[];if(d){const g=[...n.columns];l.colEnd>r.colEnd?g.splice(r.colEnd+1,0,...Array(l.colEnd-r.colEnd).fill(null)):l.colEnd<r.colEnd&&(u=g.splice(l.colEnd-1,r.colEnd-l.colEnd)),l.colStart<r.colStart?g.splice(0,0,...Array(r.colStart-l.colStart).fill(null)):l.colStart>r.colStart&&(u=u.concat(g.splice(0,l.colStart-r.colStart))),c=g}if(this._options.setContainerCoords?.(l),this._updateState({anchor:l,columns:c},{description:e}),!this._getUsedCoords())throw new Error(ul);if(d||h){const g=h?{columns:c,forceUpdate:!0}:this._columnsFromSheet();g&&(this._updateColumns(g.columns,!1,g.forceUpdate,u),this._processHeaderListener())}this._filterCoordsCallback?.(l)}t.styleOptions!==void 0&&(this._styleCache=null),this._getEmitter().notify("onAnyChange"),i.commit()}catch(l){throw i.rollback(),l}return this}addListeners(t,e){return this._emitter.addListeners(t,e)}_processStateChange(t,e,n){super._processStateChange(t,e,n),this._styleCache=null,this._stylePropsCache=null,this._processTableUpdate?.(),this._getEmitter().notify("onAnyChange")}_processHeaderListener(){if(this._getState().headerRemoveListener?.(),this._sheet){let e=this._getHeaderCoords();if(!e){const r=this._getUsedCoords();e={...r,rowEnd:r.rowStart}}const n=this._sheet.getRange(e).addListener(this._headerValueListener,{transactional:!0});this._updateState({headerRemoveListener:n})}}get[Symbol.toStringTag](){return"[Table]"}toString(){return this.getName()??""}toJSON(){const t={},e=this._getState();if(!e)return null;if(e.name&&(t.name=e.name),e.anchor&&(t.ref=cn(e.anchor,this._options.maxRangeCoords)),e.description&&(t.description=e.description),e.headerRowCount!==1&&(t.headerRowCount=e.headerRowCount),e.totalsRowCount!==0&&(t.totalsRowCount=e.totalsRowCount),e.columns&&(t.columns=[...e.columns]),e.styleOptions){const n=w.CommonUtils.diffValues(e.styleOptions,{...ns,name:null});n&&(t.styleOptions=n)}if(e.filter){const n=e.filter.toJSON();n&&(t.filter=n,delete t.filter.ref)}return t}_createNamed(){return this._sheet?.getName()&&this._names?new f_(this._names,this._sheet,this,{transactions:this._getTransactions(),json:{name:this.getName()}}):null}_fromJSON(t){const e=t??{},n={headerRowCount:1,totalsRowCount:0};var r;if(e.name&&(n.name=e.name),e.ref&&(e.ref=(r=e.ref)&&typeof r=="string"?Ce(r):r),this._names){const i=this._names.findValidName(n.name??fd);n.name!==i&&(n.name=i)}n.name||(n.name=fd),e.description&&(n.description=e.description),e.headerRowCount!==void 0&&(n.headerRowCount=e.headerRowCount),e.totalsRowCount!==void 0&&(n.totalsRowCount=e.totalsRowCount),n.columns=e.columns??w.CommonUtils.EmptyArray,n.styleOptions={...ns,...e.styleOptions};const o="Insert Table";this._updateState(n,{description:o});const s=this._columnsFromSheet();s&&(n.columns=this._updateColumns(s.columns,!0,s.forceUpdate,null),delete n.columns),e.sort&&(n.sort=this._createSort(e.sort)),e.filter&&(n.filter=this._createFilter(e.filter)),this._modifyTable(n,o),this._processHeaderListener()}close(){super.close(),this.isClosed()||(this._autoExpandRemoveListener?.(),this._getState()?.headerRemoveListener?.(),this._updateState({headerRemoveListener:null},{description:"Close Table"}),this._stylesRemoveListener?.(),this._colHeadersSizeUnlistener?.(),this._rowHeadersSizeUnlistener?.())}get isITable(){return!0}}let ce=null;const $r="TableStyleMedium2",Me=(a,t,e)=>{if(!a.border)return a;let n=((o,s,i)=>{if(!o)return o;let l=null;return(o.top||o.horizontal)&&(s.rowIndex!==i.rowStart||s.colIndex<i.colStart||s.colIndex>i.colEnd)&&(l=l??{...o},delete l.top,o.horizontal&&(l.top=o.horizontal)),(o.bottom||o.horizontal)&&(s.rowIndex!==i.rowEnd||s.colIndex<i.colStart||s.colIndex>i.colEnd)&&(l=l??{...o},delete l.bottom,o.horizontal&&(l.bottom=o.horizontal)),(o.left||o.vertical)&&(s.colIndex!==i.colStart||s.rowIndex<i.rowStart||s.rowIndex>i.rowEnd)&&(l=l??{...o},delete l.left,o.vertical&&(l.left=o.vertical)),(o.right||o.vertical)&&(s.colIndex!==i.colEnd||s.rowIndex<i.rowStart||s.rowIndex>i.rowEnd)&&(l=l??{...o},delete l.right,o.vertical&&(l.right=o.vertical)),o.horizontal&&(l=l??{...o},delete l.horizontal),o.vertical&&(l=l??{...o},delete l.vertical),l??o})(a.border,t,e),r=a;return n!==a.border&&(r={...a},Object.keys(n).length>0?r.border=n:delete r.border),r};class p_{constructor(t,e,n){this._table=t,this._styles=e,this._properties=n}_resolveProperties(t){const e={name:t.name},n=this._styles,r=Object.values(exports.ITableStyle.ElementType),o=r.length;for(let s=0;s<o;s++){const i=r[s],l=t[i];if(!l||!w.CommonUtils.isObject(l))continue;const c=w.TypedObject.resolveTypedUpdates(Object.freeze(l),Dt,n);e[i]=c}return Object.freeze(e)}getCoords(){return this._table.getAnchorCoords()}getPropertiesAt(t,e){const n=this._table,r=this._styles,o=this._properties;Ca.rowIndex=t,Ca.colIndex=e;const s=n.getVisibleCellCoords(Ca),i=n.getVisibleRefRangeCoords();if(!i)return null;const l=Math.max(0,i.colEnd-i.colStart)+1,c=Math.max(0,i.rowEnd-i.rowStart)+1,h=Math.max(0,s.rowIndex-i.rowStart),d=Math.max(0,s.colIndex-i.colStart),u={rowIndex:h,colIndex:d},g=n.getStyleOptions();let m={},f=!1,p=0;n.isHeaderVisible()&&(p=n.getShowHeaders()?1:0,f=p>h);let S=!1,_=0;n.isTotalVisible()&&(_=n.getShowTotals()?1:0,S=c-_<=h);let E=d===l-1&&g.showLastColumn;n.isLastColumnVisible()||(E=!1);let C=d===0&&g.showFirstColumn;n.isFirstColumnVisible()||(C=!1);const I=!f&&!S;if(o.wholeTable&&(m=o.wholeTable,m.border&&(m=Me(m,u,{rowStart:0,rowEnd:c-1,colStart:0,colEnd:l-1}))),I&&g.showColumnStripes){const y=o.firstColumnStripe?.size??1,b=o.secondColumnStripe?.size??1;let v=d%(y+b);const R=v<y;R||(v-=y);let x=R?o.firstColumnStripe:o.secondColumnStripe;if(x){const T={rowIndex:h,colIndex:v},M={rowStart:p,rowEnd:c-_-1,colStart:0,colEnd:Math.min(l-d,R?y:b)};R&&v===0&&d>0&&x.border?.left&&o.secondColumnStripe?.border.right&&(x={...x},x.border={...x.border},delete x.border.left),R&&v===y-1&&d<l-1&&x.border?.right&&o.secondColumnStripe?.border.left&&(x={...x},x.border={...x.border},delete x.border.right);const F=x.border?Me(x,T,M):x;m=w.TypedObject.resolveTypedUpdates(F,Dt,r,m)}}if(I&&g.showRowStripes){const y=p,b=o.firstRowStripe?.size??1,v=o.secondRowStripe?.size??1;let R=(h-y)%(b+v);const x=R<b;x||(R-=b);let T=x?o.firstRowStripe:o.secondRowStripe;if(T){const M={colIndex:d,rowIndex:R},F={colStart:0,colEnd:l-1,rowStart:0,rowEnd:Math.min(c-h,x?b:v)};x&&R===0&&h>y&&T.border?.top&&o.secondRowStripe?.border.bottom&&(T={...T},T.border={...T.border},delete T.border.top),x&&R===b-1&&h<c-1&&T.border?.bottom&&o.secondRowStripe?.border.top&&(T={...T},T.border={...T.border},delete T.border.bottom);const N=T.border?Me(T,M,F):T;m=w.TypedObject.resolveTypedUpdates(N,Dt,r,m)}}if(E&&o.lastColumn){let y=o.lastColumn;y.border&&(y=Me(y,u,{rowStart:0,rowEnd:c-1,colStart:l-1,colEnd:l-1})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(C&&o.firstColumn){let y=o.firstColumn;y.border&&(y=Me(y,u,{rowStart:0,rowEnd:c-1,colStart:0,colEnd:0})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(f&&o.headerRow){let y=o.headerRow;y.border&&(y=Me(y,u,{rowStart:0,rowEnd:p-1,colStart:0,colEnd:l-1})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(S&&o.totalRow){let y=o.totalRow;y.border&&(y=Me(y,u,{rowStart:c-_,rowEnd:c-1,colStart:0,colEnd:l-1})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(f&&C&&o.firstHeaderCell){let y=o.firstHeaderCell;y.border&&(y=Me(y,u,{rowStart:0,rowEnd:p-1,colStart:0,colEnd:0})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(f&&E&&o.lastHeaderCell){let y=o.lastHeaderCell;y.border&&(y=Me(y,u,{rowStart:0,rowEnd:p-1,colStart:l-1,colEnd:l-1})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(S&&C&&o.firstTotalCell){let y=o.firstTotalCell;y.border&&(y=Me(y,u,{rowStart:c-_,rowEnd:c-1,colStart:0,colEnd:0})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}if(S&&E&&o.lastTotalCell){let y=o.lastTotalCell;y.border&&(y=Me(y,u,{rowStart:c-_,rowEnd:c-1,colStart:l-1,colEnd:l-1})),m=w.TypedObject.resolveTypedUpdates(y,Dt,r,m)}return f&&o.headerRow&&n.getColumnFilter(d)&&!n.getColumnFilter(d).hasHiddenButton()&&(m.insets={right:15}),m}}class Sd{constructor(t,e,n,r){this._styles=t,this._isBuiltIn=n,this._doDelete=r,this._properties=w.CommonUtils.deepFreeze(this._resolveProperties(e)),this.isShownInTableStyles()}_resolveProperties(t){const e={name:t.name};t.table!==void 0&&(e.table=t.table),t.pivot!==void 0&&(e.pivot=t.pivot);const n=this._styles,r=Object.values(exports.ITableStyle.ElementType),o=r.length;for(let s=0;s<o;s++){const i=r[s],l=t[i];if(!l||!w.CommonUtils.isObject(l))continue;const c=w.TypedObject.resolveTypedUpdates(Object.freeze(l),Dt,n);e[i]=c}return Object.freeze(e)}delete(){if(!this._doDelete)throw new Error("Not able to delete builtin style.");this._doDelete(this._properties.name)}getRanged(t){return new p_(t,this._styles,this._properties)}getProperties(){return this._properties}getName(){return this._properties.name}isShownInTableStyles(){return this._properties.table!==!1}isShownInPivotStyles(){return this._properties.pivot??!1}isBuiltIn(){return this._isBuiltIn}toJSON(){const t=w.CommonUtils.cloneObject(this._properties);return t.name=this._properties.name,t}get isITableStyle(){return!0}}const Ca={rowIndex:0,colIndex:0};class S_ extends Ht{constructor(t,e){super(t,w.CoordUtils.EmptyRange,e)}isEmpty(){return this._p===null}getCoords(){return this._r}cloneWithUpdate(t){if(t===void 0)return this;const e=this._c,n=this._r,r=w.TypedObject.resolveTypedUpdates(t,Dt,e,this._p);return new Ht(e,n,r)}_createShifted(t){return new Ht(this._c,t,this._p)}getShifted(t){return t.after?{...t.after,value:this._createShifted(w.CoordUtils.sanitizeRange(t.after))}:null}getSplit(t,e){const n=this._c,r=this._p;return[new Ht(n,t[0],r),new Ht(n,t[1],r)]}getMerged(t,e,n){const r=this._p,o=t._p;if(r&&!o||o&&!r||!r&&!o)return;let s=Object.keys(r),i=Object.keys(o);if(r.named===exports.IStyle.BuiltInName.Normal&&(s=s.filter(c=>c.toLowerCase()!==exports.IStyle.BuiltInName.Normal)),o.named===exports.IStyle.BuiltInName.Normal&&(i=i.filter(c=>c.toLowerCase()!==exports.IStyle.BuiltInName.Normal)),s.length!==i.length)return;for(let c=0;c<s.length;c++){const h=s[c],d=r[h],u=o[h];if(!w.CommonUtils.deepEqual(d,u))return}const l=this._c;return new Ht(l,e,this._p)}getPropertiesAt(t,e){return this._p}toJSON(){return w.CommonUtils.toSafeJSON(this._p)}}class _d{constructor(t,e,n,r=null){this._name=e.name,this._properties=e,this._rangeStyle=new S_(t,e.style),this._doDelete=n,this._builtInID=r}getRanged(){return this._rangeStyle}getName(){return this._name}isHidden(){return this._properties.hidden??!1}getILevel(){return this._properties.iLevel??null}getBuiltInID(){return this._builtInID}delete(){this._doDelete?.(this)}toJSON(){return this._properties?w.CommonUtils.toSafeJSON(this._properties):null}get isINamed(){return!0}}let __=class{constructor(a,t,e,n,r){this._state=a,this._normalJSON=t??{},this._toJSONInternal=e,this._fromJSONInternal=n,this._onLastEnd=r,this._state.openScopes.add(this),this._isClosed=!1,this._state.byJSONs.set(w.JSONStableStringify(this._normalJSON),0),this._state.byIds.set(0,this._normalJSON)}endPersist(){if(!this._state.openScopes.delete(this))throw new Error("PersistScope is closed.");this._isClosed=!0,this._state.openScopes.size===0&&this._onLastEnd()}getElementID(a){if(this._isClosed)throw new Error("PersistScope is closed.");a=a??{};const t=w.JSONStableStringify(a);let e=this._state.byJSONs.get(t);return e!==void 0||(e=this._state.byJSONs.size,this._state.byJSONs.set(t,e),this._state.byIds.set(e,a)),e}getElementJSON(a){if(this._isClosed)throw new Error("PersistScope is closed.");return this._state.byIds.get(a)??null}fromJSON(a){if(this._isClosed)throw new Error("PersistScope is closed.");const t=JSON.parse(JSON.stringify(a||{}));this._fromJSONInternal(t);const e=t.direct,n=e?e.length:0;for(let r=0;r<n;r++){const o=r,s=e[r],i=w.JSONStableStringify(s);this._state.byIds.set(o,s),this._state.byJSONs.set(i,o)}}toJSON(){if(this._isClosed)throw new Error("PersistScope is closed.");const a=[];return this._state.byIds.forEach((t,e)=>{a[e]=t}),a.length===1&&a.splice(0,1),this._toJSONInternal(a)}};class Br{constructor(t=null,e=null,n=11){this._emitter=null,this._normalRanged=null,this._theme=t??new Tl().getDefaultTheme(),this._defaultFontSize=n;const r=this;this._emitter=new Xt(this),this._schemeLookup=o=>r._theme.schemeLookup()(o),this._indexedColors=this._fromJSONIndexedColors(e),this._indexedLookup=o=>{const s=this._indexedColors[o];return s?s.toRGBA():Ys(o)},this._initializeBuiltIns(),this._customCellStyles=new Map,this._customTableStyles=new Map,this._indexedColors=[],this._mruColors=[],this._persistCache=null}_initializeNamedStyles(t,e){const n=t?t.length:0;for(let r=0;r<n;r++){const o=t[r],s={...o},i=o.named;delete s.named;const l=w.TypedObject.resolveTypedUpdates(s,Dt,this),c=new _d(this,{name:i,style:l},this._hideOrRemoveNamed.bind(this),r);i===exports.IStyle.BuiltInName.Normal&&(this._normalRanged=c.getRanged(),this._normalStyle=Fr(this,null)),e.set(i.toLowerCase(),c)}}_initializeTableStyles(){const t=(()=>{if(ce)return ce;ce=new Map;const n=(d,u)=>{if(u===0)return"TableStyleNone";let g="Custom";return d==="l"?g="Light":d==="m"?g="Medium":d==="d"&&(g="Dark"),`TableStyle${g}${u}`},r=(d,u=0)=>u===0?d:u>0?`${d} lumMod ${100-u}, lumOff ${u}`:u<0?`${d} lumMod ${100+u}`:void 0,o=d=>({type:exports.IFill.Type.Pattern,patternType:exports.IFill.BuiltInSheetPattern.Solid,foreground:d,background:d}),s=(d,u=!1)=>{const g={fill:d};return u&&(g.weight=700),g},i=(d,u=exports.IBorder.StrokeStyle.Thin)=>({style:u,color:d}),l=(d,u)=>{for(let g=0;g<7;g++)d.push(u(`accent${g+1}`))};let c=0,h=[];h.push(["dk1",r("bg1",-15),"dk1"]),l(h,d=>[r(d,-25),r(d,80),d]),c=1;for(let d=0;d<7;d++){const u=n("l",d+c),g=h[d][0],m=h[d][1]??g,f=h[d][2]??g;ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),border:{top:i(f),bottom:i(f)}},headerRow:{font:s(g,!0),border:{bottom:i(f)}},totalRow:{font:s(g,!0),border:{top:i(f)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{fill:o(m)},firstColumnStripe:{fill:o(m)}}))}c+=7,h=[],h.push(["dk1","dk1","lt1"]),l(h,d=>["dk1",d,"lt1"]);for(let d=0;d<7;d++){const u=n("l",d+c),g=h[d][0],m=h[d][1],f=h[d][2];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),border:{left:i(m),right:i(m),top:i(m),bottom:i(m)}},headerRow:{font:s(f,!0),fill:o(m)},totalRow:{font:s(g,!0),border:{top:i(m,exports.IBorder.StrokeStyle.Double)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{border:{top:i(m)}},secondRowStripe:{border:{top:i(m)}},firstColumnStripe:{border:{left:i(m)}},secondColumnStripe:{border:{left:i(m)}}}))}c+=7,h=[],h.push(["dk1",r("bg1",-15)]),l(h,d=>[d,r(d,80)]);for(let d=0;d<7;d++){const u=n("l",d+c),g="dk1",m=h[d][0],f=h[d][1];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),border:{left:i(m),right:i(m),top:i(m),bottom:i(m),horizontal:i(m),vertical:i(m)}},headerRow:{font:s(g,!0)},totalRow:{font:s(g,!0),border:{top:i(m,exports.IBorder.StrokeStyle.Double)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{fill:o(f)},firstColumnStripe:{fill:o(f)}}))}c=1,h=[],h.push(["dk1","dk1",r("bg1",-15)]),l(h,d=>[d,r(d,40),r(d,80)]);for(let d=0;d<7;d++){const u=n("m",d+c),g="dk1",m="lt1",f=h[d][0],p=h[d][1],S=h[d][2];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),border:{left:i(p),right:i(p),top:i(p),bottom:i(p),horizontal:i(p)}},headerRow:{font:s(m,!0),fill:o(f)},totalRow:{font:s(g,!0),border:{top:i(f,exports.IBorder.StrokeStyle.Double)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{fill:o(S)},firstColumnStripe:{fill:o(S)}}))}c+=7,h=[],h.push(["dk1",r("bg1",-15),r("bg1",-35)]),l(h,d=>[d,r(d,80),r(d,60)]);for(let d=0;d<7;d++){const u=n("m",d+c),g="dk1",m="lt1",f=h[d][0],p=h[d][1],S=h[d][2];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),fill:o(p),border:{horizontal:i(m),vertical:i(m)}},headerRow:{font:s(m,!0),fill:o(f),border:{bottom:i(m,exports.IBorder.StrokeStyle.Thick)}},totalRow:{font:s(m,!0),fill:o(f),border:{top:i(m,exports.IBorder.StrokeStyle.Thick)}},firstColumn:{font:s(m,!0),fill:o(f)},lastColumn:{font:s(m,!0),fill:o(f)},firstRowStripe:{fill:o(S)},firstColumnStripe:{fill:o(S)}}))}c+=7,h=[],h.push(["dk1",r("bg1",-15),r("bg1",-35)]),l(h,d=>[d,r(d,80),r(d,60)]);for(let d=0;d<7;d++){const u=n("m",d+c),g="dk1",m="lt1",f=h[d][0],p=r("bg1",-15);ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),border:{top:i(g,exports.IBorder.StrokeStyle.Medium),bottom:i(g,exports.IBorder.StrokeStyle.Medium),left:d===0?i(g,exports.IBorder.StrokeStyle.Thin):void 0,right:d===0?i(g,exports.IBorder.StrokeStyle.Thin):void 0,horizontal:d===0?i(g,exports.IBorder.StrokeStyle.Thin):void 0,vertical:d===0?i(g,exports.IBorder.StrokeStyle.Thin):void 0}},headerRow:{font:s(m,!0),fill:o(f),border:{bottom:i(g,exports.IBorder.StrokeStyle.Medium)}},totalRow:{border:{top:i(g,exports.IBorder.StrokeStyle.Double)}},firstColumn:{font:s(m,!0),fill:o(f)},lastColumn:{font:s(m,!0),fill:o(f)},firstRowStripe:{fill:o(p)},firstColumnStripe:{fill:o(p)}}))}c+=7,h=[],h.push(["dk1",r("bg1",-15),r("bg1",-35),"dk1"]),l(h,d=>[d,r(d,80),r(d,60),r(d,40)]);for(let d=0;d<7;d++){const u=n("m",d+c),g="dk1",m=h[d][0],f=h[d][1],p=h[d][2],S=h[d][3];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),fill:o(f),border:{top:i(S),right:i(S),left:i(S),bottom:i(S),vertical:i(S),horizontal:i(S)}},headerRow:{font:s(g),fill:o(f)},totalRow:{font:s(g),border:{top:i(m,exports.IBorder.StrokeStyle.Medium)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{fill:o(p)},firstColumnStripe:{fill:o(p)}}))}c=1,h=[],h.push(["dk1",r("dk1",15),r("dk1",25),r("dk1",50)]),l(h,d=>["dk1",r(d,-50),r(d,-25),d]);for(let d=0;d<7;d++){const u=n("d",d+c),g="lt1",m=h[d][0],f=h[d][1],p=h[d][2],S=h[d][3];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),fill:o(S)},headerRow:{font:s(g,!0),fill:o(m),border:{bottom:i(g,exports.IBorder.StrokeStyle.Medium)}},totalRow:{font:s(g,!0),fill:o(f),border:{top:i(g,exports.IBorder.StrokeStyle.Medium)}},firstColumn:{font:s(g,!0),fill:o(p),border:{right:i(g,exports.IBorder.StrokeStyle.Medium)}},lastColumn:{font:s(g,!0),fill:o(p),border:{left:i(g,exports.IBorder.StrokeStyle.Medium)}},firstRowStripe:{fill:o(p)},firstColumnStripe:{fill:o(p)}}))}c+=7,h=[],h.push([r("bg1",-15),"dk1",r("bg1",-35)]),h.push([r("accent1",80),"accent2",r("accent1",60)]),h.push([r("accent3",80),"accent4",r("accent3",60)]),h.push([r("accent5",80),"accent6",r("accent5",60)]);for(let d=0;d<4;d++){const u=n("d",d+c),g="dk1",m="lt1",f=h[d][0],p=h[d][1],S=h[d][2];ce.set(u.toLocaleLowerCase(),Object.freeze({name:u,wholeTable:{font:s(g),fill:o(f)},headerRow:{font:s(m,!0),fill:o(p)},totalRow:{font:s(g,!0),border:{top:i(g,exports.IBorder.StrokeStyle.Double)}},firstColumn:{font:s(g,!0)},lastColumn:{font:s(g,!0)},firstRowStripe:{fill:o(S)},firstColumnStripe:{fill:o(S)}}))}return ce})(),e=new Map;return t.forEach((n,r)=>{const o=n.name.toLowerCase(),s=new Sd(this,n,!0);e.set(o,s)}),e}_initializeBuiltIns(){const t=new Map;this._builtInsCellStyles=t,this._initializeNamedStyles(PS,t),this._builtInsTableStyles=this._initializeTableStyles(),this._emptyTableStyle=new exports.ITableStyle.Empty(this._normalStyle)}getNormal(){return this._normalStyle}getNormalRanged(){return this._normalRanged}setTheme(t){this._theme=t,this._emitter.notify("onThemeChange"),this._emitter.notify("onAnyChange")}getTheme(){return this._theme}setDefaultFontSize(t){this._defaultFontSize=t,this._emitter.notify("onDefaultFontChange"),this._emitter.notify("onAnyChange")}getDefaultFontSize(){return this._defaultFontSize}beginPersist(){return this._persistCache||(this._persistCache={byIds:new Map,byJSONs:new Map,openScopes:new Set}),new __(this._persistCache,{},this._toJSONInternal.bind(this),this._fromJSONInternal.bind(this),()=>{this._persistCache=null})}getNamed(t){if(!t)return null;t=t.toLowerCase();let e=null;return this._customCellStyles&&(e=this._customCellStyles.get(t)),e||(e=this._builtInsCellStyles.get(t)),e??null}getCustomNamed(){const t=Array.from(this._customCellStyles.values());return t.sort((e,n)=>e.getName().localeCompare(n.getName())),t}setNamed(t,e=!1){if(!t||!t.name||!t.style)throw new w.NullNotAllowedError;this.validateStyleName(t.name,!1);const n=this._setCustomCellStyleInternal(t,e);return this._emitter.notify("onNamedStylesChange"),this._emitter.notify("onAnyChange"),n}_setCustomCellStyleInternal(t,e=!1,n=0){const r=t.name.toLowerCase(),o=this._builtInsCellStyles.get(r),s=o?.getBuiltInID()??null;let i=null;e&&(i=(this._customCellStyles.get(r)??o)?._properties??null);const l=Ci(0,t.style,this.getNormal());t={...t,style:l};const c=w.TypedObject.resolveTypedUpdates(t,BS,this,i),h=new _d(this,c,this._hideOrRemoveNamed.bind(this),s);return c.name===exports.IStyle.BuiltInName.Normal&&(this._normalRanged=h.getRanged(),this._normalStyle=Fr(this,null)),this._customCellStyles.set(r,h),h}_setCustomTableStyleInternal(t,e){const n=t.toLowerCase();let r=this._customTableStyles.get(n)??this._builtInsTableStyles.get(n);r&&(t=r.getName());const o=new Sd(this,{...e,name:t},!1,this._deleteCustomTableStyle.bind(this));return this._customTableStyles.set(n,o),o}_hideOrRemoveNamed(t){let e=null;if(e=typeof t=="string"?t:t?.getName?.(),!e||(e=e.toLowerCase(),e===exports.IStyle.BuiltInName.Normal.toLowerCase()))return!1;const n=this._builtInsCellStyles.get(e);let r=!1;if(n&&!n.isHidden()){const o=n.toJSON();this.setNamed({...o,hidden:!0}),r=!0}else e=e.toLowerCase(),r=this._customCellStyles.delete(e);return r&&(this._emitter.notify("onNamedStylesChange"),this._emitter.notify("onAnyChange")),r}getTableStyle(t){if(!t)return this._emptyTableStyle;let e=this._customTableStyles.get(t.toLowerCase());return e||(e=this._builtInsTableStyles.get(t.toLowerCase())),e??null}getCustomTableStyles(){const t=Array.from(this._customTableStyles.values());return t.sort((e,n)=>e.getName().localeCompare(n.getName())),t}setDefaultTableStyle(t){const e=t?.toLowerCase();return this._defaultTableStyle=this._customTableStyles.get(e)??this._builtInsTableStyles.get(e)??this._builtInsTableStyles.get($r.toLowerCase()),this._emitter.notify("onTableStylesChange"),this._emitter.notify("onAnyChange"),t===this._defaultTableStyle.getName()}getDefaultTableStyle(){return this._defaultTableStyle||(this._defaultTableStyle=this._builtInsTableStyles.get($r.toLowerCase())),this._defaultTableStyle}_deleteCustomTableStyle(t){const e=this._customTableStyles.get(t?.toLowerCase());return!!e&&(this._customTableStyles.delete(t.toLowerCase()),this._defaultTableStyle?.getName()===e.getName()&&(this._defaultTableStyle=this._builtInsTableStyles.get($r.toLowerCase())),this._emitter.notify("onTableStylesChange"),this._emitter.notify("onAnyChange"),!0)}setCustomTableStyle(t,e){const n=this._setCustomTableStyleInternal(t,e);return this._emitter.notify("onTableStylesChange"),this._emitter.notify("onAnyChange"),n}validateStyleName(t,e=!1){if(!t||t.trim().length===0)throw new Error("Style name cannot be empty.");if(e&&this.getNamed(t)!==null)throw new Error("Style name is already taken.")}normalize(t){if(!t)return null;const e=w.TypedObject.resolveTypedUpdates(t,Dt,this),n=zg;let r=null;if(r=e.named?this.getNamed(e.named)?.getRanged().getPropertiesAt(0,0,null):this._normalRanged.getPropertiesAt(0,0,null),r){const s={...r};w.CommonUtils.removeEqualValues(e,s)}const o=this.getTheme().getFontScheme();return w.CommonUtils.removeEqualValues(e,{font:{size:this.getDefaultFontSize(),family:o.getMinorFont(),fallbacks:o.getMinorFallbacks()}}),w.CommonUtils.removeEqualValues(e,n),e}schemeLookup(){return this._schemeLookup}indexedLookup(){return this._indexedLookup}parseColor(t){return Pt.parse(t,this._schemeLookup,this._indexedLookup)}recentColors(){return this._mruColors}addRecentColor(t){if(!t)return;const e=this._mruColors,n=[],r=t.toString(),o=e.length;for(let s=0;s<o&&s<10;s++){const i=e[s];i.toString()!==r&&n.push(i)}return n.unshift(t),this._mruColors=Object.freeze(n),this._mruColors}clearRecentColors(){this._mruColors=w.CommonUtils.EmptyArray}getIndexedColors(){return this._indexedColors}setCustomIndexedColors(t){this._indexedColors=t?.length>0?[...t]:null}getCustomIndexedColors(){const t=this._indexedColors,e=Math.max(t?.length,66),n=[];for(let r=0;r<e;r++){const o=t[r];o!==null&&n.push(o??new Pt(Ys(r)?.toString()))}return n}addListeners(t,e){return this._emitter.addListeners(t,e)}_toJSONInternal(t){const e={};t.length>0&&(e.direct=t);const n=this.getCustomNamed(),r=n.length,o=new Array(r);for(let m=0;m<r;m++){const f=n[m].toJSON();o[m]=f}o.length>0&&(e.named=o);const s={};this._defaultTableStyle&&this._defaultTableStyle.getName()!==$r&&(s.defaultTableStyle=this._defaultTableStyle.getName());const i={},l=this.getCustomTableStyles(),c=l.length;for(let m=0;m<c;m++){const f=l[m],p=f.toJSON();delete p.name,p&&Object.keys(p).length>0&&(i[f.getName()]=p)}Object.keys(i).length>0&&(s.styles=i),Object.keys(s).length>0&&(e.tables=s);const h=this._indexedColors,d=h.length??0;if(d>0){const m=new Array(d);for(let f=0;f<d;f++)m[f]=h[f].toString();e.indexedColors=m}const u=this._mruColors,g=u.length;if(g>0){const m=new Array(g);for(let f=0;f<g;f++)m[f]=u[f].toString();e.mruColors=m}return Object.keys(e).length===0?null:e}_fromJSONIndexedColors(t){if(!t||t.length===0)return w.CommonUtils.EmptyArray;const e=t.length,n=new Array(e);if(e>0)for(let r=0;r<e;r++){const o=t[r];try{n[r]=this.parseColor(o)}catch{console.warn("Unable to parse color: "+o)}}return n}_fromJSONInternal(t){this._indexedColors=this._fromJSONIndexedColors(t.indexedColors);const e=t.named;for(let i=0;e&&i<e.length;i++)this._setCustomCellStyleInternal(t.named[i]);let n=$r;if(this._defaultTableStyle=null,t.tables){t.tables.defaultTableStyle&&(n=t.tables.defaultTableStyle);const i=t.tables.styles,l=i?Object.keys(i):null,c=l?l.length:0;for(let h=0;h<c;h++){const d=l[h],u=i[d];this._setCustomTableStyleInternal(d,u)}}this._defaultTableStyle=this.getTableStyle(n);const r=t.mruColors,o=r?r.length:0,s=new Array(o);if(o>0)for(let i=0;i<o;i++){const l=r[i];try{s[i]=this.parseColor(l)}catch{console.warn("Unable to parse color: "+l)}}this._mruColors=s}}const Ea="BinaryResource must have only one initial data value.",Ia="Resource is closed.";class Vs{constructor(t){if(this._listeners=new Set,this._type=t.type,this._name=t?.name,t.base64){const e=t.base64;this._asArrayBufferResolve=async()=>{const n=await Promise.resolve(e);return Promise.resolve(w.BufferUtils.base64ToArrayBuffer(n))}}if(t.fetch){if(this._asArrayBufferResolve)throw new Error(Ea);const e=t.fetch;this._asArrayBufferResolve=async()=>{let n,r=null;r=typeof e=="string"?e:t.input;const o=await fetch(r,n),s=o.headers.get("Content-Type");return!this._type&&s&&(this._type=s),o.arrayBuffer()}}if(t.buffer){if(this._asArrayBufferResolve)throw new Error(Ea);this._asArrayBufferResolve=async()=>{let e=null;return e=typeof t.buffer=="function"?await t.buffer():t.buffer,Promise.resolve(e)}}if(t.file){if(this._asArrayBufferResolve)throw new Error(Ea);this._asArrayBufferResolve=async()=>await(await Promise.resolve(t.file)).arrayBuffer()}if(!this._asArrayBufferResolve)throw new Error("BinaryResource must have an initial data value.");this._refs=new Set,this._isClosed=!1}getName(){return this._name}async toJSONAsync(){const t=await this.toBuffer(),e={base64:w.BufferUtils.arrayBufferToBase64(t)};return this._type!==w.BufferUtils.DEFAULT_MIME_TYPE&&(e.type=this._type),this._name&&(e.name=this._name),e}async toBuffer(){if(this._asArrayBuffer)return this._asArrayBuffer;try{this._asArrayBuffer=this._asArrayBufferResolve()}catch(t){throw t}return this._asArrayBuffer}async getType(){return this._type?this._type:(await this.toBuffer(),this._type??w.BufferUtils.DEFAULT_MIME_TYPE)}addReference(t){if(this._isClosed)throw new Error(Ia);this._refs.add(t)}deleteReference(t){if(this._isClosed)throw new Error(Ia);if(this._refs.size===0||!this._refs.has(t))return;this._refs.delete(t);const e=this;if(this._refs.size===0){const n=this._listeners;n.forEach(r=>{r.onUnload?.(e),n.delete(r)}),this._asArrayBuffer=null,this._isClosed=!0}}addUnloadListener(t){if(this._isClosed)throw new Error(Ia);this._listeners.add(t)}get isIResource(){return!0}isClosed(){return this._isClosed}}let w_=class{constructor(a,t,e){this._state=a,this._fromJSON=t,this._onLastEnd=e,this._state.openScopes.add(this),this._isClosed=!1}endPersist(){if(!this._state.openScopes.delete(this))throw new Error("PersistScope is closed.");this._isClosed=!0,this._state.openScopes.size===0&&this._onLastEnd()}toResourceId(a){if(this._isClosed)throw new Error("PersistScope is closed.");let t=this._state.byRefs.get(a);return t!==void 0||(t=this._state.byRefs.size,this._state.byRefs.set(a,t),this._state.byIds.set(t,a)),t}fromResourceId(a){return this._state.byIds.get(a)??null}fromJSON(a){if(this._isClosed)throw new Error("PersistScope is closed.");if(!a||a.length===0)return;const t=this._state.byRefs.size;for(let e=0;e<a.length;e++){const n=a[e],r=this._fromJSON(n);this._state.byRefs.set(r,t+e),this._state.byIds.set(t+e,r)}}toJSONAsync(){if(this._isClosed)throw new Error("PersistScope is closed.");const a=[];return this._state.byRefs.forEach((t,e)=>{a[t]=Promise.resolve(e.toJSONAsync())}),Promise.all(a)}};class Ll{constructor(){this._resources=new Set}add(t){if(typeof t=="string"){let r=!1;this._resources.forEach(o=>{o.getName()===t&&(r=!0,t=o)}),r||(t=new Vs({name:t,fetch:t,type:null}))}let e=null;e=t instanceof Vs?t:new Vs({...t});const n=this;return this._resources.has(e)||(e.addUnloadListener({onUnload:r=>{n._resources.delete(e)}}),this._resources.add(e)),e}getItems(t){return Array.from(this._resources)}getCount(){return this._resources.size}beginPersist(){this._persistOpen||(this._persistOpen={byRefs:new Map,byIds:new Map,openScopes:new Set});const t={},e=new Set,n=this;return new w_(this._persistOpen,r=>{const o=n.add({base64:r.base64,name:r.name,type:r.type});return o.addReference(t),e.add(o),o},()=>{e.forEach(r=>{r.deleteReference(t)}),n._persistOpen=null})}}class y_{constructor(t,e,n){this._state=t,this._fromJSON=e,this._onLastEnd=n,this._state.openScopes.add(this),this._isClosed=!1}endPersist(){if(!this._state.openScopes.delete(this))throw new Error("PersistScope is closed.");this._isClosed=!0,this._state.openScopes.size===0&&this._onLastEnd()}add(t){if(this._isClosed)throw new Error("PersistScope is closed.");let e=this._state.byRefs.get(t);return e!==void 0||(e=this._state.byRefs.size,this._state.byRefs.set(t,e),this._state.byIds.set(e,t)),e}at(t){return this._state.byIds.get(t)??null}fromJSON(t){if(this._isClosed)throw new Error("PersistScope is closed.");t&&t.length!==0&&this._fromJSON(t)}toJSONAsync(){if(this._isClosed)throw new Error("PersistScope is closed.");const t=[];return this._state.byRefs.forEach((e,n)=>{t[e]=Promise.resolve(n.toJSONAsync?n.toJSONAsync():n)}),Promise.all(t)}}class bi{constructor(){this._nextId=0,this._lastReadId=-1,this._lastReadValue=null,this._stringsByText=new Map,this._stringsById=new Map}addMultiple(t,e=!1){const n=this._stringsByText,r=this._stringsById,o=t.length;let s=this._nextId;for(let i=0;i<o;i++){const l=t[i];n.get(l)!==void 0&&e||(n.set(l,s),r.set(s,l),s++)}this._lastReadId=-1,this._nextId=s}add(t){const e=this._stringsByText,n=e.get(t);if(n!==void 0)return n;const r=this._nextId++;return e.set(t,r),this._stringsById.set(r,t),this._lastReadId=-1,r}getItems(t){if(t?.id!==void 0){const e=this.getById(t.id);return e?[e]:[]}return Array.from(this._stringsById.values())}getById(t){if(this._lastReadId===t)return this._lastReadValue;const e=this._stringsById.get(t)??null;return this._lastReadId=t,this._lastReadValue=e,e}getCount(){return this._stringsById.size}beginPersist(){this._persistOpen||(this._persistOpen={byRefs:new Map,byIds:new Map,openScopes:new Set});const t=this;return new y_(this._persistOpen,e=>(Array.isArray(e)?t.addMultiple(e):t.add(e),e),()=>{t._persistOpen=null})}}exports.IPicture=void 0,exports.IPicture||(exports.IPicture={});class qg extends Xn{constructor(t){super(t),t.json&&(this._resource=t.fromResourceId(t.json.resId))}getType(){return"picture"}toJSON(t){const e={},n=t?.(this._resource);n!==null&&(e.resId=n);const r=this._getState();return r&&r.effects&&(e.effects=r.effects),e}getTypeDescription(){return"Picture"}async _asDataUrl(){if(this._dataUrl)return this._dataUrl;const t=await this.getDetails(),e=await w.ImageUtils.getImageDataUrl(t.asUrl());return this._dataUrl=e.dataUrl,this._dataUrl}toHtml(){return null}async toImage(){const t=(await this._asDataUrl()).substring(w.ImageUtils.DATA_URL_PNG_PREFIX.length),e=w.BufferUtils.base64ToArrayBuffer(t);return new Blob([e],{type:w.MimeType.png})}async getDetails(){return this._details||(this._details=new Promise(async(t,e)=>{try{const n=await this._resource.toBuffer(),r=await this._resource.getType(),o=await w.ImageUtils.loadImageDetails(n,r);t({getNaturalSize:()=>o.naturalSize,asUrl:()=>o.asUrl,asSVGText:()=>o.asSVGText})}catch(n){e(n)}})),this._details}_fromDrawingJSON(t,e){this._resource?.deleteReference(this),this._resource=e?.(t.resId),this._resource.addReference(this)}_toDrawingJSON(t){const e={},n=t?.(this._resource);return n!==null&&(e.resId=n),e}_processDelete(){super._processDelete()}}exports.ICalculation=void 0,(exports.ICalculation||(exports.ICalculation={})).Status={Ready:"ready",Error:"error",Starting:"starting",Stopping:"stopping",Off:"off"};class xo extends Zt{constructor(t,e=null,n,r,o){if(super(t,n,e),this._sheetName=r||null,this._getEntireCoords=o??ei,this._coords=C_(n,this._getEntireCoords()),!n)throw new Error("ReferenceRange requires a coords");this._validateCoords(n)}toType(t){return new xo(this._values,t,this._coords,this._sheetName,this._getEntireCoords)}getCoords(){return this._coords}get isIReferenceRange(){return!0}isLiteral(){return!1}_validateCoords(t){const e=this._getEntireCoords?.();if(e&&(t.rowStart<e.rowStart&&t.rowStart!==Number.MIN_SAFE_INTEGER||t.rowEnd>e.rowEnd&&t.rowEnd!==Number.MAX_SAFE_INTEGER||t.colStart<e.colStart&&t.colStart!==Number.MIN_SAFE_INTEGER||t.colEnd>e.colEnd&&t.colEnd!==Number.MAX_SAFE_INTEGER))throw new w.OutOfBoundsError}get[Symbol.toStringTag](){return"[ReferenceRange]"}toString(){return`${cn(this._coords,this._getEntireCoords?.())}`}}const C_=(a,t)=>{let e=a.rowStart,n=a.rowEnd,r=a.colStart,o=a.colEnd,s=!1;return r===Number.MIN_SAFE_INTEGER&&(r=t.colStart,s=!0),e===Number.MIN_SAFE_INTEGER&&(e=t.rowStart,s=!0),n===Number.MAX_SAFE_INTEGER&&(n=t.rowEnd,s=!0),o===Number.MAX_SAFE_INTEGER&&(o=t.colEnd,s=!0),s?{rowStart:e,rowEnd:n,colStart:r,colEnd:o}:a},wd=(a,t)=>a.value?.once===t.value?.once,E_=(a,t)=>a.colStart===t.colStart&&a.rowStart===t.rowStart,Xg=(a,t,e)=>!!e&&a===e.rowStart&&t===e.colStart,I_=(a,t=0,e=0)=>{const n=a._values,r=a._coords,o=n.getRuns({bounds:r}),s=n.getOrientation()!==A.IRange.Orientation.Row,i=s?r.colStart:r.rowStart,l=s?r.rowStart:r.colStart,c=new exports.Tuple.Builder(null,t,e);let h=o.next();for(;!h.done;){const d=h.value;c.addValues(d[0]-i,d[1]-l,d[2]),h=o.next()}return c.build()},js=(a,t,e,n,r,o,s,i,l,c,h,d,u=!1)=>{let g,m,f=null,p=r.size();d===void 0&&(d=o.getOrientation()===A.IRange.Orientation.Column);const S=t?t.length:0,_=e?e.length:0;let E;const C=S+_;for(let y=0;y<C&&p>0;y++){const b=y<S?t[y]:e[y-S],v=r.search(b),R=v.length;for(let x=0;x<R;x++){const T=v[x];if(!Xg(T.rowStart,T.colStart,b)){if(T.value.getError())continue;E||(E=[]),E.push(T)}r.remove(T,E_);const M=T.value;M.getCycleId()!==a&&l?.insert(T),M.getError()||(o.delete(T),n.insertNonOverlapping({colStart:T.colStart,rowStart:T.rowStart,colEnd:T.colEnd,rowEnd:T.rowEnd,value:null},{onIntersect:(F,N)=>{if(F.value!==null)return s?.push(F),f=w.CoordUtils.unionRanges(f,F),i?.insertNonOverlapping(F),f=w.CoordUtils.unionRanges(f,F),N}})),p--}}for(let y=0;y<S;y++){const b=t[y],v={colStart:b.colStart,rowStart:b.rowStart,colEnd:b.colEnd,rowEnd:b.rowEnd,value:null};n.insertNonOverlapping(v,{onIntersect:(R,x)=>{if(R.value===null)return;const T=w.CoordUtils.sanitizeRange(x);return u&&i?.insertNonOverlapping(T),c?.insertNonOverlapping({...x,value:!1}),s?.push(T),f=w.CoordUtils.unionRanges(f,T),x}}),h?.insertNonOverlapping(v,{onIntersect:(R,x)=>{if(R.value!==null)return s?.push(x),f=w.CoordUtils.unionRanges(f,x),x},onUpdates:(R,x,T)=>{m||(m=[]);const M=R.length;for(let N=0;N<M;N++){const k=R[N];m.push(k)}g||(g=[]);const F=x.length;for(let N=0;N<F;N++){const k=x[N],U=w.CoordUtils.sanitizeRange(k);g.push(U)}}})}const I=d?A.IRange.Orientation.Column:A.IRange.Orientation.Row;if(E){const y=E.length,b=new Array(y);for(let v=0;v<y;v++){const R=E[v],x=R.value.setError(!0,a);l?.insert(x),b[v]=x,f=w.CoordUtils.unionRanges(f,R);const T={colStart:R.colStart,rowStart:R.rowStart,colEnd:R.colStart,rowEnd:R.rowStart};n.insertNonOverlapping({colStart:R.colStart,rowStart:R.rowStart,colEnd:R.colStart,rowEnd:R.rowStart,value:new ke(R,I)}),s?.push(T)}r.load(b)}for(let y=0;y<_;y++){const b=w.CoordUtils.sanitizeRange(e[y]);n.insertNonOverlapping({colStart:b.colStart,rowStart:b.rowStart,colEnd:b.colEnd,rowEnd:b.rowEnd,value:new ke(b,I)}),u&&i?.insertNonOverlapping(b),s?.push(b),f=w.CoordUtils.unionRanges(f,b)}return f},gl=(a,t,e)=>{if(!t)return a;const n=t.block;if(!n)return a;const r=a??[],o=t.colIndex,s=t.rowIndex;let i,l,c,h;e?(i=e.colStart,l=e.rowStart,c=e.colEnd,h=e.rowEnd):(i=o,l=s,c=o,h=s);const d={colStart:i,rowStart:l,colEnd:c,rowEnd:h,value:{blockEntry:{colStart:i,rowStart:l,colEnd:c,rowEnd:h,value:n},width:1,height:1,index:-1,$absWidth:!1,$absHeight:!1,once:t}};let u=t.dynamic;return u||(u=[],t.dynamic=u),u.push(d),r.push(d),r};class Ul{constructor(t){this._fullCalcRequired=!1,this._iterationId=0,this._uuid=w.CommonUtils.uuidV4(),this._cycleId=1,this._pendingInvalidations=new Set,this._emitter=null,this._isProcessingJSON=!1,this._collectDirties=(o,s=!1,i,l)=>{const c=this._formulaSpatial,h=this._precedentSpatial;let d=R_,u=0;if(s){const g=c.all();for(let m=0;m<g.length;m++){const f=g[m].value.calcs,p=f.length;for(let S=0;S<p;S++){const _=f[S],E=_.length;for(let C=0;C<E;C++){const I=_[C];I.markId!==o&&(d[u++]=I,I.markId=o,I.pending=!1,I.pendingResolved=!1,I.pendingPromise&&(I.pendingPromise.cancelled=!0))}}}}else{const g=i.length;for(let m=0;m<g;m++){const f=i[m];Id.length=0;const p=Id;h.search(f,!1,p),c.search(f,!1,p);const S=p.length;if(S===0)continue;const _=f.colStart,E=f.rowStart,C=f.colEnd-_,I=f.rowEnd-E;for(let y=0;y<S;y++){const b=p[y],v=b.value,R=v.blockEntry?.value??v,x=R.ref,T=x.colEnd-x.colStart,M=x.rowEnd-x.rowStart,F=b.colEnd-b.colStart-T,N=b.rowEnd-b.rowStart-M,k=v.once;if(k)k.markId<=o&&(k.removed?(h.remove(b,wd),k.removed=!1):d[u++]=k,k.markId=o);else{let U=0,O=0,D=T,B=M;if(!v.$absHeight){const L=E-b.rowStart;O=Math.min(Math.max(L-N,0),M),B=Math.min(I+E,M)}if(!v.$absWidth){const L=_-b.colStart;U=Math.min(Math.max(L-F,0),T),D=Math.min(C+L,T)}const P=R.calcs;for(let L=O;L<=B;L++){const W=P[L];for(let H=U;H<=D;H++){const G=W[H];G.markId!==o&&(d[u++]=G,G.markId=o,G.pendingPromise&&(G.pendingPromise.cancelled=!0))}}}}}l&&l.forEach(m=>{if(Array.isArray(m)){const f=m.length;for(let p=0;p<f;p++){const S=m[p],_=S.length;for(let E=0;E<_;E++){const C=S[E];C.markId===o||C.removed||(d[u++]=C,C.markId=o,C.pendingPromise&&(C.pendingPromise.cancelled=!0))}}}else m.markId===o||m.removed||(d[u++]=m,m.markId=o,m.pendingPromise&&(m.pendingPromise.cancelled=!0))})}return d.length=u,d};const e=(t={strings:new bi,...t}).getEntireCoords??ei;if(this._getEntireCoords=e,this._options=t,this._strings=t.strings,this._onCalculated=t?.onCalculated??(()=>{}),this._cycleId=1,this._values=new He({orientation:A.IRange.Orientation.Column}),this._getFormulaParser=t.getFormulaParser,!this._getFormulaParser)throw new Error("Formula parser is not defined");this._latest={graph:this},this._iterationId=0;const n=this;this._formulaSpatial=new It({updateEntryOptions:{isMergeOnShift:!0,isSplitOnExpand:!0,onUpdates:(o,s,i)=>{const l=i._cloneKey??n;if(l._isProcessingJSON)return;let c=l._notifyFormulaInsertEntries,h=l._notifyFormulaRemoveEntries;const d=l._precedentSpatial,u=s?s.length:0;if(u>0){let m=h?h.length:0;h?h.length=m+u:(h=new Array(u),l._notifyFormulaRemoveEntries=h);for(let f=0;f<u;f++){const p=s[f],S=p.value,_=S.ref;h[m+f]=_;const E=_.rowStart,C=_.colStart,I=S.formula.getDirectPrecedentsAt(E,C);if(!I)continue;const y=I.length;for(let b=0;b<y;b++){const v=I[b];if(v===null||v instanceof A.FormulaError.Known)continue;const R=d.search(v),x=R.length;for(let T=0;T<x;T++){const M=R[T];M.value.blockEntry.value===p.value&&d.remove(M)}}}}const g=o?o.length:0;if(g>0){const m=[];for(let f=0;f<g;f++){const p=o[f],S=p.colEnd-p.colStart,_=p.rowEnd-p.rowStart,E=p.value,C=E.formula,I=E.ref,y=I.rowStart,b=I.colStart,v=[],R=C.getDirectPrecedentsAt(y,b,!0,rs,os),x=R.length;for(let T=0;T<x;T++){const M=R[T];if(M instanceof A.FormulaError.Known)continue;const F=rs[T],N=os[T],k={colStart:M.colStart,rowStart:M.rowStart,colEnd:M.colEnd+(N?0:S),rowEnd:M.rowEnd+(F?0:_),value:{blockEntry:p,width:S+1,height:_+1,index:T,$absWidth:N,$absHeight:F,once:null}};v.push(M),m.push(k)}c||(c=[],l._notifyFormulaInsertEntries=c),c.push({colStart:p.colStart,rowStart:p.rowStart,colEnd:p.colEnd,rowEnd:p.rowEnd,value:{tokens:C.getTokens(),references:C.getReferences(),precedents:v}})}d.load(m)}}}}),this._contentfulSpatial=new It({updateEntryOptions:{isSplitOnExpand:!0,isMergeOnShift:!0}});const r={updateEntryOptions:{isSplitOnExpand:!0,isMergeOnShift:!1}};this._precedentSpatial=new It(r),this._volatile=new Set,this._spillSpatial=new It(r),this._errorSpatial=new It(r),this._pendingSpatial=new It(r),this._invalidations=new It,this._notifyValues=new It,this._notifySpills=new It,this._notifyFormats=new It,this._notifyPending=new It,this._calculation=t.calculation,this._clearScope()}addListeners(t,e){return this._emitter||(this._emitter=new Xt(this)),this._emitter.addListeners(t,e)}shift(t){const e=t.cloneIfUpdate??!0?this.clone(this):this,n={...t};delete n.cloneIfUpdate,delete n.onShift,e._values.shift(n.range,n.direction);const r=e._contentfulSpatial;e._contentfulSpatial=r.shift(n);const o=e._spillSpatial;e._spillSpatial=o.shift(n);const s=e._formulaSpatial;if(s.isEmpty())return e;const i=t.range,l=t.direction,c=l===A.IRange.Direction.Left||l===A.IRange.Direction.Right;l!==A.IRange.Direction.Up&&A.IRange.Direction.Left,c?(i.colEnd,i.colStart):(i.rowEnd,i.rowStart),e._notifyFormulaInsertEntries,e._notifyFormulaRemoveEntries;const h=e._getEntireCoords(),d=new Map;this._precedentSpatial.visitRanges({...i,colEnd:c?h.colEnd:i.colEnd,rowEnd:c?i.rowEnd:h.rowEnd},S=>{let _=S.value;if(S.value.once)return;let E=_.blockEntry,C=d.get(E);C||(C={rows:[],cols:[],index:[]},d.set(E,C)),C.index.push(_.index)});const u=[],g=[],m=d.entries();let f=m.next();const p=(S,_,E,C)=>{let I=S.value;const y=I.formula.getReferences(),b=_.length;for(let v=0;v<b;v++){const R=y[v];R!==null&&(R instanceof A.FormulaError.Known||typeof R!="string"&&R[v])}return S.value=I,S};for(;!f.done;){const[S,_]=f.value,E=S.value,C=_.rows.sort(),I=C.length,y=_.cols.sort().length,b=_.index.sort();if(g.push(S),I===0&&y===0){const R={...S};p(R,b),u.push(R),f=m.next();continue}let v=0;for(let R=0;R<I;R++){const x=C[R];if(x===v)continue;Ta[0]={colStart:E.ref.colStart,rowStart:v,colEnd:E.ref.colEnd,rowEnd:x-1,value:E},Ta[1]={colStart:E.ref.colStart,rowStart:x,colEnd:E.ref.colStart,rowEnd:E.ref.rowEnd,value:E};const T=M_(E,Ta,A.IRange.Orientation.Row,x);let M=T[0];p(M,b),u.push(M),M=T[1],p(M,b),u.push(M),v=x}f=m.next()}return s._updateNodes(u,g),e._fullCalcRequired=!0,this._invalidate(u),e}clone(t){if(t!==void 0&&this._cloneKey===t)return this;const e=new Ul(this._options);e._cloneKey=t,e._uuid=this._uuid,this._calculation._getAllGraphs().set(this._uuid,this._latest.graph),e._values=this._values.clone(e),e._contentfulSpatial=this._contentfulSpatial.clone(e),e._formulaSpatial=this._formulaSpatial.clone(e),e._precedentSpatial=this._precedentSpatial.clone(e),e._volatile=new Set(this._volatile),e._spillSpatial=this._spillSpatial.clone(e),e._errorSpatial=this._errorSpatial.clone(e),e._pendingSpatial=this._pendingSpatial.clone(e),e._invalidations=this._invalidations.clone(e),e._notifyValues=this._notifyValues.clone(e),e._notifySpills=this._notifySpills.clone(e),e._notifyFormats=this._notifyFormats.clone(e),e._notifyPending=this._notifyPending.clone(e);const n=this._notifyFormulaInsertEntries;n&&(e._notifyFormulaInsertEntries=[...n]);const r=this._notifyFormulaRemoveEntries;r&&(e._notifyFormulaRemoveEntries=[...r]);const o=this._pendingActions;return o&&(e._pendingActions=[...o]),e._cycleId=this._cycleId,e._emitter=this._emitter,e._fullCalcRequired=this._fullCalcRequired,this._latest.graph=e,e._iterationId=this._iterationId+1,e}invalidate(t){const e=this._invalidations;if(Array.isArray(t)){const n=t.length;for(let r=0;r<n;r++){let o=t[r];typeof o=="string"&&(o=de(o)),e.insertNonOverlapping(o)}}else{let n=t;typeof n=="string"&&(n=de(n)),e.insertNonOverlapping(n)}}setFormulaAt(t,e){let n,r=null;return typeof t=="string"?n=de(t,Tt):(Tt.colStart=t.colIndex,Tt.rowStart=t.rowIndex,Tt.colEnd=t.colIndex,Tt.rowEnd=t.rowIndex,n=Tt),e?r=this._setInputs(null,[{colStart:n.colStart,rowStart:n.rowStart,colEnd:n.colEnd,rowEnd:n.rowEnd,value:e}]):this.delete(n),r}getFormulaAt(t,e){let n;typeof t=="string"&&(n=de(t,Tt));const r=this._formulaSpatial.search(n);if(r.length===0)return null;const o=r[0].value;return o.formula?o.formula.getTextAt(n.rowStart,n.colStart,e):void 0}_formulaAt(t,e){Qr.colStart=e,Qr.rowStart=t,Qr.colEnd=e,Qr.rowEnd=t;const n=this._formulaSpatial.search(Qr);if(n.length===0)throw new Error(`No formula found at ${ko({rowIndex:t,colIndex:e})}`);return n[0]}getDirectPrecedentsAt(t,e,n){return this._formulaAt(t,e).value.formula.getDirectPrecedentsAt(t,e,n)}getReferencesAt(t,e){return this._formulaAt(t,e).value.formula.getReferences()}setReferenceAt(t,e,n,r){const o=this._formulaAt(t,e).value.formula.setReferenceAt(n,r).getTextAt(t,e);return this.setFormulaAt({rowIndex:t,colIndex:e},o),this}evaluateAt(t,e,n){const r=this._formulaAt(t,e),o=r.value,s=o.ref,i=s.colStart-e,l=s.rowStart-t,c=this._calculation._getContext(),h=this._calculation._getScope();return h.sheetName=this._options.getSheetName?.(),h.rowIndex=t,h.colIndex=e,h.node=o.calcs[l][i],r.value.formula.evaluate(c,n)}setInputAt(t,e){let n=null;const r=typeof t=="string"?Sr(t,v_):t;if(e!==null){const o=new exports.Tuple.Builder,s=this._values.getOrientation()===A.IRange.Orientation.Column,i=s?r.colIndex:r.rowIndex,l=s?r.rowIndex:r.colIndex;o.addValue(i,l,e),n=this.setInputs(o.build(),null)}else this.delete(w.CoordUtils.cellToRange(r,Tt));return n}setInputs(t,e){return this._setInputs(t,e)}delete(t){return typeof t=="string"&&(t=Ce(t)),this._setInputs(null,[{...t,value:null}],t).removes}_createCopySpillEntries(t,e,n,r,o){const s=r??[],i=o??[],l=e.colStart,c=e.rowStart,h=e.colEnd,d=e.rowEnd,u=n.colStart,g=n.rowStart,m=t.search(e),f=m.length;for(let p=0;p<f;p++){const S=m[p];i&&i.push(S);const _=S.rowStart,E=S.colStart;if(_<c||_>d||E<l||E>h||S.value.getError())continue;const C=u+(S.colEnd-E),I=g+(S.rowEnd-_),y={colStart:u,rowStart:g,colEnd:C,rowEnd:I};s.push({colStart:u,rowStart:g,colEnd:C,rowEnd:I,value:new jn(y,0,!1)})}return{removes:i,inserts:s}}_copyCalcs(t,e,n){const r=t._formulaSpatial;if(r.isEmpty())return;const o=this._getEntireCoords(),s=o.colStart,i=o.rowStart,l=o.colEnd,c=o.rowEnd,h=r.createCopiedEntries(e,n),d=h.inserts;let u=d.length,g=0;const m=t._spillSpatial;let f=[];for(;g<u;){let p=d[g],S=p.value,_=S.ref,E=_.colStart,C=_.rowStart,I=_.colEnd,y=_.rowEnd;this._createCopySpillEntries(m,e,_,f,null);let b=S.formula.getReferences();const v=b.length;for(let R=0;R<v;R++){const x=b[R];if(!x||x.isFormulaError||typeof x=="string")continue;const T=x,M=T.colStart,F=T.rowStart,N=T.colEnd,k=T.rowEnd;let U=T.$colStart?M:M+E,O=T.$rowStart?F:F+C,D=T.$colEnd?N:N+I,B=T.$rowEnd?k:k+y;if(M===Number.MIN_SAFE_INTEGER&&(U=s,D=l),F===Number.MIN_SAFE_INTEGER&&(O=i,B=c),U<s||D>l||O<i||B>c){const P=s-U,L=i-O,W=l-D,H=c-B;Yr.colStart=Math.max(E,E+P),Yr.rowStart=Math.max(C,C+L),Yr.colEnd=Math.min(I,I+W),Yr.rowEnd=Math.min(y,y+H);const G=Mr(p,Yr,Ms);if(G){const z=G.length;p=G[z-1],S=p.value,_=S.ref,E=_.colStart,C=_.rowStart,I=_.colEnd,y=_.rowEnd;for(let V=0;V<z-1;V++){const j=G[V];d.push(j),u++}}else S=S.setReferenceAt(R,null),p.value=S,b=S.formula.getReferences()}}d[g++]=p}this._formulaSpatial._updateNodes(d,h.removes),r._mergeNodes({colStart:n.colStart-1,rowStart:n.rowStart-1,colEnd:n.colEnd+1,rowEnd:n.rowEnd+1}),f&&this._spillSpatial._updateNodes(f,[]),this._fullCalcRequired=!0,this._invalidate(d),this._invalidate(h.removes)}_moveCalcs(t,e,n){const r=t._formulaSpatial.createCopiedEntries(e,n);console.log("_moveCalcs",r,"from:",e,"to:",n);const o=this._formulaSpatial,s=(g,m,f,p)=>{let S=g.value;const _=S.formula.getReferences(),E=_.length,C=m.colStart-f.colStart,I=m.rowStart-f.rowStart,y=S.ref,b=f.colStart-y.colStart,v=f.colEnd-y.colEnd,R=f.rowStart-y.rowStart,x=f.rowEnd-y.rowEnd;for(let T=0;T<E;T++){const M=_[T];if(!M||M.isFormulaError||typeof M=="string")continue;const F=M,N=F.colStart,k=F.rowStart,U=F.colEnd,O=F.rowEnd;let D=C,B=I;const P=b<=N&&v>=U||N==Number.MIN_SAFE_INTEGER,L=R<=k&&x>=O||k==Number.MIN_SAFE_INTEGER;let W=!L;F.$colStart||D===0||N===Number.MIN_SAFE_INTEGER?W=!1:W||(W=N<b||N>v,W||!F.$colEnd||F.$colStart||(W=!0));let H=!P;F.$rowStart||B===0||k===Number.MIN_SAFE_INTEGER?H=!1:H||(H=k<R||k>x,W||!F.$rowEnd||F.$rowStart||(H=!0));let G=!L;F.$colEnd||D===0||k===Number.MIN_SAFE_INTEGER?G=!1:G||(G=U<b||U>v,W||!F.$colStart||F.$colEnd||(G=!0));let z=!P;if(F.$rowEnd||B===0||k===Number.MIN_SAFE_INTEGER?z=!1:z||(z=O<R||O>x,z||!F.$rowEnd||F.$rowStart||(z=!0)),!(W||G||H||z))continue;const V={...F};W&&(V.colStart+=D),H&&(V.rowStart+=B),G&&(V.colEnd+=D),z&&(V.rowEnd+=B),S=S.setReferenceAt(T,V)}return g.value=S,g},i=t._spillSpatial;let l=[],c=[];const h=r.inserts,d=h.length;for(let g=0;g<d;g++){const m=h[g];this._createCopySpillEntries(i,e,m,l,c),h[g]=s(m,e,n)}o._updateNodes(r.inserts,[]),t._formulaSpatial._updateNodes([],r.removes);const u=[];l.length>0&&(this._spillSpatial._updateNodes(l,[]),t._spillSpatial._updateNodes([],c),js(this._cycleId,c,w.CommonUtils.EmptyArray,t._contentfulSpatial,i,t._values,u,t._notifyValues,t._notifySpills,t._notifyPending,t._errorSpatial,t._values.getOrientation()!==A.IRange.Orientation.Row,!1)),this._fullCalcRequired=!0,this._invalidate(r.inserts),t._invalidate(u),t._invalidate(r.removes)}getSnapshot(t){const e=this,n=Object.freeze({...t});let r=n.range;return typeof r=="string"&&(r=de(r)),{async copyTo(o,s){const i=o.calcGraph;let l=o.range;typeof l=="string"&&(l=de(l));const c=nl(l,r,s?.fitDestination,s?.transpose);return{...n,...s}.isCut?i._moveCalcs(e,r,c):i._copyCalcs(e,r,c),l},getCoords:()=>r,getSource:()=>e,getName:()=>"Calculation",getMarkOptions:()=>n,isISnapshot:!0}}autoFill(t,e){return typeof t=="string"&&(t=de(t)),typeof e=="string"&&(e=de(e)),this._copyCalcs(this,t,e),this}_scheduleRecalculation(t){const e=this._pendingInvalidations;if(t)if(Array.isArray(t)){const r=t.length;for(let o=0;o<r;o++)e.add(t[o])}else e.add(t);const n=this;w.CommonUtils.debounce(()=>{const r=n._latest.graph,o=r._volatile,s=r._cycleId;e.forEach(i=>{i.cycleId>s||o.add(i)}),e.clear(),r.calculate()},100)()}_notifyCalculated(t){const e=this,n=e._notifyValues,r=n.all();return new Promise(o=>{w.CommonUtils.nextTick(()=>{const s=e._cycleId;let i,l=e._fullCalcRequired;l||(typeof t=="boolean"?l=t:t&&(i=t,l=i.full??!1));const c={};let h=null;const d=r.length;if(d>0){n.clear();let E=r,C=null;for(let T=0;T<d;T++){const M=r[T],F=M.colStart,N=M.colEnd;if(F!==N){C||(C=[]);for(let k=F+1;k<=N;k++)C.push({colStart:k,rowStart:M.rowStart,colEnd:k,rowEnd:M.rowEnd});M.colEnd=F}}C&&(E=r.concat(C)),E.sort(w.CoordUtils.columnFirstRangeComparator);const I=new exports.Tuple.Builder(T=>new ve(T));let y;const b=e._values,v=b.getOrientation()===A.IRange.Orientation.Column,R=E.length;for(let T=0;T<R;T++){const M=E[T];h=w.CoordUtils.unionRanges(h,M,Tt);const F=b.getRuns({bounds:M});let N=F.next();const k=M.colStart,U=M.rowStart,O=M.colEnd,D=M.rowEnd,B=v?U:k,P=v?O:D,L=v?D:O;let W=v?k:U,H=B;for(;!N.done;){const G=N.value,z=G[0];for(;W<z;)y||(y=[]),y.push({colStart:v?W:H,rowStart:v?H:W,colEnd:v?W:L,rowEnd:v?L:W}),W++,H=B;const V=G[1],j=G[2],q=Math.max(V,B),J=Math.min(V+j.length-1,L);I.addValues(z,q,j),H<q&&(y||(y=[]),y.push({colStart:v?z:H,rowStart:v?H:z,colEnd:v?z:q-1,rowEnd:v?q-1:z})),H=J+1,J>=L?(W=z+1,H=B):W=z,N=F.next()}for(;W<=P;)H<=L&&(y||(y=[]),y.push({colStart:v?W:H,rowStart:v?H:W,colEnd:v?W:L,rowEnd:v?L:W})),W++,H=B}const x=I.build();x&&(c.valueInserts=x),y&&(c.valueRemoves=y)}const u=e._notifyPending,g=u.all();if(g.length>0){u.clear();const E=e._pendingSpatial;let C;const I=g.length;for(let y=0;y<I;y++){const b=g[y];E.insertNonOverlapping(b,{onIntersect:(v,R)=>(C||(C=[]),C.push({...R}),h=w.CoordUtils.unionRanges(h,R),R.value===!1&&(R.value=null),R)})}C&&C.length>0&&(c.pendingUpdates=C,h=w.CoordUtils.unionRangesArrays(C,h,Tt))}const m=e._notifySpills,f=m.all();if(f.length>0){m.clear();const E=e._spillSpatial;let C,I,y;const b=f.length;for(let v=0;v<b;v++){const R=f[v],x=R.value;if(x.getCycleId()!==s)C||(C=[]),C.push({colStart:R.colStart,rowStart:R.rowStart,colEnd:R.colEnd,rowEnd:R.rowEnd});else{const T=E.search(R),M=T.length;for(let F=0;F<M;F++){let N=T[F];if(Xg(R.rowStart,R.colStart,N)&&x.getCycleId()===s){I||(I=[],y=new Set);const k=Re(N.colStart)+Oe(N.rowStart);if(y.has(k))continue;y.add(k),I.push({colStart:R.colStart,rowStart:R.rowStart,colEnd:R.colEnd,rowEnd:R.rowEnd,value:N.value.getError()})}}}}I&&(c.spillInserts=I,h=w.CoordUtils.unionRangesArrays(I,h,Tt)),C&&(c.spillRemoves=C,h=w.CoordUtils.unionRangesArrays(C,h,Tt))}const p=e._notifyFormats.all();p.length>0&&(c.formatInserts=p,h=w.CoordUtils.unionRangesArrays(p,h,Tt),e._notifyFormats.clear());const S=e._notifyFormulaInsertEntries;if(S){const E=e._formulaSpatial;for(let C=S.length-1;C>=0;C--){const I=S[C];E.search(I).length===0?S.splice(C,1):h=w.CoordUtils.unionRanges(h,I,Tt)}c.formulaInserts=S,e._notifyFormulaInsertEntries=void 0}const _=e._notifyFormulaRemoveEntries;_&&(c.formulaRemoves=_,h=w.CoordUtils.unionRangesArrays(_,h,Tt),e._notifyFormulaRemoveEntries=void 0),h&&(c.bounds=w.CoordUtils.sanitizeRange(h)),Object.keys(c).length===0?c.cycleId=s-1:(c.cycleId=s,e._cycleId++),l&&(c.isFull=!0),e._fullCalcRequired=!1,e._options.onCalculated?.(c),this._calculation._getCalcingGraphs().delete(e._uuid),o(c)})})}_setInputs(t,e,n){const r=this._formulaSpatial;let o=!r.isEmpty();const s=e?e.length:0,i=this._calculation;if((s>0||o)&&i.getStatus()===exports.ICalculation.Status.Starting)return this._addToPending(()=>{const x=this._setInputs(t,e,n),T={formulaInserts:x.inserts??w.CommonUtils.EmptyArray,formulaRemoves:x.removes??w.CommonUtils.EmptyArray,cycleId:this._cycleId,bounds:w.CoordUtils.unionRanges(w.CoordUtils.unionRangesArrays(x.inserts),w.CoordUtils.unionRangesArrays(x.removes))};return Promise.resolve(T)}),T_;const l=this._values.getOrientation()!==A.IRange.Orientation.Row,c=this._spillSpatial,h=this._errorSpatial,d=this._contentfulSpatial,u=[];let g,m,f=o?[]:null,p=this._values;if(t&&t.tuples){if(g=t.tuples,f){let x=t.bounds;if(o)if(x){const F=bo(x,l);u.push(F)}else{const F={colStart:Number.MIN_SAFE_INTEGER,rowStart:Number.MIN_SAFE_INTEGER,colEnd:Number.MAX_SAFE_INTEGER,rowEnd:Number.MAX_SAFE_INTEGER};u.push(F)}const T={majorStart:0,minorStart:0,majorEnd:0,minorEnd:0},M=g.length;for(let F=0;F<M;F++){const N=g[F],k=N[0];T.majorStart=k,T.majorEnd=k;const U=N[1],O=U.length;for(let D=0;D<O;D++){const B=U[D];T.minorStart=B[0];const P=B[1];T.minorEnd=T.minorStart+P.length-1;const L=bo(T,l);f&&r.search(L).length>0&&f.push(L)}}}m=Nh(t.tuples,l)}(n||g)&&(js(this._cycleId,n?[n]:w.CommonUtils.EmptyArray,m,d,c,p,u,this._notifyValues,this._notifySpills,this._notifyPending,h,l,!1),n&&p.delete(n),g&&p.setValues(g));const S=i._getContext(),_=i._getScope();let E,C;const I=this._getFormulaParser(),y=(x,T)=>{const M=x.rowStart,F=x.colStart,N={...x,value:null};if(r.insertNonOverlapping(N,{noMerge:!0,onIntersect:(k,U)=>k.value===null?null:(C||(C=[]),C.push(k),U)}),T!==null){_.sheetName=this._options.getSheetName?.(),_.rowIndex=M,_.colIndex=F;const k=I.parse(S,T),U=new Ze(x,k),O={...x,value:U};E||(E=[]),E.push(O)}},b=f?f.length:0;for(let x=0;x<b;x++)y(f[x],null);for(let x=0;x<s;x++){const T=e[x],M=T.value;y(w.CoordUtils.sanitizeRange(T),M)}const v=C?C.length:0,R=this._precedentSpatial;for(let x=0;x<v;x++){const T=C[x].value.calcs;if(T){const M=T.length;for(let F=0;F<M;F++){const N=T[F],k=N.length;for(let U=0;U<k;U++){const O=N[U],D=O.dynamic;if(D){const B=D.length;for(let P=0;P<B;P++){const L=D[P];R.remove(L)}O.dynamic=null}}}}}return(E||C)&&(r._updateNodes(E,w.CommonUtils.EmptyArray),js(this._cycleId,C,E,d,c,p,u,this._notifyValues,this._notifySpills,this._notifyPending,h,l,!0),this._invalidate(u)),{inserts:this._notifyFormulaInsertEntries??w.CommonUtils.EmptyArray,removes:this._notifyFormulaRemoveEntries??w.CommonUtils.EmptyArray}}_invalidate(t){if(!t||t.length==0)return;const e=this._invalidations,n=ze(t,A.IRange.Orientation.Column,2);for(let r=0;r<n.length;r++)e.insertNonOverlapping(n[r]);this._calculation._getCalcingGraphs().set(this._uuid,this._latest.graph),this._emitter?.notify("onInvalidate")}_markAndPlan(t,e,n){let r;Xr=0,Aa=0,as=0,Kr=0;const o=this._precedentSpatial,s=this._formulaSpatial;xa=0,is=0;const i=this._cycleId,l=e.length;for(let u=0;u<l;u++){const g=e[u];g.markId!==n&&(g.markId=n,g.cycleId=i,g.inDegree=0,ba[Xr++]=g,va[is++]=g)}const c=(u,g,m)=>{(t||u.state===sl)&&(r||(r=[]),r.push(g),t||m(u))},h=u=>{u.markId!==n&&(u.markId=n,u.cycleId=i,u.inDegree=0,ba[Xr++]=u,va[is++]=u)};for(;xa<is;){const u=va[xa++],g=u.colIndex,m=u.rowIndex;Tt.colStart=g,Tt.rowStart=m,Tt.colEnd=g,Tt.rowEnd=m;const f=o.search(Tt),p=f.length;if(p===0)u.dependents=w.CommonUtils.EmptyArray;else for(let S=0;S<p;S++){const _=f[S],E=_.value.once;E?c(E,_,h):Cd(_,m,g,h)}}for(let u=0;u<Xr;u++){const g=ba[u],m=g.block,f=g.rowIndex,p=g.colIndex,S=m.formula.getDirectPrecedentsAt(f,p);let _=0;const E=g.precedents;for(let C=0;C<S.length;C++){const I=S[C];if(I.isFormulaError){E[C]=I;continue}{const M=I;M.calc=void 0,E[C]=M}const y=I.colStart,b=I.rowStart,v=I.colEnd,R=I.rowEnd,x=s.search(I),T=x.length;for(let M=0;M<T;M++){const F=x[M],N=F.colStart,k=F.rowStart,U=F.colEnd,O=F.rowEnd,D=Math.max(N,y),B=Math.max(k,b),P=Math.min(U,v),L=Math.min(O,R),W=F.value.calcs;for(let H=B;H<=L;H++){const G=W[H-k];for(let z=D;z<=P;z++){const V=G[z-N];V.markId===n&&(I.calc=V,_++)}}}}g.inDegree=_,g.inDegree===0&&(Ra[as++]=g)}const d=u=>{u.markId===n&&(u.inDegree--,u.inDegree===0&&(Ra[as++]=u))};for(;Aa<as;){const u=Ra[Aa++];Ed[Kr++]=u;const g=u.colIndex,m=u.rowIndex;Tt.colStart=g,Tt.rowStart=m,Tt.colEnd=g,Tt.rowEnd=m;const f=o.search(Tt),p=f.length;for(let S=0;S<p;S++){const _=f[S],E=_.value.once;E?c(E,_,d):Cd(_,m,g,d)}}return Kr<Xr?{completed:!1,onces:r}:{completed:!0,onces:r}}_evaluate(t){const e=this._calculation._getContext(),n=this._calculation._getScope();n.sheetName=this._options.getSheetName?.();let r=A_;r.length=0;let o=0,s=!0;const i=this._cycleId,l=this._invalidations,c=this._contentfulSpatial,h=this._notifyValues,d=this._notifySpills,u=this._precedentSpatial,g=this._spillSpatial,m=this._values,f=m.getOrientation(),p=f===A.IRange.Orientation.Column;let S;n.spillSpatial=this._spillSpatial,n.values=m;const _=e.getEntireCoords.bind(e);let E;for(let C=0;C<Kr;C++){const I=Ed[C];if(I.state===kh&&i===I.cycleId){I.state=sl;continue}if(I.dynamic){for(let $=0;$<I.dynamic.length;$++){const tt=I.dynamic[$];u.remove(tt)}I.dynamic=null}const y=I.block,b=I.colIndex,v=I.rowIndex;let R=t?void 0:I.cachedValue,x=I.error;!x&&R&&R.isFormulaError&&(x=R);let T=!1;const M=I.precedents;if(M){const $=M.length,tt=I.inputs;for(let st=0;st<$;st++){const K=M[st],nt=K.calc;if(nt&&nt.pending){T=!0;continue}if(K.isFormulaError){tt[st]=K;continue}const rt=K.colStart,et=K.rowStart,Y=K.colEnd;K.rowEnd!==et||rt!==Y?(o>0&&(r.length=o,yd(r,m,h,p),o=0),tt[st]=new xo(m,null,{...K},null,_)):tt[st]=nt===void 0?K:nt.cachedValue}I.pendingPrecedents=T}const F=p?b:v,N=p?v:b;n.node=I,n.colIndex=b,n.rowIndex=v;const k=y.formula;let U,O;const D=I.pending;let B=D;if((T||I.pendingPromise)&&(B=!0,U=I.cachedValue??null,I.pendingPromise&&(I.pendingResolved?(I.pendingPromise=null,I.pendingResolved=!1,B=!1):(I.pendingPromise.cancelled=!0,U=void 0))),U===void 0&&(n.formula=k,n.colIndex=b,n.rowIndex=v,U=k.evaluate(e,void 0,I.inputs),n.formula=null,O=U&&U.then?U:null,B=!!O),B!==D&&(I.pending=B,S||(S=xn(p)),S.append(F,N,B)),O&&(U=I.cachedValue??null,!O.__originator)){O.__originator=i;const $=I;ss.add($),$.pendingPromise=O,$.pendingResolved=!1,O.then(tt=>{if(ss.delete($),O.cancelled)return;$.pendingPromise=O,$.pendingResolved=!0;let st=No(tt,e);st===null&&(st=0),$.cachedValue=st,this._scheduleRecalculation($)},tt=>{})}let P=1,L=1;const W=R instanceof Zt;let H;const G=R instanceof A.FormulaError.Spill;if(W||G){Jr.colStart=b,Jr.rowStart=v,Jr.colEnd=b,Jr.rowEnd=v;const $=g.search(Jr);for(let tt=0;!H&&tt<$.length;tt++){const st=$[tt];st.colStart===b&&st.rowStart===v&&(H=st)}if(H){if(W){const st=R;P=st.getWidth(),L=st.getHeight()}const tt={colStart:b,rowStart:v,colEnd:b+P-1,rowEnd:v+L-1};g.remove(H),H&&H.value.getError()||(c.insertNonOverlapping({...tt,value:null}),m.delete(tt),h.insertNonOverlapping(tt))}}let z=1,V=1;const j=U,q=j?.isIRange;let J,X=U instanceof A.FormulaError.Spill;if(q&&j.size>1){z=j.getWidth(),V=j.getHeight();const $={colStart:b,rowStart:v,colEnd:b+z-1,rowEnd:v+V-1},tt=e.getEntireCoords(),st=!w.CoordUtils.isRangeWithinRange($,tt);if(st&&($.colEnd=Math.min($.colEnd,tt.colEnd),$.rowEnd=Math.min($.rowEnd,tt.rowEnd)),X=st,!X){const rt=c.search($);if(X=rt.length>1,!X&&rt.length===1){const et=rt[0],Y=w.CoordUtils.intersectRanges($,et,Tt);(Y&&(Y.rowEnd!==Y.rowStart||Y.colStart!==Y.colEnd)||Y.colStart!==b||Y.rowStart!==v)&&(X=!0)}}let K,nt;if(X)U=A.FormulaError.BuiltIn.Spill,z=1,V=1,K=[[F,[[N,[U]]]]],m.setValues(K),nt={colStart:b,rowStart:v,colEnd:b,rowEnd:v};else{const rt=I_(j,F,N);rt&&(K=rt.tuples),K&&m.setValues(K),nt=$}J={...$,value:new jn($,i,X)},g.insert(J),E=gl(E,I,$),h.insertNonOverlapping(nt),l.insertNonOverlapping(nt),c.insertNonOverlapping({...nt,value:new ke(nt,f)})}(!w.CoordUtils.isEqualRanges(H,J)||X||G)&&(H&&d.insert(H),J&&d.insert(J)),z===P&&V===L||(I.state=kh,l.insertNonOverlapping({colStart:b,rowStart:v,colEnd:b+Math.max(z,P)-1,rowEnd:v+Math.max(V,L)-1}),s=!1);let Q=U&&U.isFormulaError?U:null;k.getError()&&(Q=k.getError()),(Q||x&&!t)&&(Q&&!Q.equals(x)||x&&x.equals(Q)),I.cachedValue=U,r[o++]=I}if(n.node=null,n.colIndex=Number.MAX_SAFE_INTEGER,n.rowIndex=Number.MAX_SAFE_INTEGER,S){const C=S.done(!0);this._notifyPending.load(C)}return o>0&&(r.length=o,yd(r,m,h,p),o=0),{completed:s,dynamic:E,count:Kr}}async calculate(t){const e=this._calculation.getStatus();if(e===exports.ICalculation.Status.Starting)return void this._addToPending(()=>this.calculate(t));if(e!==exports.ICalculation.Status.Ready)return;let n=this._fullCalcRequired;n||(typeof t=="boolean"?n=t:t&&(n=t.full??!1));const r=this._invalidations;if(this._formulaSpatial.isEmpty()){if(r.clear(),ss.size>0){const h=++qr;ss.forEach(d=>{d.markId=h})}return this._notifyCalculated(t)}let o=n;const s=this._volatile;let i=++qr,l=this._collectDirties(i,o,r.all(),s);if(r.clear(),s.clear(),!o&&l.length===0)return this._notifyCalculated(t);o&&this._clearCalcs();const c=this._resetScope();for(;l.length>0;){i=++qr;const h=this._markAndPlan(o,l,i).onces;if(h){const u=this._precedentSpatial,g=h.length;for(let m=0;m<g;m++)u.remove(h[m],wd)}l.length=0;const d=this._evaluate(o);if(d.dynamic&&this._precedentSpatial.load(d.dynamic),c.dynamicPrecedentsInserts&&(this._precedentSpatial.load(c.dynamicPrecedentsInserts),c.dynamicPrecedentsInserts=[]),c.conflatingFormats){const u=c.conflatingFormats.done(!0),g=this._notifyFormats;for(let m=0;m<u.length;m++){const f=u[m];g.insertNonOverlapping(f)}c.conflatingFormats=null}d.completed||(o=!1,i=++qr,l=this._collectDirties(i,o,r.all(),s),r.clear())}return this._clearScope(),this._notifyCalculated(t)}_clearScope(){const t=this._calculation._getScope();t&&(t.rowIndex=0,t.colIndex=0,t.node=null,t.values=this._values,t.formulaSpatial=this._formulaSpatial,t.volatile=this._volatile,t.conflatingFormats=null,t.dynamicPrecedentsInserts=null,t.formula=null,t.getEntireCoords=ei)}_resetScope(){const t=this._calculation._getScope();if(t)return t.rowIndex=0,t.colIndex=0,t.node=null,t.values=this._values,t.formulaSpatial=this._formulaSpatial,t.volatile=this._volatile,t.conflatingFormats=null,t.dynamicPrecedentsInserts=null,t.formula=null,t.getEntireCoords=this._getEntireCoords,t}_clearCalcs(){const t=this._values,e=this._spillSpatial,n=this._contentfulSpatial,r=e.all();for(let o=0;o<r.length;o++){const s=r[o];s.value.getError()||(t.delete(s),n.insertNonOverlapping({...s,value:null}))}e.clear(),this._errorSpatial.clear(),this._pendingSpatial.clear(),this._volatile.clear(),this._clearNotifications()}_clearNotifications(){this._invalidations.clear(),this._notifyValues.clear(),this._notifySpills.clear(),this._notifyFormats.clear(),this._notifyPending.clear()}_clearAll(){this._cycleId!==1&&this._cycleId++,qr++,this._formulaSpatial.clear(),this._contentfulSpatial.clear(),this._pendingInvalidations.clear(),this._values.clear(),this._precedentSpatial.clear(),this._volatile.clear(),this._spillSpatial.clear(),this._errorSpatial.clear(),this._pendingSpatial.clear(),this._clearNotifications(),this._notifyFormulaInsertEntries=void 0,this._notifyFormulaRemoveEntries=void 0}_addToPending(t){this._calculation._getCalcingGraphs().set(this._uuid,this._latest.graph);let e=this._pendingActions;if(!e){this._pendingActions=e=[];const n=this;n._calculation.addListeners({onReady:()=>{(async()=>{const r=n._pendingActions,o=r.length;for(let s=0;s<o;s++){const i=r[s],l=await i.bind(n)();n._options.onCalculated?.(l)}this._pendingActions=null})()},onError:()=>{}},F_)}e.push(t)}fromJSON(t){const e=this._calculation.getStatus();if(e===exports.ICalculation.Status.Starting)return void this._addToPending(()=>Promise.resolve(this.fromJSON(t)));if(e!==exports.ICalculation.Status.Ready)return;this._clearAll();const n={cycleId:0,isFull:!0};if(!t)return n;this._isProcessingJSON=!0;try{if(t.data){const s=t.data;this._values.setValues(s);const i=this._values.getOrientation()===A.IRange.Orientation.Column,l=Nh(s,i);this._contentfulSpatial.load(l)}const r=this._formulaSpatial,o=t.formulas;if(o){const s=t.dynamic,i=new Set;if(s){const S=s.length;for(let _=0;_<S;_++){const E=s[_],C=E[0].split(":")[0];i.add(C)}}const l=o.length,c=new Array(l),h=[],d=[],u=this._calculation._getContext(),g=this._calculation._getScope();g.colIndex=0,g.rowIndex=0;const m=this._getFormulaParser();for(let S=0;S<l;S++){const _=o[S],E=_[0],C=de(E),I=_[1],y=C.rowStart,b=C.colStart;g.colIndex=b,g.rowIndex=y;let v=m.parse(u,I);const R=v.getDirectPrecedentsAt(y,b,!0,rs,os),x=R.length;x===1&&(v=v.wrapImplicit(y,b,i));const T={...C},M=new Ze(T,v);C.value=M,c[S]=C;const F=C.rowEnd,N=C.colEnd-b,k=F-y,U=[];for(let O=0;O<x;O++){const D=R[O];if(D instanceof A.FormulaError.Known)continue;const B=rs[O],P=os[O],L={colStart:D.colStart,rowStart:D.rowStart,colEnd:D.colEnd+(P?0:N),rowEnd:D.rowEnd+(B?0:k),value:{blockEntry:C,width:N+1,height:k+1,index:O,$absWidth:P,$absHeight:B,once:null}};U.push(D),d.push(L)}h.push({colStart:T.colStart,rowStart:T.rowStart,colEnd:T.colEnd,rowEnd:T.rowEnd,value:{tokens:v.getTokens(),references:v.getReferences(),precedents:U}})}if(r.load(c),this._precedentSpatial.load(d),h.length>0&&(n.formulaInserts=h),s){const S=[],_=[];let E;const C=this._values,I=s.length;for(let y=0;y<I;y++){const b=s[y],v=b[0],R=de(v),x=b[1],T={...R},M=T.colStart,F=T.rowStart,N=T.colEnd,k=T.rowEnd;ur.colStart=M,ur.rowStart=F,ur.colEnd=M,ur.rowEnd=F;const U=r.search(ur);if(U.length!==1)continue;const O=U[0].value,D=O.ref,B=O.calcs,P=F-D.rowStart,L=M-D.colStart,W=B[P][L];if(x)W.cachedValue=A.FormulaError.BuiltIn.Spill;else{const G=new Zt(C,T);W.cachedValue=G}R.value=new jn(T,0,x),_.push(R);const H={colStart:M,rowStart:F,colEnd:N,rowEnd:k,value:x};w.CoordUtils.isSingleCell(H)||S.push(H),gl(E,W,T)}this._spillSpatial.load(_),this._precedentSpatial.load(E),S.length>0&&(n.spillInserts=S)}const f=t.volatile,p=f?f.length:0;if(p>0){const S=this._volatile,_=E=>{S.add(E)};for(let E=0;E<p;E++){const C=f[E],I=de(C,ur),y=r.search(I),b=y.length;for(let v=0;v<b;v++){const R=y[v];b_(R,I,_)}}}}}catch(r){throw r}finally{this._isProcessingJSON=!1}return n}async toJSON(t=!1){const e=this._formulaSpatial.all(),n=e.length;if(n===0)return null;const r={};if(n>0){const l=new Array(n);for(let c=0;c<n;c++){const h=e[c];l[c]=h.value.toJSON()}r.formulas=l}const o=this._spillSpatial.all(),s=o.length;if(s>0){const l=this._getEntireCoords(),c=new Array(s);for(let h=0;h<s;h++){const d=o[h],u=cn(d,l);c[h]=[u,d.value.getError()]}r.dynamic=c}const i=this._volatile;if(i.size>0){const l=i.values();let c=l.next();const h=this._values.getOrientation()===A.IRange.Orientation.Column,d=xn(!0);for(;!c.done;){const f=c.value;if(Array.isArray(f))for(let p=0;p<f.length;p++){const S=f[p];for(let _=0;_<S.length;_++){const E=S[_],C=E.colIndex,I=E.rowIndex,y=h?C:I,b=h?I:C;d.append(y,b)}}else{const p=f.colIndex,S=f.rowIndex,_=h?p:S,E=h?S:p;d.append(_,E)}c=l.next()}const u=d.done(!0),g=u.length,m=new Array(g);for(let f=0;f<g;f++){const p=u[f],S=cn(p,this._getEntireCoords());m[f]=S}r.volatile=m}return r}}const yd=(a,t,e,n)=>{const r=new exports.Tuple.Builder(x_),o=xn(n);a.sort(n?w.CoordUtils.columnFirstCellComparator:w.CoordUtils.rowFirstCellComparator);const s=a.length;for(let c=0;c<s;c++){const h=a[c],d=h.colIndex,u=h.rowIndex;if(!h.cachedValue?.isIRange){const m=n?d:u,f=n?u:d;let p=h.cachedValue;r.addValue(m,f,p),o.append(m,f)}}const i=r.build();i&&i.tuples&&t.setValues(i.tuples);const l=o.done(!0);for(let c=0;c<l.length;c++){const h=l[c];e.insertNonOverlapping(h)}},b_=(a,t,e)=>{const n=a.colStart,r=a.rowStart,o=a.colEnd,s=a.rowEnd,i=t.colStart,l=t.rowStart,c=t.colEnd,h=t.rowEnd,d=Math.max(n,i),u=Math.max(r,l),g=Math.min(o,c),m=Math.min(s,h),f=a.value.calcs;for(let p=u;p<=m;p++){const S=p-r,_=f[S];for(let E=d;E<=g;E++){const C=E-n;e(_[C],S,C)}}},Cd=(a,t,e,n)=>{const r=a.value,o=r.$absHeight,s=r.$absWidth,i=r.width,l=r.height,c=r.blockEntry.value.calcs,h=e-a.colStart,d=t-a.rowStart,u=Math.min(Math.max(h,0),i-1),g=Math.min(Math.max(d,0),l-1);if(o||s)if(s){const m=c[g];for(let f=0;f<i;f++)n(m[f])}else if(o)for(let m=0;m<l;m++)n(c[m][u]);else for(let m=0;m<l;m++){const f=c[m];for(let p=0;p<i;p++)n(f[p])}else n(c[g][u])},v_={rowIndex:0,colIndex:0},Tt={rowStart:0,colStart:0,rowEnd:0,colEnd:0},rs=[],os=[],ur={rowStart:0,colStart:0,rowEnd:0,colEnd:0},Jr={rowStart:0,colStart:0,rowEnd:0,colEnd:0};new A.FormulaError.Calc("Cyclical dependency");const x_=a=>new ve(a);let qr=0;const Kn=1e4,R_=new Array(Kn),A_=new Array(Kn),ss=new Set,ba=new Array(Kn);let Xr=0;const va=new Array(Kn);let xa=0,is=0;const Ra=new Array(Kn);let Aa=0,as=0;const Ed=new Array(Kn);let Kr=0;const Id=new Array(Kn),Yr={colStart:0,rowStart:0,colEnd:0,rowEnd:0},Qr={colStart:0,rowStart:0,colEnd:0,rowEnd:0},Ta=[null,null],T_=Object.freeze({inserts:w.CommonUtils.EmptyArray,removes:w.CommonUtils.EmptyArray});function M_(a,t,e,n){const r=a;if(r?.getSplit){const o=r.getSplit(t,e,n);if(o===void 0)return;t[0].value=o[0],t[1].value=o[1]}return t}const F_=Object.freeze({once:!0});class N_{constructor(t,e=!0){this._options={...B_,...t},this._getFunction=this._options.getFunction,this._isColumn=e}_setInstanceScope(t){this._instanceScope=t}async _initialize(){const t=await wl._validate(!0),e=O_();this._calcScope=e,this._runtime=new k_(this._options,t);const{initializeBuiltIns:n}=await Promise.resolve().then(()=>require("./BG_oucq-hFgpN3c_.cjs")),r=this;return this._builtInFunctions=Object.freeze(n(()=>r)),{builtInFunctions:this._builtInFunctions,calcScope:this._calcScope}}getBuiltInFunctions(){return this._builtInFunctions}getFunction(t){return this._builtInFunctions.get(t)??this._getFunction?.(t)}getNumberFormat(t,e){return exports.NumberFormat.Parser.formatValue(t,e,{date1904:this._options.isDate1904?.()??!1})}getEntireCoords(){return this._calcScope.getEntireCoords()}getFormulaAt(t,e){const n=this._calcScope.formulaSpatial;if(!n)return null;Zr.colStart=e,Zr.rowStart=t,Zr.colEnd=e,Zr.rowEnd=t;const r=n.search(Zr);return r.length===0?null:r[0].value.formula.getTextAt(t,e)??null}markVolatile(){const t=this._calcScope,e=t.volatile;e&&e.add(t.node)}formatResults(t){const e=this._calcScope,n=this._isColumn,r=n?e.colIndex:e.rowIndex,o=n?e.rowIndex:e.colIndex;e.conflatingFormats||(e.conflatingFormats=xn(n)),e.conflatingFormats.append(r,o,t)}getSheetIndex(t){const e=this._calcScope;return t===void 0&&(t=e.sheetName),this._options.getSheetIndex?.(t)??-1}getSheetCount(){return this._options.getSheetCount?.()??1}isValidDate(t){return kr(t)}fromOADate(t){return Or(t,this._options.isDate1904?.()??!1)}toOADate(t){return Ao(t,this._options.isDate1904?.()??!1)}_fromTuples(t,e=null,n=!1){if(!t)return null;const r=bo(t.bounds,!0),o=this._calcScope,s=this._isColumn?A.IRange.Orientation.Column:A.IRange.Orientation.Row,i=new He({orientation:s,maxCoords:o.getEntireCoords()});return i.setValues(t.tuples),new Zt(i,r,e,n)}getValueAt(t,e){return this._calcScope.values.getValueAt(t,e)??null}getSpillAt(t,e){const n=this._calcScope.spillSpatial;if(!n)return null;to.rowStart=t,to.colStart=e,to.rowEnd=t,to.colEnd=e;const r=n.search(to);if(r.length===0)return null;for(let o=0;o<r.length;o++){const s=r[o];if(s.rowStart===t&&s.colStart===e)return this.getReference(w.CoordUtils.sanitizeRange(s))}return null}getRange(t,e){if(t?.isIRange)return t;let n;const r=Array.isArray(t);if(e=e??r,r)if(Array.isArray(t[0]))n=t;else{if(t[0]?.isIRange)throw A.FormulaError.BuiltIn.Value;n=[t]}else n=[[t]];const o=this._isColumn,s=o?A.IRange.Orientation.Column:A.IRange.Orientation.Row,i=this._fromTuples(Zs(n,o,ge(0,0,void 0,void 0,o),!0),void 0,e);if(i)return i;const l=new He({orientation:s,maxCoords:this._calcScope.getEntireCoords()});return new Zt(l,w.CoordUtils.EmptyRange,void 0,e)}getPosition(){const t=this._calcScope;return{colIndex:t.colIndex,rowIndex:t.rowIndex}}getReference(t,e){if(!t)throw A.FormulaError.BuiltIn.Ref;const n=this._calcScope,r=n.getEntireCoords;if(typeof t=="string"){if(e)throw A.FormulaError.BuiltIn.Ref;try{const c=wi(t,r(),Oo,()=>{throw A.FormulaError.BuiltIn.Ref},e);if(c.length>1)throw A.FormulaError.BuiltIn.Ref;t=c[0]}catch{throw A.FormulaError.BuiltIn.Ref}}if(!t)throw A.FormulaError.BuiltIn.Ref;const o=n.values;let s;const i=n.node;let l;if(i){const c=i.precedents;l=D_(c,t)}if(l){const c=l.calc;s=c&&c.isIReferenceRange?c.cachedValue:new xo(o,void 0,t,null,r)}else n.dynamicPrecedentsInserts=gl(n.dynamicPrecedentsInserts,i,t),s=new xo(o,void 0,t,null,r);return s}getAddress(t,e=!1){t||(t=this.getPosition());const n=this.getEntireCoords().sheetName;return t.colIndex!==void 0?((r,o,s=!1)=>s?Us(r,o):la(r,o))(t,n,e):((r,o,s=!1)=>(s?Us({colIndex:r.colStart,rowIndex:r.rowStart,$colIndex:r.$colStart,$rowIndex:r.$rowStart,sheetName:r.sheetName},o):la({colIndex:r.colStart,rowIndex:r.rowStart,$colIndex:r.$colStart,$rowIndex:r.$rowStart,sheetName:r.sheetName},o))+":"+(s?Us({colIndex:r.colEnd,rowIndex:r.rowEnd,$colIndex:r.$colEnd,$rowIndex:r.$rowEnd},null):la({colIndex:r.colEnd,rowIndex:r.rowEnd,$colIndex:r.$colEnd,$rowIndex:r.$rowEnd},null)))(t,n,e)}parseAsDateTime(t,e=!1){return(function(n,r=!1,o=!1){let s=n,i=Mu(n,r,!0);i&&(s=i.leadingText);let l=null;if(s.trim().length>0&&(l=Il(s,r),!l&&o))return null;!l&&i?.leadingText.trim().length>0&&(i=null);let c=0;return l&&(c+=l.asOADate),i&&(c+=i.parsed.oaDateTime),c})(t,this._options.isDate1904?.()??!1,e)}getRuntime(){return this._runtime}get[Symbol.toStringTag](){return"[CalculationContext]"}toString(){let t="";const e=this._instanceScope;let n;return e&&(n=e.toString?.()),n&&n&&(t=`${t}:[${n}]`),t}}class k_{constructor(t,e){this._options=t,this._license=e}getCurrencySymbol(){return"$"}getNumberDecimalSeparator(){return"."}getNumberGroupSeparator(){return","}isDate1904(){return this._options.isDate1904?.()??!1}getDescription(){return"Calculation Runtime"}getLocation(){return w.CommonUtils.isNode()?process.cwd():window.location?.href??"/"}getVersion(){try{const t="0.7.22";if(t.indexOf(".env.")===-1)return`${t}`}catch{return"local"}}getOS(){return w.CommonUtils.getOS()}getUser(){return this._license?.getLicensee?.()??null}}const O_=()=>({rowIndex:0,colIndex:0,sheetName:null,node:null,values:null,formulaSpatial:null,spillSpatial:null,volatile:null,conflatingFormats:null,dynamicPrecedentsInserts:null,formula:null,getEntireCoords:()=>Fo}),B_={getSheetIndex:a=>-1,getSheetCount:()=>1,getSheetName:()=>null,getEntireCoords:()=>Fo,getNamed:(a,t)=>null,getFunction:a=>null,isDate1904:()=>!1},D_=(a,t)=>{if(!a)return;const e=a.length;if(e===0)return;const n=t.colStart,r=t.rowStart,o=t.colEnd,s=t.rowEnd;for(let i=0;i<e;i++){const l=a[i],c=l;if(c!==void 0&&l.colStart===n&&l.rowStart===r&&l.colEnd===o&&l.rowEnd===s)return c}return null},Zr={rowStart:0,colStart:0,rowEnd:0,colEnd:0},to={rowStart:0,colStart:0,rowEnd:0,colEnd:0};class L_{_setScope(t){this._scope=t}_getScope(t=!1){const e=this._scope;if(!e&&!t)throw new Error("FunctionContext can only be used in a function.");return e}getNumberFormat(t,e){return this._getScope().getNumberFormat(t,e)}getEntireCoords(){return this._getScope().getEntireCoords()??Fo}isValidDate(t){return this._getScope().isValidDate(t)}parseAsDateTime(t,e){return this._getScope().parseAsDateTime(t,e)}fromOADate(t){return this._getScope().fromOADate(t)}toOADate(t){return this._getScope().toOADate(t)}getRange(t){return this._getScope().getRange(t)}getValueAt(t,e){return this._getScope().getValueAt(t,e)}getPosition(){return this._getScope().getPosition?.()??a0}getReference(t,e){return this._getScope().getReference(t,e)}getFormulaAt(t,e){return this._getScope().getFormulaAt?.(t,e)??null}getSpillAt(t,e){return this._getScope().getSpillAt?.(t,e)??null}getSheetIndex(t){return this._getScope().getSheetIndex?.(t)??-1}getSheetCount(){return this._getScope().getSheetCount?.()??1}markVolatile(){this._getScope().markVolatile?.()}formatResults(t){this._getScope().formatResults?.(t)}getFunction(t){return this._getScope().getFunction?.(t)??null}getAddress(t,e){return this._getScope().getAddress(t,e)}getRuntime(){return this._getScope().getRuntime()}get[Symbol.toStringTag](){return"[FormulaContext]"}toString(){const t=this._getScope();if(t){const e=t.toString?.();if(e)return e}return t?"":"{NO SCOPE}"}}const Kg=new L_,ii="__SHEETXL";let Wn;const bd={FormulaContext:Wn,ScalarType:A.ScalarType,IRange:A.IRange,FormulaError:A.FormulaError,Observable:A.Observable};let Gs;function zl(a){Wn||(Wn=Kg,bd.FormulaContext=Wn),Gs=globalThis[ii],globalThis[ii]=bd,Wn._setScope(a)}function ai(){Gs?(globalThis[ii]=Gs,Gs=void 0):delete globalThis[ii],Wn&&Wn._setScope(null)}var on;(on||(on={})).Context={Workbook:"workbook",Sheet:"sheet",Ranges:"ranges",Range:"range",Calculation:"calculation"};class Ro{constructor(t,e,n,r=null,o=!1){this._ct=on.Context.Calculation,this._builtIn=!1,this._broadcast=!1,this._pj=null,this._json=t,this._n=t.name,this._d=new W_(t),this._ct=t.context??on.Context.Calculation;const s=t.parameters;let i;this._pj=s,e||(console.log(`TypeFunction '${t.name}' was not provided a function implementation.`),e=()=>{}),this._fn=e.bind(this),this._cf=n??z_,this._builtIn=o,i=r?typeof r=="function"?r:()=>Promise.resolve(r):U_(t),this._descFn=i;const l=s?.length??0;let c=l===1||l===2;c&&(s[0].arrayDepth>0||s[0].range)&&(c=!1),c&&l===2&&(s[1].arrayDepth>0||s[1].range)&&(c=!1),this._broadcast=c}execute(...t){const e=this._pj,n=[],r=this._cf?.();zl(r);let o=!1,s=null;const i=e?.length??0;let l,c=this._broadcast;if(c){const h=Rh(t[0]);if(i===1&&h)c=!1;else if(i===2){const d=Rh(t[1]);h&&d&&(c=!1)}}try{for(let d=0;!o&&d<i;d++){const u=e[d];let g=u.scalar??null;g!==A.ScalarType.Null&&g!=="*"||(g=null);let m=u.range??null;const f=u.rest??!1,p=u.optional??!1;let S=t[d];if(p&&S===null&&(S=void 0),S===void 0){if(p){n.push(void 0);continue}if(!p&&!f)throw d<=t.length?xd.ARGS_TOO_FEW([u.name],this._n):xd.PARAM_MISSING(u.name,this._n);if(d>=t.length){o=!0;continue}}const _=u.arrayDepth??0;let E=(u.range?2:0)+_;const C=u.rest??!1;if(C)for(;d<t.length&&!s;)S!==void 0&&(s=ml(r,n,S,g,m,_,C,E)),S=t[++d];else c&&(m="l",E=2),s=ml(r,n,S,g,m,_,C,E),o=!!s}if(s)throw s;for(;n.length>0&&n[n.length-1]===void 0;)n.length--;const h=this._fn;if(c){if(n.length===1){const d=n[0];let u=e[0].scalar;u!==A.ScalarType.Null&&u!=="*"||(u=null),l=d.map(g=>{if(g instanceof A.FormulaError.Known)return g;let m=g;try{m=h(m),(Array.isArray(m)||m?.isIRange)&&(m=A.FormulaError.BuiltIn.Value)}catch(f){m=f}return m},{type:u})}if(n.length===2){const d=n[0];let u=e[0].scalar;u!==A.ScalarType.Null&&u!=="*"||(u=null);const g=n[1];let m=e[1].scalar;m!==A.ScalarType.Null&&m!=="*"||(m=null),l=d.broadcast(g,(f,p)=>{if(f instanceof A.FormulaError.Known)return f;if(p instanceof A.FormulaError.Known)return p;let S;try{S=h(f,p),(Array.isArray(S)||S?.isIRange)&&(S=A.FormulaError.BuiltIn.Value)}catch(_){S=_}return S},{type:u,otherType:m})}}else l=h(...n);l=No(l,r)}catch(h){throw h}finally{ai()}return l}getName(){return this._n}getDeclaration(){return this._d}async getDescriptor(t){if(this._desc)return this._desc;const e=await Promise.resolve(this._descFn(t));return this._desc=new H_(this,e),this._desc}isBuiltIn(){return this._builtIn}getContext(){const t=this._ct;if(t==="sheet"||t==="workbook"||t==="ranges"||t==="range"){const e=this._json;return e&&e.behavior&&e.behavior.default?"autoRun":"macro"}return"formula"}get[Symbol.toStringTag](){return"[TypedFunction]"}toString(){let t="";const e=this._pj;return e.length>0&&(t=e.map(n=>{let r=n.name;return n.rest&&(r="..."+r),n.optional&&(r+="?"),r+=": "+((o,s)=>{if(s){const i=l0.get(s)??"InvalidRange";return o?`${i}<${xh.get(o)??"InvalidScalar"}>`:i}return xh.get(o)??"InvalidScalar"})(n.scalar,n.range),r+="[]".repeat(n.arrayDepth),r}).join(", ")),`${this.getName()}(${t})`}get isIFunction(){return!0}get isITypedFunction(){return!0}}const U_=a=>async t=>{const e={};for(let n=0;n<a.parameters.length;n++)e[a.parameters[n].name]=w.CommonUtils.camelToPrettyCase(a.parameters[n].description);return{summary:w.CommonUtils.camelToPrettyCase(a.name),parameters:e,category:"User Defined"}},z_=()=>null;class Yg{constructor(t){this._s=t.scalar,this._r=t.range??null,this._d=t.arrayDepth??0}getScalarType(){return this._s}getRangeType(){return this._r}getArrayDepth(){return this._d}}class P_ extends Yg{constructor(t){super(t),this._n=t.name,this._o=t.optional??!1,this._rest=t.rest??!1,this._e=t.enums?Object.freeze(t.enums):w.CommonUtils.EmptyArray}getName(){return this._n}isOptional(){return this._o}isRest(){return this._rest}getEnums(){return this._e}}class vd extends Yg{constructor(t){super(t),this._a=t.async??!1,this._stream=t.stream??!1}isAsync(){return this._a}isStreaming(){return this._stream}}class W_{constructor(t){if(this._n=t.name,t.parameters){const e=t.parameters.length,n=new Array(e);for(let r=0;r<e;r++)n[r]=new P_(t.parameters[r]);this._p=Object.freeze(n)}else this._p=w.CommonUtils.EmptyArray;t.returnType?this._r=new vd(t.returnType):this._r=new vd({scalar:null,arrayDepth:0,range:null})}getName(){return this._n}getParameters(){return this._p}getReturnType(){return this._r}}class H_{constructor(t,e){if(this._n=e.name,this._fn=t,this._s=e.summary??w.CommonUtils.camelToPrettyCase(e.name),this._c=e.category??"Uncategorized",this._h=e.hidden??!1,e.links&&e.links.length>0){const n=e.links.length,r=new Array(n);for(let o=0;o<n;o++)r[o]=Object.freeze([e.links[o][0],e.links[o][1]]);this._l=Object.freeze(r)}else this._l=w.CommonUtils.EmptyArray;if(e.parameters){for(const n in e.parameters)if(Object.prototype.hasOwnProperty.call(e.parameters,n)){const r=e.parameters[n].description,o=e.parameters[n].example,s=e.parameters[n].defaultValue,i={};r&&(i.description=r),o&&(i.example=o),s!==void 0&&(i.defaultValue=s),Object.freeze(i)}}}getName(){return this._n}getSummary(){return this._s}getCategory(){return this._c}isHidden(){return this._h}getLinks(){return this._l}getParameters(){return this._p}get[Symbol.toStringTag](){return"[Descriptor]"}toString(){const t=this._fn;return`${this.getSummary()}: ${t}`}}const ml=(a,t,e,n,r,o,s,i)=>{if(e&&e.colStart!==void 0)if(r)e=a.getReference?.(e);else{const l=e.colStart,c=e.rowStart,h=e.colEnd;e=e.rowEnd!==c||l!==h?a.getReference?.(e):a.getValueAt(c,l)}if(i===0){let l=((c,h=null,d=!1)=>{let u=c;for(;Array.isArray(u);){if(u.length>1)return d?A.FormulaError.BuiltIn.Value:u;u=u[0]}if(u?.isIRange){if(u.size!==1)return d?A.FormulaError.BuiltIn.Value:u;u=u.getValueAt(0,0)}return h&&(u=be(u,qt(u,!0),h)),u})(e,n,!0);return l instanceof A.FormulaError.Known?l:void t.push(l)}if(i===2)return Gr(a,t,e,n,r,Array.isArray(e));if(i===1||i===3){let l;const c=s?t:[];if(r){const h=Array.isArray(e);if(h){const d=e.length;for(let u=0;!l&&u<d;u++)l=Gr(a,c,e[u],n,r,h)}else l=Gr(a,c,e,n,r,h)}else if(i===3){let h=(d=>{let u=d,g=0;for(;Array.isArray(u);)g++,u=u[0];return u.isIRange&&(g+=2),g})(e);for(let d=h;d<2;d++)e=[e],h++;if(h===3){const d=e.length;for(let u=0;!l&&u<d;u++)l=Gr(a,c,e[u],n,r,!0)}else l=Gr(a,c,e,n,r,!0)}else l=mg(a,c,e,n,r,r!==null);return l?.isFormulaError?l:void(s||t.push(c))}{if(!Array.isArray(e)){if(n&&(e=be(e,qt(e,!0),n,!1),e?.isFormulaError))return t.push(e),e;e=[e]}const l=e.length;for(let c=0;c<l;c++){const h=[],d=ml(a,h,e[c],n,r,o,s,i-1);if(d?.isFormulaError)return d;h.length>0&&t.push(h)}}},xd={PARAM_MISSING:(a,t)=>new A.FormulaError.NA(`Parameter ${a} is missing${t?` for ${t}`:""}.`),ARGS_TOO_FEW:(a,t)=>new A.FormulaError.Parse(`Argument type ${a.join(", ")} is missing${t?` for ${t}`:""}.`)};class Qg{constructor(t){this._emitter=null,this._readonly=null,this._closed=!1,this._options={...t};const e=this;this._transactions=this._options.transactions??new xe({transient:!0}),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(n,r,o){e._emitter.notify("onCollectionChange")}}),this._emitter=new Xt(this,this._transactions),this._readonly=t?.readonlyFunctions,this._initState()}getItems(t){const e=this._getState();if(!e)return w.CommonUtils.EmptyArray;const n=Array.from(e.itemsByKey.values()),r=this._readonly;return r&&n.push(...Array.from(r.values())),n}getByName(t){if(!t)return null;const e=this._getState();if(!e)return null;if(!e)return w.CommonUtils.EmptyArray;const n=t.toUpperCase(),r=this._readonly;if(!r||!r.size)return null;let o=r.get(n);return o||(o=e.itemsByKey.get(n),o||null)}async search(t){const e=this._getState();if(!e)return w.CommonUtils.EmptyArray;const n=t?.name?t.name.toUpperCase():null,r=t?.type?t.type:null;let o;const s=t?.category?t.category.toUpperCase():null,i=t?.text?t.text.toUpperCase():null,l=!!s||!!i;let c;const h=async(u,g)=>{if(n&&g!==n||r&&u.getContext()!==r)return!1;if(l){c||(c=[]);const m=u.getDescriptor();c.push(m);const f=await m;if(i&&!f.getSummary().toUpperCase().includes(i)||s&&f.getCategory().toUpperCase()!==s)return!1}o||(o=[]),o.push(u)},d=this._readonly;return d&&d.forEach(h),e.itemsByKey.forEach(h),c&&await Promise.all(c),o??w.CommonUtils.EmptyArray}getCount(){const t=this._getState();if(!t)return 0;let e=t.itemsByKey.size;return this._readonly&&(e+=this._readonly.size),e}validateName(t){return this._validateName(t)}_validateName(t,e=!1){if(this._closed)throw new Error(Ee)}add(t){if(this._closed)throw new Error(Ee);if(!t)throw new Error("Item must be specified.");let e;if(t.isIFunction){const o=t,s=t._json;e=new Ro(s,o._fn,()=>this._options.context,o._desc)}else{const o=t;e=new Ro(o.declaration,o.execute,()=>this._options.context,o.descriptor)}const n=this._getState(),r=e.getName().toUpperCase();return n.itemsByKey.set(r,e),e}beginCommit(t){return this._beginCommit(t)}_getState(){if(this._closed)throw new Error(Ee);return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(typeof t=="string"?{description:t}:t)}_updateState(t,e="Update",n){if(!t)return;const r=this._beginCommit(e);try{r.updateState(this,t),r.commit(n)}catch(o){throw r.rollback(),o}}_initState(){this._updateState(t=>({...t,itemsByKey:new Map}),"Initialize",{forceAmend:!0})}addListeners(t,e){return this._emitter.addListeners(t,e)}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify("onClose"),this._closed=!0,this._transactionsRemoveListener?.())}get isFunctionCollection(){return!0}}class Pl extends Xn{constructor(t){super(t),this._graphsCalcing=new Map,this._graphsAll=new Map,this._status=exports.ICalculation.Status.Off,this._statusTransition=null,this._emitter=new Xt(this)}_getContext(){return this._context}_getScope(){return this._scope}_getCalcingGraphs(){return this._graphsCalcing}_getAllGraphs(){return this._graphsAll}start(){return this._statusTransition||(this._statusTransition=(async()=>{if(this._status===exports.ICalculation.Status.Off)try{this._status=exports.ICalculation.Status.Starting,this._emitter.notify("onStatusChange"),this._emitter.notify("onStarting");const t=this,e=this._options,n=l=>t.getFunctions().getByName(l)??e?.getFunction?.(l),r=new N_({...e,getFunction:n});this._context=r;const o=await r._initialize(),s=o.builtInFunctions;this._functions=new Qg({transactions:this._transactions,context:r,readonlyFunctions:s});const i=await Promise.resolve().then(()=>require("./DWBmsvMLywwdyxBk.cjs"));this._formulaParser=new i.FormulaParser,this._scope=o.calcScope,this._status=exports.ICalculation.Status.Ready,this._emitter.notify("onStatusChange"),this._emitter.notify("onReady")}catch(t){throw this._status=exports.ICalculation.Status.Off,this._emitter.notify("onError",t),this._emitter.notify("onStatusChange"),t}finally{this._statusTransition=null}})()),this._statusTransition}_createGraph(t){const e=this._options;return new Ul({...e,...t,getFormulaParser:()=>this._formulaParser,calculation:this})}async stop(){this._status===exports.ICalculation.Status.Ready&&(this._status=exports.ICalculation.Status.Stopping,this._emitter.notify("onStatusChange"),this._emitter.notify("onStopping"),this._status=exports.ICalculation.Status.Off,this._emitter.notify("onStatusChange"),this._emitter.notify("onStop"))}getStatus(){return this._status}async calculate(t){this._status===exports.ICalculation.Status.Starting&&await this._statusTransition;const e=t?.full??!1?this._getAllGraphs():this._getCalcingGraphs();if(e.size===0)return Rd;const n=e.values(),r=[];for(const o of n)r.push(o.calculate(t));return await Promise.all(r),Rd}getFunctions(){return this._checkReady(),this._functions}getRuntime(){return this._checkReady(),this._runtime}_checkReady(){if(this._status!==exports.ICalculation.Status.Ready)throw new Error(this._statusMessage())}_statusMessage(){switch(this._status){case exports.ICalculation.Status.Off:return"Calculation is off";case exports.ICalculation.Status.Starting:return"Calculation is starting";case exports.ICalculation.Status.Ready:return"Calculation is ready";default:return"Unknown calculation status"}}get[Symbol.toStringTag](){return"[Calculation]"}toString(){return"Calculation"}}const Rd=Promise.resolve();exports.ICellRange=void 0,exports.ICellRange||(exports.ICellRange={}),exports.ICellHeaderRange=void 0,exports.ICellHeaderRange||(exports.ICellHeaderRange={});const V_=Object.freeze(Object.defineProperty({__proto__:null,nowWithPrecision:(a=6e4)=>new Date(Math.floor(Date.now()/a)*a)},Symbol.toStringTag,{value:"Module"}));var ls,cs;exports.IMovable=void 0,exports.IMovable||(exports.IMovable={}),exports.IAutoFilter=void 0,(ls=exports.IAutoFilter||(exports.IAutoFilter={})).NumberFilterOperatorType={Equal:"equal",GreaterThan:"greaterThan",GreaterThanOrEqual:"greaterThanOrEqual",LessThan:"lessThan",LessThanOrEqual:"lessThanOrEqual",NotEqual:"notEqual"},ls.Type={Color:"color",Custom:"custom",Dynamic:"dynamic",Items:"items",Icon:"icon",Top10:"top10"},ls.DynamicType={AboveAverage:"aboveAverage",BelowAverage:"belowAverage",LastMonth:"lastMonth",LastQuarter:"lastQuarter",LastWeek:"lastWeek",LastYear:"lastYear",M1:"M1",M2:"M2",M3:"M3",M4:"M4",M5:"M5",M6:"M6",M7:"M7",M8:"M8",M9:"M9",M10:"M10",M11:"M11",M12:"M12",NextMonth:"nextMonth",NextQuarter:"nextQuarter",NextWeek:"nextWeek",Null:"null",Q1:"Q1",Q2:"Q2",Q3:"Q3",Q4:"Q4",ThisMonth:"thisMonth",ThisQuarter:"thisQuarter",ThisWeek:"thisWeek",Today:"today",Tomorrow:"tomorrow",YearToDate:"yearToDate",Yesterday:"yesterday"},ls.DateItemGroupingType={Day:"day",Hour:"hour",Minute:"minute",Month:"month",Second:"Second",Year:"year"},exports.IConditionalFormat=void 0,(cs=exports.IConditionalFormat||(exports.IConditionalFormat={})).Type={AboveAverage:"aboveAverage",BeginsWith:"beginsWith",CellIs:"cellIs",ColorScale:"colorScale",ContainsBlanks:"containsBlanks",ContainsErrors:"containsErrors",ContainsText:"containsText",DataBar:"dataBar",DuplicateValues:"duplicateValues",EndsWith:"endsWith",Expression:"expression",IconSet:"iconSet",NotContainsBlanks:"notContainsBlanks",NotContainsErrors:"notContainsErrors",NotContainsText:"notContainsText",TimePeriod:"timePeriod",Top10:"top10",UniqueValues:"uniqueValues"},cs.OperatorType={BeginsWith:"beginsWith",Between:"between",ContainsText:"containsText",EndsWith:"endsWith",Equal:"equal",GreaterThan:"greaterThan",GreaterThanOrEqual:"greaterThanOrEqual",LessThan:"lessThan",LessThanOrEqual:"lessThanOrEqual",NotBetween:"notBetween",NotContains:"notContains",NotEqual:"notEqual"},cs.TimePeriod={Last7Days:"last7Days",LastMonth:"lastMonth",LastWeek:"lastWeek",NextMonth:"nextMonth",NextWeek:"nextWeek",ThisMonth:"thisMonth",ThisWeek:"thisWeek",Today:"today",Tomorrow:"tomorrow",Yesterday:"yesterday"},cs.ConditionalBoundsType={Formula:"formula",Max:"max",Min:"min",Num:"num",Percent:"percent",Percentile:"percentile"},exports.ISheetView=void 0,(exports.ISheetView||(exports.ISheetView={})).HeaderTextStyle={A1:"a1",Zero:"zero",One:"one"};class j_{constructor(t,e,n,r){this._mergedReading=[],this._colsReading=[],this._rowsReading=[],this._styles=t,this._topLeft=r??{rowIndex:0,colIndex:0},this._sheet=new Nr({styles:this._styles,date1904:e,container:{getName:()=>n,getIndex:()=>1}}),this._cellUpdater=this._sheet.getEntireRange().startIncrementalUpdates()}applyCSSStyle(t,e){let n=!1;t.style||(t.style={},n=!0);let r=t.style,o={...e};if(e.msoIgnore){const d=e.msoIgnore.split(",");let u=Object.keys(o);for(let g=0;g<u.length;g++){const m=u[g];d.includes(m)&&delete o[m]}}const s=Ps(o.fontFamily);r.font={},s&&(r.font.family=s.family,r.font.fallbacks=s.fallbacks,r.font.size=s.size),r.font.size=o.fontSize,r.font.weight=o.fontWeight,r.font.style=o.fontStyle,r.font.fill=o.color;const i=(d=>{if(!d)return M0;let u=exports.IFont.UnderlineStyle.None,g=!1;return(d=d.toLowerCase()).includes("underline")&&(u=exports.IFont.UnderlineStyle.Single),(d.includes("line-through")||d.includes("linethrough"))&&(g=!0),{underline:u,strike:g}})(o.textDecoration);r.font.underline=i.underline,r.font.strike=i.strike,o.textUnderlineStyle&&(r.font.underline=Mg(o.textUnderlineStyle)),r.alignment={},o?.textAlign&&(r.alignment.horizontal=(d=>{const u=w.CommonUtils.textToKey(d);return yn.get(u)||null})(o.textAlign)),o?.textAlign&&!r.alignment.horizontal&&o?.textAlign!=="general"&&(o.textAlign==="center-across"?r.alignment.horizontal=exports.ITextFrame.HorizontalAlignment.CenterContinuous:o.textAlign==="fill"?r.alignment.horizontal=exports.ITextFrame.HorizontalAlignment.Fill:o.textAlign==="121"||o.textAlign==="010"?(r.alignment.horizontal=exports.ITextFrame.HorizontalAlignment.Distributed,r.alignment.justifyLastLine=o.textAlign==="121"):console.warn("unknown text-align",o.textAlign)),o.verticalAlign&&(o.verticalAlign.toLowerCase()==="super"?r.font.verticalAlign=exports.IFont.VerticalAlignment.Super:o.verticalAlign.toLowerCase()==="sup"?r.font.verticalAlign=exports.IFont.VerticalAlignment.Sub:r.alignment.vertical=(d=>{const u=w.CommonUtils.textToKey(d);return Ye.get(u)||null})(o.verticalAlign),r.alignment.vertical||(o.verticalAlign==="121"?r.alignment.vertical=exports.ITextFrame.VerticalAlignment.Distributed:console.warn("unknown vertical-align",o.verticalAlign))),o.msoCharIndentCount&&(r.alignment.indent=o.msoCharIndentCount),o.whiteSpace&&(r.alignment.overflow=o.whiteSpace==="no-wrap"||o.whiteSpace==="nowrap"?exports.ITextFrame.Overflow.Visible:exports.ITextFrame.Overflow.Wrap),o.msoTextControl==="shrinktofit"&&(r.alignment.overflow=exports.ITextFrame.Overflow.Shrink);let l=null;if(o.background?l=o.background:o.backgroundColor&&(l=o.backgroundColor),l&&(r.fill={color:l}),o.msoPattern){let d=hS(o.msoPattern);d&&(d.patternType===exports.IFill.BuiltInSheetPattern.Solid?r.fill={color:d.foreground}:d.patternType!==exports.IFill.BuiltInSheetPattern.None&&(l&&(d.background=l),r.fill=d))}o.msoRotate!==void 0&&(r.alignment.rotation=(d=>{let u=parseFloat(d);return isNaN(u)||(u%=360,u>0?u=360-u:u<0&&(u*=-1)),u})(o.msoRotate));const c=(d,u)=>{d&&(r.border||(r.border={}),r.border[d]=u)};o.border&&o.border!=="none"&&(c("top",o.border),c("left",o.border),c("right",o.border),c("bottom",o.border)),o.borderTop&&c("top",o.borderTop),o.borderLeft&&c("left",o.borderLeft),o.borderRight&&c("right",o.borderRight),o.borderBottom&&c("bottom",o.borderBottom),o.msoDiagonalUp&&c("diagonalUp",o.msoDiagonalUp),o.msoDiagonalDown&&c("diagonalDown",o.msoDiagonalDown);let h=r.numberFormat;o.msoNumberFormat&&(h=(d=>{let u=d.replace(/(\\[0-9]{4})/g,g=>String.fromCharCode(parseInt(g.replace(/\\/g,""),16)));return u=u.replace(/(\\.{1})/g,g=>g.substring(g.length-1,g.length)),u.includes("\\")&&(u=u.replace(/(\\.{1})/g,g=>g.substring(g.length-1,g.length))),u=u.replace(/^"(.*)"$/,"$1"),u})(o.msoNumberFormat),h.includes("\\")?h=null:h==="Fixed"?h=exports.NumberFormat.Styles.lookupStyle(r.numberFormat).formatType===exports.NumberFormat.Type.Number?null:exports.NumberFormat.Type.Number:h==="Percent"&&(h=exports.NumberFormat.Styles.lookupStyle(r.numberFormat).formatType===exports.NumberFormat.Type.Percentage?null:exports.NumberFormat.Type.Percentage)),h&&(r.numberFormat=h),t.style=this._styles.normalize(r),n&&Object.keys(t.style).length===0&&delete t.style}onCell(t,e,n,r,o){const s=r(o);let i={value:e!==void 0?e:n??""};if(typeof i.value=="string"&&i.value.length===0&&(i.value=void 0),s&&this.applyCSSStyle(i,s),o?.tagName.toUpperCase()==="TD"){let l=i.style,c=l?.font??{};(o.querySelectorAll("s").length>0||o.querySelectorAll("strike").length>0)&&(c.strike=!0),o.querySelectorAll("sub").length>0&&(c.verticalAlign=exports.IFont.VerticalAlignment.Sub),o.querySelectorAll("sup").length>0&&(c.verticalAlign=exports.IFont.VerticalAlignment.Super),(o.querySelectorAll("b").length>0||o.querySelectorAll("strong").length>0)&&(c.weight=700),o.querySelectorAll("i").length>0&&(c.style=exports.IFont.Style.Italic),o.querySelectorAll("u").length>0&&(c.underline=exports.IFont.UnderlineStyle.Single),Object.keys(c).length>0&&(l||(l={},i.style=l),l.font||(l.font=c));const h=o.querySelectorAll("a");if(h.length>0){const d=h[0].getAttribute("href");d&&(i.hyperlink=d)}}if(!w.CoordUtils.isSingleCell(t)){const l={rowStart:this._topLeft.rowIndex+t.rowStart,colStart:this._topLeft.colIndex+t.colStart,rowEnd:this._topLeft.rowIndex+t.rowEnd,colEnd:this._topLeft.colIndex+t.colEnd};this._mergedReading.push(l)}if((i.value!==void 0||i.style||!(Object.keys(i).length<=1))&&(this._cellUpdater.pushAt(this._topLeft.rowIndex+t.rowStart,this._topLeft.colIndex+t.colStart,i),!w.CoordUtils.isSingleCell(t)&&s.msoIgnore)){if(s.msoIgnore.includes("colspan")){const l={};s&&this.applyCSSStyle(l,s);const c=t.colEnd-t.colStart;for(let h=1;h<=c;h++)this._cellUpdater.pushAt(this._topLeft.rowIndex+t.rowStart,this._topLeft.colIndex+t.colStart+h,l);t={...t,colEnd:t.colStart}}s.msoIgnore.includes("rowspan")&&(t={...t,rowEnd:t.rowStart})}}onNoTable(t,e,n){this.onCell({rowStart:this._topLeft.rowIndex,colStart:this._topLeft.colIndex,rowEnd:this._topLeft.rowIndex,colEnd:this._topLeft.colIndex},t,null,e,n)}onRowStart(t,e,n,r){const o=n(r);if(o.msoHeightSource!=="userset")return;let s=r.getAttribute("height")??o.height,i=null;if(s&&(i=xr(s,this._styles.getNormal().getFont().getSize(),"px")),i===null)for(let l=0;l<r.cells.length;l++){const c=r.cells[l],h=c.getAttribute("height")??n(c).height;let d=xr(h,this._styles.getNormal().getFont().getSize(),"px");d!==null&&(i=Math.max(d,i??0))}i!==null&&this._rowsReading.push({address:{min:this._topLeft.rowIndex+t,max:this._topLeft.rowIndex+t+e-1},update:{size:i*exports.IFont.getDeviceScale()}})}onColumn(t,e,n,r){const o=n(r);if(o.msoWidthSource!=="userset")return;let s=r.getAttribute("width")??o.width,i=null;s&&(i=xr(s,this._styles.getNormal().getFont().getSize(),"px")),i!==null&&this._colsReading.push({address:{min:this._topLeft.colIndex+t,max:this._topLeft.colIndex+t+e-1},update:{size:i*exports.IFont.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._cellUpdater.apply()}),this._mergedReading.length>0&&this._sheet.getRanges(this._mergedReading).merge()}sheet(){return this._sheet}}let Ad=!1;class G_{constructor(t,e){this._mapStylesByName=new Map,this._arrStyleNames=[],this._mapStylesByName=t,this._arrStyleNames=e}setNode(t){this._node=t}addStyle(t,e){e!=null&&(this._node?.styles||(this._node.styles=new Map),this._node.styles.set(t,e))}addAttribute(t,e){e!=null&&(this._node?.attributes||(this._node.attributes=new Map),this._node.attributes.set(t,e),t.toLowerCase()==="rowspan"&&parseInt(e)>1&&(this._node.rowspan=parseInt(e)),t.toLowerCase()==="colspan"&&parseInt(e)>1&&(this._node.colspan=parseInt(e)))}addSharedStyle(t,e){let n=this._mapStylesByName.get(t);n?n={...e}:(this._arrStyleNames.push(t),n=e),this._mapStylesByName.set(t,n)}setPlainText(t){this._node.plainText=t}setHTMLText(t){this._node.htmlText=t.replace(/(?:\r\n|\r|\n)/g,"<br>")}}const Td=a=>{const t={};if(!a)return t;a.endsWith(";")||(a+=";");const e=new RegExp(';(?=([^"]*"[^"]*")*[^"]*$)',"gsm");let n,r=0;for(;(n=e.exec(a))!==null;){try{let o=a.substring(r,n.index).trim();const s=new RegExp(':(?=([^"]*"[^"]*")*[^"]*$)',"gsm");let i,l,c;for(;(c=s.exec(o))!==null;)i=unescape(o.substring(0,c.index)).trim(),l=unescape(o.substring(c.index+1,o.length)).trim();l!==null&&l!=="null"&&(i&&(i=Nu(i)),t[i]=l)}catch(o){console.warn(o)}r=n.index+1}return t},hs=(a,t)=>{const e=[];if(!a)return e;const n=a.children;for(let r=0;r<n.length;r++){const o=n.item(r);if(o.nodeType===1){const s=o.tagName.toUpperCase();t.includes(s)&&e.push(o)}}return e},$_=(a,t,e)=>{try{let n=null,r=null;const o=l=>((c,h)=>{if(!c)return{};let d={},u=h.get(c.localName);u&&(d=Object.assign(d,u));const g=c.getAttribute("class");if(g){const f=h.get("."+g);f&&(d=Object.assign(d,f))}const m=c.getAttribute("style");if(m){const f=Td(m);f&&(d=Object.assign(d,f))}return c.getAttribute("align")&&!d.textAlign&&(d.textAlign=c.getAttribute("align")),d})(l,r);if(a)try{n=[];const l="P, H1, H2, H3, H4, H5, H6, PRE",c=a.querySelector("parsererror");if(c)return console.warn("error",c),!1;const h=a.querySelectorAll("html"),d=h[h.length-1];r=(S=>{const _=S.querySelectorAll("style"),E=new Map;if(_.length<=0)return E;for(let C=0;C<_.length;C++){const I=_[C].childNodes;for(let y=0;y<I.length;y++)if(I[y].nodeType===Node.TEXT_NODE){const b=new RegExp("<!--(.*)-->","gs");let v=I[y].textContent;const R=b.exec(I[y].textContent);if(R&&R.length>1&&(v=R[1]),v=v.replace(/^\s/,""),v?.startsWith("table")){const x=new RegExp("{(.*?)}","gs");let T,M=0;for(;(T=x.exec(v))!==null;)try{const F=v.substring(M,T.index),N=Td(T[1]);E.set(F.trim(),N),M=T.index+T[0].length}catch(F){console.warn(F)}return E}}}return E})(d);const u=d.querySelectorAll("body"),g=u[u.length-1];let f=g.querySelectorAll("table")[0],p=!1;if(!f){let S=g.querySelectorAll("span");f=S[0],p=S.length>1}if(f||(f=hs(g,l)[0]),f||(f=hs(a,l)[0]),f?.nodeName.toUpperCase()==="TABLE"){e.onStart?.(r);const S=f;e.onTableStart?.(o,S);const _=hs(S,"COLGROUP");for(let I=0;_&&I<_.length;I++){const y=hs(_[I],"COL");let b=0;for(let v=0;v<y.length;v++){const R=y[v],x=parseFloat(R.getAttribute("span")),T=isNaN(x)?1:x;e.onColumn?.(b,T,o,R),b+=T}}const E=S.rows;let C=0;for(let I=0;I<E.length;I++){const y=E[I],b=parseFloat(y.getAttribute("span")),v=isNaN(b)?1:b;e.onRowStart?.(C,v,o,y);const R=[];n.push(R);const x=y.cells;for(let T=0;T<x.length;T++){let M=x[T],F=!1;for(let N=0;!F&&N<M.childNodes.length;N++)if(M.childNodes[N].nodeType===8){const k=M.childNodes[N].textContent;if(k!=="[if gte vml 1]"){if(k!=="[if !vml]"){if(k==="[endif]"){const U=M.childNodes[N+1];U?.querySelectorAll&&U.querySelectorAll("table, td").length===2&&(M=U?.querySelectorAll("table, td")[1],F=!0)}}}}R.push({htmlValue:M.textContent?.replace(/^"|"$/gi,""),element:M})}C+=v,e.onRowDow?.(C,v,o,y)}e.onTableDone?.(o,S)}else{if(f?.nodeName.toUpperCase()==="SPAN"){const S=t?t[0]?.[0]:null,_=p&&S?S:f.textContent.replace(/^"|"$/gi,"");return e.onStart?.(r),e.onCell({colStart:0,colEnd:0,rowStart:0,rowEnd:0},t?t[0]?.[0]:null,_,E=>{const C=o(E);return delete C.backgroundColor,C},f),e.onDone?.(),!0}if(f?.textContent){const S=f.textContent.replace(/^"|"$/gi,"");return e.onStart?.(r),e.onNoTable?.(S,o,f),e.onDone?.(),!0}}}catch(l){console.warn(l),n=null}!n||n.length!==0&&(n.length!==1||n[0]!==null&&n[0].length!==0)||(n=null);const s=t&&(t.length===0||t.length===1&&(t[0]===null||t[0].length===0));n&&s&&(t=null);const i=l=>{const c=new Set;let h=1,d=1;for(let u=0;u<Math.max(t?t.length:0,n?n.length:0);u++){let g=0,m=0,f=n&&n[u]?n[u].length:t[u]?t[u].length:0;for(;m<f;){const p=u+"-"+g;if(!c.has(p)){h=Math.max(h,g+1),d=Math.max(d,u+1);let S=null;const _=n?n[u]?.[m]?.element:void 0;if(_&&(_.getAttribute("rowspan")||_.getAttribute("colspan"))){const E=parseInt(_.getAttribute("colspan"))||1,C=parseInt(_.getAttribute("rowspan"))||1;h=Math.max(h,g+E),d=Math.max(d,u+C),S={rowStart:u,colStart:g,rowEnd:u+Math.max(0,C-1),colEnd:g+Math.max(0,E-1)};for(let I=u;I<u+C;I++)for(let y=g;y<g+E;y++)I===u&&y===g||c.add(I+"-"+y)}else S={rowStart:u,colStart:g,rowEnd:u,colEnd:g};l(S,t?t[u]?.[g]:void 0,n?n[u]?.[m]?.htmlValue:null,o,_||null),m++}g++}}};if(n&&t){let l=0,c=0;i(h=>{l=Math.max(l,h.colEnd+1),c=Math.max(c,h.rowEnd+1)}),t&&n&&(t.length!==c||t[0].length!==l)&&(console.warn("mismatched mimeTypes",t,n),t=null)}return i(e.onCell.bind(e)),e.onDone?.(),!s||n!==null}catch(n){throw console.warn(n),n}};exports.ISheet=void 0,(exports.ISheet||(exports.ISheet={})).Visibility={Visible:"visible",Hidden:"hidden",VeryHidden:"veryHidden"};class li extends Ii{static{this.instanceCounter=0}constructor(t){if(super(t),!t.content)throw new Error("Content type is required");this._content=t.content,this._uuid=w.CommonUtils.uuidV4(),this._optionsMovable=t;const e=this;this._optionsMovable.setContainerZIndexCallback?.(()=>{e._processZIndex()}),this._optionsMovable.setContainerSelectionCallback?.((r,o)=>{e._processContainerSelect(r,o)}),t.json&&this._fromJSON(t.json);const n=this._content.addListeners({onDelete:()=>{e._options.deleteFromContainer&&e._options.deleteFromContainer?.()}},{transactional:!0});this._updateState({contentListenerRemove:n},null,[])}getUUID(){return this._uuid}getContent(){return this._content}_processStateChange(t,e,n){super._processStateChange(t,e,n),this._getEmitter().notify("onBoundsChange"),this._getEmitter().notify("onAnyChange")}_processZIndex(){this._getEmitter().notify("onAnyChange")}_processContainerSelect(t,e){this._getEmitter().notify("onSelectionChange")}isSelected(){return this._optionsMovable.isSelected?.()??!1}async scrollIntoView(t){return this._optionsMovable.scrollIntoView?.(t)??!1}async select(t){if(await this._optionsMovable.select?.(t)===!1)return!1;if(t?.autoFocus!==!1){const e=await this._getEmitter().notify("onRequestFocus",{async:!0});if(!e)return!1;for(let n=0;n<e.length;n++)if(e[n]===!1)return!1}return!0}unselect(){const t=this._optionsMovable.isSelected?.()??!1;return this._optionsMovable.unselect?.(),t}_clone(){const t=this.isSelected(),e=this.getZIndex(),n=this._optionsMovable.getMaxBounds,r=this._options.maxRangeCoords,o=this.getContent(),s={beginPersistResource:this._optionsMovable.beginPersistResource,getBoundsAtCoords:this._optionsMovable.getBoundsAtCoords,getCoordsAtBounds:this._optionsMovable.getCoordsAtBounds,isSelected:()=>t,getZIndex:()=>e,getMaxBounds:n,maxRangeCoords:r,transactions:new xe({transient:!0}),json:this.toJSON(),initialAnchor:this.getAnchorCoords(),content:o},i=new li(s),l=this._getState();return i._updateState({...l}),i}getSnapshot(t,e){const n=this._optionsMovable.getCoordsAtBounds(t),r=this._getState().offsets;let o=this.getAnchorCoords();if((r.br.x>0||r.br.y>0)&&(o={...o},o.colEnd-=r.br.x>0?1:0,o.rowEnd-=r.br.y>0?1:0),!w.CoordUtils.isRangeWithinRange(o,n))return null;const s=this,i=s._clone(),l=Object.freeze({...e});let c=!1;return{async copyTo(d,u){const g={...l,...u};return await i._doCopy(d,g),g.isCut&&!c&&(s.delete(),c=!0),d.bounds},getCoords:()=>i.getBounds(),getSource:()=>i,getName:()=>i.getName(),getMarkOptions:()=>l,toText:()=>i._toText(),toHtml:()=>i._toHtml(),toImage:()=>i._toImage(),isISnapshot:!0}}async _doCopy(t,e){const n=this._optionsMovable.beginPersistResource(),r=this.toJSON(n.toResourceId.bind(n));r.content.json.name=`${this.getName()} (Copy)`;const o=r.content.json;delete r.content;const s=t.movables;if(!s)throw new Error("Movables is required");const i=t.bounds??this.getBounds();try{await s.add({...r,...e,fromResourceId:n.fromResourceId.bind(n),bounds:i,type:this.getContent().getType(),json:o,description:"Copy Movable"})}finally{n.endPersist()}}_toText(){return this.getContent().toText?.()}_toHtml(){return this.getContent().toHtml?.()}_toImage(){return this.getContent().toImage?.()}setName(t){return this._updateState({name:t},{description:"Set Movable Name"},["onNameChange"]),this}getName(){return this.isClosed()?null:this._getState()?.name}setDescription(t){return this._updateState({description:t},{description:"Set Movable Description"}),this}getDescription(){return this.isClosed()?null:this._getState()?.description}setHidden(t=!1){return this._updateState({hidden:t},{description:"Set Movable Visibility"}),this}isHidden(){return this._getState()?.hidden??!1}setLockAspectRatio(t){return this._updateState({lockAspectRatio:t},{description:"Set Lock Aspect Ratio"}),this}isLockAspectRatio(){return this._getState()?.lockAspectRatio??this._optionsMovable.defaultLockAspectRatio??!1}setRotation(t=0){return this._updateState({rotation:t},{description:"Set Movable Rotation"}),this}getRotation(){return this._getState()?.rotation??0}moveToBack(){return this._optionsMovable.moveToBackOnContainer?.(),this}moveBackward(){return this._optionsMovable.moveBackwardOnContainer?.(),this}moveToFront(){return this._optionsMovable.moveToFrontOnContainer?.(),this}moveForward(){return this._optionsMovable.moveForwardOnContainer?.(),this}getZIndex(){return this._optionsMovable.getZIndex?.()??0}setBounds(t,e){if(!t)return this;let n={...this.getBounds(),...t};if(this._optionsMovable.getMaxBounds&&(n={x:Math.max(n.x,this._optionsMovable.getMaxBounds().x),y:Math.max(n.y,this._optionsMovable.getMaxBounds().y),width:Math.min(n.width,this._optionsMovable.getMaxBounds().width),height:Math.min(n.height,this._optionsMovable.getMaxBounds().height)}),n.width<0||n.height<0)throw new w.OutOfBoundsError;const r=this._updateMovableLocation({bounds:n,anchorType:exports.IAnchored.Type.Absolute}),o=this._beginCommit(e?.description??"Set Movable Bounds");return this._updateState({offsets:r.offsets,anchor:r.anchor},{description:"Update Movable Bounds"}),this._options.setContainerCoords(r.anchor),this._invalidateBounds(),o.commit(),this}_updateMovableLocation(t){let e=t.offsets??{tl:{x:0,y:0},br:{x:0,y:0}},n=t.anchor??this.getAnchorCoords(),r=t.anchorType??this.getAnchorType();const o=t.bounds??this.getBounds();if(o){if(r===exports.IAnchored.Type.Absolute){n=this._optionsMovable.getCoordsAtBounds(o);const s=this._optionsMovable.getBoundsAtCoords(n);e={...e,tl:{x:o.x-s.x,y:o.y-s.y}}}if(r===exports.IAnchored.Type.Absolute||r===exports.IAnchored.Type.OneCell){const s=this._optionsMovable.getBoundsAtCoords({rowStart:n.rowStart,colStart:n.colStart,colEnd:n.colStart,rowEnd:n.rowStart}),i=this._optionsMovable.getCoordsAtBounds({x:s.x,y:s.y,width:o.width+Math.min(s.width,e.tl.x),height:o.height+Math.min(s.height,e.tl.y)});n={...n,colEnd:i.colEnd,rowEnd:i.rowEnd};const l=this._optionsMovable.getBoundsAtCoords({colStart:n.colEnd,rowStart:n.rowEnd,colEnd:n.colEnd,rowEnd:n.rowEnd}),c=o.width-(l.x-s.x-Math.min(e?.tl.x??0,s.width)),h=o.height-(l.y-s.y-Math.min(e?.tl.y??0,s.height));e={...e,br:{x:c,y:h}}}return e!==t.offsets&&(e.br.y<=0&&(e.br={...e.br,y:0},n.rowEnd--),e.br.x<=0&&(e.br={...e.br,x:0},n.colEnd--)),{anchor:n,offsets:e}}}_calcAbsoluteBounds(t,e={tl:{x:0,y:0},br:{x:0,y:0}}){if(!t)return null;const n=this._optionsMovable.getBoundsAtCoords({rowStart:t.rowStart,colStart:t.colStart,colEnd:t.colStart,rowEnd:t.rowStart});let r=e.br.x?0:1,o=e.br.y?0:1;const s=this._optionsMovable.getBoundsAtCoords({colStart:t.colEnd+r,rowStart:t.rowEnd+o,colEnd:t.colEnd+r,rowEnd:t.rowEnd+o}),i=Math.min(n.x+(e?.tl.x??0),n.x+n.width),l=Math.min(n.y+(e?.tl.y??0),n.y+n.height);return{x:i,y:l,width:Math.min(s.x+(e?.br.x??0),s.x+s.width)-i,height:Math.min(s.y+(e?.br.y??0),s.y+s.height)-l}}getBounds(){return this._getState()?.bounds}setAnchorType(t){return w.CommonUtils.validEnumValue(exports.IAnchored.Type,t),this._updateState({anchorType:t},{description:"Set Movable Resize Behavior"},["onAnchorTypeChange"]),this}_processContainerShift(t){const e=this.getAnchorType(),n=this._getState()?.offsets;let r=n,o=!1;const s=t.before,i=t.orientation===A.IRange.Orientation.Column,l=t.intersect,c=t.amount;let h=t.after;if(e!==exports.IAnchored.Type.Absolute){let g=i?l.colStart:l.rowStart,m=i?s.colStart:s.rowStart;e===exports.IAnchored.Type.TwoCell&&(m=i?s.colEnd:s.rowEnd),o=g<=m}if(o&&(e!==exports.IAnchored.Type.OneCell||h)||(h=s),o&&h&&c<0&&(i?(l.colStart<=s.colStart&&l.colEnd>=s.colStart&&(r={...r,tl:{...r.tl,x:0}}),r.br.x>0&&l.colStart<=s.colEnd&&l.colEnd>=s.colEnd&&(r={...r,br:{...r.br,x:0}},h={...h,colEnd:h.colEnd+1})):(l.rowStart<=s.rowStart&&l.rowEnd>=s.rowStart&&(r={...r,tl:{...r.tl,y:0}}),r.br.y>0&&l.rowStart<=s.rowEnd&&l.rowEnd>=s.rowEnd&&(r={...r,br:{...r.br,y:0}},h={...h,rowEnd:h.rowEnd+1}))),h!==null){const{offsets:g,anchor:m}=this._updateMovableLocation({anchor:h,offsets:r});r=g,h=m}let d=null;const u=this._beginCommit("Shifting Movable Bounds");try{if(n!==r||!w.CoordUtils.isEqualRanges(s,h)){const g={offsets:r,anchor:h};this._updateState(g)}this._invalidateBounds(),d=super._processContainerShift({...t,after:h}),u.commit()}catch(g){throw u.rollback(),g}return d}_invalidateBounds(){const t=this.getAnchorCoords();if(t===null)return null;const e=this._getState()?.offsets,n=this._calcAbsoluteBounds(t,e);this._updateState({bounds:n},null,["onBoundsChange"])}_processContainerDelete(){super._processContainerDelete(),this._getState().contentListenerRemove?.(),this.getContent().delete()}_processContainerLayout(){const t=this.getAnchorCoords(),e=this._getState()?.offsets,{offsets:n,anchor:r}=this._updateMovableLocation({anchor:t,offsets:e}),o=this._beginCommit("Updating Movable Bounds");try{if(e!==n||t!==r){const s={offsets:n,anchor:r};this._updateState(s)}this._invalidateBounds(),super._processContainerLayout(),o.commit()}catch(s){throw o.rollback(),s}}_processAnchorCoords(){super._processAnchorCoords()}_fromJSON(t){const e={tl:{x:0,y:0},br:{x:0,y:0}},n={...w.CoordUtils.EmptyRange};t.anchor&&(e.tl.x=t.anchor.tl?.x??0,e.tl.y=t.anchor.tl?.y??0,e.br.x=t.anchor.br?.x??0,e.br.y=t.anchor.br?.y??0,n.colStart=t.anchor.tl?.c??0,n.rowStart=t.anchor.tl?.r??0,n.colEnd=Math.max(n.colStart,(t.anchor.br?.c??0)+(e.br.x>0?0:-1)),n.rowEnd=Math.max(n.rowStart,(t.anchor.br?.r??0)+(e.br.y>0?0:-1)));const r=this._beginCommit("Load Movable"),o=t.content.json,s={offsets:e,name:o.name??null,description:o.name??null,hidden:o.hidden??!1,rotation:o.rotation??0,lockAspectRatio:o.lockAspect??null};t.anchorType&&(s.anchorType=t.anchorType),s.name||(s.name=`${this._content.getTypeDescription()} ${++li.instanceCounter}`),s.bounds=this._calcAbsoluteBounds(n,e),this._updateState(s,{description:"Load Movable"}),this._optionsMovable.setContainerCoords?.(n),r.commit()}toJSON(t){const e=this._getState(),n=e.anchor,r=e.offsets,o={tl:{c:n.colStart,r:n.rowStart},br:{c:n.colEnd+(r.br.x?0:1),r:n.rowEnd+(r.br.y?0:1)}};r&&(r.tl?.x&&(o.tl.x=w.CommonUtils.roundAccurately(r.tl.x,1)),r.tl?.y&&(o.tl.y=w.CommonUtils.roundAccurately(r.tl.y,1)),r.br?.x&&(o.br.x=w.CommonUtils.roundAccurately(r.br.x,1)),r.br?.y&&(o.br.y=w.CommonUtils.roundAccurately(r.br.y,1)));const s=this._content.toJSON(t)??{},i={anchor:o,content:{type:this._content.getType(),json:s}},l=e.anchorType;return l&&l!==exports.IAnchored.Type.TwoCell&&(i.anchorType=this.getAnchorType()),e.hidden&&(i.hidden=e.hidden),e.name&&(i.name=e.name),e.description&&(i.name=e.description),e.rotation!==void 0&&e.rotation!==0&&(i.rotation=e.rotation),w.CommonUtils.isDefined(e.lockAspectRatio)&&e.lockAspectRatio!==this._optionsMovable.defaultLockAspectRatio&&(i.lockAspect=e.lockAspectRatio),i}get isIMovable(){return!0}}class J_{constructor(t,e,n,r,o,s){this._add=t,this._getItems=e,this._getCount=n,this._updateSelected=r,this._addListeners=o,this._addImage=s}async add(t){return this._add(t)}getItems(t){return this._getItems(t)}getCount(){return this._getCount()}updateSelected(t,e){return this._updateSelected(t,e)}addListeners(t,e){return this._addListeners(t,e)}addImage(t,e){return this._addImage(t,e)}}const Ma={transactional:!0,ignoreDataChanges:!0};class Md extends rg{constructor(t){super({...t,type:"namedReference"});const e=this;this._listener=r=>{const o=this._getState().ranges;let s=r.getSource(),i=!1;const l={ranges:s};if(r.trigger==="moveCells"){const u=e._getState(),g=r.getTo(),m=r.getFrom(),f=[],p=o.getCount(),S=m.getCount();for(let C=0;C<p;C++){const I=o.at(C);if(f.push(I.getCoords()),!I.isInvalid()){for(let y=0;y<S;y++){const b=m.at(y).getCoords(),v=I.getCoords();if(!w.CoordUtils.isRangeWithinRange(v,b))continue;const R=g.getCoords(),x=R.colStart-b.colStart+v.colStart,T=R.rowStart-b.rowStart+v.rowStart,M={...v,colStart:x,rowStart:T,colEnd:x+(v.colEnd-v.colStart),rowEnd:T+(v.rowEnd-v.rowStart)};(g.size!==1||w.CoordUtils.isRangeWithinRange(M,R))&&(f[C]=g.getSheet().getRange(M).getCoords(),i=!0)}if(!i)return}}const _=this._options.addressToRanges(f);let E;u.removeListener?.(),_.isInvalid()||(E=_.addListener(e._listener,Ma)),l.ranges=_,l.removeListener=E}this._updateState(l,null,["onRangesChange"]);const c=s.getCoords();let h=!c||c.length===0;const d=c.length;for(let u=0;!h&&u<d;u++)if(!c[u]){h=!0;break}h&&e.delete()};const n=t.value;if(n&&!n.isInvalid()){const r=n.addListener(this._listener,Ma);this._updateState({ranges:n,removeListener:r},null)}}setReference(t){const e=this._options.addressToRanges(t);if(e&&!e.isInvalid()){this._getState().removeListener?.();const r=e.addListener(this._listener,Ma);this._updateState({ranges:e,removeListener:r},null)}return null}async select(t){return await this._getState().ranges.select(t),this}getRanges(){return this._getState().ranges}setHidden(t=!1,e){return this._updateState({hidden:t},{description:"Set Hidden",...e},[]),this}setScope(t,e){return this._updateState({scope:t},{description:"Set Scope",...e},[]),this}getType(){return"reference"}getValue(){return this._getState().ranges}toJSON(){const t=super._toJSON();return t.ref=this._getState().ranges.toString(),t}_getDescription(){return`Named '${this.getName()}'`}_processDelete(){const t=this._getState();t&&t.removeListener?.(),super._processDelete()}get[Symbol.toStringTag](){return"[NamedReference]"}toString(){return this._getDescription()}}const Fd="Item must be specified.",Nd="Name must be a non-empty string",kd=(a,t=null)=>`Named item '${a}' already exists${t?`in scope ${t}`:""}.`,Od=a=>{const t=[];for(let e=0;e<a.getCount();e++){let n=null;try{n=a.at(e),n.isICellRange&&(n=n.getFixed(!0))}catch(r){w.Notifier.warn("Invalid range",r)}t.push(n?n.toString().toLowerCase():jt)}return t.sort(),t.join(",")},q_=/^[^a-zA-Z_\\]+$/,X_=/^[^a-zA-Z0-9_.]+$/;class Zg{constructor(t){this._emitter=null,this._closed=!1,this._lastLookup=w.CommonUtils.EmptyArray,this._lastLookupAddress=null,this._lastLookupScope=null,this._lastLookupType=null,this._allowExtrudes=!1,this._options={...t};const e=this;this._transactions=this._options.transactions??new xe({transient:!0}),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(n,r,o){r?.initial||e._emitter.notify("onCollectionChange")}}),this._emitter=new Xt(this,this._transactions),this._initState(),this._fromJSON(this._options?.json)}getItems(t){if(this.isClosed())return w.CommonUtils.EmptyArray;const e=this._getState();if(!e)return w.CommonUtils.EmptyArray;const n=e.itemsSpatial;if(n.isEmpty())return w.CommonUtils.EmptyArray;if(t&&t.address===this._lastLookupAddress&&t.scope===this._lastLookupScope&&t.type===this._lastLookupType&&t.allowExtrudes===this._allowExtrudes)return this._lastLookup;this._lastLookupAddress=t?.address??void 0,this._lastLookupScope=t?.scope??void 0,this._lastLookupType=t?.type??void 0,this._allowExtrudes=t?.allowExtrudes??void 0;let r=null;if(t?.address){const h=this._options.addressToRanges(t?.address);if(!h)return w.Notifier.debug("Invalid range",{details:t?.address}),this._lastLookup=null,null;r=h.getCoords()}let o=null;if(r){o=[];for(let h=0;h<r.length;h++){const d=n.search(r[h]),u=d.length;for(let g=0;g<u;g++)o.push(d[g])}}else o=n.all();if(!o||o.length===0)return this._lastLookup=w.CommonUtils.EmptyArray,w.CommonUtils.EmptyArray;const s=new Set,i=new Set;o.forEach(h=>{const d=h.value;if(!t?.type||d.getType()===t.type){if(r&&!t?.allowExtrudes){const u=d.getRanges?.();if(!u||u.getCount()===0)return;for(let g=0;g<r.length;g++)if(!w.CoordUtils.isRangeWithinRange(h,r[g]))return}!t?.scope||d.getScope()!==t.scope&&t.scope!=="all"?d.getScope()||i.add(d):s.add(d)}});const l=new Map;i.forEach(h=>{l.set(h.getName(),h)}),s.forEach(h=>{l.set(h.getName(),h)});let c=[];return l.forEach(h=>{c.push(h)}),c=c.sort((h,d)=>{let u=h.getType().localeCompare(d.getType());return u!==0?u:h.getName().localeCompare(d.getName())}),this._lastLookup=c,c}lookupByRanges(t){const e=this._options.addressToRanges(t);if(!e||e.getCount()===0)return null;const n=this._getState();if(!n||n.itemsByKey.size===0)return null;const r=Od(e),o=n.itemsByFullRange.get(r);if(!o)return null;const s=[];return o.forEach(i=>{const l=n.itemsByKey.get(i);l&&s.push(l.item)}),s.length>0?s:null}getByName(t,e=!1){if(!t)return null;const n=this._getState();if(!n||n.itemsByKey.size===0||typeof t!="string")return null;const r=t.toLowerCase(),o=this._options.getCurrentScope();if(!e&&o){const i=r+":"+o.toLowerCase(),l=n.itemsByKey.get(i);if(l)return l.item}return n.itemsByKey.get(r)?.item??null}getCount(){const t=this._getState();return t?t.itemsByKey.size:0}getRanges(t){const e=this._options.addressToRanges(t),n=[];for(let r=0;r<e.getCount();r++){const o=e.at(r).getFixed(!0).getCoords();n.push(o)}return this._options.addressToRanges(n)}findValidName(t,e=null,n=!1){if(!t)throw new Error("A template string must be specified.");const r=this,o=s=>{try{return r._validateName(s,e,n),!0}catch{}return!1};return o(t)?t:Fu(t,o)}validateName(t,e=null,n=!1){return this._validateName(t,e,n)}_validateName(t,e,n=!1){if(this._closed)throw new Error(Ee);if(!t||t.length===0)throw new Error(Nd);if(t.length>255)throw new Error("Name must not exceed 255 characters.");if(t.indexOf(" ")!==-1)throw new Error("Name must not contain any spaces.");const r=t.trim().toLowerCase(),o=r.substring(1,t.length-1);if(new RegExp(q_).test(r[0]))throw new Error("First letter must be either a letter, an underscore, or a backslash.");if(new RegExp(X_).test(o))throw new Error("Name must be either letters, numbers, periods or underscores.");if(r.length===1&&(r[0]==="r"||r[0]==="c"))throw new Error("Name can not be 'r' or 'c'.");if(((l,c=p0,h=pg,d=!1)=>{let u=Cg(l,d);if(!u||u[2]||!u[1])return!1;const g=rl(l,ol);if(!g)return!1;const m=g.rowIndex;if(m<0||m>c)return!1;const f=g.colIndex;return!(f<0||f>=h)})(t))throw new Error("Name can not be an address.");let s=t.toLowerCase()?.trim();e&&(s=s+":"+e.toLowerCase());const i=this._getState()?.itemsByKey.get(s);if(i){const l=i.item.getRanges();if(!n||l||l.getCount()>0)throw new Error(kd(t,e))}}addReference(t,e,n=!1){const r=this._options.addressToRanges(e),o=this.getByName(t);let s=null;const i=this._beginCommit(`${o&&n?"Update":"Insert"} Named '${t}'`);try{if(o){if(!n)throw new Error(kd(t));this._delete(o,{description:`Delete Named '${o.getName()}'`})}s=new Md({value:r,addressToRanges:this._options.addressToRanges,json:{name:t,ref:r.toString()},transactions:this._transactions}),this.add(s),i.commit()}catch(l){throw i.rollback(),l}return s}add(t){if(this._closed)throw new Error(Ee);if(!t)throw new Error(Fd);if(!t.getName||typeof t=="string")throw new Error("Add must take a 'INamed' object. To add a string use 'addReference'.");if(this._validateName(t.getName(),t.getScope(),!1),this._options.isReadOnly?.())throw new Error("Names are read-only.");const e=this._beginCommit(`Insert Named Item '${t.getName()}'`),n=this._add([t]);if(n===null)return e.rollback(),null;const r=n.itemsByKey.get(t.getName().toLowerCase());return this._updateState(o=>({...o,...n})),e.commit(),r?.item??null}_toKey(t){let e=t.getName().toLowerCase();return e.startsWith("_xlnm.")&&(e=e.substring(6)),t.getScope()?e+":"+t.getScope().toLowerCase():e}_delete(t,e){if(!t)throw new Error(Fd);if(this._closed)throw new Error(Ee);const n=this._beginCommit(e?.description??`Delete Named Item '${t.getName()}'`);let r=null;try{const o=this._getState()?.itemsByKey,s=this._toKey(t);if(r=o.get(s),!r)throw new Error(`Item '${t.getName()}' does not exist.`);const i=this._cloneState();this._index(s,null,i),this._updateState(l=>({...l,...i})),n.commit()}catch(o){throw n.rollback(),o}return this._emitter.notify("onCollectionChange"),r.item}_cloneState(){const t=this._getState();return{itemsBySource:new Map(t.itemsBySource),itemsByKey:new Map(t.itemsByKey),itemsSpatial:t.itemsSpatial.clone(),itemsByFullRange:new Map(t.itemsByFullRange),itemsByPartialRange:new Map(t.itemsByPartialRange)}}_index(t,e,n){const r=n.itemsByKey.get(t);if(r){const s=r.asPartialRanges;if(s)for(let l=0;l<s.length;l++){const c=n.itemsByPartialRange.get(s[l]);if(c)if(c.size===1)n.itemsByPartialRange.delete(s[l]);else{const h=new Set(c);h.delete(t),n.itemsByPartialRange.set(s[l],h)}}const i=r.asFullRange;if(i){const l=n.itemsByFullRange.get(i);if(l)if(l.size===1)n.itemsByFullRange.delete(i);else{const c=new Set(l);c.delete(t),n.itemsByFullRange.set(i,c)}}if(r.nodes)for(let l=0;l<r.nodes.length;l++)n.itemsSpatial.remove(r.nodes[l]);r.unwatch?.(),n.itemsByKey.delete(t),n.itemsBySource.delete(r.item)}let o=null;if(e){let s=[],i=null,l=null;o=e.getRanges?.();const c=this._toKey(e);if(o){const{asFullRange:g,asPartialRanges:m,asRanges:f}=(p=>{const S=p.getCoords(),_=Od(p),E=_.split(",");return{asFullRange:_,asPartialRanges:E,asRanges:S}})(o);if(i=g,l=m,f){for(let p=0;p<m.length;p++){let S=n.itemsByPartialRange.get(m[p]);const _=S?new Set(S):new Set;_.add(c),n.itemsByPartialRange.set(m[p],_),s.push({...f[p],value:e})}if(n.itemsSpatial.load(s),g){let p=n.itemsByFullRange.get(g);const S=p?new Set(p):new Set;S.add(c),n.itemsByFullRange.set(g,S)}}}const h=this,d=e.addListeners({onDelete:g=>{h._delete(g)},onAnyChange:g=>{const m=h._beginCommit(`Update Named '${g.getName()}'`);try{const f=h._cloneState(),p=f.itemsBySource.get(g).globalKey;h._index(p,g,f),h._updateState(S=>({...S,...f})),m.commit()}catch(f){throw m.rollback(),f}}},{transactional:!0}),u={item:e,asFullRange:i,asPartialRanges:l,unwatch:d,nodes:s,globalKey:c};n.itemsByKey.set(c,u),n.itemsBySource.set(e,u)}}_add(t){if(this._closed)throw new Error(Ee);const e=this._getState();if(!t)return e;const n=this._cloneState(),r=t.length;for(let o=0;o<r;o++){const s=t[o];if(!s.getName())throw new Error(Nd);const i=this._toKey(s);try{this._index(i,s,n)}catch(l){w.Notifier.warn(`Unable to add named item '${i}'.`,{details:l?.message})}}return n}beginCommit(t){return this._beginCommit(t)}_getState(){if(this._closed)throw new Error(Ee);return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(typeof t=="string"?{description:t}:t)}_updateState(t,e="Update"){if(!t)return;this._lastLookup=w.CommonUtils.EmptyArray,this._lastLookupAddress=null,this._lastLookupType=null,this._lastLookupScope=null;const n=this._beginCommit(e);try{n.updateState(this,t),n.commit()}catch(r){throw n.rollback(),r}}fromJSON(t){if(this._closed)throw new Error(Ee);this._fromJSON(t)}_initState(){this._updateState(t=>({...t,items:new Set,itemsByKey:new Map,itemsSpatial:new It,itemsByFullRange:new Map,itemsByPartialRange:new Map}))}_fromJSON(t){const e=this._beginCommit("Load Names");try{if(t){const n=[],r=t.length;for(let s=0;s<r;s++){const i=t[s];try{const l=this._options.addressToRanges(i.ref),c=new Md({value:l,addressToRanges:this._options.addressToRanges,deleteFromContainer:h=>{this._delete(c,h)},json:i,transactions:this._transactions});n.push(c)}catch(l){w.Notifier.warn(`Unable to load named item '${i.name}'.`,{details:l?.message})}}const o=this._add(n);this._updateState(s=>({...s,...o}))}e.commit({viewAfter:{initial:!0}})}catch(n){throw e.rollback(),n}}toJSON(){const t=this._getState();if(!t||t.itemsByKey.size===0)return null;const e=[],n=Array.from(t.itemsByKey.keys()).sort(),r=n.length;for(let o=0;o<r;o++){const s=t.itemsByKey.get(n[o]).item,i=s.toJSON?.();i&&e.push(i)}return e.length===0?null:e}addListeners(t,e){return this._emitter.addListeners(t,e)}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify("onClose"),this._closed=!0,this._transactionsRemoveListener?.())}get isNamedCollection(){return!0}}class K_ extends Xn{constructor(t){super(t),t.json&&this._updateState({data:t.json})}getType(){return"chart"}getDescription(){return`Chart: ${this._getState()?.data?.types?.[0]?.type??"unknown"}`}toJSON(t){const e=this._getState();let n=null;return e&&e.data&&(n=e.data),n}getTypeDescription(){return"Chart"}}class Y_ extends Xn{constructor(t){super(t),t.json&&this._updateState({data:t.json})}getType(){return"shape"}getDescription(){return`Shape: ${this._getState()?.data}`}toJSON(t){const e=this._getState();let n=null;return e&&e.data&&(n=e.data),n}getTypeDescription(){return"Shape"}get[Symbol.toStringTag](){return"[Shape]"}toString(){return this.getTypeDescription()}}class Q_ extends Xn{constructor(t){super(t),t.json&&this._updateState({data:t.json})}getType(){return"custom"}getDescription(){return`CustomElement: ${this._getState()?.data}`}toJSON(t){const e=this._getState();let n=null;return e&&e.data&&(n=e.data),n}getTypeDescription(){return"CustomElement"}}const Bd=(a,t,e=!0,n=!0)=>{let r=0,o=0;if(!e&&!n)return{x:r,y:o};let s=!1,i=0;do{const l={x:t.x+r,y:t.y+o,width:0,height:0},c=a.getItems({bounds:l});if(s=!1,c.length>0){for(let h=0;!s&&h<c.length;h++){const d=c[h].getBounds();d.x===l.x&&d.y===l.y&&(s=!0)}s&&(r+=e?16:0,o+=n?16:0)}}while(s&&++i<100);return{x:r,y:o}};class Z_{constructor(t,e,n){this._add=t,this._get=e,this._getByName=n}add(t,e){if(!t)throw new Error(ul);return this._add(t,e)}getItems(t){if(t&&t.name&&Object.keys(t).length===0)return[this._getByName(t.name)];let e;t?.address&&(e=t.address);const n=this._get(e,t?.ignoreHidden,t?.fullyContained);if(t?.name){const r=t.name.toLocaleLowerCase();for(let o=0;o<n.length;o++)if(n[o].getName().toLocaleLowerCase()===r)return[n[o]]}return n}getByName(t){if(typeof t!="string")throw new Error("Get by name must take a valid name.");return this._getByName(t)}getCount(){return this._get(null,!1,!1).length}}const oe=(a,t,e)=>{if(!a)return t;let n=t;const r=e===A.IRange.Direction.Right||e===A.IRange.Direction.Down;for(;;){const o=a(n,!r);if(o===0)return n;r?n+=o:n-=o}},tw=Object.freeze({colIndex:0,rowIndex:0}),fl=Object.freeze([]),ci=Object.freeze({cell:w.CoordUtils.EmptyCell,ranges:fl,rangeIndex:-1}),tm=(a,t,e)=>{if(!a)return ci;let n=t.cell;const r=e.colStart,o=e.rowStart,s=e.colEnd,i=e.rowEnd;w.CoordUtils.isEqualCells(n,a?.cell)||(n=Object.freeze({colIndex:Math.max(r,Math.min(a?.cell?.colIndex??t.cell?.colIndex??0,s)),rowIndex:Math.max(o,Math.min(a?.cell?.rowIndex??t?.cell?.rowIndex??0,i))}));const l=a?.ranges?[...a.ranges]:[];let c=!1;const h=l.length;let d=h===0;for(let f=0;f<h;f++){const p=l[f];l[f]=Object.freeze({colStart:Math.max(r,Math.min(p.colStart,s)),rowStart:Math.max(o,Math.min(p.rowStart,i)),colEnd:Math.max(r,Math.min(p.colEnd,s)),rowEnd:Math.max(o,Math.min(p.rowEnd,i))}),d=d||w.CoordUtils.isCellWithinRange(n,p),c=c||Object.keys(p).length>4}let u=t?.ranges??[];!c&&w.CoordUtils.isEqualRangesArrays(u,l)||(u=l);let g=a?.rangeIndex??t?.rangeIndex??ci.rangeIndex;if(g=Math.max(-1,Math.min(g,u.length-1)),!d){const f=u[g];let p=n.rowIndex;p<f.rowStart?p=f.rowStart:p>f.rowEnd&&(p=f.rowEnd);let S=n.rowIndex;S<f.colStart?S=f.colStart:S>f.colEnd&&(S=f.colEnd),n=Object.freeze({colIndex:S,rowIndex:p})}return Object.freeze({cell:n,ranges:u,rangeIndex:g})},em=(a,t=A.IRange.Direction.Right,e,n,r,o=null)=>{if(o&&w.CoordUtils.isEqualSelectionCoords(o,a))return a;const s=a.ranges[a.rangeIndex];if(!w.CoordUtils.isRangesIntersect({rowStart:a.cell.rowIndex,colStart:a.cell.colIndex,rowEnd:a.cell.rowIndex,colEnd:a.cell.colIndex},s))return a;let i={...a.cell},l=a.rangeIndex;switch(t){case A.IRange.Direction.Right:i.colIndex=oe(r,i.colIndex+1,t);break;case A.IRange.Direction.Left:i.colIndex=oe(r,i.colIndex-1,t);break;case A.IRange.Direction.Down:i.rowIndex=oe(n,i.rowIndex+1,t);break;case A.IRange.Direction.Up:i.rowIndex=oe(n,i.rowIndex-1,t)}const c=u=>{if(u){l=a.rangeIndex>=a.ranges.length-1?0:a.rangeIndex+1;const g=a.ranges[l];i={colIndex:g.colStart,rowIndex:g.rowStart}}else{l=a.rangeIndex<=0?a.ranges.length-1:a.rangeIndex-1;const g=a.ranges[l];i={colIndex:g.colEnd,rowIndex:g.rowEnd}}};if(t===A.IRange.Direction.Right&&i.colIndex>s.colEnd&&i.rowIndex===s.rowEnd)c(!0);else if(t===A.IRange.Direction.Left&&i.colIndex<s.colStart&&i.rowIndex===s.rowStart)c(!1);else if(t===A.IRange.Direction.Down&&i.colIndex===s.colEnd&&i.rowIndex>s.rowEnd)c(!0);else if(t===A.IRange.Direction.Up&&i.colIndex===s.colStart&&i.rowIndex<s.rowStart)c(!1);else{let u=i.rowIndex,g=i.colIndex;switch(t){case A.IRange.Direction.Right:g>s.colEnd&&(u=oe(n,u+1,t),g=s.colStart,u>s.rowEnd&&(u=s.rowStart));break;case A.IRange.Direction.Left:g<s.colStart&&(u=oe(n,u-1,t),g=s.colEnd,u<s.rowStart&&(u=s.rowEnd));break;case A.IRange.Direction.Down:u>s.rowEnd&&(g=oe(r,g+1,t),u=s.rowStart,g>s.colEnd&&(g=s.colStart));break;case A.IRange.Direction.Up:u<s.rowStart&&(g=oe(r,g-1,t),u=s.rowEnd,g<s.colStart&&(g=s.colEnd))}i={rowIndex:u,colIndex:g}}let h=e(i);if(!w.CoordUtils.isRangeWithinRange(h,s)){const u=w.CoordUtils.intersectRanges(h,s);u&&(h=u)}let d={rowStart:oe(n,h.rowStart,A.IRange.Direction.Down),colStart:oe(r,h.colStart,A.IRange.Direction.Right),rowEnd:oe(n,h.rowEnd,A.IRange.Direction.Up),colEnd:oe(r,h.colEnd,A.IRange.Direction.Left)};if(d.rowStart!==i.rowIndex||d.colStart!==i.colIndex){switch(t){case A.IRange.Direction.Right:a.ranges[l].colStart===d.colStart&&a.ranges[l].colEnd===d.colEnd&&(i.rowIndex=d.rowEnd),i.colIndex=d.colEnd;break;case A.IRange.Direction.Left:a.ranges[l].colStart===d.colStart&&a.ranges[l].colEnd===d.colEnd&&(i.rowIndex=d.rowStart),i.rowIndex===d.rowStart?i.colIndex=d.colStart+1:i.colIndex=d.colStart;break;case A.IRange.Direction.Down:a.ranges[l].rowStart===d.rowStart&&a.ranges[l].rowEnd===d.rowEnd&&(i.colIndex=d.colEnd),i.rowIndex=d.rowEnd;break;case A.IRange.Direction.Up:a.ranges[l].rowStart===d.rowStart&&a.ranges[l].rowEnd===d.rowEnd&&(i.colIndex=d.colStart),i.colIndex===d.colStart?i.rowIndex=d.rowStart+1:i.rowIndex=d.rowStart}return o&&console.warn("call recursive > 1"),em({cell:i,ranges:a.ranges,rangeIndex:l},t,e,n,r,o??a)}return{ranges:a.ranges,cell:i,rangeIndex:l}},At=(a,t,e=-1)=>{if(!a||a.length===0)return null;const n=a[0],r=a.length===1&&n.rowStart===n.rowEnd&&n.colStart===n.colEnd,o=e===-1?a.length-1:Math.min(Math.max(0,e),a.length-1);if(!t){const s=a[o];t={rowIndex:s.rowStart,colIndex:s.colStart}}return{cell:t,ranges:r?w.CommonUtils.EmptyArray:[...a],rangeIndex:r?-1:o}};class ew{constructor(t){this._adjusting=null,this._emitter=null,this._coords=ci,this._sheet=t.sheet,this._emitter=new Xt(this);const e=t.sheet;this._adjusting=null,this._hiddenRowsAt=(n,r)=>e.getRowHeaders().hiddenHeadersAt(n,r),this._hiddenColumnsAt=(n,r)=>e.getColumnHeaders().hiddenHeadersAt(n,r),this._getCellCoordsAsRangeCoords=n=>{const r=w.CoordUtils.cellToRange(n);if(e.isClosed())return r;const o=e.getRange(r,{ignoreHidden:!0}).getMerges();return o.length===0?r:o[0]},this._canSelectionSpanMergedCells=n=>{const r=e.getRange(n);return r.isEntireColumns()||r.isEntireRows()},this._getMergedRanges=n=>e.getRange(n,{ignoreHidden:!0}).getMerges(),this._isContentfulCell=()=>!1,this._contentfulCellFinder=(n,r,o,s,i,l)=>{const c=e.getSelectedRange().getExtended(s,n).getCoords();switch(s){case A.IRange.Direction.Up:return c.rowStart;case A.IRange.Direction.Down:return c.rowEnd;case A.IRange.Direction.Left:return c.colStart;case A.IRange.Direction.Right:return c.colEnd}},this._scrollCellCoordsIntoView=(n,r)=>e.scrollTo(n,r?{scroll:r}:void 0),this._selectionPolicy=t.selectionPolicy??"multiple",this._newSelectionMode=t.newSelectionMode??"clear"}navigate(t,e=!1,n=!1,r=0){const o=this._coords;if(!o.cell)return this;let s=o.cell,i=o.cell;if(e&&o.ranges.length>0){const _=o.ranges[o.rangeIndex],E=o.cell;switch(t){case A.IRange.Direction.Up:i={rowIndex:E.rowIndex===_.rowStart?_.rowEnd:_.rowStart,colIndex:_.colEnd},s={rowIndex:E.rowIndex===_.rowStart?_.rowStart:_.rowEnd,colIndex:_.colStart};break;case A.IRange.Direction.Down:i={rowIndex:E.rowIndex===_.rowEnd?_.rowStart:_.rowEnd,colIndex:_.colEnd},s={rowIndex:E.rowIndex===_.rowEnd?_.rowEnd:_.rowStart,colIndex:_.colStart};break;case A.IRange.Direction.Left:i={rowIndex:_.rowEnd,colIndex:E.colIndex===_.colStart?_.colEnd:_.colStart},s={rowIndex:_.rowStart,colIndex:E.colIndex===_.colStart?_.colStart:_.colEnd};break;case A.IRange.Direction.Right:i={rowIndex:_.rowEnd,colIndex:E.colIndex===_.colEnd?_.colStart:_.colEnd},s={rowIndex:_.rowStart,colIndex:E.colIndex===_.colEnd?_.colEnd:_.colStart}}}const l=this._getCellCoordsAsRangeCoords(i);let{rowStart:c,colStart:h}=l;const d=this._magicCell;if(d)switch(t){case A.IRange.Direction.Up:case A.IRange.Direction.Down:d.colIndex>=l.colStart&&d.colIndex<=l.colEnd&&(h=d.colIndex);break;case A.IRange.Direction.Left:case A.IRange.Direction.Right:d.rowIndex>=l.rowStart&&d.rowIndex<=l.rowEnd&&(c=d.rowIndex)}if(!r){const _=this._getMaxRange();switch(t){case A.IRange.Direction.Up:c=oe(this._hiddenRowsAt,Math.max(l.rowStart-1,_.rowStart??0),t);break;case A.IRange.Direction.Down:c=oe(this._hiddenRowsAt,Math.min(l.rowEnd+1,_.rowEnd??Number.MAX_SAFE_INTEGER),t);break;case A.IRange.Direction.Left:h=oe(this._hiddenColumnsAt,Math.max(l.colStart-1,_.colStart??0),t);break;case A.IRange.Direction.Right:h=oe(this._hiddenColumnsAt,Math.min(l.colEnd+1,_.colEnd??Number.MAX_SAFE_INTEGER),t)}if(n){const E=this._getMaxRange();let C=0;switch(t){case A.IRange.Direction.Up:C=E.rowStart??0,c=this._contentfulCellFinder({...i,colIndex:this._coords.cell.colIndex},this._isContentfulCell,this._hiddenRowsAt,t,!1,Math.max(C,this._hiddenRowsAt(C,!1)));break;case A.IRange.Direction.Down:C=E.rowEnd??Number.MAX_SAFE_INTEGER,c=this._contentfulCellFinder({...i,colIndex:this._coords.cell.colIndex},this._isContentfulCell,this._hiddenRowsAt,t,!1,Math.min(C,C-this._hiddenRowsAt(C,!0)));break;case A.IRange.Direction.Left:C=E.colStart??0,h=this._contentfulCellFinder({...i,rowIndex:this._coords.cell.rowIndex},this._isContentfulCell,this._hiddenColumnsAt,t,!1,Math.max(C,this._hiddenColumnsAt(C,!1)));break;case A.IRange.Direction.Right:C=E.colEnd??Number.MAX_SAFE_INTEGER,h=this._contentfulCellFinder({...i,rowIndex:this._coords.cell.rowIndex},this._isContentfulCell,this._hiddenColumnsAt,t,!1,Math.min(C,C-this._hiddenColumnsAt(C,!0)))}}}let u=null;r&&(u={});const g={rowIndex:c,colIndex:h},m=this._getCellCoordsAsRangeCoords(g),f={rowIndex:m.rowStart,colIndex:m.colStart};e||(this._magicCell=g);const p=this._firstActiveCoords,S=w.CoordUtils.isEqualCells(p,f)&&w.CoordUtils.isEqualCells(p,s);if(e&&!S?this.modify(f,s):this.clearAndModify(f),u)this._scrollCellCoordsIntoView(u);else{if(e&&p){const _=this._getMaxRange();if(t===A.IRange.Direction.Right&&p.colIndex===_.colEnd||t===A.IRange.Direction.Left&&p.colIndex===_.colStart||t===A.IRange.Direction.Up&&p.rowIndex===_.rowEnd||t===A.IRange.Direction.Down&&p.rowIndex===_.rowStart)return this}t===A.IRange.Direction.Left||t===A.IRange.Direction.Right?this._scrollCellCoordsIntoView({colStart:g.colIndex}):t!==A.IRange.Direction.Up&&t!==A.IRange.Direction.Down||this._scrollCellCoordsIntoView({rowStart:g.rowIndex})}return this}getCoords(){return this._coords}getRangesCoords(t){return(e=>{if(!e)return null;const n=[];if(e.ranges&&e.ranges.length>0){const r=Math.max(0,Math.min(e.rangeIndex??0,e.ranges.length));for(let o=r;o<e.ranges.length;o++)n.push(e.ranges[o]);for(let o=0;o<r;o++)n.push(e.ranges[o])}else e.cell&&n.push(w.CoordUtils.cellToRange(e.cell));return n})(t??this._coords)}updateCoords(t){const e=this._coords;if(w.CoordUtils.isEqualSelectionCoords(e,t))return;const n=tm(t,this._coords,this._getMaxRange());return this._coords=n,this._emitter.notify("onChange"),this}isEntire(){const t=this._coords;if(t.ranges.length===0)return!1;const e=this._getMaxRange(),n=t.ranges,r=n.length;for(let o=0;o<r;o++){const s=n[o];if(!w.CoordUtils.isRangeWithinRange(e,s))return!1}return!0}traverse(t=A.IRange.Orientation.Row,e=!1){let n=A.IRange.Direction.Right;n=t===A.IRange.Orientation.Row?e?A.IRange.Direction.Left:A.IRange.Direction.Right:e?A.IRange.Direction.Up:A.IRange.Direction.Down;const r=this._coords;if(r.ranges.length===0)return this.navigate(n);const o=this._getCellCoordsAsRangeCoords(r.cell);if(w.CoordUtils.isEqualRangesArrays([o],r.ranges))return this.navigate(n);const s=em(r,n,this._getCellCoordsAsRangeCoords.bind(this),this._hiddenRowsAt.bind(this),this._hiddenColumnsAt.bind(this));this.updateCoords(s)}clear(){this._setSelectionRanges(fl)}modify(t,e,n){if(this._selectionPolicy==="single")return;const r=this._coords,o=this._rangesFromCellOptional(r,t,e??r.cell);if(!o)return;const s=r.rangeIndex;this._setSelectionRanges(i=>i.length?i.map((l,c)=>s===c?o:l):[o]),n&&o&&this._setSelectionCell({colIndex:o.colStart,rowIndex:o.rowStart})}append(t,e=t,n){if(this._selectionPolicy!=="multiple"||!t||this._isCellOutOfBounds(t)||this._isCellOutOfBounds(e))return;const r=this._coords,o=this._cellToRangeActual(t,e);if(!o)return;const s=r.ranges.length>0?[...r.ranges]:[this._cellToRangeActual(r.cell,r.cell)];s.push(o);const i={ranges:s,cell:{rowIndex:o.rowStart,colIndex:o.colStart,...n},rangeIndex:s.length-1};w.CoordUtils.isEqualSelectionCoords(i,r)||this.updateCoords(i)}clearAndModify(t,e,n){const r=this._coords;t={...r.cell,...t},e=e??t;const o=this._rangesFromCellOptional(r,t,e);if(!o)return;const s={rowIndex:o.rowStart,colIndex:o.colStart},i={...s,...n},l=this._newSelectionMode;l==="clear"?(this._firstActiveCoords=i,this.clear()):l==="modify"?this.modify(s):this.append(s),this._setSelectionCell(i)}setAdjusting(t){this._adjusting=t,this._emitter.notify("onAdjustingChange")}getAdjusting(){return this._adjusting}addListeners(t,e){return this._emitter.addListeners(t,e)}_setSelectionRanges(t){const e=this._coords;let n=typeof t=="function"?t(e.ranges):t??fl;if(w.CoordUtils.isEqualRangesArrays(n,e.ranges))return;let r=Math.max(n.length?0:-1,Math.min(e.rangeIndex,n.length-1)),o=e.cell;r===-1||w.CoordUtils.isCellWithinRange(o,n[r])||(o={rowIndex:n[r].rowStart,colIndex:n[r].colStart}),n.length===1&&w.CoordUtils.isSingleCell(n[0])&&w.CoordUtils.isCellWithinRange(o,n[0])&&(n=[],r=-1);const s={cell:o,ranges:n,rangeIndex:r};w.CoordUtils.isEqualSelectionCoords(s,e)||this.updateCoords(s)}_setSelectionCell(t){const e=this._coords,n=t??tw,r=this._getCellCoordsAsRangeCoords(n);if(!w.CoordUtils.isSingleCell(r)&&e.ranges.length===0)return this.updateCoords({ranges:[r],rangeIndex:0,cell:n});if(w.CoordUtils.isEqualCells(n,e.cell))return;let o=e.ranges,s=e.rangeIndex;e.ranges.length===1&&(w.CoordUtils.isSingleCell(e.ranges[0])&&w.CoordUtils.isCellWithinRange(n,e.ranges[0])||!w.CoordUtils.isCellWithinRange(n,e.ranges[0]))&&(o=[],s=-1);const i={ranges:o,rangeIndex:s,cell:n};return w.CoordUtils.isEqualSelectionCoords(i,e)?void 0:this.updateCoords(i)}_isCellOutOfBounds(t){const e=this._getMaxRange();return t.rowIndex<e.rowStart||t.colIndex<e.colStart||t.colIndex>e.colEnd||t.rowIndex>e.rowEnd}_cellToRangeActual(t,e){const n={rowStart:Math.min(t.rowIndex,e.rowIndex),colStart:Math.min(t.colIndex,e.colIndex),rowEnd:Math.max(t.rowIndex,e.rowIndex),colEnd:Math.max(t.colIndex,e.colIndex)};if(this._canSelectionSpanMergedCells(n))return n;const r=this._getCellCoordsAsRangeCoords(t),o=this._getCellCoordsAsRangeCoords(e),s={rowStart:Math.min(r.rowStart,o.rowStart),colStart:Math.min(r.colStart,o.colStart),rowEnd:Math.max(r.rowEnd,o.rowEnd),colEnd:Math.max(r.colEnd,o.colEnd)},i=this._getMergedRanges(s);return w.CoordUtils.extendRangeToUnionRanges(s,i)}_rangesFromCellOptional(t,e,n){const r=t.ranges.length>0?t.ranges[t.rangeIndex]:{rowStart:t.cell.rowIndex,colStart:t.cell.colIndex,rowEnd:t.cell.rowIndex,colEnd:t.cell.colIndex},o={rowStart:Math.min(e.rowIndex??r.rowStart,n.rowIndex??r.rowStart),colStart:Math.min(e.colIndex??r.colStart,n.colIndex??r.colStart),rowEnd:Math.max(e.rowIndex??r.rowEnd,n.rowIndex??r.rowEnd),colEnd:Math.max(e.colIndex??r.colEnd,n.colIndex??r.colEnd)},s={rowIndex:o.rowStart,colIndex:o.colStart},i={rowIndex:o.rowEnd,colIndex:o.colEnd};if(!(this._isCellOutOfBounds(s)||this._isCellOutOfBounds(i)))return this._cellToRangeActual(s,i)}_getMaxRange(){return this._sheet.getEntireRange().getCoords()}get[Symbol.toStringTag](){return"[RangeShape]"}toString(){let t="";return t+=`selection:[${this._sheet.getRange(this._coords.cell).toString()}`,this._coords.ranges&&this._coords.ranges.length>0&&(t+=`, ${this._sheet.getRanges(this._coords.ranges).toString()}`),this._coords.rangeIndex!==void 0&&this._coords.rangeIndex!==-1&&(t+=`, ${this._coords.rangeIndex}`),t+="]",t}}class hi{constructor(t,e){this._c=t,this._m=e}getModel(){return this._m}getCoords(){return this._c}getPropertiesAt(t,e,n){return this._m.getPropertiesAt(t,e,n)}getSplit(t){const e=this._m;return[new hi(t[0],e),new hi(t[1],e)]}}class nw extends Xn{constructor(t){if(super({...t}),this._coordsCache=null,!t.json)throw new Error("json is required");this._sheet=t.sheet,this._styles=t.sheet?.getStyles()??new Br,this._options={...t},t.setOnContainerCoordsChange(this._processCoordsChange.bind(this)),t.setCreateSpatial(this._createSpatial.bind(this)),this._getContainerRanges=t.getContainerRanges,this._setContainerRanges=t.setContainerRanges;const e=this;this._options.transactions.addStateListener(this,{onRestoreOrRevert(){e._coordsCache=null},onBeforeCommitEnd(){e._coordsCache=null}}),this._fromJSON({...t.json})}getRanges(){return this._getContainerRanges()}setRanges(t,e){const n=this.getRanges(),r=this._setContainerRanges(t,e);return this._processCoordsChange({before:n?.getCoords()??null,after:r?.getCoords()??null}),this}setType(t,e){return this._updateState({type:t},{description:"Set Conditional Format Type",...e}),this}getType(){return this._getState().type}setPriority(t,e){return this._updateState({priority:t},{description:"Set Priority",...e}),this}getPriority(){return this._getState().priority}setStopIfTrue(t,e){return this._updateState({stopIfTrue:t},{description:`Set Stop ${t??!1}`,...e}),this}getStopIfTrue(){return this._getState().stopIfTrue??!1}getScalar(){return this._getState().value??null}getColorScale(){return this._getState().colorScale??null}getContainsText(){return this._getState().text}getCustom(){return this._getState().formulas}getDataBar(){return this._getState().dataBar??null}getIconSet(){return this._getState().iconSet}getPresetCriteria(){return this._getState().style}getTopBottom(){return this._getState()}getSnapshot(t){this.toJSON();const e=null,n=this,r=Object.freeze({...t});let o=!1;return{async copyTo(s,i){s.conditionals;const l=s.range;({...r,...i}).isCut&&!o&&(n.delete(),o=!0);const c={colStart:l.colStart,rowStart:l.rowStart,colEnd:e.colEnd-e.colStart+l.colStart,rowEnd:e.rowEnd-e.rowStart+l.rowStart};return console.log("implement copyTo"),c},getCoords:()=>e,getSource:()=>n,getName:()=>"Conditional Format",getMarkOptions:()=>r,isISnapshot:!0}}_processRestoreOrRevert(t,e,n){super._processRestoreOrRevert(t,e,n)}_createSpatial(t){return new hi(t,this)}_processCoordsChange(t){this._coordsCache=null,t.after?this._emitter.notify("onAnyChange"):this._delete()}update(t,e){if(this.isClosed())throw new Error("Table has been closed. No further operations are allowed.");const n=this._getState(),r=this._beginCommit(e?.description??"Update Conditional Format");try{const o={...n,...t};this._updateState(o,e),this._getEmitter().notify("onAnyChange"),r.commit()}catch(o){throw r.rollback(),o}return this}_processDelete(){this._getState(),super._processDelete()}_processStateChange(t,e,n){super._processStateChange(t,e,n),this._getEmitter().notify("onAnyChange")}toJSON(){const t={},e=this._getState();if(e===null)return null;const n=this.getRanges()?.toString();return n?(t.ref=n,t.type=e.type,e.priority!==0&&(t.priority=e.priority),e.stopIfTrue&&(t.stopIfTrue=e.stopIfTrue),e.style&&(t.style=e.style),e.colorScale&&(t.colorScale=e.colorScale),e.dataBar&&(t.dataBar=e.dataBar),e.iconSet&&(t.iconSet=e.iconSet),e.aboveAverage&&(t.aboveAverage=e.aboveAverage),e.equalAverage&&(t.equalAverage=e.equalAverage),e.stdDev!==0&&(t.stdDev=e.stdDev),e.bottom&&(t.bottom=e.bottom),e.percent&&(t.percent=e.percent),e.rank!==0&&(t.rank=e.rank),e.operator&&(t.operator=e.operator),e.formulas&&(t.formulas=e.formulas),e.text&&(t.text=e.text),e.timePeriod&&(t.timePeriod=e.timePeriod),t):null}_fromJSON(t){const e={};e.type=t.type??exports.IConditionalFormat.Type.CellIs,e.priority=t.priority??0,e.stopIfTrue=t.stopIfTrue??!1,e.style=t.style??null,e.colorScale=t.colorScale??null,e.dataBar=t.dataBar??null,e.iconSet=t.iconSet??null,e.aboveAverage=t.aboveAverage??!1,e.equalAverage=t.equalAverage??!1,e.stdDev=t.stdDev??0,e.bottom=t.bottom??!1,e.percent=t.percent??!1,e.rank=t.rank??0,e.operator=t.operator??null,e.formulas=t.formulas??null,e.text=t.text??null,e.timePeriod=t.timePeriod??null,this._updateState(e,{description:"Initialize Conditional Format"})}close(){super.close(),this.isClosed()||(this._updateState({},{description:"Close Conditional"}),this._stylesRemoveListener?.())}getCoords(){return this.getRanges().getCoords()[0]}getPropertiesAt(t,e,n){return null}get isIConditionalFormat(){return!0}}class rw{constructor(t,e){this._add=t,this._get=e}add(t,e){if(!t)throw new Error(Vn);return this._add(t,e)}getItems(t){let e;return t?.address&&(e=t.address),this._get(e,t?.ignoreHidden,t?.fullyContained)}getCount(){return this._get(null,!1,!1).length}}const Dd=(a,t)=>{if(t){if(t.getType()===exports.IFill.Type.Solid)a.background=We(t.getColor())||"none",a["mso-pattern"]="black none";else if(t.getType()===exports.IFill.Type.Pattern){const e=t;a.background=We(e.getBackground())||"none";const n=We(e.getForeground())||"";if(e.getPatternType()===exports.IFill.BuiltInSheetPattern.Solid)a["mso-pattern"]=`${a.background} none`,a.background=n;else{const r=(o=>Ut.get(o)?.cssKey??"solid")(e.getPatternType());a["mso-pattern"]=n+(r?" ":"")+r}}else if(t.getType()===exports.IFill.Type.Gradient){const e=t;a.background=We(e.getStops()?.[0]?.getColor())||"auto",a.msoGradient=Ng(e)||"auto"}}};class ow{constructor(t,e){if(this._visitedStyles=new Map,this._lastStyleClassId=63,this._wroteTD=!1,!t)throw new Error("Can not create with a null sheet.");this._sheet=t,this._includeSizeInCell=e??!1,this._normalStyle=t.getStyles().getNormal()}_createCSSStyle(t){const e=this._normalStyle,n={},r=(u,g)=>u===g||!(u&&!g)&&!(!u&&g)&&g.isEqual?.(u),o=t.getFont(),s=e.getFont();var i;r(o.getFill(),s.getFill())||(n.color=We(o.getFill())),r(o.getSize(),s.getSize())||(n["font-size"]=Yh(o.getSize())),r(o.getWeight(),s.getWeight())||(n["font-weight"]=o.getWeight()),r(o.getStyle(),s.getStyle())||(n["font-style"]=o.getStyle()),r(o.getUnderline(),s.getUnderline())||(n["text-decoration"]="underline",n["text-underline-style"]=(i=o.getUnderline())===exports.IFont.UnderlineStyle.Single?"single":i===exports.IFont.UnderlineStyle.Double?"double":i===exports.IFont.UnderlineStyle.SingleAccounting?"single-accounting":i===exports.IFont.UnderlineStyle.DoubleAccounting?"double-accounting":"none"),r(o.getFamily(),s.getFamily())&&r(o.getFallbacks(),s.getFallbacks())||(n["font-family"]=oi(o.getFamily(),o.getFallbacks())),r(t.getNumberFormat(),e.getNumberFormat())||(n["mso-number-format"]=td(t.getNumberFormat()));const l=t.getAlignment(),c=e.getAlignment();if(!r(l.getHorizontal(),c.getHorizontal())){const u=l.getHorizontal();u===exports.ITextFrame.HorizontalAlignment.CenterContinuous?n["text-align"]="center-across":u===exports.ITextFrame.HorizontalAlignment.Fill?n["text-align"]="fill":u===exports.ITextFrame.HorizontalAlignment.Distributed?n["text-align"]=l.getJustifyLastLine()?"121":"010":n["text-align"]=exports.ITextFrame.toCSSHorizontalTextAlign(u)}if(!r(l.getVertical(),c.getVertical())){const u=l.getVertical();u===exports.ITextFrame.VerticalAlignment.Distributed?n["vertical-align"]="121":n["vertical-align"]=Qh(u)}if(!r(l.getOverflow(),c.getOverflow())){const u=l.getOverflow();n["white-space"]=Zh(u),u===exports.ITextFrame.Overflow.Shrink&&(n["mso-text-control"]="shrinktofit")}var h;r(l.getRotation(),c.getRotation())||(n["mso-rotate"]=(h=l.getRotation(),(h%=360)<0&&(h+=360),h>180?h=360-h:h>1&&(h*=-1),h)),r(l.getIndent(),c.getIndent())||(n["mso-char-indent-count"]=l.getIndent()),r(t.getFill(),s.getFill())||Dd(n,t.getFill());const d=t.getBorder();return d.getTop().isNone()||(n["border-top"]=zn(d.getTop())),d.getLeft().isNone()||(n["border-left"]=zn(d.getLeft())),d.getRight().isNone()||(n["border-right"]=zn(d.getRight())),d.getBottom().isNone()||(n["border-bottom"]=zn(d.getBottom())),d.getDiagonalUp().isNone()||(n["border-mso-diagonal-up"]=zn(d.getDiagonalUp())),d.getDiagonalDown().isNone()||(n["border-mso-diagonal-down"]=zn(d.getDiagonalDown())),Object.keys(n).length===0?null:n}_createCSSNormalStyle(){const t=this._normalStyle,e={"padding-top":"1px","padding-left":"1px","padding-right":"1px","mso-ignore":"padding"},n=t.getFont(),r=t.getAlignment();return e.color=We(n.getFill()),Dd(e,t.getFill()),e["font-size"]=Yh(n.getSize()),e["font-weight"]=n.getWeight(),e["font-style"]=n.getStyle(),e["text-decoration"]=Tg(n.getUnderline(),n.getStrike()),e["font-family"]=oi(n.getFamily(),n.getFallbacks()),e["mso-font-charset"]="0",e["mso-background-source"]="auto",e["mso-number-format"]=td(t.getNumberFormat()),e["text-align"]=exports.ITextFrame.toCSSHorizontalTextAlign(r.getHorizontal()),e["vertical-align"]=Qh(r.getVertical()),e.border="none",e["mso-pattern"]="auto",e["white-space"]=Zh(r.getOverflow()),r.getOverflow()===exports.ITextFrame.Overflow.Shrink&&(e["mso-text-control"]="shrinktofit"),e["mso-rotate"]="0",r.getIndent()>0&&(e["mso-char-indent-count"]=r.getIndent()),e["mso-protection"]="locked visible",e}onCell(t,e,n){let r;const o=t.getSpans();if(o.width>1||o.height>1){if(!t.isTopLeft())return!1;o.height>1&&n.addAttribute("rowspan",o.height),o.width>1&&n.addAttribute("colspan",o.width)}let s=t.toTextUnformatted();t.getNumberFormat().repeatPlaceholder&&(s=t.getNumberFormat().repeatPlaceholder.repeat(5)),n.setPlainText(s||"");const i=t.getStyle(),l=i.getFont();if(l.getVerticalAlignment()===exports.IFont.VerticalAlignment.Super&&(s=`<sup>${s}</sup>`),l.getVerticalAlignment()===exports.IFont.VerticalAlignment.Sub&&(s=`<sub>${s}</sub>`),l.getStrike()&&(s=`<s>${s}</s>`),t.getHyperlink()&&(s=`<a href="${t.getHyperlink().getAddress()}">${s}</a>`),n.setHTMLText(s||"&nbsp"),!this._wroteTD){const h=this._createCSSNormalStyle();n.addSharedStyle("td",h),this._wroteTD=!0}let c=this._visitedStyles.get(i);if(!c){const h=this._createCSSStyle(i);h&&(c="xl"+ ++this._lastStyleClassId,this._visitedStyles.set(i,c),n.addSharedStyle("."+c,h))}if(c&&n.addAttribute("class",c),this._includeSizeInCell){const h=this._sheet.getColumnHeaders().at(e.colIndex).getSize();n.addAttribute("width",h),n.addStyle("width",w.CommonUtils.roundAccurately(h/exports.IFont.getDeviceScale(),2)+"pt");const d=this._sheet.getRowHeaders().at(e.rowIndex).getSize();n.addAttribute("height",d),n.addStyle("height",w.CommonUtils.roundAccurately(d/exports.IFont.getDeviceScale(),2)+"pt")}return r}onRow(t,e,n,r){const o=t.getSize();r.addAttribute("height",o),r.addStyle("height",w.CommonUtils.roundAccurately(o/exports.IFont.getDeviceScale(),2)+"pt"),t.isCustomSize()&&r.addStyle("mso-height-source","userset")}onColumn(t,e,n,r){const o=t.getSize();r.addAttribute("width",o),r.addStyle("width",w.CommonUtils.roundAccurately(o/exports.IFont.getDeviceScale(),2)+"pt"),t.isCustomSize()&&r.addStyle("mso-width-source","userset"),n>1&&r.addAttribute("colspan",n)}}const Ld=(a,t,e)=>{const n=a.getOrientation()===A.IRange.Orientation.Column,r=(n?"Column":"Row")+" Copy",o=a.getSnapshot(e);return{...o,getName:()=>r,getCoords:()=>t,copyTo:async(s,i)=>{const l=n?s.getColumnHeaders():s.getRowHeaders(),c={...e,...i};if(c.includeHeaders===!0){const h=await o.copyTo(l,c);return n?{colStart:h.min,rowStart:t.rowStart,colEnd:h.max,rowEnd:t.rowEnd}:{colStart:t.colStart,rowStart:h.min,colEnd:t.colEnd,rowEnd:h.max}}},getMarkOptions:()=>e}},sw=(a,t,e,n,r,o)=>{const s=e[0];let i,l;const c=()=>{if(l!==void 0)return;const[h,d]=((u,g)=>{const m=g.getRowHeaders(),f=g.getColumnHeaders(),p=g.getUsedRange()?.getCoords(),S=m.getUsedRange()?.getCoords(),_=f.getUsedRange()?.getCoords(),E={...w.CoordUtils.EmptyRange,...p,colEnd:Math.max(p?.colEnd??0,_?.max??0),rowEnd:Math.max(p?.rowEnd??0,S?.max??0)},C=new Map,I=[];u.onStart?.();const y={rows:[],cols:[]},b=new G_(C,I);b.setNode(y),u.onTable?.(b,E);let v=0;f.forEachSpan((D,B)=>{const P=B.getCoords();v=v+P.max-P.min+1;const L={};b.setNode(L),u.onColumn?.(B.getCellHeader(),P.min,P.max-P.min+1,b),y.cols.push(L)},{address:E,includeEmpty:!0,includeStyles:!0});let R=0;const x=[];if(m.forEachSpan((D,B)=>{const P=B.getCoords();R=R+P.max-P.min+1,x.push({min:P.min,max:P.max,value:B.getCellHeader()})},{address:E,includeEmpty:!0,includeStyles:!0,ignoreHidden:!1}),v*R>5e4){if(!Ad)throw Ad=!0,new w.PartialError("Unable to write more than 50000 cells to system clipboard. Items can still be pasted within the application to but if you want to copy to another application select a smaller set of data.");return[null,null]}let T=0,M=-1,F=null;g.forEach((D,B)=>{const P=B.getCoords(),L=B.getCell();if(P.rowIndex!==M){P.rowIndex>x[T].max&&++T;const H=x[T];F={cells:[]},b.setNode(F),u.onRow?.(H.value,P.rowIndex,1,b),y.rows.push(F),M=P.rowIndex}const W={};b.setNode(W),u.onCell(L,P,b)!==!1&&F.cells.push(W)},{address:E,includeEmpty:!0,ignoreHidden:!1}),u.onDone?.(),y.rows.length===0&&y.rows.push({cells:[]});const N=[];for(let D=0;D<I.length;D++){const B=I[D],P=C.get(B);N.push(B);let L="";const W=Object.keys(P);for(let H=0;H<W.length;H++){L+=" ",H===0&&(L+="{");const G=W[H];L+=`${G}:${P[G]};`,H===W.length-1?L+="}":L+=`
27
+ `}N.push(L)}const k=[`<div clipboard-uuid=xxx>
28
+ <html
29
+ xmlns:v="urn:schemas-microsoft-com:vml"
30
+ xmlns:o="urn:schemas-microsoft-com:office:office"
31
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
32
+ xmlns="http://www.w3.org/TR/REC-html40"
33
+ >`];k.push(`<head>
34
+ <meta http-equiv=Content-Type content="text/html; charset=utf-8">
35
+ <meta name=ProgId content=Excel.Sheet>
36
+ <meta name=Generator content="Microsoft Excel 15">`),k.push(`<style>
37
+ table
38
+ {mso-displayed-decimal-separator:"\\.";
39
+ mso-displayed-thousand-separator:"\\,";}
40
+ @page
41
+ {margin:.75in .25in .75in .25in;
42
+ mso-header-margin:.3in;
43
+ mso-footer-margin:.3in;
44
+ mso-horizontal-page-align:center;}
45
+ tr
46
+ {mso-height-source:auto;}
47
+ col
48
+ {mso-width-source:auto;}
49
+ br
50
+ {mso-data-placement:same-cell;}`),N.length>0&&k.push(N.join(`
51
+ `)),k.push("</style>"),k.push("</head>"),k.push("<body>"),k.push("<table>"),k.push("<!--StartFragment-->");const U=D=>{let B=(L=>{let W="";return L&&L.attributes&&L.attributes.length!==0&&L.attributes.forEach((H,G)=>{W.length>0&&(W+=" "),W+=`${G}=${H}`}),W})(D);B.length>0&&(B=" "+B);let P=(L=>{let W="";return L&&L.styles&&L.styles.length!==0&&(L.styles.forEach((H,G)=>{W.length>0&&(W+=";"),W+=G+":"+H}),W.length>0&&(W=`style='${W}'`)),W})(D);return P.length>0&&(P=" "+P),`${B}${P}`},O=[];return y.cols?.forEach(D=>{k.push(` <col${U(D)}>`)}),y.rows.forEach(D=>{k.push(` <tr${U(D)}>`);const B=[];D.cells.forEach(P=>{k.push(` <td${U(P)}>${P.htmlText??P.plainText??""}</td>`);const L=`${w.CommonUtils.castToString(P.plainText??"")?.replace(/"/g,'""')}`;B.push(L)}),O.push(B.join(" ")),k.push(" </tr>")}),k.push("<!--EndFragment-->"),k.push("</table>"),k.push("</body>"),k.push("</html>"),k.push("</div>"),[k.join(`
52
+ `),O.join(`
53
+ `).concat(`
54
+ `)]})(new ow(t),t.getRange(s));i=h??null,l=d??null};return{copyTo(h,d){const u={...r,...d};return d.isCut,o(h,u)},getMarkOptions:()=>r,getSource:()=>a,getName:()=>n,getCoords:()=>s,toText:()=>(c(),l),toHtml:()=>(c(),i),toImage:()=>null,isISnapshot:!0}},$s=(a,t)=>Math.round(a*t),Ud=(a,t,e)=>{const n=[],r=[];if(!a||a.length===0)return{sizes:n,hidden:r};if(!t||!e)return console.warn("_HeaderUtils:default size and scaleFactor should be available"),{sizes:n,hidden:r};let o=0,s=0,i=0,l=null,c=-2;const h=a.length;for(let d=0;d<h;d++){const u=a[d],g=u.min,m=u.max;o=n.length===0?0:n[n.length-1].runningOffsetMax,n.length>0&&n[n.length-1].spanSize>0&&o++,s<u.min&&n.push({indexMin:s,indexMax:g-1,runningOffsetMin:o,runningOffsetMax:Math.round(o+(g-s)*t*e)-1,runningHiddenRuns:i,spanSize:Math.round(t*e)});const f=n.length,p=n[f-1];o=f===0?0:p.runningOffsetMax,f>0&&p.spanSize>0&&o++;let S=0;u.value.h||(S=$s(u.value?.sz??t,e));const _=S===0?0:-1;S===0&&(i+=m-g+1,c+1===g?l.max=m:(l={min:g,max:m,value:!0},r.push(l)),c=m),f>0&&p.spanSize===S&&p.indexMax+1===g?(p.indexMax=m,p.runningHiddenRuns=i,p.runningOffsetMax=p.runningOffsetMin+(m+1-p.indexMin)*S+_):n.push({indexMin:g,indexMax:m,runningOffsetMin:o,runningOffsetMax:Math.round(o+(m+1-g)*S)+_,runningHiddenRuns:i,spanSize:S}),s=m+1}return{sizes:n,hidden:r}};function Fa(a,t,e){e!==void 0&&(e!==null?a[t]=e:delete a[t])}const zd=(a,t,e)=>{if(a==null)return null;let n={};if(typeof a=="number")n.colStart=a,n.colEnd=a,n.rowStart=a,n.rowEnd=a;else if(typeof a=="string"){if(t){if(a.match(/[0-9]+/))throw new Error("Invalid range address for header orientation")}else if(a.match(/[a-zA-Z]+/))throw new Error("Invalid range address for header orientation");let o=Ce(a,e);if(!o){const s=_g(a.toUpperCase(),!0);s?.colIndex!==void 0&&(n.colStart=s.colIndex,n.colEnd=s.colIndex),s?.rowIndex!==void 0&&(n.rowStart=s.rowIndex,n.rowEnd=s.rowIndex)}n={...n,...o}}const r={min:void 0,max:void 0};return t?(r.min=a.min??a.colStart??n.colStart,r.max=a.max??a.colEnd??n.colEnd):(r.min=a.min??a.rowStart??n.rowStart,r.max=a.max??a.rowEnd??n.rowEnd),r.min===void 0||r.max===void 0?null:r},Na=()=>{},ka=()=>0,iw=()=>!1,Pd=(a,t=!1)=>{if(!a||a.length===0)return w.CommonUtils.EmptyArray;const e=[];let n=null;const r=a.slice().sort((s,i)=>s.min-i.min),o=r.length;for(let s=0;s<o;s++){const i=r[s];n&&i.min<=n.max+1?t?n.max=Math.max(n.max,i.max):(n={min:n.max+1,max:i.max},e.push(n)):(n={min:i.min,max:i.max},e.push(n))}return e},nm=(a,t,e,n)=>{if(n!==void 0){if(n===null)return null;if(n?.isICellHeader)return n._headerState;if(n){const r=n,o={...e};let s,i=r.hidden,l=r.size;if(r.size!==void 0){if(typeof l=="function"){const c=e?.sz===void 0?a.getDefaultSize():e?.sz*a.getScaleFactor();l=l?.(c)}if(typeof l=="string"&&(l=xr(l,t.getNormal().getFont().getSize(),"px")),typeof l=="number"){const c=a.getMinSize(),h=a.getMaxSize();l=Math.max(c,Math.min(w.CommonUtils.roundAccurately(l,c),h)),r.relativeSize!==!0&&(l/=a.getScaleFactor()),isNaN(l)&&(console.warn("headerSize can not be NaN"),l=void 0),l===0&&(i=!0,l=void 0),s=!r.autoSize}else l===null?(l=null,s=!r.autoSize):l!==void 0&&(console.warn("headerSize can not be type",l),l=void 0)}return Fa(o,"sz",l),Fa(o,"h",i),Fa(o,"csz",s),Object.keys(o).length===0?null:o}}};class Wl{constructor(t,e,n){this._sheetHeader=t;const r=this._sheetHeader.getSheet().getStyles();this._styles=r,this._headerState=e,this._template=n}getSize(){const t=this._headerState?.sz;return Math.round(t===void 0?this._sheetHeader.getDefaultSize():t*this._sheetHeader.getScaleFactor())}getDisplayText(){return""+this.asCell().getValue()}getOrientation(){return this._sheetHeader.getOrientation()}isHidden(){return this._headerState?.h??!1}isCustomSize(){return this._headerState?.cs??!1}getSheetHeader(){return this._sheetHeader}getStyle(){return this._headerState?.s??this._styles.getNormal()}asCell(){return this._cellTemplate||(this._cellTemplate=this._sheetHeader.getSheet().createTemporaryCell({style:this.getStyle(),...this._template})),this._cellTemplate}getSizeRelative(){return this.getSize()/this._sheetHeader.getScaleFactor()}createTemporaryCellHeader(t){const e=nm(this._sheetHeader,this._sheetHeader.getSheet().getStyles(),this._headerState,t);return new Wl(this._sheetHeader,e,this._template)}isEqual(t){if(!t)return!1;if(t===this)return;const e=t;if(!e.isICellHeader)return!1;const n=this._headerState,r=e._headerState;return n===r||!(n&&!r||r&&!n)&&this.getSize()===e.getSize()&&this.isCustomSize()===e.isCustomSize()&&this.isHidden()===e.isHidden()&&this.getStyle()===e.getStyle()}isEmpty(){const t=this._headerState;return!t||t.sz===void 0&&t.csz===void 0&&!t.cs&&t.h===void 0&&!(!t.s||t.s!==this._styles.getNormal()||t.cs)}get[Symbol.toStringTag](){return"[SheetCellHeader]"}toString(){return`[SheetCellHeader: ${this.getDisplayText()}]`}get isICellHeader(){return!0}}const ds="The columns are protected. To make a change, unprotect the sheet. You might be requested to enter a password.",us="The rows are protected. To make a change, unprotect the sheet. You might be requested to enter a password.",In="Rows",bn="Columns";class aw{constructor(t,e){this._header=t,this._coords=e}_forEachSpan(t,e,n,r){const o=this._header,s=this._coords,i=o._options;r||(r=i.createCellHeader);let l=s;if(e?.address){const h=o._parseHeaderRangeAddress(e?.address);if(h&&(l=Kc(s,h),!l))return}const c=o._scanHeaders(t,n,r,i,l,e);if(c&&c.break)return c.break}forEachSpan(t,e){return this._forEachSpan(t,e,this._header._headers)}forEachVisibleSpan(t,e){const n=this._coords,r=n?.min??null,o=n?.max??null;let s;if(s=e?.includeHidden?t(r,o):Xu(this._header._indexedHidden,i=>{if(i.value)return;const l=t(i.min,i.max);return l&&l.break?l:void 0},r,o),s&&s.break)return s.break}forEach(t,e){let n=Number.MAX_SAFE_INTEGER,r=null;const o={getIndex:()=>n,getCellHeader:()=>r.getCellHeader(),getA1:s=>r.getA1(s),getCoords:()=>r.getCoords()};return this._forEachSpan((s,i)=>{r=i;const l=this._coords,c=l.max;for(let h=l.min;h<c;h++)n=h,t(s,o)},e,this._header._headers,()=>this.at(void 0))}updateHeaders(t,e){const n=this._header;return n._updateHeaderPairs([{address:this._coords,update:t}],{description:e?.description??`Update ${n._isColumn?bn:In} ${toString()}`,...e}),this}getCoords(){return{...this._coords}}setHidden(t){return this._header._setHidden(this._coords,t),this}getUsedRange(t){const e=this._header,n=e._headerRunCoords;return!n||n.min<0||n.max>e._maxDataIndex?null:Kc(n,this._coords)?e.getRange(n,t):null}getCount(){const t=this._coords;return t.max-t.min+1}getHeaderCount(){const t=this._coords;return t.max-t.min+1}getVisibleCount(){const t=this._coords;return this._header.getVisibleCount(t.min,t.max)}isEntireHeaders(){const t=this._header._maxRunCoords,e=this._coords;return!(e.min>t.min||e.max<t.max)}getSnapshot(t){return this._header._getSnapshot(this._coords,t)}clear(){return this._header._clear(this._coords),this}setSize(t,e){return this._header._setSize(this._coords,t,e),this}at(t){return this._header.at(this._coords.min+t)}getOrientation(){return this._header.getOrientation()}doBatch(t,e){return this._header.doBatch(n=>t(n),e)}getSheetHeader(){return this._header}getA1(){const t=this._coords,e=this._header,n=e._isColumn?{colStart:t.min,colEnd:t.max}:{rowStart:t.min,rowEnd:t.max};return Pe(n,e._maxRangeCoords)??jt}get[Symbol.toStringTag](){return"[SheetCellHeaderRange]"}toString(){return this.getA1()}get isICellHeaderRange(){return!0}}class lw{constructor(t,e){this._header=t,this._coords=e}updateHeaders(t,e){const n=this._header;return n.updateHeaderPairs([{address:this._coords,update:t}],{description:e?.description??`Update ${n._isColumn?bn:In} ${toString()}`,...e}),this}getCoords(){return{...this._coords}}setHidden(t){return this._header._setHidden(this._coords,t),this}getCount(){return this._coords.length}getHeaderCount(){const t=Pd(this._coords,!0);let e=0;const n=t.length;for(let r=0;r<n;r++){const o=t[r];e+=o.max-o.min+1}return e}getVisibleCount(){const t=Pd(this._coords,!0);let e=0;const n=this._header,r=t.length;for(let o=0;o<r;o++){const s=t[o];e+=n.getVisibleCount(s.min,s.max)}return e}isEntireHeaders(){const t=this._header._maxRunCoords,e=this._coords,n=t.min,r=t.max,o=e.length;for(let s=0;s<o;s++){const i=e[s];if(n<i.min||r>i.max)return!1}return!0}isEntireHeadersAny(){const t=this._header._maxRunCoords,e=this._coords,n=t.min,r=t.max,o=e.length;for(let s=0;s<o;s++){const i=e[s];if(i.min<=n&&i.max>=r)return!0}return!1}clear(){return this._header._clear(this._coords),this}setSize(t,e){return this._header._setSize(this._coords,t,e),this}at(t){const e=this._coords;return t<0||t>=e.length?null:this._header.getRange(e[t])}getOrientation(){return this._header.getOrientation()}doBatch(t,e){return this._header.doBatch(n=>t(n),e)}getSheetHeader(){return this._header}getA1(){const t=this._coords,e=this._header;return((n,r,o=Pe)=>{if(!n)return jt;const s=n.length,i=new Array(s);for(let l=0;l<s;l++)i[l]=o(n[l],r);return i.join(",")})(((n,r,o)=>{if(!n||n.length===0)return w.CommonUtils.EmptyArray;const s=n.length;let i=new Array(s);const l=o?r.rowStart:r.colStart,c=o?r.rowEnd:r.colEnd;for(let h=0;h<s;h++){const d=n[h];i[h]={colStart:o?d.min:l,rowStart:o?l:d.min,colEnd:o?d.max:c,rowEnd:o?c:d.max}}return i})(t,e._maxRangeCoords,e._isColumn),e._maxRangeCoords)??jt}get[Symbol.toStringTag](){return"[SheetCellHeaderRanges]"}toString(){return this.getA1()}get isICellHeaderRanges(){return!0}}class Wd{constructor(t){if(this._emitter=null,this._closed=!1,this._scaleFactor=1,this._defaultSize=-1,this._defaultCustomSize=-1,this._defaultPxSize=1,this._isColumn=!0,this._indexedSizes=[],this._indexedHidden=[],this._headerRunCoords=null,this._hasCustomFormats=!1,this._hasStyles=!1,this._hasHidden=!1,this._lastHeaderRead=null,this._readCache=null,this._lastVisibleRunsRead=null,this._lastVisibleRunCoords=null,this._options={isProtected:()=>!1,getUpdateId:()=>null,scaleFactor:()=>1,defaultSize:()=>100,minSize:()=>0,maxSize:()=>500,maxSheetCoords:()=>null,orientation:A.IRange.Orientation.Column,createCellHeader:(r,o,s)=>new Wl(r,o,s),...t},!this._options.sheet)throw new Error("An ISheet must be provided");if(this._emptyHeader=this._options.createCellHeader(this,null,null),this._scaleFactor=this._options.scaleFactor(),this._defaultSize=this._options.defaultSize(),this._defaultSize<=0)throw new Error("defaultSize must be greater than 0");this._defaultPxSize=$s(this._defaultSize,this._scaleFactor);const e=this._options.orientation===A.IRange.Orientation.Column;this._isColumn=e,this._cacheMaxIndex();const n=this;this._options.setContainerShiftedCallback&&this._options.setContainerShiftedCallback((r,o)=>{o<0?n._deleteHeaders(r,-o):n._insertHeaders(r,o)}),this._options.sheet&&(this._sheetRemoveListener=this._options.sheet.addListeners({onProtectionChange(){},onSelectionChange(r){n._selection=r.getSelection().getCoords(),n._selectionRuns=null},onStyleChange:()=>{},onViewChange(){const r={runs:n._headers};n._invalidSizes(),n._cacheMaxIndex(),n._emitter.notify("onSizesChange",{params:r})}},{transactional:!1}),n._selection=n._options.sheet.getSelection().getCoords()),this._transactions=this._options.transactions??new xe({transient:!0}),this._emitter=new Xt(n,this._transactions),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(r){n._lastHeaders!==r.headers&&n._onHeaderChange()}}),this.fromJSON(this._options?.json)}addListeners(t,e){return this._emitter.addListeners(t,e)}_cacheMaxIndex(){const t=this._options.maxSheetCoords()??{colStart:0,rowStart:0,colEnd:Number.MAX_SAFE_INTEGER,rowEnd:Number.MAX_SAFE_INTEGER};this._maxSheetCoords=t;const e=this._isColumn,n=e?t.colEnd:t.rowEnd;this._maxDataIndex=n,this._maxRunCoords={min:0,max:n},this._maxDataRange=this.getRange(this._maxRunCoords),this._maxRangeCoords={colStart:0,rowStart:0,colEnd:e?n:0,rowEnd:e?0:n}}_invalidSizes(t=!1){const e=this._defaultCustomSize===-1?this._options.defaultSize():this._defaultCustomSize,n=this._options.scaleFactor();if(t||e!==this._defaultSize||n!==this._scaleFactor){this._defaultSize=e,this._scaleFactor=n,this._defaultPxSize=$s(e,n);const r=Ud(this._headers,e,n);this._indexedSizes=r.sizes,this._indexedHidden=r.hidden,this._lastVisibleRunsRead=null,this._lastVisibleRunCoords=null}}_onHeaderChange(){this._lastHeaders=null;const t=this._headers,e=this._getState();this._defaultCustomSize=e.defaultCustomSize;const n=this._defaultCustomSize===-1?this._options.defaultSize():this._defaultCustomSize;this._defaultSize=n;const r=this._scaleFactor;this._defaultPxSize=$s(n,r);const o=Ud(t,n,r);this._indexedSizes=o.sizes,this._indexedHidden=o.hidden,this._lastHeaderRead=null,this._readCache=Ju(this._lastHeaders),this._lastVisibleRunsRead=null,this._lastVisibleRunCoords=null;const s=this._options.sheet.getStyles().getNormal();let i=!1,l=!1,c=!1,h=-1;for(let g=t.length-1;g>=0;g--){const m=t[g],f=m.value,p=f.s,S=f.csz||f.sz!==n;h!==-1||!S&&p===s||(h=m.max),i=i||f.cs,l=l||f.s!==s,c=c||f.h||f.sz===0}h=Math.min(h??0,this._maxDataIndex);const d=Math.min(t[0]?.min??h,h);this._headerRunCoords=Object.freeze({min:d,max:h}),this._hasCustomFormats=i,this._hasStyles=l,this._hasHidden=c;const u=e.runs;this._emitter.notify("onSizesChange",{params:u})}getSheet(){return this._options.sheet}getOrientation(){return this._isColumn?A.IRange.Orientation.Column:A.IRange.Orientation.Row}getTextAt(t){return this._options.getTextAt?.(t)??t+""}_scanHeaders(t,e,n,r,o,s){const i=o?.min??null,l=o?.max??null,c=s?.includeEmpty??!1,h=s?.includeStyles??!1,d=s?.ignoreHidden??!1,u=s?.includeSizes??!1,g=this,m=this._options.sheet.getStyles().getNormal(),f=this._defaultSize,p=this._scaleFactor,S=this._emptyHeader;let _;const E={getCoords(){if(!_)throw new Error(vr);return{min:_.min,max:_.max}},getIndex:()=>_.min,getCellHeader(){if(!_)throw new Error(vr);return _.value?n(g,_.value):S},getA1(I){if(!_)throw new Error(vr);return this._parseHeaderRangeAddress({min:i+I,end:i+I})??_}},C=Xu(e,I=>{const y=I.value;if(!c&&!y)return;let b=c;if(u&&!b&&y&&(y.csz||y.sz!==f)&&(b=!0),h&&!b&&y&&(y.s&&y.s!==m||y.cs)&&(b=!0),y&&y.h===!0&&(b=!d),!b)return;let v=f;I.value&&(v=I.value.h?0:I.value?.sz??f),v*=p,_=I;const R=t(v,E);return R&&R.break?R:void 0},i,l);return _=null,C}getRange(t,e){if(!t)throw new Error(Vn);const n=this._parseHeaderRangeAddress(t);return n.min<0||n.max>this._maxDataIndex?(function(r){return Object.freeze({getCoords:()=>null,getOrientation:()=>r.getOrientation(),toString:()=>jt,getA1:()=>jt,getCount:ka,getHeaderCount:ka,getVisibleCount:ka,isEntireHeaders:iw,forEach:Na,forEachSpan:Na,forEachVisibleSpan:Na,getUsedRange:gt,getSnapshot:gt,updateHeaders:gt,clear:gt,setHidden:gt,setSize:gt,at:gt,doBatch:gt,getSheetHeader:()=>r,isICellHeaderRange:!0})})(this):new aw(this,n)}getRanges(t,e){if(!t)throw new Error(Vn);const n=((r,o,s)=>{if(typeof r=="string"){const c=wi(r,s),h=c?c.length:0,d=new Array(h);for(let u=0;u<h;u++){const g=c[u];d[u]={min:o?g.colStart:g.rowStart,max:o?g.colEnd:g.rowEnd}}return r=d,d}Array.isArray(r)||(r=[r]);const i=r.length,l=new Array(i);for(let c=0;c<i;c++)l[c]=zd(r[c],o,s);return l})(t,this._isColumn,this._maxRangeCoords);return new lw(this,n)}getSelectedRange(t){const e=this._options.sheet.getSelection().getRangesCoords()[0];return this.getRange(e,t)}getSelectedRanges(t){return this.getRanges(this._options.sheet.getSelection().getRangesCoords(),t)}getUsedRange(t){return this.getRange(this._headerRunCoords,t)}getEntireRange(t){return t?this.getRange(this._maxRangeCoords,t):this._maxDataRange}at(t){if(t<0||t>this._maxDataIndex)return this._emptyHeader;if(this._lastHeaderRead?.offset===t)return this._lastHeaderRead.header;const e=qu(t,this._readCache);if(!e)return this._emptyHeader;const n=this._options.getTextAt?.(t)??t+"",r=this._options.createCellHeader(this,e,{value:n});return this._lastHeaderRead={offset:t,header:r},r}updateHeaderPairs(t,e){if(this.isProtected())throw new Error(this._isColumn?ds:us);return this._updatePairsInternal(t,e)}_parseHeaderRangeAddress(t){if(t==null)throw new Error("Must specify a range.");const e=zd(t,this._isColumn,this._maxRangeCoords);if(!e)throw new Error("Invalid header range.");return e}_update(t,e,n){if(!t||(Array.isArray(t)||(t=[t]),t.length===0))return;const r=[],o=t.length;for(let s=0;s<o;s++){const i=this._parseHeaderRangeAddress(t[s]);this.getRange(i).forEachSpan((l,c)=>{const h=c.getCoords();r.push({address:h,update:e})},{includeEmpty:!0})}return this.updateHeaderPairs(r,n),this}_setSize(t,e=null,n){(n?.relativeSize??!1)||typeof e!="number"||(e+="px");const r={size:e,autoSize:n?.autoSize??!1},o=`Resize ${this._isColumn?bn:In}`;return this._update(t,r,{description:o,...n}),this}_setHidden(t,e=null){const n={hidden:e},r=`${e?"Unhide":"Hide"} ${this._isColumn?bn:In}`;return this._update(t,n,{description:r}),this}_clear(t,e){const n="Clear "+(this._isColumn?"Column Headers":"Row Headers");this.updateHeaderPairs([{address:t,update:null}],{description:n,...e})}_getSnapshot(t,e){if(t.min<0)return w.CommonUtils.EmptyArray;e=Object.freeze({...e});const n=this,r=this._getState(),o=(this._isColumn?"Column":"Row")+" Headers";return{copyTo(s,i){const l={...e,...i},c=s.getCoords(),h=c.min-t.min,d=[];if(n._scanHeaders((u,g)=>{const m=g.getCoords();d.push({address:{min:m.min+h,max:m.max+h},update:g.getCellHeader()})},r.headers,n._options.createCellHeader,null,t,{includeSizes:!0,includeStyles:!0}),!l.fitDestination){let u=t.max-t.min+1,g=c.max-c.min+1,m=w.CommonUtils.roundAccurately(g/u);if(m>1&&g%u===0){const f=d.length;for(let p=0;p<m;p++)for(let S=0;S<f;S++){const _=d[S],E=_.address,C=(p+1)*u;d.push({address:{min:E.min+C,max:E.max+C},update:_.update})}}}if(s.doBatch(()=>{s.clear(),s.getSheetHeader()._updatePairsInternal(d)},o),l.isCut){const u=n._maxRunCoords;t.min<=u.min&&t.max>=u.max&&n._clear(t)}return c},getCoords:()=>t,toText:()=>null,toHtml:()=>null,toImage:()=>null,getSource:()=>n,getName:()=>o,isISnapshot:!0}}isProtected(){return this._options?.isProtected()??!1}getScaleFactor(){return this._options.scaleFactor()??1}get _headers(){return this._lastHeaders===null&&(this._lastHeaders=this._getState()?.headers),this._lastHeaders}_updatePairsInternal(t,e){if(!t||t.length===0)return null;const n=e?.skipCustomSize??!1,r=this._isColumn,o=this.getSheet().getStyles(),s=this._beginCommit({description:e?.description??`Update ${r?bn:In}`});let i=[...this._getState().headers],l=!1,c=!1;const h=r?exports.IBorder.Edge.Top:exports.IBorder.Edge.Left;exports.IBorder.oppositeEdge(h);const d=r?exports.IBorder.Edge.Right:exports.IBorder.Edge.Bottom;exports.IBorder.oppositeEdge(d);const u=this,g=(C,I)=>{if(this.isProtected())throw new Error(this._isColumn?ds:us);c=c||I===null,!c&&I&&(c=!!I.isICellHeader||I?.size!==void 0||I?.hidden!==void 0),l=l||I===null||I?.style!==void 0||I?.isICellHeader;const y={onUpdate:(b,v)=>n&&b&&b.csz?b:nm(u,o,b,v),onSplit:b=>[b.value,b.value],onMerge:(b,v,R,x)=>{if(!(b&&!v||!b&&v||!b&&!v)&&b.sz===v.sz&&b.csz===v.csz&&b.h===v.h&&b.cs===v.cs)return b},isCull:(b,v,R)=>b===void 0};i=Qe(Jc(i,{min:C.min,max:C.max,value:I},y))},m=t.length,f=new Array(m);for(let C=0;C<m;C++){const I=t[C],y=this._parseHeaderRangeAddress(I.address);if(y.min<0||y.max>this._maxDataIndex)throw new w.OutOfBoundsError(ni);g(y,I.update),f[C]=y}let p=!1,S=i.length;if(S>0&&i[0].min===0&&i[S-1].max===this._maxDataIndex){let C=i[0],I=!1,y=-1;for(let R=0;!I&&R<S;R++){const x=i[R],T=x.min;if(y+1!==T){I=!0;continue}const M=x.max;y=M,C.max-C.min<M-T&&(C=x)}I||(this._defaultCustomSize=C.value?.sz??-1,p=!0);const b=this._defaultCustomSize===-1?this._options.defaultSize():this._defaultCustomSize,v=[];for(let R=0;R<S;R++){const x=i[R],T=x.value;if(T===null)continue;const M=Object.keys(T).length;M!==0&&(M!==1||T.sz===void 0||T.sz!==null&&T.sz!==b)&&v.push(x)}i=v,S=i.length}const _=[],E=this._defaultSize;for(let C=0;C<S;C++){const I=i[C],y=I.value;if(y===null)continue;let b=!1;y.sz!==void 0&&y.sz!==E&&(b=!0),y.csz&&(b=!0),y.h&&(b=!0),y.cs&&(b=!0),b&&_.push(I)}return i=_,S=i.length,p&&u._invalidSizes(!0),this._updateState({headers:i,defaultCustomSize:this._defaultCustomSize,runs:f}),s.commit(),f}hasCustomFormats(){return this._hasCustomFormats}hasCustomStyles(){return this._hasStyles}hasHidden(){return this._hasHidden}getDefaultSize(){return this._defaultPxSize}getMaxSize(){return Math.ceil(this._options.maxSize()*this._options.scaleFactor())}getMinSize(){return Math.floor(this._options.minSize()*this._options.scaleFactor())}findOffset(t){return((e,n,r)=>{if(n<0)return 0;if(!e||e.length===0)return n*r;const o=e[e.length-1];if(n>o.indexMax)return o.runningOffsetMax+Math.round((n-o.indexMax-1)*r+(o.spanSize!==0?1:0));const s=e[e.length===1?0:w.CommonUtils.findEqualOrGreater(e,n,l=>l.indexMax)],i=n-s.indexMin;return s.runningOffsetMin+i*s.spanSize})(this._indexedSizes,t,this._defaultPxSize)}findIndex(t){return Math.min(Math.max(0,((e,n,r)=>{if(!e||e.length===0)return Math.floor(n/r);const o=e[e.length-1];if(n>o.runningOffsetMax)return o.indexMax+Math.ceil((n-o.runningOffsetMax)/r);const s=e[e.length===1?0:w.CommonUtils.findEqualOrGreater(e,n,l=>l.runningOffsetMax)];if(s.spanSize===0)return Math.max(0,s.indexMin-1);const i=n-s.runningOffsetMin;return s.indexMin+Math.floor(i/s.spanSize)})(this._indexedSizes,t,this._defaultPxSize)),this._maxDataIndex)}findVisibleIndex(t){return this._lastVisibleRunsRead===t||(this._lastVisibleRunCoords=((e,n,r=Number.MAX_SAFE_INTEGER)=>{if(!e||e.length===0)return{min:n,max:n};let o=e.length-1,s=e[o];if(n>s.indexMax){const l=n-s.runningHiddenRuns;return{min:l,max:l}}o=e.length===1?0:w.CommonUtils.findEqualOrGreater(e,n,l=>l.indexMax),s=e[o];const i=s.spanSize===0?Math.max(-1,s.indexMin-1-(e[o-1]?.runningHiddenRuns??1)):n-s.runningHiddenRuns;return{min:i,max:i+Math.min(r+1,s.spanSize===0?1:0)}})(this._indexedSizes,t,this._maxDataIndex),this._lastVisibleRunsRead=t),this._lastVisibleRunCoords}getSpanSize(t,e=t+1){return this.findOffset(e)-this.findOffset(t)}getVisibleCount(t,e){if(t>e)throw new Error("Invalid arguments.");if(t<0||e>this._maxDataIndex)throw new w.OutOfBoundsError;return this._hasHidden?((n,r,o)=>{let s=o-r+1;if(n.length===0)return s;let i=n.length-1,l=n[i];if(r>l.indexMax)return s;i=n.length===1?0:w.CommonUtils.findEqualOrGreater(n,r,d=>d.indexMax),l=n[i];let c=l.runningHiddenRuns;if(l.spanSize===0&&r<=l.indexMax){const d=l.indexMax-l.indexMin+1;s-=Math.min(d,l.indexMax-r+1)}o>l.indexMax&&i<n.length&&(i=w.CommonUtils.findEqualOrGreater(n,o,d=>d.indexMax),l=n[Math.min(i,n.length-1)]);let h=l.runningHiddenRuns;if(l.spanSize===0&&l.indexMin<=o){const d=l.indexMax-l.indexMin+1;s-=Math.min(d,o-l.indexMin+1),h-=d}return s-=h-c,s})(this._indexedSizes,t,e):e-t+1}isSelectedAll(t){const e=this.getSelectedRuns();if(e.length===0)return!1;const n=e[w.CommonUtils.findEqualOrGreater(e,t,r=>r.max)];return!(!n||t<n.min||t>n.max)&&n.value.isSelectedAll}isSelected(t){const e=this.getSelectedRuns();if(e.length===0)return!1;const n=e[w.CommonUtils.findEqualOrGreater(e,t,r=>r.max)];return!(!n||t<n.min||t>n.max)}getSelectedRuns(){let t=this._selectionRuns;return t||(this._selection&&(t=((e,n,r)=>{let o=[];n?.ranges&&n.ranges.length>0?o=n.ranges:n?.cell&&(o=[w.CoordUtils.cellToRange(n?.cell)]);let s=[];const i=e.getOrientation()===A.IRange.Orientation.Column,l=o.length;for(let c=0;o&&c<l;c++){const h=o[c],d=i?h.colStart:h.rowStart,u=i?h.colEnd:h.rowEnd,g=i?h.rowStart:h.colStart,m=i?h.rowEnd:h.colEnd,f=i?r.rowStart:r.colStart,p=i?r.rowEnd:r.colEnd,S=g<=f&&m>=p;s=Qe(Jc(s,{min:d,max:u,value:{isSelectedAll:!1}},{onUpdate:(_,E)=>{const C=Xa(_,E);return C.isSelectedAll=_?.isSelectedAll||S,C}}))}return s})(this,this._selection,this._maxSheetCoords)),t||(t=w.CommonUtils.EmptyArray)),this._selectionRuns=t,this._selectionRuns}hiddenHeadersAt(t,e=!1){if(this._indexedSizes.length===0)return 0;let n=this._indexedSizes.length===1?0:w.CommonUtils.findEqualOrGreater(this._indexedSizes,t,o=>o.indexMax),r=this._indexedSizes[n];return!r||r.spanSize!==0||r.indexMin>t||r.indexMax<t?0:e?t-r.indexMin+1:r.indexMax-t+1}_insertHeaders(t,e){if(this.isProtected())throw new Error(this._isColumn?ds:us);if(e<=0)return;const n=this._beginCommit({description:`Insert ${this._isColumn?bn:In}`}),r=this._getState();let o=[...r.headers];o=Qe(((i,l,c=1)=>{const h=w.CommonUtils.findEqualOrGreater(i,l,m=>m.max),d=i.slice(0,h),u=[],g=[];if(!i[h])return{preceding:d,modified:g,trailing:u};i[h].min>=l?u.push({...i[h],min:i[h].min+c,max:i[h].max+c}):g.push({...i[h],min:i[h].min,max:i[h].max+c});for(let m=h+1;m<i.length;m++)u.push({...i[m],min:i[m].min+c,max:i[m].max+c});return{preceding:d,modified:g,trailing:u}})(o,t,e));const s=[{min:t,max:t+e}];this._updateState({headers:o,runs:Qe($n([...r?.runs??[],...s]))}),n.commit()}_deleteHeaders(t,e){if(this.isProtected())throw new Error(this._isColumn?ds:us);const n=this._beginCommit({description:`Delete ${this._isColumn?bn:In}`}),r=this._getState();let o=[...r.headers];o=Qe(gp(o,t,e));const s=[{min:t,max:t+e}];this._updateState({headers:o,runs:Qe($n([...r?.runs??[],...s]))}),n.commit()}beginCommit(t){return this._beginCommit(typeof t=="string"?{description:t}:t)}doBatch(t,e){return this._transactions.doBatch(t,typeof e=="string"?{description:e}:{description:"Update Header",...e})}isClosed(){return this._closed}close(){this._sheetRemoveListener?.(),this._emitter.close(),this._transactionsRemoveListener?.(),this._closed=!0}_getState(){return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(t)}_updateState(t){const e=this._transactions.beginCommit();try{e.updateState(this,t),this._onHeaderChange(),e.commit()}catch(n){throw e.rollback(),n}}fromJSON(t){const e=t||{};this._defaultCustomSize=e.defaultSize??-1,this._defaultCustomSize<=0&&(this._defaultCustomSize=-1),this._invalidSizes();const n=this._options.sheet.getStyles().beginPersist();try{const r=[],o=e.headers?e.headers.length:0,s=this._maxDataIndex;for(let i=0;i<o;i++){let l=e.headers[i];if(l.min>=s)continue;let c={min:l.min,max:Math.min(l.max,s)};const h={};l.sz!==void 0&&l.sz!==-1&&(h.sz=l.sz),l.h!==void 0&&(h.h=l.h),l.csz!==void 0&&(h.csz=l.csz),Object.keys(h).length===0&&(h.cs=!0),c.value=h,r.push(c)}this._updateState({headers:r,defaultCustomSize:this._defaultCustomSize})}finally{n.endPersist()}}toJSON(){if(this._headers.length===0&&this._defaultCustomSize===-1)return null;const t={headers:[]};if(this._defaultCustomSize!==-1&&(t.defaultSize=w.CommonUtils.roundAccurately(this._defaultCustomSize,8)),this._headers.length===0)return t;const e=this._defaultCustomSize,n=this.getSheet().getStyles().beginPersist(),r=this._headers.length;for(let o=0;o<r;o++){const s=this._headers[o],i=s.value;if(!i)continue;const l={min:s.min,max:s.max};i.sz!==void 0&&i.sz!==e&&(l.sz=w.CommonUtils.roundAccurately(i.sz,8),i.csz!==void 0&&(l.csz=i.csz)),i.h===!0&&(l.h=i.h),Object.keys(l).length>2&&t.headers.push(l)}return n.endPersist(),t}get[Symbol.toStringTag](){return"[SheetHeader]"}toString(){return"[SheetHeader]"}}class Hd{constructor(t,e){this._c=t,this._tvTl=e}tvTl(){return this._tvTl(this._c)}getCoords(){return this._c}}const rm=a=>{let t="";const e=Us,n=a.length;for(let r=0;r<n;r++){const o=a[r];o.type==="cell"?t+=e(o.value):t+=o.value}return t},om=(a,t=0,e=0)=>{let n="";const r=Eg,o=a.length;for(let s=0;s<o;s++){const i=a[s];i.type==="cell"?n+=r(i.value,t,e):n+=i.value}return n};class cw{constructor(t,e,n){this._c=t,this._tokens=e,this._references=n||w.CommonUtils.EmptyArray}getFormulaTextAt(t,e,n=!1){return n?rm(this._tokens):om(this._tokens,t,e)}getTokensAt(t,e,n){let r=this._tokens;return n!==void 0&&(r=((o,s)=>{const i=o.length,l=[];if(s===void 0)return w.CommonUtils.EmptyArray;let c=-1,h=!1;for(let d=0;!h&&d<i;d++){const u=o[d],g=u.evalIndex??Number.MAX_SAFE_INTEGER;if(c===-1){if(g!==s)continue;c=d}g>s?h=!0:l.push(u)}h=!1;for(let d=c-1;!h&&d>=0;d--){const u=o[d];(u.evalIndex??Number.MAX_SAFE_INTEGER)>s?h=!0:l.unshift(u)}return l.length>1&&l[0].type==="whitespace"&&l.shift(),l.length>1&&l[l.length-1].type==="whitespace"&&l.pop(),l})(r,n)),r=((o,s=0,i=0)=>{const l=o.length,c=new Array(l);for(let h=0;h<l;h++){const d=o[h];if(d.type!=="cell"){c[h]=d;continue}const u={...d},g={...u.value};u.value=g,c[h]=u,g.colIndex===Number.MIN_SAFE_INTEGER||g.$colIndex||(g.colIndex+=i),g.rowIndex===Number.MIN_SAFE_INTEGER||g.$rowIndex||(g.rowIndex+=s)}return c})(r,t,e),r}getReferencesAt(t,e){return((n,r=0,o=0)=>{const s=n.length,i=new Array(s);for(let l=0;l<s;l++){const c=n[l];if(typeof c=="string"||c instanceof A.FormulaError.Known){i[l]=c;continue}const h={...c};i[l]=h,h.colStart===Number.MIN_SAFE_INTEGER||h.$colStart||(h.colStart+=o),h.rowStart===Number.MIN_SAFE_INTEGER||h.$rowStart||(h.rowStart+=r),h.colEnd===Number.MIN_SAFE_INTEGER||h.$colEnd||(h.colEnd+=o),h.rowEnd===Number.MIN_SAFE_INTEGER||h.$rowEnd||(h.rowEnd+=r)}return i})(this._references,t,e)}toJSON(){const t=this._c;return[cn(t),this.getFormulaTextAt(t.rowStart,t.colStart)]}getCoords(){return this._c}}class di{constructor(t,e,n){this.groupId=t,this.uuid=e,this.noShift=n}onRemove(t){}getShifted(t){if(!t.after)return null;const e=this.noShift;return e?void 0:{...t.after,value:new di(this.groupId,this.uuid,e)}}getSplit(t,e){}copyTo(t,e){return new di(this.groupId,this.uuid,this.noShift)}canTile(t,e){return!1}}class ui{constructor(t,e,n,r,o,s,i,l,c,h){this.uuid=t,this.spatialsIds=e,this.isRanges=r,this.coords=n,this.sheet=o,this.generation=s,this.handler=i,this.handlerW=l,this.removeListener=c,this.options=h}delete(){this.removeListener()}createRangeEvent(t,e){const n=this;let r;const o=()=>{if(r)return r;const i=n.sheet,l=n.isRanges,c=n.coords;return e||!c||c.length===0?rn(i,i.getEntireRange().getCoords(),null,e):l?(r=i.getRanges(n.coords),r):(r=i.getRange(n.coords[0]),r)},s=t.trigger;return{getSource:o,getFrom:()=>null,getTo:()=>null,trigger:s,isTransactional:t.isTransactional??!0,toString:()=>`SheetRangeEvent: ('${s}', ${o().toString()})`,timeStamp:t.timeStamp??Date.now()}}notify(t,e){const n=this.createRangeEvent(t,e),r=this.handler??this.handlerW.deref();try{r?.(n)}catch(o){console.warn(o)}this.options?.once&&this.removeListener()}processRemove(t){const e=this.spatialsIds,n=e.indexOf(t.value.uuid);console.assert(n!==-1,"invalid uuid");const r=this.coords,o=r.slice(0,n).concat(r.slice(n+1)),s=e.slice(0,n).concat(e.slice(n+1));return new ui(this.uuid,s,o,this.isRanges,this.sheet,this.generation,this.handler,this.handlerW,this.removeListener,this.options)}processShift(t){const e=this.spatialsIds.indexOf(t.value.uuid);console.assert(e!==-1,"invalid uuid");const n=[...this.coords];return n[e]={...n[e],...w.CoordUtils.sanitizeRange(t)},new ui(this.uuid,this.spatialsIds,n,this.isRanges,this.sheet,this.generation,this.handler,this.handlerW,this.removeListener,this.options)}processSplit(t){}processMerge(t){}}const sm=Object.freeze({coords:w.CoordUtils.EmptyCell,topLeft:w.TypesUtils.EmptyTopLeft}),hw=Object.freeze({cell:w.CoordUtils.EmptyCell,ranges:w.CommonUtils.EmptyArray,rangeIndex:0}),Oa=Object.freeze({selection:hw,topLeft:w.TypesUtils.EmptyTopLeft,freezePanes:sm,showRowHeaders:!0,showColumnHeaders:!0,showRowGridlines:!0,showColumnGridlines:!0,rowHeaderStyle:exports.ISheetView.HeaderTextStyle.One,columnHeaderStyle:exports.ISheetView.HeaderTextStyle.A1,showFormulas:!1,showZeros:!0,zoomScale:100,gridLineColor:null});class Ba{constructor(t){if(this._emitter=null,!t?.sheet)throw new Error("SheetView requires a sheet.");const e=new Xt(this);this._emitter=e,this._sheet=t.sheet,this.clear(!1),t.json&&this._fromJSON(t.json)}addListeners(t,e){return this._emitter.addListeners(t,e)}setTopLeft(t){const e=this._state,n=e.topLeft;return e.topLeft=Object.freeze({left:t?.left??n.left,top:t?.top??n.top}),this._emitter.notify("onTopLeftChange"),this}getTopLeft(){return this._state.topLeft}getFreezePanes(){return this._state.freezePanes}setFreezePanes(t){return this._state.freezePanes=this._mergeFreezePanes(t),this._emitter.notify("onFreezeSplitChange"),this}_mergeFreezePanes(t){return t?{...this._state.freezePanes,coords:{colIndex:t?.coords?.colIndex??this._state.freezePanes.coords.colIndex,rowIndex:t?.coords?.rowIndex??this._state.freezePanes.coords.rowIndex},topLeft:{left:t?.topLeft?.left??this._state.topLeft.left,top:t?.topLeft?.top??this._state.topLeft.top}}:sm}isShowRowHeaders(){return this._state.showRowHeaders}setShowRowHeaders(t){return this._state.showRowHeaders=t,this._notifyAll(),this}isShowColumnHeaders(){return this._state.showColumnHeaders}setShowColumnHeaders(t){return this._state.showColumnHeaders=t,this._notifyAll(),this}isShowRowGridlines(){return this._state.showRowGridlines}setShowRowGridlines(t){return this._state.showRowGridlines=t,this._notifyAll(),this}isShowColumnGridlines(){return this._state.showColumnGridlines}setShowColumnGridlines(t){return this._state.showColumnGridlines=t,this._notifyAll(),this}getRowHeaderStyle(){return this._state.rowHeaderStyle}setRowHeaderStyle(t){return this._state.rowHeaderStyle=t,this._notifyAll(),this}getColumnHeaderStyle(){return this._state.columnHeaderStyle}setColumnHeaderStyle(t){return this._state.columnHeaderStyle=t,this._notifyAll(),this}getZoomScale(){return this._state.zoomScale}setZoomScale(t){return this._state.zoomScale=t,this._notifyAll(),this}isShowFormulas(){return this._state.showFormulas}setShowFormulas(t){return this._state.showFormulas=t,this._notifyAll(),this}isShowZeros(){return this._state.showZeros}setShowZeros(t){return this._state.showZeros=t,this._notifyAll(),this}getGridLineColor(){return this._state.gridLineColor}setGridLineColor(t){return this._state.gridLineColor=t,this._notifyAll(),this}setRangeSelection(t){return this._state.selection=t,this._emitter.notify("onRangeSelectionChange"),this}getRangeSelection(){return this._state.selection}getMovableSelection(){return this._movableSelection}setMovableSelection(t){const e=this._movableSelection;return this._movableSelection=Object.freeze(t??[]),w.CommonUtils.isEqualArrays(e,this._movableSelection)||this._emitter.notify("onMovableSelectionChange"),this}selectMovables(t,e=!1){const n=new Set(this._sheet.getMovables().getItems());let r=null,o=!1;if(e){r=[...this._movableSelection];for(let s=t.length-1;s>=0;s--){const i=t[s];let l=r.indexOf(i);if(l!==s){if(o=!0,!n.has(i))throw new Error(`Movable ${i.getName()} not found in sheet.`);l!==-1&&r.splice(l,1),r.unshift(i)}}}else o=!w.CommonUtils.isEqualArrays(t,this._movableSelection),r=[...t];o&&(this._movableSelection=r,this._emitter.notify("onRangeSelectionChange"),this._emitter.notify("onMovableSelectionChange"))}unselectMovables(t){const e=this._movableSelection,n=[];for(let r=0;r<e.length;r++){const o=e[r];t.indexOf(o)===-1&&n.push(o)}return e.length!==n.length&&(this._movableSelection=n,this._emitter.notify("onRangeSelectionChange"),this._emitter.notify("onMovableSelectionChange")),this}_notifyAll(){const t=this._emitter;t.notify("onRangeSelectionChange"),t.notify("onTopLeftChange"),t.notify("onFreezeSplitChange"),t.notify("onAnyChange")}toJSON(){const t={},e=Object.keys(this._state);for(let r=0;r<e.length;r++){const o=this._state[e[r]];o!=null&&o!==Oa[e[r]]&&(t[e[r]]=o)}delete t.movableSelection,delete t.gridLineColor,this._state.gridLineColor instanceof Pt&&(t.gridLineColor=this._state.gridLineColor.toString()),delete t.topLeft,!this._state.topLeft||this._state.topLeft.left===0&&this._state.topLeft.top===0||(t.topLeft={left:this._state.topLeft.left??0,top:this._state.topLeft.top??0}),delete t.selection;const n=this._state.selection;if(n){let r={};!n.cell||n.cell.colIndex===0&&n.cell.rowIndex===0||(r.cell=ko(n.cell)),n.ranges&&n.ranges.length>0&&(r.ranges=kl(n.ranges),n.rangeIndex!==void 0&&n.rangeIndex!==-1&&n.rangeIndex!==0&&(r.rangeIndex=n.rangeIndex)),Object.keys(r).length>0&&(t.selection=r)}if(delete t.freezePanes,this._state.freezePanes&&(this._state.freezePanes.coords.colIndex!==0||this._state.freezePanes.coords.rowIndex!==0)){const r={};this._state.freezePanes.coords.colIndex!==0&&(r.c=this._state.freezePanes.coords.colIndex),this._state.freezePanes.coords.rowIndex!==0&&(r.r=this._state.freezePanes.coords.rowIndex),this._state.freezePanes.topLeft.left!==0&&(r.x=this._state.freezePanes.topLeft.left),this._state.freezePanes.topLeft.top!==0&&(r.y=this._state.freezePanes.topLeft.top),t.freezePanes=r}return Object.keys(t).length===0?null:t}_fromJSON(t){let e=JSON.parse(JSON.stringify(t||{}));e?.zoomScale&&(e.zoomScale=w.CommonUtils.roundAccurately(parseFloat(t.zoomScale),2));const n=r=>{const o=this._sheet.getRange(r).getBounds(),s=(e.zoomScale??100)/100;return{x:o.x*s,y:o.y*s,width:o.width*s,height:o.height*s}};if(typeof e?.gridLineColor=="string"&&(this._sheet?.getStyles()?e.gridLineColor=this._sheet.getStyles().parseColor(t.gridLineColor):console.warn("Style was created with no styles so gridLineColor can't be parsed.")),e.topLeft)if(typeof e.topLeft=="string"){const r=n(Sr(e.topLeft));e.topLeft={left:r.x,top:r.y}}else e.topLeft=Object.freeze({left:e.topLeft?.left??e?.x??0,top:e.topLeft?.top??e?.y??0});if(e.selection){let r=Sr(e.selection.cell??"A1");if(e.selection.cell=r,e.selection.ranges){let o=Math.max(0,Math.min(e.selection.rangeIndex??e.selection.ranges?.length-1,e.selection.ranges?.length-1));e.selection.rangeIndex=o;let s=!1;for(let i=0;i<e.selection.ranges.length;i++){const l=de(e.selection.ranges[i]);e.selection.ranges[i]=l,i===o&&r&&!w.CoordUtils.isCellWithinRange(r,l)&&(s=!0)}if(s)for(let i=0;s&&i<e.selection.ranges.length;i++)w.CoordUtils.isCellWithinRange(r,e.selection.ranges[i])&&(s=!1,e.selection.rangeIndex=i);s&&(e.selection.ranges.push(w.CoordUtils.cellToRange(r)),e.selection.rangeIndex=e.selection.ranges.length-1)}else delete e.selection.rangeIndex}if(e.freezePanes){const r=e.freezePanes;if(typeof r.coords=="string"&&(r.coords=Sr(r.coords)),typeof r.topLeft=="string"){const o=Sr(r.topLeft),s=n({colIndex:o.colIndex+1,rowIndex:o.rowIndex+1}),i=n({colIndex:(r?.coords?.colIndex??-1)+1,rowIndex:(r?.coords?.rowIndex??-1)+1});r.topLeft={left:0,top:0},e.topLeft||(e.topLeft={top:0,left:0}),o.colIndex>0&&(r.topLeft.left=e.topLeft?.left??0,e.topLeft.left=s.x-i.x+r.topLeft.left),o.rowIndex>0&&(r.topLeft.top=e.topLeft?.top??0,e.topLeft.top=s.y-i.y+r.topLeft.top)}e.freezePanes={coords:{colIndex:r?.coords?.colIndex??e.freezePanes?.c??0,rowIndex:r?.coords?.rowIndex??e.freezePanes?.r??0},topLeft:{left:r?.topLeft?.left??e.freezePanes?.x??0,top:r?.topLeft?.top??e.freezePanes?.y??0}}}this.update(e)}clear(t=!0){return this._state={...Oa},this._movableSelection=Object.freeze([]),t&&this._notifyAll(),this}update(t){return this._state={...Oa,...this._state,...t},this._state.freezePanes=this._mergeFreezePanes(this._state.freezePanes),this._state.zoomScale=Math.min(400,Math.max(10,this._state.zoomScale)),this._notifyAll(),this}get isISheetView(){return!0}}async function Vd(){const{getCrypto:a}=await Promise.resolve().then(()=>require("./DLiId6Hk_ia6LkL1.cjs"));return a()}const jd=async(a,t,...e)=>{const n=dw(...e);return a.subtle.digest(t,n)},dw=(...a)=>{const t=a.reduce((r,o)=>r+o.byteLength,0),e=new Uint8Array(t);let n=0;return a.forEach(r=>{e.set(new Uint8Array(r),n),n+=r.byteLength}),e.buffer},Gd=a=>{const t=new Uint8Array(a);let e="";for(let n=0;n<t.byteLength;n++)e+=String.fromCharCode(t[n]);return btoa(e)};class tn{static{this.DefaultAlgo="SHA-512"}static{this.DefaultSpinCount=1e5}static async generateSaltAndHash(t,e=tn.DefaultAlgo,n=tn.DefaultSpinCount){if(!t)return null;const r=(await Vd()).getRandomValues(new Uint8Array(16)),o=Gd(r.buffer);return{salt:o,hash:await tn._convertPasswordToHash(t,o,e,n)}}static async verifyPassword(t,e,n=tn.DefaultAlgo,r=tn.DefaultSpinCount){if(!t||!e)throw new w.NullNotAllowedError;return((o,s)=>{const i=o.length,l=s.length;let c=i===l?0:1;for(let h=0;h<Math.max(i,l);h++)c|=o.charCodeAt(h%i)^s.charCodeAt(h%l);return c===0})(await tn._convertPasswordToHash(t,e.salt,n,r),e.hash)}static async _convertPasswordToHash(t,e,n,r){const o=await Vd();n=n.toUpperCase();const s=(c=>{const h=new ArrayBuffer(2*c.length),d=new DataView(h);for(let u=0;u<c.length;u++)d.setUint16(2*u,c.charCodeAt(u),!0);return new Uint8Array(h)})(t),i=(c=>{const h=atob(c),d=new Uint8Array(h.length);for(let u=0;u<h.length;u++)d[u]=h.charCodeAt(u);return d.buffer})(e);let l=await jd(o,n,i,s.buffer);for(let c=0;c<r;c++){const h=new Uint32Array([c]).buffer;l=await jd(o,n,l,h)}return Gd(l)}}class im{constructor(t,e=!1){this._emitter=null,this._emitter=new Xt(this),this.fromJSON(t),this._isReadOnly=e}async lock(t,e,n,r){if(this._isReadOnly)return this;if(this.isLocked()&&!this._isPaused)throw new Error("Cannot lock an already locked object. Use unlock first.");try{this._validatePassword()}catch{throw new Error("A password is already set. Unlock first to change.")}let o;if(e){const s=await tn.generateSaltAndHash(e,n,r);o={salt:s.salt,hash:s.hash},n&&(o.algorithm=n),r&&(o.spinCount=r)}else o=null;return t=t??{},this._updateProperties(t),this._properties=t,this._password=o,this._emitter.notify("onLockChange"),this._emitter.notify("onChange"),this}async unlock(t){if(this._isReadOnly)throw new Error("Cannot unlock a readonly workbook.");return await this._validatePassword(t),this._clearProperties(),this._password=null,this._identities=null,this._password=null,this._emitter.notify("onLockChange"),this._emitter.notify("onChange"),this}checkPassword(t){return this._validatePassword(t)}hasPassword(){return this._password!==null}async pause(t){return this._emitter.notify("onLockChange"),this._emitter.notify("onChange"),await this._validatePassword(t),this._password&&(this._isPaused=!0),this}resume(){return this._isPaused=!1,this}isPaused(){return this._isPaused}isLocked(){return this._properties!==null&&!this._isPaused}isReadOnly(){return this._isReadOnly}async _validatePassword(t){const e=this._password;if(!(t&&t.length!==0||e&&e.hash))return!0;if(!t)throw new Error("Password is required.");if(!await tn.verifyPassword(t,{salt:e.salt,hash:e.hash},e.algorithm,e.spinCount))throw new Error("Invalid password.");return!0}getProperties(){return this._properties}_isPropertyAllowed(t){if(this._isReadOnly)return!1;if(!this.isLocked())return!0;const e=this._properties[t];return typeof e=="boolean"&&e}_updateProperties(t){this._properties={...t,...this._properties??{}}}_clearProperties(){this._properties=null}addListeners(t,e){return this._emitter.addListeners(t,e)}fromJSON(t){this._password=null,this._identities=null,this._isPaused=!1,this._properties=null,this._fromJSON(t??null),t&&(t.password&&(this._password=t.password),t.identities&&(this._identities=t.identities))}_fromJSON(t){}_toJSON(t){return t}toJSON(){if(!this._properties)return null;let t={};return t=this._toJSON(t)??{},this._password&&(t.password=this._password),this._identities&&(t.identities=this._identities),t}}const uw=Object.freeze({selectLockedCells:!0,selectUnlockedCells:!0,autoFilter:!1,deleteColumns:!1,deleteRows:!1,formatCells:!1,formatColumns:!1,formatRows:!1,insertColumns:!1,insertHyperlinks:!1,insertRows:!1,objects:!1,pivotTables:!1,scenarios:!1,sheet:!1,sort:!1,verifier:null});class $d extends im{isAutoFilterAllowed(){return this._isPropertyAllowed("autoFilter")}isDeleteColumnsAllowed(){return this._isPropertyAllowed("deleteColumns")}isDeleteRowsAllowed(){return this._isPropertyAllowed("deleteRows")}isFormatCellsAllowed(){return this._isPropertyAllowed("formatCells")}isFormatColumnsAllowed(){return this._isPropertyAllowed("formatColumns")}isFormatRowsAllowed(){return this._isPropertyAllowed("formatRows")}isInsertColumnsAllowed(){return this._isPropertyAllowed("insertColumns")}isInsertHyperlinksAllowed(){return this._isPropertyAllowed("insertHyperlinks")}isInsertRowsAllowed(){return this._isPropertyAllowed("insertRows")}isObjectsAllowed(){return this._isPropertyAllowed("objects")}isPivotTablesAllowed(){return this._isPropertyAllowed("pivotTables")}isScenariosAllowed(){return this._isPropertyAllowed("scenarios")}isSortAllowed(){return this._isPropertyAllowed("sort")}isSelectLockedCellsAllowed(){return!1}isSelectUnlockedCellsAllowed(){return!1}_updateProperties(t){super._updateProperties(t),this._properties=t}_clearProperties(){super._clearProperties(),this._properties=null}_fromJSON(t){super._fromJSON(t),this._properties=t}_toJSON(t){let e=this._properties;if(e){t={...t,...e};const n=Object.keys(e);for(let r=0;r<n.length;r++){const o=e[n[r]];o!=null&&o!==uw[n[r]]&&(t[n[r]]=o)}}return super._toJSON(t)}get[Symbol.toStringTag](){return"[SheetProtection]"}toString(){return null}}class Bo{constructor(t,e,n){this._coords=Object.freeze(t),this._sheet=e,this._readOnly=n?.readOnly??null}_createRanges(t,e){let n=this._options;return e&&(n={...this._options,getOptions:ln(this._options?.getOptions,e)}),new Bo(t,this._sheet,n)}_createRange(t,e){let n=this._options;return e&&(n={...this._options,getOptions:ln(this._options?.getOptions,e)}),new Do(t,this._sheet,n)}_validateWrite(){const t=this._readOnly;if(t)throw new Error(t)}getCoords(){return this._coords}[Symbol.iterator](){const t=this.entries({ignoreCellDetails:!0});return{next(){const e=t.next();return e.done?xt:{done:!1,value:e.value.value}},[Symbol.iterator](){return this}}}entries(t){const e=this.getCoords(),n=t?.reverse??!1;let r=n?e.length-1:0;const o=this;let s=o._createRange(e[r]),i=s.entries(t),l=i.next();return{next(){let c=l;do{if(l.done){if(r=n?r-1:r+1,r>=e.length||r<0)return l=xt,c;s=o._createRange(e[r]),i=s.entries(t)}l=i.next()}while(l.done);return c},[Symbol.iterator](){return this}}}async select(t){const e=await this._sheet._autoSelect(t??!0,At(this.getCoords()));return this._createRanges(e)}calculate(){const t=this.getCoords();return this._sheet._calculate(t),this}addListener2(t,e){return this._sheet._addRangesListeners2(this.getCoords(),t,e,!0)}addListener(t,e){return this._sheet._addRangesListeners(this.getCoords(),t,e)}find(t){return this._sheet._find(this.getCoords(),t)}getFlattened(t){const e=this.getCoords();if(e.length===1)return this._createRanges(e,t);const n=t?.orientations??A.IRange.Orientations.Both,r=n===A.IRange.Orientations.Both,o=r?Number.MAX_SAFE_INTEGER:1,s=n===A.IRange.Orientations.Row?A.IRange.Orientation.Column:A.IRange.Orientation.Row;let i=Za(e,o,s);if(r){const l=Za(e,o,A.IRange.Orientation.Column);l.length<i.length&&(i=l)}return this._createRanges(i,t)}getVisible(t){const e=this._sheet._getVisible(this.getCoords(),t);return e&&e.length!==0?this._createRanges(e,t):null}getFixed(t){const e=[],n=this.getCoords();for(let r=0;r<n.length;r++)e.push(Gg(n[r],t));return this._createRanges(e,t)}autoFit(t){return this._validateWrite(),this._sheet._autoFit(this.getCoords(),t),this}clear(t,e){return this._validateWrite(),this._sheet._clear(this.getCoords(),t,e),this}getStyle(){return this._sheet._getStyle(this.getCoords())}merge(t){return this._validateWrite(),this._sheet._merge(this.getCoords(),t),this}unmerge(t){return this._validateWrite(),this._sheet._unmerge(this.getCoords(),t),this}getMerges(){return this._sheet._getMerges(this.getCoords(),this._options?.ignoreHidden??!1)}insert(t){return this._validateWrite(),this._sheet._insertCells(this.getCoords(),t),this}delete(t){return this._validateWrite(),this._sheet._deleteCells(this.getCoords(),t),this}async insertFrom(t,e){this._validateWrite();const n=await this._sheet._insertFrom(this.getCoords(),t,e);return n?this._createRanges([n]):null}async copyFrom(t,e){const n=await this._sheet._copyFrom(this.getCoords()[0],t,e);return n?this._createRanges([n]):null}isInvalidAny(){const t=this.getCoords();if(!t||t.length===0)return!0;for(let e=0;e<t.length;e++)if(t[e]===null)return!0;return!1}getSnapshot(t){return this._sheet._getSnapshot(this.getCoords(),t)}getEntireRows(t,e){return this._createRanges(si(this.getCoords(),this._sheet._entireCoords,A.IRange.Orientation.Column,t),e)}getEntireColumns(t,e){return this._createRanges(si(this.getCoords(),this._sheet._entireCoords,A.IRange.Orientation.Row,t),e)}getRowHeaders(t){const e=this.getCoords();return this._sheet._rowHeaders.getRanges(e,t)}getColumnHeaders(t){const e=this.getCoords();return this._sheet._colHeaders.getRanges(e,t)}getDefaultShiftOrientation(){return this._sheet._getDefaultShiftOrientation(this.getCoords()[0])}getCount(){return this.getCoords()?.length??0}getCounts(t){return this._sheet._contentCounts(this.getCoords(),t,this._options?.ignoreHidden??!1)}isContentful(){return this._sheet._isContentful(this.getCoords(),this._options?.ignoreHidden??!1)}getRowCount(){return this._sheet.getRowHeaders().getRanges(this.getCoords()).getHeaderCount()}getColumnCount(){return this._sheet.getColumnHeaders().getRanges(this.getCoords()).getHeaderCount()}isEntireRowsAny(){return this._sheet.getRowHeaders().getRanges(this.getCoords()).isEntireHeadersAny()}isEntireColumnsAny(){return this._sheet.getColumnHeaders().getRanges(this.getCoords()).isEntireHeadersAny()}isEntireRows(){return this._sheet.getRowHeaders().getRanges(this.getCoords()).isEntireHeaders()}isEntireColumns(){return this._sheet.getColumnHeaders().getRanges(this.getCoords()).isEntireHeaders()}isOverlapping(){return fo(this.getCoords())}at(t){const e=this.getCoords();if(t<0||t>e.length-1)throw new w.OutOfBoundsError;return this._createRange(e[t])}isReadOnly(){return this._readOnly!==null}isInvalid(){return!1}getA1(){return wg(this.getCoords(),this._sheet._entireCoords,Pe,Fn)}getSheet(){return this._sheet}doBatch(t,e){return this._sheet.doBatch(n=>t(n),typeof e=="string"?e:{description:"Ranges Update",...e})}get[Symbol.toStringTag](){return"[SheetRanges]"}toString(){return this.getA1()}get isICellRanges(){return!0}}class Do{constructor(t,e,n){this._coords=Object.freeze(t),this._sheet=e,this._readOnly=n?.readOnly??null}getCoords(){return this._coords}_createRange(t,e){const n=this._sheet;if(!t)return rn(n,n._entireCoords);if(n._validateCoords(t),n._closed)return rn(null,n._entireCoords,t);let r=this._options;return e&&(r={...this._options,getOptions:ln(this._options?.getOptions,e)}),new Do(t,this._sheet,r)}_createRanges(t,e){let n=this._options;return e&&(n={...this._options,getOptions:ln(this._options?.getOptions,e)}),new Bo(t,this._sheet,n)}_deriveRanges(t,e){const n=this.getCoords();let r=n;return e&&(r=e(n),!r)?null:this._createRanges(r,t)}_deriveRange(t,e,n){if(!t)return this;let r=this._sheet._rangeToCoords(t);if(!r)return this;const o=this.getCoords();if(po(r,o))return this;if(n){const l=n(r,o);if(!l)return null;r={...o,...l}}var s,i;return s=r,(i=o)&&(i.$colStart===void 0?delete s.$colStart:s.$colStart=i.$colStart,i.$rowStart===void 0?delete s.$rowStart:s.$rowStart=i.$rowStart,i.$colEnd===void 0?delete s.$colEnd:s.$colEnd=i.$colEnd,i.$rowEnd===void 0?delete s.$rowEnd:s.$rowEnd=i.$rowEnd),this._createRange(r,ln(this._options?.getOptions,e))}_validateMaxSize(t=5e4){const e=this.getCoords(),n=this._sheet,r=n._colHeaders.getVisibleCount(e.colStart,e.colEnd);if(n._rowHeaders.getVisibleCount(e.rowStart,e.rowEnd)*r>t)throw new w.ExpectedError(xg(t))}entries(t){const e=this.getCoords();let n=e;const r=this._sheet;if(t?.address){const s=r._rangeToCoords(t?.address);if(!s)throw new w.ExpectedError(br(t?.address));if(n=w.CoordUtils.intersectRanges(s,e),!n)return Wt}n.colEnd<n.colStart&&(n.colStart=e.colStart,n.colEnd=e.colEnd),n.rowEnd<n.rowStart&&(n.rowStart=e.rowStart,n.rowEnd=e.rowEnd);const o=this._options?.ignoreHidden??!1;return r._cellIterator({ignoreHidden:o,...t,includeRangeTypes:!t?.ignoreCellDetails,bounds:n})}[Symbol.iterator](){return this.values()}values(t){const e=this.entries({...t,ignoreCellDetails:!0});return{next(){const n=e.next();return n.done?xt:{done:!1,value:n.value.value}},[Symbol.iterator](){return this}}}forEach(t,e){if(!t)return;const n=this.entries(e);let r=n.next();for(;!r.done;){const o=r.value,s=t(o.value,o.context);if(s)return s.break;r=n.next()}}_validateWrite(){const t=this._readOnly;if(t)throw new w.ExpectedError(t)}updateCells(t,e,n){this._validateWrite();const r=this.getCoords();n||(n=r);const o=this._sheet,s=o._isDataColumn,i={majorStart:s?r.colStart:r.rowStart,majorEnd:s?r.colEnd:r.rowEnd,minorStart:s?r.rowStart:r.colStart,minorEnd:s?r.rowEnd:r.colEnd},l=(e?.orientation??A.IRange.Orientation.Row)===A.IRange.Orientation.Column!==s,c=Zs(Array.isArray(t)?t:[[t]],l,i);return o._updateTuples(c,{description:e?.description??`Set ${w.CoordUtils.isSingleCell(n)?"Cell":"Range"} ${Pe(n,o._entireCoords)}`,...e},null,{isCell:!0}),this}setValues(t,e){if(!Array.isArray(t))throw new w.ExpectedError("'setValues' expects a 2d array; when working with a single value use 'setValue'.");return this._setValueOrValues(t,e)}setValue(t,e){if(Array.isArray(t))throw new w.ExpectedError(Wh);return this._setValueOrValues(t,e)}setFormula(t,e){if(Array.isArray(t))throw new w.ExpectedError(Wh);return this._setValueOrValues(t,e)}_setValueOrValues(t,e){this._validateWrite();let n=this.getCoords(),r=this;const o=this._sheet,s=o._isDataColumn,i=(e?.orientation??A.IRange.Orientation.Row)===A.IRange.Orientation.Column,l=Array.isArray(t);if(e?.skipBoundsCheck&&l){const u=t;let g=Math.max(0,u.length-1),m=0;for(let _=0;_<u.length;_++)m=Math.max(m,u[_].length-1);const f=i?n.colStart:n.rowStart,p=i?n.rowStart:n.colStart,S={...n,colEnd:i?f+g:p+m,rowEnd:i?p+m:f+g};w.CoordUtils.isEqualRanges(S,n)||(n=S,r=this._deriveRange(S,e)??this)}const c={majorStart:s?n.colStart:n.rowStart,majorEnd:s?n.colEnd:n.rowEnd,minorStart:s?n.rowStart:n.colStart,minorEnd:s?n.rowEnd:n.colEnd},h=i!==s;let d=null;return d=l?Zs(Array.isArray(t)?t:[[t]],h,c):Fs(t,c,s),o._updateTuples(d,{description:e?.description??`Set ${w.CoordUtils.isSingleCell(n)?"Value":"Values"} ${Pe(n,o._entireCoords)}`,...e}),r}getValues(t){this._validateMaxSize(t?.maxSize);const e=this.getCoords(),n=this._sheet;return Sa(n._cellIterator.bind(this._sheet),e,!1,t)}toText(t){this._validateMaxSize(t?.maxSize);const e=this.getCoords();return((n,r,o)=>{const s={[Z.Type.Style]:!1,[Z.Type.Table]:!1},i=o?.orientation??A.IRange.Orientation.Row,l=o?.maxSize??1e4,c=n({includeEmpty:!0,orientation:i,reverse:o?.reverse,ignoreHidden:o?.ignoreHidden,includeMergeOverflow:o?.includeMergeOverflow,includeRangeTypes:s,bounds:r}),h=i!==A.IRange.Orientation.Row,d=o?.ignoreFormatting??!1;let u,g=-1,m=0,f=0;u=c.next();let p="";for(;!u.done;){if(m>l||p.length>32767e3)return p+"...";const S=u.value,_=S.context.getCoords(),E=h?_.colIndex:_.rowIndex;E!==g&&(g!==-1&&(p+=`
55
+ `),g=E,f=0);const C=S.context.getCell();let I=d?C.toTextUnformatted():C.toText();C.getType()===A.ScalarType.String&&(Lu(I)||(I=`"${I}"`)),f>0&&(p+=","),p+=I,u=c.next(),f++,m++}return p})(this._sheet._cellIterator.bind(this._sheet),e,t)}getValue(t){const e=this.getCoords();return this._sheet._getScalar(e.rowStart,e.colStart,t?.asJSDate)}calculate(t){return this._sheet._calculate([this.getCoords()],{full:t}),this}getCells(t){this._validateMaxSize(t?.maxSize);const e=this.getCoords(),n=this._sheet;return Sa(n._cellIterator.bind(this._sheet),e,!0,t)}getCell(t){const e=this.getCoords();let n=e.colStart,r=e.rowStart;const o=this._sheet;if(t){const i=o._cellToCoords(t);if(!w.CoordUtils.isCellWithinRange(i,e))throw new w.ExpectedError("The cell is outside of the bounds of the range.");n=i.colIndex,r=i.rowIndex}const s=Sa(o._cellIterator.bind(this._sheet),{colStart:n,rowStart:r,colEnd:n,rowEnd:r},!0,null);return s.length===0?o._emptyCell:s[0][0]}async select(t){const e=this._sheet,n=await e._autoSelect(t??!0,At([this.getCoords()]));return this._createRange(n[0])}find(t){return this._sheet._find([this.getCoords()],t)}getFixed(t){return this._createRange(Gg(this.getCoords(),t))}getSurrounding(t){const e=this._sheet;return this._createRange(e._surroundingRegion(this.getCoords(),t))}getExtended(t,e){let n=null;const r=this.getCoords();switch(t){case A.IRange.Direction.Up:n={colIndex:r.colStart,rowIndex:r.rowStart};break;case A.IRange.Direction.Down:n={colIndex:r.colStart,rowIndex:r.rowEnd};break;case A.IRange.Direction.Left:n={colIndex:r.colStart,rowIndex:r.rowStart};break;case A.IRange.Direction.Right:n={colIndex:r.colEnd,rowIndex:r.rowStart}}const o=this._sheet,s=e?o._cellToCoords(e):n;if(!w.CoordUtils.isCellWithinRange(s,r))throw new w.ExpectedError("Invalid cell.");let i=o._extendRange(t,s);return i=w.CoordUtils.unionRanges(r,i),this._createRange(i)}getEntireRows(t,e){const n=this._sheet;return this._createRange(si([this.getCoords()],n._entireCoords,A.IRange.Orientation.Column,t)[0],e)}getEntireColumns(t,e){const n=this._sheet;return this._createRange(si([this.getCoords()],n._entireCoords,A.IRange.Orientation.Row,t)[0],e)}getRowHeaders(t){const e=this.getCoords();return this._sheet._rowHeaders.getRange(e,t)}getColumnHeaders(t){const e=this.getCoords();return this._sheet._colHeaders.getRange(e,t)}getDifferences(t,e){return this._deriveRanges(e,n=>{const r=this._sheet,o=r._rangeToCoords(t),s=el(n,o,A.IRange.Orientation.Row);return r._getVisible(s,e)})}getIntersect(t,e){return this._deriveRange(t,e,(n,r)=>w.CoordUtils.intersectRanges(n,r))}getUnion(t,e){return this._deriveRange(t,e,(n,r)=>w.CoordUtils.unionRanges(n,r))}getResizeTo(t,e,n){if(e=e??0,(t=t??0)<0||e<0)throw new w.ExpectedError("Invalid range. The Range must be at a size of at least 1x1'.");const r=this.getCoords();return this._deriveRange({colStart:r.colStart,rowStart:r.rowStart,colEnd:e+r.colStart-1,rowEnd:t+r.rowStart-1},n)}getResizeBy(t,e,n){t=t??0,e=e??0;const r=this.getCoords();return this._deriveRange({colStart:r.colStart,rowStart:r.rowStart,colEnd:r.colEnd+e,rowEnd:r.rowEnd+t},n)}getOffsetTo(t,e,n){const r=this.getCoords(),o=e,s=t,i={colStart:o,rowStart:s,colEnd:r.colEnd-r.colStart+o,rowEnd:r.rowEnd-r.rowStart+s};return this._deriveRange(i,n)}getOffsetBy(t,e,n){const r=this.getCoords(),o=r.colStart+t,s=r.rowStart+e,i={colStart:o,rowStart:s,colEnd:r.colEnd-r.colStart+o,rowEnd:r.rowEnd-r.rowStart+s};return this._deriveRange(i,n)}getUsedRange(t){const e=this._sheet._getUsedCoords(t);if(!e)return null;const n=w.CoordUtils.intersectRanges(e,this.getCoords());return n?this._deriveRange(n,t):null}isEmpty(){const t=this._sheet._getUsedCoords();return t?!w.CoordUtils.intersectRanges(t,this.getCoords()):!0}getColumnStart(){return this.getCoords().colStart}getRowStart(){return this.getCoords().rowStart}getColumnEnd(){return this.getCoords().colEnd}getRowEnd(){return this.getCoords().rowEnd}getColumnCount(){const t=this.getCoords();return t.colEnd-t.colStart+1}getRowCount(){const t=this.getCoords();return t.rowEnd-t.rowStart+1}getVisible(t){return this._deriveRanges(t,e=>this._sheet._getVisible([e],t))}isContentful(t){return this._sheet._isContentful([this.getCoords()],t,this._options?.ignoreHidden??!1)}getCounts(t){return this._sheet._contentCounts([this.getCoords()],t,this._options?.ignoreHidden??!1)}getCount(t){return this._sheet._getCount([this.getCoords()],t,this._options?.ignoreHidden??!1)}isEntireRows(){const t=this._sheet;return hl([this.getCoords()],t._entireCoords,!0)}isEntireColumns(){const t=this._sheet;return dl([this.getCoords()],t._entireCoords,!0)}isEntireRange(){const t=this.getCoords(),e=this._sheet;return dl([t],e._entireCoords,!0)&&hl([t],e._entireCoords,!0)}getWidth(){const t=this._coords;return t.colEnd-t.colStart+1}getHeight(){const t=this._coords;return t.rowEnd-t.rowStart+1}get size(){const t=this._coords;return t.colEnd-t.colStart+1*(t.rowEnd-t.rowStart+1)}getBounds(){return this._sheet._getBoundsAtCoords(this.getCoords())}isInvalid(){return!1}getDefaultShiftOrientation(){return this._sheet._getDefaultShiftOrientation(this.getCoords())}getDefaultSortCriteria(t,e){return this._sheet._getDefaultSortCriteria(this.getCoords(),t,e)}getMerges(){return this._sheet._getMerges([this.getCoords()],this._options?.ignoreHidden??!1)}getSnapshot(t){return this._sheet._getSnapshot([this.getCoords()],t)}isReadOnly(){return this._readOnly!==null}addListener2(t,e){return this._sheet._addRangesListeners2([this.getCoords()],t,e,!1)}addListener(t,e){return this._sheet._addRangesListeners([this.getCoords()],t,e)}getSheet(){return this._sheet}autoFill(t,e){this._validateWrite();const n=this._sheet,r=n._rangeToCoords(t,()=>[],!0);return n._autoFill(this.getCoords(),r,e)?this._createRange(r):this}autoFit(t){return this._validateWrite(),this._sheet._autoFit([this.getCoords()],t),this}clear(t,e){return this._validateWrite(),this._sheet._clear([this.getCoords()],t,e),this}setHyperlink(t,e){return this._validateWrite(),this._sheet._setHyperlinks([this.getCoords()],t,e),this}setComments(t,e){return this._validateWrite(),this._sheet._setComments([this.getCoords()],t,e),this}getStyle(){return this._sheet._getStyle([this.getCoords()])}merge(t){return this._validateWrite(),this._sheet._merge([this.getCoords()],t),this}unmerge(t){return this._validateWrite(),this._sheet._unmerge([this.getCoords()],t),this}insert(t){return this._validateWrite(),this._sheet._insertCells([this.getCoords()],t),this}async insertFrom(t,e){this._validateWrite();const n=this._sheet,r=await n._insertFrom([this.getCoords()],t,e);return r?this._createRange(r):null}async copyFrom(t,e){this._validateWrite();const n=this._sheet,r=await n._copyFrom(this.getCoords(),t,e);return r?this._createRange(r):null}delete(t){return this._validateWrite(),this._sheet._deleteCells([this.getCoords()],t),this}sort(t){this._validateWrite();const e=this.getCoords(),n=this._sheet._sort(e,t);return w.CoordUtils.isEqualRanges(n,e)?this:this._createRange(n)}doBatch(t,e){return this._sheet.doBatch(n=>t(n),typeof e=="string"?e:{description:"Range Update",...e})}startIncrementalUpdates(t){return this._sheet._createIncrementalUpdater(t,this)}getA1(){const t=this._sheet;return Pe(this.getCoords(),t._entireCoords)}get[Symbol.toStringTag](){return"[SheetRange]"}toString(){const t=this._sheet;return Pe(this.getCoords(),t._entireCoords)}get isICellRange(){return!0}}const gs={width:Math.pow(2,14),height:Math.pow(2,20)},Jd=a=>`${a}`,qd=a=>Re(a),Xd=a=>`${a+1}`;let gw=0;const Kd=()=>[];let mw=0;class Nr{constructor(t){this._lastTransactionUUID=null,this._emitter=null,this._initializing=!0,this._emitterMovables=null,this._rangesListenerSorted=null,this._lastCellDecoded={address:null,coords:null},this._lastCellSelected={coords:null,cell:null},this._lastCellRead={coords:null,cell:null},this._lastValueRead={range:null,isDateOrTime:null},this._lastGetRangeRead={},this._lastUsedCoordsRead={coords:null,range:null},this._lastActiveRead={selection:null,range:null,ranges:null},this._lastRangeRead={address:null,range:null,ranges:null},this._isDataColumn=!0,this._isDate1904=!1,this._colHeaders=null,this._colHeadersShiftCallback=null,this._colHeadersListener=null,this._colHeadersRemoveListener=null,this._rowHeaders=null,this._rowHeadersShiftCallback=null,this._rowHeadersListener=null,this._rowHeadersRemoveListener=null,this._closed=!1;const e=Object.freeze({...t});wl._validate(!0),this._transactions=e.transactions??new xe,this._ownTransactions=!e.transactions;const n=this._beginCommit({description:"New Sheet"}),r=this;try{this._entireCoords=Object.freeze({colStart:0,rowStart:0,colEnd:(e.maxColumns??gs.width)-1,rowEnd:(e.maxRows??gs.height)-1}),this._strings=e.strings??new bi,this._ownStrings=!e.strings;const o=e.styles??new Br;this._styles=o,this._ownStyles=!e.styles,this._names=e.names??new Zg({addressToRanges:i=>r.getRanges(i),getCurrentScope:()=>r.getName(),isReadOnly:()=>r._options.readonly??!1,transactions:r._transactions}),this._ownNames=!e.names,this._namesRemoveListener=this._names.addListeners({onCollectionChange:i=>{r._calculateFull()}},{transactional:!1}),this._calculation=e.calculation??new Pl({getNamed:(i,l)=>{Yd.address=i,Yd.scope=l;const c=this._names.getItems({address:i,scope:l});return c&&c.length!==0?c[0].getRanges().getCoords():null},getSheetIndex:i=>i===void 0||i===r.getName()?1:0,getSheetCount:()=>1,isDate1904:()=>r.isDate1904(),strings:r._strings,transactions:r._transactions}),this._ownsCalculation=!e.calculation,this._workbook=e.workbook??null,this._normalStyleRanged=o.getNamed(exports.IStyle.BuiltInName.Normal).getRanged(),this._resources=e.resources??new Ll,this._ownResources=!e.resources;const s=async()=>{this._ownsCalculation&&await this._calculation.start(),this._starting=null};this._starting=s(),e.container?.setNameChangeCallback&&e.container.setNameChangeCallback(()=>{r._emitter.notify("onNameChange");const i=this._getState().rangesListenerMap,l=new Map;i.forEach((h,d)=>{l.set(d,{beforeState:h,afterState:h})});const c=this._beginCommit({description:"Set Name"});c.updateState(r,{}),c.commit({viewAfter:{ranges:[r._entireCoords],listeners:l},forceAmend:!0}),r._calculateFull()}),e.container?.setVisibilityCallback&&e.container.setVisibilityCallback(()=>{r._emitter.notify("onVisibilityChange")}),e.container?.setIndexCallback&&e.container.setIndexCallback(()=>{r._calculateFull()}),this._movables=new J_(this._addMovable.bind(this),this._searchMovables.bind(this),()=>{const i=r._getState();return i?i.movableMapModel?.size??0:0},this._updateSelectedMovables.bind(this),(i,l)=>this._emitterMovables.addListeners(i,l),this._addImage.bind(this)),this._emitterMovables=new Xt(this._movables,this._transactions),this._tables=new Z_(this._addTable.bind(this),(i,l,c)=>{const h=i?this._rangeToCoords(i):this._entireCoords;return r._getRangedEntries("tableSpatial",[h],{ignoreHidden:l,fullyContained:c,onEntry:d=>d.model})},i=>{const l=r._getState();return l?l.tableMapName.get(i.toLocaleLowerCase()):null}),this._conditionals=new rw(this._addConditional.bind(this),(i,l,c)=>{const h=i?this._rangeToCoords(i):this._entireCoords,d=new Set;return r._getRangedEntries("conditionalSpatial",[h],{ignoreHidden:l,fullyContained:c,onEntry:u=>{d.add(u.getModel())}}),Array.from(d)}),this._isDate1904=e.date1904??!1,this._options=e,this._emitter=new Xt(this,this._transactions),this._entireRange=this.getRange(this._entireCoords),this._initState(),e?.container?.beforeFromJSON?.(this),e.json&&this._fromJSON(e.json),e.readonly,n.commit({forceAmend:this._ownTransactions,viewAfter:{initial:!0,skipProtectionCheck:!0}})}catch(o){throw n.rollback(),o}this._initializing=!1}_createRange(t,e,n=null){if(!t)return rn(this,this._entireCoords);if(this._validateCoords(t),this._closed)return rn(null,this._entireCoords,t);n===null&&this._options.readonly&&(n="Readonly sheet");let r=null;return(e||n)&&(r={getOptions:e,readOnly:n}),new Do((o=>{if(!o)return null;const s={colStart:o.colIndex??o.colStart??0,rowStart:o.rowIndex??o.rowStart??0,colEnd:o.colIndex??o.colEnd??0,rowEnd:o.rowIndex??o.rowEnd??0};return(o.$colStart||o.$colIndex)&&(s.$colStart=!0),(o.$colEnd||o.$colIndex)&&(s.$colEnd=!0),(o.$rowStart||o.$rowIndex)&&(s.$rowStart=!0),(o.$rowEnd||o.$rowIndex)&&(s.$rowEnd=!0),s})(t),this,r)}_createRanges(t,e,n=null){let r=null;return n===null&&this._options.readonly&&(n="Readonly sheet"),(e||n)&&(r={getOptions:e,readOnly:n}),new Bo(t,this,r)}getRange(t,e){let n=!e&&t&&(t.rowStart!==void 0||typeof t=="string");if(n){if(typeof t=="string"){if(this._lastRangeRead.address===t)return this._lastRangeRead.range}else if(t.rowStart!==void 0&&po(t,this._lastRangeRead.address))return this._lastRangeRead.range}try{const r=this._rangesToCoords(t);if(r.length>1)throw new w.ExpectedError(Ig);const o=this._createRange(r[0],e);return n&&(this._lastRangeRead.address={...t},this._lastRangeRead.range=o),o}catch(r){throw r instanceof w.OutOfBoundsError?new w.OutOfBoundsError(r.message):new w.ExpectedError(r.message??br(t))}}getCell(t){const e=this.getRange(t);if(e.size!==1)throw new w.ExpectedError(Fh);return e.getCell()}getRanges(t,e){if(!t)throw new w.ExpectedError(Vn);const n=this._rangesToCoords(t);if(n.length===0)throw this._createRangeError(t);return this._createRanges(n,e)}getSelectedRange(t){const e=this.getSelection(),n=e.getCoords();if(!t&&this._lastActiveRead.selection===n&&this._lastActiveRead.range)return this._lastActiveRead.range;const r=e.getRangesCoords(),o=this.getRange(r[0]);return t||(this._lastActiveRead.selection=n,this._lastActiveRead.range=o,this._lastActiveRead.ranges=this.getRanges(r)),o}getSelectedRanges(t){const e=this.getSelection(),n=e.getCoords();if(!t&&this._lastActiveRead.selection===n&&this._lastActiveRead.ranges)return this._lastActiveRead.ranges;const r=e.getRangesCoords(),o=this.getRanges(r,t);return t||(this._lastActiveRead.selection=n,this._lastActiveRead.ranges=o,this._lastActiveRead.range=this.getRange(r[0])),o}getEntireRange(t){return t?this.getRange(this._entireCoords,t):this._entireRange}getUsedRange(t){const e=this._getUsedCoords(),n=e?this.getRange(e,t):null;return t||(this._lastUsedCoordsRead.coords=e,this._lastUsedCoordsRead.range=n),n}_cellToCoords(t){if(this._lastCellDecoded.address===t)return this._lastCellDecoded.coords;const e=this._rangeToCoords(t);if(!e||!w.CoordUtils.isSingleCell(e))throw new w.ExpectedError(Fh);const n={colIndex:e.colStart,rowIndex:e.rowStart};return this._lastCellDecoded.address=t,this._lastCellDecoded.coords=n,n}_validateCoords(t,e=ni){if(!w.CoordUtils.isRangeWithinRange(t,this._entireCoords))throw new w.OutOfBoundsError(e);const n=t.colStart,r=t.rowStart,o=t.colEnd,s=t.rowEnd;if(s<r||o<n)throw new w.ExpectedError(bg);if(!(Number.isInteger(n)&&Number.isFinite(n)&&Number.isInteger(r)&&Number.isFinite(r)&&Number.isInteger(o)&&Number.isFinite(o)&&Number.isInteger(s)&&Number.isFinite(s)))throw new w.ExpectedError("Invalid range. All points must be valid integers.")}_createRangeError(t){return t?new w.ExpectedError(Vn):new w.ExpectedError(br(t))}_protectionCheck(t=null,e=null,n=null){if(t&&this._closed)return;if(!this._initializing&&this._options.readonly)throw new w.ExpectedError(((i="update")=>`Unable to ${i}, this sheet is readonly.`)(n));e&&!Array.isArray(e)&&(e=[e]);const r=t(e),o=this.getProtection();if(o?.getProperties()){if(r.length===0)throw new w.ExpectedError(Qo);if(r){const i=r.length;for(let l=0;l<i;l++)if(o[r[l]]!==!0)throw new w.ExpectedError(R0())}}}_rangesToCoords(t,e=null,n=!0,r=!1){if(e&&this._closed||t==null)return w.CommonUtils.EmptyArray;const o=this,s=wi(t,this._entireCoords,r?Ce:Oo,l=>{if(n&&typeof l=="string"){const c=o.getNames()?.getByName(l);if(c)return c.getRanges().getCoords();const h=this._options.resolveRange?.(l);if(h&&h.getSheet()===o)return console.warn(Ph),[h.getCoords()];throw new w.ExpectedError(`Invalid sheet reference '${l}'.`)}}),i=s.length;for(let l=0;l<i;l++){const c=s[l];if(c){if(r){const h=c.sheetName;if(h&&h!==this.getName())throw new w.ExpectedError(Ph)}this._validateCoords(c)}}if(!e)return s;if(s.length===0)throw this._createRangeError(t);return this._protectionCheck(e,s),s}_rangeToCoords(t,e=null,n=!0){if(!t)throw new w.ExpectedError(Vn);const r=e?s=>e(s):void 0,o=this._rangesToCoords(t,r,n);if(o.length===0)throw new w.ExpectedError(br(t));return o[0]}_collectRanges(t,e=[],n=!0,r=this._getState(),o=!1){if(!n||typeof n=="object"&&Object.keys(n).length===0)return;const s=l=>n===!0||n[l]!==void 0,i=(l,c,h)=>{if(n!==!0&&n[l]===void 0)return;const d=c.search(t,!1),u=d.length;if(u===0)return;const g=n[l];for(let m=0;m<u;m++){const f=d[m];if(g&&!w.CoordUtils.isRangeWithinRange(t,f))continue;const p=w.CoordUtils.intersectRanges(t,f);let S=f.value;S===void 0&&(S=!0),e.push({...p,value:{[h]:S}})}};if(s(Z.Type.Merge)&&r.mergeSpatial){const l=r.mergeSpatial.search(t),c=l.length;for(let h=0;h<c;h++){const d=l[h],u=o?d:w.CoordUtils.intersectRanges(t,d);e.push({...u,value:{merge:d.value}})}}if(i(Z.Type.Unlock,r.unlockSpatial,"unlock"),i(Z.Type.Contentful,r.contentfulSpatial,"contentful"),i(Z.Type.Continuous,r.continuousFillSpatial,"continuous"),i(Z.Type.Hyperlink,r.hyperlinkSpatial,"hyperlink"),i(Z.Type.Comments,r.commentsSpatial,"comments"),i(Z.Type.Style,r.directStyleSpatial,"directStyle"),i(Z.Type.Formula,r.formulaSpatial,"formula"),i(Z.Type.Pending,r.pendingSpatial,"pending"),i(Z.Type.CalcError,r.calcErrorsSpatial,"calcError"),i(Z.Type.Spill,r.spillSpatial,"spills"),s(Z.Type.Conditional)&&r.conditionalSpatial){const l=r.conditionalSpatial.search(t),c=n[Z.Type.Conditional],h=l.length;for(let d=0;d<h;d++){const u=l[d],g=w.CoordUtils.intersectRanges(t,u);c&&!g||e.push({...g,value:{conditionals:[u.value]}})}}if(s(Z.Type.Table)&&r.tableSpatial){const l=r.tableSpatial.search(t),c=n[Z.Type.Table],h=l.length;for(let d=0;d<h;d++){const u=l[d];if(c&&!w.CoordUtils.isRangeWithinRange(t,u))continue;const g=w.CoordUtils.intersectRanges(t,u);e.push({...g,value:{table:u.value.model}})}}}_cellIterator(t){const e=this._cellOptions,n=this._strings,r=this._cellStateIterator(t);return{next(o){const s=r.next(o);if(s.done)return xt;const i=s.value,l=new _a(n,t,e),c=l.context;return{done:!1,value:{value:l.setState(i),context:c}}},[Symbol.iterator](){return this}}}_rangeStateIterator(t){const e=this._getState();if(!e||!t||!t.includeRangeTypes)return Wt;const n=t?.bounds??this._getUsedCoords()??this._entireCoords;let r=null;t.includeRangeTypes===!0?r=b0:w.CommonUtils.isObject(t.includeRangeTypes)&&(r=t.includeRangeTypes);const o=t?.ignoreHidden,s=o===!0||o===A.IRange.Orientation.Row,i=o===!0||o===A.IRange.Orientation.Column,l=t?.includeMergeOverflow??!1,c=[],h=this,d={includeHidden:!i},u={min:n.colStart,max:n.colEnd},g={includeHidden:!s},m={min:n.rowStart,max:n.rowEnd};this._rowHeaders.getRange(m).forEachVisibleSpan((E,C)=>{this._colHeaders.getRange(u).forEachVisibleSpan((I,y)=>{h._collectRanges({rowStart:E,rowEnd:C,colStart:I,colEnd:y},c,r,e)},d)},g);const f=new Io.IteratorInstance(c,t),p=t?.reverse??!1,S=t?.byCell;let _;return{next:E=>{if(_=f.next(E),_.done)return xt;const C=_.value,I=ad(C.overlaps);let y,b=C.range;if(l){const x=I?.merge;if(x){const T=x.getCoords(),M=n.colStart,F=n.rowStart,N=T.colStart,k=T.rowStart;N<M&&F<k&&(y={colIndex:N,rowIndex:k})}}y||(y={colIndex:b.colStart,rowIndex:b.rowStart});const v={colIndex:b.colEnd,rowIndex:b.rowEnd};let R=null;return S&&(R={...C.cell}),{done:!1,value:{start:p?v:y,end:p?y:v,cell:R,intersection:I}}}}}_overflowAndStops(t,e){const n=this._getState();if(!n||!t)return null;let r=this._entireCoords;e&&(r={colStart:Math.max(r.colStart-e,r.colStart),rowStart:r.rowStart,colEnd:Math.min(r.colEnd+e,r.colEnd),rowEnd:r.rowEnd});const o={rowStart:t.rowStart,colStart:r.colStart,rowEnd:t.rowEnd,colEnd:r.colEnd},s={bounds:o,includeRangeTypes:x0,orientation:A.IRange.Orientation.Row,ignoreHidden:!0,byCell:!1},i=t.colStart,l=t.colEnd;let c,h,d=-1;const u=(_,E)=>{let C=_.next();for(;!C.done;){const I=C.value,y=I.intersection,b=y.contentful;if(b){const v=I.start.rowIndex;if(!h||v!==d){const R=I.end.rowIndex,x=b.getCoords(),T=E?x.colEnd:x.colStart;let M=null;E&&(M=y.continuous),c||(c=[]);for(let F=v;F<=R;F++)c.push({rowIndex:F,colIndex:T,continuous:M,intersection:y,scalar:null,leftIndex:0,rightIndex:0,overflow:null,style:null})}d=v,h=I}C=_.next()}};i>r.colStart&&(o.colStart=r.colStart,o.colEnd=t.colStart-1,u(this._rangeStateIterator(s),!0)),d=-1,h=void 0,l<r.colEnd&&(o.colStart=t.colEnd+1,o.colEnd=r.colEnd,u(this._rangeStateIterator(s),!1));const g=n.cellValuesGrid;if(!c)return null;c.sort(w.CoordUtils.columnFirstCellComparator);const m=c.length,f=this._cellOptions;let p,S;for(let _=0;_<m;_++){const E=c[_],C=E.rowIndex,I=E.colIndex,y=g.getValueAt(C,I);E.scalar=y;const b=E.continuous;if(typeof y=="string"||b){ro.colStart=I,ro.rowStart=C,ro.colEnd=I,ro.rowEnd=C;const v=wr(0,ro,E.intersection,f);E.style=v;const R=Vg(C,I,A.ScalarType.String,v,y,null,null,b?.getCoords(),f);if(R){const x=R.leftIndex,T=R.rightIndex;E.leftIndex=x,E.rightIndex=T,(T>0&&I<i||x>0&&I>l)&&(E.overflow=R)}}E.overflow?(p||(p=[]),p.push(E)):(S||(S=[]),S.push(E))}return{overflows:p,stops:S}}_cellStateIterator(t){const e=this._getState();if(!e)return Wt;const n=t?.bounds,r=n??this._entireCoords,o=t?.orientation??A.IRange.Orientation.Row,s=t?.reverse??!1,i=t?.includeEmpty,l={bounds:r,orientation:o,reverse:s};let c;i&&(c={bounds:r,orientation:o,reverse:s});const h=t?.ignoreHidden;if(h===!0||h===A.IRange.Orientation.Row){const B=pa(this._rowHeaders);l.processRowSkip=Hr(B),i&&(c.processRowSkip=Hr(B))}if(h===!0||h===A.IRange.Orientation.Column){const B=pa(this._colHeaders);l.processColumnSkip=Hr(B),i&&(c.processRowSkip=Hr(B))}const d=i||!t?.ignoreEmptyIntersections;let u=t.includeRangeTypes;u===!0&&(u=vg);const g=t?.includeMergeOverflow??!1,m=u?this._rangeStateIterator({bounds:r,orientation:o,reverse:s,includeRangeTypes:u,includeMergeOverflow:g,ignoreHidden:t.ignoreHidden,byCell:!0}):Wt;let f,p;if(g&&n){const B=this._overflowAndStops(n);B&&(f=B.overflows,f?.sort(w.CoordUtils.createCellComparator(o,s)),p=B.stops,p?.sort(w.CoordUtils.createCellComparator(o,s)))}const S=f?f.length:0,_=p?p.length:0;let E=0,C=0;const I=e?.cellValuesGrid??null;let y=I?I.entries(l):Wt,b=y.next(),v=null,R=null,x=null;b.done||(v=b.value[0],R=b.value[1]);let T=f?.[E++],M=m.next(),F=null;const N=o!==A.IRange.Orientation.Row;let k;const U=w.CoordUtils.createCellComparator(o,s);let O;if(!M.done){const B=M.value;F=B.intersection,O=B.start}k=B=>{let P=null,L=null,W=null,H=!1,G=!1,z=null,V=null,j=!1;if(T&&(v?U(T,v)<0&&(j=!0):O?U(T,O)<0&&(j=!0):E<=S&&(j=!0)),j)P={colIndex:T.colIndex,rowIndex:T.rowIndex},L=T.scalar,W=T.intersection,T=f[E++];else if(v&&O){const $=U(v,O);$<0?(P=v,L=R,H=!0):$>0?(P=O,W=F,G=!0):(P=v,L=R,W=F,H=!0,G=!0)}else if(v)P=v,L=R,H=!0;else{if(!O||!d)return xt;P=O,W=F,G=!0}if(H&&(b=y.next(),b.done?v=null:(v=b.value[0],R=b.value[1])),G){const $=d?void 0:v;if(M=m.next($),M.done)O=null,F=null;else{const tt=M.value;F=tt.intersection,O=tt.cell}}let q=!1;const J=P.rowIndex,X=P.colIndex;N||(q=J===x?.rowIndex);let Q=!1;if(N||(Q=J===v?.rowIndex),q)z=x;else if(g){let $=!1;for(;!$&&C<_;){const tt=p[C],st=tt.rowIndex;st<J?C++:($=!0,st===J&&tt.colIndex<X&&(C++,z={colIndex:tt.colIndex,rowIndex:tt.rowIndex}))}}if(Q)V=v;else if(g){let $=!1;for(;!$&&C<_;){const tt=p[C],st=tt.rowIndex;st<J?C++:($=!0,st===J&&tt.colIndex>X&&(C++,V={colIndex:tt.colIndex,rowIndex:tt.rowIndex}))}}return(H||j)&&(x=P),{done:!1,value:[P,L,W,z,V]}};let D={next:k,return:B=>null,throw:B=>null};return i&&(D=new ig(D,l)),D}_indexMerges(t,e=null){if(!(t&&t.length!==0||e&&e.length!==0))return;const n=this._getState();if(!n)return;const r=this._beginCommit({description:"indexMerges"}),o=n.mergeSpatial.clone();if(e){const s=e.length;for(let i=0;i<s;i++)o.remove(e[i])}if(t){const s=c=>this._getState().cellValuesGrid.getValueAt(c.rowStart,c.colStart),i=[],l=t.length;for(let c=0;c<l;c++){const h=t[c];i.push({...h,value:new Hd(h,s)})}o.load(i)}this._updateState({mergeSpatial:o}),r.commit()}_updateStyles(t,e,n,r=!1){const o=n?.description??"Update Style";this._protectionCheck(()=>["formatCells"],t,o);const s=this._beginCommit({description:o}),i=At(t);try{const l=this._getState();if(!l)return w.CommonUtils.EmptyArray;const c=l.directStyleSpatial,h=s.getId(),d=c.clone(h);let u=l.continuousFillSpatial;const g=this._styles,m=t.length;for(let f=0;f<m;f++){const p=(v,R)=>{let x=null;const T=Ci(0,R,()=>{if(x)return x;const M=v.getCoords();return x=Fr(g,v,M),x});return v.cloneWithUpdate(T)},S=!u.isEmpty();let _=null;const E=t[f],C=E.value,I=C!==void 0?C:e,y=p(new Ht(g,E),I),b=(v,R)=>{if(r&&v.value&&v.value.getProperties()?.numberFormat)return v;const x=w.CoordUtils.sanitizeRange(v);let T,M=null,F=v.value;if(F||(F=new Ht(g,x)),typeof I=="function")M=p(F,I);else{let N=R.value._p??null;M=F.cloneWithUpdate(N)}if(M.isEmpty()&&(M=null),M){const N=M._p?.alignment?.horizontal;!N||N!==exports.ITextFrame.HorizontalAlignment.CenterContinuous&&N!==exports.ITextFrame.HorizontalAlignment.Fill||(T=p(new Ht(g,E),{alignment:{horizontal:N}}))}return(T||S)&&(_||(_=[]),_.push({...v,value:T??null})),{...R,value:M}};if(d.insertNonOverlapping({...E,value:y},{onIntersect:b}),_){u===l.continuousFillSpatial&&(u=u.clone());const v=_.length;for(let R=0;R<v;R++){const x=_[R];u.insertNonOverlapping(x)}}}if(this._lastUsedCoordsRead.coords=null,this._updateState({directStyleSpatial:d,continuousFillSpatial:u}),n?.autoFit){const f=typeof n.autoFit=="boolean"?Da:n.autoFit;this._autoFit(t,f)}this._emitter.notify("onStyleChange"),r?s.commit({forceAmend:!0}):this._commitAndAutoSelect(s,i,n?.autoSelect,{viewAfter:{ranges:t}})}catch(l){throw s.rollback(),l}}_createIncrementalUpdater(t,e=null,n){const r=t?.orientation??A.IRange.Orientation.Row,o=t?.allowUnorderedWrites??!1,s=r===A.IRange.Orientation.Column,i=this._isDataColumn,l=s!==i,c=this;let h,d,u,g=l?new exports.Tuple.TransposedBuilder:new exports.Tuple.Builder,m=null;if(e){const E=e.getCoords(),C=E.colStart,I=E.rowStart,y=E.colEnd,b=E.rowEnd;m=(v,R)=>{if(v<I||v>b||R<C||R>y)throw new w.OutOfBoundsError}}s?(d=(E,C,I)=>(m?.(E,C),g.addValue(C,E,I),h),u=(E,C,I)=>(m?.(E,C+(I?.length??0)),g.addValues(C,E,I),h)):(d=(E,C,I)=>(m?.(E,C),g.addValue(E,C,I),h),u=(E,C,I)=>(m?.(E+(I?.length??0),C),g.addValues(E,C,I),h));const f=E=>{const C=g.build();return C&&c._updateTuples(C,E,null,n),e},p=o!==!1?w.CoordUtils.createCellComparator(t?.orientation):null,S=w.CommonUtils.isObject(o)?o:void 0;let _=null;return h=Object.freeze({push:(E,C)=>{const I=c._cellToCoords(E);return p&&(_&&p(I,_)<=0&&(f(S),g=l?new exports.Tuple.TransposedBuilder:new exports.Tuple.Builder),_=I),d(s?I.colIndex:I.rowIndex,s?I.rowIndex:I.colIndex,C)},pushAt:d,pushMultipleAt:u,apply:f}),h}_updateTuples(t,e,n=void 0,r=null){if(!t)return;const o=r?.isCell??!1,s=r?.isHyperlink??!1,i=t.tuples,l=t.bounds,c=this._beginCommit({description:e?.description??"Update Cells"});let h=null;const d=this._isDataColumn,u=d?A.IRange.Orientation.Column:A.IRange.Orientation.Row,g=this.getProtection().isLocked(),m=this.getProtection().isFormatCellsAllowed(),f=this._strings,p=l.majorStart,S=l.majorEnd,_=l.minorStart,E=l.minorEnd,C={colStart:d?p:_,rowStart:d?_:p,colEnd:d?S:E,rowEnd:d?E:S},I=this;(n=n??((et,Y)=>{I._validateCoords(et,Y??ni)}))(C);const y={[Z.Type.Style]:!1,[Z.Type.Table]:!1};let b=!1;g&&this._hasRangedEntries("unlockSpatial",C)&&(y[Z.Type.Unlock]=!1,b=!0),this._hasRangedEntries("mergeSpatial",C)&&(y[Z.Type.Merge]=!1,b=!0);const v=this._rangeStateIterator({bounds:C,orientation:u,includeRangeTypes:y});let R=v.next(),x=-1,T=-1,M=-1,F=-1,N=null;if(!R.done){const et=R.value,Y=et.start,ot=et.end;x=d?Y.colIndex:Y.rowIndex,T=d?ot.colIndex:ot.rowIndex,M=d?Y.rowIndex:Y.colIndex,F=d?ot.rowIndex:ot.colIndex,N=et.intersection}let k=(et,Y)=>{do{if(!N||et<=M&&Y<M)return null;if(et>=x&&Y>=M&&et<=T&&Y<=F)return N;if(R=v.next(),R.done)N=null,k=null,b=!1;else{const ot=R.value;x=d?ot.start.colIndex:ot.start.rowIndex,T=d?ot.end.colIndex:ot.end.rowIndex,M=d?ot.start.rowIndex:ot.start.colIndex,F=d?ot.end.rowIndex:ot.end.colIndex,N=ot.intersection}}while(N);return N};const U=c.getState(this),O=U.cellValuesGrid.clone(),D=U.calcGraph.clone(),B=U.formulaSpatial.clone(),P=U.spillSpatial.clone(),L=U.pendingSpatial.clone(),W=U.calcErrorsSpatial.clone(),H=U.contentfulSpatial.clone(),G=xn(d),z=xn(d,(et,Y)=>{if(et===Y)return Y}),V=xn(d,(et,Y)=>{if(et===Y)return Y}),j=xn(d,(et,Y)=>{if(et===Y)return Y}),q=[];let J=null,X=null;if(e?.textParser!==!1){const et=e&&e.textParser!==!0?e.textParser:{};X={ignoreQuotePrefix:!1,date1904:this._isDate1904,dateNF:!1,parse:null,...et},J=new _a(f,null,this._cellOptions)}const Q=[],$=this._cellOptions,tt=new Map,st=cd,K=(et,Y,ot)=>{const ct=k?.(Y,ot);if(ct?.merge){const pt=ct.merge.getCoords(),Rt=d?pt.colStart:pt.rowStart,se=d?pt.rowStart:pt.colStart;if(Rt!==Y||se!==ot)return}if(o&&et&&et.isICell){const pt=et;if(pt.isTopLeft()){const Rt=pt.getSpans();q.push({colStart:d?Y:ot,rowStart:d?ot:Y,colEnd:(d?Y:ot)+Rt.width-1,rowEnd:(d?ot:Y)+Rt.height-1})}}let at=cl(et,$,X,tt);if(at===void 0)return;const _t=at.value;if(at.stringToParse){no[0].colIndex=d?Y:ot,no[0].rowIndex=d?ot:Y,no[1]=_t,no[2]=ct,J.setState(no);const pt=X?.parse(at.stringToParse,J.context),Rt=cl(pt,$,X,tt,!0);if(J.clear(),Rt===null)return Rt;Rt!==void 0&&(at={...Rt})}if(g){if(g&&(et===null||at.value!==void 0))throw new w.ExpectedError(Qo);if(!m&&at.style!==void 0)throw new w.ExpectedError(Qo)}if(!s){const pt=at.style;pt===void 0||pt===null&&!o||z.append(Y,ot,pt);const Rt=at.hyperlink;Rt===void 0||Rt===null&&!o||V.append(Y,ot,Rt)}const dt=at.formula;return dt===void 0||dt===null&&!o||j.append(Y,ot,dt),_t};let nt=-1,rt=-1;try{const et=i.length;for(let wt=0;wt<et;wt++){const Ft=i[wt],Gt=Ft[0];if(nt>=Gt)throw new exports.Tuple.OutOfOrderError(`Duplicate or out of order major indices: {${Gt}}.`);if(nt=Gt,rt=Number.MIN_SAFE_INTEGER,Gt<p||Gt>S)throw new w.OutOfBoundsError("Provided major bounds is invalid");const Et=Ft[1],it=[],ut=Et.length;for(let St=0;St<ut;St++){const ht=Et[St],bt=ht[1],yt=bt.length;let Nt=ht[0],Ct=Nt;if(rt>Ct)throw new exports.Tuple.OutOfOrderError(`Duplicate or out of order minor indices: {${Ct}}.`);if(Ct<_||Ct+yt>E+1)throw new w.OutOfBoundsError("Provided minor bounds is invalid");let Bt=[];for(let Mt=0;Mt<yt;Mt++){const fe=bt[Mt];let Ve=null;if(b||typeof fe!="number"?(b||fe!==null||o)&&(Ve=K(fe,Gt,Ct)):Ve=fe,Ve==null){if(Ve===null&&G.append(Gt,Ct),Bt.length>0){const Yn=st(Bt,f);it.push([Nt,Yn]),Bt=[]}Nt=Ct+1}else Bt.push(Ve);Ct++}if(rt=Ct,Bt.length>0){const Mt=st(Bt,f);it.push([Nt,Mt]),Bt=null}}it.length>0&&Q.push([Gt,it])}const Y=G.done(),ot=Y.length;for(let wt=0;wt<ot;wt++){const Ft=Y[wt];O.delete(Y[wt]),H.insertNonOverlapping({...Ft,value:null});const Gt=D.delete(Ft);this._updateFormulaSpatial(B,null,Gt)}let ct;Q.length>0&&(O.setValues(Q),ct={tuples:Q,bounds:l});let at,_t=j.done();if(_t.length>1&&(_t=ze(_t,A.IRange.Orientation.Column,1)),ct||_t.length>0){const wt=D.setInputs(ct,_t);at=this._updateFormulaSpatial(B,wt.inserts,wt.removes,U.directStyleSpatial)}const dt=hd(Q,d),pt=dt.length;for(let wt=0;wt<pt;wt++)H.insertNonOverlapping(dt[wt]);const Rt=z.done();Rt.length>0&&this._updateStyles(Rt),q.length>0&&this._merge(q);const se=V.done();if(se.length>0&&this._setHyperlinks(se),this._updateState({cellValuesGrid:O,contentfulSpatial:H,calcGraph:D,formulaSpatial:B,spillSpatial:P,pendingSpatial:L,calcErrorsSpatial:W}),at&&at.length>0&&this._updateStyles(at,void 0,{},!0),e?.autoFit){const wt=typeof e.autoFit=="boolean"?Da:e.autoFit;this._autoFit([C],wt)}h={ranges:[C]},this._addEvent("data",C),this._commitAndAutoSelect(c,h,e?.autoSelect,{viewAfter:{formulas:[C],ranges:[C]}})}catch(et){throw c.rollback(),et}}_sort(t,e){typeof e=="boolean"&&(e={reverse:e});const n=e?.description??"Sort "+(e?.reverse?"Descending":"Ascending");this._protectionCheck(()=>["sort"],t,n);let r=1,o=1,s=!1;const i=this._getMerges([t]);if(i.length>0){s=!0;let z=i[0];if(r=z.colEnd-z.colStart+1,o=z.rowEnd-z.rowStart+1,(t.colEnd-t.colStart+1)%r!=0||(t.rowEnd-t.rowStart+1)%o!=0)throw new w.ExpectedError(zh);const V=i.length;for(let j=1;j<V;j++){const q=i[j];if(q.colEnd-q.colStart+1!==r||q.rowEnd-q.rowStart+1!==o)throw new w.ExpectedError(zh)}}const l=e?.orientation??A.IRange.Orientation.Row,c=l===A.IRange.Orientation.Row;let h=e?.offset??0,d=t;e?.hasHeader&&(d={...d},c?d.rowStart+=o:d.colStart+=r,h=Math.max(h-1,0));const u={offset:h,reverse:e?.reverse??exports.Sort.DefaultRangeOptions.reverse,collatorOptions:e?.collatorOptions??exports.Sort.DefaultRangeOptions.collatorOptions},g=c?d.colStart:d.rowStart,m=c?d.colEnd-d.colStart:d.rowEnd-d.rowStart,f=[],p=e?.fields;if(p){const z=p.length??0;for(let V=0;V<z;V++){let j=p[V];typeof j=="number"&&(j={offset:j}),f.push(j)}}else f.push(u);const S=f.length;for(let z=0;z<S;z++){const V=f[z]={...u,...f[z]};if(V.offset<0||V.offset>m)throw new w.OutOfBoundsError("The sort offset is outside of the bounds of the sort.");V.offset+=g}const _=[];let E=null,C=null,I=null,y=Number.MIN_SAFE_INTEGER;f.sort((z,V)=>z.offset-V.offset);let b=null;const v=e?.includeHidden??!1;if(!v){const z=pa(c?this._rowHeaders:this._colHeaders);b=Hr(z)}const R=this._cellIterator({bounds:d,orientation:l,ignoreHidden:!v&&l,includeRangeTypes:{[Z.Type.Style]:!1,[Z.Type.Merge]:!1}}),x=c?o:r;let T=(c?d.rowStart:d.colStart)-x,M=R.next();for(;!M.done;){const z=M.value.context,V=z.getCell();if(s&&!V.isTopLeft()){M=R.next();continue}const j=z.getCoords(),q=c?j.rowIndex:j.colIndex,J=c?j.colIndex:j.rowIndex;if(T!==q){for(T+=x,b&&(T=b(T));T<q;)_.push(null),T+=x;C=[],I=[],E={minorIndex:q,values:C,sortValues:I},_.push(E),T=q,y=f[0].offset}for(;J>y;){const X=f[I.length];y=X?X.offset:Number.MAX_SAFE_INTEGER,J>y&&I.push(null)}J===y&&I.push(V),C.push(V),M=R.next()}if(!E||_.length===0)return;const F=new Map,N=new Map,k=e?.collators??exports.Sort.DefaultCollators,U=k.length;for(let z=0;z<U;z++)F.set(k[z].type,k[z].compare),N.set(k[z].type,z);let O=null,D=null,B=null;_.sort((z,V)=>{const j=f.length;for(let q=0;q<j;q++){const J=f[q],X=z?z.sortValues[q]:null,Q=V?V.sortValues[q]:null,$=X?X.getValue():null,tt=Q?Q.getValue():null,st=$===null,K=tt===null;if($===tt)continue;if(st&&K)return 0;if(!st&&K)return-1;if(st&&!K)return 1;const nt=X.getType(),rt=Q.getType();let et=0;if(nt!==rt){let Y=N.get(nt);et=N.get(rt)-Y}else{let Y=D;if(O!==nt){Y=F.get(nt),D=Y,O=nt;let ot=N.get(rt);B={...k[ot].defaultOptions,...J.collatorOptions}}et=Y($,tt,B)}return J.reverse&&(et*=-1),et}return 0});const P=this._beginCommit({description:n});let L=[d];v||(L=this._getVisible(L,{orientations:c?A.IRange.Orientations.Row:A.IRange.Orientations.Column})),this._clear(L,void 0,void 0,!0);const W=this._createIncrementalUpdater({orientation:l});let H=c?d.rowStart:d.colStart;const G=_.length;for(let z=0;z<G;z++){const V=_[z];if(b&&(H=b(H)),V){const j=V.values,q=j.length;for(let J=0;J<q;J++){const X=j[J],Q=c?H:X.getCoords().rowIndex,$=c?X.getCoords().colIndex:H;W.pushAt(Q,$,X)}}H+=x}return W.apply(),P.commit(),d}_autoFill(t,e,n){const{direction:r,amount:o}=((f,p)=>{let S=A.IRange.Direction.Down,_=0;const E={...f};if(p.colStart<f.colStart?(S=A.IRange.Direction.Left,_=f.colStart-p.colStart,E.colStart=p.colStart):p.colEnd>f.colEnd?(S=A.IRange.Direction.Right,_=p.colEnd-f.colEnd,E.colEnd=p.colEnd):p.rowStart<f.rowStart?(S=A.IRange.Direction.Up,_=f.rowStart-p.rowStart,E.rowStart=p.rowStart):p.rowEnd>f.rowEnd&&(S=A.IRange.Direction.Down,_=p.rowEnd-f.rowEnd,E.rowEnd=p.rowEnd),!w.CoordUtils.isEqualRanges(E,p))throw new Error("Autofill destination must be the same as the range for 3 of the 4 edges.");return{direction:S,amount:_}})(t,e);if(o<=0)return!1;const s=r===A.IRange.Direction.Up||r===A.IRange.Direction.Down,i=this.getSelection().getCoords(),l=[],c=n?.previewOnly,h=n?.contentsOnly,d=n?.filler??exports.AutoFill.Types.Series,u={...n?.fillerOptions};let g=null,m=null;try{const f={...t};let p={...t};const S=[t],_=this._getMerges(S);if(_.length>0&&!w.CoordUtils.isRangeWithinRange(w.CoordUtils.unionRangesArrays(_),t))throw new w.ExpectedError(Uh);const E={...p};let C=1;if(r===A.IRange.Direction.Left)f.colStart=p.colStart=t.colStart-o,f.colEnd=t.colStart-1,C=_.length===0?C:t.colEnd+1-t.colStart,E.rowStart=E.rowEnd;else if(r===A.IRange.Direction.Right)f.colEnd=p.colEnd=t.colEnd+o,f.colStart=t.colEnd+1,C=_.length===0?C:t.colEnd+1-t.colStart,E.rowStart=E.rowEnd;else if(r===A.IRange.Direction.Up)f.rowStart=p.rowStart=t.rowStart-o,f.rowEnd=t.rowStart-1,C=_.length===0?C:t.rowEnd+1-t.rowStart,E.colStart=E.colEnd;else{if(r!==A.IRange.Direction.Down)throw new w.ExpectedError(w.CommonMessages.MESSAGE_ERROR_INVALID_ARG(r));f.rowEnd=p.rowEnd=t.rowEnd+o,f.rowStart=t.rowEnd+1,C=_.length===0?C:t.rowEnd+1-t.rowStart,E.colStart=E.colEnd}if(o%C!==0)throw new w.ExpectedError((K=>`When filling with merged cells the amount to fill must be a multiple of the input range [${K}].`)(C));const I=s?"rowIndex":"colIndex",y=s?"colIndex":"rowIndex",b=s?t.rowEnd+1-t.rowStart:t.colEnd+1-t.colStart,v=s?t.rowStart:t.colStart,R=s?t.rowEnd:t.colEnd,x=s?e.rowStart:e.colStart,T=s?e.rowEnd:e.colEnd,M=s?r===A.IRange.Direction.Down:r===A.IRange.Direction.Right;M||(u.reverse=!0);const F=M?R+1:x,N=(M?T:v-1)-F+1,k=s?t.colEnd:t.rowEnd;l.push(w.CoordUtils.unionRanges(f,t));const U=[];let O=null;c||(g=this._beginCommit({description:"Auto Fill",operation:{name:"autoFill",params:[t,e,n]}}));const D=this._cellIterator({bounds:c?E:t,reverse:!M,orientation:s?A.IRange.Orientation.Column:A.IRange.Orientation.Row,includeRangeTypes:{[Z.Type.Style]:!1}});let B=D.next();for(;!B.done;){const K=B.value.context,nt=K.getCell(),rt=K.getCoords();O?.oppositeIndex!==rt[y]&&(O={oppositeIndex:rt[y],lastIndex:M?v-1:R+1,values:[]},U.push(O));const et=rt[I];if(M)for(let ot=O.lastIndex+1;ot<et;ot++)O.values.push(null);else for(let ot=O.lastIndex-1;ot>et;ot--)O.values.push(null);O.lastIndex=et;const Y=nt.toDate();if(Y)O.values.push(Y);else{let ot=nt.getValue();O.values.push(ot)}B=D.next()}const P=U.length;for(let K=0;K<P;K++){const nt=U[K].values;for(let rt=nt.length;rt<b;rt++)nt.push(null)}const L=(K,nt)=>{if(K.canFill(nt[0],[])){const rt=K.createFillAt(nt,u);if(rt)return rt}return exports.AutoFill.Types.Copy.createFillAt(nt)},W=this;if(c){const K=U[U.length-1];if(U[U.length-1]?.oppositeIndex!==k)return null;const nt=L(d,K.values);return c(rt=>{const et=W._rangeToCoords(rt);let Y;r===A.IRange.Direction.Down||r===A.IRange.Direction.Right?Y={rowIndex:et.rowEnd,colIndex:et.colEnd}:r===A.IRange.Direction.Left?Y={rowIndex:et.rowEnd,colIndex:et.colStart}:r===A.IRange.Direction.Up&&(Y={rowIndex:et.rowStart,colIndex:et.colEnd});const ot=s?Y.rowIndex:Y.colIndex,ct={value:nt(M?ot-v:v-ot+b-1)};let at=null;return at=h?this.createTemporaryCell(ct,Y):this.createTemporaryCell(null,Y).createTemporaryCell(ct),at}),!1}const H=this._createIncrementalUpdater({orientation:s?A.IRange.Orientation.Column:A.IRange.Orientation.Row}),G=U.length;U.sort((K,nt)=>K.oppositeIndex-nt.oppositeIndex);for(let K=0;K<G;K++){const nt=K,rt=L(d,U[nt].values),et=U[nt].oppositeIndex,Y=M?b:b+N-1,ot=this.isDate1904();for(let ct=0;ct<N;ct++){let at=rt(Y+(M?ct:-ct));kr(at)&&(at=Ao(at,ot));const _t=F+ct;s?H.pushAt(_t,et,at):H.pushAt(et,_t,at)}}this._clear([f],n?.contentsOnly?exports.ICell.Content.Formats:void 0),H.apply();const z=this._getMerges([p]),V=w.CoordUtils.unionRangesArrays(z);if(z.length>0&&!w.CoordUtils.isRangeWithinRange(V,p))throw new w.ExpectedError(Uh);if(z.length>0){const K=[],nt=o/C;if(s){const rt=t.rowEnd-t.rowStart+1,et=r===A.IRange.Direction.Up?f.rowStart:t.rowEnd+1,Y=z.length;for(let ot=0;ot<Y;ot++){const ct=z[ot],at=ct.rowStart-t.rowStart,_t=ct.rowEnd-ct.rowStart+1;for(let dt=0;dt<nt;dt++){const pt=dt*rt;K.push({colStart:ct.colStart,rowStart:et+pt+at,colEnd:ct.colEnd,rowEnd:et+pt+at+_t-1})}}}else{const rt=t.colEnd-t.colStart+1,et=r===A.IRange.Direction.Left?f.colStart:t.colEnd+1,Y=z.length;for(let ot=0;ot<Y;ot++){const ct=z[ot],at=ct.colStart-t.colStart,_t=ct.colEnd-ct.colStart+1;for(let dt=0;dt<nt;dt++){const pt=dt*rt;K.push({colStart:et+pt+at,rowStart:ct.rowStart,colEnd:et+pt+at+_t-1,rowEnd:ct.rowEnd})}}}this._merge(K)}const j=this._getState(),q={},J={};J.directStyleSpatial=j.directStyleSpatial,J.continuousFillSpatial=j.continuousFillSpatial;let X=t,Q=f;if(!M){let K=(s?p.rowEnd+1-p.rowStart:p.colEnd+1-p.colStart)%b;const nt=s?"rowStart":"colStart",rt=s?"rowEnd":"colEnd";K!==0&&(Q={...f,[rt]:Math.min(f[rt],f[nt]+K)},X={...t,[nt]:t[rt]-K+1},f[nt]=f[nt]+K)}const $=Object.keys(J),tt=$.length;for(let K=0;K<tt;K++){const nt=$[K],rt=J[nt].createCopiedEntries(X,Q),et=j[nt].clone(),Y=rt.removes,ot=Y.length;for(let ct=0;ct<ot;ct++)et.remove(Y[ct]);et.load(rt.inserts),q[nt]=et}if(M){const K=this.getTables().getItems({address:{rowIndex:t.rowEnd,colIndex:t.colEnd}});if(K.length===1){const nt=K[0],rt=nt.getRange().getCoords();nt.resize({colStart:rt.colStart,rowStart:rt.rowStart,colEnd:s?rt.colEnd:f.colEnd,rowEnd:s?f.rowEnd:rt.rowEnd})}}const st=j.calcGraph.clone();st.autoFill(t,f),q.calcGraph=st,this._updateState(q),m={...i,ranges:l},g.commit({viewBefore:{view:this.getView(),selection:At([t]),selectOptions:n?.autoSelect},viewAfter:{view:this.getView(),selection:m,selectOptions:n?.autoSelect}}),this._autoSelect(n?.autoSelect??!1,m)}catch(f){throw g?.rollback(),f}return!0}_setHyperlinks(t,e,n){const r=n?.description??"Set Hyperlink";this._protectionCheck(()=>["insertHyperlinks","formatCells"],t,r);const o=At(t),s=this._beginCommit({description:r});let i=null;try{const l=this._getState();if(!l)return w.CommonUtils.EmptyArray;const c=l.hyperlinkSpatial;let h=c,d=l.directStyleSpatial.clone();const u=t.length;for(let g=0;g<u;g++){const m=t[g];let f=null;const p=m.value,S=p!==void 0?p:e;let _;if(S!==null){if(S.isIHyperlink)_={...S._p},f=S.getDisplayText();else if(typeof S=="string")_={address:S},f=S;else if(S.address||S.displayText){const E=S,C={...E};delete C.displayText,_=C,f=E.displayText??E.address}}else _=null;if(i=w.CoordUtils.unionRanges(i,m),c===h&&(h=c.clone()),_!==null||c.size()>0){if(f&&e){const E=this._createIncrementalUpdater({orientation:A.IRange.Orientation.Column},void 0,{isHyperlink:!0});for(let C=m.colStart;C<=m.colEnd;C++)for(let I=m.rowStart;I<=m.rowEnd;I++)E.pushAt(I,C,f);E.apply()}if(_===null)this._getRangedEntries("hyperlinkSpatial",[m],{onEntry:(E,C)=>(h.insertNonOverlapping({...C,value:_}),C.value)});else{h.insertNonOverlapping({...m,value:_});const E=this._styles,C=I=>{const y=I.value??new Ht(E,w.CoordUtils.sanitizeRange(I));let b={...y.getPropertiesAt(0,0,null)};if(b.named){const v=E.getNamed(b.named)?.getRanged().getPropertiesAt(0,0,null);b=w.CommonUtils.mergeContentful(v,b)}return delete b.font,b.named=exports.IStyle.BuiltInName.Hyperlink,{...I,value:y.cloneWithUpdate(b)}};d.insertNonOverlapping({...m,value:null},{onIntersect:C})}}}this._lastUsedCoordsRead.coords=null,this._updateState({hyperlinkSpatial:h,directStyleSpatial:d}),this._commitAndAutoSelect(s,o,n?.autoSelect,{viewAfter:{ranges:t}})}catch(l){throw s.rollback(),l}}_updateFormulaSpatial(t,e,n,r){if(n){const s=n.length;for(let i=0;i<s;i++){const l=n[i];t.remove(l)}}let o;if(e){const s=[],i=e.length;for(let l=0;l<i;l++){const c=e[l],h=w.CoordUtils.sanitizeRange(c),d=new cw(h,c.value.tokens,c.value.references);if(s.push({colStart:h.colStart,rowStart:h.rowStart,colEnd:h.colEnd,rowEnd:h.rowEnd,value:d}),!r)continue;const u=c.value.precedents;let g,m,f=!1;const p=u.length;for(let S=0;!f&&S<p;S++){const _=u[S],E=_.colStart;if(_.colStart===void 0)continue;const C=_.rowStart;Fe.colStart=E,Fe.rowStart=C,Fe.colEnd=E,Fe.rowEnd=C;const I=r.search(Fe)[0];if(I){const y=I.value.getPropertiesAt(C,E,null),b=y?.numberFormat;if(b)if(g){m||(m=exports.NumberFormat.Styles.lookupStyle(g)?.formatType);const v=exports.NumberFormat.Styles.lookupStyle(b)?.formatType;zf(v,m)>0?(m=v,g=b):f=!0}else g=b}}g&&(o||(o=[]),o.push({colStart:h.colStart,rowStart:h.rowStart,colEnd:h.colEnd,rowEnd:h.rowEnd,value:{numberFormat:g}}))}t.load(s)}return o}_realizeCalcedValues(t){if(!t)return;const e=this._getState();if(!e)return;const n=t.valueInserts,r=t.spillRemoves,o=t.errorRemoves,s=e.cellValuesGrid,i=this._beginCommit();t.isFull&&(e.calcErrorsSpatial.clear(),e.spillSpatial.clear(),e.pendingSpatial.clear());const l=t.valueRemoves;if(l){const m=e.contentfulSpatial,f=l.length;for(let p=0;p<f;p++){const S=l[p];s.delete(S),m.insertNonOverlapping({...S,value:null})}}if(r){const m=e.spillSpatial,f=r.length;for(let p=0;p<f;p++){const S=r[p];m.remove(S)}}if(o){const m=e.calcErrorsSpatial,f=o.length;for(let p=0;p<f;p++){const S=o[p];m.remove(S)}}this._updateFormulaSpatial(e.formulaSpatial,t.formulaInserts,t.formulaRemoves);const c=t.formatInserts;if(c){const m=c.length;for(let f=0;f<m;f++){const p=c[f],S={numberFormat:p.value};p.value=S}this._updateStyles(c,void 0,{autoFit:!0},!0)}if(n){const m=n.tuples;s.setValues(m);const f=this._isDataColumn,p=f?A.IRange.Orientation.Column:A.IRange.Orientation.Row,S=e.contentfulSpatial,_=m.length;for(let E=0;E<_;E++){const C=m[E],I=C[0],y=C[1],b=y.length;for(let v=0;v<b;v++){const R=y[v],x=R[0],T=x+R[1].length-1,M={colStart:f?I:x,rowStart:f?x:I,colEnd:f?I:T,rowEnd:f?T:I};S.insertNonOverlapping({colStart:M.colStart,rowStart:M.rowStart,colEnd:M.colEnd,rowEnd:M.rowEnd,value:new ke(M,p)})}}}const h=t.spillInserts;if(h){const m=h.length;for(let f=0;f<m;f++){const p=h[f],S=p.value;p.value=new jn(w.CoordUtils.sanitizeRange(p),0,S)}e.spillSpatial.load(h)}const d=t.pendingUpdates;if(d){const m=e.pendingSpatial,f=d.length;for(let p=0;p<f;p++){const S=d[p];S.value===!1&&(S.value=null),m.insertNonOverlapping(S)}}const u=t.errorInserts;u&&e.calcErrorsSpatial.load(u);const g=t.formulaInserts;if(g){const m=ze(g);this._autoFit(m,Da)}if(i.commit({forceAmend:!0,viewAfter:{calculationSideEffect:!0}}),(t.bounds||t.isFull)&&!this._initializing){const m=this._rangesListenerMap;if(m.size>0){const f={isDataChange:!0,isTransactional:!1,timeStamp:Date.now(),isUndo:!1,trigger:"calc"};this._notifyRangeListeners(this._rangeListenerSpatial,m,[t.bounds??this._entireCoords],f)}(h||r)&&this._emitter.notify("onSpillsChange")}}_calculate(t,e){const n=this._getState().calcGraph;n.invalidate(t),n.calculate(e)}_calculateFull(){this._initializing||w.CommonUtils.debounce(()=>{this._getState()?.calcGraph.calculate({full:!0})},100)()}_setComments(t,e,n){const r=n?.description??"Set Comments",o=At(t),s=this._beginCommit({description:r});let i=null;try{const l=this._getState();if(!l)return w.CommonUtils.EmptyArray;const c=l.commentsSpatial;let h=c;const d=t.length;for(let u=0;u<d;u++){const g=t[u];let m=null;if(e!==null){let f=e;if(!f)continue;m=typeof f=="string"?{content:{runs:{text:f}}}:{...f}}i=w.CoordUtils.unionRanges(i,g),c===h&&(h=c.clone()),h.insertNonOverlapping({...g,value:m})}this._lastUsedCoordsRead.coords=null,this._updateState({commentsSpatial:h}),this._commitAndAutoSelect(s,o,n?.autoSelect,{viewAfter:{ranges:t}})}catch(l){throw s.rollback(),l}}_clear(t,e=null,n,r=!1,o=!1){let s=null,i="Clear",l=!1,c=!1,h=!1,d=!1;e===exports.ICell.Content.Formulas?(i=`${i} Formulas`,d=!0):e===exports.ICell.Content.Values?(i=`${i} Values`,d=!0):e===exports.ICell.Content.Formats?(i=`${i} Formats`,l=!0,s=["formatCells"]):e===exports.ICell.Content.Comments?(i=`${i} Comments`,h=!0):e===exports.ICell.Content.Hyperlinks?(i=`${i} Hyperlinks`,c=!0,s=["formatCells"]):(s=[],i=`${i} All`,d=!0,l=!0,c=!0,h=!0),s!==null&&this._protectionCheck(()=>s,t,n?.description??i);const u=At(t),g=this._beginCommit({description:n?.description??i});let m=this._getState(),f=m.cellValuesGrid,p=m.calcGraph,S=m.contentfulSpatial,_=m.formulaSpatial,E=m.spillSpatial,C=m.pendingSpatial,I=m.calcErrorsSpatial,y=m.rangesListenerSpatial2;d&&(f=f.clone(),p=p.clone(),S=S.clone(),_=_.clone(),E=E.clone(),C=C.clone(),I=I.clone());try{if(c&&this._setHyperlinks(t,null),h&&this._setComments(t,null),l&&(this._updateStyles(t,null),r||this._unmerge(t)),l||d){js(0,t,[],S,E,f);const b=t.length;for(let v=0;v<b;v++){const R=t[v];if(d){f.delete(R);const M={...R,value:null};S.insertNonOverlapping(M);const F=p.delete(R);this._updateFormulaSpatial(_,null,F)}const x=this.getTables().getItems({address:R}),T=x.length;for(let M=0;M<T;M++){const F=x[M];w.CoordUtils.isRangeWithinRange(F.getAnchorCoords(),R)&&(e===exports.ICell.Content.Formats?F.updateStyleOptions({name:null}):F.delete())}if(l){let M=m.conditionalSpatial;M.size()>0&&(M=M.clone(g.getId()),M.insertNonOverlapping({...R,value:null},{noMerge:!0}),m=this._updateState({conditionalSpatial:M}))}if(o){const M=y.search(R),F=M.length;for(let N=0;N<F;N++){const k=M[N];w.CoordUtils.isRangeWithinRange(k,R)&&(y===m.rangesListenerSpatial2&&(y=y.clone()),console.log("cut and move listener"),y.remove(k))}}}}this._updateState({cellValuesGrid:f,calcGraph:p,contentfulSpatial:S,formulaSpatial:_,spillSpatial:E,pendingSpatial:C,calcErrorsSpatial:I,rangesListenerSpatial2:y}),this._commitAndAutoSelect(g,u,n?.autoSelect,{viewAfter:{ranges:t}})}catch(b){throw g.rollback(),b}}_merge(t,e=null){if(this._protectionCheck(Kd,t),t.length===1&&w.CoordUtils.isSingleCell(t[0]))return;let n=A.IRange.Orientations.Both;e?.orientations?n=e?.orientations:e===A.IRange.Orientations.Row?n=A.IRange.Orientations.Row:e===A.IRange.Orientations.Column&&(n=A.IRange.Orientations.Column);const r=e?.discardMultipleValues??!1;let o=At(t);const s=this.getSelection().getCoords();let i=null;const l=this._beginCommit({description:e?.description??"Merge"});let c=t[0];try{const h=this._getMerges(t);if(fo(t)||h.length>0){const m=w.CoordUtils.unionRangesArrays(h),f=w.CoordUtils.unionRangesArrays(t);if(!(!m&&!f||m&&f&&w.CoordUtils.isRangeWithinRange(m,f)))throw console.warn(Lh,t),new w.ExpectedError(Lh);this._unmerge(h)}const d=this._createIncrementalUpdater({orientation:A.IRange.Orientation.Column}),u=[],g=[];try{const m=this._entireCoords,f=this._getState().contentfulSpatial,p=this._getState().directStyleSpatial;let S=!1;const _=I=>{const y={rowIndex:I.rowStart,colIndex:I.colStart};let b=null;if(S){let U=0;const O=f.search(I),D=O.length;for(let B=0;B<D;B++){const P=w.CoordUtils.intersectRanges(O[B],I);if(P&&(U+=(P.rowEnd-P.rowStart+1)*(P.colEnd-P.colStart+1)),U>1)throw new w.TypedError("Merging cells would cause some values to be discarded. Use 'discardMultipleValues' option if desired.","discardMultipleValues")}}b||(b=y);let v=null,R=null,x=null,T=null,M=null,F=null,N=null;Jt.colStart=I.colStart,Jt.rowStart=I.rowStart,Jt.colEnd=I.colStart,Jt.rowEnd=I.rowStart;let k=p.search(Jt);if(k.length>0){N=k[0].value?.getPropertiesAt(I.rowStart,I.colEnd,null);const O=N?.border;v=O?.left??null,R=O?.top??null,M=O?.right??null,F=O?.bottom??null}if(Jt.colStart=I.colEnd,Jt.colEnd=I.colEnd,k=p.search(Jt),k.length>0){const U=k[0],O=U.value?.getPropertiesAt(I.rowStart,I.colEnd,null)?.border;O&&O.right&&(x=O.right)}if(Jt.colStart=I.colStart,Jt.colEnd=I.colStart,Jt.rowStart=I.rowEnd,Jt.rowEnd=I.rowEnd,k=p.search(Jt),k.length>0){const U=k[0],O=U.value?.getPropertiesAt(I.rowEnd,I.colStart,null)?.border;O&&O.bottom&&(T=O.bottom)}if(!x||!T){Jt.colStart=I.colEnd,Jt.colEnd=I.colEnd,Jt.rowStart=I.rowEnd,Jt.rowEnd=I.rowEnd,k=p.search(Jt);const U=k?.[0];if(U){const O=U.value?.getPropertiesAt(I.rowEnd,I.colEnd,null)?.border;O&&(x||(x=O.right??null),T||(T=O.bottom??null))}}u.push({...I,value:null}),u.push({...I,value:{...N,border:{top:R,left:v,right:x??M,bottom:T??F,horizontal:null,vertical:null}}}),w.CoordUtils.isEqualCells(b,y)||d.pushAt(b.rowIndex,b.colIndex,null),g.push(I),c=w.CoordUtils.unionRanges(c,I)},E=[...t].sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Column)),C=E.length;for(let I=0;I<C;I++){const y=E[I];if(!w.CoordUtils.isSingleCell(y)){if(i||!s||!w.CoordUtils.isCellWithinRange(s.cell,y)||s.cell.rowIndex===y.rowStart&&s.cell.colIndex===y.colStart||(i={...o,cell:{rowIndex:y.rowStart,colIndex:y.colStart}}),!r&&(S=f.search(y).length>0),this._validateOrRemoveOverlaps(y,"merge"),y.colStart<m.colStart||y.rowStart<m.rowStart||y.colEnd>m.colEnd||y.rowEnd>m.rowEnd)throw new w.ExpectedError("We can't merge outside of the maximum cell location.");if(n===A.IRange.Orientations.Column){const b=y.rowEnd!==m.rowEnd?y.rowEnd:Math.max(1,m.rowEnd);for(let v=y.rowStart;v<=b;v++)_({...y,rowStart:v,rowEnd:v})}else if(n===A.IRange.Orientations.Row){const b=y.colEnd!==m.colEnd?y.colEnd:Math.max(1,m.colEnd);for(let v=y.colStart;v<=b;v++)_({...y,colStart:v,colEnd:v})}else _(y)}}d.apply(),this._indexMerges(g),this._updateStyles(u),this._updateState({})}catch(m){throw m.type?new w.TypedError(m.message??"Unable to merge",m.type):new w.ExpectedError(m.message??"Unable to merge")}i&&(o=i,this.getSelection().updateCoords(i)),l.commit({viewAfter:{view:this.getView(),selection:o,merges:t,ranges:t,selectOptions:e?.autoSelect}}),this._autoSelect(e?.autoSelect??!1,o)}catch(h){throw l.rollback(),h}}_unmerge(t,e){if(this._protectionCheck(Kd,t),fo(t))throw new w.ExpectedError("We can't unmerge intersecting ranges.");if(!this._getState())return null;const n=w.CoordUtils.unionRangesArrays(t),r=At(t),o=this._beginCommit({description:e?.description??"Unmerge"}),s=o.getState(this).mergeSpatial,i=[];try{const l=t.length;for(let c=0;c<l;c++){const h=t[c],d=s.search(h),u=d.length;for(let g=0;g<u;g++){const m=d[g];if(!w.CoordUtils.isSingleCell(h)&&!w.CoordUtils.isRangeWithinRange(m,n))throw new w.ExpectedError("We can't unmerge partial cells.");i.push(m)}}if(i.length===0)return o.rollback(),null;this._indexMerges(null,i),this._commitAndAutoSelect(o,r,e?.autoSelect,{viewAfter:{merges:t,ranges:t}})}catch(l){throw o.rollback(),l}}_getMerges(t,e=!1){return t.length===0?w.CommonUtils.EmptyArray:this._getRangedEntries("mergeSpatial",t,{ignoreHidden:e,fullyContained:!1,onEntry:n=>n.getCoords()})}_clone(){const t={...this._options,container:null};this._ownStyles&&(t.styles=this._styles),this._ownStrings&&(t.strings=this._strings),this._ownResources&&(t.resources=this._resources),this._ownNames&&(t.names=this._names),this._ownsCalculation&&(t.calculation=this._calculation),t.transactions=new xe({transient:!0});const e=new Nr(t),n=this._transactions.getState(this);e._updateState(n);const r=new Ba({sheet:this,json:this.getView().toJSON()});return r.selectMovables(this.getView().getMovableSelection()),e.setView(r),e}_getSnapshot(t,e){if(t.length===0)return w.CommonUtils.EmptyArray;const n=this._getState();if(!n)return null;e=Object.freeze({...e});const r=this._clone();r.isMarked=!0;const o=this,s=o.getView(),i="Range",l=[],c=((S,_,E,C)=>{const I=[];let y=null,b=null;const v=E&&E.length>0;if(v){const x=E.length;for(let T=0;T<x;T++){const M=E[T].getSnapshot?.(C);M&&(I.push(M),y=Va(M.getCoords(),y))}}else if(_){const x=_.length;for(let T=0;T<x;T++){const M=_[T],F=S.getMovables().getItems({ignoreHidden:!1,fullyContained:!0,address:M}),N=F.length;for(let k=0;k<N;k++){const U=F[k].getSnapshot?.(C);U&&(I.push(U),y=Va(S.getRange(M).getBounds(),y),b=w.CoordUtils.unionRanges(b,M))}}}if(I.length===0)return null;const R=()=>C.description??(I?.length===1?Rr(I[0]?.getName()):"Drawings");return{copyTo:async(x,T)=>{const M={...C,...T},F=x.getSheet(),N=F.getView(),k=N.getMovableSelection(),U=x.getCoords(),O=M?.isCut??!1,D=N.getMovableSelection();N.selectMovables([]);const B=F.beginCommit(M.description??`${O?"Cut":"Copy"} ${R()}`);try{let P=0,L=0;if(D.length>0&&I.length>0){let G=Number.MAX_SAFE_INTEGER,z=Number.MAX_SAFE_INTEGER;for(let $=0;$<k.length;$++){const tt=k[$].getBounds();G=Math.min(tt.x,G),z=Math.min(tt.y,z)}let V=Number.MAX_SAFE_INTEGER,j=Number.MAX_SAFE_INTEGER;const q=I.length;for(let $=0;$<q;$++){const tt=I[$].getCoords();V=Math.min(tt.x,V),j=Math.min(tt.y,j)}P=G-V,L=z-j;const J=I[0].getCoords(),X={...J,x:J.x+P,y:J.y+L},Q=Bd(F.getMovables(),X);P+=Q.x,L+=Q.y}else if(y){const G=F.getRange(U).getBounds();P=G.x-y.x,L=G.y-y.y}const W=[],H=I.length;for(let G=0;G<H;G++){const z=I[G],V=z.getCoords(),j={...V,x:V.x+P,y:V.y+L};W.push(z.copyTo({movables:F.getMovables(),bounds:j},{autoSelect:{addToSelection:!0},...M}))}await Promise.all(W),B?.updateState(F,G=>G),B.commit({viewBefore:G=>({...G,view:S.getView(),movableSelection:D})})}catch(P){throw B.rollback(),P}return null},getName:R,getCoords:()=>b,getMarkOptions:()=>C,toText:()=>v?I[0].toText?.()??null:null,toHtml:()=>v?I[0].toHtml?.()??null:null,toImage:()=>v?I[0].toImage?.()??null:null,getSource:()=>S,isISnapshot:!0}})(r,t,s.getMovableSelection(),e);if(c){if(s.getMovableSelection().length>0)return c;l.push(c)}if(t.length>1)throw new w.ExpectedError(Hh);const h={singleMerge:null};l.push({copyTo(S,_){const E={...e,..._};let C=null;if(!E.skipBlanks){const y=S.getSheet(),b=S.getCoords(),v=b;C=y.getRange(v);let R=!1;const x=C.getMerges();if(x.length===1&&w.CoordUtils.isEqualRanges(x[0],b))if(w.CoordUtils.isSingleCell(t[0]))R=!0;else{const T=(I=p)?{colIndex:I.colStart,rowIndex:I.rowStart}:null;r._getMerges([w.CoordUtils.cellToRange(T)]).length===1&&(R=!0)}return R?(h.singleMerge=b,C.clear(E.type??exports.ICell.Content.Values)):C.clear(E.type),v}var I}});const d=r._entireCoords,u=t.length;for(let S=0;S<u;S++){const _=t[S],E=n.rangeListenerSpatial.search(_,!1),C=n.rangesListenerMap;l.push({async copyTo(I,y){if(!y.isCut)return;const b=new Set,v=E.length;for(let R=0;R<v;R++){const x=E[R].value,T=x.id;if(b.has(T))continue;const M=C.get(T);if(b.add(T),M.ranges[x.offset]===null)return;const F={isTransactional:!0,isDataChange:!1,trigger:"moveCells",from:r.getRanges(t),to:I},N=r._createRangeEvent(M.ranges,F);r._notifyRangeListener2(M,N,F)}return null},getMarkOptions:()=>e,getCoords:()=>null,isISnapshot:!0})}const g={ignoreHidden:!1,fullyContained:!0,onEntry:S=>S.model};for(let S=0;S<u;S++){const _=t[S],E=r._getRangedEntries("tableSpatial",[_],g),C=E.length;for(let I=0;I<C;I++){const y=E[I],b=y.getAnchorCoords(),v=b.colStart-_.colStart,R=b.rowStart-_.rowStart,x=y.getSnapshot(e);l.push({async copyTo(T,M){const F=T.getSheet(),N=T.getCoords();if(r.getProtection().isLocked())return;const k={colStart:N.colStart+v,rowStart:N.rowStart+R,colEnd:N.colEnd+v,rowEnd:N.rowEnd+R};return x.copyTo({tables:F.getTables(),range:k},M)}})}}for(let S=0;S<u;S++){const _=t[S];l.push(Ld(o.getColumnHeaders().getRange(_),_,Object.freeze({...e,includeHeaders:_.rowStart<=d.rowStart&&_.rowEnd>=d.rowEnd})))}for(let S=0;S<u;S++){const _=t[S];l.push(Ld(o.getRowHeaders().getRange(_),_,Object.freeze({...e,includeHeaders:_.colStart<=d.colStart&&_.colEnd>=d.colEnd})))}const m=sw(o,r,t,i,e,(S,_)=>r._copyRange(o,r,t,S,_,h));l.push(m);const f=r._getState().calcGraph.getSnapshot({range:t[0]});l.push({async copyTo(S,_){const E=S.getSheet(),C=S.getCoords();if(r.getProtection().isLocked())return;const I=E._getState().calcGraph;return f.copyTo({calcGraph:I,range:C},_)}});const p=t[0];return((S,_,E,C,I,y,b=null)=>({async copyTo(v,R){let x=null;const T={...I,...R},M=E.beginCommit(T.description??y);try{const F=S.length;for(let N=0;N<F;N++){const k=await S[N].copyTo(v,T);k&&(x=w.CoordUtils.unionRanges(x,k))}M.commit()}catch(F){throw M.rollback(),F}return x},getMarkOptions:()=>I,getName:()=>y,getSource:()=>_,getCoords:()=>C,toText(){let v=b?.toText?.()??null;const R=S.length;for(let x=0;!v&&x<R;x++)v=S?.[x].toText?.();return v??null},toHtml(){let v=b?.toHtml?.()??null;const R=S.length;for(let x=0;!v&&x<R;x++)v=S?.[x].toHtml?.();return v??null},toImage(){let v=b?.toImage?.()??null;const R=S.length;for(let x=0;!v&&x<R;x++)v=S?.[x].toImage?.();return v??null},isISnapshot:!0}))(l,o,r,p,e,i,m)}async _copyRange(t,e,n,r,o,s){if(n.length>1)throw new w.ExpectedError("Only a single selection is supported when using 'Insert Copy'.");if(!n||n.length===0)throw new w.ExpectedError("The source has no range.");const i=r.getSheet();let l=r.getCoords(),c={...n[0]};const h=(o={...o}).isCut;let d=!o.type||o.type===exports.ICell.Content.Formats,u=!o.type||o.type===exports.ICell.Content.Values,g=!o.type||o.type===exports.ICell.Content.Formats||o.type===exports.ICell.Content.Hyperlinks;const m=i.getEntireRange(),f=m.getCoords(),p=[],S=[],_=[];let E=[],C=[];const I=(o.fitDestination??!1)&&!w.CoordUtils.isSingleCell(l),y=l;if(I&&(c={...c,colEnd:c.colStart+Math.min(y.colEnd-y.colStart,c.colEnd-c.colStart),rowEnd:c.rowStart+Math.min(y.rowEnd-y.rowStart,c.rowEnd-c.rowStart)}),!w.CoordUtils.isRangeWithinRange(y,f))throw console.warn(y,f),new w.ExpectedError("We can't paste outside of the sheet bounds.");let b=null;b=o.undoRange?{view:i.getView(),selection:At([o.undoRange.getCoords()])}:{sheet:i,selection:At([y])};const v=i.getTransactions().beginCommit({description:o.description??"Paste"});try{if(!this._getState())return w.CommonUtils.EmptyArray;const R=new Set,x=o.transpose;let T=!((x||o.adjustCells)&&d)&&R.size===1;if(T){const z=R.values().next();T=w.CoordUtils.isRangeWithinRange(c,z.value.getCoords())&&!po(c,z.value.getCoords())}T&&(T=i.getTables().getItems({address:y}).length===0),x&&(T=!0),s.singleMerge&&(d=!1,g=!1);const M=l.colStart-c.colStart,F=l.rowStart-c.rowStart,N=o.adjustCells;let k={...v0};if(delete k[Z.Type.Style],!d){const z=this.getProtection().isLocked();k={},z&&(k[Z.Type.Unlock]=!1)}const U=A.IRange.Orientation.Column;let O;if(u){O=m.startIncrementalUpdates({orientation:o.transpose?A.IRange.Orientation.Row:A.IRange.Orientation.Column});const z={orientation:U,includeRangeTypes:k,bounds:c},V=new _a(this._strings,z,this._cellOptions),j=(Q,$,tt)=>{const st=Q[0],K=V.setState(Q),nt=V.context,rt=nt.getCell(),et=rt.isTopLeft();let Y=F,ot=M;if(x){const dt=st.colIndex-c.colStart,pt=st.rowIndex-c.rowStart;Y=dt+tt+l.rowStart,ot=pt+$+l.colStart}else Y=F+st.rowIndex+$,ot=M+st.colIndex+tt;let ct=!1;const at={value:void 0,style:void 0,hyperlink:void 0};if(u&&(at.value=K,ct=!0),d){const dt=Q[2];dt&&(dt.directStyle||dt.table)&&(at.style=rt.getStyle(!T),ct=!0)}g&&(at.hyperlink=rt.getHyperlink(),ct=!0);let _t=at;if(N&&et){const dt=N(K,nt,{rowIndex:Y,colIndex:ot},o);dt!==void 0&&(_t=dt,ct=!0)}if(ct&&(O.pushAt(Y,ot,_t),d)){const dt=rt.getSpans();(dt.width>1||dt.height>1)&&et&&p.push({colStart:ot,rowStart:Y,colEnd:ot+(o.transpose?dt.height:dt.width)-1,rowEnd:Y+(o.transpose?dt.width:dt.height)-1})}},q=this._cellStateIterator(z);let J={next(){const Q=q.next();if(Q.done)return xt;const $=Q.value[0];let tt;return Q.value&&(tt=[$,Q.value]),{done:Q.done,value:tt}}};if(!s.singleMerge&&!w.CoordUtils.isEqualRanges(y,c)){const Q=y.colEnd-y.colStart+1,$=y.rowEnd-y.rowStart+1;J=new tl({delegate:J,bounds:c,orientation:U,dims:{major:o.transpose?$:Q,minor:o.transpose?Q:$}})}let X=J.next();for(;!X.done;){const Q=X.value,$=Q[1],tt=Q[0],st=$[0];j($,tt.rowIndex-st.rowIndex,tt.colIndex-st.colIndex),X=J.next()}}const D=e._getState(),B={},P={transpose:x??!1};d&&(B.directStyleSpatial=D.directStyleSpatial,B.continuousFillSpatial=D.continuousFillSpatial,B.mergeSpatial=D.mergeSpatial),h&&(t._clear([c],void 0,void 0,!1,!0),E.push(c),B.rangesListenerSpatial2=D.rangesListenerSpatial2);const L=i,W=L._getState(),H=Object.keys(B),G=H.length;for(let z=0;z<G;z++){const V=H[z],j=B[V].createCopiedEntries(c,y,P),q=W[V].clone(),J=j.removes,X=J.length;for(let Q=0;Q<X;Q++)q.remove(J[Q]);q.load(j.inserts),W[V]=q}L._updateState(W),E.push(y),C.push(y),S&&S.length>0&&L._colHeaders.updateHeaderPairs(S),_&&_.length>0&&L._rowHeaders.updateHeaderPairs(_),O?.apply(),p.length>0&&i.getRanges(p).merge(),v.commit({viewBefore:b,viewAfter:z=>({...z,view:i.getView(),selection:At(C),ranges:E})})}catch(R){throw console.warn(R),v.rollback(),new Error((x=>`Unable to paste: ${x}`)(R.message),{cause:R})}return w.CoordUtils.unionRangesArrays(C)}_snapShotFromSource(t,e){if(t.isISnapshot)return t;const n=t;let r=null;if(n?.isICellRanges)throw new w.ExpectedError(Hh);if(r=n?.isICellRange?n:this.getRange(n),r.isICellRange){const o=r;if(o.isInvalid())throw new w.ExpectedError(Vh);return o.getSnapshot(e)}throw new w.ExpectedError(Vh)}async _copyFrom(t,e,n){if(!e)throw new w.ExpectedError("Both a source and a destination are required to copy.");const r=this._snapShotFromSource(e),o="Paste",s=this._beginCommit({description:n?.description??o});let i=null;try{const l=nl(t,r.getCoords(),n?.fitDestination,n?.transpose),c=this.getRange(l);i=await r.copyTo(c,n);const h=r.getName(),d=[i];n?.isCut&&d.push(r.getCoords()),s.commit({description:h?n?.description??`${o} ${h}`:o,viewAfter:{view:this.getView(),selection:At([i??l]),ranges:d}})}catch(l){throw s.rollback(),l}return i}_createFilter(t,e,n){const r=this;return new $g({initialAnchor:t,maxRangeCoords:this._entireCoords,json:e,transactions:this._transactions,deleteFromContainer:o=>{const s=this._beginCommit({description:o?.description??"Delete Filter"});this._updateState({filter:null}),s.commit()},apply:o=>{console.log("apply Filter",o)},processUpdate:()=>{},isProtected:()=>!r._initializing&&!r.getProtection().isAutoFilterAllowed()})}insertFilter(t){const e=this._rangeToCoords(t,()=>["autoFilter"]);let n=this.getFilter();if(n)return n;n=this._createFilter(e);const r=At([e]),o=this._beginCommit({description:"Insert Filter"});return this._updateState({filter:n}),o.commit({viewAfter:{ranges:[e],view:this.getView(),selection:r,selectOptions:void 0}}),n}getFilter(){return this._getState()?.filter??null}insertSort(t){return this._rangeToCoords(t,()=>["sort"]),null}getSort(){return null}_getDefaultShiftOrientation(t){return l_(t,this._entireCoords)}_getDefaultSortCriteria(t,e,n){return ld(this,t,n?this._cellToCoords(n):null,e)}async _insertFrom(t,e,n){if(!e)throw new w.NullNotAllowedError;const r=this._snapShotFromSource(e),o=r.getCoords();let s=nl(t[0],o,n?.fitDestination),i=At([s]),l=i;const c=n?.orientation??this._getDefaultShiftOrientation(s),h=this._beginCommit({description:n?.description??"Insert Copied Cells",autoSelect:n?.autoSelect});try{if(this._insertCells([s],c),await this._copyFrom(s,r,{...n,isCut:!1}),n.isCut){const d={...o};if(i=At([d]),s={...s},this===r.getSource()){if(c===A.IRange.Orientation.Row){if(s.colStart<d.colStart&&s.colEnd>=d.colStart||s.colEnd>d.colEnd&&s.colStart<=d.colEnd)throw new w.ExpectedError(jh);if(d.colStart===s.colStart&&d.colEnd===s.colEnd){const u=d.rowEnd-d.rowStart+1;s.rowStart<=d.rowStart?(d.rowStart+=u,d.rowEnd+=u):(s.rowStart-=u,s.rowEnd-=u)}}else{if(s.rowStart<d.rowStart&&s.rowEnd>=d.rowStart||s.rowEnd>d.rowEnd&&s.rowStart<=d.rowEnd)throw new w.ExpectedError(jh);if(d.rowStart===s.rowStart&&d.rowEnd===s.rowEnd){const u=d.colEnd-d.colStart+1;s.colStart<=d.colStart?(d.colStart+=u,d.colEnd+=u):(s.colStart-=u,s.colEnd-=u)}}l=At([s])}r.getSource().getRanges([d]).delete(c)}h.commit({viewBefore:{ranges:t,view:this.getView(),selection:i,selectOptions:n?.autoSelect},viewAfter:{ranges:t,view:this.getView(),selection:l,selectOptions:n?.autoSelect}}),this._autoSelect(n?.autoSelect??!1,l)}catch(d){throw h.rollback(),d}return s}_insertCells(t,e,n=void 0){const r=this;let o;n=n??((f,p)=>{r._validateCoords(f,p??ha)}),e===A.IRange.Orientation.Column||e===A.IRange.Orientation.Row?(o=e,e={}):e&&(o=e.orientation);const s=e?.description??"Insert Cells",i=(o??this._getDefaultShiftOrientation(t[0]))===A.IRange.Orientation.Column;if(this._protectionCheck(()=>[i?"insertColumns":"insertRows"],t,s),fo(t))throw new w.ExpectedError("We can't insert cells with overlapping selections.");const l=this._entireCoords;let c=l.colEnd,h=l.rowEnd;const d=At(t),u=this._beginCommit({description:s,operation:{name:"insertCells"}}),g=u.getState(this),m=i?A.IRange.Direction.Right:A.IRange.Direction.Down;try{let f=g.cellValuesGrid,p=g.contentfulSpatial,S=g.unlockSpatial,_=g.mergeSpatial,E=g.directStyleSpatial,C=g.continuousFillSpatial,I=g.conditionalSpatial,y=g.hyperlinkSpatial,b=g.commentsSpatial,v=g.movableSpatial,R=g.tableSpatial,x=g.calcGraph,T=g.rangesListenerSpatial2,M=g.rangeListenerSpatial,F=g.rangesListenerMap;const N=new Map,k=_n(t.slice(),A.IRange.Direction.Left),U=k.length;for(let P=0;P<U;P++){const L=k[P];c=Math.min(c,L.colStart),h=Math.min(h,L.rowStart);const W=i?L.colEnd-L.colStart+1:L.rowEnd-L.rowStart+1,H=f.getCoords();if(H){const j={...L,colEnd:i?Math.max(L.colEnd,H?.colEnd??L.colStart)+(L.colEnd-L.colStart+1):L.colStart,rowEnd:i?L.rowStart:Math.max(L.rowEnd,H?.rowEnd??L.rowStart)+(L.rowEnd-L.rowStart+1)},q=p.search(j),J=q.length;for(let X=0;X<J;X++){const Q=q[X],$={...L};i?$.colEnd=Math.max($.colEnd,Q.colEnd)+W:$.rowEnd=Math.max($.rowEnd,Q.rowEnd)+W,n($)}f=f.clone(),f.shift(L,m),this._updateState({cellValuesGrid:f})}const G=L.colStart<=l.colStart&&L.colEnd>=l.colEnd,z=L.rowStart<=l.rowStart&&L.rowEnd>=l.rowEnd,V=(j,q,J,X)=>{let Q=null;J>1&&(Q=j.at(J-1));const $=X-J+1;q?.(J,$),Q&&j.updateHeaderPairs([{address:{min:J,max:X},update:Q}])};G&&V(this._rowHeaders,this._rowHeadersShiftCallback,L.rowStart,L.rowEnd),z&&V(this._colHeaders,this._colHeadersShiftCallback,L.colStart,L.colEnd),p=p.shift({range:L,direction:m,cloneIfUpdate:p===g.contentfulSpatial,coordValidator:n}),S=S.shift({range:L,direction:m,cloneIfUpdate:S===g.unlockSpatial,coordValidator:n}),_=_.shift({range:L,direction:m,cloneIfUpdate:_===g.mergeSpatial,coordValidator:n}),E=E.shift({range:L,direction:m,cloneIfUpdate:E===g.directStyleSpatial,coordValidator:n}),C=C.shift({range:L,direction:m,cloneIfUpdate:C===g.continuousFillSpatial,coordValidator:n}),I=I.shift({range:L,direction:m,cloneIfUpdate:I===g.conditionalSpatial,coordValidator:n}),y=y.shift({range:L,direction:m,cloneIfUpdate:y===g.hyperlinkSpatial,coordValidator:n}),b=b.shift({range:L,direction:m,cloneIfUpdate:b===g.commentsSpatial,coordValidator:n}),v=v.shift({range:L,direction:m,cloneIfUpdate:v===g.movableSpatial,coordValidator:n}),R=R.shift({range:L,direction:m,cloneIfUpdate:R===g.tableSpatial,coordValidator:n}),x=x.shift({range:L,direction:m,cloneIfUpdate:x===g.calcGraph}),M=M.shift({range:L,direction:m,cloneIfUpdate:M===g.rangeListenerSpatial,onShift:j=>{F===g.rangesListenerMap&&(F=new Map(F)),this._processListenerShift(F,N,g.rangesListenerMap,j)}}),T=T.shift({range:L,direction:m,cloneIfUpdate:T===g.rangesListenerSpatial2,coordValidator:n})}let O=g.formulaSpatial,D=g.spillSpatial,B=g.pendingSpatial;x!==g.calcGraph&&(O=O.clone(),D=D.clone(),B=B.clone()),this._updateState({contentfulSpatial:p,unlockSpatial:S,mergeSpatial:_,directStyleSpatial:E,continuousFillSpatial:C,conditionalSpatial:I,hyperlinkSpatial:y,commentsSpatial:b,movableSpatial:v,tableSpatial:R,calcGraph:x,formulaSpatial:O,spillSpatial:D,pendingSpatial:B,rangesListenerSpatial2:T,rangeListenerSpatial:M,rangesListenerMap:F}),this._commitAndAutoSelect(u,d,e?.autoSelect,{viewAfter:{ranges:k,listeners:N}},i?A.IRange.Orientation.Column:A.IRange.Orientation.Row)}catch(f){throw u.rollback(),f instanceof w.OutOfBoundsError?new w.ExpectedError(f.message??ha):f}}_deleteCells(t,e){let n;e===A.IRange.Orientation.Column||e===A.IRange.Orientation.Row?(n=e,e={}):e&&(n=e.orientation);const r=(n??this._getDefaultShiftOrientation(t[0]))===A.IRange.Orientation.Column,o=e?.description??"Delete Cells";if(this._protectionCheck(()=>[r?"deleteColumns":"deleteRows"],t,o),fo(t))throw new w.ExpectedError("We can't delete cells with overlapping selections.");const s=this._entireCoords;let i=s.colEnd,l=s.rowEnd;const c=r?A.IRange.Direction.Left:A.IRange.Direction.Up,h=At(t),d=this._beginCommit({description:o,operation:{name:"deleteCells"}}),u=d.getState(this);try{let g=u.cellValuesGrid,m=u.contentfulSpatial,f=u.mergeSpatial,p=u.unlockSpatial,S=u.directStyleSpatial,_=u.continuousFillSpatial,E=u.conditionalSpatial,C=u.hyperlinkSpatial,I=u.commentsSpatial,y=u.movableSpatial,b=u.movableMapModel,v=u.tableSpatial,R=u.tableMapModel,x=u.calcGraph,T=u.rangesListenerSpatial2,M=u.rangeListenerSpatial,F=u.rangesListenerMap;const N=new Map,k=_n(t.slice(),A.IRange.Direction.Left),U=k.length;for(let O=0;O<U;O++){const D=k[O];i=Math.min(i,D.colStart),l=Math.min(l,D.rowStart),g.getCoords()&&(g=g.clone(),g.shift(D,c),this._updateState({cellValuesGrid:g}));const B=D.colStart<=s.colStart&&D.colEnd>=s.colEnd,P=D.rowStart<=s.rowStart&&D.rowEnd>=s.rowEnd;B&&this._rowHeadersShiftCallback(D.rowStart,-1*(D.rowEnd-D.rowStart+1)),P&&this._colHeadersShiftCallback(D.colStart,-1*(D.colEnd-D.colStart+1)),m=m.shift({range:D,direction:c,cloneIfUpdate:m===u.contentfulSpatial}),p=p.shift({range:D,direction:c,cloneIfUpdate:p===u.unlockSpatial}),f=f.shift({range:D,direction:c,cloneIfUpdate:f===u.mergeSpatial}),S=S.shift({range:D,direction:c,cloneIfUpdate:S===u.directStyleSpatial}),_=_.shift({range:D,direction:c,cloneIfUpdate:_===u.continuousFillSpatial}),E=E.shift({range:D,direction:c,cloneIfUpdate:E===u.conditionalSpatial}),C=C.shift({range:D,direction:c,cloneIfUpdate:C===u.hyperlinkSpatial}),I=I.shift({range:D,direction:c,cloneIfUpdate:I===u.commentsSpatial}),y=y.shift({range:D,direction:c,cloneIfUpdate:y===u.movableSpatial}),v=v.shift({range:D,direction:c,cloneIfUpdate:v===u.tableSpatial}),x=x.shift({range:D,direction:c,cloneIfUpdate:x===u.calcGraph}),M=M.shift({range:D,direction:c,cloneIfUpdate:M===u.rangeListenerSpatial,onShift:L=>{F===u.rangesListenerMap&&(F=new Map(F)),this._processListenerShift(F,N,u.rangesListenerMap,L)}}),T=T.shift({range:D,direction:c,cloneIfUpdate:T===u.rangesListenerSpatial2})}this._updateState({contentfulSpatial:m,unlockSpatial:p,mergeSpatial:f,directStyleSpatial:S,continuousFillSpatial:_,conditionalSpatial:E,hyperlinkSpatial:C,commentsSpatial:I,movableSpatial:y,movableMapModel:b,tableSpatial:v,tableMapModel:R,calcGraph:x,rangesListenerSpatial2:T,rangeListenerSpatial:M,rangesListenerMap:F}),this._commitAndAutoSelect(d,h,e?.autoSelect,{viewAfter:{ranges:k,listeners:N}})}catch(g){throw d.rollback(),g instanceof w.OutOfBoundsError?new w.ExpectedError(g.message??ha):g}}_autoFit(t,e){if(this._closed)throw new Error(le);e={expandOnly:!1,skipCustomSize:!1,minContent:!1,...e};const n="Autofit";let r;const o=dl(t,this._entireCoords,!0),s=hl(t,this._entireCoords,!0);r=!o&&s?`${n} ${bn}`:!s&&o?`${n} ${In}`:s&&o?`${n} All`:`${n}`;let i=e.orientations!==A.IRange.Orientations.Row;this._colHeaders.isProtected()&&(i=!1);let l=e.orientations!==A.IRange.Orientations.Column;if(this._rowHeaders.isProtected()&&(l=!1),!l&&!i)return;const c=i&&(e.expandOnly===!1||e.expandOnly===A.IRange.Orientation.Row),h=l&&(e.expandOnly===!1||e.expandOnly===A.IRange.Orientation.Column),d=e.minContent;l&&this._protectionCheck(()=>["formatRows"],t,r),i&&this._protectionCheck(()=>["formatColumns"],t,r);const u=(f,p)=>f===void 0?p:p===void 0?f:f.sizeSet-p.sizeSet,g=At(t),m=this._beginCommit({description:e.description??r});try{let f=Number.MAX_SAFE_INTEGER,p=Number.MIN_SAFE_INTEGER,S=!1,_="",E=-1,C=!1,I=!1,y=!1,b=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER;const R=this._styles.getNormal(),x=this._cellOptions,T=e.orientations===A.IRange.Orientations.Row,M=new Map,F=Za(t,1);F.sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Column));const N=F.length,k={skipCustomSize:e.skipCustomSize},U=exports.IFont.getDeviceScale(),O=this._defaultRowHeight()*U,D=this._defaultColWidth(),B=(L,W=1)=>{if(L!==0&&!(W>1))return L=Math.max(L,O),H=>h?L:Math.max(H,L??O)},P=(L,W=1)=>{if(L!==0&&!(W>1))return H=>c?L:Math.max(H,L??D)};for(let L=0;L<N;L++){const W=[];let H=-1,G=!1,z=R,V=1,j=1,q=1;const J=F[L];let X=J.colStart,Q=J.rowStart,$=J.colEnd,tt=J.rowEnd;const st=this._getUsedCoords();(h||c)&&st&&(X=h?st.colStart:J.colStart,Q=c?st.rowStart:J.rowStart,$=h?st.colEnd:J.colEnd,tt=c?st.rowEnd:J.rowEnd);const K={includeRangeTypes:{[Z.Type.Style]:!1,[Z.Type.Merge]:!1,[Z.Type.Continuous]:!1,[Z.Type.Contentful]:!1},ignoreHidden:!1,bounds:{colStart:X,rowStart:Q,colEnd:$,rowEnd:tt},orientation:A.IRange.Orientation.Column},nt=l?[]:void 0,rt=i?[]:void 0,et=(Et,it,ut)=>{if(Et>it)return null;const St=[];let ht=Et;const bt=ut?ut.length:0;for(let yt=0;yt<bt;yt++){const Nt=ut[yt],Ct=Nt.min,Bt=Nt.max;if(ht>=Ct){ht=Bt+1;continue}const Mt={address:{min:ht,max:Ct-1},update:Qd};St.push(Mt),ht=Bt+1}if(ht<=it){const yt={address:{min:ht,max:it},update:Qd};St.push(yt)}return St},Y=this._rangeStateIterator(K);let ot=Y.next();for(;!ot.done;){const Et=ot.value,it=Et.intersection,ut=Et.start,St=Et.end;eo.colStart=ut.colIndex,eo.rowStart=ut.rowIndex,eo.colEnd=St.colIndex,eo.rowEnd=St.rowIndex;const ht=w.CoordUtils.intersectRanges(eo,J,fw),bt=wr(0,ht,it,x).getBestFit();if(l){const yt=Math.max(ut.rowIndex,Q),Nt=Math.min(St.rowIndex,tt),Ct=bt.height,Bt={address:{min:yt,max:Nt},update:{size:B(Ct),autoSize:!0},sizeSet:Ct===null?-1:Ct};nt.push(Bt)}if(i){const yt=Math.max(ut.colIndex,X),Nt=Math.min(St.colIndex,$),Ct=bt.width,Bt={address:{min:yt,max:Nt},update:{size:P(Ct),autoSize:!0},sizeSet:Ct===null?-1:Ct};rt.push(Bt)}ot=Y.next()}const ct=this._cellStateIterator({...K,includeRangeTypes:{[Z.Type.Merge]:!1,[Z.Type.Table]:!1,[Z.Type.Style]:!1,[Z.Type.Continuous]:!1},ignoreEmptyIntersections:!0});let at,_t,dt,pt=ct.next(),Rt=1,se=1;for(;!pt.done;){const Et=pt.value,it=Et[0],ut=Et[2];let St=R;const ht=ut?.directStyle??ut?.table.getStyle()??null;ht===at?St=_t:(St=ht?wr(0,w.CoordUtils.cellToRange(it,pw),ut,x):R,_t=St);let bt=1,yt=1;const Nt=ut?.merge??null;if(Nt===dt)bt=Rt,yt=se;else{if(Nt){const Qn=Nt.getCoords();bt=Qn.colEnd-Qn.colStart+1,yt=Qn.rowEnd-Qn.rowStart+1}else bt=1,yt=1;Rt=bt,se=yt}const Ct=it.colIndex,Bt=it.rowIndex,Mt=Et[1],fe=qt(Mt),Ve=w.CoordUtils.isCellWithinRange(it,J),Yn=ut?.continuous??null;Yn&&(q=Yn.getCoords().colEnd-Ct+1);let Dr=!1,Lo=!1;if(at===ht&&bt===V&&yt===j&&fe!==A.ScalarType.String&&fe!==A.ScalarType.Error&&Ve===G||(Dr=!0,fe===A.ScalarType.RichData&&(Lo=!0),Lo&&(Dr=!1)),at=ht,dt=Nt,(H!==Ct||Dr)&&(H!==-1&&W.push({col:H,style:z,spanWidth:bt,spanHeight:yt,minVal:f,maxVal:p,hasZero:S,text:_,textId:E,hasFalse:I,hasTrue:C,hasEmpty:y,minRow:b,maxRow:v,colWidth:this._colHeaders.getSpanSize(H),measureWidth:-1,measureHeight:-1,colSpan:q,isFit:G}),H=Ct,z=St,G=Ve,V=bt,j=yt,f=Number.MAX_SAFE_INTEGER,p=Number.MIN_SAFE_INTEGER,S=!1,_="",E=-1,I=!1,C=!1,y=!1,b=Bt),v=Bt,!Lo)if(Mt===null)y=!0;else switch(fe){case A.ScalarType.Number:Mt===0&&(S=!0),f=Math.min(f,Mt),p=Math.max(p,Mt);break;case A.ScalarType.String:_=Mt,E=Mt;break;case A.ScalarType.Error:_=Mt.toString(),E=-1;break;case A.ScalarType.Boolean:Mt?C=!0:I=!0}pt=ct.next()}H!==-1&&W.push({col:H,style:z,spanWidth:V,spanHeight:j,minVal:f,maxVal:p,hasZero:S,text:_,textId:E,hasFalse:I,hasTrue:C,hasEmpty:y,minRow:b,maxRow:v,colWidth:this._colHeaders.getSpanSize(H),colSpan:q,measureWidth:-1,measureHeight:-1,isFit:G});let wt=-1,Ft=-1;const Gt=W.length;for(let Et=0;Et<Gt;Et++){const it=W[Et],ut=T||!it.isFit,St=it.maxVal,ht=it.style,bt=it.colSpan;let yt=it.colWidth;if(bt>1&&(yt=this._colHeaders.getSpanSize(H,H+bt)),wt=0,Ft=0,St!==Number.MIN_SAFE_INTEGER){const Ct=Cn(A.ScalarType.Number,ht,St,x,yt,d,ut);wt=Ct.width,Ft=Ct.height;const Bt=it.minVal;if(Bt*St<0){const Mt=Cn(A.ScalarType.Number,ht,Bt,x,yt,d,ut);wt=Math.max(wt,Mt.width),Ft=Math.max(Ft,Mt.height)}if(it.hasZero&&Bt!==0&&St!==0){const Mt=Cn(A.ScalarType.Number,ht,0,x,yt,d,ut);wt=Math.max(wt,Mt.width),Ft=Math.max(Ft,Mt.height)}}const Nt=it.text;if(Nt.length>0){const Ct=Cn(A.ScalarType.String,ht,Nt,x,yt,d,ut,void 0,M);wt=Math.max(wt,Ct.width),Ft=Math.max(Ft,Ct.height)}if(it.hasTrue||it.hasFalse){const Ct=Cn(A.ScalarType.Boolean,ht,!it.hasFalse,x,yt,d,ut);wt=Math.max(wt,Ct.width),Ft=Math.max(Ft,Ct.height)}if(it.hasEmpty){const Ct=Cn(A.ScalarType.Boolean,ht,null,x,yt,d,ut);wt=Math.max(wt,Ct.width),Ft=Math.max(Ft,Ct.height)}it.measureWidth=wt,it.measureHeight=Ft}if(i){for(let ut=0;ut<Gt;ut++){let St=W[ut];const ht=St.col;let bt=W[ut+1],yt=St.measureWidth??0;for(;bt&&bt.col===ht;)bt.measureWidth&&(yt=Math.max(bt.measureWidth??0,yt)),ut++,St=W[ut],bt=W[ut+1];yt===0&&(yt=null);const Nt=P(yt,St.spanWidth);rt.push({address:{min:ht,max:ht},update:{size:Nt,autoSize:!0},sizeSet:yt===null?-1:yt})}rt.sort(u);let Et=this._colHeaders.updateHeaderPairs(rt,k);Et=Qe($n(qc(Et)));const it=et(J.colStart,J.colEnd,Et);it&&this._colHeaders.updateHeaderPairs(it,k)}if(l){for(let ut=0;ut<Gt;ut++){let St=W[ut],ht=St.measureHeight??0;ht===0&&(ht=null);const bt=B(ht,St.spanHeight);nt.push({address:{min:St.minRow,max:St.maxRow},update:{size:bt,autoSize:!0},sizeSet:ht===null?-1:ht})}nt.sort(u);let Et=this._rowHeaders.updateHeaderPairs(nt,k);Et=Qe($n(qc(Et)));const it=et(J.rowStart,J.rowEnd,Et);it&&this._rowHeaders.updateHeaderPairs(it,k)}}this._commitAndAutoSelect(m,g,e?.autoSelect,{viewAfter:{ranges:t}})}catch(f){throw m.rollback(),f}}_createRangeEvent(t,e,n){const r=this,o=()=>{const i=r._getState();return this._closed||i.deleted?rn(null):t?Array.isArray(t)?r._createRanges(t):r._createRange(t):rn(this,this._entireCoords)},s=e.trigger;return{getSource:o,getFrom:()=>{const i=e.from;if(i)return i;let l=n;return l||(l=o().getCoords()),Array.isArray(l)?r._createRanges(l):r._createRanges([l])},getTo:()=>e.to??null,trigger:s,isUndo:e.isUndo??!1,isDataChange:e.isDataChange??!1,isTransactional:e.isTransactional??!0,toString:()=>`SheetRangeEvent: ('${s}', ${o().toString()})`,timeStamp:e.timeStamp??Date.now()}}_notifyAddressListeners(t,e,n,r){const o=e.entries();let s=o.next();const i=r.trigger;for(;!s.done;){const l=s.value[0];let c=s[1];if(c||(c=t.get(l)),c&&!n.has(l)){let h=!1;const d=c.options;d&&(h=i==="address"?d.ignoreAddressChanges:d.ignoreDataChanges),h!==!0&&c.notify(r),n.add(l)}s=o.next()}}_notifyDataListeners(t,e,n=null,r,o){if(!t)return;const s=n.length;for(let i=0;i<s;i++){const l=n[i];if(!l)continue;const c=t.search(l),h=c.length;for(let d=0;d<h;d++){const u=c[d].value.groupId;if(!r.has(u)){const g=e.get(u);g.options?.ignoreDataChanges!==!0&&g.notify(o),r.add(u)}}}}_notifyRangeListeners(t,e,n=null,r){if(!t)return;const o=new Set;r.timeStamp||(r.timeStamp=Date.now());const s=n.length;for(let i=0;i<s;i++){const l=n[i];if(!l)continue;const c=t.search(l),h=c.length;for(let d=0;d<h;d++){const u=c[d].value.id;if(o.has(u))continue;const g=e.get(u);o.add(u);const m=g.ranges,f=m.length;for(let p=0;p<f;p++){const S=m[p],_=this._createRangeEvent(S,r,l);this._notifyRangeListener2(g,_,r)}}}}_notifyRangeListener2(t,e=null,n=null){if(t.options?.ignoreDataChanges&&n?.isDataChange)return;const o=t.handler??t.handlerW.deref();if(o)try{o?.(e)}catch(s){console.warn(s)}}_notifyUsedRangeChange(){this._lastCellRead.coords=null,this._lastUsedCoordsRead.coords=null,this._emitter.notify("onUsedRangeChange")}_notifyMergeChange(){this._emitter.notify("onMergesChange")}addListeners(t,e){let n=null;if(t.onLayoutChange){const o=t,s={onSizesChange:()=>{o.onLayoutChange(this)}};n=[],n.push(this._colHeaders.addListeners(s,e)),n.push(this._rowHeaders.addListeners(s,e))}let r=this._emitter.addListeners(t,e);if(n){const o=r;r=()=>{const s=n.length;for(let i=0;i<s;i++)n[i]();o()}}return r}_addRangesListeners(t,e,n){if(this._closed)throw new Error(le);if(!e)throw new w.ExpectedError(Oh);n=n?{...fs,...n}:fs;const r=n?.transactional??!1,o=this,s=gw++%Number.MAX_SAFE_INTEGER,i=()=>{let f=null,p=null;if(r){const C=o._getState();if(!C)return;f=C.rangeListenerSpatial.clone(),p=new Map(C.rangesListenerMap)}else f=o._rangeListenerSpatial,p=o._rangesListenerMap;const S=p.get(s);if(!S)return void console.log("Listener not found");const _=S.ranges,E=_.length;for(let C=0;C<E;C++){const I=w.CoordUtils.sanitizeRange(_[C]);I!==null&&f.remove(I,(y,b)=>{if(b.value.id===s)return!0})}if(p.delete(s),r){const C=this._beginCommit({description:"Remove Range Listener"});this._updateState({rangeListenerSpatial:f,rangesListenerMap:p}),C.commit({forceAmend:!0})}},l=[...t];let c={id:s,handler:null,handlerW:null,removeListener:i,options:n,ranges:l};n?.weakly?c.handlerW=new WeakRef(e):c.handler=e;let h=null,d=null,u=null;if(r){u=this._beginCommit({description:"Add Range Listener"});const f=this._getState();h=f.rangeListenerSpatial.clone(),d=new Map(f.rangesListenerMap)}else h=o._rangeListenerSpatial,d=o._rangesListenerMap;const g=[],m=t.length;for(let f=0;f<m;f++){const p={...t[f],value:{id:s,offset:f,options:n}};g.push(p)}return h.load(g),d.set(s,c),u&&(this._updateState({rangeListenerSpatial:h,rangesListenerMap:d}),u.commit({forceAmend:!0})),i}_addRangesListeners2(t,e,n,r){if(this._closed)throw new Error(le);if(!e)throw new w.ExpectedError(Oh);n=n?{...fs,...n}:fs;const o=n?.transactional??!1,s=this,i=w.CommonUtils.uuidV4(),l=mw++,c=()=>{let I=null,y=null;const b=s._getState();if(!b)return;I=b.rangesListenerSpatial2.clone(),y=b.rangesListenerMap2;const v=y.get(i);if(v){const x=v?.spatialsIds,T=v?.coords,M=x.length;for(let F=0;F<M;F++){const N=x[F],k=T[F];I.remove(k,(U,O)=>{if(O.value.uuid===N)return!0})}y=new Map(b.rangesListenerMap2),y.delete(i)}const R=this._beginCommit({description:"Remove Range Listener"});this._updateState({rangesListenerMap2:y}),R.commit({forceAmend:!0}),o||this._rangesListenerSorted.delete(l)};let h=null,d=this._beginCommit({description:"Add Range Listener"});const u=this._getState();h=u.rangesListenerSpatial2.clone();let g=null,m=null;n?.weakly?m=new WeakRef(e):g=e;const f=[],p=[...t];let S=[];const _=t.length;for(let I=0;I<_;I++){const y={...t[I]};p[I]=y;const b=w.CommonUtils.uuidV4(),v=new di(i,b,n?.ignoreAddressChanges??!1);S.push(b);const R={...w.CoordUtils.sanitizeRange(y),value:v};f.push(R)}h.load(f),n={...n};const E=new ui(i,S,p,r,this,l,g,m,c,n),C=new Map(u.rangesListenerMap2);return C.set(i,E),this._updateState({rangesListenerSpatial2:h,rangesListenerMap2:C}),o||this._rangesListenerSorted.set(l,E),d.commit({forceAmend:!0}),c}_getUsedCoords(t){const e=this._getState();if(!e)return null;let n=e.cellValuesGrid.getCoords();return n=w.CoordUtils.unionRanges(e.mergeSpatial.getBoundingCoords(),n),n=w.CoordUtils.unionRanges(e.directStyleSpatial.getBoundingCoords(),n),n=w.CoordUtils.unionRanges(e.formulaSpatial.getBoundingCoords(),n),n=w.CoordUtils.unionRanges(e.spillSpatial.getBoundingCoords(),n),n=w.CoordUtils.unionRanges(e.pendingSpatial.getBoundingCoords(),n),n&&(n.colStart=Math.max(n.colStart,this._entireCoords.colStart),n.rowStart=Math.max(n.rowStart,this._entireCoords.rowStart),n.colEnd=Math.min(n.colEnd,this._entireCoords.colEnd),n.rowEnd=Math.min(n.rowEnd,this._entireCoords.rowEnd)),!n||n.rowStart>n.rowEnd||n.colStart>n.colEnd?(this._lastUsedCoordsRead.coords=null,null):(this._lastUsedCoordsRead&&this._lastUsedCoordsRead.coords&&po(this._lastUsedCoordsRead.coords,n)||(this._lastUsedCoordsRead.coords=n,this._lastUsedCoordsRead.range=null),this._lastUsedCoordsRead.coords)}_isContentful(t,e){return!!this._contentCounts(t,void 0,e)}_getCount(t,e=!1){const n=this._contentCounts(t,Sw,e);return n?n[exports.ICell.Content.Values]??0:0}_contentCounts(t,e,n){if(!e){const d=Object.keys(exports.ICell.Content),u=d.length;e=[];for(let g=0;g<u;g++){const m=d[g],f=exports.ICell.Content[m];f!==exports.ICell.Content.Formats&&f!==exports.ICell.Content.Tables&&e.push(f)}}const r={},o=e.length;let s,i,l=!1;for(let d=0;d<o;d++){const u=e[d];u===exports.ICell.Content.Values?r[Z.Type.Contentful]=!1:u===exports.ICell.Content.Formulas?r[Z.Type.Formula]=!1:u===exports.ICell.Content.Formats?r[Z.Type.Style]=!1:u===exports.ICell.Content.Tables&&(r[Z.Type.Table]=!1,l=!0)}const c=()=>{s=new Set,i={};for(let d=0;d<o;d++){const u=e[d];i[u]=0}},h=t.length;for(let d=0;d<h;d++){const u=t[d],g=this._rangeStateIterator({includeRangeTypes:r,ignoreHidden:n,bounds:u});let m=g.next();for(;!m.done;){i||c();const f=m.value,p=(f.end.colIndex-f.start.colIndex+1)*(f.end.rowIndex-f.start.rowIndex+1),S=f.intersection;if(S){S.contentful&&(i[exports.ICell.Content.Values]+=p),S.formula&&(i[exports.ICell.Content.Formulas]+=p);const _=S.table;_&&(l&&!s.has(_)&&(i[exports.ICell.Content.Tables]+=1,s.add(_)),S.contentful||(i[exports.ICell.Content.Values]+=p))}m=g.next()}}return i}getSelectedCell(){const t=this.getSelection().getCoords().cell,e=this._lastCellSelected;if(e?.cell&&w.CoordUtils.isEqualCells(t,e.coords))return e.cell;const n=this.getRange(t).getCell();return this._lastCellSelected={coords:t,cell:n},n}find(t){return t?((t=typeof t=="string"?{text:t}:{...t}).from||(t.from=this.getSelection().getCoords().cell),this.getEntireRange().find(t)):Wt}_setMaxSize(t,e){const n=t?.width??gs.width,r=t?.height??gs.height,o=this._entireCoords,s=o.colEnd-o.colStart+1,i=o.rowEnd-o.rowStart+1;if(n===s&&r===i)return this;const l=this._beginCommit({description:"Set Size"});try{const c=Object.freeze({colStart:0,rowStart:0,colEnd:n-1,rowEnd:r-1});this._entireCoords=c,this._entireRange=this.getRange(c);const h=this.getSelection(),d=h.getCoords(),u=tm(d,ci,c);h.updateCoords(u),this._emitter.notify("onViewChange",{source:this.getView()}),this._emitter.notify("onLayoutChange"),l.commit({viewBefore:{view:this.getView(),selection:d},viewAfter:{view:this.getView(),selection:u}}),this._autoSelect(e?.autoSelect,u)}catch(c){throw l.rollback(),c}return this}_find(t,e){if(this._closed)throw new Error(le);typeof e=="string"&&(e={text:e});const n=e?.text;if(!n)return null;const r=[...t],o=e?.orientation??A.IRange.Orientation.Row,s=e?.reverse,i=!e?.disableWrap,l=e?.from?this._cellToCoords(e?.from):null;let c=null;if(l){let b=-1;for(let N=0;b===-1&&N<r.length;N++)w.CoordUtils.isCellWithinRange(l,r[N])&&(b=N);c=w.CoordUtils.cellToRange(l);let v=el(r[b],c,o);v.push(c);const R=w.CoordUtils.createRangeComparator(o,s);v.sort(R);let x=-1;const T=v.length;for(let N=0;N<T;N++)R(v[N],c)<=0&&(x=N);r.splice(b,1,...v);const M=b+x,F=[];for(let N=0;N<=M;N++)F.push(r.shift());if(i){const N=F.length;for(let k=0;k<N;k++)r.push(F[k])}}if(r.length===0)return Wt;const h=e?.fields?.includes(exports.ICell.Content.Formulas)??!1,d=e?.fields?.includes(exports.ICell.Content.Values)??!0,u=e?.matchEntireCell??!1,g=e?.matchCase??!1,m=e?.useRegex??!1,f=((b,v,R)=>{const x=v?"":"i";return R?new RegExp(b,x):new RegExp((T=>{let M=T.replace(/[|\\{}()[\]^$+.]/g,"\\$&");return M=M.replace(/~\?/g,"\\?"),M=M.replace(/~\*/g,"\\*"),M=M.replace(/~~/g,"~"),M})(b),x)})(n,g,m),p=n.length;let S=(b,v)=>{const R=M=>{if(!M)return!1;let F=!!M.match(f);return F&&u&&M.length!==p&&(F=!1),F},x=v.getCell();let T=!1;return!T&&h?T=R(x.getFormulaText()??x.toTextUnformatted(!0)):d&&(T=R(x.getNumberFormat().displayText)),T};if(e?.matchCustom){const b=e.matchCustom,v={matchCase:g,matchEntireCell:u,useRegex:m,fields:e?.fields??[exports.ICell.Content.Formulas]};let R,x,T=S;const M=()=>T(R,x);S=(F,N)=>(R=F,x=N,b(F,M,v,N))}let _=-1,E=null,C=xt,I=!1;const y=()=>{if(C.done){if(_++,_>=r.length)return void(I=!0);E=this._cellIterator({reverse:s,orientation:o,includeRangeTypes:!1,bounds:r[_]})}if(C=E.next(),!C.done){const b=C.value;return S(b.value,b.context)}return!1};return{next:()=>{let b=null;for(;!I&&!b;)y()&&(b=C.value.context.getCell());return b?{value:b,done:!1}:xt}}}isDate1904(){return this._isDate1904}_surroundingRegion(t,e){const n=this._getState(),r=e?.contentOnly??!1,o=this._entireCoords;if(!r){const l=n.tableSpatial.search(t);if(l.length>0){const c=l[0].value.model,h=c.getUsedRange().getCoords(),d=c.getRange().getCoords();return w.CoordUtils.isEqualRanges(h,t)?d:w.CoordUtils.isEqualRanges(d,t)?o:h}}const s=r?t:o;return((l,c,h=2e4)=>{if(!c||c.length===0)return null;let d,u=!1;for(let I=0;I<c.length;I++){const y=c[I];d=w.CoordUtils.unionRanges(d,y.getBoundingCoords()),u=u||y.search(l).length>0}if(!d)return null;const g={...w.CoordUtils.EmptyRange},m=l;let f=u?{...l}:null;if(!f){const I=(b=>{let v=[];const R=c.length;for(let x=0;x<R;x++){const T=c[x].search(b),M=T.length;v=M>0?new Array(M):void 0;for(let F=0;F<M;F++){const N=T[F];v[F]=N}}return v||w.CommonUtils.EmptyArray})({colStart:l.colEnd,rowStart:l.rowEnd,colEnd:l.colEnd+1,rowEnd:l.rowEnd+1}),y=I.length;if(y>0){f={...l};for(let b=0;b<y;b++){const v=I[b];f.colEnd=Math.max(f.colEnd,v.colStart),f.rowEnd=Math.max(f.rowEnd,v.rowStart)}}}const p={...w.CoordUtils.EmptyRange},S=()=>{const I=c.length;for(let y=0;y<I;y++){const b=c[y].search(g),v=b.length;for(let R=0;R<v;R++){const x=b[R];f=w.CoordUtils.unionRanges(f,x,p)}}return f};g.colStart=l.colStart,g.rowStart=l.rowStart,g.colEnd=l.colEnd,g.rowEnd=l.rowEnd,S();const _={...f},E={...w.CoordUtils.EmptyRange};let C=0;do{if(g.colStart=E.colStart=_.colStart,g.rowStart=E.rowStart=_.rowStart,g.colEnd=E.colEnd=_.colEnd,g.rowEnd=E.rowEnd=_.rowEnd,_.colStart>d.colStart&&(g.colStart=_.colStart-1,g.colEnd=_.colStart-1,g.rowStart=_.rowStart-1,g.rowEnd=_.rowEnd+1,S()),_.rowStart>d.rowStart&&(g.rowStart=_.rowStart-1,g.rowEnd=_.rowStart-1,g.colStart=_.colStart-1,g.colEnd=_.colEnd+1,S()),_.colEnd<d.colEnd&&(g.colStart=_.colEnd+1,g.colEnd=_.colEnd+1,g.rowStart=_.rowStart-1,g.rowEnd=_.rowEnd+1,S()),_.rowEnd<d.rowEnd&&(g.rowStart=_.rowEnd+1,g.rowEnd=_.rowEnd+1,g.colStart=_.colStart-1,g.colEnd=_.colEnd+1,S()),!f)return null;if(_.colStart=f.colStart,_.rowStart=f.rowStart,_.colEnd=f.colEnd,_.rowEnd=f.rowEnd,w.CoordUtils.isEqualRanges(_,E))return w.CoordUtils.isEqualRanges(m,_)?null:_;if(w.CoordUtils.isEqualRanges(_,m))return null;if(w.CoordUtils.isEqualRanges(_,E))return _;C++}while(C<h);return null})(t,[n.contentfulSpatial,n.mergeSpatial,n.formulaSpatial,n.spillSpatial,n.pendingSpatial])||s}_extendRange(t,e){if(this._closed)throw new Error(le);const n=this._entireCoords,r=this,o={ignoreHidden:!0,onEntry:(h,d)=>d},s={ignoreHidden:!0,onEntry:(h,d)=>h.tvTl()===void 0?null:d};let i;const l=r._getRangedEntries("mergeSpatial",[w.CoordUtils.cellToRange(e)],s);l.length>0&&(i=l[0]);const c=[h=>r._getRangedEntries("mergeSpatial",h,s),h=>r._getRangedEntries("contentfulSpatial",h,o)];return((h,d,u,g,m)=>{let f,p,S,_={...d},E=w.CoordUtils.cellToRange(_),C=g(E).length>0;if(C){let b=1,v=h===A.IRange.Direction.Up||h===A.IRange.Direction.Down;u&&(b+=v?u.rowEnd-u.rowStart:u.colEnd-u.colStart),h!==A.IRange.Direction.Left&&h!==A.IRange.Direction.Up||(b=-b),v?_.rowIndex=_.rowIndex+b:_.colIndex=_.colIndex+b,E=w.CoordUtils.cellToRange(_),C=g(E).length>0}switch(h){case A.IRange.Direction.Up:E.rowStart=Math.min(m.rowStart,E.rowStart),p=g(E).sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Row,!0)),f=d.rowIndex,S=C?p.length===1&&f===p[0].rowStart?m.rowStart:p[0].rowStart:p.length===0?m.rowStart:p[0].rowEnd;break;case A.IRange.Direction.Down:E.rowEnd=Math.max(m.rowEnd,E.rowEnd),p=g(E).sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Row,!1)),f=d.rowIndex,S=C?p.length===1&&f===p[0].rowEnd?m.rowEnd:p[0].rowEnd:p.length===0?m.rowEnd:p[0].rowStart;break;case A.IRange.Direction.Left:E.colStart=Math.min(m.colStart,E.colStart),p=g(E).sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Column,!0)),f=d.colIndex,S=C?p.length===1&&f===p[0].colStart?m.colStart:p[0].colStart:p.length===0?m.colStart:p[0].colEnd;break;case A.IRange.Direction.Right:E.colEnd=Math.max(m.colEnd,E.colEnd),p=g(E).sort(w.CoordUtils.createRangeComparator(A.IRange.Orientation.Column,!1)),f=d.colIndex,S=C?p.length===1&&f===p[0].colEnd?m.colEnd:p[0].colEnd:p.length===0?m.colEnd:p[0].colStart}const I=p?p.length:0;if(I>1){let b=!1;for(let v=1;!b&&v<I;v++){const R=p[v];switch(h){case A.IRange.Direction.Up:R.rowEnd<S-1?b=!0:S=Math.min(S,R.rowStart);break;case A.IRange.Direction.Down:R.rowStart>S+1?b=!0:S=Math.max(S,R.rowEnd);break;case A.IRange.Direction.Left:R.colEnd<S-1?b=!0:S=Math.min(S,R.colStart);break;case A.IRange.Direction.Right:R.colStart>S+1?b=!0:S=Math.max(S,R.colEnd)}}}const y=w.CoordUtils.cellToRange(d);switch(h){case A.IRange.Direction.Up:y.rowStart=S;break;case A.IRange.Direction.Down:y.rowEnd=S;break;case A.IRange.Direction.Left:y.colStart=S;break;case A.IRange.Direction.Right:y.colEnd=S}return y})(t,e,i,h=>{const d=[],u=[h],g=c.length;for(let m=0;m<g;m++){const f=(0,c[m])(u),p=f.length;for(let S=0;S<p;S++){const _=f[S];d.push(_)}}return d},n)}_defaultFontDims(){if(this._defaultFontBoundsCache)return this._defaultFontBoundsCache;const t=this._styles.getNormal();let e=0,n=0;for(let r=0;r<=9;r++){const o=t.measureText(r.toString());e=Math.ceil(Math.max(o.width,e)),n=Math.max(o.lineHeight,n)}return this._defaultFontBoundsCache={width:e,height:n},this._defaultFontBoundsCache}getColumnWidthAsFontUnit(t){const e=Math.round(this._defaultFontDims().width),n=t/(this.getView().isShowFormulas()?2:1);if(!e||!t)return 0;let r=5;return n<r+e&&(r=n*(r/(r+e))),(n-r)/e}_defaultColWidth(){if(this._defaultColWidthCache)return this._defaultColWidthCache;const t=this._defaultFontDims()?.width||7,e=8*Math.round((8*t+5)/8)/Math.round(this._defaultFontDims().width);return this._defaultColWidthCache=e}_defaultRowHeight(){if(this._defaultRowHeightCache)return this._defaultRowHeightCache;let t=this._defaultFontDims();if(!t||t.width===0)return this._defaultRowHeightCache=20/exports.IFont.getDeviceScale(),this._defaultRowHeightCache;const e=this._styles.getNormal(),n=new Map;let r=t.height+2;return this._colHeaders.getUsedRange().forEachSpan((o,s)=>{const i=s.getCellHeader();i?.getStyle()!==e&&(r=Math.max((l=>{let c=n.get(l);return c===void 0&&(c=l.measureText("M").lineHeight+2,n.set(l,c)),c})(i.getStyle()),r))}),this._defaultRowHeightCache=Math.round(r/exports.IFont.getDeviceScale()*4)/4,this._defaultRowHeightCache}getProtection(){return this._protection??null}async _selectSheet(t,e){if(await this._options.container?.requestSelect?.()===!1)return!1;if(!e)return!0;e===!0&&(e=w.CommonUtils.EmptyObject);const n=e.orientation;n===A.IRange.Orientation.Column?t={colStart:t.colStart,rowStart:void 0,colEnd:t.colEnd,rowEnd:void 0}:n===A.IRange.Orientation.Row&&(t={colStart:void 0,rowStart:t.rowStart,colEnd:void 0,rowEnd:t.rowEnd});const r={coords:t},o=await this._emitter.notify("onRequestScrollIntoView",{params:r,async:!0});if(!o)return!1;const s=o.length;for(let i=0;i<s;i++)if(o[i]===!1)return!1;return!0}async scrollTo(t,e){const n={...e,coords:t},r=await this._emitter.notify("onRequestScrollIntoView",{params:n,async:!0});if(!r)return!1;const o=r.length;for(let s=0;s<o;s++)if(r[s]===!1)return!1}_resolveSelectOptions(t,e){return t?(t===!0&&(t={autoFocus:!0,scrollIntoView:!0}),t.scrollIntoView===!0&&(t={...t,scrollIntoView:{}}),e&&(t={...t,scrollIntoView:{orientation:e,...t?.scrollIntoView}}),t):null}async _commitAndAutoSelect(t,e,n=!1,r,o){const s=this._resolveSelectOptions(n,o);return r={...r,viewAfter:{view:this.getView(),selection:e,selectOptions:s,...r?.viewAfter}},t.commit(r),this._autoSelect(n,e,o)}async _autoSelect(t,e,n){if(!t)return;const r=this._resolveSelectOptions(t,n),o=r?.autoFocus,s=r?.scrollIntoView,i=r?.anchor,l=this.getSelection(),c=l.getCoords(),h=l.getRangesCoords(e),d=this._entireCoords,u=((_,E,C)=>{if(!_||_.length===0||!E)return w.CommonUtils.EmptyArray;const I=[..._];for(let y=0;y<I.length;y++){const b={...I[y]};let v=b;const R=E.search(b),x=b.rowStart<=C.rowStart&&b.rowEnd>=C.rowEnd,T=b.colStart<=C.colStart&&b.colStart>=C.colEnd,M=R.length;for(let F=0;F<M;F++){const N=R[F];x||(v.colStart=Math.min(v.colStart,N.colStart),v.colEnd=Math.max(v.colEnd,N.colEnd)),T||(v.rowStart=Math.min(v.rowStart,N.rowStart),v.rowEnd=Math.max(v.rowEnd,N.rowEnd))}I[y]=v}return I})(h,this._getState().mergeSpatial,d);let g=-1,m=null;if(!i){const _=c?.cell,E=u.length;for(let C=0;g===-1&&C<E;C++){const I=u[C];w.CoordUtils.isCellWithinRange(_,I)&&(g=C,m=_)}}const f=At(u,m,g);this.getSelection().updateCoords(f);const p=f.ranges?.[f.rangeIndex]??w.CoordUtils.cellToRange(f.cell),S=await this._selectSheet(p,s);if(s!==!1&&S===!1)return u;if(o!==!1){const _=await this._emitter.notify("onRequestFocus");if(!_)return u;const E=_.length;for(let C=0;C<E;C++)if(_[C]===!1)return u}return u}getSelection(){return this._rangeSelection}getView(){return this._view}setView(t){if(this._closed)throw new Error(le);if(!t)throw new w.ExpectedError("View can not be empty.");this._viewRemoveListener?.(),this._view=t,this._viewRemoveListener=t.addListeners(this._viewListener,{transactional:!1});const e=this.getSelection().getCoords();return this._rangeSelection.updateCoords(e),this._emitter.notify("onMovableSelectionChange"),this._emitter.notify("onTopLeftChange"),this._emitter.notify("onFreezeSplitChange"),this._emitter.notify("onViewChange",{source:t}),this}getTabColor(){return this._tabColor}setTabColor(t){if(this._closed)throw new Error(le);return this._tabColor=typeof t=="string"?this._styles.parseColor(t):t??null,this._emitter.notify("onTabColorChange"),this}getRowHeaders(){return this._rowHeaders}getColumnHeaders(){return this._colHeaders}async toJSON(t=!1){if(this._closed)throw new Error(le);await this._emitter.notify("onBeforeSave",{async:!0}),await Promise.resolve(this._starting);let e={};const n=this._getState();if(!n)return e;try{const p=this._strings.beginPersist();try{if(!t){const I=[],y=this._cellStateIterator({includeRangeTypes:!1,orientation:A.IRange.Orientation.Column});let b=y.next(),v=Number.MIN_SAFE_INTEGER,R=Number.MIN_SAFE_INTEGER,x=null,T=null,M=null,F=null;for(;!b.done;){const N=b.value[0],k=N.colIndex,U=N.rowIndex;k!==v&&(F&&I.push(F),x=[],M=[],F=[k,M],v=k,R=U-2),U>R+1&&(x=[],T=[U,x],M.push(T));const O=b.value[1],D=qt(O);let B;if(D===A.ScalarType.Number||D===A.ScalarType.Boolean)B=O;else if(D===A.ScalarType.String)B=""+p.add(O);else if(D===A.ScalarType.Error)B={t:D,v:O.getCode()};else if(D===A.ScalarType.RichData){const P=O,L=P.type,W=P?.toJSON?.();L&&W&&(B={t:D,v:0})}else console.warn("error",B);x.push(B),R=U,b=y.next()}F&&I.push(F),I.length>0&&(e.data=I)}this._ownStrings&&(e.strings=await p.toJSONAsync())}catch(I){console.warn("error",I)}finally{p.endPersist()}const S=this._colHeaders.toJSON();S&&(S.headers&&S.headers.length>0&&(e.cols=S.headers),S.defaultSize!==void 0&&S.defaultSize!==-1&&(e.defaultColSize=S.defaultSize));const _=this._rowHeaders.toJSON();_&&(_.headers&&_.headers.length>0&&(e.rows=_.headers),_.defaultSize!==void 0&&_.defaultSize!==-1&&(e.defaultRowSize=_.defaultSize));const E=this.getProtection().toJSON();E&&(e.protection=E),this._view.setRangeSelection(this.getSelection().getCoords());const C=this._view.toJSON();C&&(e.view=C),this._tabColor&&(e.tabColor=this._tabColor.toString())}catch(p){console.warn(p)}const r=_n(n.mergeSpatial.all());r.length>0&&(e.merges=kl(r));const o=_n(n.directStyleSpatial.all());if(o.length>0){const p=this._styles.beginPersist();try{const S=[],_=o.length;for(let E=0;E<_;E++){const C=o[E],I=p.getElementID(C.value.toJSON());S.push({r:exports.AddressUtils.rangeToString(C),v:I})}if(e.directStyles=S,this._ownStyles){const E=p.toJSON();E&&Object.keys(E).length>0&&(e.styles=E)}}catch(S){console.warn(S)}finally{p.endPersist()}}const s=_n(n.hyperlinkSpatial.all()),i=s.length;if(i>0){const p=[];for(let S=0;S<i;S++){const _=s[S];let E=_.value;p.push({r:exports.AddressUtils.rangeToString(_),v:E})}e.hyperlinks=p}const l=_n(n.commentsSpatial.all()),c=l.length;if(c>0){const p=[];for(let S=0;S<c;S++){const _=l[S],E={..._.value};E.ref=exports.AddressUtils.rangeToString(_),p.push(E)}e.comments=p}const h=this._resources.beginPersist();try{const p=this.getMovables().getItems(),S=p.length;if(S>0){const _=[];for(let E=0;E<S;E++)try{const C=p[E].toJSON(h.toResourceId.bind(h));C&&_.push(C)}catch(C){console.warn("Unable to persist movable",C)}_.length>0&&(e.movables=_)}this._ownResources&&(e.resources=await h.toJSONAsync())}catch(p){console.warn(p)}finally{h.endPersist()}const d=_n(n.tableSpatial.all()),u=d.length;if(u>0){const p=[];for(let S=0;S<u;S++){const _=d[S].value.model.toJSON();p.push(_)}e.tables=p}const g=Array.from(n.conditionalModels.values()),m=g.length;if(m>0){const p=[];for(let S=0;S<m;S++){const _=g[S].model.toJSON();p.push(_)}e.conditionals=p}const f=await n.calcGraph.toJSON(!1);if(f){const p=f.formulas;p&&(e.formulas=p);const S=f.dynamic;S&&(e.dynamicArray=S);const _=f.volatile;_&&(e.volatile=_)}return this._emitter.notify("onSave",{params:e}),e}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}_searchMovables(t){const e=t?.ignoreHidden??!1,n=t?.bounds,r=t?.fullyContained,o=this,s=t?.address?this._rangeToCoords(t?.address):this._entireCoords;return this._getRangedEntries("movableSpatial",[s],{ignoreHidden:e,fullyContained:r,onEntry:i=>{if(t?.type&&i.model.getContent().getType()!==t.type)return null;let l=null;if(e&&(i.model.isHidden()||(l=o._getBoundsAtCoords(i.model.getAnchorCoords()),l.width===0||l.height===0)))return null;if(n){l||(l=o._getBoundsAtCoords(i.model.getAnchorCoords()));const c=l,h=n;if(c.y>h.y+h.height||c.y+c.height<h.y||c.x>h.x+h.width||c.x+c.width<h.x)return null}return i.model}}).sort((i,l)=>i.getZIndex()-l.getZIndex())}_updateSelectedMovables(t,e){const n=this.getView().getMovableSelection();if(!n||n.length===0)return;let r="Movables";if(n.length===1){const s=n[0];r=Rr(s.getContent().getType())??"Drawing"}const o=this._beginCommit({description:`${e} ${r}`});try{const s=n.length;for(let i=0;i<s;i++)t(n[i]);o.commit()}catch(s){throw o.rollback(),s}}async _addMovable(t){if(!this.getProtection().isObjectsAllowed())throw new w.ExpectedError(Bh);if(!t)throw new w.ExpectedError("No movable options provided");if(this._closed)throw new Error(le);const e={};t?.type&&(e.content={type:t.type,json:t?.json}),t?.anchorType&&(e.anchorType=t?.anchorType),t.bounds&&(e.anchor=null);const n=this._getState().movableSpatial,r=this._beginCommit({description:t?.description??"Insert Drawing"}),o=this._createMovableEntry(e,n.size(),t.fromResourceId),s=n.clone();s.insert(o);const i=this._getState().movableMapModel,l=new Map(i),c=o.value.model;l.set(c,o),this._updateState({movableSpatial:s,movableMapModel:l}),t.bounds&&o.value.model.setBounds(t.bounds,t);let h=null,d=null;if(t?.autoSelect!==!1){h={view:this.getView(),movableSelection:this.getView().getMovableSelection()};let u=t?.autoSelect??!1;u===!0&&(u={autoFocus:!0,scrollIntoView:!0,addToSelection:!1}),u&&this.getView().selectMovables([o.value.model],u.addToSelection),d=g=>({...g,view:this.getView(),movableSelection:this.getView().getMovableSelection()})}return r.commit({viewBefore:h,viewAfter:d}),this._emitterMovables.notify("onCollectionChange"),this._emitter.notify("onMovablesChange"),o.value.model}async _addImage(t,e={type:"picture"}){if(!t)throw new w.ExpectedError("An image must be provided as a string or a resource option.");if(!this.getProtection().isObjectsAllowed())throw new w.ExpectedError(Bh);const n=this._resources.add(t),r=await n.toBuffer(),o=await n.getType(),s=this._getBoundsAtCoords(this.getSelection().getRangesCoords()[0]),{naturalSize:i,asUrl:l}=await w.ImageUtils.loadImageDetails(r,o);URL.revokeObjectURL(l);const c={...s,...i,...e?.bounds};if(w.CommonUtils.isNullOrUndefined(e?.bounds?.x)||w.CommonUtils.isNullOrUndefined(e?.bounds?.y)){const d=Bd(this.getMovables(),c,w.CommonUtils.isNullOrUndefined(e?.bounds?.x),w.CommonUtils.isNullOrUndefined(e?.bounds?.y));c.x+=d.x,c.y+=d.y}e?.bounds&&e?.json?.lockAspect!==!1&&(w.CommonUtils.isNullOrUndefined(e?.bounds.width)&&w.CommonUtils.isDefined(e?.bounds.height)&&(c.width=c.height*i.width/i.height),w.CommonUtils.isNullOrUndefined(e?.bounds.height)&&w.CommonUtils.isDefined(e?.bounds.width)&&(c.height=c.width*i.height/i.width));const h={...e?.json,resId:0};return await this._addMovable({anchorType:exports.IAnchored.Type.OneCell,description:"Insert Image",...e,bounds:c,type:"picture",json:h,fromResourceId:d=>d!==0?(console.warn("received an unexpected resourceId",d),null):n})}getTables(){return this._tables}getConditionals(){return this._conditionals}getMovables(){return this._movables}_doPerfTest(t=1e7,e=!1){const n=Array.from({length:t},(l,c)=>c);let r,o;r=performance.now(),e&&console.profile("nativeArray");const s=[t];for(let l=0;l<t;l++)s.push(l);e&&console.profileEnd("nativeArray"),window.noLoseArray=s,o=performance.now(),console.log(`NativeArray: ${t} records in ${o-r} milliseconds`),r=performance.now(),e&&console.profile("mixedType");const i=ti.fromArray(n);e&&console.profileEnd("mixedType"),window.noLoseList=i,o=performance.now(),console.log(`MixedTypedList: ${t} records in ${o-r} milliseconds`)}_validateOrRemoveOverlaps(t,e,n=null,r=!1){const o=this;e!=="merge"&&Ih(this._getMerges([t]),t,(c,h)=>{if(h||!r)throw new w.ExpectedError(Dh(e));o._unmerge([c])});const s=[],i=this.getTables().getItems({address:t}),l=i.length;for(let c=0;c<l;c++){const h=i[c];n!==h&&s.push(h.getAnchorCoords())}Ih(s,t,(c,h,d)=>{if(h||!r)throw new w.ExpectedError(Dh(e));i[d].delete()})}_addTable(t,e){let n=this._rangeToCoords(t,()=>["objects"]);const r=this._entireCoords;let o=e?.hasHeader;if(n.rowStart===n.rowEnd){if(n.rowEnd===r.rowEnd)throw new w.ExpectedError("A table must have a least two rows; one for the table header and one for data.");n.rowEnd=n.rowEnd+1}o===void 0&&(o=ld(this,n)?.options?.hasHeader??!1);const s=At([n]),i={...n},l=this._beginCommit({description:"Insert Table"});let c=null;try{o||(this._isContentful([n])&&this._insertCells([{...n,rowStart:n.rowStart,rowEnd:n.rowStart}],A.IRange.Orientation.Row),n={...n,rowEnd:n.rowEnd+1});const h={...e?.json,ref:n};this._validateOrRemoveOverlaps(n,"table",null,!0),h.styleOptions=e?.json?.styleOptions??{},h.styleOptions.name===void 0&&(e?.styleName?h.styleOptions.name=e.styleName:e?.styleName===void 0&&(h.styleOptions.name=this._styles.getDefaultTableStyle().getName()));const d=e?.isLoad;d!==!0&&(h.filter===void 0&&(h.filter={}),h.sort===void 0&&(h.sort={}));const u=this._createTableEntry(h,o&&!d),g=this._getState(),m=g.tableSpatial.clone();m.insert(u);const f=g.tableMapModel,p=new Map(f),S=u.value.model;p.set(S,u);const _=g.tableMapName,E=new Map(_);E.set(S.getName().toLocaleLowerCase(),S),e?.clearFormatting&&this.getRange(n).getStyle().update(null),c=u.value.model,this._updateState({tableSpatial:m,tableMapModel:p,tableMapName:E}),this._emitter.notify("onTablesChange"),d||this._autoFit([c.getHeaderRange().getCoords()],{expandOnly:!0});const C=At([n]);l.commit({viewBefore:{view:this.getView(),selection:s,ranges:[i]},viewAfter:{view:this.getView(),selection:C,ranges:[n]}})}catch(h){throw l.rollback(),h}return c}_addConditional(t,e){const n=this._rangesToCoords(t,()=>["objects"]),r=e?.autoSelect?At(n):null,o=[...n],s=this._beginCommit({description:e?.description??"Insert Conditional"});let i=null;try{const l={...e,ref:o},c=this._getState(),h=c.conditionalSpatial.clone(),d=new Map(c.conditionalModels),u=this._createConditionalEntries(l,h,d);this._updateState({conditionalSpatial:h,conditionalModels:d}),i=u,s.commit({viewBefore:{view:this.getView(),selection:r,ranges:o},viewAfter:{view:this.getView(),selection:r,ranges:o}}),this._autoSelect(e?.autoSelect,r)}catch(l){throw s.rollback(),l}return i}createTemporaryCell(t,e=null){return t?.createTemporaryCell?t:(e?this.getRange(e).getCell():this._emptyCell).createTemporaryCell(t)}_getBoundsAtCoords(t){const e=this._rowHeaders,n=this._colHeaders,r=n.findOffset(t.colStart),o=e.findOffset(t.rowStart);return{x:r,y:o,width:n.findOffset(t.colEnd+1)-r,height:e.findOffset(t.rowEnd+1)-o}}_getCoordsAtBounds(t){const e=this._rowHeaders,n=this._colHeaders;return{colStart:n.findIndex(t.x),rowStart:e.findIndex(t.y),colEnd:n.findIndex(t.x+t.width),rowEnd:e.findIndex(t.y+t.height)}}getRangeAtBounds(t,e){if(!t)throw new w.NullNotAllowedError;const n=this._getCoordsAtBounds(t);return this.getRange(n,e)}_getVisible(t,e){if(t.length===0)return t;const n=new It;n.load(t);const r=e?.orientations??A.IRange.Orientations.Both,o=(i,l)=>{const c=n.search(i),h=c.length;for(let d=0;d<h;d++){const u=c[d],g=el(u,i,l);n.remove(u),n.load(g)}},s=this._cellOptions.maxCoords;if(r===A.IRange.Orientations.Both||r===A.IRange.Orientations.Row){const i=this._rowHeaders,l=t.length;for(let c=0;c<l;c++){const h=t[c];i.getRange({min:h.rowStart,max:h.rowEnd}).forEachSpan((d,u)=>{if(d!==0)return;const g=u.getCoords();o({colStart:s.colStart,rowStart:g.min,colEnd:s.colEnd,rowEnd:g.max},A.IRange.Orientation.Row)})}}if(r===A.IRange.Orientations.Both||r===A.IRange.Orientations.Column){const i=this._colHeaders,l=t.length;for(let c=0;c<l;c++){const h=t[c];i.getRange({min:h.colStart,max:h.colEnd}).forEachSpan((d,u)=>{if(d!==0)return;const g=u.getCoords();o({colStart:g.min,rowStart:s.rowStart,colEnd:g.max,rowEnd:s.rowEnd},A.IRange.Orientation.Column)})}}return n.all()}_hasRangedEntries(t,e){const n=this._getState();if(!n)return w.CommonUtils.EmptyArray;const r=n[t];if(!r)throw new w.ExpectedError(`Invalid range key ${t}`);return!(!r||r.isEmpty())&&r.has(e)}_getRangedEntries(t,e,n){if(e.length===0)return w.CommonUtils.EmptyArray;const r=n?.ignoreHidden??!1,o=n?.fullyContained??!1,s=n?.onEntry??null,i=this._getState();if(!i)return w.CommonUtils.EmptyArray;const l=i[t];if(!l)throw new w.ExpectedError(`Invalid range key ${t}`);if(!l||l.isEmpty())return w.CommonUtils.EmptyArray;const c=new Set,h=p=>{const S=p.length;for(let _=0;_<S;_++){const E=p[_];c.add(E)}},d=e.length;for(let p=0;p<d;p++){const S=e[p];if(r){if(r===!0){const _={min:S.colStart,max:S.colEnd},E={min:S.rowStart,max:S.rowEnd};this._rowHeaders.getRange(E).forEachVisibleSpan((C,I)=>{this._colHeaders.getRange(_).forEachVisibleSpan((y,b)=>{h(l.search({colStart:y,rowStart:C,colEnd:b,rowEnd:I},o))},ms)},ms)}else if(r===A.IRange.Orientation.Column){const _={min:S.colStart,max:S.colEnd};this._colHeaders.getRange(_).forEachVisibleSpan((E,C)=>{h(l.search({colStart:E,rowStart:S.rowStart,colEnd:C,rowEnd:S.rowEnd},o))},ms)}else if(r===A.IRange.Orientation.Row){const _={min:S.rowStart,max:S.rowEnd};this._rowHeaders.getRange(_).forEachVisibleSpan((E,C)=>{h(l.search({colStart:S.colStart,rowStart:E,colEnd:S.colEnd,rowEnd:C},o))},ms)}}else h(l.search(S,o))}if(c.size===0)return w.CommonUtils.EmptyArray;const u=Array.from(c.values()),g=n?.sort;g&&u.sort(w.CoordUtils.createRangeComparator(g.orientation,g.reverse));let m=[];const f=u.length;for(let p=0;p<f;p++){let S;S=void 0,s&&(S=s(u[p].value,u[p])),S===void 0&&(S=u[p].value),S!==null&&m.push(S)}return m||(m=w.CommonUtils.EmptyArray),m}_processAnchorShift(t){let e=t.after;const n=w.CoordUtils.sanitizeRange(t.after),r=w.CoordUtils.sanitizeRange(t.before);t.after&&this._validateCoords(n,"We can't insert cells because this would push items off the end of the worksheet.");const o=t.before.value.processShiftCallback?.({...t,after:n,before:r});return o&&(po(o,n)||(e||(e=t.before),e={...e,...o})),e}_processListenerShift(t,e,n,r){if(r.isSplit||r.before.value.options.ignoreShifts)return[r.before];let o=null;r.after&&(o=w.CoordUtils.intersectRanges(w.CoordUtils.sanitizeRange(r.after),this._entireCoords),r.after,o.colStart,o.rowStart,o.colEnd,o.rowEnd);const s=r.before.value,i=s.id,l=t.get(i),c={...l},h=[...l.ranges];c.ranges=h,h[s.offset]=o?{...h[s.offset],...o}:null,t.set(i,c);const d=n.get(i);e.set(i,{beforeState:d,afterState:c})}delete(){if(this._closed)return;try{this._emitter.notify("onBeforeDelete")}catch(s){throw s instanceof Error?s:new w.ExpectedError(s.message??"Unable to delete.")}const t=this._beginCommit({description:`Delete Sheet '${this.getName()}'`}),e=this._getState();let n=e.rangeListenerSpatial,r=e.rangesListenerMap;const o=new Map;n=n.shift({range:this._entireCoords,direction:A.IRange.Direction.Left,cloneIfUpdate:n===e.rangeListenerSpatial,onShift:s=>{r===e.rangesListenerMap&&(r=new Map(r)),this._processListenerShift(r,o,e.rangesListenerMap,s)}}),this._updateState({rangeListenerSpatial:n,rangesListenerMap:r,deleted:!0}),this._deleteCells([this._entireCoords]),this._emitter.notify("onDelete"),this._rangesListenerMap.forEach((s,i)=>{o.set(i,{beforeState:s,afterState:null})}),t.commit({viewAfter:s=>({...s,view:this.getView(),selection:this.getSelection().getCoords(),listeners:o})})}doBatch(t,e){const n=this;return e=typeof e=="string"?{description:e}:{description:"Update Sheet",...e},this._transactions.doBatch(t,e,(r,o)=>{if(r.getDepth()===0&&(n._lastTransactionUUID=r.getId(),e?.autoSelect)){const s=r.getView()?.selection;s&&n._autoSelect(!0,s)}})}isClosed(){return this._closed}close(){if(this._closed)return;this._protectionRemoveListener?.(),this._protection=new $d(void 0,this._options.readonly);const t=this._getState().tableMapModel.keys();for(const e of t)e.close();this._searchMovables().forEach(e=>{e.close()}),this._emitter.notify("onClose"),this._ownResources,this._namesRemoveListener?.(),this._ownNames&&this._names.close(),this._ownsCalculation&&this._calculation.close(),this._ownStyles,this._colHeaders.close(),this._rowHeaders.close(),this._emitter.close(),this._transactionsRemoveListener?.(),this._closed=!0}beginCommit(t){if(this._closed)throw new Error(le);return this._beginCommit(typeof t=="string"?{description:t}:t)}_getState(){return this._closed?null:this._transactions.getState(this)}_beginCommit(t){const e=this;return this._transactions.beginCommit(t,n=>{n.getDepth()===0&&(e._lastTransactionUUID=n.getId())})}_updateState(t){if(!t)return;this._lastGetRangeRead=null;const e=this._transactions.beginCommit();let n;try{n=e.updateState(this,t),e.commit()}catch(r){throw e.rollback(),r}return n}_addEvent(t,e){const n=this.getTransactions().getPendingView();if(!n)return;let r=n.events;if(r||(r={},n.events=r),t==="address"){let o=r.address;if(o||(o=new Map,r.address=o),typeof e=="string")o.set(e,null);else{const s=e;if(s.options.ignoreAddressChanges)return;o.set(s.uuid,e)}}else if(t==="data")if(typeof e=="string"){let o=r.dataListeners;o||(o=new Map,r.dataListeners=o),o.set(e,null)}else{let o=r.data;o||(o=[],r.data=o),o.push(e)}}_getScalar(t,e,n=!1){const r=this._getState();let o;if(o===void 0&&(o=r.cellValuesGrid.getValueAt(t,e)),o===void 0)return null;let s=o;if(n&&typeof s=="number"){let i=!1;Fe.colStart=e,Fe.rowStart=t,Fe.colEnd=e,Fe.rowEnd=t;const l=this._lastValueRead,c=this._lastValueRead.range;if(c&&w.CoordUtils.isRangeWithinRange(Fe,c))i=l.isDateOrTime;else{const h=r.directStyleSpatial.search(Fe)[0];if(h){const d=h.value.getPropertiesAt(t,e,s),u=d?.numberFormat;u&&(i=To(u)||gi(u)),l.range=h,l.isDateOrTime=i}else l.range=null;i&&(s=Or(s,this._isDate1904))}}return s}_getStyle(t,e){let n;if(e)n={colStart:e.cell.colIndex,rowStart:e.cell.rowIndex,colEnd:e.cell.colIndex,rowEnd:e.cell.rowIndex};else{const l=t[0];n={colStart:l.colStart,rowStart:l.rowStart,colEnd:l.colStart,rowEnd:l.rowStart}}const r=this;let o=this._cellOptions;o={...o,styleUpdater:(l,c)=>(r._updateStyles(t,l,c),r._getStyle(t,e))},Zd.length=0;const s=Zd;this._collectRanges(n,s);const i=ad(s);return wr(0,n,i,o)}_initState(){const t=this,e=()=>{t._lastCellDecoded.address=null,t._lastCellSelected.coords=null,t._lastCellRead.coords=null,t._lastValueRead.range=null,t._lastGetRangeRead={},t._lastUsedCoordsRead.coords=null,t._lastActiveRead.selection=null,t._lastRangeRead.address=null};this._transactionsRemoveListener=this._transactions.addStateListener(this,{onBeforeCommitStart(m,f,p){if(!t._initializing&&!f?.skipProtectionCheck&&t.getProtection().isLocked())throw new w.ExpectedError(Qo)},async onBeforeCommitEnd(m,f,p){if(f?.ranges){const S={isDataChange:!0,isTransactional:!0,timeStamp:p.getTimestamp(),trigger:"setCells"},_=m.rangeListenerSpatial,E=m.rangesListenerMap;t._notifyRangeListeners(_,E,f.ranges,S)}if(f?.listeners){const S={isDataChange:!1,isTransactional:!0,timeStamp:p.getTimestamp(),trigger:"shiftCells"},_=m.rangeListenerSpatial,E=m.rangesListenerMap;t._notifyRangeListeners(_,E,f.ranges,S)}},async onRestoreOrRevert(m,f,p,S){if(e(),t._calculateFull(),f&&(f.view===t.getView()&&f.selection&&t._autoSelect(f.selectOptions??!0,f.selection),f.movableSelection&&t.getView().selectMovables(f.movableSelection)),t._emitter.notify("onInvalidated"),t._emitterMovables.notify("onInvalidated"),t._notifyUsedRangeChange(),t._rangesListenerMap.size>0){const _={isDataChange:!0,isTransactional:!1,timeStamp:p.getTimestamp(),isUndo:S,trigger:"invalidate"},E=m.rangeListenerSpatial,C=m.rangesListenerMap,I=new Set;C.forEach((y,b)=>{const v=y.id;if(I.has(v))return;const R=y.ranges;R&&(I.add(v),t._notifyRangeListeners(E,C,R,_))})}},async onAfterStateChange(m,f,p,S,_){e(),f&&p.getId()!==t._lastTransactionUUID&&f.view===t.getView()&&f.selection&&(S||_)&&t._autoSelect(f.selectOptions??!0,f.selection),t._lastTransactionUUID=p.getId(),f?.merges&&t._notifyMergeChange();const E=t._rangesListenerSorted;if(E.size>0){t._notifyUsedRangeChange();const C=new Set,I=m.rangesListenerMap2,y={isTransactional:!1,timeStamp:p.getTimestamp()};if((_||S)&&(y.trigger="restore",t._notifyAddressListeners(I,I,C,y),E.size>I.size)){const v=E.values();let R=v.next(),x=!1;for(;!x&&!R.done;){const T=R.value;x=I.has(T.uuid),x||(T.notify(y,"#N/A"),R=v.next())}}const b=f?.events;b&&(b.address&&(y.trigger="address",t._notifyAddressListeners(I,b.address,C,y)),b.dataListeners&&(y.trigger="data",t._notifyAddressListeners(I,b.dataListeners,C,y)),b.data&&(y.trigger="data",t._notifyDataListeners(m.rangesListenerSpatial2,m.rangesListenerMap2,b.data,C,y)))}if(f&&!f.calculationSideEffect&&f.ranges&&!f.initial&&m.calcGraph.calculate(),f?.ranges){t._notifyUsedRangeChange();const C=t._rangesListenerMap;if(C.size>0){const I={isDataChange:!0,isTransactional:!1,timeStamp:p.getTimestamp(),isUndo:S,trigger:"setCells"};t._notifyRangeListeners(t._rangeListenerSpatial,C,f.ranges,I)}}},onClose(){const m=t._getState();m&&m.movableSpatial.clear()}});const n=new ew({sheet:this}),r={onChange(){t._emitter.notify("onSelectionChange")}},o=n.addListeners(r,{transactional:!1});this._rangeSelection=n,this._rangeSelectionRemoveListener=o;const s=m=>{const f=t._getState();if(!f)return;const p=f.movableSpatial,S=m.length;for(let _=0;_<S;_++){const E=p.search(m[_]),C=E.length;for(let I=0;I<C;I++)E[I].value.processLayoutCallback?.()}t._emitter.notify("onLayoutChange")};this._colHeadersListener={onSizesChange:(m,f)=>{const p=[];if(f){const S=f.length;for(let _=0;f&&_<S;_++){const E={colStart:f[_].min,rowStart:t._entireCoords.rowStart,colEnd:t._entireCoords.colEnd,rowEnd:t._entireCoords.rowEnd};p.push(E)}}s(p)}},this._rowHeadersListener={onSizesChange:(m,f)=>{const p=[];if(f){const S=f.length;for(let _=0;_<S;_++){const E=f[_],C={colStart:t._entireCoords.colStart,rowStart:E.min,colEnd:t._entireCoords.colEnd,rowEnd:t._entireCoords.rowEnd};p.push(C)}}s(p)}};let i=new Set;const l={onTopLeftChange(){t._emitter.notify("onTopLeftChange")},onFreezeSplitChange(){t._emitter.notify("onFreezeSplitChange")},onRangeSelectionChange(){const m=t.getSelection().getCoords();t._rangeSelection.updateCoords(m)},onMovableSelectionChange(m){const f=m.getMovableSelection(),p=new Map,S=new Set,_=t._getState().movableMapModel,E=f.length;for(let C=0;C<E;C++){const I=f[C];i.has(I)?i.delete(I):p.set(I,C),S.add(I)}i.forEach(C=>{_.get(C)?.value.processSelectionCallback(!1,!1)}),p.forEach((C,I)=>{_.get(I)?.value.processSelectionCallback(!0,C===0)}),i=S,t._emitter.notify("onMovableSelectionChange")},onAnyChange(){t._defaultColWidthCache=0,t._defaultRowHeightCache=0,t._defaultFontBoundsCache=null,t._emitter.notify("onLayoutChange"),t._emitter.notify("onViewChange")}},c=new Ba({sheet:this});this._view=c,this._clearState(),this._viewRemoveListener=c.addListeners(l,{transactional:!1}),this._viewListener=l,this._colHeadersRemoveListener?.(),this._colHeaders=new Wd({sheet:t,orientation:A.IRange.Orientation.Column,transactions:this._transactions,isProtected:()=>!t._initializing&&!t.getProtection().isFormatColumnsAllowed(),getTextAt:m=>{const f=this.getView().getColumnHeaderStyle();return f===exports.ISheetView.HeaderTextStyle.A1?qd(m):f===exports.ISheetView.HeaderTextStyle.Zero?Jd(m):f===exports.ISheetView.HeaderTextStyle.One?Xd(m):void 0},defaultSize:()=>this._defaultColWidth(),scaleFactor:()=>{const m=this.getView().isShowFormulas()?2:1;return Math.round(this._defaultFontDims().width)*m},maxSize:()=>255,maxSheetCoords:()=>t._entireCoords,setContainerShiftedCallback:m=>{this._colHeadersShiftCallback=m}}),this._colHeadersRemoveListener=this._colHeaders.addListeners(this._colHeadersListener,{transactional:!0}),this._rowHeadersRemoveListener?.();const h=exports.IFont.getDeviceScale();this._rowHeaders=new Wd({sheet:t,orientation:A.IRange.Orientation.Row,transactions:this._transactions,isProtected:()=>!t._initializing&&!t.getProtection().isFormatRowsAllowed(),getTextAt:m=>{const f=this.getView().getRowHeaderStyle();return f===exports.ISheetView.HeaderTextStyle.One?Xd(m):f===exports.ISheetView.HeaderTextStyle.Zero?Jd(m):f===exports.ISheetView.HeaderTextStyle.A1?qd(m):void 0},defaultSize:()=>this._defaultRowHeight(),scaleFactor:()=>h,minSize:()=>0,maxSize:()=>409,maxSheetCoords:()=>t._entireCoords,setContainerShiftedCallback:m=>{this._rowHeadersShiftCallback=m}}),this._rowHeadersRemoveListener=this._rowHeaders.addListeners(this._rowHeadersListener,{transactional:!0}),this._defaultFontBoundsCache=null,this._defaultColWidthCache=0,this._defaultRowHeightCache=0;const d={colStart:0,rowStart:0,colEnd:0,rowEnd:0},u=[d],g={ignoreHidden:!0,sort:{orientation:A.IRange.Orientation.Column,reverse:!1}};this._cellOptions={resolveRange:m=>{if(m===null)return this._createRange(null,void 0,"temporary cell");const f=this._rangesToCoords(m);return this._createRange(f[0],null)},date1904:this._isDate1904,sheet:this,normalStyleRanged:this._normalStyleRanged,colHeaders:this._colHeaders,styles:this._styles,maxCoords:this._entireCoords,getRange:this.getRange.bind(this),getProtection:this.getProtection.bind(this),calcGraph:()=>this._getState().calcGraph,nextContentful:(m,f,p=!1)=>{d.colStart=p?f:m.colIndex+1,d.rowStart=m.rowIndex,d.colEnd=p?m.colIndex-1:f,d.rowEnd=m.rowIndex,g.sort.reverse=p;const S=t._getRangedEntries("contentfulSpatial",u,g);if(!S||S.length===0)return f;const _=S[0],E=p?_.getState().colStart:_.getState().colEnd;return p?Math.min(E+1,m.colIndex):Math.max(E-1,m.colIndex)},styleUpdater:(m,f,p)=>{const S=[p];return t._updateStyles(S,m,f),t._getStyle(S)},opener:async(m,f,p,S)=>{if(m.startsWith("#")){m=m.substring(1);const _=this._rangesToCoords(m);return await this._autoSelect(f??!0,At(_)),!0}return window.open(m,p??"_blank",S),!0}},this._emptyCell=new i_(this._cellOptions)}_clearState(){this._lastGetRangeRead=null,this._lastCellDecoded.address=null,this._lastCellSelected.coords=null,this._lastCellRead.coords=null,this._protectionRemoveListener?.(),this._protection=new $d(void 0,this._options.readonly),this._protectionRemoveListener=this._protection.addListeners({onChange(){if(t._closed)throw new Error(le);t._getState().movableMapModel.forEach(i=>{i.value.processProtectionCallback?.()}),t._getState().tableMapModel.forEach(i=>{i.value.processProtectionCallback?.()}),t._emitter.notify("onProtectionChange")}}),this._stylesRemoveListener?.();const t=this;this._stylesRemoveListener=this._styles.addListeners({onAnyChange(){t._defaultColWidthCache=0,t._defaultRowHeightCache=0,t._defaultFontBoundsCache=null,t._emitter.notify("onLayoutChange"),t._emitter.notify("onStyleChange");const i=t._entireCoords;t._autoFit([i],{orientations:A.IRange.Orientations.Both,skipCustomSize:!0})}}),this._view.clear(!1),this._rangeListenerSpatial=new It,this._rangesListenerMap=new Map,this._rangesListenerSorted=new mt;const e=i=>{const l=t._getState().rangesListenerSpatial2;if(l.isEmpty())return;const c=i.length;for(let h=0;h<c;h++){const d=i[h],u=l.search(d),g=u.length;for(let m=0;m<g;m++){const f=u[m].value.groupId;t._addEvent("data",f)}}},n=this._entireCoords,r=n.rowEnd,o=n.colEnd,s=this._calculation._createGraph({onCalculated(i){t._realizeCalcedValues(i)},getEntireCoords:()=>t._entireCoords,getSheetName:()=>t.getName()});s.addListeners({onStart(i){},onInvalidate:()=>{}}),this._updateState({rangesListenerSpatial2:new It({updateEntryOptions:{onShifted:i=>{let l=t._getState().rangesListenerMap2;if(l.size===0)return;l=new Map(l);const c=i.length;for(let h=0;h<c;h++){const d=i[h],u=d.value.groupId;let g=l.get(u);g=g.processShift(d),t._addEvent("address",g),l.set(u,g)}t._updateState({rangesListenerMap2:l})},onRemoved:i=>{let l=t._getState().rangesListenerMap2;if(l.size===0)return;l=new Map(l);const c=i.length;for(let h=0;h<c;h++){const d=i[h],u=d.value.groupId;let g=l.get(u);g=g.processRemove(d),t._addEvent("address",g),l.set(u,g)}t._updateState({rangesListenerMap2:l})}}}),rangesListenerMap2:new Map,cellValuesGrid:new He({orientation:this._isDataColumn?A.IRange.Orientation.Column:A.IRange.Orientation.Row}),formulaSpatial:new It,spillSpatial:new It,pendingSpatial:new It,calcErrorsSpatial:new It,calcGraph:s,directStyleSpatial:new It({updateEntryOptions:{isMergeOnShift:!0,isTrailingEdge:!0,onUpdated:e,onRemoved:e}}),continuousFillSpatial:new It({updateEntryOptions:{isMergeOnShift:!0,isTrailingEdge:!0}}),conditionalModels:new Map,conditionalSpatial:new It({updateEntryOptions:{onGroupUpdate(i,l){let c=t._getState().conditionalModels,h=c.get(l);if(!h)return;c=new Map(c);const d=h.spatials;h={...h},h.spatials=i,c.set(l,h),t._updateState({conditionalModels:c}),h.processCoordsChange({before:d,after:h.spatials})}}}),mergeSpatial:new It({updateEntryOptions:{getShifted:(i,l)=>l?(l.value=new Hd(w.CoordUtils.sanitizeRange(l),i.value._tvTl),l):null,getSplit(i,l){throw new w.ExpectedError("We can't insert through merges. Unmerge and try again.")},onUpdated:e,onRemoved:e}}),movableMapModel:new Map,movableSpatial:new It({updateEntryOptions:{getShifted(i,l,c){const h=i.value.processShiftCallback?.(c);let d=null;const u=new Map(t._getState().movableMapModel),g=i.value.model;return h?(d={...h,value:{...i.value}},u.set(g,d)):u.delete(g),t._updateState({movableMapModel:u}),d}}}),hyperlinkSpatial:new It({updateEntryOptions:{isSplitOnExpand:!0,isMergeOnShift:!0}}),commentsSpatial:new It({updateEntryOptions:{isSplitOnExpand:!0,isMergeOnShift:!0,onUpdated:e,onRemoved:e}}),tableMapModel:new Map,tableMapName:new Map,tableSpatial:new It({updateEntryOptions:{getShifted(i,l,c){const h=new Map(t._getState().tableMapModel),d=i.value.model,u=i.value.processShiftCallback?.(c);let g=null;return u?(g={...u,value:{...l.value}},h.set(d,g)):h.delete(d),t._updateState({tableMapModel:h}),g}}}),filter:null,sort:null,rangeListenerSpatial:new It,rangesListenerMap:new Map,contentfulSpatial:new It({updateEntryOptions:{isSplitOnExpand:!0,isMergeOnShift:!0,onShifted:i=>{const l=t._getState().rangesListenerSpatial2;if(l.size()===0)return;const c=i.length;for(let h=0;h<c;h++){const d=i[h],u=l.search({colStart:d.colStart,rowStart:d.rowStart,colEnd:o,rowEnd:r}),g=u.length;for(let m=0;m<g;m++){const f=u[m].value.groupId;t._addEvent("data",f)}}},onRemoved:e,onUpdated:e}}),unlockSpatial:new It({updateEntryOptions:{isMergeOnShift:!0}}),deleted:!1}),this._defaultFontBoundsCache=null,this._defaultColWidthCache=null,this._defaultRowHeightCache=null}_createTableEntry(t,e=!1){const n={model:null,processShiftCallback:null,processDeleteCallback:null,processProtectionCallback:null,currentName:null,removeListener:null};let r=null;r=typeof t.ref=="string"?Ce(t.ref,this._entireCoords):t.ref;const o={...r,value:n},s=this,i=()=>n.model?s._getState().tableMapModel?.get(n.model):o,l=(d,u)=>!(!w.CoordUtils.isEqualRanges(d,u)||d.value.model!==u.value.model),c={transactions:this._transactions,sheet:this,names:this._names,readSheetHeader:e,json:t,maxRangeCoords:this._entireCoords,setNameOnContainer(d){const u=i().value;if(!u.currentName||u.currentName.toLowerCase()===d.toLowerCase())return;const g="Set Table Name";s._protectionCheck(()=>["objects"],void 0,g);const m=s._beginCommit({description:g});try{const f=s._getState()?.tableMapName,p=d.toLocaleLowerCase();if(f.has(p))throw new w.ExpectedError((_=>`Name must be unique: '${_}' is already in use.`)(d));const S=new Map(f);S.delete(u.currentName),u.currentName=p,S.set(p,u.model),s._updateState({tableMapName:S}),m.commit()}catch(f){throw m.rollback(),f}},setContainerCoords(d,u){if(!d)return;const g=s._rangeToCoords(d,()=>["objects"]),m=i();if(!m)return;const f=m.value.model;s._validateOrRemoveOverlaps(g,"table",f);const p=s._beginCommit({description:u?.description??"Resize Table"}),S=s._getState(),_=S.tableSpatial.clone(),E=S.tableMapModel,C=new Map(E);_.remove(m,l);const I={...m,...g};return _.insert(I),C.set(I.value.model,I),s._updateState({tableSpatial:_,tableMapModel:C}),p.commit({viewAfter:{view:s.getView(),selection:At([h.getAnchorCoords()])}}),g},deleteFromContainer(d){const u=i();if(!u)return;const g=u.value.model,m=d?.description??`Delete Table '${g.getName()}`;s._protectionCheck(()=>["objects"],void 0,m);const f=s._beginCommit({description:m}),p=s._getState(),S=p.tableSpatial.clone(),_=p.tableMapModel,E=new Map(_),C=p.tableMapName,I=new Map(C);S.remove(u,l),E.delete(g),I.delete(g.getName().toLocaleLowerCase()),u.value.processDeleteCallback?.(),s._updateState({tableSpatial:S,tableMapModel:E,tableMapName:I}),s._emitter.notify("onTablesChange"),s._emitter.notify("onLayoutChange"),f.commit({viewAfter:{sheet:s,view:s.getView(),selection:At([g.getAnchorCoords()])}})},setContainerDeleteCallback(d){const u=i()?.value??n;u&&(u.processDeleteCallback=d,u.removeListener?.())},isProtected:()=>!s._initializing&&s.getProtection().isLocked(),setContainerProtectionCallback(d){(i()?.value??n).processProtectionCallback=d},setContainerShiftCallback(d){(i()?.value??n).processShiftCallback=d},processTableUpdate(){s._notifyUsedRangeChange()},initialAnchor:r},h=new Jg(c);return o.value.model=h,o.value.removeListener=h.addListeners({onStyleChange(d){s._emitter.notify("onStyleChange")},onDelete(d){s._emitter.notify("onStyleChange")}},{transactional:!1}),o.value.currentName=h.getName().toLocaleLowerCase(),o}_createConditionalEntries(t,e,n){const r="Conditional Format",o=()=>["objects"],s=t??{};let i=null;const l=this._entireCoords;if(typeof s.ref=="string"){i=[];const S=s.ref.split(","),_=S.length;for(let E=0;E<_;E++){const C=Ce(S[E],l);C&&i.push(C)}}else i=Array.isArray(s.ref)?s.ref:[s.ref];const c=this,h=w.CommonUtils.uuidV4(),d={model:null,removeListener:null,processCoordsChange:null,spatials:null};n.set(h,d);const u=()=>d.model?c._getState().conditionalModels.get(h):d;let g=S=>(console.log("default createSpatialEntry",S),null);const m=(S,_,E)=>{if(!d.model)return void(i=S);let C=_.spatials;if(C){const y=C.length;for(let b=0;b<y;b++)E.remove(C[b])}let I=[];if(S){const y=S.length;for(let b=0;b<y;b++){const v=S[b];I.push({...v,value:g(v)})}I.length>0&&E.insertGroup(I,h)}_.spatials=I},f=()=>{const S=u().spatials??i;return S?c.getRanges(S):null};var p;return d.model=(p={sheet:c,transactions:c._transactions,json:t,type:"conditional",setOnContainerCoordsChange:S=>{u().processCoordsChange=S},setCreateSpatial(S){g=S},setContainerRanges:(S,_)=>{const E=c._rangesToCoords(S,o);if(!d.model)return i=E,E&&E.length>0?c.getRanges(E):null;const C=c._beginCommit({description:_?.description??`Set ${r} Ranges`});let I=At(E);try{const y=c._getState();let b=y.conditionalSpatial;b=b.clone();let v=y.conditionalModels;v=new Map(v);let R=u();R={...R},v.set(h,R),m(E,R,b),c._updateState({conditionalSpatial:b,conditionalModels:v}),C.commit({viewBefore:{view:c.getView(),selection:At(f()?.getCoords())},viewAfter:{view:c.getView(),selection:I}}),c._autoSelect(_?.autoSelect,I)}catch(y){throw C.rollback(),y}return E&&E.length>0?c.getRanges(E):null},getContainerRanges:f,deleteFromContainer(S){let _=u();const E=c._beginCommit({description:S?.description??`Set ${r} Ranges`}),C=S?.autoSelect?At(_.spatials):void 0;try{const I=c._getState();let y=I.conditionalSpatial;y=y.clone();let b=I.conditionalModels;b=new Map(b),_={..._},m(null,_,y),b.delete(h),c._updateState({conditionalSpatial:y,conditionalModels:b}),this._commitAndAutoSelect(E,C,S?.autoSelect)}catch(I){throw E.rollback(),I}},isReadOnly:()=>!1,setContainerReadOnlyCallback(S){}},new nw({...p,createDescription:`New ${r}`})),d.removeListener=d.model.addListeners({onAnyChange(S){c._emitter.notify("onStyleChange")}},{transactional:!1}),m(i,d,e),d.model}_createMovableEntry(t,e,n){let r=null;if(t?.anchor)r={colStart:t.anchor.tl?.c??0,rowStart:t.anchor.tl?.r??0,colEnd:t.anchor.br?.c??0,rowEnd:t.anchor.br?.r??0},t.anchor.br?.x||(r.colEnd-=1),t.anchor.br?.y||(r.rowEnd-=1);else{const C=this.getSelection().getRangesCoords()[0];r={colStart:C.colStart,rowStart:C.rowStart,colEnd:C.colEnd,rowEnd:C.rowEnd}}const o={model:null,processShiftCallback:null,processLayoutCallback:null,processDeleteCallback:null,processZIndexCallback:null,processSelectionCallback:null,processProtectionCallback:null,zIndex:e},s={...r,value:o},i=()=>o.model?h._getState()?.movableMapModel?.get(o.model):s,l=(C,I)=>!(!w.CoordUtils.isEqualRanges(C,I)||C.value.model!==I.value.model),c=(C,I,y=!0)=>{if(u)return;const b=i();if(!b)return;const v=I??"Update Drawing";h._protectionCheck(()=>["objects"],void 0,v);const R=h._beginCommit({description:v}),x=h._getState()?.movableSpatial,T=x.clone(),M=h._getState()?.movableMapModel,F=new Map(M);C(b,T,F)!==!1&&(h._updateState({movableSpatial:T,movableMapModel:F}),y&&(h._emitterMovables.notify("onCollectionChange",{source:h,transactional:!0}),h._emitter.notify("onMovablesChange")),R.commit({viewAfter:N=>{if(s.value.model.isSelected()&&!N?.movableSelection?.includes(s.value.model)){const k=[...N?.movableSelection??[]];return k.push(s.value.model),{...N,view:this.getView(),movableSelection:k}}}}))},h=this,d=t.content.type;let u=!0;const g=(C,I,y,b)=>{const v=y.all().sort((O,D)=>O.value.zIndex-D.value.zIndex),R=I.value.zIndex;if((C=Math.max(0,Math.min(v.length-1,C)))===R)return!1;const x=[],T=[],M=[],F=R<C,N=O=>{const D=v[O];x.push(D);const B={...D,value:{...D.value,zIndex:F?O-1:O+1}};D.value.zIndex===R&&(B.value.zIndex=C),T.push(B),b.set(B.value.model,B),M.push(B)};if(F)for(let O=R;O<=C;O++)N(O);else for(let O=R;O>=C;O--)N(O);const k=x.length;for(let O=0;O<k;O++)y.remove(x[O],l);y.load(T);const U=M.length;for(let O=0;O<U;O++)M[O].value.processZIndexCallback?.()},m=()=>h._resources.beginPersist(),f=d==="picture",p={content:null,fromResourceId:n,defaultLockAspectRatio:f,beginPersistResource:m,getMaxBounds:()=>h._getBoundsAtCoords(h._entireCoords),transactions:this._transactions,getBoundsAtCoords:h._getBoundsAtCoords.bind(h),getCoordsAtBounds:h._getCoordsAtBounds.bind(h),scrollIntoView:C=>h._selectSheet(i()?.value.model.getAnchorCoords(),C),select:async C=>{const I=i()?.value.model;if(!I)return!1;try{h.getView().selectMovables([I],C?.addToSelection)}catch(b){return console.warn(b),!1}const y=await h._selectSheet(i()?.value.model.getAnchorCoords(),C?.scrollIntoView);return!C?.scrollIntoView||y!==!1},unselect:()=>{const C=i()?.value.model;return!!C&&(h.getView().unselectMovables([C]),!0)},isSelected:()=>h.getView().getMovableSelection().includes(i()?.value.model),setContainerSelectionCallback(C){(i()?.value??o).processSelectionCallback=C},moveToBackOnContainer:()=>{c((C,I,y)=>g(0,C,I,y),"Move to Back")},moveBackwardOnContainer:()=>{c((C,I,y)=>g(C.value.zIndex-1,C,I,y),"Move Backwards")},moveForwardOnContainer(){c((C,I,y)=>g(C.value.zIndex+1,C,I,y),"Move Forward")},moveToFrontOnContainer(){c((C,I,y)=>g(I.size()-1,C,I,y),"Move To Front")},getZIndex:()=>i()?.value.zIndex??0,setContainerZIndexCallback(C){(i()?.value??o).processZIndexCallback=C},setContainerCoords(C){if(!C)return;const I=h._rangeToCoords(C,()=>["objects"]);return c((y,b,v)=>{const R={...y,...I};b.remove(y,l),b.insert(R),v.set(R.value.model,R)},"Update Drawing",!1),I},deleteFromContainer(C){const I=i();I?.value&&h.getView().unselectMovables([I.value.model]);const y=[];c((v,R,x)=>{x.delete(v.value.model),R.remove(v,l),v.value.processDeleteCallback?.(),y.push(v);const T=v.value.model.getZIndex(),M=R.all().sort((O,D)=>O.value.zIndex-D.value.zIndex),F=[],N=[],k=M.length;for(let O=T+1;O<k;O++){const D=M[O];F.push(D);const B={...D,value:{...D.value,zIndex:O-1}};N.push(B),x.set(B.value.model,B)}const U=F.length;for(let O=0;O<U;O++)R.remove(F[O],l);R.load(N)},C?.description??"Delete Drawing",!0);const b=y.length;for(let v=0;v<b;v++)y[v].value.processZIndexCallback?.()},setContainerDeleteCallback(C){(i()?.value??o).processDeleteCallback=C},isProtected:()=>!h._initializing&&!h.getProtection().isObjectsAllowed(),setContainerProtectionCallback(C){(i()?.value??o).processProtectionCallback=C},setContainerShiftCallback(C){(i()?.value??o).processShiftCallback=C},setContainerLayoutCallback(C){(i()?.value??o).processLayoutCallback=C},initialAnchor:r,maxRangeCoords:this._entireCoords,json:t},S=t.content.json,_={type:d,transactions:this._transactions,beginPersistResource:m,fromResourceId:n,defaultLockAspectRatio:f,json:S};let E=null;if(d==="picture")E=new qg(_);else if(d==="chart")E=new K_(_);else if(d==="sp"||d==="cxnSp"||d==="grpSp")E=new Y_(_);else{if(d!=="graphicFrame")throw new w.ExpectedError((C=>`Unsupported float type: ${C}`)(d));E=new Q_(_)}return o.model=new li({...p,content:E}),u=!1,s}_fromJSON(t){this._initializing=!0,this._emitter.notify("onBeforeLoad",{params:t}),this._clearState();const e=this._beginCommit({description:"Load Sheet",viewAfter:{initial:!0,skipProtectionCheck:!0}}),n=t||{},r=this._strings,o=r.beginPersist(),s=this._resources.beginPersist(),i=this._styles.beginPersist();try{this._ownStrings&&o.fromJSON(n.strings),this._ownResources&&s.fromJSON(n.resources),this._ownStyles&&i.fromJSON(n.styles);const l=this._entireCoords,c=dd(n.cols,A.IRange.Orientation.Column,l),h=dd(n.rows,A.IRange.Orientation.Row,l);this._colHeaders.fromJSON({headers:n.cols,defaultSize:n.defaultColSize}),this._rowHeaders.fromJSON({headers:n.rows,defaultSize:n.defaultRowSize}),this.setView(new Ba({sheet:this,json:n.view})),this._rangeSelection.updateCoords(this._view.getRangeSelection()),n.tabColor&&(this._tabColor=this._styles.parseColor(n.tabColor));let d=this._getState();const u=d.cellValuesGrid,g=d.contentfulSpatial,m=n.data,f=m?.length??0,p=cd,S=[];if(f>0){for(let V=0;V<f;V++){let j=m[V];typeof j=="string"&&(j=JSON.parse(j));const q=j[1],J=q.length;let X;for(let Q=0;Q<J;Q++){const $=q[Q],tt=$[1],st=tt.length;for(let K=0;K<st;K++){let nt=tt[K],rt=nt?.t;if(rt!==void 0)nt=nt?.v;else switch(typeof nt){case"number":rt=A.ScalarType.Number;break;case"boolean":rt=A.ScalarType.Boolean;break;case"string":rt=A.ScalarType.String,nt=parseInt(nt)}tt[K]=[nt,rt]}X=p(null,r,tt),$[1]=X}S.push(j)}u.setValues(S);const z=hd(S,this._isDataColumn);g.load(z)}const _=d.directStyleSpatial,E=d.continuousFillSpatial,C=this._options.styles,I=t.directStyles;let y,b;if(I){const z=I.length;y=new Array(z);for(let V=0;V<z;V++){const j=I[V],q=j.r,J=typeof q=="string"?Ce(q,l):{...q};J.value={orientations:A.IRange.Orientations.Both,index:j.v},y[V]=J}}if(c||h){const z=[...y||w.CommonUtils.EmptyArray,...c||w.CommonUtils.EmptyArray,...h||w.CommonUtils.EmptyArray];y=[];try{const V=new Io.IteratorInstance(z,{orientation:A.IRange.Orientation.Column});let j=V.next();for(;!j.done;){const q=j.value,J=q.overlaps,X=J.length;let Q;if(X===1){if(Q=J[0].value,Q.index===0){j=V.next();continue}}else{let tt,st,K;for(let nt=0;!tt&&nt<X;nt++){const rt=J[nt].value,et=rt.orientations;et===A.IRange.Orientations.Both?tt=rt:et===A.IRange.Orientations.Row?K=rt:et===A.IRange.Orientations.Column&&(st=rt)}Q=tt??K??st}const $=q.range;y.push({...$,value:Q}),j=V.next()}}catch(V){console.log(V)}}if(y){let z=[],V=[];const j=X=>{const Q=X.value,$=i.getElementJSON(Q.index),tt=w.CoordUtils.sanitizeRange(X),st=new Ht(C,tt,$,void 0,Q.orientations),K=st._p?.alignment?.horizontal;return K===exports.ITextFrame.HorizontalAlignment.CenterContinuous&&z.push(tt),K===exports.ITextFrame.HorizontalAlignment.Fill&&V.push(tt),{...tt,value:st}},q=y.length;b=new Array(q);for(let X=0;X<q;X++)b[X]=j(y[X]);_.load(b);const J=(X,Q)=>{const $=(X=ze(X,A.IRange.Orientation.Column,Number.MAX_SAFE_INTEGER)).length,tt=new Array($);for(let st=0;st<$;st++){const K=X[st];tt[st]={...K,value:new Ht(C,K,{alignment:{horizontal:Q}})}}E.load(tt)};J(z,exports.ITextFrame.HorizontalAlignment.CenterContinuous),J(V,exports.ITextFrame.HorizontalAlignment.Fill)}d=this._updateState({cellValuesGrid:u,contentfulSpatial:g,directStyleSpatial:_,continuousFillSpatial:E});const v=n.merges;if(v){const z=[],V=v.length;for(let j=0;j<V;j++){const q=Ce(v[j],l);z.push(q)}this._indexMerges(z)}const R=d.hyperlinkSpatial,x=n.hyperlinks;if(x){const z=x,V=[],j=z.length;for(let q=0;q<j;q++){const J=z[q];let X=J.r;X=typeof X=="string"?Ce(X,l):w.CoordUtils.sanitizeRange(X);let Q=J.v;typeof Q=="string"&&(Q={address:Q}),V.push({...X,value:Q})}R.load(V)}const T=d.commentsSpatial,M=n.comments;if(M){const z=M,V=[],j=z.length;for(let q=0;q<j;q++){const J=z[q];let X=J.ref;X=typeof X=="string"?Ce(X,l):w.CoordUtils.sanitizeRange(X);const Q={...J};delete Q.ref,V.push({...X,value:Q})}T.load(V)}const F=d.movableMapModel,N=d.movableSpatial;if(n.movables){const z=[],V=n.movables,j=V.length;for(let q=0;q<j;q++){const J=V[q];try{const X=this._createMovableEntry(J,q,s.fromResourceId.bind(s));F.set(X.value.model,X),z.push(X)}catch(X){console.warn("Unable to load movable",q,J,X)}}N.load(z)}const k=d.tableMapModel,U=d.tableMapName,O=d.tableSpatial,D=n.tables;if(D){const z=[],V=D.length;for(let j=0;j<V;j++){const q=D[j],J=this._createTableEntry(q),X=J.value.model;k.set(X,J),U.set(J.value.currentName,X),z.push(J)}O.load(z)}const B=d.conditionalSpatial,P=d.conditionalModels,L=n.conditionals;if(L){const z=L.length;for(let V=0;V<z;V++){const j=L[V];this._createConditionalEntries(j,B,P)}}const W=d.calcGraph,H=W.fromJSON({formulas:n.formulas,data:S,dynamic:n.dynamicArray,volatile:n.volatile});d=this._updateState({hyperlinkSpatial:R,commentsSpatial:T,movableSpatial:N,movableMapModel:F,tableSpatial:O,tableMapModel:k,tableMapName:U,conditionalSpatial:B,conditionalModels:P,calcGraph:W});const G=this._getUsedCoords();G&&this._autoFit([G],{orientations:A.IRange.Orientations.Row,skipCustomSize:!0}),e.commit(),H&&this._realizeCalcedValues(H),n.protection&&this._protection.fromJSON(n.protection),this._emitter.notify("onLoad")}finally{i.endPersist(),s.endPersist(),o.endPersist()}this._initializing=!1}getName(){return this._closed?jt:this._options.container?.getName?.()??null}setName(t){if(this._closed)throw new Error(le);const e=this._options.container?.setName;if(!e)throw new w.ExpectedError("Unable to set name for sheet.");return e(t),this}getVisibility(){return this._closed?exports.ISheet.Visibility.VeryHidden:this._options.container?.getVisibility?.()??exports.ISheet.Visibility.Hidden}setVisibility(t=!0){if(this._closed)throw new Error(le);const e=this._options.container?.setVisibility;if(!e)throw new w.ExpectedError("Unable to set visibility for sheet.");let n;return n=t===!0?exports.ISheet.Visibility.Visible:t===!1?exports.ISheet.Visibility.Hidden:t,e(n),this}async select(t){return await this._options.container?.requestSelect?.(t),this}duplicate(){return this._options.container?.duplicate?.()}setPosition(t){return this._options.container?.setPosition(t),this}getNames(){return this._names}getCalculation(){return this._calculation}getWorkbook(){return this._workbook}get[Symbol.toStringTag](){return"[Sheet]"}toString(){return this.getName()||"(untitled sheet)"}get isISheet(){return!0}}const Yd={address:null,scope:null},fw={colStart:0,rowStart:0,colEnd:0,rowEnd:0},eo={colStart:0,rowStart:0,colEnd:0,rowEnd:0},pw={colStart:0,rowStart:0,colEnd:0,rowEnd:0},ms={includeHidden:!1},fs={ignoreDataChanges:!1},Fe={colStart:-1,rowStart:-1,colEnd:-1,rowEnd:-1},no=[{colIndex:-1,rowIndex:-1},null,null,null,null],Sw=[exports.ICell.Content.Values],Qd={size:null,autoSize:!0},Da={skipCustomSize:!0,expandOnly:!0,minContent:!0},Jt={rowStart:0,colStart:0,rowEnd:0,colEnd:0},ro={rowStart:0,colStart:0,rowEnd:0,colEnd:0},Zd=[],La={showFormulaBar:!0,showTabs:!0,tabRatio:600,showHorizontalScrollbar:!0,showVerticalScrollbar:!0,showStatusBar:!0,activeSheetId:null};class pl{constructor(t){this._emitter=null,this._emitter=new Xt(this),this._state={...La},t?.json&&this._fromJSON(t?.json)}isShowFormulaBar(){return this._state.showFormulaBar}setShowFormulaBar(t){return this._state.showFormulaBar=t,this._emitter.notify("onViewChange"),this}isShowTabs(){return this._state.showTabs}setShowTabs(t){return this._state.showTabs=t,this._emitter.notify("onViewChange"),this}getTabRatio(){return this._state.tabRatio}setTabRatio(t){return this._state.tabRatio=t,this._emitter.notify("onViewChange"),this}isShowHorizontalScrollbar(){return this._state.showHorizontalScrollbar}setShowHorizontalScrollbar(t){return this._state.showHorizontalScrollbar=t,this._emitter.notify("onViewChange"),this}isShowVerticalScrollbar(){return this._state.showVerticalScrollbar}setShowVerticalScrollbar(t){return this._state.showVerticalScrollbar=t,this._emitter.notify("onViewChange"),this}isShowStatusBar(){return this._state.showStatusBar}setShowStatusBar(t){return this._state.showStatusBar=t,this._emitter.notify("onViewChange"),this}getActiveSheetId(){return this._state.activeSheetId}setActiveSheetId(t){const e=this._state.activeSheetId;return this._state.activeSheetId=t,e!==t&&this._emitter.notify("onViewChange"),this}addListeners(t,e){return this._emitter.addListeners(t,e)}toJSON(){let t={};const e=Object.keys(this._state);for(let n=0;n<e.length;n++){const r=this._state[e[n]];r!=null&&r!==La[e[n]]&&(t[e[n]]=r)}return Object.keys(t).length===0&&(t=null),t}_fromJSON(t,e=!0){let n=t||{};this.update(n,e)}update(t,e=!0){this._state={...La,...this._state,...t},e&&this._emitter.notify("onViewChange")}}class _w{constructor(t){this._emitter=null,this._closed=!1,this._options={...t};const e=this;this._transactions=this._options.transactions??new xe({transient:!0}),this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(n,r,o){e._emitter.notify("onCollectionChange")}}),this._emitter=new Xt(this,this._transactions),this._initState(t?.initial)}add(t,e,n){const r=this;e&&e.addListeners({onDelete:c=>{r._updateState(h=>{if(!h.modules[t])return;const d=h.modules[t];if(d){const u={...h};return r._options.onRemove?.(t,d),r._emitter.notify("onCollectionChange"),delete u.modules[t],u}return h},"Delete Module")}},{once:!0});const o=this._getState()?.modules,s=o?.[t],i=n?.replace??!1;if(s&&!i)throw new Error(`Already existing '${t}'`);const l={...o};e?(l[t]=e,r._options.onAdd?.(t,e),this._updateState({modules:l},i?"Save Scripts":"Add Script")):(delete l[t],r._options.onRemove?.(t,null),this._updateState({modules:l},"Remove Script")),r._emitter.notify("onCollectionChange")}getItems(t){const e=this._getState();if(!e)return w.CommonUtils.EmptyArray;const n=e.modules,r=Object.keys(n),o=r.length;if(o===0)return w.CommonUtils.EmptyArray;const s=[],i=t?.name?t.name.toUpperCase():null;for(let l=0;l<o;l++){const c=r[l],h=n[c];let d=!0;i&&i!==c.toUpperCase()&&(d=!1),d&&s.push(h)}return s??w.CommonUtils.EmptyArray}getByName(t){if(!t)return null;const e=this._getState();if(!e)return null;const n=t.toUpperCase(),r=e.modules,o=Object.keys(r),s=o.length;for(let i=0;i<s;i++){const l=o[i];if(n===l.toUpperCase())return r[l]}return null}getCount(){const t=this._getState();return t?Object.keys(t.modules).length:0}beginCommit(t){return this._beginCommit(t)}_getState(){if(this._closed)throw new Error(Ee);return this._transactions.getState(this)}_beginCommit(t){return this._transactions.beginCommit(typeof t=="string"?{description:t}:t)}_updateState(t,e="Update",n){if(!t)return;const r=this._beginCommit(e);try{r.updateState(this,t),r.commit(n)}catch(o){throw r.rollback(),o}}_initState(t){let e=t??{};this._updateState({modules:e},"Initialize",{forceAmend:!0});const n=this._options.onAdd;if(n){const r=Object.keys(e),o=r.length;for(let s=0;s<o;s++){const i=r[s];n(i,e[i])}}}addListeners(t,e){return this._emitter.addListeners(t,e)}toJSON(){const t=this._getState();if(!t)return w.CommonUtils.EmptyArray;const e=t.modules,n=Object.keys(e),r=n.length,o={};for(let s=0;s<r;s++){const i=n[s];o[i]=e[i].toJSON()}return o}isClosed(){return this._closed}close(){this._closed||(this._emitter.notify("onClose"),this._closed=!0,this._transactionsRemoveListener?.())}get isFunctionCollection(){return!0}}let Ua;const ps="SheetXL",ww=Ua||(Ua=w.CommonUtils.deepFreeze({ISheet:{Visibility:exports.ISheet.Visibility},ICell:{Content:exports.ICell.Content,CalcStatus:exports.ICell.CalcStatus},IColor:{Named:exports.IColor.Named,Scheme:exports.IColor.Scheme,Type:exports.IColor.Type,AdjustmentType:exports.IColor.AdjustmentType},Direction:w.Direction}),Ua);let Ss;class yw extends Ro{constructor(t,e,n,r=null,o=!1){super(t,e,n,r,o)}execute(...t){const e=t[0];if(!e||!e.isIWorkbook)throw new Error(`Macro '${this.getName()}' must be called with a valid workbook as the only argument.`);const n=this._ct;try{const r=[];switch(n){case on.Context.Workbook:r.push(e);break;case on.Context.Sheet:r.push(e.getSelectedSheet());break;case on.Context.Ranges:r.push(e.getSelectedRanges());break;case on.Context.Range:r.push(e.getSelectedRange());break;default:throw new Error(`Function '${this.getName()}' is not a valid macro function.`)}const o=async(i,l)=>{const c=await l;if(c!==void 0)if(c!==null){if(Array.isArray(c)){if(qt(c[0]?.[0]))return void i.setValues(c,{skipBoundsCheck:!0})}else if(qt(c))return void i.setValues([[c]]);c.isICell?i.updateCells(c):c.isICellRange&&await i.copyFrom(c)}else i.clear()};let s;return(async()=>{const i=(await this.getDescriptor()).getSummary()??`Macro '${this.getName()}'`;return await e.doBatch(async()=>{try{const l=e.getSelectedRange();let c=this._cf();c||(c=(function(h){return new Proxy(h,{set:(d,u,g)=>(console.log(`Adding property "${u}" with value:`,g),d[u]=g,!0),deleteProperty:(d,u)=>(console.log(`Deleting property "${u}"`),delete d[u])})})({}));try{zl({getPosition:()=>l.getCell().getCoords()}),Ss=globalThis[ps],globalThis[ps]=ww,s=this._fn.call(c,...r),Ss?(globalThis[ps]=Ss,Ss=void 0):delete globalThis[ps],ai()}catch(h){throw h}finally{ai()}await o(l,s)}catch(l){throw l}},i),{params:r,results:s}})()}catch(r){throw r}}}class Cw{constructor(t){this._emitter=null;const e=t.json;if(this._json=e,!this._json)throw new Error("Module JSON is required.");this._name=t.name??null,this._emitter=new Xt(this),this._functions=new Qg({transactions:null,readonlyFunctions:t.readonlyFunctions})}getName(){return this._name}getFunctions(){return this._functions}getSource(){return this._json.source}getLanguage(){return this._json.language||"typescript"}getErrors(){return null}delete(){this._emitter.notify("onDelete")}addListeners(t,e){return this._emitter.addListeners(t,e)}toJSON(){return this._json}}const Ew=async(a,t)=>{let e=null;try{zl(null)}catch(o){console.warn("Error setting global scope",o)}try{e=await new Function("modulePath","return import(modulePath)")(`data:text/javascript,${encodeURIComponent(a.compiled)}`)}catch(o){throw new Error("Invalid Javascript module.",{cause:o})}finally{ai()}if(!t)throw new Error(`No function available for '${a.name??a.commitId}'.`);const n=t.name;let r=e[n];if(!r&&t.behavior.default&&(r=e.default),!r)throw new Error(`Found the descriptor for '${n}' but not the function. The descriptor manifest must be corrupt.`);return r},tu=async(a,t,e=!1)=>{const n=t?.functions,r=new Map;if(n)for(let o=0;o<n.length;o++){const s=n[o],i=s[0],l=s[1];let c,h=e?()=>{}:await Ew(t,i);c=i.context&&i.context!==on.Context.Calculation?new yw(i,h,()=>null,l):new Ro(i,h,()=>null,l),r.set(i.name.toUpperCase(),c)}return new Cw({json:t,readonlyFunctions:r,name:a})};class Iw{constructor(t){this._emitter=null,this._options=t,this._emitter=new Xt(this),this._initState()}_initState(){}getModules(){return this._modules}async createModule(t){const e=await import("@sheetxl/scripting"),n=await e.ScriptingUtils.compileTypescript(t);return n?await tu("scripts",n,t?.declarationsOnly??!1):null}addModule(t,e,n){this._modules.add(t,e,n)}executeMacro(t,e){const n=this._modules.getItems({name:e}),r=n.length;for(let o=0;o<r;o++){const s=n[o].getFunctions().getByName(t);if(s)return s.execute(this._options.workbook)}throw new Error(`No macro ${t} found.`)}async searchFunctions(t){await this._emitter.notify("onBeforeSearch",{async:!0});const e=t?.moduleName,n=this._modules;let r;if(t.includeBuiltIn){const i=this._options.getBuiltInFunctions?.();i&&(r=await i.search(t))}if(!n||n.getCount()===0)return r??w.CommonUtils.EmptyArray;const o=e?this._modules.getItems({name:e}):this._modules.getItems(),s=o.length;for(let i=0;i<s;i++){const l=o[i],c=await l.getFunctions().search(t);c.length>0&&(r||(r=[]),r.push(...c))}return Promise.resolve(r)}async start(){if(this._modules)return Promise.resolve();const t=this._options?.workbook,e=this._options?.json;let n={};if(e){const l=Object.keys(e);for(let c=0;c<l.length;c++){const h=l[c],d=e[h],u=await tu(h,d);n[h]=u}}const r=this,o=new _w({transactions:this._options?.transactions,initial:n,onRemove:(l,c)=>{r._options?.onRemove?.(l,c)},onAdd:(l,c)=>{r._emitter.notify("onChange"),r._options?.onAdd?.(l,c)}});this._modules=o;const s=o.getItems();if(s.length===0)return Promise.resolve(w.CommonUtils.EmptyArray);const i=s.length;for(let l=0;l<i;l++){const c=s[l];try{const h=c.getFunctions().getItems({type:"autoRun"}),d=h.length;for(let u=0;u<d;u++)await h[u].execute(t)}catch(h){w.Notifier.error("Error executing autoRun script:",h)}}}addListeners(t,e){return this._emitter.addListeners(t,e)}isReadOnly(){return this._options.workbook?.getProtection().isStructureAllowed()===!1}toJSON(){this._emitter.notify("onBeforeSave");const t=this._modules;if(!t)throw new Error("Scripts is initializing.");return t.toJSON()}}const bw=Object.freeze({lockStructure:!1,lockWindows:!1,lockRevision:!1,workbookPassword:null,revisionsPassword:null});class eu extends im{isWindowsAllowed(){return this._isPropertyAllowed("windows")}isRevisionAllowed(){return this._isPropertyAllowed("revision")}isStructureAllowed(){return this._isPropertyAllowed("structure")}_fromJSON(t){this._properties=t}_toJSON(t){let e=this._properties;if(e){t={...t,...e};const n=Object.keys(e),r=n.length;for(let o=0;o<r;o++){const s=n[o],i=e[s];i!=null&&i!==bw[s]&&(t[s]=i)}}return super._toJSON(t)}}const za=a=>`Invalid SheetKey: ${a}`,Pa="A workbook must contain at least one visible worksheet.",nu="Internal error no visible sheetRefs",Qt="Workbook has been closed. No further operations are allowed.",Ln="This workbook structure is protected. To make a change, unprotect the workbook. You might be requested to enter a password.",vi="A sheet name",Sl=`${vi} can not be blank.`,vw=`${vi} can not be longer than 31 characters.`,xw=`${vi} can not begin or end with a "'" (single quote).`;class Rw{constructor(t,e){this._add=t,this._get=e}add(t){return this._add(t)}getItems(t){return this._get(t?.name,t?.visibility)}getByName(t){return this._get(t)?.[0]??null}getCount(){return this._get().length}}const _l=new RegExp(/[\\/\\*?:[\]]+/),Aw=new RegExp(/\(((\d+)(?!.*\d))\)$/,"g"),Tw=a=>`Sheet${a+1}`,am=(a,t)=>({...Rn,getSheet:()=>null,toString:()=>_i(a,t)}),ru=(a,t=!1)=>{if(!a)throw new Error(Sl);if(_l.test(a)){if(!t)throw new Error((n=>`${n?`'${n}'`:vi} can not contain any of the following characters '\\ , / , * , ? , : , [ , ]'.`)(a));a=a.replace(_l,"")}if(a.length===0)throw new Error(Sl);const e=a.length;if(e>31){if(!t)throw new Error(vw);a=a.substring(0,31)}if(a.charAt(0)==="'"||a.charAt(e-1)==="'"){if(!t)throw new Error(xw);a=a.replace(/^'|'$/g,"")}return a};class xi extends Bo{constructor(t,e,n,r){super(t,e,r),this._workbook=n}getSource(){return this._workbook}_createRanges(t,e){let n=this._options;return e&&(n={...this._options,getOptions:ln(this._options?.getOptions,e)}),new xi(t,this._sheet,this._workbook,n)}_createRange(t,e){const n=t?{...t}:null;if(!(n&&this._workbook._getSheetRef(n.sheetName,exports.ISheet.Visibility.VeryHidden))){const o=this._workbook.getSelectedSheet();return delete n?.sheetName,am(n,n?{sheetName:jt,...o.getEntireRange().getCoords()}:null)}let r=this._options;return e&&(r={...this._options,getOptions:ln(this._options.getOptions,e)}),new Ri(t,this._sheet,this._workbook,r)}async select(t){const e=[];let n=null;const r=this.getCoords();for(let l=0;l<r.length;l++){const c=r[l];c&&(n||(n=c.sheetName),c&&c.sheetName===n&&e.push(c))}n||(n=this._workbook.getSelectedSheet().getName());const o=this._workbook.getSheets().getByName(n);if(!o)return;const s=await o.getRanges(e).select(t),i=this._workbook._rangesAddressToCoords(s.getCoords());return this._createRanges(i,t)}addListener(t,e){if(!this.getCoords())return()=>{};const n=this._workbook._sheetToWBEvent(t);return super.addListener(n,e)}get[Symbol.toStringTag](){return"[WorkbookRanges]"}toString(){const t=this.getCoords(),e=this._sheet,n=e.getEntireRange().getCoords(),r={sheetName:e.getName(),...n};return wg(t,r,_i,Fn)}}class Ri extends Do{constructor(t,e,n,r){super(t,e,r),this._workbook=n}_createRanges(t,e){let n=this._options;return e&&(n={...this._options,getOptions:ln(this._options?.getOptions,e)}),new xi(t,this._sheet,this._workbook,n)}_createRange(t,e){const n=this._sheet;if(!t)return rn(n,n._entireCoords);if(n._validateCoords(t),n._closed)return rn(null,n._entireCoords,t);let r=this._options;return e&&(r={...this._options,getOptions:ln(this._options?.getOptions,e)}),new Ri(t,this._sheet,this._workbook,r)}addListener(t,e){if(!this.getCoords())return()=>{};const n=this._workbook._sheetToWBEvent(t);return super.addListener(n,e)}get[Symbol.toStringTag](){return"[WorkbookRange]"}toString(){const t=this._sheet,e=t?.getEntireRange().getCoords()??null;return _i(this.getCoords(),{...e,sheetName:t.getName()})}}class Mw{constructor(t){this._lastTransactionUUID=null,this._closed=!1,this._initializing=!0,this._emitter=null,this._names=null,this._calculation=null,this._isDate1904=!1;const e=this,n={...t},r=n.json;delete n.json,this._transactions=n.transactions??new xe,this._ownTransactions=!n.transactions,this._emitter=new Xt(this,this._transactions);const o=this._beginCommit({description:(r?"Open":"New")+" Workbook"});try{this._strings=n.strings??new bi,this._ownStrings=!n.strings,this._resources=n.resources??new Ll,this._ownResources=!n.resources,this._createSheetName=n.createSheetNameCallback??Tw;let s=n.createSheetCallback;s||(s=l=>new Nr(l)),this._sheetOnNameChange=new Map,this._sheetOnVisibilityChange=new Map,this._sheetOnIndexChange=new Map,this._createSheet=(l,c,h,d,u)=>{let g=null;const m={date1904:e.isDate1904(),readonly:e._options.readonly??!1,transactions:e._transactions,styles:e._styles,strings:e._strings,resources:e._resources,names:e._names,workbook:e,calculation:e._calculation,resolveRange:f=>e._options.resolveRange?.(f)??e.getRange(f),container:{beforeFromJSON:f=>{g=f,e._addSheetRef({name:c,id:l,visibility:h??exports.ISheet.Visibility.Visible,sheet:f},d)},getName:()=>{const f=e._getSheetRef(g);return f?f.name:e._createSheetName(1)},setName:f=>{e._getSheetRef(g)&&e._setSheetName(g,f)},getIndex:()=>{const f=e._getSheetRef(g);return f?e._findOffsetForId(f.id,e._getSheetRefs(exports.ISheet.Visibility.VeryHidden)):-1},setIndexCallback:f=>{e._sheetOnIndexChange.set(l,f)},setNameChangeCallback:f=>{e._sheetOnNameChange.set(l,f)},getVisibility:()=>{const f=e._getSheetRef(g);return f?f.visibility:exports.ISheet.Visibility.Visible},setVisibility:f=>{e._setSheetVisibility(g,f)},setVisibilityCallback:f=>{e._sheetOnVisibilityChange.set(l,f)},duplicate:()=>e._duplicateSheet(g),setPosition:f=>{const p=e._getSheetRef(g,exports.ISheet.Visibility.VeryHidden);return!!p&&(e._moveSheet(p,f),!0)},requestSelect:async()=>(e._setSelectedSheet(g),await this._emitter.notify("onRequestSelect",{source:e,params:g,async:!0}),e.getSelectedSheet()===g)}};return u&&(m.json=u),g=s(m,c,d,h),g},this._names=n.names??new Zg({addressToRanges:l=>e.getRanges(l),getCurrentScope:()=>e.getSelectedSheet().getName(),isReadOnly:()=>e._options.readonly??!1,transactions:e._transactions}),this._ownNames=!n.names,this._calculation=n.calculation??new Pl({getNamed:(l,c)=>{try{gr.address=l,gr.scope=c;const h=this._names.getItems(gr);return h&&h.length!==0?h[0].getRanges().getCoords():null}catch{return null}},getSheetIndex:l=>{if(l===void 0)return e.getSelectedSheetIndex();const c=this._getSheetRefs(exports.ISheet.Visibility.Hidden);l=l.toLowerCase();const h=c.length;for(let d=0;d<h;d++)if(c[d].name.toLowerCase()===l)return d;try{gr.address=l,gr.scope=void 0;const d=this._names.getItems(gr);if(!d||d.length===0)return-1;let g=d[0].getRanges().getCoords()?.[0]?.sheetName;if(!g)return-1;const m=this._getSheetRefs(exports.ISheet.Visibility.Hidden);g=g.toLowerCase();const f=m.length;for(let p=0;p<f;p++)if(m[p].name.toLowerCase()===g)return p}catch{return-1}return-1},getSheetCount:()=>e.getSheets().getCount(),isDate1904:()=>e.isDate1904(),strings:e._strings,transactions:e._transactions}),this._ownsCalculation=!n.calculation,this._scripts=this._createScripts(),this._ownNames=!n.names,this._options={...n};const i=async()=>{this._ownsCalculation&&await this._calculation.start(),await this._scripts.start(),this._starting=null};this._starting=i(),r?this._fromJSON(r):(this._initState(),this._addSheet(!1)),this._emitter.notify("onLoad"),o.commit({forceAmend:this._ownTransactions})}catch(s){throw o.rollback(),s}this._sheets=new Rw(s=>e._addSheetOptions(s),(s,i)=>s?[this.getSheet(s,i)]:this._getSheets(i)),this._initializing=!1}_initState(){let t=this._getSheetRefs();t&&t.length,this._isDate1904=this._options.date1904??!1,this._theme=this._options.theme??new Tl().getDefaultTheme(),this._styles=this._options?.styles??new Br(this._theme),this._ownStyles=!this._options.styles,this._styles.getTheme()||this._styles.setTheme(this.getTheme()),this._activeSheetOffset=0,this.setView(new pl),this._listenerProtection?.(),this._protection=new eu(void 0,this._options.readonly??!1),this._listenerProtection=this._protection.addListeners({onChange:r=>{e._emitter.notify("onProtectionChange")}});const e=this;this._transactionsRemoveListener=this._transactions.addStateListener(this,{onAfterStateChange(r,o,s){if(o&&o.activeSheetId!==void 0&&o.view===e.getView()&&s.getId()===e._lastTransactionUUID&&e._getSheetRef(o.activeSheetId)?.sheet.select(),o&&s.getId()!==e._lastTransactionUUID){let i=e.getView().getActiveSheetId();o.view===e.getView()&&(i=o.activeSheetId);let l=0;try{l=e._findOffsetForId(i,r.sheetRefsVisible)}catch{}e._activeSheetOffset=l}e._lastTransactionUUID=s.getId(),e._notifyAllChange()},onRestoreOrRevert(){e._emitter.notify("onInvalidated")}});const n=this._getState();n?.listenersSheets&&(n?.listenersSheets.forEach(r=>{r()}),n?.listenersSheets.clear()),this._updateState({name:this._options.name??null,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})}getName(){return this._closed?null:this._getState().name}setName(t){if(this._closed)throw new Error(Qt);if(t!==null)try{const e=this._options.validateWorkbookName?.(t);e!==void 0&&(t=e)}catch(e){throw new w.ExpectedError(`Invalid workbook name: ${e instanceof Error?e.message:String(e)}`)}return this._updateState({name:t},"Set Workbook Name"),this._emitter.notify("onNameChange"),this}getView(){return this._view}setView(t){if(this._closed)throw new Error(Qt);if(!t)throw new w.ExpectedError("View can not be empty.");this._listenerWorkbookView?.();const e=this;let n=-1;return this._listenerWorkbookView=t.addListeners({onViewChange:r=>{const o=e._getState(),s=this._view.getActiveSheetId(),i=this._findOffsetForId(s,o.sheetRefsAll);this._activeSheetOffset=i,e._emitter.notify("onViewChange"),n!==s&&e._emitter.notify("onSelectionChange"),n=s}}),this._view=t,e._emitter.notify("onViewChange"),this}isDate1904(){return this._isDate1904}setDate1904(t){if(this._closed)throw new Error(Qt);return this._isDate1904=t,this._notifyAllChange(),this}getStyles(){return this._styles}getResources(){return this._resources}getTransactions(){return this._transactions}getStrings(){return this._strings}getTheme(){return this._theme}setTheme(t){if(this._closed)throw new Error(Qt);if(!t)throw new w.ExpectedError("A value must be provided.");const e=this._theme;return this._theme=t,this.getStyles().setTheme(t),this._emitter.notify("onThemeChange"),e}getSelectedSheetIndex(){return this._activeSheetOffset}getSelectedSheet(){const t=this._getSheetRef(this.getSelectedSheetIndex());return t?t?.sheet:null}getSheet(t,e=exports.ISheet.Visibility.Visible){const n=this._getSheetRef(t,e);if(!n)throw new w.OutOfBoundsError(`Sheet '${t}' not found.`);return n.sheet}getSheetAt(t,e=exports.ISheet.Visibility.Visible){const n=this._getSheetRef(t,e);if(!n)throw new w.OutOfBoundsError((r=>`No sheet found at ${r}.`)(t));return n.sheet}getSheets(){return this._sheets}addSheet(t){return this.getSheets().add(t)}_getSheets(t=exports.ISheet.Visibility.Visible){const e=this._getSheetRefs(t),n=[],r=e.length;for(let o=0;o<r;o++)n.push(e[o].sheet);return n}_getSheetRefs(t=exports.ISheet.Visibility.Visible){if(this._closed)return w.CommonUtils.EmptyArray;const e=this._getState();return e?t===exports.ISheet.Visibility.Visible?e.sheetRefsVisible:t===exports.ISheet.Visibility.Hidden?e.sheetRefsVisibleAndHidden:t===exports.ISheet.Visibility.VeryHidden?e.sheetRefsAll:w.CommonUtils.EmptyArray:[]}_getSheetRef(t,e=exports.ISheet.Visibility.Visible){if(this._closed)return null;let n=null;return typeof t=="number"?this._getSheetRefs(e)[t]:(typeof t=="string"?n=this._getState().refsByLowerCaseName.get(t.toLowerCase()):t instanceof Nr?n=this._getState().refsByInstance.get(t):t?.id!==void 0&&t.sheet&&(n=this._getState().refsById.get(t.id)),n)}_validateNewSheetName(t,e=!0){if(t==null)return t;if(ru(t),e&&this._getState().sheetsByLowerCaseName.has(t.toLowerCase()))throw new w.ExpectedError("That name is already taken. Try a different one.");return t.substring(0,31)}findValidSheetName(t){t&&(t=ru(t,!0));try{return((e,n)=>{try{if(n(e))return e}catch{}let r,o,s=Aw.exec(e);for(s!==null?(r=e.substring(0,s.index),o=parseFloat(s[1])):(r=e+" ",o=1);o<256;){o++;const i="("+o+")",l=r.substring(0,31-i.length)+i;try{if(n(l))return l}catch{}}throw new Error(e+" is not a valid sheet name")})(t,e=>this._validateNewSheetName(e))}catch{return this._nextSheetName()}}isValidSheetNameCharacter(t){return!_l.test(t)}_addSheetOptions(t){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);let e,n=null;e=typeof t=="string"?{name:t}:typeof t=="number"?{index:t}:t,e={...e,description:e?.description??"Add Sheet"};const r=this.beginCommit(e);try{const o=e?.autoSelect??!1;n=this._addSheet(!0,e.name,e.index??null);const s=this.getView().getActiveSheetId();let i,l;if(o!==!1){let c=this.getView().getActiveSheetId();c=this._getSheetRef(n).id,o&&(i={view:this.getView(),activeSheetId:s},l={view:this.getView(),activeSheetId:c})}if(r.commit({description:`Add Sheet '${n.getName()}'`,viewBefore:i,viewAfter:l}),o!==!1){const c=typeof o=="boolean"?void 0:o;n.select(c)}}catch(o){throw r.rollback(),o}return n}_nextSheetName(t=null){let e=t?t.toLowerCase():null;const n=this._getState(),r=n.sheetsByLowerCaseName;if(t&&r.has(e))throw new w.ExpectedError((s=>`The sheet name '${s}' already exist in workbook.`)(t));e=(t=this._validateNewSheetName(t))?t.toLowerCase():null;let o=n.lastId+1;for(;!t;){const s=this._createSheetName(o),i=s.toLowerCase();r.has(i)?o++:t=s}return this._updateState({lastId:o}),t}_addSheet(t,e=null,n=null){e=this._nextSheetName(e);const r=this._getState(),o=this._createSheet(r.lastId,e,exports.ISheet.Visibility.Visible,n,null);if(!o)throw new w.ExpectedError(Sl);return t&&this._emitter.notify("onSheetsChange"),o}_updateSheetRefStates(t){if(this._closed)throw new Error(Qt);if(!this._initializing&&!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);const e=t,n=[],r=[],o=e.length;for(let s=0;s<o;s++)e[s].visibility===exports.ISheet.Visibility.Visible?(n.push(e[s]),r.push(e[s])):e[s].visibility===exports.ISheet.Visibility.Hidden&&r.push(e[s]);this._updateState({sheetRefsAll:e,sheetRefsVisible:n,sheetRefsVisibleAndHidden:r})}_addSheetRef(t,e=null){const n=this._getState(),r=n.sheetRefsAll,o=Math.max(0,Math.min(r.length,e??r.length));let s=[...r.slice(0,o),t,...r.slice(o)];this._updateSheetRefStates(s);const i=t.sheet,l=t.name.toLowerCase(),c=new Map(n.refsById);c.set(t.id,t);const h=new Map(n.refsByLowerCaseName);h.set(l,t);const d=new Map(n.refsByInstance);d.set(i,t);const u=new Map(n.sheetsById);u.set(t.id,i);const g=new Map(n.sheetsByLowerCaseName);g.set(l,i);const m=this;let f=n.listenersSheets;if(i!==void 0){const _=i.addListeners({onBeforeDelete:I=>{m._validateDeleteSheet(I)},onDelete(I){let y=m._getSheetRef(I,exports.ISheet.Visibility.VeryHidden);if(!y)return;const b=m._beginCommit({description:`Remove Sheet ${y.name}`});try{const v=m._getState(),R=v.sheetRefsAll,x=m._findOffsetForId(y.id,R);let T=[...R];T.splice(x,1),m._updateSheetRefStates(T);const M=new Map(v.refsById);M.delete(y.id);const F=new Map(v.sheetsById);F.delete(y.id);const N=y.name.toLowerCase(),k=new Map(v.refsByLowerCaseName);k.delete(N);const U=new Map(v.sheetsByLowerCaseName);U.delete(N);const O=new Map(v.refsByInstance);O.delete(I),v.listenersSheets.get(y.id)();const D=new Map(v.listenersSheets);D.delete(y.id),m._adjustRemoveSelectionIfRequired(x,y.id),m._adjustSheetNamesIfRequired(),m._emitter.notify("onSheetsChange");const B=new Set(v.sheetsCreated);B.has(i)&&B.delete(i),m._updateState({refsById:M,sheetsById:F,refsByLowerCaseName:k,sheetsByLowerCaseName:U,refsByInstance:O,sheetsCreated:B,listenersSheets:D}),b.commit()}catch(v){throw b.rollback(),v}}}),E=i.addListeners({onSelectionChange:I=>{m.getView().getActiveSheetId()===m._getSheetRef(I)?.id&&m._emitter.notify("onSelectionChange",{source:m,params:I})}},{transactional:!1}),C=()=>{_(),E()};f=new Map(n.listenersSheets),f.set(t.id,C)}let p=n.lastId;p!==-1&&(p=Math.max(p,t.id)),this._updateState({lastId:p}),this._updateState({refsById:c,refsByLowerCaseName:h,refsByInstance:d,sheetsById:u,sheetsByLowerCaseName:g,listenersSheets:f}),this._adjustSheetNamesIfRequired();const S=new Set(this._getState().sheetsCreated);return S.add(t.sheet),this._updateState({sheetsCreated:S}),t}_adjustRemoveSelectionIfRequired(t,e){if(this._view.getActiveSheetId()===e){let n;const r=this._getState().sheetRefsVisible;n=t<r.length?r[t].id:r[t-1].id,this._view.setActiveSheetId(n)}}_adjustSheetNamesIfRequired(){const t=this._getState(),e=t.lastId;if(e===-1)return;let n=this._view.getActiveSheetId();n==null&&(this._view.setActiveSheetId(e),n=e),t.refsById.get(n).visibility===exports.ISheet.Visibility.Visible&&(this._activeSheetOffset=this._findOffsetForId(n,t.sheetRefsVisible))}_validateDeleteSheet(t){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);let e=this._getSheetRef(t);if(!e)throw new w.ExpectedError((r=>`Invalid reference for delete: ${r}`)(t));const n=this._getState().sheetRefsVisible;if(n.length===1&&n[0].id===e.id)throw new w.ExpectedError(Pa)}_findOffsetForId(t,e){const n=e.length;for(let r=0;r<n;r++)if(e[r].id===t)return r;throw new w.ExpectedError(nu)}find(t){if(this._closed)throw new Error(Qt);const e=this._getSheets();if(e.length===1)return e[0].find(t);typeof t=="string"&&(t={text:t});const n=!t?.reverse;let r=t?.disableWrap??!1;const o=this.getSelectedSheetIndex();let s=o,i=e[s],l=!1;t={...t,disableWrap:!0};let c,h=i.find(t),d=h.next(),u=!1;if(t?.from){const f=this._rangesAddressToCoords(t?.from);c={colIndex:f[0].colStart,rowIndex:f[0].rowStart}}const g=w.CoordUtils.createCellComparator(t?.orientation,t?.reverse);delete(t={...t}).from;const m=()=>{if(!u&&d.done&&(l&&s===o?u=!0:n?(s++,s>e.length-1&&(s=0,l=!0)):(s--,s<0&&(s=e.length-1,l=!0)),r&&l&&(u=!0),u||c||!l||s!==o||(u=!0),!u)){i=e[s],h=i.find(t);const p=d;return d=h.next(),p}if(!u&&l&&s===o&&(d.done||!c||!d.done&&g(d.value.getCoords(),c)>=0)&&(u=!0),u){const p=d;return d=xt,p}const f=d;return d=h.next(),f};return{next:()=>{let f=m();for(;!u&&f.done;)f=m();return f}}}replace(t,e,n){let r=0,o=null;const s=typeof e=="function",i=n?.maxCount??Number.MAX_SAFE_INTEGER;let l=n.maxCount?"":"All";const c=typeof e=="string"?` with '${ku(e)}'`:"";let h=n?.description??"Replace";const d=this._transactions.beginCommit({description:h});try{let u=null,g=null,m=t.next();for(;!m.done&&r<i;){const f=m.value,p=f.getSheet();p!==u&&(u=p,g!==null&&g.apply(),g=u.getEntireRange().startIncrementalUpdates({orientation:n?.orientation,allowUnorderedWrites:!0}));const S=s?e(f):e;S!==void 0&&S!==f&&(g.push(f,S),r++,o=f),m=t.next()}g?.apply(),r===1&&i===1&&o&&(l=o.getA1()),r===0?d.rollback():d.commit({description:n?.description??`Replace ${l}${c}`,viewAfter:{selection:null}})}catch(u){throw d.rollback(),u}return{count:r,last:o}}_nextSheetIndex(t,e=this._getSheetRefs()){const n=e.length;return n===1?0:(t===void 0&&(t=this.getSelectedSheetIndex()),(t=Math.max(0,Math.min(t,n-1)))>=n-1?0:t+1)}_prevSheetIndex(t,e=this._getSheetRefs()){const n=e.length;return n===1?0:(t===void 0&&(t=this.getSelectedSheetIndex()),(t=Math.max(0,Math.min(t,n-1)))<=0?n-1:t-1)}getNextSheet(t){if(this._closed)throw new Error(Qt);const e=this._getSheetRefs();return e[this._nextSheetIndex(t,e)]?.sheet??null}getPreviousSheet(t){if(this._closed)throw new Error(Qt);const e=this._getSheetRefs();return e[this._prevSheetIndex(t,e)]?.sheet??null}async _duplicateSheet(t){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);const e=this._getSheetRefs(),n=this.getSelectedSheetIndex();let r=null;if(t){if(r=this._getSheetRef(t),!r)throw new w.ExpectedError(za(r))}else r=e[n];if(!r)return null;const o=r.sheet,s=this._strings.beginPersist(),i=this.getResources().beginPersist(),l=this.getStyles().beginPersist();let c=null;const h=this.beginCommit(`Duplicate '${o.getName()}'`);try{const d=this._getState().refsByInstance.get(o),u=await o.toJSON(),g=e.length+1,m=this.findValidSheetName(d.name),f=this._createSheet(g,m,d.visibility,n,u);this._emitter.notify("onSheetsChange"),c=f,h.commit()}catch(d){throw h.rollback(),d}finally{l.endPersist(),i.endPersist(),s.endPersist()}return c}_createRange(t,e){const n=t?{...t}:null;if(!(n&&this._getSheetRef(n.sheetName,exports.ISheet.Visibility.VeryHidden))){const s=this.getSelectedSheet();return s?(delete n?.sheetName,am(n,n?{sheetName:jt,...s.getEntireRange().getCoords()}:null)):void console.warn(nu)}const r=this.getSelectedSheet();let o=null;return e&&(o={getOptions:e}),new Ri(t,r,this,o)}_createRanges(t,e){const n=this.getSelectedSheet();let r=null;return e&&(r={getOptions:e}),new xi(t,n,this,r)}getRange(t,e){try{const n=this._rangesAddressToCoords(t);if(n.length!==1)throw new w.ExpectedError(Ig);return this._createRange(n[0],e)}catch(n){throw n instanceof w.OutOfBoundsError?new w.OutOfBoundsError(n.message):new w.ExpectedError(n.message??br(t))}}getRanges(t,e){const n=this._rangesAddressToCoords(t);if(n.length===0)throw new w.ExpectedError(br(t));return this._createRanges(n,e)}_activeRangeCoords(){const t=this.getSelectedSheet(),e=t.getSelection().getRangesCoords(),n=t.getName(),r=[],o=e.length;for(let s=0;s<o;s++)r.push({sheetName:n,...e[s]});return r}getSelectedRange(t){return this.getRange(this._activeRangeCoords()[0],t)}getSelectedRanges(t){return this.getRanges(this._activeRangeCoords(),t)}getSelectedCell(){return this.getSelectedSheet().getSelectedCell()}_rangesAddressToCoords(t,e=!0,n=exports.ISheet.Visibility.Hidden){if(!t)throw new w.ExpectedError(Vn);const r=this.getSelectedSheet(),o=r?.getEntireRange().getCoords(),s={...o},i=r?.getName();if(i&&(s.sheetName=i),typeof t=="string"){const d=t.trim().toLowerCase();if(d==="r"||d==="c"){const u=this.getSelectedCell().getCoords(),g={};d==="r"?g.rowStart=g.rowEnd=u.rowIndex:g.colStart=g.colEnd=u.colIndex,t=g}}const l=this,c=wi(t,s,Oo,d=>{if(!e)return null;if(typeof d=="string"){const u=l.getNames().getByName(d);if(u)return u.getRanges()?.getCoords()}throw new w.ExpectedError(`Invalid sheet reference '${d}'.`)}),h=c.length;for(let d=0;d<h;d++)this._validateCoords(c[d],n);return c}_validateCoords(t,e=exports.ISheet.Visibility.Visible,n=ni){if(t===null)return;const r=this.getSheet(t.sheetName,e).getEntireRange().getCoords();if(!w.CoordUtils.isRangeWithinRange(t,r))throw new w.OutOfBoundsError(n);if(t.rowEnd<t.rowStart||t.colEnd<t.colStart)throw new w.ExpectedError(bg)}_updateSheetRef(t,e){const n=this._getState();let r=[...n.sheetRefsAll];r[this._findOffsetForId(t.id,n.sheetRefsAll)]=e,this._updateSheetRefStates(r);const o=new Map(n.refsById);o.set(t.id,e);const s=t.name.toLowerCase(),i=e.name.toLowerCase(),l=new Map(n.refsByLowerCaseName);l.delete(s),l.set(i,e);const c=new Map(n.sheetsByLowerCaseName);let h=c.get(s);c.delete(s),c.set(i,h);const d=new Map(n.refsByInstance);return d.set(h,e),this._updateState({refsById:o,refsByLowerCaseName:l,sheetsByLowerCaseName:c,refsByInstance:d}),e}_setSheetName(t,e){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);const n=this._getSheetRef(t);if(!n)throw new w.ExpectedError(za(t));if(e===n.name)return n.sheet;e=this._validateNewSheetName(e);const r=Object.freeze({...n,name:e});let o=null;const s=this.beginCommit("Rename Sheet");try{const i=this._updateSheetRef(n,r);this._adjustSheetNamesIfRequired(),this._sheetOnNameChange.forEach((l,c)=>{n.id===c&&l()}),this._emitter.notify("onSheetsChange"),n.id===this.getView().getActiveSheetId()&&this._emitter.notify("onSelectionChange"),o=i.sheet,s.commit()}catch(i){throw s.rollback(),i}return o}_setSheetVisibility(t,e=exports.ISheet.Visibility.Visible){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);const n=this._getSheetRef(t,exports.ISheet.Visibility.VeryHidden);if(!n)return null;if(e===n.visibility)return;let r=null,o="";e===exports.ISheet.Visibility.Visible?o="Unhide Sheet":e===exports.ISheet.Visibility.Hidden?o="Hide Sheet":e===exports.ISheet.Visibility.VeryHidden&&(o="Very Hide Sheet");const s=this.beginCommit(o);try{const i=this._getState().sheetRefsVisible;if(e!==exports.ISheet.Visibility.Visible&&i.length===1&&i[0].id===n.id)throw new w.ExpectedError(Pa);const l={...n,visibility:e};let c=-1;e!==exports.ISheet.Visibility.Visible&&(c=this._findOffsetForId(n.id,i));const h=this._updateSheetRef(n,l);e!==exports.ISheet.Visibility.Visible&&this._adjustRemoveSelectionIfRequired(c,n.id),r=h.sheet,this._adjustSheetNamesIfRequired(),s.commit()}catch(i){throw s.rollback(),i}return this._sheetOnVisibilityChange.forEach((i,l)=>{n.id===l&&i()}),this._emitter.notify("onSheetsChange"),r}_moveSheet(t,e){if(this._closed)throw new Error(Qt);if(!this.getProtection().isStructureAllowed())throw new w.ExpectedError(Ln);let n=null;const r=this.beginCommit(`Move Sheet '${t.name}'`);try{const o=this._getState(),s=o.sheetRefsVisible;if(e<0||e>s.length-1)throw new w.ExpectedError(`Invalid to index: ${e}`);const i={view:this.getView(),activeSheetId:this.getView().getActiveSheetId()},l=o.sheetRefsAll,c=this._findOffsetForId(t.id,l),h=this._findOffsetForId(s[e].id,l);if(c===h)return;const d=l[c];let u=[...l];u.splice(c,1),u.splice(h,0,d),this._updateSheetRefStates(u),this._adjustSheetNamesIfRequired(),this._sheetOnIndexChange.forEach((g,m)=>{m>=c&&m<=h&&g()}),this._emitter.notify("onSheetsChange"),n=d.sheet,r.commit({viewBefore:i,viewAfter:{view:this.getView(),activeSheetId:this.getView().getActiveSheetId()}})}catch(o){throw r.rollback(),o}return n}_setSelectedSheet(t){if(this._closed)throw new Error(Qt);const e=this._getSheetRef(t);if(!e)throw new w.ExpectedError(za(t));let n=null;return e.visibility!==exports.ISheet.Visibility.Visible&&this._setSheetVisibility(e,exports.ISheet.Visibility.Visible),this._view.setActiveSheetId(e.id),n=e.sheet,n}getProtection(){return this._protection}getNames(){return this._names}getCalculation(){return this._calculation}getScripts(){return this._scripts??null}_notifyAllChange(){this._emitter.notify("onSheetsChange"),this._emitter.notify("onViewChange")}addListeners(t,e){return this._emitter.addListeners(t,e)}_sheetToWBEvent(t){const e=this;return n=>{const r=()=>{const s=n.getSource();if(s.isICellRanges){const i=[...s.getCoords()],l=i.length;for(let c=0;c<l;c++){const h=i[c];!h.sheetName&&s.getSheet().getName()&&(i[c]={...h,sheetName:s.getSheet().getName()})}return e.getRanges(i)}if(s.isICellRange){const i=s.getCoords(),l=s.getSheet().getName();return e.getRange({...i,sheetName:l})}},o={getSource:r,trigger:n.trigger,getFrom:()=>e.getRanges(n.getFrom()),getTo:()=>e.getRange(n.getTo()),isDataChange:n.isDataChange,isTransactional:n.isTransactional,isUndo:n.isUndo,toString:()=>`WorkbookRangeEvent: ('${n.trigger}', ${r().toString()})`,timeStamp:Date.now()};t(o)}}_fromJSON(t){if(this._emitter.notify("onBeforeLoad",{params:t}),this._initState(),!t.sheets||t.sheets.length===0)throw new w.ExpectedError(Pa);t.theme&&(this._theme=new Qs(t.theme),this._styles.setTheme(this._theme));const e=this._strings.beginPersist(),n=this._resources.beginPersist(),r=this._styles.beginPersist();try{e.fromJSON(t.strings),n.fromJSON(t.resources),r.fromJSON(t.styles),t.date1904&&(this._isDate1904=!0),t.view||(t.view={});const o=t.sheets,s=o.length;let i=t.view.activeSheetId??null;i!==null&&(i=Math.min(Math.max(1,i),s));let l=null;for(let h=0;h<s;h++){const d=o[h],u=d.visibility||exports.ISheet.Visibility.Visible,g=h+1;u===exports.ISheet.Visibility.Visible?l=g:i!==null&&i===g&&(i=null),this._createSheet(g,d.name,u,void 0,d.sheet)}this._updateState({lastId:l}),t.names&&this._names.fromJSON(t.names),t.view.activeSheetId=i??l,this.setView(new pl({json:t.view})),this._adjustSheetNamesIfRequired(),this._listenerProtection?.();const c=this;this._protection=new eu(t?.protection,this._options?.readonly),this._listenerProtection=this._protection.addListeners({onChange:h=>{c._emitter.notify("onProtectionChange",{source:h})}}),t.scripts&&(this._scripts=this._createScripts(t.scripts)),this._emitter.notify("onLoad")}finally{r.endPersist(),n.endPersist(),e.endPersist()}}_createScripts(t){const e=this;return new Iw({transactions:this._transactions,json:t,workbook:e,getBuiltInFunctions:()=>e._calculation?.getFunctions(),onAdd:(n,r)=>{const o=e._calculation;o.getStatus()!==exports.ICalculation.Status.Off&&o.start().then(()=>{const s=r.getFunctions().getItems({type:"formula"}),i=s.length;for(let l=0;l<i;l++){const c=s[l];this._calculation.getFunctions().add(c)}})},onRemove:(n,r)=>{}})}async toJSON(t=!1){if(this._closed)throw new Error(Qt);await this._emitter.notify("onBeforeSave",{async:!0});const e={sheets:[]};await Promise.resolve(this._starting);const n=this._theme.toJSON();(n?Object.keys(n).length:0)>0&&(e.theme=n);const r=this._strings.beginPersist(),o=this._resources.beginPersist(),s=this._styles.beginPersist();try{const i=this._getSheetRef(this.getSelectedSheetIndex()).id;let l=i,c=null;const h=this._getState(),d=h.sheetRefsAll,u=h.sheetsById,g=d.length;for(let C=0;C<g;C++){const I=d[C],y=C+1,b=await u.get(I.id).toJSON(t),v={name:I.name,sheet:b};I.visibility===exports.ISheet.Visibility.Visible?c=y:v.visibility=I.visibility,I.id===i&&(l=y),e.sheets.push(v)}const m=s.toJSON();m&&Object.keys(m).length>0&&(e.styles=m);const f=this.getProtection().toJSON();f&&(e.protection=f);const p=await r.toJSONAsync();p&&p.length>0&&(e.strings=p);const S=await o.toJSONAsync();S&&S.length>0&&(e.resources=S);const _=this._names.toJSON();_&&_.length>0&&(e.names=_);const E=this._view.toJSON();E&&(l!==c?E.activeSheetId=l:delete E.activeSheetId,Object.keys(E).length>0&&(e.view=E))}finally{s.endPersist(),o.endPersist(),r.endPersist()}if(this._scripts){const i=this._scripts.toJSON();i&&Object.keys(i).length>0&&(e.scripts=i)}return this._isDate1904&&(e.date1904=!0),this._emitter.notify("onSave",{params:e}),e}isClosed(){return this._closed}close(){if(this._closed)return;this._emitter.notify("onClose");const t=this._getState();t.listenersSheets.forEach(n=>{n()}),t.listenersSheets.clear();const e=t.sheetRefsAll;for(let n=e.length-1;n>=0;n--)try{e[n].sheet.close()}catch(r){console.warn("error on close",r)}this._ownResources,this._ownNames&&this._names.close(),this._ownsCalculation&&this._calculation.close(),this._ownStyles,this._transactionsRemoveListener?.(),this._closed=!0}beginCommit(t){if(this._closed)throw new Error(Qt);return this._beginCommit(typeof t=="string"?{description:t}:t)}doBatch(t,e){const n=this;return e=typeof e=="string"?{description:e}:{description:"Update Workbook",...e},this._transactions.doBatch(t,e,(r,o)=>{r.getDepth()===0&&(n._lastTransactionUUID=r.getId())})}_beginCommit(t){const e=this;return this._transactions.beginCommit(typeof t=="string"?{description:t}:t,n=>{n.getDepth()===0&&(e._lastTransactionUUID=n.getId())})}_getState(){return this._transactions.getState(this)}_updateState(t,e="Update Workbook"){if(!t)return;const n=this._beginCommit(e);try{n.updateState(this,t),n.commit()}catch(r){throw n.rollback(),r}}get options(){return this._options}get[Symbol.toStringTag](){return"[Workbook]"}toString(){return this._getState().name??""}get isIWorkbook(){return!0}}const gr={address:null,scope:null};exports.BUILD_DATE="Sun Oct 19 2025",exports.Calculation=Pl,exports.Color=Pt,exports.DateUtils=V_,exports.ExternalRangeClipboardItem=class{constructor(a,t,e,n){if(this._parsed=void 0,!a)throw new w.NullNotAllowedError("nativeItems are required.");this._native=a,this._markOptions=Object.freeze(t??{}),this._styles=e,this._isDate1904=n}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(){const a=this._parsed;if(a===void 0)throw new Error("Must call 'parse()' before getItem().");if(a===null)return null;if(this._snapshot)return this._snapshot;const t=this;return this._snapshot={copyTo:(e,n)=>a.copyTo(e,{...t._markOptions,...n}),getMarkOptions:()=>t._markOptions,getName:()=>a?.getName()??"Clipboard Data",getCoords:()=>a?.getCoords?.()??null,toText:()=>t.toText(),toHtml:()=>t.toHtml(),toImage:()=>t.toImage(),getSource:()=>a?.getSource?.()??null,isISnapshot:!0},this._snapshot}async parse(){let a,t=this._native?.text,e=this._native.html;if(e===null&&t&&t.includes("<table"))try{const n=new DOMParser().parseFromString(t,w.MimeType.html),r=n.querySelector("parsererror");if(r)throw new w.ExpectedError("Unable to parse: "+r);e=n,t=null}catch{console.warn("Discovered text as html table but could could not parse.")}try{const n=new j_(this._styles,this._isDate1904,e?"HTML":"Text"),r=await Promise.resolve(t?((s,i=" ")=>new Promise((l,c)=>{Promise.resolve().then(()=>require("./DaENj_w2AIRp0Mqp.cjs")).then(h=>h.papaparse_min).then(h=>{try{const d=h.parse(s,{delimiter:i}).data;d.length>1&&(d[d.length-1].length===0||d[d.length-1].length===1&&d[d.length-1][0].length===0)&&d.pop(),l(d)}catch(d){console.warn(d),c(d)}},h=>{c(h)})}))(t):[[]]);let o;if($_(e,r,n)?(a=n.sheet(),o=a.getUsedRange()):e=null,o)return this._parsed={async copyTo(s,i){return(await s.copyFrom(o,i))?.getCoords()??null},getCoords:()=>o.getCoords(),getSource:()=>a,getName:()=>a.getName()},!0}catch(n){throw n}if(!t&&!e&&this._native.image){const n=this;return this._parsed={async copyTo(r,o){const s=r.getSheet(),i=await s.getMovables().addImage({buffer:n._native.image.arrayBuffer()},{type:"picture",description:"Copy Image from Clipboard"});return s.getView().selectMovables([i]),null},getName:()=>"Image"},!0}return!1}get isClipboardItem(){return!0}},exports.FontUtils=np,exports.FormulaContext=Kg,exports.GeomUtils=bm,exports.IFontCollection=ep,exports.LicenseManager=wl,exports.Picture=qg,exports.RangeClipboardItem=class{constructor(a){if(!a)throw new w.NullNotAllowedError("snapshot is required.");this._snapshot=a}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.Resource=Vs,exports.ResourceCollection=Ll,exports.Sheet=Nr,exports.SimpleFontFace=Vu,exports.StringCollection=bi,exports.StyleCollection=Br,exports.Table=Jg,exports.TextUtils=Kf,exports.Theme=Qs,exports.ThemeCollection=Tl,exports.TransactionStore=xe,exports.TransactionUndoManager=Sm,exports.TypedFunction=Ro,exports.VERSION="0.7.22",exports.Workbook=Mw,exports.WorkbookView=pl,exports.coerceScalar=be,exports.colToString=Re,exports.defaultGetEntireCoords=ei,exports.getDefaultExportFromCjs=xl,exports.gridFromArray=fg,exports.minCoerce=No,exports.rowToString=Oe,exports.toAbsoluteRange=(a,t,e,n)=>{let r=a.colStart,o=a.rowStart,s=a.colEnd,i=a.rowEnd;const l=a.$colStart??!1,c=a.$rowStart??!1,h=a.$colEnd??!1,d=a.$rowEnd??!1;if(l||r===Number.MIN_SAFE_INTEGER||(r+=e),c||o===Number.MIN_SAFE_INTEGER||(o+=t),h||s===Number.MAX_SAFE_INTEGER||(s+=e),d||i===Number.MAX_SAFE_INTEGER||(i+=t),r>s){const g=r;r=s,s=g}if(o>i){const g=o;o=i,i=g}let u;return n?(u=n,u.colStart=r,u.rowStart=o,u.colEnd=s,u.rowEnd=i,u.$colStart=l,u.$rowStart=c,u.$colEnd=h,u.$rowEnd=d):u={colStart:r,rowStart:o,colEnd:s,rowEnd:i,$colStart:l,$rowStart:c,$colEnd:h,$rowEnd:d},a.sheetName&&(u.sheetName=a.sheetName),u},exports.tokensToA1=om,exports.tokensToR1C1=rm,exports.typeFromJsValue=qt;