@univerjs/engine-formula 0.2.2 → 0.2.3

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 (32) hide show
  1. package/README.md +11 -2
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/es/index.js +4222 -4078
  4. package/lib/types/engine/value-object/array-value-object.d.ts +2 -0
  5. package/lib/types/engine/value-object/base-value-object.d.ts +1 -0
  6. package/lib/types/engine/value-object/primitive-object.d.ts +3 -0
  7. package/lib/types/functions/custom-function.d.ts +5 -0
  8. package/lib/types/functions/math/acoth/__tests__/index.spec.d.ts +16 -0
  9. package/lib/types/functions/math/acoth/index.d.ts +8 -0
  10. package/lib/types/functions/math/base/__tests__/index.spec.d.ts +16 -0
  11. package/lib/types/functions/math/base/index.d.ts +9 -0
  12. package/lib/types/functions/math/cosh/__tests__/index.spec.d.ts +16 -0
  13. package/lib/types/functions/math/cosh/index.d.ts +8 -0
  14. package/lib/types/functions/math/cot/__tests__/index.spec.d.ts +16 -0
  15. package/lib/types/functions/math/cot/index.d.ts +8 -0
  16. package/lib/types/functions/math/coth/__tests__/index.spec.d.ts +16 -0
  17. package/lib/types/functions/math/coth/index.d.ts +8 -0
  18. package/lib/types/functions/math/csc/__tests__/index.spec.d.ts +16 -0
  19. package/lib/types/functions/math/csc/index.d.ts +8 -0
  20. package/lib/types/functions/math/csch/__tests__/index.spec.d.ts +16 -0
  21. package/lib/types/functions/math/csch/index.d.ts +8 -0
  22. package/lib/types/functions/math/function-map.d.ts +2 -1
  23. package/lib/types/functions/math/sin/__tests__/index.spec.d.ts +16 -0
  24. package/lib/types/functions/math/sin/index.d.ts +8 -0
  25. package/lib/types/functions/math/sinh/__tests__/index.spec.d.ts +16 -0
  26. package/lib/types/functions/math/sinh/index.d.ts +8 -0
  27. package/lib/types/index.d.ts +1 -1
  28. package/lib/types/services/dependency-manager.service.d.ts +6 -0
  29. package/lib/umd/index.js +1 -1
  30. package/package.json +6 -6
  31. package/lib/types/commands/mutations/unregister-function.mutation.d.ts +0 -16
  32. package/lib/types/controller/register-function.controller.d.ts +0 -12
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Qa=Object.defineProperty;var Ha=(n,a,e)=>a in n?Qa(n,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[a]=e;var h=(n,a,e)=>Ha(n,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@univerjs/core"),q=require("@wendellhu/redi"),Ct=require("rxjs"),za=require("@univerjs/rpc");function ps(n,a,e,t,r){for(let s=0,i=n.length;s<i;s++){const o=n[s];if(a!==o.unitId||e!==o.sheetId)continue;const{startRow:u,startColumn:c,endRow:l,endColumn:m}=o.range;if(t>=u&&t<=l&&r>=c&&r<=m)return!0}return!1}var f=(n=>(n.DIV_BY_ZERO="#DIV/0!",n.NAME="#NAME?",n.VALUE="#VALUE!",n.NUM="#NUM!",n.NA="#N/A",n.CYCLE="#CYCLE!",n.REF="#REF!",n.SPILL="#SPILL!",n.CALC="#CALC!",n.ERROR="#ERROR!",n.CONNECT="#GETTING_DATA",n.NULL="#NULL!",n))(f||{});const Lt=new Set(Object.values(f));var Rs=(n=>(n[n.Financial=0]="Financial",n[n.Date=1]="Date",n[n.Math=2]="Math",n[n.Statistical=3]="Statistical",n[n.Lookup=4]="Lookup",n[n.Database=5]="Database",n[n.Text=6]="Text",n[n.Logical=7]="Logical",n[n.Information=8]="Information",n[n.Engineering=9]="Engineering",n[n.Cube=10]="Cube",n[n.Compatibility=11]="Compatibility",n[n.Web=12]="Web",n[n.Array=13]="Array",n[n.Univer=14]="Univer",n[n.User=15]="User",n[n.DefinedName=16]="DefinedName",n))(Rs||{}),ue=(n=>(n.PLUS="+",n.MINUS="-",n.MULTIPLY="*",n.DIVIDED="/",n.CONCATENATE="&",n.POWER="^",n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(ue||{}),O=(n=>(n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(O||{});const rr=new Map([["<>",3],["<",3],[">=",3],["=",3],[">",3],["<=",3],["&",2],["+",2],["-",2],["/",1],["*",1],["^",0]]),ft=new Set(rr.keys()),Wa=new Set(["=","<>",">",">=","<","<="]);var z=(n=>(n.OPEN_BRACKET="(",n.CLOSE_BRACKET=")",n.COMMA=",",n.SINGLE_QUOTATION="'",n.DOUBLE_QUOTATION='"',n.OPEN_BRACES="{",n.CLOSE_BRACES="}",n.COLON=":",n.OPEN_SQUARE_BRACKET="[",n.CLOSE_SQUARE_BRACKET="]",n))(z||{}),Ke=(n=>(n.PERCENTAGE="%",n.POUND="#",n))(Ke||{});const Ga=new Set(["%","#"]);var Ce=(n=>(n.AT="@",n.MINUS="-",n))(Ce||{});const Xa=" ",_s=[...Object.values(O),...Object.values(ue),...Object.values(z),...Object.values(Ke),...Object.values(Ce)];function Ot(n){return _s.includes(n)}function Es(n){for(const a of _s)if(n.indexOf(a)>-1)return!0;return!1}function Ka(n){return n[0]==="'"&&n[n.length-1]==="'"?n.substring(1,n.length-1):n}function Na(n){return Ot(n)&&n!==z.CLOSE_BRACES&&n!==z.CLOSE_BRACKET&&n!==z.SINGLE_QUOTATION&&n!==z.DOUBLE_QUOTATION||n===" "}function ys(n){const a={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;a[e]==null&&(a[e]={}),Object.keys(t).forEach(r=>{const s=t[r];a[e][r]=new y.ObjectMatrix(s)})}),a}function qa(n){const a={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;a[e]==null&&(a[e]={}),Object.keys(t).forEach(r=>{const s=t[r];a[e][r]=s.getData()})}),a}const We="P_1",nt="R_1",Dt="L_1",$t="LR_1",Cs="LO_1",Za="LET",Tt="LAMBDA",Ja="CUBE";class N{constructor(){h(this,"_parent");h(this,"_token",nt);h(this,"_children",[]);h(this,"_lambdaId");h(this,"_functionDefinitionPrivacyVar");h(this,"_lambdaParameter","");h(this,"_startIndex",-1);h(this,"_endIndex",-1);h(this,"_definedNames",[])}dispose(){var a;this._children.forEach(e=>{typeof e!="string"&&e.dispose()}),(a=this._functionDefinitionPrivacyVar)==null||a.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(a){this._lambdaId=a}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(a){this._functionDefinitionPrivacyVar=a}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(a){this._lambdaParameter=a}getParent(){return this._parent}setParent(a){this._parent=a}getChildren(){return this._children}setChildren(a){this._children=a}addChildren(a){this._children.push(a)}addChildrenFirst(a){this._children.unshift(a)}getToken(){return this._token}setToken(a){this._token=a}setIndex(a,e){this._startIndex=a,this._endIndex=e}setDefinedNames(a){this._definedNames=a}hasDefinedNames(){return this._definedNames.length>0}replaceChild(a,e){const t=this._getIndexInParent(a);t!=null&&(this.getChildren().splice(t,1,e),e.setParent(this))}changeToParent(a){const e=this.getParent();e&&e.removeChild(this),this.setParent(a),a.getChildren().push(this)}removeChild(a){const e=this._getIndexInParent(a);e!=null&&this.getChildren().splice(e,1)}serialize(){const a=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let s=0;s<r;s++){const i=e[s];i instanceof N?t.push(i.serialize()):t.push(i)}return{token:a,st:this._startIndex,ed:this._endIndex,children:t}}_getIndexInParent(a){const e=this.getChildren(),t=e.length;for(let r=0;r<t;r++)if(e[r]===a)return r}}class Rt{constructor(a){h(this,"_cache");this._cache=new y.LRUMap(a)}set(a,e){const t=this._hash(a);this._cache.set(t,e)}get(a){const e=this._hash(a);return this._cache.get(e)}clear(){this._cache.clear()}_hash(a){return y.hashAlgorithm(a)}}const sn='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',ei="((?![\\[\\]\\/?*\\\\]).)*!",st="$",fn="\\s*?:\\s*?",fr="[A-Za-z]+",hr="[1-9][0-9]*",Pt=`'?(${sn})?(${ei})?'?`,an=`\\${st}?${fr}\\${st}?${hr}`,ti=`^(${Ce.AT})?${Pt}${an}${fn}${an}$`,jt=`^${Pt}\\s*?${an}(${Ke.POUND})?$`,Ds=`^${Pt}\\${st}?${hr}${fn}\\${st}?${hr}$`,bs=`^${Pt}\\${st}?${fr}${fn}\\${st}?${fr}$`,Ss=`^${Pt}\\s*?\\${st}?${hr}$`,As=`^${Pt}\\s*?\\${st}?${fr}$`,Ls="[.*?]",ri="{.*?}";function Ps(n){return new RegExp(jt).test(n)||new RegExp(ti).test(n)||new RegExp(Ds).test(n)||new RegExp(bs).test(n)}var Le=(n=>(n[n.NORMAL=0]="NORMAL",n[n.NUMBER=1]="NUMBER",n[n.STRING=2]="STRING",n[n.FUNCTION=3]="FUNCTION",n[n.REFERENCE=4]="REFERENCE",n[n.ARRAY=5]="ARRAY",n[n.DEFINED_NAME=6]="DEFINED_NAME",n))(Le||{});function mr(n){let a="";for(const e of n)typeof e=="string"?a+=e:a+=e.token;return a}const ni=/[^0-9]/g,si=/[^A-Za-z]/g;function Ft(n){let a=n[0]==="$";const e=n.substring(1);let t=e.indexOf("$")>-1;return y.Tools.isStringNumber(e)&&a&&!t&&(a=!1,t=!0),a&&t?y.AbsoluteRefType.ALL:a?y.AbsoluteRefType.COLUMN:t?y.AbsoluteRefType.ROW:y.AbsoluteRefType.NONE}function ai(n){const a=n.split("!");a.length>1&&(n=a[a.length-1]);const e=n.split(":");return e.length>1?{startAbsoluteRefType:Ft(e[0]),endAbsoluteRefType:Ft(e[1])}:{startAbsoluteRefType:Ft(e[0])}}function Qn(n=y.AbsoluteRefType.NONE){let a="",e="";return n===y.AbsoluteRefType.ROW?a="$":n===y.AbsoluteRefType.COLUMN?e="$":n===y.AbsoluteRefType.ALL&&(a="$",e="$"),{rowAbsoluteString:a,columnAbsoluteString:e}}function Ne(n){const{startColumn:a,startRow:e,endColumn:t,endRow:r,startAbsoluteRefType:s,endAbsoluteRefType:i,rangeType:o=y.RANGE_TYPE.NORMAL}=n,u=Qn(s),c=Qn(i);if(o===y.RANGE_TYPE.ROW||o===y.RANGE_TYPE.ALL){const g=`${u.rowAbsoluteString}${e+1}`,_=`${c.rowAbsoluteString}${r+1}`;return`${g}:${_}`}if(o===y.RANGE_TYPE.COLUMN){const g=`${u.columnAbsoluteString}${y.Tools.chatAtABC(a)}`,_=`${c.columnAbsoluteString}${y.Tools.chatAtABC(t)}`;return`${g}:${_}`}const l=`${u.columnAbsoluteString}${y.Tools.chatAtABC(a)}${u.rowAbsoluteString}${e+1}`,m=`${c.columnAbsoluteString}${y.Tools.chatAtABC(t)}${c.rowAbsoluteString}${r+1}`;return l===m?l:`${l}:${m}`}function xs(n,a){return gr(n)?`'${n}'!${Ne(a)}`:`${n}!${Ne(a)}`}function Vs(n,a,e){return gr(n)||gr(a)?`'[${n}]${a}'!${Ne(e)}`:`[${n}]${a}!${Ne(e)}`}function gt(n){const{unitId:a,sheetName:e,range:t}=n;return a!=null&&a.length>0&&e!=null&&e.length>0?Vs(a,e,t):e!=null&&e.length>0?xs(e,t):Ne(t)}function nr(n){const a=Number.parseInt(n.replace(ni,""))-1,e=y.Tools.ABCatNum(n.replace(si,"")),t=Ft(n);return{row:a,column:e,absoluteRefType:t}}function ws(n){const a=new RegExp(sn).exec(n);let e="";a!=null&&(e=a[0].trim(),e=e.slice(1,e.length-1),n=n.replace(new RegExp(sn),""));const t=n.indexOf("!");let r="",s="";return t>-1?(r=n.substring(0,t),r[0]==="'"&&r[r.length-1]==="'"&&(r=r.substring(1,r.length-1)),s=n.substring(t+1)):s=n,{refBody:s,sheetName:r,unitId:e}}function $e(n){const{refBody:a,sheetName:e,unitId:t}=ws(n),r=a.indexOf(":");if(r===-1){const C=nr(a),S=C.row,A=C.column,P=C.absoluteRefType;return{unitId:t,sheetName:e,range:{startRow:S,startColumn:A,endRow:S,endColumn:A,startAbsoluteRefType:P,endAbsoluteRefType:P}}}const s=a.substring(0,r),i=a.substring(r+1),o=nr(s),u=nr(i),c=o.row,l=o.column,m=u.row,g=u.column;let _=y.RANGE_TYPE.NORMAL;return Number.isNaN(c)&&Number.isNaN(m)?_=y.RANGE_TYPE.COLUMN:Number.isNaN(l)&&Number.isNaN(g)&&(_=y.RANGE_TYPE.ROW),{unitId:t,sheetName:e,range:{startRow:c,startColumn:l,endRow:m,endColumn:g,startAbsoluteRefType:o.absoluteRefType,endAbsoluteRefType:u.absoluteRefType,rangeType:_}}}function dr(n){if(!Ps(n))return!1;const{range:a}=$e(n);return!(a.endColumn>=16384)}function ii(n,a){const e=(n==null?void 0:n.split(","))||[];return n===""||e.length===0?[]:vs(n)?e.map(s=>{const i=$e(s);return{unitId:i.unitId,sheetId:a(i.sheetName),range:i.range,sheetName:i.sheetName}}):[]}function vs(n){return((n==null?void 0:n.split(","))||[]).every(e=>dr(e.trim()))}function gr(n){return n.length===0?!1:!!(Es(n)||oi(n)||ui(n)||ci(n)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(n))}function oi(n){const a=n.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(n)&&a!==null}function ui(n){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(n)}function ci(n){return!new RegExp("^\\p{Letter}","u").test(n.charAt(0))}const Us=1e5,Gr=new Rt(Us),Xr=new Rt(Us);class xr extends y.Disposable{constructor(){super(...arguments);h(this,"_currentLexerNode",new N);h(this,"_upLevel",0);h(this,"_segment","");h(this,"_bracketState",[]);h(this,"_squareBracketState",0);h(this,"_bracesState",0);h(this,"_singleQuotationState",0);h(this,"_doubleQuotationState",0);h(this,"_lambdaState",!1);h(this,"_colonState",!1);h(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),Gr.clear(),Xr.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(e,t){const r=this._getCurrentParamIndex(e,t);if(r==null||r===f.VALUE)return;const s=r[0];if(typeof s=="string")return;let i=s.getParent(),o=s;for(;i;){const u=i.getToken();if(u!==We&&!Ot(u)&&i.getStartIndex()!==-1){const c=i.getChildren().indexOf(o);return{functionName:u,paramIndex:c}}o=i,i=i.getParent()}}checkIfAddBracket(e){let t=0,r=e.length-1,s=e[r];for(;(s===z.CLOSE_BRACKET||s===" ")&&r>=0;)s===z.CLOSE_BRACKET&&t++,s=e[--r];const i=this._getCurrentParamIndex(e,e.length-2);if(i==null||i===f.VALUE)return 0;const o=i[0];if(typeof o=="string")return 0;let u=o.getParent(),c=0;for(i[1]===z.OPEN_BRACKET&&c++;u;){const l=u.getToken();l!==We&&l!==z.COLON&&u.getStartIndex()!==-1&&l.toUpperCase()!==Tt&&(t===0?c+=1:t--),u=u.getParent()}return c}sequenceNodesBuilder(e){const t=Xr.get(e);if(t)return[...t];const r=this._getSequenceArray(e);if(r.length===0)return;const s=this.getSequenceNode(r);return Xr.set(e,[...s]),s}convertRefersToAbsolute(e,t,r){const s=this.sequenceNodesBuilder(e);if(s==null)return e;let i="";e.substring(0,1)===ue.EQUALS&&(i=ue.EQUALS);for(let o=0,u=s.length;o<u;o++){const c=s[o];if(typeof c!="string"&&c.nodeType===Le.REFERENCE){const{token:l,endIndex:m}=c,g=$e(l);if(g==null)continue;const{range:_,sheetName:C,unitId:S}=g,A={..._,startAbsoluteRefType:t,endAbsoluteRefType:r},P=gt({range:A,unitId:S,sheetName:C}),U=P.length-l.length;s[o]={...c,token:P,endIndex:m+U};for(let T=o+1;T<u;T++){const X=s[T];typeof X!="string"&&(X.startIndex+=U,X.endIndex+=U)}}}return`${i}${mr(s)}`}moveFormulaRefOffset(e,t,r,s=!1){const i=this.sequenceNodesBuilder(e);if(i==null)return e;const o=[];for(let u=0,c=i.length;u<c;u++){const l=i[u];if(typeof l=="string"||l.nodeType!==Le.REFERENCE){o.push(l);continue}const{token:m}=l,g=$e(m),{sheetName:_,unitId:C}=g;let S=g.range;if(!s&&S.startAbsoluteRefType===y.AbsoluteRefType.ALL&&S.endAbsoluteRefType===y.AbsoluteRefType.ALL){o.push(l);continue}else S=y.moveRangeByOffset(S,t,r,s);let A="";y.isValidRange(S)?A=gt({range:S,unitId:C,sheetName:_}):A=f.REF,o.push({...l,token:A})}return`=${mr(o)}`}getSequenceNode(e){const t=[];let r=!1;for(let s=0,i=e.length;s<i;s++){const o=e[s],u=e[s-1],{segment:c,currentString:l}=o;if(l===z.DOUBLE_QUOTATION&&(r=!0),(c!==""||s===0)&&s!==i-1){t.push(l);continue}let m=(u==null?void 0:u.segment)||"",g=s-m.length,_=s-1,C=s-1;if(s===i-1&&this._isLastMergeString(l)&&(m+=l,_+=1),m===""||rr.has(m)){t.push(l);continue}const S=m.trim(),A=this._replacePrefixString(S);if(r===!0&&S[S.length-1]===z.DOUBLE_QUOTATION)r=!1,this._processPushSequenceNode(t,Le.STRING,m,g,_,C);else if(new RegExp(jt).test(A)&&dr(A)){if(A.length!==S.length){const P=S.length-A.length;C+=P,g+=P,m=this._replacePrefixString(m)}this._processPushSequenceNode(t,Le.REFERENCE,m,g,_,C)}else y.Tools.isStringNumber(S)?this._processPushSequenceNode(t,Le.NUMBER,m,g,_,C):S.length>0&&this._processPushSequenceNode(t,Le.FUNCTION,m,g,_,C);(s!==i-1||!this._isLastMergeString(l))&&t.push(l)}return this._mergeSequenceNodeReference(t)}_processPushSequenceNode(e,t,r,s,i,o){this._pushSequenceNode(e,{nodeType:t,token:r,startIndex:s,endIndex:i},o)}_getCurrentParamIndex(e,t){return this._nodeMaker(e,void 0,t)}_isLastMergeString(e){return e===z.DOUBLE_QUOTATION||y.Tools.isStringNumber(e)||!Ot(e)}_mergeSequenceNodeReference(e){const t=[],r=e.length;let s=0;for(;s<r;){const i=e[s];if(typeof i=="string"){const o=e[s-1];if(i.trim()===z.CLOSE_BRACES&&o!=null&&typeof o!="string"&&o.nodeType===Le.FUNCTION&&o.token.trim().substring(0,1)===z.OPEN_BRACES){o.nodeType=Le.ARRAY,o.token+=i,o.endIndex+=i.length,s++;continue}t.push(i)}else{const o=e[s+1],u=e[s+2];o===z.COLON&&typeof i!="string"&&u!=null&&typeof u!="string"&&dr((i.token+o+u.token).trim())&&(i.nodeType=Le.REFERENCE,i.token+=o+u.token,i.endIndex=u.endIndex,s+=2),t.push(i)}s++}return t}_pushSequenceNode(e,t,r){const s=r-t.startIndex+1;e.splice(e.length-s,s,t)}_replacePrefixString(e){const t=[];let r=!1;for(let s=0,i=e.length;s<i;s++){const o=e[s];if(o===Xa&&!r)t.push(o);else{if(!r&&(o===Ce.AT||o===Ce.MINUS))continue;t.push(o),r=!0}}return t.join("")}nodeMakerTest(e){return this._nodeMaker(e)}treeBuilder(e,t=!0,r,s){if(t===!0){const g=Gr.get(e),_=s==null?void 0:s(e);if(g&&!_)return g}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(nt);const i=[];let o=this._nodeMaker(e,i);if(o===f.VALUE||i.length===0)return o;let u=!1,c="",l=[];if(r){const{hasDefinedName:g,sequenceString:_,definedNames:C}=r(i);u=g,c=_,l=C}if(u&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(nt),o=this._nodeMaker(`=${c}`),o===f.VALUE))return o;const m=this._getTopNode(this._currentLexerNode);if(m&&(this._currentLexerNode=m),t){if(!this._suffixExpressionHandler(this._currentLexerNode))return f.VALUE;Gr.set(e,this._currentLexerNode)}return u&&this._currentLexerNode.setDefinedNames(l),this._currentLexerNode}_suffixExpressionHandler(e){var o;const t=e.getChildren();if(!t)return!1;const r=t.length,s=[],i=[];for(let u=0;u<r;u++){const c=t[u];if(c instanceof N)this._suffixExpressionHandler(c),s.push(c);else{const l=c.trim();if(l==="")continue;if(ft.has(l)){if(l===ue.PLUS&&this._deletePlusForPreNode(t[u-1]))continue;if(l!==ue.PLUS&&l!==ue.MINUS&&this._deletePlusForPreNode(t[u-1]))return!1;for(;i.length>0;){const m=(o=i[i.length-1])==null?void 0:o.trim();if(!m||m===z.OPEN_BRACKET)break;const g=rr.get(m),_=rr.get(l);if(!g||!_)break;if(_>=g)s.push(i.pop());else break}i.push(c)}else if(l===z.OPEN_BRACKET)i.push(c);else if(l===z.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(s,i,t,u);else{if(this._checkCloseBracket(t[u-1]))return!1;s.push(c)}}}return this._processSuffixExpressionRemain(s,i,e)}_processSuffixExpressionRemain(e,t,r){const s=e.length,i=e[s-1];for(;t.length>0;){const o=t.pop();if(!(i instanceof N)&&(o===z.OPEN_BRACKET||o===z.CLOSE_BRACKET))return!1;e.push(o)}return r.setChildren(e),!0}_processSuffixExpressionCloseBracket(e,t,r,s){var i;if(this._checkOpenBracket(r[s-1])||this._checkOperator(r[s-1]))return!1;for(;t.length>0;){const o=(i=t[t.length-1])==null?void 0:i.trim();if(!o)break;if(o===z.OPEN_BRACKET){t.pop();break}e.push(t.pop())}}_checkCloseBracket(e){return e===z.CLOSE_BRACKET}_checkOpenBracket(e){return e===z.OPEN_BRACKET}_checkOperator(e){return e==null||e instanceof N?!1:ft.has(e)}_deletePlusForPreNode(e){if(e==null)return!0;if(!(e instanceof N)){const t=e.trim();if(ft.has(t)||t===z.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new N}_resetSegment(){this._segment=""}_openBracket(e=0){this._bracketState.push(e)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const e=this._bracketState;return e[e.length-1]}_changeCurrentBracket(e){const t=this._bracketState;t[t.length-1]=e}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(e){this._upLevel=e,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_getLastChildCurrentLexerNode(){const e=this._currentLexerNode.getChildren();if(e&&e.length>0){const t=e[e.length-1];if(t instanceof N)return t}return!1}_getLastChildCurrent(){const e=this._currentLexerNode.getChildren();return e&&e.length>0?e[e.length-1]:!1}_setParentCurrentLexerNode(){const e=this._currentLexerNode.getParent();return e?(this._currentLexerNode=e,!0):!1}_setAncestorCurrentLexerNode(){var r,s,i,o,u,c;const e=(r=this._currentLexerNode)==null?void 0:r.getParent();let t=!1;if(e&&e.getToken()===Dt){if((s=e==null?void 0:e.getParent())!=null&&s.getParent()){const l=(o=(i=this._currentLexerNode.getParent())==null?void 0:i.getParent())==null?void 0:o.getParent();l&&(this._currentLexerNode=l),t=!0}}else if(e!=null&&e.getParent()){const l=(u=this._currentLexerNode.getParent())==null?void 0:u.getParent();l&&(this._currentLexerNode=l),t=!0}for(let l=0;l<this._upLevel;l++){const m=(c=this._currentLexerNode)==null?void 0:c.getParent();m&&(this._currentLexerNode=m),this._currentLexerNode?t=!0:t=!1}return t}_segmentCount(){return this._segment.trim().length}_pushSegment(e){this._segment+=e}_pushNodeToChildren(e,t=!1){if(e!==""){const r=this._currentLexerNode.getChildren();if(!(e instanceof N)&&this.isColonOpen()){const s=new N;s.setToken(e),s.setParent(this._currentLexerNode),e=s}t?r.unshift(e):r.push(e)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(e,t=!1){this._pushNodeToChildren(e,t),e.setParent(this._currentLexerNode),this._currentLexerNode=e}_newAndPushCurrentLexerNode(e,t,r=!1){const s=new N;s.setToken(e),s.setIndex(t-e.length,t-1),this._setCurrentLexerNode(s,r)}_getTopNode(e){let t=e;for(;t!=null&&t.getParent();)t=t.getParent();return t}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_findPreviousToken(e,t){for(;t>=0;){const r=e[t];if(r!==" ")return r;t--}}_negativeCondition(e){return!!(ft.has(e)||e===z.OPEN_BRACKET||e===z.COMMA||e==="")}_getSequenceArray(e){const t=[];return this._nodeMaker(e,t),t}_resetTemp(){this._currentLexerNode=new N,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1}_checkSimilarErrorToken(e,t,r){if(e!==Ke.POUND)return!0;let s=r[++t];for(;s===" ";)s=r[++t];return!!Ot(s)}_nodeMaker(e,t,r){e.substring(0,1)===ue.EQUALS&&(e=e.substring(1));let s=!1;e.substring(0,1)===ue.MINUS&&(e=`0${e}`,s=!0);const i=e.split(""),o=i.length;let u=0;for(this._resetTemp();u<o;){const c=i[u];if(r===u)return[this._currentLexerNode,c];if(c===z.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,u),this._resetSegment()),this._openBracket(1),this._closeLambda();const l=i[u+1];if(l&&l===z.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._addSequenceArray(t,c,u,s),u++,this._addSequenceArray(t,l,u,s),u++,this._closeBracket();continue}else l&&this._newAndPushCurrentLexerNode(We,u)}else this._pushNodeToChildren(c),this._openBracket(0);else if(c===z.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._pushNodeToChildren(this._segment),this._resetSegment();const l=this._getCurrentBracket();if(l===0)this._pushNodeToChildren(c);else if(l===1){const m=i[u+1];if(m&&m===z.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._newAndPushCurrentLexerNode(Dt,u,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&u!==o-1)return f.VALUE}else return f.VALUE;this._closeBracket()}else if(c===z.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._openBraces();else if(c===z.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(c===z.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(c),this._openSquareBracket();else if(c===z.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(c),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(c);else if(c===z.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const l=i[u+1];l&&l===z.DOUBLE_QUOTATION?u++:this._closeDoubleQuotation()}this._pushSegment(c)}else if(c===z.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const l=i[u+1];l&&l===z.SINGLE_QUOTATION?u++:this._closeSingleQuotation()}this._pushSegment(c)}else if(c===z.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=this._getCurrentBracket();if(l===1||l==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&u!==o-1&&l!=null)return f.VALUE;this._newAndPushCurrentLexerNode(We,u)}else{const m=new N;m.setToken(Ja);const g=new N;g.setToken(We),g.changeToParent(m);const _=this._currentLexerNode.getParent();if(_&&_.getToken()===z.COLON){const C=_.getParent();if(!C)return f.VALUE;_.changeToParent(g),C.setChildren([]),m.changeToParent(C)}else return f.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=m,this._newAndPushCurrentLexerNode(We,u)}}else if(c===z.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=new N;l.setToken(c);const m=new N;m.setToken(We),m.setParent(l);const g=new N;g.setToken(We),g.setParent(l),l.getChildren().push(m,g);let _=l,C=0;if(this._segmentCount()>0){let S,A,P=0;const U=this._segment.trim(),T=U[0],X=U[1];if(T===Ce.MINUS&&(S=new N,S.setToken(Ce.MINUS),P++),(T===Ce.AT||X===Ce.AT)&&(A=new N,A.setToken(Ce.AT),S&&(S.addChildren(A),A.setParent(S)),P++),P>0&&(this._segment=U.slice(P)),C=P,A)if(A.addChildren(l),l.setParent(A),A.getParent()){const pe=A.getParent();pe&&(_=pe)}else _=A;else S&&(_=S,S.addChildren(l),l.setParent(S));const te=new N;te.setToken(this._segment),te.setParent(m),m.getChildren().push(te),this._resetSegment()}else{const S=this._getLastChildCurrentLexerNode();S&&S.changeToParent(m)}this._setCurrentLexerNode(_),this._currentLexerNode=g,this._openColon(C)}else if(Ga.has(c)&&this._checkSimilarErrorToken(c,u,i)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){this._pushNodeToChildren(this._segment);const l=new N;l.setToken(c);const m=this._getLastChildCurrent();m instanceof N?m.changeToParent(l):m!==!1&&(l.getChildren().push(m),this._removeLastChild()),this._pushNodeToChildren(l),l.setParent(this._currentLexerNode),this._resetSegment()}else if(ft.has(c)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){let l=this._segment.trim();if(c===ue.MINUS&&l===""){const m=this._findPreviousToken(i,u-1)||"";if(this._negativeCondition(m)){this._pushSegment(ue.MINUS),this._addSequenceArray(t,c,u,s),u++;continue}}else if(this._segment.length>0&&this._isScientificNotation(i,u,c)){this._pushSegment(c),this._addSequenceArray(t,c,u,s),u++;continue}else this._segment.length>0&&l===""?l=this._segment:(this._pushNodeToChildren(this._segment),l="");if(c===ue.LESS_THAN||c===ue.GREATER_THAN){const m=i[u+1];m&&ft.has(c+m)?(this._pushNodeToChildren(l+c+m),u++):this._pushNodeToChildren(l+c)}else this._pushNodeToChildren(l+c);this._resetSegment()}else this._pushSegment(c);this._addSequenceArray(t,c,u,s),u++}this._pushNodeToChildren(this._segment)}_isScientificNotation(e,t,r){const s=e[t-2];if(s&&Number.isNaN(Number(s))||!(r===ue.MINUS||r===ue.PLUS))return!1;const i=e[t+1];if(i&&Number.isNaN(Number(i)))return!1;const o=e[t-1];return o&&o.toUpperCase()==="E"}_addSequenceArray(e,t,r,s){s&&r===0||e==null||e.push({segment:this._segment,currentString:t,cur:r,currentLexerNode:this._currentLexerNode})}}class Vr extends y.Disposable{constructor(){super(...arguments);h(this,"pattern","")}getPattern(){return this.pattern}setPattern(e){this.pattern=e}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(e){return!1}}var at=(n=>(n.FALSE="FALSE",n.TRUE="TRUE",n))(at||{}),dt=(n=>(n[n.SUCCESS=0]="SUCCESS",n[n.ERROR=1]="ERROR",n))(dt||{}),ht=(n=>(n.ALL="#All",n.DATA="#Data",n.HEADERS="#Headers",n.TOTALS="#Totals",n))(ht||{}),Be=(n=>(n[n.FRONT=0]="FRONT",n[n.BACK=1]="BACK",n))(Be||{});class li{constructor(){h(this,"_cache",new Map);h(this,"_continueBuildingCache",new Map)}set(a,e,t,r,s){if(!this.shouldContinueBuildingCache(a,e,t,s))return;let i=this._cache.get(a);i==null&&(i=new Map,this._cache.set(a,i));let o=i.get(e);o==null&&(o=new Map,i.set(e,o));let u=o.get(t);u==null&&(u=new Map,o.set(t,u));let c=u.get(r);c==null&&(c=new Set,u.set(r,c)),c.add(s)}getCellValuePositions(a,e,t){var r,s;return(s=(r=this._cache.get(a))==null?void 0:r.get(e))==null?void 0:s.get(t)}getCellPositions(a,e,t,r){var s,i,o;return(o=(i=(s=this._cache.get(a))==null?void 0:s.get(e))==null?void 0:i.get(t))==null?void 0:o.get(r)}getCellPosition(a,e,t,r,s,i){const o=this.getCellPositions(a,e,t,r);if(o!=null){for(const u of o)if(u>=s&&u<=i)return u}}setContinueBuildingCache(a,e,t,r,s){let i=this._continueBuildingCache.get(a);i==null&&(i=new Map,this._continueBuildingCache.set(a,i));let o=i.get(e);o==null&&(o=new Map,i.set(e,o));let u=o.get(t);if(u==null){u={startRow:r,endRow:s},o.set(t,u);return}u.startRow=Math.min(u.startRow,r),u.endRow=Math.max(u.endRow,s)}shouldContinueBuildingCache(a,e,t,r){var u,c;const s=(c=(u=this._continueBuildingCache.get(a))==null?void 0:u.get(e))==null?void 0:c.get(t);if(s==null)return!0;const{startRow:i,endRow:o}=s;return!(r>=i&&r<=o)}canUseCache(a,e,t,r,s){var c,l;if(t===-1||r===-1||s===-1)return!1;const i=(l=(c=this._continueBuildingCache.get(a))==null?void 0:c.get(e))==null?void 0:l.get(t);if(i==null)return!1;const{startRow:o,endRow:u}=i;return!(r>u||s<o)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}}const tt=new li;var Xe=(n=>(n[n.MIN=0]="MIN",n[n.MAX=1]="MAX",n))(Xe||{}),Pe=(n=>(n[n.NORMAL=0]="NORMAL",n[n.MIN=1]="MIN",n[n.MAX=2]="MAX",n))(Pe||{});function Hn(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(n,a)=>n.localeCompare(a)}function fi(n){return n.indexOf("*")>-1||n.indexOf("?")>-1}function Kr(n,a){const e=mi(a).replace(/~?[*?]/g,r=>r.startsWith("~")?`\\${r.substring(1)}`:r==="*"?".*":r==="?"?".":r);return new RegExp(`^${e}$`).test(n)}function zn(n){return n.replace(/~?[*?]/g,a=>a.startsWith("~")?a.substring(1):" ")}function hi(n,a,e){let t=!1;switch(e){case O.EQUALS:t=Kr(n,a);break;case O.NOT_EQUAL:t=!Kr(n,a);break;case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:t=Kr(n,a)||n>zn(a);break;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:t=n<zn(a);break}return t}function mi(n){return n.replace(/[.+^${}()|[\]\\]/g,"\\$&")}class qe extends Vr{constructor(a){super(),this._rawValue=a}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(a){}setArrayValue(a){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return d.create(f.VALUE)}max(){return d.create(f.VALUE)}min(){return d.create(f.VALUE)}count(){return d.create(f.VALUE)}countA(){return d.create(f.VALUE)}countBlank(){return d.create(f.VALUE)}getNegative(){return d.create(f.VALUE)}getReciprocal(){return d.create(f.VALUE)}plus(a){return d.create(f.VALUE)}minus(a){return d.create(f.VALUE)}multiply(a){return d.create(f.VALUE)}divided(a){return d.create(f.VALUE)}mod(a){return d.create(f.VALUE)}map(a){return d.create(f.NAME)}mapValue(a){return d.create(f.NAME)}compare(a,e,t=!1){return d.create(f.NAME)}isEqual(a){return this.compare(a,O.EQUALS)}isNotEqual(a){return this.compare(a,O.NOT_EQUAL)}isGreaterThanOrEqual(a){return this.compare(a,O.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(a){return this.compare(a,O.LESS_THAN_OR_EQUAL)}isLessThan(a){return this.compare(a,O.LESS_THAN)}isGreaterThan(a){return this.compare(a,O.GREATER_THAN)}concatenateFront(a){return d.create(f.NAME)}concatenateBack(a){return d.create(f.NAME)}plusBy(a){return d.create(f.VALUE)}minusBy(a){return d.create(f.VALUE)}multiplyBy(a){return d.create(f.VALUE)}dividedBy(a){return d.create(f.VALUE)}modInverse(a){return d.create(f.VALUE)}compareBy(a,e){return d.create(f.NAME)}concatenate(a,e=Be.FRONT){let t=this.getValue().toString();if(typeof a=="string")e===Be.FRONT?t=a+t:t+=a;else if(typeof a=="number")e===Be.FRONT?t=a.toString()+t:t+=a.toString();else if(typeof a=="boolean"){const r=a?"TRUE":"FALSE";e===Be.FRONT?t=r+t:t+=r}return t}pow(a){return d.create(f.VALUE)}powInverse(a){return d.create(f.VALUE)}sqrt(){return d.create(f.VALUE)}cbrt(){return d.create(f.VALUE)}cos(){return d.create(f.VALUE)}acos(){return d.create(f.VALUE)}acosh(){return d.create(f.VALUE)}sin(){return d.create(f.VALUE)}asin(){return d.create(f.VALUE)}asinh(){return d.create(f.VALUE)}tan(){return d.create(f.VALUE)}tanh(){return d.create(f.VALUE)}atan(){return d.create(f.VALUE)}atan2(a){return d.create(f.VALUE)}atan2Inverse(a){return d.create(f.VALUE)}atanh(){return d.create(f.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return d.create(f.VALUE)}log10(){return d.create(f.VALUE)}exp(){return d.create(f.VALUE)}abs(){return d.create(f.VALUE)}round(a){return d.create(f.VALUE)}roundInverse(a){return d.create(f.VALUE)}floor(a){return d.create(f.VALUE)}floorInverse(a){return d.create(f.VALUE)}ceil(a){return d.create(f.VALUE)}ceilInverse(a){return d.create(f.VALUE)}convertToNumberObjectValue(){return d.create(f.VALUE)}convertToBooleanObjectValue(){return d.create(f.VALUE)}}const di=1e3,Wn=new Rt(di);class d extends qe{constructor(a,e=""){super(a),this._errorType=a,this._errorContent=e}static create(a,e=""){const t=`${a}-${e}`,r=Wn.get(t);if(r)return r;const s=new d(a,e);return Wn.set(t,s),s}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(a){return a.getErrorType()===this.getErrorType()}isError(){return!0}}function hn(n){let a;switch(n){case O.EQUALS:a=O.EQUALS;break;case O.GREATER_THAN:a=O.LESS_THAN;break;case O.GREATER_THAN_OR_EQUAL:a=O.LESS_THAN_OR_EQUAL;break;case O.LESS_THAN:a=O.GREATER_THAN;break;case O.LESS_THAN_OR_EQUAL:a=O.GREATER_THAN_OR_EQUAL;break;case O.NOT_EQUAL:a=O.NOT_EQUAL;break}return a}function Gn(n,a){return n+a}function Xn(n,a){return n-a}function bt(n,a){return n*a}function Kn(n,a){return n/a}function Nn(n,a){const e=10**Math.floor(a),t=mn(n,e);return Math.round(bt(n,e)+t)/e}function qn(n,a){const e=10**Math.floor(a),t=mn(n,e);return Math.floor(bt(n,e)+t)/e}function Zn(n,a){const e=10**Math.floor(a),t=mn(n,e);return Math.ceil(bt(n,e)-t)/e}function mn(n,a){return Number.EPSILON*Math.max(1,Math.abs(bt(n,a)))}function Jn(n,a){return n-a*Math.floor(n/a)}function es(n,a){return n**a}function gi(n){return Math.sqrt(n)}function ts(n,a){return n===a}function pi(n,a){return n>a}function Ri(n,a){return n>=a}function _i(n,a){return n<a}function Ei(n,a){return n<=a}function on(n,a=15){return Number.parseFloat(n.toPrecision(a))}function yi(n,a){return Math.abs(n-a)<Number.EPSILON}function Ci(n,a=12){const e=on(n,a);return yi(n,e)?e:on(n)}function Di(n){return n-Math.trunc(n)}var bi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Si(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Os={exports:{}};(function(n,a){(function(e,t){n.exports=t()})(typeof self<"u"?self:bi,function(){return function(){var e={d:function(R,p){for(var E in p)e.o(p,E)&&!e.o(R,E)&&Object.defineProperty(R,E,{enumerable:!0,get:p[E]})},o:function(R,p){return Object.prototype.hasOwnProperty.call(R,p)}},t={};e.d(t,{default:function(){return Ya}});var r={1078:"af",1052:"sq",1118:"am",5121:"ar_DZ",15361:"ar_BH",3073:"ar_EG",2049:"ar_IQ",11265:"ar_JO",13313:"ar_KW",12289:"ar_LB",4097:"ar_LY",6145:"ar_MA",8193:"ar_OM",16385:"ar_QA",1025:"ar_SA",10241:"ar_SY",7169:"ar_TN",14337:"ar_AE",9217:"ar_YE",1067:"hy",1101:"as",2092:"az_AZ",1068:"az_AZ",1069:"eu",1059:"be",2117:"bn",1093:"bn_IN",5146:"bs",1026:"bg",1109:"my",1027:"ca",2052:"zh_CN",3076:"zh_HK",5124:"zh_MO",4100:"zh_SG",1028:"zh_TW",1050:"hr",1029:"cs",1030:"da",1125:"dv",2067:"nl_BE",1043:"nl_NL",1126:"bin",3081:"en_AU",10249:"en_BZ",4105:"en_CA",9225:"en_CB",2057:"en_GB",16393:"en_IN",6153:"en_IE",8201:"en_JM",5129:"en_NZ",13321:"en_PH",7177:"en_ZA",11273:"en_TT",1033:"en_US",12297:"en_ZW",1061:"et",1071:"mk",1080:"fo",1065:"fa",1124:"fil",1035:"fi",2060:"fr_BE",11276:"fr_CM",3084:"fr_CA",9228:"fr_CG",12300:"fr_CI",1036:"fr_FR",5132:"fr_LU",13324:"fr_ML",6156:"fr_MC",14348:"fr_MA",10252:"fr_SN",4108:"fr_CH",7180:"fr",1122:"fy_NL",2108:"gd_IE",1084:"gd",1110:"gl",1079:"ka",3079:"de_AT",1031:"de_DE",5127:"de_LI",4103:"de_LU",2055:"de_CH",1032:"el",1140:"gn",1095:"gu",1279:"en",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig_NG",1057:"id",1040:"it_IT",2064:"it_CH",1041:"ja",1099:"kn",1120:"ks",1087:"kk",1107:"km",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1142:"la",1062:"lv",1063:"lt",2110:"ms_BN",1086:"ms_MY",1100:"ml",1082:"mt",1112:"mni",1153:"mi",1102:"mr",1104:"mn",2128:"mn",1121:"ne",1044:"no_NO",2068:"no_NO",1096:"or",1045:"pl",1046:"pt_BR",2070:"pt_PT",1094:"pa",1047:"rm",2072:"ro_MO",1048:"ro_RO",1049:"ru",2073:"ru_MO",1083:"se",1103:"sa",3098:"sr_SP",2074:"sr_SP",1072:"st",1074:"tn",1113:"sd",1115:"si",1051:"sk",1060:"sl",1143:"so",1070:"sb",11274:"es_AR",16394:"es_BO",13322:"es_CL",9226:"es_CO",5130:"es_CR",7178:"es_DO",12298:"es_EC",17418:"es_SV",4106:"es_GT",18442:"es_HN",2058:"es_MX",19466:"es_NI",6154:"es_PA",15370:"es_PY",10250:"es_PE",20490:"es_PR",1034:"es_ES",14346:"es_UY",8202:"es_VE",1089:"sw",2077:"sv_FI",1053:"sv_SE",1114:"syc",1064:"tg",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1073:"ts",1055:"tr",1090:"tk",1058:"uk",1056:"ur",2115:"uz_UZ",1091:"uz_UZ",1075:"ve",1066:"vi",1106:"cy",1076:"xh",1085:"yi",1077:"zu"};const s=/^([a-z\d]+)(?:[_-]([a-z\d]+))?(?:\.([a-z\d]+))?(?:@([a-z\d]+))?$/i,i={},o={group:" ",decimal:".",positive:"+",negative:"-",percent:"%",exponent:"E",nan:"NaN",infinity:"∞",ampm:["AM","PM"],mmmm6:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],mmm6:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],mmmm:["January","February","March","April","May","June","July","August","September","October","November","December"],mmm:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]};function u(R){const p=s.exec(R);if(!p)throw new SyntaxError("Malformed locale: ".concat(R));return{lang:p[1]+(p[2]?"_"+p[2]:""),language:p[1],territory:p[2]||"",codeset:p[3]||"",modifier:p[4]||""}}function c(R){if(typeof R=="number")return r[65535&R]||null;const p=parseInt(R,16);return isFinite(p)&&r[65535&p]?r[65535&p]||null:s.test(R)?R:null}function l(R){const p=c(R);let E=null;if(p){const L=u(p);E=i[L.lang]||i[L.language]||null}return E}function m(R){return Object.assign({},o,R)}function g(R,p){const E=typeof p=="object"?p:u(p);return i[E.lang]=m(R),E.language===E.lang||i[E.language]||(i[E.language]=m(R)),i[E.lang]}const _=m({group:","});function C(R,p){if(typeof R!="number")return R;if(R<0)return-C(-R,p);if(p){const E=10**(p||0)||1;return C(R*E,0)/E}return Math.round(R)}_.isDefault=!0,g({group:",",ampm:["上午","下午"],mmmm:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["周日","周一","周二","周三","周四","周五","周六"]},"zh_CN"),g({group:",",nan:"非數值",ampm:["上午","下午"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["週日","週一","週二","週三","週四","週五","週六"]},"zh_TW"),g({group:",",ampm:["午前","午後"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],ddd:["日","月","火","水","木","金","土"]},"ja"),g({group:",",ampm:["오전","오후"],mmmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],mmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dddd:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],ddd:["일","월","화","수","목","금","토"]},"ko"),g({group:",",ampm:["ก่อนเที่ยง","หลังเที่ยง"],mmmm:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],mmm:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dddd:["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],ddd:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."]},"th"),g({decimal:",",ampm:["dop.","odp."],mmmm:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],mmm:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],dddd:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],ddd:["ne","po","út","st","čt","pá","so"]},"cs"),g({group:".",decimal:",",mmmm:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],mmm:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"da"),g({group:".",decimal:",",ampm:["a.m.","p.m."],mmmm:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],mmm:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],ddd:["zo","ma","di","wo","do","vr","za"]},"nl"),g({group:","},"en"),g({decimal:",",nan:"epäluku",ampm:["ap.","ip."],mmmm:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],mmm:["tammik.","helmik.","maalisk.","huhtik.","toukok.","kesäk.","heinäk.","elok.","syysk.","lokak.","marrask.","jouluk."],dddd:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],ddd:["su","ma","ti","ke","to","pe","la"]},"fi"),g({group:" ",decimal:",",mmmm:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],mmm:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dddd:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],ddd:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."]},"fr"),g({group:".",decimal:",",mmmm:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],mmm:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sept.","Okt.","Nov.","Dez."],dddd:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],ddd:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."]},"de"),g({group:".",decimal:",",ampm:["π.μ.","μ.μ."],mmmm:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],mmm:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dddd:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],ddd:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"]},"el"),g({decimal:",",ampm:["de.","du."],mmmm:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],mmm:["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],dddd:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],ddd:["V","H","K","Sze","Cs","P","Szo"]},"hu"),g({group:".",decimal:",",ampm:["f.h.","e.h."],mmmm:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],mmm:["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des."],dddd:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],ddd:["sun.","mán.","þri.","mið.","fim.","fös.","lau."]},"is"),g({group:".",decimal:",",mmmm:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],mmm:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],dddd:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],ddd:["Min","Sen","Sel","Rab","Kam","Jum","Sab"]},"id"),g({group:".",decimal:",",mmmm:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],mmm:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],dddd:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],ddd:["dom","lun","mar","mer","gio","ven","sab"]},"it"),g({decimal:",",ampm:["a.m.","p.m."],mmmm:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],mmm:["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"nb"),g({decimal:",",mmmm:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],mmm:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],dddd:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],ddd:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."]},"pl"),g({group:".",decimal:",",mmmm:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],mmm:["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],dddd:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],ddd:["dom.","seg.","ter.","qua.","qui.","sex.","sáb."]},"pt"),g({decimal:",",nan:"не число",mmmm:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],mmm:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],dddd:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],ddd:["вс","пн","вт","ср","чт","пт","сб"]},"ru"),g({decimal:",",mmmm:["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"],mmm:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],dddd:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],ddd:["ne","po","ut","st","št","pi","so"]},"sk"),g({group:".",decimal:",",ampm:["a. m.","p. m."],mmmm:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],mmm:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],dddd:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],ddd:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."]},"es"),g({decimal:",",ampm:["fm","em"],mmmm:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],mmm:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],dddd:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],ddd:["sön","mån","tis","ons","tors","fre","lör"]},"sv"),g({group:".",decimal:",",ampm:["ÖÖ","ÖS"],mmmm:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],mmm:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dddd:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],ddd:["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"]},"tr");function S(R,p,E){const L=R<0?-1:1,w=10**(p||2),B=10**(E||2);let v,x,b=Math.abs(R),I=0,Q=0,F=0,H=1;if((R=b)%1==0)x=[R*L,1];else if(R<1e-19)x=[L,1e19];else if(R>1e19)x=[1e19*L,1];else{do if(b=1/(b-Math.floor(b)),v=H,H=H*Math.floor(b)+I,I=v,Q=F,F=Math.floor(R*H+.5),F>=w||H>=B)return[L*Q,I];while(Math.abs(R-F/H)>=1e-10&&b!==Math.floor(b));x=[L*F,H]}return x}const A={overflow:"######",dateErrorThrows:!1,dateErrorNumber:!0,dateSpanLarge:!0,leap1900:!0,nbsp:!0,throws:!0,invalid:"######",locale:"",ignoreTimezone:!1},P=Object.assign({},A);function U(R){if(R===null&&(R=A),R){for(const p in R)if(p in A){const E=R[p];P[p]=E==null?A[p]:E}}return{...P}}const T={"#":"",0:"0","?":" "},X={"@":"text","-":"minus","+":"plus"},te=["#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#800","#080","#008","#880","#808","#088","#CCC","#888","#99F","#936","#FFC","#CFF","#606","#F88","#06C","#CCF","#008","#F0F","#FF0","#0FF","#808","#800","#088","#00F","#0CF","#CFF","#CFC","#FF9","#9CF","#F9C","#C9F","#FC9","#36F","#3CC","#9C0","#FC0"],pe=["¤","$","£","¥","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],ye=new RegExp("["+pe.join("")+"]");function de(R,p,E){return p[E+"_max"]=R.length,p[E+"_min"]=R.replace(/#/g,"").length,p}const se={};function Z(R){if(!(R in se)){const p=[],E=R.replace(/^[#,]+/,"").replace(/[1-9]\d*/g,L=>"?".repeat(L.length));for(let L=0;L<E.length;L++){const w=E.charAt(L);p[L]=w in T?T[w]:w}se[R]=p.join("")}return se[R]}function K(R,p){typeof R=="string"&&(R={type:"string",value:R=R.replace(/ /g,T["?"])}),p.push(R)}function fe(R){const p=[],E={scale:1,percent:!1,text:!1,date:0,date_eval:!1,date_system:1,sec_decimals:0,general:!1,clock:24,int_pattern:[],frac_pattern:[],man_pattern:[],den_pattern:[],num_pattern:[],tokens:p};let L=R+"",w="int",B=!1,v=null;const x=[];let b,I,Q=!1;for(;L&&!B;){if(b=/^General/i.exec(L))E.general=!0,K({type:"general"},p);else if(w==="int"&&(b=/^[#?0]+(?:,[#?0]+)*/.exec(L))||w==="den"&&(b=/^[#?\d]+/.exec(L))||(b=/^[#?0]+/.exec(L)))E[w+"_pattern"].push(b[0]),v={type:w,num:b[0]},K(v,p);else if((b=/^\//.exec(L))&&E[w+"_pattern"].length){if(!v)throw new SyntaxError("Missing a numerator in pattern ".concat(R));E.fractions=!0,E.num_pattern.push(E[w+"_pattern"].pop()),v.type="num",w="den",K({type:"div"},p)}else if(b=/^,+/.exec(L)){const M=L.charAt(1)in T;I.slice(-1)in T&&(b[0].length>1||!M)?E.scale=.001**b[0].length:E.dec_fractions||K(b[0],p)}else{if(b=/^;/.exec(L)){B=!0;break}if(b=/^[@+-]/.exec(L))b[0]==="@"&&(E.text=!0),K({type:X[b[0]]},p);else if(b=/^(?:\[(h+|m+|s+)\])/i.exec(L)){const M=b[1].toLowerCase(),Y=M[0],G={type:"",size:0,date:1,raw:b[0],pad:M.length};Y==="h"?(G.size=16,G.type="hour-elap"):Y==="m"?(G.size=32,G.type="min-elap"):(G.size=64,G.type="sec-elap"),E.date=E.date|G.size,x.push(G),K(G,p)}else if(b=/^(?:B2)/i.exec(L))Q||(E.date_system=6);else if(b=/^(?:B1)/i.exec(L))Q||(E.date_system=1);else if(b=/^(?:([hHmMsSyYbBdDegG])\1*)/.exec(L)){const M={type:"",size:0,date:1,raw:b[0]},Y=b[0].toLowerCase(),G=Y[0];if(Y==="y"||Y==="yy")M.size=2,M.type="year-short";else if(G==="y"||G==="e")M.size=2,M.type="year";else if(Y==="b"||Y==="bb")M.size=2,M.type="b-year-short";else if(G==="b")M.size=2,M.type="b-year";else if(Y==="d"||Y==="dd")M.size=8,M.type="day",M.pad=/dd/.test(Y);else if(Y==="ddd")M.size=8,M.type="weekday-short";else if(G==="d")M.size=8,M.type="weekday";else if(G==="h")M.size=16,M.type="hour",M.pad=/hh/i.test(Y);else if(G==="m"){Y.length===3?(M.size=4,M.type="monthname-short"):Y.length===5?(M.size=4,M.type="monthname-single"):Y.length>=4&&(M.size=4,M.type="monthname");const re=x[x.length-1];!M.type&&re&&!re.used&&80&re.size&&(re.used=!0,M.size=32,M.type="min",M.pad=/mm/.test(Y)),M.type||(M.size=4,M.type="month",M.pad=/mm/.test(Y),M.indeterminate=!0)}else if(G==="s"){M.size=64,M.type="sec",M.pad=/ss/.test(Y);const re=x[x.length-1];re&&32&re.size?M.used=!0:re&&re.indeterminate&&(delete re.indeterminate,re.size=32,re.type="min",M.used=!0)}E.date=E.date|M.size,E.date_eval=!0,x.push(M),K(M,p)}else if(b=/^(?:AM\/PM|am\/pm|A\/P)/.exec(L))E.clock=12,E.date=16|E.date,E.date_eval=!0,K({type:"am",short:b[0]==="A/P"},p);else if(E.date&&(b=/^\.0{1,3}/i.exec(L))){const M=b[0].length-1,Y=[64,128,256,512][M];E.date=E.date|Y,E.date_eval=!0,E.sec_decimals=Math.max(E.sec_decimals,M),K({type:"subsec",size:Y,decimals:M,date:1,raw:b[0]},p)}else if((b=/^\\(.)/.exec(L))||(b=/^"([^"]*?)"/.exec(L)))K(b[1],p);else if(b=/^\[(<[=>]?|>=?|=)\s*(-?[.\d]+)\]/.exec(L))E.condition=[b[1],parseFloat(b[2],10)];else if(b=/^\[\$([^\]]+)\]/.exec(L)){const M=b[1].split("-"),Y=M.length<2?"":M[M.length-1],G=M[0];G&&K(G,p);const re=c(Y);re&&(E.locale=re);const oe=parseInt(Y,16);isFinite(oe)&&16711680&oe&&(oe>>16&255)===6&&(E.date_system=6),Q=!0}else if(b=/^\[(black|blue|cyan|green|magenta|red|white|yellow|color\s*(\d+))\]/i.exec(L))E.color=b[2]?te[parseInt(b[2],10)]||"#000":b[1].toLowerCase();else if(!(b=/^\[(DBNum1|ENG|HIJ|JPN|TWN)\]/i.exec(L))){if(b=/^%/.exec(L))E.scale=100,E.percent=!0,K("%",p);else if(b=/^_(\\.|.)/.exec(L))K(" ",p);else if(b=/^\./.exec(L))K({type:"point",value:b[0]},p),E.dec_fractions=!0,w="frac";else if(b=/^[Ee]([+-]?|(?=[0#?]))/.exec(L))E.exponential=!0,E.exp_plus=b[1]==="+",w="man",K({type:"exp",plus:b[1]==="+"},p);else if(!(b=/^\*(\\.|.)/.exec(L))){if(b=/^[BENn[]/.exec(L))throw new SyntaxError("Unexpected char ".concat(L.charAt(0)," in pattern ").concat(R));L[0]==="("&&(E.parens=!0),b=[L[0]],K(b[0],p)}}}I=b[0],L=L.slice(b?b[0].length:1)}if(E.pattern=R.slice(0,R.length-L.length),/^((?:\[[^\]]+\])+)(;|$)/.test(E.pattern)&&!/^\[(?:h+|m+|s+)\]/.test(E.pattern)&&K({type:"text"},p),E.fractions&&E.dec_fractions||E.fractions&&E.exponential)throw new SyntaxError("Invalid pattern: ".concat(E.pattern));const F=E.int_pattern.join("");if(E.grouping=F.indexOf(",")>=0,E.grouping){const M=F.split(","),Y=M.length;Y===2?(E.group_pri=M[1].length,E.group_sec=E.group_pri):Y>2&&(E.group_pri=M[Y-1].length,E.group_sec=M[Y-2].length)}else E.group_pri=0,E.group_sec=0;de(F.replace(/[,]/g,""),E,"int"),de(E.frac_pattern.join(""),E,"frac"),de(E.man_pattern.join(""),E,"man");let H=E.num_pattern.join(""),J=E.den_pattern.join("");const W=/\?/.test(J)||/\?/.test(H);return J=J.replace(/\d/g,W?"?":"#"),W&&(J=J.replace(/#$/g,"?")),de(H,E,"num"),de(J,E,"den"),W&&(H=H.replace(/#$/g,"?")),E.int_padding=Z(E.int_pattern.join("")),E.man_padding=Z(E.man_pattern.join("")),E.num_padding=Z(H),E.den_padding=Z(J),E.den_pattern.length&&(E.denominator=parseInt(E.den_pattern.join("").replace(/\D/g,""),10)),E.integer=!!E.int_pattern.join("").length,E.fractions&&p.forEach((M,Y)=>{const G=p[Y+1];M.type==="string"&&G&&(G.type==="num"?M.rule="num+int":G.type==="div"?M.rule="num":G.type==="den"&&(M.rule="den"))}),E}const ot=R=>{const p=R.condition;p&&p[1]<0&&(p[0]==="<"||p[0]==="<="||p[0]==="=")||R.tokens.unshift({type:"minus",volatile:!0})};function Vn(R){const p=[];let E,L=!1,w=null,B=R,v=0,x=!1,b=0,I=0;do{if(x=fe(B),(x.date||x.general)&&(x.int_pattern.length||x.frac_pattern.length||x.scale!==1||x.text))throw new Error("Illegal format");if(x.condition&&(I++,L=!0),x.text){if(w)throw new Error("Unexpected partition");w=x}x.locale&&(E=c(x.locale)),p.push(x),v=B.charAt(x.pattern.length)===";"?1:0,B=B.slice(x.pattern.length+v),b++}while(v&&b<4&&I<3);if(v)throw new Error("Unexpected partition");if(I>2)throw new Error("Unexpected condition");const Q=p[3];if(Q&&(Q.int_pattern.length||Q.frac_pattern.length||Q.date))throw new Error("Unexpected partition");if(L){const F=p.length;if(F===1&&(p[1]=fe("General"),p[1].generated=!0),F<3){const H=p[0],J=p[1];if(ot(H),J.condition)ot(J);else{const W=H.condition;(W[0]==="="||W[1]>=0&&(W[0]===">"||W[0]===">="))&&J.tokens.unshift({type:"minus",volatile:!0})}}else p.forEach(ot)}else{if(p.length<4&&w)for(let F=0,H=p.length;F<H;F++)p[F]===w&&p.splice(F,1);if(p.length<1&&w&&(p[0]=fe("General"),p[0].generated=!0),p.length<2){const F=fe(p[0].pattern);F.tokens.unshift({type:"minus",volatile:!0}),F.generated=!0,p.push(F)}if(p.length<3){const F=fe(p[0].pattern);F.generated=!0,p.push(F)}if(p.length<4)if(w)p.push(w);else{const F=fe("@");F.generated=!0,p.push(F)}p[0].condition=[">",0],p[1].condition=["<",0],p[2].condition=null}return{pattern:R,partitions:p,locale:E}}const xe=Math.floor;function wn(R){if((!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&R>=0){if(R===0)return[1900,1,0];if(R===60)return[1900,2,29];if(R<60)return[1900,R<32?1:2,(R-1)%31+1]}let E=R+68569+2415019;const L=xe(4*E/146097);E-=xe((146097*L+3)/4);const w=xe(4e3*(E+1)/1461001);E=E-xe(1461*w/4)+31;const B=xe(80*E/2447),v=E-xe(2447*B/80);E=xe(B/11);const x=B+2-12*E;return[0|100*(L-49)+w+E,0|x,0|v]}function Va(R){return wn(R+1462)}function wa(R){if(R===60)throw new Error("#VALUE!");if(R<=1)return[1317,8,29];if(R<60)return[1317,R<32?9:10,1+(R-2)%30];const p=10631/30,E=.1335;let L=R+466935;const w=xe(L/10631);L-=10631*w;const B=xe((L-E)/p);L-=xe(B*p+E);const v=xe((L+28.5001)/29.5);return v===13?[30*w+B,12,30]:[30*w+B,v,L-xe(29.5001*v-29)]}function vn(R){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,E=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const L=xe(R);return p===6?wa(L):p===-1?Va(L):wn(L,E)}const Xt=Math.floor,zr=86400;function Kt(R,p){let E=null;if(Array.isArray(R)){const[L,w,B,v,x,b]=R;E=Date.UTC(L,w==null?0:w-1,B!=null?B:1,v||0,x||0,b||0)}else if(R instanceof Date&&(E=1*R,!p||!p.ignoreTimezone)){const L=new Date;L.setUTCFullYear(R.getFullYear(),R.getMonth(),R.getDate()),L.setUTCHours(R.getHours(),R.getMinutes(),R.getSeconds(),R.getMilliseconds()),E=1*L}if(E!=null&&isFinite(E)){const L=E/864e5;return L-(L<=-25509?-25568:-25569)}return R}function Un(R,p){let E=0|R;const L=zr*(R-E);let w=Xt(L);L-w>.9999&&(w+=1,w===zr&&(w=0,E+=1));const B=w<0?zr+w:w,[v,x,b]=vn(R,0,p&&p.leap1900),I=Xt(B/60/60)%60,Q=Xt(B/60)%60,F=Xt(B)%60;if(p&&p.nativeDate){const H=new Date(0);return H.setUTCFullYear(v,x-1,b),H.setUTCHours(I,Q,F),H}return[v,x,b,I,Q,F]}function va(R){return!!(R[0]&&R[0].percent||R[1]&&R[1].percent||R[2]&&R[2].percent||R[3]&&R[3].percent)}function Ua(R){return!!(R[0]&&R[0].date||R[1]&&R[1].date||R[2]&&R[2].date||R[3]&&R[3].date)}function Oa(R){const[p,E,L,w]=R;return!(p&&!p.generated||E&&!E.generated||L&&!L.generated||!w||!w.text||w.generated)}const Fa={text:15,datetime:10.8,date:10.8,time:10.8,percent:10.6,currency:10.4,grouped:10.2,scientific:6,number:4,fraction:2,general:0,error:0},Ma=[["DMY",1],["DM",2],["MY",3],["MDY",4],["MD",5],["hmsa",6],["hma",7],["hms",8],["hm",9]],Ba={total:1,sign:0,period:0,int:1,frac:0},Vt=(R,p)=>R.replace(/\./,p.decimal);function On(R,p,E,L){const w=0|E;if(typeof E=="string")R.push(E);else if(E===w)R.push(Math.abs(w));else{const B=Math.abs(E);let v=B?Math.floor(Math.log10(B)):0,x=v<0?B*10**-v:B/10**v;x===10&&(x=1,v++);const b=function(Q){let F=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const H=Math.abs(Q);if(!H)return Ba;const J=F&&Q<0?1:0,W=Math.floor(H),M=Math.floor(Math.log10(H)+1);let Y=0,G=0;if(W!==H){Y=1;const re=String(C(M<0?H*10**-M:H/10**M,15));let oe=re.length,ie=!0,De=0;for(;De<=re.length;){if(re[De]==="."){oe--;break}re[De]==="0"&&ie?oe--:ie=!1,De++}G=oe-M,G<0&&(G=0,Y=0)}return{total:J+Math.max(M,1)+Y+G,digits:Math.max(M,0)+G,sign:J,period:Y,int:Math.max(M,1),frac:G}}(B),I=()=>{const Q=Math.abs(v);let F;F=x===1?x:C(x,5),R.push(Vt(F+"",L),L.exponent,v<0?L.negative:L.positive,Q<10?"0":"",Q)};if(v>=-4&&v<=-1){const Q=B.toPrecision(10+v).replace(/\.?0+$/,"");R.push(Vt(Q,L))}else if(v===10){const Q=B.toFixed(10).slice(0,12).replace(/\.$/,"");R.push(Vt(Q,L))}else if(Math.abs(v)<=9)if(b.total<=11){const Q=C(B,9).toFixed(b.frac);R.push(Vt(Q,L))}else v===9?R.push(Math.floor(B)):v>=0&&v<9?R.push(C(B,9-v)):I();else b.total>=12?I():Math.floor(B)===B?R.push(Math.floor(B)):R.push(Vt(C(B,9).toFixed(b.frac),L))}return R}const wt=86400,Fn={int:"integer",frac:"fraction",man:"mantissa",num:"numerator",den:"denominator"},Mn=function(R){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const E=Math.floor(Math.log10(R));return p>1?Math.floor(E/p)*p:E};function Bn(R,p,E,L){let w="",B="",v="",x="",b="",I=0,Q=0|R,F=0,H=0,J=1,W=0,M=0,Y=0,G=0,re=0,oe=0;const ie=L||_;if(!p.text&&isFinite(p.scale)&&p.scale!==1&&(R=function(ne){if(ne===0)return ne;const le=Math.ceil(Math.log10(ne<0?-ne:ne)),k=10**(16-Math.floor(le));return Math.round(ne*k)/k}(R*p.scale)),p.exponential){let ne=Math.abs(R);if(ne){const le=10**-Mn(ne,p.int_max),k=C(ne*le,p.frac_max)/le;I=Mn(k,p.int_max)}ne/=10**I,R=R<0?-ne:ne,w+=Math.abs(I)}if(p.integer){const ne=Math.abs(C(R,p.fractions?1:p.frac_max));b+=ne<1?"":Math.floor(ne)}if(p.grouping){let ne="",le=b.length;for(le>p.group_pri&&(le-=p.group_pri,ne=ie.group+b.slice(le,le+p.group_pri)+ne);le>p.group_sec;)le-=p.group_sec,ne=ie.group+b.slice(le,le+p.group_sec)+ne;b=le?b.slice(0,le)+ne:ne}p.dec_fractions&&(x=String(C(R,p.frac_max)).split(".")[1]||"");let De=!1;if(p.fractions){const ne=Math.abs(p.integer?R%1:R);if(ne)if(De=!0,isFinite(p.denominator))v+=p.denominator,B+=C(ne*p.denominator),B==="0"&&(B="",v="",De=!1,b||(b="0"));else{const le=S(ne,p.integer?p.num_max:1/0,p.den_max);B+=le[0],v+=le[1],p.integer&&B==="0"&&(b||(b="0"),B="",v="",De=!1)}}if(p.date){Q=Math.trunc(R);const ne=wt*(R-Q);if(F=Math.floor(ne),oe=ne-F,Math.abs(oe)<1e-6?oe=0:oe>.9999&&(oe=0,F+=1,F===wt&&(F=0,Q+=1)),oe){const le=512&p.date||256&p.date||128&p.date;(le===512&&oe>.9995||le===256&&oe>.995||le===128&&oe>.95||!le&&oe>=.5)&&(F++,oe=0)}if(Q||p.date_system){const le=vn(R,p.date_system,E.leap1900);H=le[0],J=le[1],W=le[2]}if(F){const le=F<0?wt+F:F;re=Math.floor(le)%60,G=Math.floor(le/60)%60,Y=Math.floor(le/60/60)%60}if(M=(6+Q)%7,p.date_eval&&(ze=R,ut=Q+F/wt,E.dateSpanLarge?ze<-694324||ut>=35830291:ze<0||ut>=2958466)){if(E.dateErrorThrows)throw new Error("Date out of bounds");return E.dateErrorNumber?On(R<0?[ie.negative]:[],0,R,ie).join(""):E.overflow}}var ze,ut;if(p.int_padding&&(b=p.int_padding.length===1?b||p.int_padding:p.int_padding.substring(0,p.int_padding.length-b.length)+b),p.num_padding&&(B=p.num_padding.length===1?B||p.num_padding:p.num_padding.substring(0,p.num_padding.length-B.length)+B),p.den_padding&&(v=p.den_padding.length===1?v||p.den_padding:v+p.den_padding.slice(v.length)),p.man_padding){const ne=p.exp_plus?"+":"";w=p.man_padding.length===1?(I<0?"-":ne)+(w||p.man_padding):(I<0?"-":ne)+p.man_padding.slice(0,p.man_padding.length-w.length)+w}const j=[];let ve=0;const Je={int:0,frac:0,man:0,num:0,den:0};for(let ne=0,le=p.tokens.length;ne<le;ne++){const k=p.tokens[ne],Nt=k.num?k.num.length:0;if(k.type==="string")k.rule?k.rule==="num"?De?j.push(k.value):(p.num_min>0||p.den_min>0)&&j.push(k.value.replace(/./g,T["?"])):k.rule==="num+int"?De&&b?j.push(k.value):p.den_min>0&&(b||p.num_min)&&j.push(k.value.replace(/./g,T["?"])):k.rule==="den"&&(De?j.push(k.value):(p.den_min>0||p.den_min>0)&&j.push(k.value.replace(/./g,T["?"]))):j.push(k.value);else if(k.type==="error")j.push(E.invalid);else if(k.type==="point")j.push(p.date?k.value:ie.decimal);else if(k.type==="general")On(j,0,R,ie);else if(k.type==="exp")j.push(ie.exponent);else if(k.type==="minus")k.volatile&&p.date||k.volatile&&(R>=0||typeof R!="number")||(k.volatile&&!p.fractions&&(p.integer||p.dec_fractions)?(R<0&&b&&b!=="0"||x)&&j.push(ie.negative):j.push(ie.negative));else if(k.type==="plus")j.push(ie.positive);else if(k.type==="text")j.push(R);else if(k.type==="div")De?j.push("/"):p.num_min>0||p.den_min>0?j.push(T["?"]):j.push(T["#"]);else if(k.type==="int")if(p.int_pattern.length===1)j.push(b);else{const Re=ve?p.int_pattern.join("").length-Je.int:1/0,_t=ve===p.int_pattern.length-1?0:p.int_pattern.join("").length-(Je.int+k.num.length);j.push(b.substring(b.length-Re,b.length-_t)),ve++,Je.int+=k.num.length}else if(k.type==="frac"){const Re=Je.frac;for(let _t=0;_t<Nt;_t++)j.push(x[_t+Re]||T[k.num[_t]]);Je.frac+=Nt}else if(k.type in Fn)p[k.type+"_pattern"].length===1?(k.type==="int"&&j.push(b),k.type==="frac"&&j.push(x),k.type==="man"&&j.push(w),k.type==="num"&&j.push(B),k.type==="den"&&j.push(v)):(j.push(Fn[k.type].slice(Je[k.type],Je[k.type]+Nt)),Je[k.type]+=Nt);else if(k.type==="year")H<0&&j.push(ie.negative),j.push(String(Math.abs(H)).padStart(4,"0"));else if(k.type==="year-short"){const Re=H%100;j.push(Re<10?"0":"",Re)}else if(k.type==="month")j.push(k.pad&&J<10?"0":"",J);else if(k.type==="monthname-single")p.date_system===6?j.push(ie.mmmm6[J-1].charAt(0)):j.push(ie.mmmm[J-1].charAt(0));else if(k.type==="monthname-short")p.date_system===6?j.push(ie.mmm6[J-1]):j.push(ie.mmm[J-1]);else if(k.type==="monthname")p.date_system===6?j.push(ie.mmmm6[J-1]):j.push(ie.mmmm[J-1]);else if(k.type==="weekday-short")j.push(ie.ddd[M]);else if(k.type==="weekday")j.push(ie.dddd[M]);else if(k.type==="day")j.push(k.pad&&W<10?"0":"",W);else if(k.type==="hour"){const Re=Y%p.clock||(p.clock<24?p.clock:0);j.push(k.pad&&Re<10?"0":"",Re)}else if(k.type==="min")j.push(k.pad&&G<10?"0":"",G);else if(k.type==="sec")j.push(k.pad&&re<10?"0":"",re);else if(k.type==="subsec"){j.push(ie.decimal);const Re=oe.toFixed(p.sec_decimals);j.push(Re.slice(2,2+k.decimals))}else if(k.type==="am"){const Re=Y<12?0:1;k.short&&!L?j.push("AP"[Re]):j.push(ie.ampm[Re])}else if(k.type==="hour-elap"){R<0&&j.push(ie.negative);const Re=24*Q+Math.floor(Math.abs(F)/3600);j.push(String(Math.abs(Re)).padStart(k.pad,"0"))}else if(k.type==="min-elap"){R<0&&j.push(ie.negative);const Re=1440*Q+Math.floor(Math.abs(F)/60);j.push(String(Math.abs(Re)).padStart(k.pad,"0"))}else if(k.type==="sec-elap"){R<0&&j.push(ie.negative);const Re=Q*wt+Math.abs(F);j.push(String(Math.abs(Re)).padStart(k.pad,"0"))}else if(k.type==="b-year")j.push(H+543);else if(k.type==="b-year-short"){const Re=(H+543)%100;j.push(Re<10?"0":"",Re)}}return E.nbsp?j.join(""):j.join("").replace(/\u00a0/g," ")}function Tn(R,p){for(let E=0;E<3;E++){const L=p[E];if(L){let w;if(L.condition){const B=L.condition[0],v=L.condition[1];B==="="?w=R===v:B===">"?w=R>v:B==="<"?w=R<v:B===">="?w=R>=v:B==="<="?w=R<=v:B==="<>"&&(w=R!==v)}else w=!0;if(w)return L}}}const kn=fe("@"),In="black",Oe={};function Fe(R,p){if(R){const E=R[0];p[E]=p[E]||{},Fe(R.slice(1),p[E])}else p.$=!0}["d-F-y","d-F-Y","d-M-y","d-M-Y","F-d-y","F-d-Y","F-j-y","F-j-Y","j-F-y","j-F-Y","j-M-y","j-M-Y","M-d-y","M-d-Y","M-j-y","M-j-Y","m-d-y","m-d-Y","m-j-y","m-j-Y","n-d-y","n-d-Y","n-j-y","n-j-Y","y-F-d","y-F-j","y-M-d","y-M-j","Y-F-d","Y-F-j","Y-M-d","Y-m-d","Y-M-j","Y-m-j","Y-n-d","Y-n-j","j-F","j-M","d-F","d-M","n-d","n-j","n-Y","m-d","m-j","m-Y","M-Y","M-y","F-y","F-Y","Y-M","Y-n","Y-m","Y-F","Y-M"].forEach(R=>{Fe(R,Oe),Fe(R+" x",Oe),Fe(R+" l",Oe),Fe(R+" l x",Oe),Fe("l "+R,Oe),Fe("l "+R+" x",Oe),Fe(R+" D",Oe),Fe(R+" D x",Oe),Fe("D "+R,Oe),Fe("D "+R+" x",Oe)});const Ta={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},ka={january:1,february:2,march:3,april:4,june:6,july:7,august:8,september:9,october:10,november:11,december:12},Ia={sunday:"l",monday:"l",tuesday:"l",wednesday:"l",thursday:"l",friday:"l",saturday:"l",sun:"D",mon:"D",tue:"D",wed:"D",thu:"D",fri:"D",sat:"D"},$a=new Date().getUTCFullYear();function $n(R){const p=new RegExp("^([\\s+%"+pe.join("")+"(-]*)(((?:(?:\\d[\\d,]*)(?:\\.\\d*)?|(?:\\.\\d+)))([eE][+-]?\\d+)?)([\\s%"+pe.join("")+")]*)$").exec(R);if(p){const[,E,L,w,B,v]=p;let x=1,b="",I=!1,Q=!1,F=!1,H=!1,J=!1,W=null,M=!1,Y=parseFloat(L.replace(/,/g,""));if(!isFinite(Y))return null;for(let re=0;re<E.length;re++){const oe=E[re];if(oe==="-"){if(I||Q)return null;I=!0,x=-1}else if(ye.test(oe)){if(J)return null;J=!0,W=oe}else if(oe==="("){if(Q||I)return null;Q=!0,x=-1}else if(oe==="%"){if(H)return null;H=!0}}for(let re=0;re<v.length;re++){const oe=v[re];if(ye.test(oe)){if(J)return null;J=!0,W=oe,M=!0}else if(oe===")"){if(F||!Q)return null;F=!0}else if(oe==="%"){if(H)return null;H=!0}}if(B){if(H||J)return null;b="0.00E+00"}else if(H){if(J)return null;b=w.includes(".")?"0.00%":"0%",Y*=.01}else if(J){const re=w.includes(".")?"#,##0.00":"#,##0";b=M?re+W:W+re}else w.includes(",")&&(b=w.includes(".")?"#,##0.00":"#,##0");const G={v:Y*x};return b&&(G.z=b),G}}const ke=(R,p,E)=>{const L=E.path||"",w=Object.keys(p);for(let B=0;B<w.length;B++){let v;const x=w[B];if(p[x]){if(x==="$"||x==="€")R||(v=E);else if(x==="-"){const b=/^(\s*([./-]|,\s)\s*|\s+)/.exec(R);if(b){const I=b[1]==="-"||b[1]==="/"||b[1]==="."?b[1]:" ";if(!E.sep||E.sep===I){const Q=b[0].replace(/\s+/g," ");v=ke(R.slice(b[0].length),p[x],{...E,sep:I,path:L+Q})}}}else if(x===" "){const b=/^[,.]?\s+/.exec(R);if(b){const I=b[0].replace(/\s+/g," ");v=ke(R.slice(b[0].length),p[x],{...E,path:L+I})}}else if(x==="j"||x==="d"){const b=/^(0?[1-9]|1\d|2\d|3[01])\b/.exec(R);b&&(v=ke(R.slice(b[0].length),p[x],{...E,day:b[0],path:L+x}))}else if(x==="n"||x==="m"){const b=/^(0?[1-9]|1[012])\b/.exec(R);b&&(v=ke(R.slice(b[0].length),p[x],{...E,month:+b[0],_mon:b[0],path:L+x}))}else if(x==="F"||x==="M"){const b=/^([a-z]{3,9})\b/i.exec(R),I=b&&(x==="F"?ka:Ta)[b[0].toLowerCase()];I&&(v=ke(R.slice(b[0].length),p[x],{...E,month:I,_mon:b[0],path:L+x}))}else if(x==="l"||x==="D"){const b=/^([a-z]{3,9})\b/i.exec(R);(b&&Ia[b[0].toLowerCase()])===x&&(v=ke(R.slice(b[0].length),p[x],{...E,path:L+x}))}else if(x==="y"){const b=/^\d\d\b/.exec(R);if(b){const I=+b[0]>=30?+b[0]+1900:+b[0]+2e3;v=ke(R.slice(b[0].length),p[x],{...E,year:I,path:L+x})}}else if(x==="Y"){const b=/^\d\d\d\d\b/.exec(R);b&&(v=ke(R.slice(b[0].length),p[x],{...E,year:+b[0],path:L+x}))}else{if(x!=="x")throw new Error('Unknown date token "'.concat(x,'"'));{const b=Wr(R);b&&(v=ke("",p[x],{...E,time:b.v,tf:b.z,path:L+x}))}}if(v)return v}}};function jn(R,p){const E=ke(R.trim(),Oe,{path:""});if(E){var L;if(E.sep==="."&&E.path.length===3)return null;const w=+((L=E.year)!==null&&L!==void 0?L:$a);if(E.day||(E.day=1),!function(x,b,I){if(I<1||b<1||b>12)return!1;if(b===2){if(I>(x%4==0&&x%100!=0||x%400==0||x===1900?29:28))return!1}else if((b===4||b===6||b===9||b===11)&&I>30||(b===1||b===3||b===5||b===7||b===8||b===10||b===12)&&I>31)return!1;return!0}(w,E.month,E.day))return null;let B=-1/0;if(w<1900)return null;w<=1900&&E.month<=2?B=25568:w<1e4&&(B=25569);const v=Date.UTC(w,E.month-1,E.day)/864e5+B+(E.time||0);if(v>=0&&v<=2958465){const x=E._mon[0]==="0"||E.day[0]==="0"||E._mon.length===2&&E.day.length===2,b=E.path.replace(/[jdlDnmMFyYx-]/g,I=>I==="j"||I==="d"?x?"dd":"d":I==="D"?"ddd":I==="l"?"dddd":I==="n"||I==="m"?x?"mm":"m":I==="M"?"mmm":I==="F"?"mmmm":I==="y"?"yy":I==="x"?E.tf||"":I==="Y"?"yyyy":I);return p&&p.nativeDate?{v:Un(v,p),z:b}:{v,z:b}}}return null}function Wr(R){const p=/^\s*([10]?\d|2[0-4])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?(\.\d{1,10})?(?:\s*([AP])M?)?\s*$/i.exec(R);if(p){const[,E,L,w,B,v]=p;if(B&&!w||!v&&!L&&!w)return null;let x=1*(E||0);if(v){if(x>=13)return null;v[0]!=="p"&&v[0]!=="P"||(x+=12)}return{v:(60*x*60+60*(1*(L||0))+1*(w||0)+1*(B||0))/86400,z:(E.length===2?"hh":"h")+":mm"+(w?":ss":"")+(v?" AM/PM":"")}}return null}function Yn(R){return/^\s*true\s*$/i.test(R)?{v:!0}:/^\s*false\s*$/i.test(R)?{v:!1}:null}const vt={};function ja(R,p){const{pattern:E,partitions:L,locale:w}=R,B=b=>{const I=Object.assign({},U(),p,b);return w&&(I.locale=w),I},v=(b,I)=>{const Q=B(I);return function(F,H,J){const W=l(J.locale),M=H[3]?H[3]:kn;if(typeof F=="boolean"&&(F=F?"TRUE":"FALSE"),F==null)return"";if(typeof F!="number")return Bn(F,M,J,W);if(!isFinite(F)){const G=W||_;return isNaN(F)?G.nan:(F<0?G.negative:"")+G.infinity}const Y=Tn(F,H);return Y?Bn(F,Y,J,W):J.overflow}(Kt(b,Q),L,Q)};v.color=(b,I)=>function(Q,F){if(typeof Q!="number"||!isFinite(Q))return(F[3]?F[3].color:kn.color)||In;const H=Tn(Q,F);return H&&H.color||In}(Kt(b,B(I)),L);const x=function(b){var I;let Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const[F,H]=b,J=F.frac_max,W={type:"general",isDate:Ua(b),isText:Oa(b),isPercent:va(b),maxDecimals:F.general?9:J,scale:(I=F.scale)!==null&&I!==void 0?I:1,color:0,parentheses:0,grouped:F.grouping?1:0,_partitions:b},M=!W.isDate&&!W.isText&&!F.error&&F.tokens.some(ie=>ie.type==="string"&&(Q?ie.value===Q:ye.test(ie.value)));let Y="G",G=J>=0?Math.min(15,J):"",re="",oe="";if(H&&H.color&&(oe="-",W.color=1),F.parens&&(re="()",W.parentheses=1),M)Y="C",W.type="currency";else if(F.error)W.type="error",W.maxDecimals=0;else if(W.isDate){let ie=0,De=0,ze="";F.tokens.forEach(j=>{const ve=j.type;/^(b-)?year/.test(ve)?(ze+="Y",De++):ve.startsWith("month")?(ze+="M",De++):/^(week)?day/.test(ve)?(ze+="D",De++):ve!=="hour"&&ve!=="min"&&ve!=="sec"&&ve!=="am"||(ze+=ve[0],ie++)}),W.type="date",De&&ie?W.type="datetime":!De&&ie&&(W.type="time");const ut=Ma.find(j=>ze.startsWith(j[0]));Y=ut?"D":"G",G=ut?ut[1]:""}else W.isText?(Y="G",W.type="text",G="",W.maxDecimals=0):F.general?(Y="G",W.type="general",G=""):F.fractions?(Y="G",W.type="fraction",G=""):F.exponential?(Y="S",W.type="scientific"):W.isPercent?(Y="P",W.type="percent"):F.grouping?(Y=",",W.type="grouped"):(F.int_max||J)&&(Y="F",W.type="number");return W.code=Y+G+oe+re,W.level=Fa[W.type],Object.freeze(W)}(L,(p||{}).currency)||new SyntaxError;return v.info=x,v.dateInfo=function(b){const[I]=b;return{year:!!(2&I.date),month:!!(4&I.date),day:!!(8&I.date),hours:!!(16&I.date),minutes:!!(32&I.date),seconds:!!(64&I.date),clockType:I.clock===12?12:24}}(L),v.isPercent=()=>!!x.isPercent,v.isDate=()=>!!x.isDate,v.isText=()=>!!x.isText,v.pattern=E,R.error&&(v.error=R.error),v.options=B,v.locale=w||p&&p.locale||"",Object.freeze(v)}function he(R,p){R||(R="General");let E=null;return vt[R]?E=vt[R]:(E=Object.assign({},U(),p).throws?Vn(R):function(L){try{return Vn(L)}catch(w){const B={tokens:[{type:"error"}],error:w.message};return{pattern:L,partitions:[B,B,B,B],error:w.message,locale:null}}}(R),E.error||(vt[R]=E)),ja(E,p)}he.isDate=R=>he(R,{throws:!1}).isDate(),he.isPercent=R=>he(R,{throws:!1}).isPercent(),he.isText=R=>he(R,{throws:!1}).isText(),he.getInfo=(R,p)=>he(R,{...p,throws:!1}).info,he.getDateInfo=(R,p)=>he(R,{...p,throws:!1}).dateInfo,he.dateToSerial=Kt,he.dateFromSerial=Un,he.options=U,he.dec2frac=S,he.round=C,he.codeToLocale=r,he.parseLocale=u,he.getLocale=l,he.addLocale=(R,p)=>{const E=u(p);return delete vt[E.lang],delete vt[E.language],g(R,E)},he.format=function(R,p,E){let L=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const w=E&&typeof E=="object"?E:{locale:E,throws:!L};return he(R,w)(Kt(p,w),w)},he.is_date=he.isDate,he.parseNumber=$n,he.parseDate=jn,he.parseTime=Wr,he.parseBool=Yn,he.parseValue=function(R,p){var E,L,w;return(E=(L=(w=$n(R))!==null&&w!==void 0?w:jn(R,p))!==null&&L!==void 0?L:Wr(R))!==null&&E!==void 0?E:Yn(R)};var Ya=he;return t=t.default}()})})(Os);var Ai=Os.exports,Li=Ai;const wr=Si(Li),Pi=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],xi={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function Vi(n,a,e){var u,c;if(n==null||a==null)return a;const t=(e==null?void 0:e.getStyleByCell(n))||n.s,r=(e==null?void 0:e.getStyleByCell(a))||a.s;if(t==null||r==null||typeof t!="object"||typeof r!="object")return a;const s=(u=t==null?void 0:t.n)==null?void 0:u.pattern,i=(c=r==null?void 0:r.n)==null?void 0:c.pattern;if(s==null||i==null)return a;const o=wi(s,i);return r.n.pattern=o,a}function wi(n,a){const e=pr(n),t=pr(a);return e===0?a:[1,2,5,9,10].includes(e)?n:e===3?[4,5,6,7,8,9,11].includes(t)?a:n:[4,6,7,8].includes(e)?[2,3,4,5,6,7,8,9,11].includes(t)?a:n:e===11&&[2,3,4,6,7,8,9].includes(t)?a:n}function pr(n){if(vi(n))return 3;const a=wr.getInfo(n).type||"unknown";return xi[a]}function vi(n){return!!Pi.find(a=>n.includes(a))&&n.startsWith("_(")}function qt(n,a,e){if(n==="")return a;if(a==="")return n;const t=pr(n),r=pr(a);return e===ue.PLUS||e===ue.MINUS?t===4&&r===4||t===11&&r===11?"":a:e===ue.MULTIPLY||e===ue.DIVIDED?t===6&&r===6||t===7&&r===7||t===8&&r===8||t===9&&r===9?a:"":n||a}const Pr=class Pr extends qe{static create(){return this._instance=this._instance||new Pr(0),this._instance}isNull(){return!0}plus(a){return D.create(0).plus(a)}minus(a){return D.create(0).minus(a)}multiply(a){return D.create(0).multiply(a)}divided(a){return D.create(0).divided(a)}mod(a){return D.create(0).mod(a)}compare(a,e){return a.isString()?ge.create("").compare(a,e):a.isBoolean()?$.create(!1).compare(a,e):D.create(0).compare(a,e)}concatenateFront(a){return a.isArray()?a.concatenateBack(ge.create("")):ge.create(this.concatenate(a.getValue(),Be.FRONT))}concatenateBack(a){return a.isArray()?a.concatenateFront(ge.create("")):ge.create(this.concatenate(a.getValue(),Be.BACK))}plusBy(a){return D.create(0).plusBy(a)}minusBy(a){return D.create(0).minusBy(a)}multiplyBy(a){return D.create(0).multiplyBy(a)}dividedBy(a){return D.create(0).dividedBy(a)}compareBy(a,e){return typeof a=="string"?ge.create("").compareBy(a,e):typeof a=="boolean"?$.create(!1).compareBy(a,e):D.create(0).compareBy(a,e)}pow(a){return D.create(0).pow(a)}sqrt(){return D.create(0).sqrt()}cbrt(){return D.create(0).cbrt()}cos(){return D.create(0).cos()}acos(){return D.create(0).acos()}acosh(){return D.create(0).acosh()}sin(){return D.create(0).sin()}asin(){return D.create(0).asin()}asinh(){return D.create(0).asinh()}tan(){return D.create(0).tan()}tanh(){return D.create(0).tanh()}atan(){return D.create(0).atan()}atan2(a){return D.create(0).atan2(a)}atanh(){return D.create(0).atanh()}log(){return d.create(f.NUM)}log10(){return d.create(f.NUM)}exp(){return D.create(0).exp()}abs(){return D.create(0).abs()}round(a){return D.create(0).round(a)}floor(a){return D.create(0).floor(a)}ceil(a){return D.create(0).ceil(a)}convertToNumberObjectValue(){return D.create(0)}convertToBooleanObjectValue(){return $.create(!1)}};h(Pr,"_instance");let ce=Pr;const mt=class mt extends qe{constructor(e){super(e);h(this,"_value",!1);this._value=e}static create(e){return e?(this._instanceTrue=this._instanceTrue||new mt(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new mt(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const e=this.getValue();let t=0;return e&&(t=1),D.create(-t)}getReciprocal(){return this.getValue()?D.create(1):d.create(f.DIV_BY_ZERO)}plus(e){return this._convertToNumber().plus(e)}minus(e){return this._convertToNumber().minus(e)}multiply(e){return this._convertToNumber().multiply(e)}divided(e){return this._convertToNumber().divided(e)}mod(e){return this._convertToNumber().mod(e)}compare(e,t){return e.isArray()?e.compare(this,hn(t)):e.isNull()?this._convertToNumber().compare(e,t):this.compareBy(e.getValue(),t)}compareBy(e,t){let r=!1;if(typeof e=="string"||typeof e=="number")r=this._compareString(t);else if(typeof e=="boolean"){const s=D.create(e?1:0);return this._convertToNumber().compare(s,t)}return mt.create(r)}_compareString(e){switch(e){case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!0;case O.EQUALS:case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!1}}concatenateFront(e){return this._convertToNumber().concatenateFront(e)}concatenateBack(e){return this._convertToNumber().concatenateBack(e)}_convertToNumber(){const e=this.getValue();let t=0;return e&&(t=1),D.create(t)}pow(e){return this._convertToNumber().pow(e)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(e){return this._convertToNumber().atan2(e)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(e){return this._convertToNumber().round(e)}floor(e){return this._convertToNumber().floor(e)}ceil(e){return this._convertToNumber().ceil(e)}convertToNumberObjectValue(){return Ur(this.getValue())}convertToBooleanObjectValue(){return this}};h(mt,"_instanceTrue"),h(mt,"_instanceFalse");let $=mt;const Ui=2e5,rs=new Rt(Ui);class D extends qe{constructor(e){super(e);h(this,"_value",0);this._value=Number(e)}static create(e,t=""){const r=`${e}-${t}`,s=rs.get(r);if(s)return s;const i=new D(e);return t&&i.setPattern(t),rs.set(r,i),i}getValue(){return this._value}setValue(e){this._value=e}isNumber(){return!0}getNegative(){return D.create(0).minus(this)}getReciprocal(){return D.create(1).divided(this)}plus(e){if(e.isArray())return e.plus(this);let t=this.plusBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),ue.PLUS);return t=D.create(Number(t.getValue()),r),t}equalZero(){return this._value===0}minus(e){if(e.isArray()){const s=e.getNegative();return s.isError()?s:s.plus(this)}let t=this.minusBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),ue.MINUS);return t=D.create(Number(t.getValue()),r),t}multiply(e){if(e.isArray())return e.multiply(this);let t=this.multiplyBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),ue.MULTIPLY);return t=D.create(Number(t.getValue()),r),t}divided(e){if(e.isArray()){const s=e.getReciprocal();return s.isError()?s:s.multiply(this)}let t=this.dividedBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),ue.DIVIDED);return t=D.create(Number(t.getValue()),r),t}mod(e){if(e.isArray())return e.modInverse(this);const t=this.getValue(),r=e.getValue();if(e.isNull())return d.create(f.DIV_BY_ZERO);if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(r===0)return d.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(r)||Math.abs(r)*11259e8<=Math.abs(t))return d.create(f.NUM);const s=Jn(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}if(typeof r=="boolean"){const s=r?1:0;return s===0?d.create(f.DIV_BY_ZERO):D.create(Jn(t,s))}return this}concatenateFront(e){return e.isArray()?e.concatenateBack(this):ge.create(this.concatenate(e.getValue(),Be.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):ge.create(this.concatenate(e.getValue(),Be.BACK))}compare(e,t){return e.isArray()?e.compare(this,hn(t)):this.compareBy(e.getValue(),t)}plusBy(e){const t=this.getValue();if(typeof e=="string")return Lt.has(e)?d.create(e):d.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return d.create(f.NUM);const r=Gn(t,e);return Number.isFinite(r)?D.create(r):d.create(f.NUM)}return typeof e=="boolean"?D.create(Gn(t,e?1:0)):this}minusBy(e){const t=this.getValue();if(typeof e=="string")return d.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return d.create(f.NUM);const r=Xn(t,e);return Number.isFinite(r)?D.create(r):d.create(f.NUM)}return typeof e=="boolean"?D.create(Xn(t,e?1:0)):this}multiplyBy(e){const t=this.getValue();if(typeof e=="string")return d.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return d.create(f.NUM);const r=bt(t,e);return Number.isFinite(r)?D.create(r):d.create(f.NUM)}return typeof e=="boolean"?D.create(bt(t,e?1:0)):this}dividedBy(e){const t=this.getValue();if(typeof e=="string")return d.create(f.VALUE);if(typeof e=="number"){if(e===0)return d.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(e))return d.create(f.NUM);const r=Kn(t,e);return Number.isFinite(r)?D.create(r):d.create(f.NUM)}return typeof e=="boolean"?e===!1?d.create(f.DIV_BY_ZERO):D.create(Kn(t,1)):this}compareBy(e,t){const r=this.getValue();let s=!1;return typeof e=="string"?s=this._compareString(t):typeof e=="number"?s=this._compareNumber(r,e,t):typeof e=="boolean"&&(s=this._compareBoolean(t)),$.create(s)}_compareString(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}_compareNumber(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)?this._compareInfinity(e,t,r):this._compareFiniteNumber(e,t,r)}_compareFiniteNumber(e,t,r){switch(r){case O.EQUALS:return ts(e,t);case O.GREATER_THAN:return pi(e,t);case O.GREATER_THAN_OR_EQUAL:return Ri(e,t);case O.LESS_THAN:return _i(e,t);case O.LESS_THAN_OR_EQUAL:return Ei(e,t);case O.NOT_EQUAL:return!ts(e,t)}}_compareBoolean(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}pow(e){if(e.isArray())return e.powInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return d.create(f.NUM);const s=es(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}return typeof r=="boolean"?D.create(es(t,r?1:0)):this}sqrt(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=gi(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}cbrt(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.cbrt(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}cos(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.cos(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}acos(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.acos(e);return Number.isNaN(t)?d.create(f.NUM):D.create(t)}acosh(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.acosh(e);return Number.isNaN(t)?d.create(f.NUM):D.create(t)}sin(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.sin(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}asin(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.asin(e);return Number.isNaN(t)?d.create(f.NUM):D.create(t)}asinh(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.asinh(e);return Number.isNaN(t)?d.create(f.NUM):D.create(t)}tan(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.tan(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}tanh(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.tanh(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}atan(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.atan(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}atan2(e){if(e.isArray())return e.atan2Inverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return d.create(f.NUM);if(t===0&&r===0)return d.create(f.DIV_BY_ZERO);const s=Math.atan2(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}return typeof r=="boolean"?D.create(Math.atan2(t,r?1:0)):this}atanh(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.atanh(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}log(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return d.create(f.NUM);const t=Math.log(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}log10(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return d.create(f.NUM);const t=Math.log10(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}exp(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.exp(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}abs(){const e=this.getValue();if(!Number.isFinite(e))return d.create(f.NUM);const t=Math.abs(e);return Number.isFinite(t)?D.create(t):d.create(f.NUM)}round(e){if(e.isArray())return e.roundInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return d.create(f.NUM);const s=Nn(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}return typeof r=="boolean"?D.create(Nn(t,r?1:0)):this}floor(e){if(e.isArray())return e.floorInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return d.create(f.NUM);const s=qn(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}return typeof r=="boolean"?D.create(qn(t,r?1:0)):this}ceil(e){if(e.isArray())return e.ceilInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return d.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return d.create(f.NUM);const s=Zn(t,r);return Number.isFinite(s)?D.create(s):d.create(f.NUM)}return typeof r=="boolean"?D.create(Zn(t,r?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return vr(!0)}_compareInfinity(e,t,r){let s=!1;switch(r){case O.EQUALS:s=e===t;break;case O.GREATER_THAN:s=e>t;break;case O.GREATER_THAN_OR_EQUAL:s=e>=t;break;case O.LESS_THAN:s=e<t;break;case O.LESS_THAN_OR_EQUAL:s=e<=t;break;case O.NOT_EQUAL:s=e!==t;break}return s}}const Oi=2e5,ns=new Rt(Oi);class ge extends qe{constructor(e){super(e);h(this,"_value");this._value=e}static create(e){const t=ns.get(e);if(t)return t;const r=new ge(e);return ns.set(e,r),r}getValue(){return this._value}isString(){return!0}concatenateFront(e){return e.isArray()?e.concatenateBack(this):ge.create(this.concatenate(e.getValue(),Be.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):ge.create(this.concatenate(e.getValue(),Be.BACK))}compare(e,t,r){return e.isArray()?e.compare(this,hn(t),r):this.compareBy(e.getValue(),t,r)}compareBy(e,t,r=!1){let s=this.getValue(),i=!1;if(typeof e=="string"){if(r||(s=s.toLocaleLowerCase(),e=e.toLocaleLowerCase()),fi(e))return this._checkWildcard(e,t);i=this._compareString(s,e,t)}else typeof e=="number"?i=this._compareNumber(t):typeof e=="boolean"&&(i=this._compareBoolean(t));return $.create(i)}_compareString(e,t,r){switch(r){case O.EQUALS:return e===t;case O.GREATER_THAN:return e>t;case O.GREATER_THAN_OR_EQUAL:return e>=t;case O.LESS_THAN:return e<t;case O.LESS_THAN_OR_EQUAL:return e<=t;case O.NOT_EQUAL:return e!==t}}_compareNumber(e){switch(e){case O.NOT_EQUAL:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!0;case O.EQUALS:case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return Ur(this.getValue())}convertToBooleanObjectValue(){return $.create(!0)}_checkWildcard(e,t){const r=this.getValue().toLocaleLowerCase(),s=hi(r,e,t);return $.create(s)}}function vr(n){if(typeof n=="boolean")return $.create(n);let a=!1;if(typeof n=="string"){const e=n.toLocaleUpperCase();e===at.TRUE?a=!0:e===at.FALSE&&(a=!1)}else n===1?a=!0:a=!1;return $.create(a)}function Fi(n){let a=n.toString();return a.charAt(0)==='"'&&a.charAt(a.length-1)==='"'&&(a=a.slice(1,-1),a=a.replace(/""/g,'"')),ge.create(a)}function Ur(n){if(typeof n=="boolean"){let a=0;return n&&(a=1),D.create(a)}else{if(typeof n=="number")return Number.isFinite(n)?D.create(n):d.create(f.NUM);if(y.isRealNum(n))return D.create(Number(n))}return d.create(f.VALUE)}function Mi(n){return""}function Fs(n=[]){const a=[];for(let e=0;e<n.length;e++){const t=n[e];a[e]==null&&(a[e]=[]);for(let r=0;r<t.length;r++){const s=t[r];a[e][r]=it.create(s)}}return a}function Bi(n=[]){const a=[];for(let e=0;e<n.length;e++){const t=n[e];a[e]==null&&(a[e]=[]);for(let r=0;r<t.length;r++){const s=t[r];s==null?a[e][r]=null:s.isError()?a[e][r]=s.getErrorType():a[e][r]=s.getValue()}}return a}class _e extends qe{constructor(e){super(typeof e=="string"?e:Mi());h(this,"_values",[]);h(this,"_rowCount",-1);h(this,"_columnCount",-1);h(this,"_unitId","");h(this,"_sheetId","");h(this,"_currentRow",-1);h(this,"_currentColumn",-1);h(this,"_sliceCache",new Map);h(this,"_flattenCache");h(this,"_defaultValue",null);h(this,"_flattenPosition");this._values=this._formatValue(e)}static create(e){return new _e(e)}static createByArray(e){const r={calculateValueList:Fs(e),rowCount:e.length,columnCount:e[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new _e(r)}dispose(){this._values.forEach(e=>{e.forEach(t=>{t==null||t.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(e=>e)}getRowCount(){return this._rowCount}setRowCount(e){this._rowCount=e}getColumnCount(){return this._columnCount}setColumnCount(e){this._columnCount=e}setCurrent(e,t){this._currentRow=e,this._currentColumn=t}setUnitId(e){this._unitId=e}getUnitId(){return this._unitId}setSheetId(e){this._sheetId=e}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(e){this._clearCache(),this._values=e}isArray(){return!0}setDefaultValue(e){this._defaultValue=e}get(e,t){var r;return(r=this._values[e])==null?void 0:r[t]}getRealValue(e,t){const r=this._values[e];if(r==null)return null;const s=r[t];return s==null?null:s}set(e,t,r){if(e>=this._rowCount||t>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[e][t]=r}getRangePosition(){const t=this.getRowCount(),r=0,s=this.getColumnCount();return{startRow:0,endRow:t-1,startColumn:r,endColumn:s-1}}iterator(e){var u;const{startRow:t,endRow:r,startColumn:s,endColumn:i}=this.getRangePosition(),o=this.getArrayValue();for(let c=t;c<=r;c++)for(let l=s;l<=i;l++)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}iteratorReverse(e){var u;const{startRow:t,endRow:r,startColumn:s,endColumn:i}=this.getRangePosition(),o=this.getArrayValue();for(let c=r;c>=t;c--)for(let l=i;l>=s;l--)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}getLastTruePosition(){let e;return this.iteratorReverse((t,r,s)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:s},!1}),e}getFirstTruePosition(){let e;return this.iterator((t,r,s)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:s},!1}),e}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ce.create()}getLastCell(){const{endRow:e,endColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ce.create()}pick(e){const t=this.pickRaw(e);return this._createNewArray(t,1,t[0].length)}pickRaw(e){const t=e.getRowCount(),r=e.getColumnCount();if(t!==this._rowCount||r!==this._columnCount)return[[ce.create()]];const s=[];s[0]=[];for(let i=0;i<t;i++)for(let o=0;o<r;o++){const u=e.get(i,o);if(!(u==null||u.isError())&&u.getValue()===!0){const c=this.get(i,o);s[0].push(c)}}return s}flatten(){if(this._flattenCache!=null)return this._flattenCache;const e=[];e[0]=[];for(let r=0;r<this._rowCount;r++)for(let s=0;s<this._columnCount;s++){const i=this.get(r,s);e[0].push(i)}const t=this._createNewArray(e,1,e[0].length);return t.setDefaultValue(this._defaultValue),this._flattenCache=t,t}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const e=[],t=[],r=[],s=[];let i=0;for(let u=0;u<this._rowCount;u++)for(let c=0;c<this._columnCount;c++){const l=this.get(u,c);if(l==null||l.isError()||l.isNull()){i++;continue}l.isString()?(e.push(l),r.push(i++)):(t.push(l),s.push(i++))}const o={stringArray:e,numberArray:t,stringPosition:r,numberPosition:s};return this._flattenPosition=o,o}slice(e,t){let r=0,s=this._rowCount,i=1,o=0,u=this._columnCount,c=1;if(e!=null&&(r=e[0]||0,s=e[1]||this._rowCount,i=e[2]||1),t!=null&&(o=t[0]||0,u=t[1]||this._columnCount,c=t[2]||1),r>=this._rowCount||o>=this._columnCount)return;const l=`${r}_${s}_${i}_${o}_${u}_${c}`,m=this._sliceCache.get(l);if(m!=null)return m;const g=[],_=this._values;let C=0,S=0;for(let T=r;T<s;T+=i){S=0,g[C]==null&&(g[C]=[]);for(let X=o;X<u;X+=c){if(!_[T])return;let te=_[T][X]||this._defaultValue;te==null&&(te=ce.create()),g[C][S]=te,S++}C++}if(g.length===0||g[0].length===0)return;const A=i>1?-1:r+this._currentRow,P=c>1?-1:o+this._currentColumn,U=this._createNewArray(g,g.length,g[0].length,A,P);return U.setDefaultValue(this._defaultValue),this._sliceCache.set(l,U),U}sortByRow(e){const t=this._transposeArray(this._values);t.sort(this._sort(e)),this._clearCache(),this._values=this._transposeArray(t)}sortByColumn(e){this._clearCache(),this._values.sort(this._sort(e))}transpose(){const e=this._transposeArray(this._values),t=this._rowCount,r=this._columnCount,s=this._createNewArray(e,r,t);return s.setDefaultValue(this._defaultValue),s}orderSearch(e,t=Pe.MIN,r=!1,s=!1){let i,o,u,c;const l=(m,g,_)=>{if(m==null)return!0;let C;if(s===!0?C=m.compare(e,O.EQUALS):C=m.isEqual(e),(C==null?void 0:C.getValue())===!0)return i=m,u={row:g,column:_},!1;t===Pe.MAX?m.isGreaterThan(e).getValue()===!0&&(o==null||m.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=m,c={row:g,column:_}):t===Pe.MIN&&m.isLessThan(e).getValue()===!0&&(o==null||m.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=m,c={row:g,column:_})};if(r){const m=this._values.length;if(this._values[0]==null)return;const g=this._values[0].length;for(let _=m-1;_>=0;_--)for(let C=g-1;C>=0;C--){const S=this._values[_][C];l(S,_,C)}}else this.iterator((m,g,_)=>{l(m,g,_)});if(i!=null)return u;if(o!=null)return c}binarySearch(e,t=Xe.MIN){if(e.isError())return;const{stringArray:r,stringPosition:s,numberArray:i,numberPosition:o}=this.flattenPosition();return e.isString()?this._binarySearch(e,r,s,t):this._binarySearch(e,i,o,t)}_binarySearch(e,t,r,s=Xe.MIN){const i=Hn(),o=e.getValue().toString().toLocaleLowerCase();let u=0,c=t.length-1,l=null;for(;u<=c;){const m=Math.floor((u+c)/2),g=t[m];let _=0;if(g.isNull())_=1;else{const C=g.getValue();_=i(C.toString().toLocaleLowerCase(),o)}if(_===0)return r[m];_===-1?(u=m+1,s===Xe.MIN&&(l=m)):(c=m-1,s===Xe.MAX&&(l=m))}if(l!=null)return r[l]}sum(){let e=D.create(0);return this.iterator(t=>{if(t==null||t.isString()||t.isBoolean()||t.isNull())return!0;if(t.isError())return e=t,!1;e=e.plus(t)}),e}max(){let e=D.create(Number.NEGATIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isLessThan(t).getValue()&&(e=t)}),e}min(){let e=D.create(Number.POSITIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isGreaterThan(t).getValue()&&(e=t)}),e}count(){let e=D.create(0);return this.iterator(t=>{if(t==null||t.isError()||t.isString()||t.isNull()||t.isBoolean())return!0;e=e.plusBy(1)}),e}countA(){let e=D.create(0);return this.iterator(t=>{if(t==null||t.isNull())return!0;e=e.plusBy(1)}),e}countBlank(){let e=D.create(0);return this.iterator(t=>{(t==null||t.isNull()||t.getValue()==="")&&(e=e.plusBy(1))}),e}getNegative(){return _e.create("{0}").minus(this)}getReciprocal(){return _e.create("{1}").divided(this)}plus(e){return this._batchOperator(e,1)}minus(e){return this._batchOperator(e,0)}multiply(e){return this._batchOperator(e,2)}divided(e){return this._batchOperator(e,3)}mod(e){return this._batchOperator(e,4)}modInverse(e){return this.map(t=>t.isError()?t:e.mod(t))}compare(e,t,r){return this._batchOperator(e,5,t,r)}concatenateFront(e){return this._batchOperator(e,6)}concatenateBack(e){return this._batchOperator(e,7)}map(e){const t=(r,s,i)=>r==null?ce.create():r.isError()?r:e(r,s,i);return this.mapValue(t)}mapValue(e){var i;const t=this._rowCount,r=this._columnCount,s=[];for(let o=0;o<t;o++){const u=[];for(let c=0;c<r;c++){const l=(i=this._values)==null?void 0:i[o];if(l==null)u[c]=d.create(f.VALUE);else{const m=l[c]||this._defaultValue;m?u[c]=e(m,o,c):u[c]=ce.create()}}s.push(u)}return this._createNewArray(s,t,r)}pow(e){return this._batchOperator(e,8)}powInverse(e){return this.map(t=>t.isError()?t:e.pow(t))}sqrt(){return this.map(e=>e.isError()?e:e.sqrt())}cbrt(){return this.map(e=>e.isError()?e:e.cbrt())}cos(){return this.map(e=>e.isError()?e:e.cos())}acos(){return this.map(e=>e.isError()?e:e.acos())}acosh(){return this.map(e=>e.isError()?e:e.acosh())}sin(){return this.map(e=>e.isError()?e:e.sin())}asin(){return this.map(e=>e.isError()?e:e.asin())}asinh(){return this.map(e=>e.isError()?e:e.asinh())}tan(){return this.map(e=>e.isError()?e:e.tan())}tanh(){return this.map(e=>e.isError()?e:e.tanh())}atan(){return this.map(e=>e.isError()?e:e.atan())}atanh(){return this.map(e=>e.isError()?e:e.atanh())}atan2(e){return this._batchOperator(e,12)}atan2Inverse(e){return this.map(t=>t.isError()?t:e.atan2(t))}mean(e=0){const t=this.sum(),r=this.count();return t.divided(e===0?r:r.minusBy(1))}median(){const e=this.flattenPosition().numberArray,t=this._createNewArray([e],1,e.length),r=t.getColumnCount();if(r<=1)return t.get(0,0)||ce.create();if(t.sortByRow(0),r%2===0){const s=t.get(0,r/2)||ce.create(),i=t.get(0,r/2-1)||ce.create();return s.plus(i).divided(D.create(2))}return t.get(0,(r-1)/2)||ce.create()}var(e=0){const t=this.mean(),r=[[]];this.iterator(l=>{if(l==null||l.isError()||l.isString()||l.isBoolean()||l.isNull())return;const m=l.minus(t).pow(D.create(2));m.isError()||r[0].push(m)});const{_unitId:s,_sheetId:i,_currentRow:o,_currentColumn:u}=this;return _e.create({calculateValueList:r,rowCount:1,columnCount:r[0].length,unitId:s,sheetId:i,row:o,column:u}).mean(e)}std(e=0){const t=this.var(e);return t.isError()?t:t.sqrt()}log(){return this.map(e=>e.isError()?e:e.log())}log10(){return this.map(e=>e.isError()?e:e.log10())}exp(){return this.map(e=>e.isError()?e:e.exp())}abs(){return this.map(e=>e.isError()?e:e.abs())}round(e){return this._batchOperator(e,9)}roundInverse(e){return this.map(t=>t.isError()?t:e.round(t))}floor(e){return this._batchOperator(e,10)}floorInverse(e){return this.map(t=>t.isError()?t:e.floor(t))}ceil(e){return this._batchOperator(e,11)}ceilInverse(e){return this.map(t=>t.isError()?t:e.ceil(t))}toValue(){return Bi(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(e){const t=Hn();return(r,s)=>{const i=r[e],o=s[e];return i==null?1:o==null?-1:i.isError()&&i.isError()?0:i.isError()?1:o.isError()?-1:t(i.getValue(),o.getValue())}}_transposeArray(e){const t=e.length,r=e[0].length,s=[];for(let i=0;i<r;i++){s[i]=[];for(let o=0;o<t;o++)s[i][o]=e[o][i]}return s}_batchOperator(e,t,r,s){const i=[];let o=this._rowCount,u=this._columnCount;if(e.isArray()){const m=e.getRowCount(),g=e.getColumnCount();if(o=Math.max(m,o),u=Math.max(g,u),m===1&&g===1){const _=e.getFirstCell();for(let C=0;C<u;C++)i.push(_)}else if(m===1&&this._columnCount>1){const _=e.getArrayValue();for(let C=0;C<u;C++)i.push(_[0][C])}else return this._batchOperatorArray(e,t,r,s)}else for(let m=0;m<u;m++)i.push(e);const c=[];for(let m=0;m<u;m++){const g=i[m];this._batchOperatorValue(g,m,c,t,r,s)}const l=this._createNewArray(c,o,u);return l.setDefaultValue($.create(!1)),l}_batchOperatorValue(e,t,r,s,i,o){var C,S;const u=this._rowCount;let c=!1;const l=this.getUnitId(),m=this.getSheetId(),g=this.getCurrentRow(),_=this.getCurrentColumn();if(s===5&&(c=tt.canUseCache(l,m,t+_,g,g+u-1),c===!0)){if(i===O.EQUALS){const A=tt.getCellPositions(l,m,t+_,e.getValue());A!=null&&A.forEach(P=>{const U=P-g;r[U]==null&&(r[U]=[]),r[U][t]=$.create(!0)})}else{const A=tt.getCellValuePositions(l,m,t+_);A!=null&&A.forEach((P,U)=>{let T=ce.create();typeof U=="string"?T=ge.create(U):typeof U=="number"?T=D.create(U):typeof U=="boolean"&&(T=$.create(U)),T.compare(e,i,o).getValue()===!0&&P.forEach(te=>{te>=g&&te<=g+u-1&&(r[te-g]==null&&(r[te-g]=[]),r[te-g][t]=$.create(!0))})})}return}for(let A=0;A<u;A++){const P=(S=(C=this._values)==null?void 0:C[A])==null?void 0:S[t];if(r[A]==null&&(r[A]=[]),P&&e)if(P.isError())r[A][t]=P;else if(e.isError())r[A][t]=e;else switch(s){case 1:r[A][t]=P.plus(e);break;case 0:r[A][t]=P.minus(e);break;case 2:r[A][t]=P.multiply(e);break;case 3:r[A][t]=P.divided(e);break;case 4:r[A][t]=P.mod(e);break;case 5:i?r[A][t]=P.compare(e,i,o):r[A][t]=d.create(f.VALUE);break;case 6:r[A][t]=P.concatenateFront(e);break;case 7:r[A][t]=P.concatenateBack(e);break;case 8:r[A][t]=P.pow(e);break;case 9:r[A][t]=P.round(e);break;case 10:r[A][t]=P.floor(e);break;case 12:r[A][t]=P.atan2(e);break;case 11:r[A][t]=P.ceil(e);break}else r[A][t]=d.create(f.NA);P!=null&&(P.isError()?tt.set(l,m,t+_,P.getErrorType(),A+g):P.isNull()?tt.set(l,m,t+_,"",A+g):tt.set(l,m,t+_,P.getValue(),A+g))}tt.setContinueBuildingCache(l,m,t+_,g,g+u-1)}_batchOperatorArray(e,t,r,s){var g,_,C,S,A,P,U,T,X,te,pe,ye;let i=e.getRowCount(),o=e.getColumnCount();i<this._rowCount&&(i=this._rowCount),o<this._columnCount&&(o=this._columnCount);const u=[],c=e.getArrayValue(),l=this._checkArrayCalculateType(this),m=this._checkArrayCalculateType(e);for(let de=0;de<i;de++){const se=[];for(let Z=0;Z<o;Z++){let K;l===3?K=(_=(g=this._values)==null?void 0:g[0])==null?void 0:_[0]:l===1?K=(S=(C=this._values)==null?void 0:C[0])==null?void 0:S[Z]:l===2?K=(P=(A=this._values)==null?void 0:A[de])==null?void 0:P[0]:K=(T=(U=this._values)==null?void 0:U[de])==null?void 0:T[Z];let fe;if(m===3?fe=(X=c==null?void 0:c[0])==null?void 0:X[0]:m===1?fe=(te=c==null?void 0:c[0])==null?void 0:te[Z]:m===2?fe=(pe=c==null?void 0:c[de])==null?void 0:pe[0]:fe=(ye=c==null?void 0:c[de])==null?void 0:ye[Z],K&&fe)if(K.isError())se[Z]=K;else if(fe.isError())se[Z]=fe;else switch(t){case 1:se[Z]=K.plus(fe);break;case 0:se[Z]=K.minus(fe);break;case 2:se[Z]=K.multiply(fe);break;case 3:se[Z]=K.divided(fe);break;case 4:se[Z]=K.mod(fe);break;case 5:r?se[Z]=K.compare(fe,r,s):se[Z]=d.create(f.VALUE);break;case 6:se[Z]=K.concatenateFront(fe);break;case 7:se[Z]=K.concatenateBack(fe);break;case 8:se[Z]=K.pow(fe);break;case 9:se[Z]=K.round(fe);break;case 12:se[Z]=K.atan2(fe);break;case 10:se[Z]=K.floor(fe);break;case 11:se[Z]=K.ceil(fe);break}else se[Z]=d.create(f.NA)}u.push(se)}return this._createNewArray(u,i,o)}_checkArrayCalculateType(e){return e.getRowCount()===1&&e.getColumnCount()===1?3:e.getRowCount()===1?1:e.getColumnCount()===1?2:0}_formatValue(e){if(typeof e!="string")return e=e,this._rowCount=e.rowCount,this._columnCount=e.columnCount,this._unitId=e.unitId,this._sheetId=e.sheetId,this._currentRow=e.row,this._currentColumn=e.column,e.calculateValueList;e=e.slice(1,-1);const t=e.split(";"),r=t.length,s=[];let i=0;for(let o=0;o<r;o++){const c=t[o].split(","),l=c.length;i<l&&(i=l);const m=[];for(let g=0;g<l;g++){const _=c[g].trim();m.push(it.create(_))}s.push(m)}return this._rowCount=r,this._columnCount=i,s}_createNewArray(e,t,r,s=-1,i=-1){(this._currentColumn===-1||this._currentRow===-1)&&(s=-1,i=-1);const o={calculateValueList:e,rowCount:t,columnCount:r,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:s,column:i};return _e.create(o)}}class it{static create(a){if(a==null)return ce.create();if(typeof a=="boolean")return $.create(a);if(typeof a=="string"){const e=a.toLocaleUpperCase().trim();return Lt.has(e)?d.create(e):e===at.TRUE||e===at.FALSE?vr(a):y.isRealNum(a)?D.create(Number(a)):new RegExp(ri,"g").test(a.replace(/\n/g,"").replace(/\r/g,""))?_e.create(a.replace(/\n/g,"").replace(/\r/g,"")):Fi(a)}return typeof a=="number"?Ur(a):d.create(f.VALUE)}}function Ti(n){if(n===null)return 0;if(n!=null&&n.p){const a=n==null?void 0:n.p.body;if(a==null)return 0;const e=a.dataStream;return e.substring(e.length-2,e.length)===y.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return(n==null?void 0:n.v)||0}const ki=1e5,un=new Rt(ki);class xt extends Vr{constructor(e){super();h(this,"_forcedSheetId","");h(this,"_forcedSheetName","");h(this,"_defaultSheetId","");h(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});h(this,"_unitData",{});h(this,"_unitStylesData",{});h(this,"_defaultUnitId","");h(this,"_forcedUnitId","");h(this,"_runtimeData",{});h(this,"_arrayFormulaCellData",{});h(this,"_runtimeArrayFormulaCellData",{});h(this,"_runtimeFeatureCellData",{});h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._token=e}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(e){this._token=e}isExceedRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:s}=this.getRangePosition();return e<0||r<0||t>=this.getActiveSheetRowCount()||s>=this.getActiveSheetColumnCount()}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow:e,startColumn:t,endRow:r,endColumn:s}=y.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=this.getActiveSheetRowCount()-1),Number.isNaN(s)&&(s=this.getActiveSheetColumnCount()-1),{startRow:e,endRow:r,startColumn:t,endColumn:s}}isReferenceObject(){return!0}iterator(e){const{startRow:t,endRow:r,startColumn:s,endColumn:i}=this.getRangePosition();if(this._checkIfWorksheetMiss())return e(d.create(f.VALUE),t,s);const o=this._forcedUnitId||this._defaultUnitId,u=this._forcedSheetId||this._defaultSheetId;for(let c=t;c<=r;c++)for(let l=s;l<=i;l++){if(c<0||l<0)return e(d.create(f.REF),c,l);const m=this.getCellData(c,l);let g=!1;if(y.isNullCell(m)){g=e(null,c,l);continue}let _=this.getCellValueObject(m);if(c===t&&l===s){const C=this.getCellPattern(o,u,c,l);if(C&&_.isNumber()){const S=Number(_.getValue());_=D.create(S,C)}}if(g=e(_,c,l),g===!1)return}}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition(),r=this.getCellData(e,t);if(!r)return D.create(0);let s=this.getCellValueObject(r);const i=this._forcedUnitId||this._defaultUnitId,o=this._forcedSheetId||this._defaultSheetId,u=this.getCellPattern(i,o,e,t);if(u&&s.isNumber()){const c=Number(s.getValue());s=D.create(c,u)}return s}getRangeData(){return this._rangeData}setRangeData(e){this._rangeData=e}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(e){e.length>0&&(this._forcedUnitId=e)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(e){var t;this._forcedSheetId=(t=e[this.getUnitId()])==null?void 0:t[this._forcedSheetName]}setForcedSheetIdDirect(e){this._forcedSheetId=e}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(e){e.length>0&&(this._forcedSheetName=e)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(e){this._defaultSheetId=e}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(e){this._defaultUnitId=e}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(e){this._unitData=e}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(e){this._unitStylesData=e}getRuntimeData(){return this._runtimeData}setRuntimeData(e){this._runtimeData=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(e){this._runtimeArrayFormulaCellData=e}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e){this._runtimeFeatureCellData=e}getActiveSheetRowCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowCount)||0}getActiveSheetColumnCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowData)||{}}getColumnData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(e){return d.create(f.REF)}unionRange(e,t){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(e){const t=Ti(e);return Lt.has(t)?d.create(t):e.t===y.CellValueType.NUMBER?Ur(t):e.t===y.CellValueType.STRING||e.t===y.CellValueType.FORCE_STRING?ge.create(t.toString()):e.t===y.CellValueType.BOOLEAN?vr(t):it.create(t)}getCellByRow(e){return this.getCellByPosition(e)}getCellByColumn(e){return this.getCellByPosition(void 0,e)}getCurrentActiveSheetData(){var e;return(e=this._unitData[this.getUnitId()])==null?void 0:e[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var e,t;return(t=(e=this._runtimeData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var e,t;return(t=(e=this._arrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var e,t;return(t=(e=this._runtimeArrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCellData(e,t){const r=this.getCurrentActiveSheetData(),s=this.getCurrentRuntimeSheetData(),i=this.getCurrentActiveArrayFormulaCellData(),o=this.getCurrentRuntimeActiveArrayFormulaCellData();return(s==null?void 0:s.getValue(e,t))||(o==null?void 0:o.getValue(e,t))||this.getRuntimeFeatureCellValue(e,t)||(i==null?void 0:i.getValue(e,t))||(r==null?void 0:r.cellData.getValue(e,t))}getRuntimeFeatureCellValue(e,t){var s;const r=Object.keys(this._runtimeFeatureCellData);for(const i of r){const o=this._runtimeFeatureCellData[i],u=(s=o==null?void 0:o[this.getUnitId()])==null?void 0:s[this.getSheetId()];if(u==null)continue;const c=u.getValue(e,t);if(c!=null)return c}}getCellByPosition(e,t){e||(e=this._rangeData.startRow),t||(t=this._rangeData.startColumn);const r=this.getCellData(e,t);return r?this.getCellValueObject(r):d.create(f.VALUE)}getCellPattern(e,t,r,s){var c,l,m,g;const i=this._unitStylesData[e];if(!i)return"";const o=(m=(l=(c=this._unitData[e])==null?void 0:c[t])==null?void 0:l.cellData)==null?void 0:m.getValue(r,s);if(!o)return"";const u=i.getStyleByCell(o);return((g=u==null?void 0:u.n)==null?void 0:g.pattern)||""}toArrayValueObject(e=!0){var C;const{startRow:t,endRow:r,startColumn:s,endColumn:i}=this.getRangePosition(),o=`${this.getUnitId()}_${this.getSheetId()}_${t}_${r}_${s}_${i}`,u=un.get(o);if(u&&e)return u;const c=r-t+1,l=i-s+1;if(c<0||l<0)return this._getBlankArrayValueObject();const m=new Array(c);this.iterator((S,A,P)=>{const U=A-t,T=P-s;m[U]||(m[U]=new Array(l)),S==null&&(S=ce.create()),m[U][T]=S});const g={calculateValueList:m,rowCount:m.length,columnCount:((C=m[0])==null?void 0:C.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:t,column:s},_=_e.create(g);return e&&un.set(o,_),_}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const e={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return _e.create(e)}}class Ms extends Vr{constructor(a){super(),this._promise=a}isAsyncObject(){return!0}async getValue(){return this._promise}}class Bs extends Vr{constructor(a){super(),this._promiseList=a}isAsyncArrayObject(){return!0}async getValue(){var t;const a=[];for(let r=0;r<this._promiseList.length;r++){const s=this._promiseList[r];a[r]==null&&(a[r]=[]);for(let i=0;i<s.length;i++){const o=s[i];o.isAsyncObject()?a[r][i]=await o.getValue():a[r][i]=o}}const e={calculateValueList:a,rowCount:a.length,columnCount:((t=a[0])==null?void 0:t.length)||0,unitId:"",sheetId:"",row:0,column:0};return _e.create(e)}}class kt extends xt{constructor(a,e,t){super(""),this.setRangeData(a),e&&this.setForcedSheetIdDirect(e),t&&this.setForcedUnitIdDirect(t)}isRange(){return!0}}const ss=/[\[\]]/g;function as(n,a){if(ss.test(n)){const e=Number(n.replace(ss,""));return a+e}return Number(n)-1}function Nr(n,a=0,e=0){n=n.toLocaleUpperCase();const t=n.split(/[RC]/),r=t[1],s=t[2],i=as(r,a),o=as(s,e);return{row:i,column:o,absoluteRefType:y.AbsoluteRefType.NONE}}function Ts(n,a=0,e=0){const{refBody:t,sheetName:r,unitId:s}=ws(n),i=t.indexOf(":");if(i===-1){const S=Nr(t,a,e),A=S.row,P=S.column,U=S.absoluteRefType;return{unitId:s,sheetName:r,range:{startRow:A,startColumn:P,endRow:A,endColumn:P,startAbsoluteRefType:U,endAbsoluteRefType:U}}}const o=t.substring(0,i),u=t.substring(i+1),c=Nr(o,a,e),l=Nr(u,a,e),m=c.row,g=c.column,_=l.row,C=l.column;return{unitId:s,sheetName:r,range:{startRow:m,startColumn:g,endRow:_,endColumn:C,startAbsoluteRefType:c.absoluteRefType,endAbsoluteRefType:l.absoluteRefType}}}function Ii(n){const a=Zt(n.startRow,n.startAbsoluteRefType,!0),e=Zt(n.startColumn,n.startAbsoluteRefType,!1),t=Zt(n.endRow,n.endAbsoluteRefType,!0),r=Zt(n.endColumn,n.endAbsoluteRefType,!1);return a===t&&e===r?`R${a}C${e}`:`R${a}C${e}:R${t}C${r}`}function Zt(n,a=y.AbsoluteRefType.ALL,e){switch(n+=1,a){case y.AbsoluteRefType.ALL:return`${n}`;case y.AbsoluteRefType.ROW:return e?`${n}`:`[${n}]`;case y.AbsoluteRefType.COLUMN:return e?`[${n}]`:`${n}`;case y.AbsoluteRefType.NONE:return`[${n}]`}}const ks=[];var Is=(n=>n)(Is||{});function ae(n,a,e,t){const r=[];if(e.isArray()){const s=e.getRowCount(),i=e.getColumnCount();if(s===1&&i===1){const o=e.getFirstCell();for(let u=0;u<n;u++){const c=[];for(let l=0;l<a;l++)c.push(o);r.push(c)}}else if(s===1&&i>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<a;c++){const l=e.getRealValue(0,c)||(t!=null?t:ce.create());u.push(l)}r.push(u)}else if(i===1&&s>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<a;c++){const l=e.getRealValue(o,0)||(t!=null?t:ce.create());u.push(l)}r.push(u)}else for(let o=0;o<n;o++){const u=[];for(let c=0;c<a;c++){const l=e.getRealValue(o,c)||(t!=null?t:ce.create());u.push(l)}r.push(u)}}else for(let s=0;s<n;s++){const i=[];for(let o=0;o<a;o++)i.push(e);r.push(i)}return pt(r,n,a)}function pt(n,a,e,t="",r=""){const s={calculateValueList:n,rowCount:a,columnCount:e,unitId:t,sheetId:r,row:-1,column:-1};return _e.create(s)}function Yt(n){const a=[O.EQUALS,O.NOT_EQUAL,O.GREATER_THAN_OR_EQUAL,O.GREATER_THAN,O.LESS_THAN_OR_EQUAL,O.LESS_THAN];for(const e of a)if(n.startsWith(e)){const t=n.substring(e.length);return[e,it.create(t)]}return[O.EQUALS,it.create(n)]}function Or(n,a,e,t){if(!e)if(a.isString()){const r=`${a.getValue()}`,[s,i]=Yt(r);e=s,a=i}else e=O.EQUALS;return n.compare(a,e,t)}function $i(n,a){const e=Math.max(n.isArray()?n.getRowCount():1,a.isArray()?a.getRowCount():1),t=Math.max(n.isArray()?n.getColumnCount():1,a.isArray()?a.getColumnCount():1),r=ae(e,t,n),s=ae(e,t,a);return r.mapValue((i,o,u)=>{const c=s.get(o,u);return i!=null&&i.isError()?i:c!=null&&c.isError()?c:i!=null&&i.isBoolean()&&(c!=null&&c.isBoolean())?vr(i.getValue()&&c.getValue()):$.create(!1)})}function ji(n){const a=n.getValue();let e=0;return a&&(e=1),D.create(e)}function is(n){return n.isArray()&&n.getRowCount()===1&&n.getColumnCount()===1?!0:n.isReferenceObject()?!!(n.isCell()||n.getRowCount()===1&&n.getColumnCount()===1):(n=n,!!(n.isString()||n.isNumber()||n.isBoolean()||n.isError()||n.isNull()))}function ct(n){const a=n==null?void 0:n.getPattern();let e={};if(a&&(e={s:{n:{pattern:a}}}),n==null)return{v:null,...e};if(n.isError())return{v:n.getErrorType(),t:y.CellValueType.STRING,...e};if(n.isValueObject()){const t=n,r=t.getValue();return t.isNumber()?{v:r,t:y.CellValueType.NUMBER,...e}:t.isBoolean()?{v:r?1:0,t:y.CellValueType.BOOLEAN,...e}:t.isString()?{v:r,t:y.CellValueType.STRING,...e}:t.isNull()?{v:null,...e}:{v:r,t:y.CellValueType.STRING,...e}}}function Qt(n){let a=0,e=0;return n.forEach((t,r)=>{if(r%2===1)if(t.isArray()){const s=t;a=Math.max(a,s.getRowCount()),e=Math.max(e,s.getColumnCount())}else a=Math.max(a,1),e=Math.max(e,1)}),{maxRowLength:a,maxColumnLength:e}}function Ht(n,a,e,t){const r=a.getRowCount(),s=a.getColumnCount();for(let i=0;i<n.length;i++){if(i%2===1)continue;const o=n[i],u=o.getRowCount(),c=o.getColumnCount();if(u!==r||c!==s)return ae(e,t,d.create(f.VALUE))}return null}function zt(n,a,e,t=!1){const r=[];for(let s=0;s<n.length;s++){if(s%2===1)continue;const i=n[s],o=n[s+1];ae(a,e,o,d.create(f.NA)).iterator((c,l,m)=>{if(!c)return;let g=Or(i,c);const[,_]=Yt(`${c.getValue()}`);if(t&&(g=Fr(g,i,_)),r[l]===void 0&&(r[l]=[]),r[l][m]===void 0){r[l][m]=g;return}r[l][m]=$i(r[l][m],g)})}return r}function Fr(n,a,e){return n.mapValue((t,r,s)=>{const i=a.get(r,s);return i&&Yi(i,e)?t:i!=null&&i.isError()&&e.isError()&&i.getValue()===e.getValue()?$.create(!0):$.create(!1)})}function Yi(n,a){if(n.isNumber()&&a.isNumber()||n.isBoolean()&&a.isBoolean())return!0;const e=n.isString()&&n.getValue()==="",t=a.isString()&&a.getValue()==="";return!!((e||n.isNull())&&(t||a.isNull())||n.isString()&&!e&&a.isString()&&!t)}class dn extends xt{constructor(a){super(a);const e=$e(a);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName),this.setRangeData(e.range)}isCell(){return!0}unionBy(a){if(!a.isCell())return d.create(f.REF);const e=a,t=this.unionRange(this.getRangeData(),e.getRangeData());return this._createRange(t)}unionRange(a,e){const t=a.startRow,r=a.startColumn,s=e.startRow,i=e.startColumn,o={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return t>s?(o.startRow=s,o.endRow=t):(o.startRow=t,o.endRow=s),r>i?(o.startColumn=i,o.endColumn=r):(o.startColumn=r,o.endColumn=i),a.startAbsoluteRefType&&(o.startAbsoluteRefType=a.startAbsoluteRefType),e.startAbsoluteRefType&&(o.endAbsoluteRefType=e.startAbsoluteRefType),o}_createRange(a){const e=new kt(a,this.getForcedSheetId(),this.getForcedUnitId());e.setUnitData(this.getUnitData()),e.setDefaultSheetId(this.getDefaultSheetId()),e.setDefaultUnitId(this.getDefaultUnitId()),e.setRuntimeData(this.getRuntimeData()),e.setUnitStylesData(this.getUnitStylesData()),e.setArrayFormulaCellData(this.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();e.setRefOffset(t,r);const s=this.getForcedSheetId();e.setForcedSheetName(this.getForcedSheetName()),s!=null&&e.setForcedSheetIdDirect(s);const i=this.getForcedUnitId();return i&&e.setForcedUnitIdDirect(i),e}}class gn extends xt{constructor(a){super(a);const e=$e(a);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:Number.NaN,startRow:e.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(t)}isRow(){return!0}unionBy(a){if(!a.isRow())return d.create(f.REF);const e=a;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return d.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),s=r.startRow,i=t.startRow;return s>i?t.endRow=s:(t.startRow=s,t.endRow=i),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=y.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class pn extends xt{constructor(a){super(a);const e=$e(a);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:e.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(t)}isColumn(){return!0}unionBy(a){if(!a.isColumn())return d.create(f.REF);const e=a;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return d.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),s=r.startColumn,i=t.startColumn;return s>i?t.endColumn=s:(t.startColumn=s,t.endColumn=i),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=y.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class V extends y.Disposable{constructor(e){super();h(this,"_unitId");h(this,"_subUnitId");h(this,"_row",-1);h(this,"_column",-1);h(this,"_definedNames");h(this,"needsExpandParams",!1);h(this,"needsReferenceObject",!1);h(this,"minParams",-1);h(this,"maxParams",-1);this._name=e}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}getDefinedName(e){var r;const t=this._definedNames;return t==null?null:(r=Array.from(Object.values(t)).filter(s=>s.name===e))==null?void 0:r[0]}setDefinedNames(e){this._definedNames=e}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(e,t,r,s){this._unitId=e,this._subUnitId=t,this._row=r,this._column=s}calculateCustom(...e){return null}calculate(...e){return d.create(f.VALUE)}checkArrayType(e){return e.isReferenceObject()||e.isValueObject()&&e.isArray()}getIndexNumValue(e,t=1){if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())return e.getValue()===!1?d.create(f.VALUE):t;if(e.isString()){const r=Number(e.getValue());return Number.isNaN(r)?d.create(f.REF):r}else if(e.isNumber())return e.getValue();return d.create(f.VALUE)}getZeroOrOneByOneDefault(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;e.isNumber()&&e.getValue()===0&&(t=0)}return t}getMatchTypeValue(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;if(e.isNumber()){const r=e.getValue();r<=0&&(t=r)}}return t}binarySearch(e,t,r,s){const i=t.binarySearch(e,s);if(i==null)return d.create(f.NA);let o;return r.getRowCount()===1?o=r.get(0,i)||ce.create():o=r.get(i,0)||ce.create(),o.isNull()?d.create(f.NA):o}_getOneFirstByRaw(e){return e.length===0?d.create(f.NA):e[0][0]||d.create(f.NA)}_getOneLastByRaw(e){return e.length===0?d.create(f.NA):e[e.length-1][e[0].length-1]||d.create(f.NA)}equalSearch(e,t,r,s=!0){const i=r.pickRaw(t.isEqual(e));return s?this._getOneFirstByRaw(i):this._getOneLastByRaw(i)}fuzzySearch(e,t,r,s=!0){const i=r.pickRaw(t.compare(e,O.EQUALS));return s?this._getOneFirstByRaw(i):this._getOneLastByRaw(i)}orderSearch(e,t,r,s=Pe.MIN,i=!1){const o=t.orderSearch(e,s,i);if(o==null)return d.create(f.NA);const u=r.get(o.row,o.column)||ce.create();return u.isNull()?d.create(f.NA):u}binarySearchExpand(e,t,r,s=0,i){const o=t.binarySearch(e,i);return o==null?d.create(f.NA):s===0?r.slice([o,o+1]):r.slice(void 0,[o,o+1])}equalSearchExpand(e,t,r,s=!0,i=0){const o=t.isEqual(e);let u;return s?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?d.create(f.NA):i===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}fuzzySearchExpand(e,t,r,s=!0,i=0){const o=t.compare(e,O.EQUALS);let u;return s?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?d.create(f.NA):i===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}orderSearchExpand(e,t,r,s=Pe.MIN,i=!1,o=0){const u=t.orderSearch(e,s,i);return u==null?d.create(f.NA):o===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}flattenArray(e,t=!0){const r=[];r[0]=[];for(let s=0;s<e.length;s++){let i=e[s];if((i.isString()||i.isBoolean()||i.isNull())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){let o;if(i.iterator(u=>{if(u==null||u.isNull()||t&&(u.isString()||u.isBoolean()))return!0;if(u=this._includingLogicalValuesAndText(u),u.isError())return o=u,!1;r[0].push(u)}),o!=null&&o.isError())return o}else r[0].push(i)}return pt(r,1,r[0].length)}_includingLogicalValuesAndText(e){if(e.isBoolean()&&(e=ji(e)),e.isString()){const t=Number(e.getValue());e=D.create(Number.isNaN(t)?0:t)}return e}createReferenceObject(e,t){const r=e.getForcedUnitId(),s=e.getForcedSheetId()||"",i=e.getForcedSheetName(),u=gt({unitId:r,sheetName:i,range:t});let c;return new RegExp(jt).test(u)?c=new dn(u):new RegExp(Ss).test(u)?c=new gn(u):new RegExp(As).test(u)?c=new pn(u):c=new kt(t,s,r),this._setReferenceDefault(e,c)}_setReferenceDefault(e,t){return this.unitId==null||this.subUnitId==null?d.create(f.REF):(t.setDefaultUnitId(this.unitId),t.setDefaultSheetId(this.subUnitId),t.setUnitData(e.getUnitData()),t.setRuntimeData(e.getRuntimeData()),t.setArrayFormulaCellData(e.getArrayFormulaCellData()),t.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),t)}}class $s extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std()}}class js extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std(1)}}class Ys extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var()}}class Qs extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var(1)}}var Et=(n=>(n.BETADIST="BETADIST",n.BETAINV="BETAINV",n.BINOMDIST="BINOMDIST",n.CHIDIST="CHIDIST",n.CHIINV="CHIINV",n.CHITEST="CHITEST",n.CONFIDENCE="CONFIDENCE",n.COVAR="COVAR",n.CRITBINOM="CRITBINOM",n.EXPONDIST="EXPONDIST",n.FDIST="FDIST",n.FINV="FINV",n.FTEST="FTEST",n.GAMMADIST="GAMMADIST",n.GAMMAINV="GAMMAINV",n.HYPGEOMDIST="HYPGEOMDIST",n.LOGINV="LOGINV",n.LOGNORMDIST="LOGNORMDIST",n.MODE="MODE",n.NEGBINOMDIST="NEGBINOMDIST",n.NORMDIST="NORMDIST",n.NORMINV="NORMINV",n.NORMSDIST="NORMSDIST",n.NORMSINV="NORMSINV",n.PERCENTILE="PERCENTILE",n.PERCENTRANK="PERCENTRANK",n.POISSON="POISSON",n.QUARTILE="QUARTILE",n.RANK="RANK",n.STDEV="STDEV",n.STDEVP="STDEVP",n.TDIST="TDIST",n.TINV="TINV",n.TTEST="TTEST",n.VAR="VAR",n.VARP="VARP",n.WEIBULL="WEIBULL",n.ZTEST="ZTEST",n))(Et||{});const Hs=[[js,Et.STDEV],[$s,Et.STDEVP],[Qs,Et.VAR],[Ys,Et.VARP]],zs=[];var Ws=(n=>(n.CUBEKPIMEMBER="CUBEKPIMEMBER",n.CUBEMEMBER="CUBEMEMBER",n.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",n.CUBERANKEDMEMBER="CUBERANKEDMEMBER",n.CUBESET="CUBESET",n.CUBESETCOUNT="CUBESETCOUNT",n.CUBEVALUE="CUBEVALUE",n))(Ws||{});const Gs=[];var Xs=(n=>(n.DAVERAGE="DAVERAGE",n.DCOUNT="DCOUNT",n.DCOUNTA="DCOUNTA",n.DGET="DGET",n.DMAX="DMAX",n.DMIN="DMIN",n.DPRODUCT="DPRODUCT",n.DSTDEV="DSTDEV",n.DSTDEVP="DSTDEVP",n.DSUM="DSUM",n.DVAR="DVAR",n.DVARP="DVARP",n))(Xs||{});const Rn="yyyy/mm/dd;@",Qi="yyyy/mm/dd hh:mm",Hi="h:mm A/P";function _n(n){const a=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28)),t=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate());let r=(t-a.getTime())/(1e3*3600*24);return t>e.getTime()&&(r+=1),Math.floor(r)+1}function zi(n){const a=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let r=(n.getTime()-a.getTime())/(1e3*3600*24);return n>e&&(r+=1),r+1}function Mr(n){const a=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28));let t=Math.floor(n)-1;return t>(e.getTime()-a.getTime())/(1e3*3600*24)&&(t-=1),new Date(a.getTime()+t*(1e3*3600*24))}function En(n){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(n))return!1;const e=n.replace(/-/g,"/").replace(/T.+/,""),t=new Date(`${e}`);if(Number.isNaN(t.getTime()))return!1;const r=t.getFullYear(),s=(t.getMonth()+1).toString().padStart(2,"0"),i=t.getDate().toString().padStart(2,"0"),o=`${r}-${s}-${i}`;return n.replace(/\//g,"-").split("-").map(c=>c.padStart(2,"0")).join("-")===o}function Ks(n){return wr.parseValue(n)}function Ns(n){return wr.isDate(n)}class Wi extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=ae(s,i,e),u=ae(s,i,t),c=ae(s,i,r);return o.map((l,m,g)=>{const _=u.get(m,g)||ce.create(),C=c.get(m,g)||ce.create();if(l.isError())return l;if(_.isError())return _;if(C.isError())return C;if(l.isString()||_.isString()||C.isString())return d.create(f.VALUE);let S=+l.getValue();const A=Math.floor(+_.getValue()),P=+C.getValue();if(S<0||S>9999)return d.create(f.NUM);S>=0&&S<1899&&(S+=1900);const U=new Date(S,A-1,P),T=_n(U);return T<0?d.create(f.NUM):D.create(T,Rn)})}}class Gi extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Ks(t);if(r){const{v:s,z:i}=r;if(Ns(i))return D.create(Math.trunc(s))}}return d.create(f.VALUE)}}class Xi extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t;const r=e.getValue();if(e.isString()){if(!En(`${r}`))return d.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return d.create(f.NUM);if(o===0)return D.create(0);t=Mr(o)}const s=t.getDate();return D.create(s)}}class Ki extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=ae(r,s,e),o=ae(r,s,t);return i.map((u,c,l)=>{const m=o.get(c,l)||ce.create();if(u.isError())return u;if(m.isError())return m;if(u.isString()||u.isBoolean()||m.isString()||m.isBoolean())return d.create(f.VALUE);const g=+u.getValue();if(g<0)return d.create(f.NUM);const _=Math.floor(+m.getValue()),C=Mr(g),S=C.getUTCFullYear(),A=C.getUTCMonth()+_,P=C.getUTCDate(),U=new Date(Date.UTC(S,A,P)),T=_n(U);return D.create(T,Rn)})}}var Ue=(n=>(n.DATE="DATE",n.DATEDIF="DATEDIF",n.DATEVALUE="DATEVALUE",n.DAY="DAY",n.DAYS="DAYS",n.DAYS360="DAYS360",n.EDATE="EDATE",n.EOMONTH="EOMONTH",n.HOUR="HOUR",n.ISOWEEKNUM="ISOWEEKNUM",n.MINUTE="MINUTE",n.MONTH="MONTH",n.NETWORKDAYS="NETWORKDAYS",n.NETWORKDAYS_INTL="NETWORKDAYS.INTL",n.NOW="NOW",n.SECOND="SECOND",n.TIME="TIME",n.TIMEVALUE="TIMEVALUE",n.TODAY="TODAY",n.WEEKDAY="WEEKDAY",n.WEEKNUM="WEEKNUM",n.WORKDAY="WORKDAY",n.WORKDAY_INTL="WORKDAY.INTL",n.YEAR="YEAR",n.YEARFRAC="YEARFRAC",n))(Ue||{});class Ni extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!En(`${r}`))return d.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return d.create(f.NUM);if(o===0)return D.create(1);t=Mr(o)}const s=t.getUTCMonth()+1;return D.create(s)}}class qi extends V{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",0)}calculate(){const e=new Date,t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())),r=zi(t);return D.create(r,Qi)}}class Zi extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=ae(s,i,e),u=ae(s,i,t),c=ae(s,i,r);return o.map((l,m,g)=>this._calculateTime(l,u,c,m,g))}_calculateTime(e,t,r,s,i){let o=t.get(s,i)||ce.create(),u=r.get(s,i)||ce.create();if((e.isString()||e.isBoolean())&&(e=e.convertToNumberObjectValue()),(o.isString()||o.isBoolean())&&(o=o.convertToNumberObjectValue()),(u.isString()||u.isBoolean())&&(u=u.convertToNumberObjectValue()),e.isError())return e;if(o.isError())return o;if(u.isError())return u;let c=Math.floor(+e.getValue()),l=Math.floor(+o.getValue()),m=Math.floor(+u.getValue());if(c<0||l<0||m<0||c>32767||l>32767||m>32767)return d.create(f.NUM);l+=Math.floor(m/60),m%=60,c+=Math.floor(l/60),l%=60,c%=24;const _=(c*3600+l*60+m)/86400;return D.create(_,Hi)}}class Ji extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Ks(t);if(r){const{v:s,z:i}=r;if(Ns(i))return D.create(Di(s))}}return d.create(f.VALUE)}}class eo extends V{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",0)}calculate(){const e=_n(new Date);return D.create(e,Rn)}}class to extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!En(`${r}`))return d.create(f.VALUE);t=new Date(`${r}`)}else{const o=+r;if(o<0)return d.create(f.NUM);if(o===0)return D.create(1900);t=Mr(o)}const s=t.getUTCFullYear();return D.create(s)}}const qs=[[Wi,Ue.DATE],[Gi,Ue.DATEVALUE],[Xi,Ue.DAY],[Ki,Ue.EDATE],[Ni,Ue.MONTH],[qi,Ue.NOW],[Zi,Ue.TIME],[Ji,Ue.TIMEVALUE],[eo,Ue.TODAY],[to,Ue.YEAR]],Zs=[];var Js=(n=>(n.BESSELI="BESSELI",n.BESSELJ="BESSELJ",n.BESSELK="BESSELK",n.BESSELY="BESSELY",n.BIN2DEC="BIN2DEC",n.BIN2HEX="BIN2HEX",n.BIN2OCT="BIN2OCT",n.BITAND="BITAND",n.BITLSHIFT="BITLSHIFT",n.BITOR="BITOR",n.BITRSHIFT="BITRSHIFT",n.BITXOR="BITXOR",n.COMPLEX="COMPLEX",n.CONVERT="CONVERT",n.DEC2BIN="DEC2BIN",n.DEC2HEX="DEC2HEX",n.DEC2OCT="DEC2OCT",n.DELTA="DELTA",n.ERF="ERF",n.ERF_PRECISE="ERF.PRECISE",n.ERFC="ERFC",n.ERFC_PRECISE="ERFC.PRECISE",n.GESTEP="GESTEP",n.HEX2BIN="HEX2BIN",n.HEX2DEC="HEX2DEC",n.HEX2OCT="HEX2OCT",n.IMABS="IMABS",n.IMAGINARY="IMAGINARY",n.IMARGUMENT="IMARGUMENT",n.IMCONJUGATE="IMCONJUGATE",n.IMCOS="IMCOS",n.IMCOSH="IMCOSH",n.IMCOT="IMCOT",n.IMCSC="IMCSC",n.IMCSCH="IMCSCH",n.IMDIV="IMDIV",n.IMEXP="IMEXP",n.IMLN="IMLN",n.IMLOG10="IMLOG10",n.IMLOG2="IMLOG2",n.IMPOWER="IMPOWER",n.IMPRODUCT="IMPRODUCT",n.IMREAL="IMREAL",n.IMSEC="IMSEC",n.IMSECH="IMSECH",n.IMSIN="IMSIN",n.IMSINH="IMSINH",n.IMSQRT="IMSQRT",n.IMSUB="IMSUB",n.IMSUM="IMSUM",n.IMTAN="IMTAN",n.OCT2BIN="OCT2BIN",n.OCT2DEC="OCT2DEC",n.OCT2HEX="OCT2HEX",n))(Js||{});const ea=[];var ta=(n=>(n.ACCRINT="ACCRINT",n.ACCRINTM="ACCRINTM",n.AMORDEGRC="AMORDEGRC",n.AMORLINC="AMORLINC",n.COUPDAYBS="COUPDAYBS",n.COUPDAYS="COUPDAYS",n.COUPDAYSNC="COUPDAYSNC",n.COUPNCD="COUPNCD",n.COUPNUM="COUPNUM",n.COUPPCD="COUPPCD",n.CUMIPMT="CUMIPMT",n.CUMPRINC="CUMPRINC",n.DB="DB",n.DDB="DDB",n.DISC="DISC",n.DOLLARDE="DOLLARDE",n.DOLLARFR="DOLLARFR",n.DURATION="DURATION",n.EFFECT="EFFECT",n.FV="FV",n.FVSCHEDULE="FVSCHEDULE",n.INTRATE="INTRATE",n.IPMT="IPMT",n.IRR="IRR",n.ISPMT="ISPMT",n.MDURATION="MDURATION",n.MIRR="MIRR",n.NOMINAL="NOMINAL",n.NPER="NPER",n.NPV="NPV",n.ODDFPRICE="ODDFPRICE",n.ODDFYIELD="ODDFYIELD",n.ODDLPRICE="ODDLPRICE",n.ODDLYIELD="ODDLYIELD",n.PDURATION="PDURATION",n.PMT="PMT",n.PPMT="PPMT",n.PRICE="PRICE",n.PRICEDISC="PRICEDISC",n.PRICEMAT="PRICEMAT",n.PV="PV",n.RATE="RATE",n.RECEIVED="RECEIVED",n.RRI="RRI",n.SLN="SLN",n.SYD="SYD",n.TBILLEQ="TBILLEQ",n.TBILLPRICE="TBILLPRICE",n.TBILLYIELD="TBILLYIELD",n.VDB="VDB",n.XIRR="XIRR",n.XNPV="XNPV",n.YIELD="YIELD",n.YIELDDISC="YIELDDISC",n.YIELDMAT="YIELDMAT",n))(ta||{}),Ve=(n=>(n.CELL="CELL",n.ERROR_TYPE="ERROR.TYPE",n.INFO="INFO",n.ISBLANK="ISBLANK",n.ISERR="ISERR",n.ISERROR="ISERROR",n.ISEVEN="ISEVEN",n.ISFORMULA="ISFORMULA",n.ISLOGICAL="ISLOGICAL",n.ISNA="ISNA",n.ISNONTEXT="ISNONTEXT",n.ISNUMBER="ISNUMBER",n.ISODD="ISODD",n.ISOMITTED="ISOMITTED",n.ISREF="ISREF",n.ISTEXT="ISTEXT",n.N="N",n.NA="NA",n.SHEET="SHEET",n.SHEETS="SHEETS",n.TYPE="TYPE",n))(Ve||{});class ro extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isNull()?$.create(!0):e.isArray()?e.mapValue(t=>t.isNull()?$.create(!0):$.create(!1)):$.create(!1)}}class no extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?$.create(!1):e.isError()?$.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?$.create(!1):t.isError()?$.create(!0):$.create(!1)):$.create(!1)}}class so extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?$.create(!0):e.isArray()?e.mapValue(t=>t.isError()?$.create(!0):$.create(!1)):$.create(!1)}}class ao extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return d.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return $.create(r%2===0)}}class io extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isBoolean()?$.create(!0):e.isArray()?e.mapValue(t=>t.isBoolean()?$.create(!0):$.create(!1)):$.create(!1)}}class oo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?$.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?$.create(!0):$.create(!1)):$.create(!1)}}class uo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return!e.isArray()&&!e.isString()?$.create(!0):e.isArray()?e.mapValue(t=>t.isString()?$.create(!1):$.create(!0)):$.create(!1)}}class co extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isNumber()?$.create(!0):e.isArray()?e.mapValue(t=>t.isNumber()?$.create(!0):$.create(!1)):$.create(!1)}}class lo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return d.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return $.create(r%2!==0)}}class fo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1);h(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?$.create(!0):$.create(!1)}}class ho extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()?$.create(!0):e.isArray()?e.mapValue(t=>t.isString()?$.create(!0):$.create(!1)):$.create(!1)}}const ra=[[ro,Ve.ISBLANK],[no,Ve.ISERR],[ao,Ve.ISEVEN],[lo,Ve.ISODD],[so,Ve.ISERROR],[io,Ve.ISLOGICAL],[oo,Ve.ISNA],[uo,Ve.ISNONTEXT],[co,Ve.ISNUMBER],[fo,Ve.ISREF],[ho,Ve.ISTEXT]];class mo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=!0,r=!0,s=null;for(const i of e){if(i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o!=null&&o.isError())return s=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t&&!!o.getValue(),r=!1)}),s)return s}else(i.isBoolean()||i.isNumber())&&(t=t&&!!i.getValue(),r=!1)}return r?d.create(f.VALUE):$.create(t)}}var rt=(n=>(n.AND="AND",n.BYCOL="BYCOL",n.BYROW="BYROW",n.FALSE="FALSE",n.IF="IF",n.IFERROR="IFERROR",n.IFNA="IFNA",n.IFS="IFS",n.LAMBDA="LAMBDA",n.LET="LET",n.MAKEARRAY="MAKEARRAY",n.MAP="MAP",n.NOT="NOT",n.OR="OR",n.REDUCE="REDUCE",n.SCAN="SCAN",n.SWITCH="SWITCH",n.TRUE="TRUE",n.XOR="XOR",n))(rt||{});class go extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r=$.create(!1)){if(e.isError())return e;if(t.isError())return t;if(e=this._getSingleValueObject(e),!e.isArray())return e.getValue()?t:r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=ae(s,i,e),u=ae(s,i,t,d.create(f.NA)),c=ae(s,i,r,d.create(f.NA));return o.map((l,m,g)=>{if(l.isNull())return d.create(f.NA);{const _=u.get(m,g)||ce.create(),C=c.get(m,g)||ce.create();return this._calculateSingleCell(l,_,C)}})}_getSingleValueObject(e){return e.isArray()&&e.getRowCount()===1&&e.getColumnCount()===1?e.getFirstCell():e}_calculateSingleCell(e,t,r){return e.isNull()?d.create(f.NA):e.getValue()?t.isNull()?d.create(f.NA):t:r.isNull()?d.create(f.NA):r}}class po extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;if(!e.isArray())return e.isError()?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=ae(r,s,e),o=ae(r,s,t);return i.iterator((u,c,l)=>{u!=null&&u.isError()&&i.set(c,l,o.get(c,l))}),i}}class Ro extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){return d.create(f.VALUE)}}class _o extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(...e){const t=this.getIndexNumValue(e[0]);if(typeof t!="number")return t;const r=this.getIndexNumValue(e[1]);if(typeof r!="number")return r;if(!(e[2].isValueObject()&&e[2].isLambda()))return d.create(f.VALUE);const s=e[2],i=[];for(let o=0;o<t;o++){i[o]==null&&(i[o]=[]);for(let u=0;u<r;u++){const c=s.execute(D.create(o+1),D.create(u+1));i[o][u]=c}}return new Bs(i)}isAsync(){return!0}}class Eo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=!1,r=!0,s=null;for(const i of e){if(i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o!=null&&o.isError())return s=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t||!!o.getValue(),r=!1)}),s)return s}else(i.isBoolean()||i.isNumber())&&(t=t||!!i.getValue(),r=!1)}return r?new d(f.VALUE):new $(t)}}const na=[[mo,rt.AND],[go,rt.IF],[Ro,rt.LAMBDA],[_o,rt.MAKEARRAY],[Eo,rt.OR],[po,rt.IFERROR]];class yo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",5)}calculate(e,t,r,s,i){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(s!=null&&s.isError())return s;if(i!=null&&i.isError())return i;r=r!=null?r:D.create(1),s=s!=null?s:$.create(!0),i=i!=null?i:ge.create("");const o=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1,i.isArray()?i.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1,i.isArray()?i.getColumnCount():1),c=ae(o,u,e,d.create(f.NA)),l=ae(o,u,t,d.create(f.NA)),m=ae(o,u,r,d.create(f.NA)),g=ae(o,u,s,d.create(f.NA)),_=ae(o,u,i,d.create(f.NA));return c.map((C,S,A)=>{const P=l.get(S,A)||d.create(f.NA),U=m.get(S,A)||d.create(f.NA),T=g.get(S,A)||d.create(f.NA),X=_.get(S,A)||d.create(f.NA);return C.isError()?C:P.isError()?P:U.isError()?U:T.isError()?T:X.isError()?X:this._calculateSingleCell(C,P,U,T,X)})}_calculateSingleCell(e,t,r,s,i){const o=Number.parseInt(`${Number(e.getValue())-1}`),u=Number.parseInt(`${Number(t.getValue())-1}`),c=Number.parseInt(`${Number(r.getValue())}`);if(Number.isNaN(o)||Number.isNaN(u)||Number.isNaN(c)||c<1||c>4)return d.create(f.VALUE);const l=Co(c),m=this.getZeroOrOneByOneDefault(s),g=`${i.getValue()}`,_=gr(g)?`'${g}'`:g,C={startRow:o,startColumn:u,endRow:o,endColumn:u,startAbsoluteRefType:l,endAbsoluteRefType:l},S=s&&!m?Ii(C):Ne(C);return ge.create(_!==""?`${_}!${S}`:S)}}function Co(n){switch(n){case 1:return y.AbsoluteRefType.ALL;case 2:return y.AbsoluteRefType.ROW;case 3:return y.AbsoluteRefType.COLUMN;case 4:return y.AbsoluteRefType.NONE;default:return y.AbsoluteRefType.ALL}}class Do extends V{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",1)}calculate(e){if(e==null)return D.create(this.column+1);if(e.isError())return e;if(!e.isArray())return d.create(f.NA);const t=e.getCurrentColumn(),r=e.getColumnCount(),s=[];for(let o=0;o<r;o++)s.push(D.create(t+o+1));const i={calculateValueList:[s],rowCount:1,columnCount:r,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(i)}}class bo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return D.create(1);if(!e.isArray())return d.create(f.NA);const t=e.getColumnCount();return D.create(t)}}var Se=(n=>(n.ADDRESS="ADDRESS",n.AREAS="AREAS",n.CHOOSE="CHOOSE",n.CHOOSECOLS="CHOOSECOLS",n.CHOOSEROWS="CHOOSEROWS",n.COLUMN="COLUMN",n.COLUMNS="COLUMNS",n.DROP="DROP",n.EXPAND="EXPAND",n.FILTER="FILTER",n.FORMULATEXT="FORMULATEXT",n.GETPIVOTDATA="GETPIVOTDATA",n.HLOOKUP="HLOOKUP",n.HSTACK="HSTACK",n.HYPERLINK="HYPERLINK",n.IMAGE="IMAGE",n.INDEX="INDEX",n.INDIRECT="INDIRECT",n.LOOKUP="LOOKUP",n.MATCH="MATCH",n.OFFSET="OFFSET",n.ROW="ROW",n.ROWS="ROWS",n.RTD="RTD",n.SORT="SORT",n.SORTBY="SORTBY",n.TAKE="TAKE",n.TOCOL="TOCOL",n.TOROW="TOROW",n.TRANSPOSE="TRANSPOSE",n.UNIQUE="UNIQUE",n.VLOOKUP="VLOOKUP",n.VSTACK="VSTACK",n.WRAPCOLS="WRAPCOLS",n.WRAPROWS="WRAPROWS",n.XLOOKUP="XLOOKUP",n.XMATCH="XMATCH",n))(Se||{});class So extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",4)}calculate(e,t,r,s){if(e.isError())return e;if(t.isError())return d.create(f.REF);if(!t.isArray()||r.isError()||s!=null&&s.isError())return d.create(f.NA);const i=this.getZeroOrOneByOneDefault(s);if(i==null)return d.create(f.VALUE);const o=this.getIndexNumValue(r);if(o instanceof d)return o;const u=t.slice([0,1]),c=t.slice([o-1,o]);return u==null||c==null?d.create(f.REF):e.isArray()?e.map(l=>this._handleSingleObject(l,u,c,i)):this._handleSingleObject(e,u,c,i)}_handleSingleObject(e,t,r,s){return s===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class Ao extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",2)}isAddress(){return!0}calculate(e,t){if(e.isError())return e;let r=this.getZeroOrOneByOneDefault(t);if(r==null&&(r=1),e.isArray()){const m=e;if(m.getRowCount()===1&&m.getColumnCount()===1)e=m.getFirstCell();else return m.map(()=>d.create(f.VALUE))}if(!e.isString())return d.create(f.REF);const s=this._convertToDefinedName(e.getValue());if(r===0){const m=Ts(s),{range:g,sheetName:_,unitId:C}=m,S=new kt(g);return S.setForcedUnitIdDirect(C),S.setForcedSheetName(_),this._setDefault(S)}if(new RegExp(jt).test(s))return this._setDefault(new dn(s));if(new RegExp(Ds).test(s))return this._setDefault(new gn(s));if(new RegExp(bs).test(s))return this._setDefault(new pn(s));const i=$e(s),{range:o,sheetName:u,unitId:c}=i,l=new kt(o);return l.setForcedUnitIdDirect(c),l.setForcedSheetName(u),this._setDefault(l)}_setDefault(e){return this.unitId==null||this.subUnitId==null?d.create(f.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e)}_convertToDefinedName(e){const t=this.getDefinedName(e);if(t==null)return e;const r=t.formulaOrRefString;return r==null?e:r.startsWith(ue.EQUALS)?r.slice(1):r}}class Lo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3);h(this,"needsExpandParams",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?d.create(f.REF):t.isArray()?r!=null&&r.isError()?r:t.getColumnCount()===1||t.getRowCount()===1?r!=null&&!r.isArray()?d.create(f.REF):this._handleVector(e,t,r):this._handleArray(e,t):d.create(f.VALUE)}_handleVector(e,t,r){if(r==null)r=t;else if(r.getRowCount()!==t.getRowCount()||r.getColumnCount()!==t.getColumnCount())return d.create(f.REF);return e.isArray()?e.map(s=>this.binarySearch(s,t,r)):this.binarySearch(e,t,r)}_handleArray(e,t){const r=t.getRowCount(),s=t.getColumnCount();let i,o;return s>r?(i=t.slice([0,1]),o=t.slice([r-1,r])):(i=t.slice(void 0,[0,1]),o=t.slice(void 0,[s-1,s])),i==null||o==null?d.create(f.VALUE):e.isArray()?e.map(u=>this.binarySearch(u,i,o)):this.binarySearch(e,i,o)}}class Po extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return d.create(f.REF);if(!t.isArray())return d.create(f.VALUE);const s=t.getRowCount(),i=t.getColumnCount();if(s!==1&&i!==1||r!=null&&r.isError())return d.create(f.NA);const o=this.getMatchTypeValue(r);return o==null?d.create(f.VALUE):e.isArray()?e.map(u=>this._handleSingleObject(u,t,o)):this._handleSingleObject(e,t,o)}_handleSingleObject(e,t,r){const s=this._getSearchModeValue(r),i=t.orderSearch(e,s);if(i==null)return d.create(f.NA);if(i instanceof d)return i;const o=t.getRowCount()===1?i.column+1:i.row+1;return D.create(o)}_getSearchModeValue(e){switch(e){case 1:return Pe.MIN;case 0:return Pe.NORMAL;case-1:return Pe.MAX}}}class xo extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",5);h(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,t,r,s,i){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(s!=null&&s.isError())return s;if(i!=null&&i.isError())return i;if(!e.isReferenceObject())return d.create(f.VALUE);e=e;const o=e.getRowCount(),u=e.getColumnCount();t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),s?s.isReferenceObject()&&(s=s.toArrayValueObject()):s=D.create(o),i?i.isReferenceObject()&&(i=i.toArrayValueObject()):i=D.create(u);const c=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1,i.isArray()?i.getRowCount():1),l=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1,i.isArray()?i.getColumnCount():1);if(t=t,r=r,s=s,i=i,c===1&&l===1)return this._handleSingleObject(e,t,r,s,i);const m=ae(c,l,t,d.create(f.NA)),g=ae(c,l,r,d.create(f.NA)),_=ae(c,l,s,d.create(f.NA)),C=ae(c,l,i,d.create(f.NA));return m.mapValue((S,A,P)=>{const U=g.get(A,P),T=_.get(A,P),X=C.get(A,P);return S.isError()?S:U.isError()?U:T.isError()?T:X.isError()?X:this._handleSingleObject(e,S,U,T,X,!0)})}_handleSingleObject(e,t,r,s,i,o=!1){const{startRow:u,startColumn:c}=e.getRangeData(),l=this.getIndexNumValue(t),m=this.getIndexNumValue(r);if(typeof l!="number"||typeof m!="number")return d.create(f.VALUE);const g=u+l,_=c+m;if(g<0||_<0)return d.create(f.REF);const C=this.getIndexNumValue(s),S=this.getIndexNumValue(i);if(typeof C!="number"||typeof S!="number")return d.create(f.VALUE);if(C===0||S===0)return d.create(f.REF);const A=C>0?g+C-1:g+C+1,P=S>0?_+S-1:_+S+1;if(A<0||P<0)return d.create(f.REF);if(o)return d.create(f.VALUE);const U=g<A?g:A,T=_<P?_:P,X=g>A?g:A,te=_>P?_:P,pe={startRow:U,startColumn:T,endRow:X,endColumn:te};return this.createReferenceObject(e,pe)}}class Vo extends V{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",1)}calculate(e){if(e==null)return D.create(this.row+1);if(e.isError())return e;if(!e.isArray())return d.create(f.NA);const t=e.getCurrentRow(),r=e.getRowCount(),s=[];for(let o=0;o<r;o++)s.push([D.create(t+o+1)]);const i={calculateValueList:s,rowCount:r,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(i)}}class wo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return D.create(1);if(!e.isArray())return d.create(f.NA);const t=e.getRowCount();return D.create(t)}}class vo extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",4)}calculate(e,t,r,s){return e.isError()?e:t.isError()?t:t.isArray()?r.isError()?r:s!=null&&s.isError()?s:(s=s!=null?s:$.create(!0),is(e)&&is(s)&&r.isArray()?this._handleArrayColIndexNum(e,t,r,s):this._handleNonArrayColIndexNum(e,t,r,s)):d.create(f.VALUE)}_handleArrayColIndexNum(e,t,r,s){e=e.isArray()?e.getFirstCell():e;const i=this.getZeroOrOneByOneDefault(s);if(i==null)return d.create(f.VALUE);let o;const u=[];return r.iterator((c,l,m)=>{if(c==null)return o=d.create(f.VALUE),!1;const g=this._handleTableArray(e,t,c,i);if(g.isError())return o=g,!1;u[l]===void 0&&(u[l]=[]),u[l][m]=g}),o||pt(u,u.length,u[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(e,t,r,s){const i=Math.max(e.isArray()?e.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,s.isArray()?s.getColumnCount():1),u=ae(i,o,e),c=ae(i,o,s);return u.map((l,m,g)=>{if(l.isError())return l;const _=c.get(m,g);if(_==null)return d.create(f.VALUE);if(_.isError())return _;const C=this.getZeroOrOneByOneDefault(_);return C==null?d.create(f.VALUE):this._handleTableArray(l,t,r,C)})}_handleTableArray(e,t,r,s){const i=this.getIndexNumValue(r);if(i instanceof d)return i;const o=t.slice(void 0,[0,1]);if(o==null)return d.create(f.VALUE);const u=t.slice(void 0,[i-1,i]);return u==null?d.create(f.REF):this._handleSingleObject(e,o,u,s)}_handleSingleObject(e,t,r,s){return s===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class Uo extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",6)}calculate(e,t,r,s,i,o){if(e.isError())return e;if(t.isError())return d.create(f.REF);if(!t.isArray())return d.create(f.VALUE);const u=t.getRowCount(),c=t.getColumnCount();if(u!==1&&c!==1)return d.create(f.VALUE);if(r.isError())return d.create(f.REF);if(!r.isArray())return d.create(f.VALUE);const l=r.getRowCount(),m=r.getColumnCount();if(u!==l&&c!==m)return d.create(f.VALUE);if(s!=null&&s.isError()||i!=null&&i.isError()||o!=null&&o.isError())return d.create(f.NA);s==null&&(s=d.create(f.NA));const g=this.getIndexNumValue(i||D.create(0));if(g instanceof d)return g;const _=this.getIndexNumValue(o||D.create(1));if(_ instanceof d)return _;if(e.isArray()){let A;return u===1?A=r.slice([0,1]):A=r.slice(void 0,[0,1]),A==null?d.create(f.NA):e.map(P=>{const U=this._handleSingleObject(P,t,A,g,_);return U.isError()?s:U})}if(c===m&&u===l){const A=this._handleSingleObject(e,t,r,g,_);return A.isError()?s:A}let C=0;c===m&&(C=1);const S=this._handleExpandObject(e,t,r,g,_,C);return S==null?d.create(f.NA):S}_handleExpandObject(e,t,r,s,i,o=0){return(i===2||i===-2)&&s!==2?this.binarySearchExpand(e,t,r,o,this._getSearchModeValue(i)):s===2?this.fuzzySearchExpand(e,t,r,i!==-1,o):s===-1||s===1?this.orderSearchExpand(e,t,r,s===1?Pe.MAX:Pe.MIN,i===-1,o):this.equalSearchExpand(e,t,r,i!==-1,o)}_handleSingleObject(e,t,r,s,i){return(i===2||i===-2)&&s!==2?this.binarySearch(e,t,r,this._getSearchModeValue(i)):s===2?this.fuzzySearch(e,t,r,i!==-1):s===-1||s===1?this.orderSearch(e,t,r,s===1?Pe.MAX:Pe.MIN,i===-1):this.equalSearch(e,t,r,i!==-1)}_getSearchModeValue(e){return e===-2?Xe.MAX:Xe.MIN}}class Oo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",4)}calculate(e,t,r,s){if(e.isError())return e;if(t.isError())return d.create(f.REF);if(!t.isArray())return d.create(f.VALUE);const i=t.getRowCount(),o=t.getColumnCount();if(i!==1&&o!==1)return d.create(f.VALUE);if(r!=null&&r.isError()||s!=null&&s.isError())return d.create(f.NA);const u=this.getIndexNumValue(r||D.create(0));if(u instanceof d)return u;const c=this.getIndexNumValue(s||D.create(1));return c instanceof d?c:e.isArray()?e.map(l=>this._handleSingleObject(l,t,u,c)):this._handleSingleObject(e,t,u,c)}_handleSingleObject(e,t,r,s){let i;if((s===2||s===-2)&&r!==2){const o=this._getSearchModeValue(s);i=t.binarySearch(e,o)}else if(r===2){const o=t.compare(e,O.EQUALS);let u;if(s!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return d.create(f.NA);i=t.getRowCount()===1?u.column:u.row}else if(r===-1||r===1){const o=t.orderSearch(e,r===1?Pe.MAX:Pe.MIN,s===-1);if(o==null)return d.create(f.NA);if(o instanceof d)return o;i=t.getRowCount()===1?o.column:o.row}else{const o=t.isEqual(e);let u;if(s!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return d.create(f.NA);i=t.getRowCount()===1?u.column:u.row}return i==null?d.create(f.NA):D.create(i+1)}_getSearchModeValue(e){return e===-2?Xe.MAX:Xe.MIN}}class Fo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255);h(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()&&(e=e.toArrayValueObject()),e=e,!e.isArray()){const u=e.convertToNumberObjectValue();return u.isError()?u:t[Math.trunc(+u.getValue())-1]||d.create(f.VALUE)}let r=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;t.forEach((u,c)=>{if(u.isArray()){const l=u;r=Math.max(r,l.getRowCount()),s=Math.max(s,l.getColumnCount())}else r=Math.max(r,1),s=Math.max(s,1)});const i=ae(r,s,e,d.create(f.NA)),o=t.map(u=>(u.isReferenceObject()&&(u=u.toArrayValueObject()),ae(r,s,u,d.create(f.NA))));return i.map((u,c,l)=>{if(u.isError())return u;const m=u.convertToNumberObjectValue();if(m.isError())return m;const g=o[Math.trunc(+m.getValue())-1];let _=(g==null?void 0:g.get(c,l))||d.create(f.VALUE);return _!=null&&_.isNull()&&(_=D.create(0)),_})}}class Mo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",4);h(this,"needsReferenceObject",!0)}calculate(e,t,r,s){if(e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(s!=null&&s.isError())return s;let i=0,o=0;if(e.isValueObject())i=1,o=1;else if(e.isReferenceObject()){const{startRow:l,endRow:m,startColumn:g,endColumn:_}=e.getRangeData();i=m-l+1,o=_-g+1}else return d.create(f.VALUE);i===1&&o>1&&r==null?(r=t!=null?t:D.create(0),t=D.create(0)):(t=t!=null?t:D.create(0),r=r!=null?r:D.create(0)),s=s!=null?s:D.create(1),t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),s.isReferenceObject()&&(s=s.toArrayValueObject());const u=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1);if(t=t,r=r,s=s,u===1&&c===1)return this._calculateSingleCell(e,t,r,s);{const l=ae(u,c,t,d.create(f.NA)),m=ae(u,c,r,d.create(f.NA)),g=ae(u,c,s,d.create(f.NA));return l.map((_,C,S)=>{const A=m.get(C,S)||ce.create(),P=g.get(C,S)||ce.create(),U=this._calculateSingleCell(e,_,A,P);return U.isReferenceObject()?U.toArrayValueObject().getFirstCell():U})}}_calculateSingleCell(e,t,r,s){if(t.isError())return t;const i=this._getNumberValue(t);if(i===void 0||i<0)return d.create(f.VALUE);if(r.isError())return r;const o=this._getNumberValue(r);if(o===void 0||o<0)return d.create(f.VALUE);if(s.isError())return s;const u=this._getAreaNumberValue(s);return u===void 0||u<1?d.create(f.VALUE):e.isReferenceObject()?this._getReferenceObject(e,i,o,u):e.isValueObject()&&i===1&&o===1?e:d.create(f.REF)}_getNumberValue(e){if(e==null)return 0;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getAreaNumberValue(e){if(e==null)return 1;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getReferenceObject(e,t,r,s){const{startRow:i,endRow:o,startColumn:u,endColumn:c}=e.getRangeData();let l=0,m=0,g=0,_=0;if(t===0?(l=i,m=o):l=m=i+t-1,r===0?(g=u,_=c):g=_=u+r-1,l>o||g>c)return d.create(f.REF);const C={startRow:l,startColumn:g,endRow:m,endColumn:_};return this.createReferenceObject(e,C)}}const sa=[[yo,Se.ADDRESS],[Fo,Se.CHOOSE],[Do,Se.COLUMN],[bo,Se.COLUMNS],[Mo,Se.INDEX],[Ao,Se.INDIRECT],[xo,Se.OFFSET],[Vo,Se.ROW],[wo,Se.ROWS],[vo,Se.VLOOKUP],[Lo,Se.LOOKUP],[Po,Se.MATCH],[So,Se.HLOOKUP],[Uo,Se.XLOOKUP],[Oo,Se.XMATCH]];class Bo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.abs()}}class To extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acos()}}class ko extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acosh()}}class Io extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:os(t)):os(e)}}function os(n){let a=n.getValue();if(n.isBoolean()&&(a=a?1:0),!Number.isFinite(a))return d.create(f.VALUE);a=Number(a);let e=Math.atan(1/a);return a<0&&(e+=Math.PI),Number.isNaN(e)?d.create(f.VALUE):D.create(e)}class $o extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asin()}}class jo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asinh()}}class Yo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atan()}}class Qo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atan2(e))}}class Ho extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atanh()}}class zo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.cos()}}var Ee=(n=>(n.ABS="ABS",n.ACOS="ACOS",n.ACOSH="ACOSH",n.ACOT="ACOT",n.ACOTH="ACOTH",n.AGGREGATE="AGGREGATE",n.ARABIC="ARABIC",n.ASIN="ASIN",n.ASINH="ASINH",n.ATAN="ATAN",n.ATAN2="ATAN2",n.ATANH="ATANH",n.BASE="BASE",n.CEILING="CEILING",n.CEILING_MATH="CEILING.MATH",n.CEILING_PRECISE="CEILING.PRECISE",n.COMBIN="COMBIN",n.COMBINA="COMBINA",n.COS="COS",n.COSH="COSH",n.COT="COT",n.COTH="COTH",n.CSC="CSC",n.CSCH="CSCH",n.DECIMAL="DECIMAL",n.DEGREES="DEGREES",n.EVEN="EVEN",n.EXP="EXP",n.FACT="FACT",n.FACTDOUBLE="FACTDOUBLE",n.FLOOR="FLOOR",n.FLOOR_MATH="FLOOR.MATH",n.FLOOR_PRECISE="FLOOR.PRECISE",n.GCD="GCD",n.INT="INT",n.ISO_CEILING="ISO.CEILING",n.LCM="LCM",n.LET="LET",n.LN="LN",n.LOG="LOG",n.LOG10="LOG10",n.MDETERM="MDETERM",n.MINVERSE="MINVERSE",n.MMULT="MMULT",n.MOD="MOD",n.MROUND="MROUND",n.MULTINOMIAL="MULTINOMIAL",n.MUNIT="MUNIT",n.ODD="ODD",n.PI="PI",n.POWER="POWER",n.PRODUCT="PRODUCT",n.QUOTIENT="QUOTIENT",n.RADIANS="RADIANS",n.RAND="RAND",n.RANDARRAY="RANDARRAY",n.RANDBETWEEN="RANDBETWEEN",n.ROMAN="ROMAN",n.ROUND="ROUND",n.ROUNDDOWN="ROUNDDOWN",n.ROUNDUP="ROUNDUP",n.SEC="SEC",n.SECH="SECH",n.SERIESSUM="SERIESSUM",n.SEQUENCE="SEQUENCE",n.SIGN="SIGN",n.SIN="SIN",n.SINH="SINH",n.SQRT="SQRT",n.SQRTPI="SQRTPI",n.SUBTOTAL="SUBTOTAL",n.SUM="SUM",n.SUMIF="SUMIF",n.SUMIFS="SUMIFS",n.SUMPRODUCT="SUMPRODUCT",n.SUMSQ="SUMSQ",n.SUMX2MY2="SUMX2MY2",n.SUMX2PY2="SUMX2PY2",n.SUMXMY2="SUMXMY2",n.TAN="TAN",n.TANH="TANH",n.TRUNC="TRUNC",n))(Ee||{});class Wo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.mod(t))}}class Go extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.pow(t))}}class Xo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(1);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=this._multiplyArray(s)),s.isError())return s;if(t=t.multiply(s),t.isError())return t}}return t}_multiplyArray(e){let t=D.create(1);return e.iterator(r=>{if(r==null||r.isString()||r.isBoolean()||r.isNull())return!0;if(r.isError())return t=r,!1;t=t.multiply(r)}),t}}class Ko extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255);h(this,"needsReferenceObject",!0)}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()){const r=[];return e.iterator((s,i,o)=>{r[i]==null&&(r[i]=[]),r[i][o]=this._handleSingleObject(s,...t)}),pt(r,r.length,r[0].length)}return this._handleSingleObject(e,...t)}_handleSingleObject(e,...t){const r=this._getIndexNumValue(e);let s;if(r instanceof d)return r;switch(r){case 1:s=this._average(!1,...t);break;case 2:s=this._count(!1,...t);break;case 3:s=this._counta(!1,...t);break;case 4:s=this._max(!1,...t);break;case 5:s=this._min(!1,...t);break;case 6:s=this._product(!1,...t);break;case 7:s=this._stdev(!1,...t);break;case 8:s=this._stdevp(!1,...t);break;case 9:s=this._sum(!1,...t);break;case 10:s=this._var(!1,...t);break;case 11:s=this._varp(!1,...t);break;case 101:s=this._average(!0,...t);break;case 102:s=this._count(!0,...t);break;case 103:s=this._counta(!0,...t);break;case 104:s=this._max(!0,...t);break;case 105:s=this._min(!0,...t);break;case 106:s=this._product(!0,...t);break;case 107:s=this._stdev(!0,...t);break;case 108:s=this._stdevp(!0,...t);break;case 109:s=this._sum(!0,...t);break;case 110:s=this._var(!0,...t);break;case 111:s=this._varp(!0,...t);break;default:s=d.create(f.VALUE)}return s}_getIndexNumValue(e){const t=e?Number(e.getValue()):0;if(Number.isNaN(t))return d.create(f.VALUE);const r=Math.floor(t);return r>=1&&r<=11||r>=101&&r<=111?r:d.create(f.VALUE)}_average(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.mean()}_count(e,...t){let r=D.create(0);for(let s=0;s<t.length;s++){const i=t[s];if(!i.isReferenceObject())return d.create(f.VALUE);const o=i.getRowData();i.iterator((u,c)=>{if(e&&this._isRowHidden(o,c))return!0;u!=null&&u.isNumber()&&(r=r.plusBy(1))})}return r}_counta(e,...t){let r=D.create(0);for(let s=0;s<t.length;s++){const i=t[s];if(!i.isReferenceObject())return d.create(f.VALUE);const o=i.getRowData();i.iterator((u,c)=>{if(e&&this._isRowHidden(o,c)||u==null||u.isNull())return!0;r=r.plusBy(1)})}return r}_max(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?D.create(0):r.max()}_min(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?D.create(0):r.min()}_product(e,...t){const r=this._flattenRefArray(e,...t);if(r.isError())return r;if(this._isBlankArrayObject(r))return D.create(0);let s=D.create(1);return r.iterator(i=>{s=s.multiply(i)}),s}_stdev(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?d.create(f.DIV_BY_ZERO):r.std(1)}_stdevp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?d.create(f.DIV_BY_ZERO):r.std()}_sum(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.sum()}_var(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?d.create(f.DIV_BY_ZERO):r.var(1)}_varp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?d.create(f.DIV_BY_ZERO):r.var()}_flattenRefArray(e,...t){const r=[];r[0]=[];for(let s=0;s<t.length;s++){const i=t[s];if(i.isError())return i;if(!i.isReferenceObject())return d.create(f.VALUE);const o=i.getRowData();let u;if(i.iterator((c,l)=>{if(e&&this._isRowHidden(o,l)||c==null||c.isNull()||c.isString()||c.isBoolean())return!0;if(c.isError())return u=c,!1;r[0].push(c)}),u!=null&&u.isError())return u}return pt(r,1,r[0].length)}_isRowHidden(e,t){const r=e[t];return r?r.hd===y.BooleanNumber.TRUE:!1}_isBlankArrayObject(e){return e.getArrayValue()[0].length===0}}class No extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0);for(let r=0;r<e.length;r++){let s=e[r];if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&(s=s.sum()),t=t.plus(s),t.isError())return t}return t}}class qo extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:!e.isArray()||r&&!r.isArray()?d.create(f.VALUE):t.isArray()?t.map(s=>this._handleSingleObject(e,s,r)):this._handleSingleObject(e,t,r)}_handleSingleObject(e,t,r){let s=Or(e,t);const[,i]=Yt(`${t.getValue()}`);s=Fr(s,e,i);const o=r?r.slice([0,e.getRowCount()],[0,e.getColumnCount()]):e;return o?o.pick(s).sum():d.create(f.VALUE)}}class Zo extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(!e.isArray()||t.length<2||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return d.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Qt(t),i=Ht(t,e,r,s);if(i)return i;const o=zt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>e.pick(o).sum())),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(s)}}class Jo extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tan()}}class eu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tanh()}}const aa=[[Bo,Ee.ABS],[To,Ee.ACOS],[ko,Ee.ACOSH],[Io,Ee.ACOT],[$o,Ee.ASIN],[jo,Ee.ASINH],[Yo,Ee.ATAN],[Qo,Ee.ATAN2],[Ho,Ee.ATANH],[zo,Ee.COS],[Wo,Ee.MOD],[Go,Ee.POWER],[Xo,Ee.PRODUCT],[Ko,Ee.SUBTOTAL],[No,Ee.SUM],[qo,Ee.SUMIF],[Zo,Ee.SUMIFS],[Jo,Ee.TAN],[eu,Ee.TANH]];class tu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2);h(this,"_compareType",O.EQUALS)}setCompareType(e){this._compareType=e}calculate(e,t){return e.isError()?e:t.isError()?t:e.compare(t,this._compareType)}}class yn extends qe{constructor(e){super("");h(this,"_values",[]);this._values=e}static create(e){return new yn(e)}isCube(){return!0}sum(){const e=D.create(0);return this._values.forEach(t=>{e.plus(t.sum())}),e}max(){let e=D.create(Number.NEGATIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isLessThan(r)&&(e=r)}),e}min(){let e=D.create(Number.POSITIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isGreaterThan(r)&&(e=r)}),e}count(){const e=D.create(0);return this._values.forEach(t=>{e.plus(t.count())}),e}countA(){const e=D.create(0);return this._values.forEach(t=>{e.plus(t.countA())}),e}countBlank(){const e=D.create(0);return this._values.forEach(t=>{e.plus(t.countBlank())}),e}}class ru extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const s=e[r];if(s.isError())return s;if(!s.isArray())return d.create(f.VALUE);t.push(s)}return yn.create(t)}}class nu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:!t.isArray()&&t.getValue()===0?d.create(f.DIV_BY_ZERO):e.divided(t)}}var Ae=(n=>(n.COMPARE="COMPARE",n.DIVIDED="DIVIDED",n.MINUS="MINUS",n.MULTIPLY="MULTIPLY",n.PLUS="PLUS",n.UNION="UNION",n.CUBE="CUBE",n))(Ae||{});class su extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.minus(t)}}class au extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.multiply(t)}}class iu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.plus(t)}}const ia=[[tu,Ae.COMPARE],[nu,Ae.DIVIDED],[su,Ae.MINUS],[au,Ae.MULTIPLY],[iu,Ae.PLUS],[ru,Ae.CUBE]];class ou extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0),r=D.create(0);for(let s=0;s<e.length;s++){let i=e[s];if((i.isString()||i.isBoolean())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){if(t=t.plus(i.sum()),t.isError())return t;r=r.plus(i.count())}else i.isNull()||(t=t.plus(i),r=r.plus(D.create(1)))}return t.divided(r)}}class uu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0);for(let r=0;r<e.length;r++){const s=e[r];s.isError()||(s.isArray()?t=t.plus(s.count()):s.isString()?s.convertToNumberObjectValue().isError()||(t=t.plus(D.create(1))):s.isNull()||(t=t.plus(D.create(1))))}return t}}class cu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0);for(let r=0;r<e.length;r++){let s=e[r];if(s.isError()){t=t.plus(D.create(1));continue}s.isArray()?(s=s.countA(),t=t.plus(s)):s.isNull()||(t=t.plus(D.create(1)))}return t}}var me=(n=>(n.AVEDEV="AVEDEV",n.AVERAGE="AVERAGE",n.AVERAGEA="AVERAGEA",n.AVERAGEIF="AVERAGEIF",n.AVERAGEIFS="AVERAGEIFS",n.BETA_DIST="BETA.DIST",n.BETA_INV="BETA.INV",n.BINOM_DIST="BINOM.DIST",n.BINOM_DIST_RANGE="BINOM.DIST.RANGE",n.BINOM_INV="BINOM.INV",n.CHISQ_DIST="CHISQ.DIST",n.CHISQ_DIST_RT="CHISQ.DIST.RT",n.CHISQ_INV="CHISQ.INV",n.CHISQ_INV_RT="CHISQ.INV.RT",n.CHISQ_TEST="CHISQ.TEST",n.CONFIDENCE_NORM="CONFIDENCE.NORM",n.CONFIDENCE_T="CONFIDENCE.T",n.CORREL="CORREL",n.COUNT="COUNT",n.COUNTA="COUNTA",n.COUNTBLANK="COUNTBLANK",n.COUNTIF="COUNTIF",n.COUNTIFS="COUNTIFS",n.COVARIANCE_P="COVARIANCE.P",n.COVARIANCE_S="COVARIANCE.S",n.DEVSQ="DEVSQ",n.EXPON_DIST="EXPON.DIST",n.F_DIST="F.DIST",n.F_DIST_RT="F.DIST.RT",n.F_INV="F.INV",n.F_INV_RT="F.INV.RT",n.F_TEST="F.TEST",n.FISHER="FISHER",n.FISHERINV="FISHERINV",n.FORECAST="FORECAST",n.FORECAST_ETS="FORECAST.ETS",n.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",n.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",n.FORECAST_ETS_STAT="FORECAST.ETS.STAT",n.FORECAST_LINEAR="FORECAST.LINEAR",n.FREQUENCY="FREQUENCY",n.GAMMA="GAMMA",n.GAMMA_DIST="GAMMA.DIST",n.GAMMA_INV="GAMMA.INV",n.GAMMALN="GAMMALN",n.GAMMALN_PRECISE="GAMMALN.PRECISE",n.GAUSS="GAUSS",n.GEOMEAN="GEOMEAN",n.GROWTH="GROWTH",n.HARMEAN="HARMEAN",n.HYPGEOM_DIST="HYPGEOM.DIST",n.INTERCEPT="INTERCEPT",n.KURT="KURT",n.LARGE="LARGE",n.LINEST="LINEST",n.LOGEST="LOGEST",n.LOGNORM_DIST="LOGNORM.DIST",n.LOGNORM_INV="LOGNORM.INV",n.MAX="MAX",n.MAXA="MAXA",n.MAXIFS="MAXIFS",n.MEDIAN="MEDIAN",n.MIN="MIN",n.MINA="MINA",n.MINIFS="MINIFS",n.MODE_MULT="MODE.MULT",n.MODE_SNGL="MODE.SNGL",n.NEGBINOM_DIST="NEGBINOM.DIST",n.NORM_DIST="NORM.DIST",n.NORM_INV="NORM.INV",n.NORM_S_DIST="NORM.S.DIST",n.NORM_S_INV="NORM.S.INV",n.PEARSON="PEARSON",n.PERCENTILE_EXC="PERCENTILE.EXC",n.PERCENTILE_INC="PERCENTILE.INC",n.PERCENTRANK_EXC="PERCENTRANK.EXC",n.PERCENTRANK_INC="PERCENTRANK.INC",n.PERMUT="PERMUT",n.PERMUTATIONA="PERMUTATIONA",n.PHI="PHI",n.POISSON_DIST="POISSON.DIST",n.PROB="PROB",n.QUARTILE_EXC="QUARTILE.EXC",n.QUARTILE_INC="QUARTILE.INC",n.RANK_AVG="RANK.AVG",n.RANK_EQ="RANK.EQ",n.RSQ="RSQ",n.SKEW="SKEW",n.SKEW_P="SKEW.P",n.SLOPE="SLOPE",n.SMALL="SMALL",n.STANDARDIZE="STANDARDIZE",n.STDEV_P="STDEV.P",n.STDEV_S="STDEV.S",n.STDEVA="STDEVA",n.STDEVPA="STDEVPA",n.STEYX="STEYX",n.T_DIST="T.DIST",n.T_DIST_2T="T.DIST.2T",n.T_DIST_RT="T.DIST.RT",n.T_INV="T.INV",n.T_INV_2T="T.INV.2T",n.T_TEST="T.TEST",n.TREND="TREND",n.TRIMMEAN="TRIMMEAN",n.VAR_P="VAR.P",n.VAR_S="VAR.S",n.VARA="VARA",n.VARPA="VARPA",n.WEIBULL_DIST="WEIBULL.DIST",n.Z_TEST="Z.TEST",n))(me||{});class lu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=s.max()),s.isError())return s;t=this._validator(t,s)}}return t.getValue()===Number.NEGATIVE_INFINITY?D.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class fu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=s.min()),s.isError())return s;t=this._validator(t,s)}}return t.getValue()===Number.POSITIVE_INFINITY?D.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class hu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std(1)}}class mu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std()}}class du extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var(1)}}class gu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var()}}class pu extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return d.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return d.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Qt(t),i=Ht(t,e,r,s);if(i)return i;const o=zt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?_e.create("0"):u.max()})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(s)}}class Ru extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0),r=D.create(0);for(let s=0;s<e.length;s++){let i=e[s];if((i.isString()||i.isBoolean())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o==null||o.isNull())return!0;if(o.isString()&&(o=o.convertToNumberObjectValue(),o.isError()&&(o=D.create(0))),o.isBoolean()&&(o=o.convertToNumberObjectValue()),o.isError())return t=o,!1;t=t.plus(o),r=r.plus(D.create(1))}),t.isError())return t}else i.isNull()||(t=t.plus(i),r=r.plus(D.create(1)))}return t.divided(r)}}class _u extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return d.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return d.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Qt(t),i=Ht(t,e,r,s);if(i)return i;const o=zt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?_e.create("0"):u.min()})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(s)}}class Eu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3);h(this,"needsReferenceObject",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:(e.isReferenceObject()&&(e=e.toArrayValueObject()),e.isArray()||(e=pt([[e]],1,1)),t.isReferenceObject()&&(t=t.toArrayValueObject()),r&&!(r!=null&&r.isReferenceObject())?d.create(f.NA):(t=t,t.isArray()?t.map(s=>this._handleSingleObject(e,s,r)):this._handleSingleObject(e,t,r)))}_handleSingleObject(e,t,r){let s=Or(e,t);const[,i]=Yt(`${t.getValue()}`);s=Fr(s,e,i);let o=r?this._createRangeReferenceObject(r,e):e;if(!o)return d.create(f.VALUE);if(o.isError())return o;o.isReferenceObject()&&(o=o.toArrayValueObject()),o=o;const u=o.pick(s),c=u.sum(),l=u.count();return c.divided(l)}_createRangeReferenceObject(e,t){const r=e.getRowCount(),s=e.getColumnCount(),i=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1;if(r===i&&s===o)return e;const{startRow:u,startColumn:c}=e.getRangeData(),l={startRow:u,startColumn:c,endRow:u+i-1,endColumn:c+o-1};return this.createReferenceObject(e,l)}}class yu extends V{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return d.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return d.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Qt(t),i=Ht(t,e,r,s);if(i)return i;const o=zt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o),c=u.sum(),l=u.count();return c.divided(l)})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(s)}}class Cu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()||t.isError()?d.create(f.NA):e.isArray()?t.isArray()?t.mapValue(r=>this._handleSingleObject(e,r)):this._handleSingleObject(e,t):d.create(f.VALUE)}_handleSingleObject(e,t){let r=Or(e,t);const[,s]=Yt(`${t.getValue()}`);r=Fr(r,e,s);const i=e.pick(r);return this._countA(i)}_countA(e){let t=D.create(0);return e.iterator(r=>{if(r==null)return!0;t=t.plusBy(1)}),t}}class Du extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255)}calculate(...e){if(e.length%2!==0||e.some((o,u)=>u%2===0&&!o.isArray()))return d.create(f.VALUE);const{maxRowLength:t,maxColumnLength:r}=Qt(e),s=Ht(e,e[0],t,r);if(s)return s;const i=zt(e,t,r,!0);return this._aggregateResults(i)}_aggregateResults(e){const t=e.map(s=>s.map(i=>bu(i))),r={calculateValueList:t,rowCount:t.length,columnCount:t[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return _e.create(r)}}function bu(n){let a=0;return n.iterator(e=>{e!=null&&e.isBoolean()&&e.getValue()===!0&&a++}),D.create(a)}class Su extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.getValue()===""||e.isNull()?D.create(1):e.isArray()?e.countBlank():D.create(0)}}class Au extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&s.iterator(i=>{if((i==null||i.isNull()||i.isString())&&(i=D.create(0)),i.isBoolean()&&(i=i.convertToNumberObjectValue()),i.isError())return t=i,!1;t=this._validator(t,i)}),t.isError())return t;t=this._validator(t,s)}}return t.getValue()===Number.POSITIVE_INFINITY?D.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class Lu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&s.iterator(i=>{if((i==null||i.isNull()||i.isString())&&(i=D.create(0)),i.isBoolean()&&(i=i.convertToNumberObjectValue()),i.isError())return t=i,!1;t=this._validator(t,i)}),t.isError())return t;t=this._validator(t,s)}}return t.getValue()===Number.NEGATIVE_INFINITY?D.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class Pu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=D.create(0),r=D.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(u=xu(u),u.isError())return u;if(e[o]=u,t=t.plus(u.sum()),t.isError())return t;r=r.plus(u.count())}else u.isNull()||(t=t.plus(u),r=r.plus(D.create(1)))}if(r.getValue()===0)return d.create(f.NUM);const s=t.divided(r);if(s.isError())return s;let i=D.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(i=i.plus(u.minus(s).abs().sum()),i.isError())return i}else u.isNull()||(i=i.plus(u.minus(s).abs()))}return i.divided(r)}}function xu(n){const a=[];a[0]=[];let e=null;return n.iterator((t,r,s)=>{if(t!=null&&t.isError())return e=t,!1;t!=null&&t.isNumber()&&a[0].push(t)}),e||pt(a,1,a[0].length)}const oa=[[Pu,me.AVEDEV],[ou,me.AVERAGE],[Ru,me.AVERAGEA],[Eu,me.AVERAGEIF],[yu,me.AVERAGEIFS],[uu,me.COUNT],[cu,me.COUNTA],[Su,me.COUNTBLANK],[Cu,me.COUNTIF],[Du,me.COUNTIFS],[lu,me.MAX],[Lu,me.MAXA],[pu,me.MAXIFS],[fu,me.MIN],[Au,me.MINA],[_u,me.MINIFS],[$s,me.STDEV_P],[js,me.STDEV_S],[hu,me.STDEVA],[mu,me.STDEVPA],[Ys,me.VAR_P],[Qs,me.VAR_S],[du,me.VARA],[gu,me.VARPA]];class Vu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=0,r=0;e.forEach(i=>{if(i.isArray()){const o=i;t=Math.max(t,o.getRowCount()),r=Math.max(r,o.getColumnCount())}else t=Math.max(t,1),r=Math.max(r,1)});let s=null;for(const i of e)s=ae(t,r,i,d.create(f.NA)).mapValue((u,c,l)=>{const m=s&&s.get(c,l);if(m!=null&&m.isError())return m;if(u.isError())return u;let g=m==null?void 0:m.getValue(),_=u==null?void 0:u.getValue();m!=null&&m.isBoolean()&&(g=`${g}`.toLocaleUpperCase()),u!=null&&u.isBoolean()&&(_=`${_}`.toLocaleUpperCase());const C=m!=null&&m.isNull()?"":g!=null?g:"",S=u!=null&&u.isNull()?"":_!=null?_:"";return ge.create(`${C}${S}`)});return s||d.create(f.VALUE)}}var Ge=(n=>(n.ASC="ASC",n.ARRAYTOTEXT="ARRAYTOTEXT",n.BAHTTEXT="BAHTTEXT",n.CHAR="CHAR",n.CLEAN="CLEAN",n.CODE="CODE",n.CONCAT="CONCAT",n.CONCATENATE="CONCATENATE",n.DBCS="DBCS",n.DOLLAR="DOLLAR",n.EXACT="EXACT",n.FIND="FIND",n.FINDB="FINDB",n.FIXED="FIXED",n.LEFT="LEFT",n.LEFTB="LEFTB",n.LEN="LEN",n.LENB="LENB",n.LOWER="LOWER",n.MID="MID",n.MIDB="MIDB",n.NUMBERVALUE="NUMBERVALUE",n.PHONETIC="PHONETIC",n.PROPER="PROPER",n.REPLACE="REPLACE",n.REPLACEB="REPLACEB",n.REPT="REPT",n.RIGHT="RIGHT",n.RIGHTB="RIGHTB",n.SEARCH="SEARCH",n.SEARCHB="SEARCHB",n.SUBSTITUTE="SUBSTITUTE",n.T="T",n.TEXT="TEXT",n.TEXTAFTER="TEXTAFTER",n.TEXTBEFORE="TEXTBEFORE",n.TEXTJOIN="TEXTJOIN",n.TEXTSPLIT="TEXTSPLIT",n.TRIM="TRIM",n.UNICHAR="UNICHAR",n.UNICODE="UNICODE",n.UPPER="UPPER",n.VALUE="VALUE",n.VALUETOTEXT="VALUETOTEXT",n.CALL="CALL",n.EUROCONVERT="EUROCONVERT",n.REGISTER_ID="REGISTER.ID",n))(Ge||{});class wu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return D.create(0);if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString();return D.create(t.length)}return d.create(f.VALUE)}}function vu(n){let a=0;for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);t>=12352&&t<=12543||t>=19968&&t<=40959||t>=44032&&t<=55215?a+=2:a+=1}return a}class Uu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return D.create(0);if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString(),r=vu(t);return D.create(r)}return d.create(f.VALUE)}}const Ou=(n,a)=>wr.format(n,a);class Fu extends V{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=ae(r,s,e),o=ae(r,s,t);return i.map((u,c,l)=>{if(u.isError()||u.isString()||u.isBoolean())return u;let m=o.get(c,l)||ge.create(" ");if(m.isError())return m;if(m.isBoolean())return d.create(f.VALUE);m.isNull()&&(m=ge.create(" "));const g=`${m.getValue()}`;u.isNull()&&(u=D.create(0));const _=u.getValue(),C=Ou(g,_);return ge.create(C)})}}class Mu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return ge.create("");if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString().toLowerCase();return ge.create(t)}return d.create(f.VALUE)}}class Bu extends V{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t="",r=null;for(const s of e)if(s.isArray()){if(s.iterator(i=>{if(i==null||i.isNull())return!0;if(i.isError())return r=i,!1;i.isBoolean()?t+=`${i.getValue()}`.toLocaleUpperCase():(i.isString()||i.isNumber())&&(t+=i.getValue())}),r)return r}else!s.isError()&&!s.isNull()&&(t+=s.getValue());return ge.create(t)}}const ua=[[Bu,Ge.CONCAT],[Vu,Ge.CONCATENATE],[wu,Ge.LEN],[Uu,Ge.LENB],[Fu,Ge.TEXT],[Mu,Ge.LOWER]],ca=[];var la=(n=>n)(la||{});const fa=[];var ha=(n=>(n.ENCODEURL="ENCODEURL",n.FILTERXML="FILTERXML",n.WEBSERVICE="WEBSERVICE",n))(ha||{});function Tu(n,a,e,t,r,s,i){var m;const o=(i==null?void 0:i.f)||"",u=(i==null?void 0:i.si)||"",c=y.isFormulaString(o),l=y.isFormulaId(u);if(c&&l)n.setValue(r,s,{f:o,si:u}),e.set(u,{f:o,r,c:s}),a.setValue(r,s,{f:o,si:u});else if(c&&!l)n.setValue(r,s,{f:o}),a.setValue(r,s,{f:o});else if(!c&&l)n.setValue(r,s,{f:"",si:u});else if(!c&&!l&&n.getValue(r,s)){const g=n.getValue(r,s),_=(g==null?void 0:g.f)||"",C=(g==null?void 0:g.si)||"";if(y.isFormulaString(_)&&y.isFormulaId(C)){const S=(m=e.get(C))==null?void 0:m.f;S?t.set(C,S):t.set(C,_)}n.realDeleteValue(r,s),a.setValue(r,s,null)}}function ku(n,a,e,t){const r=n==null?void 0:n.getValue(e,t);if(r==null)return!0;const{startRow:s,startColumn:i,endRow:o,endColumn:u}=r;for(let c=s;c<=o;c++)for(let l=i;l<=u;l++)a.realDeleteValue(c,l)}var Iu=Object.defineProperty,$u=Object.getOwnPropertyDescriptor,ju=(n,a,e,t)=>{for(var r=t>1?void 0:t?$u(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Iu(a,e,r),r},us=(n,a)=>(e,t)=>a(e,t,n);exports.FormulaDataModel=class extends y.Disposable{constructor(e,t){super();h(this,"_formulaData",{});h(this,"_arrayFormulaRange",{});h(this,"_arrayFormulaCellData",{});this._univerInstanceService=e,this._lexerTreeBuilder=t,this.initFormulaData()}clearPreviousArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{var c,l,m,g;const i=r[s],o=(l=(c=this._arrayFormulaRange)==null?void 0:c[t])==null?void 0:l[s];if(o==null)return!0;let u=new y.ObjectMatrix;((m=this._arrayFormulaCellData[t])==null?void 0:m[s])!=null&&(u=new y.ObjectMatrix((g=this._arrayFormulaCellData[t])==null?void 0:g[s])),i.forValue((_,C)=>{var X;const S=(X=o==null?void 0:o[_])==null?void 0:X[C];if(S==null)return!0;const{startRow:A,startColumn:P,endRow:U,endColumn:T}=S;for(let te=A;te<=U;te++)for(let pe=P;pe<=T;pe++)u.setValue(te,pe,null)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][s]=u.getData())})})}mergeArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]==null&&(this._arrayFormulaRange[t]={}),this._arrayFormulaCellData[t]==null&&(this._arrayFormulaCellData[t]={}),Object.keys(r).forEach(s=>{var c,l;const i=r[s],o=new y.ObjectMatrix((c=this._arrayFormulaRange[t])==null?void 0:c[s]),u=new y.ObjectMatrix((l=this._arrayFormulaCellData[t])==null?void 0:l[s]);i.forValue((m,g)=>{const _=o==null?void 0:o.getValue(m,g);if(_==null)return!0;const{startRow:C,startColumn:S,endRow:A,endColumn:P}=_;for(let U=C;U<=A;U++)for(let T=S;T<=P;T++)u.setValue(U,T,null)}),i.forValue((m,g,_)=>{u.setValue(m,g,_)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][s]=u.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(e){this._formulaData=e}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(e){this._arrayFormulaRange=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}mergeArrayFormulaRange(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]||(this._arrayFormulaRange[t]={}),Object.keys(r).forEach(s=>{var u;const i=new y.ObjectMatrix(r[s]),o=new y.ObjectMatrix((u=this._arrayFormulaRange[t])==null?void 0:u[s]);i.forValue((c,l,m)=>{o.setValue(c,l,m)}),this._arrayFormulaRange[t]&&(this._arrayFormulaRange[t][s]=o.getData())})})}mergeFormulaData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r!==void 0){if(r===null){delete this._formulaData[t];return}this._formulaData[t]||(this._formulaData[t]={}),Object.keys(r).forEach(s=>{var c,l;const i=r[s];if(i===void 0)return;if(i===null){(c=this._formulaData[t])==null||delete c[s];return}const o=new y.ObjectMatrix(i),u=new y.ObjectMatrix(((l=this._formulaData[t])==null?void 0:l[s])||{});o.forValue((m,g,_)=>{_==null?u.realDeleteValue(m,g):u.setValue(m,g,_)}),this._formulaData[t][s]=u.clone()})}})}deleteArrayFormulaRange(e,t,r,s){var u;const i=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(i==null)return;const o=new y.ObjectMatrix(i);o.getValue(r,s)&&(o.realDeleteValue(r,s),this._arrayFormulaRange[e]&&(this._arrayFormulaRange[e][t]=o.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(y.UniverInstanceType.UNIVER_SHEET).length===0)return;const t=this._univerInstanceService.getCurrentUnitForType(y.UniverInstanceType.UNIVER_SHEET),r=t.getUnitId();this._formulaData[r]={},t.getSheets().forEach(i=>{const o=i.getCellMatrix(),u=i.getSheetId();ma(this._formulaData,r,u,o)})}getCalculateData(){const e=this._univerInstanceService.getAllUnitsForType(y.UniverInstanceType.UNIVER_SHEET),t={},r={};for(const s of e){const i=s.getUnitId(),o=s.getSheets(),u={},c={};for(const l of o){const m=l.getSheetId(),g=l.getConfig();u[m]={cellData:new y.ObjectMatrix(g.cellData),rowCount:g.rowCount,columnCount:g.columnCount,rowData:g.rowData,columnData:g.columnData},c[l.getName()]=l.getSheetId()}t[i]=u,r[i]=c}return{allUnitData:t,unitSheetNameMap:r}}updateFormulaData(e,t,r){const s=new y.ObjectMatrix(r),i=this.getFormulaIdMap(e,t),o=new Map,u=this._formulaData;u[e]==null&&(u[e]={});const c=u[e];c[t]==null&&(c[t]={});const l=new y.ObjectMatrix(c[t]||{}),m=new y.ObjectMatrix;return s.forValue((g,_,C)=>{Tu(l,m,i,o,g,_,C)}),l.forValue((g,_,C)=>{const S=(C==null?void 0:C.f)||"",A=(C==null?void 0:C.si)||"";if(y.isFormulaId(A)){const P=i.get(A),U=o.get(A);if(P&&!y.isFormulaString(S)){const T=P.f,X=_-P.c,te=g-P.r;l.setValue(g,_,{f:T,si:A,x:X,y:te}),m.setValue(g,_,{f:T,si:A,x:X,y:te})}else if(typeof U=="string"){const T=(C==null?void 0:C.x)||0,X=(C==null?void 0:C.y)||0,te=this._lexerTreeBuilder.moveFormulaRefOffset(U,T,X);o.set(A,{r:g,c:_,f:te}),l.setValue(g,_,{f:te,si:A}),m.setValue(g,_,{f:te,si:A})}else if(typeof U=="object"){const T=_-U.c,X=g-U.r;l.setValue(g,_,{f:U.f,si:A,x:T,y:X}),m.setValue(g,_,{f:U.f,si:A,x:T,y:X})}}}),m.clone()}updateArrayFormulaRange(e,t,r){var u;const s=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(!s)return;const i=new y.ObjectMatrix(s);new y.ObjectMatrix(r).forValue((c,l,m)=>{i.realDeleteValue(c,l)})}updateArrayFormulaCellData(e,t,r){var l,m;const s=(l=this._arrayFormulaRange[e])==null?void 0:l[t];if(!s)return;const i=new y.ObjectMatrix(s),o=(m=this._arrayFormulaCellData[e])==null?void 0:m[t];if(!o)return;const u=new y.ObjectMatrix(o);new y.ObjectMatrix(r).forValue((g,_,C)=>{ku(i,u,g,_)})}getFormulaItemBySId(e,t,r){const s=this._formulaData;if(s[r]==null)return null;const i=s[r];if((i==null?void 0:i[t])==null)return null;const o=new y.ObjectMatrix(i[t]||{});let u=null;return o.forValue((c,l,m)=>{if(m==null)return!0;const{f:g,si:_,x:C=0,y:S=0}=m;if(_===e&&g.length>0&&C===0&&S===0)return u=m,!1}),u}getFormulaDataItem(e,t,r,s){var i,o,u,c;return(c=(u=(o=(i=this._formulaData)==null?void 0:i[s])==null?void 0:o[r])==null?void 0:u[e])==null?void 0:c[t]}getFormulaIdMap(e,t){const r=new Map,s=this._formulaData;if(s[e]==null)return r;const i=s[e];return(i==null?void 0:i[t])==null||new y.ObjectMatrix(i[t]||{}).forValue((u,c,l)=>{const m=(l==null?void 0:l.f)||"",g=(l==null?void 0:l.si)||"",_=(l==null?void 0:l.x)||0,C=(l==null?void 0:l.y)||0;y.isFormulaString(m)&&y.isFormulaId(g)&&_===0&&C===0&&r.set(g,{f:m,r:u,c})}),r}getFormulaStringByCell(e,t,r,s){const i=this.getFormulaDataItem(e,t,r,s);if(i==null)return null;const{f:o,si:u,x:c=0,y:l=0}=i;if(u!=null&&(c!==0||l!==0)){let m="";if(o.length>0)m=o;else{const g=this.getFormulaItemBySId(u,r,s);if(g==null||g.f.length===0)return null;m=g.f}return m=this._lexerTreeBuilder.moveFormulaRefOffset(m,c,l),m}return y.isFormulaString(o)?o:null}};exports.FormulaDataModel=ju([us(0,y.IUniverInstanceService),us(1,q.Inject(xr))],exports.FormulaDataModel);function ma(n,a,e,t){const r=new Map,s=new y.ObjectMatrix;t.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",m=(c==null?void 0:c.si)||"",g=y.isFormulaString(l),_=y.isFormulaId(m);g&&_?(s.setValue(o,u,{f:l,si:m}),r.set(m,{f:l,r:o,c:u})):g&&!_?s.setValue(o,u,{f:l}):!g&&_&&s.setValue(o,u,{f:"",si:m})}),s.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",m=(c==null?void 0:c.si)||"";if(y.isFormulaId(m)&&!y.isFormulaString(l)){const g=r.get(m);if(g){const _=g.f,C=u-g.c,S=o-g.r;s.setValue(o,u,{f:_,si:m,x:C,y:S})}else s.realDeleteValue(o,u)}}),n[a]||(n[a]={});const i=s.clone();return n[a][e]=i,{[a]:{[e]:i}}}const Rr={id:"formula.mutation.set-array-formula-data",type:y.CommandType.MUTATION,handler:(n,a)=>!0},Cn={id:"formula.mutation.set-formula-calculation-start",type:y.CommandType.MUTATION,handler:()=>!0},Dn={id:"formula.mutation.set-formula-calculation-stop",type:y.CommandType.MUTATION,handler:()=>!0},_r={id:"formula.mutation.set-formula-calculation-notification",type:y.CommandType.MUTATION,handler:()=>!0},bn={id:"formula.mutation.set-formula-calculation-result",type:y.CommandType.MUTATION,handler:()=>!0},Br={id:"formula.mutation.set-formula-data",type:y.CommandType.MUTATION,handler:(n,a)=>!0};class da extends y.Disposable{constructor(){super();h(this,"_definedNameMap",{});h(this,"_update$",new Ct.Subject);h(this,"update$",this._update$.asObservable());h(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});h(this,"_currentRange$",new Ct.Subject);h(this,"currentRange$",this._currentRange$.asObservable());h(this,"_focusRange$",new Ct.Subject);h(this,"focusRange$",this._focusRange$.asObservable())}dispose(){this._definedNameMap={}}focusRange(e,t){const r=this.getValueById(e,t);r!=null&&this._focusRange$.next({...r,unitId:e})}setCurrentRange(e){this._currentRange=e,this._currentRange$.next(e)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return Ne(this._currentRange.range)}registerDefinedNames(e,t){this._definedNameMap[e]=t,this._update()}registerDefinedName(e,t){this._definedNameMap[e]==null&&(this._definedNameMap[e]={}),this._definedNameMap[e][t.id]=t,this._update()}removeDefinedName(e,t){var r;(r=this._definedNameMap[e])==null||delete r[t],this._update()}removeUnitDefinedName(e){delete this._definedNameMap[e],this._update()}getDefinedNameMap(e){return this._definedNameMap[e]}getValueByName(e,t){var s;const r=this._definedNameMap[e];return r==null?null:(s=Array.from(Object.values(r)).filter(i=>i.name===t))==null?void 0:s[0]}getValueById(e,t){var r;return(r=this._definedNameMap[e])==null?void 0:r[t]}hasDefinedName(e){return this._definedNameMap[e]==null?!1:(Array.from(Object.values(this._definedNameMap[e])).length||0)!==0}_update(){this._update$.next(null)}}const Wt=q.createIdentifier("univer.formula.defined-names.service");var Yu=Object.defineProperty,Qu=Object.getOwnPropertyDescriptor,Hu=(n,a,e,t)=>{for(var r=t>1?void 0:t?Qu(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Yu(a,e,r),r},zu=(n,a)=>(e,t)=>a(e,t,n);exports.FormulaCurrentConfigService=class extends y.Disposable{constructor(e){super();h(this,"_unitData",{});h(this,"_unitStylesData",{});h(this,"_arrayFormulaCellData",{});h(this,"_formulaData",{});h(this,"_sheetNameMap",{});h(this,"_forceCalculate",!1);h(this,"_dirtyRanges",[]);h(this,"_dirtyNameMap",{});h(this,"_dirtyDefinedNameMap",{});h(this,"_dirtyUnitFeatureMap",{});h(this,"_dirtyUnitOtherFormulaMap",{});h(this,"_excludedCell");h(this,"_sheetIdToNameMap",{});h(this,"_executeUnitId","");h(this,"_executeSubUnitId","");this._univerInstanceService=e}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(e){this._executeUnitId=e}setExecuteSubUnitId(e){this._executeSubUnitId=e}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(e,t){return this._sheetIdToNameMap[e]==null?"":this._sheetIdToNameMap[e][t]||""}load(e){if(e.allUnitData&&e.unitSheetNameMap&&e.unitStylesData)this._unitData=e.allUnitData,this._unitStylesData=e.unitStylesData,this._sheetNameMap=e.unitSheetNameMap;else{const{allUnitData:t,unitSheetNameMap:r,unitStylesData:s}=this._loadSheetData();this._unitData=t,this._unitStylesData=s,this._sheetNameMap=r}this._formulaData=e.formulaData,this._arrayFormulaCellData=ys(e.arrayFormulaCellData),this._forceCalculate=e.forceCalculate,this._dirtyRanges=e.dirtyRanges,this._dirtyNameMap=e.dirtyNameMap,this._dirtyDefinedNameMap=e.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=e.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=e.dirtyUnitOtherFormulaMap,this._excludedCell=e.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}loadDirtyRangesAndExcludedCell(e,t){this._dirtyRanges=e,this._excludedCell=t,this._dirtyNameMap={}}registerUnitData(e){this._unitData=e}registerFormulaData(e){this._formulaData=e}registerSheetNameMap(e){this._sheetNameMap=e}_mergeNameMap(e,t){Object.keys(t).forEach(r=>{t[r]&&Object.keys(t[r]).forEach(s=>{e[r]==null&&(e[r]={}),e[r][t[r][s]]=s})}),this._sheetIdToNameMap={},Object.keys(e).forEach(r=>{Object.keys(e[r]).forEach(s=>{this._sheetIdToNameMap[r]==null&&(this._sheetIdToNameMap[r]={}),this._sheetIdToNameMap[r][e[r][s]]=s})})}_loadSheetData(){const e=this._univerInstanceService.getAllUnitsForType(y.UniverInstanceType.UNIVER_SHEET),t=this._univerInstanceService.getCurrentUnitForType(y.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getActiveSheet();this._executeUnitId=t==null?void 0:t.getUnitId(),this._executeSubUnitId=r==null?void 0:r.getSheetId();const s={},i={},o={};for(const u of e){const c=u.getUnitId(),l=u.getSheets(),m={},g={};for(const _ of l){const C=_.getSheetId(),S=_.getConfig();m[C]={cellData:new y.ObjectMatrix(S.cellData),rowCount:S.rowCount,columnCount:S.columnCount,rowData:S.rowData,columnData:S.columnData},g[_.getName()]=_.getSheetId()}s[c]=m,i[c]=u.getStyles(),o[c]=g}return{allUnitData:s,unitStylesData:i,unitSheetNameMap:o}}};exports.FormulaCurrentConfigService=Hu([zu(0,y.IUniverInstanceService)],exports.FormulaCurrentConfigService);const Ze=q.createIdentifier("univer.formula.current-data.service");var Wu=Object.defineProperty,Gu=Object.getOwnPropertyDescriptor,Xu=(n,a,e,t)=>{for(var r=t>1?void 0:t?Gu(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Wu(a,e,r),r},qr=(n,a)=>(e,t)=>a(e,t,n);let St=class extends y.Disposable{constructor(n,a,e){super(),this._definedNamesService=n,this._lexerTreeBuilder=a,this._formulaCurrentConfigService=e}treeBuilder(n,a=!0){return this._lexerTreeBuilder.treeBuilder(n,a,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(n){const a=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&a[e]!=null){const t=Object.keys(a[e]);for(let r=0,s=t.length;r<s;r++){const i=t[r];if(n.indexOf(i)>-1)return!0}}return!1}_checkDefinedNameDirty(n){const a=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&a[e]!=null){const t=Object.keys(a[e]);for(let r=0,s=t.length;r<s;r++)if(t[r]===n)return!0}return!1}_injectDefinedName(n){const a=this._formulaCurrentConfigService.getExecuteUnitId();if(a==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const e=this._lexerTreeBuilder.getSequenceNode(n);let t="",r=!1;const s=[];for(let i=0,o=e.length;i<o;i++){const u=e[i];if(typeof u=="string"){t+=u;continue}const{nodeType:c,token:l}=u;if(c===Le.REFERENCE||c===Le.FUNCTION){const m=this._definedNamesService.getValueByName(a,l);if(m){let g=m.formulaOrRefString;g.substring(0,1)===ue.EQUALS&&(g=g.substring(1)),t+=g,s.push(m.name),r=!0}else this._checkDefinedNameDirty(l)?(t+=f.NAME,r=!0,s.push(l)):t+=l}else t+=l}return{sequenceString:t,hasDefinedName:r,definedNames:s}}};St=Xu([qr(0,Wt),qr(1,q.Inject(xr)),qr(2,Ze)],St);var Ku=Object.defineProperty,Nu=Object.getOwnPropertyDescriptor,qu=(n,a,e,t)=>{for(var r=t>1?void 0:t?Nu(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Ku(a,e,r),r},Zu=(n,a)=>(e,t)=>a(e,t,n),Ie=(n=>(n[n.IDLE=0]="IDLE",n[n.START_DEPENDENCY=1]="START_DEPENDENCY",n[n.START_CALCULATION=2]="START_CALCULATION",n[n.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",n[n.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",n[n.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",n[n.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",n[n.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",n))(Ie||{}),yt=(n=>(n[n.INITIAL=0]="INITIAL",n[n.STOP_EXECUTION=1]="STOP_EXECUTION",n[n.NOT_EXECUTED=2]="NOT_EXECUTED",n[n.SUCCESS=3]="SUCCESS",n))(yt||{});exports.FormulaRuntimeService=class extends y.Disposable{constructor(e){super();h(this,"_formulaExecuteStage",0);h(this,"_stopState",!1);h(this,"_currentRow",-1);h(this,"_currentColumn",-1);h(this,"_currentRowCount",Number.NEGATIVE_INFINITY);h(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);h(this,"_currentSubUnitId","");h(this,"_currentUnitId","");h(this,"_runtimeData",{});h(this,"_runtimeOtherData",{});h(this,"_unitArrayFormulaRange",{});h(this,"_runtimeArrayFormulaCellData",{});h(this,"_runtimeClearArrayFormulaCellData",{});h(this,"_runtimeFeatureRange",{});h(this,"_runtimeFeatureCellData",{});h(this,"_functionsExecutedState",0);h(this,"_functionDefinitionPrivacyVar",new Map);h(this,"_totalFormulasToCalculate",0);h(this,"_completedFormulasCount",0);h(this,"_totalArrayFormulasToCalculate",0);h(this,"_completedArrayFormulasCount",0);h(this,"_formulaCycleIndex",0);h(this,"_isCycleDependency",!1);this._currentConfigService=e}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={}}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setTotalArrayFormulasToCalculate(e){this._totalArrayFormulasToCalculate=e}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(e){this._completedArrayFormulasCount=e}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(e){this._totalFormulasToCalculate=e}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(e){this._completedFormulasCount=e}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(e){this._formulaCycleIndex=e}getFormulaCycleIndex(){return this._formulaCycleIndex}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(e){this._formulaExecuteStage=e}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}setCurrent(e,t,r,s,i,o){this._currentRow=e,this._currentColumn=t,this._currentRowCount=r,this._currentColumnCount=s,this._currentSubUnitId=i,this._currentUnitId=o}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(e,t){this._functionDefinitionPrivacyVar.set(e,t)}getFunctionDefinitionPrivacyVar(e){return this._functionDefinitionPrivacyVar.get(e)}setRuntimeOtherData(e,t){const r=this._currentSubUnitId,s=this._currentUnitId;this._runtimeOtherData[s]===void 0&&(this._runtimeOtherData[s]={});const i=this._runtimeOtherData[s];i[r]===void 0&&(i[r]={});const o=i[r];let u=[];if(t.isReferenceObject()||t.isValueObject()&&t.isArray()){const c=t,{startRow:l,startColumn:m}=c.getRangePosition();c.iterator((g,_,C)=>{const S=ct(g),A=_-l,P=C-m;u[A]==null&&(u[A]=[]),u[A][P]=S})}else u=[[ct(t)]];o[e]=u}setRuntimeData(e){const t=this._currentRow,r=this._currentColumn,s=this._currentRowCount,i=this.currentColumnCount,o=this._currentSubUnitId,u=this._currentUnitId;this._runtimeData[u]==null&&(this._runtimeData[u]={});const c=this._runtimeData[u];c[o]==null&&(c[o]=new y.ObjectMatrix),this._unitArrayFormulaRange[u]==null&&(this._unitArrayFormulaRange[u]={});const l=this._unitArrayFormulaRange[u];let m=new y.ObjectMatrix;l[o]&&(m=new y.ObjectMatrix(l[o])),this._runtimeArrayFormulaCellData[u]===void 0&&(this._runtimeArrayFormulaCellData[u]={});const g=this._runtimeArrayFormulaCellData[u];g[o]==null&&(g[o]=new y.ObjectMatrix),this._runtimeClearArrayFormulaCellData[u]===void 0&&(this._runtimeClearArrayFormulaCellData[u]={});const _=this._runtimeClearArrayFormulaCellData[u];_[o]==null&&(_[o]=new y.ObjectMatrix);const C=c[o],S=g[o],A=_[o];if(e.isReferenceObject()||e.isValueObject()&&e.isArray()){const P=e,{startRow:U,startColumn:T,endRow:X,endColumn:te}=P.getRangePosition();if(U===X&&T===te){const ye=P.getFirstCell(),de=ct(ye);C.setValue(t,r,de),A.setValue(t,r,de);return}const pe={startRow:t,startColumn:r,endRow:X-U+t,endColumn:te-T+r};if(m.setValue(t,r,pe),l[o]=m.getData(),this._checkIfArrayFormulaRangeHasData(u,o,t,r,pe)||this._checkIfArrayFormulaExceeded(s,i,pe)){const ye=ct(d.create(f.SPILL));C.setValue(t,r,ye),A.setValue(t,r,ye)}else{const ye=d.create(f.SPILL);P.iterator((de,se,Z)=>{const K=ct(de);if(se===U&&Z===T){if(de!=null&&de.isError()&&de.isEqualType(ye))return A.setValue(t,r,{}),C.setValue(t,r,{...ct(ye)}),!1;C.setValue(t,r,{...K})}const fe=se-U+t,ot=Z-T+r;S.setValue(fe,ot,K)})}}else{const P=ct(e);C.setValue(t,r,P),A.setValue(t,r,P)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(e,t){this._runtimeFeatureRange[e]=t}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e,t){this._runtimeFeatureCellData[e]=t}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(e,t,r,s,i){var _,C,S,A,P,U,T,X,te,pe,ye,de;const{startRow:o,startColumn:u,endRow:c,endColumn:l}=i,m=this._currentConfigService.getUnitData(),g=(S=(C=(_=this._unitArrayFormulaRange[e])==null?void 0:_[t])==null?void 0:C[r])==null?void 0:S[s];for(let se=o;se<=c;se++)for(let Z=u;Z<=l;Z++){if(se===r&&s===Z)continue;const K=(U=(P=(A=this._runtimeData)==null?void 0:A[e])==null?void 0:P[t])==null?void 0:U.getValue(se,Z),fe=(te=(X=(T=this._runtimeArrayFormulaCellData)==null?void 0:T[e])==null?void 0:X[t])==null?void 0:te.getValue(se,Z),ot=(de=(ye=(pe=m==null?void 0:m[e])==null?void 0:pe[t])==null?void 0:ye.cellData)==null?void 0:de.getValue(se,Z);if(!y.isNullCell(K)||!y.isNullCell(fe)&&!this._isInArrayFormulaRange(g,se,Z)||!y.isNullCell(ot))return!0}return!1}_isInArrayFormulaRange(e,t,r){if(e==null)return!1;const{startRow:s,startColumn:i,endRow:o,endColumn:u}=e;return t>=s&&t<=o&&r>=i&&r<=u}_checkIfArrayFormulaExceeded(e,t,r){return r.endRow>=e||r.endColumn>=t}_isInDirtyRange(e,t,r,s){const i=this._currentConfigService.getDirtyRanges();return i.length===0?!0:ps(i,e,t,r,s)}};exports.FormulaRuntimeService=qu([Zu(0,Ze)],exports.FormulaRuntimeService);const Te=q.createIdentifier("univer.formula.runtime.service");var ee=(n=>(n.REFERENCE="ReferenceNode",n.VALUE="ValueNode",n.OPERATOR="OperatorNode",n.FUNCTION="FunctionNode",n.LAMBDA="LambdaNode",n.LAMBDA_PARAMETER="LambdaNodeParameter",n.ERROR="ErrorNode",n.BASE="Base",n.ROOT="Root",n.UNION="UnionNode",n.PREFIX="PrefixNode",n.SUFFIX="SuffixNode",n.NULL="NullNode",n))(ee||{});const je=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]);class we extends y.Disposable{constructor(e){super();h(this,"_children",[]);h(this,"_definedNames",[]);h(this,"_parent");h(this,"_valueObject");h(this,"_calculateState",!1);h(this,"_async",!1);h(this,"_address",!1);h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._token=e}dispose(){var e;this._children.forEach(t=>{t.dispose()}),(e=this._valueObject)==null||e.dispose(),this._parent=null}get nodeType(){return ee.BASE}isAsync(){return this._async}isAddress(){return this._address}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(e){this._parent=e,e.addChildren(this)}getChildren(){return this._children}addChildren(...e){this._children.push(...e)}getToken(){return this._token}setValue(e){this._valueObject=e}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(e=!0){}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}async executeAsync(){return Promise.resolve(dt.SUCCESS)}serialize(){const e=this.getToken(),t=this.getChildren(),r=[],s=t.length;for(let o=0;o<s;o++){const u=t[o];r.push(u.serialize())}const i={token:e,nodeType:this.nodeType};return s>0&&(i.children=r),i}hasDefinedName(e){return this._definedNames.includes(e)}setDefinedNames(e){this._definedNames=e}}class be extends we{constructor(e){super(e);h(this,"_errorValueObject");this._errorValueObject=d.create(e)}get nodeType(){return ee.ERROR}static create(e){return new be(e)}getValue(){return this._errorValueObject}}const Ye=100;class Qe extends y.Disposable{get zIndex(){return 0}create(a,e,t){let r;return a instanceof N?r=a.getToken():r=a,new we(r)}}class cn extends we{get nodeType(){return ee.ROOT}execute(){const e=this.getChildren()[0];e==null?this.setValue(d.create(f.VALUE)):this.setValue(e.getValue())}}class ga extends Qe{get zIndex(){return je.get(ee.ROOT)||Ye}checkAndCreateNodeType(a){if(!(a instanceof N))return;if(a.getToken()===nt)return new cn(nt)}}class pa extends y.Disposable{constructor(){super(...arguments);h(this,"_functionExecutors",new Map);h(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.set(r.name,r)}}getExecutors(){return this._functionExecutors}getExecutor(e){return this._functionExecutors.get(e)}hasExecutor(e){return this._functionExecutors.has(e)}unregisterExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.delete(r)}}registerDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.set(r.functionName,r)}return y.toDisposable(()=>{for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(e){return this._functionDescriptions.get(e)}hasDescription(e){return this._functionDescriptions.has(e)}unregisterDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r)}}}const He=q.createIdentifier("univer.formula.function.service");var Ju=Object.defineProperty,ec=Object.getOwnPropertyDescriptor,tc=(n,a,e,t)=>{for(var r=t>1?void 0:t?ec(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Ju(a,e,r),r},cs=(n,a)=>(e,t)=>a(e,t,n);class Er extends we{constructor(a,e,t){super(e),this._accessor=a,this._operatorString=e,this._functionExecutor=t}get nodeType(){return ee.PREFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");e.isReferenceObject()&&(e=e.toArrayValueObject()),this._operatorString===Ce.MINUS?t=this._functionExecutor.calculate(D.create(0),e):this._operatorString===Ce.AT?t=this._handlerAT(e):t=d.create(f.VALUE),this.setValue(t)}_handlerAT(a){if(!a.isReferenceObject())return d.create(f.VALUE);const e=a;if(e.isCell())return d.create(f.VALUE);const t=this._accessor.get(Te),r=t.currentRow||0,s=t.currentColumn||0;return e.isRow()?e.getCellByColumn(s):e.isColumn()?e.getCellByRow(r):e.isRange()||e.isTable()?e.getCellByPosition():d.create(f.VALUE)}}let yr=class extends Qe{constructor(n,a){super(),this._functionService=n,this._injector=a}get zIndex(){return je.get(ee.PREFIX)||Ye}checkAndCreateNodeType(n){if(!(n instanceof N))return;const a=n.getToken(),e=a.trim();if(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')return;let t="";if(e===Ce.MINUS)t=Ae.MINUS;else return e===Ce.AT?new Er(this._injector,e):void 0;const r=this._functionService.getExecutor(t);return r?new Er(this._injector,e,r):(console.error(`No function ${a}`),be.create(f.NAME))}};yr=tc([cs(0,He),cs(1,q.Inject(q.Injector))],yr);function Ra(n,a,e){let t,r;const s=n.slice(0,2);let i=0;if(new RegExp(Ce.MINUS,"g").test(s)){const o=a.getExecutor(Ae.MINUS);t=new Er(e,Ce.MINUS,o),i++}return new RegExp(Ce.AT,"g").test(s)&&(r=new Er(e,Ce.AT),t&&r.setParent(t),i++),i>0&&(n=n.slice(i)),{tokenTrim:n,minusPrefixNode:t,atPrefixNode:r}}var rc=Object.defineProperty,nc=Object.getOwnPropertyDescriptor,sc=(n,a,e,t)=>{for(var r=t>1?void 0:t?nc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&rc(a,e,r),r},Ut=(n,a)=>(e,t)=>a(e,t,n);class ac extends we{constructor(a,e,t,r,s){super(a),this._functionExecutor=e,this._currentConfigService=t,this._runtimeService=r,this._definedNamesService=s,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return ee.FUNCTION}async executeAsync(){const a=[],e=this.getChildren(),t=e.length;this._compatibility();for(let i=0;i<t;i++){const o=e[i].getValue();o!=null&&(o.isReferenceObject()?a.push(o.toArrayValueObject()):a.push(o))}const r=this._calculate(a);let s;return r.isAsyncObject()||r.isAsyncArrayObject()?s=await r.getValue():s=r,this._setRefData(s),this.setValue(s),Promise.resolve(dt.SUCCESS)}execute(){const a=[],e=this.getChildren(),t=e.length;this._compatibility();for(let s=0;s<t;s++){const i=e[s].getValue();i!=null&&(i.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?a.push(i.toArrayValueObject()):a.push(i))}const r=this._calculate(a);this._setRefData(r),this.setValue(r)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const a=this.getChildren(),e=a.length;if(!this._functionExecutor.needsExpandParams||e!==3)return;const t=a[1].getValue(),r=a[2].getValue();if(!(t!=null&&t.isReferenceObject())&&!(r!=null&&r.isReferenceObject()))return;const s=t.getRangeData(),i=r.getRangeData(),{startRow:o,startColumn:u,endRow:c,endColumn:l}=s,m=c-o+1,g=l-u+1,{startRow:_,startColumn:C,endRow:S,endColumn:A}=i,P=S-_+1,U=A-C+1;m!==P&&(i.endRow+=m-P),g!==U&&(i.endColumn+=g-U)}_calculate(a){var s;const{minParams:e,maxParams:t}=this._functionExecutor;if(e!==-1&&t!==-1&&(a.length<e||a.length>t))return d.create(f.NA);let r;if(this._setRefInfo(),this._functionExecutor.isCustom()){const i=this._functionExecutor.calculateCustom(...a.map(o=>o.isArray()?o.toValue():o.getValue()));if(typeof i!="object"||i==null)r=it.create(i);else{const o=Fs(i);r=_e.create({calculateValueList:o,rowCount:o.length,columnCount:((s=o[0])==null?void 0:s.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),r=this._functionExecutor.calculate(...a);return r}_setDefinedNamesForFunction(){const a=this._currentConfigService.getExecuteUnitId();if(a==null)return;const e=this._definedNamesService.getDefinedNameMap(a);e!=null&&this._functionExecutor.setDefinedNames(e)}_setRefInfo(){const{currentUnitId:a,currentSubUnitId:e,currentRow:t,currentColumn:r}=this._runtimeService;this._functionExecutor.setRefInfo(a,e,t,r)}_setRefData(a){if(!a.isReferenceObject())return;const e=a;e.setForcedSheetId(this._currentConfigService.getSheetNameMap()),e.setUnitData(this._currentConfigService.getUnitData()),e.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),e.setRuntimeData(this._runtimeService.getUnitData()),e.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}}let Cr=class extends Qe{constructor(n,a,e,t,r){super(),this._functionService=n,this._currentConfigService=a,this._runtimeService=e,this._definedNamesService=t,this._injector=r}get zIndex(){return je.get(ee.FUNCTION)||Ye}create(n){const a=this._functionService.getExecutor(n);return a?new ac(n,a,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${n}`),be.create(f.NAME))}checkAndCreateNodeType(n){if(typeof n=="string")return;const a=n.getToken(),{tokenTrim:e,minusPrefixNode:t,atPrefixNode:r}=Ra(a.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(e))&&!this._isParentUnionNode(n))return be.create(f.VALUE);const s=e.toUpperCase();if(this._functionService.hasExecutor(s)){const i=this.create(s);return r?i.setParent(r):t&&i.setParent(t),i}}_isParentUnionNode(n){var a,e;return((e=(a=n.getParent())==null?void 0:a.getParent())==null?void 0:e.getToken())===z.COLON}};Cr=sc([Ut(0,He),Ut(1,Ze),Ut(2,Te),Ut(3,Wt),Ut(4,q.Inject(q.Injector))],Cr);var ic=Object.defineProperty,oc=Object.getOwnPropertyDescriptor,uc=(n,a,e,t)=>{for(var r=t>1?void 0:t?oc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&ic(a,e,r),r},cc=(n,a)=>(e,t)=>a(e,t,n);let At=class extends y.Disposable{constructor(n){super(),this._runtimeService=n}async executeAsync(n){if(!n)return d.create(f.VALUE);await this._executeAsync(n);const a=n.getValue();if(a==null)throw new Error("node value is null");return Promise.resolve(a)}execute(n){if(!n)return d.create(f.VALUE);this._execute(n);const a=n.getValue();if(a==null)throw new Error("node value is null");return a}executePreCalculateNode(n){return n.execute(),n.getValue()}checkAsyncNode(n){const a=[];this._checkAsyncNode(n,a);for(let e=0,t=a.length;e<t;e++)if(a[e]===!0)return!0;return!1}_checkAsyncNode(n,a){const e=n.getChildren(),t=e.length;for(let r=0;r<t;r++){const s=e[r];a.push(s.isAsync()),this._checkAsyncNode(s,a)}}async _executeAsync(n){if(this._runtimeService.isStopExecution())return Promise.resolve(dt.ERROR);const a=n.getChildren(),e=a.length;for(let t=0;t<e;t++){const r=a[t];if(r.getToken().toUpperCase()===Tt&&r.isEmptyParamFunction()){r.execute();continue}await this._executeAsync(r)}return n.nodeType===ee.FUNCTION&&n.isAsync()?await n.executeAsync():n.execute(),Promise.resolve(dt.SUCCESS)}_execute(n){if(this._runtimeService.isStopExecution())return dt.ERROR;const a=n.getChildren(),e=a.length;for(let t=0;t<e;t++){const r=a[t];if(r.getToken().toUpperCase()===Tt&&r.isEmptyParamFunction()){r.execute();continue}this._execute(r)}return n.execute(),dt.SUCCESS}};At=uc([cc(0,Te)],At);function _a(n){return n instanceof N?n.getToken()===Dt:!1}function lc(n){return n instanceof N?n.getToken()===Cs:!1}function Ea(n){if(!n)return;if(n.getToken()!==$t)return n;const a=n,e=a.getCurrentLambdaPrivacyVar(),t=a.getLambdaParameter();if(!e)return;const r=e.get(t);return r==null&&n.getValue()?n:Ea(r)}class Sn extends qe{constructor(e,t,r){super(0);h(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=e,this._interpreter=t,this._lambdaPrivacyVarKeys=r,this._lambdaPrivacyValueMap.clear()}static create(e,t,r){return new Sn(e,t,r)}isLambda(){return!0}execute(...e){const t=this._lambdaPrivacyVarKeys.length;if(e.length!==t)return d.create(f.VALUE);this._setLambdaPrivacyValueMap(e),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let r;if(this._interpreter.checkAsyncNode(this._lambdaNode))r=new Ms(this._interpreter.executeAsync(this._lambdaNode));else{const s=this._interpreter.execute(this._lambdaNode);s.isReferenceObject()?r=s.toArrayValueObject():r=s}return this._lambdaNode.setNotEmpty(!0),r}_setLambdaNodeValue(e){const t=e.getChildren(),r=t.length;for(let s=0;s<r;s++){const i=t[s];if(i.getToken()===$t){const u=i.getLambdaParameter(),c=this._lambdaPrivacyValueMap.get(u);if(c)i.setValue(c);else{const l=i.getCurrentLambdaPrivacyVar(),m=Ea(l.get(u));m!=null&&i.setValue(m.getValue())}continue}this._setLambdaNodeValue(i)}}_setLambdaPrivacyValueMap(e){for(let t=0;t<e.length;t++){const r=e[t],s=this._lambdaPrivacyVarKeys[t];this._lambdaPrivacyValueMap.set(s,r)}}}var fc=Object.defineProperty,hc=Object.getOwnPropertyDescriptor,mc=(n,a,e,t)=>{for(var r=t>1?void 0:t?hc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&fc(a,e,r),r},ls=(n,a)=>(e,t)=>a(e,t,n);class dc extends we{constructor(e,t,r,s){super(e);h(this,"_isNotEmpty",!0);this._lambdaId=t,this._interpreter=r,this._lambdaPrivacyVarKeys=s}get nodeType(){return ee.LAMBDA}setNotEmpty(e=!1){this._isNotEmpty=e}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(Sn.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const e=this.getChildren(),t=e.length;this.setValue(e[t-1].getValue())}}}let Dr=class extends Qe{constructor(n,a){super(),this._runtimeService=n,this._interpreter=a}get zIndex(){return je.get(ee.LAMBDA)||Ye}create(n){const a=n.getChildren(),e=a[0];let t=a.slice(1,-1);const r=a[a.length-1];if(!(e instanceof N&&r instanceof N))return be.create(f.NAME);if(e.getToken()===Dt){const o=e.getChildren();if(t.length!==o.length)return be.create(f.VALUE)}else t=a.slice(0,-1);const s=y.Tools.generateRandomId(8),i=new Map;for(let o=0;o<t.length;o++){const u=t[o];if(u instanceof N){const c=u.getChildren()[0];u.setToken(Cs),i.set(c.trim(),void 0)}else return be.create(f.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(s,i),this._updateLambdaStatement(r,s,i),new dc(n.getToken(),s,this._interpreter,[...i.keys()])}checkAndCreateNodeType(n){if(!(!(n instanceof N)||n.getToken().trim().toUpperCase()!==Tt))return this.create(n)}_updateLambdaStatement(n,a,e){this._updateTree(n,a,e)}_updateTree(n,a,e){const t=n.getChildren(),r=t.length,s=t[0];for(let i=0;i<r;i++){const o=t[i];if(!(_a(s)&&i!==0))if(o instanceof N)this._updateTree(o,a,e);else{const u=o.trim();if(e.has(u)){const c=new N;c.setToken($t),c.setLambdaId(a),c.setLambdaPrivacyVar(e),c.setLambdaParameter(u),t[i]=c}}}}};Dr=mc([ls(0,Te),ls(1,q.Inject(At))],Dr);function ya(n){if(!n)return;if(n.getToken()!==$t)return n;const a=n,e=a.getCurrentLambdaPrivacyVar(),t=a.getLambdaParameter();if(e)return ya(e.get(t))}class gc extends we{constructor(a,e,t){super(a),this._lambdaParameter=e,this._currentLambdaPrivacyVar=t}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return ee.LAMBDA_PARAMETER}execute(){const a=ya(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(a)this.setValue(a.getValue());else{const e=this.getValue();(e==null||e.isError())&&this.setValue(d.create(f.SPILL))}}}class Ca extends Qe{get zIndex(){return je.get(ee.LAMBDA_PARAMETER)||Ye}create(a){const e=a.getFunctionDefinitionPrivacyVar(),t=a.getLambdaParameter();return e?new gc(a.getToken(),t,e):new be(f.SPILL)}checkAndCreateNodeType(a){if(!(!(a instanceof N)||a.getToken().trim()!==$t))return this.create(a)}}class pc extends we{constructor(a){super(a),this._operatorString=a}get nodeType(){return ee.NULL}execute(){this.setValue(ce.create())}}var Rc=Object.defineProperty,_c=Object.getOwnPropertyDescriptor,Ec=(n,a,e,t)=>{for(var r=t>1?void 0:t?_c(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Rc(a,e,r),r},yc=(n,a)=>(e,t)=>a(e,t,n);class Cc extends we{constructor(a,e){super(a),this._operatorString=a,this._functionExecutor=e}get nodeType(){return ee.OPERATOR}execute(){var s,i;const a=this.getChildren();this._functionExecutor.name===Ae.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let e=(s=a[0])==null?void 0:s.getValue(),t=(i=a[1])==null?void 0:i.getValue();const r=this.getToken();if((e==null||t==null)&&r!==ue.MINUS&&r!==ue.PLUS){this.setValue(d.create(f.VALUE));return}e==null&&(e=ce.create()),t==null&&(t=ce.create()),e.isReferenceObject()&&(e=e.toArrayValueObject()),t.isReferenceObject()&&(t=t.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(e,t))}}let br=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return je.get(ee.OPERATOR)||Ye}create(n){let a="";const e=n;e===ue.PLUS?a=Ae.PLUS:e===ue.MINUS?a=Ae.MINUS:e===ue.MULTIPLY?a=Ae.MULTIPLY:e===ue.DIVIDED?a=Ae.DIVIDED:e===ue.CONCATENATE?a=Ge.CONCATENATE:e===ue.POWER?a=Ee.POWER:Wa.has(e)&&(a=Ae.COMPARE);const t=this._functionService.getExecutor(a);return t?new Cc(e,t):(console.error(`No function ${n}`),be.create(f.NAME))}checkAndCreateNodeType(n){if(n instanceof N)return;const a=n.trim();if(!(a.charAt(0)==='"'&&a.charAt(a.length-1)==='"')&&ft.has(a))return this.create(a)}};br=Ec([yc(0,He)],br);class Dc extends y.Disposable{constructor(){super(...arguments);h(this,"_tableMap",new Map);h(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(e,t){var r;(r=this._tableMap.get(e))==null||r.delete(t)}getTableMap(e){return this._tableMap.get(e)}getTableOptionMap(){return this._tableOptionMap}registerTable(e,t,r){var s;this._tableMap.get(e)==null&&this._tableMap.set(e,new Map),(s=this._tableMap.get(e))==null||s.set(t,r)}registerTableOptionMap(e,t){this._tableOptionMap.set(e,t)}}const An=q.createIdentifier("univer.formula.super-table.service");class bc extends xt{constructor(a,e,t,r){super(a),this._tableData=e,this._columnDataString=t;const s=this._tableData.sheetId,i=this._tableData.range,o=this._tableData.titleMap;this.setForcedSheetIdDirect(s);const u=this._stringToColumnData(this._columnDataString,o,r),c=u.startColumn,l=u.endColumn,m=u.type;let g=-1,_=-1;const C=i.startRow,S=i.startColumn;m===ht.ALL?(g=C,_=S):m===ht.DATA?(g=C+1,_=S):m===ht.HEADERS?(g=C,_=C):m===ht.TOTALS&&(g=S,_=S),this.setRangeData({startColumn:c,endColumn:l,startRow:g,endRow:_})}isTable(){return!0}_stringToColumnData(a,e,t){a=a.substring(1,-1);const r=a.indexOf(z.COMMA);let s=-1,i=-1,o=ht.ALL;if(r===-1){const u=this._columnHandler(a,e);s=u.startColumn,i=u.endColumn}else{const u=a.substring(0,r).substring(1,-1),c=a.substring(r+1),l=this._columnHandler(c,e,!0);s=l.startColumn,i=l.endColumn,o=t.get(u),o||(o=ht.ALL)}return{startColumn:s,endColumn:i,type:o}}_columnHandler(a,e,t=!1){var o,u,c;let r=-1,s=-1;const i=a.indexOf(z.COLON);if(new RegExp(Ls,"g").test(a)){const l=a.substring(0,i).substring(1,-1),m=a.substring(i+1).substring(1,-1);r=(o=e.get(l))!=null?o:-1,s=(u=e.get(m))!=null?u:-1}else t&&(a=a.substring(1,-1)),r=(c=e.get(a))!=null?c:-1,s=r;return{startColumn:r,endColumn:s}}}var Sc=Object.defineProperty,Ac=Object.getOwnPropertyDescriptor,Lc=(n,a,e,t)=>{for(var r=t>1?void 0:t?Ac(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Sc(a,e,r),r},Jt=(n,a)=>(e,t)=>a(e,t,n);class er extends we{constructor(a,e,t,r=!1){super(e),this._accessor=a,this._operatorString=e,this._referenceObject=t,this._isPrepareMerge=r}get nodeType(){return ee.REFERENCE}execute(){const a=this._accessor.get(Ze),e=this._accessor.get(Te);this._referenceObject.setDefaultUnitId(e.currentUnitId),this._referenceObject.setDefaultSheetId(e.currentSubUnitId),this._referenceObject.setForcedSheetId(a.getSheetNameMap()),this._referenceObject.setUnitData(a.getUnitData()),this._referenceObject.setArrayFormulaCellData(a.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(e.getUnitData()),this._referenceObject.setUnitStylesData(a.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(e.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();this._referenceObject.setRefOffset(t,r),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(d.create(f.NAME)):this.setValue(this._referenceObject)}}let Sr=class extends Qe{constructor(n,a,e,t){super(),this._superTableService=n,this._formulaRuntimeService=a,this._functionService=e,this._injector=t}get zIndex(){return je.get(ee.REFERENCE)||Ye}checkAndCreateNodeType(n){var u,c;let a=!1,e,t=!1;n instanceof N?(a=!0,e=n.getToken().trim(),((c=(u=n.getParent())==null?void 0:u.getParent())==null?void 0:c.getToken().trim())===z.COLON&&(t=!0)):e=n.trim();const{tokenTrim:r,minusPrefixNode:s,atPrefixNode:i}=Ra(e,this._functionService,this._injector);if(!a&&r.charAt(0)==='"'&&r.charAt(r.length-1)==='"')return;let o;if(new RegExp(jt).test(r))o=new er(this._injector,r,new dn(r),t);else if(a&&this._checkParentIsUnionOperator(n))new RegExp(Ss).test(r)?o=new er(this._injector,r,new gn(r),t):new RegExp(As).test(r)&&(o=new er(this._injector,r,new pn(r),t));else{const l=this._formulaRuntimeService.currentUnitId,m=this._superTableService.getTableMap(l),g=new RegExp(Ls,"g"),_=r.replace(g,"");if(!a&&(m!=null&&m.has(_))){const C=g.exec(r);let S="";C&&(S=C[0]);const A=m.get(_),P=this._superTableService.getTableOptionMap();o=new er(this._injector,r,new bc(r,A,S,P))}}if(o)return i?o.setParent(i):s&&o.setParent(s),o}_checkParentIsUnionOperator(n){var a,e;return((e=(a=n.getParent())==null?void 0:a.getParent())==null?void 0:e.getToken().trim())===z.COLON}};Sr=Lc([Jt(0,An),Jt(1,Te),Jt(2,He),Jt(3,q.Inject(q.Injector))],Sr);var Pc=Object.defineProperty,xc=Object.getOwnPropertyDescriptor,Vc=(n,a,e,t)=>{for(var r=t>1?void 0:t?xc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Pc(a,e,r),r},fs=(n,a)=>(e,t)=>a(e,t,n);class hs extends we{constructor(a,e,t){super(e),this._accessor=a,this._operatorString=e,this._functionExecutor=t}get nodeType(){return ee.SUFFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");if(this._operatorString===Ke.PERCENTAGE){if(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(e,D.create(100)),t.isNumber()){const r=Number(t.getValue());t=D.create(r,"0.00%")}}else this._operatorString===Ke.POUND?t=this._handlerPound(e):t=d.create(f.VALUE);this.setValue(t)}_handlerPound(a){var l,m,g,_;if(!a.isReferenceObject()||!a.isCell())return d.create(f.VALUE);const e=this._accessor.get(Ze),t=this._accessor.get(St),r=a,s=r.getRangePosition(),i=r.getUnitId(),o=r.getSheetId(),u=e.getFormulaData(),c=(_=(g=(m=(l=u==null?void 0:u[i])==null?void 0:l[o])==null?void 0:m[s.startRow])==null?void 0:g[s.startColumn])==null?void 0:_.f;return c&&t.treeBuilder(c),d.create(f.VALUE)}}let Ar=class extends Qe{constructor(n,a){super(),this._functionService=n,this._injector=a}get zIndex(){return je.get(ee.SUFFIX)||Ye}checkAndCreateNodeType(n){if(!(n instanceof N))return;const a=n.getToken().trim();if(a.charAt(0)==='"'&&a.charAt(a.length-1)==='"')return;let e="";if(a===Ke.PERCENTAGE)e=Ae.DIVIDED;else return a===Ke.POUND?new hs(this._injector,a):void 0;const t=this._functionService.getExecutor(e);return t?new hs(this._injector,a,t):(console.error(`No function ${n}`),be.create(f.NAME))}};Ar=Vc([fs(0,He),fs(1,q.Inject(q.Injector))],Ar);var wc=Object.defineProperty,vc=Object.getOwnPropertyDescriptor,Uc=(n,a,e,t)=>{for(var r=t>1?void 0:t?vc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&wc(a,e,r),r},Oc=(n,a)=>(e,t)=>a(e,t,n);class Fc extends we{constructor(a){super(a),this._operatorString=a}get nodeType(){return ee.UNION}execute(){const a=this.getChildren(),e=a[0].getValue(),t=a[1].getValue();if(e==null||t==null)throw new Error("leftNode and rightNode");let r;this._operatorString===z.COLON?r=this._unionFunction(e,t):r=d.create(f.NAME),this.setValue(r)}_unionFunction(a,e){return a.isError()||e.isError()||!a.isReferenceObject()||!e.isReferenceObject()?d.create(f.REF):(a=a,e=e,a.isCell()&&e.isCell()||a.isRow()&&e.isRow()||a.isColumn()&&e.isColumn()?a.unionBy(e):d.create(f.NAME))}}let Lr=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return je.get(ee.UNION)||Ye}create(n){return new Fc(n)}checkAndCreateNodeType(n){if(!(n instanceof N))return;const e=n.getToken().trim();if(!(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')&&e===z.COLON)return this.create(e)}};Lr=Uc([Oc(0,He)],Lr);class Mc extends we{constructor(a){super(a),this._operatorString=a}get nodeType(){return ee.VALUE}execute(){this.setValue(it.create(this._operatorString))}}class Da extends Qe{get zIndex(){return je.get(ee.VALUE)||Ye}_checkValueNode(a){if(Number.isNaN(Number(a))){const e=a.trim(),t=e.charAt(0),r=e.charAt(e.length-1);if(Lt.has(e))return this.create(e);if(t==='"'&&r==='"')return this.create(e);if(t==="{"&&r==="}")return this.create(e);const s=e.toUpperCase();if(s===at.TRUE||s===at.FALSE)return this.create(s)}else return this.create(a)}create(a){return new Mc(a)}checkAndCreateNodeType(a){if(!(a instanceof N))return this._checkValueNode(a)}}function Bc(n){let a=n;for(;a!=null&&a.getParent();)a=a.getParent();return a}var Tc=Object.defineProperty,kc=Object.getOwnPropertyDescriptor,Ic=(n,a,e,t)=>{for(var r=t>1?void 0:t?kc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Tc(a,e,r),r},Me=(n,a)=>(e,t)=>a(e,t,n);let It=class extends y.Disposable{constructor(a,e,t,r,s,i,o,u,c,l,m){super();h(this,"_astNodeFactoryList",[]);h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._runtimeService=a,this._astRootNodeFactory=e,this._functionNodeFactory=t,this._lambdaNodeFactory=r,this._lambdaParameterNodeFactory=s,this._operatorNodeFactory=i,this._prefixNodeFactory=o,this._referenceNodeFactory=u,this._suffixNodeFactory=c,this._unionNodeFactory=l,this._valueNodeFactory=m,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(a=>{a.dispose()}),this._astNodeFactoryList=[]}parse(a,e=0,t=0){const r=new cn(nt);this._refOffsetX=e,this._refOffsetY=t;const s=this._parse(a,r);return a.hasDefinedNames()&&(s==null||s.setDefinedNames(a.getDefinedNames())),s}_lambdaParameterHandler(a,e){if(e.getLambdaId==null)return be.create(f.VALUE);const t=e.getLambdaId(),r=new cn(nt),s=this._runtimeService.getFunctionDefinitionPrivacyVar(t);if(!s)return!1;const i=[...s.keys()],o=a.getChildren(),u=o.length;for(let m=0;m<u;m++){const g=o[m];if(g instanceof N)this._parse(g,r);else return!1}const c=r.getChildren(),l=c.length;for(let m=0;m<l;m++){const g=c[m];s.set(i[m],g)}return r.setParent(e),e}_changeLetToLambda(a){const e=a.getChildren(),t=e.length;if(t%2!==1||t===0)return;const r=new N;r.setToken(Tt);const s=new N;s.setToken(Dt);const i=[...e];for(let u=0;u<t;u++){const c=i[u];if(!(c instanceof N))return;u%2===0?c.changeToParent(r):c.changeToParent(s)}r.addChildrenFirst(s),s.setParent(r);const o=a.getParent();return o==null||o.replaceChild(a,r),r}_parse(a,e){const t=a.getChildren(),r=t.length,s=[];let i=null;const o=a.getToken().trim().toUpperCase();if(o===Za){const l=this._changeLetToLambda(a);return l!=null?this._parse(l,e):be.create(f.ERROR)}if(o===We){if(i=e,r===0)return new pc(nt).setParent(e),i}else{if(o===Dt){let l=this._lambdaParameterHandler(a,e);return l===!1&&(l=be.create(f.ERROR)),l}if(i=this._checkAstNode(a),i==null)return be.create(f.NAME)}const u=t[0];for(let l=0;l<r;l++){const m=t[l];if(_a(u)){if(l!==0&&l!==r-1)continue}else if(lc(m)&&l!==r-1)continue;let g=null;if(m instanceof N){if(g=this._parse(m,i),g===i)continue}else g=this._checkAstNode(m);if(g==null)return be.create(f.NAME);if(g=Bc(g),g==null)return;switch(g.nodeType){case ee.ERROR:return g;case ee.FUNCTION:s.push(g);break;case ee.LAMBDA:s.push(g);break;case ee.LAMBDA_PARAMETER:s.push(g);break;case ee.OPERATOR:{const _=s.pop(),C=s.pop();C&&C.setParent(g),_&&_.setParent(g),s.push(g);break}case ee.REFERENCE:g.setRefOffset(this._refOffsetX,this._refOffsetY),s.push(g);break;case ee.ROOT:s.push(g);break;case ee.UNION:s.push(g);break;case ee.VALUE:s.push(g);break;case ee.PREFIX:s.push(g);break;case ee.SUFFIX:s.push(g);break}}const c=s.length;for(let l=0;l<c;l++)s[l].setParent(i);return i}_checkAstNode(a){let e=null;const t=this._astNodeFactoryList.length;for(let r=0;r<t&&(e=this._astNodeFactoryList[r].checkAndCreateNodeType(a),e==null);r++);return e}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(y.sortRules)}};It=Ic([Me(0,Te),Me(1,q.Inject(ga)),Me(2,q.Inject(Cr)),Me(3,q.Inject(Dr)),Me(4,q.Inject(Ca)),Me(5,q.Inject(br)),Me(6,q.Inject(yr)),Me(7,q.Inject(Sr)),Me(8,q.Inject(Ar)),Me(9,q.Inject(Lr)),Me(10,q.Inject(Da))],It);class ba extends y.Disposable{constructor(){super(...arguments);h(this,"_referenceExecutorMap",new Map)}dispose(){this._referenceExecutorMap.clear()}remove(e){this._referenceExecutorMap.delete(e)}get(e){return this._referenceExecutorMap.get(e)}has(e){return this._referenceExecutorMap.has(e)}register(e,t){this._referenceExecutorMap.set(e,t)}getReferenceExecutorMap(){return this._referenceExecutorMap}}const Gt=q.createIdentifier("univer.formula.feature-calculation-manager.service");class Sa extends y.Disposable{constructor(){super(...arguments);h(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(e){var i,o,u;const{unitId:t,subUnitId:r,formulaId:s}=e;(u=(o=(i=this._otherFormulaData)==null?void 0:i[t])==null?void 0:o[r])==null||delete u[s]}get(e){var i,o;const{unitId:t,subUnitId:r,formulaId:s}=e;return(o=(i=this._otherFormulaData[t])==null?void 0:i[r])==null?void 0:o[s]}has(e){var i,o;const{unitId:t,subUnitId:r,formulaId:s}=e;return((o=(i=this._otherFormulaData[t])==null?void 0:i[r])==null?void 0:o[s])!=null}register(e){const{unitId:t,subUnitId:r,formulaId:s,item:i}=e;this._otherFormulaData[t]||(this._otherFormulaData[t]={}),this._otherFormulaData[t][r]||(this._otherFormulaData[t][r]={}),this._otherFormulaData[t][r][s]=i}batchRegister(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{const i=r[s];if(i==null)return!0;Object.keys(i).forEach(o=>{const u=i[o];if(u==null)return!0;this.register({unitId:t,subUnitId:s,formulaId:o,item:u})})})})}batchRemove(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{const i=r[s];if(i==null)return!0;Object.keys(i).forEach(o=>{this.remove({unitId:t,subUnitId:s,formulaId:o})})})})}getOtherFormulaData(){return this._otherFormulaData}}const Tr=q.createIdentifier("univer.formula.other-formula-manager.service");class Zr extends y.Disposable{constructor(){super(...arguments);h(this,"node");h(this,"children",[]);h(this,"parents",[]);h(this,"formula","");h(this,"row",-1);h(this,"column",-1);h(this,"rowCount",Number.NEGATIVE_INFINITY);h(this,"columnCount",Number.NEGATIVE_INFINITY);h(this,"subUnitId","");h(this,"unitId","");h(this,"rangeList",[]);h(this,"formulaId");h(this,"featureId");h(this,"getDirtyData");h(this,"_state",0)}dispose(){var e;super.dispose(),this.children=[],this.rangeList=[],this.parents=[],(e=this.node)==null||e.dispose()}disposeWithChildren(){this.children.forEach(e=>{e.disposeWithChildren()}),this.dispose()}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(e){const t=e.startRow,r=e.startColumn,s=e.endRow,i=e.endColumn;return!(this.row<t||this.row>s||this.column<r||this.column>i)}dependencyRange(e,t,r){var s,i;if(this.rangeList.length===0)return!1;for(let o=0,u=this.rangeList.length;o<u;o++){const c=this.rangeList[o],{unitId:l,sheetId:m,range:g}=c.gridRange;if(((s=t[l])==null?void 0:s[m])!=null)return!0;if(!e.has(l))continue;const _=e.get(l);if(!_.has(m))continue;const C=_.get(m),S=(i=r==null?void 0:r[l])==null?void 0:i[m];let{startRow:A,endRow:P,startColumn:U,endColumn:T}=g;Number.isNaN(A)&&(A=0),Number.isNaN(U)&&(U=0),Number.isNaN(P)&&(P=Number.POSITIVE_INFINITY),Number.isNaN(T)&&(T=Number.POSITIVE_INFINITY);for(const X of C){const{startRow:te,startColumn:pe,endRow:ye,endColumn:de}=X;if(!(A>ye||P<te||U>de||T<pe)){let se=!0;if(S==null||S.forValue((Z,K)=>{if(Z>=A&&Z<=P&&K>=U&&K<=T)return se=!1,!1}),se)return!0}}}return!1}pushChildren(e){this.children.push(e),e._pushParent(this)}pushRangeList(e){this.rangeList.push(e)}dependency(e){if(this.rangeList.length===0)return!1;for(let t=0,r=this.rangeList.length;t<r;t++){const s=this.rangeList[t],i=s.gridRange.unitId,o=s.gridRange.sheetId,u=s.gridRange.range;if(e.unitId===i&&e.subUnitId===o&&e.inRangeData(u))return!0}return!1}_pushParent(e){this.parents.push(e)}}class ln extends y.Disposable{constructor(){super(...arguments);h(this,"_cacheItems",new Map)}dispose(){this.clear()}size(){return this._cacheItems.size}get length(){return this._cacheItems.size}add(e,t){const{token:r}=e;if(!this._cacheItems.has(r)){this._cacheItems.set(r,{unitRangeWithToken:e,treeList:[t]});return}this._cacheItems.get(r).treeList.push(t)}clear(){this._cacheItems.clear()}remove(e,t){if(!this._cacheItems.has(e))return;const r=this._cacheItems.get(e),s=r.treeList.indexOf(t);s!==-1&&r.treeList.splice(s,1)}delete(e){this._cacheItems.delete(e)}dependency(e){this._cacheItems.forEach(t=>{const{unitRangeWithToken:r,treeList:s}=t,{gridRange:i}=r,{unitId:o,sheetId:u,range:c}=i;e.unitId===o&&e.subUnitId===u&&e.inRangeData(c)&&s.forEach(l=>{if(l===e||l.children.includes(e))return!0;l.pushChildren(e)})})}}class $c extends y.Disposable{constructor(){super(...arguments);h(this,"_otherFormulaData",{});h(this,"_featureFormulaData",new Map);h(this,"_formulaData",{})}dispose(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}getAllTree(){const e=[];return Object.values(this._otherFormulaData).forEach(t=>{if(t==null)return!0;Object.values(t).forEach(r=>{Object.values(r).forEach(s=>{s&&(s.resetState(),e.push(s))})})}),this._featureFormulaData.forEach(t=>{t&&(t.resetState(),e.push(t))}),Object.values(this._formulaData).map(t=>t==null?[]:Object.values(t).forEach(r=>r.forValue((s,i,o)=>{o&&(o.resetState(),e.push(o))}))),e}buildDependencyTree(e,t){const r=this.getAllTree();return e.length===0||(e instanceof ln?this._buildDependencyTree(r,e,t||[]):this._buildDependencyTree(r,e,e)),r}_buildDependencyTree(e,t,r){e.forEach(s=>{t instanceof ln?t.dependency(s):t.forEach(i=>{if(s===i||i.children.includes(s))return!0;i.dependency(s)&&i.pushChildren(s)})}),e.forEach(s=>{r.forEach(i=>{if(s===i||s.children.includes(i))return!0;s.dependency(i)&&s.pushChildren(i)})})}clearDependencyForTree(e){if(e==null)return;const t=e.parents,r=e.children;t.forEach(s=>{s.children=s.children.filter(i=>i!==e)}),r.forEach(s=>{s.parents=s.parents.filter(i=>i!==e)}),this._buildDependencyTree(t,r,r),e.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}addOtherFormulaDependency(e,t,r,s){this._otherFormulaData[e]||(this._otherFormulaData[e]={}),this._otherFormulaData[e][t]||(this._otherFormulaData[e][t]={}),this._otherFormulaData[e][t][r]=s}removeOtherFormulaDependency(e,t,r){this._otherFormulaData[e]&&this._otherFormulaData[e][t]&&r.forEach(s=>{const i=this._otherFormulaData[e][t][s];this.clearDependencyForTree(i),delete this._otherFormulaData[e][t][s]})}hasOtherFormulaDependency(e,t,r){var s,i;return((i=(s=this._otherFormulaData[e])==null?void 0:s[t])==null?void 0:i[r])!=null}addFeatureFormulaDependency(e,t){this._featureFormulaData.set(e,t)}removeFeatureFormulaDependency(e){const t=this._featureFormulaData.get(e);this.clearDependencyForTree(t),this._featureFormulaData.delete(e)}hasFeatureFormulaDependency(e){return this._featureFormulaData.has(e)}addFormulaDependency(e,t,r,s,i){this._formulaData[e]||(this._formulaData[e]={}),this._formulaData[e][t]||(this._formulaData[e][t]=new y.ObjectMatrix),this._formulaData[e][t].setValue(r,s,i)}removeFormulaDependency(e,t,r,s){if(this._formulaData[e]&&this._formulaData[e][t]){const i=this._formulaData[e][t].getValue(r,s);this.clearDependencyForTree(i),this._formulaData[e][t].realDeleteValue(r,s)}}clearFormulaDependency(e,t){this._formulaData[e]&&this._formulaData[e][t]&&this._formulaData[e][t].reset()}hasFormulaDependency(e,t,r,s){var i,o;return((o=(i=this._formulaData[e])==null?void 0:i[t])==null?void 0:o.getValue(r,s))!=null}}const kr=q.createIdentifier("univer.formula.dependency-manager.service");var jc=Object.defineProperty,Yc=Object.getOwnPropertyDescriptor,Qc=(n,a,e,t)=>{for(var r=t>1?void 0:t?Yc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&jc(a,e,r),r},et=(n,a)=>(e,t)=>a(e,t,n);const Hc=1e5;let Mt=class extends y.Disposable{constructor(a,e,t,r,s,i,o,u){super();h(this,"_updateRangeFlattenCache",new Map);h(this,"_dirtyUnitSheetNameMap",{});h(this,"_formulaASTCache",new Rt(Hc));this._currentConfigService=a,this._runtimeService=e,this._otherFormulaManagerService=t,this._featureCalculationManagerService=r,this._interpreter=s,this._astTreeBuilder=i,this._lexer=o,this._dependencyManagerService=u}dispose(){this._updateRangeFlattenCache.clear(),this._formulaASTCache.clear(),this._dirtyUnitSheetNameMap={}}async generate(){this._updateRangeFlatten();const a=this._currentConfigService.getFormulaData(),e=this._otherFormulaManagerService.getOtherFormulaData(),t=this._currentConfigService.getUnitData(),{treeList:r,dependencyTreeCache:s}=await this._generateTreeList(a,e,t),i=this._getUpdateTreeListAndMakeDependency(r,s);this._checkIsCycleDependency(i)&&this._runtimeService.enableCycleDependency();const u=this._calculateRunList(i);return Promise.resolve(u)}_isCyclicUtil(a,e,t){if(!e.has(a)){e.add(a),t.add(a);for(let r=0;r<a.children.length;r++)if(!e.has(a.children[r])&&this._isCyclicUtil(a.children[r],e,t)||t.has(a.children[r]))return!0}return t.delete(a),!1}_checkIsCycleDependency(a){const e=new Set,t=new Set;for(let r=0,s=a.length;r<s;r++){const i=a[r];if(this._isCyclicUtil(i,e,t)===!0)return!0}return!1}async _generateTreeList(a,e,t){const r=Object.keys(a),s=Object.keys(e),i=[];this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(r,a,t,i),this._registerOtherFormulas(e,s,i),this._registerFeatureFormulas(i);const u=new ln;for(let c=0,l=i.length;c<l;c++){const m=i[c];if(this._runtimeService.setCurrent(m.row,m.column,m.rowCount,m.columnCount,m.subUnitId,m.unitId),m.node==null)continue;const g=await this._getRangeListByNode(m.node);for(let _=0,C=g.length;_<C;_++){const S=g[_];m.pushRangeList(S),u.add(S,m)}}return{treeList:i,dependencyTreeCache:u}}_registerFeatureFormulas(a){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((e,t)=>{const{unitId:r,subUnitId:s,dependencyRanges:i,getDirtyData:o}=e;if(this._dependencyManagerService.hasFeatureFormulaDependency(r,s,t))return!0;const u=new Zr;u.unitId=r,u.subUnitId=s,u.getDirtyData=o,u.featureId=t,u.rangeList=i.map(c=>({gridRange:c,token:gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)})})),this._dependencyManagerService.addFeatureFormulaDependency(t,u),a.push(u)})}_registerOtherFormulas(a,e,t){for(const r of e){const s=a[r];if(s==null)continue;const i=Object.keys(s);for(const o of i){const u=s[o];if(u==null)continue;const c=Object.keys(u);for(const l of c){if(this._dependencyManagerService.hasOtherFormulaDependency(r,o,l))continue;const m=u[l],{f:g}=m,_=this._generateAstNode(r,g),C=new Zr;C.node=_,C.formula=g,C.unitId=r,C.subUnitId=o,C.formulaId=l,this._dependencyManagerService.addOtherFormulaDependency(r,o,l,C),t.push(C)}}}}_registerFormulas(a,e,t,r){for(const s of a){const i=e[s];if(i==null)continue;const o=Object.keys(i);for(const u of o)new y.ObjectMatrix(i[u]||{}).forValue((l,m,g)=>{if(g==null)return!0;const{f:_,x:C,y:S}=g;if(this._dependencyManagerService.hasFormulaDependency(s,u,l,m))return!0;const A=this._generateAstNode(s,_,C,S),P=new Zr,U=t[s][u];P.node=A,P.formula=_,P.unitId=s,P.subUnitId=u,P.row=l,P.column=m,P.rowCount=U.rowCount,P.columnCount=U.columnCount,this._dependencyManagerService.addFormulaDependency(s,u,l,m,P),r.push(P)})}}_updateRangeFlatten(){const a=this._currentConfigService.isForceCalculate(),e=this._currentConfigService.getDirtyRanges();if(!a){this._updateRangeFlattenCache.clear();for(let t=0;t<e.length;t++){const r=e[t],s=r.range,i=r.sheetId,o=r.unitId;this._addFlattenCache(o,i,s)}this._dirtyUnitSheetNameMap=this._currentConfigService.getDirtyNameMap()}}_generateAstNode(a,e,t=0,r=0){let s=this._formulaASTCache.get(`${a}${e}##${t}-${r}`);if(s&&!this._isDirtyDefinedForNode(s))return s;const i=this._lexer.treeBuilder(e);if(Lt.has(i))return be.create(i);if(s=this._astTreeBuilder.parse(i,t,r),s==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${a}${e}##${t}-${r}`,s),s}_addFlattenCache(a,e,t){let r=this._updateRangeFlattenCache.get(a);r==null&&(r=new Map,this._updateRangeFlattenCache.set(a,r));let s=r.get(e);s==null&&(s=[],r.set(e,s)),s.push(t)}_isPreCalculateNode(a){return a.nodeType===ee.UNION||a.nodeType===ee.PREFIX&&a.getToken()===Ce.AT||a.nodeType===ee.SUFFIX&&a.getToken()===Ke.POUND}_nodeTraversalRef(a,e){const t=a.getChildren(),r=t.length;for(let s=0;s<r;s++){const i=t[s];if(this._isPreCalculateNode(i)){e.push(i);continue}else i.nodeType===ee.REFERENCE&&e.push(i);this._nodeTraversalRef(i,e)}}_nodeTraversalReferenceFunction(a,e){const t=a.getChildren(),r=t.length;for(let s=0;s<r;s++){const i=t[s];if(i.nodeType===ee.FUNCTION&&i.isAddress()){e.push(i);continue}this._nodeTraversalReferenceFunction(i,e)}}async _executeNode(a){let e;return this._interpreter.checkAsyncNode(a)?e=await this._interpreter.executeAsync(a):e=this._interpreter.execute(a),e}async _getRangeListByNode(a){const e=[],t=[];this._nodeTraversalRef(a,e),this._nodeTraversalReferenceFunction(a,t);const r=[];for(let s=0,i=e.length;s<i;s++){const o=e[s],c=(await this._executeNode(o)).toUnitRange(),l=gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}for(let s=0,i=t.length;s<i;s++){const o=t[s],c=(await this._executeNode(o)).toUnitRange(),l=gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}return r}_isDirtyDefinedForNode(a){const e=this._currentConfigService.getDirtyDefinedNameMap(),t=this._currentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let s=0,i=r.length;s<i;s++){const o=r[s];if(a.hasDefinedName(o))return!0}}return!1}_getUpdateTreeListAndMakeDependency(a,e){const t=[],r=new Set,s=this._currentConfigService.isForceCalculate();let i=[];e.size()>a.length?i=this._dependencyManagerService.buildDependencyTree(a):i=this._dependencyManagerService.buildDependencyTree(e,a);for(let o=0,u=i.length;o<u;o++){const c=i[o];(s||c.dependencyRange(this._updateRangeFlattenCache,this._dirtyUnitSheetNameMap,this._currentConfigService.getExcludedRange())||this._includeTree(c))&&!r.has(c)&&(t.push(c),r.add(c))}return e.dispose(),t}_includeTreeFeature(a){var s,i;const e=a.unitId,t=a.subUnitId,r=a.featureId;if(r!=null){const o=this._currentConfigService.getDirtyUnitFeatureMap();if(((i=(s=o==null?void 0:o[e])==null?void 0:s[t])==null?void 0:i[r])!=null)return!0}return!1}_includeOtherFormula(a){var s,i;const e=a.unitId,t=a.subUnitId,r=a.formulaId;if(r!=null){const o=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((i=(s=o==null?void 0:o[e])==null?void 0:s[t])==null?void 0:i[r])!=null)return!0}return!1}_includeDefinedName(a){const e=a.node;return!!(e!=null&&this._isDirtyDefinedForNode(e))}_includeTree(a){var u,c,l;const e=a.unitId,t=a.subUnitId;if(this._includeTreeFeature(a)===!0||this._includeOtherFormula(a)===!0||this._includeDefinedName(a)===!0)return!0;const r=(c=(u=this._currentConfigService.getExcludedRange())==null?void 0:u[e])==null?void 0:c[t];let s=!1;if(r==null||r.forValue((m,g)=>{if(a.row===m&&a.column===g)return s=!0,!1}),s)return!1;if(((l=this._dirtyUnitSheetNameMap[e])==null?void 0:l[t])!=null)return!0;if(!this._updateRangeFlattenCache.has(e))return!1;const i=this._updateRangeFlattenCache.get(e);if(!i.has(t))return!1;const o=i.get(t);for(const m of o)if(a.inRangeData(m))return!0;return!1}_calculateRunList(a){let e=a;const t=[];for(;e.length>0;){const r=e.pop();if(r===void 0||r.isSkip())continue;if(r.isAdded()){t.push(r);continue}const s=[];for(let i=0,o=r.parents.length;i<o;i++){const u=r.parents[i];u.isAdded()||r.isSkip()||s.push(u)}s.length===0?(t.push(r),r.setSkip()):(r.setAdded(),e.push(r),e=e.concat(s))}return t.reverse()}};Mt=Qc([y.OnLifecycle(y.LifecycleStages.Rendered,Mt),et(0,Ze),et(1,Te),et(2,Tr),et(3,Gt),et(4,q.Inject(At)),et(5,q.Inject(It)),et(6,q.Inject(St)),et(7,kr)],Mt);var zc=Object.defineProperty,Wc=Object.getOwnPropertyDescriptor,Gc=(n,a,e,t)=>{for(var r=t>1?void 0:t?Wc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&zc(a,e,r),r},lt=(n,a)=>(e,t)=>a(e,t,n);const Xc=1;exports.CalculateFormulaService=class extends y.Disposable{constructor(e,t,r,s,i,o,u){super();h(this,"_executionStartListener$",new Ct.Subject);h(this,"executionStartListener$",this._executionStartListener$.asObservable());h(this,"_executionCompleteListener$",new Ct.Subject);h(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());h(this,"_executionInProgressListener$",new Ct.Subject);h(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=e,this._lexer=t,this._currentConfigService=r,this._runtimeService=s,this._formulaDependencyGenerator=i,this._interpreter=o,this._astTreeBuilder=u}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(e,t){this._runtimeService.setRuntimeFeatureCellData(e,t)}setRuntimeFeatureRange(e,t){this._runtimeService.setRuntimeFeatureRange(e,t)}async execute(e){this._executionStartListener$.next(!0),this._currentConfigService.load(e),this._runtimeService.reset();const t=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||Xc;for(let r=0;r<t&&(this._runtimeService.setFormulaCycleIndex(r),await this._execute(),un.clear(),!!this._runtimeService.isCycleDependency());r++);this._runtimeService.setFormulaExecuteStage(Ie.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),tt.clear()}async _execute(){const e=await this._apply();if(e==null)return;const{arrayFormulaRange:t,runtimeFeatureRange:r}=e,{dirtyRanges:s,excludedCell:i}=this._getArrayFormulaDirtyRangeAndExcludedRange(t,r);return s==null||s.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(s,i),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(e,t){const r=[],s={};return Object.keys(e).forEach(i=>{const o=e[i];if(o==null)return!0;Object.keys(o).forEach(u=>{const c=new y.ObjectMatrix(o[u]);if(c==null)return!0;const l=new y.ObjectMatrix;c.forValue((m,g,_)=>{l.setValue(m,g,!0),r.push({unitId:i,sheetId:u,range:_})}),s[i]==null&&(s[i]={}),s[i][u]=l})}),Object.keys(t).forEach(i=>{const o=t[i];Object.keys(o).forEach(u=>{const c=o[u];if(c==null)return!0;Object.keys(c).forEach(l=>{const m=c[l];if(m==null)return!0;for(const g of m)r.push({unitId:u,sheetId:l,range:g})})})}),{dirtyRanges:r,excludedCell:s}}async _apply(e=!1){e?this._runtimeService.setFormulaExecuteStage(Ie.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(Ie.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const t=await this._formulaDependencyGenerator.generate(),r=this._interpreter;e?(this._runtimeService.setFormulaExecuteStage(Ie.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(t.length)):(this._runtimeService.setFormulaExecuteStage(Ie.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(t.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let s=[];for(let i=0,o=t.length;i<o;i++){if(await new Promise(g=>{const _=y.requestImmediateMacroTask(g);s.push(_)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(Ie.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const u=t[i],c=u.node,l=u.getDirtyData;let m;if(c==null&&l==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(u.row,u.column,u.rowCount,u.columnCount,u.subUnitId,u.unitId),l!=null&&u.featureId!=null){const{runtimeCellData:g,dirtyRanges:_}=l(u);this._runtimeService.setRuntimeFeatureCellData(u.featureId,g),this._runtimeService.setRuntimeFeatureRange(u.featureId,_)}else c!=null&&(r.checkAsyncNode(c)?m=await r.executeAsync(c):m=r.execute(c),u.formulaId!=null?this._runtimeService.setRuntimeOtherData(u.formulaId,m):this._runtimeService.setRuntimeData(m));e?(this._runtimeService.setFormulaExecuteStage(Ie.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(Ie.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return s.forEach(i=>i()),s=[],t.length>0?this._runtimeService.markedAsSuccessfullyExecuted():e||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(e,t=!0){const r=this._lexer.treeBuilder(e,t);if(Object.values(f).includes(r))return be.create(r);const s=this._astTreeBuilder.parse(r);s==null||s.serialize()}};exports.CalculateFormulaService=Gc([y.OnLifecycle(y.LifecycleStages.Rendered,exports.CalculateFormulaService),lt(0,y.IConfigService),lt(1,q.Inject(St)),lt(2,Ze),lt(3,Te),lt(4,q.Inject(Mt)),lt(5,q.Inject(At)),lt(6,q.Inject(It))],exports.CalculateFormulaService);var Kc=Object.defineProperty,Nc=Object.getOwnPropertyDescriptor,qc=(n,a,e,t)=>{for(var r=t>1?void 0:t?Nc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Kc(a,e,r),r},tr=(n,a)=>(e,t)=>a(e,t,n);let sr=class extends y.Disposable{constructor(n,a,e,t){super(),this._commandService=n,this._calculateFormulaService=a,this._univerInstanceService=e,this._formulaDataModel=t,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((n,a)=>{if(n.id===Dn.id)this._calculateFormulaService.stopFormulaExecution();else if(n.id===Br.id){const e=n.params.formulaData;this._formulaDataModel.mergeFormulaData(e)}else if(n.id===Cn.id){const e=n.params;if(e.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges:t,dirtyNameMap:r,dirtyDefinedNameMap:s,dirtyUnitFeatureMap:i,dirtyUnitOtherFormulaMap:o}=e;this._calculate(!1,t,r,s,i,o)}}else if(n.id===Rr.id){const e=n.params;if(e==null)return;const{arrayFormulaRange:t,arrayFormulaCellData:r}=e;this._formulaDataModel.setArrayFormulaRange(t),this._formulaDataModel.setArrayFormulaCellData(r)}}))}async _calculate(n=!1,a=[],e={},t={},r={},s={}){if(a.length===0&&Object.keys(e).length===0&&Object.keys(t).length===0&&Object.keys(r).length===0&&Object.keys(s).length===0&&n===!1)return;const i=this._formulaDataModel.getFormulaData(),o=this._formulaDataModel.getArrayFormulaCellData();this._calculateFormulaService.execute({formulaData:i,arrayFormulaCellData:o,forceCalculate:n,dirtyRanges:a,dirtyNameMap:e,dirtyDefinedNameMap:t,dirtyUnitFeatureMap:r,dirtyUnitOtherFormulaMap:s})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(n=>{const a=n.functionsExecutedState;switch(a){case yt.NOT_EXECUTED:break;case yt.STOP_EXECUTION:break;case yt.SUCCESS:this._applyFormula(n);break;case yt.INITIAL:break}this._commandService.executeCommand(_r.id,{functionsExecutedState:a},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(n=>{this._commandService.executeCommand(_r.id,{stageInfo:n},{onlyLocal:!0})})}async _applyFormula(n){const{unitData:a,unitOtherData:e,arrayFormulaRange:t,arrayFormulaCellData:r,clearArrayFormulaCellData:s}=n;if(!a){console.error("No sheetData from Formula Engine!");return}t&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(s),this._formulaDataModel.mergeArrayFormulaCellData(r),this._formulaDataModel.mergeArrayFormulaRange(t),this._commandService.executeCommand(Rr.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(bn.id,{unitData:qa(a),unitOtherData:e},{onlyLocal:!0})}};sr=qc([y.OnLifecycle(y.LifecycleStages.Ready,sr),tr(0,y.ICommandService),tr(1,q.Inject(exports.CalculateFormulaService)),tr(2,y.IUniverInstanceService),tr(3,q.Inject(exports.FormulaDataModel))],sr);const Ln={id:"formula.mutation.register-function",type:y.CommandType.MUTATION,handler:()=>!0},Ir={id:"formula.mutation.set-defined-name",type:y.CommandType.MUTATION,handler:()=>!0},$r={id:"formula.mutation.remove-defined-name",type:y.CommandType.MUTATION,handler:()=>!0},jr={id:"formula.mutation.set-feature-calculation",type:y.CommandType.MUTATION,handler:()=>!0},Yr={id:"formula.mutation.remove-feature-calculation",type:y.CommandType.MUTATION,handler:()=>!0},Qr={id:"formula.mutation.set-other-formula",type:y.CommandType.MUTATION,handler:()=>!0},Hr={id:"formula.mutation.remove-other-formula",type:y.CommandType.MUTATION,handler:()=>!0},Aa={id:"formula.mutation.set-super-table",type:y.CommandType.MUTATION,handler:()=>!0},La={id:"formula.mutation.remove-super-table",type:y.CommandType.MUTATION,handler:()=>!0},Pn={id:"formula.mutation.set-super-table-option",type:y.CommandType.MUTATION,handler:()=>!0},xn={id:"formula.mutation.unregister-function",type:y.CommandType.MUTATION,handler:()=>!0};var Zc=Object.defineProperty,Jc=Object.getOwnPropertyDescriptor,el=(n,a,e,t)=>{for(var r=t>1?void 0:t?Jc(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Zc(a,e,r),r},Jr=(n,a)=>(e,t)=>a(e,t,n);let Bt=class extends y.Disposable{constructor(n=[],a,e,t){super(),this._function=n,this._commandService=a,this._functionService=e,this._dataSyncPrimaryController=t,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[Br,Rr,Cn,Dn,_r,bn,Ir,$r,jr,Yr,Qr,Hr,Aa,La,Pn,Ln,xn].forEach(n=>{var a;this._commandService.registerCommand(n),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(n)})}_registerFunctions(){const n=[...ks,...Hs,...zs,...Gs,...qs,...Zs,...ea,...ra,...na,...sa,...aa,...ia,...oa,...ua,...ca,...fa].concat(this._function).map(a=>{const e=a[0],t=a[1];return new e(t)});this._functionService.registerExecutors(...n)}};Bt=el([y.OnLifecycle(y.LifecycleStages.Ready,Bt),Jr(1,y.ICommandService),Jr(2,He),Jr(3,q.Optional(za.DataSyncPrimaryController))],Bt);var tl=Object.defineProperty,rl=Object.getOwnPropertyDescriptor,nl=(n,a,e,t)=>{for(var r=t>1?void 0:t?rl(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&tl(a,e,r),r},en=(n,a)=>(e,t)=>a(e,t,n);let ar=class extends y.Disposable{constructor(n,a,e){super(),this._commandService=n,this._formulaDataModel=a,this._functionService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((n,a)=>{if(n.id===Ln.id){const e=n.params;if(e==null)return;const{functions:t}=e,r=t.map(s=>{const i=s[0],o=s[1];return al(i,o)});this._functionService.registerExecutors(...r)}else if(n.id===xn.id){const e=n.params;if(e==null)return;const{functions:t}=e;this._functionService.unregisterExecutors(...t)}}))}};ar=nl([y.OnLifecycle(y.LifecycleStages.Ready,ar),en(0,y.ICommandService),en(1,q.Inject(exports.FormulaDataModel)),en(2,He)],ar);class sl extends V{isCustom(){return!0}}function al(n,a){const e=new sl(a),t=new Function(`return ${n}`)();return e.calculateCustom=t,e}var il=Object.defineProperty,ol=Object.getOwnPropertyDescriptor,ul=(n,a,e,t)=>{for(var r=t>1?void 0:t?ol(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&il(a,e,r),r},ms=(n,a)=>(e,t)=>a(e,t,n);let ir=class extends y.Disposable{constructor(n,a){super(),this._commandService=n,this._definedNamesService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Ir.id){const a=n.params;if(a==null)return;const{id:e,unitId:t,name:r,formulaOrRefString:s,comment:i,hidden:o,localSheetId:u}=a;this._definedNamesService.registerDefinedName(t,{id:e,name:r.trim(),formulaOrRefString:s.trim(),comment:i==null?void 0:i.trim(),hidden:o,localSheetId:u})}else if(n.id===$r.id){const a=n.params;if(a==null)return;const{unitId:e,id:t}=a;this._definedNamesService.removeDefinedName(e,t)}}))}};ir=ul([y.OnLifecycle(y.LifecycleStages.Ready,ir),ms(0,y.ICommandService),ms(1,Wt)],ir);var cl=Object.defineProperty,ll=Object.getOwnPropertyDescriptor,fl=(n,a,e,t)=>{for(var r=t>1?void 0:t?ll(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&cl(a,e,r),r},ds=(n,a)=>(e,t)=>a(e,t,n);let or=class extends y.Disposable{constructor(n,a){super(),this._commandService=n,this._featureCalculationManagerService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===jr.id){const a=n.params;if(a==null)return;const{featureId:e,calculationParam:t}=a;this._featureCalculationManagerService.register(e,t)}else if(n.id===Yr.id){const a=n.params;if(a==null)return;const{featureId:e}=a;this._featureCalculationManagerService.remove(e)}}))}};or=fl([y.OnLifecycle(y.LifecycleStages.Ready,or),ds(0,y.ICommandService),ds(1,Gt)],or);var hl=Object.defineProperty,ml=Object.getOwnPropertyDescriptor,dl=(n,a,e,t)=>{for(var r=t>1?void 0:t?ml(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&hl(a,e,r),r},tn=(n,a)=>(e,t)=>a(e,t,n);let ur=class extends y.Disposable{constructor(n,a,e){super(),this._commandService=n,this._otherFormulaManagerService=a,this._dependencyManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Qr.id){const a=n.params;if(a==null)return;const e={[a.unitId]:{[a.subUnitId]:a.formulaMap}};this._otherFormulaManagerService.batchRegister(e)}else if(n.id===Hr.id){const a=n.params;if(a==null)return;const e={};a.formulaIdList.forEach(r=>e[r]=!0);const t={[a.unitId]:{[a.subUnitId]:e}};this._otherFormulaManagerService.batchRemove(t)}}))}};ur=dl([y.OnLifecycle(y.LifecycleStages.Ready,ur),tn(0,y.ICommandService),tn(1,Tr),tn(2,kr)],ur);var gl=Object.defineProperty,pl=Object.getOwnPropertyDescriptor,Rl=(n,a,e,t)=>{for(var r=t>1?void 0:t?pl(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&gl(a,e,r),r},gs=(n,a)=>(e,t)=>a(e,t,n);let cr=class extends y.Disposable{constructor(n,a){super(),this._commandService=n,this._superTableService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Ir.id){const a=n.params;if(a==null)return;const{unitId:e,tableName:t,reference:r}=a;this._superTableService.registerTable(e,t,r)}else if(n.id===$r.id){const a=n.params;if(a==null)return;const{unitId:e,tableName:t}=a;this._superTableService.remove(e,t)}else if(n.id===Pn.id){const a=n.params;if(a==null)return;const{tableOption:e,tableOptionType:t}=a;this._superTableService.registerTableOptionMap(e,t)}}))}};cr=Rl([y.OnLifecycle(y.LifecycleStages.Ready,cr),gs(0,y.ICommandService),gs(1,An)],cr);class _l extends y.Disposable{constructor(){super(...arguments);h(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(e){this._dirtyConversionMap.delete(e)}get(e){return this._dirtyConversionMap.get(e)}has(e){return this._dirtyConversionMap.has(e)}register(e,t){this._dirtyConversionMap.set(e,t)}getDirtyConversionMap(){return this._dirtyConversionMap}}const Pa=q.createIdentifier("univer.formula.active-dirty-manager.service");var El=Object.defineProperty,yl=Object.getOwnPropertyDescriptor,Cl=(n,a,e,t)=>{for(var r=t>1?void 0:t?yl(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&El(a,e,r),r},rn=(n,a)=>(e,t)=>a(e,t,n);let lr=class extends y.Disposable{constructor(n,a){super(),this._commandService=n,this._dependencyManagerService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Yr.id||n.id===jr.id){const a=n.params;if(a==null)return;const{featureId:e}=a;this._dependencyManagerService.removeFeatureFormulaDependency(e)}else if(n.id===Hr.id){const a=n.params;if(a==null)return;this._dependencyManagerService.removeOtherFormulaDependency(a.unitId,a.subUnitId,a.formulaIdList)}else if(n.id===Qr.id){const a=n.params;if(a==null)return;const e=a.formulaMap,t=[];Object.keys(e).forEach(r=>{t.push(r)}),this._dependencyManagerService.removeOtherFormulaDependency(a.unitId,a.subUnitId,t)}else if(n.id===Br.id){const a=n.params.formulaData;Object.keys(a).forEach(e=>{if(a[e]==null)return!0;Object.keys(a[e]).forEach(t=>{const r=a[e][t];if(r==null)return this._dependencyManagerService.clearFormulaDependency(e,t),!0;new y.ObjectMatrix(r).forValue((s,i)=>{this._dependencyManagerService.removeFormulaDependency(e,t,s,i)})})})}}))}};lr=Cl([y.OnLifecycle(y.LifecycleStages.Ready,lr),rn(0,y.ICommandService),rn(1,Gt),rn(1,kr)],lr);var Dl=Object.defineProperty,bl=Object.getOwnPropertyDescriptor,Sl=(n,a,e,t)=>{for(var r=t>1?void 0:t?bl(a,e):a,s=n.length-1,i;s>=0;s--)(i=n[s])&&(r=(t?i(a,e,r):i(r))||r);return t&&r&&Dl(a,e,r),r},Al=(n,a)=>(e,t)=>a(e,t,n);const Ll="base-formula-engine";var nn;exports.UniverFormulaEnginePlugin=(nn=class extends y.Plugin{constructor(a,e){super(),this._config=a,this._injector=e}onStarting(){this._initialize()}_initialize(){var e;const a=[[He,{useClass:pa}],[Gt,{useClass:ba}],[Wt,{useClass:da}],[Pa,{useClass:_l}],[An,{useClass:Dc}],[exports.FormulaDataModel],[xr],[Bt,{useFactory:()=>{var t;return this._injector.createInstance(Bt,(t=this._config)==null?void 0:t.function)}}],[or],[ir],[cr]];(e=this._config)!=null&&e.notExecuteFormula||a.push([exports.CalculateFormulaService],[Tr,{useClass:Sa}],[Te,{useClass:exports.FormulaRuntimeService}],[Ze,{useClass:exports.FormulaCurrentConfigService}],[kr,{useClass:$c}],[sr],[ur],[ar],[lr],[Mt],[At],[It],[St],[ga],[Cr],[Dr],[Ca],[br],[yr],[Sr],[Ar],[Lr],[Da]),a.forEach(t=>this._injector.add(t))}},h(nn,"pluginName",Ll),nn);exports.UniverFormulaEnginePlugin=Sl([Al(1,q.Inject(q.Injector))],exports.UniverFormulaEnginePlugin);function xa(n,a){const e=n.sequenceNodesBuilder(a);return!(!e||e.every(t=>typeof t=="string"||t.nodeType!==Le.REFERENCE))}function Pl(n,a,e,t,r,s){if(!xa(n,a))return a;const i=n.sequenceNodesBuilder(a),o=(_,C)=>({startRow:_,endRow:_,startColumn:C,endColumn:C}),u=o(e,t),c=y.Rectangle.getRelativeRange(o(r,s),u),l=y.Tools.deepClone(i),m=Array.isArray(l)?l.map(_=>{if(typeof _=="object"&&_.nodeType===Le.REFERENCE){const C=$e(_.token),S=y.Rectangle.getPositionRange(c,C.range),A=Ne(S);return{..._,token:A}}return _}):l;return`=${m&&mr(m)}`}exports.ArrayValueObject=_e;exports.AsyncArrayObject=Bs;exports.AsyncObject=Ms;exports.BaseFunction=V;exports.BaseReferenceObject=xt;exports.BaseValueObject=qe;exports.BooleanValue=at;exports.BooleanValueObject=$;exports.DefinedNamesService=da;exports.ERROR_TYPE_SET=Lt;exports.ErrorType=f;exports.ErrorValueObject=d;exports.FUNCTION_NAMES_ARRAY=Is;exports.FUNCTION_NAMES_COMPATIBILITY=Et;exports.FUNCTION_NAMES_CUBE=Ws;exports.FUNCTION_NAMES_DATABASE=Xs;exports.FUNCTION_NAMES_DATE=Ue;exports.FUNCTION_NAMES_ENGINEERING=Js;exports.FUNCTION_NAMES_FINANCIAL=ta;exports.FUNCTION_NAMES_INFORMATION=Ve;exports.FUNCTION_NAMES_LOGICAL=rt;exports.FUNCTION_NAMES_LOOKUP=Se;exports.FUNCTION_NAMES_MATH=Ee;exports.FUNCTION_NAMES_STATISTICAL=me;exports.FUNCTION_NAMES_TEXT=Ge;exports.FUNCTION_NAMES_UNIVER=la;exports.FUNCTION_NAMES_WEB=ha;exports.FeatureCalculationManagerService=ba;exports.FormulaExecuteStageType=Ie;exports.FormulaExecutedStateType=yt;exports.FunctionService=pa;exports.FunctionType=Rs;exports.IActiveDirtyManagerService=Pa;exports.IDefinedNamesService=Wt;exports.IFeatureCalculationManagerService=Gt;exports.IFormulaCurrentConfigService=Ze;exports.IFormulaRuntimeService=Te;exports.IFunctionService=He;exports.IOtherFormulaManagerService=Tr;exports.LexerNode=N;exports.LexerTreeBuilder=xr;exports.NullValueObject=ce;exports.NumberValueObject=D;exports.OtherFormulaManagerService=Sa;exports.RangeReferenceObject=kt;exports.RegisterFunctionMutation=Ln;exports.RemoveDefinedNameMutation=$r;exports.RemoveFeatureCalculationMutation=Yr;exports.RemoveOtherFormulaMutation=Hr;exports.RemoveSuperTableMutation=La;exports.SetArrayFormulaDataMutation=Rr;exports.SetDefinedNameMutation=Ir;exports.SetFeatureCalculationMutation=jr;exports.SetFormulaCalculationNotificationMutation=_r;exports.SetFormulaCalculationResultMutation=bn;exports.SetFormulaCalculationStartMutation=Cn;exports.SetFormulaCalculationStopMutation=Dn;exports.SetFormulaDataMutation=Br;exports.SetOtherFormulaMutation=Qr;exports.SetSuperTableMutation=Aa;exports.SetSuperTableOptionMutation=Pn;exports.StringValueObject=ge;exports.UnregisterFunctionMutation=xn;exports.ValueObjectFactory=it;exports.compareToken=O;exports.convertUnitDataToRuntime=ys;exports.deserializeRangeForR1C1=Ts;exports.deserializeRangeWithSheet=$e;exports.functionArray=ks;exports.functionCompatibility=Hs;exports.functionCube=zs;exports.functionDatabase=Gs;exports.functionDate=qs;exports.functionEngineering=Zs;exports.functionFinancial=ea;exports.functionInformation=ra;exports.functionLogical=na;exports.functionLookup=sa;exports.functionMath=aa;exports.functionMeta=ia;exports.functionStatistical=oa;exports.functionText=ua;exports.functionUniver=ca;exports.functionWeb=fa;exports.generateStringWithSequence=mr;exports.getAbsoluteRefTypeWitString=ai;exports.getAbsoluteRefTypeWithSingleString=Ft;exports.getRangeWithRefsString=ii;exports.handleNumfmtInCell=Vi;exports.includeFormulaLexerToken=Es;exports.initSheetFormulaData=ma;exports.isFormulaLexerToken=Ot;exports.isFormulaTransformable=xa;exports.isInDirtyRange=ps;exports.isReferenceString=Ps;exports.isReferenceStringWithEffectiveColumn=dr;exports.isReferenceStrings=vs;exports.matchRefDrawToken=Na;exports.matchToken=z;exports.normalizeSheetName=Ka;exports.operatorToken=ue;exports.sequenceNodeType=Le;exports.serializeRange=Ne;exports.serializeRangeToRefString=gt;exports.serializeRangeWithSheet=xs;exports.serializeRangeWithSpreadsheet=Vs;exports.singleReferenceToGrid=nr;exports.strip=on;exports.stripErrorMargin=Ci;exports.transformFormula=Pl;
1
+ "use strict";var Wa=Object.defineProperty;var Ga=(n,s,e)=>s in n?Wa(n,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[s]=e;var h=(n,s,e)=>Ga(n,typeof s!="symbol"?s+"":s,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@univerjs/core"),q=require("@wendellhu/redi"),Ct=require("rxjs"),Xa=require("@univerjs/rpc");function _s(n,s,e,t,r){for(let a=0,i=n.length;a<i;a++){const o=n[a];if(s!==o.unitId||e!==o.sheetId)continue;const{startRow:u,startColumn:c,endRow:l,endColumn:d}=o.range;if(t>=u&&t<=l&&r>=c&&r<=d)return!0}return!1}var f=(n=>(n.DIV_BY_ZERO="#DIV/0!",n.NAME="#NAME?",n.VALUE="#VALUE!",n.NUM="#NUM!",n.NA="#N/A",n.CYCLE="#CYCLE!",n.REF="#REF!",n.SPILL="#SPILL!",n.CALC="#CALC!",n.ERROR="#ERROR!",n.CONNECT="#GETTING_DATA",n.NULL="#NULL!",n))(f||{});const Pt=new Set(Object.values(f));var Es=(n=>(n[n.Financial=0]="Financial",n[n.Date=1]="Date",n[n.Math=2]="Math",n[n.Statistical=3]="Statistical",n[n.Lookup=4]="Lookup",n[n.Database=5]="Database",n[n.Text=6]="Text",n[n.Logical=7]="Logical",n[n.Information=8]="Information",n[n.Engineering=9]="Engineering",n[n.Cube=10]="Cube",n[n.Compatibility=11]="Compatibility",n[n.Web=12]="Web",n[n.Array=13]="Array",n[n.Univer=14]="Univer",n[n.User=15]="User",n[n.DefinedName=16]="DefinedName",n))(Es||{}),se=(n=>(n.PLUS="+",n.MINUS="-",n.MULTIPLY="*",n.DIVIDED="/",n.CONCATENATE="&",n.POWER="^",n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(se||{}),U=(n=>(n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(U||{});const rr=new Map([["<>",3],["<",3],[">=",3],["=",3],[">",3],["<=",3],["&",2],["+",2],["-",2],["/",1],["*",1],["^",0]]),ft=new Set(rr.keys()),Ka=new Set(["=","<>",">",">=","<","<="]);var z=(n=>(n.OPEN_BRACKET="(",n.CLOSE_BRACKET=")",n.COMMA=",",n.SINGLE_QUOTATION="'",n.DOUBLE_QUOTATION='"',n.OPEN_BRACES="{",n.CLOSE_BRACES="}",n.COLON=":",n.OPEN_SQUARE_BRACKET="[",n.CLOSE_SQUARE_BRACKET="]",n))(z||{}),Ge=(n=>(n.PERCENTAGE="%",n.POUND="#",n))(Ge||{});const qa=new Set(["%","#"]);var pe=(n=>(n.AT="@",n.MINUS="-",n))(pe||{});const Za=" ",ys=[...Object.values(U),...Object.values(se),...Object.values(z),...Object.values(Ge),...Object.values(pe)];function Mt(n){return ys.includes(n)}function Cs(n){for(const s of ys)if(n.indexOf(s)>-1)return!0;return!1}function Ja(n){return n[0]==="'"&&n[n.length-1]==="'"?n.substring(1,n.length-1):n}function ei(n){return Mt(n)&&n!==z.CLOSE_BRACES&&n!==z.CLOSE_BRACKET&&n!==z.SINGLE_QUOTATION&&n!==z.DOUBLE_QUOTATION||n===" "}function Ds(n){const s={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;s[e]==null&&(s[e]={}),Object.keys(t).forEach(r=>{const a=t[r];s[e][r]=new b.ObjectMatrix(a)})}),s}function ti(n){const s={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;s[e]==null&&(s[e]={}),Object.keys(t).forEach(r=>{const a=t[r];s[e][r]=a.getData()})}),s}const ze="P_1",nt="R_1",Dt="L_1",jt="LR_1",bs="LO_1",ri="LET",Tt="LAMBDA",ni="CUBE";class G{constructor(){h(this,"_parent");h(this,"_token",nt);h(this,"_children",[]);h(this,"_lambdaId");h(this,"_functionDefinitionPrivacyVar");h(this,"_lambdaParameter","");h(this,"_startIndex",-1);h(this,"_endIndex",-1);h(this,"_definedNames",[])}dispose(){var s;this._children.forEach(e=>{typeof e!="string"&&e.dispose()}),(s=this._functionDefinitionPrivacyVar)==null||s.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(s){this._lambdaId=s}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(s){this._functionDefinitionPrivacyVar=s}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(s){this._lambdaParameter=s}getParent(){return this._parent}setParent(s){this._parent=s}getChildren(){return this._children}setChildren(s){this._children=s}addChildren(s){this._children.push(s)}addChildrenFirst(s){this._children.unshift(s)}getToken(){return this._token}setToken(s){this._token=s}setIndex(s,e){this._startIndex=s,this._endIndex=e}setDefinedNames(s){this._definedNames=s}hasDefinedNames(){return this._definedNames.length>0}replaceChild(s,e){const t=this._getIndexInParent(s);t!=null&&(this.getChildren().splice(t,1,e),e.setParent(this))}changeToParent(s){const e=this.getParent();e&&e.removeChild(this),this.setParent(s),s.getChildren().push(this)}removeChild(s){const e=this._getIndexInParent(s);e!=null&&this.getChildren().splice(e,1)}serialize(){const s=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let a=0;a<r;a++){const i=e[a];i instanceof G?t.push(i.serialize()):t.push(i)}return{token:s,st:this._startIndex,ed:this._endIndex,children:t}}_getIndexInParent(s){const e=this.getChildren(),t=e.length;for(let r=0;r<t;r++)if(e[r]===s)return r}}class Rt{constructor(s){h(this,"_cache");this._cache=new b.LRUMap(s)}set(s,e){const t=this._hash(s);this._cache.set(t,e)}get(s){const e=this._hash(s);return this._cache.get(e)}clear(){this._cache.clear()}_hash(s){return b.hashAlgorithm(s)}}const rn='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',si="((?![\\[\\]\\/?*\\\\]).)*!",st="$",cn="\\s*?:\\s*?",lr="[A-Za-z]+",fr="[1-9][0-9]*",Lt=`'?(${rn})?(${si})?'?`,nn=`\\${st}?${lr}\\${st}?${fr}`,ai=`^(${pe.AT})?${Lt}${nn}${cn}${nn}$`,$t=`^${Lt}\\s*?${nn}(${Ge.POUND})?$`,Ss=`^${Lt}\\${st}?${fr}${cn}\\${st}?${fr}$`,As=`^${Lt}\\${st}?${lr}${cn}\\${st}?${lr}$`,Ps=`^${Lt}\\s*?\\${st}?${fr}$`,Ls=`^${Lt}\\s*?\\${st}?${lr}$`,xs="[.*?]",ii="{.*?}";function Vs(n){return new RegExp($t).test(n)||new RegExp(ai).test(n)||new RegExp(Ss).test(n)||new RegExp(As).test(n)}var Ae=(n=>(n[n.NORMAL=0]="NORMAL",n[n.NUMBER=1]="NUMBER",n[n.STRING=2]="STRING",n[n.FUNCTION=3]="FUNCTION",n[n.REFERENCE=4]="REFERENCE",n[n.ARRAY=5]="ARRAY",n[n.DEFINED_NAME=6]="DEFINED_NAME",n))(Ae||{});function hr(n){let s="";for(const e of n)typeof e=="string"?s+=e:s+=e.token;return s}const oi=/[^0-9]/g,ui=/[^A-Za-z]/g;function Ft(n){let s=n[0]==="$";const e=n.substring(1);let t=e.indexOf("$")>-1;return b.Tools.isStringNumber(e)&&s&&!t&&(s=!1,t=!0),s&&t?b.AbsoluteRefType.ALL:s?b.AbsoluteRefType.COLUMN:t?b.AbsoluteRefType.ROW:b.AbsoluteRefType.NONE}function ci(n){const s=n.split("!");s.length>1&&(n=s[s.length-1]);const e=n.split(":");return e.length>1?{startAbsoluteRefType:Ft(e[0]),endAbsoluteRefType:Ft(e[1])}:{startAbsoluteRefType:Ft(e[0])}}function In(n=b.AbsoluteRefType.NONE){let s="",e="";return n===b.AbsoluteRefType.ROW?s="$":n===b.AbsoluteRefType.COLUMN?e="$":n===b.AbsoluteRefType.ALL&&(s="$",e="$"),{rowAbsoluteString:s,columnAbsoluteString:e}}function Xe(n){const{startColumn:s,startRow:e,endColumn:t,endRow:r,startAbsoluteRefType:a,endAbsoluteRefType:i,rangeType:o=b.RANGE_TYPE.NORMAL}=n,u=In(a),c=In(i);if(o===b.RANGE_TYPE.ROW||o===b.RANGE_TYPE.ALL){const g=`${u.rowAbsoluteString}${e+1}`,p=`${c.rowAbsoluteString}${r+1}`;return`${g}:${p}`}if(o===b.RANGE_TYPE.COLUMN){const g=`${u.columnAbsoluteString}${b.Tools.chatAtABC(s)}`,p=`${c.columnAbsoluteString}${b.Tools.chatAtABC(t)}`;return`${g}:${p}`}const l=`${u.columnAbsoluteString}${b.Tools.chatAtABC(s)}${u.rowAbsoluteString}${e+1}`,d=`${c.columnAbsoluteString}${b.Tools.chatAtABC(t)}${c.rowAbsoluteString}${r+1}`;return l===d?l:`${l}:${d}`}function ws(n,s){return dr(n)?`'${n}'!${Xe(s)}`:`${n}!${Xe(s)}`}function Os(n,s,e){return dr(n)||dr(s)?`'[${n}]${s}'!${Xe(e)}`:`[${n}]${s}!${Xe(e)}`}function gt(n){const{unitId:s,sheetName:e,range:t}=n;return s!=null&&s.length>0&&e!=null&&e.length>0?Os(s,e,t):e!=null&&e.length>0?ws(e,t):Xe(t)}function nr(n){const s=Number.parseInt(n.replace(oi,""))-1,e=b.Tools.ABCatNum(n.replace(ui,"")),t=Ft(n);return{row:s,column:e,absoluteRefType:t}}function Us(n){const s=new RegExp(rn).exec(n);let e="";s!=null&&(e=s[0].trim(),e=e.slice(1,e.length-1),n=n.replace(new RegExp(rn),""));const t=n.indexOf("!");let r="",a="";return t>-1?(r=n.substring(0,t),r[0]==="'"&&r[r.length-1]==="'"&&(r=r.substring(1,r.length-1)),a=n.substring(t+1)):a=n,{refBody:a,sheetName:r,unitId:e}}function je(n){const{refBody:s,sheetName:e,unitId:t}=Us(n),r=s.indexOf(":");if(r===-1){const _=nr(s),D=_.row,P=_.column,w=_.absoluteRefType;return{unitId:t,sheetName:e,range:{startRow:D,startColumn:P,endRow:D,endColumn:P,startAbsoluteRefType:w,endAbsoluteRefType:w}}}const a=s.substring(0,r),i=s.substring(r+1),o=nr(a),u=nr(i),c=o.row,l=o.column,d=u.row,g=u.column;let p=b.RANGE_TYPE.NORMAL;return Number.isNaN(c)&&Number.isNaN(d)?p=b.RANGE_TYPE.COLUMN:Number.isNaN(l)&&Number.isNaN(g)&&(p=b.RANGE_TYPE.ROW),{unitId:t,sheetName:e,range:{startRow:c,startColumn:l,endRow:d,endColumn:g,startAbsoluteRefType:o.absoluteRefType,endAbsoluteRefType:u.absoluteRefType,rangeType:p}}}function mr(n){if(!Vs(n))return!1;const{range:s}=je(n);return!(s.endColumn>=16384)}function li(n,s){const e=(n==null?void 0:n.split(","))||[];return n===""||e.length===0?[]:Ms(n)?e.map(a=>{const i=je(a);return{unitId:i.unitId,sheetId:s(i.sheetName),range:i.range,sheetName:i.sheetName}}):[]}function Ms(n){return((n==null?void 0:n.split(","))||[]).every(e=>mr(e.trim()))}function dr(n){return n.length===0?!1:!!(Cs(n)||fi(n)||hi(n)||mi(n)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(n))}function fi(n){const s=n.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(n)&&s!==null}function hi(n){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(n)}function mi(n){return!new RegExp("^\\p{Letter}","u").test(n.charAt(0))}const Fs=1e5,Nr=new Rt(Fs),Wr=new Rt(Fs);class Lr extends b.Disposable{constructor(){super(...arguments);h(this,"_currentLexerNode",new G);h(this,"_upLevel",0);h(this,"_segment","");h(this,"_bracketState",[]);h(this,"_squareBracketState",0);h(this,"_bracesState",0);h(this,"_singleQuotationState",0);h(this,"_doubleQuotationState",0);h(this,"_lambdaState",!1);h(this,"_colonState",!1);h(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),Nr.clear(),Wr.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(e,t){const r=this._getCurrentParamIndex(e,t);if(r==null||r===f.VALUE)return;const a=r[0];if(typeof a=="string")return;let i=a.getParent(),o=a;for(;i;){const u=i.getToken();if(u!==ze&&!Mt(u)&&i.getStartIndex()!==-1){const c=i.getChildren().indexOf(o);return{functionName:u,paramIndex:c}}o=i,i=i.getParent()}}checkIfAddBracket(e){let t=0,r=e.length-1,a=e[r];for(;(a===z.CLOSE_BRACKET||a===" ")&&r>=0;)a===z.CLOSE_BRACKET&&t++,a=e[--r];const i=this._getCurrentParamIndex(e,e.length-2);if(i==null||i===f.VALUE)return 0;const o=i[0];if(typeof o=="string")return 0;let u=o.getParent(),c=0;for(i[1]===z.OPEN_BRACKET&&c++;u;){const l=u.getToken();l!==ze&&l!==z.COLON&&u.getStartIndex()!==-1&&l.toUpperCase()!==Tt&&(t===0?c+=1:t--),u=u.getParent()}return c}sequenceNodesBuilder(e){const t=Wr.get(e);if(t)return[...t];const r=this._getSequenceArray(e);if(r.length===0)return;const a=this.getSequenceNode(r);return Wr.set(e,[...a]),a}convertRefersToAbsolute(e,t,r){const a=this.sequenceNodesBuilder(e);if(a==null)return e;let i="";e.substring(0,1)===se.EQUALS&&(i=se.EQUALS);for(let o=0,u=a.length;o<u;o++){const c=a[o];if(typeof c!="string"&&c.nodeType===Ae.REFERENCE){const{token:l,endIndex:d}=c,g=je(l);if(g==null)continue;const{range:p,sheetName:_,unitId:D}=g,P={...p,startAbsoluteRefType:t,endAbsoluteRefType:r},w=gt({range:P,unitId:D,sheetName:_}),v=w.length-l.length;a[o]={...c,token:w,endIndex:d+v};for(let B=o+1;B<u;B++){const X=a[B];typeof X!="string"&&(X.startIndex+=v,X.endIndex+=v)}}}return`${i}${hr(a)}`}moveFormulaRefOffset(e,t,r,a=!1){const i=this.sequenceNodesBuilder(e);if(i==null)return e;const o=[];for(let u=0,c=i.length;u<c;u++){const l=i[u];if(typeof l=="string"||l.nodeType!==Ae.REFERENCE){o.push(l);continue}const{token:d}=l,g=je(d),{sheetName:p,unitId:_}=g;let D=g.range;if(!a&&D.startAbsoluteRefType===b.AbsoluteRefType.ALL&&D.endAbsoluteRefType===b.AbsoluteRefType.ALL){o.push(l);continue}else D=b.moveRangeByOffset(D,t,r,a);let P="";b.isValidRange(D)?P=gt({range:D,unitId:_,sheetName:p}):P=f.REF,o.push({...l,token:P})}return`=${hr(o)}`}getSequenceNode(e){const t=[];let r=!1;for(let a=0,i=e.length;a<i;a++){const o=e[a],u=e[a-1],{segment:c,currentString:l}=o;if(l===z.DOUBLE_QUOTATION&&(r=!0),(c!==""||a===0)&&a!==i-1){t.push(l);continue}let d=(u==null?void 0:u.segment)||"",g=a-d.length,p=a-1,_=a-1;if(a===i-1&&this._isLastMergeString(l)&&(d+=l,p+=1),d===""||rr.has(d)){t.push(l);continue}const D=d.trim(),P=this._replacePrefixString(D);if(r===!0&&D[D.length-1]===z.DOUBLE_QUOTATION)r=!1,this._processPushSequenceNode(t,Ae.STRING,d,g,p,_);else if(new RegExp($t).test(P)&&mr(P)){if(P.length!==D.length){const w=D.length-P.length;_+=w,g+=w,d=this._replacePrefixString(d)}this._processPushSequenceNode(t,Ae.REFERENCE,d,g,p,_)}else b.Tools.isStringNumber(D)?this._processPushSequenceNode(t,Ae.NUMBER,d,g,p,_):D.length>0&&this._processPushSequenceNode(t,Ae.FUNCTION,d,g,p,_);(a!==i-1||!this._isLastMergeString(l))&&t.push(l)}return this._mergeSequenceNodeReference(t)}_processPushSequenceNode(e,t,r,a,i,o){this._pushSequenceNode(e,{nodeType:t,token:r,startIndex:a,endIndex:i},o)}_getCurrentParamIndex(e,t){return this._nodeMaker(e,void 0,t)}_isLastMergeString(e){return e===z.DOUBLE_QUOTATION||b.Tools.isStringNumber(e)||!Mt(e)}_mergeSequenceNodeReference(e){const t=[],r=e.length;let a=0;for(;a<r;){const i=e[a];if(typeof i=="string"){const o=e[a-1];if(i.trim()===z.CLOSE_BRACES&&o!=null&&typeof o!="string"&&o.nodeType===Ae.FUNCTION&&o.token.trim().substring(0,1)===z.OPEN_BRACES){o.nodeType=Ae.ARRAY,o.token+=i,o.endIndex+=i.length,a++;continue}t.push(i)}else{const o=e[a+1],u=e[a+2];o===z.COLON&&typeof i!="string"&&u!=null&&typeof u!="string"&&mr((i.token+o+u.token).trim())&&(i.nodeType=Ae.REFERENCE,i.token+=o+u.token,i.endIndex=u.endIndex,a+=2),t.push(i)}a++}return t}_pushSequenceNode(e,t,r){const a=r-t.startIndex+1;e.splice(e.length-a,a,t)}_replacePrefixString(e){const t=[];let r=!1;for(let a=0,i=e.length;a<i;a++){const o=e[a];if(o===Za&&!r)t.push(o);else{if(!r&&(o===pe.AT||o===pe.MINUS))continue;t.push(o),r=!0}}return t.join("")}nodeMakerTest(e){return this._nodeMaker(e)}treeBuilder(e,t=!0,r,a){if(t===!0){const g=Nr.get(e),p=a==null?void 0:a(e);if(g&&!p)return g}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(nt);const i=[];let o=this._nodeMaker(e,i);if(o===f.VALUE||i.length===0)return o;let u=!1,c="",l=[];if(r){const{hasDefinedName:g,sequenceString:p,definedNames:_}=r(i);u=g,c=p,l=_}if(u&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(nt),o=this._nodeMaker(`=${c}`),o===f.VALUE))return o;const d=this._getTopNode(this._currentLexerNode);if(d&&(this._currentLexerNode=d),t){if(!this._suffixExpressionHandler(this._currentLexerNode))return f.VALUE;Nr.set(e,this._currentLexerNode)}return u&&this._currentLexerNode.setDefinedNames(l),this._currentLexerNode}_suffixExpressionHandler(e){var o;const t=e.getChildren();if(!t)return!1;const r=t.length,a=[],i=[];for(let u=0;u<r;u++){const c=t[u];if(c instanceof G)this._suffixExpressionHandler(c),a.push(c);else{const l=c.trim();if(l==="")continue;if(ft.has(l)){if(l===se.PLUS&&this._deletePlusForPreNode(t[u-1]))continue;if(l!==se.PLUS&&l!==se.MINUS&&this._deletePlusForPreNode(t[u-1]))return!1;for(;i.length>0;){const d=(o=i[i.length-1])==null?void 0:o.trim();if(!d||d===z.OPEN_BRACKET)break;const g=rr.get(d),p=rr.get(l);if(!g||!p)break;if(p>=g)a.push(i.pop());else break}i.push(c)}else if(l===z.OPEN_BRACKET)i.push(c);else if(l===z.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(a,i,t,u);else{if(this._checkCloseBracket(t[u-1]))return!1;a.push(c)}}}return this._processSuffixExpressionRemain(a,i,e)}_processSuffixExpressionRemain(e,t,r){const a=e.length,i=e[a-1];for(;t.length>0;){const o=t.pop();if(!(i instanceof G)&&(o===z.OPEN_BRACKET||o===z.CLOSE_BRACKET))return!1;e.push(o)}return r.setChildren(e),!0}_processSuffixExpressionCloseBracket(e,t,r,a){var i;if(this._checkOpenBracket(r[a-1])||this._checkOperator(r[a-1]))return!1;for(;t.length>0;){const o=(i=t[t.length-1])==null?void 0:i.trim();if(!o)break;if(o===z.OPEN_BRACKET){t.pop();break}e.push(t.pop())}}_checkCloseBracket(e){return e===z.CLOSE_BRACKET}_checkOpenBracket(e){return e===z.OPEN_BRACKET}_checkOperator(e){return e==null||e instanceof G?!1:ft.has(e)}_deletePlusForPreNode(e){if(e==null)return!0;if(!(e instanceof G)){const t=e.trim();if(ft.has(t)||t===z.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new G}_resetSegment(){this._segment=""}_openBracket(e=0){this._bracketState.push(e)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const e=this._bracketState;return e[e.length-1]}_changeCurrentBracket(e){const t=this._bracketState;t[t.length-1]=e}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(e){this._upLevel=e,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_getLastChildCurrentLexerNode(){const e=this._currentLexerNode.getChildren();if(e&&e.length>0){const t=e[e.length-1];if(t instanceof G)return t}return!1}_getLastChildCurrent(){const e=this._currentLexerNode.getChildren();return e&&e.length>0?e[e.length-1]:!1}_setParentCurrentLexerNode(){const e=this._currentLexerNode.getParent();return e?(this._currentLexerNode=e,!0):!1}_setAncestorCurrentLexerNode(){var r,a,i,o,u,c;const e=(r=this._currentLexerNode)==null?void 0:r.getParent();let t=!1;if(e&&e.getToken()===Dt){if((a=e==null?void 0:e.getParent())!=null&&a.getParent()){const l=(o=(i=this._currentLexerNode.getParent())==null?void 0:i.getParent())==null?void 0:o.getParent();l&&(this._currentLexerNode=l),t=!0}}else if(e!=null&&e.getParent()){const l=(u=this._currentLexerNode.getParent())==null?void 0:u.getParent();l&&(this._currentLexerNode=l),t=!0}for(let l=0;l<this._upLevel;l++){const d=(c=this._currentLexerNode)==null?void 0:c.getParent();d&&(this._currentLexerNode=d),this._currentLexerNode?t=!0:t=!1}return t}_segmentCount(){return this._segment.trim().length}_pushSegment(e){this._segment+=e}_pushNodeToChildren(e,t=!1){if(e!==""){const r=this._currentLexerNode.getChildren();if(!(e instanceof G)&&this.isColonOpen()){const a=new G;a.setToken(e),a.setParent(this._currentLexerNode),e=a}t?r.unshift(e):r.push(e)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(e,t=!1){this._pushNodeToChildren(e,t),e.setParent(this._currentLexerNode),this._currentLexerNode=e}_newAndPushCurrentLexerNode(e,t,r=!1){const a=new G;a.setToken(e),a.setIndex(t-e.length,t-1),this._setCurrentLexerNode(a,r)}_getTopNode(e){let t=e;for(;t!=null&&t.getParent();)t=t.getParent();return t}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_findPreviousToken(e,t){for(;t>=0;){const r=e[t];if(r!==" ")return r;t--}}_negativeCondition(e){return!!(ft.has(e)||e===z.OPEN_BRACKET||e===z.COMMA||e==="")}_getSequenceArray(e){const t=[];return this._nodeMaker(e,t),t}_resetTemp(){this._currentLexerNode=new G,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1}_checkSimilarErrorToken(e,t,r){if(e!==Ge.POUND)return!0;let a=r[++t];for(;a===" ";)a=r[++t];return!!Mt(a)}_nodeMaker(e,t,r){e.substring(0,1)===se.EQUALS&&(e=e.substring(1));let a=!1;e.substring(0,1)===se.MINUS&&(e=`0${e}`,a=!0);const i=e.split(""),o=i.length;let u=0;for(this._resetTemp();u<o;){const c=i[u];if(r===u)return[this._currentLexerNode,c];if(c===z.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,u),this._resetSegment()),this._openBracket(1),this._closeLambda();const l=i[u+1];if(l&&l===z.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._addSequenceArray(t,c,u,a),u++,this._addSequenceArray(t,l,u,a),u++,this._closeBracket();continue}else l&&this._newAndPushCurrentLexerNode(ze,u)}else this._pushNodeToChildren(c),this._openBracket(0);else if(c===z.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._pushNodeToChildren(this._segment),this._resetSegment();const l=this._getCurrentBracket();if(l===0)this._pushNodeToChildren(c);else if(l===1){const d=i[u+1];if(d&&d===z.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._newAndPushCurrentLexerNode(Dt,u,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&u!==o-1)return f.VALUE}else return f.VALUE;this._closeBracket()}else if(c===z.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._openBraces();else if(c===z.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(c===z.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(c),this._openSquareBracket();else if(c===z.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(c),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(c);else if(c===z.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const l=i[u+1];l&&l===z.DOUBLE_QUOTATION?u++:this._closeDoubleQuotation()}this._pushSegment(c)}else if(c===z.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const l=i[u+1];l&&l===z.SINGLE_QUOTATION?u++:this._closeSingleQuotation()}this._pushSegment(c)}else if(c===z.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=this._getCurrentBracket();if(l===1||l==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&u!==o-1&&l!=null)return f.VALUE;this._newAndPushCurrentLexerNode(ze,u)}else{const d=new G;d.setToken(ni);const g=new G;g.setToken(ze),g.changeToParent(d);const p=this._currentLexerNode.getParent();if(p&&p.getToken()===z.COLON){const _=p.getParent();if(!_)return f.VALUE;p.changeToParent(g),_.setChildren([]),d.changeToParent(_)}else return f.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=d,this._newAndPushCurrentLexerNode(ze,u)}}else if(c===z.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=new G;l.setToken(c);const d=new G;d.setToken(ze),d.setParent(l);const g=new G;g.setToken(ze),g.setParent(l),l.getChildren().push(d,g);let p=l,_=0;if(this._segmentCount()>0){let D,P,w=0;const v=this._segment.trim(),B=v[0],X=v[1];if(B===pe.MINUS&&(D=new G,D.setToken(pe.MINUS),w++),(B===pe.AT||X===pe.AT)&&(P=new G,P.setToken(pe.AT),D&&(D.addChildren(P),P.setParent(D)),w++),w>0&&(this._segment=v.slice(w)),_=w,P)if(P.addChildren(l),l.setParent(P),P.getParent()){const ge=P.getParent();ge&&(p=ge)}else p=P;else D&&(p=D,D.addChildren(l),l.setParent(D));const ue=new G;ue.setToken(this._segment),ue.setParent(d),d.getChildren().push(ue),this._resetSegment()}else{const D=this._getLastChildCurrentLexerNode();D&&D.changeToParent(d)}this._setCurrentLexerNode(p),this._currentLexerNode=g,this._openColon(_)}else if(qa.has(c)&&this._checkSimilarErrorToken(c,u,i)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){this._pushNodeToChildren(this._segment);const l=new G;l.setToken(c);const d=this._getLastChildCurrent();d instanceof G?d.changeToParent(l):d!==!1&&(l.getChildren().push(d),this._removeLastChild()),this._pushNodeToChildren(l),l.setParent(this._currentLexerNode),this._resetSegment()}else if(ft.has(c)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){let l=this._segment.trim();if(c===se.MINUS&&l===""){const d=this._findPreviousToken(i,u-1)||"";if(this._negativeCondition(d)){this._pushSegment(se.MINUS),this._addSequenceArray(t,c,u,a),u++;continue}}else if(this._segment.length>0&&this._isScientificNotation(i,u,c)){this._pushSegment(c),this._addSequenceArray(t,c,u,a),u++;continue}else this._segment.length>0&&l===""?l=this._segment:(this._pushNodeToChildren(this._segment),l="");if(c===se.LESS_THAN||c===se.GREATER_THAN){const d=i[u+1];d&&ft.has(c+d)?(this._pushNodeToChildren(l+c+d),u++):this._pushNodeToChildren(l+c)}else this._pushNodeToChildren(l+c);this._resetSegment()}else this._pushSegment(c);this._addSequenceArray(t,c,u,a),u++}this._pushNodeToChildren(this._segment)}_isScientificNotation(e,t,r){const a=e[t-2];if(a&&Number.isNaN(Number(a))||!(r===se.MINUS||r===se.PLUS))return!1;const i=e[t+1];if(i&&Number.isNaN(Number(i)))return!1;const o=e[t-1];return o&&o.toUpperCase()==="E"}_addSequenceArray(e,t,r,a){a&&r===0||e==null||e.push({segment:this._segment,currentString:t,cur:r,currentLexerNode:this._currentLexerNode})}}class xr extends b.Disposable{constructor(){super(...arguments);h(this,"pattern","")}getPattern(){return this.pattern}setPattern(e){this.pattern=e}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(e){return!1}}var at=(n=>(n.FALSE="FALSE",n.TRUE="TRUE",n))(at||{}),dt=(n=>(n[n.SUCCESS=0]="SUCCESS",n[n.ERROR=1]="ERROR",n))(dt||{}),ht=(n=>(n.ALL="#All",n.DATA="#Data",n.HEADERS="#Headers",n.TOTALS="#Totals",n))(ht||{}),Be=(n=>(n[n.FRONT=0]="FRONT",n[n.BACK=1]="BACK",n))(Be||{});class di{constructor(){h(this,"_cache",new Map);h(this,"_continueBuildingCache",new Map)}set(s,e,t,r,a){if(!this.shouldContinueBuildingCache(s,e,t,a))return;let i=this._cache.get(s);i==null&&(i=new Map,this._cache.set(s,i));let o=i.get(e);o==null&&(o=new Map,i.set(e,o));let u=o.get(t);u==null&&(u=new Map,o.set(t,u));let c=u.get(r);c==null&&(c=new Set,u.set(r,c)),c.add(a)}getCellValuePositions(s,e,t){var r,a;return(a=(r=this._cache.get(s))==null?void 0:r.get(e))==null?void 0:a.get(t)}getCellPositions(s,e,t,r){var a,i,o;return(o=(i=(a=this._cache.get(s))==null?void 0:a.get(e))==null?void 0:i.get(t))==null?void 0:o.get(r)}getCellPosition(s,e,t,r,a,i){const o=this.getCellPositions(s,e,t,r);if(o!=null){for(const u of o)if(u>=a&&u<=i)return u}}setContinueBuildingCache(s,e,t,r,a){let i=this._continueBuildingCache.get(s);i==null&&(i=new Map,this._continueBuildingCache.set(s,i));let o=i.get(e);o==null&&(o=new Map,i.set(e,o));let u=o.get(t);if(u==null){u={startRow:r,endRow:a},o.set(t,u);return}u.startRow=Math.min(u.startRow,r),u.endRow=Math.max(u.endRow,a)}shouldContinueBuildingCache(s,e,t,r){var u,c;const a=(c=(u=this._continueBuildingCache.get(s))==null?void 0:u.get(e))==null?void 0:c.get(t);if(a==null)return!0;const{startRow:i,endRow:o}=a;return!(r>=i&&r<=o)}canUseCache(s,e,t,r,a){var c,l;if(t===-1||r===-1||a===-1)return!1;const i=(l=(c=this._continueBuildingCache.get(s))==null?void 0:c.get(e))==null?void 0:l.get(t);if(i==null)return!1;const{startRow:o,endRow:u}=i;return!(r>u||a<o)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}}const tt=new di;var We=(n=>(n[n.MIN=0]="MIN",n[n.MAX=1]="MAX",n))(We||{}),Pe=(n=>(n[n.NORMAL=0]="NORMAL",n[n.MIN=1]="MIN",n[n.MAX=2]="MAX",n))(Pe||{});function jn(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(n,s)=>n.localeCompare(s)}function gi(n){return n.indexOf("*")>-1||n.indexOf("?")>-1}function Gr(n,s){const e=Ri(s).replace(/~?[*?]/g,r=>r.startsWith("~")?`\\${r.substring(1)}`:r==="*"?".*":r==="?"?".":r);return new RegExp(`^${e}$`).test(n)}function $n(n){return n.replace(/~?[*?]/g,s=>s.startsWith("~")?s.substring(1):" ")}function pi(n,s,e){let t=!1;switch(e){case U.EQUALS:t=Gr(n,s);break;case U.NOT_EQUAL:t=!Gr(n,s);break;case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:t=Gr(n,s)||n>$n(s);break;case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:t=n<$n(s);break}return t}function Ri(n){return n.replace(/[.+^${}()|[\]\\]/g,"\\$&")}class Ke extends xr{constructor(s){super(),this._rawValue=s}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(s){}setArrayValue(s){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return m.create(f.VALUE)}max(){return m.create(f.VALUE)}min(){return m.create(f.VALUE)}count(){return m.create(f.VALUE)}countA(){return m.create(f.VALUE)}countBlank(){return m.create(f.VALUE)}getNegative(){return m.create(f.VALUE)}getReciprocal(){return m.create(f.VALUE)}plus(s){return m.create(f.VALUE)}minus(s){return m.create(f.VALUE)}multiply(s){return m.create(f.VALUE)}divided(s){return m.create(f.VALUE)}mod(s){return m.create(f.VALUE)}map(s){return m.create(f.NAME)}mapValue(s){return m.create(f.NAME)}compare(s,e,t=!1){return m.create(f.NAME)}isEqual(s){return this.compare(s,U.EQUALS)}isNotEqual(s){return this.compare(s,U.NOT_EQUAL)}isGreaterThanOrEqual(s){return this.compare(s,U.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(s){return this.compare(s,U.LESS_THAN_OR_EQUAL)}isLessThan(s){return this.compare(s,U.LESS_THAN)}isGreaterThan(s){return this.compare(s,U.GREATER_THAN)}concatenateFront(s){return m.create(f.NAME)}concatenateBack(s){return m.create(f.NAME)}plusBy(s){return m.create(f.VALUE)}minusBy(s){return m.create(f.VALUE)}multiplyBy(s){return m.create(f.VALUE)}dividedBy(s){return m.create(f.VALUE)}modInverse(s){return m.create(f.VALUE)}compareBy(s,e){return m.create(f.NAME)}concatenate(s,e=Be.FRONT){let t=this.getValue().toString();if(typeof s=="string")e===Be.FRONT?t=s+t:t+=s;else if(typeof s=="number")e===Be.FRONT?t=s.toString()+t:t+=s.toString();else if(typeof s=="boolean"){const r=s?"TRUE":"FALSE";e===Be.FRONT?t=r+t:t+=r}return t}pow(s){return m.create(f.VALUE)}powInverse(s){return m.create(f.VALUE)}sqrt(){return m.create(f.VALUE)}cbrt(){return m.create(f.VALUE)}cos(){return m.create(f.VALUE)}acos(){return m.create(f.VALUE)}acosh(){return m.create(f.VALUE)}sin(){return m.create(f.VALUE)}sinh(){return m.create(f.VALUE)}asin(){return m.create(f.VALUE)}asinh(){return m.create(f.VALUE)}tan(){return m.create(f.VALUE)}tanh(){return m.create(f.VALUE)}atan(){return m.create(f.VALUE)}atan2(s){return m.create(f.VALUE)}atan2Inverse(s){return m.create(f.VALUE)}atanh(){return m.create(f.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return m.create(f.VALUE)}log10(){return m.create(f.VALUE)}exp(){return m.create(f.VALUE)}abs(){return m.create(f.VALUE)}round(s){return m.create(f.VALUE)}roundInverse(s){return m.create(f.VALUE)}floor(s){return m.create(f.VALUE)}floorInverse(s){return m.create(f.VALUE)}ceil(s){return m.create(f.VALUE)}ceilInverse(s){return m.create(f.VALUE)}convertToNumberObjectValue(){return m.create(f.VALUE)}convertToBooleanObjectValue(){return m.create(f.VALUE)}}const _i=1e3,Yn=new Rt(_i);class m extends Ke{constructor(s,e=""){super(s),this._errorType=s,this._errorContent=e}static create(s,e=""){const t=`${s}-${e}`,r=Yn.get(t);if(r)return r;const a=new m(s,e);return Yn.set(t,a),a}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(s){return s.getErrorType()===this.getErrorType()}isError(){return!0}}function ln(n){let s;switch(n){case U.EQUALS:s=U.EQUALS;break;case U.GREATER_THAN:s=U.LESS_THAN;break;case U.GREATER_THAN_OR_EQUAL:s=U.LESS_THAN_OR_EQUAL;break;case U.LESS_THAN:s=U.GREATER_THAN;break;case U.LESS_THAN_OR_EQUAL:s=U.GREATER_THAN_OR_EQUAL;break;case U.NOT_EQUAL:s=U.NOT_EQUAL;break}return s}function Qn(n,s){return n+s}function Hn(n,s){return n-s}function bt(n,s){return n*s}function zn(n,s){return n/s}function Nn(n,s){const e=10**Math.floor(s),t=fn(n,e);return Math.round(bt(n,e)+t)/e}function Wn(n,s){const e=10**Math.floor(s),t=fn(n,e);return Math.floor(bt(n,e)+t)/e}function Gn(n,s){const e=10**Math.floor(s),t=fn(n,e);return Math.ceil(bt(n,e)-t)/e}function fn(n,s){return Number.EPSILON*Math.max(1,Math.abs(bt(n,s)))}function Xn(n,s){return n-s*Math.floor(n/s)}function Kn(n,s){return n**s}function Ei(n){return Math.sqrt(n)}function qn(n,s){return n===s}function yi(n,s){return n>s}function Ci(n,s){return n>=s}function Di(n,s){return n<s}function bi(n,s){return n<=s}function sn(n,s=15){return Number.parseFloat(n.toPrecision(s))}function Si(n,s){return Math.abs(n-s)<Number.EPSILON}function vs(n,s=12){const e=sn(n,s);return Si(n,e)?e:sn(n)}function Ai(n){return n-Math.trunc(n)}var Pi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Li(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Bs={exports:{}};(function(n,s){(function(e,t){n.exports=t()})(typeof self<"u"?self:Pi,function(){return function(){var e={d:function(E,R){for(var y in R)e.o(R,y)&&!e.o(E,y)&&Object.defineProperty(E,y,{enumerable:!0,get:R[y]})},o:function(E,R){return Object.prototype.hasOwnProperty.call(E,R)}},t={};e.d(t,{default:function(){return Na}});var r={1078:"af",1052:"sq",1118:"am",5121:"ar_DZ",15361:"ar_BH",3073:"ar_EG",2049:"ar_IQ",11265:"ar_JO",13313:"ar_KW",12289:"ar_LB",4097:"ar_LY",6145:"ar_MA",8193:"ar_OM",16385:"ar_QA",1025:"ar_SA",10241:"ar_SY",7169:"ar_TN",14337:"ar_AE",9217:"ar_YE",1067:"hy",1101:"as",2092:"az_AZ",1068:"az_AZ",1069:"eu",1059:"be",2117:"bn",1093:"bn_IN",5146:"bs",1026:"bg",1109:"my",1027:"ca",2052:"zh_CN",3076:"zh_HK",5124:"zh_MO",4100:"zh_SG",1028:"zh_TW",1050:"hr",1029:"cs",1030:"da",1125:"dv",2067:"nl_BE",1043:"nl_NL",1126:"bin",3081:"en_AU",10249:"en_BZ",4105:"en_CA",9225:"en_CB",2057:"en_GB",16393:"en_IN",6153:"en_IE",8201:"en_JM",5129:"en_NZ",13321:"en_PH",7177:"en_ZA",11273:"en_TT",1033:"en_US",12297:"en_ZW",1061:"et",1071:"mk",1080:"fo",1065:"fa",1124:"fil",1035:"fi",2060:"fr_BE",11276:"fr_CM",3084:"fr_CA",9228:"fr_CG",12300:"fr_CI",1036:"fr_FR",5132:"fr_LU",13324:"fr_ML",6156:"fr_MC",14348:"fr_MA",10252:"fr_SN",4108:"fr_CH",7180:"fr",1122:"fy_NL",2108:"gd_IE",1084:"gd",1110:"gl",1079:"ka",3079:"de_AT",1031:"de_DE",5127:"de_LI",4103:"de_LU",2055:"de_CH",1032:"el",1140:"gn",1095:"gu",1279:"en",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig_NG",1057:"id",1040:"it_IT",2064:"it_CH",1041:"ja",1099:"kn",1120:"ks",1087:"kk",1107:"km",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1142:"la",1062:"lv",1063:"lt",2110:"ms_BN",1086:"ms_MY",1100:"ml",1082:"mt",1112:"mni",1153:"mi",1102:"mr",1104:"mn",2128:"mn",1121:"ne",1044:"no_NO",2068:"no_NO",1096:"or",1045:"pl",1046:"pt_BR",2070:"pt_PT",1094:"pa",1047:"rm",2072:"ro_MO",1048:"ro_RO",1049:"ru",2073:"ru_MO",1083:"se",1103:"sa",3098:"sr_SP",2074:"sr_SP",1072:"st",1074:"tn",1113:"sd",1115:"si",1051:"sk",1060:"sl",1143:"so",1070:"sb",11274:"es_AR",16394:"es_BO",13322:"es_CL",9226:"es_CO",5130:"es_CR",7178:"es_DO",12298:"es_EC",17418:"es_SV",4106:"es_GT",18442:"es_HN",2058:"es_MX",19466:"es_NI",6154:"es_PA",15370:"es_PY",10250:"es_PE",20490:"es_PR",1034:"es_ES",14346:"es_UY",8202:"es_VE",1089:"sw",2077:"sv_FI",1053:"sv_SE",1114:"syc",1064:"tg",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1073:"ts",1055:"tr",1090:"tk",1058:"uk",1056:"ur",2115:"uz_UZ",1091:"uz_UZ",1075:"ve",1066:"vi",1106:"cy",1076:"xh",1085:"yi",1077:"zu"};const a=/^([a-z\d]+)(?:[_-]([a-z\d]+))?(?:\.([a-z\d]+))?(?:@([a-z\d]+))?$/i,i={},o={group:" ",decimal:".",positive:"+",negative:"-",percent:"%",exponent:"E",nan:"NaN",infinity:"∞",ampm:["AM","PM"],mmmm6:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],mmm6:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],mmmm:["January","February","March","April","May","June","July","August","September","October","November","December"],mmm:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]};function u(E){const R=a.exec(E);if(!R)throw new SyntaxError("Malformed locale: ".concat(E));return{lang:R[1]+(R[2]?"_"+R[2]:""),language:R[1],territory:R[2]||"",codeset:R[3]||"",modifier:R[4]||""}}function c(E){if(typeof E=="number")return r[65535&E]||null;const R=parseInt(E,16);return isFinite(R)&&r[65535&R]?r[65535&R]||null:a.test(E)?E:null}function l(E){const R=c(E);let y=null;if(R){const A=u(R);y=i[A.lang]||i[A.language]||null}return y}function d(E){return Object.assign({},o,E)}function g(E,R){const y=typeof R=="object"?R:u(R);return i[y.lang]=d(E),y.language===y.lang||i[y.language]||(i[y.language]=d(E)),i[y.lang]}const p=d({group:","});function _(E,R){if(typeof E!="number")return E;if(E<0)return-_(-E,R);if(R){const y=10**(R||0)||1;return _(E*y,0)/y}return Math.round(E)}p.isDefault=!0,g({group:",",ampm:["上午","下午"],mmmm:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["周日","周一","周二","周三","周四","周五","周六"]},"zh_CN"),g({group:",",nan:"非數值",ampm:["上午","下午"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["週日","週一","週二","週三","週四","週五","週六"]},"zh_TW"),g({group:",",ampm:["午前","午後"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],ddd:["日","月","火","水","木","金","土"]},"ja"),g({group:",",ampm:["오전","오후"],mmmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],mmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dddd:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],ddd:["일","월","화","수","목","금","토"]},"ko"),g({group:",",ampm:["ก่อนเที่ยง","หลังเที่ยง"],mmmm:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],mmm:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dddd:["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],ddd:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."]},"th"),g({decimal:",",ampm:["dop.","odp."],mmmm:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],mmm:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],dddd:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],ddd:["ne","po","út","st","čt","pá","so"]},"cs"),g({group:".",decimal:",",mmmm:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],mmm:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"da"),g({group:".",decimal:",",ampm:["a.m.","p.m."],mmmm:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],mmm:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],ddd:["zo","ma","di","wo","do","vr","za"]},"nl"),g({group:","},"en"),g({decimal:",",nan:"epäluku",ampm:["ap.","ip."],mmmm:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],mmm:["tammik.","helmik.","maalisk.","huhtik.","toukok.","kesäk.","heinäk.","elok.","syysk.","lokak.","marrask.","jouluk."],dddd:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],ddd:["su","ma","ti","ke","to","pe","la"]},"fi"),g({group:" ",decimal:",",mmmm:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],mmm:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dddd:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],ddd:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."]},"fr"),g({group:".",decimal:",",mmmm:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],mmm:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sept.","Okt.","Nov.","Dez."],dddd:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],ddd:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."]},"de"),g({group:".",decimal:",",ampm:["π.μ.","μ.μ."],mmmm:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],mmm:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dddd:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],ddd:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"]},"el"),g({decimal:",",ampm:["de.","du."],mmmm:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],mmm:["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],dddd:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],ddd:["V","H","K","Sze","Cs","P","Szo"]},"hu"),g({group:".",decimal:",",ampm:["f.h.","e.h."],mmmm:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],mmm:["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des."],dddd:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],ddd:["sun.","mán.","þri.","mið.","fim.","fös.","lau."]},"is"),g({group:".",decimal:",",mmmm:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],mmm:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],dddd:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],ddd:["Min","Sen","Sel","Rab","Kam","Jum","Sab"]},"id"),g({group:".",decimal:",",mmmm:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],mmm:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],dddd:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],ddd:["dom","lun","mar","mer","gio","ven","sab"]},"it"),g({decimal:",",ampm:["a.m.","p.m."],mmmm:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],mmm:["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"nb"),g({decimal:",",mmmm:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],mmm:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],dddd:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],ddd:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."]},"pl"),g({group:".",decimal:",",mmmm:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],mmm:["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],dddd:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],ddd:["dom.","seg.","ter.","qua.","qui.","sex.","sáb."]},"pt"),g({decimal:",",nan:"не число",mmmm:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],mmm:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],dddd:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],ddd:["вс","пн","вт","ср","чт","пт","сб"]},"ru"),g({decimal:",",mmmm:["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"],mmm:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],dddd:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],ddd:["ne","po","ut","st","št","pi","so"]},"sk"),g({group:".",decimal:",",ampm:["a. m.","p. m."],mmmm:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],mmm:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],dddd:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],ddd:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."]},"es"),g({decimal:",",ampm:["fm","em"],mmmm:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],mmm:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],dddd:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],ddd:["sön","mån","tis","ons","tors","fre","lör"]},"sv"),g({group:".",decimal:",",ampm:["ÖÖ","ÖS"],mmmm:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],mmm:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dddd:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],ddd:["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"]},"tr");function D(E,R,y){const A=E<0?-1:1,V=10**(R||2),T=10**(y||2);let O,x,S=Math.abs(E),I=0,Q=0,M=0,H=1;if((E=S)%1==0)x=[E*A,1];else if(E<1e-19)x=[A,1e19];else if(E>1e19)x=[1e19*A,1];else{do if(S=1/(S-Math.floor(S)),O=H,H=H*Math.floor(S)+I,I=O,Q=M,M=Math.floor(E*H+.5),M>=V||H>=T)return[A*Q,I];while(Math.abs(E-M/H)>=1e-10&&S!==Math.floor(S));x=[A*M,H]}return x}const P={overflow:"######",dateErrorThrows:!1,dateErrorNumber:!0,dateSpanLarge:!0,leap1900:!0,nbsp:!0,throws:!0,invalid:"######",locale:"",ignoreTimezone:!1},w=Object.assign({},P);function v(E){if(E===null&&(E=P),E){for(const R in E)if(R in P){const y=E[R];w[R]=y==null?P[R]:y}}return{...w}}const B={"#":"",0:"0","?":" "},X={"@":"text","-":"minus","+":"plus"},ue=["#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#800","#080","#008","#880","#808","#088","#CCC","#888","#99F","#936","#FFC","#CFF","#606","#F88","#06C","#CCF","#008","#F0F","#FF0","#0FF","#808","#800","#088","#00F","#0CF","#CFF","#CFC","#FF9","#9CF","#F9C","#C9F","#FC9","#36F","#3CC","#9C0","#FC0"],ge=["¤","$","£","¥","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],be=new RegExp("["+ge.join("")+"]");function Re(E,R,y){return R[y+"_max"]=E.length,R[y+"_min"]=E.replace(/#/g,"").length,R}const Ce={};function _e(E){if(!(E in Ce)){const R=[],y=E.replace(/^[#,]+/,"").replace(/[1-9]\d*/g,A=>"?".repeat(A.length));for(let A=0;A<y.length;A++){const V=y.charAt(A);R[A]=V in B?B[V]:V}Ce[E]=R.join("")}return Ce[E]}function he(E,R){typeof E=="string"&&(E={type:"string",value:E=E.replace(/ /g,B["?"])}),R.push(E)}function Ue(E){const R=[],y={scale:1,percent:!1,text:!1,date:0,date_eval:!1,date_system:1,sec_decimals:0,general:!1,clock:24,int_pattern:[],frac_pattern:[],man_pattern:[],den_pattern:[],num_pattern:[],tokens:R};let A=E+"",V="int",T=!1,O=null;const x=[];let S,I,Q=!1;for(;A&&!T;){if(S=/^General/i.exec(A))y.general=!0,he({type:"general"},R);else if(V==="int"&&(S=/^[#?0]+(?:,[#?0]+)*/.exec(A))||V==="den"&&(S=/^[#?\d]+/.exec(A))||(S=/^[#?0]+/.exec(A)))y[V+"_pattern"].push(S[0]),O={type:V,num:S[0]},he(O,R);else if((S=/^\//.exec(A))&&y[V+"_pattern"].length){if(!O)throw new SyntaxError("Missing a numerator in pattern ".concat(E));y.fractions=!0,y.num_pattern.push(y[V+"_pattern"].pop()),O.type="num",V="den",he({type:"div"},R)}else if(S=/^,+/.exec(A)){const F=A.charAt(1)in B;I.slice(-1)in B&&(S[0].length>1||!F)?y.scale=.001**S[0].length:y.dec_fractions||he(S[0],R)}else{if(S=/^;/.exec(A)){T=!0;break}if(S=/^[@+-]/.exec(A))S[0]==="@"&&(y.text=!0),he({type:X[S[0]]},R);else if(S=/^(?:\[(h+|m+|s+)\])/i.exec(A)){const F=S[1].toLowerCase(),Y=F[0],W={type:"",size:0,date:1,raw:S[0],pad:F.length};Y==="h"?(W.size=16,W.type="hour-elap"):Y==="m"?(W.size=32,W.type="min-elap"):(W.size=64,W.type="sec-elap"),y.date=y.date|W.size,x.push(W),he(W,R)}else if(S=/^(?:B2)/i.exec(A))Q||(y.date_system=6);else if(S=/^(?:B1)/i.exec(A))Q||(y.date_system=1);else if(S=/^(?:([hHmMsSyYbBdDegG])\1*)/.exec(A)){const F={type:"",size:0,date:1,raw:S[0]},Y=S[0].toLowerCase(),W=Y[0];if(Y==="y"||Y==="yy")F.size=2,F.type="year-short";else if(W==="y"||W==="e")F.size=2,F.type="year";else if(Y==="b"||Y==="bb")F.size=2,F.type="b-year-short";else if(W==="b")F.size=2,F.type="b-year";else if(Y==="d"||Y==="dd")F.size=8,F.type="day",F.pad=/dd/.test(Y);else if(Y==="ddd")F.size=8,F.type="weekday-short";else if(W==="d")F.size=8,F.type="weekday";else if(W==="h")F.size=16,F.type="hour",F.pad=/hh/i.test(Y);else if(W==="m"){Y.length===3?(F.size=4,F.type="monthname-short"):Y.length===5?(F.size=4,F.type="monthname-single"):Y.length>=4&&(F.size=4,F.type="monthname");const ee=x[x.length-1];!F.type&&ee&&!ee.used&&80&ee.size&&(ee.used=!0,F.size=32,F.type="min",F.pad=/mm/.test(Y)),F.type||(F.size=4,F.type="month",F.pad=/mm/.test(Y),F.indeterminate=!0)}else if(W==="s"){F.size=64,F.type="sec",F.pad=/ss/.test(Y);const ee=x[x.length-1];ee&&32&ee.size?F.used=!0:ee&&ee.indeterminate&&(delete ee.indeterminate,ee.size=32,ee.type="min",F.used=!0)}y.date=y.date|F.size,y.date_eval=!0,x.push(F),he(F,R)}else if(S=/^(?:AM\/PM|am\/pm|A\/P)/.exec(A))y.clock=12,y.date=16|y.date,y.date_eval=!0,he({type:"am",short:S[0]==="A/P"},R);else if(y.date&&(S=/^\.0{1,3}/i.exec(A))){const F=S[0].length-1,Y=[64,128,256,512][F];y.date=y.date|Y,y.date_eval=!0,y.sec_decimals=Math.max(y.sec_decimals,F),he({type:"subsec",size:Y,decimals:F,date:1,raw:S[0]},R)}else if((S=/^\\(.)/.exec(A))||(S=/^"([^"]*?)"/.exec(A)))he(S[1],R);else if(S=/^\[(<[=>]?|>=?|=)\s*(-?[.\d]+)\]/.exec(A))y.condition=[S[1],parseFloat(S[2],10)];else if(S=/^\[\$([^\]]+)\]/.exec(A)){const F=S[1].split("-"),Y=F.length<2?"":F[F.length-1],W=F[0];W&&he(W,R);const ee=c(Y);ee&&(y.locale=ee);const ne=parseInt(Y,16);isFinite(ne)&&16711680&ne&&(ne>>16&255)===6&&(y.date_system=6),Q=!0}else if(S=/^\[(black|blue|cyan|green|magenta|red|white|yellow|color\s*(\d+))\]/i.exec(A))y.color=S[2]?ue[parseInt(S[2],10)]||"#000":S[1].toLowerCase();else if(!(S=/^\[(DBNum1|ENG|HIJ|JPN|TWN)\]/i.exec(A))){if(S=/^%/.exec(A))y.scale=100,y.percent=!0,he("%",R);else if(S=/^_(\\.|.)/.exec(A))he(" ",R);else if(S=/^\./.exec(A))he({type:"point",value:S[0]},R),y.dec_fractions=!0,V="frac";else if(S=/^[Ee]([+-]?|(?=[0#?]))/.exec(A))y.exponential=!0,y.exp_plus=S[1]==="+",V="man",he({type:"exp",plus:S[1]==="+"},R);else if(!(S=/^\*(\\.|.)/.exec(A))){if(S=/^[BENn[]/.exec(A))throw new SyntaxError("Unexpected char ".concat(A.charAt(0)," in pattern ").concat(E));A[0]==="("&&(y.parens=!0),S=[A[0]],he(S[0],R)}}}I=S[0],A=A.slice(S?S[0].length:1)}if(y.pattern=E.slice(0,E.length-A.length),/^((?:\[[^\]]+\])+)(;|$)/.test(y.pattern)&&!/^\[(?:h+|m+|s+)\]/.test(y.pattern)&&he({type:"text"},R),y.fractions&&y.dec_fractions||y.fractions&&y.exponential)throw new SyntaxError("Invalid pattern: ".concat(y.pattern));const M=y.int_pattern.join("");if(y.grouping=M.indexOf(",")>=0,y.grouping){const F=M.split(","),Y=F.length;Y===2?(y.group_pri=F[1].length,y.group_sec=y.group_pri):Y>2&&(y.group_pri=F[Y-1].length,y.group_sec=F[Y-2].length)}else y.group_pri=0,y.group_sec=0;Re(M.replace(/[,]/g,""),y,"int"),Re(y.frac_pattern.join(""),y,"frac"),Re(y.man_pattern.join(""),y,"man");let H=y.num_pattern.join(""),K=y.den_pattern.join("");const N=/\?/.test(K)||/\?/.test(H);return K=K.replace(/\d/g,N?"?":"#"),N&&(K=K.replace(/#$/g,"?")),Re(H,y,"num"),Re(K,y,"den"),N&&(H=H.replace(/#$/g,"?")),y.int_padding=_e(y.int_pattern.join("")),y.man_padding=_e(y.man_pattern.join("")),y.num_padding=_e(H),y.den_padding=_e(K),y.den_pattern.length&&(y.denominator=parseInt(y.den_pattern.join("").replace(/\D/g,""),10)),y.integer=!!y.int_pattern.join("").length,y.fractions&&R.forEach((F,Y)=>{const W=R[Y+1];F.type==="string"&&W&&(W.type==="num"?F.rule="num+int":W.type==="div"?F.rule="num":W.type==="den"&&(F.rule="den"))}),y}const ot=E=>{const R=E.condition;R&&R[1]<0&&(R[0]==="<"||R[0]==="<="||R[0]==="=")||E.tokens.unshift({type:"minus",volatile:!0})};function An(E){const R=[];let y,A=!1,V=null,T=E,O=0,x=!1,S=0,I=0;do{if(x=Ue(T),(x.date||x.general)&&(x.int_pattern.length||x.frac_pattern.length||x.scale!==1||x.text))throw new Error("Illegal format");if(x.condition&&(I++,A=!0),x.text){if(V)throw new Error("Unexpected partition");V=x}x.locale&&(y=c(x.locale)),R.push(x),O=T.charAt(x.pattern.length)===";"?1:0,T=T.slice(x.pattern.length+O),S++}while(O&&S<4&&I<3);if(O)throw new Error("Unexpected partition");if(I>2)throw new Error("Unexpected condition");const Q=R[3];if(Q&&(Q.int_pattern.length||Q.frac_pattern.length||Q.date))throw new Error("Unexpected partition");if(A){const M=R.length;if(M===1&&(R[1]=Ue("General"),R[1].generated=!0),M<3){const H=R[0],K=R[1];if(ot(H),K.condition)ot(K);else{const N=H.condition;(N[0]==="="||N[1]>=0&&(N[0]===">"||N[0]===">="))&&K.tokens.unshift({type:"minus",volatile:!0})}}else R.forEach(ot)}else{if(R.length<4&&V)for(let M=0,H=R.length;M<H;M++)R[M]===V&&R.splice(M,1);if(R.length<1&&V&&(R[0]=Ue("General"),R[0].generated=!0),R.length<2){const M=Ue(R[0].pattern);M.tokens.unshift({type:"minus",volatile:!0}),M.generated=!0,R.push(M)}if(R.length<3){const M=Ue(R[0].pattern);M.generated=!0,R.push(M)}if(R.length<4)if(V)R.push(V);else{const M=Ue("@");M.generated=!0,R.push(M)}R[0].condition=[">",0],R[1].condition=["<",0],R[2].condition=null}return{pattern:E,partitions:R,locale:y}}const Le=Math.floor;function Pn(E){if((!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&E>=0){if(E===0)return[1900,1,0];if(E===60)return[1900,2,29];if(E<60)return[1900,E<32?1:2,(E-1)%31+1]}let y=E+68569+2415019;const A=Le(4*y/146097);y-=Le((146097*A+3)/4);const V=Le(4e3*(y+1)/1461001);y=y-Le(1461*V/4)+31;const T=Le(80*y/2447),O=y-Le(2447*T/80);y=Le(T/11);const x=T+2-12*y;return[0|100*(A-49)+V+y,0|x,0|O]}function Ma(E){return Pn(E+1462)}function Fa(E){if(E===60)throw new Error("#VALUE!");if(E<=1)return[1317,8,29];if(E<60)return[1317,E<32?9:10,1+(E-2)%30];const R=10631/30,y=.1335;let A=E+466935;const V=Le(A/10631);A-=10631*V;const T=Le((A-y)/R);A-=Le(T*R+y);const O=Le((A+28.5001)/29.5);return O===13?[30*V+T,12,30]:[30*V+T,O,A-Le(29.5001*O-29)]}function Ln(E){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,y=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const A=Le(E);return R===6?Fa(A):R===-1?Ma(A):Pn(A,y)}const Gt=Math.floor,Hr=86400;function Xt(E,R){let y=null;if(Array.isArray(E)){const[A,V,T,O,x,S]=E;y=Date.UTC(A,V==null?0:V-1,T!=null?T:1,O||0,x||0,S||0)}else if(E instanceof Date&&(y=1*E,!R||!R.ignoreTimezone)){const A=new Date;A.setUTCFullYear(E.getFullYear(),E.getMonth(),E.getDate()),A.setUTCHours(E.getHours(),E.getMinutes(),E.getSeconds(),E.getMilliseconds()),y=1*A}if(y!=null&&isFinite(y)){const A=y/864e5;return A-(A<=-25509?-25568:-25569)}return E}function xn(E,R){let y=0|E;const A=Hr*(E-y);let V=Gt(A);A-V>.9999&&(V+=1,V===Hr&&(V=0,y+=1));const T=V<0?Hr+V:V,[O,x,S]=Ln(E,0,R&&R.leap1900),I=Gt(T/60/60)%60,Q=Gt(T/60)%60,M=Gt(T)%60;if(R&&R.nativeDate){const H=new Date(0);return H.setUTCFullYear(O,x-1,S),H.setUTCHours(I,Q,M),H}return[O,x,S,I,Q,M]}function va(E){return!!(E[0]&&E[0].percent||E[1]&&E[1].percent||E[2]&&E[2].percent||E[3]&&E[3].percent)}function Ba(E){return!!(E[0]&&E[0].date||E[1]&&E[1].date||E[2]&&E[2].date||E[3]&&E[3].date)}function Ta(E){const[R,y,A,V]=E;return!(R&&!R.generated||y&&!y.generated||A&&!A.generated||!V||!V.text||V.generated)}const ka={text:15,datetime:10.8,date:10.8,time:10.8,percent:10.6,currency:10.4,grouped:10.2,scientific:6,number:4,fraction:2,general:0,error:0},Ia=[["DMY",1],["DM",2],["MY",3],["MDY",4],["MD",5],["hmsa",6],["hma",7],["hms",8],["hm",9]],ja={total:1,sign:0,period:0,int:1,frac:0},Vt=(E,R)=>E.replace(/\./,R.decimal);function Vn(E,R,y,A){const V=0|y;if(typeof y=="string")E.push(y);else if(y===V)E.push(Math.abs(V));else{const T=Math.abs(y);let O=T?Math.floor(Math.log10(T)):0,x=O<0?T*10**-O:T/10**O;x===10&&(x=1,O++);const S=function(Q){let M=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const H=Math.abs(Q);if(!H)return ja;const K=M&&Q<0?1:0,N=Math.floor(H),F=Math.floor(Math.log10(H)+1);let Y=0,W=0;if(N!==H){Y=1;const ee=String(_(F<0?H*10**-F:H/10**F,15));let ne=ee.length,re=!0,Ee=0;for(;Ee<=ee.length;){if(ee[Ee]==="."){ne--;break}ee[Ee]==="0"&&re?ne--:re=!1,Ee++}W=ne-F,W<0&&(W=0,Y=0)}return{total:K+Math.max(F,1)+Y+W,digits:Math.max(F,0)+W,sign:K,period:Y,int:Math.max(F,1),frac:W}}(T),I=()=>{const Q=Math.abs(O);let M;M=x===1?x:_(x,5),E.push(Vt(M+"",A),A.exponent,O<0?A.negative:A.positive,Q<10?"0":"",Q)};if(O>=-4&&O<=-1){const Q=T.toPrecision(10+O).replace(/\.?0+$/,"");E.push(Vt(Q,A))}else if(O===10){const Q=T.toFixed(10).slice(0,12).replace(/\.$/,"");E.push(Vt(Q,A))}else if(Math.abs(O)<=9)if(S.total<=11){const Q=_(T,9).toFixed(S.frac);E.push(Vt(Q,A))}else O===9?E.push(Math.floor(T)):O>=0&&O<9?E.push(_(T,9-O)):I();else S.total>=12?I():Math.floor(T)===T?E.push(Math.floor(T)):E.push(Vt(_(T,9).toFixed(S.frac),A))}return E}const wt=86400,wn={int:"integer",frac:"fraction",man:"mantissa",num:"numerator",den:"denominator"},On=function(E){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const y=Math.floor(Math.log10(E));return R>1?Math.floor(y/R)*R:y};function Un(E,R,y,A){let V="",T="",O="",x="",S="",I=0,Q=0|E,M=0,H=0,K=1,N=0,F=0,Y=0,W=0,ee=0,ne=0;const re=A||p;if(!R.text&&isFinite(R.scale)&&R.scale!==1&&(E=function(te){if(te===0)return te;const ie=Math.ceil(Math.log10(te<0?-te:te)),k=10**(16-Math.floor(ie));return Math.round(te*k)/k}(E*R.scale)),R.exponential){let te=Math.abs(E);if(te){const ie=10**-On(te,R.int_max),k=_(te*ie,R.frac_max)/ie;I=On(k,R.int_max)}te/=10**I,E=E<0?-te:te,V+=Math.abs(I)}if(R.integer){const te=Math.abs(_(E,R.fractions?1:R.frac_max));S+=te<1?"":Math.floor(te)}if(R.grouping){let te="",ie=S.length;for(ie>R.group_pri&&(ie-=R.group_pri,te=re.group+S.slice(ie,ie+R.group_pri)+te);ie>R.group_sec;)ie-=R.group_sec,te=re.group+S.slice(ie,ie+R.group_sec)+te;S=ie?S.slice(0,ie)+te:te}R.dec_fractions&&(x=String(_(E,R.frac_max)).split(".")[1]||"");let Ee=!1;if(R.fractions){const te=Math.abs(R.integer?E%1:E);if(te)if(Ee=!0,isFinite(R.denominator))O+=R.denominator,T+=_(te*R.denominator),T==="0"&&(T="",O="",Ee=!1,S||(S="0"));else{const ie=D(te,R.integer?R.num_max:1/0,R.den_max);T+=ie[0],O+=ie[1],R.integer&&T==="0"&&(S||(S="0"),T="",O="",Ee=!1)}}if(R.date){Q=Math.trunc(E);const te=wt*(E-Q);if(M=Math.floor(te),ne=te-M,Math.abs(ne)<1e-6?ne=0:ne>.9999&&(ne=0,M+=1,M===wt&&(M=0,Q+=1)),ne){const ie=512&R.date||256&R.date||128&R.date;(ie===512&&ne>.9995||ie===256&&ne>.995||ie===128&&ne>.95||!ie&&ne>=.5)&&(M++,ne=0)}if(Q||R.date_system){const ie=Ln(E,R.date_system,y.leap1900);H=ie[0],K=ie[1],N=ie[2]}if(M){const ie=M<0?wt+M:M;ee=Math.floor(ie)%60,W=Math.floor(ie/60)%60,Y=Math.floor(ie/60/60)%60}if(F=(6+Q)%7,R.date_eval&&(He=E,ut=Q+M/wt,y.dateSpanLarge?He<-694324||ut>=35830291:He<0||ut>=2958466)){if(y.dateErrorThrows)throw new Error("Date out of bounds");return y.dateErrorNumber?Vn(E<0?[re.negative]:[],0,E,re).join(""):y.overflow}}var He,ut;if(R.int_padding&&(S=R.int_padding.length===1?S||R.int_padding:R.int_padding.substring(0,R.int_padding.length-S.length)+S),R.num_padding&&(T=R.num_padding.length===1?T||R.num_padding:R.num_padding.substring(0,R.num_padding.length-T.length)+T),R.den_padding&&(O=R.den_padding.length===1?O||R.den_padding:O+R.den_padding.slice(O.length)),R.man_padding){const te=R.exp_plus?"+":"";V=R.man_padding.length===1?(I<0?"-":te)+(V||R.man_padding):(I<0?"-":te)+R.man_padding.slice(0,R.man_padding.length-V.length)+V}const $=[];let we=0;const Je={int:0,frac:0,man:0,num:0,den:0};for(let te=0,ie=R.tokens.length;te<ie;te++){const k=R.tokens[te],Kt=k.num?k.num.length:0;if(k.type==="string")k.rule?k.rule==="num"?Ee?$.push(k.value):(R.num_min>0||R.den_min>0)&&$.push(k.value.replace(/./g,B["?"])):k.rule==="num+int"?Ee&&S?$.push(k.value):R.den_min>0&&(S||R.num_min)&&$.push(k.value.replace(/./g,B["?"])):k.rule==="den"&&(Ee?$.push(k.value):(R.den_min>0||R.den_min>0)&&$.push(k.value.replace(/./g,B["?"]))):$.push(k.value);else if(k.type==="error")$.push(y.invalid);else if(k.type==="point")$.push(R.date?k.value:re.decimal);else if(k.type==="general")Vn($,0,E,re);else if(k.type==="exp")$.push(re.exponent);else if(k.type==="minus")k.volatile&&R.date||k.volatile&&(E>=0||typeof E!="number")||(k.volatile&&!R.fractions&&(R.integer||R.dec_fractions)?(E<0&&S&&S!=="0"||x)&&$.push(re.negative):$.push(re.negative));else if(k.type==="plus")$.push(re.positive);else if(k.type==="text")$.push(E);else if(k.type==="div")Ee?$.push("/"):R.num_min>0||R.den_min>0?$.push(B["?"]):$.push(B["#"]);else if(k.type==="int")if(R.int_pattern.length===1)$.push(S);else{const me=we?R.int_pattern.join("").length-Je.int:1/0,_t=we===R.int_pattern.length-1?0:R.int_pattern.join("").length-(Je.int+k.num.length);$.push(S.substring(S.length-me,S.length-_t)),we++,Je.int+=k.num.length}else if(k.type==="frac"){const me=Je.frac;for(let _t=0;_t<Kt;_t++)$.push(x[_t+me]||B[k.num[_t]]);Je.frac+=Kt}else if(k.type in wn)R[k.type+"_pattern"].length===1?(k.type==="int"&&$.push(S),k.type==="frac"&&$.push(x),k.type==="man"&&$.push(V),k.type==="num"&&$.push(T),k.type==="den"&&$.push(O)):($.push(wn[k.type].slice(Je[k.type],Je[k.type]+Kt)),Je[k.type]+=Kt);else if(k.type==="year")H<0&&$.push(re.negative),$.push(String(Math.abs(H)).padStart(4,"0"));else if(k.type==="year-short"){const me=H%100;$.push(me<10?"0":"",me)}else if(k.type==="month")$.push(k.pad&&K<10?"0":"",K);else if(k.type==="monthname-single")R.date_system===6?$.push(re.mmmm6[K-1].charAt(0)):$.push(re.mmmm[K-1].charAt(0));else if(k.type==="monthname-short")R.date_system===6?$.push(re.mmm6[K-1]):$.push(re.mmm[K-1]);else if(k.type==="monthname")R.date_system===6?$.push(re.mmmm6[K-1]):$.push(re.mmmm[K-1]);else if(k.type==="weekday-short")$.push(re.ddd[F]);else if(k.type==="weekday")$.push(re.dddd[F]);else if(k.type==="day")$.push(k.pad&&N<10?"0":"",N);else if(k.type==="hour"){const me=Y%R.clock||(R.clock<24?R.clock:0);$.push(k.pad&&me<10?"0":"",me)}else if(k.type==="min")$.push(k.pad&&W<10?"0":"",W);else if(k.type==="sec")$.push(k.pad&&ee<10?"0":"",ee);else if(k.type==="subsec"){$.push(re.decimal);const me=ne.toFixed(R.sec_decimals);$.push(me.slice(2,2+k.decimals))}else if(k.type==="am"){const me=Y<12?0:1;k.short&&!A?$.push("AP"[me]):$.push(re.ampm[me])}else if(k.type==="hour-elap"){E<0&&$.push(re.negative);const me=24*Q+Math.floor(Math.abs(M)/3600);$.push(String(Math.abs(me)).padStart(k.pad,"0"))}else if(k.type==="min-elap"){E<0&&$.push(re.negative);const me=1440*Q+Math.floor(Math.abs(M)/60);$.push(String(Math.abs(me)).padStart(k.pad,"0"))}else if(k.type==="sec-elap"){E<0&&$.push(re.negative);const me=Q*wt+Math.abs(M);$.push(String(Math.abs(me)).padStart(k.pad,"0"))}else if(k.type==="b-year")$.push(H+543);else if(k.type==="b-year-short"){const me=(H+543)%100;$.push(me<10?"0":"",me)}}return y.nbsp?$.join(""):$.join("").replace(/\u00a0/g," ")}function Mn(E,R){for(let y=0;y<3;y++){const A=R[y];if(A){let V;if(A.condition){const T=A.condition[0],O=A.condition[1];T==="="?V=E===O:T===">"?V=E>O:T==="<"?V=E<O:T===">="?V=E>=O:T==="<="?V=E<=O:T==="<>"&&(V=E!==O)}else V=!0;if(V)return A}}}const Fn=Ue("@"),vn="black",Me={};function Fe(E,R){if(E){const y=E[0];R[y]=R[y]||{},Fe(E.slice(1),R[y])}else R.$=!0}["d-F-y","d-F-Y","d-M-y","d-M-Y","F-d-y","F-d-Y","F-j-y","F-j-Y","j-F-y","j-F-Y","j-M-y","j-M-Y","M-d-y","M-d-Y","M-j-y","M-j-Y","m-d-y","m-d-Y","m-j-y","m-j-Y","n-d-y","n-d-Y","n-j-y","n-j-Y","y-F-d","y-F-j","y-M-d","y-M-j","Y-F-d","Y-F-j","Y-M-d","Y-m-d","Y-M-j","Y-m-j","Y-n-d","Y-n-j","j-F","j-M","d-F","d-M","n-d","n-j","n-Y","m-d","m-j","m-Y","M-Y","M-y","F-y","F-Y","Y-M","Y-n","Y-m","Y-F","Y-M"].forEach(E=>{Fe(E,Me),Fe(E+" x",Me),Fe(E+" l",Me),Fe(E+" l x",Me),Fe("l "+E,Me),Fe("l "+E+" x",Me),Fe(E+" D",Me),Fe(E+" D x",Me),Fe("D "+E,Me),Fe("D "+E+" x",Me)});const $a={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},Ya={january:1,february:2,march:3,april:4,june:6,july:7,august:8,september:9,october:10,november:11,december:12},Qa={sunday:"l",monday:"l",tuesday:"l",wednesday:"l",thursday:"l",friday:"l",saturday:"l",sun:"D",mon:"D",tue:"D",wed:"D",thu:"D",fri:"D",sat:"D"},Ha=new Date().getUTCFullYear();function Bn(E){const R=new RegExp("^([\\s+%"+ge.join("")+"(-]*)(((?:(?:\\d[\\d,]*)(?:\\.\\d*)?|(?:\\.\\d+)))([eE][+-]?\\d+)?)([\\s%"+ge.join("")+")]*)$").exec(E);if(R){const[,y,A,V,T,O]=R;let x=1,S="",I=!1,Q=!1,M=!1,H=!1,K=!1,N=null,F=!1,Y=parseFloat(A.replace(/,/g,""));if(!isFinite(Y))return null;for(let ee=0;ee<y.length;ee++){const ne=y[ee];if(ne==="-"){if(I||Q)return null;I=!0,x=-1}else if(be.test(ne)){if(K)return null;K=!0,N=ne}else if(ne==="("){if(Q||I)return null;Q=!0,x=-1}else if(ne==="%"){if(H)return null;H=!0}}for(let ee=0;ee<O.length;ee++){const ne=O[ee];if(be.test(ne)){if(K)return null;K=!0,N=ne,F=!0}else if(ne===")"){if(M||!Q)return null;M=!0}else if(ne==="%"){if(H)return null;H=!0}}if(T){if(H||K)return null;S="0.00E+00"}else if(H){if(K)return null;S=V.includes(".")?"0.00%":"0%",Y*=.01}else if(K){const ee=V.includes(".")?"#,##0.00":"#,##0";S=F?ee+N:N+ee}else V.includes(",")&&(S=V.includes(".")?"#,##0.00":"#,##0");const W={v:Y*x};return S&&(W.z=S),W}}const ke=(E,R,y)=>{const A=y.path||"",V=Object.keys(R);for(let T=0;T<V.length;T++){let O;const x=V[T];if(R[x]){if(x==="$"||x==="€")E||(O=y);else if(x==="-"){const S=/^(\s*([./-]|,\s)\s*|\s+)/.exec(E);if(S){const I=S[1]==="-"||S[1]==="/"||S[1]==="."?S[1]:" ";if(!y.sep||y.sep===I){const Q=S[0].replace(/\s+/g," ");O=ke(E.slice(S[0].length),R[x],{...y,sep:I,path:A+Q})}}}else if(x===" "){const S=/^[,.]?\s+/.exec(E);if(S){const I=S[0].replace(/\s+/g," ");O=ke(E.slice(S[0].length),R[x],{...y,path:A+I})}}else if(x==="j"||x==="d"){const S=/^(0?[1-9]|1\d|2\d|3[01])\b/.exec(E);S&&(O=ke(E.slice(S[0].length),R[x],{...y,day:S[0],path:A+x}))}else if(x==="n"||x==="m"){const S=/^(0?[1-9]|1[012])\b/.exec(E);S&&(O=ke(E.slice(S[0].length),R[x],{...y,month:+S[0],_mon:S[0],path:A+x}))}else if(x==="F"||x==="M"){const S=/^([a-z]{3,9})\b/i.exec(E),I=S&&(x==="F"?Ya:$a)[S[0].toLowerCase()];I&&(O=ke(E.slice(S[0].length),R[x],{...y,month:I,_mon:S[0],path:A+x}))}else if(x==="l"||x==="D"){const S=/^([a-z]{3,9})\b/i.exec(E);(S&&Qa[S[0].toLowerCase()])===x&&(O=ke(E.slice(S[0].length),R[x],{...y,path:A+x}))}else if(x==="y"){const S=/^\d\d\b/.exec(E);if(S){const I=+S[0]>=30?+S[0]+1900:+S[0]+2e3;O=ke(E.slice(S[0].length),R[x],{...y,year:I,path:A+x})}}else if(x==="Y"){const S=/^\d\d\d\d\b/.exec(E);S&&(O=ke(E.slice(S[0].length),R[x],{...y,year:+S[0],path:A+x}))}else{if(x!=="x")throw new Error('Unknown date token "'.concat(x,'"'));{const S=zr(E);S&&(O=ke("",R[x],{...y,time:S.v,tf:S.z,path:A+x}))}}if(O)return O}}};function Tn(E,R){const y=ke(E.trim(),Me,{path:""});if(y){var A;if(y.sep==="."&&y.path.length===3)return null;const V=+((A=y.year)!==null&&A!==void 0?A:Ha);if(y.day||(y.day=1),!function(x,S,I){if(I<1||S<1||S>12)return!1;if(S===2){if(I>(x%4==0&&x%100!=0||x%400==0||x===1900?29:28))return!1}else if((S===4||S===6||S===9||S===11)&&I>30||(S===1||S===3||S===5||S===7||S===8||S===10||S===12)&&I>31)return!1;return!0}(V,y.month,y.day))return null;let T=-1/0;if(V<1900)return null;V<=1900&&y.month<=2?T=25568:V<1e4&&(T=25569);const O=Date.UTC(V,y.month-1,y.day)/864e5+T+(y.time||0);if(O>=0&&O<=2958465){const x=y._mon[0]==="0"||y.day[0]==="0"||y._mon.length===2&&y.day.length===2,S=y.path.replace(/[jdlDnmMFyYx-]/g,I=>I==="j"||I==="d"?x?"dd":"d":I==="D"?"ddd":I==="l"?"dddd":I==="n"||I==="m"?x?"mm":"m":I==="M"?"mmm":I==="F"?"mmmm":I==="y"?"yy":I==="x"?y.tf||"":I==="Y"?"yyyy":I);return R&&R.nativeDate?{v:xn(O,R),z:S}:{v:O,z:S}}}return null}function zr(E){const R=/^\s*([10]?\d|2[0-4])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?(\.\d{1,10})?(?:\s*([AP])M?)?\s*$/i.exec(E);if(R){const[,y,A,V,T,O]=R;if(T&&!V||!O&&!A&&!V)return null;let x=1*(y||0);if(O){if(x>=13)return null;O[0]!=="p"&&O[0]!=="P"||(x+=12)}return{v:(60*x*60+60*(1*(A||0))+1*(V||0)+1*(T||0))/86400,z:(y.length===2?"hh":"h")+":mm"+(V?":ss":"")+(O?" AM/PM":"")}}return null}function kn(E){return/^\s*true\s*$/i.test(E)?{v:!0}:/^\s*false\s*$/i.test(E)?{v:!1}:null}const Ot={};function za(E,R){const{pattern:y,partitions:A,locale:V}=E,T=S=>{const I=Object.assign({},v(),R,S);return V&&(I.locale=V),I},O=(S,I)=>{const Q=T(I);return function(M,H,K){const N=l(K.locale),F=H[3]?H[3]:Fn;if(typeof M=="boolean"&&(M=M?"TRUE":"FALSE"),M==null)return"";if(typeof M!="number")return Un(M,F,K,N);if(!isFinite(M)){const W=N||p;return isNaN(M)?W.nan:(M<0?W.negative:"")+W.infinity}const Y=Mn(M,H);return Y?Un(M,Y,K,N):K.overflow}(Xt(S,Q),A,Q)};O.color=(S,I)=>function(Q,M){if(typeof Q!="number"||!isFinite(Q))return(M[3]?M[3].color:Fn.color)||vn;const H=Mn(Q,M);return H&&H.color||vn}(Xt(S,T(I)),A);const x=function(S){var I;let Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const[M,H]=S,K=M.frac_max,N={type:"general",isDate:Ba(S),isText:Ta(S),isPercent:va(S),maxDecimals:M.general?9:K,scale:(I=M.scale)!==null&&I!==void 0?I:1,color:0,parentheses:0,grouped:M.grouping?1:0,_partitions:S},F=!N.isDate&&!N.isText&&!M.error&&M.tokens.some(re=>re.type==="string"&&(Q?re.value===Q:be.test(re.value)));let Y="G",W=K>=0?Math.min(15,K):"",ee="",ne="";if(H&&H.color&&(ne="-",N.color=1),M.parens&&(ee="()",N.parentheses=1),F)Y="C",N.type="currency";else if(M.error)N.type="error",N.maxDecimals=0;else if(N.isDate){let re=0,Ee=0,He="";M.tokens.forEach($=>{const we=$.type;/^(b-)?year/.test(we)?(He+="Y",Ee++):we.startsWith("month")?(He+="M",Ee++):/^(week)?day/.test(we)?(He+="D",Ee++):we!=="hour"&&we!=="min"&&we!=="sec"&&we!=="am"||(He+=we[0],re++)}),N.type="date",Ee&&re?N.type="datetime":!Ee&&re&&(N.type="time");const ut=Ia.find($=>He.startsWith($[0]));Y=ut?"D":"G",W=ut?ut[1]:""}else N.isText?(Y="G",N.type="text",W="",N.maxDecimals=0):M.general?(Y="G",N.type="general",W=""):M.fractions?(Y="G",N.type="fraction",W=""):M.exponential?(Y="S",N.type="scientific"):N.isPercent?(Y="P",N.type="percent"):M.grouping?(Y=",",N.type="grouped"):(M.int_max||K)&&(Y="F",N.type="number");return N.code=Y+W+ne+ee,N.level=ka[N.type],Object.freeze(N)}(A,(R||{}).currency)||new SyntaxError;return O.info=x,O.dateInfo=function(S){const[I]=S;return{year:!!(2&I.date),month:!!(4&I.date),day:!!(8&I.date),hours:!!(16&I.date),minutes:!!(32&I.date),seconds:!!(64&I.date),clockType:I.clock===12?12:24}}(A),O.isPercent=()=>!!x.isPercent,O.isDate=()=>!!x.isDate,O.isText=()=>!!x.isText,O.pattern=y,E.error&&(O.error=E.error),O.options=T,O.locale=V||R&&R.locale||"",Object.freeze(O)}function ce(E,R){E||(E="General");let y=null;return Ot[E]?y=Ot[E]:(y=Object.assign({},v(),R).throws?An(E):function(A){try{return An(A)}catch(V){const T={tokens:[{type:"error"}],error:V.message};return{pattern:A,partitions:[T,T,T,T],error:V.message,locale:null}}}(E),y.error||(Ot[E]=y)),za(y,R)}ce.isDate=E=>ce(E,{throws:!1}).isDate(),ce.isPercent=E=>ce(E,{throws:!1}).isPercent(),ce.isText=E=>ce(E,{throws:!1}).isText(),ce.getInfo=(E,R)=>ce(E,{...R,throws:!1}).info,ce.getDateInfo=(E,R)=>ce(E,{...R,throws:!1}).dateInfo,ce.dateToSerial=Xt,ce.dateFromSerial=xn,ce.options=v,ce.dec2frac=D,ce.round=_,ce.codeToLocale=r,ce.parseLocale=u,ce.getLocale=l,ce.addLocale=(E,R)=>{const y=u(R);return delete Ot[y.lang],delete Ot[y.language],g(E,y)},ce.format=function(E,R,y){let A=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const V=y&&typeof y=="object"?y:{locale:y,throws:!A};return ce(E,V)(Xt(R,V),V)},ce.is_date=ce.isDate,ce.parseNumber=Bn,ce.parseDate=Tn,ce.parseTime=zr,ce.parseBool=kn,ce.parseValue=function(E,R){var y,A,V;return(y=(A=(V=Bn(E))!==null&&V!==void 0?V:Tn(E,R))!==null&&A!==void 0?A:zr(E))!==null&&y!==void 0?y:kn(E)};var Na=ce;return t=t.default}()})})(Bs);var xi=Bs.exports,Vi=xi;const Vr=Li(Vi),wi=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],Oi={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function Ui(n,s,e){var u,c;if(n==null||s==null)return s;const t=(e==null?void 0:e.getStyleByCell(n))||n.s,r=(e==null?void 0:e.getStyleByCell(s))||s.s;if(t==null||r==null||typeof t!="object"||typeof r!="object")return s;const a=(u=t==null?void 0:t.n)==null?void 0:u.pattern,i=(c=r==null?void 0:r.n)==null?void 0:c.pattern;if(a==null||i==null)return s;const o=Mi(a,i);return r.n.pattern=o,s}function Mi(n,s){const e=gr(n),t=gr(s);return e===0?s:[1,2,5,9,10].includes(e)?n:e===3?[4,5,6,7,8,9,11].includes(t)?s:n:[4,6,7,8].includes(e)?[2,3,4,5,6,7,8,9,11].includes(t)?s:n:e===11&&[2,3,4,6,7,8,9].includes(t)?s:n}function gr(n){if(Fi(n))return 3;const s=Vr.getInfo(n).type||"unknown";return Oi[s]}function Fi(n){return!!wi.find(s=>n.includes(s))&&n.startsWith("_(")}function qt(n,s,e){if(n==="")return s;if(s==="")return n;const t=gr(n),r=gr(s);return e===se.PLUS||e===se.MINUS?t===4&&r===4||t===11&&r===11?"":s:e===se.MULTIPLY||e===se.DIVIDED?t===6&&r===6||t===7&&r===7||t===8&&r===8||t===9&&r===9?s:"":n||s}const Pr=class Pr extends Ke{static create(){return this._instance=this._instance||new Pr(0),this._instance}isNull(){return!0}plus(s){return C.create(0).plus(s)}minus(s){return C.create(0).minus(s)}multiply(s){return C.create(0).multiply(s)}divided(s){return C.create(0).divided(s)}mod(s){return C.create(0).mod(s)}compare(s,e){return s.isString()?fe.create("").compare(s,e):s.isBoolean()?j.create(!1).compare(s,e):C.create(0).compare(s,e)}concatenateFront(s){return s.isArray()?s.concatenateBack(fe.create("")):fe.create(this.concatenate(s.getValue(),Be.FRONT))}concatenateBack(s){return s.isArray()?s.concatenateFront(fe.create("")):fe.create(this.concatenate(s.getValue(),Be.BACK))}plusBy(s){return C.create(0).plusBy(s)}minusBy(s){return C.create(0).minusBy(s)}multiplyBy(s){return C.create(0).multiplyBy(s)}dividedBy(s){return C.create(0).dividedBy(s)}compareBy(s,e){return typeof s=="string"?fe.create("").compareBy(s,e):typeof s=="boolean"?j.create(!1).compareBy(s,e):C.create(0).compareBy(s,e)}pow(s){return C.create(0).pow(s)}sqrt(){return C.create(0).sqrt()}cbrt(){return C.create(0).cbrt()}cos(){return C.create(0).cos()}acos(){return C.create(0).acos()}acosh(){return C.create(0).acosh()}sin(){return C.create(0).sin()}sinh(){return C.create(0).sinh()}asin(){return C.create(0).asin()}asinh(){return C.create(0).asinh()}tan(){return C.create(0).tan()}tanh(){return C.create(0).tanh()}atan(){return C.create(0).atan()}atan2(s){return C.create(0).atan2(s)}atanh(){return C.create(0).atanh()}log(){return m.create(f.NUM)}log10(){return m.create(f.NUM)}exp(){return C.create(0).exp()}abs(){return C.create(0).abs()}round(s){return C.create(0).round(s)}floor(s){return C.create(0).floor(s)}ceil(s){return C.create(0).ceil(s)}convertToNumberObjectValue(){return C.create(0)}convertToBooleanObjectValue(){return j.create(!1)}};h(Pr,"_instance");let ae=Pr;const mt=class mt extends Ke{constructor(e){super(e);h(this,"_value",!1);this._value=e}static create(e){return e?(this._instanceTrue=this._instanceTrue||new mt(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new mt(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const e=this.getValue();let t=0;return e&&(t=1),C.create(-t)}getReciprocal(){return this.getValue()?C.create(1):m.create(f.DIV_BY_ZERO)}plus(e){return this._convertToNumber().plus(e)}minus(e){return this._convertToNumber().minus(e)}multiply(e){return this._convertToNumber().multiply(e)}divided(e){return this._convertToNumber().divided(e)}mod(e){return this._convertToNumber().mod(e)}compare(e,t){return e.isArray()?e.compare(this,ln(t)):e.isNull()?this._convertToNumber().compare(e,t):this.compareBy(e.getValue(),t)}compareBy(e,t){let r=!1;if(typeof e=="string"||typeof e=="number")r=this._compareString(t);else if(typeof e=="boolean"){const a=C.create(e?1:0);return this._convertToNumber().compare(a,t)}return mt.create(r)}_compareString(e){switch(e){case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:return!0;case U.EQUALS:case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:case U.NOT_EQUAL:return!1}}concatenateFront(e){return this._convertToNumber().concatenateFront(e)}concatenateBack(e){return this._convertToNumber().concatenateBack(e)}_convertToNumber(){const e=this.getValue();let t=0;return e&&(t=1),C.create(t)}pow(e){return this._convertToNumber().pow(e)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(e){return this._convertToNumber().atan2(e)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(e){return this._convertToNumber().round(e)}floor(e){return this._convertToNumber().floor(e)}ceil(e){return this._convertToNumber().ceil(e)}convertToNumberObjectValue(){return Or(this.getValue())}convertToBooleanObjectValue(){return this}};h(mt,"_instanceTrue"),h(mt,"_instanceFalse");let j=mt;const vi=2e5,Zn=new Rt(vi);class C extends Ke{constructor(e){super(e);h(this,"_value",0);this._value=Number(e)}static create(e,t=""){const r=`${e}-${t}`,a=Zn.get(r);if(a)return a;const i=new C(e);return t&&i.setPattern(t),Zn.set(r,i),i}getValue(){return this._value}setValue(e){this._value=e}isNumber(){return!0}getNegative(){return C.create(0).minus(this)}getReciprocal(){return C.create(1).divided(this)}plus(e){if(e.isArray())return e.plus(this);let t=this.plusBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),se.PLUS);return t=C.create(Number(t.getValue()),r),t}equalZero(){return this._value===0}minus(e){if(e.isArray()){const a=e.getNegative();return a.isError()?a:a.plus(this)}let t=this.minusBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),se.MINUS);return t=C.create(Number(t.getValue()),r),t}multiply(e){if(e.isArray())return e.multiply(this);let t=this.multiplyBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),se.MULTIPLY);return t=C.create(Number(t.getValue()),r),t}divided(e){if(e.isArray()){const a=e.getReciprocal();return a.isError()?a:a.multiply(this)}let t=this.dividedBy(e.getValue());if(t.isError())return t;const r=qt(this.getPattern(),e.getPattern(),se.DIVIDED);return t=C.create(Number(t.getValue()),r),t}mod(e){if(e.isArray())return e.modInverse(this);const t=this.getValue(),r=e.getValue();if(e.isNull())return m.create(f.DIV_BY_ZERO);if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(r===0)return m.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(r)||Math.abs(r)*11259e8<=Math.abs(t))return m.create(f.NUM);const a=Xn(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}if(typeof r=="boolean"){const a=r?1:0;return a===0?m.create(f.DIV_BY_ZERO):C.create(Xn(t,a))}return this}concatenateFront(e){return e.isArray()?e.concatenateBack(this):fe.create(this.concatenate(e.getValue(),Be.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):fe.create(this.concatenate(e.getValue(),Be.BACK))}compare(e,t){return e.isArray()?e.compare(this,ln(t)):this.compareBy(e.getValue(),t)}plusBy(e){const t=this.getValue();if(typeof e=="string")return Pt.has(e)?m.create(e):m.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return m.create(f.NUM);const r=Qn(t,e);return Number.isFinite(r)?C.create(r):m.create(f.NUM)}return typeof e=="boolean"?C.create(Qn(t,e?1:0)):this}minusBy(e){const t=this.getValue();if(typeof e=="string")return m.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return m.create(f.NUM);const r=Hn(t,e);return Number.isFinite(r)?C.create(r):m.create(f.NUM)}return typeof e=="boolean"?C.create(Hn(t,e?1:0)):this}multiplyBy(e){const t=this.getValue();if(typeof e=="string")return m.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return m.create(f.NUM);const r=bt(t,e);return Number.isFinite(r)?C.create(r):m.create(f.NUM)}return typeof e=="boolean"?C.create(bt(t,e?1:0)):this}dividedBy(e){const t=this.getValue();if(typeof e=="string")return m.create(f.VALUE);if(typeof e=="number"){if(e===0)return m.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(e))return m.create(f.NUM);const r=zn(t,e);return Number.isFinite(r)?C.create(r):m.create(f.NUM)}return typeof e=="boolean"?e===!1?m.create(f.DIV_BY_ZERO):C.create(zn(t,1)):this}compareBy(e,t){const r=this.getValue();let a=!1;return typeof e=="string"?a=this._compareString(t):typeof e=="number"?a=this._compareNumber(r,e,t):typeof e=="boolean"&&(a=this._compareBoolean(t)),j.create(a)}_compareString(e){switch(e){case U.EQUALS:case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:return!1;case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:case U.NOT_EQUAL:return!0}}_compareNumber(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)?this._compareInfinity(e,t,r):this._compareFiniteNumber(e,t,r)}_compareFiniteNumber(e,t,r){switch(r){case U.EQUALS:return qn(e,t);case U.GREATER_THAN:return yi(e,t);case U.GREATER_THAN_OR_EQUAL:return Ci(e,t);case U.LESS_THAN:return Di(e,t);case U.LESS_THAN_OR_EQUAL:return bi(e,t);case U.NOT_EQUAL:return!qn(e,t)}}_compareBoolean(e){switch(e){case U.EQUALS:case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:return!1;case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:case U.NOT_EQUAL:return!0}}pow(e){if(e.isArray())return e.powInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return m.create(f.NUM);const a=Kn(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}return typeof r=="boolean"?C.create(Kn(t,r?1:0)):this}sqrt(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Ei(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}cbrt(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.cbrt(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}cos(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.cos(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}acos(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.acos(e);return Number.isNaN(t)?m.create(f.NUM):C.create(t)}acosh(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.acosh(e);return Number.isNaN(t)?m.create(f.NUM):C.create(t)}sin(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.sin(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}sinh(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.sinh(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}asin(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.asin(e);return Number.isNaN(t)?m.create(f.NUM):C.create(t)}asinh(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.asinh(e);return Number.isNaN(t)?m.create(f.NUM):C.create(t)}tan(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.tan(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}tanh(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.tanh(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}atan(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.atan(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}atan2(e){if(e.isArray())return e.atan2Inverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return m.create(f.NUM);if(t===0&&r===0)return m.create(f.DIV_BY_ZERO);const a=Math.atan2(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}return typeof r=="boolean"?C.create(Math.atan2(t,r?1:0)):this}atanh(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.atanh(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}log(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return m.create(f.NUM);const t=Math.log(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}log10(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return m.create(f.NUM);const t=Math.log10(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}exp(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.exp(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}abs(){const e=this.getValue();if(!Number.isFinite(e))return m.create(f.NUM);const t=Math.abs(e);return Number.isFinite(t)?C.create(t):m.create(f.NUM)}round(e){if(e.isArray())return e.roundInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return m.create(f.NUM);const a=Nn(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}return typeof r=="boolean"?C.create(Nn(t,r?1:0)):this}floor(e){if(e.isArray())return e.floorInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return m.create(f.NUM);const a=Wn(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}return typeof r=="boolean"?C.create(Wn(t,r?1:0)):this}ceil(e){if(e.isArray())return e.ceilInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return m.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return m.create(f.NUM);const a=Gn(t,r);return Number.isFinite(a)?C.create(a):m.create(f.NUM)}return typeof r=="boolean"?C.create(Gn(t,r?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return wr(!0)}_compareInfinity(e,t,r){let a=!1;switch(r){case U.EQUALS:a=e===t;break;case U.GREATER_THAN:a=e>t;break;case U.GREATER_THAN_OR_EQUAL:a=e>=t;break;case U.LESS_THAN:a=e<t;break;case U.LESS_THAN_OR_EQUAL:a=e<=t;break;case U.NOT_EQUAL:a=e!==t;break}return a}}const Bi=2e5,Jn=new Rt(Bi);class fe extends Ke{constructor(e){super(e);h(this,"_value");this._value=e}static create(e){const t=Jn.get(e);if(t)return t;const r=new fe(e);return Jn.set(e,r),r}getValue(){return this._value}isString(){return!0}concatenateFront(e){return e.isArray()?e.concatenateBack(this):fe.create(this.concatenate(e.getValue(),Be.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):fe.create(this.concatenate(e.getValue(),Be.BACK))}compare(e,t,r){return e.isArray()?e.compare(this,ln(t),r):this.compareBy(e.getValue(),t,r)}compareBy(e,t,r=!1){let a=this.getValue(),i=!1;if(typeof e=="string"){if(r||(a=a.toLocaleLowerCase(),e=e.toLocaleLowerCase()),gi(e))return this._checkWildcard(e,t);i=this._compareString(a,e,t)}else typeof e=="number"?i=this._compareNumber(t):typeof e=="boolean"&&(i=this._compareBoolean(t));return j.create(i)}_compareString(e,t,r){switch(r){case U.EQUALS:return e===t;case U.GREATER_THAN:return e>t;case U.GREATER_THAN_OR_EQUAL:return e>=t;case U.LESS_THAN:return e<t;case U.LESS_THAN_OR_EQUAL:return e<=t;case U.NOT_EQUAL:return e!==t}}_compareNumber(e){switch(e){case U.NOT_EQUAL:case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:return!0;case U.EQUALS:case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(e){switch(e){case U.EQUALS:case U.GREATER_THAN:case U.GREATER_THAN_OR_EQUAL:return!1;case U.LESS_THAN:case U.LESS_THAN_OR_EQUAL:case U.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return Or(this.getValue())}convertToBooleanObjectValue(){return j.create(!0)}_checkWildcard(e,t){const r=this.getValue().toLocaleLowerCase(),a=pi(r,e,t);return j.create(a)}}function wr(n){if(typeof n=="boolean")return j.create(n);let s=!1;if(typeof n=="string"){const e=n.toLocaleUpperCase();e===at.TRUE?s=!0:e===at.FALSE&&(s=!1)}else n===1?s=!0:s=!1;return j.create(s)}function Ti(n){let s=n.toString();return s.charAt(0)==='"'&&s.charAt(s.length-1)==='"'&&(s=s.slice(1,-1),s=s.replace(/""/g,'"')),fe.create(s)}function Or(n){if(typeof n=="boolean"){let s=0;return n&&(s=1),C.create(s)}else{if(typeof n=="number")return Number.isFinite(n)?C.create(n):m.create(f.NUM);if(b.isRealNum(n))return C.create(Number(n))}return m.create(f.VALUE)}function ki(n){return""}function Ts(n=[]){const s=[];for(let e=0;e<n.length;e++){const t=n[e];s[e]==null&&(s[e]=[]);for(let r=0;r<t.length;r++){const a=t[r];s[e][r]=it.create(a)}}return s}function Ii(n=[]){const s=[];for(let e=0;e<n.length;e++){const t=n[e];s[e]==null&&(s[e]=[]);for(let r=0;r<t.length;r++){const a=t[r];a==null?s[e][r]=null:a.isError()?s[e][r]=a.getErrorType():s[e][r]=a.getValue()}}return s}class de extends Ke{constructor(e){super(typeof e=="string"?e:ki());h(this,"_values",[]);h(this,"_rowCount",-1);h(this,"_columnCount",-1);h(this,"_unitId","");h(this,"_sheetId","");h(this,"_currentRow",-1);h(this,"_currentColumn",-1);h(this,"_sliceCache",new Map);h(this,"_flattenCache");h(this,"_defaultValue",null);h(this,"_flattenPosition");this._values=this._formatValue(e)}static create(e){return new de(e)}static createByArray(e){const r={calculateValueList:Ts(e),rowCount:e.length,columnCount:e[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new de(r)}dispose(){this._values.forEach(e=>{e.forEach(t=>{t==null||t.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(e=>e)}getRowCount(){return this._rowCount}setRowCount(e){this._rowCount=e}getColumnCount(){return this._columnCount}setColumnCount(e){this._columnCount=e}setCurrent(e,t){this._currentRow=e,this._currentColumn=t}setUnitId(e){this._unitId=e}getUnitId(){return this._unitId}setSheetId(e){this._sheetId=e}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(e){this._clearCache(),this._values=e}isArray(){return!0}setDefaultValue(e){this._defaultValue=e}get(e,t){var r;return(r=this._values[e])==null?void 0:r[t]}getRealValue(e,t){const r=this._values[e];if(r==null)return null;const a=r[t];return a==null?null:a}getValueOrDefault(e,t){return this.get(e,t)||this._defaultValue}set(e,t,r){if(e>=this._rowCount||t>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[e][t]=r}getRangePosition(){const t=this.getRowCount(),r=0,a=this.getColumnCount();return{startRow:0,endRow:t-1,startColumn:r,endColumn:a-1}}iterator(e){var u;const{startRow:t,endRow:r,startColumn:a,endColumn:i}=this.getRangePosition(),o=this.getArrayValue();for(let c=t;c<=r;c++)for(let l=a;l<=i;l++)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}iteratorReverse(e){var u;const{startRow:t,endRow:r,startColumn:a,endColumn:i}=this.getRangePosition(),o=this.getArrayValue();for(let c=r;c>=t;c--)for(let l=i;l>=a;l--)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}getLastTruePosition(){let e;return this.iteratorReverse((t,r,a)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:a},!1}),e}getFirstTruePosition(){let e;return this.iterator((t,r,a)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:a},!1}),e}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ae.create()}getLastCell(){const{endRow:e,endColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ae.create()}pick(e){const t=this.pickRaw(e);return this._createNewArray(t,1,t[0].length)}pickRaw(e){const t=e.getRowCount(),r=e.getColumnCount();if(t!==this._rowCount||r!==this._columnCount)return[[ae.create()]];const a=[];a[0]=[];for(let i=0;i<t;i++)for(let o=0;o<r;o++){const u=e.get(i,o);if(!(u==null||u.isError())&&u.getValue()===!0){const c=this.get(i,o);a[0].push(c)}}return a}flatten(){if(this._flattenCache!=null)return this._flattenCache;const e=[];e[0]=[];for(let r=0;r<this._rowCount;r++)for(let a=0;a<this._columnCount;a++){const i=this.get(r,a);e[0].push(i)}const t=this._createNewArray(e,1,e[0].length);return t.setDefaultValue(this._defaultValue),this._flattenCache=t,t}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const e=[],t=[],r=[],a=[];let i=0;for(let u=0;u<this._rowCount;u++)for(let c=0;c<this._columnCount;c++){const l=this.get(u,c);if(l==null||l.isError()||l.isNull()){i++;continue}l.isString()?(e.push(l),r.push(i++)):(t.push(l),a.push(i++))}const o={stringArray:e,numberArray:t,stringPosition:r,numberPosition:a};return this._flattenPosition=o,o}slice(e,t){let r=0,a=this._rowCount,i=1,o=0,u=this._columnCount,c=1;if(e!=null&&(r=e[0]||0,a=e[1]||this._rowCount,i=e[2]||1),t!=null&&(o=t[0]||0,u=t[1]||this._columnCount,c=t[2]||1),r>=this._rowCount||o>=this._columnCount)return;const l=`${r}_${a}_${i}_${o}_${u}_${c}`,d=this._sliceCache.get(l);if(d!=null)return d;const g=[],p=this._values;let _=0,D=0;for(let B=r;B<a;B+=i){D=0,g[_]==null&&(g[_]=[]);for(let X=o;X<u;X+=c){if(!p[B])return;let ue=p[B][X]||this._defaultValue;ue==null&&(ue=ae.create()),g[_][D]=ue,D++}_++}if(g.length===0||g[0].length===0)return;const P=i>1?-1:r+this._currentRow,w=c>1?-1:o+this._currentColumn,v=this._createNewArray(g,g.length,g[0].length,P,w);return v.setDefaultValue(this._defaultValue),this._sliceCache.set(l,v),v}sortByRow(e){const t=this._transposeArray(this._values);t.sort(this._sort(e)),this._clearCache(),this._values=this._transposeArray(t)}sortByColumn(e){this._clearCache(),this._values.sort(this._sort(e))}transpose(){const e=this._transposeArray(this._values),t=this._rowCount,r=this._columnCount,a=this._createNewArray(e,r,t);return a.setDefaultValue(this._defaultValue),a}orderSearch(e,t=Pe.MIN,r=!1,a=!1){let i,o,u,c;const l=(d,g,p)=>{if(d==null)return!0;let _;if(a===!0?_=d.compare(e,U.EQUALS):_=d.isEqual(e),(_==null?void 0:_.getValue())===!0)return i=d,u={row:g,column:p},!1;t===Pe.MAX?d.isGreaterThan(e).getValue()===!0&&(o==null||d.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=d,c={row:g,column:p}):t===Pe.MIN&&d.isLessThan(e).getValue()===!0&&(o==null||d.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=d,c={row:g,column:p})};if(r){const d=this._values.length;if(this._values[0]==null)return;const g=this._values[0].length;for(let p=d-1;p>=0;p--)for(let _=g-1;_>=0;_--){const D=this._values[p][_];l(D,p,_)}}else this.iterator((d,g,p)=>{l(d,g,p)});if(i!=null)return u;if(o!=null)return c}binarySearch(e,t=We.MIN){if(e.isError())return;const{stringArray:r,stringPosition:a,numberArray:i,numberPosition:o}=this.flattenPosition();return e.isString()?this._binarySearch(e,r,a,t):this._binarySearch(e,i,o,t)}_binarySearch(e,t,r,a=We.MIN){const i=jn(),o=e.getValue().toString().toLocaleLowerCase();let u=0,c=t.length-1,l=null;for(;u<=c;){const d=Math.floor((u+c)/2),g=t[d];let p=0;if(g.isNull())p=1;else{const _=g.getValue();p=i(_.toString().toLocaleLowerCase(),o)}if(p===0)return r[d];p===-1?(u=d+1,a===We.MIN&&(l=d)):(c=d-1,a===We.MAX&&(l=d))}if(l!=null)return r[l]}sum(){let e=C.create(0);return this.iterator(t=>{if(t==null||t.isString()||t.isBoolean()||t.isNull())return!0;if(t.isError())return e=t,!1;e=e.plus(t)}),e}max(){let e=C.create(Number.NEGATIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isLessThan(t).getValue()&&(e=t)}),e}min(){let e=C.create(Number.POSITIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isGreaterThan(t).getValue()&&(e=t)}),e}count(){let e=C.create(0);return this.iterator(t=>{if(t==null||t.isError()||t.isString()||t.isNull()||t.isBoolean())return!0;e=e.plusBy(1)}),e}countA(){let e=C.create(0);return this.iterator(t=>{if(t==null||t.isNull())return!0;e=e.plusBy(1)}),e}countBlank(){let e=C.create(0);return this.iterator(t=>{(t==null||t.isNull()||t.getValue()==="")&&(e=e.plusBy(1))}),e}getNegative(){return de.create("{0}").minus(this)}getReciprocal(){return de.create("{1}").divided(this)}plus(e){return this._batchOperator(e,1)}minus(e){return this._batchOperator(e,0)}multiply(e){return this._batchOperator(e,2)}divided(e){return this._batchOperator(e,3)}mod(e){return this._batchOperator(e,4)}modInverse(e){return this.map(t=>t.isError()?t:e.mod(t))}compare(e,t,r){return this._batchOperator(e,5,t,r)}concatenateFront(e){return this._batchOperator(e,6)}concatenateBack(e){return this._batchOperator(e,7)}map(e){const t=(r,a,i)=>r==null?ae.create():r.isError()?r:e(r,a,i);return this.mapValue(t)}mapValue(e){var i;const t=this._rowCount,r=this._columnCount,a=[];for(let o=0;o<t;o++){const u=[];for(let c=0;c<r;c++){const l=(i=this._values)==null?void 0:i[o];if(l==null)u[c]=m.create(f.VALUE);else{const d=l[c]||this._defaultValue;d?u[c]=e(d,o,c):u[c]=ae.create()}}a.push(u)}return this._createNewArray(a,t,r)}pow(e){return this._batchOperator(e,8)}powInverse(e){return this.map(t=>t.isError()?t:e.pow(t))}sqrt(){return this.map(e=>e.isError()?e:e.sqrt())}cbrt(){return this.map(e=>e.isError()?e:e.cbrt())}cos(){return this.map(e=>e.isError()?e:e.cos())}acos(){return this.map(e=>e.isError()?e:e.acos())}acosh(){return this.map(e=>e.isError()?e:e.acosh())}sin(){return this.map(e=>e.isError()?e:e.sin())}sinh(){return this.map(e=>e.isError()?e:e.sinh())}asin(){return this.map(e=>e.isError()?e:e.asin())}asinh(){return this.map(e=>e.isError()?e:e.asinh())}tan(){return this.map(e=>e.isError()?e:e.tan())}tanh(){return this.map(e=>e.isError()?e:e.tanh())}atan(){return this.map(e=>e.isError()?e:e.atan())}atanh(){return this.map(e=>e.isError()?e:e.atanh())}atan2(e){return this._batchOperator(e,12)}atan2Inverse(e){return this.map(t=>t.isError()?t:e.atan2(t))}mean(e=0){const t=this.sum(),r=this.count();return t.divided(e===0?r:r.minusBy(1))}median(){const e=this.flattenPosition().numberArray,t=this._createNewArray([e],1,e.length),r=t.getColumnCount();if(r<=1)return t.get(0,0)||ae.create();if(t.sortByRow(0),r%2===0){const a=t.get(0,r/2)||ae.create(),i=t.get(0,r/2-1)||ae.create();return a.plus(i).divided(C.create(2))}return t.get(0,(r-1)/2)||ae.create()}var(e=0){const t=this.mean(),r=[[]];this.iterator(l=>{if(l==null||l.isError()||l.isString()||l.isBoolean()||l.isNull())return;const d=l.minus(t).pow(C.create(2));d.isError()||r[0].push(d)});const{_unitId:a,_sheetId:i,_currentRow:o,_currentColumn:u}=this;return de.create({calculateValueList:r,rowCount:1,columnCount:r[0].length,unitId:a,sheetId:i,row:o,column:u}).mean(e)}std(e=0){const t=this.var(e);return t.isError()?t:t.sqrt()}log(){return this.map(e=>e.isError()?e:e.log())}log10(){return this.map(e=>e.isError()?e:e.log10())}exp(){return this.map(e=>e.isError()?e:e.exp())}abs(){return this.map(e=>e.isError()?e:e.abs())}round(e){return this._batchOperator(e,9)}roundInverse(e){return this.map(t=>t.isError()?t:e.round(t))}floor(e){return this._batchOperator(e,10)}floorInverse(e){return this.map(t=>t.isError()?t:e.floor(t))}ceil(e){return this._batchOperator(e,11)}ceilInverse(e){return this.map(t=>t.isError()?t:e.ceil(t))}toValue(){return Ii(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(e){const t=jn();return(r,a)=>{const i=r[e],o=a[e];return i==null?1:o==null?-1:i.isError()&&i.isError()?0:i.isError()?1:o.isError()?-1:t(i.getValue(),o.getValue())}}_transposeArray(e){const t=e.length,r=e[0].length,a=[];for(let i=0;i<r;i++){a[i]=[];for(let o=0;o<t;o++)a[i][o]=e[o][i]}return a}_batchOperator(e,t,r,a){const i=[];let o=this._rowCount,u=this._columnCount;if(e.isArray()){const d=e.getRowCount(),g=e.getColumnCount();if(o=Math.max(d,o),u=Math.max(g,u),d===1&&g===1){const p=e.getFirstCell();for(let _=0;_<u;_++)i.push(p)}else if(d===1&&this._columnCount>1){const p=e.getArrayValue();for(let _=0;_<u;_++)i.push(p[0][_])}else return this._batchOperatorArray(e,t,r,a)}else for(let d=0;d<u;d++)i.push(e);const c=[];for(let d=0;d<u;d++){const g=i[d];this._batchOperatorValue(g,d,c,t,r,a)}const l=this._createNewArray(c,o,u);return l.setDefaultValue(j.create(!1)),l}_batchOperatorValue(e,t,r,a,i,o){const u=this._rowCount;let c=!1;const l=this.getUnitId(),d=this.getSheetId(),g=this.getCurrentRow(),p=this.getCurrentColumn();if(a===5&&(c=tt.canUseCache(l,d,t+p,g,g+u-1),c===!0)){if(i===U.EQUALS){const _=tt.getCellPositions(l,d,t+p,e.getValue());_!=null&&_.forEach(D=>{const P=D-g;r[P]==null&&(r[P]=[]),r[P][t]=j.create(!0)})}else{const _=tt.getCellValuePositions(l,d,t+p);_!=null&&_.forEach((D,P)=>{let w=ae.create();typeof P=="string"?w=fe.create(P):typeof P=="number"?w=C.create(P):typeof P=="boolean"&&(w=j.create(P)),w.compare(e,i,o).getValue()===!0&&D.forEach(B=>{B>=g&&B<=g+u-1&&(r[B-g]==null&&(r[B-g]=[]),r[B-g][t]=j.create(!0))})})}return}for(let _=0;_<u;_++){const D=this.getValueOrDefault(_,t);if(r[_]==null&&(r[_]=[]),D&&e)if(D.isError())r[_][t]=D;else if(e.isError())r[_][t]=e;else switch(a){case 1:r[_][t]=D.plus(e);break;case 0:r[_][t]=D.minus(e);break;case 2:r[_][t]=D.multiply(e);break;case 3:r[_][t]=D.divided(e);break;case 4:r[_][t]=D.mod(e);break;case 5:i?r[_][t]=D.compare(e,i,o):r[_][t]=m.create(f.VALUE);break;case 6:r[_][t]=D.concatenateFront(e);break;case 7:r[_][t]=D.concatenateBack(e);break;case 8:r[_][t]=D.pow(e);break;case 9:r[_][t]=D.round(e);break;case 10:r[_][t]=D.floor(e);break;case 12:r[_][t]=D.atan2(e);break;case 11:r[_][t]=D.ceil(e);break}else r[_][t]=m.create(f.NA);D!=null&&(D.isError()?tt.set(l,d,t+p,D.getErrorType(),_+g):D.isNull()?tt.set(l,d,t+p,"",_+g):tt.set(l,d,t+p,D.getValue(),_+g))}tt.setContinueBuildingCache(l,d,t+p,g,g+u-1)}_batchOperatorArray(e,t,r,a){let i=e.getRowCount(),o=e.getColumnCount();i<this._rowCount&&(i=this._rowCount),o<this._columnCount&&(o=this._columnCount);const u=[],c=this._checkArrayCalculateType(this),l=this._checkArrayCalculateType(e);for(let d=0;d<i;d++){const g=[];for(let p=0;p<o;p++){let _;c===3?_=this.getValueOrDefault(0,0):c===1?_=this.getValueOrDefault(0,p):c===2?_=this.getValueOrDefault(d,0):_=this.getValueOrDefault(d,p);let D;if(l===3?D=e.getValueOrDefault(0,0):l===1?D=e.getValueOrDefault(0,p):l===2?D=e.getValueOrDefault(d,0):D=e.getValueOrDefault(d,p),_&&D)if(_.isError())g[p]=_;else if(D.isError())g[p]=D;else switch(t){case 1:g[p]=_.plus(D);break;case 0:g[p]=_.minus(D);break;case 2:g[p]=_.multiply(D);break;case 3:g[p]=_.divided(D);break;case 4:g[p]=_.mod(D);break;case 5:r?g[p]=_.compare(D,r,a):g[p]=m.create(f.VALUE);break;case 6:g[p]=_.concatenateFront(D);break;case 7:g[p]=_.concatenateBack(D);break;case 8:g[p]=_.pow(D);break;case 9:g[p]=_.round(D);break;case 12:g[p]=_.atan2(D);break;case 10:g[p]=_.floor(D);break;case 11:g[p]=_.ceil(D);break}else g[p]=m.create(f.NA)}u.push(g)}return this._createNewArray(u,i,o)}_checkArrayCalculateType(e){return e.getRowCount()===1&&e.getColumnCount()===1?3:e.getRowCount()===1?1:e.getColumnCount()===1?2:0}_formatValue(e){if(typeof e!="string")return e=e,this._rowCount=e.rowCount,this._columnCount=e.columnCount,this._unitId=e.unitId,this._sheetId=e.sheetId,this._currentRow=e.row,this._currentColumn=e.column,e.calculateValueList;e=e.slice(1,-1);const t=e.split(";"),r=t.length,a=[];let i=0;for(let o=0;o<r;o++){const c=t[o].split(","),l=c.length;i<l&&(i=l);const d=[];for(let g=0;g<l;g++){const p=c[g].trim();d.push(it.create(p))}a.push(d)}return this._rowCount=r,this._columnCount=i,a}_createNewArray(e,t,r,a=-1,i=-1){(this._currentColumn===-1||this._currentRow===-1)&&(a=-1,i=-1);const o={calculateValueList:e,rowCount:t,columnCount:r,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:a,column:i};return de.create(o)}}class it{static create(s){if(s==null)return ae.create();if(typeof s=="boolean")return j.create(s);if(typeof s=="string"){const e=s.toLocaleUpperCase().trim();return Pt.has(e)?m.create(e):e===at.TRUE||e===at.FALSE?wr(s):b.isRealNum(s)?C.create(Number(s)):new RegExp(ii,"g").test(s.replace(/\n/g,"").replace(/\r/g,""))?de.create(s.replace(/\n/g,"").replace(/\r/g,"")):Ti(s)}return typeof s=="number"?Or(s):m.create(f.VALUE)}}function ji(n){if(n===null)return 0;if(n!=null&&n.p){const s=n==null?void 0:n.p.body;if(s==null)return 0;const e=s.dataStream;return e.substring(e.length-2,e.length)===b.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return(n==null?void 0:n.v)||0}const $i=1e5,an=new Rt($i);class xt extends xr{constructor(e){super();h(this,"_forcedSheetId","");h(this,"_forcedSheetName","");h(this,"_defaultSheetId","");h(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});h(this,"_unitData",{});h(this,"_unitStylesData",{});h(this,"_defaultUnitId","");h(this,"_forcedUnitId","");h(this,"_runtimeData",{});h(this,"_arrayFormulaCellData",{});h(this,"_runtimeArrayFormulaCellData",{});h(this,"_runtimeFeatureCellData",{});h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._token=e}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(e){this._token=e}isExceedRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:a}=this.getRangePosition();return e<0||r<0||t>=this.getActiveSheetRowCount()||a>=this.getActiveSheetColumnCount()}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow:e,startColumn:t,endRow:r,endColumn:a}=b.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=this.getActiveSheetRowCount()-1),Number.isNaN(a)&&(a=this.getActiveSheetColumnCount()-1),{startRow:e,endRow:r,startColumn:t,endColumn:a}}isReferenceObject(){return!0}iterator(e){const{startRow:t,endRow:r,startColumn:a,endColumn:i}=this.getRangePosition();if(this._checkIfWorksheetMiss())return e(m.create(f.VALUE),t,a);const o=this._forcedUnitId||this._defaultUnitId,u=this._forcedSheetId||this._defaultSheetId;for(let c=t;c<=r;c++)for(let l=a;l<=i;l++){if(c<0||l<0)return e(m.create(f.REF),c,l);const d=this.getCellData(c,l);let g=!1;if(b.isNullCell(d)){g=e(null,c,l);continue}let p=this.getCellValueObject(d);if(c===t&&l===a){const _=this.getCellPattern(o,u,c,l);if(_&&p.isNumber()){const D=Number(p.getValue());p=C.create(D,_)}}if(g=e(p,c,l),g===!1)return}}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition(),r=this.getCellData(e,t);if(!r)return C.create(0);let a=this.getCellValueObject(r);const i=this._forcedUnitId||this._defaultUnitId,o=this._forcedSheetId||this._defaultSheetId,u=this.getCellPattern(i,o,e,t);if(u&&a.isNumber()){const c=Number(a.getValue());a=C.create(c,u)}return a}getRangeData(){return this._rangeData}setRangeData(e){this._rangeData=e}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(e){e.length>0&&(this._forcedUnitId=e)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(e){var t;this._forcedSheetId=(t=e[this.getUnitId()])==null?void 0:t[this._forcedSheetName]}setForcedSheetIdDirect(e){this._forcedSheetId=e}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(e){e.length>0&&(this._forcedSheetName=e)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(e){this._defaultSheetId=e}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(e){this._defaultUnitId=e}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(e){this._unitData=e}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(e){this._unitStylesData=e}getRuntimeData(){return this._runtimeData}setRuntimeData(e){this._runtimeData=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(e){this._runtimeArrayFormulaCellData=e}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e){this._runtimeFeatureCellData=e}getActiveSheetRowCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowCount)||0}getActiveSheetColumnCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowData)||{}}getColumnData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(e){return m.create(f.REF)}unionRange(e,t){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(e){const t=ji(e);return Pt.has(t)?m.create(t):e.t===b.CellValueType.NUMBER?Or(t):e.t===b.CellValueType.STRING||e.t===b.CellValueType.FORCE_STRING?fe.create(t.toString()):e.t===b.CellValueType.BOOLEAN?wr(t):it.create(t)}getCellByRow(e){return this.getCellByPosition(e)}getCellByColumn(e){return this.getCellByPosition(void 0,e)}getCurrentActiveSheetData(){var e;return(e=this._unitData[this.getUnitId()])==null?void 0:e[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var e,t;return(t=(e=this._runtimeData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var e,t;return(t=(e=this._arrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var e,t;return(t=(e=this._runtimeArrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCellData(e,t){const r=this.getCurrentActiveSheetData(),a=this.getCurrentRuntimeSheetData(),i=this.getCurrentActiveArrayFormulaCellData(),o=this.getCurrentRuntimeActiveArrayFormulaCellData();return(a==null?void 0:a.getValue(e,t))||(o==null?void 0:o.getValue(e,t))||this.getRuntimeFeatureCellValue(e,t)||(i==null?void 0:i.getValue(e,t))||(r==null?void 0:r.cellData.getValue(e,t))}getRuntimeFeatureCellValue(e,t){var a;const r=Object.keys(this._runtimeFeatureCellData);for(const i of r){const o=this._runtimeFeatureCellData[i],u=(a=o==null?void 0:o[this.getUnitId()])==null?void 0:a[this.getSheetId()];if(u==null)continue;const c=u.getValue(e,t);if(c!=null)return c}}getCellByPosition(e,t){e||(e=this._rangeData.startRow),t||(t=this._rangeData.startColumn);const r=this.getCellData(e,t);return r?this.getCellValueObject(r):m.create(f.VALUE)}getCellPattern(e,t,r,a){var c,l,d,g;const i=this._unitStylesData[e];if(!i)return"";const o=(d=(l=(c=this._unitData[e])==null?void 0:c[t])==null?void 0:l.cellData)==null?void 0:d.getValue(r,a);if(!o)return"";const u=i.getStyleByCell(o);return((g=u==null?void 0:u.n)==null?void 0:g.pattern)||""}toArrayValueObject(e=!0){var _;const{startRow:t,endRow:r,startColumn:a,endColumn:i}=this.getRangePosition(),o=`${this.getUnitId()}_${this.getSheetId()}_${t}_${r}_${a}_${i}`,u=an.get(o);if(u&&e)return u;const c=r-t+1,l=i-a+1;if(c<0||l<0)return this._getBlankArrayValueObject();const d=new Array(c);this.iterator((D,P,w)=>{const v=P-t,B=w-a;d[v]||(d[v]=new Array(l)),D==null&&(D=ae.create()),d[v][B]=D});const g={calculateValueList:d,rowCount:d.length,columnCount:((_=d[0])==null?void 0:_.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:t,column:a},p=de.create(g);return e&&an.set(o,p),p}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const e={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return de.create(e)}}class ks extends xr{constructor(s){super(),this._promise=s}isAsyncObject(){return!0}async getValue(){return this._promise}}class Is extends xr{constructor(s){super(),this._promiseList=s}isAsyncArrayObject(){return!0}async getValue(){var t;const s=[];for(let r=0;r<this._promiseList.length;r++){const a=this._promiseList[r];s[r]==null&&(s[r]=[]);for(let i=0;i<a.length;i++){const o=a[i];o.isAsyncObject()?s[r][i]=await o.getValue():s[r][i]=o}}const e={calculateValueList:s,rowCount:s.length,columnCount:((t=s[0])==null?void 0:t.length)||0,unitId:"",sheetId:"",row:0,column:0};return de.create(e)}}class kt extends xt{constructor(s,e,t){super(""),this.setRangeData(s),e&&this.setForcedSheetIdDirect(e),t&&this.setForcedUnitIdDirect(t)}isRange(){return!0}}const es=/[\[\]]/g;function ts(n,s){if(es.test(n)){const e=Number(n.replace(es,""));return s+e}return Number(n)-1}function Xr(n,s=0,e=0){n=n.toLocaleUpperCase();const t=n.split(/[RC]/),r=t[1],a=t[2],i=ts(r,s),o=ts(a,e);return{row:i,column:o,absoluteRefType:b.AbsoluteRefType.NONE}}function js(n,s=0,e=0){const{refBody:t,sheetName:r,unitId:a}=Us(n),i=t.indexOf(":");if(i===-1){const D=Xr(t,s,e),P=D.row,w=D.column,v=D.absoluteRefType;return{unitId:a,sheetName:r,range:{startRow:P,startColumn:w,endRow:P,endColumn:w,startAbsoluteRefType:v,endAbsoluteRefType:v}}}const o=t.substring(0,i),u=t.substring(i+1),c=Xr(o,s,e),l=Xr(u,s,e),d=c.row,g=c.column,p=l.row,_=l.column;return{unitId:a,sheetName:r,range:{startRow:d,startColumn:g,endRow:p,endColumn:_,startAbsoluteRefType:c.absoluteRefType,endAbsoluteRefType:l.absoluteRefType}}}function Yi(n){const s=Zt(n.startRow,n.startAbsoluteRefType,!0),e=Zt(n.startColumn,n.startAbsoluteRefType,!1),t=Zt(n.endRow,n.endAbsoluteRefType,!0),r=Zt(n.endColumn,n.endAbsoluteRefType,!1);return s===t&&e===r?`R${s}C${e}`:`R${s}C${e}:R${t}C${r}`}function Zt(n,s=b.AbsoluteRefType.ALL,e){switch(n+=1,s){case b.AbsoluteRefType.ALL:return`${n}`;case b.AbsoluteRefType.ROW:return e?`${n}`:`[${n}]`;case b.AbsoluteRefType.COLUMN:return e?`[${n}]`:`${n}`;case b.AbsoluteRefType.NONE:return`[${n}]`}}const $s=[];var Ys=(n=>n)(Ys||{});function J(n,s,e,t){const r=[];if(e.isArray()){const a=e.getRowCount(),i=e.getColumnCount();if(a===1&&i===1){const o=e.getFirstCell();for(let u=0;u<n;u++){const c=[];for(let l=0;l<s;l++)c.push(o);r.push(c)}}else if(a===1&&i>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<s;c++){const l=e.getRealValue(0,c)||(t!=null?t:ae.create());u.push(l)}r.push(u)}else if(i===1&&a>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<s;c++){const l=e.getRealValue(o,0)||(t!=null?t:ae.create());u.push(l)}r.push(u)}else for(let o=0;o<n;o++){const u=[];for(let c=0;c<s;c++){const l=e.getRealValue(o,c)||(t!=null?t:ae.create());u.push(l)}r.push(u)}}else for(let a=0;a<n;a++){const i=[];for(let o=0;o<s;o++)i.push(e);r.push(i)}return pt(r,n,s)}function pt(n,s,e,t="",r=""){const a={calculateValueList:n,rowCount:s,columnCount:e,unitId:t,sheetId:r,row:-1,column:-1};return de.create(a)}function Yt(n){const s=[U.EQUALS,U.NOT_EQUAL,U.GREATER_THAN_OR_EQUAL,U.GREATER_THAN,U.LESS_THAN_OR_EQUAL,U.LESS_THAN];for(const e of s)if(n.startsWith(e)){const t=n.substring(e.length);return[e,it.create(t)]}return[U.EQUALS,it.create(n)]}function Ur(n,s,e,t){if(!e)if(s.isString()){const r=`${s.getValue()}`,[a,i]=Yt(r);e=a,s=i}else e=U.EQUALS;return n.compare(s,e,t)}function Qi(n,s){const e=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),t=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),r=J(e,t,n),a=J(e,t,s);return r.mapValue((i,o,u)=>{const c=a.get(o,u);return i!=null&&i.isError()?i:c!=null&&c.isError()?c:i!=null&&i.isBoolean()&&(c!=null&&c.isBoolean())?wr(i.getValue()&&c.getValue()):j.create(!1)})}function Hi(n){const s=n.getValue();let e=0;return s&&(e=1),C.create(e)}function rs(n){return n.isArray()&&n.getRowCount()===1&&n.getColumnCount()===1?!0:n.isReferenceObject()?!!(n.isCell()||n.getRowCount()===1&&n.getColumnCount()===1):(n=n,!!(n.isString()||n.isNumber()||n.isBoolean()||n.isError()||n.isNull()))}function ct(n){const s=n==null?void 0:n.getPattern();let e={};if(s&&(e={s:{n:{pattern:s}}}),n==null)return{v:null,...e};if(n.isError())return{v:n.getErrorType(),t:b.CellValueType.STRING,...e};if(n.isValueObject()){const t=n,r=t.getValue();return t.isNumber()?{v:r,t:b.CellValueType.NUMBER,...e}:t.isBoolean()?{v:r?1:0,t:b.CellValueType.BOOLEAN,...e}:t.isString()?{v:r,t:b.CellValueType.STRING,...e}:t.isNull()?{v:null,...e}:{v:r,t:b.CellValueType.STRING,...e}}}function Qt(n){let s=0,e=0;return n.forEach((t,r)=>{if(r%2===1)if(t.isArray()){const a=t;s=Math.max(s,a.getRowCount()),e=Math.max(e,a.getColumnCount())}else s=Math.max(s,1),e=Math.max(e,1)}),{maxRowLength:s,maxColumnLength:e}}function Ht(n,s,e,t){const r=s.getRowCount(),a=s.getColumnCount();for(let i=0;i<n.length;i++){if(i%2===1)continue;const o=n[i],u=o.getRowCount(),c=o.getColumnCount();if(u!==r||c!==a)return J(e,t,m.create(f.VALUE))}return null}function zt(n,s,e,t=!1){const r=[];for(let a=0;a<n.length;a++){if(a%2===1)continue;const i=n[a],o=n[a+1];J(s,e,o,m.create(f.NA)).iterator((c,l,d)=>{if(!c)return;let g=Ur(i,c);const[,p]=Yt(`${c.getValue()}`);if(t&&(g=Mr(g,i,p)),r[l]===void 0&&(r[l]=[]),r[l][d]===void 0){r[l][d]=g;return}r[l][d]=Qi(r[l][d],g)})}return r}function Mr(n,s,e){return n.mapValue((t,r,a)=>{const i=s.get(r,a);return i&&zi(i,e)?t:i!=null&&i.isError()&&e.isError()&&i.getValue()===e.getValue()?j.create(!0):j.create(!1)})}function zi(n,s){if(n.isNumber()&&s.isNumber()||n.isBoolean()&&s.isBoolean())return!0;const e=n.isString()&&n.getValue()==="",t=s.isString()&&s.getValue()==="";return!!((e||n.isNull())&&(t||s.isNull())||n.isString()&&!e&&s.isString()&&!t)}class hn extends xt{constructor(s){super(s);const e=je(s);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName),this.setRangeData(e.range)}isCell(){return!0}unionBy(s){if(!s.isCell())return m.create(f.REF);const e=s,t=this.unionRange(this.getRangeData(),e.getRangeData());return this._createRange(t)}unionRange(s,e){const t=s.startRow,r=s.startColumn,a=e.startRow,i=e.startColumn,o={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return t>a?(o.startRow=a,o.endRow=t):(o.startRow=t,o.endRow=a),r>i?(o.startColumn=i,o.endColumn=r):(o.startColumn=r,o.endColumn=i),s.startAbsoluteRefType&&(o.startAbsoluteRefType=s.startAbsoluteRefType),e.startAbsoluteRefType&&(o.endAbsoluteRefType=e.startAbsoluteRefType),o}_createRange(s){const e=new kt(s,this.getForcedSheetId(),this.getForcedUnitId());e.setUnitData(this.getUnitData()),e.setDefaultSheetId(this.getDefaultSheetId()),e.setDefaultUnitId(this.getDefaultUnitId()),e.setRuntimeData(this.getRuntimeData()),e.setUnitStylesData(this.getUnitStylesData()),e.setArrayFormulaCellData(this.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();e.setRefOffset(t,r);const a=this.getForcedSheetId();e.setForcedSheetName(this.getForcedSheetName()),a!=null&&e.setForcedSheetIdDirect(a);const i=this.getForcedUnitId();return i&&e.setForcedUnitIdDirect(i),e}}class mn extends xt{constructor(s){super(s);const e=je(s);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:Number.NaN,startRow:e.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(t)}isRow(){return!0}unionBy(s){if(!s.isRow())return m.create(f.REF);const e=s;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return m.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),a=r.startRow,i=t.startRow;return a>i?t.endRow=a:(t.startRow=a,t.endRow=i),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=b.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class dn extends xt{constructor(s){super(s);const e=je(s);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:e.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(t)}isColumn(){return!0}unionBy(s){if(!s.isColumn())return m.create(f.REF);const e=s;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return m.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),a=r.startColumn,i=t.startColumn;return a>i?t.endColumn=a:(t.startColumn=a,t.endColumn=i),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=b.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class L extends b.Disposable{constructor(e){super();h(this,"_unitId");h(this,"_subUnitId");h(this,"_row",-1);h(this,"_column",-1);h(this,"_definedNames");h(this,"needsExpandParams",!1);h(this,"needsReferenceObject",!1);h(this,"minParams",-1);h(this,"maxParams",-1);this._name=e}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}getDefinedName(e){var r;const t=this._definedNames;return t==null?null:(r=Array.from(Object.values(t)).filter(a=>a.name===e))==null?void 0:r[0]}setDefinedNames(e){this._definedNames=e}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(e,t,r,a){this._unitId=e,this._subUnitId=t,this._row=r,this._column=a}calculateCustom(...e){return null}calculate(...e){return m.create(f.VALUE)}checkArrayType(e){return e.isReferenceObject()||e.isValueObject()&&e.isArray()}getIndexNumValue(e,t=1){if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())return e.getValue()===!1?m.create(f.VALUE):t;if(e.isString()){const r=Number(e.getValue());return Number.isNaN(r)?m.create(f.REF):r}else if(e.isNumber())return e.getValue();return m.create(f.VALUE)}getZeroOrOneByOneDefault(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;e.isNumber()&&e.getValue()===0&&(t=0)}return t}getMatchTypeValue(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;if(e.isNumber()){const r=e.getValue();r<=0&&(t=r)}}return t}binarySearch(e,t,r,a){const i=t.binarySearch(e,a);if(i==null)return m.create(f.NA);let o;return r.getRowCount()===1?o=r.get(0,i)||ae.create():o=r.get(i,0)||ae.create(),o.isNull()?m.create(f.NA):o}_getOneFirstByRaw(e){return e.length===0?m.create(f.NA):e[0][0]||m.create(f.NA)}_getOneLastByRaw(e){return e.length===0?m.create(f.NA):e[e.length-1][e[0].length-1]||m.create(f.NA)}equalSearch(e,t,r,a=!0){const i=r.pickRaw(t.isEqual(e));return a?this._getOneFirstByRaw(i):this._getOneLastByRaw(i)}fuzzySearch(e,t,r,a=!0){const i=r.pickRaw(t.compare(e,U.EQUALS));return a?this._getOneFirstByRaw(i):this._getOneLastByRaw(i)}orderSearch(e,t,r,a=Pe.MIN,i=!1){const o=t.orderSearch(e,a,i);if(o==null)return m.create(f.NA);const u=r.get(o.row,o.column)||ae.create();return u.isNull()?m.create(f.NA):u}binarySearchExpand(e,t,r,a=0,i){const o=t.binarySearch(e,i);return o==null?m.create(f.NA):a===0?r.slice([o,o+1]):r.slice(void 0,[o,o+1])}equalSearchExpand(e,t,r,a=!0,i=0){const o=t.isEqual(e);let u;return a?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?m.create(f.NA):i===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}fuzzySearchExpand(e,t,r,a=!0,i=0){const o=t.compare(e,U.EQUALS);let u;return a?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?m.create(f.NA):i===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}orderSearchExpand(e,t,r,a=Pe.MIN,i=!1,o=0){const u=t.orderSearch(e,a,i);return u==null?m.create(f.NA):o===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}flattenArray(e,t=!0){const r=[];r[0]=[];for(let a=0;a<e.length;a++){let i=e[a];if((i.isString()||i.isBoolean()||i.isNull())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){let o;if(i.iterator(u=>{if(u==null||u.isNull()||t&&(u.isString()||u.isBoolean()))return!0;if(u=this._includingLogicalValuesAndText(u),u.isError())return o=u,!1;r[0].push(u)}),o!=null&&o.isError())return o}else r[0].push(i)}return pt(r,1,r[0].length)}_includingLogicalValuesAndText(e){if(e.isBoolean()&&(e=Hi(e)),e.isString()){const t=Number(e.getValue());e=C.create(Number.isNaN(t)?0:t)}return e}createReferenceObject(e,t){const r=e.getForcedUnitId(),a=e.getForcedSheetId()||"",i=e.getForcedSheetName(),u=gt({unitId:r,sheetName:i,range:t});let c;return new RegExp($t).test(u)?c=new hn(u):new RegExp(Ps).test(u)?c=new mn(u):new RegExp(Ls).test(u)?c=new dn(u):c=new kt(t,a,r),this._setReferenceDefault(e,c)}_setReferenceDefault(e,t){return this.unitId==null||this.subUnitId==null?m.create(f.REF):(t.setDefaultUnitId(this.unitId),t.setDefaultSheetId(this.subUnitId),t.setUnitData(e.getUnitData()),t.setRuntimeData(e.getRuntimeData()),t.setArrayFormulaCellData(e.getArrayFormulaCellData()),t.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),t)}}class Ni extends L{isCustom(){return!0}}class Qs extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std()}}class Hs extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std(1)}}class zs extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var()}}class Ns extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var(1)}}var Et=(n=>(n.BETADIST="BETADIST",n.BETAINV="BETAINV",n.BINOMDIST="BINOMDIST",n.CHIDIST="CHIDIST",n.CHIINV="CHIINV",n.CHITEST="CHITEST",n.CONFIDENCE="CONFIDENCE",n.COVAR="COVAR",n.CRITBINOM="CRITBINOM",n.EXPONDIST="EXPONDIST",n.FDIST="FDIST",n.FINV="FINV",n.FTEST="FTEST",n.GAMMADIST="GAMMADIST",n.GAMMAINV="GAMMAINV",n.HYPGEOMDIST="HYPGEOMDIST",n.LOGINV="LOGINV",n.LOGNORMDIST="LOGNORMDIST",n.MODE="MODE",n.NEGBINOMDIST="NEGBINOMDIST",n.NORMDIST="NORMDIST",n.NORMINV="NORMINV",n.NORMSDIST="NORMSDIST",n.NORMSINV="NORMSINV",n.PERCENTILE="PERCENTILE",n.PERCENTRANK="PERCENTRANK",n.POISSON="POISSON",n.QUARTILE="QUARTILE",n.RANK="RANK",n.STDEV="STDEV",n.STDEVP="STDEVP",n.TDIST="TDIST",n.TINV="TINV",n.TTEST="TTEST",n.VAR="VAR",n.VARP="VARP",n.WEIBULL="WEIBULL",n.ZTEST="ZTEST",n))(Et||{});const Ws=[[Hs,Et.STDEV],[Qs,Et.STDEVP],[Ns,Et.VAR],[zs,Et.VARP]],Gs=[];var Xs=(n=>(n.CUBEKPIMEMBER="CUBEKPIMEMBER",n.CUBEMEMBER="CUBEMEMBER",n.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",n.CUBERANKEDMEMBER="CUBERANKEDMEMBER",n.CUBESET="CUBESET",n.CUBESETCOUNT="CUBESETCOUNT",n.CUBEVALUE="CUBEVALUE",n))(Xs||{});const Ks=[];var qs=(n=>(n.DAVERAGE="DAVERAGE",n.DCOUNT="DCOUNT",n.DCOUNTA="DCOUNTA",n.DGET="DGET",n.DMAX="DMAX",n.DMIN="DMIN",n.DPRODUCT="DPRODUCT",n.DSTDEV="DSTDEV",n.DSTDEVP="DSTDEVP",n.DSUM="DSUM",n.DVAR="DVAR",n.DVARP="DVARP",n))(qs||{});const gn="yyyy/mm/dd;@",Wi="yyyy/mm/dd hh:mm",Gi="h:mm A/P";function pn(n){const s=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28)),t=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate());let r=(t-s.getTime())/(1e3*3600*24);return t>e.getTime()&&(r+=1),Math.floor(r)+1}function Xi(n){const s=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let r=(n.getTime()-s.getTime())/(1e3*3600*24);return n>e&&(r+=1),r+1}function Fr(n){const s=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28));let t=Math.floor(n)-1;return t>(e.getTime()-s.getTime())/(1e3*3600*24)&&(t-=1),new Date(s.getTime()+t*(1e3*3600*24))}function Rn(n){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(n))return!1;const e=n.replace(/-/g,"/").replace(/T.+/,""),t=new Date(`${e}`);if(Number.isNaN(t.getTime()))return!1;const r=t.getFullYear(),a=(t.getMonth()+1).toString().padStart(2,"0"),i=t.getDate().toString().padStart(2,"0"),o=`${r}-${a}-${i}`;return n.replace(/\//g,"-").split("-").map(c=>c.padStart(2,"0")).join("-")===o}function Zs(n){return Vr.parseValue(n)}function Js(n){return Vr.isDate(n)}class Ki extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(a,i,e),u=J(a,i,t),c=J(a,i,r);return o.map((l,d,g)=>{const p=u.get(d,g)||ae.create(),_=c.get(d,g)||ae.create();if(l.isError())return l;if(p.isError())return p;if(_.isError())return _;if(l.isString()||p.isString()||_.isString())return m.create(f.VALUE);let D=+l.getValue();const P=Math.floor(+p.getValue()),w=+_.getValue();if(D<0||D>9999)return m.create(f.NUM);D>=0&&D<1899&&(D+=1900);const v=new Date(D,P-1,w),B=pn(v);return B<0?m.create(f.NUM):C.create(B,gn)})}}class qi extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Zs(t);if(r){const{v:a,z:i}=r;if(Js(i))return C.create(Math.trunc(a))}}return m.create(f.VALUE)}}class Zi extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t;const r=e.getValue();if(e.isString()){if(!Rn(`${r}`))return m.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return m.create(f.NUM);if(o===0)return C.create(0);t=Fr(o)}const a=t.getDate();return C.create(a)}}class Ji extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=J(r,a,e),o=J(r,a,t);return i.map((u,c,l)=>{const d=o.get(c,l)||ae.create();if(u.isError())return u;if(d.isError())return d;if(u.isString()||u.isBoolean()||d.isString()||d.isBoolean())return m.create(f.VALUE);const g=+u.getValue();if(g<0)return m.create(f.NUM);const p=Math.floor(+d.getValue()),_=Fr(g),D=_.getUTCFullYear(),P=_.getUTCMonth()+p,w=_.getUTCDate(),v=new Date(Date.UTC(D,P,w)),B=pn(v);return C.create(B,gn)})}}var Oe=(n=>(n.DATE="DATE",n.DATEDIF="DATEDIF",n.DATEVALUE="DATEVALUE",n.DAY="DAY",n.DAYS="DAYS",n.DAYS360="DAYS360",n.EDATE="EDATE",n.EOMONTH="EOMONTH",n.HOUR="HOUR",n.ISOWEEKNUM="ISOWEEKNUM",n.MINUTE="MINUTE",n.MONTH="MONTH",n.NETWORKDAYS="NETWORKDAYS",n.NETWORKDAYS_INTL="NETWORKDAYS.INTL",n.NOW="NOW",n.SECOND="SECOND",n.TIME="TIME",n.TIMEVALUE="TIMEVALUE",n.TODAY="TODAY",n.WEEKDAY="WEEKDAY",n.WEEKNUM="WEEKNUM",n.WORKDAY="WORKDAY",n.WORKDAY_INTL="WORKDAY.INTL",n.YEAR="YEAR",n.YEARFRAC="YEARFRAC",n))(Oe||{});class eo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!Rn(`${r}`))return m.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return m.create(f.NUM);if(o===0)return C.create(1);t=Fr(o)}const a=t.getUTCMonth()+1;return C.create(a)}}class to extends L{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",0)}calculate(){const e=new Date,t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())),r=Xi(t);return C.create(r,Wi)}}class ro extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(a,i,e),u=J(a,i,t),c=J(a,i,r);return o.map((l,d,g)=>this._calculateTime(l,u,c,d,g))}_calculateTime(e,t,r,a,i){let o=t.get(a,i)||ae.create(),u=r.get(a,i)||ae.create();if((e.isString()||e.isBoolean())&&(e=e.convertToNumberObjectValue()),(o.isString()||o.isBoolean())&&(o=o.convertToNumberObjectValue()),(u.isString()||u.isBoolean())&&(u=u.convertToNumberObjectValue()),e.isError())return e;if(o.isError())return o;if(u.isError())return u;let c=Math.floor(+e.getValue()),l=Math.floor(+o.getValue()),d=Math.floor(+u.getValue());if(c<0||l<0||d<0||c>32767||l>32767||d>32767)return m.create(f.NUM);l+=Math.floor(d/60),d%=60,c+=Math.floor(l/60),l%=60,c%=24;const p=(c*3600+l*60+d)/86400;return C.create(p,Gi)}}class no extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Zs(t);if(r){const{v:a,z:i}=r;if(Js(i))return C.create(Ai(a))}}return m.create(f.VALUE)}}class so extends L{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",0)}calculate(){const e=pn(new Date);return C.create(e,gn)}}class ao extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!Rn(`${r}`))return m.create(f.VALUE);t=new Date(`${r}`)}else{const o=+r;if(o<0)return m.create(f.NUM);if(o===0)return C.create(1900);t=Fr(o)}const a=t.getUTCFullYear();return C.create(a)}}const ea=[[Ki,Oe.DATE],[qi,Oe.DATEVALUE],[Zi,Oe.DAY],[Ji,Oe.EDATE],[eo,Oe.MONTH],[to,Oe.NOW],[ro,Oe.TIME],[no,Oe.TIMEVALUE],[so,Oe.TODAY],[ao,Oe.YEAR]],ta=[];var ra=(n=>(n.BESSELI="BESSELI",n.BESSELJ="BESSELJ",n.BESSELK="BESSELK",n.BESSELY="BESSELY",n.BIN2DEC="BIN2DEC",n.BIN2HEX="BIN2HEX",n.BIN2OCT="BIN2OCT",n.BITAND="BITAND",n.BITLSHIFT="BITLSHIFT",n.BITOR="BITOR",n.BITRSHIFT="BITRSHIFT",n.BITXOR="BITXOR",n.COMPLEX="COMPLEX",n.CONVERT="CONVERT",n.DEC2BIN="DEC2BIN",n.DEC2HEX="DEC2HEX",n.DEC2OCT="DEC2OCT",n.DELTA="DELTA",n.ERF="ERF",n.ERF_PRECISE="ERF.PRECISE",n.ERFC="ERFC",n.ERFC_PRECISE="ERFC.PRECISE",n.GESTEP="GESTEP",n.HEX2BIN="HEX2BIN",n.HEX2DEC="HEX2DEC",n.HEX2OCT="HEX2OCT",n.IMABS="IMABS",n.IMAGINARY="IMAGINARY",n.IMARGUMENT="IMARGUMENT",n.IMCONJUGATE="IMCONJUGATE",n.IMCOS="IMCOS",n.IMCOSH="IMCOSH",n.IMCOT="IMCOT",n.IMCSC="IMCSC",n.IMCSCH="IMCSCH",n.IMDIV="IMDIV",n.IMEXP="IMEXP",n.IMLN="IMLN",n.IMLOG10="IMLOG10",n.IMLOG2="IMLOG2",n.IMPOWER="IMPOWER",n.IMPRODUCT="IMPRODUCT",n.IMREAL="IMREAL",n.IMSEC="IMSEC",n.IMSECH="IMSECH",n.IMSIN="IMSIN",n.IMSINH="IMSINH",n.IMSQRT="IMSQRT",n.IMSUB="IMSUB",n.IMSUM="IMSUM",n.IMTAN="IMTAN",n.OCT2BIN="OCT2BIN",n.OCT2DEC="OCT2DEC",n.OCT2HEX="OCT2HEX",n))(ra||{});const na=[];var sa=(n=>(n.ACCRINT="ACCRINT",n.ACCRINTM="ACCRINTM",n.AMORDEGRC="AMORDEGRC",n.AMORLINC="AMORLINC",n.COUPDAYBS="COUPDAYBS",n.COUPDAYS="COUPDAYS",n.COUPDAYSNC="COUPDAYSNC",n.COUPNCD="COUPNCD",n.COUPNUM="COUPNUM",n.COUPPCD="COUPPCD",n.CUMIPMT="CUMIPMT",n.CUMPRINC="CUMPRINC",n.DB="DB",n.DDB="DDB",n.DISC="DISC",n.DOLLARDE="DOLLARDE",n.DOLLARFR="DOLLARFR",n.DURATION="DURATION",n.EFFECT="EFFECT",n.FV="FV",n.FVSCHEDULE="FVSCHEDULE",n.INTRATE="INTRATE",n.IPMT="IPMT",n.IRR="IRR",n.ISPMT="ISPMT",n.MDURATION="MDURATION",n.MIRR="MIRR",n.NOMINAL="NOMINAL",n.NPER="NPER",n.NPV="NPV",n.ODDFPRICE="ODDFPRICE",n.ODDFYIELD="ODDFYIELD",n.ODDLPRICE="ODDLPRICE",n.ODDLYIELD="ODDLYIELD",n.PDURATION="PDURATION",n.PMT="PMT",n.PPMT="PPMT",n.PRICE="PRICE",n.PRICEDISC="PRICEDISC",n.PRICEMAT="PRICEMAT",n.PV="PV",n.RATE="RATE",n.RECEIVED="RECEIVED",n.RRI="RRI",n.SLN="SLN",n.SYD="SYD",n.TBILLEQ="TBILLEQ",n.TBILLPRICE="TBILLPRICE",n.TBILLYIELD="TBILLYIELD",n.VDB="VDB",n.XIRR="XIRR",n.XNPV="XNPV",n.YIELD="YIELD",n.YIELDDISC="YIELDDISC",n.YIELDMAT="YIELDMAT",n))(sa||{}),xe=(n=>(n.CELL="CELL",n.ERROR_TYPE="ERROR.TYPE",n.INFO="INFO",n.ISBLANK="ISBLANK",n.ISERR="ISERR",n.ISERROR="ISERROR",n.ISEVEN="ISEVEN",n.ISFORMULA="ISFORMULA",n.ISLOGICAL="ISLOGICAL",n.ISNA="ISNA",n.ISNONTEXT="ISNONTEXT",n.ISNUMBER="ISNUMBER",n.ISODD="ISODD",n.ISOMITTED="ISOMITTED",n.ISREF="ISREF",n.ISTEXT="ISTEXT",n.N="N",n.NA="NA",n.SHEET="SHEET",n.SHEETS="SHEETS",n.TYPE="TYPE",n))(xe||{});class io extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isNull()?j.create(!0):e.isArray()?e.mapValue(t=>t.isNull()?j.create(!0):j.create(!1)):j.create(!1)}}class oo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?j.create(!1):e.isError()?j.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?j.create(!1):t.isError()?j.create(!0):j.create(!1)):j.create(!1)}}class uo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?j.create(!0):e.isArray()?e.mapValue(t=>t.isError()?j.create(!0):j.create(!1)):j.create(!1)}}class co extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return m.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return j.create(r%2===0)}}class lo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isBoolean()?j.create(!0):e.isArray()?e.mapValue(t=>t.isBoolean()?j.create(!0):j.create(!1)):j.create(!1)}}class fo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?j.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?j.create(!0):j.create(!1)):j.create(!1)}}class ho extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return!e.isArray()&&!e.isString()?j.create(!0):e.isArray()?e.mapValue(t=>t.isString()?j.create(!1):j.create(!0)):j.create(!1)}}class mo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isNumber()?j.create(!0):e.isArray()?e.mapValue(t=>t.isNumber()?j.create(!0):j.create(!1)):j.create(!1)}}class go extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return m.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return j.create(r%2!==0)}}class po extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1);h(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?j.create(!0):j.create(!1)}}class Ro extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()?j.create(!0):e.isArray()?e.mapValue(t=>t.isString()?j.create(!0):j.create(!1)):j.create(!1)}}const aa=[[io,xe.ISBLANK],[oo,xe.ISERR],[co,xe.ISEVEN],[go,xe.ISODD],[uo,xe.ISERROR],[lo,xe.ISLOGICAL],[fo,xe.ISNA],[ho,xe.ISNONTEXT],[mo,xe.ISNUMBER],[po,xe.ISREF],[Ro,xe.ISTEXT]];class _o extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=!0,r=!0,a=null;for(const i of e){if(i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o!=null&&o.isError())return a=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t&&!!o.getValue(),r=!1)}),a)return a}else(i.isBoolean()||i.isNumber())&&(t=t&&!!i.getValue(),r=!1)}return r?m.create(f.VALUE):j.create(t)}}var rt=(n=>(n.AND="AND",n.BYCOL="BYCOL",n.BYROW="BYROW",n.FALSE="FALSE",n.IF="IF",n.IFERROR="IFERROR",n.IFNA="IFNA",n.IFS="IFS",n.LAMBDA="LAMBDA",n.LET="LET",n.MAKEARRAY="MAKEARRAY",n.MAP="MAP",n.NOT="NOT",n.OR="OR",n.REDUCE="REDUCE",n.SCAN="SCAN",n.SWITCH="SWITCH",n.TRUE="TRUE",n.XOR="XOR",n))(rt||{});class Eo extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r=j.create(!1)){if(e.isError())return e;if(t.isError())return t;if(e=this._getSingleValueObject(e),!e.isArray())return e.getValue()?t:r;const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(a,i,e),u=J(a,i,t,m.create(f.NA)),c=J(a,i,r,m.create(f.NA));return o.map((l,d,g)=>{if(l.isNull())return m.create(f.NA);{const p=u.get(d,g)||ae.create(),_=c.get(d,g)||ae.create();return this._calculateSingleCell(l,p,_)}})}_getSingleValueObject(e){return e.isArray()&&e.getRowCount()===1&&e.getColumnCount()===1?e.getFirstCell():e}_calculateSingleCell(e,t,r){return e.isNull()?m.create(f.NA):e.getValue()?t.isNull()?m.create(f.NA):t:r.isNull()?m.create(f.NA):r}}class yo extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;if(!e.isArray())return e.isError()?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=J(r,a,e),o=J(r,a,t);return i.iterator((u,c,l)=>{u!=null&&u.isError()&&i.set(c,l,o.get(c,l))}),i}}class Co extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){return m.create(f.VALUE)}}class Do extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",3)}calculate(...e){const t=this.getIndexNumValue(e[0]);if(typeof t!="number")return t;const r=this.getIndexNumValue(e[1]);if(typeof r!="number")return r;if(!(e[2].isValueObject()&&e[2].isLambda()))return m.create(f.VALUE);const a=e[2],i=[];for(let o=0;o<t;o++){i[o]==null&&(i[o]=[]);for(let u=0;u<r;u++){const c=a.execute(C.create(o+1),C.create(u+1));i[o][u]=c}}return new Is(i)}isAsync(){return!0}}class bo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=!1,r=!0,a=null;for(const i of e){if(i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o!=null&&o.isError())return a=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t||!!o.getValue(),r=!1)}),a)return a}else(i.isBoolean()||i.isNumber())&&(t=t||!!i.getValue(),r=!1)}return r?new m(f.VALUE):new j(t)}}const ia=[[_o,rt.AND],[Eo,rt.IF],[Co,rt.LAMBDA],[Do,rt.MAKEARRAY],[bo,rt.OR],[yo,rt.IFERROR]];class So extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",5)}calculate(e,t,r,a,i){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(a!=null&&a.isError())return a;if(i!=null&&i.isError())return i;r=r!=null?r:C.create(1),a=a!=null?a:j.create(!0),i=i!=null?i:fe.create("");const o=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,i.isArray()?i.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,i.isArray()?i.getColumnCount():1),c=J(o,u,e,m.create(f.NA)),l=J(o,u,t,m.create(f.NA)),d=J(o,u,r,m.create(f.NA)),g=J(o,u,a,m.create(f.NA)),p=J(o,u,i,m.create(f.NA));return c.map((_,D,P)=>{const w=l.get(D,P)||m.create(f.NA),v=d.get(D,P)||m.create(f.NA),B=g.get(D,P)||m.create(f.NA),X=p.get(D,P)||m.create(f.NA);return _.isError()?_:w.isError()?w:v.isError()?v:B.isError()?B:X.isError()?X:this._calculateSingleCell(_,w,v,B,X)})}_calculateSingleCell(e,t,r,a,i){const o=Number.parseInt(`${Number(e.getValue())-1}`),u=Number.parseInt(`${Number(t.getValue())-1}`),c=Number.parseInt(`${Number(r.getValue())}`);if(Number.isNaN(o)||Number.isNaN(u)||Number.isNaN(c)||c<1||c>4)return m.create(f.VALUE);const l=Ao(c),d=this.getZeroOrOneByOneDefault(a),g=`${i.getValue()}`,p=dr(g)?`'${g}'`:g,_={startRow:o,startColumn:u,endRow:o,endColumn:u,startAbsoluteRefType:l,endAbsoluteRefType:l},D=a&&!d?Yi(_):Xe(_);return fe.create(p!==""?`${p}!${D}`:D)}}function Ao(n){switch(n){case 1:return b.AbsoluteRefType.ALL;case 2:return b.AbsoluteRefType.ROW;case 3:return b.AbsoluteRefType.COLUMN;case 4:return b.AbsoluteRefType.NONE;default:return b.AbsoluteRefType.ALL}}class Po extends L{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",1)}calculate(e){if(e==null)return C.create(this.column+1);if(e.isError())return e;if(!e.isArray())return m.create(f.NA);const t=e.getCurrentColumn(),r=e.getColumnCount(),a=[];for(let o=0;o<r;o++)a.push(C.create(t+o+1));const i={calculateValueList:[a],rowCount:1,columnCount:r,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(i)}}class Lo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return C.create(1);if(!e.isArray())return m.create(f.NA);const t=e.getColumnCount();return C.create(t)}}var De=(n=>(n.ADDRESS="ADDRESS",n.AREAS="AREAS",n.CHOOSE="CHOOSE",n.CHOOSECOLS="CHOOSECOLS",n.CHOOSEROWS="CHOOSEROWS",n.COLUMN="COLUMN",n.COLUMNS="COLUMNS",n.DROP="DROP",n.EXPAND="EXPAND",n.FILTER="FILTER",n.FORMULATEXT="FORMULATEXT",n.GETPIVOTDATA="GETPIVOTDATA",n.HLOOKUP="HLOOKUP",n.HSTACK="HSTACK",n.HYPERLINK="HYPERLINK",n.IMAGE="IMAGE",n.INDEX="INDEX",n.INDIRECT="INDIRECT",n.LOOKUP="LOOKUP",n.MATCH="MATCH",n.OFFSET="OFFSET",n.ROW="ROW",n.ROWS="ROWS",n.RTD="RTD",n.SORT="SORT",n.SORTBY="SORTBY",n.TAKE="TAKE",n.TOCOL="TOCOL",n.TOROW="TOROW",n.TRANSPOSE="TRANSPOSE",n.UNIQUE="UNIQUE",n.VLOOKUP="VLOOKUP",n.VSTACK="VSTACK",n.WRAPCOLS="WRAPCOLS",n.WRAPROWS="WRAPROWS",n.XLOOKUP="XLOOKUP",n.XMATCH="XMATCH",n))(De||{});class xo extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",4)}calculate(e,t,r,a){if(e.isError())return e;if(t.isError())return m.create(f.REF);if(!t.isArray()||r.isError()||a!=null&&a.isError())return m.create(f.NA);const i=this.getZeroOrOneByOneDefault(a);if(i==null)return m.create(f.VALUE);const o=this.getIndexNumValue(r);if(o instanceof m)return o;const u=t.slice([0,1]),c=t.slice([o-1,o]);return u==null||c==null?m.create(f.REF):e.isArray()?e.map(l=>this._handleSingleObject(l,u,c,i)):this._handleSingleObject(e,u,c,i)}_handleSingleObject(e,t,r,a){return a===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class Vo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",2)}isAddress(){return!0}calculate(e,t){if(e.isError())return e;let r=this.getZeroOrOneByOneDefault(t);if(r==null&&(r=1),e.isArray()){const d=e;if(d.getRowCount()===1&&d.getColumnCount()===1)e=d.getFirstCell();else return d.map(()=>m.create(f.VALUE))}if(!e.isString())return m.create(f.REF);const a=this._convertToDefinedName(e.getValue());if(r===0){const d=js(a),{range:g,sheetName:p,unitId:_}=d,D=new kt(g);return D.setForcedUnitIdDirect(_),D.setForcedSheetName(p),this._setDefault(D)}if(new RegExp($t).test(a))return this._setDefault(new hn(a));if(new RegExp(Ss).test(a))return this._setDefault(new mn(a));if(new RegExp(As).test(a))return this._setDefault(new dn(a));const i=je(a),{range:o,sheetName:u,unitId:c}=i,l=new kt(o);return l.setForcedUnitIdDirect(c),l.setForcedSheetName(u),this._setDefault(l)}_setDefault(e){return this.unitId==null||this.subUnitId==null?m.create(f.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e)}_convertToDefinedName(e){const t=this.getDefinedName(e);if(t==null)return e;const r=t.formulaOrRefString;return r==null?e:r.startsWith(se.EQUALS)?r.slice(1):r}}class wo extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3);h(this,"needsExpandParams",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?m.create(f.REF):t.isArray()?r!=null&&r.isError()?r:t.getColumnCount()===1||t.getRowCount()===1?r!=null&&!r.isArray()?m.create(f.REF):this._handleVector(e,t,r):this._handleArray(e,t):m.create(f.VALUE)}_handleVector(e,t,r){if(r==null)r=t;else if(r.getRowCount()!==t.getRowCount()||r.getColumnCount()!==t.getColumnCount())return m.create(f.REF);return e.isArray()?e.map(a=>this.binarySearch(a,t,r)):this.binarySearch(e,t,r)}_handleArray(e,t){const r=t.getRowCount(),a=t.getColumnCount();let i,o;return a>r?(i=t.slice([0,1]),o=t.slice([r-1,r])):(i=t.slice(void 0,[0,1]),o=t.slice(void 0,[a-1,a])),i==null||o==null?m.create(f.VALUE):e.isArray()?e.map(u=>this.binarySearch(u,i,o)):this.binarySearch(e,i,o)}}class Oo extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return m.create(f.REF);if(!t.isArray())return m.create(f.VALUE);const a=t.getRowCount(),i=t.getColumnCount();if(a!==1&&i!==1||r!=null&&r.isError())return m.create(f.NA);const o=this.getMatchTypeValue(r);return o==null?m.create(f.VALUE):e.isArray()?e.map(u=>this._handleSingleObject(u,t,o)):this._handleSingleObject(e,t,o)}_handleSingleObject(e,t,r){const a=this._getSearchModeValue(r),i=t.orderSearch(e,a);if(i==null)return m.create(f.NA);if(i instanceof m)return i;const o=t.getRowCount()===1?i.column+1:i.row+1;return C.create(o)}_getSearchModeValue(e){switch(e){case 1:return Pe.MIN;case 0:return Pe.NORMAL;case-1:return Pe.MAX}}}class Uo extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",5);h(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,t,r,a,i){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(a!=null&&a.isError())return a;if(i!=null&&i.isError())return i;if(!e.isReferenceObject())return m.create(f.VALUE);e=e;const o=e.getRowCount(),u=e.getColumnCount();t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),a?a.isReferenceObject()&&(a=a.toArrayValueObject()):a=C.create(o),i?i.isReferenceObject()&&(i=i.toArrayValueObject()):i=C.create(u);const c=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,i.isArray()?i.getRowCount():1),l=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,i.isArray()?i.getColumnCount():1);if(t=t,r=r,a=a,i=i,c===1&&l===1)return this._handleSingleObject(e,t,r,a,i);const d=J(c,l,t,m.create(f.NA)),g=J(c,l,r,m.create(f.NA)),p=J(c,l,a,m.create(f.NA)),_=J(c,l,i,m.create(f.NA));return d.mapValue((D,P,w)=>{const v=g.get(P,w),B=p.get(P,w),X=_.get(P,w);return D.isError()?D:v.isError()?v:B.isError()?B:X.isError()?X:this._handleSingleObject(e,D,v,B,X,!0)})}_handleSingleObject(e,t,r,a,i,o=!1){const{startRow:u,startColumn:c}=e.getRangeData(),l=this.getIndexNumValue(t),d=this.getIndexNumValue(r);if(typeof l!="number"||typeof d!="number")return m.create(f.VALUE);const g=u+l,p=c+d;if(g<0||p<0)return m.create(f.REF);const _=this.getIndexNumValue(a),D=this.getIndexNumValue(i);if(typeof _!="number"||typeof D!="number")return m.create(f.VALUE);if(_===0||D===0)return m.create(f.REF);const P=_>0?g+_-1:g+_+1,w=D>0?p+D-1:p+D+1;if(P<0||w<0)return m.create(f.REF);if(o)return m.create(f.VALUE);const v=g<P?g:P,B=p<w?p:w,X=g>P?g:P,ue=p>w?p:w,ge={startRow:v,startColumn:B,endRow:X,endColumn:ue};return this.createReferenceObject(e,ge)}}class Mo extends L{constructor(){super(...arguments);h(this,"minParams",0);h(this,"maxParams",1)}calculate(e){if(e==null)return C.create(this.row+1);if(e.isError())return e;if(!e.isArray())return m.create(f.NA);const t=e.getCurrentRow(),r=e.getRowCount(),a=[];for(let o=0;o<r;o++)a.push([C.create(t+o+1)]);const i={calculateValueList:a,rowCount:r,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(i)}}class Fo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return C.create(1);if(!e.isArray())return m.create(f.NA);const t=e.getRowCount();return C.create(t)}}class vo extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",4)}calculate(e,t,r,a){return e.isError()?e:t.isError()?t:t.isArray()?r.isError()?r:a!=null&&a.isError()?a:(a=a!=null?a:j.create(!0),rs(e)&&rs(a)&&r.isArray()?this._handleArrayColIndexNum(e,t,r,a):this._handleNonArrayColIndexNum(e,t,r,a)):m.create(f.VALUE)}_handleArrayColIndexNum(e,t,r,a){e=e.isArray()?e.getFirstCell():e;const i=this.getZeroOrOneByOneDefault(a);if(i==null)return m.create(f.VALUE);let o;const u=[];return r.iterator((c,l,d)=>{if(c==null)return o=m.create(f.VALUE),!1;const g=this._handleTableArray(e,t,c,i);if(g.isError())return o=g,!1;u[l]===void 0&&(u[l]=[]),u[l][d]=g}),o||pt(u,u.length,u[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(e,t,r,a){const i=Math.max(e.isArray()?e.getRowCount():1,a.isArray()?a.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,a.isArray()?a.getColumnCount():1),u=J(i,o,e),c=J(i,o,a);return u.map((l,d,g)=>{if(l.isError())return l;const p=c.get(d,g);if(p==null)return m.create(f.VALUE);if(p.isError())return p;const _=this.getZeroOrOneByOneDefault(p);return _==null?m.create(f.VALUE):this._handleTableArray(l,t,r,_)})}_handleTableArray(e,t,r,a){const i=this.getIndexNumValue(r);if(i instanceof m)return i;const o=t.slice(void 0,[0,1]);if(o==null)return m.create(f.VALUE);const u=t.slice(void 0,[i-1,i]);return u==null?m.create(f.REF):this._handleSingleObject(e,o,u,a)}_handleSingleObject(e,t,r,a){return a===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class Bo extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",6)}calculate(e,t,r,a,i,o){if(e.isError())return e;if(t.isError())return m.create(f.REF);if(!t.isArray())return m.create(f.VALUE);const u=t.getRowCount(),c=t.getColumnCount();if(u!==1&&c!==1)return m.create(f.VALUE);if(r.isError())return m.create(f.REF);if(!r.isArray())return m.create(f.VALUE);const l=r.getRowCount(),d=r.getColumnCount();if(u!==l&&c!==d)return m.create(f.VALUE);if(a!=null&&a.isError()||i!=null&&i.isError()||o!=null&&o.isError())return m.create(f.NA);a==null&&(a=m.create(f.NA));const g=this.getIndexNumValue(i||C.create(0));if(g instanceof m)return g;const p=this.getIndexNumValue(o||C.create(1));if(p instanceof m)return p;if(e.isArray()){let P;return u===1?P=r.slice([0,1]):P=r.slice(void 0,[0,1]),P==null?m.create(f.NA):e.map(w=>{const v=this._handleSingleObject(w,t,P,g,p);return v.isError()?a:v})}if(c===d&&u===l){const P=this._handleSingleObject(e,t,r,g,p);return P.isError()?a:P}let _=0;c===d&&(_=1);const D=this._handleExpandObject(e,t,r,g,p,_);return D==null?m.create(f.NA):D}_handleExpandObject(e,t,r,a,i,o=0){return(i===2||i===-2)&&a!==2?this.binarySearchExpand(e,t,r,o,this._getSearchModeValue(i)):a===2?this.fuzzySearchExpand(e,t,r,i!==-1,o):a===-1||a===1?this.orderSearchExpand(e,t,r,a===1?Pe.MAX:Pe.MIN,i===-1,o):this.equalSearchExpand(e,t,r,i!==-1,o)}_handleSingleObject(e,t,r,a,i){return(i===2||i===-2)&&a!==2?this.binarySearch(e,t,r,this._getSearchModeValue(i)):a===2?this.fuzzySearch(e,t,r,i!==-1):a===-1||a===1?this.orderSearch(e,t,r,a===1?Pe.MAX:Pe.MIN,i===-1):this.equalSearch(e,t,r,i!==-1)}_getSearchModeValue(e){return e===-2?We.MAX:We.MIN}}class To extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",4)}calculate(e,t,r,a){if(e.isError())return e;if(t.isError())return m.create(f.REF);if(!t.isArray())return m.create(f.VALUE);const i=t.getRowCount(),o=t.getColumnCount();if(i!==1&&o!==1)return m.create(f.VALUE);if(r!=null&&r.isError()||a!=null&&a.isError())return m.create(f.NA);const u=this.getIndexNumValue(r||C.create(0));if(u instanceof m)return u;const c=this.getIndexNumValue(a||C.create(1));return c instanceof m?c:e.isArray()?e.map(l=>this._handleSingleObject(l,t,u,c)):this._handleSingleObject(e,t,u,c)}_handleSingleObject(e,t,r,a){let i;if((a===2||a===-2)&&r!==2){const o=this._getSearchModeValue(a);i=t.binarySearch(e,o)}else if(r===2){const o=t.compare(e,U.EQUALS);let u;if(a!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return m.create(f.NA);i=t.getRowCount()===1?u.column:u.row}else if(r===-1||r===1){const o=t.orderSearch(e,r===1?Pe.MAX:Pe.MIN,a===-1);if(o==null)return m.create(f.NA);if(o instanceof m)return o;i=t.getRowCount()===1?o.column:o.row}else{const o=t.isEqual(e);let u;if(a!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return m.create(f.NA);i=t.getRowCount()===1?u.column:u.row}return i==null?m.create(f.NA):C.create(i+1)}_getSearchModeValue(e){return e===-2?We.MAX:We.MIN}}class ko extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255);h(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()&&(e=e.toArrayValueObject()),e=e,!e.isArray()){const u=e.convertToNumberObjectValue();return u.isError()?u:t[Math.trunc(+u.getValue())-1]||m.create(f.VALUE)}let r=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1;t.forEach((u,c)=>{if(u.isArray()){const l=u;r=Math.max(r,l.getRowCount()),a=Math.max(a,l.getColumnCount())}else r=Math.max(r,1),a=Math.max(a,1)});const i=J(r,a,e,m.create(f.NA)),o=t.map(u=>(u.isReferenceObject()&&(u=u.toArrayValueObject()),J(r,a,u,m.create(f.NA))));return i.map((u,c,l)=>{if(u.isError())return u;const d=u.convertToNumberObjectValue();if(d.isError())return d;const g=o[Math.trunc(+d.getValue())-1];let p=(g==null?void 0:g.get(c,l))||m.create(f.VALUE);return p!=null&&p.isNull()&&(p=C.create(0)),p})}}class Io extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",4);h(this,"needsReferenceObject",!0)}calculate(e,t,r,a){if(e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(a!=null&&a.isError())return a;let i=0,o=0;if(e.isValueObject())i=1,o=1;else if(e.isReferenceObject()){const{startRow:l,endRow:d,startColumn:g,endColumn:p}=e.getRangeData();i=d-l+1,o=p-g+1}else return m.create(f.VALUE);i===1&&o>1&&r==null?(r=t!=null?t:C.create(0),t=C.create(0)):(t=t!=null?t:C.create(0),r=r!=null?r:C.create(0)),a=a!=null?a:C.create(1),t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),a.isReferenceObject()&&(a=a.toArrayValueObject());const u=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1);if(t=t,r=r,a=a,u===1&&c===1)return this._calculateSingleCell(e,t,r,a);{const l=J(u,c,t,m.create(f.NA)),d=J(u,c,r,m.create(f.NA)),g=J(u,c,a,m.create(f.NA));return l.map((p,_,D)=>{const P=d.get(_,D)||ae.create(),w=g.get(_,D)||ae.create(),v=this._calculateSingleCell(e,p,P,w);return v.isReferenceObject()?v.toArrayValueObject().getFirstCell():v})}}_calculateSingleCell(e,t,r,a){if(t.isError())return t;const i=this._getNumberValue(t);if(i===void 0||i<0)return m.create(f.VALUE);if(r.isError())return r;const o=this._getNumberValue(r);if(o===void 0||o<0)return m.create(f.VALUE);if(a.isError())return a;const u=this._getAreaNumberValue(a);return u===void 0||u<1?m.create(f.VALUE):e.isReferenceObject()?this._getReferenceObject(e,i,o,u):e.isValueObject()&&i===1&&o===1?e:m.create(f.REF)}_getNumberValue(e){if(e==null)return 0;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getAreaNumberValue(e){if(e==null)return 1;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getReferenceObject(e,t,r,a){const{startRow:i,endRow:o,startColumn:u,endColumn:c}=e.getRangeData();let l=0,d=0,g=0,p=0;if(t===0?(l=i,d=o):l=d=i+t-1,r===0?(g=u,p=c):g=p=u+r-1,l>o||g>c)return m.create(f.REF);const _={startRow:l,startColumn:g,endRow:d,endColumn:p};return this.createReferenceObject(e,_)}}const oa=[[So,De.ADDRESS],[ko,De.CHOOSE],[Po,De.COLUMN],[Lo,De.COLUMNS],[Io,De.INDEX],[Vo,De.INDIRECT],[Uo,De.OFFSET],[Mo,De.ROW],[Fo,De.ROWS],[vo,De.VLOOKUP],[wo,De.LOOKUP],[Oo,De.MATCH],[xo,De.HLOOKUP],[Bo,De.XLOOKUP],[To,De.XMATCH]];class jo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.abs()}}class $o extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acos()}}class Yo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acosh()}}class Qo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:ns(t)):ns(e)}}function ns(n){let s=n.getValue();if(n.isBoolean()&&(s=s?1:0),!Number.isFinite(s))return m.create(f.VALUE);s=Number(s);let e=Math.atan(1/s);return s<0&&(e+=Math.PI),Number.isNaN(e)?m.create(f.VALUE):C.create(e)}class Ho extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:ss(t)):ss(e)}}function ss(n){let s=n.getValue();if(n.isBoolean()&&(s=s?1:0),!Number.isFinite(s))return m.create(f.VALUE);if(s=Number(s),Math.abs(s)<=1)return m.create(f.NUM);const e=1/2*Math.log((s+1)/(s-1));return Number.isNaN(e)?m.create(f.VALUE):C.create(e)}class zo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asin()}}class No extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asinh()}}class Wo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atan()}}class Go extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atan2(e))}}class Xo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atanh()}}class Ko extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r!=null&&r.isArray()?r.getRowCount():1),i=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r!=null&&r.isArray()?r.getColumnCount():1),o=J(a,i,e,m.create(f.NA)),u=J(a,i,t,m.create(f.NA)),c=r?J(a,i,r,m.create(f.NA)):[],l=o.map((d,g,p)=>{let _=u.get(g,p),D=r?c.get(g,p):{};if(d.isString()&&(d=d.convertToNumberObjectValue()),_.isString()&&(_=_.convertToNumberObjectValue()),r&&D.isString()&&(D=D.convertToNumberObjectValue()),d.isString()||_.isString()||r&&D.isString())return m.create(f.VALUE);if(d.isError())return d;if(_.isError())return _;if(r&&D.isError())return D;const P=Math.floor(+d.getValue()),w=Math.floor(+_.getValue()),v=r?Math.floor(+D.getValue()):0;if(P<0||P>=2**53||w<2||w>36||v<0)return m.create(f.NUM);let B=P.toString(w);return r&&B.length<v&&(B=new Array(v-B.length+1).join("0")+B),fe.create(B)});return l.getRowCount()===1&&l.getColumnCount()===1?l.getArrayValue()[0][0]:l}}class qo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.cos()}}class Zo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:as(t)):as(e)}}function as(n){let s=n.getValue();if(n.isBoolean()&&(s=s?1:0),!Number.isFinite(s))return m.create(f.VALUE);s=Number(s);const e=Math.cosh(s);return Number.isNaN(e)?m.create(f.VALUE):C.create(e)}class Jo extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:is(t))):is(e)}}function is(n){let s=n.getValue();return s=Number(s),Math.abs(s)>=2**27?m.create(f.NUM):s===0?m.create(f.DIV_BY_ZERO):n.tan().getReciprocal()}class eu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:os(t))):os(e)}}function os(n){let s=n.getValue();return s=Number(s),s===0?m.create(f.DIV_BY_ZERO):n.tanh().getReciprocal()}class tu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:us(t))):us(e)}}function us(n){let s=n.getValue();return s=Number(s),Math.abs(s)>=2**27?m.create(f.NUM):s===0?m.create(f.DIV_BY_ZERO):n.sin().getReciprocal()}class ru extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:cs(t))):cs(e)}}function cs(n){let s=n.getValue();return s=Number(s),s===0?m.create(f.DIV_BY_ZERO):!Number.isNaN(s)&&!Number.isFinite(Math.sinh(s))?C.create(0):n.sinh().getReciprocal()}var oe=(n=>(n.ABS="ABS",n.ACOS="ACOS",n.ACOSH="ACOSH",n.ACOT="ACOT",n.ACOTH="ACOTH",n.AGGREGATE="AGGREGATE",n.ARABIC="ARABIC",n.ASIN="ASIN",n.ASINH="ASINH",n.ATAN="ATAN",n.ATAN2="ATAN2",n.ATANH="ATANH",n.BASE="BASE",n.CEILING="CEILING",n.CEILING_MATH="CEILING.MATH",n.CEILING_PRECISE="CEILING.PRECISE",n.COMBIN="COMBIN",n.COMBINA="COMBINA",n.COS="COS",n.COSH="COSH",n.COT="COT",n.COTH="COTH",n.CSC="CSC",n.CSCH="CSCH",n.DECIMAL="DECIMAL",n.DEGREES="DEGREES",n.EVEN="EVEN",n.EXP="EXP",n.FACT="FACT",n.FACTDOUBLE="FACTDOUBLE",n.FLOOR="FLOOR",n.FLOOR_MATH="FLOOR.MATH",n.FLOOR_PRECISE="FLOOR.PRECISE",n.GCD="GCD",n.INT="INT",n.ISO_CEILING="ISO.CEILING",n.LCM="LCM",n.LET="LET",n.LN="LN",n.LOG="LOG",n.LOG10="LOG10",n.MDETERM="MDETERM",n.MINVERSE="MINVERSE",n.MMULT="MMULT",n.MOD="MOD",n.MROUND="MROUND",n.MULTINOMIAL="MULTINOMIAL",n.MUNIT="MUNIT",n.ODD="ODD",n.PI="PI",n.POWER="POWER",n.PRODUCT="PRODUCT",n.QUOTIENT="QUOTIENT",n.RADIANS="RADIANS",n.RAND="RAND",n.RANDARRAY="RANDARRAY",n.RANDBETWEEN="RANDBETWEEN",n.ROMAN="ROMAN",n.ROUND="ROUND",n.ROUNDDOWN="ROUNDDOWN",n.ROUNDUP="ROUNDUP",n.SEC="SEC",n.SECH="SECH",n.SERIESSUM="SERIESSUM",n.SEQUENCE="SEQUENCE",n.SIGN="SIGN",n.SIN="SIN",n.SINH="SINH",n.SQRT="SQRT",n.SQRTPI="SQRTPI",n.SUBTOTAL="SUBTOTAL",n.SUM="SUM",n.SUMIF="SUMIF",n.SUMIFS="SUMIFS",n.SUMPRODUCT="SUMPRODUCT",n.SUMSQ="SUMSQ",n.SUMX2MY2="SUMX2MY2",n.SUMX2PY2="SUMX2PY2",n.SUMXMY2="SUMXMY2",n.TAN="TAN",n.TANH="TANH",n.TRUNC="TRUNC",n))(oe||{});class nu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.mod(t))}}class su extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.pow(t))}}class au extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(1);for(let r=0;r<e.length;r++){let a=e[r];if(!a.isNull()){if(a.isString()&&(a=a.convertToNumberObjectValue()),a.isArray()&&(a=this._multiplyArray(a)),a.isError())return a;if(t=t.multiply(a),t.isError())return t}}return t}_multiplyArray(e){let t=C.create(1);return e.iterator(r=>{if(r==null||r.isString()||r.isBoolean()||r.isNull())return!0;if(r.isError())return t=r,!1;t=t.multiply(r)}),t}}class iu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.sin()}}class ou extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.sinh()}}class uu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255);h(this,"needsReferenceObject",!0)}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()){const r=[];return e.iterator((a,i,o)=>{r[i]==null&&(r[i]=[]),r[i][o]=this._handleSingleObject(a,...t)}),pt(r,r.length,r[0].length)}return this._handleSingleObject(e,...t)}_handleSingleObject(e,...t){const r=this._getIndexNumValue(e);let a;if(r instanceof m)return r;switch(r){case 1:a=this._average(!1,...t);break;case 2:a=this._count(!1,...t);break;case 3:a=this._counta(!1,...t);break;case 4:a=this._max(!1,...t);break;case 5:a=this._min(!1,...t);break;case 6:a=this._product(!1,...t);break;case 7:a=this._stdev(!1,...t);break;case 8:a=this._stdevp(!1,...t);break;case 9:a=this._sum(!1,...t);break;case 10:a=this._var(!1,...t);break;case 11:a=this._varp(!1,...t);break;case 101:a=this._average(!0,...t);break;case 102:a=this._count(!0,...t);break;case 103:a=this._counta(!0,...t);break;case 104:a=this._max(!0,...t);break;case 105:a=this._min(!0,...t);break;case 106:a=this._product(!0,...t);break;case 107:a=this._stdev(!0,...t);break;case 108:a=this._stdevp(!0,...t);break;case 109:a=this._sum(!0,...t);break;case 110:a=this._var(!0,...t);break;case 111:a=this._varp(!0,...t);break;default:a=m.create(f.VALUE)}return a}_getIndexNumValue(e){const t=e?Number(e.getValue()):0;if(Number.isNaN(t))return m.create(f.VALUE);const r=Math.floor(t);return r>=1&&r<=11||r>=101&&r<=111?r:m.create(f.VALUE)}_average(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.mean()}_count(e,...t){let r=C.create(0);for(let a=0;a<t.length;a++){const i=t[a];if(!i.isReferenceObject())return m.create(f.VALUE);const o=i.getRowData();i.iterator((u,c)=>{if(e&&this._isRowHidden(o,c))return!0;u!=null&&u.isNumber()&&(r=r.plusBy(1))})}return r}_counta(e,...t){let r=C.create(0);for(let a=0;a<t.length;a++){const i=t[a];if(!i.isReferenceObject())return m.create(f.VALUE);const o=i.getRowData();i.iterator((u,c)=>{if(e&&this._isRowHidden(o,c)||u==null||u.isNull())return!0;r=r.plusBy(1)})}return r}_max(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?C.create(0):r.max()}_min(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?C.create(0):r.min()}_product(e,...t){const r=this._flattenRefArray(e,...t);if(r.isError())return r;if(this._isBlankArrayObject(r))return C.create(0);let a=C.create(1);return r.iterator(i=>{a=a.multiply(i)}),a}_stdev(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?m.create(f.DIV_BY_ZERO):r.std(1)}_stdevp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?m.create(f.DIV_BY_ZERO):r.std()}_sum(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.sum()}_var(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?m.create(f.DIV_BY_ZERO):r.var(1)}_varp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?m.create(f.DIV_BY_ZERO):r.var()}_flattenRefArray(e,...t){const r=[];r[0]=[];for(let a=0;a<t.length;a++){const i=t[a];if(i.isError())return i;if(!i.isReferenceObject())return m.create(f.VALUE);const o=i.getRowData();let u;if(i.iterator((c,l)=>{if(e&&this._isRowHidden(o,l)||c==null||c.isNull()||c.isString()||c.isBoolean())return!0;if(c.isError())return u=c,!1;r[0].push(c)}),u!=null&&u.isError())return u}return pt(r,1,r[0].length)}_isRowHidden(e,t){const r=e[t];return r?r.hd===b.BooleanNumber.TRUE:!1}_isBlankArrayObject(e){return e.getArrayValue()[0].length===0}}class cu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0);for(let r=0;r<e.length;r++){let a=e[r];if(a.isString()&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()&&(a=a.sum()),t=t.plus(a),t.isError())return t}return t}}class lu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:!e.isArray()||r&&!r.isArray()?m.create(f.VALUE):t.isArray()?t.map(a=>this._handleSingleObject(e,a,r)):this._handleSingleObject(e,t,r)}_handleSingleObject(e,t,r){let a=Ur(e,t);const[,i]=Yt(`${t.getValue()}`);a=Mr(a,e,i);const o=r?r.slice([0,e.getRowCount()],[0,e.getColumnCount()]):e;return o?o.pick(a).sum():m.create(f.VALUE)}}class fu extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(!e.isArray()||t.length<2||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return m.create(f.VALUE);const{maxRowLength:r,maxColumnLength:a}=Qt(t),i=Ht(t,e,r,a);if(i)return i;const o=zt(t,r,a,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>e.pick(o).sum())),a={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(a)}}class hu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tan()}}class mu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tanh()}}const ua=[[jo,oe.ABS],[$o,oe.ACOS],[Yo,oe.ACOSH],[Qo,oe.ACOT],[Ho,oe.ACOTH],[zo,oe.ASIN],[No,oe.ASINH],[Wo,oe.ATAN],[Go,oe.ATAN2],[Xo,oe.ATANH],[Ko,oe.BASE],[qo,oe.COS],[Zo,oe.COSH],[Jo,oe.COT],[eu,oe.COTH],[tu,oe.CSC],[ru,oe.CSCH],[nu,oe.MOD],[su,oe.POWER],[au,oe.PRODUCT],[iu,oe.SIN],[ou,oe.SINH],[uu,oe.SUBTOTAL],[cu,oe.SUM],[lu,oe.SUMIF],[fu,oe.SUMIFS],[hu,oe.TAN],[mu,oe.TANH]];class du extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2);h(this,"_compareType",U.EQUALS)}setCompareType(e){this._compareType=e}calculate(e,t){return e.isError()?e:t.isError()?t:e.compare(t,this._compareType)}}class _n extends Ke{constructor(e){super("");h(this,"_values",[]);this._values=e}static create(e){return new _n(e)}isCube(){return!0}sum(){const e=C.create(0);return this._values.forEach(t=>{e.plus(t.sum())}),e}max(){let e=C.create(Number.NEGATIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isLessThan(r)&&(e=r)}),e}min(){let e=C.create(Number.POSITIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isGreaterThan(r)&&(e=r)}),e}count(){const e=C.create(0);return this._values.forEach(t=>{e.plus(t.count())}),e}countA(){const e=C.create(0);return this._values.forEach(t=>{e.plus(t.countA())}),e}countBlank(){const e=C.create(0);return this._values.forEach(t=>{e.plus(t.countBlank())}),e}}class gu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const a=e[r];if(a.isError())return a;if(!a.isArray())return m.create(f.VALUE);t.push(a)}return _n.create(t)}}class pu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:!t.isArray()&&t.getValue()===0?m.create(f.DIV_BY_ZERO):e.divided(t)}}var Se=(n=>(n.COMPARE="COMPARE",n.DIVIDED="DIVIDED",n.MINUS="MINUS",n.MULTIPLY="MULTIPLY",n.PLUS="PLUS",n.UNION="UNION",n.CUBE="CUBE",n))(Se||{});class Ru extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.minus(t)}}class _u extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.multiply(t)}}class Eu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.plus(t)}}const ca=[[du,Se.COMPARE],[pu,Se.DIVIDED],[Ru,Se.MINUS],[_u,Se.MULTIPLY],[Eu,Se.PLUS],[gu,Se.CUBE]];class yu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0),r=C.create(0);for(let a=0;a<e.length;a++){let i=e[a];if((i.isString()||i.isBoolean())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){if(t=t.plus(i.sum()),t.isError())return t;r=r.plus(i.count())}else i.isNull()||(t=t.plus(i),r=r.plus(C.create(1)))}return t.divided(r)}}class Cu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0);for(let r=0;r<e.length;r++){const a=e[r];a.isError()||(a.isArray()?t=t.plus(a.count()):a.isString()?a.convertToNumberObjectValue().isError()||(t=t.plus(C.create(1))):a.isNull()||(t=t.plus(C.create(1))))}return t}}class Du extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0);for(let r=0;r<e.length;r++){let a=e[r];if(a.isError()){t=t.plus(C.create(1));continue}a.isArray()?(a=a.countA(),t=t.plus(a)):a.isNull()||(t=t.plus(C.create(1)))}return t}}var le=(n=>(n.AVEDEV="AVEDEV",n.AVERAGE="AVERAGE",n.AVERAGEA="AVERAGEA",n.AVERAGEIF="AVERAGEIF",n.AVERAGEIFS="AVERAGEIFS",n.BETA_DIST="BETA.DIST",n.BETA_INV="BETA.INV",n.BINOM_DIST="BINOM.DIST",n.BINOM_DIST_RANGE="BINOM.DIST.RANGE",n.BINOM_INV="BINOM.INV",n.CHISQ_DIST="CHISQ.DIST",n.CHISQ_DIST_RT="CHISQ.DIST.RT",n.CHISQ_INV="CHISQ.INV",n.CHISQ_INV_RT="CHISQ.INV.RT",n.CHISQ_TEST="CHISQ.TEST",n.CONFIDENCE_NORM="CONFIDENCE.NORM",n.CONFIDENCE_T="CONFIDENCE.T",n.CORREL="CORREL",n.COUNT="COUNT",n.COUNTA="COUNTA",n.COUNTBLANK="COUNTBLANK",n.COUNTIF="COUNTIF",n.COUNTIFS="COUNTIFS",n.COVARIANCE_P="COVARIANCE.P",n.COVARIANCE_S="COVARIANCE.S",n.DEVSQ="DEVSQ",n.EXPON_DIST="EXPON.DIST",n.F_DIST="F.DIST",n.F_DIST_RT="F.DIST.RT",n.F_INV="F.INV",n.F_INV_RT="F.INV.RT",n.F_TEST="F.TEST",n.FISHER="FISHER",n.FISHERINV="FISHERINV",n.FORECAST="FORECAST",n.FORECAST_ETS="FORECAST.ETS",n.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",n.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",n.FORECAST_ETS_STAT="FORECAST.ETS.STAT",n.FORECAST_LINEAR="FORECAST.LINEAR",n.FREQUENCY="FREQUENCY",n.GAMMA="GAMMA",n.GAMMA_DIST="GAMMA.DIST",n.GAMMA_INV="GAMMA.INV",n.GAMMALN="GAMMALN",n.GAMMALN_PRECISE="GAMMALN.PRECISE",n.GAUSS="GAUSS",n.GEOMEAN="GEOMEAN",n.GROWTH="GROWTH",n.HARMEAN="HARMEAN",n.HYPGEOM_DIST="HYPGEOM.DIST",n.INTERCEPT="INTERCEPT",n.KURT="KURT",n.LARGE="LARGE",n.LINEST="LINEST",n.LOGEST="LOGEST",n.LOGNORM_DIST="LOGNORM.DIST",n.LOGNORM_INV="LOGNORM.INV",n.MAX="MAX",n.MAXA="MAXA",n.MAXIFS="MAXIFS",n.MEDIAN="MEDIAN",n.MIN="MIN",n.MINA="MINA",n.MINIFS="MINIFS",n.MODE_MULT="MODE.MULT",n.MODE_SNGL="MODE.SNGL",n.NEGBINOM_DIST="NEGBINOM.DIST",n.NORM_DIST="NORM.DIST",n.NORM_INV="NORM.INV",n.NORM_S_DIST="NORM.S.DIST",n.NORM_S_INV="NORM.S.INV",n.PEARSON="PEARSON",n.PERCENTILE_EXC="PERCENTILE.EXC",n.PERCENTILE_INC="PERCENTILE.INC",n.PERCENTRANK_EXC="PERCENTRANK.EXC",n.PERCENTRANK_INC="PERCENTRANK.INC",n.PERMUT="PERMUT",n.PERMUTATIONA="PERMUTATIONA",n.PHI="PHI",n.POISSON_DIST="POISSON.DIST",n.PROB="PROB",n.QUARTILE_EXC="QUARTILE.EXC",n.QUARTILE_INC="QUARTILE.INC",n.RANK_AVG="RANK.AVG",n.RANK_EQ="RANK.EQ",n.RSQ="RSQ",n.SKEW="SKEW",n.SKEW_P="SKEW.P",n.SLOPE="SLOPE",n.SMALL="SMALL",n.STANDARDIZE="STANDARDIZE",n.STDEV_P="STDEV.P",n.STDEV_S="STDEV.S",n.STDEVA="STDEVA",n.STDEVPA="STDEVPA",n.STEYX="STEYX",n.T_DIST="T.DIST",n.T_DIST_2T="T.DIST.2T",n.T_DIST_RT="T.DIST.RT",n.T_INV="T.INV",n.T_INV_2T="T.INV.2T",n.T_TEST="T.TEST",n.TREND="TREND",n.TRIMMEAN="TRIMMEAN",n.VAR_P="VAR.P",n.VAR_S="VAR.S",n.VARA="VARA",n.VARPA="VARPA",n.WEIBULL_DIST="WEIBULL.DIST",n.Z_TEST="Z.TEST",n))(le||{});class bu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let a=e[r];if(!a.isNull()){if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isArray()&&(a=a.max()),a.isError())return a;t=this._validator(t,a)}}return t.getValue()===Number.NEGATIVE_INFINITY?C.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class Su extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let a=e[r];if(!a.isNull()){if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isArray()&&(a=a.min()),a.isError())return a;t=this._validator(t,a)}}return t.getValue()===Number.POSITIVE_INFINITY?C.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class Au extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std(1)}}class Pu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std()}}class Lu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var(1)}}class xu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var()}}class Vu extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return m.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return m.create(f.VALUE);const{maxRowLength:r,maxColumnLength:a}=Qt(t),i=Ht(t,e,r,a);if(i)return i;const o=zt(t,r,a,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?de.create("0"):u.max()})),a={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(a)}}class wu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0),r=C.create(0);for(let a=0;a<e.length;a++){let i=e[a];if((i.isString()||i.isBoolean())&&(i=i.convertToNumberObjectValue()),i.isError())return i;if(i.isArray()){if(i.iterator(o=>{if(o==null||o.isNull())return!0;if(o.isString()&&(o=o.convertToNumberObjectValue(),o.isError()&&(o=C.create(0))),o.isBoolean()&&(o=o.convertToNumberObjectValue()),o.isError())return t=o,!1;t=t.plus(o),r=r.plus(C.create(1))}),t.isError())return t}else i.isNull()||(t=t.plus(i),r=r.plus(C.create(1)))}return t.divided(r)}}class Ou extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return m.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return m.create(f.VALUE);const{maxRowLength:r,maxColumnLength:a}=Qt(t),i=Ht(t,e,r,a);if(i)return i;const o=zt(t,r,a,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?de.create("0"):u.min()})),a={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(a)}}class Uu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",3);h(this,"needsReferenceObject",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:(e.isReferenceObject()&&(e=e.toArrayValueObject()),e.isArray()||(e=pt([[e]],1,1)),t.isReferenceObject()&&(t=t.toArrayValueObject()),r&&!(r!=null&&r.isReferenceObject())?m.create(f.NA):(t=t,t.isArray()?t.map(a=>this._handleSingleObject(e,a,r)):this._handleSingleObject(e,t,r)))}_handleSingleObject(e,t,r){let a=Ur(e,t);const[,i]=Yt(`${t.getValue()}`);a=Mr(a,e,i);let o=r?this._createRangeReferenceObject(r,e):e;if(!o)return m.create(f.VALUE);if(o.isError())return o;o.isReferenceObject()&&(o=o.toArrayValueObject()),o=o;const u=o.pick(a),c=u.sum(),l=u.count();return c.divided(l)}_createRangeReferenceObject(e,t){const r=e.getRowCount(),a=e.getColumnCount(),i=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1;if(r===i&&a===o)return e;const{startRow:u,startColumn:c}=e.getRangeData(),l={startRow:u,startColumn:c,endRow:u+i-1,endColumn:c+o-1};return this.createReferenceObject(e,l)}}class Mu extends L{constructor(){super(...arguments);h(this,"minParams",3);h(this,"maxParams",255)}calculate(e,...t){if(e.isError())return m.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return m.create(f.VALUE);const{maxRowLength:r,maxColumnLength:a}=Qt(t),i=Ht(t,e,r,a);if(i)return i;const o=zt(t,r,a,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(i=>i.map(o=>{const u=e.pick(o),c=u.sum(),l=u.count();return c.divided(l)})),a={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(a)}}class Fu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){return e.isError()||t.isError()?m.create(f.NA):e.isArray()?t.isArray()?t.mapValue(r=>this._handleSingleObject(e,r)):this._handleSingleObject(e,t):m.create(f.VALUE)}_handleSingleObject(e,t){let r=Ur(e,t);const[,a]=Yt(`${t.getValue()}`);r=Mr(r,e,a);const i=e.pick(r);return this._countA(i)}_countA(e){let t=C.create(0);return e.iterator(r=>{if(r==null)return!0;t=t.plusBy(1)}),t}}class vu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",255)}calculate(...e){if(e.length%2!==0||e.some((o,u)=>u%2===0&&!o.isArray()))return m.create(f.VALUE);const{maxRowLength:t,maxColumnLength:r}=Qt(e),a=Ht(e,e[0],t,r);if(a)return a;const i=zt(e,t,r,!0);return this._aggregateResults(i)}_aggregateResults(e){const t=e.map(a=>a.map(i=>Bu(i))),r={calculateValueList:t,rowCount:t.length,columnCount:t[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return de.create(r)}}function Bu(n){let s=0;return n.iterator(e=>{e!=null&&e.isBoolean()&&e.getValue()===!0&&s++}),C.create(s)}class Tu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.getValue()===""||e.isNull()?C.create(1):e.isArray()?e.countBlank():C.create(0)}}class ku extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let a=e[r];if(!a.isNull()){if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()&&a.iterator(i=>{if((i==null||i.isNull()||i.isString())&&(i=C.create(0)),i.isBoolean()&&(i=i.convertToNumberObjectValue()),i.isError())return t=i,!1;t=this._validator(t,i)}),t.isError())return t;t=this._validator(t,a)}}return t.getValue()===Number.POSITIVE_INFINITY?C.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class Iu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let a=e[r];if(!a.isNull()){if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()&&a.iterator(i=>{if((i==null||i.isNull()||i.isString())&&(i=C.create(0)),i.isBoolean()&&(i=i.convertToNumberObjectValue()),i.isError())return t=i,!1;t=this._validator(t,i)}),t.isError())return t;t=this._validator(t,a)}}return t.getValue()===Number.NEGATIVE_INFINITY?C.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class ju extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=C.create(0),r=C.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(u=$u(u),u.isError())return u;if(e[o]=u,t=t.plus(u.sum()),t.isError())return t;r=r.plus(u.count())}else u.isNull()||(t=t.plus(u),r=r.plus(C.create(1)))}if(r.getValue()===0)return m.create(f.NUM);const a=t.divided(r);if(a.isError())return a;let i=C.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(i=i.plus(u.minus(a).abs().sum()),i.isError())return i}else u.isNull()||(i=i.plus(u.minus(a).abs()))}return i.divided(r)}}function $u(n){const s=[];s[0]=[];let e=null;return n.iterator((t,r,a)=>{if(t!=null&&t.isError())return e=t,!1;t!=null&&t.isNumber()&&s[0].push(t)}),e||pt(s,1,s[0].length)}const la=[[ju,le.AVEDEV],[yu,le.AVERAGE],[wu,le.AVERAGEA],[Uu,le.AVERAGEIF],[Mu,le.AVERAGEIFS],[Cu,le.COUNT],[Du,le.COUNTA],[Tu,le.COUNTBLANK],[Fu,le.COUNTIF],[vu,le.COUNTIFS],[bu,le.MAX],[Iu,le.MAXA],[Vu,le.MAXIFS],[Su,le.MIN],[ku,le.MINA],[Ou,le.MINIFS],[Qs,le.STDEV_P],[Hs,le.STDEV_S],[Au,le.STDEVA],[Pu,le.STDEVPA],[zs,le.VAR_P],[Ns,le.VAR_S],[Lu,le.VARA],[xu,le.VARPA]];class Yu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t=0,r=0;e.forEach(i=>{if(i.isArray()){const o=i;t=Math.max(t,o.getRowCount()),r=Math.max(r,o.getColumnCount())}else t=Math.max(t,1),r=Math.max(r,1)});let a=null;for(const i of e)a=J(t,r,i,m.create(f.NA)).mapValue((u,c,l)=>{const d=a&&a.get(c,l);if(d!=null&&d.isError())return d;if(u.isError())return u;let g=d==null?void 0:d.getValue(),p=u==null?void 0:u.getValue();d!=null&&d.isBoolean()&&(g=`${g}`.toLocaleUpperCase()),u!=null&&u.isBoolean()&&(p=`${p}`.toLocaleUpperCase());const _=d!=null&&d.isNull()?"":g!=null?g:"",D=u!=null&&u.isNull()?"":p!=null?p:"";return fe.create(`${_}${D}`)});return a||m.create(f.VALUE)}}var Ne=(n=>(n.ASC="ASC",n.ARRAYTOTEXT="ARRAYTOTEXT",n.BAHTTEXT="BAHTTEXT",n.CHAR="CHAR",n.CLEAN="CLEAN",n.CODE="CODE",n.CONCAT="CONCAT",n.CONCATENATE="CONCATENATE",n.DBCS="DBCS",n.DOLLAR="DOLLAR",n.EXACT="EXACT",n.FIND="FIND",n.FINDB="FINDB",n.FIXED="FIXED",n.LEFT="LEFT",n.LEFTB="LEFTB",n.LEN="LEN",n.LENB="LENB",n.LOWER="LOWER",n.MID="MID",n.MIDB="MIDB",n.NUMBERVALUE="NUMBERVALUE",n.PHONETIC="PHONETIC",n.PROPER="PROPER",n.REPLACE="REPLACE",n.REPLACEB="REPLACEB",n.REPT="REPT",n.RIGHT="RIGHT",n.RIGHTB="RIGHTB",n.SEARCH="SEARCH",n.SEARCHB="SEARCHB",n.SUBSTITUTE="SUBSTITUTE",n.T="T",n.TEXT="TEXT",n.TEXTAFTER="TEXTAFTER",n.TEXTBEFORE="TEXTBEFORE",n.TEXTJOIN="TEXTJOIN",n.TEXTSPLIT="TEXTSPLIT",n.TRIM="TRIM",n.UNICHAR="UNICHAR",n.UNICODE="UNICODE",n.UPPER="UPPER",n.VALUE="VALUE",n.VALUETOTEXT="VALUETOTEXT",n.CALL="CALL",n.EUROCONVERT="EUROCONVERT",n.REGISTER_ID="REGISTER.ID",n))(Ne||{});class Qu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return C.create(0);if(e.isNumber()){const t=e.getValue(),r=vs(t).toString();return C.create(r.length)}if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString();return C.create(t.length)}return m.create(f.VALUE)}}function Hu(n){let s=0;for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);t>=12352&&t<=12543||t>=19968&&t<=40959||t>=44032&&t<=55215?s+=2:s+=1}return s}class zu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return C.create(0);if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString(),r=Hu(t);return C.create(r)}return m.create(f.VALUE)}}const Nu=(n,s)=>Vr.format(n,s);class Wu extends L{constructor(){super(...arguments);h(this,"minParams",2);h(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),i=J(r,a,e),o=J(r,a,t);return i.map((u,c,l)=>{if(u.isError()||u.isString()||u.isBoolean())return u;let d=o.get(c,l)||fe.create(" ");if(d.isError())return d;if(d.isBoolean())return m.create(f.VALUE);d.isNull()&&(d=fe.create(" "));const g=`${d.getValue()}`;u.isNull()&&(u=C.create(0));const p=u.getValue(),_=Nu(g,p);return fe.create(_)})}}class Gu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return fe.create("");if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString().toLowerCase();return fe.create(t)}return m.create(f.VALUE)}}class Xu extends L{constructor(){super(...arguments);h(this,"minParams",1);h(this,"maxParams",255)}calculate(...e){let t="",r=null;for(const a of e)if(a.isArray()){if(a.iterator(i=>{if(i==null||i.isNull())return!0;if(i.isError())return r=i,!1;i.isBoolean()?t+=`${i.getValue()}`.toLocaleUpperCase():(i.isString()||i.isNumber())&&(t+=i.getValue())}),r)return r}else!a.isError()&&!a.isNull()&&(t+=a.getValue());return fe.create(t)}}const fa=[[Xu,Ne.CONCAT],[Yu,Ne.CONCATENATE],[Qu,Ne.LEN],[zu,Ne.LENB],[Wu,Ne.TEXT],[Gu,Ne.LOWER]],ha=[];var ma=(n=>n)(ma||{});const da=[];var ga=(n=>(n.ENCODEURL="ENCODEURL",n.FILTERXML="FILTERXML",n.WEBSERVICE="WEBSERVICE",n))(ga||{});function Ku(n,s,e,t,r,a,i){var d;const o=(i==null?void 0:i.f)||"",u=(i==null?void 0:i.si)||"",c=b.isFormulaString(o),l=b.isFormulaId(u);if(c&&l)n.setValue(r,a,{f:o,si:u}),e.set(u,{f:o,r,c:a}),s.setValue(r,a,{f:o,si:u});else if(c&&!l)n.setValue(r,a,{f:o}),s.setValue(r,a,{f:o});else if(!c&&l)n.setValue(r,a,{f:"",si:u});else if(!c&&!l&&n.getValue(r,a)){const g=n.getValue(r,a),p=(g==null?void 0:g.f)||"",_=(g==null?void 0:g.si)||"";if(b.isFormulaString(p)&&b.isFormulaId(_)){const D=(d=e.get(_))==null?void 0:d.f;D?t.set(_,D):t.set(_,p)}n.realDeleteValue(r,a),s.setValue(r,a,null)}}function qu(n,s,e,t){const r=n==null?void 0:n.getValue(e,t);if(r==null)return!0;const{startRow:a,startColumn:i,endRow:o,endColumn:u}=r;for(let c=a;c<=o;c++)for(let l=i;l<=u;l++)s.realDeleteValue(c,l)}var Zu=Object.defineProperty,Ju=Object.getOwnPropertyDescriptor,ec=(n,s,e,t)=>{for(var r=t>1?void 0:t?Ju(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Zu(s,e,r),r},ls=(n,s)=>(e,t)=>s(e,t,n);exports.FormulaDataModel=class extends b.Disposable{constructor(e,t){super();h(this,"_formulaData",{});h(this,"_arrayFormulaRange",{});h(this,"_arrayFormulaCellData",{});this._univerInstanceService=e,this._lexerTreeBuilder=t,this.initFormulaData()}clearPreviousArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(a=>{var c,l,d,g;const i=r[a],o=(l=(c=this._arrayFormulaRange)==null?void 0:c[t])==null?void 0:l[a];if(o==null)return!0;let u=new b.ObjectMatrix;((d=this._arrayFormulaCellData[t])==null?void 0:d[a])!=null&&(u=new b.ObjectMatrix((g=this._arrayFormulaCellData[t])==null?void 0:g[a])),i.forValue((p,_)=>{var X;const D=(X=o==null?void 0:o[p])==null?void 0:X[_];if(D==null)return!0;const{startRow:P,startColumn:w,endRow:v,endColumn:B}=D;for(let ue=P;ue<=v;ue++)for(let ge=w;ge<=B;ge++)u.setValue(ue,ge,null)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][a]=u.getData())})})}mergeArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]==null&&(this._arrayFormulaRange[t]={}),this._arrayFormulaCellData[t]==null&&(this._arrayFormulaCellData[t]={}),Object.keys(r).forEach(a=>{var c,l;const i=r[a],o=new b.ObjectMatrix((c=this._arrayFormulaRange[t])==null?void 0:c[a]),u=new b.ObjectMatrix((l=this._arrayFormulaCellData[t])==null?void 0:l[a]);i.forValue((d,g)=>{const p=o==null?void 0:o.getValue(d,g);if(p==null)return!0;const{startRow:_,startColumn:D,endRow:P,endColumn:w}=p;for(let v=_;v<=P;v++)for(let B=D;B<=w;B++)u.setValue(v,B,null)}),i.forValue((d,g,p)=>{u.setValue(d,g,p)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][a]=u.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(e){this._formulaData=e}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(e){this._arrayFormulaRange=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}mergeArrayFormulaRange(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]||(this._arrayFormulaRange[t]={}),Object.keys(r).forEach(a=>{var u;const i=new b.ObjectMatrix(r[a]),o=new b.ObjectMatrix((u=this._arrayFormulaRange[t])==null?void 0:u[a]);i.forValue((c,l,d)=>{o.setValue(c,l,d)}),this._arrayFormulaRange[t]&&(this._arrayFormulaRange[t][a]=o.getData())})})}mergeFormulaData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r!==void 0){if(r===null){delete this._formulaData[t];return}this._formulaData[t]||(this._formulaData[t]={}),Object.keys(r).forEach(a=>{var c,l;const i=r[a];if(i===void 0)return;if(i===null){(c=this._formulaData[t])==null||delete c[a];return}const o=new b.ObjectMatrix(i),u=new b.ObjectMatrix(((l=this._formulaData[t])==null?void 0:l[a])||{});o.forValue((d,g,p)=>{p==null?u.realDeleteValue(d,g):u.setValue(d,g,p)}),this._formulaData[t][a]=u.clone()})}})}deleteArrayFormulaRange(e,t,r,a){var u;const i=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(i==null)return;const o=new b.ObjectMatrix(i);o.getValue(r,a)&&(o.realDeleteValue(r,a),this._arrayFormulaRange[e]&&(this._arrayFormulaRange[e][t]=o.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET).length===0)return;const t=this._univerInstanceService.getCurrentUnitForType(b.UniverInstanceType.UNIVER_SHEET),r=t.getUnitId();this._formulaData[r]={},t.getSheets().forEach(i=>{const o=i.getCellMatrix(),u=i.getSheetId();pa(this._formulaData,r,u,o)})}getCalculateData(){const e=this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET),t={},r={};for(const a of e){const i=a.getUnitId(),o=a.getSheets(),u={},c={};for(const l of o){const d=l.getSheetId(),g=l.getConfig();u[d]={cellData:new b.ObjectMatrix(g.cellData),rowCount:g.rowCount,columnCount:g.columnCount,rowData:g.rowData,columnData:g.columnData},c[l.getName()]=l.getSheetId()}t[i]=u,r[i]=c}return{allUnitData:t,unitSheetNameMap:r}}updateFormulaData(e,t,r){const a=new b.ObjectMatrix(r),i=this.getFormulaIdMap(e,t),o=new Map,u=this._formulaData;u[e]==null&&(u[e]={});const c=u[e];c[t]==null&&(c[t]={});const l=new b.ObjectMatrix(c[t]||{}),d=new b.ObjectMatrix;return a.forValue((g,p,_)=>{Ku(l,d,i,o,g,p,_)}),l.forValue((g,p,_)=>{const D=(_==null?void 0:_.f)||"",P=(_==null?void 0:_.si)||"";if(b.isFormulaId(P)){const w=i.get(P),v=o.get(P);if(w&&!b.isFormulaString(D)){const B=w.f,X=p-w.c,ue=g-w.r;l.setValue(g,p,{f:B,si:P,x:X,y:ue}),d.setValue(g,p,{f:B,si:P,x:X,y:ue})}else if(typeof v=="string"){const B=(_==null?void 0:_.x)||0,X=(_==null?void 0:_.y)||0,ue=this._lexerTreeBuilder.moveFormulaRefOffset(v,B,X);o.set(P,{r:g,c:p,f:ue}),l.setValue(g,p,{f:ue,si:P}),d.setValue(g,p,{f:ue,si:P})}else if(typeof v=="object"){const B=p-v.c,X=g-v.r;l.setValue(g,p,{f:v.f,si:P,x:B,y:X}),d.setValue(g,p,{f:v.f,si:P,x:B,y:X})}}}),d.clone()}updateArrayFormulaRange(e,t,r){var u;const a=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(!a)return;const i=new b.ObjectMatrix(a);new b.ObjectMatrix(r).forValue((c,l,d)=>{i.realDeleteValue(c,l)})}updateArrayFormulaCellData(e,t,r){var l,d;const a=(l=this._arrayFormulaRange[e])==null?void 0:l[t];if(!a)return;const i=new b.ObjectMatrix(a),o=(d=this._arrayFormulaCellData[e])==null?void 0:d[t];if(!o)return;const u=new b.ObjectMatrix(o);new b.ObjectMatrix(r).forValue((g,p,_)=>{qu(i,u,g,p)})}getFormulaItemBySId(e,t,r){const a=this._formulaData;if(a[r]==null)return null;const i=a[r];if((i==null?void 0:i[t])==null)return null;const o=new b.ObjectMatrix(i[t]||{});let u=null;return o.forValue((c,l,d)=>{if(d==null)return!0;const{f:g,si:p,x:_=0,y:D=0}=d;if(p===e&&g.length>0&&_===0&&D===0)return u=d,!1}),u}getFormulaDataItem(e,t,r,a){var i,o,u,c;return(c=(u=(o=(i=this._formulaData)==null?void 0:i[a])==null?void 0:o[r])==null?void 0:u[e])==null?void 0:c[t]}getFormulaIdMap(e,t){const r=new Map,a=this._formulaData;if(a[e]==null)return r;const i=a[e];return(i==null?void 0:i[t])==null||new b.ObjectMatrix(i[t]||{}).forValue((u,c,l)=>{const d=(l==null?void 0:l.f)||"",g=(l==null?void 0:l.si)||"",p=(l==null?void 0:l.x)||0,_=(l==null?void 0:l.y)||0;b.isFormulaString(d)&&b.isFormulaId(g)&&p===0&&_===0&&r.set(g,{f:d,r:u,c})}),r}getFormulaStringByCell(e,t,r,a){const i=this.getFormulaDataItem(e,t,r,a);if(i==null)return null;const{f:o,si:u,x:c=0,y:l=0}=i;if(u!=null&&(c!==0||l!==0)){let d="";if(o.length>0)d=o;else{const g=this.getFormulaItemBySId(u,r,a);if(g==null||g.f.length===0)return null;d=g.f}return d=this._lexerTreeBuilder.moveFormulaRefOffset(d,c,l),d}return b.isFormulaString(o)?o:null}};exports.FormulaDataModel=ec([ls(0,b.IUniverInstanceService),ls(1,q.Inject(Lr))],exports.FormulaDataModel);function pa(n,s,e,t){const r=new Map,a=new b.ObjectMatrix;t.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",d=(c==null?void 0:c.si)||"",g=b.isFormulaString(l),p=b.isFormulaId(d);g&&p?(a.setValue(o,u,{f:l,si:d}),r.set(d,{f:l,r:o,c:u})):g&&!p?a.setValue(o,u,{f:l}):!g&&p&&a.setValue(o,u,{f:"",si:d})}),a.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",d=(c==null?void 0:c.si)||"";if(b.isFormulaId(d)&&!b.isFormulaString(l)){const g=r.get(d);if(g){const p=g.f,_=u-g.c,D=o-g.r;a.setValue(o,u,{f:p,si:d,x:_,y:D})}else a.realDeleteValue(o,u)}}),n[s]||(n[s]={});const i=a.clone();return n[s][e]=i,{[s]:{[e]:i}}}const pr={id:"formula.mutation.set-array-formula-data",type:b.CommandType.MUTATION,handler:(n,s)=>!0},En={id:"formula.mutation.set-formula-calculation-start",type:b.CommandType.MUTATION,handler:()=>!0},yn={id:"formula.mutation.set-formula-calculation-stop",type:b.CommandType.MUTATION,handler:()=>!0},Rr={id:"formula.mutation.set-formula-calculation-notification",type:b.CommandType.MUTATION,handler:()=>!0},Cn={id:"formula.mutation.set-formula-calculation-result",type:b.CommandType.MUTATION,handler:()=>!0},vr={id:"formula.mutation.set-formula-data",type:b.CommandType.MUTATION,handler:(n,s)=>!0};class Ra extends b.Disposable{constructor(){super();h(this,"_definedNameMap",{});h(this,"_update$",new Ct.Subject);h(this,"update$",this._update$.asObservable());h(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});h(this,"_currentRange$",new Ct.Subject);h(this,"currentRange$",this._currentRange$.asObservable());h(this,"_focusRange$",new Ct.Subject);h(this,"focusRange$",this._focusRange$.asObservable())}dispose(){this._definedNameMap={}}focusRange(e,t){const r=this.getValueById(e,t);r!=null&&this._focusRange$.next({...r,unitId:e})}setCurrentRange(e){this._currentRange=e,this._currentRange$.next(e)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return Xe(this._currentRange.range)}registerDefinedNames(e,t){this._definedNameMap[e]=t,this._update()}registerDefinedName(e,t){this._definedNameMap[e]==null&&(this._definedNameMap[e]={}),this._definedNameMap[e][t.id]=t,this._update()}removeDefinedName(e,t){var r;(r=this._definedNameMap[e])==null||delete r[t],this._update()}removeUnitDefinedName(e){delete this._definedNameMap[e],this._update()}getDefinedNameMap(e){return this._definedNameMap[e]}getValueByName(e,t){var a;const r=this._definedNameMap[e];return r==null?null:(a=Array.from(Object.values(r)).filter(i=>i.name===t))==null?void 0:a[0]}getValueById(e,t){var r;return(r=this._definedNameMap[e])==null?void 0:r[t]}hasDefinedName(e){return this._definedNameMap[e]==null?!1:(Array.from(Object.values(this._definedNameMap[e])).length||0)!==0}_update(){this._update$.next(null)}}const Nt=q.createIdentifier("univer.formula.defined-names.service");var tc=Object.defineProperty,rc=Object.getOwnPropertyDescriptor,nc=(n,s,e,t)=>{for(var r=t>1?void 0:t?rc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&tc(s,e,r),r},sc=(n,s)=>(e,t)=>s(e,t,n);exports.FormulaCurrentConfigService=class extends b.Disposable{constructor(e){super();h(this,"_unitData",{});h(this,"_unitStylesData",{});h(this,"_arrayFormulaCellData",{});h(this,"_formulaData",{});h(this,"_sheetNameMap",{});h(this,"_forceCalculate",!1);h(this,"_dirtyRanges",[]);h(this,"_dirtyNameMap",{});h(this,"_dirtyDefinedNameMap",{});h(this,"_dirtyUnitFeatureMap",{});h(this,"_dirtyUnitOtherFormulaMap",{});h(this,"_excludedCell");h(this,"_sheetIdToNameMap",{});h(this,"_executeUnitId","");h(this,"_executeSubUnitId","");this._univerInstanceService=e}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(e){this._executeUnitId=e}setExecuteSubUnitId(e){this._executeSubUnitId=e}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(e,t){return this._sheetIdToNameMap[e]==null?"":this._sheetIdToNameMap[e][t]||""}load(e){if(e.allUnitData&&e.unitSheetNameMap&&e.unitStylesData)this._unitData=e.allUnitData,this._unitStylesData=e.unitStylesData,this._sheetNameMap=e.unitSheetNameMap;else{const{allUnitData:t,unitSheetNameMap:r,unitStylesData:a}=this._loadSheetData();this._unitData=t,this._unitStylesData=a,this._sheetNameMap=r}this._formulaData=e.formulaData,this._arrayFormulaCellData=Ds(e.arrayFormulaCellData),this._forceCalculate=e.forceCalculate,this._dirtyRanges=e.dirtyRanges,this._dirtyNameMap=e.dirtyNameMap,this._dirtyDefinedNameMap=e.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=e.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=e.dirtyUnitOtherFormulaMap,this._excludedCell=e.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}loadDirtyRangesAndExcludedCell(e,t){this._dirtyRanges=e,this._excludedCell=t,this._dirtyNameMap={}}registerUnitData(e){this._unitData=e}registerFormulaData(e){this._formulaData=e}registerSheetNameMap(e){this._sheetNameMap=e}_mergeNameMap(e,t){Object.keys(t).forEach(r=>{t[r]&&Object.keys(t[r]).forEach(a=>{e[r]==null&&(e[r]={}),e[r][t[r][a]]=a})}),this._sheetIdToNameMap={},Object.keys(e).forEach(r=>{Object.keys(e[r]).forEach(a=>{this._sheetIdToNameMap[r]==null&&(this._sheetIdToNameMap[r]={}),this._sheetIdToNameMap[r][e[r][a]]=a})})}_loadSheetData(){const e=this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET),t=this._univerInstanceService.getCurrentUnitForType(b.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getActiveSheet();this._executeUnitId=t==null?void 0:t.getUnitId(),this._executeSubUnitId=r==null?void 0:r.getSheetId();const a={},i={},o={};for(const u of e){const c=u.getUnitId(),l=u.getSheets(),d={},g={};for(const p of l){const _=p.getSheetId(),D=p.getConfig();d[_]={cellData:new b.ObjectMatrix(D.cellData),rowCount:D.rowCount,columnCount:D.columnCount,rowData:D.rowData,columnData:D.columnData},g[p.getName()]=p.getSheetId()}a[c]=d,i[c]=u.getStyles(),o[c]=g}return{allUnitData:a,unitStylesData:i,unitSheetNameMap:o}}};exports.FormulaCurrentConfigService=nc([sc(0,b.IUniverInstanceService)],exports.FormulaCurrentConfigService);const qe=q.createIdentifier("univer.formula.current-data.service");var ac=Object.defineProperty,ic=Object.getOwnPropertyDescriptor,oc=(n,s,e,t)=>{for(var r=t>1?void 0:t?ic(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&ac(s,e,r),r},Kr=(n,s)=>(e,t)=>s(e,t,n);let St=class extends b.Disposable{constructor(n,s,e){super(),this._definedNamesService=n,this._lexerTreeBuilder=s,this._formulaCurrentConfigService=e}treeBuilder(n,s=!0){return this._lexerTreeBuilder.treeBuilder(n,s,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(n){const s=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&s[e]!=null){const t=Object.keys(s[e]);for(let r=0,a=t.length;r<a;r++){const i=t[r];if(n.indexOf(i)>-1)return!0}}return!1}_checkDefinedNameDirty(n){const s=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&s[e]!=null){const t=Object.keys(s[e]);for(let r=0,a=t.length;r<a;r++)if(t[r]===n)return!0}return!1}_injectDefinedName(n){const s=this._formulaCurrentConfigService.getExecuteUnitId();if(s==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const e=this._lexerTreeBuilder.getSequenceNode(n);let t="",r=!1;const a=[];for(let i=0,o=e.length;i<o;i++){const u=e[i];if(typeof u=="string"){t+=u;continue}const{nodeType:c,token:l}=u;if(c===Ae.REFERENCE||c===Ae.FUNCTION){const d=this._definedNamesService.getValueByName(s,l);if(d){let g=d.formulaOrRefString;g.substring(0,1)===se.EQUALS&&(g=g.substring(1)),t+=g,a.push(d.name),r=!0}else this._checkDefinedNameDirty(l)?(t+=f.NAME,r=!0,a.push(l)):t+=l}else t+=l}return{sequenceString:t,hasDefinedName:r,definedNames:a}}};St=oc([Kr(0,Nt),Kr(1,q.Inject(Lr)),Kr(2,qe)],St);var uc=Object.defineProperty,cc=Object.getOwnPropertyDescriptor,lc=(n,s,e,t)=>{for(var r=t>1?void 0:t?cc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&uc(s,e,r),r},fc=(n,s)=>(e,t)=>s(e,t,n),Ie=(n=>(n[n.IDLE=0]="IDLE",n[n.START_DEPENDENCY=1]="START_DEPENDENCY",n[n.START_CALCULATION=2]="START_CALCULATION",n[n.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",n[n.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",n[n.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",n[n.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",n[n.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",n))(Ie||{}),yt=(n=>(n[n.INITIAL=0]="INITIAL",n[n.STOP_EXECUTION=1]="STOP_EXECUTION",n[n.NOT_EXECUTED=2]="NOT_EXECUTED",n[n.SUCCESS=3]="SUCCESS",n))(yt||{});exports.FormulaRuntimeService=class extends b.Disposable{constructor(e){super();h(this,"_formulaExecuteStage",0);h(this,"_stopState",!1);h(this,"_currentRow",-1);h(this,"_currentColumn",-1);h(this,"_currentRowCount",Number.NEGATIVE_INFINITY);h(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);h(this,"_currentSubUnitId","");h(this,"_currentUnitId","");h(this,"_runtimeData",{});h(this,"_runtimeOtherData",{});h(this,"_unitArrayFormulaRange",{});h(this,"_runtimeArrayFormulaCellData",{});h(this,"_runtimeClearArrayFormulaCellData",{});h(this,"_runtimeFeatureRange",{});h(this,"_runtimeFeatureCellData",{});h(this,"_functionsExecutedState",0);h(this,"_functionDefinitionPrivacyVar",new Map);h(this,"_totalFormulasToCalculate",0);h(this,"_completedFormulasCount",0);h(this,"_totalArrayFormulasToCalculate",0);h(this,"_completedArrayFormulasCount",0);h(this,"_formulaCycleIndex",0);h(this,"_isCycleDependency",!1);this._currentConfigService=e}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={}}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setTotalArrayFormulasToCalculate(e){this._totalArrayFormulasToCalculate=e}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(e){this._completedArrayFormulasCount=e}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(e){this._totalFormulasToCalculate=e}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(e){this._completedFormulasCount=e}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(e){this._formulaCycleIndex=e}getFormulaCycleIndex(){return this._formulaCycleIndex}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(e){this._formulaExecuteStage=e}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}setCurrent(e,t,r,a,i,o){this._currentRow=e,this._currentColumn=t,this._currentRowCount=r,this._currentColumnCount=a,this._currentSubUnitId=i,this._currentUnitId=o}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(e,t){this._functionDefinitionPrivacyVar.set(e,t)}getFunctionDefinitionPrivacyVar(e){return this._functionDefinitionPrivacyVar.get(e)}setRuntimeOtherData(e,t){const r=this._currentSubUnitId,a=this._currentUnitId;this._runtimeOtherData[a]===void 0&&(this._runtimeOtherData[a]={});const i=this._runtimeOtherData[a];i[r]===void 0&&(i[r]={});const o=i[r];let u=[];if(t.isReferenceObject()||t.isValueObject()&&t.isArray()){const c=t,{startRow:l,startColumn:d}=c.getRangePosition();c.iterator((g,p,_)=>{const D=ct(g),P=p-l,w=_-d;u[P]==null&&(u[P]=[]),u[P][w]=D})}else u=[[ct(t)]];o[e]=u}setRuntimeData(e){const t=this._currentRow,r=this._currentColumn,a=this._currentRowCount,i=this.currentColumnCount,o=this._currentSubUnitId,u=this._currentUnitId;this._runtimeData[u]==null&&(this._runtimeData[u]={});const c=this._runtimeData[u];c[o]==null&&(c[o]=new b.ObjectMatrix),this._unitArrayFormulaRange[u]==null&&(this._unitArrayFormulaRange[u]={});const l=this._unitArrayFormulaRange[u];let d=new b.ObjectMatrix;l[o]&&(d=new b.ObjectMatrix(l[o])),this._runtimeArrayFormulaCellData[u]===void 0&&(this._runtimeArrayFormulaCellData[u]={});const g=this._runtimeArrayFormulaCellData[u];g[o]==null&&(g[o]=new b.ObjectMatrix),this._runtimeClearArrayFormulaCellData[u]===void 0&&(this._runtimeClearArrayFormulaCellData[u]={});const p=this._runtimeClearArrayFormulaCellData[u];p[o]==null&&(p[o]=new b.ObjectMatrix);const _=c[o],D=g[o],P=p[o];if(e.isReferenceObject()||e.isValueObject()&&e.isArray()){const w=e,{startRow:v,startColumn:B,endRow:X,endColumn:ue}=w.getRangePosition();if(v===X&&B===ue){const be=w.getFirstCell(),Re=ct(be);_.setValue(t,r,Re),P.setValue(t,r,Re);return}const ge={startRow:t,startColumn:r,endRow:X-v+t,endColumn:ue-B+r};if(d.setValue(t,r,ge),l[o]=d.getData(),this._checkIfArrayFormulaRangeHasData(u,o,t,r,ge)||this._checkIfArrayFormulaExceeded(a,i,ge)){const be=ct(m.create(f.SPILL));_.setValue(t,r,be),P.setValue(t,r,be)}else{const be=m.create(f.SPILL);w.iterator((Re,Ce,_e)=>{const he=ct(Re);if(Ce===v&&_e===B){if(Re!=null&&Re.isError()&&Re.isEqualType(be))return P.setValue(t,r,{}),_.setValue(t,r,{...ct(be)}),!1;_.setValue(t,r,{...he})}const Ue=Ce-v+t,ot=_e-B+r;D.setValue(Ue,ot,he)})}}else{const w=ct(e);_.setValue(t,r,w),P.setValue(t,r,w)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(e,t){this._runtimeFeatureRange[e]=t}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e,t){this._runtimeFeatureCellData[e]=t}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(e,t,r,a,i){var p,_,D,P,w,v,B,X,ue,ge,be,Re;const{startRow:o,startColumn:u,endRow:c,endColumn:l}=i,d=this._currentConfigService.getUnitData(),g=(D=(_=(p=this._unitArrayFormulaRange[e])==null?void 0:p[t])==null?void 0:_[r])==null?void 0:D[a];for(let Ce=o;Ce<=c;Ce++)for(let _e=u;_e<=l;_e++){if(Ce===r&&a===_e)continue;const he=(v=(w=(P=this._runtimeData)==null?void 0:P[e])==null?void 0:w[t])==null?void 0:v.getValue(Ce,_e),Ue=(ue=(X=(B=this._runtimeArrayFormulaCellData)==null?void 0:B[e])==null?void 0:X[t])==null?void 0:ue.getValue(Ce,_e),ot=(Re=(be=(ge=d==null?void 0:d[e])==null?void 0:ge[t])==null?void 0:be.cellData)==null?void 0:Re.getValue(Ce,_e);if(!b.isNullCell(he)||!b.isNullCell(Ue)&&!this._isInArrayFormulaRange(g,Ce,_e)||!b.isNullCell(ot))return!0}return!1}_isInArrayFormulaRange(e,t,r){if(e==null)return!1;const{startRow:a,startColumn:i,endRow:o,endColumn:u}=e;return t>=a&&t<=o&&r>=i&&r<=u}_checkIfArrayFormulaExceeded(e,t,r){return r.endRow>=e||r.endColumn>=t}_isInDirtyRange(e,t,r,a){const i=this._currentConfigService.getDirtyRanges();return i.length===0?!0:_s(i,e,t,r,a)}};exports.FormulaRuntimeService=lc([fc(0,qe)],exports.FormulaRuntimeService);const Te=q.createIdentifier("univer.formula.runtime.service");var Z=(n=>(n.REFERENCE="ReferenceNode",n.VALUE="ValueNode",n.OPERATOR="OperatorNode",n.FUNCTION="FunctionNode",n.LAMBDA="LambdaNode",n.LAMBDA_PARAMETER="LambdaNodeParameter",n.ERROR="ErrorNode",n.BASE="Base",n.ROOT="Root",n.UNION="UnionNode",n.PREFIX="PrefixNode",n.SUFFIX="SuffixNode",n.NULL="NullNode",n))(Z||{});const $e=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]);class Ve extends b.Disposable{constructor(e){super();h(this,"_children",[]);h(this,"_definedNames",[]);h(this,"_parent");h(this,"_valueObject");h(this,"_calculateState",!1);h(this,"_async",!1);h(this,"_address",!1);h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._token=e}dispose(){var e;this._children.forEach(t=>{t.dispose()}),(e=this._valueObject)==null||e.dispose(),this._parent=null}get nodeType(){return Z.BASE}isAsync(){return this._async}isAddress(){return this._address}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(e){this._parent=e,e.addChildren(this)}getChildren(){return this._children}addChildren(...e){this._children.push(...e)}getToken(){return this._token}setValue(e){this._valueObject=e}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(e=!0){}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}async executeAsync(){return Promise.resolve(dt.SUCCESS)}serialize(){const e=this.getToken(),t=this.getChildren(),r=[],a=t.length;for(let o=0;o<a;o++){const u=t[o];r.push(u.serialize())}const i={token:e,nodeType:this.nodeType};return a>0&&(i.children=r),i}hasDefinedName(e){return this._definedNames.includes(e)}setDefinedNames(e){this._definedNames=e}}class ye extends Ve{constructor(e){super(e);h(this,"_errorValueObject");this._errorValueObject=m.create(e)}get nodeType(){return Z.ERROR}static create(e){return new ye(e)}getValue(){return this._errorValueObject}}const Ye=100;class Qe extends b.Disposable{get zIndex(){return 0}create(s,e,t){let r;return s instanceof G?r=s.getToken():r=s,new Ve(r)}}class on extends Ve{get nodeType(){return Z.ROOT}execute(){const e=this.getChildren()[0];e==null?this.setValue(m.create(f.VALUE)):this.setValue(e.getValue())}}class _a extends Qe{get zIndex(){return $e.get(Z.ROOT)||Ye}checkAndCreateNodeType(s){if(!(s instanceof G))return;if(s.getToken()===nt)return new on(nt)}}class Ea extends b.Disposable{constructor(){super(...arguments);h(this,"_functionExecutors",new Map);h(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.set(r.name,r)}}getExecutors(){return this._functionExecutors}getExecutor(e){return this._functionExecutors.get(e)}hasExecutor(e){return this._functionExecutors.has(e)}unregisterExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.delete(r)}}registerDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.set(r.functionName,r)}return b.toDisposable(()=>{for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(e){return this._functionDescriptions.get(e)}hasDescription(e){return this._functionDescriptions.has(e)}unregisterDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r)}}}const Ze=q.createIdentifier("univer.formula.function.service");var hc=Object.defineProperty,mc=Object.getOwnPropertyDescriptor,dc=(n,s,e,t)=>{for(var r=t>1?void 0:t?mc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&hc(s,e,r),r},fs=(n,s)=>(e,t)=>s(e,t,n);class _r extends Ve{constructor(s,e,t){super(e),this._accessor=s,this._operatorString=e,this._functionExecutor=t}get nodeType(){return Z.PREFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");e.isReferenceObject()&&(e=e.toArrayValueObject()),this._operatorString===pe.MINUS?t=this._functionExecutor.calculate(C.create(0),e):this._operatorString===pe.AT?t=this._handlerAT(e):t=m.create(f.VALUE),this.setValue(t)}_handlerAT(s){if(!s.isReferenceObject())return m.create(f.VALUE);const e=s;if(e.isCell())return m.create(f.VALUE);const t=this._accessor.get(Te),r=t.currentRow||0,a=t.currentColumn||0;return e.isRow()?e.getCellByColumn(a):e.isColumn()?e.getCellByRow(r):e.isRange()||e.isTable()?e.getCellByPosition():m.create(f.VALUE)}}let Er=class extends Qe{constructor(n,s){super(),this._functionService=n,this._injector=s}get zIndex(){return $e.get(Z.PREFIX)||Ye}checkAndCreateNodeType(n){if(!(n instanceof G))return;const s=n.getToken(),e=s.trim();if(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')return;let t="";if(e===pe.MINUS)t=Se.MINUS;else return e===pe.AT?new _r(this._injector,e):void 0;const r=this._functionService.getExecutor(t);return r?new _r(this._injector,e,r):(console.error(`No function ${s}`),ye.create(f.NAME))}};Er=dc([fs(0,Ze),fs(1,q.Inject(q.Injector))],Er);function ya(n,s,e){let t,r;const a=n.slice(0,2);let i=0;if(new RegExp(pe.MINUS,"g").test(a)){const o=s.getExecutor(Se.MINUS);t=new _r(e,pe.MINUS,o),i++}return new RegExp(pe.AT,"g").test(a)&&(r=new _r(e,pe.AT),t&&r.setParent(t),i++),i>0&&(n=n.slice(i)),{tokenTrim:n,minusPrefixNode:t,atPrefixNode:r}}var gc=Object.defineProperty,pc=Object.getOwnPropertyDescriptor,Rc=(n,s,e,t)=>{for(var r=t>1?void 0:t?pc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&gc(s,e,r),r},Ut=(n,s)=>(e,t)=>s(e,t,n);class _c extends Ve{constructor(s,e,t,r,a){super(s),this._functionExecutor=e,this._currentConfigService=t,this._runtimeService=r,this._definedNamesService=a,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return Z.FUNCTION}async executeAsync(){const s=[],e=this.getChildren(),t=e.length;this._compatibility();for(let i=0;i<t;i++){const o=e[i].getValue();o!=null&&(o.isReferenceObject()?s.push(o.toArrayValueObject()):s.push(o))}const r=this._calculate(s);let a;return r.isAsyncObject()||r.isAsyncArrayObject()?a=await r.getValue():a=r,this._setRefData(a),this.setValue(a),Promise.resolve(dt.SUCCESS)}execute(){const s=[],e=this.getChildren(),t=e.length;this._compatibility();for(let a=0;a<t;a++){const i=e[a].getValue();i!=null&&(i.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?s.push(i.toArrayValueObject()):s.push(i))}const r=this._calculate(s);this._setRefData(r),this.setValue(r)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const s=this.getChildren(),e=s.length;if(!this._functionExecutor.needsExpandParams||e!==3)return;const t=s[1].getValue(),r=s[2].getValue();if(!(t!=null&&t.isReferenceObject())&&!(r!=null&&r.isReferenceObject()))return;const a=t.getRangeData(),i=r.getRangeData(),{startRow:o,startColumn:u,endRow:c,endColumn:l}=a,d=c-o+1,g=l-u+1,{startRow:p,startColumn:_,endRow:D,endColumn:P}=i,w=D-p+1,v=P-_+1;d!==w&&(i.endRow+=d-w),g!==v&&(i.endColumn+=g-v)}_calculate(s){var a;const{minParams:e,maxParams:t}=this._functionExecutor;if(e!==-1&&t!==-1&&(s.length<e||s.length>t))return m.create(f.NA);let r;if(this._setRefInfo(),this._functionExecutor.isCustom()){const i=this._functionExecutor.calculateCustom(...s.map(o=>o.isArray()?o.toValue():o.getValue()));if(typeof i!="object"||i==null)r=it.create(i);else{const o=Ts(i);r=de.create({calculateValueList:o,rowCount:o.length,columnCount:((a=o[0])==null?void 0:a.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),r=this._functionExecutor.calculate(...s);return r}_setDefinedNamesForFunction(){const s=this._currentConfigService.getExecuteUnitId();if(s==null)return;const e=this._definedNamesService.getDefinedNameMap(s);e!=null&&this._functionExecutor.setDefinedNames(e)}_setRefInfo(){const{currentUnitId:s,currentSubUnitId:e,currentRow:t,currentColumn:r}=this._runtimeService;this._functionExecutor.setRefInfo(s,e,t,r)}_setRefData(s){if(!s.isReferenceObject())return;const e=s;e.setForcedSheetId(this._currentConfigService.getSheetNameMap()),e.setUnitData(this._currentConfigService.getUnitData()),e.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),e.setRuntimeData(this._runtimeService.getUnitData()),e.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}}let yr=class extends Qe{constructor(n,s,e,t,r){super(),this._functionService=n,this._currentConfigService=s,this._runtimeService=e,this._definedNamesService=t,this._injector=r}get zIndex(){return $e.get(Z.FUNCTION)||Ye}create(n){const s=this._functionService.getExecutor(n);return s?new _c(n,s,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${n}`),ye.create(f.NAME))}checkAndCreateNodeType(n){if(typeof n=="string")return;const s=n.getToken(),{tokenTrim:e,minusPrefixNode:t,atPrefixNode:r}=ya(s.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(e))&&!this._isParentUnionNode(n))return ye.create(f.VALUE);const a=e.toUpperCase();if(this._functionService.hasExecutor(a)){const i=this.create(a);return r?i.setParent(r):t&&i.setParent(t),i}}_isParentUnionNode(n){var s,e;return((e=(s=n.getParent())==null?void 0:s.getParent())==null?void 0:e.getToken())===z.COLON}};yr=Rc([Ut(0,Ze),Ut(1,qe),Ut(2,Te),Ut(3,Nt),Ut(4,q.Inject(q.Injector))],yr);var Ec=Object.defineProperty,yc=Object.getOwnPropertyDescriptor,Cc=(n,s,e,t)=>{for(var r=t>1?void 0:t?yc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Ec(s,e,r),r},Dc=(n,s)=>(e,t)=>s(e,t,n);let At=class extends b.Disposable{constructor(n){super(),this._runtimeService=n}async executeAsync(n){if(!n)return m.create(f.VALUE);await this._executeAsync(n);const s=n.getValue();if(s==null)throw new Error("node value is null");return Promise.resolve(s)}execute(n){if(!n)return m.create(f.VALUE);this._execute(n);const s=n.getValue();if(s==null)throw new Error("node value is null");return s}executePreCalculateNode(n){return n.execute(),n.getValue()}checkAsyncNode(n){const s=[];this._checkAsyncNode(n,s);for(let e=0,t=s.length;e<t;e++)if(s[e]===!0)return!0;return!1}_checkAsyncNode(n,s){const e=n.getChildren(),t=e.length;for(let r=0;r<t;r++){const a=e[r];s.push(a.isAsync()),this._checkAsyncNode(a,s)}}async _executeAsync(n){if(this._runtimeService.isStopExecution())return Promise.resolve(dt.ERROR);const s=n.getChildren(),e=s.length;for(let t=0;t<e;t++){const r=s[t];if(r.getToken().toUpperCase()===Tt&&r.isEmptyParamFunction()){r.execute();continue}await this._executeAsync(r)}return n.nodeType===Z.FUNCTION&&n.isAsync()?await n.executeAsync():n.execute(),Promise.resolve(dt.SUCCESS)}_execute(n){if(this._runtimeService.isStopExecution())return dt.ERROR;const s=n.getChildren(),e=s.length;for(let t=0;t<e;t++){const r=s[t];if(r.getToken().toUpperCase()===Tt&&r.isEmptyParamFunction()){r.execute();continue}this._execute(r)}return n.execute(),dt.SUCCESS}};At=Cc([Dc(0,Te)],At);function Ca(n){return n instanceof G?n.getToken()===Dt:!1}function bc(n){return n instanceof G?n.getToken()===bs:!1}function Da(n){if(!n)return;if(n.getToken()!==jt)return n;const s=n,e=s.getCurrentLambdaPrivacyVar(),t=s.getLambdaParameter();if(!e)return;const r=e.get(t);return r==null&&n.getValue()?n:Da(r)}class Dn extends Ke{constructor(e,t,r){super(0);h(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=e,this._interpreter=t,this._lambdaPrivacyVarKeys=r,this._lambdaPrivacyValueMap.clear()}static create(e,t,r){return new Dn(e,t,r)}isLambda(){return!0}execute(...e){const t=this._lambdaPrivacyVarKeys.length;if(e.length!==t)return m.create(f.VALUE);this._setLambdaPrivacyValueMap(e),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let r;if(this._interpreter.checkAsyncNode(this._lambdaNode))r=new ks(this._interpreter.executeAsync(this._lambdaNode));else{const a=this._interpreter.execute(this._lambdaNode);a.isReferenceObject()?r=a.toArrayValueObject():r=a}return this._lambdaNode.setNotEmpty(!0),r}_setLambdaNodeValue(e){const t=e.getChildren(),r=t.length;for(let a=0;a<r;a++){const i=t[a];if(i.getToken()===jt){const u=i.getLambdaParameter(),c=this._lambdaPrivacyValueMap.get(u);if(c)i.setValue(c);else{const l=i.getCurrentLambdaPrivacyVar(),d=Da(l.get(u));d!=null&&i.setValue(d.getValue())}continue}this._setLambdaNodeValue(i)}}_setLambdaPrivacyValueMap(e){for(let t=0;t<e.length;t++){const r=e[t],a=this._lambdaPrivacyVarKeys[t];this._lambdaPrivacyValueMap.set(a,r)}}}var Sc=Object.defineProperty,Ac=Object.getOwnPropertyDescriptor,Pc=(n,s,e,t)=>{for(var r=t>1?void 0:t?Ac(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Sc(s,e,r),r},hs=(n,s)=>(e,t)=>s(e,t,n);class Lc extends Ve{constructor(e,t,r,a){super(e);h(this,"_isNotEmpty",!0);this._lambdaId=t,this._interpreter=r,this._lambdaPrivacyVarKeys=a}get nodeType(){return Z.LAMBDA}setNotEmpty(e=!1){this._isNotEmpty=e}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(Dn.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const e=this.getChildren(),t=e.length;this.setValue(e[t-1].getValue())}}}let Cr=class extends Qe{constructor(n,s){super(),this._runtimeService=n,this._interpreter=s}get zIndex(){return $e.get(Z.LAMBDA)||Ye}create(n){const s=n.getChildren(),e=s[0];let t=s.slice(1,-1);const r=s[s.length-1];if(!(e instanceof G&&r instanceof G))return ye.create(f.NAME);if(e.getToken()===Dt){const o=e.getChildren();if(t.length!==o.length)return ye.create(f.VALUE)}else t=s.slice(0,-1);const a=b.Tools.generateRandomId(8),i=new Map;for(let o=0;o<t.length;o++){const u=t[o];if(u instanceof G){const c=u.getChildren()[0];u.setToken(bs),i.set(c.trim(),void 0)}else return ye.create(f.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(a,i),this._updateLambdaStatement(r,a,i),new Lc(n.getToken(),a,this._interpreter,[...i.keys()])}checkAndCreateNodeType(n){if(!(!(n instanceof G)||n.getToken().trim().toUpperCase()!==Tt))return this.create(n)}_updateLambdaStatement(n,s,e){this._updateTree(n,s,e)}_updateTree(n,s,e){const t=n.getChildren(),r=t.length,a=t[0];for(let i=0;i<r;i++){const o=t[i];if(!(Ca(a)&&i!==0))if(o instanceof G)this._updateTree(o,s,e);else{const u=o.trim();if(e.has(u)){const c=new G;c.setToken(jt),c.setLambdaId(s),c.setLambdaPrivacyVar(e),c.setLambdaParameter(u),t[i]=c}}}}};Cr=Pc([hs(0,Te),hs(1,q.Inject(At))],Cr);function ba(n){if(!n)return;if(n.getToken()!==jt)return n;const s=n,e=s.getCurrentLambdaPrivacyVar(),t=s.getLambdaParameter();if(e)return ba(e.get(t))}class xc extends Ve{constructor(s,e,t){super(s),this._lambdaParameter=e,this._currentLambdaPrivacyVar=t}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return Z.LAMBDA_PARAMETER}execute(){const s=ba(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(s)this.setValue(s.getValue());else{const e=this.getValue();(e==null||e.isError())&&this.setValue(m.create(f.SPILL))}}}class Sa extends Qe{get zIndex(){return $e.get(Z.LAMBDA_PARAMETER)||Ye}create(s){const e=s.getFunctionDefinitionPrivacyVar(),t=s.getLambdaParameter();return e?new xc(s.getToken(),t,e):new ye(f.SPILL)}checkAndCreateNodeType(s){if(!(!(s instanceof G)||s.getToken().trim()!==jt))return this.create(s)}}class Vc extends Ve{constructor(s){super(s),this._operatorString=s}get nodeType(){return Z.NULL}execute(){this.setValue(ae.create())}}var wc=Object.defineProperty,Oc=Object.getOwnPropertyDescriptor,Uc=(n,s,e,t)=>{for(var r=t>1?void 0:t?Oc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&wc(s,e,r),r},Mc=(n,s)=>(e,t)=>s(e,t,n);class Fc extends Ve{constructor(s,e){super(s),this._operatorString=s,this._functionExecutor=e}get nodeType(){return Z.OPERATOR}execute(){var a,i;const s=this.getChildren();this._functionExecutor.name===Se.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let e=(a=s[0])==null?void 0:a.getValue(),t=(i=s[1])==null?void 0:i.getValue();const r=this.getToken();if((e==null||t==null)&&r!==se.MINUS&&r!==se.PLUS){this.setValue(m.create(f.VALUE));return}e==null&&(e=ae.create()),t==null&&(t=ae.create()),e.isReferenceObject()&&(e=e.toArrayValueObject()),t.isReferenceObject()&&(t=t.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(e,t))}}let Dr=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return $e.get(Z.OPERATOR)||Ye}create(n){let s="";const e=n;e===se.PLUS?s=Se.PLUS:e===se.MINUS?s=Se.MINUS:e===se.MULTIPLY?s=Se.MULTIPLY:e===se.DIVIDED?s=Se.DIVIDED:e===se.CONCATENATE?s=Ne.CONCATENATE:e===se.POWER?s=oe.POWER:Ka.has(e)&&(s=Se.COMPARE);const t=this._functionService.getExecutor(s);return t?new Fc(e,t):(console.error(`No function ${n}`),ye.create(f.NAME))}checkAndCreateNodeType(n){if(n instanceof G)return;const s=n.trim();if(!(s.charAt(0)==='"'&&s.charAt(s.length-1)==='"')&&ft.has(s))return this.create(s)}};Dr=Uc([Mc(0,Ze)],Dr);class vc extends b.Disposable{constructor(){super(...arguments);h(this,"_tableMap",new Map);h(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(e,t){var r;(r=this._tableMap.get(e))==null||r.delete(t)}getTableMap(e){return this._tableMap.get(e)}getTableOptionMap(){return this._tableOptionMap}registerTable(e,t,r){var a;this._tableMap.get(e)==null&&this._tableMap.set(e,new Map),(a=this._tableMap.get(e))==null||a.set(t,r)}registerTableOptionMap(e,t){this._tableOptionMap.set(e,t)}}const bn=q.createIdentifier("univer.formula.super-table.service");class Bc extends xt{constructor(s,e,t,r){super(s),this._tableData=e,this._columnDataString=t;const a=this._tableData.sheetId,i=this._tableData.range,o=this._tableData.titleMap;this.setForcedSheetIdDirect(a);const u=this._stringToColumnData(this._columnDataString,o,r),c=u.startColumn,l=u.endColumn,d=u.type;let g=-1,p=-1;const _=i.startRow,D=i.startColumn;d===ht.ALL?(g=_,p=D):d===ht.DATA?(g=_+1,p=D):d===ht.HEADERS?(g=_,p=_):d===ht.TOTALS&&(g=D,p=D),this.setRangeData({startColumn:c,endColumn:l,startRow:g,endRow:p})}isTable(){return!0}_stringToColumnData(s,e,t){s=s.substring(1,-1);const r=s.indexOf(z.COMMA);let a=-1,i=-1,o=ht.ALL;if(r===-1){const u=this._columnHandler(s,e);a=u.startColumn,i=u.endColumn}else{const u=s.substring(0,r).substring(1,-1),c=s.substring(r+1),l=this._columnHandler(c,e,!0);a=l.startColumn,i=l.endColumn,o=t.get(u),o||(o=ht.ALL)}return{startColumn:a,endColumn:i,type:o}}_columnHandler(s,e,t=!1){var o,u,c;let r=-1,a=-1;const i=s.indexOf(z.COLON);if(new RegExp(xs,"g").test(s)){const l=s.substring(0,i).substring(1,-1),d=s.substring(i+1).substring(1,-1);r=(o=e.get(l))!=null?o:-1,a=(u=e.get(d))!=null?u:-1}else t&&(s=s.substring(1,-1)),r=(c=e.get(s))!=null?c:-1,a=r;return{startColumn:r,endColumn:a}}}var Tc=Object.defineProperty,kc=Object.getOwnPropertyDescriptor,Ic=(n,s,e,t)=>{for(var r=t>1?void 0:t?kc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Tc(s,e,r),r},Jt=(n,s)=>(e,t)=>s(e,t,n);class er extends Ve{constructor(s,e,t,r=!1){super(e),this._accessor=s,this._operatorString=e,this._referenceObject=t,this._isPrepareMerge=r}get nodeType(){return Z.REFERENCE}execute(){const s=this._accessor.get(qe),e=this._accessor.get(Te);this._referenceObject.setDefaultUnitId(e.currentUnitId),this._referenceObject.setDefaultSheetId(e.currentSubUnitId),this._referenceObject.setForcedSheetId(s.getSheetNameMap()),this._referenceObject.setUnitData(s.getUnitData()),this._referenceObject.setArrayFormulaCellData(s.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(e.getUnitData()),this._referenceObject.setUnitStylesData(s.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(e.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();this._referenceObject.setRefOffset(t,r),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(m.create(f.NAME)):this.setValue(this._referenceObject)}}let br=class extends Qe{constructor(n,s,e,t){super(),this._superTableService=n,this._formulaRuntimeService=s,this._functionService=e,this._injector=t}get zIndex(){return $e.get(Z.REFERENCE)||Ye}checkAndCreateNodeType(n){var u,c;let s=!1,e,t=!1;n instanceof G?(s=!0,e=n.getToken().trim(),((c=(u=n.getParent())==null?void 0:u.getParent())==null?void 0:c.getToken().trim())===z.COLON&&(t=!0)):e=n.trim();const{tokenTrim:r,minusPrefixNode:a,atPrefixNode:i}=ya(e,this._functionService,this._injector);if(!s&&r.charAt(0)==='"'&&r.charAt(r.length-1)==='"')return;let o;if(new RegExp($t).test(r))o=new er(this._injector,r,new hn(r),t);else if(s&&this._checkParentIsUnionOperator(n))new RegExp(Ps).test(r)?o=new er(this._injector,r,new mn(r),t):new RegExp(Ls).test(r)&&(o=new er(this._injector,r,new dn(r),t));else{const l=this._formulaRuntimeService.currentUnitId,d=this._superTableService.getTableMap(l),g=new RegExp(xs,"g"),p=r.replace(g,"");if(!s&&(d!=null&&d.has(p))){const _=g.exec(r);let D="";_&&(D=_[0]);const P=d.get(p),w=this._superTableService.getTableOptionMap();o=new er(this._injector,r,new Bc(r,P,D,w))}}if(o)return i?o.setParent(i):a&&o.setParent(a),o}_checkParentIsUnionOperator(n){var s,e;return((e=(s=n.getParent())==null?void 0:s.getParent())==null?void 0:e.getToken().trim())===z.COLON}};br=Ic([Jt(0,bn),Jt(1,Te),Jt(2,Ze),Jt(3,q.Inject(q.Injector))],br);var jc=Object.defineProperty,$c=Object.getOwnPropertyDescriptor,Yc=(n,s,e,t)=>{for(var r=t>1?void 0:t?$c(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&jc(s,e,r),r},ms=(n,s)=>(e,t)=>s(e,t,n);class ds extends Ve{constructor(s,e,t){super(e),this._accessor=s,this._operatorString=e,this._functionExecutor=t}get nodeType(){return Z.SUFFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");if(this._operatorString===Ge.PERCENTAGE){if(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(e,C.create(100)),t.isNumber()){const r=Number(t.getValue());t=C.create(r,"0.00%")}}else this._operatorString===Ge.POUND?t=this._handlerPound(e):t=m.create(f.VALUE);this.setValue(t)}_handlerPound(s){var l,d,g,p;if(!s.isReferenceObject()||!s.isCell())return m.create(f.VALUE);const e=this._accessor.get(qe),t=this._accessor.get(St),r=s,a=r.getRangePosition(),i=r.getUnitId(),o=r.getSheetId(),u=e.getFormulaData(),c=(p=(g=(d=(l=u==null?void 0:u[i])==null?void 0:l[o])==null?void 0:d[a.startRow])==null?void 0:g[a.startColumn])==null?void 0:p.f;return c&&t.treeBuilder(c),m.create(f.VALUE)}}let Sr=class extends Qe{constructor(n,s){super(),this._functionService=n,this._injector=s}get zIndex(){return $e.get(Z.SUFFIX)||Ye}checkAndCreateNodeType(n){if(!(n instanceof G))return;const s=n.getToken().trim();if(s.charAt(0)==='"'&&s.charAt(s.length-1)==='"')return;let e="";if(s===Ge.PERCENTAGE)e=Se.DIVIDED;else return s===Ge.POUND?new ds(this._injector,s):void 0;const t=this._functionService.getExecutor(e);return t?new ds(this._injector,s,t):(console.error(`No function ${n}`),ye.create(f.NAME))}};Sr=Yc([ms(0,Ze),ms(1,q.Inject(q.Injector))],Sr);var Qc=Object.defineProperty,Hc=Object.getOwnPropertyDescriptor,zc=(n,s,e,t)=>{for(var r=t>1?void 0:t?Hc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Qc(s,e,r),r},Nc=(n,s)=>(e,t)=>s(e,t,n);class Wc extends Ve{constructor(s){super(s),this._operatorString=s}get nodeType(){return Z.UNION}execute(){const s=this.getChildren(),e=s[0].getValue(),t=s[1].getValue();if(e==null||t==null)throw new Error("leftNode and rightNode");let r;this._operatorString===z.COLON?r=this._unionFunction(e,t):r=m.create(f.NAME),this.setValue(r)}_unionFunction(s,e){return s.isError()||e.isError()||!s.isReferenceObject()||!e.isReferenceObject()?m.create(f.REF):(s=s,e=e,s.isCell()&&e.isCell()||s.isRow()&&e.isRow()||s.isColumn()&&e.isColumn()?s.unionBy(e):m.create(f.NAME))}}let Ar=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return $e.get(Z.UNION)||Ye}create(n){return new Wc(n)}checkAndCreateNodeType(n){if(!(n instanceof G))return;const e=n.getToken().trim();if(!(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')&&e===z.COLON)return this.create(e)}};Ar=zc([Nc(0,Ze)],Ar);class Gc extends Ve{constructor(s){super(s),this._operatorString=s}get nodeType(){return Z.VALUE}execute(){this.setValue(it.create(this._operatorString))}}class Aa extends Qe{get zIndex(){return $e.get(Z.VALUE)||Ye}_checkValueNode(s){if(Number.isNaN(Number(s))){const e=s.trim(),t=e.charAt(0),r=e.charAt(e.length-1);if(Pt.has(e))return this.create(e);if(t==='"'&&r==='"')return this.create(e);if(t==="{"&&r==="}")return this.create(e);const a=e.toUpperCase();if(a===at.TRUE||a===at.FALSE)return this.create(a)}else return this.create(s)}create(s){return new Gc(s)}checkAndCreateNodeType(s){if(!(s instanceof G))return this._checkValueNode(s)}}function Xc(n){let s=n;for(;s!=null&&s.getParent();)s=s.getParent();return s}var Kc=Object.defineProperty,qc=Object.getOwnPropertyDescriptor,Zc=(n,s,e,t)=>{for(var r=t>1?void 0:t?qc(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Kc(s,e,r),r},ve=(n,s)=>(e,t)=>s(e,t,n);let It=class extends b.Disposable{constructor(s,e,t,r,a,i,o,u,c,l,d){super();h(this,"_astNodeFactoryList",[]);h(this,"_refOffsetX",0);h(this,"_refOffsetY",0);this._runtimeService=s,this._astRootNodeFactory=e,this._functionNodeFactory=t,this._lambdaNodeFactory=r,this._lambdaParameterNodeFactory=a,this._operatorNodeFactory=i,this._prefixNodeFactory=o,this._referenceNodeFactory=u,this._suffixNodeFactory=c,this._unionNodeFactory=l,this._valueNodeFactory=d,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(s=>{s.dispose()}),this._astNodeFactoryList=[]}parse(s,e=0,t=0){const r=new on(nt);this._refOffsetX=e,this._refOffsetY=t;const a=this._parse(s,r);return s.hasDefinedNames()&&(a==null||a.setDefinedNames(s.getDefinedNames())),a}_lambdaParameterHandler(s,e){if(e.getLambdaId==null)return ye.create(f.VALUE);const t=e.getLambdaId(),r=new on(nt),a=this._runtimeService.getFunctionDefinitionPrivacyVar(t);if(!a)return!1;const i=[...a.keys()],o=s.getChildren(),u=o.length;for(let d=0;d<u;d++){const g=o[d];if(g instanceof G)this._parse(g,r);else return!1}const c=r.getChildren(),l=c.length;for(let d=0;d<l;d++){const g=c[d];a.set(i[d],g)}return r.setParent(e),e}_changeLetToLambda(s){const e=s.getChildren(),t=e.length;if(t%2!==1||t===0)return;const r=new G;r.setToken(Tt);const a=new G;a.setToken(Dt);const i=[...e];for(let u=0;u<t;u++){const c=i[u];if(!(c instanceof G))return;u%2===0?c.changeToParent(r):c.changeToParent(a)}r.addChildrenFirst(a),a.setParent(r);const o=s.getParent();return o==null||o.replaceChild(s,r),r}_parse(s,e){const t=s.getChildren(),r=t.length,a=[];let i=null;const o=s.getToken().trim().toUpperCase();if(o===ri){const l=this._changeLetToLambda(s);return l!=null?this._parse(l,e):ye.create(f.ERROR)}if(o===ze){if(i=e,r===0)return new Vc(nt).setParent(e),i}else{if(o===Dt){let l=this._lambdaParameterHandler(s,e);return l===!1&&(l=ye.create(f.ERROR)),l}if(i=this._checkAstNode(s),i==null)return ye.create(f.NAME)}const u=t[0];for(let l=0;l<r;l++){const d=t[l];if(Ca(u)){if(l!==0&&l!==r-1)continue}else if(bc(d)&&l!==r-1)continue;let g=null;if(d instanceof G){if(g=this._parse(d,i),g===i)continue}else g=this._checkAstNode(d);if(g==null)return ye.create(f.NAME);if(g=Xc(g),g==null)return;switch(g.nodeType){case Z.ERROR:return g;case Z.FUNCTION:a.push(g);break;case Z.LAMBDA:a.push(g);break;case Z.LAMBDA_PARAMETER:a.push(g);break;case Z.OPERATOR:{const p=a.pop(),_=a.pop();_&&_.setParent(g),p&&p.setParent(g),a.push(g);break}case Z.REFERENCE:g.setRefOffset(this._refOffsetX,this._refOffsetY),a.push(g);break;case Z.ROOT:a.push(g);break;case Z.UNION:a.push(g);break;case Z.VALUE:a.push(g);break;case Z.PREFIX:a.push(g);break;case Z.SUFFIX:a.push(g);break}}const c=a.length;for(let l=0;l<c;l++)a[l].setParent(i);return i}_checkAstNode(s){let e=null;const t=this._astNodeFactoryList.length;for(let r=0;r<t&&(e=this._astNodeFactoryList[r].checkAndCreateNodeType(s),e==null);r++);return e}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(b.sortRules)}};It=Zc([ve(0,Te),ve(1,q.Inject(_a)),ve(2,q.Inject(yr)),ve(3,q.Inject(Cr)),ve(4,q.Inject(Sa)),ve(5,q.Inject(Dr)),ve(6,q.Inject(Er)),ve(7,q.Inject(br)),ve(8,q.Inject(Sr)),ve(9,q.Inject(Ar)),ve(10,q.Inject(Aa))],It);class Pa extends b.Disposable{constructor(){super(...arguments);h(this,"_referenceExecutorMap",new Map)}dispose(){this._referenceExecutorMap.clear()}remove(e){this._referenceExecutorMap.delete(e)}get(e){return this._referenceExecutorMap.get(e)}has(e){return this._referenceExecutorMap.has(e)}register(e,t){this._referenceExecutorMap.set(e,t)}getReferenceExecutorMap(){return this._referenceExecutorMap}}const Wt=q.createIdentifier("univer.formula.feature-calculation-manager.service");class La extends b.Disposable{constructor(){super(...arguments);h(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(e){var i,o,u;const{unitId:t,subUnitId:r,formulaId:a}=e;(u=(o=(i=this._otherFormulaData)==null?void 0:i[t])==null?void 0:o[r])==null||delete u[a]}get(e){var i,o;const{unitId:t,subUnitId:r,formulaId:a}=e;return(o=(i=this._otherFormulaData[t])==null?void 0:i[r])==null?void 0:o[a]}has(e){var i,o;const{unitId:t,subUnitId:r,formulaId:a}=e;return((o=(i=this._otherFormulaData[t])==null?void 0:i[r])==null?void 0:o[a])!=null}register(e){const{unitId:t,subUnitId:r,formulaId:a,item:i}=e;this._otherFormulaData[t]||(this._otherFormulaData[t]={}),this._otherFormulaData[t][r]||(this._otherFormulaData[t][r]={}),this._otherFormulaData[t][r][a]=i}batchRegister(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(a=>{const i=r[a];if(i==null)return!0;Object.keys(i).forEach(o=>{const u=i[o];if(u==null)return!0;this.register({unitId:t,subUnitId:a,formulaId:o,item:u})})})})}batchRemove(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(a=>{const i=r[a];if(i==null)return!0;Object.keys(i).forEach(o=>{this.remove({unitId:t,subUnitId:a,formulaId:o})})})})}getOtherFormulaData(){return this._otherFormulaData}}const Br=q.createIdentifier("univer.formula.other-formula-manager.service");class qr extends b.Disposable{constructor(){super(...arguments);h(this,"node");h(this,"children",[]);h(this,"parents",[]);h(this,"formula","");h(this,"row",-1);h(this,"column",-1);h(this,"rowCount",Number.NEGATIVE_INFINITY);h(this,"columnCount",Number.NEGATIVE_INFINITY);h(this,"subUnitId","");h(this,"unitId","");h(this,"rangeList",[]);h(this,"formulaId");h(this,"featureId");h(this,"getDirtyData");h(this,"_state",0)}dispose(){var e;super.dispose(),this.children=[],this.rangeList=[],this.parents=[],(e=this.node)==null||e.dispose()}disposeWithChildren(){this.children.forEach(e=>{e.disposeWithChildren()}),this.dispose()}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(e){const t=e.startRow,r=e.startColumn,a=e.endRow,i=e.endColumn;return!(this.row<t||this.row>a||this.column<r||this.column>i)}dependencyRange(e,t,r){var a,i;if(this.rangeList.length===0)return!1;for(let o=0,u=this.rangeList.length;o<u;o++){const c=this.rangeList[o],{unitId:l,sheetId:d,range:g}=c.gridRange;if(((a=t[l])==null?void 0:a[d])!=null)return!0;if(!e.has(l))continue;const p=e.get(l);if(!p.has(d))continue;const _=p.get(d),D=(i=r==null?void 0:r[l])==null?void 0:i[d];let{startRow:P,endRow:w,startColumn:v,endColumn:B}=g;Number.isNaN(P)&&(P=0),Number.isNaN(v)&&(v=0),Number.isNaN(w)&&(w=Number.POSITIVE_INFINITY),Number.isNaN(B)&&(B=Number.POSITIVE_INFINITY);for(const X of _){const{startRow:ue,startColumn:ge,endRow:be,endColumn:Re}=X;if(!(P>be||w<ue||v>Re||B<ge)){let Ce=!0;if(D==null||D.forValue((_e,he)=>{if(_e>=P&&_e<=w&&he>=v&&he<=B)return Ce=!1,!1}),Ce)return!0}}}return!1}pushChildren(e){this.children.push(e),e._pushParent(this)}pushRangeList(e){this.rangeList.push(e)}dependency(e){if(this.rangeList.length===0)return!1;for(let t=0,r=this.rangeList.length;t<r;t++){const a=this.rangeList[t],i=a.gridRange.unitId,o=a.gridRange.sheetId,u=a.gridRange.range;if(e.unitId===i&&e.subUnitId===o&&e.inRangeData(u))return!0}return!1}_pushParent(e){this.parents.push(e)}}class un extends b.Disposable{constructor(){super(...arguments);h(this,"_cacheItems",new Map)}dispose(){this.clear()}size(){return this._cacheItems.size}get length(){return this._cacheItems.size}add(e,t){const{token:r}=e;if(!this._cacheItems.has(r)){this._cacheItems.set(r,{unitRangeWithToken:e,treeList:[t]});return}this._cacheItems.get(r).treeList.push(t)}clear(){this._cacheItems.clear()}remove(e,t){if(!this._cacheItems.has(e))return;const r=this._cacheItems.get(e),a=r.treeList.indexOf(t);a!==-1&&r.treeList.splice(a,1)}delete(e){this._cacheItems.delete(e)}dependency(e){this._cacheItems.forEach(t=>{const{unitRangeWithToken:r,treeList:a}=t,{gridRange:i}=r,{unitId:o,sheetId:u,range:c}=i;e.unitId===o&&e.subUnitId===u&&e.inRangeData(c)&&a.forEach(l=>{if(l===e||l.children.includes(e))return!0;l.pushChildren(e)})})}}class Jc extends b.Disposable{constructor(){super(...arguments);h(this,"_otherFormulaData",{});h(this,"_featureFormulaData",new Map);h(this,"_formulaData",{})}dispose(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}getAllTree(){const e=[];return Object.values(this._otherFormulaData).forEach(t=>{if(t==null)return!0;Object.values(t).forEach(r=>{Object.values(r).forEach(a=>{a&&(a.resetState(),e.push(a))})})}),this._featureFormulaData.forEach(t=>{t&&(t.resetState(),e.push(t))}),Object.values(this._formulaData).map(t=>t==null?[]:Object.values(t).forEach(r=>r.forValue((a,i,o)=>{o&&(o.resetState(),e.push(o))}))),e}buildDependencyTree(e,t){const r=this.getAllTree();return e.length===0?(this._buildReverseDependency(r,t),r):(e instanceof un?this._buildDependencyTree(r,e,t||[]):this._buildDependencyTree(r,e,e),r)}_buildDependencyTree(e,t,r){e.forEach(a=>{t instanceof un?t.dependency(a):t.forEach(i=>{if(a===i||i.children.includes(a))return!0;i.dependency(a)&&i.pushChildren(a)})}),this._buildReverseDependency(e,r)}_buildReverseDependency(e,t){e.forEach(r=>{t==null||t.forEach(a=>{if(r===a||r.children.includes(a))return!0;r.dependency(a)&&r.pushChildren(a)})})}clearDependencyForTree(e){if(e==null)return;const t=e.parents,r=e.children;t.forEach(a=>{a.children=a.children.filter(i=>i!==e)}),r.forEach(a=>{a.parents=a.parents.filter(i=>i!==e)}),this._buildDependencyTree(t,r,r),e.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}addOtherFormulaDependency(e,t,r,a){this._otherFormulaData[e]||(this._otherFormulaData[e]={}),this._otherFormulaData[e][t]||(this._otherFormulaData[e][t]={}),this._otherFormulaData[e][t][r]=a}removeOtherFormulaDependency(e,t,r){this._otherFormulaData[e]&&this._otherFormulaData[e][t]&&r.forEach(a=>{const i=this._otherFormulaData[e][t][a];this.clearDependencyForTree(i),delete this._otherFormulaData[e][t][a]})}hasOtherFormulaDependency(e,t,r){var a,i;return((i=(a=this._otherFormulaData[e])==null?void 0:a[t])==null?void 0:i[r])!=null}addFeatureFormulaDependency(e,t){this._featureFormulaData.set(e,t)}removeFeatureFormulaDependency(e){const t=this._featureFormulaData.get(e);this.clearDependencyForTree(t),this._featureFormulaData.delete(e)}hasFeatureFormulaDependency(e){return this._featureFormulaData.has(e)}addFormulaDependency(e,t,r,a,i){this._formulaData[e]||(this._formulaData[e]={}),this._formulaData[e][t]||(this._formulaData[e][t]=new b.ObjectMatrix),this._formulaData[e][t].setValue(r,a,i)}removeFormulaDependency(e,t,r,a){if(this._formulaData[e]&&this._formulaData[e][t]){const i=this._formulaData[e][t].getValue(r,a);this.clearDependencyForTree(i),this._formulaData[e][t].realDeleteValue(r,a)}}clearFormulaDependency(e,t){this._formulaData[e]&&this._formulaData[e][t]&&this._formulaData[e][t].reset()}hasFormulaDependency(e,t,r,a){var i,o;return((o=(i=this._formulaData[e])==null?void 0:i[t])==null?void 0:o.getValue(r,a))!=null}}const Tr=q.createIdentifier("univer.formula.dependency-manager.service");var el=Object.defineProperty,tl=Object.getOwnPropertyDescriptor,rl=(n,s,e,t)=>{for(var r=t>1?void 0:t?tl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&el(s,e,r),r},et=(n,s)=>(e,t)=>s(e,t,n);const nl=1e5;let vt=class extends b.Disposable{constructor(s,e,t,r,a,i,o,u){super();h(this,"_updateRangeFlattenCache",new Map);h(this,"_dirtyUnitSheetNameMap",{});h(this,"_formulaASTCache",new Rt(nl));this._currentConfigService=s,this._runtimeService=e,this._otherFormulaManagerService=t,this._featureCalculationManagerService=r,this._interpreter=a,this._astTreeBuilder=i,this._lexer=o,this._dependencyManagerService=u}dispose(){this._updateRangeFlattenCache.clear(),this._formulaASTCache.clear(),this._dirtyUnitSheetNameMap={}}async generate(){this._updateRangeFlatten();const s=this._currentConfigService.getFormulaData(),e=this._otherFormulaManagerService.getOtherFormulaData(),t=this._currentConfigService.getUnitData(),{treeList:r,dependencyTreeCache:a}=await this._generateTreeList(s,e,t),i=this._getUpdateTreeListAndMakeDependency(r,a);this._checkIsCycleDependency(i)&&this._runtimeService.enableCycleDependency();const u=this._calculateRunList(i);return Promise.resolve(u)}_isCyclicUtil(s,e,t){if(!e.has(s)){e.add(s),t.add(s);for(let r=0;r<s.children.length;r++)if(!e.has(s.children[r])&&this._isCyclicUtil(s.children[r],e,t)||t.has(s.children[r]))return!0}return t.delete(s),!1}_checkIsCycleDependency(s){const e=new Set,t=new Set;for(let r=0,a=s.length;r<a;r++){const i=s[r];if(this._isCyclicUtil(i,e,t)===!0)return!0}return!1}async _generateTreeList(s,e,t){const r=Object.keys(s),a=Object.keys(e),i=[];this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(r,s,t,i),this._registerOtherFormulas(e,a,i),this._registerFeatureFormulas(i);const u=new un;for(let c=0,l=i.length;c<l;c++){const d=i[c];if(this._runtimeService.setCurrent(d.row,d.column,d.rowCount,d.columnCount,d.subUnitId,d.unitId),d.node==null)continue;const g=await this._getRangeListByNode(d.node);for(let p=0,_=g.length;p<_;p++){const D=g[p];d.pushRangeList(D),u.add(D,d)}}return{treeList:i,dependencyTreeCache:u}}_registerFeatureFormulas(s){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((e,t)=>{const{unitId:r,subUnitId:a,dependencyRanges:i,getDirtyData:o}=e;if(this._dependencyManagerService.hasFeatureFormulaDependency(r,a,t))return!0;const u=new qr;u.unitId=r,u.subUnitId=a,u.getDirtyData=o,u.featureId=t,u.rangeList=i.map(c=>({gridRange:c,token:gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)})})),this._dependencyManagerService.addFeatureFormulaDependency(t,u),s.push(u)})}_registerOtherFormulas(s,e,t){for(const r of e){const a=s[r];if(a==null)continue;const i=Object.keys(a);for(const o of i){const u=a[o];if(u==null)continue;const c=Object.keys(u);for(const l of c){if(this._dependencyManagerService.hasOtherFormulaDependency(r,o,l))continue;const d=u[l],{f:g}=d,p=this._generateAstNode(r,g),_=new qr;_.node=p,_.formula=g,_.unitId=r,_.subUnitId=o,_.formulaId=l,this._dependencyManagerService.addOtherFormulaDependency(r,o,l,_),t.push(_)}}}}_registerFormulas(s,e,t,r){for(const a of s){const i=e[a];if(i==null)continue;const o=Object.keys(i);for(const u of o)new b.ObjectMatrix(i[u]||{}).forValue((l,d,g)=>{if(g==null)return!0;const{f:p,x:_,y:D}=g;if(this._dependencyManagerService.hasFormulaDependency(a,u,l,d))return!0;const P=this._generateAstNode(a,p,_,D),w=new qr,v=t[a][u];w.node=P,w.formula=p,w.unitId=a,w.subUnitId=u,w.row=l,w.column=d,w.rowCount=v.rowCount,w.columnCount=v.columnCount,this._dependencyManagerService.addFormulaDependency(a,u,l,d,w),r.push(w)})}}_updateRangeFlatten(){const s=this._currentConfigService.isForceCalculate(),e=this._currentConfigService.getDirtyRanges();if(!s){this._updateRangeFlattenCache.clear();for(let t=0;t<e.length;t++){const r=e[t],a=r.range,i=r.sheetId,o=r.unitId;this._addFlattenCache(o,i,a)}this._dirtyUnitSheetNameMap=this._currentConfigService.getDirtyNameMap()}}_generateAstNode(s,e,t=0,r=0){let a=this._formulaASTCache.get(`${s}${e}##${t}-${r}`);if(a&&!this._isDirtyDefinedForNode(a))return a;const i=this._lexer.treeBuilder(e);if(Pt.has(i))return ye.create(i);if(a=this._astTreeBuilder.parse(i,t,r),a==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${s}${e}##${t}-${r}`,a),a}_addFlattenCache(s,e,t){let r=this._updateRangeFlattenCache.get(s);r==null&&(r=new Map,this._updateRangeFlattenCache.set(s,r));let a=r.get(e);a==null&&(a=[],r.set(e,a)),a.push(t)}_isPreCalculateNode(s){return s.nodeType===Z.UNION||s.nodeType===Z.PREFIX&&s.getToken()===pe.AT||s.nodeType===Z.SUFFIX&&s.getToken()===Ge.POUND}_nodeTraversalRef(s,e){const t=s.getChildren(),r=t.length;for(let a=0;a<r;a++){const i=t[a];if(this._isPreCalculateNode(i)){e.push(i);continue}else i.nodeType===Z.REFERENCE&&e.push(i);this._nodeTraversalRef(i,e)}}_nodeTraversalReferenceFunction(s,e){const t=s.getChildren(),r=t.length;for(let a=0;a<r;a++){const i=t[a];if(i.nodeType===Z.FUNCTION&&i.isAddress()){e.push(i);continue}this._nodeTraversalReferenceFunction(i,e)}}async _executeNode(s){let e;return this._interpreter.checkAsyncNode(s)?e=await this._interpreter.executeAsync(s):e=this._interpreter.execute(s),e}async _getRangeListByNode(s){const e=[],t=[];this._nodeTraversalRef(s,e),this._nodeTraversalReferenceFunction(s,t);const r=[];for(let a=0,i=e.length;a<i;a++){const o=e[a],c=(await this._executeNode(o)).toUnitRange(),l=gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}for(let a=0,i=t.length;a<i;a++){const o=t[a],c=(await this._executeNode(o)).toUnitRange(),l=gt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}return r}_isDirtyDefinedForNode(s){const e=this._currentConfigService.getDirtyDefinedNameMap(),t=this._currentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let a=0,i=r.length;a<i;a++){const o=r[a];if(s.hasDefinedName(o))return!0}}return!1}_getUpdateTreeListAndMakeDependency(s,e){const t=[],r=new Set,a=this._currentConfigService.isForceCalculate();let i=[];e.size()>s.length?i=this._dependencyManagerService.buildDependencyTree(s):i=this._dependencyManagerService.buildDependencyTree(e,s);for(let o=0,u=i.length;o<u;o++){const c=i[o];(a||c.dependencyRange(this._updateRangeFlattenCache,this._dirtyUnitSheetNameMap,this._currentConfigService.getExcludedRange())||this._includeTree(c))&&!r.has(c)&&(t.push(c),r.add(c))}return e.dispose(),t}_includeTreeFeature(s){var a,i;const e=s.unitId,t=s.subUnitId,r=s.featureId;if(r!=null){const o=this._currentConfigService.getDirtyUnitFeatureMap();if(((i=(a=o==null?void 0:o[e])==null?void 0:a[t])==null?void 0:i[r])!=null)return!0}return!1}_includeOtherFormula(s){var a,i;const e=s.unitId,t=s.subUnitId,r=s.formulaId;if(r!=null){const o=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((i=(a=o==null?void 0:o[e])==null?void 0:a[t])==null?void 0:i[r])!=null)return!0}return!1}_includeDefinedName(s){const e=s.node;return!!(e!=null&&this._isDirtyDefinedForNode(e))}_includeTree(s){var u,c,l;const e=s.unitId,t=s.subUnitId;if(this._includeTreeFeature(s)===!0||this._includeOtherFormula(s)===!0||this._includeDefinedName(s)===!0)return!0;const r=(c=(u=this._currentConfigService.getExcludedRange())==null?void 0:u[e])==null?void 0:c[t];let a=!1;if(r==null||r.forValue((d,g)=>{if(s.row===d&&s.column===g)return a=!0,!1}),a)return!1;if(((l=this._dirtyUnitSheetNameMap[e])==null?void 0:l[t])!=null)return!0;if(!this._updateRangeFlattenCache.has(e))return!1;const i=this._updateRangeFlattenCache.get(e);if(!i.has(t))return!1;const o=i.get(t);for(const d of o)if(s.inRangeData(d))return!0;return!1}_calculateRunList(s){let e=s;const t=[];for(;e.length>0;){const r=e.pop();if(r===void 0||r.isSkip())continue;if(r.isAdded()){t.push(r);continue}const a=[];for(let i=0,o=r.parents.length;i<o;i++){const u=r.parents[i];u.isAdded()||r.isSkip()||a.push(u)}a.length===0?(t.push(r),r.setSkip()):(r.setAdded(),e.push(r),e=e.concat(a))}return t.reverse()}};vt=rl([b.OnLifecycle(b.LifecycleStages.Rendered,vt),et(0,qe),et(1,Te),et(2,Br),et(3,Wt),et(4,q.Inject(At)),et(5,q.Inject(It)),et(6,q.Inject(St)),et(7,Tr)],vt);var sl=Object.defineProperty,al=Object.getOwnPropertyDescriptor,il=(n,s,e,t)=>{for(var r=t>1?void 0:t?al(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&sl(s,e,r),r},lt=(n,s)=>(e,t)=>s(e,t,n);const ol=1;exports.CalculateFormulaService=class extends b.Disposable{constructor(e,t,r,a,i,o,u){super();h(this,"_executionStartListener$",new Ct.Subject);h(this,"executionStartListener$",this._executionStartListener$.asObservable());h(this,"_executionCompleteListener$",new Ct.Subject);h(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());h(this,"_executionInProgressListener$",new Ct.Subject);h(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=e,this._lexer=t,this._currentConfigService=r,this._runtimeService=a,this._formulaDependencyGenerator=i,this._interpreter=o,this._astTreeBuilder=u}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(e,t){this._runtimeService.setRuntimeFeatureCellData(e,t)}setRuntimeFeatureRange(e,t){this._runtimeService.setRuntimeFeatureRange(e,t)}async execute(e){this._executionStartListener$.next(!0),this._currentConfigService.load(e),this._runtimeService.reset();const t=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||ol;for(let r=0;r<t&&(this._runtimeService.setFormulaCycleIndex(r),await this._execute(),an.clear(),!!this._runtimeService.isCycleDependency());r++);this._runtimeService.setFormulaExecuteStage(Ie.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),tt.clear()}async _execute(){const e=await this._apply();if(e==null)return;const{arrayFormulaRange:t,runtimeFeatureRange:r}=e,{dirtyRanges:a,excludedCell:i}=this._getArrayFormulaDirtyRangeAndExcludedRange(t,r);return a==null||a.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(a,i),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(e,t){const r=[],a={};return Object.keys(e).forEach(i=>{const o=e[i];if(o==null)return!0;Object.keys(o).forEach(u=>{const c=new b.ObjectMatrix(o[u]);if(c==null)return!0;const l=new b.ObjectMatrix;c.forValue((d,g,p)=>{l.setValue(d,g,!0),r.push({unitId:i,sheetId:u,range:p})}),a[i]==null&&(a[i]={}),a[i][u]=l})}),Object.keys(t).forEach(i=>{const o=t[i];Object.keys(o).forEach(u=>{const c=o[u];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;for(const g of d)r.push({unitId:u,sheetId:l,range:g})})})}),{dirtyRanges:r,excludedCell:a}}async _apply(e=!1){e?this._runtimeService.setFormulaExecuteStage(Ie.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(Ie.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const t=await this._formulaDependencyGenerator.generate(),r=this._interpreter;e?(this._runtimeService.setFormulaExecuteStage(Ie.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(t.length)):(this._runtimeService.setFormulaExecuteStage(Ie.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(t.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let a=[];for(let i=0,o=t.length;i<o;i++){if(await new Promise(g=>{const p=b.requestImmediateMacroTask(g);a.push(p)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(Ie.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const u=t[i],c=u.node,l=u.getDirtyData;let d;if(c==null&&l==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(u.row,u.column,u.rowCount,u.columnCount,u.subUnitId,u.unitId),l!=null&&u.featureId!=null){const{runtimeCellData:g,dirtyRanges:p}=l(u);this._runtimeService.setRuntimeFeatureCellData(u.featureId,g),this._runtimeService.setRuntimeFeatureRange(u.featureId,p)}else c!=null&&(r.checkAsyncNode(c)?d=await r.executeAsync(c):d=r.execute(c),u.formulaId!=null?this._runtimeService.setRuntimeOtherData(u.formulaId,d):this._runtimeService.setRuntimeData(d));e?(this._runtimeService.setFormulaExecuteStage(Ie.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(Ie.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return a.forEach(i=>i()),a=[],t.length>0?this._runtimeService.markedAsSuccessfullyExecuted():e||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(e,t=!0){const r=this._lexer.treeBuilder(e,t);if(Object.values(f).includes(r))return ye.create(r);const a=this._astTreeBuilder.parse(r);a==null||a.serialize()}};exports.CalculateFormulaService=il([b.OnLifecycle(b.LifecycleStages.Rendered,exports.CalculateFormulaService),lt(0,b.IConfigService),lt(1,q.Inject(St)),lt(2,qe),lt(3,Te),lt(4,q.Inject(vt)),lt(5,q.Inject(At)),lt(6,q.Inject(It))],exports.CalculateFormulaService);var ul=Object.defineProperty,cl=Object.getOwnPropertyDescriptor,ll=(n,s,e,t)=>{for(var r=t>1?void 0:t?cl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&ul(s,e,r),r},tr=(n,s)=>(e,t)=>s(e,t,n);let sr=class extends b.Disposable{constructor(n,s,e,t){super(),this._commandService=n,this._calculateFormulaService=s,this._univerInstanceService=e,this._formulaDataModel=t,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((n,s)=>{if(n.id===yn.id)this._calculateFormulaService.stopFormulaExecution();else if(n.id===vr.id){const e=n.params.formulaData;this._formulaDataModel.mergeFormulaData(e)}else if(n.id===En.id){const e=n.params;if(e.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges:t,dirtyNameMap:r,dirtyDefinedNameMap:a,dirtyUnitFeatureMap:i,dirtyUnitOtherFormulaMap:o}=e;this._calculate(!1,t,r,a,i,o)}}else if(n.id===pr.id){const e=n.params;if(e==null)return;const{arrayFormulaRange:t,arrayFormulaCellData:r}=e;this._formulaDataModel.setArrayFormulaRange(t),this._formulaDataModel.setArrayFormulaCellData(r)}}))}async _calculate(n=!1,s=[],e={},t={},r={},a={}){if(s.length===0&&Object.keys(e).length===0&&Object.keys(t).length===0&&Object.keys(r).length===0&&Object.keys(a).length===0&&n===!1)return;const i=this._formulaDataModel.getFormulaData(),o=this._formulaDataModel.getArrayFormulaCellData();this._calculateFormulaService.execute({formulaData:i,arrayFormulaCellData:o,forceCalculate:n,dirtyRanges:s,dirtyNameMap:e,dirtyDefinedNameMap:t,dirtyUnitFeatureMap:r,dirtyUnitOtherFormulaMap:a})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(n=>{const s=n.functionsExecutedState;switch(s){case yt.NOT_EXECUTED:break;case yt.STOP_EXECUTION:break;case yt.SUCCESS:this._applyFormula(n);break;case yt.INITIAL:break}this._commandService.executeCommand(Rr.id,{functionsExecutedState:s},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(n=>{this._commandService.executeCommand(Rr.id,{stageInfo:n},{onlyLocal:!0})})}async _applyFormula(n){const{unitData:s,unitOtherData:e,arrayFormulaRange:t,arrayFormulaCellData:r,clearArrayFormulaCellData:a}=n;if(!s){console.error("No sheetData from Formula Engine!");return}t&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(a),this._formulaDataModel.mergeArrayFormulaCellData(r),this._formulaDataModel.mergeArrayFormulaRange(t),this._commandService.executeCommand(pr.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(Cn.id,{unitData:ti(s),unitOtherData:e},{onlyLocal:!0})}};sr=ll([b.OnLifecycle(b.LifecycleStages.Ready,sr),tr(0,b.ICommandService),tr(1,q.Inject(exports.CalculateFormulaService)),tr(2,b.IUniverInstanceService),tr(3,q.Inject(exports.FormulaDataModel))],sr);const xa={id:"formula.mutation.register-function",type:b.CommandType.MUTATION,handler:()=>!0},kr={id:"formula.mutation.set-defined-name",type:b.CommandType.MUTATION,handler:()=>!0},Ir={id:"formula.mutation.remove-defined-name",type:b.CommandType.MUTATION,handler:()=>!0},jr={id:"formula.mutation.set-feature-calculation",type:b.CommandType.MUTATION,handler:()=>!0},$r={id:"formula.mutation.remove-feature-calculation",type:b.CommandType.MUTATION,handler:()=>!0},Yr={id:"formula.mutation.set-other-formula",type:b.CommandType.MUTATION,handler:()=>!0},Qr={id:"formula.mutation.remove-other-formula",type:b.CommandType.MUTATION,handler:()=>!0},Va={id:"formula.mutation.set-super-table",type:b.CommandType.MUTATION,handler:()=>!0},wa={id:"formula.mutation.remove-super-table",type:b.CommandType.MUTATION,handler:()=>!0},Sn={id:"formula.mutation.set-super-table-option",type:b.CommandType.MUTATION,handler:()=>!0};var fl=Object.defineProperty,hl=Object.getOwnPropertyDescriptor,ml=(n,s,e,t)=>{for(var r=t>1?void 0:t?hl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&fl(s,e,r),r},Zr=(n,s)=>(e,t)=>s(e,t,n);let Bt=class extends b.Disposable{constructor(n=[],s,e,t){super(),this._function=n,this._commandService=s,this._functionService=e,this._dataSyncPrimaryController=t,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[vr,pr,En,yn,Rr,Cn,kr,Ir,jr,$r,Yr,Qr,Va,wa,Sn,xa].forEach(n=>{var s;this._commandService.registerCommand(n),(s=this._dataSyncPrimaryController)==null||s.registerSyncingMutations(n)})}_registerFunctions(){const n=[...$s,...Ws,...Gs,...Ks,...ea,...ta,...na,...aa,...ia,...oa,...ua,...ca,...la,...fa,...ha,...da].concat(this._function).map(s=>{const e=s[0],t=s[1];return new e(t)});this._functionService.registerExecutors(...n)}};Bt=ml([b.OnLifecycle(b.LifecycleStages.Ready,Bt),Zr(1,b.ICommandService),Zr(2,Ze),Zr(3,q.Optional(Xa.DataSyncPrimaryController))],Bt);var dl=Object.defineProperty,gl=Object.getOwnPropertyDescriptor,pl=(n,s,e,t)=>{for(var r=t>1?void 0:t?gl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&dl(s,e,r),r},gs=(n,s)=>(e,t)=>s(e,t,n);let ar=class extends b.Disposable{constructor(n,s){super(),this._commandService=n,this._definedNamesService=s,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===kr.id){const s=n.params;if(s==null)return;const{id:e,unitId:t,name:r,formulaOrRefString:a,comment:i,hidden:o,localSheetId:u}=s;this._definedNamesService.registerDefinedName(t,{id:e,name:r.trim(),formulaOrRefString:a.trim(),comment:i==null?void 0:i.trim(),hidden:o,localSheetId:u})}else if(n.id===Ir.id){const s=n.params;if(s==null)return;const{unitId:e,id:t}=s;this._definedNamesService.removeDefinedName(e,t)}}))}};ar=pl([b.OnLifecycle(b.LifecycleStages.Ready,ar),gs(0,b.ICommandService),gs(1,Nt)],ar);var Rl=Object.defineProperty,_l=Object.getOwnPropertyDescriptor,El=(n,s,e,t)=>{for(var r=t>1?void 0:t?_l(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Rl(s,e,r),r},ps=(n,s)=>(e,t)=>s(e,t,n);let ir=class extends b.Disposable{constructor(n,s){super(),this._commandService=n,this._featureCalculationManagerService=s,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===jr.id){const s=n.params;if(s==null)return;const{featureId:e,calculationParam:t}=s;this._featureCalculationManagerService.register(e,t)}else if(n.id===$r.id){const s=n.params;if(s==null)return;const{featureId:e}=s;this._featureCalculationManagerService.remove(e)}}))}};ir=El([b.OnLifecycle(b.LifecycleStages.Ready,ir),ps(0,b.ICommandService),ps(1,Wt)],ir);var yl=Object.defineProperty,Cl=Object.getOwnPropertyDescriptor,Dl=(n,s,e,t)=>{for(var r=t>1?void 0:t?Cl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&yl(s,e,r),r},Jr=(n,s)=>(e,t)=>s(e,t,n);let or=class extends b.Disposable{constructor(n,s,e){super(),this._commandService=n,this._otherFormulaManagerService=s,this._dependencyManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Yr.id){const s=n.params;if(s==null)return;const e={[s.unitId]:{[s.subUnitId]:s.formulaMap}};this._otherFormulaManagerService.batchRegister(e)}else if(n.id===Qr.id){const s=n.params;if(s==null)return;const e={};s.formulaIdList.forEach(r=>e[r]=!0);const t={[s.unitId]:{[s.subUnitId]:e}};this._otherFormulaManagerService.batchRemove(t)}}))}};or=Dl([b.OnLifecycle(b.LifecycleStages.Ready,or),Jr(0,b.ICommandService),Jr(1,Br),Jr(2,Tr)],or);var bl=Object.defineProperty,Sl=Object.getOwnPropertyDescriptor,Al=(n,s,e,t)=>{for(var r=t>1?void 0:t?Sl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&bl(s,e,r),r},Rs=(n,s)=>(e,t)=>s(e,t,n);let ur=class extends b.Disposable{constructor(n,s){super(),this._commandService=n,this._superTableService=s,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===kr.id){const s=n.params;if(s==null)return;const{unitId:e,tableName:t,reference:r}=s;this._superTableService.registerTable(e,t,r)}else if(n.id===Ir.id){const s=n.params;if(s==null)return;const{unitId:e,tableName:t}=s;this._superTableService.remove(e,t)}else if(n.id===Sn.id){const s=n.params;if(s==null)return;const{tableOption:e,tableOptionType:t}=s;this._superTableService.registerTableOptionMap(e,t)}}))}};ur=Al([b.OnLifecycle(b.LifecycleStages.Ready,ur),Rs(0,b.ICommandService),Rs(1,bn)],ur);class Pl extends b.Disposable{constructor(){super(...arguments);h(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(e){this._dirtyConversionMap.delete(e)}get(e){return this._dirtyConversionMap.get(e)}has(e){return this._dirtyConversionMap.has(e)}register(e,t){this._dirtyConversionMap.set(e,t)}getDirtyConversionMap(){return this._dirtyConversionMap}}const Oa=q.createIdentifier("univer.formula.active-dirty-manager.service");var Ll=Object.defineProperty,xl=Object.getOwnPropertyDescriptor,Vl=(n,s,e,t)=>{for(var r=t>1?void 0:t?xl(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&Ll(s,e,r),r},en=(n,s)=>(e,t)=>s(e,t,n);let cr=class extends b.Disposable{constructor(n,s){super(),this._commandService=n,this._dependencyManagerService=s,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===$r.id||n.id===jr.id){const s=n.params;if(s==null)return;const{featureId:e}=s;this._dependencyManagerService.removeFeatureFormulaDependency(e)}else if(n.id===Qr.id){const s=n.params;if(s==null)return;this._dependencyManagerService.removeOtherFormulaDependency(s.unitId,s.subUnitId,s.formulaIdList)}else if(n.id===Yr.id){const s=n.params;if(s==null)return;const e=s.formulaMap,t=[];Object.keys(e).forEach(r=>{t.push(r)}),this._dependencyManagerService.removeOtherFormulaDependency(s.unitId,s.subUnitId,t)}else if(n.id===vr.id){const s=n.params.formulaData;Object.keys(s).forEach(e=>{if(s[e]==null)return!0;Object.keys(s[e]).forEach(t=>{const r=s[e][t];if(r==null)return this._dependencyManagerService.clearFormulaDependency(e,t),!0;new b.ObjectMatrix(r).forValue((a,i)=>{this._dependencyManagerService.removeFormulaDependency(e,t,a,i)})})})}}))}};cr=Vl([b.OnLifecycle(b.LifecycleStages.Ready,cr),en(0,b.ICommandService),en(1,Wt),en(1,Tr)],cr);var wl=Object.defineProperty,Ol=Object.getOwnPropertyDescriptor,Ul=(n,s,e,t)=>{for(var r=t>1?void 0:t?Ol(s,e):s,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(s,e,r):i(r))||r);return t&&r&&wl(s,e,r),r},Ml=(n,s)=>(e,t)=>s(e,t,n);const Fl="base-formula-engine";var tn;exports.UniverFormulaEnginePlugin=(tn=class extends b.Plugin{constructor(s,e){super(),this._config=s,this._injector=e}onStarting(){this._initialize()}_initialize(){var e;const s=[[Ze,{useClass:Ea}],[Wt,{useClass:Pa}],[Nt,{useClass:Ra}],[Oa,{useClass:Pl}],[bn,{useClass:vc}],[exports.FormulaDataModel],[Lr],[Bt,{useFactory:()=>{var t;return this._injector.createInstance(Bt,(t=this._config)==null?void 0:t.function)}}],[ir],[ar],[ur]];(e=this._config)!=null&&e.notExecuteFormula||s.push([exports.CalculateFormulaService],[Br,{useClass:La}],[Te,{useClass:exports.FormulaRuntimeService}],[qe,{useClass:exports.FormulaCurrentConfigService}],[Tr,{useClass:Jc}],[sr],[or],[cr],[vt],[At],[It],[St],[_a],[yr],[Cr],[Sa],[Dr],[Er],[br],[Sr],[Ar],[Aa]),s.forEach(t=>this._injector.add(t))}},h(tn,"pluginName",Fl),tn);exports.UniverFormulaEnginePlugin=Ul([Ml(1,q.Inject(q.Injector))],exports.UniverFormulaEnginePlugin);function Ua(n,s){const e=n.sequenceNodesBuilder(s);return!(!e||e.every(t=>typeof t=="string"||t.nodeType!==Ae.REFERENCE))}function vl(n,s,e,t,r,a){if(!Ua(n,s))return s;const i=n.sequenceNodesBuilder(s),o=(p,_)=>({startRow:p,endRow:p,startColumn:_,endColumn:_}),u=o(e,t),c=b.Rectangle.getRelativeRange(o(r,a),u),l=b.Tools.deepClone(i),d=Array.isArray(l)?l.map(p=>{if(typeof p=="object"&&p.nodeType===Ae.REFERENCE){const _=je(p.token),D=b.Rectangle.getPositionRange(c,_.range),P=Xe(D);return{...p,token:P}}return p}):l;return`=${d&&hr(d)}`}exports.ArrayValueObject=de;exports.AsyncArrayObject=Is;exports.AsyncObject=ks;exports.BaseFunction=L;exports.BaseReferenceObject=xt;exports.BaseValueObject=Ke;exports.BooleanValue=at;exports.BooleanValueObject=j;exports.CustomFunction=Ni;exports.DefinedNamesService=Ra;exports.ERROR_TYPE_SET=Pt;exports.ErrorType=f;exports.ErrorValueObject=m;exports.FUNCTION_NAMES_ARRAY=Ys;exports.FUNCTION_NAMES_COMPATIBILITY=Et;exports.FUNCTION_NAMES_CUBE=Xs;exports.FUNCTION_NAMES_DATABASE=qs;exports.FUNCTION_NAMES_DATE=Oe;exports.FUNCTION_NAMES_ENGINEERING=ra;exports.FUNCTION_NAMES_FINANCIAL=sa;exports.FUNCTION_NAMES_INFORMATION=xe;exports.FUNCTION_NAMES_LOGICAL=rt;exports.FUNCTION_NAMES_LOOKUP=De;exports.FUNCTION_NAMES_MATH=oe;exports.FUNCTION_NAMES_STATISTICAL=le;exports.FUNCTION_NAMES_TEXT=Ne;exports.FUNCTION_NAMES_UNIVER=ma;exports.FUNCTION_NAMES_WEB=ga;exports.FeatureCalculationManagerService=Pa;exports.FormulaExecuteStageType=Ie;exports.FormulaExecutedStateType=yt;exports.FunctionService=Ea;exports.FunctionType=Es;exports.IActiveDirtyManagerService=Oa;exports.IDefinedNamesService=Nt;exports.IFeatureCalculationManagerService=Wt;exports.IFormulaCurrentConfigService=qe;exports.IFormulaRuntimeService=Te;exports.IFunctionService=Ze;exports.IOtherFormulaManagerService=Br;exports.LexerNode=G;exports.LexerTreeBuilder=Lr;exports.NullValueObject=ae;exports.NumberValueObject=C;exports.OtherFormulaManagerService=La;exports.RangeReferenceObject=kt;exports.RegisterFunctionMutation=xa;exports.RemoveDefinedNameMutation=Ir;exports.RemoveFeatureCalculationMutation=$r;exports.RemoveOtherFormulaMutation=Qr;exports.RemoveSuperTableMutation=wa;exports.SetArrayFormulaDataMutation=pr;exports.SetDefinedNameMutation=kr;exports.SetFeatureCalculationMutation=jr;exports.SetFormulaCalculationNotificationMutation=Rr;exports.SetFormulaCalculationResultMutation=Cn;exports.SetFormulaCalculationStartMutation=En;exports.SetFormulaCalculationStopMutation=yn;exports.SetFormulaDataMutation=vr;exports.SetOtherFormulaMutation=Yr;exports.SetSuperTableMutation=Va;exports.SetSuperTableOptionMutation=Sn;exports.StringValueObject=fe;exports.ValueObjectFactory=it;exports.compareToken=U;exports.convertUnitDataToRuntime=Ds;exports.deserializeRangeForR1C1=js;exports.deserializeRangeWithSheet=je;exports.functionArray=$s;exports.functionCompatibility=Ws;exports.functionCube=Gs;exports.functionDatabase=Ks;exports.functionDate=ea;exports.functionEngineering=ta;exports.functionFinancial=na;exports.functionInformation=aa;exports.functionLogical=ia;exports.functionLookup=oa;exports.functionMath=ua;exports.functionMeta=ca;exports.functionStatistical=la;exports.functionText=fa;exports.functionUniver=ha;exports.functionWeb=da;exports.generateStringWithSequence=hr;exports.getAbsoluteRefTypeWitString=ci;exports.getAbsoluteRefTypeWithSingleString=Ft;exports.getRangeWithRefsString=li;exports.handleNumfmtInCell=Ui;exports.includeFormulaLexerToken=Cs;exports.initSheetFormulaData=pa;exports.isFormulaLexerToken=Mt;exports.isFormulaTransformable=Ua;exports.isInDirtyRange=_s;exports.isReferenceString=Vs;exports.isReferenceStringWithEffectiveColumn=mr;exports.isReferenceStrings=Ms;exports.matchRefDrawToken=ei;exports.matchToken=z;exports.normalizeSheetName=Ja;exports.operatorToken=se;exports.sequenceNodeType=Ae;exports.serializeRange=Xe;exports.serializeRangeToRefString=gt;exports.serializeRangeWithSheet=ws;exports.serializeRangeWithSpreadsheet=Os;exports.singleReferenceToGrid=nr;exports.strip=sn;exports.stripErrorMargin=vs;exports.transformFormula=vl;