@univerjs/engine-formula 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),rxjs=require("rxjs"),rpc=require("@univerjs/rpc");function isInDirtyRange(dirtyRanges,unitId,sheetId,row,column){for(let i=0,len=dirtyRanges.length;i<len;i++){const dirtyRange=dirtyRanges[i];if(unitId!==dirtyRange.unitId||sheetId!==dirtyRange.sheetId)continue;const{startRow,startColumn,endRow,endColumn}=dirtyRange.range;if(row>=startRow&&row<=endRow&&column>=startColumn&&column<=endColumn)return!0}return!1}__name(isInDirtyRange,"isInDirtyRange");var ErrorType$1=(ErrorType2=>(ErrorType2.DIV_BY_ZERO="#DIV/0!",ErrorType2.NAME="#NAME?",ErrorType2.VALUE="#VALUE!",ErrorType2.NUM="#NUM!",ErrorType2.NA="#N/A",ErrorType2.CYCLE="#CYCLE!",ErrorType2.REF="#REF!",ErrorType2.SPILL="#SPILL!",ErrorType2.CALC="#CALC!",ErrorType2.ERROR="#ERROR!",ErrorType2.CONNECT="#GETTING_DATA",ErrorType2.NULL="#NULL!",ErrorType2))(ErrorType$1||{});const ERROR_TYPE_SET=new Set(Object.values(ErrorType$1));var FunctionType=(FunctionType2=>(FunctionType2[FunctionType2.Financial=0]="Financial",FunctionType2[FunctionType2.Date=1]="Date",FunctionType2[FunctionType2.Math=2]="Math",FunctionType2[FunctionType2.Statistical=3]="Statistical",FunctionType2[FunctionType2.Lookup=4]="Lookup",FunctionType2[FunctionType2.Database=5]="Database",FunctionType2[FunctionType2.Text=6]="Text",FunctionType2[FunctionType2.Logical=7]="Logical",FunctionType2[FunctionType2.Information=8]="Information",FunctionType2[FunctionType2.Engineering=9]="Engineering",FunctionType2[FunctionType2.Cube=10]="Cube",FunctionType2[FunctionType2.Compatibility=11]="Compatibility",FunctionType2[FunctionType2.Web=12]="Web",FunctionType2[FunctionType2.Array=13]="Array",FunctionType2[FunctionType2.Univer=14]="Univer",FunctionType2[FunctionType2.User=15]="User",FunctionType2[FunctionType2.DefinedName=16]="DefinedName",FunctionType2))(FunctionType||{}),operatorToken=(operatorToken2=>(operatorToken2.PLUS="+",operatorToken2.MINUS="-",operatorToken2.MULTIPLY="*",operatorToken2.DIVIDED="/",operatorToken2.CONCATENATE="&",operatorToken2.POWER="^",operatorToken2.EQUALS="=",operatorToken2.NOT_EQUAL="<>",operatorToken2.GREATER_THAN=">",operatorToken2.GREATER_THAN_OR_EQUAL=">=",operatorToken2.LESS_THAN="<",operatorToken2.LESS_THAN_OR_EQUAL="<=",operatorToken2))(operatorToken||{}),compareToken=(compareToken2=>(compareToken2.EQUALS="=",compareToken2.NOT_EQUAL="<>",compareToken2.GREATER_THAN=">",compareToken2.GREATER_THAN_OR_EQUAL=">=",compareToken2.LESS_THAN="<",compareToken2.LESS_THAN_OR_EQUAL="<=",compareToken2))(compareToken||{});const OPERATOR_TOKEN_PRIORITY=new Map([["<>",3],["<",3],[">=",3],["=",3],[">",3],["<=",3],["&",2],["+",2],["-",2],["/",1],["*",1],["^",0]]),OPERATOR_TOKEN_SET=new Set(OPERATOR_TOKEN_PRIORITY.keys()),OPERATOR_TOKEN_COMPARE_SET=new Set(["=","<>",">",">=","<","<="]);var matchToken=(matchToken2=>(matchToken2.OPEN_BRACKET="(",matchToken2.CLOSE_BRACKET=")",matchToken2.COMMA=",",matchToken2.SINGLE_QUOTATION="'",matchToken2.DOUBLE_QUOTATION='"',matchToken2.OPEN_BRACES="{",matchToken2.CLOSE_BRACES="}",matchToken2.COLON=":",matchToken2.OPEN_SQUARE_BRACKET="[",matchToken2.CLOSE_SQUARE_BRACKET="]",matchToken2))(matchToken||{}),suffixToken=(suffixToken2=>(suffixToken2.PERCENTAGE="%",suffixToken2.POUND="#",suffixToken2))(suffixToken||{});const SUFFIX_TOKEN_SET=new Set(["%","#"]);var prefixToken=(prefixToken2=>(prefixToken2.AT="@",prefixToken2.MINUS="-",prefixToken2))(prefixToken||{});const SPACE_TOKEN=" ",FORMULA_LEXER_TOKENS=[...Object.values(compareToken),...Object.values(operatorToken),...Object.values(matchToken),...Object.values(suffixToken),...Object.values(prefixToken)];function isFormulaLexerToken(str){return FORMULA_LEXER_TOKENS.includes(str)}__name(isFormulaLexerToken,"isFormulaLexerToken");function includeFormulaLexerToken(str){for(const token of FORMULA_LEXER_TOKENS)if(str.indexOf(token)>-1)return!0;return!1}__name(includeFormulaLexerToken,"includeFormulaLexerToken");function normalizeSheetName(sheetName){return sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"?sheetName.substring(1,sheetName.length-1):sheetName}__name(normalizeSheetName,"normalizeSheetName");function matchRefDrawToken(char){return isFormulaLexerToken(char)&&char!==matchToken.CLOSE_BRACES&&char!==matchToken.CLOSE_BRACKET&&char!==matchToken.SINGLE_QUOTATION&&char!==matchToken.DOUBLE_QUOTATION||char===" "}__name(matchRefDrawToken,"matchRefDrawToken");function convertUnitDataToRuntime(unitData){const arrayFormulaCellData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;arrayFormulaCellData[unitId]==null&&(arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];arrayFormulaCellData[unitId][sheetId]=new core.ObjectMatrix(cellData)})}),arrayFormulaCellData}__name(convertUnitDataToRuntime,"convertUnitDataToRuntime");function convertRuntimeToUnitData(unitData){const unitPrimitiveData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;unitPrimitiveData[unitId]==null&&(unitPrimitiveData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];unitPrimitiveData[unitId][sheetId]=cellData.getData()})}),unitPrimitiveData}__name(convertRuntimeToUnitData,"convertRuntimeToUnitData");const DEFAULT_TOKEN_TYPE_PARAMETER="P_1",DEFAULT_TOKEN_TYPE_ROOT="R_1",DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER="L_1",DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER="LR_1",DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER="LO_1",DEFAULT_TOKEN_LET_FUNCTION_NAME="LET",DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME="LAMBDA",DEFAULT_TOKEN_CUBE_FUNCTION_NAME="CUBE",_LexerNode=class _LexerNode{constructor(){__publicField(this,"_parent");__publicField(this,"_token",DEFAULT_TOKEN_TYPE_ROOT);__publicField(this,"_children",[]);__publicField(this,"_lambdaId");__publicField(this,"_functionDefinitionPrivacyVar");__publicField(this,"_lambdaParameter","");__publicField(this,"_startIndex",-1);__publicField(this,"_endIndex",-1);__publicField(this,"_definedNames",[])}dispose(){var _a24;this._children.forEach(node=>{typeof node!="string"&&node.dispose()}),(_a24=this._functionDefinitionPrivacyVar)==null||_a24.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(lambdaId){this._lambdaId=lambdaId}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(lambdaPrivacyVar){this._functionDefinitionPrivacyVar=lambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(lambdaParameter){this._lambdaParameter=lambdaParameter}getParent(){return this._parent}setParent(lexerNode){this._parent=lexerNode}getChildren(){return this._children}setChildren(children){this._children=children}addChildren(children){this._children.push(children)}addChildrenFirst(children){this._children.unshift(children)}getToken(){return this._token}setToken(token){this._token=token}setIndex(st,ed){this._startIndex=st,this._endIndex=ed}setDefinedNames(definedNames){this._definedNames=definedNames}hasDefinedNames(){return this._definedNames.length>0}replaceChild(lexerNode,newLexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&(this.getChildren().splice(i,1,newLexerNode),newLexerNode.setParent(this))}changeToParent(newParentLexerNode){const parentNode=this.getParent();parentNode&&parentNode.removeChild(this),this.setParent(newParentLexerNode),newParentLexerNode.getChildren().push(this)}removeChild(lexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&this.getChildren().splice(i,1)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];item instanceof _LexerNode?childrenSerialization.push(item.serialize()):childrenSerialization.push(item)}return{token,st:this._startIndex,ed:this._endIndex,children:childrenSerialization}}_getIndexInParent(lexerNode){const childrenNode=this.getChildren(),childrenCount=childrenNode.length;for(let i=0;i<childrenCount;i++)if(childrenNode[i]===lexerNode)return i}};__name(_LexerNode,"LexerNode");let LexerNode=_LexerNode;const _FormulaAstLRU=class _FormulaAstLRU{constructor(cacheCount){__publicField(this,"_cache");this._cache=new core.LRUMap(cacheCount)}set(formulaString,node){const hash=this._hash(formulaString);this._cache.set(hash,node)}get(formulaString){const hash=this._hash(formulaString);return this._cache.get(hash)}clear(){this._cache.clear()}_hash(formulaString){return core.hashAlgorithm(formulaString)}};__name(_FormulaAstLRU,"FormulaAstLRU");let FormulaAstLRU=_FormulaAstLRU;const UNIT_NAME_REGEX='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',SHEET_NAME_REGEX="((?![\\[\\]\\/?*\\\\]).)*!",ABSOLUTE_SYMBOL="$",RANGE_SYMBOL="\\s*?:\\s*?",COLUMN_REGEX="[A-Za-z]+",ROW_REGEX="[1-9][0-9]*",UNIT_NAME_SHEET_NAME_REGEX=`'?(${UNIT_NAME_REGEX})?(${SHEET_NAME_REGEX})?'?`,SIMPLE_SINGLE_RANGE_REGEX=`\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}`,REFERENCE_MULTIPLE_RANGE_REGEX=`^(${prefixToken.AT})?${UNIT_NAME_SHEET_NAME_REGEX}${SIMPLE_SINGLE_RANGE_REGEX}${RANGE_SYMBOL}${SIMPLE_SINGLE_RANGE_REGEX}$`,REFERENCE_SINGLE_RANGE_REGEX=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?${SIMPLE_SINGLE_RANGE_REGEX}(${suffixToken.POUND})?$`,REFERENCE_REGEX_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_SINGLE_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_SINGLE_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,$SUPER_TABLE_COLUMN_REGEX="[.*?]",$ARRAY_VALUE_REGEX="{.*?}";function isReferenceString(refString){return new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(refString)||new RegExp(REFERENCE_MULTIPLE_RANGE_REGEX).test(refString)||new RegExp(REFERENCE_REGEX_ROW).test(refString)||new RegExp(REFERENCE_REGEX_COLUMN).test(refString)}__name(isReferenceString,"isReferenceString");var sequenceNodeType=(sequenceNodeType2=>(sequenceNodeType2[sequenceNodeType2.NORMAL=0]="NORMAL",sequenceNodeType2[sequenceNodeType2.NUMBER=1]="NUMBER",sequenceNodeType2[sequenceNodeType2.STRING=2]="STRING",sequenceNodeType2[sequenceNodeType2.FUNCTION=3]="FUNCTION",sequenceNodeType2[sequenceNodeType2.REFERENCE=4]="REFERENCE",sequenceNodeType2[sequenceNodeType2.ARRAY=5]="ARRAY",sequenceNodeType2[sequenceNodeType2.DEFINED_NAME=6]="DEFINED_NAME",sequenceNodeType2))(sequenceNodeType||{});function generateStringWithSequence(newSequenceNodes){let sequenceString="";for(const node of newSequenceNodes)typeof node=="string"?sequenceString+=node:sequenceString+=node.token;return sequenceString}__name(generateStringWithSequence,"generateStringWithSequence");const $ROW_REGEX=/[^0-9]/g,$COLUMN_REGEX=/[^A-Za-z]/g;function getAbsoluteRefTypeWithSingleString(singleRefString){let isColumnAbsolute=singleRefString[0]==="$";const remainChar=singleRefString.substring(1);let isRowAbsolute=remainChar.indexOf("$")>-1;return core.Tools.isStringNumber(remainChar)&&isColumnAbsolute&&!isRowAbsolute&&(isColumnAbsolute=!1,isRowAbsolute=!0),isColumnAbsolute&&isRowAbsolute?core.AbsoluteRefType.ALL:isColumnAbsolute?core.AbsoluteRefType.COLUMN:isRowAbsolute?core.AbsoluteRefType.ROW:core.AbsoluteRefType.NONE}__name(getAbsoluteRefTypeWithSingleString,"getAbsoluteRefTypeWithSingleString");function getAbsoluteRefTypeWitString(refString){const sheetArray=refString.split("!");sheetArray.length>1&&(refString=sheetArray[sheetArray.length-1]);const refArray=refString.split(":");return refArray.length>1?{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0]),endAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[1])}:{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0])}}__name(getAbsoluteRefTypeWitString,"getAbsoluteRefTypeWitString");function _getAbsoluteToken(absoluteRefType=core.AbsoluteRefType.NONE){let rowAbsoluteString="",columnAbsoluteString="";return absoluteRefType===core.AbsoluteRefType.ROW?rowAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.COLUMN?columnAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.ALL&&(rowAbsoluteString="$",columnAbsoluteString="$"),{rowAbsoluteString,columnAbsoluteString}}__name(_getAbsoluteToken,"_getAbsoluteToken");function serializeRange(range){const{startColumn,startRow,endColumn,endRow,startAbsoluteRefType,endAbsoluteRefType,rangeType=core.RANGE_TYPE.NORMAL}=range,start=_getAbsoluteToken(startAbsoluteRefType),end=_getAbsoluteToken(endAbsoluteRefType);if(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.ALL){const startStr2=`${start.rowAbsoluteString}${startRow+1}`,endStr2=`${end.rowAbsoluteString}${endRow+1}`;return`${startStr2}:${endStr2}`}if(rangeType===core.RANGE_TYPE.COLUMN){const startStr2=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}`,endStr2=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}`;return`${startStr2}:${endStr2}`}const startStr=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}${start.rowAbsoluteString}${startRow+1}`,endStr=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}${end.rowAbsoluteString}${endRow+1}`;return startStr===endStr?startStr:`${startStr}:${endStr}`}__name(serializeRange,"serializeRange");function serializeRangeWithSheet(sheetName,range){return needsQuoting(sheetName)?`'${sheetName}'!${serializeRange(range)}`:`${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSheet,"serializeRangeWithSheet");function serializeRangeWithSpreadsheet(unit,sheetName,range){return needsQuoting(unit)||needsQuoting(sheetName)?`'[${unit}]${sheetName}'!${serializeRange(range)}`:`[${unit}]${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSpreadsheet,"serializeRangeWithSpreadsheet");function serializeRangeToRefString(gridRangeName){const{unitId,sheetName,range}=gridRangeName;return unitId!=null&&unitId.length>0&&sheetName!=null&&sheetName.length>0?serializeRangeWithSpreadsheet(unitId,sheetName,range):sheetName!=null&&sheetName.length>0?serializeRangeWithSheet(sheetName,range):serializeRange(range)}__name(serializeRangeToRefString,"serializeRangeToRefString");function singleReferenceToGrid(refBody){const row=Number.parseInt(refBody.replace($ROW_REGEX,""))-1,column=core.Tools.ABCatNum(refBody.replace($COLUMN_REGEX,"")),absoluteRefType=getAbsoluteRefTypeWithSingleString(refBody);return{row,column,absoluteRefType}}__name(singleReferenceToGrid,"singleReferenceToGrid");function handleRefStringInfo(refString){const unitIdMatch=new RegExp(UNIT_NAME_REGEX).exec(refString);let unitId="";unitIdMatch!=null&&(unitId=unitIdMatch[0].trim(),unitId=unitId.slice(1,unitId.length-1),refString=refString.replace(new RegExp(UNIT_NAME_REGEX),""));const sheetNameIndex=refString.indexOf("!");let sheetName="",refBody="";return sheetNameIndex>-1?(sheetName=refString.substring(0,sheetNameIndex),sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"&&(sheetName=sheetName.substring(1,sheetName.length-1)),refBody=refString.substring(sheetNameIndex+1)):refBody=refString,{refBody,sheetName,unitId}}__name(handleRefStringInfo,"handleRefStringInfo");function deserializeRangeWithSheet(refString){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReferenceToGrid(refBody),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReferenceToGrid(refStartString),endGrid=singleReferenceToGrid(refEndString),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;let rangeType=core.RANGE_TYPE.NORMAL;return Number.isNaN(startRow)&&Number.isNaN(endRow)?rangeType=core.RANGE_TYPE.COLUMN:Number.isNaN(startColumn)&&Number.isNaN(endColumn)&&(rangeType=core.RANGE_TYPE.ROW),{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType,rangeType}}}__name(deserializeRangeWithSheet,"deserializeRangeWithSheet");function isReferenceStringWithEffectiveColumn(refString){if(!isReferenceString(refString))return!1;const{range}=deserializeRangeWithSheet(refString);return!(range.endColumn>=16384)}__name(isReferenceStringWithEffectiveColumn,"isReferenceStringWithEffectiveColumn");function getRangeWithRefsString(refString,getSheetIdByName){const valueArray=(refString==null?void 0:refString.split(","))||[];return refString===""||valueArray.length===0?[]:isReferenceStrings(refString)?valueArray.map(ref=>{const unitRange=deserializeRangeWithSheet(ref);return{unitId:unitRange.unitId,sheetId:getSheetIdByName(unitRange.sheetName),range:unitRange.range,sheetName:unitRange.sheetName}}):[]}__name(getRangeWithRefsString,"getRangeWithRefsString");function isReferenceStrings(refString){return((refString==null?void 0:refString.split(","))||[]).every(refString2=>isReferenceStringWithEffectiveColumn(refString2.trim()))}__name(isReferenceStrings,"isReferenceStrings");function needsQuoting(name){return name.length===0?!1:!!(includeFormulaLexerToken(name)||isA1Notation(name)||isR1C1Notation(name)||startsWithNonAlphabetic(name)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(name))}__name(needsQuoting,"needsQuoting");function isA1Notation(name){const match=name.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(name)&&match!==null}__name(isA1Notation,"isA1Notation");function isR1C1Notation(name){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(name)}__name(isR1C1Notation,"isR1C1Notation");function startsWithNonAlphabetic(name){return!new RegExp("^\\p{Letter}","u").test(name.charAt(0))}__name(startsWithNonAlphabetic,"startsWithNonAlphabetic");const FORMULA_CACHE_LRU_COUNT$2=1e5,FormulaLexerNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),FormulaSequenceNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),_LexerTreeBuilder=class _LexerTreeBuilder extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentLexerNode",new LexerNode);__publicField(this,"_upLevel",0);__publicField(this,"_segment","");__publicField(this,"_bracketState",[]);__publicField(this,"_squareBracketState",0);__publicField(this,"_bracesState",0);__publicField(this,"_singleQuotationState",0);__publicField(this,"_doubleQuotationState",0);__publicField(this,"_lambdaState",!1);__publicField(this,"_colonState",!1);__publicField(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),FormulaLexerNodeCache.clear(),FormulaSequenceNodeCache.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(formulaString,strIndex){const current=this._getCurrentParamIndex(formulaString,strIndex);if(current==null||current===ErrorType$1.VALUE)return;const lexerNode=current[0];if(typeof lexerNode=="string")return;let parent=lexerNode.getParent(),children=lexerNode;for(;parent;){const token=parent.getToken();if(token!==DEFAULT_TOKEN_TYPE_PARAMETER&&!isFormulaLexerToken(token)&&parent.getStartIndex()!==-1){const paramIndex=parent.getChildren().indexOf(children);return{functionName:token,paramIndex}}children=parent,parent=parent.getParent()}}checkIfAddBracket(formulaString){let lastBracketCount=0,lastIndex=formulaString.length-1,lastString=formulaString[lastIndex];for(;(lastString===matchToken.CLOSE_BRACKET||lastString===" ")&&lastIndex>=0;)lastString===matchToken.CLOSE_BRACKET&&lastBracketCount++,lastString=formulaString[--lastIndex];const current=this._getCurrentParamIndex(formulaString,formulaString.length-2);if(current==null||current===ErrorType$1.VALUE)return 0;const lexerNode=current[0];if(typeof lexerNode=="string")return 0;let parent=lexerNode.getParent(),bracketCount=0;for(current[1]===matchToken.OPEN_BRACKET&&bracketCount++;parent;){const token=parent.getToken();token!==DEFAULT_TOKEN_TYPE_PARAMETER&&token!==matchToken.COLON&&parent.getStartIndex()!==-1&&token.toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&(lastBracketCount===0?bracketCount+=1:lastBracketCount--),parent=parent.getParent()}return bracketCount}sequenceNodesBuilder(formulaString){const sequenceNodesCache=FormulaSequenceNodeCache.get(formulaString);if(sequenceNodesCache)return[...sequenceNodesCache];const sequenceArray=this._getSequenceArray(formulaString);if(sequenceArray.length===0)return;const newSequenceNodes=this.getSequenceNode(sequenceArray);return FormulaSequenceNodeCache.set(formulaString,[...newSequenceNodes]),newSequenceNodes}convertRefersToAbsolute(formulaString,startAbsoluteRefType,endAbsoluteRefType){const nodes=this.sequenceNodesBuilder(formulaString);if(nodes==null)return formulaString;let prefixToken2="";formulaString.substring(0,1)===operatorToken.EQUALS&&(prefixToken2=operatorToken.EQUALS);for(let i=0,len=nodes.length;i<len;i++){const node=nodes[i];if(typeof node!="string"&&node.nodeType===sequenceNodeType.REFERENCE){const{token,endIndex}=node,sequenceGrid=deserializeRangeWithSheet(token);if(sequenceGrid==null)continue;const{range,sheetName,unitId}=sequenceGrid,newRange={...range,startAbsoluteRefType,endAbsoluteRefType},newToken=serializeRangeToRefString({range:newRange,unitId,sheetName}),minusCount=newToken.length-token.length;nodes[i]={...node,token:newToken,endIndex:endIndex+minusCount};for(let j=i+1;j<len;j++){const nextNode=nodes[j];typeof nextNode!="string"&&(nextNode.startIndex+=minusCount,nextNode.endIndex+=minusCount)}}}return`${prefixToken2}${generateStringWithSequence(nodes)}`}moveFormulaRefOffset(formulaString,refOffsetX,refOffsetY,ignoreAbsolute=!1){const sequenceNodes=this.sequenceNodesBuilder(formulaString);if(sequenceNodes==null)return formulaString;const newSequenceNodes=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||node.nodeType!==sequenceNodeType.REFERENCE){newSequenceNodes.push(node);continue}const{token}=node,sequenceGrid=deserializeRangeWithSheet(token),{sheetName,unitId:sequenceUnitId}=sequenceGrid;let newRange=sequenceGrid.range;if(!ignoreAbsolute&&newRange.startAbsoluteRefType===core.AbsoluteRefType.ALL&&newRange.endAbsoluteRefType===core.AbsoluteRefType.ALL){newSequenceNodes.push(node);continue}else newRange=core.moveRangeByOffset(newRange,refOffsetX,refOffsetY,ignoreAbsolute);let newToken="";core.isValidRange(newRange)?newToken=serializeRangeToRefString({range:newRange,unitId:sequenceUnitId,sheetName}):newToken=ErrorType$1.REF,newSequenceNodes.push({...node,token:newToken})}return`=${generateStringWithSequence(newSequenceNodes)}`}getSequenceNode(sequenceArray){const sequenceNodes=[];let maybeString=!1;for(let i=0,len=sequenceArray.length;i<len;i++){const item=sequenceArray[i],preItem=sequenceArray[i-1],{segment,currentString}=item;if(currentString===matchToken.DOUBLE_QUOTATION&&(maybeString=!0),(segment!==""||i===0)&&i!==len-1){sequenceNodes.push(currentString);continue}let preSegment=(preItem==null?void 0:preItem.segment)||"",startIndex=i-preSegment.length,endIndex=i-1,deleteEndIndex=i-1;if(i===len-1&&this._isLastMergeString(currentString)&&(preSegment+=currentString,endIndex+=1),preSegment===""||OPERATOR_TOKEN_PRIORITY.has(preSegment)){sequenceNodes.push(currentString);continue}const preSegmentTrim=preSegment.trim(),preSegmentNotPrefixToken=this._replacePrefixString(preSegmentTrim);if(maybeString===!0&&preSegmentTrim[preSegmentTrim.length-1]===matchToken.DOUBLE_QUOTATION)maybeString=!1,this._processPushSequenceNode(sequenceNodes,sequenceNodeType.STRING,preSegment,startIndex,endIndex,deleteEndIndex);else if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(preSegmentNotPrefixToken)&&isReferenceStringWithEffectiveColumn(preSegmentNotPrefixToken)){if(preSegmentNotPrefixToken.length!==preSegmentTrim.length){const minusCount=preSegmentTrim.length-preSegmentNotPrefixToken.length;deleteEndIndex+=minusCount,startIndex+=minusCount,preSegment=this._replacePrefixString(preSegment)}this._processPushSequenceNode(sequenceNodes,sequenceNodeType.REFERENCE,preSegment,startIndex,endIndex,deleteEndIndex)}else core.Tools.isStringNumber(preSegmentTrim)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.NUMBER,preSegment,startIndex,endIndex,deleteEndIndex):preSegmentTrim.length>0&&this._processPushSequenceNode(sequenceNodes,sequenceNodeType.FUNCTION,preSegment,startIndex,endIndex,deleteEndIndex);(i!==len-1||!this._isLastMergeString(currentString))&&sequenceNodes.push(currentString)}return this._mergeSequenceNodeReference(sequenceNodes)}_processPushSequenceNode(sequenceNodes,nodeType,token,startIndex,endIndex,deleteEndIndex){this._pushSequenceNode(sequenceNodes,{nodeType,token,startIndex,endIndex},deleteEndIndex)}_getCurrentParamIndex(formulaString,index){return this._nodeMaker(formulaString,void 0,index)}_isLastMergeString(str){return str===matchToken.DOUBLE_QUOTATION||core.Tools.isStringNumber(str)||!isFormulaLexerToken(str)}_mergeSequenceNodeReference(sequenceNodes){const newSequenceNodes=[],sequenceNodesCount=sequenceNodes.length;let i=0;for(;i<sequenceNodesCount;){const node=sequenceNodes[i];if(typeof node=="string"){const preNode=sequenceNodes[i-1];if(node.trim()===matchToken.CLOSE_BRACES&&preNode!=null&&typeof preNode!="string"&&preNode.nodeType===sequenceNodeType.FUNCTION&&preNode.token.trim().substring(0,1)===matchToken.OPEN_BRACES){preNode.nodeType=sequenceNodeType.ARRAY,preNode.token+=node,preNode.endIndex+=node.length,i++;continue}newSequenceNodes.push(node)}else{const nextOneNode=sequenceNodes[i+1],nextTwoNode=sequenceNodes[i+2];nextOneNode===matchToken.COLON&&typeof node!="string"&&nextTwoNode!=null&&typeof nextTwoNode!="string"&&isReferenceStringWithEffectiveColumn((node.token+nextOneNode+nextTwoNode.token).trim())&&(node.nodeType=sequenceNodeType.REFERENCE,node.token+=nextOneNode+nextTwoNode.token,node.endIndex=nextTwoNode.endIndex,i+=2),newSequenceNodes.push(node)}i++}return newSequenceNodes}_pushSequenceNode(sequenceNodes,node,deleteEndIndex){const segmentCount=deleteEndIndex-node.startIndex+1;sequenceNodes.splice(sequenceNodes.length-segmentCount,segmentCount,node)}_replacePrefixString(token){const tokenArray=[];let isNotPreFix=!1;for(let i=0,len=token.length;i<len;i++){const char=token[i];if(char===SPACE_TOKEN&&!isNotPreFix)tokenArray.push(char);else{if(!isNotPreFix&&(char===prefixToken.AT||char===prefixToken.MINUS))continue;tokenArray.push(char),isNotPreFix=!0}}return tokenArray.join("")}nodeMakerTest(formulaString){return this._nodeMaker(formulaString)}treeBuilder(formulaString,transformSuffix=!0,injectDefinedName,simpleCheckDefinedName){if(transformSuffix===!0){const lexerNode=FormulaLexerNodeCache.get(formulaString),simpleCheckDefinedNameResult=simpleCheckDefinedName==null?void 0:simpleCheckDefinedName(formulaString);if(lexerNode&&!simpleCheckDefinedNameResult)return lexerNode}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT);const sequenceArray=[];let state=this._nodeMaker(formulaString,sequenceArray);if(state===ErrorType$1.VALUE||sequenceArray.length===0)return state;let currentHasDefinedName=!1,currentSequenceString="",currentDefinedNames=[];if(injectDefinedName){const{hasDefinedName,sequenceString,definedNames}=injectDefinedName(sequenceArray);currentHasDefinedName=hasDefinedName,currentSequenceString=sequenceString,currentDefinedNames=definedNames}if(currentHasDefinedName&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT),state=this._nodeMaker(`=${currentSequenceString}`),state===ErrorType$1.VALUE))return state;const node=this._getTopNode(this._currentLexerNode);if(node&&(this._currentLexerNode=node),transformSuffix){if(!this._suffixExpressionHandler(this._currentLexerNode))return ErrorType$1.VALUE;FormulaLexerNodeCache.set(formulaString,this._currentLexerNode)}return currentHasDefinedName&&this._currentLexerNode.setDefinedNames(currentDefinedNames),this._currentLexerNode}_suffixExpressionHandler(lexerNode){var _a24;const children=lexerNode.getChildren();if(!children)return!1;const childrenCount=children.length,baseStack=[],symbolStack=[];for(let i=0;i<childrenCount;i++){const node=children[i];if(node instanceof LexerNode)this._suffixExpressionHandler(node),baseStack.push(node);else{const char=node.trim();if(char==="")continue;if(OPERATOR_TOKEN_SET.has(char)){if(char===operatorToken.PLUS&&this._deletePlusForPreNode(children[i-1]))continue;if(char!==operatorToken.PLUS&&char!==operatorToken.MINUS&&this._deletePlusForPreNode(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a24=symbolStack[symbolStack.length-1])==null?void 0:_a24.trim();if(!lastSymbol||lastSymbol===matchToken.OPEN_BRACKET)break;const lastSymbolPriority=OPERATOR_TOKEN_PRIORITY.get(lastSymbol),charPriority=OPERATOR_TOKEN_PRIORITY.get(char);if(!lastSymbolPriority||!charPriority)break;if(charPriority>=lastSymbolPriority)baseStack.push(symbolStack.pop());else break}symbolStack.push(node)}else if(char===matchToken.OPEN_BRACKET)symbolStack.push(node);else if(char===matchToken.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i);else{if(this._checkCloseBracket(children[i-1]))return!1;baseStack.push(node)}}}return this._processSuffixExpressionRemain(baseStack,symbolStack,lexerNode)}_processSuffixExpressionRemain(baseStack,symbolStack,lexerNode){const baseStackLength=baseStack.length,lastBaseStack=baseStack[baseStackLength-1];for(;symbolStack.length>0;){const symbol=symbolStack.pop();if(!(lastBaseStack instanceof LexerNode)&&(symbol===matchToken.OPEN_BRACKET||symbol===matchToken.CLOSE_BRACKET))return!1;baseStack.push(symbol)}return lexerNode.setChildren(baseStack),!0}_processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i){var _a24;if(this._checkOpenBracket(children[i-1])||this._checkOperator(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a24=symbolStack[symbolStack.length-1])==null?void 0:_a24.trim();if(!lastSymbol)break;if(lastSymbol===matchToken.OPEN_BRACKET){symbolStack.pop();break}baseStack.push(symbolStack.pop())}}_checkCloseBracket(node){return node===matchToken.CLOSE_BRACKET}_checkOpenBracket(node){return node===matchToken.OPEN_BRACKET}_checkOperator(node){return node==null||node instanceof LexerNode?!1:OPERATOR_TOKEN_SET.has(node)}_deletePlusForPreNode(preNode){if(preNode==null)return!0;if(!(preNode instanceof LexerNode)){const preChar=preNode.trim();if(OPERATOR_TOKEN_SET.has(preChar)||preChar===matchToken.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new LexerNode}_resetSegment(){this._segment=""}_openBracket(type=0){this._bracketState.push(type)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const bracketState=this._bracketState;return bracketState[bracketState.length-1]}_changeCurrentBracket(type){const bracketState=this._bracketState;bracketState[bracketState.length-1]=type}_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(upLevel){this._upLevel=upLevel,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_getLastChildCurrentLexerNode(){const children=this._currentLexerNode.getChildren();if(children&&children.length>0){const lastNode=children[children.length-1];if(lastNode instanceof LexerNode)return lastNode}return!1}_getLastChildCurrent(){const children=this._currentLexerNode.getChildren();return children&&children.length>0?children[children.length-1]:!1}_setParentCurrentLexerNode(){const parent=this._currentLexerNode.getParent();return parent?(this._currentLexerNode=parent,!0):!1}_setAncestorCurrentLexerNode(){var _a24,_b,_c,_d,_e,_f;const parent=(_a24=this._currentLexerNode)==null?void 0:_a24.getParent();let state=!1;if(parent&&parent.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){if((_b=parent==null?void 0:parent.getParent())!=null&&_b.getParent()){const node=(_d=(_c=this._currentLexerNode.getParent())==null?void 0:_c.getParent())==null?void 0:_d.getParent();node&&(this._currentLexerNode=node),state=!0}}else if(parent!=null&&parent.getParent()){const node=(_e=this._currentLexerNode.getParent())==null?void 0:_e.getParent();node&&(this._currentLexerNode=node),state=!0}for(let i=0;i<this._upLevel;i++){const node=(_f=this._currentLexerNode)==null?void 0:_f.getParent();node&&(this._currentLexerNode=node),this._currentLexerNode?state=!0:state=!1}return state}_segmentCount(){return this._segment.trim().length}_pushSegment(value){this._segment+=value}_pushNodeToChildren(value,isUnshift=!1){if(value!==""){const children=this._currentLexerNode.getChildren();if(!(value instanceof LexerNode)&&this.isColonOpen()){const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(value),subLexerNode_ref.setParent(this._currentLexerNode),value=subLexerNode_ref}isUnshift?children.unshift(value):children.push(value)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(subLexerNode,isUnshift=!1){this._pushNodeToChildren(subLexerNode,isUnshift),subLexerNode.setParent(this._currentLexerNode),this._currentLexerNode=subLexerNode}_newAndPushCurrentLexerNode(token,current,isUnshift=!1){const subLexerNode=new LexerNode;subLexerNode.setToken(token),subLexerNode.setIndex(current-token.length,current-1),this._setCurrentLexerNode(subLexerNode,isUnshift)}_getTopNode(lexerNode){let parentNode=lexerNode;for(;parentNode!=null&&parentNode.getParent();)parentNode=parentNode.getParent();return parentNode}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_findPreviousToken(data,index){for(;index>=0;){const token=data[index];if(token!==" ")return token;index--}}_negativeCondition(prevString){return!!(OPERATOR_TOKEN_SET.has(prevString)||prevString===matchToken.OPEN_BRACKET||prevString===matchToken.COMMA||prevString==="")}_getSequenceArray(formulaString){const sequenceArray=[];return this._nodeMaker(formulaString,sequenceArray),sequenceArray}_resetTemp(){this._currentLexerNode=new LexerNode,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1}_checkSimilarErrorToken(currentString,cur,formulaStringArray){if(currentString!==suffixToken.POUND)return!0;let currentText=formulaStringArray[++cur];for(;currentText===" ";)currentText=formulaStringArray[++cur];return!!isFormulaLexerToken(currentText)}_nodeMaker(formulaString,sequenceArray,matchCurrentNodeIndex){formulaString.substring(0,1)===operatorToken.EQUALS&&(formulaString=formulaString.substring(1));let isZeroAdded=!1;formulaString.substring(0,1)===operatorToken.MINUS&&(formulaString=`0${formulaString}`,isZeroAdded=!0);const formulaStringArray=formulaString.split(""),formulaStringArrayCount=formulaStringArray.length;let cur=0;for(this._resetTemp();cur<formulaStringArrayCount;){const currentString=formulaStringArray[cur];if(matchCurrentNodeIndex===cur)return[this._currentLexerNode,currentString];if(currentString===matchToken.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,cur),this._resetSegment()),this._openBracket(1),this._closeLambda();const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur,isZeroAdded),cur++,this._closeBracket();continue}else nextCurrentString&&this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else this._pushNodeToChildren(currentString),this._openBracket(0);else if(currentString===matchToken.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._pushNodeToChildren(this._segment),this._resetSegment();const currentBracket=this._getCurrentBracket();if(currentBracket===0)this._pushNodeToChildren(currentString);else if(currentBracket===1){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER,cur,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE}else return ErrorType$1.VALUE;this._closeBracket()}else if(currentString===matchToken.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._openBraces();else if(currentString===matchToken.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(currentString===matchToken.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(currentString),this._openSquareBracket();else if(currentString===matchToken.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(currentString),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(currentString);else if(currentString===matchToken.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.DOUBLE_QUOTATION?cur++:this._closeDoubleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.SINGLE_QUOTATION?cur++:this._closeSingleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const currentBracket=this._getCurrentBracket();if(currentBracket===1||currentBracket==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1&&currentBracket!=null)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else{const cubeNode=new LexerNode;cubeNode.setToken(DEFAULT_TOKEN_CUBE_FUNCTION_NAME);const cubeParamNode=new LexerNode;cubeParamNode.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),cubeParamNode.changeToParent(cubeNode);const colonNode=this._currentLexerNode.getParent();if(colonNode&&colonNode.getToken()===matchToken.COLON){const colonNodeParent=colonNode.getParent();if(!colonNodeParent)return ErrorType$1.VALUE;colonNode.changeToParent(cubeParamNode),colonNodeParent.setChildren([]),cubeNode.changeToParent(colonNodeParent)}else return ErrorType$1.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=cubeNode,this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}}else if(currentString===matchToken.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const subLexerNode_op=new LexerNode;subLexerNode_op.setToken(currentString);const subLexerNode_left=new LexerNode;subLexerNode_left.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_left.setParent(subLexerNode_op);const subLexerNode_right=new LexerNode;subLexerNode_right.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_right.setParent(subLexerNode_op),subLexerNode_op.getChildren().push(subLexerNode_left,subLexerNode_right);let subLexerNode_main=subLexerNode_op,upLevel=0;if(this._segmentCount()>0){let subLexerNode_minus,subLexerNode_at,sliceLength=0;const segmentTrim=this._segment.trim(),lastString=segmentTrim[0],twoLastString=segmentTrim[1];if(lastString===prefixToken.MINUS&&(subLexerNode_minus=new LexerNode,subLexerNode_minus.setToken(prefixToken.MINUS),sliceLength++),(lastString===prefixToken.AT||twoLastString===prefixToken.AT)&&(subLexerNode_at=new LexerNode,subLexerNode_at.setToken(prefixToken.AT),subLexerNode_minus&&(subLexerNode_minus.addChildren(subLexerNode_at),subLexerNode_at.setParent(subLexerNode_minus)),sliceLength++),sliceLength>0&&(this._segment=segmentTrim.slice(sliceLength)),upLevel=sliceLength,subLexerNode_at)if(subLexerNode_at.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_at),subLexerNode_at.getParent()){const node=subLexerNode_at.getParent();node&&(subLexerNode_main=node)}else subLexerNode_main=subLexerNode_at;else subLexerNode_minus&&(subLexerNode_main=subLexerNode_minus,subLexerNode_minus.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_minus));const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(this._segment),subLexerNode_ref.setParent(subLexerNode_left),subLexerNode_left.getChildren().push(subLexerNode_ref),this._resetSegment()}else{const lastChildNode=this._getLastChildCurrentLexerNode();lastChildNode&&lastChildNode.changeToParent(subLexerNode_left)}this._setCurrentLexerNode(subLexerNode_main),this._currentLexerNode=subLexerNode_right,this._openColon(upLevel)}else if(SUFFIX_TOKEN_SET.has(currentString)&&this._checkSimilarErrorToken(currentString,cur,formulaStringArray)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){this._pushNodeToChildren(this._segment);const subLexerNode=new LexerNode;subLexerNode.setToken(currentString);const lastChildNode=this._getLastChildCurrent();lastChildNode instanceof LexerNode?lastChildNode.changeToParent(subLexerNode):lastChildNode!==!1&&(subLexerNode.getChildren().push(lastChildNode),this._removeLastChild()),this._pushNodeToChildren(subLexerNode),subLexerNode.setParent(this._currentLexerNode),this._resetSegment()}else if(OPERATOR_TOKEN_SET.has(currentString)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){let trimSegment=this._segment.trim();if(currentString===operatorToken.MINUS&&trimSegment===""){const prevString=this._findPreviousToken(formulaStringArray,cur-1)||"";if(this._negativeCondition(prevString)){this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++;continue}}else if(this._segment.length>0&&this._isScientificNotation(formulaStringArray,cur,currentString)){this._pushSegment(currentString),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++;continue}else this._segment.length>0&&trimSegment===""?trimSegment=this._segment:(this._pushNodeToChildren(this._segment),trimSegment="");if(currentString===operatorToken.LESS_THAN||currentString===operatorToken.GREATER_THAN){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&OPERATOR_TOKEN_SET.has(currentString+nextCurrentString)){this._pushNodeToChildren(trimSegment+currentString+nextCurrentString),this._resetSegment(),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur,isZeroAdded),cur++;continue}else this._pushNodeToChildren(trimSegment+currentString)}else this._pushNodeToChildren(trimSegment+currentString);this._resetSegment()}else this._pushSegment(currentString);this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++}this._pushNodeToChildren(this._segment)}_isScientificNotation(formulaStringArray,cur,currentString){const preTwoChar=formulaStringArray[cur-2];if(preTwoChar&&Number.isNaN(Number(preTwoChar))||!(currentString===operatorToken.MINUS||currentString===operatorToken.PLUS))return!1;const nextOneChar=formulaStringArray[cur+1];if(nextOneChar&&Number.isNaN(Number(nextOneChar)))return!1;const preOneChar=formulaStringArray[cur-1];return preOneChar&&preOneChar.toUpperCase()==="E"}_addSequenceArray(sequenceArray,currentString,cur,isZeroAdded){isZeroAdded&&cur===0||sequenceArray==null||sequenceArray.push({segment:this._segment,currentString,cur,currentLexerNode:this._currentLexerNode})}};__name(_LexerTreeBuilder,"LexerTreeBuilder");let LexerTreeBuilder=_LexerTreeBuilder;const _ObjectClassType=class _ObjectClassType extends core.Disposable{constructor(){super(...arguments);__publicField(this,"pattern","")}getPattern(){return this.pattern}setPattern(pattern){this.pattern=pattern}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(object){return!1}};__name(_ObjectClassType,"ObjectClassType");let ObjectClassType=_ObjectClassType;var BooleanValue=(BooleanValue2=>(BooleanValue2.FALSE="FALSE",BooleanValue2.TRUE="TRUE",BooleanValue2))(BooleanValue||{}),AstNodePromiseType=(AstNodePromiseType2=>(AstNodePromiseType2[AstNodePromiseType2.SUCCESS=0]="SUCCESS",AstNodePromiseType2[AstNodePromiseType2.ERROR=1]="ERROR",AstNodePromiseType2))(AstNodePromiseType||{}),TableOptionType=(TableOptionType2=>(TableOptionType2.ALL="#All",TableOptionType2.DATA="#Data",TableOptionType2.HEADERS="#Headers",TableOptionType2.TOTALS="#Totals",TableOptionType2))(TableOptionType||{}),ConcatenateType=(ConcatenateType2=>(ConcatenateType2[ConcatenateType2.FRONT=0]="FRONT",ConcatenateType2[ConcatenateType2.BACK=1]="BACK",ConcatenateType2))(ConcatenateType||{});const _InvertedIndexCache=class _InvertedIndexCache{constructor(){__publicField(this,"_cache",new Map);__publicField(this,"_continueBuildingCache",new Map)}set(unitId,sheetId,column,value,row){if(!this.shouldContinueBuildingCache(unitId,sheetId,column,row))return;let unitMap=this._cache.get(unitId);unitMap==null&&(unitMap=new Map,this._cache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);columnMap==null&&(columnMap=new Map,sheetMap.set(column,columnMap));let cellList=columnMap.get(value);cellList==null&&(cellList=new Set,columnMap.set(value,cellList)),cellList.add(row)}getCellValuePositions(unitId,sheetId,column){var _a24,_b;return(_b=(_a24=this._cache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column)}getCellPositions(unitId,sheetId,column,value){var _a24,_b,_c;return(_c=(_b=(_a24=this._cache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column))==null?void 0:_c.get(value)}getCellPosition(unitId,sheetId,column,value,startRow,endRow){const rows=this.getCellPositions(unitId,sheetId,column,value);if(rows!=null){for(const row of rows)if(row>=startRow&&row<=endRow)return row}}setContinueBuildingCache(unitId,sheetId,column,startRow,endRow){let unitMap=this._continueBuildingCache.get(unitId);unitMap==null&&(unitMap=new Map,this._continueBuildingCache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);if(columnMap==null){columnMap={startRow,endRow},sheetMap.set(column,columnMap);return}columnMap.startRow=Math.min(columnMap.startRow,startRow),columnMap.endRow=Math.max(columnMap.endRow,endRow)}shouldContinueBuildingCache(unitId,sheetId,column,row){var _a24,_b;const rowRange=(_b=(_a24=this._continueBuildingCache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column);if(rowRange==null)return!0;const{startRow,endRow}=rowRange;return!(row>=startRow&&row<=endRow)}canUseCache(unitId,sheetId,column,rangeStartRow,rangeEndRow){var _a24,_b;if(column===-1||rangeStartRow===-1||rangeEndRow===-1)return!1;const rowRange=(_b=(_a24=this._continueBuildingCache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column);if(rowRange==null)return!1;const{startRow,endRow}=rowRange;return!(rangeStartRow>endRow||rangeEndRow<startRow)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}};__name(_InvertedIndexCache,"InvertedIndexCache");let InvertedIndexCache=_InvertedIndexCache;const CELL_INVERTED_INDEX_CACHE=new InvertedIndexCache;var ArrayBinarySearchType=(ArrayBinarySearchType2=>(ArrayBinarySearchType2[ArrayBinarySearchType2.MIN=0]="MIN",ArrayBinarySearchType2[ArrayBinarySearchType2.MAX=1]="MAX",ArrayBinarySearchType2))(ArrayBinarySearchType||{}),ArrayOrderSearchType=(ArrayOrderSearchType2=>(ArrayOrderSearchType2[ArrayOrderSearchType2.NORMAL=0]="NORMAL",ArrayOrderSearchType2[ArrayOrderSearchType2.MIN=1]="MIN",ArrayOrderSearchType2[ArrayOrderSearchType2.MAX=2]="MAX",ArrayOrderSearchType2))(ArrayOrderSearchType||{});function getCompare(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(a,b)=>a.localeCompare(b)}__name(getCompare,"getCompare");function isWildcard(str){return str.indexOf("*")>-1||str.indexOf("?")>-1}__name(isWildcard,"isWildcard");function isMatchWildcard(currentValue,value){const pattern=escapeRegExp(value).replace(/~?[*?]/g,match=>match.startsWith("~")?`\\${match.substring(1)}`:match==="*"?".*":match==="?"?".":match);return new RegExp(`^${pattern}$`).test(currentValue)}__name(isMatchWildcard,"isMatchWildcard");function replaceWildcard(value){return value.replace(/~?[*?]/g,match=>match.startsWith("~")?match.substring(1):" ")}__name(replaceWildcard,"replaceWildcard");function compareWithWildcard(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=isMatchWildcard(currentValue,value);break;case compareToken.NOT_EQUAL:result=!isMatchWildcard(currentValue,value);break;case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:result=isMatchWildcard(currentValue,value)||currentValue>replaceWildcard(value);break;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<replaceWildcard(value);break}return result}__name(compareWithWildcard,"compareWithWildcard");function escapeRegExp(str){return str.replace(/[.+^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");const _BaseValueObject=class _BaseValueObject extends ObjectClassType{constructor(_rawValue){super(),this._rawValue=_rawValue}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(value){}setArrayValue(value){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return ErrorValueObject.create(ErrorType$1.VALUE)}max(){return ErrorValueObject.create(ErrorType$1.VALUE)}min(){return ErrorValueObject.create(ErrorType$1.VALUE)}count(){return ErrorValueObject.create(ErrorType$1.VALUE)}countA(){return ErrorValueObject.create(ErrorType$1.VALUE)}countBlank(){return ErrorValueObject.create(ErrorType$1.VALUE)}getNegative(){return ErrorValueObject.create(ErrorType$1.VALUE)}getReciprocal(){return ErrorValueObject.create(ErrorType$1.VALUE)}plus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}minus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}multiply(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}divided(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}mod(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}map(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}mapValue(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}compare(valueObject,operator,isCaseSensitive=!1){return ErrorValueObject.create(ErrorType$1.NAME)}isEqual(valueObject){return this.compare(valueObject,compareToken.EQUALS)}isNotEqual(valueObject){return this.compare(valueObject,compareToken.NOT_EQUAL)}isGreaterThanOrEqual(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(valueObject){return this.compare(valueObject,compareToken.LESS_THAN_OR_EQUAL)}isLessThan(valueObject){return this.compare(valueObject,compareToken.LESS_THAN)}isGreaterThan(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN)}concatenateFront(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}concatenateBack(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}plusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}minusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}multiplyBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}dividedBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}modInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}compareBy(value,operator){return ErrorValueObject.create(ErrorType$1.NAME)}concatenate(value,concatenateType=ConcatenateType.FRONT){let currentValue=this.getValue().toString();if(typeof value=="string")concatenateType===ConcatenateType.FRONT?currentValue=value+currentValue:currentValue+=value;else if(typeof value=="number")concatenateType===ConcatenateType.FRONT?currentValue=value.toString()+currentValue:currentValue+=value.toString();else if(typeof value=="boolean"){const booleanString=value?"TRUE":"FALSE";concatenateType===ConcatenateType.FRONT?currentValue=booleanString+currentValue:currentValue+=booleanString}return currentValue}pow(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}powInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}sqrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cbrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cos(){return ErrorValueObject.create(ErrorType$1.VALUE)}cosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}acos(){return ErrorValueObject.create(ErrorType$1.VALUE)}acosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}sin(){return ErrorValueObject.create(ErrorType$1.VALUE)}sinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}asin(){return ErrorValueObject.create(ErrorType$1.VALUE)}asinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}tan(){return ErrorValueObject.create(ErrorType$1.VALUE)}tanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2Inverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return ErrorValueObject.create(ErrorType$1.VALUE)}log10(){return ErrorValueObject.create(ErrorType$1.VALUE)}exp(){return ErrorValueObject.create(ErrorType$1.VALUE)}abs(){return ErrorValueObject.create(ErrorType$1.VALUE)}round(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}roundInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floor(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floorInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceil(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceilInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToNumberObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToBooleanObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_BaseValueObject,"BaseValueObject");let BaseValueObject=_BaseValueObject;const Error_CACHE_LRU_COUNT=1e3,ErrorValueObjectCache=new FormulaAstLRU(Error_CACHE_LRU_COUNT),_ErrorValueObject=class _ErrorValueObject extends BaseValueObject{constructor(_errorType,_errorContent=""){super(_errorType),this._errorType=_errorType,this._errorContent=_errorContent}static create(errorType,errorContent=""){const key=`${errorType}-${errorContent}`,cached=ErrorValueObjectCache.get(key);if(cached)return cached;const instance=new _ErrorValueObject(errorType,errorContent);return ErrorValueObjectCache.set(key,instance),instance}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(object){return object.getErrorType()===this.getErrorType()}isError(){return!0}};__name(_ErrorValueObject,"ErrorValueObject");let ErrorValueObject=_ErrorValueObject;function reverseCompareOperator(operator){let result;switch(operator){case compareToken.EQUALS:result=compareToken.EQUALS;break;case compareToken.GREATER_THAN:result=compareToken.LESS_THAN;break;case compareToken.GREATER_THAN_OR_EQUAL:result=compareToken.LESS_THAN_OR_EQUAL;break;case compareToken.LESS_THAN:result=compareToken.GREATER_THAN;break;case compareToken.LESS_THAN_OR_EQUAL:result=compareToken.GREATER_THAN_OR_EQUAL;break;case compareToken.NOT_EQUAL:result=compareToken.NOT_EQUAL;break}return result}__name(reverseCompareOperator,"reverseCompareOperator");function plus(a,b){return a+b}__name(plus,"plus");function minus(a,b){return a-b}__name(minus,"minus");function multiply(a,b){return a*b}__name(multiply,"multiply");function divide(a,b){return a/b}__name(divide,"divide");function round(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.round(multiply(base,factor)+epsilon)/factor}__name(round,"round");function floor(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.floor(multiply(base,factor)+epsilon)/factor}__name(floor,"floor");function ceil(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.ceil(multiply(base,factor)-epsilon)/factor}__name(ceil,"ceil");function baseEpsilon(base,factor){return Number.EPSILON*Math.max(1,Math.abs(multiply(base,factor)))}__name(baseEpsilon,"baseEpsilon");function mod(base,divisor){return base-divisor*Math.floor(base/divisor)}__name(mod,"mod");function pow(base,exponent){return base**exponent}__name(pow,"pow");function sqrt(base){return Math.sqrt(base)}__name(sqrt,"sqrt");function equals(a,b){return a===b}__name(equals,"equals");function greaterThan(a,b){return a>b}__name(greaterThan,"greaterThan");function greaterThanOrEquals(a,b){return a>=b}__name(greaterThanOrEquals,"greaterThanOrEquals");function lessThan(a,b){return a<b}__name(lessThan,"lessThan");function lessThanOrEquals(a,b){return a<=b}__name(lessThanOrEquals,"lessThanOrEquals");function strip(num,precision=15){return Number.parseFloat(num.toPrecision(precision))}__name(strip,"strip");function withinErrorMargin(left,right){return Math.abs(left-right)<Number.EPSILON}__name(withinErrorMargin,"withinErrorMargin");function stripErrorMargin(num,precision=12){const stripResult=strip(num,precision);return withinErrorMargin(num,stripResult)?stripResult:strip(num)}__name(stripErrorMargin,"stripErrorMargin");function getFractionalPart(num){return num-Math.trunc(num)}__name(getFractionalPart,"getFractionalPart");var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x.default:x}__name(getDefaultExportFromCjs,"getDefaultExportFromCjs");var numfmt$2={exports:{}};(function(module2,exports2){(function(e,t){module2.exports=t()})(typeof self<"u"?self:commonjsGlobal,function(){return function(){var e={d:__name(function(t2,n2){for(var a2 in n2)e.o(n2,a2)&&!e.o(t2,a2)&&Object.defineProperty(t2,a2,{enumerable:!0,get:n2[a2]})},"d"),o:__name(function(e2,t2){return Object.prototype.hasOwnProperty.call(e2,t2)},"o")},t={};e.d(t,{default:__name(function(){return pe},"default")});var n={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,r={},i={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 s(e2){const t2=a.exec(e2);if(!t2)throw new SyntaxError("Malformed locale: ".concat(e2));return{lang:t2[1]+(t2[2]?"_"+t2[2]:""),language:t2[1],territory:t2[2]||"",codeset:t2[3]||"",modifier:t2[4]||""}}__name(s,"s");function o(e2){if(typeof e2=="number")return n[65535&e2]||null;const t2=parseInt(e2,16);return isFinite(t2)&&n[65535&t2]?n[65535&t2]||null:a.test(e2)?e2:null}__name(o,"o");function l(e2){const t2=o(e2);let n2=null;if(t2){const e3=s(t2);n2=r[e3.lang]||r[e3.language]||null}return n2}__name(l,"l");function d(e2){return Object.assign({},i,e2)}__name(d,"d");function m(e2,t2){const n2=typeof t2=="object"?t2:s(t2);return r[n2.lang]=d(e2),n2.language===n2.lang||r[n2.language]||(r[n2.language]=d(e2)),r[n2.lang]}__name(m,"m");const u=d({group:","});function c(e2,t2){if(typeof e2!="number")return e2;if(e2<0)return-c(-e2,t2);if(t2){const n2=10**(t2||0)||1;return c(e2*n2,0)/n2}return Math.round(e2)}__name(c,"c"),u.isDefault=!0,m({group:",",ampm:["上午","下午"],mmmm:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["周日","周一","周二","周三","周四","周五","周六"]},"zh_CN"),m({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"),m({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"),m({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"),m({group:",",ampm:["ก่อนเที่ยง","หลังเที่ยง"],mmmm:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],mmm:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dddd:["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],ddd:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."]},"th"),m({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"),m({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"),m({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"),m({group:","},"en"),m({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"),m({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"),m({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"),m({group:".",decimal:",",ampm:["π.μ.","μ.μ."],mmmm:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],mmm:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dddd:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],ddd:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"]},"el"),m({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"),m({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"),m({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"),m({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"),m({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"),m({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"),m({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"),m({decimal:",",nan:"не число",mmmm:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],mmm:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],dddd:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],ddd:["вс","пн","вт","ср","чт","пт","сб"]},"ru"),m({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"),m({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"),m({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"),m({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 p(e2,t2,n2){const a2=e2<0?-1:1,r2=10**(t2||2),i2=10**(n2||2);let s2,o2,l2=Math.abs(e2),d2=0,m2=0,u2=0,c2=1;if((e2=l2)%1==0)o2=[e2*a2,1];else if(e2<1e-19)o2=[a2,1e19];else if(e2>1e19)o2=[1e19*a2,1];else{do if(l2=1/(l2-Math.floor(l2)),s2=c2,c2=c2*Math.floor(l2)+d2,d2=s2,m2=u2,u2=Math.floor(e2*c2+.5),u2>=r2||c2>=i2)return[a2*m2,d2];while(Math.abs(e2-u2/c2)>=1e-10&&l2!==Math.floor(l2));o2=[a2*u2,c2]}return o2}__name(p,"p");const f={overflow:"######",dateErrorThrows:!1,dateErrorNumber:!0,dateSpanLarge:!0,leap1900:!0,nbsp:!0,throws:!0,invalid:"######",locale:"",ignoreTimezone:!1},g=Object.assign({},f);function h(e2){if(e2===null&&(e2=f),e2){for(const t2 in e2)if(t2 in f){const n2=e2[t2];g[t2]=n2==null?f[t2]:n2}}return{...g}}__name(h,"h");const y={"#":"",0:"0","?":" "},_={"@":"text","-":"minus","+":"plus"},b=["#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"],j=["¤","$","£","¥","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],v=new RegExp("["+j.join("")+"]");function M(e2,t2,n2){return t2[n2+"_max"]=e2.length,t2[n2+"_min"]=e2.replace(/#/g,"").length,t2}__name(M,"M");const k={};function x(e2){if(!(e2 in k)){const t2=[],n2=e2.replace(/^[#,]+/,"").replace(/[1-9]\d*/g,e3=>"?".repeat(e3.length));for(let e3=0;e3<n2.length;e3++){const a2=n2.charAt(e3);t2[e3]=a2 in y?y[a2]:a2}k[e2]=t2.join("")}return k[e2]}__name(x,"x");function F(e2,t2){typeof e2=="string"&&(e2={type:"string",value:e2=e2.replace(/ /g,y["?"])}),t2.push(e2)}__name(F,"F");function z(e2){const t2=[],n2={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:t2};let a2=e2+"",r2="int",i2=!1,s2=null;const l2=[];let d2,m2,u2=!1;for(;a2&&!i2;){if(d2=/^General/i.exec(a2))n2.general=!0,F({type:"general"},t2);else if(r2==="int"&&(d2=/^[#?0]+(?:,[#?0]+)*/.exec(a2))||r2==="den"&&(d2=/^[#?\d]+/.exec(a2))||(d2=/^[#?0]+/.exec(a2)))n2[r2+"_pattern"].push(d2[0]),s2={type:r2,num:d2[0]},F(s2,t2);else if((d2=/^\//.exec(a2))&&n2[r2+"_pattern"].length){if(!s2)throw new SyntaxError("Missing a numerator in pattern ".concat(e2));n2.fractions=!0,n2.num_pattern.push(n2[r2+"_pattern"].pop()),s2.type="num",r2="den",F({type:"div"},t2)}else if(d2=/^,+/.exec(a2)){const e3=a2.charAt(1)in y;m2.slice(-1)in y&&(d2[0].length>1||!e3)?n2.scale=.001**d2[0].length:n2.dec_fractions||F(d2[0],t2)}else{if(d2=/^;/.exec(a2)){i2=!0;break}if(d2=/^[@+-]/.exec(a2))d2[0]==="@"&&(n2.text=!0),F({type:_[d2[0]]},t2);else if(d2=/^(?:\[(h+|m+|s+)\])/i.exec(a2)){const e3=d2[1].toLowerCase(),a3=e3[0],r3={type:"",size:0,date:1,raw:d2[0],pad:e3.length};a3==="h"?(r3.size=16,r3.type="hour-elap"):a3==="m"?(r3.size=32,r3.type="min-elap"):(r3.size=64,r3.type="sec-elap"),n2.date=n2.date|r3.size,l2.push(r3),F(r3,t2)}else if(d2=/^(?:B2)/i.exec(a2))u2||(n2.date_system=6);else if(d2=/^(?:B1)/i.exec(a2))u2||(n2.date_system=1);else if(d2=/^(?:([hHmMsSyYbBdDegG])\1*)/.exec(a2)){const e3={type:"",size:0,date:1,raw:d2[0]},a3=d2[0].toLowerCase(),r3=a3[0];if(a3==="y"||a3==="yy")e3.size=2,e3.type="year-short";else if(r3==="y"||r3==="e")e3.size=2,e3.type="year";else if(a3==="b"||a3==="bb")e3.size=2,e3.type="b-year-short";else if(r3==="b")e3.size=2,e3.type="b-year";else if(a3==="d"||a3==="dd")e3.size=8,e3.type="day",e3.pad=/dd/.test(a3);else if(a3==="ddd")e3.size=8,e3.type="weekday-short";else if(r3==="d")e3.size=8,e3.type="weekday";else if(r3==="h")e3.size=16,e3.type="hour",e3.pad=/hh/i.test(a3);else if(r3==="m"){a3.length===3?(e3.size=4,e3.type="monthname-short"):a3.length===5?(e3.size=4,e3.type="monthname-single"):a3.length>=4&&(e3.size=4,e3.type="monthname");const t3=l2[l2.length-1];!e3.type&&t3&&!t3.used&&80&t3.size&&(t3.used=!0,e3.size=32,e3.type="min",e3.pad=/mm/.test(a3)),e3.type||(e3.size=4,e3.type="month",e3.pad=/mm/.test(a3),e3.indeterminate=!0)}else if(r3==="s"){e3.size=64,e3.type="sec",e3.pad=/ss/.test(a3);const t3=l2[l2.length-1];t3&&32&t3.size?e3.used=!0:t3&&t3.indeterminate&&(delete t3.indeterminate,t3.size=32,t3.type="min",e3.used=!0)}n2.date=n2.date|e3.size,n2.date_eval=!0,l2.push(e3),F(e3,t2)}else if(d2=/^(?:AM\/PM|am\/pm|A\/P)/.exec(a2))n2.clock=12,n2.date=16|n2.date,n2.date_eval=!0,F({type:"am",short:d2[0]==="A/P"},t2);else if(n2.date&&(d2=/^\.0{1,3}/i.exec(a2))){const e3=d2[0].length-1,a3=[64,128,256,512][e3];n2.date=n2.date|a3,n2.date_eval=!0,n2.sec_decimals=Math.max(n2.sec_decimals,e3),F({type:"subsec",size:a3,decimals:e3,date:1,raw:d2[0]},t2)}else if((d2=/^\\(.)/.exec(a2))||(d2=/^"([^"]*?)"/.exec(a2)))F(d2[1],t2);else if(d2=/^\[(<[=>]?|>=?|=)\s*(-?[.\d]+)\]/.exec(a2))n2.condition=[d2[1],parseFloat(d2[2],10)];else if(d2=/^\[\$([^\]]+)\]/.exec(a2)){const e3=d2[1].split("-"),a3=e3.length<2?"":e3[e3.length-1],r3=e3[0];r3&&F(r3,t2);const i3=o(a3);i3&&(n2.locale=i3);const s3=parseInt(a3,16);isFinite(s3)&&16711680&s3&&(s3>>16&255)===6&&(n2.date_system=6),u2=!0}else if(d2=/^\[(black|blue|cyan|green|magenta|red|white|yellow|color\s*(\d+))\]/i.exec(a2))n2.color=d2[2]?b[parseInt(d2[2],10)]||"#000":d2[1].toLowerCase();else if(!(d2=/^\[(DBNum1|ENG|HIJ|JPN|TWN)\]/i.exec(a2))){if(d2=/^%/.exec(a2))n2.scale=100,n2.percent=!0,F("%",t2);else if(d2=/^_(\\.|.)/.exec(a2))F(" ",t2);else if(d2=/^\./.exec(a2))F({type:"point",value:d2[0]},t2),n2.dec_fractions=!0,r2="frac";else if(d2=/^[Ee]([+-]?|(?=[0#?]))/.exec(a2))n2.exponential=!0,n2.exp_plus=d2[1]==="+",r2="man",F({type:"exp",plus:d2[1]==="+"},t2);else if(!(d2=/^\*(\\.|.)/.exec(a2))){if(d2=/^[BENn[]/.exec(a2))throw new SyntaxError("Unexpected char ".concat(a2.charAt(0)," in pattern ").concat(e2));a2[0]==="("&&(n2.parens=!0),d2=[a2[0]],F(d2[0],t2)}}}m2=d2[0],a2=a2.slice(d2?d2[0].length:1)}if(n2.pattern=e2.slice(0,e2.length-a2.length),/^((?:\[[^\]]+\])+)(;|$)/.test(n2.pattern)&&!/^\[(?:h+|m+|s+)\]/.test(n2.pattern)&&F({type:"text"},t2),n2.fractions&&n2.dec_fractions||n2.fractions&&n2.exponential)throw new SyntaxError("Invalid pattern: ".concat(n2.pattern));const c2=n2.int_pattern.join("");if(n2.grouping=c2.indexOf(",")>=0,n2.grouping){const e3=c2.split(","),t3=e3.length;t3===2?(n2.group_pri=e3[1].length,n2.group_sec=n2.group_pri):t3>2&&(n2.group_pri=e3[t3-1].length,n2.group_sec=e3[t3-2].length)}else n2.group_pri=0,n2.group_sec=0;M(c2.replace(/[,]/g,""),n2,"int"),M(n2.frac_pattern.join(""),n2,"frac"),M(n2.man_pattern.join(""),n2,"man");let p2=n2.num_pattern.join(""),f2=n2.den_pattern.join("");const g2=/\?/.test(f2)||/\?/.test(p2);return f2=f2.replace(/\d/g,g2?"?":"#"),g2&&(f2=f2.replace(/#$/g,"?")),M(p2,n2,"num"),M(f2,n2,"den"),g2&&(p2=p2.replace(/#$/g,"?")),n2.int_padding=x(n2.int_pattern.join("")),n2.man_padding=x(n2.man_pattern.join("")),n2.num_padding=x(p2),n2.den_padding=x(f2),n2.den_pattern.length&&(n2.denominator=parseInt(n2.den_pattern.join("").replace(/\D/g,""),10)),n2.integer=!!n2.int_pattern.join("").length,n2.fractions&&t2.forEach((e3,n3)=>{const a3=t2[n3+1];e3.type==="string"&&a3&&(a3.type==="num"?e3.rule="num+int":a3.type==="div"?e3.rule="num":a3.type==="den"&&(e3.rule="den"))}),n2}__name(z,"z");const w=__name(e2=>{const t2=e2.condition;t2&&t2[1]<0&&(t2[0]==="<"||t2[0]==="<="||t2[0]==="=")||e2.tokens.unshift({type:"minus",volatile:!0})},"w");function D(e2){const t2=[];let n2,a2=!1,r2=null,i2=e2,s2=0,l2=!1,d2=0,m2=0;do{if(l2=z(i2),(l2.date||l2.general)&&(l2.int_pattern.length||l2.frac_pattern.length||l2.scale!==1||l2.text))throw new Error("Illegal format");if(l2.condition&&(m2++,a2=!0),l2.text){if(r2)throw new Error("Unexpected partition");r2=l2}l2.locale&&(n2=o(l2.locale)),t2.push(l2),s2=i2.charAt(l2.pattern.length)===";"?1:0,i2=i2.slice(l2.pattern.length+s2),d2++}while(s2&&d2<4&&m2<3);if(s2)throw new Error("Unexpected partition");if(m2>2)throw new Error("Unexpected condition");const u2=t2[3];if(u2&&(u2.int_pattern.length||u2.frac_pattern.length||u2.date))throw new Error("Unexpected partition");if(a2){const e3=t2.length;if(e3===1&&(t2[1]=z("General"),t2[1].generated=!0),e3<3){const e4=t2[0],n3=t2[1];if(w(e4),n3.condition)w(n3);else{const t3=e4.condition;(t3[0]==="="||t3[1]>=0&&(t3[0]===">"||t3[0]===">="))&&n3.tokens.unshift({type:"minus",volatile:!0})}}else t2.forEach(w)}else{if(t2.length<4&&r2)for(let e3=0,n3=t2.length;e3<n3;e3++)t2[e3]===r2&&t2.splice(e3,1);if(t2.length<1&&r2&&(t2[0]=z("General"),t2[0].generated=!0),t2.length<2){const e3=z(t2[0].pattern);e3.tokens.unshift({type:"minus",volatile:!0}),e3.generated=!0,t2.push(e3)}if(t2.length<3){const e3=z(t2[0].pattern);e3.generated=!0,t2.push(e3)}if(t2.length<4)if(r2)t2.push(r2);else{const e3=z("@");e3.generated=!0,t2.push(e3)}t2[0].condition=[">",0],t2[1].condition=["<",0],t2[2].condition=null}return{pattern:e2,partitions:t2,locale:n2}}__name(D,"D");const S=Math.floor;function C(e2){if((!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&e2>=0){if(e2===0)return[1900,1,0];if(e2===60)return[1900,2,29];if(e2<60)return[1900,e2<32?1:2,(e2-1)%31+1]}let n2=e2+68569+2415019;const a2=S(4*n2/146097);n2-=S((146097*a2+3)/4);const r2=S(4e3*(n2+1)/1461001);n2=n2-S(1461*r2/4)+31;const i2=S(80*n2/2447),s2=n2-S(2447*i2/80);n2=S(i2/11);const o2=i2+2-12*n2;return[0|100*(a2-49)+r2+n2,0|o2,0|s2]}__name(C,"C");function E(e2){return C(e2+1462)}__name(E,"E");function A(e2){if(e2===60)throw new Error("#VALUE!");if(e2<=1)return[1317,8,29];if(e2<60)return[1317,e2<32?9:10,1+(e2-2)%30];const t2=10631/30,n2=.1335;let a2=e2+466935;const r2=S(a2/10631);a2-=10631*r2;const i2=S((a2-n2)/t2);a2-=S(i2*t2+n2);const s2=S((a2+28.5001)/29.5);return s2===13?[30*r2+i2,12,30]:[30*r2+i2,s2,a2-S(29.5001*s2-29)]}__name(A,"A");function Y(e2){let t2=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n2=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const a2=S(e2);return t2===6?A(a2):t2===-1?E(a2):C(a2,n2)}__name(Y,"Y");const T=Math.floor,N=86400;function P(e2,t2){let n2=null;if(Array.isArray(e2)){const[t3,a2,r2,i2,s2,o2]=e2;n2=Date.UTC(t3,a2==null?0:a2-1,r2!=null?r2:1,i2||0,s2||0,o2||0)}else if(e2 instanceof Date&&(n2=1*e2,!t2||!t2.ignoreTimezone)){const t3=new Date;t3.setUTCFullYear(e2.getFullYear(),e2.getMonth(),e2.getDate()),t3.setUTCHours(e2.getHours(),e2.getMinutes(),e2.getSeconds(),e2.getMilliseconds()),n2=1*t3}if(n2!=null&&isFinite(n2)){const e3=n2/864e5;return e3-(e3<=-25509?-25568:-25569)}return e2}__name(P,"P");function I(e2,t2){let n2=0|e2;const a2=N*(e2-n2);let r2=T(a2);a2-r2>.9999&&(r2+=1,r2===N&&(r2=0,n2+=1));const i2=r2<0?N+r2:r2,[s2,o2,l2]=Y(e2,0,t2&&t2.leap1900),d2=T(i2/60/60)%60,m2=T(i2/60)%60,u2=T(i2)%60;if(t2&&t2.nativeDate){const e3=new Date(0);return e3.setUTCFullYear(s2,o2-1,l2),e3.setUTCHours(d2,m2,u2),e3}return[s2,o2,l2,d2,m2,u2]}__name(I,"I");function O(e2){return!!(e2[0]&&e2[0].percent||e2[1]&&e2[1].percent||e2[2]&&e2[2].percent||e2[3]&&e2[3].percent)}__name(O,"O");function J(e2){return!!(e2[0]&&e2[0].date||e2[1]&&e2[1].date||e2[2]&&e2[2].date||e2[3]&&e2[3].date)}__name(J,"J");function L(e2){const[t2,n2,a2,r2]=e2;return!(t2&&!t2.generated||n2&&!n2.generated||a2&&!a2.generated||!r2||!r2.text||r2.generated)}__name(L,"L");const U={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},R=[["DMY",1],["DM",2],["MY",3],["MDY",4],["MD",5],["hmsa",6],["hma",7],["hms",8],["hm",9]],G={total:1,sign:0,period:0,int:1,frac:0},H=__name((e2,t2)=>e2.replace(/\./,t2.decimal),"H");function B(e2,t2,n2,a2){const r2=0|n2;if(typeof n2=="string")e2.push(n2);else if(n2===r2)e2.push(Math.abs(r2));else{const t3=Math.abs(n2);let r3=t3?Math.floor(Math.log10(t3)):0,i2=r3<0?t3*10**-r3:t3/10**r3;i2===10&&(i2=1,r3++);const s2=function(e3){let t4=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const n3=Math.abs(e3);if(!n3)return G;const a3=t4&&e3<0?1:0,r4=Math.floor(n3),i3=Math.floor(Math.log10(n3)+1);let s3=0,o3=0;if(r4!==n3){s3=1;const e4=String(c(i3<0?n3*10**-i3:n3/10**i3,15));let t5=e4.length,a4=!0,r5=0;for(;r5<=e4.length;){if(e4[r5]==="."){t5--;break}e4[r5]==="0"&&a4?t5--:a4=!1,r5++}o3=t5-i3,o3<0&&(o3=0,s3=0)}return{total:a3+Math.max(i3,1)+s3+o3,digits:Math.max(i3,0)+o3,sign:a3,period:s3,int:Math.max(i3,1),frac:o3}}(t3),o2=__name(()=>{const t4=Math.abs(r3);let n3;n3=i2===1?i2:c(i2,5),e2.push(H(n3+"",a2),a2.exponent,r3<0?a2.negative:a2.positive,t4<10?"0":"",t4)},"o");if(r3>=-4&&r3<=-1){const n3=t3.toPrecision(10+r3).replace(/\.?0+$/,"");e2.push(H(n3,a2))}else if(r3===10){const n3=t3.toFixed(10).slice(0,12).replace(/\.$/,"");e2.push(H(n3,a2))}else if(Math.abs(r3)<=9)if(s2.total<=11){const n3=c(t3,9).toFixed(s2.frac);e2.push(H(n3,a2))}else r3===9?e2.push(Math.floor(t3)):r3>=0&&r3<9?e2.push(c(t3,9-r3)):o2();else s2.total>=12?o2():Math.floor(t3)===t3?e2.push(Math.floor(t3)):e2.push(H(c(t3,9).toFixed(s2.frac),a2))}return e2}__name(B,"B");const $=86400,W={int:"integer",frac:"fraction",man:"mantissa",num:"numerator",den:"denominator"},Z=__name(function(e2){let t2=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const n2=Math.floor(Math.log10(e2));return t2>1?Math.floor(n2/t2)*t2:n2},"Z");function K(e2,t2,n2,a2){let r2="",i2="",s2="",o2="",l2="",d2=0,m2=0|e2,f2=0,g2=0,h2=1,_2=0,b2=0,j2=0,v2=0,M2=0,k2=0;const x2=a2||u;if(!t2.text&&isFinite(t2.scale)&&t2.scale!==1&&(e2=function(e3){if(e3===0)return e3;const t3=Math.ceil(Math.log10(e3<0?-e3:e3)),n3=10**(16-Math.floor(t3));return Math.round(e3*n3)/n3}(e2*t2.scale)),t2.exponential){let n3=Math.abs(e2);if(n3){const e3=10**-Z(n3,t2.int_max),a3=c(n3*e3,t2.frac_max)/e3;d2=Z(a3,t2.int_max)}n3/=10**d2,e2=e2<0?-n3:n3,r2+=Math.abs(d2)}if(t2.integer){const n3=Math.abs(c(e2,t2.fractions?1:t2.frac_max));l2+=n3<1?"":Math.floor(n3)}if(t2.grouping){let e3="",n3=l2.length;for(n3>t2.group_pri&&(n3-=t2.group_pri,e3=x2.group+l2.slice(n3,n3+t2.group_pri)+e3);n3>t2.group_sec;)n3-=t2.group_sec,e3=x2.group+l2.slice(n3,n3+t2.group_sec)+e3;l2=n3?l2.slice(0,n3)+e3:e3}t2.dec_fractions&&(o2=String(c(e2,t2.frac_max)).split(".")[1]||"");let F2=!1;if(t2.fractions){const n3=Math.abs(t2.integer?e2%1:e2);if(n3)if(F2=!0,isFinite(t2.denominator))s2+=t2.denominator,i2+=c(n3*t2.denominator),i2==="0"&&(i2="",s2="",F2=!1,l2||(l2="0"));else{const e3=p(n3,t2.integer?t2.num_max:1/0,t2.den_max);i2+=e3[0],s2+=e3[1],t2.integer&&i2==="0"&&(l2||(l2="0"),i2="",s2="",F2=!1)}}if(t2.date){m2=Math.trunc(e2);const a3=$*(e2-m2);if(f2=Math.floor(a3),k2=a3-f2,Math.abs(k2)<1e-6?k2=0:k2>.9999&&(k2=0,f2+=1,f2===$&&(f2=0,m2+=1)),k2){const e3=512&t2.date||256&t2.date||128&t2.date;(e3===512&&k2>.9995||e3===256&&k2>.995||e3===128&&k2>.95||!e3&&k2>=.5)&&(f2++,k2=0)}if(m2||t2.date_system){const a4=Y(e2,t2.date_system,n2.leap1900);g2=a4[0],h2=a4[1],_2=a4[2]}if(f2){const e3=f2<0?$+f2:f2;M2=Math.floor(e3)%60,v2=Math.floor(e3/60)%60,j2=Math.floor(e3/60/60)%60}if(b2=(6+m2)%7,t2.date_eval&&(z2=e2,w2=m2+f2/$,n2.dateSpanLarge?z2<-694324||w2>=35830291:z2<0||w2>=2958466)){if(n2.dateErrorThrows)throw new Error("Date out of bounds");return n2.dateErrorNumber?B(e2<0?[x2.negative]:[],0,e2,x2).join(""):n2.overflow}}var z2,w2;if(t2.int_padding&&(l2=t2.int_padding.length===1?l2||t2.int_padding:t2.int_padding.substring(0,t2.int_padding.length-l2.length)+l2),t2.num_padding&&(i2=t2.num_padding.length===1?i2||t2.num_padding:t2.num_padding.substring(0,t2.num_padding.length-i2.length)+i2),t2.den_padding&&(s2=t2.den_padding.length===1?s2||t2.den_padding:s2+t2.den_padding.slice(s2.length)),t2.man_padding){const e3=t2.exp_plus?"+":"";r2=t2.man_padding.length===1?(d2<0?"-":e3)+(r2||t2.man_padding):(d2<0?"-":e3)+t2.man_padding.slice(0,t2.man_padding.length-r2.length)+r2}const D2=[];let S2=0;const C2={int:0,frac:0,man:0,num:0,den:0};for(let d3=0,u2=t2.tokens.length;d3<u2;d3++){const u3=t2.tokens[d3],c2=u3.num?u3.num.length:0;if(u3.type==="string")u3.rule?u3.rule==="num"?F2?D2.push(u3.value):(t2.num_min>0||t2.den_min>0)&&D2.push(u3.value.replace(/./g,y["?"])):u3.rule==="num+int"?F2&&l2?D2.push(u3.value):t2.den_min>0&&(l2||t2.num_min)&&D2.push(u3.value.replace(/./g,y["?"])):u3.rule==="den"&&(F2?D2.push(u3.value):(t2.den_min>0||t2.den_min>0)&&D2.push(u3.value.replace(/./g,y["?"]))):D2.push(u3.value);else if(u3.type==="error")D2.push(n2.invalid);else if(u3.type==="point")D2.push(t2.date?u3.value:x2.decimal);else if(u3.type==="general")B(D2,0,e2,x2);else if(u3.type==="exp")D2.push(x2.exponent);else if(u3.type==="minus")u3.volatile&&t2.date||u3.volatile&&(e2>=0||typeof e2!="number")||(u3.volatile&&!t2.fractions&&(t2.integer||t2.dec_fractions)?(e2<0&&l2&&l2!=="0"||o2)&&D2.push(x2.negative):D2.push(x2.negative));else if(u3.type==="plus")D2.push(x2.positive);else if(u3.type==="text")D2.push(e2);else if(u3.type==="div")F2?D2.push("/"):t2.num_min>0||t2.den_min>0?D2.push(y["?"]):D2.push(y["#"]);else if(u3.type==="int")if(t2.int_pattern.length===1)D2.push(l2);else{const e3=S2?t2.int_pattern.join("").length-C2.int:1/0,n3=S2===t2.int_pattern.length-1?0:t2.int_pattern.join("").length-(C2.int+u3.num.length);D2.push(l2.substring(l2.length-e3,l2.length-n3)),S2++,C2.int+=u3.num.length}else if(u3.type==="frac"){const e3=C2.frac;for(let t3=0;t3<c2;t3++)D2.push(o2[t3+e3]||y[u3.num[t3]]);C2.frac+=c2}else if(u3.type in W)t2[u3.type+"_pattern"].length===1?(u3.type==="int"&&D2.push(l2),u3.type==="frac"&&D2.push(o2),u3.type==="man"&&D2.push(r2),u3.type==="num"&&D2.push(i2),u3.type==="den"&&D2.push(s2)):(D2.push(W[u3.type].slice(C2[u3.type],C2[u3.type]+c2)),C2[u3.type]+=c2);else if(u3.type==="year")g2<0&&D2.push(x2.negative),D2.push(String(Math.abs(g2)).padStart(4,"0"));else if(u3.type==="year-short"){const e3=g2%100;D2.push(e3<10?"0":"",e3)}else if(u3.type==="month")D2.push(u3.pad&&h2<10?"0":"",h2);else if(u3.type==="monthname-single")t2.date_system===6?D2.push(x2.mmmm6[h2-1].charAt(0)):D2.push(x2.mmmm[h2-1].charAt(0));else if(u3.type==="monthname-short")t2.date_system===6?D2.push(x2.mmm6[h2-1]):D2.push(x2.mmm[h2-1]);else if(u3.type==="monthname")t2.date_system===6?D2.push(x2.mmmm6[h2-1]):D2.push(x2.mmmm[h2-1]);else if(u3.type==="weekday-short")D2.push(x2.ddd[b2]);else if(u3.type==="weekday")D2.push(x2.dddd[b2]);else if(u3.type==="day")D2.push(u3.pad&&_2<10?"0":"",_2);else if(u3.type==="hour"){const e3=j2%t2.clock||(t2.clock<24?t2.clock:0);D2.push(u3.pad&&e3<10?"0":"",e3)}else if(u3.type==="min")D2.push(u3.pad&&v2<10?"0":"",v2);else if(u3.type==="sec")D2.push(u3.pad&&M2<10?"0":"",M2);else if(u3.type==="subsec"){D2.push(x2.decimal);const e3=k2.toFixed(t2.sec_decimals);D2.push(e3.slice(2,2+u3.decimals))}else if(u3.type==="am"){const e3=j2<12?0:1;u3.short&&!a2?D2.push("AP"[e3]):D2.push(x2.ampm[e3])}else if(u3.type==="hour-elap"){e2<0&&D2.push(x2.negative);const t3=24*m2+Math.floor(Math.abs(f2)/3600);D2.push(String(Math.abs(t3)).padStart(u3.pad,"0"))}else if(u3.type==="min-elap"){e2<0&&D2.push(x2.negative);const t3=1440*m2+Math.floor(Math.abs(f2)/60);D2.push(String(Math.abs(t3)).padStart(u3.pad,"0"))}else if(u3.type==="sec-elap"){e2<0&&D2.push(x2.negative);const t3=m2*$+Math.abs(f2);D2.push(String(Math.abs(t3)).padStart(u3.pad,"0"))}else if(u3.type==="b-year")D2.push(g2+543);else if(u3.type==="b-year-short"){const e3=(g2+543)%100;D2.push(e3<10?"0":"",e3)}}return n2.nbsp?D2.join(""):D2.join("").replace(/\u00a0/g," ")}__name(K,"K");function q(e2,t2){for(let n2=0;n2<3;n2++){const a2=t2[n2];if(a2){let t3;if(a2.condition){const n3=a2.condition[0],r2=a2.condition[1];n3==="="?t3=e2===r2:n3===">"?t3=e2>r2:n3==="<"?t3=e2<r2:n3===">="?t3=e2>=r2:n3==="<="?t3=e2<=r2:n3==="<>"&&(t3=e2!==r2)}else t3=!0;if(t3)return a2}}}__name(q,"q");const V=z("@"),Q="black",X={};function ee(e2,t2){if(e2){const n2=e2[0];t2[n2]=t2[n2]||{},ee(e2.slice(1),t2[n2])}else t2.$=!0}__name(ee,"ee"),["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(e2=>{ee(e2,X),ee(e2+" x",X),ee(e2+" l",X),ee(e2+" l x",X),ee("l "+e2,X),ee("l "+e2+" x",X),ee(e2+" D",X),ee(e2+" D x",X),ee("D "+e2,X),ee("D "+e2+" x",X)});const te={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},ne={january:1,february:2,march:3,april:4,june:6,july:7,august:8,september:9,october:10,november:11,december:12},ae={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"},re=new Date().getUTCFullYear();function ie(e2){const t2=new RegExp("^([\\s+%"+j.join("")+"(-]*)(((?:(?:\\d[\\d,]*)(?:\\.\\d*)?|(?:\\.\\d+)))([eE][+-]?\\d+)?)([\\s%"+j.join("")+")]*)$").exec(e2);if(t2){const[,e3,n2,a2,r2,i2]=t2;let s2=1,o2="",l2=!1,d2=!1,m2=!1,u2=!1,c2=!1,p2=null,f2=!1,g2=parseFloat(n2.replace(/,/g,""));if(!isFinite(g2))return null;for(let t3=0;t3<e3.length;t3++){const n3=e3[t3];if(n3==="-"){if(l2||d2)return null;l2=!0,s2=-1}else if(v.test(n3)){if(c2)return null;c2=!0,p2=n3}else if(n3==="("){if(d2||l2)return null;d2=!0,s2=-1}else if(n3==="%"){if(u2)return null;u2=!0}}for(let e4=0;e4<i2.length;e4++){const t3=i2[e4];if(v.test(t3)){if(c2)return null;c2=!0,p2=t3,f2=!0}else if(t3===")"){if(m2||!d2)return null;m2=!0}else if(t3==="%"){if(u2)return null;u2=!0}}if(r2){if(u2||c2)return null;o2="0.00E+00"}else if(u2){if(c2)return null;o2=a2.includes(".")?"0.00%":"0%",g2*=.01}else if(c2){const e4=a2.includes(".")?"#,##0.00":"#,##0";o2=f2?e4+p2:p2+e4}else a2.includes(",")&&(o2=a2.includes(".")?"#,##0.00":"#,##0");const h2={v:g2*s2};return o2&&(h2.z=o2),h2}}__name(ie,"ie");const se=__name((e2,t2,n2)=>{const a2=n2.path||"",r2=Object.keys(t2);for(let i2=0;i2<r2.length;i2++){let s2;const o2=r2[i2];if(t2[o2]){if(o2==="$"||o2==="€")e2||(s2=n2);else if(o2==="-"){const r3=/^(\s*([./-]|,\s)\s*|\s+)/.exec(e2);if(r3){const i3=r3[1]==="-"||r3[1]==="/"||r3[1]==="."?r3[1]:" ";if(!n2.sep||n2.sep===i3){const l2=r3[0].replace(/\s+/g," ");s2=se(e2.slice(r3[0].length),t2[o2],{...n2,sep:i3,path:a2+l2})}}}else if(o2===" "){const r3=/^[,.]?\s+/.exec(e2);if(r3){const i3=r3[0].replace(/\s+/g," ");s2=se(e2.slice(r3[0].length),t2[o2],{...n2,path:a2+i3})}}else if(o2==="j"||o2==="d"){const r3=/^(0?[1-9]|1\d|2\d|3[01])\b/.exec(e2);r3&&(s2=se(e2.slice(r3[0].length),t2[o2],{...n2,day:r3[0],path:a2+o2}))}else if(o2==="n"||o2==="m"){const r3=/^(0?[1-9]|1[012])\b/.exec(e2);r3&&(s2=se(e2.slice(r3[0].length),t2[o2],{...n2,month:+r3[0],_mon:r3[0],path:a2+o2}))}else if(o2==="F"||o2==="M"){const r3=/^([a-z]{3,9})\b/i.exec(e2),i3=r3&&(o2==="F"?ne:te)[r3[0].toLowerCase()];i3&&(s2=se(e2.slice(r3[0].length),t2[o2],{...n2,month:i3,_mon:r3[0],path:a2+o2}))}else if(o2==="l"||o2==="D"){const r3=/^([a-z]{3,9})\b/i.exec(e2);(r3&&ae[r3[0].toLowerCase()])===o2&&(s2=se(e2.slice(r3[0].length),t2[o2],{...n2,path:a2+o2}))}else if(o2==="y"){const r3=/^\d\d\b/.exec(e2);if(r3){const i3=+r3[0]>=30?+r3[0]+1900:+r3[0]+2e3;s2=se(e2.slice(r3[0].length),t2[o2],{...n2,year:i3,path:a2+o2})}}else if(o2==="Y"){const r3=/^\d\d\d\d\b/.exec(e2);r3&&(s2=se(e2.slice(r3[0].length),t2[o2],{...n2,year:+r3[0],path:a2+o2}))}else{if(o2!=="x")throw new Error('Unknown date token "'.concat(o2,'"'));{const r3=le(e2);r3&&(s2=se("",t2[o2],{...n2,time:r3.v,tf:r3.z,path:a2+o2}))}}if(s2)return s2}}},"se");function oe(e2,t2){const n2=se(e2.trim(),X,{path:""});if(n2){var a2;if(n2.sep==="."&&n2.path.length===3)return null;const e3=+((a2=n2.year)!==null&&a2!==void 0?a2:re);if(n2.day||(n2.day=1),!function(e4,t3,n3){if(n3<1||t3<1||t3>12)return!1;if(t3===2){if(n3>(e4%4==0&&e4%100!=0||e4%400==0||e4===1900?29:28))return!1}else if((t3===4||t3===6||t3===9||t3===11)&&n3>30||(t3===1||t3===3||t3===5||t3===7||t3===8||t3===10||t3===12)&&n3>31)return!1;return!0}(e3,n2.month,n2.day))return null;let r2=-1/0;if(e3<1900)return null;e3<=1900&&n2.month<=2?r2=25568:e3<1e4&&(r2=25569);const i2=Date.UTC(e3,n2.month-1,n2.day)/864e5+r2+(n2.time||0);if(i2>=0&&i2<=2958465){const e4=n2._mon[0]==="0"||n2.day[0]==="0"||n2._mon.length===2&&n2.day.length===2,a3=n2.path.replace(/[jdlDnmMFyYx-]/g,t3=>t3==="j"||t3==="d"?e4?"dd":"d":t3==="D"?"ddd":t3==="l"?"dddd":t3==="n"||t3==="m"?e4?"mm":"m":t3==="M"?"mmm":t3==="F"?"mmmm":t3==="y"?"yy":t3==="x"?n2.tf||"":t3==="Y"?"yyyy":t3);return t2&&t2.nativeDate?{v:I(i2,t2),z:a3}:{v:i2,z:a3}}}return null}__name(oe,"oe");function le(e2){const t2=/^\s*([10]?\d|2[0-4])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?(\.\d{1,10})?(?:\s*([AP])M?)?\s*$/i.exec(e2);if(t2){const[,e3,n2,a2,r2,i2]=t2;if(r2&&!a2||!i2&&!n2&&!a2)return null;let s2=1*(e3||0);if(i2){if(s2>=13)return null;i2[0]!=="p"&&i2[0]!=="P"||(s2+=12)}return{v:(60*s2*60+60*(1*(n2||0))+1*(a2||0)+1*(r2||0))/86400,z:(e3.length===2?"hh":"h")+":mm"+(a2?":ss":"")+(i2?" AM/PM":"")}}return null}__name(le,"le");function de(e2){return/^\s*true\s*$/i.test(e2)?{v:!0}:/^\s*false\s*$/i.test(e2)?{v:!1}:null}__name(de,"de");const me={};function ue(e2,t2){const{pattern:n2,partitions:a2,locale:r2}=e2,i2=__name(e3=>{const n3=Object.assign({},h(),t2,e3);return r2&&(n3.locale=r2),n3},"i"),s2=__name((e3,t3)=>{const n3=i2(t3);return function(e4,t4,n4){const a3=l(n4.locale),r3=t4[3]?t4[3]:V;if(typeof e4=="boolean"&&(e4=e4?"TRUE":"FALSE"),e4==null)return"";if(typeof e4!="number")return K(e4,r3,n4,a3);if(!isFinite(e4)){const t5=a3||u;return isNaN(e4)?t5.nan:(e4<0?t5.negative:"")+t5.infinity}const i3=q(e4,t4);return i3?K(e4,i3,n4,a3):n4.overflow}(P(e3,n3),a2,n3)},"s");s2.color=(e3,t3)=>function(e4,t4){if(typeof e4!="number"||!isFinite(e4))return(t4[3]?t4[3].color:V.color)||Q;const n3=q(e4,t4);return n3&&n3.color||Q}(P(e3,i2(t3)),a2);const o2=function(e3){var t3;let n3=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const[a3,r3]=e3,i3=a3.frac_max,s3={type:"general",isDate:J(e3),isText:L(e3),isPercent:O(e3),maxDecimals:a3.general?9:i3,scale:(t3=a3.scale)!==null&&t3!==void 0?t3:1,color:0,parentheses:0,grouped:a3.grouping?1:0,_partitions:e3},o3=!s3.isDate&&!s3.isText&&!a3.error&&a3.tokens.some(e4=>e4.type==="string"&&(n3?e4.value===n3:v.test(e4.value)));let l2="G",d2=i3>=0?Math.min(15,i3):"",m2="",u2="";if(r3&&r3.color&&(u2="-",s3.color=1),a3.parens&&(m2="()",s3.parentheses=1),o3)l2="C",s3.type="currency";else if(a3.error)s3.type="error",s3.maxDecimals=0;else if(s3.isDate){let e4=0,t4=0,n4="";a3.tokens.forEach(a4=>{const r5=a4.type;/^(b-)?year/.test(r5)?(n4+="Y",t4++):r5.startsWith("month")?(n4+="M",t4++):/^(week)?day/.test(r5)?(n4+="D",t4++):r5!=="hour"&&r5!=="min"&&r5!=="sec"&&r5!=="am"||(n4+=r5[0],e4++)}),s3.type="date",t4&&e4?s3.type="datetime":!t4&&e4&&(s3.type="time");const r4=R.find(e5=>n4.startsWith(e5[0]));l2=r4?"D":"G",d2=r4?r4[1]:""}else s3.isText?(l2="G",s3.type="text",d2="",s3.maxDecimals=0):a3.general?(l2="G",s3.type="general",d2=""):a3.fractions?(l2="G",s3.type="fraction",d2=""):a3.exponential?(l2="S",s3.type="scientific"):s3.isPercent?(l2="P",s3.type="percent"):a3.grouping?(l2=",",s3.type="grouped"):(a3.int_max||i3)&&(l2="F",s3.type="number");return s3.code=l2+d2+u2+m2,s3.level=U[s3.type],Object.freeze(s3)}(a2,(t2||{}).currency)||new SyntaxError;return s2.info=o2,s2.dateInfo=function(e3){const[t3]=e3;return{year:!!(2&t3.date),month:!!(4&t3.date),day:!!(8&t3.date),hours:!!(16&t3.date),minutes:!!(32&t3.date),seconds:!!(64&t3.date),clockType:t3.clock===12?12:24}}(a2),s2.isPercent=()=>!!o2.isPercent,s2.isDate=()=>!!o2.isDate,s2.isText=()=>!!o2.isText,s2.pattern=n2,e2.error&&(s2.error=e2.error),s2.options=i2,s2.locale=r2||t2&&t2.locale||"",Object.freeze(s2)}__name(ue,"ue");function ce(e2,t2){e2||(e2="General");let n2=null;return me[e2]?n2=me[e2]:(n2=Object.assign({},h(),t2).throws?D(e2):function(e3){try{return D(e3)}catch(t3){const n3={tokens:[{type:"error"}],error:t3.message};return{pattern:e3,partitions:[n3,n3,n3,n3],error:t3.message,locale:null}}}(e2),n2.error||(me[e2]=n2)),ue(n2,t2)}__name(ce,"ce"),ce.isDate=e2=>ce(e2,{throws:!1}).isDate(),ce.isPercent=e2=>ce(e2,{throws:!1}).isPercent(),ce.isText=e2=>ce(e2,{throws:!1}).isText(),ce.getInfo=(e2,t2)=>ce(e2,{...t2,throws:!1}).info,ce.getDateInfo=(e2,t2)=>ce(e2,{...t2,throws:!1}).dateInfo,ce.dateToSerial=P,ce.dateFromSerial=I,ce.options=h,ce.dec2frac=p,ce.round=c,ce.codeToLocale=n,ce.parseLocale=s,ce.getLocale=l,ce.addLocale=(e2,t2)=>{const n2=s(t2);return delete me[n2.lang],delete me[n2.language],m(e2,n2)},ce.format=function(e2,t2,n2){let a2=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const r2=n2&&typeof n2=="object"?n2:{locale:n2,throws:!a2};return ce(e2,r2)(P(t2,r2),r2)},ce.is_date=ce.isDate,ce.parseNumber=ie,ce.parseDate=oe,ce.parseTime=le,ce.parseBool=de,ce.parseValue=function(e2,t2){var n2,a2,r2;return(n2=(a2=(r2=ie(e2))!==null&&r2!==void 0?r2:oe(e2,t2))!==null&&a2!==void 0?a2:le(e2))!==null&&n2!==void 0?n2:de(e2)};var pe=ce;return t=t.default}()})})(numfmt$2);var numfmtExports=numfmt$2.exports,numfmt=numfmtExports;const numfmt$1=getDefaultExportFromCjs(numfmt),currencySymbols=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],NumberFormatTypeMap={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 handleNumfmtInCell(oldCell,cell,styles){var _a24,_b;if(oldCell==null||cell==null)return cell;const oldCellStyle=(styles==null?void 0:styles.getStyleByCell(oldCell))||oldCell.s,cellStyle=(styles==null?void 0:styles.getStyleByCell(cell))||cell.s;if(oldCellStyle==null||cellStyle==null||typeof oldCellStyle!="object"||typeof cellStyle!="object")return cell;const oldPattern=(_a24=oldCellStyle==null?void 0:oldCellStyle.n)==null?void 0:_a24.pattern,pattern=(_b=cellStyle==null?void 0:cellStyle.n)==null?void 0:_b.pattern;if(oldPattern==null||pattern==null)return cell;const newPattern=oldPattern||pattern;return cellStyle.n.pattern=newPattern,cell}__name(handleNumfmtInCell,"handleNumfmtInCell");function getNumberFormatType(pattern){if(isAccounting(pattern))return 3;const type=numfmt$1.getInfo(pattern).type||"unknown";return NumberFormatTypeMap[type]}__name(getNumberFormatType,"getNumberFormatType");function isAccounting(pattern){return!!currencySymbols.find(code=>pattern.includes(code))&&pattern.startsWith("_(")}__name(isAccounting,"isAccounting");function comparePatternPriority(previousPattern,nextPattern,operator){if(previousPattern==="")return nextPattern;if(nextPattern==="")return previousPattern;const previousPatternType=getNumberFormatType(previousPattern),nextPatternType=getNumberFormatType(nextPattern);return operator===operatorToken.PLUS||operator===operatorToken.MINUS?previousPatternType===4&&nextPatternType===4||previousPatternType===11&&nextPatternType===11?"":nextPattern:operator===operatorToken.MULTIPLY||operator===operatorToken.DIVIDED?previousPatternType===6&&nextPatternType===6||previousPatternType===7&&nextPatternType===7||previousPatternType===8&&nextPatternType===8||previousPatternType===9&&nextPatternType===9?nextPattern:"":previousPattern||nextPattern}__name(comparePatternPriority,"comparePatternPriority");const _NullValueObject=class _NullValueObject extends BaseValueObject{static create(){return this._instance=this._instance||new _NullValueObject(0),this._instance}isNull(){return!0}plus(valueObject){return NumberValueObject.create(0).plus(valueObject)}minus(valueObject){return NumberValueObject.create(0).minus(valueObject)}multiply(valueObject){return NumberValueObject.create(0).multiply(valueObject)}divided(valueObject){return NumberValueObject.create(0).divided(valueObject)}mod(valueObject){return NumberValueObject.create(0).mod(valueObject)}compare(valueObject,operator){return valueObject.isString()?StringValueObject.create("").compare(valueObject,operator):valueObject.isBoolean()?BooleanValueObject.create(!1).compare(valueObject,operator):NumberValueObject.create(0).compare(valueObject,operator)}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plusBy(value){return NumberValueObject.create(0).plusBy(value)}minusBy(value){return NumberValueObject.create(0).minusBy(value)}multiplyBy(value){return NumberValueObject.create(0).multiplyBy(value)}dividedBy(value){return NumberValueObject.create(0).dividedBy(value)}compareBy(value,operator){return typeof value=="string"?StringValueObject.create("").compareBy(value,operator):typeof value=="boolean"?BooleanValueObject.create(!1).compareBy(value,operator):NumberValueObject.create(0).compareBy(value,operator)}pow(valueObject){return NumberValueObject.create(0).pow(valueObject)}sqrt(){return NumberValueObject.create(0).sqrt()}cbrt(){return NumberValueObject.create(0).cbrt()}cos(){return NumberValueObject.create(0).cos()}cosh(){return NumberValueObject.create(0).cosh()}acos(){return NumberValueObject.create(0).acos()}acosh(){return NumberValueObject.create(0).acosh()}sin(){return NumberValueObject.create(0).sin()}sinh(){return NumberValueObject.create(0).sinh()}asin(){return NumberValueObject.create(0).asin()}asinh(){return NumberValueObject.create(0).asinh()}tan(){return NumberValueObject.create(0).tan()}tanh(){return NumberValueObject.create(0).tanh()}atan(){return NumberValueObject.create(0).atan()}atan2(valueObject){return NumberValueObject.create(0).atan2(valueObject)}atanh(){return NumberValueObject.create(0).atanh()}log(){return ErrorValueObject.create(ErrorType$1.NUM)}log10(){return ErrorValueObject.create(ErrorType$1.NUM)}exp(){return NumberValueObject.create(0).exp()}abs(){return NumberValueObject.create(0).abs()}round(valueObject){return NumberValueObject.create(0).round(valueObject)}floor(valueObject){return NumberValueObject.create(0).floor(valueObject)}ceil(valueObject){return NumberValueObject.create(0).ceil(valueObject)}convertToNumberObjectValue(){return NumberValueObject.create(0)}convertToBooleanObjectValue(){return BooleanValueObject.create(!1)}};__name(_NullValueObject,"NullValueObject"),__publicField(_NullValueObject,"_instance");let NullValueObject=_NullValueObject;const _BooleanValueObject=class _BooleanValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",!1);this._value=rawValue}static create(value){return value?(this._instanceTrue=this._instanceTrue||new _BooleanValueObject(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new _BooleanValueObject(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(-result)}getReciprocal(){return this.getValue()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}plus(valueObject){return this._convertToNumber().plus(valueObject)}minus(valueObject){return this._convertToNumber().minus(valueObject)}multiply(valueObject){return this._convertToNumber().multiply(valueObject)}divided(valueObject){return this._convertToNumber().divided(valueObject)}mod(valueObject){return this._convertToNumber().mod(valueObject)}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):valueObject.isNull()?this._convertToNumber().compare(valueObject,operator):this.compareBy(valueObject.getValue(),operator)}compareBy(value,operator){let result=!1;if(typeof value=="string"||typeof value=="number")result=this._compareString(operator);else if(typeof value=="boolean"){const booleanNumber=NumberValueObject.create(value?1:0);return this._convertToNumber().compare(booleanNumber,operator)}return _BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!1}}concatenateFront(valueObject){return this._convertToNumber().concatenateFront(valueObject)}concatenateBack(valueObject){return this._convertToNumber().concatenateBack(valueObject)}_convertToNumber(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}pow(valueObject){return this._convertToNumber().pow(valueObject)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}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(valueObject){return this._convertToNumber().atan2(valueObject)}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(valueObject){return this._convertToNumber().round(valueObject)}floor(valueObject){return this._convertToNumber().floor(valueObject)}ceil(valueObject){return this._convertToNumber().ceil(valueObject)}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return this}};__name(_BooleanValueObject,"BooleanValueObject"),__publicField(_BooleanValueObject,"_instanceTrue"),__publicField(_BooleanValueObject,"_instanceFalse");let BooleanValueObject=_BooleanValueObject;const NUMBER_CACHE_LRU_COUNT=2e5,NumberValueObjectCache=new FormulaAstLRU(NUMBER_CACHE_LRU_COUNT),_NumberValueObject=class _NumberValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",0);this._value=Number(rawValue)}static create(value,pattern=""){const key=`${value}-${pattern}`,cached=NumberValueObjectCache.get(key);if(cached)return cached;const instance=new _NumberValueObject(value);return pattern&&instance.setPattern(pattern),NumberValueObjectCache.set(key,instance),instance}getValue(){return this._value}setValue(value){this._value=value}isNumber(){return!0}getNegative(){return _NumberValueObject.create(0).minus(this)}getReciprocal(){return _NumberValueObject.create(1).divided(this)}plus(valueObject){if(valueObject.isArray())return valueObject.plus(this);let object=this.plusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.PLUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}equalZero(){return this._value===0}minus(valueObject){if(valueObject.isArray()){const o=valueObject.getNegative();return o.isError()?o:o.plus(this)}let object=this.minusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MINUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}multiply(valueObject){if(valueObject.isArray())return valueObject.multiply(this);let object=this.multiplyBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MULTIPLY);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}divided(valueObject){if(valueObject.isArray()){const o=valueObject.getReciprocal();return o.isError()?o:o.multiply(this)}let object=this.dividedBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.DIVIDED);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}mod(valueObject){if(valueObject.isArray())return valueObject.modInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(valueObject.isNull())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value)||Math.abs(value)*11259e8<=Math.abs(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=mod(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}if(typeof value=="boolean"){const booleanValue=value?1:0;return booleanValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(mod(currentValue,booleanValue))}return this}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):this.compareBy(valueObject.getValue(),operator)}plusBy(value){const currentValue=this.getValue();if(typeof value=="string")return ERROR_TYPE_SET.has(value)?ErrorValueObject.create(value):ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=plus(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(plus(currentValue,value?1:0)):this}minusBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=minus(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(minus(currentValue,value?1:0)):this}multiplyBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=multiply(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(multiply(currentValue,value?1:0)):this}dividedBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=divide(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?value===!1?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(divide(currentValue,1)):this}compareBy(value,operator){const currentValue=this.getValue();let result=!1;return typeof value=="string"?result=this._compareString(operator):typeof value=="number"?result=this._compareNumber(currentValue,value,operator):typeof value=="boolean"&&(result=this._compareBoolean(operator)),BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}_compareNumber(currentValue,value,operator){return!Number.isFinite(currentValue)||!Number.isFinite(value)?this._compareInfinity(currentValue,value,operator):this._compareFiniteNumber(currentValue,value,operator)}_compareFiniteNumber(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return equals(currentValue,value);case compareToken.GREATER_THAN:return greaterThan(currentValue,value);case compareToken.GREATER_THAN_OR_EQUAL:return greaterThanOrEquals(currentValue,value);case compareToken.LESS_THAN:return lessThan(currentValue,value);case compareToken.LESS_THAN_OR_EQUAL:return lessThanOrEquals(currentValue,value);case compareToken.NOT_EQUAL:return!equals(currentValue,value)}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}pow(valueObject){if(valueObject.isArray())return valueObject.powInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=pow(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(pow(currentValue,value?1:0)):this}sqrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=sqrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cbrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cbrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cos(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cosh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}acos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acos(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}acosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acosh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}sin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sin(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sinh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}asin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asin(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}asinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asinh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}tan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}tanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan2(valueObject){if(valueObject.isArray())return valueObject.atan2Inverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0&&value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.atan2(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(Math.atan2(currentValue,value?1:0)):this}atanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log10(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log10(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}exp(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.exp(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}abs(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}round(valueObject){if(valueObject.isArray())return valueObject.roundInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-round(Math.abs(currentValue),value):round(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(round(currentValue,value?1:0)):this}floor(valueObject){if(valueObject.isArray())return valueObject.floorInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-floor(Math.abs(currentValue),value):floor(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(floor(currentValue,value?1:0)):this}ceil(valueObject){if(valueObject.isArray())return valueObject.ceilInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-ceil(Math.abs(currentValue),value):ceil(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(ceil(currentValue,value?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return createBooleanValueObjectByRawValue(!0)}_compareInfinity(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=currentValue===value;break;case compareToken.GREATER_THAN:result=currentValue>value;break;case compareToken.GREATER_THAN_OR_EQUAL:result=currentValue>=value;break;case compareToken.LESS_THAN:result=currentValue<value;break;case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<=value;break;case compareToken.NOT_EQUAL:result=currentValue!==value;break}return result}};__name(_NumberValueObject,"NumberValueObject");let NumberValueObject=_NumberValueObject;const STRING_CACHE_LRU_COUNT=2e5,StringValueObjectCache=new FormulaAstLRU(STRING_CACHE_LRU_COUNT),_StringValueObject=class _StringValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value");this._value=rawValue}static create(value){const cached=StringValueObjectCache.get(value);if(cached)return cached;const instance=new _StringValueObject(value);return StringValueObjectCache.set(value,instance),instance}getValue(){return this._value}isString(){return!0}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator,isCaseSensitive){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator),isCaseSensitive):this.compareBy(valueObject.getValue(),operator,isCaseSensitive)}compareBy(value,operator,isCaseSensitive=!1){let currentValue=this.getValue(),result=!1;if(typeof value=="string"){let _value=value;if(isCaseSensitive||(currentValue=currentValue.toLocaleLowerCase(),_value=_value.toLocaleLowerCase()),isWildcard(_value))return this._checkWildcard(_value,operator);result=this._compareString(currentValue,_value,operator)}else typeof value=="number"?result=this._compareNumber(operator):typeof value=="boolean"&&(result=this._compareBoolean(operator));return BooleanValueObject.create(result)}_compareString(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return currentValue===value;case compareToken.GREATER_THAN:return currentValue>value;case compareToken.GREATER_THAN_OR_EQUAL:return currentValue>=value;case compareToken.LESS_THAN:return currentValue<value;case compareToken.LESS_THAN_OR_EQUAL:return currentValue<=value;case compareToken.NOT_EQUAL:return currentValue!==value}}_compareNumber(operator){switch(operator){case compareToken.NOT_EQUAL:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return BooleanValueObject.create(!0)}_checkWildcard(value,operator){const currentValue=this.getValue().toLocaleLowerCase(),result=compareWithWildcard(currentValue,value,operator);return BooleanValueObject.create(result)}};__name(_StringValueObject,"StringValueObject");let StringValueObject=_StringValueObject;function createBooleanValueObjectByRawValue(rawValue){if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);let value=!1;if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase();rawValueUpper===BooleanValue.TRUE?value=!0:rawValueUpper===BooleanValue.FALSE&&(value=!1)}else rawValue===1?value=!0:value=!1;return BooleanValueObject.create(value)}__name(createBooleanValueObjectByRawValue,"createBooleanValueObjectByRawValue");function createStringValueObjectByRawValue(rawValue){let value=rawValue.toString();return value.charAt(0)==='"'&&value.charAt(value.length-1)==='"'&&(value=value.slice(1,-1),value=value.replace(/""/g,'"')),StringValueObject.create(value)}__name(createStringValueObjectByRawValue,"createStringValueObjectByRawValue");function createNumberValueObjectByRawValue(rawValue,pattern=""){if(typeof rawValue=="boolean"){let result=0;return rawValue&&(result=1),NumberValueObject.create(result,pattern)}else{if(typeof rawValue=="number")return Number.isFinite(rawValue)?NumberValueObject.create(rawValue,pattern):ErrorValueObject.create(ErrorType$1.NUM);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue),pattern)}return ErrorValueObject.create(ErrorType$1.VALUE)}__name(createNumberValueObjectByRawValue,"createNumberValueObjectByRawValue");function fromObjectToString(array){return""}__name(fromObjectToString,"fromObjectToString");function transformToValueObject(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];arrayValueList[r][c]=ValueObjectFactory.create(cell)}}return arrayValueList}__name(transformToValueObject,"transformToValueObject");function transformToValue(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];cell==null?arrayValueList[r][c]=null:cell.isError()?arrayValueList[r][c]=cell.getErrorType():arrayValueList[r][c]=cell.getValue()}}return arrayValueList}__name(transformToValue,"transformToValue");const _ArrayValueObject=class _ArrayValueObject extends BaseValueObject{constructor(rawValue){super(typeof rawValue=="string"?rawValue:fromObjectToString());__publicField(this,"_values",[]);__publicField(this,"_rowCount",-1);__publicField(this,"_columnCount",-1);__publicField(this,"_unitId","");__publicField(this,"_sheetId","");__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_sliceCache",new Map);__publicField(this,"_flattenCache");__publicField(this,"_defaultValue",null);__publicField(this,"_flattenPosition");this._values=this._formatValue(rawValue)}static create(rawValue){return new _ArrayValueObject(rawValue)}static createByArray(array){const arrayValueObjectData={calculateValueList:transformToValueObject(array),rowCount:array.length,columnCount:array[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new _ArrayValueObject(arrayValueObjectData)}dispose(){this._values.forEach(cells=>{cells.forEach(cell=>{cell==null||cell.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(o=>o)}getRowCount(){return this._rowCount}setRowCount(rowCount){this._rowCount=rowCount}getColumnCount(){return this._columnCount}setColumnCount(columnCount){this._columnCount=columnCount}setCurrent(row,column){this._currentRow=row,this._currentColumn=column}setUnitId(unitId){this._unitId=unitId}getUnitId(){return this._unitId}setSheetId(sheetId){this._sheetId=sheetId}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(value){this._clearCache(),this._values=value}isArray(){return!0}setDefaultValue(value){this._defaultValue=value}get(row,column){var _a24;return(_a24=this._values[row])==null?void 0:_a24[column]}getRealValue(row,column){const rowValues=this._values[row];if(rowValues==null)return null;const v=rowValues[column];return v==null?null:v}getValueOrDefault(row,column){return this.get(row,column)||this._defaultValue}set(row,column,value){if(row>=this._rowCount||column>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[row][column]=value}getRangePosition(){const rowCount=this.getRowCount(),startColumn=0,columnCount=this.getColumnCount();return{startRow:0,endRow:rowCount-1,startColumn,endColumn:columnCount-1}}iterator(callback){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)if(callback(((_a24=valueList[r])==null?void 0:_a24[c])||this._defaultValue,r,c)===!1)return}iteratorReverse(callback){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=endRow;r>=startRow;r--)for(let c=endColumn;c>=startColumn;c--)if(callback(((_a24=valueList[r])==null?void 0:_a24[c])||this._defaultValue,r,c)===!1)return}getLastTruePosition(){let rangeSingle;return this.iteratorReverse((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstTruePosition(){let rangeSingle;return this.iterator((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstCell(){const{startRow,startColumn}=this.getRangePosition();return this.get(startRow,startColumn)||this._defaultValue||NullValueObject.create()}getLastCell(){const{endRow,endColumn}=this.getRangePosition();return this.get(endRow,endColumn)||this._defaultValue||NullValueObject.create()}pick(takeArray){const newValue=this.pickRaw(takeArray);return this._createNewArray(newValue,1,newValue[0].length)}pickRaw(takeArray){const takeArrayRowCount=takeArray.getRowCount(),takeArrayColumnCount=takeArray.getColumnCount();if(takeArrayRowCount!==this._rowCount||takeArrayColumnCount!==this._columnCount)return[[NullValueObject.create()]];const newValue=[];newValue[0]=[];for(let r=0;r<takeArrayRowCount;r++)for(let c=0;c<takeArrayColumnCount;c++){const takeCell=takeArray.get(r,c);if(!(takeCell==null||takeCell.isError())&&takeCell.getValue()===!0){const value=this.get(r,c);newValue[0].push(value)}}return newValue}flatten(){if(this._flattenCache!=null)return this._flattenCache;const newValue=[];newValue[0]=[];for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);newValue[0].push(value)}const arrayV=this._createNewArray(newValue,1,newValue[0].length);return arrayV.setDefaultValue(this._defaultValue),this._flattenCache=arrayV,arrayV}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const stringValue=[],numberValue=[],stringPosition=[],numberPosition=[];let index=0;for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);if(value==null||value.isError()||value.isNull()){index++;continue}value.isString()?(stringValue.push(value),stringPosition.push(index++)):(numberValue.push(value),numberPosition.push(index++))}const result={stringArray:stringValue,numberArray:numberValue,stringPosition,numberPosition};return this._flattenPosition=result,result}slice(rowParam,columnParam){let rowStart=0,rowStop=this._rowCount,rowStep=1,columnStart=0,columnStop=this._columnCount,columnStep=1;if(rowParam!=null&&(rowStart=rowParam[0]||0,rowStop=rowParam[1]||this._rowCount,rowStep=rowParam[2]||1),columnParam!=null&&(columnStart=columnParam[0]||0,columnStop=columnParam[1]||this._columnCount,columnStep=columnParam[2]||1),rowStart>=this._rowCount||columnStart>=this._columnCount)return;const cacheKey=`${rowStart}_${rowStop}_${rowStep}_${columnStart}_${columnStop}_${columnStep}`,cache=this._sliceCache.get(cacheKey);if(cache!=null)return cache;const result=[],array=this._values;let result_row_index=0,result_column_index=0;for(let r=rowStart;r<rowStop;r+=rowStep){result_column_index=0,result[result_row_index]==null&&(result[result_row_index]=[]);for(let c=columnStart;c<columnStop;c+=columnStep){if(!array[r])return;let cell=array[r][c]||this._defaultValue;cell==null&&(cell=NullValueObject.create()),result[result_row_index][result_column_index]=cell,result_column_index++}result_row_index++}if(result.length===0||result[0].length===0)return;const startRow=rowStep>1?-1:rowStart+this._currentRow,startColumn=columnStep>1?-1:columnStart+this._currentColumn,newResultArray=this._createNewArray(result,result.length,result[0].length,startRow,startColumn);return newResultArray.setDefaultValue(this._defaultValue),this._sliceCache.set(cacheKey,newResultArray),newResultArray}sortByRow(index){const result=this._transposeArray(this._values);result.sort(this._sort(index)),this._clearCache(),this._values=this._transposeArray(result)}sortByColumn(index){this._clearCache(),this._values.sort(this._sort(index))}transpose(){const transposeArray=this._transposeArray(this._values),rowCount=this._rowCount,columnCount=this._columnCount,newArray=this._createNewArray(transposeArray,columnCount,rowCount);return newArray.setDefaultValue(this._defaultValue),newArray}orderSearch(valueObject,searchType=ArrayOrderSearchType.MIN,isDesc=!1,isFuzzyMatching=!1){let result,maxOrMin,resultPosition,maxOrMinPosition;const _handleMatch=__name((itemValue,row,column)=>{if(itemValue==null)return!0;let matchObject;if(isFuzzyMatching===!0?matchObject=itemValue.compare(valueObject,compareToken.EQUALS):matchObject=itemValue.isEqual(valueObject),(matchObject==null?void 0:matchObject.getValue())===!0)return result=itemValue,resultPosition={row,column},!1;searchType===ArrayOrderSearchType.MAX?itemValue.isGreaterThan(valueObject).getValue()===!0&&(maxOrMin==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin=itemValue,maxOrMinPosition={row,column}):searchType===ArrayOrderSearchType.MIN&&itemValue.isLessThan(valueObject).getValue()===!0&&(maxOrMin==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin=itemValue,maxOrMinPosition={row,column})},"_handleMatch");if(isDesc){const rowCount=this._values.length;if(this._values[0]==null)return;const columnCount=this._values[0].length;for(let r=rowCount-1;r>=0;r--)for(let c=columnCount-1;c>=0;c--){const itemValue=this._values[r][c];_handleMatch(itemValue,r,c)}}else this.iterator((itemValue,r,c)=>{_handleMatch(itemValue,r,c)});if(result!=null)return resultPosition;if(maxOrMin!=null)return maxOrMinPosition}binarySearch(valueObject,searchType=ArrayBinarySearchType.MIN){if(valueObject.isError())return;const{stringArray,stringPosition,numberArray,numberPosition}=this.flattenPosition();return valueObject.isString()?this._binarySearch(valueObject,stringArray,stringPosition,searchType):this._binarySearch(valueObject,numberArray,numberPosition,searchType)}_binarySearch(valueObject,searchArray,positionArray,searchType=ArrayBinarySearchType.MIN){const compareFunc=getCompare(),value=valueObject.getValue().toString().toLocaleLowerCase();let start=0,end=searchArray.length-1,lastValue=null;for(;start<=end;){const middle=Math.floor((start+end)/2),compareTo=searchArray[middle];let compare=0;if(compareTo.isNull())compare=1;else{const compareToValue=compareTo.getValue();compare=compareFunc(compareToValue.toString().toLocaleLowerCase(),value)}if(compare===0)return positionArray[middle];compare===-1?(start=middle+1,searchType===ArrayBinarySearchType.MIN&&(lastValue=middle)):(end=middle-1,searchType===ArrayBinarySearchType.MAX&&(lastValue=middle))}if(lastValue!=null)return positionArray[lastValue]}sum(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject)}),accumulatorAll}max(){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isLessThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}min(){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isGreaterThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}count(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countA(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countBlank(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{(valueObject==null||valueObject.isNull()||valueObject.getValue()==="")&&(accumulatorAll=accumulatorAll.plusBy(1))}),accumulatorAll}getNegative(){return _ArrayValueObject.create("{0}").minus(this)}getReciprocal(){return _ArrayValueObject.create("{1}").divided(this)}plus(valueObject){return this._batchOperator(valueObject,1)}minus(valueObject){return this._batchOperator(valueObject,0)}multiply(valueObject){return this._batchOperator(valueObject,2)}divided(valueObject){return this._batchOperator(valueObject,3)}mod(valueObject){return this._batchOperator(valueObject,4)}modInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.mod(currentValue))}compare(valueObject,operator,isCaseSensitive){return this._batchOperator(valueObject,5,operator,isCaseSensitive)}concatenateFront(valueObject){return this._batchOperator(valueObject,6)}concatenateBack(valueObject){return this._batchOperator(valueObject,7)}map(callbackFn){const wrappedCallbackFn=__name((currentValue,r,c)=>currentValue==null?NullValueObject.create():currentValue.isError()?currentValue:callbackFn(currentValue,r,c),"wrappedCallbackFn");return this.mapValue(wrappedCallbackFn)}mapValue(callbackFn){var _a24;const rowCount=this._rowCount,columnCount=this._columnCount,result=[];for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){const row=(_a24=this._values)==null?void 0:_a24[r];if(row==null)rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);else{const currentValue=row[c]||this._defaultValue;currentValue?rowList[c]=callbackFn(currentValue,r,c):rowList[c]=NullValueObject.create()}}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}pow(valueObject){return this._batchOperator(valueObject,8)}powInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.pow(currentValue))}sqrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sqrt())}cbrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cbrt())}cos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cos())}cosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cosh())}acos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acos())}acosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acosh())}sin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sin())}sinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sinh())}asin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asin())}asinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asinh())}tan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tan())}tanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tanh())}atan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atan())}atanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atanh())}atan2(valueObject){return this._batchOperator(valueObject,12)}atan2Inverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.atan2(currentValue))}mean(ddof=0){const sum=this.sum(),count=this.count();return sum.divided(ddof===0?count:count.minusBy(1))}median(){const numberArray=this.flattenPosition().numberArray,allValue=this._createNewArray([numberArray],1,numberArray.length),count=allValue.getColumnCount();if(count<=1)return allValue.get(0,0)||NullValueObject.create();if(allValue.sortByRow(0),count%2===0){const medianRight=allValue.get(0,count/2)||NullValueObject.create(),medianLeft=allValue.get(0,count/2-1)||NullValueObject.create();return medianRight.plus(medianLeft).divided(NumberValueObject.create(2))}return allValue.get(0,(count-1)/2)||NullValueObject.create()}var(ddof=0){const mean=this.mean(),squaredDifferences=[[]];this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return;const baseValueObject=valueObject.minus(mean).pow(NumberValueObject.create(2));baseValueObject.isError()||squaredDifferences[0].push(baseValueObject)});const{_unitId,_sheetId,_currentRow,_currentColumn}=this;return _ArrayValueObject.create({calculateValueList:squaredDifferences,rowCount:1,columnCount:squaredDifferences[0].length,unitId:_unitId,sheetId:_sheetId,row:_currentRow,column:_currentColumn}).mean(ddof)}std(ddof=0){const variance=this.var(ddof);return variance.isError()?variance:variance.sqrt()}log(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log())}log10(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log10())}exp(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.exp())}abs(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.abs())}round(valueObject){return this._batchOperator(valueObject,9)}roundInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.round(currentValue))}floor(valueObject){return this._batchOperator(valueObject,10)}floorInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.floor(currentValue))}ceil(valueObject){return this._batchOperator(valueObject,11)}ceilInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.ceil(currentValue))}toValue(){return transformToValue(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(index){const compare=getCompare();return(a,b)=>{const columnA=a[index],columnB=b[index];return columnA==null?1:columnB==null?-1:columnA.isError()&&columnA.isError()?0:columnA.isError()?1:columnB.isError()?-1:compare(columnA.getValue(),columnB.getValue())}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_batchOperator(valueObject,batchOperatorType,operator,isCaseSensitive){const valueList=[];let rowCount=this._rowCount,columnCount=this._columnCount;if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(rowCount=Math.max(valueRowCount,rowCount),columnCount=Math.max(valueColumnCount,columnCount),valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let c=0;c<columnCount;c++)valueList.push(v)}else if(valueRowCount===1&&this._columnCount>1){const list=valueObject.getArrayValue();for(let c=0;c<columnCount;c++)valueList.push(list[0][c])}else return this._batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive)}else for(let c=0;c<columnCount;c++)valueList.push(valueObject);const result=[];for(let c=0;c<columnCount;c++){const value=valueList[c];this._batchOperatorValue(value,c,result,batchOperatorType,operator,isCaseSensitive)}const newArray=this._createNewArray(result,rowCount,columnCount);return newArray.setDefaultValue(BooleanValueObject.create(!1)),newArray}_batchOperatorValue(valueObject,column,result,batchOperatorType,operator,isCaseSensitive){const rowCount=this._rowCount;let canUseCache=!1;const unitId=this.getUnitId(),sheetId=this.getSheetId(),startRow=this.getCurrentRow(),startColumn=this.getCurrentColumn();if(batchOperatorType===5&&(canUseCache=CELL_INVERTED_INDEX_CACHE.canUseCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1),canUseCache===!0)){if(operator===compareToken.EQUALS){const rowPositions=CELL_INVERTED_INDEX_CACHE.getCellPositions(unitId,sheetId,column+startColumn,valueObject.getValue());rowPositions!=null&&rowPositions.forEach(row=>{const r=row-startRow;result[r]==null&&(result[r]=[]),result[r][column]=BooleanValueObject.create(!0)})}else{const rowValuePositions=CELL_INVERTED_INDEX_CACHE.getCellValuePositions(unitId,sheetId,column+startColumn);rowValuePositions!=null&&rowValuePositions.forEach((rowPositions,rowValue)=>{let currentValue=NullValueObject.create();typeof rowValue=="string"?currentValue=StringValueObject.create(rowValue):typeof rowValue=="number"?currentValue=NumberValueObject.create(rowValue):typeof rowValue=="boolean"&&(currentValue=BooleanValueObject.create(rowValue)),currentValue.compare(valueObject,operator,isCaseSensitive).getValue()===!0&&rowPositions.forEach(index=>{index>=startRow&&index<=startRow+rowCount-1&&(result[index-startRow]==null&&(result[index-startRow]=[]),result[index-startRow][column]=BooleanValueObject.create(!0))})})}return}for(let r=0;r<rowCount;r++){const currentValue=this.getValueOrDefault(r,column);if(result[r]==null&&(result[r]=[]),currentValue&&valueObject)if(currentValue.isError())result[r][column]=currentValue;else if(valueObject.isError())result[r][column]=valueObject;else switch(batchOperatorType){case 1:result[r][column]=currentValue.plus(valueObject);break;case 0:result[r][column]=currentValue.minus(valueObject);break;case 2:result[r][column]=currentValue.multiply(valueObject);break;case 3:result[r][column]=currentValue.divided(valueObject);break;case 4:result[r][column]=currentValue.mod(valueObject);break;case 5:operator?result[r][column]=currentValue.compare(valueObject,operator,isCaseSensitive):result[r][column]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:result[r][column]=currentValue.concatenateFront(valueObject);break;case 7:result[r][column]=currentValue.concatenateBack(valueObject);break;case 8:result[r][column]=currentValue.pow(valueObject);break;case 9:result[r][column]=currentValue.round(valueObject);break;case 10:result[r][column]=currentValue.floor(valueObject);break;case 12:result[r][column]=currentValue.atan2(valueObject);break;case 11:result[r][column]=currentValue.ceil(valueObject);break}else result[r][column]=ErrorValueObject.create(ErrorType$1.NA);currentValue!=null&&(currentValue.isError()?CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getErrorType(),r+startRow):CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getValue(),r+startRow))}CELL_INVERTED_INDEX_CACHE.setContinueBuildingCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1)}_batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive){let rowCount=valueObject.getRowCount(),columnCount=valueObject.getColumnCount();rowCount<this._rowCount&&(rowCount=this._rowCount),columnCount<this._columnCount&&(columnCount=this._columnCount);const result=[],currentCalculateType=this._checkArrayCalculateType(this),opCalculateType=this._checkArrayCalculateType(valueObject);for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){let currentValue;currentCalculateType===3?currentValue=this.getValueOrDefault(0,0):currentCalculateType===1?currentValue=this.getValueOrDefault(0,c):currentCalculateType===2?currentValue=this.getValueOrDefault(r,0):currentValue=this.getValueOrDefault(r,c);let opValue;if(opCalculateType===3?opValue=valueObject.getValueOrDefault(0,0):opCalculateType===1?opValue=valueObject.getValueOrDefault(0,c):opCalculateType===2?opValue=valueObject.getValueOrDefault(r,0):opValue=valueObject.getValueOrDefault(r,c),currentValue&&opValue)if(currentValue.isError())rowList[c]=currentValue;else if(opValue.isError())rowList[c]=opValue;else switch(batchOperatorType){case 1:rowList[c]=currentValue.plus(opValue);break;case 0:rowList[c]=currentValue.minus(opValue);break;case 2:rowList[c]=currentValue.multiply(opValue);break;case 3:rowList[c]=currentValue.divided(opValue);break;case 4:rowList[c]=currentValue.mod(opValue);break;case 5:operator?rowList[c]=currentValue.compare(opValue,operator,isCaseSensitive):rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:rowList[c]=currentValue.concatenateFront(opValue);break;case 7:rowList[c]=currentValue.concatenateBack(opValue);break;case 8:rowList[c]=currentValue.pow(opValue);break;case 9:rowList[c]=currentValue.round(opValue);break;case 12:rowList[c]=currentValue.atan2(opValue);break;case 10:rowList[c]=currentValue.floor(opValue);break;case 11:rowList[c]=currentValue.ceil(opValue);break}else rowList[c]=ErrorValueObject.create(ErrorType$1.NA)}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}_checkArrayCalculateType(valueObject){return valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?3:valueObject.getRowCount()===1?1:valueObject.getColumnCount()===1?2:0}_formatValue(rawValue){if(typeof rawValue!="string")return rawValue=rawValue,this._rowCount=rawValue.rowCount,this._columnCount=rawValue.columnCount,this._unitId=rawValue.unitId,this._sheetId=rawValue.sheetId,this._currentRow=rawValue.row,this._currentColumn=rawValue.column,rawValue.calculateValueList;rawValue=rawValue.slice(1,-1);const rowArray=rawValue.split(";"),rowArrayCount=rowArray.length,result=[];let maxColumnCount=0;for(let r=0;r<rowArrayCount;r++){const columnArray=rowArray[r].split(","),columnArrayCount=columnArray.length;maxColumnCount<columnArrayCount&&(maxColumnCount=columnArrayCount);const row=[];for(let c=0;c<columnArrayCount;c++){const cellRaw=columnArray[c].trim();row.push(ValueObjectFactory.create(cellRaw))}result.push(row)}return this._rowCount=rowArrayCount,this._columnCount=maxColumnCount,result}_createNewArray(result,rowCount,columnCount,row=-1,column=-1){(this._currentColumn===-1||this._currentRow===-1)&&(row=-1,column=-1);const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId:this.getUnitId(),sheetId:this.getSheetId(),row,column};return _ArrayValueObject.create(arrayValueObjectData)}};__name(_ArrayValueObject,"ArrayValueObject");let ArrayValueObject=_ArrayValueObject;const _ValueObjectFactory=class _ValueObjectFactory{static create(rawValue){if(rawValue==null)return NullValueObject.create();if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase().trim();return ERROR_TYPE_SET.has(rawValueUpper)?ErrorValueObject.create(rawValueUpper):rawValueUpper===BooleanValue.TRUE||rawValueUpper===BooleanValue.FALSE?createBooleanValueObjectByRawValue(rawValue):core.isRealNum(rawValue)?NumberValueObject.create(Number(rawValue)):new RegExp($ARRAY_VALUE_REGEX,"g").test(rawValue.replace(/\n/g,"").replace(/\r/g,""))?ArrayValueObject.create(rawValue.replace(/\n/g,"").replace(/\r/g,"")):createStringValueObjectByRawValue(rawValue)}return typeof rawValue=="number"?createNumberValueObjectByRawValue(rawValue):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_ValueObjectFactory,"ValueObjectFactory");let ValueObjectFactory=_ValueObjectFactory;function getCellValue(cell){if(cell===null)return 0;if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return 0;const data=body.dataStream;return data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data}return(cell==null?void 0:cell.v)||0}__name(getCellValue,"getCellValue");function getRuntimeFeatureCell(row,column,sheetId,unitId,runtimeFeatureCellData){var _a24;const featureKeys=Object.keys(runtimeFeatureCellData);for(const featureId of featureKeys){const data=runtimeFeatureCellData[featureId],CellData=(_a24=data==null?void 0:data[unitId])==null?void 0:_a24[sheetId];if(CellData==null)continue;const value=CellData.getValue(row,column);if(value!=null)return value}}__name(getRuntimeFeatureCell,"getRuntimeFeatureCell");const FORMULA_CACHE_LRU_COUNT$1=1e5,FORMULA_REF_TO_ARRAY_CACHE=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$1),_BaseReferenceObject=class _BaseReferenceObject extends ObjectClassType{constructor(_token){super();__publicField(this,"_forcedSheetId","");__publicField(this,"_forcedSheetName","");__publicField(this,"_defaultSheetId","");__publicField(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_defaultUnitId","");__publicField(this,"_forcedUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(token){this._token=token}isExceedRange(){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();return startRow<0||startColumn<0||endRow>=this.getActiveSheetRowCount()||endColumn>=this.getActiveSheetColumnCount()}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow,startColumn,endRow,endColumn}=core.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(startRow)&&(startRow=0),Number.isNaN(startColumn)&&(startColumn=0),Number.isNaN(endRow)&&(endRow=this.getActiveSheetRowCount()-1),Number.isNaN(endColumn)&&(endColumn=this.getActiveSheetColumnCount()-1),{startRow,endRow,startColumn,endColumn}}isReferenceObject(){return!0}iterator(callback){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();if(this._checkIfWorksheetMiss())return callback(ErrorValueObject.create(ErrorType$1.VALUE),startRow,startColumn);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r<0||c<0)return callback(ErrorValueObject.create(ErrorType$1.REF),r,c);const cell=this.getCellData(r,c);let result=!1;if(core.isNullCell(cell)){result=callback(null,r,c);continue}let resultObjectValue=this.getCellValueObject(cell);if(r===startRow&&c===startColumn){const pattern=this.getCellPattern(unitId,sheetId,r,c);if(pattern&&resultObjectValue.isNumber()){const value=Number(resultObjectValue.getValue());resultObjectValue=NumberValueObject.create(value,pattern)}}if(result=callback(resultObjectValue,r,c),result===!1)return}}getFirstCell(){const{startRow,startColumn}=this.getRangePosition(),cell=this.getCellData(startRow,startColumn);if(!cell)return NumberValueObject.create(0);let cellValueObject=this.getCellValueObject(cell);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId,pattern=this.getCellPattern(unitId,sheetId,startRow,startColumn);if(pattern&&cellValueObject.isNumber()){const value=Number(cellValueObject.getValue());cellValueObject=NumberValueObject.create(value,pattern)}return cellValueObject}getRangeData(){return this._rangeData}setRangeData(range){this._rangeData=range}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(unitId){unitId.length>0&&(this._forcedUnitId=unitId)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(sheetNameMap){var _a24;this._forcedSheetId=(_a24=sheetNameMap[this.getUnitId()])==null?void 0:_a24[this._forcedSheetName]}setForcedSheetIdDirect(sheetId){this._forcedSheetId=sheetId}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(sheetName){sheetName.length>0&&(this._forcedSheetName=sheetName)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(sheetId){this._defaultSheetId=sheetId}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(unitId){this._defaultUnitId=unitId}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(unitData){this._unitData=unitData}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(unitStylesData){this._unitStylesData=unitStylesData}getRuntimeData(){return this._runtimeData}setRuntimeData(runtimeData){this._runtimeData=runtimeData}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(unitData){this._arrayFormulaCellData=unitData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(unitData){this._runtimeArrayFormulaCellData=unitData}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(unitData){this._runtimeFeatureCellData=unitData}getActiveSheetRowCount(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.rowCount)||0}getActiveSheetColumnCount(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.rowData)||{}}getColumnData(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(referenceObject){return ErrorValueObject.create(ErrorType$1.REF)}unionRange(rangeData1,rangeData2){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(cell){const value=getCellValue(cell);if(ERROR_TYPE_SET.has(value))return ErrorValueObject.create(value);if(cell.t===core.CellValueType.NUMBER){const pattern=this._getPatternByCell(cell);return createNumberValueObjectByRawValue(value,pattern)}return cell.t===core.CellValueType.STRING||cell.t===core.CellValueType.FORCE_STRING?StringValueObject.create(value.toString()):cell.t===core.CellValueType.BOOLEAN?createBooleanValueObjectByRawValue(value):ValueObjectFactory.create(value)}_getPatternByCell(cell){var _a24;const styles=this._unitStylesData[this.getUnitId()];if(!styles)return"";const style=styles.getStyleByCell(cell);return((_a24=style==null?void 0:style.n)==null?void 0:_a24.pattern)||""}getCellByRow(row){return this.getCellByPosition(row)}getCellByColumn(column){return this.getCellByPosition(void 0,column)}getCurrentActiveSheetData(){var _a24;return(_a24=this._unitData[this.getUnitId()])==null?void 0:_a24[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var _a24,_b;return(_b=(_a24=this._runtimeData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var _a24,_b;return(_b=(_a24=this._arrayFormulaCellData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var _a24,_b;return(_b=(_a24=this._runtimeArrayFormulaCellData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCellData(row,column){const activeSheetData=this.getCurrentActiveSheetData(),activeRuntimeData=this.getCurrentRuntimeSheetData(),activeArrayFormulaCellData=this.getCurrentActiveArrayFormulaCellData(),activeRuntimeArrayFormulaCellData=this.getCurrentRuntimeActiveArrayFormulaCellData();return(activeRuntimeData==null?void 0:activeRuntimeData.getValue(row,column))||(activeRuntimeArrayFormulaCellData==null?void 0:activeRuntimeArrayFormulaCellData.getValue(row,column))||this.getRuntimeFeatureCellValue(row,column)||(activeArrayFormulaCellData==null?void 0:activeArrayFormulaCellData.getValue(row,column))||(activeSheetData==null?void 0:activeSheetData.cellData.getValue(row,column))}getRuntimeFeatureCellValue(row,column){return getRuntimeFeatureCell(row,column,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(row,column){row||(row=this._rangeData.startRow),column||(column=this._rangeData.startColumn);const cell=this.getCellData(row,column);return cell?this.getCellValueObject(cell):ErrorValueObject.create(ErrorType$1.VALUE)}getCellPattern(unitId,sheetId,row,column){var _a24,_b,_c,_d;const currentStyles=this._unitStylesData[unitId];if(!currentStyles)return"";const currentCell=(_c=(_b=(_a24=this._unitData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.cellData)==null?void 0:_c.getValue(row,column);if(!currentCell)return"";const style=currentStyles.getStyleByCell(currentCell);return((_d=style==null?void 0:style.n)==null?void 0:_d.pattern)||""}toArrayValueObject(useCache=!0){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),key=`${this.getUnitId()}_${this.getSheetId()}_${startRow}_${endRow}_${startColumn}_${endColumn}`,array=FORMULA_REF_TO_ARRAY_CACHE.get(key);if(array&&useCache)return array;const rowSize=endRow-startRow+1,columnSize=endColumn-startColumn+1;if(rowSize<0||columnSize<0)return this._getBlankArrayValueObject();const arrayValueList=new Array(rowSize);this.iterator((valueObject,rowIndex,columnIndex)=>{const row=rowIndex-startRow,column=columnIndex-startColumn;arrayValueList[row]||(arrayValueList[row]=new Array(columnSize)),valueObject==null&&(valueObject=NullValueObject.create()),arrayValueList[row][column]=valueObject});const arrayValueObjectData={calculateValueList:arrayValueList,rowCount:arrayValueList.length,columnCount:((_a24=arrayValueList[0])==null?void 0:_a24.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:startRow,column:startColumn},arrayValueObject=ArrayValueObject.create(arrayValueObjectData);return useCache&&FORMULA_REF_TO_ARRAY_CACHE.set(key,arrayValueObject),arrayValueObject}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 arrayValueObjectData={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_BaseReferenceObject,"BaseReferenceObject");let BaseReferenceObject=_BaseReferenceObject;const _AsyncObject=class _AsyncObject extends ObjectClassType{constructor(_promise){super(),this._promise=_promise}isAsyncObject(){return!0}async getValue(){return this._promise}};__name(_AsyncObject,"AsyncObject");let AsyncObject=_AsyncObject;const _AsyncArrayObject=class _AsyncArrayObject extends ObjectClassType{constructor(_promiseList){super(),this._promiseList=_promiseList}isAsyncArrayObject(){return!0}async getValue(){var _a24;const variants=[];for(let r=0;r<this._promiseList.length;r++){const promiseCells=this._promiseList[r];variants[r]==null&&(variants[r]=[]);for(let c=0;c<promiseCells.length;c++){const promiseCell=promiseCells[c];promiseCell.isAsyncObject()?variants[r][c]=await promiseCell.getValue():variants[r][c]=promiseCell}}const arrayValueObjectData={calculateValueList:variants,rowCount:variants.length,columnCount:((_a24=variants[0])==null?void 0:_a24.length)||0,unitId:"",sheetId:"",row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_AsyncArrayObject,"AsyncArrayObject");let AsyncArrayObject=_AsyncArrayObject;const _RangeReferenceObject=class _RangeReferenceObject extends BaseReferenceObject{constructor(range,forcedSheetId,forcedUnitId){super(""),this.setRangeData(range),forcedSheetId&&this.setForcedSheetIdDirect(forcedSheetId),forcedUnitId&&this.setForcedUnitIdDirect(forcedUnitId)}isRange(){return!0}};__name(_RangeReferenceObject,"RangeReferenceObject");let RangeReferenceObject=_RangeReferenceObject;const $relativeRegex=/[\[\]]/g;function handleR1C1(rowOrColumnString,current){if($relativeRegex.test(rowOrColumnString)){const index=Number(rowOrColumnString.replace($relativeRegex,""));return current+index}return Number(rowOrColumnString)-1}__name(handleR1C1,"handleR1C1");function singleReference(refBody,currentRow=0,currentColumn=0){refBody=refBody.toLocaleUpperCase();const refBodyArray=refBody.split(/[RC]/),rowString=refBodyArray[1],columnString=refBodyArray[2],row=handleR1C1(rowString,currentRow),column=handleR1C1(columnString,currentColumn);return{row,column,absoluteRefType:core.AbsoluteRefType.NONE}}__name(singleReference,"singleReference");function deserializeRangeForR1C1(refString,currentRow=0,currentColumn=0){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReference(refBody,currentRow,currentColumn),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReference(refStartString,currentRow,currentColumn),endGrid=singleReference(refEndString,currentRow,currentColumn),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;return{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType}}}__name(deserializeRangeForR1C1,"deserializeRangeForR1C1");function serializeRangeToR1C1(range){const startRowRef=getR1C1Ref(range.startRow,range.startAbsoluteRefType,!0),startColumnRef=getR1C1Ref(range.startColumn,range.startAbsoluteRefType,!1),endRowRef=getR1C1Ref(range.endRow,range.endAbsoluteRefType,!0),endColumnRef=getR1C1Ref(range.endColumn,range.endAbsoluteRefType,!1);return startRowRef===endRowRef&&startColumnRef===endColumnRef?`R${startRowRef}C${startColumnRef}`:`R${startRowRef}C${startColumnRef}:R${endRowRef}C${endColumnRef}`}__name(serializeRangeToR1C1,"serializeRangeToR1C1");function getR1C1Ref(index,absoluteRefType=core.AbsoluteRefType.ALL,isRow){switch(index+=1,absoluteRefType){case core.AbsoluteRefType.ALL:return`${index}`;case core.AbsoluteRefType.ROW:return isRow?`${index}`:`[${index}]`;case core.AbsoluteRefType.COLUMN:return isRow?`[${index}]`:`${index}`;case core.AbsoluteRefType.NONE:return`[${index}]`}}__name(getR1C1Ref,"getR1C1Ref");const functionArray=[];var FUNCTION_NAMES_ARRAY=(FUNCTION_NAMES_ARRAY2=>FUNCTION_NAMES_ARRAY2)(FUNCTION_NAMES_ARRAY||{});function expandArrayValueObject(rowCount,columnCount,valueObject,defaultValue){const result=[];if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(v);result.push(row)}}else if(valueRowCount===1&&valueColumnCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(0,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else if(valueColumnCount===1&&valueRowCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,0)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(valueObject);result.push(row)}return createNewArray(result,rowCount,columnCount)}__name(expandArrayValueObject,"expandArrayValueObject");function createNewArray(result,rowCount,columnCount,unitId="",sheetId=""){const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId,sheetId,row:-1,column:-1};return ArrayValueObject.create(arrayValueObjectData)}__name(createNewArray,"createNewArray");function findCompareToken(str){const comparisonTokens=[compareToken.EQUALS,compareToken.NOT_EQUAL,compareToken.GREATER_THAN_OR_EQUAL,compareToken.GREATER_THAN,compareToken.LESS_THAN_OR_EQUAL,compareToken.LESS_THAN];for(const token of comparisonTokens)if(str.startsWith(token)){const content=str.substring(token.length);return[token,ValueObjectFactory.create(content)]}return[compareToken.EQUALS,ValueObjectFactory.create(str)]}__name(findCompareToken,"findCompareToken");function valueObjectCompare(range,criteria,operator,isCaseSensitive){if(!operator)if(criteria.isString()){const criteriaValueString=`${criteria.getValue()}`,[token,criteriaStringObject]=findCompareToken(criteriaValueString);operator=token,criteria=criteriaStringObject}else operator=compareToken.EQUALS;return range.compare(criteria,operator,isCaseSensitive)}__name(valueObjectCompare,"valueObjectCompare");function booleanObjectIntersection(valueObject1,valueObject2){const maxRowLength=Math.max(valueObject1.isArray()?valueObject1.getRowCount():1,valueObject2.isArray()?valueObject2.getRowCount():1),maxColumnLength=Math.max(valueObject1.isArray()?valueObject1.getColumnCount():1,valueObject2.isArray()?valueObject2.getColumnCount():1),valueObject1Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject1),valueObject2Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject2);return valueObject1Array.mapValue((valueObject12,rowIndex,columnIndex)=>{const valueObject22=valueObject2Array.get(rowIndex,columnIndex);return valueObject12!=null&&valueObject12.isError()?valueObject12:valueObject22!=null&&valueObject22.isError()?valueObject22:valueObject12!=null&&valueObject12.isBoolean()&&(valueObject22!=null&&valueObject22.isBoolean())?createBooleanValueObjectByRawValue(valueObject12.getValue()&&valueObject22.getValue()):BooleanValueObject.create(!1)})}__name(booleanObjectIntersection,"booleanObjectIntersection");function convertTonNumber(valueObject){const currentValue=valueObject.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}__name(convertTonNumber,"convertTonNumber");function isSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?!0:valueObject.isReferenceObject()?!!(valueObject.isCell()||valueObject.getRowCount()===1&&valueObject.getColumnCount()===1):(valueObject=valueObject,!!(valueObject.isString()||valueObject.isNumber()||valueObject.isBoolean()||valueObject.isError()||valueObject.isNull()))}__name(isSingleValueObject,"isSingleValueObject");function objectValueToCellValue(objectValue){const pattern=objectValue==null?void 0:objectValue.getPattern();let cellWithStyle={};if(pattern&&(cellWithStyle={s:{n:{pattern}}}),objectValue==null)return{v:null,...cellWithStyle};if(objectValue.isError())return{v:objectValue.getErrorType(),t:core.CellValueType.STRING,...cellWithStyle};if(objectValue.isValueObject()){const vo=objectValue,v=vo.getValue();return vo.isNumber()?{v,t:core.CellValueType.NUMBER,...cellWithStyle}:vo.isBoolean()?{v:v?1:0,t:core.CellValueType.BOOLEAN,...cellWithStyle}:vo.isString()?{v,t:core.CellValueType.STRING,...cellWithStyle}:vo.isNull()?{v:null,...cellWithStyle}:{v,t:core.CellValueType.STRING,...cellWithStyle}}}__name(objectValueToCellValue,"objectValueToCellValue");function calculateMaxDimensions(variants){let maxRowLength=0,maxColumnLength=0;return variants.forEach((variant,i)=>{if(i%2===1)if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)}),{maxRowLength,maxColumnLength}}__name(calculateMaxDimensions,"calculateMaxDimensions");function getErrorArray(variants,sumRange,maxRowLength,maxColumnLength){const sumRowLength=sumRange.getRowCount(),sumColumnLength=sumRange.getColumnCount();for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],rangeRowLength=range.getRowCount(),rangeColumnLength=range.getColumnCount();if(rangeRowLength!==sumRowLength||rangeColumnLength!==sumColumnLength)return expandArrayValueObject(maxRowLength,maxColumnLength,ErrorValueObject.create(ErrorType$1.VALUE))}return null}__name(getErrorArray,"getErrorArray");function getBooleanResults(variants,maxRowLength,maxColumnLength,isNumberSensitive=!1){const booleanResults=[];for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],criteria=variants[i+1];expandArrayValueObject(maxRowLength,maxColumnLength,criteria,ErrorValueObject.create(ErrorType$1.NA)).iterator((criteriaValueObject,rowIndex,columnIndex)=>{if(!criteriaValueObject)return;let resultArrayObject=valueObjectCompare(range,criteriaValueObject);const[,criteriaStringObject]=findCompareToken(`${criteriaValueObject.getValue()}`);if(isNumberSensitive&&(resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject)),booleanResults[rowIndex]===void 0&&(booleanResults[rowIndex]=[]),booleanResults[rowIndex][columnIndex]===void 0){booleanResults[rowIndex][columnIndex]=resultArrayObject;return}booleanResults[rowIndex][columnIndex]=booleanObjectIntersection(booleanResults[rowIndex][columnIndex],resultArrayObject)})}return booleanResults}__name(getBooleanResults,"getBooleanResults");function filterSameValueObjectResult(array,range,criteria){return array.mapValue((valueObject,r,c)=>{const rangeValueObject=range.get(r,c);return rangeValueObject&&isSameValueObjectType(rangeValueObject,criteria)?valueObject:rangeValueObject!=null&&rangeValueObject.isError()&&criteria.isError()&&rangeValueObject.getValue()===criteria.getValue()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)})}__name(filterSameValueObjectResult,"filterSameValueObjectResult");function isSameValueObjectType(left,right){if(left.isNumber()&&right.isNumber()||left.isBoolean()&&right.isBoolean())return!0;const isLeftBlank=left.isString()&&left.getValue()==="",isRightBlank=right.isString()&&right.getValue()==="";return!!((isLeftBlank||left.isNull())&&(isRightBlank||right.isNull())||left.isString()&&!isLeftBlank&&right.isString()&&!isRightBlank)}__name(isSameValueObjectType,"isSameValueObjectType");const _CellReferenceObject=class _CellReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName),this.setRangeData(grid.range)}isCell(){return!0}unionBy(referenceObject){if(!referenceObject.isCell())return ErrorValueObject.create(ErrorType$1.REF);const cellReferenceObject=referenceObject,newRangeData=this.unionRange(this.getRangeData(),cellReferenceObject.getRangeData());return this._createRange(newRangeData)}unionRange(rangeData1,rangeData2){const startRow1=rangeData1.startRow,startColumn1=rangeData1.startColumn,startRow2=rangeData2.startRow,startColumn2=rangeData2.startColumn,range={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return startRow1>startRow2?(range.startRow=startRow2,range.endRow=startRow1):(range.startRow=startRow1,range.endRow=startRow2),startColumn1>startColumn2?(range.startColumn=startColumn2,range.endColumn=startColumn1):(range.startColumn=startColumn1,range.endColumn=startColumn2),rangeData1.startAbsoluteRefType&&(range.startAbsoluteRefType=rangeData1.startAbsoluteRefType),rangeData2.startAbsoluteRefType&&(range.endAbsoluteRefType=rangeData2.startAbsoluteRefType),range}_createRange(newRangeData){const rangeReferenceObject=new RangeReferenceObject(newRangeData,this.getForcedSheetId(),this.getForcedUnitId());rangeReferenceObject.setUnitData(this.getUnitData()),rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()),rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()),rangeReferenceObject.setRuntimeData(this.getRuntimeData()),rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()),rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()),rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();rangeReferenceObject.setRefOffset(x,y);const forceSheetId=this.getForcedSheetId();rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()),forceSheetId!=null&&rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);const forcedUnitId=this.getForcedUnitId();return forcedUnitId&&rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId),rangeReferenceObject}};__name(_CellReferenceObject,"CellReferenceObject");let CellReferenceObject=_CellReferenceObject;const _RowReferenceObject=class _RowReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:Number.NaN,startRow:grid.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(range)}isRow(){return!0}unionBy(referenceObject){if(!referenceObject.isRow())return ErrorValueObject.create(ErrorType$1.REF);const rowReferenceObject=referenceObject;if(rowReferenceObject.getForcedSheetName()!==void 0&&rowReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newRowRange=rowReferenceObject.getRangeData(),newRow=newRowRange.startRow,row=currentRangeData.startRow;return newRow>row?currentRangeData.endRow=newRow:(currentRangeData.startRow=newRow,currentRangeData.endRow=row),newRowRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newRowRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`),this}};__name(_RowReferenceObject,"RowReferenceObject");let RowReferenceObject=_RowReferenceObject;const _ColumnReferenceObject=class _ColumnReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:grid.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(range)}isColumn(){return!0}unionBy(referenceObject){if(!referenceObject.isColumn())return ErrorValueObject.create(ErrorType$1.REF);const columnReferenceObject=referenceObject;if(columnReferenceObject.getForcedSheetName()!==void 0&&columnReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newColumnRange=columnReferenceObject.getRangeData(),newColumn=newColumnRange.startColumn,column=currentRangeData.startColumn;return newColumn>column?currentRangeData.endColumn=newColumn:(currentRangeData.startColumn=newColumn,currentRangeData.endColumn=column),newColumnRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newColumnRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`),this}};__name(_ColumnReferenceObject,"ColumnReferenceObject");let ColumnReferenceObject=_ColumnReferenceObject;const _BaseFunction=class _BaseFunction extends core.Disposable{constructor(_name){super();__publicField(this,"_unitId");__publicField(this,"_subUnitId");__publicField(this,"_row",-1);__publicField(this,"_column",-1);__publicField(this,"_definedNames");__publicField(this,"needsExpandParams",!1);__publicField(this,"needsReferenceObject",!1);__publicField(this,"minParams",-1);__publicField(this,"maxParams",-1);this._name=_name}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(name){var _a24;const nameMap=this._definedNames;return nameMap==null?null:(_a24=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a24[0]}setDefinedNames(definedNames){this._definedNames=definedNames}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(unitId,subUnitId,row,column){this._unitId=unitId,this._subUnitId=subUnitId,this._row=row,this._column=column}calculateCustom(...arg){return null}calculate(...arg){return ErrorValueObject.create(ErrorType$1.VALUE)}checkArrayType(variant){return variant.isReferenceObject()||variant.isValueObject()&&variant.isArray()}getIndexNumValue(indexNum,defaultValue=1){let _indexNum=indexNum;if(_indexNum.isArray()&&(_indexNum=_indexNum.getFirstCell()),_indexNum.isBoolean())return _indexNum.getValue()===!1?ErrorValueObject.create(ErrorType$1.VALUE):defaultValue;if(_indexNum.isString()){const colIndexNumV=Number(_indexNum.getValue());return Number.isNaN(colIndexNumV)?ErrorValueObject.create(ErrorType$1.REF):colIndexNumV}else if(_indexNum.isNumber())return _indexNum.getValue();return ErrorValueObject.create(ErrorType$1.VALUE)}getZeroOrOneByOneDefault(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;logicValueObject.isNumber()&&logicValueObject.getValue()===0&&(logicValue=0)}return logicValue}getMatchTypeValue(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;if(logicValueObject.isNumber()){const logicV=logicValueObject.getValue();logicV<=0&&(logicValue=logicV)}}return logicValue}binarySearch(value,searchArray,resultArray,searchType){const rowOrColumn=searchArray.binarySearch(value,searchType);if(rowOrColumn==null)return ErrorValueObject.create(ErrorType$1.NA);let resultValue;return resultArray.getRowCount()===1?resultValue=resultArray.get(0,rowOrColumn)||NullValueObject.create():resultValue=resultArray.get(rowOrColumn,0)||NullValueObject.create(),resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}_getOneFirstByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[0][0]||ErrorValueObject.create(ErrorType$1.NA)}_getOneLastByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[array.length-1][array[0].length-1]||ErrorValueObject.create(ErrorType$1.NA)}equalSearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.isEqual(value));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}fuzzySearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.compare(value,compareToken.EQUALS));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}orderSearch(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1){const position=searchArray.orderSearch(value,searchType,isDesc);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);const resultValue=resultArray.get(position.row,position.column)||NullValueObject.create();return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}binarySearchExpand(value,searchArray,resultArray,axis=0,searchType){const rowOrColumn=searchArray.binarySearch(value,searchType);return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([rowOrColumn,rowOrColumn+1]):resultArray.slice(void 0,[rowOrColumn,rowOrColumn+1])}equalSearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.isEqual(value);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}fuzzySearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}orderSearchExpand(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1,axis=0){const position=searchArray.orderSearch(value,searchType,isDesc);return position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}flattenArray(variants,ignoreLogicalValuesAndText=!0){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean()||variant.isNull())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){let errorValue;if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull()||ignoreLogicalValuesAndText&&(valueObject.isString()||valueObject.isBoolean()))return!0;if(valueObject=this._includingLogicalValuesAndText(valueObject),valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}else flattenValues[0].push(variant)}return createNewArray(flattenValues,1,flattenValues[0].length)}_includingLogicalValuesAndText(valueObject){if(valueObject.isBoolean()&&(valueObject=convertTonNumber(valueObject)),valueObject.isString()){const value=Number(valueObject.getValue());valueObject=NumberValueObject.create(Number.isNaN(value)?0:value)}return valueObject}createReferenceObject(reference,range){const unitId=reference.getForcedUnitId(),sheetId=reference.getForcedSheetId()||"",sheetName=reference.getForcedSheetName(),token=serializeRangeToRefString({unitId,sheetName,range});let referenceObject;return new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(token)?referenceObject=new CellReferenceObject(token):new RegExp(REFERENCE_REGEX_SINGLE_ROW).test(token)?referenceObject=new RowReferenceObject(token):new RegExp(REFERENCE_REGEX_SINGLE_COLUMN).test(token)?referenceObject=new ColumnReferenceObject(token):referenceObject=new RangeReferenceObject(range,sheetId,unitId),this._setReferenceDefault(reference,referenceObject)}_setReferenceDefault(reference,object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object.setUnitData(reference.getUnitData()),object.setRuntimeData(reference.getRuntimeData()),object.setArrayFormulaCellData(reference.getArrayFormulaCellData()),object.setRuntimeArrayFormulaCellData(reference.getRuntimeArrayFormulaCellData()),object)}};__name(_BaseFunction,"BaseFunction");let BaseFunction=_BaseFunction;const _CustomFunction=class _CustomFunction extends BaseFunction{isCustom(){return!0}};__name(_CustomFunction,"CustomFunction");let CustomFunction=_CustomFunction;const _StdevP=class _StdevP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_StdevP,"StdevP");let StdevP=_StdevP;const _StdevS=class _StdevS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_StdevS,"StdevS");let StdevS=_StdevS;const _VarP=class _VarP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_VarP,"VarP");let VarP=_VarP;const _VarS=class _VarS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_VarS,"VarS");let VarS=_VarS;var FUNCTION_NAMES_COMPATIBILITY=(FUNCTION_NAMES_COMPATIBILITY2=>(FUNCTION_NAMES_COMPATIBILITY2.BETADIST="BETADIST",FUNCTION_NAMES_COMPATIBILITY2.BETAINV="BETAINV",FUNCTION_NAMES_COMPATIBILITY2.BINOMDIST="BINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIDIST="CHIDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIINV="CHIINV",FUNCTION_NAMES_COMPATIBILITY2.CHITEST="CHITEST",FUNCTION_NAMES_COMPATIBILITY2.CONFIDENCE="CONFIDENCE",FUNCTION_NAMES_COMPATIBILITY2.COVAR="COVAR",FUNCTION_NAMES_COMPATIBILITY2.CRITBINOM="CRITBINOM",FUNCTION_NAMES_COMPATIBILITY2.EXPONDIST="EXPONDIST",FUNCTION_NAMES_COMPATIBILITY2.FDIST="FDIST",FUNCTION_NAMES_COMPATIBILITY2.FINV="FINV",FUNCTION_NAMES_COMPATIBILITY2.FTEST="FTEST",FUNCTION_NAMES_COMPATIBILITY2.GAMMADIST="GAMMADIST",FUNCTION_NAMES_COMPATIBILITY2.GAMMAINV="GAMMAINV",FUNCTION_NAMES_COMPATIBILITY2.HYPGEOMDIST="HYPGEOMDIST",FUNCTION_NAMES_COMPATIBILITY2.LOGINV="LOGINV",FUNCTION_NAMES_COMPATIBILITY2.LOGNORMDIST="LOGNORMDIST",FUNCTION_NAMES_COMPATIBILITY2.MODE="MODE",FUNCTION_NAMES_COMPATIBILITY2.NEGBINOMDIST="NEGBINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMDIST="NORMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMINV="NORMINV",FUNCTION_NAMES_COMPATIBILITY2.NORMSDIST="NORMSDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMSINV="NORMSINV",FUNCTION_NAMES_COMPATIBILITY2.PERCENTILE="PERCENTILE",FUNCTION_NAMES_COMPATIBILITY2.PERCENTRANK="PERCENTRANK",FUNCTION_NAMES_COMPATIBILITY2.POISSON="POISSON",FUNCTION_NAMES_COMPATIBILITY2.QUARTILE="QUARTILE",FUNCTION_NAMES_COMPATIBILITY2.RANK="RANK",FUNCTION_NAMES_COMPATIBILITY2.STDEV="STDEV",FUNCTION_NAMES_COMPATIBILITY2.STDEVP="STDEVP",FUNCTION_NAMES_COMPATIBILITY2.TDIST="TDIST",FUNCTION_NAMES_COMPATIBILITY2.TINV="TINV",FUNCTION_NAMES_COMPATIBILITY2.TTEST="TTEST",FUNCTION_NAMES_COMPATIBILITY2.VAR="VAR",FUNCTION_NAMES_COMPATIBILITY2.VARP="VARP",FUNCTION_NAMES_COMPATIBILITY2.WEIBULL="WEIBULL",FUNCTION_NAMES_COMPATIBILITY2.ZTEST="ZTEST",FUNCTION_NAMES_COMPATIBILITY2))(FUNCTION_NAMES_COMPATIBILITY||{});const functionCompatibility=[[StdevS,FUNCTION_NAMES_COMPATIBILITY.STDEV],[StdevP,FUNCTION_NAMES_COMPATIBILITY.STDEVP],[VarS,FUNCTION_NAMES_COMPATIBILITY.VAR],[VarP,FUNCTION_NAMES_COMPATIBILITY.VARP]],functionCube=[];var FUNCTION_NAMES_CUBE=(FUNCTION_NAMES_CUBE2=>(FUNCTION_NAMES_CUBE2.CUBEKPIMEMBER="CUBEKPIMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBER="CUBEMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",FUNCTION_NAMES_CUBE2.CUBERANKEDMEMBER="CUBERANKEDMEMBER",FUNCTION_NAMES_CUBE2.CUBESET="CUBESET",FUNCTION_NAMES_CUBE2.CUBESETCOUNT="CUBESETCOUNT",FUNCTION_NAMES_CUBE2.CUBEVALUE="CUBEVALUE",FUNCTION_NAMES_CUBE2))(FUNCTION_NAMES_CUBE||{});const functionDatabase=[];var FUNCTION_NAMES_DATABASE=(FUNCTION_NAMES_DATABASE2=>(FUNCTION_NAMES_DATABASE2.DAVERAGE="DAVERAGE",FUNCTION_NAMES_DATABASE2.DCOUNT="DCOUNT",FUNCTION_NAMES_DATABASE2.DCOUNTA="DCOUNTA",FUNCTION_NAMES_DATABASE2.DGET="DGET",FUNCTION_NAMES_DATABASE2.DMAX="DMAX",FUNCTION_NAMES_DATABASE2.DMIN="DMIN",FUNCTION_NAMES_DATABASE2.DPRODUCT="DPRODUCT",FUNCTION_NAMES_DATABASE2.DSTDEV="DSTDEV",FUNCTION_NAMES_DATABASE2.DSTDEVP="DSTDEVP",FUNCTION_NAMES_DATABASE2.DSUM="DSUM",FUNCTION_NAMES_DATABASE2.DVAR="DVAR",FUNCTION_NAMES_DATABASE2.DVARP="DVARP",FUNCTION_NAMES_DATABASE2))(FUNCTION_NAMES_DATABASE||{}),FUNCTION_NAMES_DATE=(FUNCTION_NAMES_DATE2=>(FUNCTION_NAMES_DATE2.DATE="DATE",FUNCTION_NAMES_DATE2.DATEDIF="DATEDIF",FUNCTION_NAMES_DATE2.DATEVALUE="DATEVALUE",FUNCTION_NAMES_DATE2.DAY="DAY",FUNCTION_NAMES_DATE2.DAYS="DAYS",FUNCTION_NAMES_DATE2.DAYS360="DAYS360",FUNCTION_NAMES_DATE2.EDATE="EDATE",FUNCTION_NAMES_DATE2.EOMONTH="EOMONTH",FUNCTION_NAMES_DATE2.HOUR="HOUR",FUNCTION_NAMES_DATE2.ISOWEEKNUM="ISOWEEKNUM",FUNCTION_NAMES_DATE2.MINUTE="MINUTE",FUNCTION_NAMES_DATE2.MONTH="MONTH",FUNCTION_NAMES_DATE2.NETWORKDAYS="NETWORKDAYS",FUNCTION_NAMES_DATE2.NETWORKDAYS_INTL="NETWORKDAYS.INTL",FUNCTION_NAMES_DATE2.NOW="NOW",FUNCTION_NAMES_DATE2.SECOND="SECOND",FUNCTION_NAMES_DATE2.TIME="TIME",FUNCTION_NAMES_DATE2.TIMEVALUE="TIMEVALUE",FUNCTION_NAMES_DATE2.TODAY="TODAY",FUNCTION_NAMES_DATE2.WEEKDAY="WEEKDAY",FUNCTION_NAMES_DATE2.WEEKNUM="WEEKNUM",FUNCTION_NAMES_DATE2.WORKDAY="WORKDAY",FUNCTION_NAMES_DATE2.WORKDAY_INTL="WORKDAY.INTL",FUNCTION_NAMES_DATE2.YEAR="YEAR",FUNCTION_NAMES_DATE2.YEARFRAC="YEARFRAC",FUNCTION_NAMES_DATE2))(FUNCTION_NAMES_DATE||{});const DEFAULT_DATE_FORMAT="yyyy/mm/dd;@",DEFAULT_NOW_FORMAT="yyyy/mm/dd hh:mm",DEFAULT_TIME_FORMAT="h:mm A/P";function excelDateSerial(date){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28)),dateInUTC=Date.UTC(date.getFullYear(),date.getMonth(),date.getDate());let dayDifference=(dateInUTC-baseDate.getTime())/(1e3*3600*24);return dateInUTC>leapDayDate.getTime()&&(dayDifference+=1),Math.floor(dayDifference)+1}__name(excelDateSerial,"excelDateSerial");function excelDateTimeSerial(date){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=(date.getTime()-baseDate.getTime())/(1e3*3600*24);return date>leapDayDate&&(dayDifference+=1),dayDifference+1}__name(excelDateTimeSerial,"excelDateTimeSerial");function excelSerialToDate(serial){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28));let dayDifference=Math.floor(serial)-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDate,"excelSerialToDate");function excelSerialToDateTime(serial){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=serial-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),dayDifference<0&&(dayDifference=serial),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDateTime,"excelSerialToDateTime");function isValidDateStr(dateStr){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(dateStr))return!1;const normalizedDateStr=dateStr.replace(/-/g,"/").replace(/T.+/,""),dateWithTime=new Date(`${normalizedDateStr}`);if(Number.isNaN(dateWithTime.getTime()))return!1;const year=dateWithTime.getFullYear(),month=(dateWithTime.getMonth()+1).toString().padStart(2,"0"),day=dateWithTime.getDate().toString().padStart(2,"0"),reconstructedDateStr=`${year}-${month}-${day}`;return dateStr.replace(/\//g,"-").split("-").map(v=>v.padStart(2,"0")).join("-")===reconstructedDateStr}__name(isValidDateStr,"isValidDateStr");function parseFormattedDate(value){return numfmt$1.parseDate(value)}__name(parseFormattedDate,"parseFormattedDate");function parseFormattedValue(value){return numfmt$1.parseValue(value)}__name(parseFormattedValue,"parseFormattedValue");function parseFormattedTime(value){return numfmt$1.parseTime(value)}__name(parseFormattedTime,"parseFormattedTime");function isDate(format){return numfmt$1.isDate(format)}__name(isDate,"isDate");const weekendNumberMap={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function isValidWeekend(weekend){return!!(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)||weekendNumberMap[Number(weekend)])}__name(isValidWeekend,"isValidWeekend");function getWeekendArray(weekend){if(!isValidWeekend(weekend))return[];if(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)){const result=[];for(let i=1;i<=weekend.length;i++)`${weekend[i-1]}`=="1"&&(i===weekend.length?result.push(0):result.push(i));return result}return weekendNumberMap[Number(weekend)]||[]}__name(getWeekendArray,"getWeekendArray");function countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),start=Math.floor(startDateSerialNumber),end=Math.floor(endDateSerialNumber),startSerialNumber=end>start?start:end;let workingDays=0;const daysDiff=Math.abs(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber))+1;for(let i=0;i<daysDiff;i++){const currentDateSerialNumber=startSerialNumber+i;if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber))continue;const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);weekendArray.includes(weekDay)||workingDays++}return end>start?workingDays:-workingDays}__name(countWorkingDays,"countWorkingDays");function getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),_startDateSerialNumber=Math.floor(startDateSerialNumber);let targetDateSerialNumber=_startDateSerialNumber,days=Math.abs(workingDays);for(let i=1;i<=days;i++){const currentDateSerialNumber=workingDays<0?_startDateSerialNumber-i:_startDateSerialNumber+i;if(currentDateSerialNumber<0)return ErrorValueObject.create(ErrorType$1.NUM);if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber)){days++;continue}const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);if(weekendArray.includes(weekDay)){days++;continue}targetDateSerialNumber=currentDateSerialNumber}return targetDateSerialNumber}__name(getDateSerialNumberByWorkingDays,"getDateSerialNumberByWorkingDays");function getDateSerialNumberByObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){let dateSerial;if(parseFormattedDate(`${dateValue}`))dateSerial=parseFormattedDate(`${dateValue}`).v;else if(parseFormattedTime(`${dateValue}`))dateSerial=parseFormattedTime(`${dateValue}`).v;else if(core.isRealNum(dateValue))dateSerial=+dateValue;else return ErrorValueObject.create(ErrorType$1.VALUE);return+dateSerial<0||+dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}else{const dateSerial=+serialNumberObject.getValue();return dateSerial<0||dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}}__name(getDateSerialNumberByObject,"getDateSerialNumberByObject");function getWeekDayByDateSerialNumber(dateSerialNumber){const isDate19000229=Math.floor(dateSerialNumber)===60;let date=excelSerialToDate(dateSerialNumber);const dateTime=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getTime(),leapDayDateTime=new Date(Date.UTC(1900,1,28)).getTime();return!isDate19000229&&dateTime<=leapDayDateTime&&(date=new Date(dateTime-24*3600*1e3)),new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getUTCDay()}__name(getWeekDayByDateSerialNumber,"getWeekDayByDateSerialNumber");function getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis){switch(basis){case 0:return getDaysByNASD(startDateSerialNumber,endDateSerialNumber);case 1:return getDaysByActual(startDateSerialNumber,endDateSerialNumber);case 2:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:360};case 3:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365};case 4:return getDaysByEuropean(startDateSerialNumber,endDateSerialNumber);default:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365}}}__name(getTwoDateDaysByBasis,"getTwoDateDaysByBasis");function getDaysByNASD(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1,endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startMonth===2?excelSerialToDate(startDateSerialNumber+1).getUTCMonth()+1===3&&(startDay=30):startDay===31&&(startDay=30),endDay===31&&(startDay<30?(endDateDate=excelSerialToDate(endDateSerialNumber+1),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate()):endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByNASD,"getDaysByNASD");function getDaysByActual(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,totalDays=Math.abs(endDateSerialNumber-startDateSerialNumber),totalYear=Math.abs(endYear-startYear)+1;let startYearFirstDaySerialNumber,endYearLastDaySerialNumber;if(endYear<startYear){const startYearFirstDay=new Date(Date.UTC(endYear,0,1)),endYearLastDay=new Date(Date.UTC(startYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),endYear===1900&&(startYearFirstDaySerialNumber+=1)}else{const startYearFirstDay=new Date(Date.UTC(startYear,0,1)),endYearLastDay=new Date(Date.UTC(endYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),startYear===1900&&(startYearFirstDaySerialNumber+=1)}return{days:totalDays,yearDays:(endYearLastDaySerialNumber-startYearFirstDaySerialNumber+1)/totalYear}}__name(getDaysByActual,"getDaysByActual");function getDaysByEuropean(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0;const endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1;let endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startDay===31&&(startDay=30),endDay===31&&(endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByEuropean,"getDaysByEuropean");const _DateFunction=class _DateFunction extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(year,month,day){if(year.isError())return year;if(month.isError())return month;if(day.isError())return day;const maxRowLength=Math.max(year.isArray()?year.getRowCount():1,month.isArray()?month.getRowCount():1,day.isArray()?day.getRowCount():1),maxColumnLength=Math.max(year.isArray()?year.getColumnCount():1,month.isArray()?month.getColumnCount():1,day.isArray()?day.getColumnCount():1),yearArray=expandArrayValueObject(maxRowLength,maxColumnLength,year),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,month),dayArray=expandArrayValueObject(maxRowLength,maxColumnLength,day);return yearArray.map((yearValueObject,rowIndex,columnIndex)=>{const monthValueObject=monthArray.get(rowIndex,columnIndex)||NullValueObject.create(),dayValueObject=dayArray.get(rowIndex,columnIndex)||NullValueObject.create();if(yearValueObject.isError())return yearValueObject;if(monthValueObject.isError())return monthValueObject;if(dayValueObject.isError())return dayValueObject;if(yearValueObject.isString()||monthValueObject.isString()||dayValueObject.isString())return ErrorValueObject.create(ErrorType$1.VALUE);let yearValue=+yearValueObject.getValue();const monthValue=Math.floor(+monthValueObject.getValue()),dayValue=+dayValueObject.getValue();if(yearValue<0||yearValue>9999)return ErrorValueObject.create(ErrorType$1.NUM);yearValue>=0&&yearValue<1899&&(yearValue+=1900);const date=new Date(yearValue,monthValue-1,dayValue),currentSerial=excelDateSerial(date);return currentSerial<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_DateFunction,"DateFunction");let DateFunction=_DateFunction;const _Datedif=class _Datedif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(startDate,endDate,unit){let _startDate=startDate,_endDate=endDate,_unit=unit;if(_startDate.isArray()&&(_startDate=_startDate.get(0,0)),_endDate.isArray()&&(_endDate=_endDate.get(0,0)),_unit.isArray()&&(_unit=_unit.get(0,0)),_startDate.isError())return _startDate;if(_endDate.isError())return _endDate;if(_unit.isError())return _unit;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);return typeof endDateSerialNumber!="number"?endDateSerialNumber:endDateSerialNumber<startDateSerialNumber||!_unit.isString()?ErrorValueObject.create(ErrorType$1.NUM):this._getResultByUnit(startDateSerialNumber,endDateSerialNumber,_unit)}_getResultByUnit(startDateSerialNumber,endDateSerialNumber,unit){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateDate.getUTCFullYear(),startMonth=startDateDate.getUTCMonth()+1,startDay=startDateDate.getUTCDate(),endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate(),unitValue=`${unit.getValue()}`.toLocaleUpperCase();let _endDateSerialNumber;switch(unitValue){case"Y":return NumberValueObject.create(endYear-startYear);case"M":return NumberValueObject.create((endYear-startYear)*12+endMonth-startMonth);case"D":return NumberValueObject.create(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber));case"MD":return NumberValueObject.create(endDay-startDay);case"YM":return NumberValueObject.create(endMonth-startMonth);case"YD":return _endDateSerialNumber=excelDateSerial(new Date(Date.UTC(startYear,endMonth-1,endDay))),NumberValueObject.create(Math.floor(_endDateSerialNumber)-Math.floor(startDateSerialNumber));default:return ErrorValueObject.create(ErrorType$1.NUM)}}};__name(_Datedif,"Datedif");let Datedif=_Datedif;const _Datevalue=class _Datevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dateText){return dateText.isError()?dateText:dateText.isArray()?dateText.map(dateTextObject=>this._handleSingleObject(dateTextObject)):this._handleSingleObject(dateText)}_handleSingleObject(dateTextObject){if(dateTextObject.isString()){const value=`${dateTextObject.getValue()}`,parsedDate=parseFormattedValue(value);if(parsedDate){const{v,z}=parsedDate;if(isDate(z))return NumberValueObject.create(Math.trunc(v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Datevalue,"Datevalue");let Datevalue=_Datevalue;const _Day=class _Day extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(0);date=excelSerialToDate(dateSerial)}const month=date.getDate();return NumberValueObject.create(month)}};__name(_Day,"Day");let Day=_Day;const _Days=class _Days extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(endDate,startDate){if(endDate.isError())return endDate;if(startDate.isError())return startDate;const maxRowLength=Math.max(endDate.isArray()?endDate.getRowCount():1,startDate.isArray()?startDate.getRowCount():1),maxColumnLength=Math.max(endDate.isArray()?endDate.getColumnCount():1,startDate.isArray()?startDate.getColumnCount():1),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),resultArray=endDateArray.map((endDateObject,rowIndex,columnIndex)=>{const startDateObject=startDateArray.get(rowIndex,columnIndex);if(endDateObject.isError())return endDateObject;if(startDateObject.isError())return startDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const result=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days,"Days");let Days=_Days;const _Days360=class _Days360 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,method){const _method=method!=null?method:BooleanValueObject.create(!1);if(startDate.isError())return startDate;if(endDate.isError())return endDate;if(_method.isError())return _method;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,endDate.isArray()?endDate.getRowCount():1,_method.isArray()?_method.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,endDate.isArray()?endDate.getColumnCount():1,_method.isArray()?_method.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate,ErrorValueObject.create(ErrorType$1.NA)),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate,ErrorValueObject.create(ErrorType$1.NA)),methodArray=expandArrayValueObject(maxRowLength,maxColumnLength,_method,ErrorValueObject.create(ErrorType$1.NA)),resultArray=startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const endDateObject=endDateArray.get(rowIndex,columnIndex);let methodObject=methodArray.get(rowIndex,columnIndex);if(startDateObject.isError())return startDateObject;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(endDateObject.isError())return endDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(methodObject.isString()&&(methodObject=methodObject.convertToNumberObjectValue()),methodObject.isError())return methodObject;const methodValue=+methodObject.getValue(),{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,methodValue?4:0),result=endDateSerialNumber>=startDateSerialNumber?days:-days;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days360,"Days360");let Days360=_Days360;const _Edate=class _Edate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){if(startDate.isError())return startDate;if(months.isError())return months;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,months.isArray()?months.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,months.isArray()?months.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),monthsArray=expandArrayValueObject(maxRowLength,maxColumnLength,months);return startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const monthsValueObject=monthsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startDateObject.isError())return startDateObject;if(monthsValueObject.isError())return monthsValueObject;if(startDateObject.isString()||startDateObject.isBoolean()||monthsValueObject.isString()||monthsValueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerial=+startDateObject.getValue();if(startDateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);const monthsValue=Math.floor(+monthsValueObject.getValue()),_startDate=excelSerialToDate(startDateSerial),year=_startDate.getUTCFullYear(),month=_startDate.getUTCMonth()+monthsValue,day=_startDate.getUTCDate(),resultDate=new Date(Date.UTC(year,month,day)),currentSerial=excelDateSerial(resultDate);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_Edate,"Edate");let Edate=_Edate;const _Eomonth=class _Eomonth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){let _startDate=startDate,_months=months;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_months.isArray()){const rowCount=_months.getRowCount(),columnCount=_months.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_months=_months.get(0,0)}if(_startDate.isError())return _startDate;if(_months.isError())return _months;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(_months.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth():0,monthsValue=Math.floor(+_months.getValue());if(Number.isNaN(monthsValue))return ErrorValueObject.create(ErrorType$1.VALUE);const targetDate=new Date(Date.UTC(startYear,startMonth+monthsValue+1,0)),result=excelDateSerial(targetDate);return NumberValueObject.create(result)}};__name(_Eomonth,"Eomonth");let Eomonth=_Eomonth;const _Hour=class _Hour extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const hours=excelSerialToDateTime(dateSerialNumber).getUTCHours();return NumberValueObject.create(hours)}};__name(_Hour,"Hour");let Hour=_Hour;const _Isoweeknum=class _Isoweeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(date){return date.isError()?date:date.isArray()?date.map(dateObject=>dateObject.isError()?dateObject:this._handleSingleObject(dateObject)):this._handleSingleObject(date)}_handleSingleObject(date){const dateSerialNumber=getDateSerialNumberByObject(date);if(typeof dateSerialNumber!="number")return dateSerialNumber;const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Isoweeknum,"Isoweeknum");let Isoweeknum=_Isoweeknum;const _Minute=class _Minute extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const minutes=excelSerialToDateTime(dateSerialNumber).getUTCMinutes();return NumberValueObject.create(minutes)}};__name(_Minute,"Minute");let Minute=_Minute;const _Month=class _Month extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1);date=excelSerialToDate(dateSerial)}const month=date.getUTCMonth()+1;return NumberValueObject.create(month)}};__name(_Month,"Month");let Month=_Month;const _Networkdays=class _Networkdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,1,holidaysValueArray);return NumberValueObject.create(result)}};__name(_Networkdays,"Networkdays");let Networkdays=_Networkdays;const _NetworkdaysIntl=class _NetworkdaysIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,endDate,weekend,holidays){return startDate.isError()?startDate:endDate.isError()?endDate:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,endDate,weekendItem,holidays)):this._handleSingleObject(startDate,endDate,weekend,holidays)}_handleSingleObject(startDate,endDate,weekend,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;let weekendValue=1;if(weekend){if(weekendValue=weekend.getValue(),weekend.isBoolean()&&(weekendValue=+weekendValue),weekend.isString()&&!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM)}if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidaysValueArray);return NumberValueObject.create(result)}};__name(_NetworkdaysIntl,"NetworkdaysIntl");let NetworkdaysIntl=_NetworkdaysIntl;const _Now=class _Now extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const now=new Date,utcNow=new Date(Date.UTC(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds())),currentSerial=excelDateTimeSerial(utcNow);return NumberValueObject.create(currentSerial,DEFAULT_NOW_FORMAT)}};__name(_Now,"Now");let Now=_Now;const _Second=class _Second extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const seconds=excelSerialToDateTime(dateSerialNumber).getUTCSeconds();return NumberValueObject.create(seconds)}};__name(_Second,"Second");let Second=_Second;const _Time=class _Time extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(hour,minute,second){if(hour.isError())return hour;if(minute.isError())return minute;if(second.isError())return second;const maxRowLength=Math.max(hour.isArray()?hour.getRowCount():1,minute.isArray()?minute.getRowCount():1,second.isArray()?second.getRowCount():1),maxColumnLength=Math.max(hour.isArray()?hour.getColumnCount():1,minute.isArray()?minute.getColumnCount():1,second.isArray()?second.getColumnCount():1),hourArray=expandArrayValueObject(maxRowLength,maxColumnLength,hour),minuteArray=expandArrayValueObject(maxRowLength,maxColumnLength,minute),secondArray=expandArrayValueObject(maxRowLength,maxColumnLength,second);return hourArray.map((hourValueObject,rowIndex,columnIndex)=>this._calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex))}_calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex){let _hourValueObject=hourValueObject,minuteValueObject=minuteArray.get(rowIndex,columnIndex)||NullValueObject.create(),secondValueObject=secondArray.get(rowIndex,columnIndex)||NullValueObject.create();if((_hourValueObject.isString()||_hourValueObject.isBoolean())&&(_hourValueObject=_hourValueObject.convertToNumberObjectValue()),(minuteValueObject.isString()||minuteValueObject.isBoolean())&&(minuteValueObject=minuteValueObject.convertToNumberObjectValue()),(secondValueObject.isString()||secondValueObject.isBoolean())&&(secondValueObject=secondValueObject.convertToNumberObjectValue()),_hourValueObject.isError())return _hourValueObject;if(minuteValueObject.isError())return minuteValueObject;if(secondValueObject.isError())return secondValueObject;let hourValue=Math.floor(+_hourValueObject.getValue()),minuteValue=Math.floor(+minuteValueObject.getValue()),secondValue=Math.floor(+secondValueObject.getValue());if(hourValue<0||minuteValue<0||secondValue<0||hourValue>32767||minuteValue>32767||secondValue>32767)return ErrorValueObject.create(ErrorType$1.NUM);minuteValue+=Math.floor(secondValue/60),secondValue%=60,hourValue+=Math.floor(minuteValue/60),minuteValue%=60,hourValue%=24;const fractionOfDay=(hourValue*3600+minuteValue*60+secondValue)/86400;return NumberValueObject.create(fractionOfDay,DEFAULT_TIME_FORMAT)}};__name(_Time,"Time");let Time=_Time;const _Timevalue=class _Timevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(timeText){return timeText.isError()?timeText:timeText.isArray()?timeText.map(timeTextObject=>this._handleSingleObject(timeTextObject)):this._handleSingleObject(timeText)}_handleSingleObject(timeTextObject){if(timeTextObject.isString()){const value=`${timeTextObject.getValue()}`,parsedTime=parseFormattedValue(value);if(parsedTime){const{v,z}=parsedTime;if(isDate(z))return NumberValueObject.create(getFractionalPart(v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Timevalue,"Timevalue");let Timevalue=_Timevalue;const _Today=class _Today extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const currentSerial=excelDateSerial(new Date);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)}};__name(_Today,"Today");let Today=_Today;const _Weekday=class _Weekday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(serialNumber,returnType){const _returnType=returnType!=null?returnType:NumberValueObject.create(1);if(serialNumber.isError())return serialNumber;if(_returnType.isError())return _returnType;const maxRowLength=Math.max(serialNumber.isArray()?serialNumber.getRowCount():1,_returnType.isArray()?_returnType.getRowCount():1),maxColumnLength=Math.max(serialNumber.isArray()?serialNumber.getColumnCount():1,_returnType.isArray()?_returnType.getColumnCount():1),serialNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,serialNumber,ErrorValueObject.create(ErrorType$1.NA)),returnTypeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_returnType,ErrorValueObject.create(ErrorType$1.NA)),resultArray=serialNumberArray.map((serialNumberObject,rowIndex,columnIndex)=>{const returnTypeObject=returnTypeArray.get(rowIndex,columnIndex);return this._handleSingleObject(serialNumberObject,returnTypeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(serialNumberObject,returnTypeObject){let _returnTypeObject=returnTypeObject;if(serialNumberObject.isError())return serialNumberObject;if(_returnTypeObject.isError())return _returnTypeObject;const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnTypeObject.isString()&&(_returnTypeObject=_returnTypeObject.convertToNumberObjectValue(),_returnTypeObject.isError()))return _returnTypeObject;const returnTypeValue=Math.floor(+_returnTypeObject.getValue());if(!this._returnTypeMap[returnTypeValue])return ErrorValueObject.create(ErrorType$1.NUM);const weekDay=getWeekDayByDateSerialNumber(dateSerialNumber),result=this._returnTypeMap[returnTypeValue][weekDay];return NumberValueObject.create(result)}};__name(_Weekday,"Weekday");let Weekday=_Weekday;const _Weeknum=class _Weeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(serialNumber,returnType){let _serialNumber=serialNumber,_returnType=returnType!=null?returnType:NumberValueObject.create(1);if(_serialNumber.isArray()){const rowCount=_serialNumber.getRowCount(),columnCount=_serialNumber.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_serialNumber=_serialNumber.get(0,0)}if(_serialNumber.isError())return _serialNumber;if(_returnType.isArray()){const rowCount=_returnType.getRowCount(),columnCount=_returnType.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_returnType=_returnType.get(0,0)}if(_returnType.isError())return _returnType;if(_serialNumber.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const dateSerialNumber=getDateSerialNumberByObject(_serialNumber);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnType.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const returnTypeValue=Math.floor(+_returnType.getValue());return Number.isNaN(returnTypeValue)?ErrorValueObject.create(ErrorType$1.VALUE):returnTypeValue in this._returnTypeMap?this._getResult(dateSerialNumber,returnTypeValue):ErrorValueObject.create(ErrorType$1.NUM)}_getResult(dateSerialNumber,returnTypeValue){const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;if(returnTypeValue===21)yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));else{const weekDay=this._returnTypeMap[returnTypeValue];yearStartWeekDay<weekDay?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay+7-weekDay):yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-weekDay)}const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Weeknum,"Weeknum");let Weeknum=_Weeknum;const _Workday=class _Workday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,days,holidays){let _startDate=startDate,_days=days;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_days.isArray()){const rowCount=_days.getRowCount(),columnCount=_days.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_days=_days.get(0,0)}if(_days.isError())return _days;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+_days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays);return typeof result!="number"?result:NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,workingDays,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,1,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Workday,"Workday");let Workday=_Workday;const _WorkdayIntl=class _WorkdayIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,days,weekend,holidays){return startDate.isError()?startDate:days.isError()?days:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,days,weekendItem,holidays)):this._handleSingleObject(startDate,days,weekend,holidays)}_handleSingleObject(startDate,days,weekend,holidays){const _weekend=weekend!=null?weekend:NumberValueObject.create(1),_startDate=this._checkArrayError(startDate);if(_startDate.isError())return _startDate;const _days=this._checkArrayError(days);if(_days.isError())return _days;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);let weekendValue=_weekend.getValue();if(_weekend.isBoolean()&&(weekendValue=+weekendValue),_weekend.isString()&&(!isValidWeekend(weekendValue)||weekendValue==="1111111"))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue);return typeof result!="number"?result:NumberValueObject.create(result)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isError(),_variant}_getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_WorkdayIntl,"WorkdayIntl");let WorkdayIntl=_WorkdayIntl;const _Year=class _Year extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+dateValue;if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1900);date=excelSerialToDate(dateSerial)}const year=date.getUTCFullYear();return NumberValueObject.create(year)}};__name(_Year,"Year");let Year=_Year;function checkVariantErrorIsArray(variant){let _variant=variant;if(variant.isArray()){const rowCount=variant.getRowCount(),columnCount=variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=variant.get(0,0)}return _variant.isError(),_variant}__name(checkVariantErrorIsArray,"checkVariantErrorIsArray");function checkVariantsErrorIsArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArrayOrBoolean,"checkVariantsErrorIsArrayOrBoolean");function checkVariantsErrorIsStringToNumber(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsStringToNumber,"checkVariantsErrorIsStringToNumber");const _Yearfrac=class _Yearfrac extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);const _startDate=checkVariantErrorIsArray(startDate);if(_startDate.isError())return _startDate;const _endDate=checkVariantErrorIsArray(endDate);if(_endDate.isError())return _endDate;if(_basis=checkVariantErrorIsArray(_basis),_basis.isError())return _basis;if(_startDate.isBoolean()||_endDate.isBoolean()||_basis.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const basisValue=Math.floor(+_basis.getValue());if(Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(basisValue<0||basisValue>4)return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue),result=days/yearDays;return NumberValueObject.create(result)}};__name(_Yearfrac,"Yearfrac");let Yearfrac=_Yearfrac;const functionDate=[[DateFunction,FUNCTION_NAMES_DATE.DATE],[Datedif,FUNCTION_NAMES_DATE.DATEDIF],[Datevalue,FUNCTION_NAMES_DATE.DATEVALUE],[Day,FUNCTION_NAMES_DATE.DAY],[Days,FUNCTION_NAMES_DATE.DAYS],[Days360,FUNCTION_NAMES_DATE.DAYS360],[Edate,FUNCTION_NAMES_DATE.EDATE],[Eomonth,FUNCTION_NAMES_DATE.EOMONTH],[Hour,FUNCTION_NAMES_DATE.HOUR],[Isoweeknum,FUNCTION_NAMES_DATE.ISOWEEKNUM],[Minute,FUNCTION_NAMES_DATE.MINUTE],[Month,FUNCTION_NAMES_DATE.MONTH],[Networkdays,FUNCTION_NAMES_DATE.NETWORKDAYS],[NetworkdaysIntl,FUNCTION_NAMES_DATE.NETWORKDAYS_INTL],[Now,FUNCTION_NAMES_DATE.NOW],[Second,FUNCTION_NAMES_DATE.SECOND],[Time,FUNCTION_NAMES_DATE.TIME],[Timevalue,FUNCTION_NAMES_DATE.TIMEVALUE],[Today,FUNCTION_NAMES_DATE.TODAY],[Weekday,FUNCTION_NAMES_DATE.WEEKDAY],[Weeknum,FUNCTION_NAMES_DATE.WEEKNUM],[Workday,FUNCTION_NAMES_DATE.WORKDAY],[WorkdayIntl,FUNCTION_NAMES_DATE.WORKDAY_INTL],[Year,FUNCTION_NAMES_DATE.YEAR],[Yearfrac,FUNCTION_NAMES_DATE.YEARFRAC]];var FUNCTION_NAMES_ENGINEERING=(FUNCTION_NAMES_ENGINEERING2=>(FUNCTION_NAMES_ENGINEERING2.BESSELI="BESSELI",FUNCTION_NAMES_ENGINEERING2.BESSELJ="BESSELJ",FUNCTION_NAMES_ENGINEERING2.BESSELK="BESSELK",FUNCTION_NAMES_ENGINEERING2.BESSELY="BESSELY",FUNCTION_NAMES_ENGINEERING2.BIN2DEC="BIN2DEC",FUNCTION_NAMES_ENGINEERING2.BIN2HEX="BIN2HEX",FUNCTION_NAMES_ENGINEERING2.BIN2OCT="BIN2OCT",FUNCTION_NAMES_ENGINEERING2.BITAND="BITAND",FUNCTION_NAMES_ENGINEERING2.BITLSHIFT="BITLSHIFT",FUNCTION_NAMES_ENGINEERING2.BITOR="BITOR",FUNCTION_NAMES_ENGINEERING2.BITRSHIFT="BITRSHIFT",FUNCTION_NAMES_ENGINEERING2.BITXOR="BITXOR",FUNCTION_NAMES_ENGINEERING2.COMPLEX="COMPLEX",FUNCTION_NAMES_ENGINEERING2.CONVERT="CONVERT",FUNCTION_NAMES_ENGINEERING2.DEC2BIN="DEC2BIN",FUNCTION_NAMES_ENGINEERING2.DEC2HEX="DEC2HEX",FUNCTION_NAMES_ENGINEERING2.DEC2OCT="DEC2OCT",FUNCTION_NAMES_ENGINEERING2.DELTA="DELTA",FUNCTION_NAMES_ENGINEERING2.ERF="ERF",FUNCTION_NAMES_ENGINEERING2.ERF_PRECISE="ERF.PRECISE",FUNCTION_NAMES_ENGINEERING2.ERFC="ERFC",FUNCTION_NAMES_ENGINEERING2.ERFC_PRECISE="ERFC.PRECISE",FUNCTION_NAMES_ENGINEERING2.GESTEP="GESTEP",FUNCTION_NAMES_ENGINEERING2.HEX2BIN="HEX2BIN",FUNCTION_NAMES_ENGINEERING2.HEX2DEC="HEX2DEC",FUNCTION_NAMES_ENGINEERING2.HEX2OCT="HEX2OCT",FUNCTION_NAMES_ENGINEERING2.IMABS="IMABS",FUNCTION_NAMES_ENGINEERING2.IMAGINARY="IMAGINARY",FUNCTION_NAMES_ENGINEERING2.IMARGUMENT="IMARGUMENT",FUNCTION_NAMES_ENGINEERING2.IMCONJUGATE="IMCONJUGATE",FUNCTION_NAMES_ENGINEERING2.IMCOS="IMCOS",FUNCTION_NAMES_ENGINEERING2.IMCOSH="IMCOSH",FUNCTION_NAMES_ENGINEERING2.IMCOT="IMCOT",FUNCTION_NAMES_ENGINEERING2.IMCSC="IMCSC",FUNCTION_NAMES_ENGINEERING2.IMCSCH="IMCSCH",FUNCTION_NAMES_ENGINEERING2.IMDIV="IMDIV",FUNCTION_NAMES_ENGINEERING2.IMEXP="IMEXP",FUNCTION_NAMES_ENGINEERING2.IMLN="IMLN",FUNCTION_NAMES_ENGINEERING2.IMLOG10="IMLOG10",FUNCTION_NAMES_ENGINEERING2.IMLOG2="IMLOG2",FUNCTION_NAMES_ENGINEERING2.IMPOWER="IMPOWER",FUNCTION_NAMES_ENGINEERING2.IMPRODUCT="IMPRODUCT",FUNCTION_NAMES_ENGINEERING2.IMREAL="IMREAL",FUNCTION_NAMES_ENGINEERING2.IMSEC="IMSEC",FUNCTION_NAMES_ENGINEERING2.IMSECH="IMSECH",FUNCTION_NAMES_ENGINEERING2.IMSIN="IMSIN",FUNCTION_NAMES_ENGINEERING2.IMSINH="IMSINH",FUNCTION_NAMES_ENGINEERING2.IMSQRT="IMSQRT",FUNCTION_NAMES_ENGINEERING2.IMSUB="IMSUB",FUNCTION_NAMES_ENGINEERING2.IMSUM="IMSUM",FUNCTION_NAMES_ENGINEERING2.IMTAN="IMTAN",FUNCTION_NAMES_ENGINEERING2.OCT2BIN="OCT2BIN",FUNCTION_NAMES_ENGINEERING2.OCT2DEC="OCT2DEC",FUNCTION_NAMES_ENGINEERING2.OCT2HEX="OCT2HEX",FUNCTION_NAMES_ENGINEERING2))(FUNCTION_NAMES_ENGINEERING||{}),BESSEL;(BESSEL2=>{const W=.636619772;function _horner(arr,v){let z=0;for(let i=0;i<arr.length;++i)z=v*z+arr[i];return z}__name(_horner,"_horner");function _bessel_iter(x,n,f0,f1,sign){if(n===0)return f0;if(n===1)return f1;const tdx=2/x;let _f0=f0,_f1=f1,f2=f1;for(let o=1;o<n;++o)f2=_f1*o*tdx+sign*_f0,_f0=_f1,_f1=f2;return f2}__name(_bessel_iter,"_bessel_iter");function _bessel_wrap(bessel0,bessel1,nonzero,sign){return __name(function(x,n){if(nonzero){if(x===0)return nonzero===1?-1/0:1/0;if(x<0)return Number.NaN}if(n===0)return bessel0(x);if(n===1)return bessel1(x);if(n<0)return Number.NaN;const _n=n|0,b0=bessel0(x),b1=bessel1(x);return _bessel_iter(x,_n,b0,b1,sign)},"bessel")}__name(_bessel_wrap,"_bessel_wrap"),BESSEL2.besselj=(()=>{const b0_a1a=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],b0_a2a=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;if(x<8)a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2;else{const xx=x-.785398164;y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/x)}return a}__name(bessel0,"bessel0");const b1_a1a=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],b1_a2a=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=Math.abs(x)-2.356194491;return Math.abs(x)<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/Math.abs(x))*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/Math.abs(x)),x<0&&(a=-a)),a}return __name(bessel1,"bessel1"),__name(function besselj2(x,n){const _n=Math.round(n);if(!Number.isFinite(x))return Number.isNaN(x)?x:0;if(_n<0)return(_n%2?-1:1)*besselj2(x,-_n);if(x<0)return(_n%2?-1:1)*besselj2(-x,_n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(x===0)return 0;let ret=0;if(x>_n)ret=_bessel_iter(x,_n,bessel0(x),bessel1(x),-1);else{const m=2*Math.floor((_n+Math.floor(Math.sqrt(40*_n)))/2);let jsum=!1,bjp=0,sum=0,bj=1,bjm=0;const tox=2/x;for(let j=m;j>0;j--)bjm=j*tox*bj-bjp,bjp=bj,bj=bjm,Math.abs(bj)>1e10&&(bj*=1e-10,bjp*=1e-10,ret*=1e-10,sum*=1e-10),jsum&&(sum+=bj),jsum=!jsum,j===_n&&(ret=bjp);sum=2*sum-bj,ret/=sum}return ret},"besselj2")})(),BESSEL2.bessely=(()=>{const b0_a1a=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],b0_a2a=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-.785398164;return x<8?(a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2+W*(0,BESSEL2.besselj)(x,0)*Math.log(x)):(y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}__name(bessel0,"bessel0");const b1_a1a=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],b1_a2a=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-2.356194491;return x<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2+W*((0,BESSEL2.besselj)(x,1)*Math.log(x)-1/x)):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,1,-1)})(),BESSEL2.besseli=(()=>{const b0_a=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],b0_b=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function bessel0(x){return x<=3.75?_horner(b0_a,x*x/(3.75*3.75)):Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b0_b,3.75/Math.abs(x))}__name(bessel0,"bessel0");const b1_a=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],b1_b=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function bessel1(x){return x<3.75?x*_horner(b1_a,x*x/(3.75*3.75)):(x<0?-1:1)*Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b1_b,3.75/Math.abs(x))}return __name(bessel1,"bessel1"),__name(function besseli2(x,n){const _n=Math.round(n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(_n<0)return Number.NaN;if(Math.abs(x)===0)return 0;if(x===1/0)return 1/0;let ret=0,j;const tox=2/Math.abs(x);let bip=0,bi=1,bim=0;const m=2*Math.round((_n+Math.round(Math.sqrt(40*_n)))/2);for(j=m;j>0;j--)bim=j*tox*bi+bip,bip=bi,bi=bim,Math.abs(bi)>1e10&&(bi*=1e-10,bip*=1e-10,ret*=1e-10),j===_n&&(ret=bip);return ret*=besseli2(x,0)/bi,x<0&&_n%2?-ret:ret},"besseli2")})(),BESSEL2.besselk=(()=>{const b0_a=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],b0_b=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function bessel0(x){return x<=2?-Math.log(x/2)*(0,BESSEL2.besseli)(x,0)+_horner(b0_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b0_b,2/x)}__name(bessel0,"bessel0");const b1_a=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],b1_b=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function bessel1(x){return x<=2?Math.log(x/2)*(0,BESSEL2.besseli)(x,1)+1/x*_horner(b1_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b1_b,2/x)}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,2,1)})()})(BESSEL||(BESSEL={}));function isValidBinaryNumber(number){return/^[01]{1,10}$/.test(number)}__name(isValidBinaryNumber,"isValidBinaryNumber");function isValidOctalNumber(number){return/^[0-7]{1,10}$/.test(number)}__name(isValidOctalNumber,"isValidOctalNumber");function isValidHexadecimalNumber(number){return/^[0-9A-Fa-f]{1,10}$/.test(number)}__name(isValidHexadecimalNumber,"isValidHexadecimalNumber");function erf(x){if(x===0)return 0;const cof=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let _x=x,isneg=!1;_x<0&&(_x=-_x,isneg=!0);const t=2/(2+_x),ty=4*t-2;let d=0,dd=0,tmp;for(let j=cof.length-1;j>0;j--)tmp=d,d=ty*d-dd+cof[j],dd=tmp;const res=t*Math.exp(-_x*_x+.5*(cof[0]+ty*d)-dd);return isneg?res-1:1-res}__name(erf,"erf");const _Besseli=class _Besseli extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besseli(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besseli,"Besseli");let Besseli=_Besseli;const _Besselj=class _Besselj extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselj(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselj,"Besselj");let Besselj=_Besselj;const _Besselk=class _Besselk extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselk(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselk,"Besselk");let Besselk=_Besselk;const _Bessely=class _Bessely extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.bessely(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Bessely,"Bessely");let Bessely=_Bessely;const _Bin2dec=class _Bin2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;return numberValue.length===10&&numberValue.substring(0,1)==="1"?result=Number.parseInt(numberValue.substring(1),2)-512:result=Number.parseInt(numberValue,2),NumberValueObject.create(result)}};__name(_Bin2dec,"Bin2dec");let Bin2dec=_Bin2dec;const _Bin2hex=class _Bin2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(0xfffffffe00+Number.parseInt(numberValue.substring(1),2)).toString(16);else if(result=Number.parseInt(numberValue,2).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Bin2hex,"Bin2hex");let Bin2hex=_Bin2hex;const _Bin2oct=class _Bin2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(1073741312+Number.parseInt(numberValue.substring(1),2)).toString(8);else if(result=Number.parseInt(numberValue,2).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Bin2oct,"Bin2oct");let Bin2oct=_Bin2oct;const _Bitand=class _Bitand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value&number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitand,"Bitand");let Bitand=_Bitand;const _Bitlshift=class _Bitlshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)<<BigInt(shiftAmountValue):BigInt(numberValue)>>BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitlshift,"Bitlshift");let Bitlshift=_Bitlshift;const _Bitor=class _Bitor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=Number(BigInt(number1Value)|BigInt(number2Value));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitor,"Bitor");let Bitor=_Bitor;const _Bitrshift=class _Bitrshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)>>BigInt(shiftAmountValue):BigInt(numberValue)<<BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitrshift,"Bitrshift");let Bitrshift=_Bitrshift;const _Bitxor=class _Bitxor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value^number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitxor,"Bitxor");let Bitxor=_Bitxor;const _Complex=class _Complex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(realNum,iNum,suffix){const _suffix=suffix!=null?suffix:StringValueObject.create("i"),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(realNum,iNum,_suffix);if(isError)return errorObject;const[realNumObject,iNumObject,suffixObject]=variants,realNumValue=+realNumObject.getValue(),iNumValue=+iNumObject.getValue(),suffixValue=`${suffixObject.getValue()}`;if(Number.isNaN(realNumValue)||Number.isNaN(iNumValue)||suffixValue!=="i"&&suffixValue!=="j")return ErrorValueObject.create(ErrorType$1.VALUE);if(realNumValue===0&&iNumValue===0)return NumberValueObject.create(0);if(realNumValue===0)return iNumValue===1?StringValueObject.create(suffixValue):StringValueObject.create(`${iNumValue}${suffixValue}`);if(iNumValue===0)return NumberValueObject.create(realNumValue);const sign=iNumValue>0?"+":"",suffixStr=iNumValue===1?suffixValue:`${iNumValue}${suffixValue}`;return StringValueObject.create(`${realNumValue}${sign}${suffixStr}`)}};__name(_Complex,"Complex");let Complex=_Complex;const _Convert=class _Convert extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);__publicField(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});__publicField(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(number,fromUnit,toUnit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,fromUnit,toUnit);if(isError)return errorObject;const[numberObject,fromUnitObject,toUnitObject]=variants,numberValue=+numberObject.getValue(),fromUnitValue=`${fromUnitObject.getValue()}`,toUnitValue=`${toUnitObject.getValue()}`;if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let from,fromMultiplier=1,to,toMultiplier=1;const{_from,_to}=this._lookupFromAndToUnits(fromUnitValue,toUnitValue);if(from=_from,to=_to,from===null){const{_from:_from2,_fromMultiplier}=this._lookupFromPrefix(fromUnitValue);from=_from2,fromMultiplier=_fromMultiplier}if(to===null){const{_to:_to2,_toMultiplier}=this._lookupToPrefix(toUnitValue);to=_to2,toMultiplier=_toMultiplier}if(from===null||to===null||from[3]!==to[3])return ErrorValueObject.create(ErrorType$1.NA);let result;return from[3]==="temperature"?result=this._getTemperatureConversion(numberValue,from[1],to[1]):result=numberValue*from[6]*fromMultiplier/(to[6]*toMultiplier),NumberValueObject.create(result)}_lookupFromAndToUnits(fromUnitValue,toUnitValue){let _from=null,_to=null,alt;for(let i=0;i<this._units.length;i++)alt=this._units[i][2]===null?[]:this._units[i][2],(this._units[i][1]===fromUnitValue||alt.indexOf(fromUnitValue)>=0)&&(_from=this._units[i]),(this._units[i][1]===toUnitValue||alt.indexOf(toUnitValue)>=0)&&(_to=this._units[i]);return{_from,_to}}_lookupFromPrefix(fromUnitValue){let _from=null,_fromMultiplier=1,baseFromUnit=fromUnitValue,alt;const fromBinaryPrefix=this._binaryPrefixes[fromUnitValue.substring(0,2)];let fromUnitPrefix=this._unitPrefixes[fromUnitValue.substring(0,1)];fromUnitValue.substring(0,2)==="da"&&(fromUnitPrefix=["dekao",10,"da"]),fromBinaryPrefix?(_fromMultiplier=fromBinaryPrefix[2],baseFromUnit=fromUnitValue.substring(2)):fromUnitPrefix&&(_fromMultiplier=fromUnitPrefix[1],baseFromUnit=fromUnitValue.substring(fromUnitPrefix[2].length));for(let j=0;j<this._units.length;j++)alt=this._units[j][2]===null?[]:this._units[j][2],(this._units[j][1]===baseFromUnit||alt.indexOf(baseFromUnit)>=0)&&(_from=this._units[j]);return{_from,_fromMultiplier}}_lookupToPrefix(toUnitValue){let _to=null,_toMultiplier=1,baseToUnit=toUnitValue,alt;const toBinaryPrefix=this._binaryPrefixes[toUnitValue.substring(0,2)];let toUnitPrefix=this._unitPrefixes[toUnitValue.substring(0,1)];toUnitValue.substring(0,2)==="da"&&(toUnitPrefix=["dekao",10,"da"]),toBinaryPrefix?(_toMultiplier=toBinaryPrefix[2],baseToUnit=toUnitValue.substring(2)):toUnitPrefix&&(_toMultiplier=toUnitPrefix[1],baseToUnit=toUnitValue.substring(toUnitPrefix[2].length));for(let k=0;k<this._units.length;k++)alt=this._units[k][2]===null?[]:this._units[k][2],(this._units[k][1]===baseToUnit||alt.indexOf(baseToUnit)>=0)&&(_to=this._units[k]);return{_to,_toMultiplier}}_getTemperatureConversion(number,from,to){switch(from){case"C":return this._centigradeConversion(number,to);case"F":return this._fahrenheitConversion(number,to);case"K":return this._kelvinConversion(number,to);case"Rank":return this._rankineConversion(number,to);case"Reau":return this._reaumurConversion(number,to);default:return number}}_centigradeConversion(number,to){switch(to){case"F":return number*9/5+32;case"K":return number+273.15;case"Rank":return(number+273.15)*9/5;case"Reau":return number*4/5;default:return number}}_fahrenheitConversion(number,to){switch(to){case"C":return(number-32)*5/9;case"K":return(number-32)*5/9+273.15;case"Rank":return number+459.67;case"Reau":return(number-32)*4/9;default:return number}}_kelvinConversion(number,to){switch(to){case"C":return number-273.15;case"F":return(number-273.15)*9/5+32;case"Rank":return number*9/5;case"Reau":return(number-273.15)*4/5;default:return number}}_rankineConversion(number,to){switch(to){case"C":return(number-491.67)*5/9;case"F":return number-459.67;case"K":return number*5/9;case"Reau":return(number-491.67)*4/9;default:return number}}_reaumurConversion(number,to){switch(to){case"C":return number*5/4;case"F":return number*9/4+32;case"K":return number*5/4+273.15;case"Rank":return number*9/4+491.67;default:return number}}};__name(_Convert,"Convert");let Convert=_Convert;const _Dec2bin=class _Dec2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${numberValue}`)||numberValue<-512||numberValue>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0){const toStr=(512+numberValue).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=Number.parseInt(`${numberValue}`,10).toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2bin,"Dec2bin");let Dec2bin=_Dec2bin;const _Dec2hex=class _Dec2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${numberValue}`)||numberValue<-549755813888||numberValue>549755813887)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1099511627776+numberValue).toString(16);else if(result=Number.parseInt(`${numberValue}`,10).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Dec2hex,"Dec2hex");let Dec2hex=_Dec2hex;const _Dec2oct=class _Dec2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${numberValue}`)||numberValue<-536870912||numberValue>536870911)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1073741824+numberValue).toString(8);else if(result=Number.parseInt(`${numberValue}`,10).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2oct,"Dec2oct");let Dec2oct=_Dec2oct;const _Delta=class _Delta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number1,number2){const _number2=number2!=null?number2:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number1,_number2);if(isError)return errorObject;const[number1Object,number2Object]=variants,number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(Number.isNaN(number1Value)||Number.isNaN(number2Value))return ErrorValueObject.create(ErrorType$1.VALUE);const result=number1Value===number2Value?1:0;return NumberValueObject.create(result)}};__name(_Delta,"Delta");let Delta=_Delta;const _Erf=class _Erf extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(lowerLimit,upperLimit){let result;if(upperLimit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit,upperLimit);if(isError)return errorObject;const[lowerLimitObject,upperLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue(),upperLimitValue=+upperLimitObject.getValue();if(Number.isNaN(lowerLimitValue)||Number.isNaN(upperLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(upperLimitValue)-erf(lowerLimitValue)}else{const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit);if(isError)return errorObject;const[lowerLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue();if(Number.isNaN(lowerLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(lowerLimitValue)}return NumberValueObject.create(result)}};__name(_Erf,"Erf");let Erf=_Erf;const _ErfPrecise=class _ErfPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erf(xValue);return NumberValueObject.create(result)}};__name(_ErfPrecise,"ErfPrecise");let ErfPrecise=_ErfPrecise;const _Erfc=class _Erfc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=1-erf(xValue);return NumberValueObject.create(result)}};__name(_Erfc,"Erfc");let Erfc=_Erfc;const _ErfcPrecise=class _ErfcPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=1-erf(xValue);return NumberValueObject.create(result)}};__name(_ErfcPrecise,"ErfcPrecise");let ErfcPrecise=_ErfcPrecise;const _Hex2bin=class _Hex2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1).toLocaleUpperCase()==="F",decimal=negative?Number.parseInt(numberValue,16)-1099511627776:Number.parseInt(numberValue,16);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2bin,"Hex2bin");let Hex2bin=_Hex2bin;const _Hex2dec=class _Hex2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,16);return result>=549755813888&&(result-=1099511627776),NumberValueObject.create(result)}};__name(_Hex2dec,"Hex2dec");let Hex2dec=_Hex2dec;const _Hex2oct=class _Hex2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,16);if(decimal>536870911&&decimal<0xffe0000000)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(decimal>=0xffe0000000)result=(decimal-0xffc0000000).toString(8);else if(result=decimal.toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2oct,"Hex2oct");let Hex2oct=_Hex2oct;const _Oct2bin=class _Oct2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1)==="7",decimal=negative?Number.parseInt(numberValue,8)-1073741824:Number.parseInt(numberValue,8);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Oct2bin,"Oct2bin");let Oct2bin=_Oct2bin;const _Oct2dec=class _Oct2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,8);return result>=536870912&&(result-=1073741824),NumberValueObject.create(result)}};__name(_Oct2dec,"Oct2dec");let Oct2dec=_Oct2dec;const _Oct2hex=class _Oct2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,8);let result;if(decimal>=536870912)result=`ff${(decimal+3221225472).toString(16)}`;else if(result=decimal.toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Oct2hex,"Oct2hex");let Oct2hex=_Oct2hex;const functionEngineering=[[Besseli,FUNCTION_NAMES_ENGINEERING.BESSELI],[Besselj,FUNCTION_NAMES_ENGINEERING.BESSELJ],[Besselk,FUNCTION_NAMES_ENGINEERING.BESSELK],[Bessely,FUNCTION_NAMES_ENGINEERING.BESSELY],[Bin2dec,FUNCTION_NAMES_ENGINEERING.BIN2DEC],[Bin2hex,FUNCTION_NAMES_ENGINEERING.BIN2HEX],[Bin2oct,FUNCTION_NAMES_ENGINEERING.BIN2OCT],[Bitand,FUNCTION_NAMES_ENGINEERING.BITAND],[Bitlshift,FUNCTION_NAMES_ENGINEERING.BITLSHIFT],[Bitor,FUNCTION_NAMES_ENGINEERING.BITOR],[Bitrshift,FUNCTION_NAMES_ENGINEERING.BITRSHIFT],[Bitxor,FUNCTION_NAMES_ENGINEERING.BITXOR],[Complex,FUNCTION_NAMES_ENGINEERING.COMPLEX],[Convert,FUNCTION_NAMES_ENGINEERING.CONVERT],[Dec2bin,FUNCTION_NAMES_ENGINEERING.DEC2BIN],[Dec2hex,FUNCTION_NAMES_ENGINEERING.DEC2HEX],[Dec2oct,FUNCTION_NAMES_ENGINEERING.DEC2OCT],[Delta,FUNCTION_NAMES_ENGINEERING.DELTA],[Erf,FUNCTION_NAMES_ENGINEERING.ERF],[ErfPrecise,FUNCTION_NAMES_ENGINEERING.ERF_PRECISE],[Erfc,FUNCTION_NAMES_ENGINEERING.ERFC],[ErfcPrecise,FUNCTION_NAMES_ENGINEERING.ERFC_PRECISE],[Hex2bin,FUNCTION_NAMES_ENGINEERING.HEX2BIN],[Hex2dec,FUNCTION_NAMES_ENGINEERING.HEX2DEC],[Hex2oct,FUNCTION_NAMES_ENGINEERING.HEX2OCT],[Oct2bin,FUNCTION_NAMES_ENGINEERING.OCT2BIN],[Oct2dec,FUNCTION_NAMES_ENGINEERING.OCT2DEC],[Oct2hex,FUNCTION_NAMES_ENGINEERING.OCT2HEX]];var FUNCTION_NAMES_FINANCIAL=(FUNCTION_NAMES_FINANCIAL2=>(FUNCTION_NAMES_FINANCIAL2.ACCRINT="ACCRINT",FUNCTION_NAMES_FINANCIAL2.ACCRINTM="ACCRINTM",FUNCTION_NAMES_FINANCIAL2.AMORDEGRC="AMORDEGRC",FUNCTION_NAMES_FINANCIAL2.AMORLINC="AMORLINC",FUNCTION_NAMES_FINANCIAL2.COUPDAYBS="COUPDAYBS",FUNCTION_NAMES_FINANCIAL2.COUPDAYS="COUPDAYS",FUNCTION_NAMES_FINANCIAL2.COUPDAYSNC="COUPDAYSNC",FUNCTION_NAMES_FINANCIAL2.COUPNCD="COUPNCD",FUNCTION_NAMES_FINANCIAL2.COUPNUM="COUPNUM",FUNCTION_NAMES_FINANCIAL2.COUPPCD="COUPPCD",FUNCTION_NAMES_FINANCIAL2.CUMIPMT="CUMIPMT",FUNCTION_NAMES_FINANCIAL2.CUMPRINC="CUMPRINC",FUNCTION_NAMES_FINANCIAL2.DB="DB",FUNCTION_NAMES_FINANCIAL2.DDB="DDB",FUNCTION_NAMES_FINANCIAL2.DISC="DISC",FUNCTION_NAMES_FINANCIAL2.DOLLARDE="DOLLARDE",FUNCTION_NAMES_FINANCIAL2.DOLLARFR="DOLLARFR",FUNCTION_NAMES_FINANCIAL2.DURATION="DURATION",FUNCTION_NAMES_FINANCIAL2.EFFECT="EFFECT",FUNCTION_NAMES_FINANCIAL2.FV="FV",FUNCTION_NAMES_FINANCIAL2.FVSCHEDULE="FVSCHEDULE",FUNCTION_NAMES_FINANCIAL2.INTRATE="INTRATE",FUNCTION_NAMES_FINANCIAL2.IPMT="IPMT",FUNCTION_NAMES_FINANCIAL2.IRR="IRR",FUNCTION_NAMES_FINANCIAL2.ISPMT="ISPMT",FUNCTION_NAMES_FINANCIAL2.MDURATION="MDURATION",FUNCTION_NAMES_FINANCIAL2.MIRR="MIRR",FUNCTION_NAMES_FINANCIAL2.NOMINAL="NOMINAL",FUNCTION_NAMES_FINANCIAL2.NPER="NPER",FUNCTION_NAMES_FINANCIAL2.NPV="NPV",FUNCTION_NAMES_FINANCIAL2.ODDFPRICE="ODDFPRICE",FUNCTION_NAMES_FINANCIAL2.ODDFYIELD="ODDFYIELD",FUNCTION_NAMES_FINANCIAL2.ODDLPRICE="ODDLPRICE",FUNCTION_NAMES_FINANCIAL2.ODDLYIELD="ODDLYIELD",FUNCTION_NAMES_FINANCIAL2.PDURATION="PDURATION",FUNCTION_NAMES_FINANCIAL2.PMT="PMT",FUNCTION_NAMES_FINANCIAL2.PPMT="PPMT",FUNCTION_NAMES_FINANCIAL2.PRICE="PRICE",FUNCTION_NAMES_FINANCIAL2.PRICEDISC="PRICEDISC",FUNCTION_NAMES_FINANCIAL2.PRICEMAT="PRICEMAT",FUNCTION_NAMES_FINANCIAL2.PV="PV",FUNCTION_NAMES_FINANCIAL2.RATE="RATE",FUNCTION_NAMES_FINANCIAL2.RECEIVED="RECEIVED",FUNCTION_NAMES_FINANCIAL2.RRI="RRI",FUNCTION_NAMES_FINANCIAL2.SLN="SLN",FUNCTION_NAMES_FINANCIAL2.SYD="SYD",FUNCTION_NAMES_FINANCIAL2.TBILLEQ="TBILLEQ",FUNCTION_NAMES_FINANCIAL2.TBILLPRICE="TBILLPRICE",FUNCTION_NAMES_FINANCIAL2.TBILLYIELD="TBILLYIELD",FUNCTION_NAMES_FINANCIAL2.VDB="VDB",FUNCTION_NAMES_FINANCIAL2.XIRR="XIRR",FUNCTION_NAMES_FINANCIAL2.XNPV="XNPV",FUNCTION_NAMES_FINANCIAL2.YIELD="YIELD",FUNCTION_NAMES_FINANCIAL2.YIELDDISC="YIELDDISC",FUNCTION_NAMES_FINANCIAL2.YIELDMAT="YIELDMAT",FUNCTION_NAMES_FINANCIAL2))(FUNCTION_NAMES_FINANCIAL||{});const _Accrint=class _Accrint extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",8)}calculate(issue,firstInterest,settlement,rate,par,frequency,basis,calcMethod){const _basis=basis!=null?basis:NumberValueObject.create(0),_calcMethod=calcMethod!=null?calcMethod:BooleanValueObject.create(!0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,firstInterest,settlement,rate,par,frequency,_basis);if(isError)return errorObject;const[issueObject,firstInterestObject,settlementObject,rateObject,parObject,frequencyObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstInterestSerialNumber=getDateSerialNumberByObject(firstInterestObject);if(typeof firstInterestSerialNumber!="number")return firstInterestSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue()),calcMethodValue=+_calcMethod.getValue();return Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)||Number.isNaN(calcMethodValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||parValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>=Math.floor(settlementSerialNumber)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue)}_getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue){let TwoDateDays;Math.floor(settlementSerialNumber)>=Math.floor(firstInterestSerialNumber)&&!calcMethodValue?TwoDateDays=getTwoDateDaysByBasis(firstInterestSerialNumber,settlementSerialNumber,basisValue):TwoDateDays=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue);const{days,yearDays}=TwoDateDays,NC=Math.ceil(days/yearDays*frequencyValue),NLi=yearDays/frequencyValue;let accruedDaysSum=0;for(let i=1;i<=NC;i++)if(i*NLi>days){const Ai=days-(i-1)*NLi;accruedDaysSum+=Ai/NLi}else accruedDaysSum+=1;const result=parValue*(rateValue/frequencyValue)*accruedDaysSum;return NumberValueObject.create(result)}};__name(_Accrint,"Accrint");let Accrint=_Accrint;const _Accrintm=class _Accrintm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(issue,settlement,rate,par,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,settlement,rate,par,_basis);if(isError)return errorObject;const[issueObject,settlementObject,rateObject,parObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<=0||parValue<=0||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>Math.floor(settlementSerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);if(Math.floor(issueSerialNumber)===Math.floor(settlementSerialNumber))return NumberValueObject.create(0);const{days,yearDays}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=parValue*rateValue*days/yearDays;return NumberValueObject.create(result)}};__name(_Accrintm,"Accrintm");let Accrintm=_Accrintm;const _Amorlinc=class _Amorlinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(cost,datePurchased,firstPeriod,salvage,period,rate,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(cost,datePurchased,firstPeriod,salvage,period,rate,_basis);if(isError)return errorObject;const[costObject,datePurchasedObject,firstPeriodObject,salvageObject,periodObject,rateObject,basisObject]=variants,datePurchasedSerialNumber=getDateSerialNumberByObject(datePurchasedObject);if(typeof datePurchasedSerialNumber!="number")return datePurchasedSerialNumber;const firstPeriodSerialNumber=getDateSerialNumberByObject(firstPeriodObject);if(typeof firstPeriodSerialNumber!="number")return firstPeriodSerialNumber;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue();let periodValue=+periodObject.getValue();const rateValue=+rateObject.getValue(),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(periodValue)||Number.isNaN(rateValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):costValue<=0||salvageValue<0||costValue<salvageValue||Math.floor(datePurchasedSerialNumber)>Math.floor(firstPeriodSerialNumber)||periodValue<0||rateValue<=0||![0,1,3,4].includes(basisValue)?ErrorValueObject.create(ErrorType$1.NUM):(periodValue>1?periodValue=Math.floor(periodValue):periodValue=Math.ceil(periodValue),this._getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue))}_getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue){const totalDepreciation=costValue-salvageValue,baseDepreciation=costValue*rateValue,{days,yearDays}=getTwoDateDaysByBasis(datePurchasedSerialNumber,firstPeriodSerialNumber,basisValue),firstPeriodYearsFraction=days/yearDays,life=Math.ceil(totalDepreciation/baseDepreciation-firstPeriodYearsFraction);if(life<0)return NumberValueObject.create(costValue);let result=baseDepreciation;return periodValue===0?result=baseDepreciation*firstPeriodYearsFraction:periodValue===life?result=totalDepreciation-baseDepreciation*(firstPeriodYearsFraction+periodValue-1):periodValue>life&&(result=0),NumberValueObject.create(result)}};__name(_Amorlinc,"Amorlinc");let Amorlinc=_Amorlinc;const _Coupdaybs=class _Coupdaybs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);let coupDateSerialNumber=excelDateSerial(coupDate);coupDateSerialNumber<0&&(coupDateSerialNumber=0);const{days}=getTwoDateDaysByBasis(coupDateSerialNumber,settlementSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaybs,"Coupdaybs");let Coupdaybs=_Coupdaybs;const _Coupdays=class _Coupdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(basisValue===1){const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);const beforeSettlementDateSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const afterSettlementDateSerialNumber=excelDateSerial(coupDate);beforeSettlementDateSerialNumber<0&&frequencyValue===1?result=365:result=afterSettlementDateSerialNumber-beforeSettlementDateSerialNumber}else basisValue===3?result=365/frequencyValue:result=360/frequencyValue;return NumberValueObject.create(result)}};__name(_Coupdays,"Coupdays");let Coupdays=_Coupdays;const _Coupdaysnc=class _Coupdaysnc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate),{days}=getTwoDateDaysByBasis(settlementSerialNumber,coupDateSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaysnc,"Coupdaysnc");let Coupdaysnc=_Coupdaysnc;const _Coupncd=class _Coupncd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate);return NumberValueObject.create(coupDateSerialNumber)}};__name(_Coupncd,"Coupncd");let Coupncd=_Coupncd;const _Coupnum=class _Coupnum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=0;const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(;coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue),result++;return excelDateSerial(coupDate)<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Coupnum,"Coupnum");let Coupnum=_Coupnum;const _Couppcd=class _Couppcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);let coupDateSerialNumber=excelDateSerial(coupDate);return coupDateSerialNumber<0&&(coupDateSerialNumber=0),NumberValueObject.create(coupDateSerialNumber)}};__name(_Couppcd,"Couppcd");let Couppcd=_Couppcd;function calculatePMT(rate,nper,pv,fv,type){let result;if(rate===0)result=(pv+fv)/nper;else{const term=(1+rate)**nper;result=type===1?(fv*rate/(term-1)+pv*rate/(1-1/term))/(1+rate):fv*rate/(term-1)+pv*rate/(1-1/term)}return-result}__name(calculatePMT,"calculatePMT");function calculateFV(rate,nper,pmt,pv,type){let result;if(rate===0)result=pv+pmt*nper;else{const term=(1+rate)**nper;result=type===1?pv*term+pmt*(1+rate)*(term-1)/rate:pv*term+pmt*(term-1)/rate}return-result}__name(calculateFV,"calculateFV");function calculateIPMT(rate,per,nper,pv,fv,type){const payment=calculatePMT(rate,nper,pv,fv,type);return(per===1?type===1?0:-pv:type===1?calculateFV(rate,per-2,payment,pv,1)-payment:calculateFV(rate,per-1,payment,pv,0))*rate}__name(calculateIPMT,"calculateIPMT");const _Cumipmt=class _Cumipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||startPeriodValue>nperValue||endPeriodValue>nperValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(typeValue===0&&(result=-pvValue),_startPeriodValue++);let canNotCalculate=!1;for(let i=_startPeriodValue;i<=endPeriodValue;i++){const principal=typeValue===1?calculateFV(rateValue,i-2,payment,pvValue,1):calculateFV(rateValue,i-1,payment,pvValue,0);if(principal===0){canNotCalculate=!0;break}result+=typeValue===1?principal-payment:principal}return result*=rateValue,(result<payment*(endPeriodValue-startPeriodValue+1)||canNotCalculate)&&(result=payment*(endPeriodValue-startPeriodValue+1)),NumberValueObject.create(result)}};__name(_Cumipmt,"Cumipmt");let Cumipmt=_Cumipmt;const _Cumprinc=class _Cumprinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(result=typeValue===0?payment+pvValue*rateValue:payment,_startPeriodValue++);for(let i=_startPeriodValue;i<=endPeriodValue;i++)result+=typeValue===1?payment-(calculateFV(rateValue,i-2,payment,pvValue,1)-payment)*rateValue:payment-calculateFV(rateValue,i-1,payment,pvValue,0)*rateValue;return NumberValueObject.create(result)}};__name(_Cumprinc,"Cumprinc");let Cumprinc=_Cumprinc;const _Db=class _Db extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,month){let _month=month!=null?month:NumberValueObject.create(12);_month.isNull()&&(_month=NumberValueObject.create(12));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_month.isArray()?_month.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_month.isArray()?_month.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_month,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),monthObject=monthArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,monthObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_monthObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue();let periodValue=+_periodObject.getValue();const monthValue=Math.floor(+_monthObject.getValue());return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||monthValue<1||monthValue>12?ErrorValueObject.create(ErrorType$1.NUM):(periodValue<1&&(periodValue=1),periodValue=Math.floor(periodValue),this._getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex){const rate=+(1-(salvageValue/costValue)**(1/lifeValue)).toFixed(3),initial=costValue*rate*monthValue/12;let total=initial,current=0;const ceiling=periodValue===lifeValue?lifeValue-1:periodValue;for(let i=2;i<=ceiling;i++)current=(costValue-total)*rate,total+=current;let result;return periodValue===1?result=initial:periodValue===lifeValue?result=(costValue-total)*rate:result=current,Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}};__name(_Db,"Db");let Db=_Db;const _Ddb=class _Ddb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,factor){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_factor.isArray()?_factor.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,factorObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_factorObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),periodValue=Math.ceil(+_periodObject.getValue()),factorValue=+_factorObject.getValue();return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||factorValue<=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(costValue,salvageValue,lifeValue,periodValue,factorValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,factorValue,rowIndex,columnIndex){let total=0,result=0;if(salvageValue<costValue)for(let i=1;i<=periodValue;i++)result=Math.min((costValue-total)*(factorValue/lifeValue),costValue-salvageValue-total),total+=result;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}};__name(_Ddb,"Ddb");let Ddb=_Ddb;const _Disc=class _Disc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-prValue)/redemptionValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Disc,"Disc");let Disc=_Disc;const _Dollarde=class _Dollarde extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(fractionalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(fractionalDollar,fraction);if(isError)return errorObject;const[fractionalDollarObject,fractionObject]=variants,fractionalDollarValue=+fractionalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(fractionalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${fractionalDollarValue}`,10);result+=fractionalDollarValue%1*10**Math.ceil(Math.log(fractionValue)/Math.LN10)/fractionValue;const power=10**(Math.ceil(Math.log(fractionValue)/Math.LN2)+1);return result=Math.round(result*power)/power,NumberValueObject.create(result)}};__name(_Dollarde,"Dollarde");let Dollarde=_Dollarde;const _Dollarfr=class _Dollarfr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(decimalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(decimalDollar,fraction);if(isError)return errorObject;const[decimalDollarObject,fractionObject]=variants,decimalDollarValue=+decimalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(decimalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${decimalDollarValue}`,10);return result+=decimalDollarValue%1*10**-Math.ceil(Math.log(fractionValue)/Math.LN10)*fractionValue,NumberValueObject.create(result)}};__name(_Dollarfr,"Dollarfr");let Dollarfr=_Dollarfr;const _Effect=class _Effect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(nominalRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(nominalRate,npery);if(isError)return errorObject;const[nominalRateObject,nperyObject]=variants,nominalRateValue=+nominalRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(nominalRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nominalRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=(1+nominalRateValue/nperyValue)**nperyValue-1;return NumberValueObject.create(result)}};__name(_Effect,"Effect");let Effect=_Effect;const _Fv=class _Fv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,pv,type){const _pv=pv!=null?pv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_pv.isArray()?_pv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_pv.isArray()?_pv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_pv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,pvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_pvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),typeValue=+_typeObject.getValue(),result=calculateFV(rateValue,nperValue,pmtValue,pvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Fv,"Fv");let Fv=_Fv;const _Fvschedule=class _Fvschedule extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(principal,schedule){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(principal);if(isError)return errorObject;const[principalObject]=variants,principalValue=+principalObject.getValue();if(Number.isNaN(principalValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=principalValue;if(schedule.isArray()){const scheduleValues=schedule.getArrayValue().flat();for(let i=0;i<scheduleValues.length;i++){const scheduleObject=scheduleValues[i];if(scheduleObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+scheduleObject.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}}else{if(schedule.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+schedule.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}return NumberValueObject.create(result)}};__name(_Fvschedule,"Fvschedule");let Fvschedule=_Fvschedule;const _Intrate=class _Intrate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,investment,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-investmentValue)/investmentValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Intrate,"Intrate");let Intrate=_Intrate;const _Ipmt=class _Ipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ipmt,"Ipmt");let Ipmt=_Ipmt;const _Ispmt=class _Ispmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(rate,per,nper,pv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue();if(nperValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=pvValue*rateValue*(perValue/nperValue-1);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ispmt,"Ispmt");let Ispmt=_Ispmt;const _Nominal=class _Nominal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(effectRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(effectRate,npery);if(isError)return errorObject;const[effectRateObject,nperyObject]=variants,effectRateValue=+effectRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(effectRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(effectRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=((effectRateValue+1)**(1/nperyValue)-1)*nperyValue;return NumberValueObject.create(result)}};__name(_Nominal,"Nominal");let Nominal=_Nominal;const _Nper=class _Nper extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,pmt,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pmtObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_pmtObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();if(typeValue=typeValue?1:0,rateValue===0&&pmtValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);let result;if(rateValue===0)result=-(pvValue+fvValue)/pmtValue;else{const num=pmtValue*(1+rateValue*typeValue)-fvValue*rateValue,den=pvValue*rateValue+pmtValue*(1+rateValue*typeValue);result=Math.log(num/den)/Math.log(1+rateValue)}return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Nper,"Nper");let Nper=_Nper;const _Pmt=class _Pmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pmt,"Pmt");let Pmt=_Pmt;const _Ppmt=class _Ppmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue)||perValue-nperValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0)-calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ppmt,"Ppmt");let Ppmt=_Ppmt;const _Pv=class _Pv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();typeValue=typeValue?1:0;const result=rateValue===0?-pmtValue*nperValue-fvValue:((1-(1+rateValue)**nperValue)/rateValue*pmtValue*(1+rateValue*typeValue)-fvValue)/(1+rateValue)**nperValue;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pv,"Pv");let Pv=_Pv;const _Rate=class _Rate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pmt,pv,fv,type,guess){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),_guess=guess!=null?guess:NumberValueObject.create(.1),maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1,_guess.isArray()?_guess.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1,_guess.isArray()?_guess.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),guessArray=expandArrayValueObject(maxRowLength,maxColumnLength,_guess,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),guessObject=guessArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pmtObject,pvObject,fvObject,typeObject,guessObject);if(isError)return errorObject;const[_nperObject,_pmtObject,_pvObject,_fvObject,_typeObject,_guessObject]=variants,nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();const guessValue=+_guessObject.getValue();return typeValue=typeValue?1:0,nperValue<=0||pmtValue>=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex){let result=guessValue;for(let i=0;i<20;i++){if(result<=-1)return ErrorValueObject.create(ErrorType$1.NUM);let y,f;if(Math.abs(result)<1e-10?y=pvValue*(1+nperValue*result)+pmtValue*(1+result*typeValue)*nperValue+fvValue:(f=(1+result)**nperValue,y=pvValue*f+pmtValue*(1/result+typeValue)*(f-1)+fvValue),Math.abs(y)<1e-10)break;let dy;if(Math.abs(result)<1e-10)dy=pvValue*nperValue+pmtValue*typeValue*nperValue;else{f=(1+result)**nperValue;const df=nperValue*(1+result)**(nperValue-1);dy=pvValue*df+pmtValue*(1/result+typeValue)*df+pmtValue*(-1/(result*result))*(f-1)}result-=y/dy}return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}};__name(_Rate,"Rate");let Rate=_Rate;const functionFinancial=[[Accrint,FUNCTION_NAMES_FINANCIAL.ACCRINT],[Accrintm,FUNCTION_NAMES_FINANCIAL.ACCRINTM],[Amorlinc,FUNCTION_NAMES_FINANCIAL.AMORLINC],[Coupdaybs,FUNCTION_NAMES_FINANCIAL.COUPDAYBS],[Coupdays,FUNCTION_NAMES_FINANCIAL.COUPDAYS],[Coupdaysnc,FUNCTION_NAMES_FINANCIAL.COUPDAYSNC],[Coupncd,FUNCTION_NAMES_FINANCIAL.COUPNCD],[Coupnum,FUNCTION_NAMES_FINANCIAL.COUPNUM],[Couppcd,FUNCTION_NAMES_FINANCIAL.COUPPCD],[Cumipmt,FUNCTION_NAMES_FINANCIAL.CUMIPMT],[Cumprinc,FUNCTION_NAMES_FINANCIAL.CUMPRINC],[Db,FUNCTION_NAMES_FINANCIAL.DB],[Ddb,FUNCTION_NAMES_FINANCIAL.DDB],[Disc,FUNCTION_NAMES_FINANCIAL.DISC],[Dollarde,FUNCTION_NAMES_FINANCIAL.DOLLARDE],[Dollarfr,FUNCTION_NAMES_FINANCIAL.DOLLARFR],[Effect,FUNCTION_NAMES_FINANCIAL.EFFECT],[Fv,FUNCTION_NAMES_FINANCIAL.FV],[Fvschedule,FUNCTION_NAMES_FINANCIAL.FVSCHEDULE],[Intrate,FUNCTION_NAMES_FINANCIAL.INTRATE],[Ipmt,FUNCTION_NAMES_FINANCIAL.IPMT],[Ispmt,FUNCTION_NAMES_FINANCIAL.ISPMT],[Nominal,FUNCTION_NAMES_FINANCIAL.NOMINAL],[Nper,FUNCTION_NAMES_FINANCIAL.NPER],[Pmt,FUNCTION_NAMES_FINANCIAL.PMT],[Ppmt,FUNCTION_NAMES_FINANCIAL.PPMT],[Pv,FUNCTION_NAMES_FINANCIAL.PV],[Rate,FUNCTION_NAMES_FINANCIAL.RATE]];var FUNCTION_NAMES_INFORMATION=(FUNCTION_NAMES_INFORMATION2=>(FUNCTION_NAMES_INFORMATION2.CELL="CELL",FUNCTION_NAMES_INFORMATION2.ERROR_TYPE="ERROR.TYPE",FUNCTION_NAMES_INFORMATION2.INFO="INFO",FUNCTION_NAMES_INFORMATION2.ISBLANK="ISBLANK",FUNCTION_NAMES_INFORMATION2.ISERR="ISERR",FUNCTION_NAMES_INFORMATION2.ISERROR="ISERROR",FUNCTION_NAMES_INFORMATION2.ISEVEN="ISEVEN",FUNCTION_NAMES_INFORMATION2.ISFORMULA="ISFORMULA",FUNCTION_NAMES_INFORMATION2.ISLOGICAL="ISLOGICAL",FUNCTION_NAMES_INFORMATION2.ISNA="ISNA",FUNCTION_NAMES_INFORMATION2.ISNONTEXT="ISNONTEXT",FUNCTION_NAMES_INFORMATION2.ISNUMBER="ISNUMBER",FUNCTION_NAMES_INFORMATION2.ISODD="ISODD",FUNCTION_NAMES_INFORMATION2.ISOMITTED="ISOMITTED",FUNCTION_NAMES_INFORMATION2.ISREF="ISREF",FUNCTION_NAMES_INFORMATION2.ISTEXT="ISTEXT",FUNCTION_NAMES_INFORMATION2.N="N",FUNCTION_NAMES_INFORMATION2.NA="NA",FUNCTION_NAMES_INFORMATION2.SHEET="SHEET",FUNCTION_NAMES_INFORMATION2.SHEETS="SHEETS",FUNCTION_NAMES_INFORMATION2.TYPE="TYPE",FUNCTION_NAMES_INFORMATION2))(FUNCTION_NAMES_INFORMATION||{});const _Cell=class _Cell extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(infoType,reference){let _infoType=infoType;if(_infoType.isError())return _infoType;if(_infoType.isReferenceObject()&&(_infoType=_infoType.toArrayValueObject()),_infoType.isArray()){const rowCount=_infoType.getRowCount(),columnCount=_infoType.getColumnCount();if(rowCount===1&&columnCount===1){const infoTypeObject=_infoType.get(0,0);return this._handleSingleObject(infoTypeObject,reference)}return _infoType.map(infoTypeObject=>infoTypeObject.isError()?infoTypeObject:this._handleSingleObject(infoTypeObject,reference,!0))}return this._handleSingleObject(_infoType,reference)}_handleSingleObject(infoType,reference,infoTypeIsArray=!1){let _reference=reference;if(_reference.isError())return _reference;if(!_reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const currentActiveSheetData=_reference.getCurrentActiveSheetData(),{columnData,defaultColumnWidth}=currentActiveSheetData;_reference=_reference.toArrayValueObject();const _currentRow=_reference.getCurrentRow(),_currentColumn=_reference.getCurrentColumn();_reference=_reference.getFirstCell();const infoTypeValue=`${infoType.getValue()}`;let result;switch(infoTypeValue.toLocaleLowerCase()){case"address":return StringValueObject.create(`$${core.Tools.chatAtABC(_currentColumn)}$${_currentRow+1}`);case"col":return NumberValueObject.create(_currentColumn+1);case"color":return NumberValueObject.create(0);case"contents":return _reference;case"filename":return ErrorValueObject.create(ErrorType$1.VALUE);case"format":return StringValueObject.create("G");case"parentheses":return NumberValueObject.create(0);case"prefix":return StringValueObject.create("");case"protect":return NumberValueObject.create(1);case"row":return NumberValueObject.create(_currentRow+1);case"type":return result="v",_reference.isNull()&&(result="b"),_reference.isString()&&(result="l"),StringValueObject.create(result);case"width":return this._getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray);default:return ErrorValueObject.create(ErrorType$1.VALUE)}}_getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray){var _a24;let result=(_a24=columnData[_currentColumn])==null?void 0:_a24.w;if(!result&&result!==0&&(result=defaultColumnWidth),infoTypeIsArray)return NumberValueObject.create(result);const resultArray=[[result,result===defaultColumnWidth]];return ArrayValueObject.createByArray(resultArray)}};__name(_Cell,"Cell");let Cell=_Cell;const _ErrorType=class _ErrorType extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"_errorTypeValueMap",new Map([[ErrorType$1.NULL,1],[ErrorType$1.DIV_BY_ZERO,2],[ErrorType$1.VALUE,3],[ErrorType$1.REF,4],[ErrorType$1.NAME,5],[ErrorType$1.NUM,6],[ErrorType$1.NA,7],[ErrorType$1.CONNECT,8],[ErrorType$1.CALC,14]]))}calculate(errorVal){return errorVal.isArray()?errorVal.mapValue(errorValObject=>this._handleSingleObject(errorValObject)):this._handleSingleObject(errorVal)}_handleSingleObject(errorVal){const errorValValue=errorVal.getValue(),result=this._errorTypeValueMap.get(errorValValue);return result?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NA)}};__name(_ErrorType,"ErrorType");let ErrorType=_ErrorType;const _Isblank=class _Isblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNull()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNull()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isblank,"Isblank");let Isblank=_Isblank;const _Iserr=class _Iserr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserr,"Iserr");let Iserr=_Iserr;const _Iserror=class _Iserror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserror,"Iserror");let Iserror=_Iserror;const _Iseven=class _Iseven extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2===0;return BooleanValueObject.create(result)}};__name(_Iseven,"Iseven");let Iseven=_Iseven;const _Islogical=class _Islogical extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isBoolean()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isBoolean()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Islogical,"Islogical");let Islogical=_Islogical;const _Isna=class _Isna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isna,"Isna");let Isna=_Isna;const _Isnontext=class _Isnontext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return!value.isArray()&&!value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!1):BooleanValueObject.create(!0)):BooleanValueObject.create(!1)}};__name(_Isnontext,"Isnontext");let Isnontext=_Isnontext;const _Isnumber=class _Isnumber extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNumber()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNumber()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isnumber,"Isnumber");let Isnumber=_Isnumber;const _Isodd=class _Isodd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2!==0;return BooleanValueObject.create(result)}};__name(_Isodd,"Isodd");let Isodd=_Isodd;const _Isref=class _Isref extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(value){return value.isReferenceObject()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)}};__name(_Isref,"Isref");let Isref=_Isref;const _Istext=class _Istext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Istext,"Istext");let Istext=_Istext;const _Type=class _Type extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){if(value.isReferenceObject()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount===1&&columnCount===1){const _value=value.getFirstCell();if(_value.isError())return NumberValueObject.create(16);if(_value.isBoolean())return NumberValueObject.create(4);if(_value.isString())return NumberValueObject.create(2);if(_value.isNumber()||_value.isNull())return NumberValueObject.create(1)}else return NumberValueObject.create(64)}else{if(value.isArray())return NumberValueObject.create(64);if(value.isError())return NumberValueObject.create(16);if(value.isBoolean())return NumberValueObject.create(4);if(value.isString())return NumberValueObject.create(2);if(value.isNumber()||value.isNull())return NumberValueObject.create(1)}return NumberValueObject.create(128)}};__name(_Type,"Type");let Type=_Type;const functionInformation=[[Cell,FUNCTION_NAMES_INFORMATION.CELL],[ErrorType,FUNCTION_NAMES_INFORMATION.ERROR_TYPE],[Isblank,FUNCTION_NAMES_INFORMATION.ISBLANK],[Iserr,FUNCTION_NAMES_INFORMATION.ISERR],[Iserror,FUNCTION_NAMES_INFORMATION.ISERROR],[Iseven,FUNCTION_NAMES_INFORMATION.ISEVEN],[Islogical,FUNCTION_NAMES_INFORMATION.ISLOGICAL],[Isna,FUNCTION_NAMES_INFORMATION.ISNA],[Isnontext,FUNCTION_NAMES_INFORMATION.ISNONTEXT],[Isnumber,FUNCTION_NAMES_INFORMATION.ISNUMBER],[Isodd,FUNCTION_NAMES_INFORMATION.ISODD],[Isref,FUNCTION_NAMES_INFORMATION.ISREF],[Istext,FUNCTION_NAMES_INFORMATION.ISTEXT],[Type,FUNCTION_NAMES_INFORMATION.TYPE]];var FUNCTION_NAMES_LOGICAL=(FUNCTION_NAMES_LOGICAL2=>(FUNCTION_NAMES_LOGICAL2.AND="AND",FUNCTION_NAMES_LOGICAL2.BYCOL="BYCOL",FUNCTION_NAMES_LOGICAL2.BYROW="BYROW",FUNCTION_NAMES_LOGICAL2.FALSE="FALSE",FUNCTION_NAMES_LOGICAL2.IF="IF",FUNCTION_NAMES_LOGICAL2.IFERROR="IFERROR",FUNCTION_NAMES_LOGICAL2.IFNA="IFNA",FUNCTION_NAMES_LOGICAL2.IFS="IFS",FUNCTION_NAMES_LOGICAL2.LAMBDA="LAMBDA",FUNCTION_NAMES_LOGICAL2.LET="LET",FUNCTION_NAMES_LOGICAL2.MAKEARRAY="MAKEARRAY",FUNCTION_NAMES_LOGICAL2.MAP="MAP",FUNCTION_NAMES_LOGICAL2.NOT="NOT",FUNCTION_NAMES_LOGICAL2.OR="OR",FUNCTION_NAMES_LOGICAL2.REDUCE="REDUCE",FUNCTION_NAMES_LOGICAL2.SCAN="SCAN",FUNCTION_NAMES_LOGICAL2.SWITCH="SWITCH",FUNCTION_NAMES_LOGICAL2.TRUE="TRUE",FUNCTION_NAMES_LOGICAL2.XOR="XOR",FUNCTION_NAMES_LOGICAL2))(FUNCTION_NAMES_LOGICAL||{});const _And=class _And extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result&&!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result&&!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(result)}};__name(_And,"And");let And=_And;const _False=class _False extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!1)}};__name(_False,"False");let False=_False;const _If=class _If extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(logicalTest,valueIfTrue,valueIfFalse=BooleanValueObject.create(!1)){if(logicalTest.isError())return logicalTest;if(valueIfTrue.isError())return valueIfTrue;const _logicalTest=this._getSingleValueObject(logicalTest);if(!_logicalTest.isArray())return _logicalTest.getValue()?valueIfTrue:valueIfFalse;const maxRowLength=Math.max(_logicalTest.isArray()?_logicalTest.getRowCount():1,valueIfTrue.isArray()?valueIfTrue.getRowCount():1,valueIfFalse.isArray()?valueIfFalse.getRowCount():1),maxColumnLength=Math.max(_logicalTest.isArray()?_logicalTest.getColumnCount():1,valueIfTrue.isArray()?valueIfTrue.getColumnCount():1,valueIfFalse.isArray()?valueIfFalse.getColumnCount():1),logicalTestArray=expandArrayValueObject(maxRowLength,maxColumnLength,_logicalTest),valueIfTrueArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfTrue,ErrorValueObject.create(ErrorType$1.NA)),valueIfFalseArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfFalse,ErrorValueObject.create(ErrorType$1.NA));return logicalTestArray.map((logicalTestValue,rowIndex,columnIndex)=>{if(logicalTestValue.isNull())return ErrorValueObject.create(ErrorType$1.NA);{const valueIfTrueValue=valueIfTrueArray.get(rowIndex,columnIndex)||NullValueObject.create(),valueIfFalseValue=valueIfFalseArray.get(rowIndex,columnIndex)||NullValueObject.create();return this._calculateSingleCell(logicalTestValue,valueIfTrueValue,valueIfFalseValue)}})}_getSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?valueObject.getFirstCell():valueObject}_calculateSingleCell(logicalTest,valueIfTrue,valueIfFalse){return logicalTest.isNull()?ErrorValueObject.create(ErrorType$1.NA):logicalTest.getValue()?valueIfTrue.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfTrue:valueIfFalse.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfFalse}};__name(_If,"If");let If=_If;const _Iferror=class _Iferror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfError){if(value.isError())return value;if(valueIfError.isError())return valueIfError;if(!value.isArray())return value.isError()?valueIfError:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfError.isArray()?valueIfError.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfError.isArray()?valueIfError.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfErrorArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfError);return valueArray.iterator((value2,rowIndex,columnIndex)=>{value2!=null&&value2.isError()&&valueArray.set(rowIndex,columnIndex,valueIfErrorArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Iferror,"Iferror");let Iferror=_Iferror;const _Ifna=class _Ifna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfNa){if(value.isError()&&value.getErrorType()!==ErrorType$1.NA)return value;if(valueIfNa.isError())return valueIfNa;if(!value.isArray())return value.isError()&&value.getErrorType()===ErrorType$1.NA?valueIfNa:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfNa.isArray()?valueIfNa.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfNa.isArray()?valueIfNa.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfNaArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfNa);return valueArray.iterator((cellValue,rowIndex,columnIndex)=>{cellValue!=null&&cellValue.isError()&&cellValue.getErrorType()===ErrorType$1.NA&&valueArray.set(rowIndex,columnIndex,valueIfNaArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Ifna,"Ifna");let Ifna=_Ifna;const _Ifs=class _Ifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...params){if(params.length%2!==0)return ErrorValueObject.create(ErrorType$1.NA);for(let i=0;i<params.length;i++)if(params[i].isError())return params[i];const maxRowLength=Math.max(...params.map(param=>param.isArray()?param.getRowCount():1)),maxColumnLength=Math.max(...params.map(param=>param.isArray()?param.getColumnCount():1)),expandedParams=params.map(param=>expandArrayValueObject(maxRowLength,maxColumnLength,param,ErrorValueObject.create(ErrorType$1.NA))),resultArray=expandedParams[0].map((_,rowIndex,columnIndex)=>{for(let i=0;i<expandedParams.length;i+=2){const condition=expandedParams[i].get(rowIndex,columnIndex)||NullValueObject.create(),result=expandedParams[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(condition.isNull())continue;if(condition.isError())return condition;const conditionValue=condition.getValue();if(condition.isString()){if(`${conditionValue}`.toLocaleUpperCase()==="TRUE")return result;if(`${conditionValue}`.toLocaleUpperCase()==="FALSE")continue;return ErrorValueObject.create(ErrorType$1.VALUE)}if(+conditionValue)return result.isNull()?ErrorValueObject.create(ErrorType$1.NA):result}return ErrorValueObject.create(ErrorType$1.NA)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ifs,"Ifs");let Ifs=_Ifs;const _Lambda=class _Lambda extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lambda,"Lambda");let Lambda=_Lambda;const _Let=class _Let extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Let,"Let");let Let=_Let;const _Makearray=class _Makearray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(...variants){const row=this.getIndexNumValue(variants[0]);if(typeof row!="number")return row;const column=this.getIndexNumValue(variants[1]);if(typeof column!="number")return column;if(!(variants[2].isValueObject()&&variants[2].isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);const lambda=variants[2],result=[];for(let r=0;r<row;r++){result[r]==null&&(result[r]=[]);for(let c=0;c<column;c++){let value=lambda.execute(NumberValueObject.create(r+1),NumberValueObject.create(c+1));value.isArray()&&(value=value.get(0,0)),result[r][c]=value}}return new AsyncArrayObject(result)}isAsync(){return!0}};__name(_Makearray,"Makearray");let Makearray=_Makearray;const _Not=class _Not extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(logical){return logical.isArray()?logical.map(logicalObject=>this._handleSingleObject(logicalObject)):this._handleSingleObject(logical)}_handleSingleObject(logical){if(logical.isError())return logical;const logicalValue=+logical.getValue();return Number.isNaN(logicalValue)?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(!logicalValue)}};__name(_Not,"Not");let Not=_Not;const _Or=class _Or extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!1,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result||!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result||!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?new ErrorValueObject(ErrorType$1.VALUE):new BooleanValueObject(result)}};__name(_Or,"Or");let Or=_Or;const _Switch=class _Switch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3)}calculate(expression,...args){if(expression.isError())return expression;const hasDefault=args.length%2!==0,defaultValue=hasDefault?args[args.length-1]:NullValueObject.create();return!expression.isArray()&&!args.some(arg=>arg.isArray())?this._handleNonArrayInputs(expression,args,defaultValue,hasDefault):this._handleArrayInputs(expression,args,defaultValue,hasDefault)}_handleNonArrayInputs(expression,args,defaultValue,hasDefault){for(let i=0;i<args.length-(hasDefault?1:0);i+=2){const switchValue=args[i],resultValue=args[i+1];if(!switchValue.isNull()){if(switchValue.isError())return switchValue;if(`${expression.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}return defaultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultValue}_handleArrayInputs(expression,args,defaultValue,hasDefault){const maxRowLength=Math.max(expression.isArray()?expression.getRowCount():1,...args.map(arg=>arg.isArray()?arg.getRowCount():1),defaultValue.isArray()?defaultValue.getRowCount():1),maxColumnLength=Math.max(expression.isArray()?expression.getColumnCount():1,...args.map(arg=>arg.isArray()?arg.getColumnCount():1),defaultValue.isArray()?defaultValue.getColumnCount():1),expandedExpression=expandArrayValueObject(maxRowLength,maxColumnLength,expression),expandedArgs=args.map(arg=>expandArrayValueObject(maxRowLength,maxColumnLength,arg,ErrorValueObject.create(ErrorType$1.NA))),expandedDefault=expandArrayValueObject(maxRowLength,maxColumnLength,defaultValue,ErrorValueObject.create(ErrorType$1.NA));return expandedExpression.map((expValue,rowIndex,columnIndex)=>{for(let i=0;i<expandedArgs.length-(hasDefault?1:0);i+=2){const switchValue=expandedArgs[i].get(rowIndex,columnIndex)||NullValueObject.create(),resultValue=expandedArgs[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(!switchValue.isNull()){if(switchValue.isError()||expValue.isError())return switchValue.isError()?switchValue:expValue;if(`${expValue.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}const defaultCellValue=expandedDefault.get(rowIndex,columnIndex)||NullValueObject.create();return defaultCellValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultCellValue})}};__name(_Switch,"Switch");let Switch=_Switch;const _True=class _True extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!0)}};__name(_True,"True");let True=_True;const _Xor=class _Xor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let trueCount=0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(value.getValue()&&trueCount++,noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(logicalValue.getValue()&&trueCount++,noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(trueCount%2===1)}};__name(_Xor,"Xor");let Xor=_Xor;const functionLogical=[[And,FUNCTION_NAMES_LOGICAL.AND],[False,FUNCTION_NAMES_LOGICAL.FALSE],[If,FUNCTION_NAMES_LOGICAL.IF],[Iferror,FUNCTION_NAMES_LOGICAL.IFERROR],[Ifna,FUNCTION_NAMES_LOGICAL.IFNA],[Ifs,FUNCTION_NAMES_LOGICAL.IFS],[Lambda,FUNCTION_NAMES_LOGICAL.LAMBDA],[Let,FUNCTION_NAMES_LOGICAL.LET],[Makearray,FUNCTION_NAMES_LOGICAL.MAKEARRAY],[Not,FUNCTION_NAMES_LOGICAL.NOT],[Or,FUNCTION_NAMES_LOGICAL.OR],[Switch,FUNCTION_NAMES_LOGICAL.SWITCH],[True,FUNCTION_NAMES_LOGICAL.TRUE],[Xor,FUNCTION_NAMES_LOGICAL.XOR]];var FUNCTION_NAMES_LOOKUP=(FUNCTION_NAMES_LOOKUP2=>(FUNCTION_NAMES_LOOKUP2.ADDRESS="ADDRESS",FUNCTION_NAMES_LOOKUP2.AREAS="AREAS",FUNCTION_NAMES_LOOKUP2.CHOOSE="CHOOSE",FUNCTION_NAMES_LOOKUP2.CHOOSECOLS="CHOOSECOLS",FUNCTION_NAMES_LOOKUP2.CHOOSEROWS="CHOOSEROWS",FUNCTION_NAMES_LOOKUP2.COLUMN="COLUMN",FUNCTION_NAMES_LOOKUP2.COLUMNS="COLUMNS",FUNCTION_NAMES_LOOKUP2.DROP="DROP",FUNCTION_NAMES_LOOKUP2.EXPAND="EXPAND",FUNCTION_NAMES_LOOKUP2.FILTER="FILTER",FUNCTION_NAMES_LOOKUP2.FORMULATEXT="FORMULATEXT",FUNCTION_NAMES_LOOKUP2.GETPIVOTDATA="GETPIVOTDATA",FUNCTION_NAMES_LOOKUP2.HLOOKUP="HLOOKUP",FUNCTION_NAMES_LOOKUP2.HSTACK="HSTACK",FUNCTION_NAMES_LOOKUP2.HYPERLINK="HYPERLINK",FUNCTION_NAMES_LOOKUP2.IMAGE="IMAGE",FUNCTION_NAMES_LOOKUP2.INDEX="INDEX",FUNCTION_NAMES_LOOKUP2.INDIRECT="INDIRECT",FUNCTION_NAMES_LOOKUP2.LOOKUP="LOOKUP",FUNCTION_NAMES_LOOKUP2.MATCH="MATCH",FUNCTION_NAMES_LOOKUP2.OFFSET="OFFSET",FUNCTION_NAMES_LOOKUP2.ROW="ROW",FUNCTION_NAMES_LOOKUP2.ROWS="ROWS",FUNCTION_NAMES_LOOKUP2.RTD="RTD",FUNCTION_NAMES_LOOKUP2.SORT="SORT",FUNCTION_NAMES_LOOKUP2.SORTBY="SORTBY",FUNCTION_NAMES_LOOKUP2.TAKE="TAKE",FUNCTION_NAMES_LOOKUP2.TOCOL="TOCOL",FUNCTION_NAMES_LOOKUP2.TOROW="TOROW",FUNCTION_NAMES_LOOKUP2.TRANSPOSE="TRANSPOSE",FUNCTION_NAMES_LOOKUP2.UNIQUE="UNIQUE",FUNCTION_NAMES_LOOKUP2.VLOOKUP="VLOOKUP",FUNCTION_NAMES_LOOKUP2.VSTACK="VSTACK",FUNCTION_NAMES_LOOKUP2.WRAPCOLS="WRAPCOLS",FUNCTION_NAMES_LOOKUP2.WRAPROWS="WRAPROWS",FUNCTION_NAMES_LOOKUP2.XLOOKUP="XLOOKUP",FUNCTION_NAMES_LOOKUP2.XMATCH="XMATCH",FUNCTION_NAMES_LOOKUP2))(FUNCTION_NAMES_LOOKUP||{});const _Address=class _Address extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",5)}calculate(rowNumber,columnNumber,absNumber,a1,sheetText){if(rowNumber.isError())return rowNumber;if(columnNumber.isError())return columnNumber;if(absNumber!=null&&absNumber.isError())return absNumber;if(a1!=null&&a1.isError())return a1;if(sheetText!=null&&sheetText.isError())return sheetText;const _absNumber=absNumber!=null?absNumber:NumberValueObject.create(1),_a1=a1!=null?a1:BooleanValueObject.create(!0),_sheetText=sheetText!=null?sheetText:StringValueObject.create(""),maxRowLength=Math.max(rowNumber.isArray()?rowNumber.getRowCount():1,columnNumber.isArray()?columnNumber.getRowCount():1,_absNumber.isArray()?_absNumber.getRowCount():1,_a1.isArray()?_a1.getRowCount():1,_sheetText.isArray()?_sheetText.getRowCount():1),maxColumnLength=Math.max(rowNumber.isArray()?rowNumber.getColumnCount():1,columnNumber.isArray()?columnNumber.getColumnCount():1,_absNumber.isArray()?_absNumber.getColumnCount():1,_a1.isArray()?_a1.getColumnCount():1,_sheetText.isArray()?_sheetText.getColumnCount():1),rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,rowNumber,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,columnNumber,ErrorValueObject.create(ErrorType$1.NA)),absNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_absNumber,ErrorValueObject.create(ErrorType$1.NA)),a1Array=expandArrayValueObject(maxRowLength,maxColumnLength,_a1,ErrorValueObject.create(ErrorType$1.NA)),sheetTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,_sheetText,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),absNumValue=absNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),a1Value=a1Array.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),sheetTextValue=sheetTextArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA);return rowNumValue.isError()?rowNumValue:columnNumValue.isError()?columnNumValue:absNumValue.isError()?absNumValue:a1Value.isError()?a1Value:sheetTextValue.isError()?sheetTextValue:this._calculateSingleCell(rowNumValue,columnNumValue,absNumValue,a1Value,sheetTextValue)})}_calculateSingleCell(rowNumber,columnNumber,absNumber,a1,sheetText){const row=Number.parseInt(`${Number(rowNumber.getValue())-1}`),column=Number.parseInt(`${Number(columnNumber.getValue())-1}`),absNumberValue=Number.parseInt(`${Number(absNumber.getValue())}`);if(Number.isNaN(row)||Number.isNaN(column)||Number.isNaN(absNumberValue)||absNumberValue<1||absNumberValue>4)return ErrorValueObject.create(ErrorType$1.VALUE);const absType=transformAbsoluteRefType(absNumberValue),a1Value=this.getZeroOrOneByOneDefault(a1),sheetTextValue=`${sheetText.getValue()}`,sheetName=needsQuoting(sheetTextValue)?`'${sheetTextValue}'`:sheetTextValue,range={startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absType,endAbsoluteRefType:absType},rangeString=a1&&!a1Value?serializeRangeToR1C1(range):serializeRange(range);return StringValueObject.create(sheetName!==""?`${sheetName}!${rangeString}`:rangeString)}};__name(_Address,"Address");let Address=_Address;function transformAbsoluteRefType(number){switch(number){case 1:return core.AbsoluteRefType.ALL;case 2:return core.AbsoluteRefType.ROW;case 3:return core.AbsoluteRefType.COLUMN;case 4:return core.AbsoluteRefType.NONE;default:return core.AbsoluteRefType.ALL}}__name(transformAbsoluteRefType,"transformAbsoluteRefType");const _Areas=class _Areas extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){return reference.isReferenceObject()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Areas,"Areas");let Areas=_Areas;const _Choose=class _Choose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(indexNum,...variants){let _indexNum=indexNum;if(_indexNum.isError())return _indexNum;if(_indexNum.isReferenceObject()&&(_indexNum=_indexNum.toArrayValueObject()),!_indexNum.isArray()){const index=_indexNum.convertToNumberObjectValue();return index.isError()?index:variants[Math.trunc(+index.getValue())-1]||ErrorValueObject.create(ErrorType$1.VALUE)}let maxRowLength=_indexNum.isArray()?_indexNum.getRowCount():1,maxColumnLength=_indexNum.isArray()?_indexNum.getColumnCount():1;variants.forEach((variant,i)=>{if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});const indexNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_indexNum,ErrorValueObject.create(ErrorType$1.NA)),arrayValueObjectList=variants.map(variant=>{let _variant=variant;return _variant.isReferenceObject()&&(_variant=_variant.toArrayValueObject()),expandArrayValueObject(maxRowLength,maxColumnLength,_variant,ErrorValueObject.create(ErrorType$1.NA))});return indexNumArray.map((indexNumValue,row,column)=>{if(indexNumValue.isError())return indexNumValue;const index=indexNumValue.convertToNumberObjectValue();if(index.isError())return index;const arrayValueObject=arrayValueObjectList[Math.trunc(+index.getValue())-1];let valueObject=(arrayValueObject==null?void 0:arrayValueObject.get(row,column))||ErrorValueObject.create(ErrorType$1.VALUE);return valueObject!=null&&valueObject.isNull()&&(valueObject=NumberValueObject.create(0)),valueObject})}};__name(_Choose,"Choose");let Choose=_Choose;const _Choosecols=class _Choosecols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchColArray=array;arrayColumnCount>1&&(variantValue<0?searchColArray=array.slice(void 0,[variantValue+arrayColumnCount,variantValue+1+arrayColumnCount]):searchColArray=array.slice(void 0,[variantValue-1,variantValue]));for(let r=0;r<arrayRowCount;r++)result[r]||(result[r]=[]),array.isArray()?result[r].push(searchColArray.get(r,0)):result[r].push(array)}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Choosecols,"Choosecols");let Choosecols=_Choosecols;const _Chooserows=class _Chooserows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchRowArray=array;arrayRowCount>1&&(variantValue<0?searchRowArray=array.slice([variantValue+arrayRowCount,variantValue+1+arrayRowCount]):searchRowArray=array.slice([variantValue-1,variantValue])),array.isArray()?result.push(searchRowArray.getArrayValue()[0]):result.push([array])}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Chooserows,"Chooserows");let Chooserows=_Chooserows;const _Column=class _Column extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.column+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const column=reference.getCurrentColumn(),columnCount=reference.getColumnCount(),calculateValueList=[];for(let i=0;i<columnCount;i++)calculateValueList.push(NumberValueObject.create(column+i+1));const arrayValueObjectData={calculateValueList:[calculateValueList],rowCount:1,columnCount,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Column,"Column");let Column=_Column;const _Columns=class _Columns extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const columnCount=reference.getColumnCount();return NumberValueObject.create(columnCount)}};__name(_Columns,"Columns");let Columns=_Columns;const _Filter=class _Filter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,include,ifEmpty){const _ifEmpty=ifEmpty!=null?ifEmpty:ErrorValueObject.create(ErrorType$1.CALC);if(array.isError())return array;if(include.isError())return include;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,includeRowCount=include.isArray()?include.getRowCount():1,includeColumnCount=include.isArray()?include.getColumnCount():1;return includeRowCount>1&&includeColumnCount>1||includeRowCount===1&&includeColumnCount!==arrayColumnCount||includeColumnCount===1&&includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):arrayRowCount===1&&arrayColumnCount===1?this._getResultArrayByR1C1(array,include,_ifEmpty):includeRowCount===1?includeColumnCount!==arrayColumnCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):includeColumnCount===1?includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):_ifEmpty}_getResultArrayByR1C1(array,include,ifEmpty){let _array=array,_include=include;return _array.isArray()&&(_array=_array.get(0,0)),_include.isArray()&&(_include=_include.get(0,0)),_include.isString()&&(_include=_include.convertToNumberObjectValue()),_include.isError()?_include:+_include.getValue()?_array:ifEmpty}_getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let c=0;c<arrayColumnCount;c++){let includeObject=include.get(0,c);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(+includeObject.getValue())for(let r=0;r<arrayRowCount;r++){resultArray[r]||(resultArray[r]=[]);const arrayObject=array.get(r,c);resultArray[r].push(arrayObject)}}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let r=0;r<arrayRowCount;r++){let includeObject=include.get(r,0);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(!+includeObject.getValue())continue;const row=[];for(let c=0;c<arrayColumnCount;c++){const arrayObject=array.get(r,c);row.push(arrayObject)}resultArray.push(row)}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Filter,"Filter");let Filter=_Filter;const _Hlookup=class _Hlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,rowIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!tableArray.isArray()||rowIndexNum.isError()||rangeLookup!=null&&rangeLookup.isError())return ErrorValueObject.create(ErrorType$1.NA);const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);const rowIndexNumValue=this.getIndexNumValue(rowIndexNum);if(rowIndexNumValue instanceof ErrorValueObject)return rowIndexNumValue;const searchArray=tableArray.slice([0,1]),resultArray=tableArray.slice([rowIndexNumValue-1,rowIndexNumValue]);return searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.REF):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,searchArray,resultArray,rangeLookupValue)):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Hlookup,"Hlookup");let Hlookup=_Hlookup;const _Hstack=class _Hstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxRowLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getRowCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<maxRowLength;r++){result[r]||(result[r]=[]);for(let c=0;c<columnCount;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),r>rowCount-1||!singleObject?result[r].push(ErrorValueObject.create(ErrorType$1.NA)):result[r].push(singleObject)}}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Hstack,"Hstack");let Hstack=_Hstack;const _Indirect=class _Indirect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}isAddress(){return!0}calculate(refText,a1){if(refText.isError())return refText;if(a1!=null&&a1.isError())return a1;let a1Value=this.getZeroOrOneByOneDefault(a1);a1Value==null&&(a1Value=1);let _refText=refText;if(refText.isArray()){const rowCount=refText.getRowCount(),columnCount=refText.getColumnCount();if(rowCount>1||columnCount>1)return refText.map(()=>ErrorValueObject.create(ErrorType$1.VALUE));_refText=refText.getFirstCell()}return this._handleSingleObject(_refText,a1Value)}_handleSingleObject(refTextObject,a1Value){const refTextValue=`${refTextObject.getValue()}`;if(refTextValue.trim()==="")return ErrorValueObject.create(ErrorType$1.REF);const refTextV=this._convertToDefinedName(refTextValue);if(a1Value===0){const gridRange2=deserializeRangeForR1C1(refTextV),{range:range2,sheetName:sheetName2,unitId:unitId2}=gridRange2,rangeReferenceObject2=new RangeReferenceObject(range2);return rangeReferenceObject2.setForcedUnitIdDirect(unitId2),rangeReferenceObject2.setForcedSheetName(sheetName2),this._setDefault(rangeReferenceObject2)}if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(refTextV))return this._setDefault(new CellReferenceObject(refTextV));if(new RegExp(REFERENCE_REGEX_ROW).test(refTextV))return this._setDefault(new RowReferenceObject(refTextV));if(new RegExp(REFERENCE_REGEX_COLUMN).test(refTextV))return this._setDefault(new ColumnReferenceObject(refTextV));const gridRange=deserializeRangeWithSheet(refTextV),{range,sheetName,unitId}=gridRange;if(Number.isNaN(range.startRow)||range.endRow+1>1048576||Number.isNaN(range.startColumn)||range.endColumn+1>16384)return ErrorValueObject.create(ErrorType$1.REF);const rangeReferenceObject=new RangeReferenceObject(range);return rangeReferenceObject.setForcedUnitIdDirect(unitId),rangeReferenceObject.setForcedSheetName(sheetName),this._setDefault(rangeReferenceObject)}_setDefault(object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object)}_convertToDefinedName(refText){const definedName=this.getDefinedName(refText);if(definedName==null)return refText;const formulaOrRefString=definedName.formulaOrRefString;return formulaOrRefString==null?refText:formulaOrRefString.startsWith(operatorToken.EQUALS)?formulaOrRefString.slice(1):formulaOrRefString}};__name(_Indirect,"Indirect");let Indirect=_Indirect;const _Lookup=class _Lookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsExpandParams",!0)}calculate(lookupValue,lookupVectorOrArray,resultVector){return lookupValue.isError()?lookupValue:lookupVectorOrArray.isError()?ErrorValueObject.create(ErrorType$1.REF):lookupVectorOrArray.isArray()?resultVector!=null&&resultVector.isError()?resultVector:lookupVectorOrArray.getColumnCount()===1||lookupVectorOrArray.getRowCount()===1?resultVector!=null&&!resultVector.isArray()?ErrorValueObject.create(ErrorType$1.REF):this._handleVector(lookupValue,lookupVectorOrArray,resultVector):this._handleArray(lookupValue,lookupVectorOrArray):ErrorValueObject.create(ErrorType$1.VALUE)}_handleVector(lookupValue,lookupVector,resultVector){let _resultVector=resultVector;if(_resultVector==null)_resultVector=lookupVector;else if(_resultVector.getRowCount()!==lookupVector.getRowCount()||_resultVector.getColumnCount()!==lookupVector.getColumnCount())return ErrorValueObject.create(ErrorType$1.REF);return lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,lookupVector,_resultVector)):this.binarySearch(lookupValue,lookupVector,_resultVector)}_handleArray(lookupValue,lookupArray){const rowCount=lookupArray.getRowCount(),columnCount=lookupArray.getColumnCount();let searchArray,resultArray;return columnCount>rowCount?(searchArray=lookupArray.slice([0,1]),resultArray=lookupArray.slice([rowCount-1,rowCount])):(searchArray=lookupArray.slice(void 0,[0,1]),resultArray=lookupArray.slice(void 0,[columnCount-1,columnCount])),searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,searchArray,resultArray)):this.binarySearch(lookupValue,searchArray,resultArray)}};__name(_Lookup,"Lookup");let Lookup=_Lookup;const _Match=class _Match extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(lookupValue,lookupArray,matchType){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||matchType!=null&&matchType.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchTypeValue=this.getMatchTypeValue(matchType);return matchTypeValue==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchTypeValue)):this._handleSingleObject(lookupValue,lookupArray,matchTypeValue)}_handleSingleObject(value,searchArray,matchTypeValue){const searchType=this._getSearchModeValue(matchTypeValue),result=searchArray.orderSearch(value,searchType);if(result==null)return ErrorValueObject.create(ErrorType$1.NA);if(result instanceof ErrorValueObject)return result;const resultNumber=searchArray.getRowCount()===1?result.column+1:result.row+1;return NumberValueObject.create(resultNumber)}_getSearchModeValue(searchModeValue){switch(searchModeValue){case 1:return ArrayOrderSearchType.MIN;case 0:return ArrayOrderSearchType.NORMAL;case-1:return ArrayOrderSearchType.MAX}}};__name(_Match,"Match");let Match=_Match;const _Offset=class _Offset extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(reference,rows,columns,height,width){if(reference.isError())return reference;if(rows.isError())return rows;if(columns.isError())return columns;if(height!=null&&height.isError())return height;if(width!=null&&width.isError())return width;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCount=reference.getRowCount(),columnCount=reference.getColumnCount();let _rows=rows;_rows.isReferenceObject()&&(_rows=_rows.toArrayValueObject());let _columns=columns;_columns.isReferenceObject()&&(_columns=_columns.toArrayValueObject());let _height=height;_height?_height.isReferenceObject()&&(_height=_height.toArrayValueObject()):_height=NumberValueObject.create(rowCount);let _width=width;_width?_width.isReferenceObject()&&(_width=_width.toArrayValueObject()):_width=NumberValueObject.create(columnCount);const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_height.isArray()?_height.getRowCount():1,_width.isArray()?_width.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_height.isArray()?_height.getColumnCount():1,_width.isArray()?_width.getColumnCount():1);if(_rows=_rows,_columns=_columns,_height=_height,_width=_width,maxRowLength===1&&maxColumnLength===1)return this._handleSingleObject(reference,_rows,_columns,_height,_width);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),heightArray=expandArrayValueObject(maxRowLength,maxColumnLength,_height,ErrorValueObject.create(ErrorType$1.NA)),widthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_width,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.mapValue((rowsValue,rowIndex,columnIndex)=>{const columnsValue=columnsArray.get(rowIndex,columnIndex),heightValue=heightArray.get(rowIndex,columnIndex),widthValue=widthArray.get(rowIndex,columnIndex);return rowsValue.isError()?rowsValue:columnsValue.isError()?columnsValue:heightValue.isError()?heightValue:widthValue.isError()?widthValue:this._handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,!0)})}_handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,isReportError=!1){const{startRow:referenceStartRow,startColumn:referenceStartColumn}=reference.getRangeData(),rowOffset=this.getIndexNumValue(rowsValue),columnOffset=this.getIndexNumValue(columnsValue);if(typeof rowOffset!="number"||typeof columnOffset!="number")return ErrorValueObject.create(ErrorType$1.VALUE);const targetRow=referenceStartRow+rowOffset,targetColumn=referenceStartColumn+columnOffset;if(targetRow<0||targetColumn<0)return ErrorValueObject.create(ErrorType$1.REF);const heightCount=this.getIndexNumValue(heightValue),widthCount=this.getIndexNumValue(widthValue);if(typeof heightCount!="number"||typeof widthCount!="number")return ErrorValueObject.create(ErrorType$1.VALUE);if(heightCount===0||widthCount===0)return ErrorValueObject.create(ErrorType$1.REF);const targetRowWithHeight=heightCount>0?targetRow+heightCount-1:targetRow+heightCount+1,targetColumnWithWidth=widthCount>0?targetColumn+widthCount-1:targetColumn+widthCount+1;if(targetRowWithHeight<0||targetColumnWithWidth<0)return ErrorValueObject.create(ErrorType$1.REF);if(isReportError)return ErrorValueObject.create(ErrorType$1.VALUE);const startRow=targetRow<targetRowWithHeight?targetRow:targetRowWithHeight,startColumn=targetColumn<targetColumnWithWidth?targetColumn:targetColumnWithWidth,endRow=targetRow>targetRowWithHeight?targetRow:targetRowWithHeight,endColumn=targetColumn>targetColumnWithWidth?targetColumn:targetColumnWithWidth,range={startRow,startColumn,endRow,endColumn};return this.createReferenceObject(reference,range)}};__name(_Offset,"Offset");let Offset=_Offset;const _Row=class _Row extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.row+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const row=reference.getCurrentRow(),rowCount=reference.getRowCount(),calculateValueList=[];for(let i=0;i<rowCount;i++)calculateValueList.push([NumberValueObject.create(row+i+1)]);const arrayValueObjectData={calculateValueList,rowCount,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Row,"Row");let Row=_Row;const _Rows=class _Rows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const rowCount=reference.getRowCount();return NumberValueObject.create(rowCount)}};__name(_Rows,"Rows");let Rows=_Rows;const _Sort=class _Sort extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(array,sortIndex,sortOrder,byCol){const _sortIndex=sortIndex!=null?sortIndex:NumberValueObject.create(1),_sortOrder=sortOrder!=null?sortOrder:NumberValueObject.create(1),_byCol=byCol!=null?byCol:BooleanValueObject.create(!1);if(_byCol.isArray()){const byColRowCount=_byCol.getRowCount(),byColColumnCount=_byCol.getColumnCount();if(byColRowCount===1&&byColColumnCount===1){const byColObject=_byCol.get(0,0);return this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject)}return _byCol.map(byColObject=>{const result=this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject);return result.isArray()?result.get(0,0):result})}return this._handleSingleObject(array,_sortIndex,_sortOrder,_byCol)}_handleSingleObject(array,sortIndex,sortOrder,byCol){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,_sortIndex=this._checkArrayError(sortIndex);if(_sortIndex.isError())return _sortIndex;const sortIndexValue=Math.floor(+_sortIndex.getValue());if(sortIndexValue<1)return ErrorValueObject.create(ErrorType$1.VALUE);const _sortOrder=this._checkArrayError(sortOrder);if(_sortOrder.isError())return _sortOrder;const sortOrderValue=Math.floor(+_sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1)return ErrorValueObject.create(ErrorType$1.VALUE);let _byCol=byCol;if(_byCol.isString()&&(_byCol=_byCol.convertToNumberObjectValue()),_byCol.isError())return _byCol;if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1)return array;const byColValue=+_byCol.getValue();return this._getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant}_getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount){if(byColValue){if(sortIndexValue>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.transpose().getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(sortIndexValue>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(sortIndex,sortOrder=1){const compare=getCompare();return sortOrder===1?this._sortAsc(sortIndex,compare):this._sortDesc(sortIndex,compare)}_sortAsc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}}_sortDesc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}}};__name(_Sort,"Sort");let Sort=_Sort;const _Sortby=class _Sortby extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){variants.length===1&&variants.push(NumberValueObject.create(1));const variantsError=this._getVariantsError(array,...variants),{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants);if(variantsError.isError()){const expandArray=expandArrayValueObject(maxRowLength,maxColumnLength,variantsError);return maxRowLength===1&&maxColumnLength===1?expandArray.get(0,0):expandArray}const _variants=variants.map((variant,index)=>index%2===0?variant:expandArrayValueObject(maxRowLength,maxColumnLength,variant,ErrorValueObject.create(ErrorType$1.NA))),resultArray=this._getResultArray(array,_variants,maxRowLength,maxColumnLength);return maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(array,...variants){if(array.isError())return array;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant}if(variants.length<2||variants.length%2!==0)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1;if((byArray1RowCount>1||byArray1ColumnCount>1)&&(byArray1RowCount>1&&byArray1ColumnCount>1||byArray1RowCount===1&&byArray1ColumnCount!==arrayColumnCount||byArray1ColumnCount===1&&byArray1RowCount!==arrayRowCount))return ErrorValueObject.create(ErrorType$1.VALUE);for(let i=2;i<variants.length;i++){if(i%2===1)continue;const byArrayRowCount=variants[i].isArray()?variants[i].getRowCount():1,byArrayColumnCount=variants[i].isArray()?variants[i].getColumnCount():1;if(byArrayRowCount!==byArray1RowCount||byArrayColumnCount!==byArray1ColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE)}return BooleanValueObject.create(!0)}_getResultArray(array,variants,maxRowLength,maxColumnLength){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1,resultArray=[];for(let r=0;r<maxRowLength;r++){resultArray[r]=[];for(let c=0;c<maxColumnLength;c++){const{isError,errorObject,byArrays,sortOrders}=this._getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount);if(isError){resultArray[r].push(errorObject);continue}if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1){resultArray[r].push(array);continue}let arrayValue=array.getArrayValue();byArray1RowCount===1&&byArray1ColumnCount===1||(byArray1RowCount===1?(arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayRowCount,sortOrders)),arrayValue=this._transposeArray(arrayValue).slice(0,arrayRowCount)):byArray1ColumnCount===1&&(arrayValue=this._transposeArray(arrayValue),arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayColumnCount,sortOrders)),arrayValue=arrayValue.map(row=>row.slice(0,arrayColumnCount))));const result=ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(maxRowLength>1||maxColumnLength>1){resultArray[r].push(result.get(0,0));continue}resultArray[r].push(result)}}return resultArray}_getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount){const byArrays=[],sortOrders=[];let isError=!1,errorObject=null;for(let i=0;i<variants.length;i++){if(i%2===1)continue;const byArray=variants[i];let sortOrder=variants[i+1].get(r,c);if(sortOrder.isString()&&(sortOrder=sortOrder.convertToNumberObjectValue()),sortOrder.isError()){isError=!0,errorObject=sortOrder;break}const sortOrderValue=Math.floor(+sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1){isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);break}if(sortOrders.push(sortOrderValue),byArray.isArray()){let byArrayValue=byArray.getArrayValue();byArray1ColumnCount===1&&(byArrayValue=this._transposeArray(byArrayValue)),byArrays.push(byArrayValue[0])}else byArrays.push([byArray])}return{isError,errorObject,byArrays,sortOrders}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_sort(sortIndex,sortOrders){const compare=getCompare();return(a,b)=>{let columnA=a[sortIndex],columnB=b[sortIndex],result=this._compare(columnA,columnB,sortOrders[0],compare);if(result===0&&sortOrders.length>1){for(let i=1;i<sortOrders.length;i++)if(columnA=a[sortIndex+i],columnB=b[sortIndex+i],result=this._compare(columnA,columnB,sortOrders[i],compare),result!==0)return result}return result}}_compare(columnA,columnB,sortOrder,compare){return sortOrder===1?this._asc(columnA,columnB,compare):this._desc(columnA,columnB,compare)}_asc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}_desc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}};__name(_Sortby,"Sortby");let Sortby=_Sortby;const _Transpose=class _Transpose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){if(array.isError())return array;if(array.isArray()){const rowCount=array.getRowCount(),columnCount=array.getColumnCount();return rowCount===1&&columnCount===1?array.get(0,0):array.transpose()}return array}};__name(_Transpose,"Transpose");let Transpose=_Transpose;const _Unique=class _Unique extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,byCol,exactlyOnce){const _byCol=byCol!=null?byCol:BooleanValueObject.create(!1),_exactlyOnce=exactlyOnce!=null?exactlyOnce:BooleanValueObject.create(!1),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(_byCol.isArray()?_byCol.getRowCount():1,_exactlyOnce.isArray()?_exactlyOnce.getRowCount():1),maxColumnLength=Math.max(_byCol.isArray()?_byCol.getColumnCount():1,_exactlyOnce.isArray()?_exactlyOnce.getColumnCount():1),byColArray=expandArrayValueObject(maxRowLength,maxColumnLength,_byCol,ErrorValueObject.create(ErrorType$1.NA)),exactlyOnceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_exactlyOnce,ErrorValueObject.create(ErrorType$1.NA)),resultArray=byColArray.map((byColObject,rowIndex,columnIndex)=>{let _byColObject=byColObject,exactlyOnceObject=exactlyOnceArray.get(rowIndex,columnIndex);if(array.isError())return array;if(_byColObject.isString()&&(_byColObject=_byColObject.convertToNumberObjectValue()),_byColObject.isError())return _byColObject;if(exactlyOnceObject.isString()&&(exactlyOnceObject=exactlyOnceObject.convertToNumberObjectValue()),exactlyOnceObject.isError())return exactlyOnceObject;const byColValue=+_byColObject.getValue(),exactlyOnceValue=+exactlyOnceObject.getValue();let result;return!byColValue&&arrayRowCount===1||byColValue&&arrayColumnCount===1?result=array:result=this._getResult(array,byColValue,exactlyOnceValue),(maxRowLength>1||maxColumnLength>1)&&(result!=null&&result.isArray())?result.get(0,0):result});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(array,byColValue,exactlyOnceValue){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let arrayValue=array.getArrayValue(),arrayRows=arrayRowCount,arrayColumns=arrayColumnCount;byColValue&&(arrayValue=this._transposeArray(arrayValue),arrayRows=arrayColumnCount,arrayColumns=arrayRowCount);const repeatRows=this._getRepeatRows(arrayValue,arrayRows,arrayColumns);if(repeatRows.length>0){const spliceRows=[];repeatRows.forEach(rows=>{rows.forEach((r,index)=>{(index!==0||exactlyOnceValue)&&spliceRows.push(r)})}),arrayValue=arrayValue.filter((row,rowIndex)=>!spliceRows.includes(rowIndex))}return arrayValue.length===0?ErrorValueObject.create(ErrorType$1.CALC):(byColValue&&(arrayValue=this._transposeArray(arrayValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(arrayValue,arrayRows,arrayColumns){let repeatRows=[];for(let c=0;c<arrayColumns;c++)if(c===0){const objects=new Array(arrayRows).fill(null).map((item,index)=>({r:index,valueObject:arrayValue[index][c]}));repeatRows=this._getRepeatRowsByObjects(objects)}else{if(repeatRows.length===0)break;let newRepeatRows=[];repeatRows.forEach(item=>{const objects=item.map(r=>({r,valueObject:arrayValue[r][c]})),_repeatRows=this._getRepeatRowsByObjects(objects);newRepeatRows=newRepeatRows.concat(_repeatRows)}),repeatRows=newRepeatRows}return repeatRows}_getRepeatRowsByObjects(objects){const valueMap=new Map;return objects.forEach(item=>{const r=item.r,valueObject=item.valueObject;let value=valueObject.getValue();if(valueObject.isNull()?value=null:valueObject.isString()&&core.isRealNum(value)&&(value=+value),!valueMap.has(value))valueMap.set(value,[r]);else{const valueMapItem=valueMap.get(value);valueMapItem.push(r),valueMap.set(value,valueMapItem)}}),Array.from(valueMap.values()).filter(item=>item.length>1)}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}};__name(_Unique,"Unique");let Unique=_Unique;const _Vlookup=class _Vlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,colIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return tableArray;if(!tableArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);if(colIndexNum.isError())return colIndexNum;if(rangeLookup!=null&&rangeLookup.isError())return rangeLookup;const _rangeLookup=rangeLookup!=null?rangeLookup:BooleanValueObject.create(!0);return isSingleValueObject(lookupValue)&&isSingleValueObject(_rangeLookup)&&colIndexNum.isArray()?this._handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup):this._handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup)}_handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const _lookupValue=lookupValue.isArray()?lookupValue.getFirstCell():lookupValue,rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);let errorValue;const result=[];return colIndexNum.iterator((colIndexNumValueObject,rowIndex,columnIndex)=>{if(colIndexNumValueObject==null)return errorValue=ErrorValueObject.create(ErrorType$1.VALUE),!1;const searchObject=this._handleTableArray(_lookupValue,tableArray,colIndexNumValueObject,rangeLookupValue);if(searchObject.isError())return errorValue=searchObject,!1;result[rowIndex]===void 0&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=searchObject}),errorValue||createNewArray(result,result.length,result[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const maxRowLength=Math.max(lookupValue.isArray()?lookupValue.getRowCount():1,rangeLookup.isArray()?rangeLookup.getRowCount():1),maxColumnLength=Math.max(lookupValue.isArray()?lookupValue.getColumnCount():1,rangeLookup.isArray()?rangeLookup.getColumnCount():1),lookupValueArray=expandArrayValueObject(maxRowLength,maxColumnLength,lookupValue),rangeLookupArray=expandArrayValueObject(maxRowLength,maxColumnLength,rangeLookup);return lookupValueArray.map((lookupValue2,rowIndex,columnIndex)=>{if(lookupValue2.isError())return lookupValue2;const rangeLookupValueObject=rangeLookupArray.get(rowIndex,columnIndex);if(rangeLookupValueObject==null)return ErrorValueObject.create(ErrorType$1.VALUE);if(rangeLookupValueObject.isError())return rangeLookupValueObject;const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookupValueObject);return rangeLookupValue==null?ErrorValueObject.create(ErrorType$1.VALUE):this._handleTableArray(lookupValue2,tableArray,colIndexNum,rangeLookupValue)})}_handleTableArray(lookupValue,tableArray,colIndexNum,rangeLookupValue){const colIndexNumValue=this.getIndexNumValue(colIndexNum);if(colIndexNumValue instanceof ErrorValueObject)return colIndexNumValue;const searchArray=tableArray.slice(void 0,[0,1]);if(searchArray==null)return ErrorValueObject.create(ErrorType$1.VALUE);const resultArray=tableArray.slice(void 0,[colIndexNumValue-1,colIndexNumValue]);return resultArray==null?ErrorValueObject.create(ErrorType$1.REF):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Vlookup,"Vlookup");let Vlookup=_Vlookup;const _Vstack=class _Vstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxColumnLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getColumnCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<maxColumnLength;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),c>columnCount-1||!singleObject?row.push(ErrorValueObject.create(ErrorType$1.NA)):row.push(singleObject)}result.push(row)}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Vstack,"Vstack");let Vstack=_Vstack;const _Xlookup=class _Xlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(lookupValue,lookupArray,returnArray,ifNotFound,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError()||returnArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray()||!returnArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount(),rowCountReturn=returnArray.getRowCount(),columnCountReturn=returnArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||rowCountLookup!==rowCountReturn&&columnCountLookup!==columnCountReturn)return ErrorValueObject.create(ErrorType$1.VALUE);if(ifNotFound!=null&&ifNotFound.isError()||matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const _ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:this._getResult(lookupValue,lookupArray,returnArray,_ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn)}_getResult(lookupValue,lookupArray,returnArray,ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn){if(lookupValue.isArray()){let resultArray2;return rowCountLookup===1?resultArray2=returnArray.slice([0,1]):resultArray2=returnArray.slice(void 0,[0,1]),resultArray2==null?ErrorValueObject.create(ErrorType$1.NA):lookupValue.map(value=>{const result=this._handleSingleObject(value,lookupArray,resultArray2,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result})}if(columnCountLookup===columnCountReturn&&rowCountLookup===rowCountReturn){const result=this._handleSingleObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result}let axis=0;columnCountLookup===columnCountReturn&&(axis=1);const resultArray=this._handleExpandObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue,axis);return resultArray==null?ErrorValueObject.create(ErrorType$1.NA):resultArray}_handleExpandObject(value,searchArray,resultArray,matchModeValue,searchModeValue,axis=0){return(searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2?this.binarySearchExpand(value,searchArray,resultArray,axis,this._getSearchModeValue(searchModeValue)):matchModeValue===2?this.fuzzySearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis):matchModeValue===-1||matchModeValue===1?this.orderSearchExpand(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1,axis):this.equalSearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis)}_handleSingleObject(value,searchArray,resultArray,matchModeValue,searchModeValue){return(searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2?this.binarySearch(value,searchArray,resultArray,this._getSearchModeValue(searchModeValue)):matchModeValue===2?this.fuzzySearch(value,searchArray,resultArray,searchModeValue!==-1):matchModeValue===-1||matchModeValue===1?this.orderSearch(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1):this.equalSearch(value,searchArray,resultArray,searchModeValue!==-1)}_getSearchModeValue(searchModeValue){return searchModeValue===-2?ArrayBinarySearchType.MAX:ArrayBinarySearchType.MIN}};__name(_Xlookup,"Xlookup");let Xlookup=_Xlookup;const _Xmatch=class _Xmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(lookupValue,lookupArray,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1)return ErrorValueObject.create(ErrorType$1.VALUE);if(matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchModeValue,searchModeValue)):this._handleSingleObject(lookupValue,lookupArray,matchModeValue,searchModeValue)}_handleSingleObject(value,searchArray,matchModeValue,searchModeValue){let rowOrColumn;if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=this._getSearchModeValue(searchModeValue);rowOrColumn=searchArray.binarySearch(value,searchType)}else if(matchModeValue===2){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else if(matchModeValue===-1||matchModeValue===1){const position=searchArray.orderSearch(value,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);if(position instanceof ErrorValueObject)return position;rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else{const matchObject=searchArray.isEqual(value);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(rowOrColumn+1)}_getSearchModeValue(searchModeValue){return searchModeValue===-2?ArrayBinarySearchType.MAX:ArrayBinarySearchType.MIN}};__name(_Xmatch,"Xmatch");let Xmatch=_Xmatch;const _Index=class _Index extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4);__publicField(this,"needsReferenceObject",!0)}calculate(reference,rowNum,columnNum,areaNum){if(reference.isError())return reference;if(rowNum!=null&&rowNum.isError())return rowNum;if(columnNum!=null&&columnNum.isError())return columnNum;if(areaNum!=null&&areaNum.isError())return areaNum;let referenceRowCount=0,referenceColumnCount=0;if(reference.isValueObject())referenceRowCount=1,referenceColumnCount=1;else if(reference.isReferenceObject()){const{startRow,endRow,startColumn,endColumn}=reference.getRangeData();referenceRowCount=endRow-startRow+1,referenceColumnCount=endColumn-startColumn+1}else return ErrorValueObject.create(ErrorType$1.VALUE);let _rowNum,_columnNum;referenceRowCount===1&&referenceColumnCount>1&&columnNum==null?(_columnNum=rowNum!=null?rowNum:NumberValueObject.create(0),_rowNum=NumberValueObject.create(0)):(_rowNum=rowNum!=null?rowNum:NumberValueObject.create(0),_columnNum=columnNum!=null?columnNum:NumberValueObject.create(0));let _areaNum=areaNum!=null?areaNum:NumberValueObject.create(1);_rowNum.isReferenceObject()&&(_rowNum=_rowNum.toArrayValueObject()),_columnNum.isReferenceObject()&&(_columnNum=_columnNum.toArrayValueObject()),_areaNum.isReferenceObject()&&(_areaNum=_areaNum.toArrayValueObject());const maxRowLength=Math.max(_rowNum.isArray()?_rowNum.getRowCount():1,_columnNum.isArray()?_columnNum.getRowCount():1,_areaNum.isArray()?_areaNum.getRowCount():1),maxColumnLength=Math.max(_rowNum.isArray()?_rowNum.getColumnCount():1,_columnNum.isArray()?_columnNum.getColumnCount():1,_areaNum.isArray()?_areaNum.getColumnCount():1);if(_rowNum=_rowNum,_columnNum=_columnNum,_areaNum=_areaNum,maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(reference,_rowNum,_columnNum,_areaNum);{const rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rowNum,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columnNum,ErrorValueObject.create(ErrorType$1.NA)),areaNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_areaNum,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),areaNumValue=areaNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),result=this._calculateSingleCell(reference,rowNumValue,columnNumValue,areaNumValue);return result.isReferenceObject()?result.toArrayValueObject().getFirstCell():result})}}_calculateSingleCell(reference,rowNum,columnNum,areaNum){if(rowNum.isError())return rowNum;const rowNumberValue=this._getNumberValue(rowNum);if(rowNumberValue===void 0||rowNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(columnNum.isError())return columnNum;const columnNumberValue=this._getNumberValue(columnNum);if(columnNumberValue===void 0||columnNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(areaNum.isError())return areaNum;const areaNumberValue=this._getAreaNumberValue(areaNum);return areaNumberValue===void 0||areaNumberValue<1?ErrorValueObject.create(ErrorType$1.VALUE):reference.isReferenceObject()?this._getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue):reference.isValueObject()&&rowNumberValue===1&&columnNumberValue===1?reference:ErrorValueObject.create(ErrorType$1.REF)}_getNumberValue(numberValueObject){if(numberValueObject==null)return 0;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getAreaNumberValue(numberValueObject){if(numberValueObject==null)return 1;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue){const{startRow,endRow,startColumn,endColumn}=reference.getRangeData();let referenceStartRow=0,referenceEndRow=0,referenceStartColumn=0,referenceEndColumn=0;if(rowNumberValue===0?(referenceStartRow=startRow,referenceEndRow=endRow):referenceStartRow=referenceEndRow=startRow+rowNumberValue-1,columnNumberValue===0?(referenceStartColumn=startColumn,referenceEndColumn=endColumn):referenceStartColumn=referenceEndColumn=startColumn+columnNumberValue-1,referenceStartRow>endRow||referenceStartColumn>endColumn)return ErrorValueObject.create(ErrorType$1.REF);const range={startRow:referenceStartRow,startColumn:referenceStartColumn,endRow:referenceEndRow,endColumn:referenceEndColumn};return this.createReferenceObject(reference,range)}};__name(_Index,"Index");let Index=_Index;const functionLookup=[[Address,FUNCTION_NAMES_LOOKUP.ADDRESS],[Areas,FUNCTION_NAMES_LOOKUP.AREAS],[Choose,FUNCTION_NAMES_LOOKUP.CHOOSE],[Choosecols,FUNCTION_NAMES_LOOKUP.CHOOSECOLS],[Chooserows,FUNCTION_NAMES_LOOKUP.CHOOSEROWS],[Column,FUNCTION_NAMES_LOOKUP.COLUMN],[Columns,FUNCTION_NAMES_LOOKUP.COLUMNS],[Filter,FUNCTION_NAMES_LOOKUP.FILTER],[Hlookup,FUNCTION_NAMES_LOOKUP.HLOOKUP],[Hstack,FUNCTION_NAMES_LOOKUP.HSTACK],[Index,FUNCTION_NAMES_LOOKUP.INDEX],[Indirect,FUNCTION_NAMES_LOOKUP.INDIRECT],[Lookup,FUNCTION_NAMES_LOOKUP.LOOKUP],[Match,FUNCTION_NAMES_LOOKUP.MATCH],[Offset,FUNCTION_NAMES_LOOKUP.OFFSET],[Row,FUNCTION_NAMES_LOOKUP.ROW],[Rows,FUNCTION_NAMES_LOOKUP.ROWS],[Sort,FUNCTION_NAMES_LOOKUP.SORT],[Sortby,FUNCTION_NAMES_LOOKUP.SORTBY],[Transpose,FUNCTION_NAMES_LOOKUP.TRANSPOSE],[Unique,FUNCTION_NAMES_LOOKUP.UNIQUE],[Vlookup,FUNCTION_NAMES_LOOKUP.VLOOKUP],[Vstack,FUNCTION_NAMES_LOOKUP.VSTACK],[Xlookup,FUNCTION_NAMES_LOOKUP.XLOOKUP],[Xmatch,FUNCTION_NAMES_LOOKUP.XMATCH]];var FUNCTION_NAMES_MATH=(FUNCTION_NAMES_MATH2=>(FUNCTION_NAMES_MATH2.ABS="ABS",FUNCTION_NAMES_MATH2.ACOS="ACOS",FUNCTION_NAMES_MATH2.ACOSH="ACOSH",FUNCTION_NAMES_MATH2.ACOT="ACOT",FUNCTION_NAMES_MATH2.ACOTH="ACOTH",FUNCTION_NAMES_MATH2.AGGREGATE="AGGREGATE",FUNCTION_NAMES_MATH2.ARABIC="ARABIC",FUNCTION_NAMES_MATH2.ASIN="ASIN",FUNCTION_NAMES_MATH2.ASINH="ASINH",FUNCTION_NAMES_MATH2.ATAN="ATAN",FUNCTION_NAMES_MATH2.ATAN2="ATAN2",FUNCTION_NAMES_MATH2.ATANH="ATANH",FUNCTION_NAMES_MATH2.BASE="BASE",FUNCTION_NAMES_MATH2.CEILING="CEILING",FUNCTION_NAMES_MATH2.CEILING_MATH="CEILING.MATH",FUNCTION_NAMES_MATH2.CEILING_PRECISE="CEILING.PRECISE",FUNCTION_NAMES_MATH2.COMBIN="COMBIN",FUNCTION_NAMES_MATH2.COMBINA="COMBINA",FUNCTION_NAMES_MATH2.COS="COS",FUNCTION_NAMES_MATH2.COSH="COSH",FUNCTION_NAMES_MATH2.COT="COT",FUNCTION_NAMES_MATH2.COTH="COTH",FUNCTION_NAMES_MATH2.CSC="CSC",FUNCTION_NAMES_MATH2.CSCH="CSCH",FUNCTION_NAMES_MATH2.DECIMAL="DECIMAL",FUNCTION_NAMES_MATH2.DEGREES="DEGREES",FUNCTION_NAMES_MATH2.EVEN="EVEN",FUNCTION_NAMES_MATH2.EXP="EXP",FUNCTION_NAMES_MATH2.FACT="FACT",FUNCTION_NAMES_MATH2.FACTDOUBLE="FACTDOUBLE",FUNCTION_NAMES_MATH2.FLOOR="FLOOR",FUNCTION_NAMES_MATH2.FLOOR_MATH="FLOOR.MATH",FUNCTION_NAMES_MATH2.FLOOR_PRECISE="FLOOR.PRECISE",FUNCTION_NAMES_MATH2.GCD="GCD",FUNCTION_NAMES_MATH2.INT="INT",FUNCTION_NAMES_MATH2.ISO_CEILING="ISO.CEILING",FUNCTION_NAMES_MATH2.LCM="LCM",FUNCTION_NAMES_MATH2.LET="LET",FUNCTION_NAMES_MATH2.LN="LN",FUNCTION_NAMES_MATH2.LOG="LOG",FUNCTION_NAMES_MATH2.LOG10="LOG10",FUNCTION_NAMES_MATH2.MDETERM="MDETERM",FUNCTION_NAMES_MATH2.MINVERSE="MINVERSE",FUNCTION_NAMES_MATH2.MMULT="MMULT",FUNCTION_NAMES_MATH2.MOD="MOD",FUNCTION_NAMES_MATH2.MROUND="MROUND",FUNCTION_NAMES_MATH2.MULTINOMIAL="MULTINOMIAL",FUNCTION_NAMES_MATH2.MUNIT="MUNIT",FUNCTION_NAMES_MATH2.ODD="ODD",FUNCTION_NAMES_MATH2.PI="PI",FUNCTION_NAMES_MATH2.POWER="POWER",FUNCTION_NAMES_MATH2.PRODUCT="PRODUCT",FUNCTION_NAMES_MATH2.QUOTIENT="QUOTIENT",FUNCTION_NAMES_MATH2.RADIANS="RADIANS",FUNCTION_NAMES_MATH2.RAND="RAND",FUNCTION_NAMES_MATH2.RANDARRAY="RANDARRAY",FUNCTION_NAMES_MATH2.RANDBETWEEN="RANDBETWEEN",FUNCTION_NAMES_MATH2.ROMAN="ROMAN",FUNCTION_NAMES_MATH2.ROUND="ROUND",FUNCTION_NAMES_MATH2.ROUNDDOWN="ROUNDDOWN",FUNCTION_NAMES_MATH2.ROUNDUP="ROUNDUP",FUNCTION_NAMES_MATH2.SEC="SEC",FUNCTION_NAMES_MATH2.SECH="SECH",FUNCTION_NAMES_MATH2.SERIESSUM="SERIESSUM",FUNCTION_NAMES_MATH2.SEQUENCE="SEQUENCE",FUNCTION_NAMES_MATH2.SIGN="SIGN",FUNCTION_NAMES_MATH2.SIN="SIN",FUNCTION_NAMES_MATH2.SINH="SINH",FUNCTION_NAMES_MATH2.SQRT="SQRT",FUNCTION_NAMES_MATH2.SQRTPI="SQRTPI",FUNCTION_NAMES_MATH2.SUBTOTAL="SUBTOTAL",FUNCTION_NAMES_MATH2.SUM="SUM",FUNCTION_NAMES_MATH2.SUMIF="SUMIF",FUNCTION_NAMES_MATH2.SUMIFS="SUMIFS",FUNCTION_NAMES_MATH2.SUMPRODUCT="SUMPRODUCT",FUNCTION_NAMES_MATH2.SUMSQ="SUMSQ",FUNCTION_NAMES_MATH2.SUMX2MY2="SUMX2MY2",FUNCTION_NAMES_MATH2.SUMX2PY2="SUMX2PY2",FUNCTION_NAMES_MATH2.SUMXMY2="SUMXMY2",FUNCTION_NAMES_MATH2.TAN="TAN",FUNCTION_NAMES_MATH2.TANH="TANH",FUNCTION_NAMES_MATH2.TRUNC="TRUNC",FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH||{});const _Abs=class _Abs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.abs()}};__name(_Abs,"Abs");let Abs=_Abs;const _Acos=class _Acos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acos()}};__name(_Acos,"Acos");let Acos=_Acos;const _Acosh=class _Acosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acosh()}};__name(_Acosh,"Acosh");let Acosh=_Acosh;const _Acot=class _Acot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acot(currentValue)):acot(_variant)}};__name(_Acot,"Acot");let Acot=_Acot;function acot(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);currentValue=Number(currentValue);let result=Math.atan(1/currentValue);return currentValue<0&&(result+=Math.PI),Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acot,"acot");const _Acoth=class _Acoth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acoth(currentValue)):acoth(_variant)}};__name(_Acoth,"Acoth");let Acoth=_Acoth;function acoth(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(currentValue=Number(currentValue),Math.abs(currentValue)<=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=1/2*Math.log((currentValue+1)/(currentValue-1));return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acoth,"acoth");const _Asin=class _Asin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asin()}};__name(_Asin,"Asin");let Asin=_Asin;const _Asinh=class _Asinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asinh()}};__name(_Asinh,"Asinh");let Asinh=_Asinh;const _Atan=class _Atan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atan()}};__name(_Atan,"Atan");let Atan=_Atan;const _Atan2=class _Atan2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(xNum,yNum){let _xNum=xNum,_yNum=yNum;return _xNum.isString()&&(_xNum=_xNum.convertToNumberObjectValue()),_xNum.isError()?_xNum:(_yNum.isString()&&(_yNum=_yNum.convertToNumberObjectValue()),_yNum.isError()?_yNum:_yNum.atan2(_xNum))}};__name(_Atan2,"Atan2");let Atan2=_Atan2;const _Atanh=class _Atanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atanh()}};__name(_Atanh,"Atanh");let Atanh=_Atanh;const _Base=class _Base extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(number,radix,minLength){const _minLength=minLength!=null?minLength:NumberValueObject.create(0);if(number.isError())return number;if(radix.isError())return radix;if(_minLength.isError())return _minLength;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,radix.isArray()?radix.getRowCount():1,_minLength.isArray()?_minLength.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,radix.isArray()?radix.getColumnCount():1,_minLength.isArray()?_minLength.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),minLengthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_minLength,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const radixObject=radixArray.get(rowIndex,columnIndex),minLengthObject=minLengthArray.get(rowIndex,columnIndex);return this._handleSingleObject(numberObject,radixObject,minLengthObject)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}_handleSingleObject(numberObject,radixObject,minLengthObject){let _numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;let _radixObject=radixObject;if(_radixObject.isString()&&(_radixObject=_radixObject.convertToNumberObjectValue()),_radixObject.isError())return _radixObject;let _minLengthObject=minLengthObject;if(_minLengthObject.isString()&&(_minLengthObject=_minLengthObject.convertToNumberObjectValue()),_minLengthObject.isError())return _minLengthObject;const numberValue=Math.floor(+_numberObject.getValue()),radixValue=Math.floor(+_radixObject.getValue()),minLengthValue=Math.floor(+_minLengthObject.getValue());if(numberValue<0||numberValue>=2**53||radixValue<2||radixValue>36||minLengthValue<0)return ErrorValueObject.create(ErrorType$1.NUM);let result=numberValue.toString(radixValue);return result.length<minLengthValue&&(result=new Array(minLengthValue-result.length+1).join("0")+result),StringValueObject.create(result.toLocaleUpperCase())}};__name(_Base,"Base");let Base=_Base;const _Ceiling=class _Ceiling extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=ceil(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}};__name(_Ceiling,"Ceiling");let Ceiling=_Ceiling;const _CeilingMath=class _CeilingMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0);if(number.isError())return number;if(_significance.isError())return _significance;if(_mode.isError())return _mode;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();return numberValue===0||significanceValue===0?NumberValueObject.create(0):this._getResult(numberValue,significanceValue,modeValue)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,significanceValue,modeValue){let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?ceil(Math.abs(numberValue)/Math.abs(significanceValue),0):-ceil(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)}};__name(_CeilingMath,"CeilingMath");let CeilingMath=_CeilingMath;const _CeilingPrecise=class _CeilingPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_CeilingPrecise,"CeilingPrecise");let CeilingPrecise=_CeilingPrecise;const _Cos=class _Cos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.cos()}};__name(_Cos,"Cos");let Cos=_Cos;const _Cosh=class _Cosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.cosh()}};__name(_Cosh,"Cosh");let Cosh=_Cosh;const _Cot=class _Cot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tan().getReciprocal()}};__name(_Cot,"Cot");let Cot=_Cot;const _Coth=class _Coth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;return numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError()?numberObject:+numberObject.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tanh().getReciprocal()}};__name(_Coth,"Coth");let Coth=_Coth;const _Csc=class _Csc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.sin().getReciprocal()}};__name(_Csc,"Csc");let Csc=_Csc;const _Csch=class _Csch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):!Number.isNaN(numberValue)&&!Number.isFinite(Math.sinh(numberValue))?NumberValueObject.create(0):numberObject.sinh().getReciprocal()}};__name(_Csch,"Csch");let Csch=_Csch;const _Decimal=class _Decimal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,radix){if(text.isError())return text;if(radix.isError())return radix;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,radix.isArray()?radix.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,radix.isArray()?radix.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{if(textObject.isError())return textObject;let radixObject=radixArray.get(rowIndex,columnIndex);if(radixObject.isString()&&(radixObject=radixObject.convertToNumberObjectValue()),radixObject.isError())return radixObject;const textValue=`${textObject.getValue()}`,radixValue=Math.floor(+radixObject.getValue());if(core.isRealNum(textValue)&&(+textValue<0||+textValue>=2**53||!Number.isInteger(+textValue))||textValue.toLocaleLowerCase()==="true"||textValue.toLocaleLowerCase()==="false"||radixValue<2||radixValue>36)return ErrorValueObject.create(ErrorType$1.NUM);if(textValue.replace(/\s/g,"")==="")return NumberValueObject.create(0);if(!this._isValidCharForRadix(textValue,radixValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Number.parseInt(textValue,radixValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_isValidCharForRadix(text,radix){for(const char of text){const charCode=char.toUpperCase().charCodeAt(0);if(radix<=10&&!(charCode>=48&&charCode<48+radix)||radix>10&&!(charCode>=48&&charCode<58||charCode>=65&&charCode<65+radix-10))return!1}return!0}};__name(_Decimal,"Decimal");let Decimal=_Decimal;const _Degrees=class _Degrees extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(180/Math.PI);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Degrees,"Degrees");let Degrees=_Degrees;const _Even=class _Even extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=(numberValue<0?-ceil(Math.abs(numberValue)/2,0):ceil(numberValue/2,0))*2;return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):result===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Even,"Even");let Even=_Even;const _Exp=class _Exp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.exp()}};__name(_Exp,"Exp");let Exp=_Exp;const _Floor=class _Floor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0)return NumberValueObject.create(0);if(significanceValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=floor(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Floor,"Floor");let Floor=_Floor;const _FloorMath=class _FloorMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?floor(Math.abs(numberValue)/Math.abs(significanceValue),0):-floor(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorMath,"FloorMath");let FloorMath=_FloorMath;const _FloorPrecise=class _FloorPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorPrecise,"FloorPrecise");let FloorPrecise=_FloorPrecise;const _Ln=class _Ln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log()}};__name(_Ln,"Ln");let Ln=_Ln;const _Log=class _Log extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,base){const _base=base!=null?base:NumberValueObject.create(10);if(number.isError())return number;if(_base.isError())return _base;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_base.isArray()?_base.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_base.isArray()?_base.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),baseArray=expandArrayValueObject(maxRowLength,maxColumnLength,_base,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let baseObject=baseArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(baseObject.isString()&&(baseObject=baseObject.convertToNumberObjectValue()),baseObject.isError())return baseObject;const numberValue=+_numberObject.getValue(),baseValue=+baseObject.getValue();if(numberValue<=0||baseValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const baseLog=Math.log(baseValue);if(baseLog===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.log(numberValue)/baseLog;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Log,"Log");let Log=_Log;const _Log10=class _Log10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log10()}};__name(_Log10,"Log10");let Log10=_Log10;const _Mod=class _Mod extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,divisor){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _divisor=divisor;return _divisor.isString()&&(_divisor=_divisor.convertToNumberObjectValue()),_divisor.isError()?_divisor:_number.mod(_divisor)}};__name(_Mod,"Mod");let Mod=_Mod;const _Mround=class _Mround extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,multiple){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isError())return _number;let _multiple=multiple;if(_multiple.isArray()){const rowCount=_multiple.getRowCount(),columnCount=_multiple.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_multiple=_multiple.get(0,0)}if(_multiple.isError())return _multiple;if(_number.isBoolean()||_multiple.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const numberValue=+_number.getValue(),multipleValue=+_multiple.getValue();if(Number.isNaN(numberValue)||Number.isNaN(multipleValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(multipleValue===0)return NumberValueObject.create(0);if(numberValue>0&&multipleValue<0||numberValue<0&&multipleValue>0)return ErrorValueObject.create(ErrorType$1.NUM);const result=round(numberValue/multipleValue,0)*multipleValue;return NumberValueObject.create(result)}};__name(_Mround,"Mround");let Mround=_Mround;const _Odd=class _Odd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=numberValue<0?-ceil(Math.abs(numberValue),0):ceil(numberValue,0);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):(Math.abs(result)%2===0&&(numberValue<0?result--:result++),NumberValueObject.create(result))}};__name(_Odd,"Odd");let Odd=_Odd;const _Pi=class _Pi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.PI)}};__name(_Pi,"Pi");let Pi=_Pi;const _Power=class _Power extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,power){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _power=power;return _power.isString()&&(_power=_power.convertToNumberObjectValue()),_power.isError()?_power:_number.pow(_power)}};__name(_Power,"Power");let Power=_Power;const _Product=class _Product extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(1);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=this._multiplyArray(variant)),variant.isError())return variant;if(accumulatorAll=accumulatorAll.multiply(variant),accumulatorAll.isError())return accumulatorAll}}return accumulatorAll}_multiplyArray(array){let result=NumberValueObject.create(1);return array.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return result=valueObject,!1;result=result.multiply(valueObject)}),result}};__name(_Product,"Product");let Product=_Product;const _Radians=class _Radians extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(Math.PI/180);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Radians,"Radians");let Radians=_Radians;const _Rand=class _Rand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.random())}};__name(_Rand,"Rand");let Rand=_Rand;const _Randarray=class _Randarray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",5)}calculate(rows,columns,min,max,wholeNumber){if(rows!=null&&rows.isError())return rows;if(columns!=null&&columns.isError())return columns;if(min!=null&&min.isError())return min;if(max!=null&&max.isError())return max;if(wholeNumber!=null&&wholeNumber.isError())return wholeNumber;const _rows=rows!=null?rows:NumberValueObject.create(1),_columns=columns!=null?columns:NumberValueObject.create(1),_min=min!=null?min:NumberValueObject.create(0),_max=max!=null?max:NumberValueObject.create(1),_wholeNumber=wholeNumber!=null?wholeNumber:NumberValueObject.create(0);return this._calculateResult(_rows,_columns,_min,_max,_wholeNumber)}_calculateResult(rows,columns,min,max,wholeNumber){const maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,columns.isArray()?columns.getRowCount():1,min.isArray()?min.getRowCount():1,max.isArray()?max.getRowCount():1,wholeNumber.isArray()?wholeNumber.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,columns.isArray()?columns.getColumnCount():1,min.isArray()?min.getColumnCount():1,max.isArray()?max.getColumnCount():1,wholeNumber.isArray()?wholeNumber.getColumnCount():1);if(maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(rows,columns,min,max,wholeNumber);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,columns,ErrorValueObject.create(ErrorType$1.NA)),minArray=expandArrayValueObject(maxRowLength,maxColumnLength,min,ErrorValueObject.create(ErrorType$1.NA)),maxArray=expandArrayValueObject(maxRowLength,maxColumnLength,max,ErrorValueObject.create(ErrorType$1.NA)),wholeNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,wholeNumber,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.map((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),minObject=minArray.get(rowIndex,columnIndex),maxObject=maxArray.get(rowIndex,columnIndex),wholeNumberObject=wholeNumberArray.get(rowIndex,columnIndex),_handleError=this._handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject);if(_handleError.errorObject)return _handleError.errorObject;let{minValue,maxValue,wholeNumberValue}=_handleError,result;return wholeNumberValue?(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),result=Math.floor(Math.random()*(maxValue-minValue+1))+minValue):result=Math.random()*(maxValue-minValue)+minValue,result<minValue||result>maxValue?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)})}_calculateSingleCell(rows,columns,min,max,wholeNumber){let _rows=rows;_rows.isArray()&&(_rows=_rows.get(0,0));let _columns=columns;_columns.isArray()&&(_columns=_columns.get(0,0));let _min=min;_min.isArray()&&(_min=_min.get(0,0));let _max=max;_max.isArray()&&(_max=_max.get(0,0));let _wholeNumber=wholeNumber;_wholeNumber.isArray()&&(_wholeNumber=_wholeNumber.get(0,0));const _handleError=this._handleError(_rows,_columns,_min,_max,_wholeNumber);if(_handleError.errorObject)return _handleError.errorObject;let{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}=_handleError;if(wholeNumberValue&&(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),minValue>maxValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<rowsValue;r++){const row=[];for(let c=0;c<columnsValue;c++)wholeNumberValue?row.push(Math.floor(Math.random()*(maxValue-minValue+1))+minValue):row.push(Math.random()*(maxValue-minValue)+minValue);result.push(row)}return rowsValue===1&&columnsValue===1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}_handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){let _rowsObject=rowsObject;if(_rowsObject.isString()&&(_rowsObject=_rowsObject.convertToNumberObjectValue()),_rowsObject.isError())return{errorObject:_rowsObject};let _columnsObject=columnsObject;if(_columnsObject.isString()&&(_columnsObject=_columnsObject.convertToNumberObjectValue()),_columnsObject.isError())return{errorObject:_columnsObject};let _minObject=minObject;if(_minObject.isString()&&(_minObject=_minObject.convertToNumberObjectValue()),_minObject.isError())return{errorObject:_minObject};let _maxObject=maxObject;if(_maxObject.isString()&&(_maxObject=_maxObject.convertToNumberObjectValue()),_maxObject.isError())return{errorObject:_maxObject};let _wholeNumberObject=wholeNumberObject;return _wholeNumberObject.isString()&&(_wholeNumberObject=_wholeNumberObject.convertToNumberObjectValue()),_wholeNumberObject.isError()?{errorObject:_wholeNumberObject}:this._getValue(_rowsObject,_columnsObject,_minObject,_maxObject,_wholeNumberObject)}_getValue(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){const rowsValue=Math.floor(+rowsObject.getValue()),columnsValue=Math.floor(+columnsObject.getValue());if(rowsValue===0||columnsValue===0)return{errorObject:ErrorValueObject.create(ErrorType$1.CALC)};if(rowsValue<0||columnsValue<0)return{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};const minValue=+minObject.getValue(),maxValue=+maxObject.getValue(),wholeNumberValue=+wholeNumberObject.getValue();return minValue>maxValue?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:wholeNumberValue&&(!Number.isInteger(minValue)||!Number.isInteger(maxValue))?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}}};__name(_Randarray,"Randarray");let Randarray=_Randarray;const _Randbetween=class _Randbetween extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(bottom,top){let _bottom=bottom;if(_bottom.isArray()){const rowCount=_bottom.getRowCount(),columnCount=_bottom.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_bottom=_bottom.get(0,0)}if(_bottom.isError())return _bottom;let _top=top;if(_top.isArray()){const rowCount=_top.getRowCount(),columnCount=_top.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_top=_top.get(0,0)}if(_top.isError())return _top;if(_bottom.isBoolean()||_top.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);let bottomValue=+_bottom.getValue(),topValue=+_top.getValue();if(Number.isNaN(bottomValue)||Number.isNaN(topValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(bottomValue>topValue)return ErrorValueObject.create(ErrorType$1.NUM);bottomValue=Math.ceil(bottomValue),topValue=Math.floor(topValue);const result=Math.floor(Math.random()*(topValue-bottomValue+1))+bottomValue;return NumberValueObject.create(result)}};__name(_Randbetween,"Randbetween");let Randbetween=_Randbetween;const _Round=class _Round extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.round(_numDigits)}};__name(_Round,"Round");let Round=_Round;const _Rounddown=class _Rounddown extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.floor(_numDigits)}};__name(_Rounddown,"Rounddown");let Rounddown=_Rounddown;const _Roundup=class _Roundup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.ceil(_numDigits)}};__name(_Roundup,"Roundup");let Roundup=_Roundup;const _Sec=class _Sec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cos().getReciprocal()}};__name(_Sec,"Sec");let Sec=_Sec;const _Sech=class _Sech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Number.isFinite(Math.cosh(numberValue))?Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cosh().getReciprocal():NumberValueObject.create(0)}};__name(_Sech,"Sech");let Sech=_Sech;const _Sin=class _Sin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sin()}};__name(_Sin,"Sin");let Sin=_Sin;const _Sinh=class _Sinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sinh()}};__name(_Sinh,"Sinh");let Sinh=_Sinh;const _Sqrt=class _Sqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.sqrt()}};__name(_Sqrt,"Sqrt");let Sqrt=_Sqrt;const _Sqrtpi=class _Sqrtpi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=+_number.getValue();if(numberValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sqrt(numberValue*Math.PI);return NumberValueObject.create(result)}};__name(_Sqrtpi,"Sqrtpi");let Sqrtpi=_Sqrtpi;const _Subtotal=class _Subtotal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(functionNum,...refs){if(functionNum.isError())return functionNum;if(functionNum.isReferenceObject()){const result=[];return functionNum.iterator((valueObject,rowIndex,columnIndex)=>{result[rowIndex]==null&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=this._handleSingleObject(valueObject,...refs)}),createNewArray(result,result.length,result[0].length)}return this._handleSingleObject(functionNum,...refs)}_handleSingleObject(functionNum,...refs){const indexNum=this._getIndexNumValue(functionNum);let result;if(indexNum instanceof ErrorValueObject)return indexNum;switch(indexNum){case 1:result=this._average(!1,...refs);break;case 2:result=this._count(!1,...refs);break;case 3:result=this._counta(!1,...refs);break;case 4:result=this._max(!1,...refs);break;case 5:result=this._min(!1,...refs);break;case 6:result=this._product(!1,...refs);break;case 7:result=this._stdev(!1,...refs);break;case 8:result=this._stdevp(!1,...refs);break;case 9:result=this._sum(!1,...refs);break;case 10:result=this._var(!1,...refs);break;case 11:result=this._varp(!1,...refs);break;case 101:result=this._average(!0,...refs);break;case 102:result=this._count(!0,...refs);break;case 103:result=this._counta(!0,...refs);break;case 104:result=this._max(!0,...refs);break;case 105:result=this._min(!0,...refs);break;case 106:result=this._product(!0,...refs);break;case 107:result=this._stdev(!0,...refs);break;case 108:result=this._stdevp(!0,...refs);break;case 109:result=this._sum(!0,...refs);break;case 110:result=this._var(!0,...refs);break;case 111:result=this._varp(!0,...refs);break;default:result=ErrorValueObject.create(ErrorType$1.VALUE)}return result}_getIndexNumValue(indexNum){const indexNumValue=indexNum?Number(indexNum.getValue()):0;if(Number.isNaN(indexNumValue))return ErrorValueObject.create(ErrorType$1.VALUE);const indexNumValueInt=Math.floor(indexNumValue);return indexNumValueInt>=1&&indexNumValueInt<=11||indexNumValueInt>=101&&indexNumValueInt<=111?indexNumValueInt:ErrorValueObject.create(ErrorType$1.VALUE)}_average(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.mean()}_count(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex))return!0;valueObject!=null&&valueObject.isNumber()&&(accumulatorAll=accumulatorAll.plusBy(1))})}return accumulatorAll}_counta(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)})}return accumulatorAll}_max(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.max()}_min(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.min()}_product(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);if(flattenArray.isError())return flattenArray;if(this._isBlankArrayObject(flattenArray))return NumberValueObject.create(0);let result=NumberValueObject.create(1);return flattenArray.iterator(valueObject=>{result=result.multiply(valueObject)}),result}_stdev(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std(1)}_stdevp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std()}_sum(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.sum()}_var(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var(1)}_varp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var()}_flattenRefArray(ignoreHidden,...variants){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();let errorValue;if(variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull()||valueObject.isString()||valueObject.isBoolean())return!0;if(valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}return createNewArray(flattenValues,1,flattenValues[0].length)}_isRowHidden(rowData,rowIndex){const row=rowData[rowIndex];return row?row.hd===core.BooleanNumber.TRUE:!1}_isBlankArrayObject(arrayObject){return arrayObject.getArrayValue()[0].length===0}};__name(_Subtotal,"Subtotal");let Subtotal=_Subtotal;const _Sum=class _Sum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&(variant=variant.sum()),accumulatorAll=accumulatorAll.plus(variant),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sum,"Sum");let Sum=_Sum;const _Sumif=class _Sumif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(range,criteria,sumRange){return range.isError()?range:criteria.isError()?criteria:sumRange!=null&&sumRange.isError()?sumRange:!range.isArray()||sumRange&&!sumRange.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):criteria.isArray()?criteria.map(criteriaItem=>this._handleSingleObject(range,criteriaItem,sumRange)):this._handleSingleObject(range,criteria,sumRange)}_handleSingleObject(range,criteria,sumRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const sumRangeArray=sumRange?sumRange.slice([0,range.getRowCount()],[0,range.getColumnCount()]):range;return sumRangeArray?sumRangeArray.pick(resultArrayObject).sum():ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Sumif,"Sumif");let Sumif=_Sumif;const _Sumifs=class _Sumifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(sumRange,...variants){if(sumRange.isError())return sumRange;if(!sumRange.isArray()||variants.length<2||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,sumRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(sumRange,booleanResults)}_aggregateResults(sumRange,booleanResults){const sumResults=booleanResults.map(row=>row.map(booleanResult=>sumRange.pick(booleanResult).sum())),arrayValueObjectData={calculateValueList:sumResults,rowCount:sumResults.length,columnCount:sumResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Sumifs,"Sumifs");let Sumifs=_Sumifs;const _Sumproduct=class _Sumproduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(array1,...variants){if(array1.isError())return array1;const _array1=this._initArray1(array1);if(variants.length>0){const rowCount=_array1.getRowCount(),columnCount=_array1.getColumnCount();let resultArray=this._getResultArrayByArray1(rowCount,columnCount,_array1);if(resultArray instanceof ErrorValueObject)return resultArray;resultArray=resultArray;for(let i=0;i<variants.length;i++){if(variants[i].isError())return variants[i];let variantRowCount=1,variantColumnCount=1;if(variants[i].isArray()&&(variantRowCount=variants[i].getRowCount(),variantColumnCount=variants[i].getColumnCount()),variantRowCount!==rowCount||variantColumnCount!==columnCount)return ErrorValueObject.create(ErrorType$1.VALUE);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let variantValueObject=variants[i];if(variants[i].isArray()&&(variantValueObject=variants[i].get(r,c)),variantValueObject.isError())return variantValueObject;const variantValue=variantValueObject.getValue();!variantValue||!core.isRealNum(variantValue)?row.push(0):row.push(+variantValue*resultArray[r][c])}resultArray[r]=row}}const result=resultArray.reduce((acc,cur)=>acc.concat(cur)).reduce((acc,cur)=>acc+cur,0);return NumberValueObject.create(result)}else return _array1.sum()}_initArray1(array1){let _array1=array1;return _array1.isArray()||(_array1=ArrayValueObject.create({calculateValueList:[[_array1]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),_array1}_getResultArrayByArray1(rowCount,columnCount,array1){const resultArray=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const array1ValueObject=array1.get(r,c);if(array1ValueObject.isError())return array1ValueObject;const array1Value=array1ValueObject.getValue();!array1Value||!core.isRealNum(array1Value)?row.push(0):row.push(+array1Value)}resultArray.push(row)}return resultArray}};__name(_Sumproduct,"Sumproduct");let Sumproduct=_Sumproduct;const _Sumsq=class _Sumsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);const exponent=NumberValueObject.create(2);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()?variant.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject.pow(exponent))}):accumulatorAll=accumulatorAll.plus(variant.pow(exponent)),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sumsq,"Sumsq");let Sumsq=_Sumsq;const _Sumx2my2=class _Sumx2my2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2-arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2-arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2my2,"Sumx2my2");let Sumx2my2=_Sumx2my2;const _Sumx2py2=class _Sumx2py2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2+arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2+arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2py2,"Sumx2py2");let Sumx2py2=_Sumx2py2;const _Sumxmy2=class _Sumxmy2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=(arrayXValue-arrayYValue)**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(arrayXValue-arrayYValue)**2;return NumberValueObject.create(result)}};__name(_Sumxmy2,"Sumxmy2");let Sumxmy2=_Sumxmy2;const _Tan=class _Tan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tan()}};__name(_Tan,"Tan");let Tan=_Tan;const _Tanh=class _Tanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tanh()}};__name(_Tanh,"Tanh");let Tanh=_Tanh;const _Trunc=class _Trunc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,numDigits){const _numDigits=numDigits!=null?numDigits:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_numDigits.isArray()?_numDigits.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_numDigits.isArray()?_numDigits.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numDigitsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numDigits,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let numDigitsObject=numDigitsArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numDigitsObject.isString()&&(numDigitsObject=numDigitsObject.convertToNumberObjectValue()),numDigitsObject.isError())return numDigitsObject;const numberValue=+_numberObject.getValue(),numDigitsValue=+numDigitsObject.getValue(),factor=10**Math.trunc(numDigitsValue),epsilon=baseEpsilon(numberValue,factor),result=Math.trunc(multiply(numberValue,factor)+epsilon)/factor;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Trunc,"Trunc");let Trunc=_Trunc;const functionMath=[[Abs,FUNCTION_NAMES_MATH.ABS],[Acos,FUNCTION_NAMES_MATH.ACOS],[Acosh,FUNCTION_NAMES_MATH.ACOSH],[Acot,FUNCTION_NAMES_MATH.ACOT],[Acoth,FUNCTION_NAMES_MATH.ACOTH],[Asin,FUNCTION_NAMES_MATH.ASIN],[Asinh,FUNCTION_NAMES_MATH.ASINH],[Atan,FUNCTION_NAMES_MATH.ATAN],[Atan2,FUNCTION_NAMES_MATH.ATAN2],[Atanh,FUNCTION_NAMES_MATH.ATANH],[Base,FUNCTION_NAMES_MATH.BASE],[Ceiling,FUNCTION_NAMES_MATH.CEILING],[CeilingMath,FUNCTION_NAMES_MATH.CEILING_MATH],[CeilingPrecise,FUNCTION_NAMES_MATH.CEILING_PRECISE],[Cos,FUNCTION_NAMES_MATH.COS],[Cosh,FUNCTION_NAMES_MATH.COSH],[Cot,FUNCTION_NAMES_MATH.COT],[Coth,FUNCTION_NAMES_MATH.COTH],[Csc,FUNCTION_NAMES_MATH.CSC],[Csch,FUNCTION_NAMES_MATH.CSCH],[Decimal,FUNCTION_NAMES_MATH.DECIMAL],[Degrees,FUNCTION_NAMES_MATH.DEGREES],[Even,FUNCTION_NAMES_MATH.EVEN],[Exp,FUNCTION_NAMES_MATH.EXP],[Floor,FUNCTION_NAMES_MATH.FLOOR],[FloorMath,FUNCTION_NAMES_MATH.FLOOR_MATH],[FloorPrecise,FUNCTION_NAMES_MATH.FLOOR_PRECISE],[Ln,FUNCTION_NAMES_MATH.LN],[Log,FUNCTION_NAMES_MATH.LOG],[Log10,FUNCTION_NAMES_MATH.LOG10],[Mod,FUNCTION_NAMES_MATH.MOD],[Mround,FUNCTION_NAMES_MATH.MROUND],[Odd,FUNCTION_NAMES_MATH.ODD],[Pi,FUNCTION_NAMES_MATH.PI],[Power,FUNCTION_NAMES_MATH.POWER],[Product,FUNCTION_NAMES_MATH.PRODUCT],[Radians,FUNCTION_NAMES_MATH.RADIANS],[Rand,FUNCTION_NAMES_MATH.RAND],[Randarray,FUNCTION_NAMES_MATH.RANDARRAY],[Randbetween,FUNCTION_NAMES_MATH.RANDBETWEEN],[Round,FUNCTION_NAMES_MATH.ROUND],[Rounddown,FUNCTION_NAMES_MATH.ROUNDDOWN],[Roundup,FUNCTION_NAMES_MATH.ROUNDUP],[Sec,FUNCTION_NAMES_MATH.SEC],[Sech,FUNCTION_NAMES_MATH.SECH],[Sin,FUNCTION_NAMES_MATH.SIN],[Sinh,FUNCTION_NAMES_MATH.SINH],[Sqrt,FUNCTION_NAMES_MATH.SQRT],[Sqrtpi,FUNCTION_NAMES_MATH.SQRTPI],[Subtotal,FUNCTION_NAMES_MATH.SUBTOTAL],[Sum,FUNCTION_NAMES_MATH.SUM],[Sumif,FUNCTION_NAMES_MATH.SUMIF],[Sumifs,FUNCTION_NAMES_MATH.SUMIFS],[Sumproduct,FUNCTION_NAMES_MATH.SUMPRODUCT],[Sumsq,FUNCTION_NAMES_MATH.SUMSQ],[Sumx2my2,FUNCTION_NAMES_MATH.SUMX2MY2],[Sumx2py2,FUNCTION_NAMES_MATH.SUMX2PY2],[Sumxmy2,FUNCTION_NAMES_MATH.SUMXMY2],[Tan,FUNCTION_NAMES_MATH.TAN],[Tanh,FUNCTION_NAMES_MATH.TANH],[Trunc,FUNCTION_NAMES_MATH.TRUNC]],_Compare=class _Compare extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"_compareType",compareToken.EQUALS)}setCompareType(token){this._compareType=token}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.compare(variant2,this._compareType)}};__name(_Compare,"Compare");let Compare=_Compare;const _CubeValueObject=class _CubeValueObject extends BaseValueObject{constructor(values){super("");__publicField(this,"_values",[]);this._values=values}static create(values){return new _CubeValueObject(values)}isCube(){return!0}sum(){const result=NumberValueObject.create(0);return this._values.forEach(arr=>{result.plus(arr.sum())}),result}max(){let result=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isLessThan(compare)&&(result=compare)}),result}min(){let result=NumberValueObject.create(Number.POSITIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isGreaterThan(compare)&&(result=compare)}),result}count(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.count())}),count}countA(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countA())}),count}countBlank(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countBlank())}),count}};__name(_CubeValueObject,"CubeValueObject");let CubeValueObject=_CubeValueObject;const _Cube=class _Cube extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);values.push(variant)}return CubeValueObject.create(values)}};__name(_Cube,"Cube");let Cube=_Cube;const _Divided=class _Divided extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:!variant2.isArray()&&variant2.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):variant1.divided(variant2)}};__name(_Divided,"Divided");let Divided=_Divided;var FUNCTION_NAMES_META=(FUNCTION_NAMES_META2=>(FUNCTION_NAMES_META2.COMPARE="COMPARE",FUNCTION_NAMES_META2.DIVIDED="DIVIDED",FUNCTION_NAMES_META2.MINUS="MINUS",FUNCTION_NAMES_META2.MULTIPLY="MULTIPLY",FUNCTION_NAMES_META2.PLUS="PLUS",FUNCTION_NAMES_META2.UNION="UNION",FUNCTION_NAMES_META2.CUBE="CUBE",FUNCTION_NAMES_META2))(FUNCTION_NAMES_META||{});const _Minus=class _Minus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.minus(variant2)}};__name(_Minus,"Minus");let Minus=_Minus;const _Multiply=class _Multiply extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.multiply(variant2)}};__name(_Multiply,"Multiply");let Multiply=_Multiply;const _Plus=class _Plus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.plus(variant2)}};__name(_Plus,"Plus");let Plus=_Plus;const functionMeta=[[Compare,FUNCTION_NAMES_META.COMPARE],[Divided,FUNCTION_NAMES_META.DIVIDED],[Minus,FUNCTION_NAMES_META.MINUS],[Multiply,FUNCTION_NAMES_META.MULTIPLY],[Plus,FUNCTION_NAMES_META.PLUS],[Cube,FUNCTION_NAMES_META.CUBE]];var FUNCTION_NAMES_STATISTICAL=(FUNCTION_NAMES_STATISTICAL2=>(FUNCTION_NAMES_STATISTICAL2.AVEDEV="AVEDEV",FUNCTION_NAMES_STATISTICAL2.AVERAGE="AVERAGE",FUNCTION_NAMES_STATISTICAL2.AVERAGEA="AVERAGEA",FUNCTION_NAMES_STATISTICAL2.AVERAGEIF="AVERAGEIF",FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS="AVERAGEIFS",FUNCTION_NAMES_STATISTICAL2.BETA_DIST="BETA.DIST",FUNCTION_NAMES_STATISTICAL2.BETA_INV="BETA.INV",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST="BINOM.DIST",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE="BINOM.DIST.RANGE",FUNCTION_NAMES_STATISTICAL2.BINOM_INV="BINOM.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST="CHISQ.DIST",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT="CHISQ.DIST.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV="CHISQ.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT="CHISQ.INV.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST="CHISQ.TEST",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM="CONFIDENCE.NORM",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T="CONFIDENCE.T",FUNCTION_NAMES_STATISTICAL2.CORREL="CORREL",FUNCTION_NAMES_STATISTICAL2.COUNT="COUNT",FUNCTION_NAMES_STATISTICAL2.COUNTA="COUNTA",FUNCTION_NAMES_STATISTICAL2.COUNTBLANK="COUNTBLANK",FUNCTION_NAMES_STATISTICAL2.COUNTIF="COUNTIF",FUNCTION_NAMES_STATISTICAL2.COUNTIFS="COUNTIFS",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P="COVARIANCE.P",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S="COVARIANCE.S",FUNCTION_NAMES_STATISTICAL2.DEVSQ="DEVSQ",FUNCTION_NAMES_STATISTICAL2.EXPON_DIST="EXPON.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST="F.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST_RT="F.DIST.RT",FUNCTION_NAMES_STATISTICAL2.F_INV="F.INV",FUNCTION_NAMES_STATISTICAL2.F_INV_RT="F.INV.RT",FUNCTION_NAMES_STATISTICAL2.F_TEST="F.TEST",FUNCTION_NAMES_STATISTICAL2.FISHER="FISHER",FUNCTION_NAMES_STATISTICAL2.FISHERINV="FISHERINV",FUNCTION_NAMES_STATISTICAL2.FORECAST="FORECAST",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS="FORECAST.ETS",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT="FORECAST.ETS.STAT",FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR="FORECAST.LINEAR",FUNCTION_NAMES_STATISTICAL2.FREQUENCY="FREQUENCY",FUNCTION_NAMES_STATISTICAL2.GAMMA="GAMMA",FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST="GAMMA.DIST",FUNCTION_NAMES_STATISTICAL2.GAMMA_INV="GAMMA.INV",FUNCTION_NAMES_STATISTICAL2.GAMMALN="GAMMALN",FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE="GAMMALN.PRECISE",FUNCTION_NAMES_STATISTICAL2.GAUSS="GAUSS",FUNCTION_NAMES_STATISTICAL2.GEOMEAN="GEOMEAN",FUNCTION_NAMES_STATISTICAL2.GROWTH="GROWTH",FUNCTION_NAMES_STATISTICAL2.HARMEAN="HARMEAN",FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST="HYPGEOM.DIST",FUNCTION_NAMES_STATISTICAL2.INTERCEPT="INTERCEPT",FUNCTION_NAMES_STATISTICAL2.KURT="KURT",FUNCTION_NAMES_STATISTICAL2.LARGE="LARGE",FUNCTION_NAMES_STATISTICAL2.LINEST="LINEST",FUNCTION_NAMES_STATISTICAL2.LOGEST="LOGEST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST="LOGNORM.DIST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV="LOGNORM.INV",FUNCTION_NAMES_STATISTICAL2.MAX="MAX",FUNCTION_NAMES_STATISTICAL2.MAXA="MAXA",FUNCTION_NAMES_STATISTICAL2.MAXIFS="MAXIFS",FUNCTION_NAMES_STATISTICAL2.MEDIAN="MEDIAN",FUNCTION_NAMES_STATISTICAL2.MIN="MIN",FUNCTION_NAMES_STATISTICAL2.MINA="MINA",FUNCTION_NAMES_STATISTICAL2.MINIFS="MINIFS",FUNCTION_NAMES_STATISTICAL2.MODE_MULT="MODE.MULT",FUNCTION_NAMES_STATISTICAL2.MODE_SNGL="MODE.SNGL",FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST="NEGBINOM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_DIST="NORM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_INV="NORM.INV",FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST="NORM.S.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_S_INV="NORM.S.INV",FUNCTION_NAMES_STATISTICAL2.PEARSON="PEARSON",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC="PERCENTILE.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC="PERCENTILE.INC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC="PERCENTRANK.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC="PERCENTRANK.INC",FUNCTION_NAMES_STATISTICAL2.PERMUT="PERMUT",FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA="PERMUTATIONA",FUNCTION_NAMES_STATISTICAL2.PHI="PHI",FUNCTION_NAMES_STATISTICAL2.POISSON_DIST="POISSON.DIST",FUNCTION_NAMES_STATISTICAL2.PROB="PROB",FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC="QUARTILE.EXC",FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC="QUARTILE.INC",FUNCTION_NAMES_STATISTICAL2.RANK_AVG="RANK.AVG",FUNCTION_NAMES_STATISTICAL2.RANK_EQ="RANK.EQ",FUNCTION_NAMES_STATISTICAL2.RSQ="RSQ",FUNCTION_NAMES_STATISTICAL2.SKEW="SKEW",FUNCTION_NAMES_STATISTICAL2.SKEW_P="SKEW.P",FUNCTION_NAMES_STATISTICAL2.SLOPE="SLOPE",FUNCTION_NAMES_STATISTICAL2.SMALL="SMALL",FUNCTION_NAMES_STATISTICAL2.STANDARDIZE="STANDARDIZE",FUNCTION_NAMES_STATISTICAL2.STDEV_P="STDEV.P",FUNCTION_NAMES_STATISTICAL2.STDEV_S="STDEV.S",FUNCTION_NAMES_STATISTICAL2.STDEVA="STDEVA",FUNCTION_NAMES_STATISTICAL2.STDEVPA="STDEVPA",FUNCTION_NAMES_STATISTICAL2.STEYX="STEYX",FUNCTION_NAMES_STATISTICAL2.T_DIST="T.DIST",FUNCTION_NAMES_STATISTICAL2.T_DIST_2T="T.DIST.2T",FUNCTION_NAMES_STATISTICAL2.T_DIST_RT="T.DIST.RT",FUNCTION_NAMES_STATISTICAL2.T_INV="T.INV",FUNCTION_NAMES_STATISTICAL2.T_INV_2T="T.INV.2T",FUNCTION_NAMES_STATISTICAL2.T_TEST="T.TEST",FUNCTION_NAMES_STATISTICAL2.TREND="TREND",FUNCTION_NAMES_STATISTICAL2.TRIMMEAN="TRIMMEAN",FUNCTION_NAMES_STATISTICAL2.VAR_P="VAR.P",FUNCTION_NAMES_STATISTICAL2.VAR_S="VAR.S",FUNCTION_NAMES_STATISTICAL2.VARA="VARA",FUNCTION_NAMES_STATISTICAL2.VARPA="VARPA",FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST="WEIBULL.DIST",FUNCTION_NAMES_STATISTICAL2.Z_TEST="Z.TEST",FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL||{});const _Avedev=class _Avedev extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant=filterNumberValueObject(variant),variant.isError())return variant;if(variants[i]=variant,accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}if(accumulatorCount.getValue()===0)return ErrorValueObject.create(ErrorType$1.NUM);const average=accumulatorSum.divided(accumulatorCount);if(average.isError())return average;let accumulatorAveDev=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs().sum()),accumulatorAveDev.isError())return accumulatorAveDev}else variant.isNull()||(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs()))}return accumulatorAveDev.divided(accumulatorCount)}};__name(_Avedev,"Avedev");let Avedev=_Avedev;function filterNumberValueObject(array){const newArray=[];newArray[0]=[];let isError=null;return array.iterator((valueObject,_rowIndex,_columnIndex)=>{if(valueObject!=null&&valueObject.isError())return isError=valueObject,!1;valueObject!=null&&valueObject.isNumber()&&newArray[0].push(valueObject)}),isError||createNewArray(newArray,1,newArray[0].length)}__name(filterNumberValueObject,"filterNumberValueObject");const _Average=class _Average extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Average,"Average");let Average=_Average;const _Averagea=class _Averagea extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;let _valueObject=valueObject;if(_valueObject.isString()&&(_valueObject=_valueObject.convertToNumberObjectValue(),_valueObject.isError()&&(_valueObject=NumberValueObject.create(0))),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorSum=_valueObject,!1;accumulatorSum=accumulatorSum.plus(_valueObject),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1))}),accumulatorSum.isError())return accumulatorSum}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Averagea,"Averagea");let Averagea=_Averagea;const _Averageif=class _Averageif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(range,criteria,averageRange){if(range.isError())return range;if(criteria.isError())return criteria;if(averageRange!=null&&averageRange.isError())return averageRange;let _range=range;_range.isReferenceObject()&&(_range=_range.toArrayValueObject()),_range.isArray()||(_range=createNewArray([[_range]],1,1));let _criteria=criteria;return _criteria.isReferenceObject()&&(_criteria=_criteria.toArrayValueObject()),averageRange&&!(averageRange!=null&&averageRange.isReferenceObject())?ErrorValueObject.create(ErrorType$1.NA):(_criteria=_criteria,_criteria.isArray()?_criteria.map(criteriaItem=>this._handleSingleObject(_range,criteriaItem,averageRange)):this._handleSingleObject(_range,_criteria,averageRange))}_handleSingleObject(range,criteria,averageRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);let averageRangeArray=averageRange?this._createRangeReferenceObject(averageRange,range):range;if(!averageRangeArray)return ErrorValueObject.create(ErrorType$1.VALUE);if(averageRangeArray.isError())return averageRangeArray;averageRangeArray.isReferenceObject()&&(averageRangeArray=averageRangeArray.toArrayValueObject()),averageRangeArray=averageRangeArray;const picked=averageRangeArray.pick(resultArrayObject),sum=picked.sum(),count=picked.count();return sum.divided(count)}_createRangeReferenceObject(averageRange,range){const averageRangeRow=averageRange.getRowCount(),averageRangeColumn=averageRange.getColumnCount(),rowCount=range.isArray()?range.getRowCount():1,columnCount=range.isArray()?range.getColumnCount():1;if(averageRangeRow===rowCount&&averageRangeColumn===columnCount)return averageRange;const{startRow,startColumn}=averageRange.getRangeData(),rangeData={startRow,startColumn,endRow:startRow+rowCount-1,endColumn:startColumn+columnCount-1};return this.createReferenceObject(averageRange,rangeData)}};__name(_Averageif,"Averageif");let Averageif=_Averageif;const _Averageifs=class _Averageifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(averageRange,...variants){if(averageRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!averageRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,averageRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(averageRange,booleanResults)}_aggregateResults(averageRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=averageRange.pick(booleanResult),sum=picked.sum(),count=picked.count();return sum.divided(count)})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Averageifs,"Averageifs");let Averageifs=_Averageifs;const _Count=class _Count extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){const variant=variants[i];variant.isError()||(variant.isArray()?accumulatorAll=accumulatorAll.plus(variant.count()):variant.isString()?variant.convertToNumberObjectValue().isError()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))))}return accumulatorAll}};__name(_Count,"Count");let Count=_Count;const _Counta=class _Counta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError()){accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1));continue}variant.isArray()?(variant=variant.countA(),accumulatorAll=accumulatorAll.plus(variant)):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1)))}return accumulatorAll}};__name(_Counta,"Counta");let Counta=_Counta;const _Countblank=class _Countblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isError()?variant:variant.getValue()===""||variant.isNull()?NumberValueObject.create(1):variant.isArray()?variant.countBlank():NumberValueObject.create(0)}};__name(_Countblank,"Countblank");let Countblank=_Countblank;const _Countif=class _Countif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(range,criteria){return range.isError()||criteria.isError()?ErrorValueObject.create(ErrorType$1.NA):range.isArray()?criteria.isArray()?criteria.mapValue(criteriaItem=>this._handleSingleObject(range,criteriaItem)):this._handleSingleObject(range,criteria):ErrorValueObject.create(ErrorType$1.VALUE)}_handleSingleObject(range,criteria){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const picked=range.pick(resultArrayObject);return this._countA(picked)}_countA(array){let accumulatorAll=NumberValueObject.create(0);return array.iterator(valueObject=>{if(valueObject==null)return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}};__name(_Countif,"Countif");let Countif=_Countif;const _Countifs=class _Countifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...variants){if(variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,variants[0],maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(booleanResults)}_aggregateResults(booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>countTrueValue(booleanResult))),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Countifs,"Countifs");let Countifs=_Countifs;function countTrueValue(array){let count=0;return array.iterator(value=>{value!=null&&value.isBoolean()&&value.getValue()===!0&&count++}),NumberValueObject.create(count)}__name(countTrueValue,"countTrueValue");const _Max=class _Max extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.max()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Max,"Max");let Max=_Max;const _Maxa=class _Maxa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Maxa,"Maxa");let Maxa=_Maxa;const _Maxifs=class _Maxifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(maxRange,...variants){if(maxRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!maxRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,maxRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(maxRange,booleanResults)}_aggregateResults(maxRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=maxRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.max()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Maxifs,"Maxifs");let Maxifs=_Maxifs;const _Min=class _Min extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.min()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Min,"Min");let Min=_Min;const _Mina=class _Mina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Mina,"Mina");let Mina=_Mina;const _Minifs=class _Minifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(minRange,...variants){if(minRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!minRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,minRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(minRange,booleanResults)}_aggregateResults(minRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=minRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.min()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Minifs,"Minifs");let Minifs=_Minifs;const _Stdeva=class _Stdeva extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_Stdeva,"Stdeva");let Stdeva=_Stdeva;const _Stdevpa=class _Stdevpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_Stdevpa,"Stdevpa");let Stdevpa=_Stdevpa;const _Vara=class _Vara extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_Vara,"Vara");let Vara=_Vara;const _Varpa=class _Varpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_Varpa,"Varpa");let Varpa=_Varpa;const functionStatistical=[[Avedev,FUNCTION_NAMES_STATISTICAL.AVEDEV],[Average,FUNCTION_NAMES_STATISTICAL.AVERAGE],[Averagea,FUNCTION_NAMES_STATISTICAL.AVERAGEA],[Averageif,FUNCTION_NAMES_STATISTICAL.AVERAGEIF],[Averageifs,FUNCTION_NAMES_STATISTICAL.AVERAGEIFS],[Count,FUNCTION_NAMES_STATISTICAL.COUNT],[Counta,FUNCTION_NAMES_STATISTICAL.COUNTA],[Countblank,FUNCTION_NAMES_STATISTICAL.COUNTBLANK],[Countif,FUNCTION_NAMES_STATISTICAL.COUNTIF],[Countifs,FUNCTION_NAMES_STATISTICAL.COUNTIFS],[Max,FUNCTION_NAMES_STATISTICAL.MAX],[Maxa,FUNCTION_NAMES_STATISTICAL.MAXA],[Maxifs,FUNCTION_NAMES_STATISTICAL.MAXIFS],[Min,FUNCTION_NAMES_STATISTICAL.MIN],[Mina,FUNCTION_NAMES_STATISTICAL.MINA],[Minifs,FUNCTION_NAMES_STATISTICAL.MINIFS],[StdevP,FUNCTION_NAMES_STATISTICAL.STDEV_P],[StdevS,FUNCTION_NAMES_STATISTICAL.STDEV_S],[Stdeva,FUNCTION_NAMES_STATISTICAL.STDEVA],[Stdevpa,FUNCTION_NAMES_STATISTICAL.STDEVPA],[VarP,FUNCTION_NAMES_STATISTICAL.VAR_P],[VarS,FUNCTION_NAMES_STATISTICAL.VAR_S],[Vara,FUNCTION_NAMES_STATISTICAL.VARA],[Varpa,FUNCTION_NAMES_STATISTICAL.VARPA]];var FUNCTION_NAMES_TEXT=(FUNCTION_NAMES_TEXT2=>(FUNCTION_NAMES_TEXT2.ASC="ASC",FUNCTION_NAMES_TEXT2.ARRAYTOTEXT="ARRAYTOTEXT",FUNCTION_NAMES_TEXT2.BAHTTEXT="BAHTTEXT",FUNCTION_NAMES_TEXT2.CHAR="CHAR",FUNCTION_NAMES_TEXT2.CLEAN="CLEAN",FUNCTION_NAMES_TEXT2.CODE="CODE",FUNCTION_NAMES_TEXT2.CONCAT="CONCAT",FUNCTION_NAMES_TEXT2.CONCATENATE="CONCATENATE",FUNCTION_NAMES_TEXT2.DBCS="DBCS",FUNCTION_NAMES_TEXT2.DOLLAR="DOLLAR",FUNCTION_NAMES_TEXT2.EXACT="EXACT",FUNCTION_NAMES_TEXT2.FIND="FIND",FUNCTION_NAMES_TEXT2.FINDB="FINDB",FUNCTION_NAMES_TEXT2.FIXED="FIXED",FUNCTION_NAMES_TEXT2.LEFT="LEFT",FUNCTION_NAMES_TEXT2.LEFTB="LEFTB",FUNCTION_NAMES_TEXT2.LEN="LEN",FUNCTION_NAMES_TEXT2.LENB="LENB",FUNCTION_NAMES_TEXT2.LOWER="LOWER",FUNCTION_NAMES_TEXT2.MID="MID",FUNCTION_NAMES_TEXT2.MIDB="MIDB",FUNCTION_NAMES_TEXT2.NUMBERVALUE="NUMBERVALUE",FUNCTION_NAMES_TEXT2.PHONETIC="PHONETIC",FUNCTION_NAMES_TEXT2.PROPER="PROPER",FUNCTION_NAMES_TEXT2.REPLACE="REPLACE",FUNCTION_NAMES_TEXT2.REPLACEB="REPLACEB",FUNCTION_NAMES_TEXT2.REPT="REPT",FUNCTION_NAMES_TEXT2.RIGHT="RIGHT",FUNCTION_NAMES_TEXT2.RIGHTB="RIGHTB",FUNCTION_NAMES_TEXT2.SEARCH="SEARCH",FUNCTION_NAMES_TEXT2.SEARCHB="SEARCHB",FUNCTION_NAMES_TEXT2.SUBSTITUTE="SUBSTITUTE",FUNCTION_NAMES_TEXT2.T="T",FUNCTION_NAMES_TEXT2.TEXT="TEXT",FUNCTION_NAMES_TEXT2.TEXTAFTER="TEXTAFTER",FUNCTION_NAMES_TEXT2.TEXTBEFORE="TEXTBEFORE",FUNCTION_NAMES_TEXT2.TEXTJOIN="TEXTJOIN",FUNCTION_NAMES_TEXT2.TEXTSPLIT="TEXTSPLIT",FUNCTION_NAMES_TEXT2.TRIM="TRIM",FUNCTION_NAMES_TEXT2.UNICHAR="UNICHAR",FUNCTION_NAMES_TEXT2.UNICODE="UNICODE",FUNCTION_NAMES_TEXT2.UPPER="UPPER",FUNCTION_NAMES_TEXT2.VALUE="VALUE",FUNCTION_NAMES_TEXT2.VALUETOTEXT="VALUETOTEXT",FUNCTION_NAMES_TEXT2.CALL="CALL",FUNCTION_NAMES_TEXT2.EUROCONVERT="EUROCONVERT",FUNCTION_NAMES_TEXT2.REGISTER_ID="REGISTER.ID",FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT||{});const _Concat=class _Concat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let concatenatedString="",isError=null;for(const textValue of textValues)if(textValue.isArray()){if(textValue.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;if(valueObject.isError())return isError=valueObject,!1;valueObject.isBoolean()?concatenatedString+=`${valueObject.getValue()}`.toLocaleUpperCase():(valueObject.isString()||valueObject.isNumber())&&(concatenatedString+=valueObject.getValue())}),isError)return isError}else!textValue.isError()&&!textValue.isNull()&&(concatenatedString+=textValue.getValue());return StringValueObject.create(concatenatedString)}};__name(_Concat,"Concat");let Concat=_Concat;const _Concatenate=class _Concatenate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let maxRowLength=0,maxColumnLength=0;textValues.forEach(textValue=>{if(textValue.isArray()){const arrayValue=textValue;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});let result=null;for(const textValue of textValues)result=expandArrayValueObject(maxRowLength,maxColumnLength,textValue,ErrorValueObject.create(ErrorType$1.NA)).mapValue((textValueObject,rowIndex,columnIndex)=>{const resultValueObject=result&&result.get(rowIndex,columnIndex);if(resultValueObject!=null&&resultValueObject.isError())return resultValueObject;if(textValueObject.isError())return textValueObject;let resultValue=resultValueObject==null?void 0:resultValueObject.getValue(),textValue2=textValueObject==null?void 0:textValueObject.getValue();resultValueObject!=null&&resultValueObject.isBoolean()&&(resultValue=`${resultValue}`.toLocaleUpperCase()),textValueObject!=null&&textValueObject.isBoolean()&&(textValue2=`${textValue2}`.toLocaleUpperCase());const resultValueObjectString=resultValueObject!=null&&resultValueObject.isNull()?"":resultValue!=null?resultValue:"",textValueObjectString=textValueObject!=null&&textValueObject.isNull()?"":textValue2!=null?textValue2:"";return StringValueObject.create(`${resultValueObjectString}${textValueObjectString}`)});return result||ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Concatenate,"Concatenate");let Concatenate=_Concatenate;const _Len=class _Len extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isNumber()){const numberValue=text.getValue(),numberValueString=stripErrorMargin(numberValue).toString();return NumberValueObject.create(numberValueString.length)}if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString();return NumberValueObject.create(textValue.length)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Len,"Len");let Len=_Len;function charLenByte(str){let byteCount=0;for(let i=0;i<str.length;i++){const charCode=str.charCodeAt(i);charCode>=12352&&charCode<=12543||charCode>=19968&&charCode<=40959||charCode>=44032&&charCode<=55215?byteCount+=2:byteCount+=1}return byteCount}__name(charLenByte,"charLenByte");const _Lenb=class _Lenb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString(),textByteLen=charLenByte(textValue);return NumberValueObject.create(textByteLen)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lenb,"Lenb");let Lenb=_Lenb;const _Lower=class _Lower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return StringValueObject.create("");if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString().toLowerCase();return StringValueObject.create(textValue)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lower,"Lower");let Lower=_Lower;const _Rept=class _Rept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,numberTimes){if(text.isError())return text;if(numberTimes.isError())return numberTimes;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,numberTimes.isArray()?numberTimes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,numberTimes.isArray()?numberTimes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),numberTimesArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberTimes,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{let numberTimesObject=numberTimesArray.get(rowIndex,columnIndex);if(textObject.isError())return textObject;let textValue=textObject.getValue();if(textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue+="",numberTimesObject.isString()&&(numberTimesObject=numberTimesObject.convertToNumberObjectValue()),numberTimesObject.isError())return numberTimesObject;const stringMaxLength=32767,numberTimesValue=Math.floor(+numberTimesObject.getValue());if(numberTimesValue<0||numberTimesValue>stringMaxLength/textValue.length)return ErrorValueObject.create(ErrorType$1.VALUE);const result=textValue.repeat(numberTimesValue);return StringValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rept,"Rept");let Rept=_Rept;const getFormatPreview=__name((pattern,value)=>numfmt$1.format(pattern,value),"getFormatPreview"),_Text=class _Text extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,formatText){if(text.isError())return text;if(formatText.isError())return formatText;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,formatText.isArray()?formatText.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,formatText.isArray()?formatText.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text),formatTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,formatText);return textArray.map((textValue,rowIndex,columnIndex)=>{if(textValue.isError()||textValue.isString()||textValue.isBoolean())return textValue;let formatTextValue=formatTextArray.get(rowIndex,columnIndex)||StringValueObject.create(" ");if(formatTextValue.isError())return formatTextValue;if(formatTextValue.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);formatTextValue.isNull()&&(formatTextValue=StringValueObject.create(" "));const formatTextValueString=`${formatTextValue.getValue()}`;let textValueNumber=textValue.getValue();textValue.isNull()&&(textValueNumber=0);const previewText=getFormatPreview(formatTextValueString,textValueNumber);return StringValueObject.create(previewText)})}};__name(_Text,"Text");let Text=_Text;const _Textafter=class _Textafter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let _delimiter=delimiter;_delimiter.isArray()&&(_delimiter=_delimiter.get(0,0));let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiterObject,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject,delimiterObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getStringValue(delimiterObject),_variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue===""?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.length>textValue.length?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){const matchNum=textValue.match(new RegExp(delimiterValue,`g${matchModeValue?"i":""}`));if(matchNum&&matchNum.length<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum.length<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):ifNotFoundObject;let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.toLocaleLowerCase():delimiterValue;let resultIndex=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const index=substrText.lastIndexOf(_delimiterValue);resultIndex=index,substrText=substrText.substr(0,index)}else{const index=substrText.indexOf(_delimiterValue);resultIndex+=index+i*_delimiterValue.length,substrText=substrText.substr(index+_delimiterValue.length)}const result=textValue.substr(resultIndex+_delimiterValue.length);return StringValueObject.create(result)}};__name(_Textafter,"Textafter");let Textafter=_Textafter;const _Textbefore=class _Textbefore extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let _delimiter=delimiter;_delimiter.isArray()&&(_delimiter=_delimiter.get(0,0));let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiterObject,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject,delimiterObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getStringValue(delimiterObject),_variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue===""?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.length>textValue.length?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){const matchNum=textValue.match(new RegExp(delimiterValue,`g${matchModeValue?"i":""}`));if(matchNum&&matchNum.length<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum.length<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):ifNotFoundObject;let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.toLocaleLowerCase():delimiterValue;let resultIndex=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const index=substrText.lastIndexOf(_delimiterValue);resultIndex=index,substrText=substrText.substr(0,index)}else{const index=substrText.indexOf(_delimiterValue);resultIndex+=index+i*_delimiterValue.length,substrText=substrText.substr(index+_delimiterValue.length)}const result=textValue.substr(0,resultIndex);return StringValueObject.create(result)}};__name(_Textbefore,"Textbefore");let Textbefore=_Textbefore;const _Textsplit=class _Textsplit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,colDelimiter,rowDelimiter,ignoreEmpty,matchMode,padWith){let _rowDelimiter=rowDelimiter!=null?rowDelimiter:StringValueObject.create("\\s");const _ignoreEmpty=ignoreEmpty!=null?ignoreEmpty:NumberValueObject.create(0),_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_padWith=padWith!=null?padWith:StringValueObject.create(ErrorType$1.NA),{_variant:_colDelimiter,values:colDelimiterValue}=this._getStringValues(colDelimiter),{_variant,values:rowDelimiterValue}=this._getStringValues(_rowDelimiter);_rowDelimiter=_variant;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),ignoreEmptyArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignoreEmpty,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_colDelimiter,_rowDelimiter,ignoreEmptyArray,matchModeArray,_padWith,colDelimiterValue,rowDelimiterValue);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray.map(item=>item.get(0,0))}_getStringValues(variant){let _variant=variant;const values=[];if(_variant.isArray())_variant.iterator(variantObject=>{if(variantObject!=null&&variantObject.isError())return _variant=variantObject,!1;if(variantObject!=null&&variantObject.isNull())return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=this._getRegExpStringValue(variantObject);if(value==="")return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;values.push(value)});else{const value=this._getRegExpStringValue(_variant);value===""&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE)),values.push(value)}return{_variant,values}}_getResultArray(textArray,colDelimiter,rowDelimiter,ignoreEmptyArray,matchModeArray,padWith,colDelimiterValue,rowDelimiterValue){return textArray.map((textObject,rowIndex,columnIndex)=>{let ignoreEmptyObject=ignoreEmptyArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex);const _variantsError=this._checkVariantsError(textObject,colDelimiter,rowDelimiter,ignoreEmptyObject,matchModeObject);if(_variantsError.isError())return _variantsError;if(textObject.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let _padWith=padWith;if(_padWith.isArray()){const padWithRowCount=_padWith.getRowCount(),padWithColumnCount=_padWith.getColumnCount();if(padWithRowCount>1||padWithColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_padWith=_padWith.get(0,0)}let textValue=`${textObject.getValue()}`;if(textObject.isBoolean()&&(textValue=textValue.toLocaleUpperCase()),ignoreEmptyObject.isString()&&(ignoreEmptyObject=ignoreEmptyObject.convertToNumberObjectValue(),ignoreEmptyObject.isError()))return ignoreEmptyObject;const ignoreEmptyValue=Math.floor(+ignoreEmptyObject.getValue());if(matchModeObject.isString()&&(matchModeObject=matchModeObject.convertToNumberObjectValue(),matchModeObject.isError()))return matchModeObject;const matchModeValue=Math.floor(+matchModeObject.getValue());if(matchModeValue<0||matchModeValue>1)return ErrorValueObject.create(ErrorType$1.VALUE);let padWithValue=`${_padWith.getValue()}`;return _padWith.isBoolean()&&(padWithValue=padWithValue.toLocaleUpperCase()),this._getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue)})}_getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue){const rowDelimiterRegExp=new RegExp(rowDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),colDelimiterRegExp=new RegExp(colDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),resultRows=textValue.split(rowDelimiterRegExp);let resultColsMaxCount=1,result=resultRows.map(row=>{let cols=row.split(colDelimiterRegExp);return ignoreEmptyValue&&(cols=cols.filter(col=>col!=="")),resultColsMaxCount=Math.max(resultColsMaxCount,cols.length),cols});return result=result.map(row=>{let _row=row;return _row.length<resultColsMaxCount&&(_row=_row.concat(new Array(resultColsMaxCount-_row.length).fill(padWithValue))),_row}),ArrayValueObject.createByArray(result)}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getRegExpStringValue(valueObject){let value=valueObject.getValue();return valueObject.isNull()&&(value="\\s"),valueObject.isBoolean()&&(value=value?"TRUE":"FALSE"),value+="",this._escapeRegExp(value)}_escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};__name(_Textsplit,"Textsplit");let Textsplit=_Textsplit;const functionText=[[Concat,FUNCTION_NAMES_TEXT.CONCAT],[Concatenate,FUNCTION_NAMES_TEXT.CONCATENATE],[Len,FUNCTION_NAMES_TEXT.LEN],[Lenb,FUNCTION_NAMES_TEXT.LENB],[Lower,FUNCTION_NAMES_TEXT.LOWER],[Rept,FUNCTION_NAMES_TEXT.REPT],[Text,FUNCTION_NAMES_TEXT.TEXT],[Textafter,FUNCTION_NAMES_TEXT.TEXTAFTER],[Textbefore,FUNCTION_NAMES_TEXT.TEXTBEFORE],[Textsplit,FUNCTION_NAMES_TEXT.TEXTSPLIT]],functionUniver=[];var FUNCTION_NAMES_UNIVER=(FUNCTION_NAMES_UNIVER2=>FUNCTION_NAMES_UNIVER2)(FUNCTION_NAMES_UNIVER||{});const functionWeb=[];var FUNCTION_NAMES_WEB=(FUNCTION_NAMES_WEB2=>(FUNCTION_NAMES_WEB2.ENCODEURL="ENCODEURL",FUNCTION_NAMES_WEB2.FILTERXML="FILTERXML",FUNCTION_NAMES_WEB2.WEBSERVICE="WEBSERVICE",FUNCTION_NAMES_WEB2))(FUNCTION_NAMES_WEB||{});function updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell){var _a24;const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);if(checkFormulaString&&checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId});else if(checkFormulaString&&!checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString});else if(!checkFormulaString&&checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId});else if(!checkFormulaString&&!checkFormulaId&&sheetFormulaDataMatrix.getValue(r,c)){const currentFormulaInfo=sheetFormulaDataMatrix.getValue(r,c),f=(currentFormulaInfo==null?void 0:currentFormulaInfo.f)||"",si=(currentFormulaInfo==null?void 0:currentFormulaInfo.si)||"";if(core.isFormulaString(f)&&core.isFormulaId(si)){const updatedFormula=(_a24=formulaIdMap.get(si))==null?void 0:_a24.f;updatedFormula?deleteFormulaIdMap.set(si,updatedFormula):deleteFormulaIdMap.set(si,f)}sheetFormulaDataMatrix.realDeleteValue(r,c),newSheetFormulaDataMatrix.setValue(r,c,null)}}__name(updateFormulaDataByCellValue,"updateFormulaDataByCellValue");function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c){const arrayFormulaRangeValue=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(r,c);if(arrayFormulaRangeValue==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRangeValue;for(let r2=startRow;r2<=endRow;r2++)for(let c2=startColumn;c2<=endColumn;c2++)arrayFormulaCellDataMatrix.realDeleteValue(r2,c2)}__name(clearArrayFormulaCellDataByCell,"clearArrayFormulaCellDataByCell");var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m"),_a;exports.FormulaDataModel=(_a=class extends core.Disposable{constructor(_univerInstanceService,_lexerTreeBuilder){super();__publicField(this,"_formulaData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_arrayFormulaCellData",{});this._univerInstanceService=_univerInstanceService,this._lexerTreeBuilder=_lexerTreeBuilder,this.initFormulaData()}clearPreviousArrayFormulaCellData(clearArrayFormulaCellData){Object.keys(clearArrayFormulaCellData).forEach(unitId=>{const clearSheetData=clearArrayFormulaCellData[unitId];if(clearSheetData==null)return!0;Object.keys(clearSheetData).forEach(sheetId=>{var _a24,_b,_c,_d;const clearCellMatrixData=clearSheetData[sheetId],rangeMatrix=(_b=(_a24=this._arrayFormulaRange)==null?void 0:_a24[unitId])==null?void 0:_b[sheetId];if(rangeMatrix==null)return!0;let arrayFormulaCellMatrixData=new core.ObjectMatrix;((_c=this._arrayFormulaCellData[unitId])==null?void 0:_c[sheetId])!=null&&(arrayFormulaCellMatrixData=new core.ObjectMatrix((_d=this._arrayFormulaCellData[unitId])==null?void 0:_d[sheetId])),clearCellMatrixData.forValue((row,column)=>{var _a25;const range=(_a25=rangeMatrix==null?void 0:rangeMatrix[row])==null?void 0:_a25[column];if(range==null)return!0;const{startRow,startColumn,endRow,endColumn}=range;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}mergeArrayFormulaCellData(unitData){Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]==null&&(this._arrayFormulaRange[unitId]={}),this._arrayFormulaCellData[unitId]==null&&(this._arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24,_b;const cellMatrixData=sheetData[sheetId],arrayFormulaRangeMatrix=new core.ObjectMatrix((_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId]),arrayFormulaCellMatrixData=new core.ObjectMatrix((_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId]);cellMatrixData.forValue((row,column)=>{const arrayFormulaRange=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(row,column);if(arrayFormulaRange==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRange;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),cellMatrixData.forValue((row,column,cellData)=>{arrayFormulaCellMatrixData.setValue(row,column,cellData)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(value){this._formulaData=value}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(value){this._arrayFormulaRange=value}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(value){this._arrayFormulaCellData=value}mergeArrayFormulaRange(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]||(this._arrayFormulaRange[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24;const arrayFormula=new core.ObjectMatrix(sheetData[sheetId]),rangeMatrix=new core.ObjectMatrix((_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId]);arrayFormula.forValue((r,c,v)=>{rangeMatrix.setValue(r,c,v)}),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrix.getData())})})}mergeFormulaData(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData!==void 0){if(sheetData===null){delete this._formulaData[unitId];return}this._formulaData[unitId]||(this._formulaData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24,_b;const currentSheetData=sheetData[sheetId];if(currentSheetData===void 0)return;if(currentSheetData===null){(_a24=this._formulaData[unitId])==null||delete _a24[sheetId];return}const sheetFormula=new core.ObjectMatrix(currentSheetData),formulaMatrix=new core.ObjectMatrix(((_b=this._formulaData[unitId])==null?void 0:_b[sheetId])||{});sheetFormula.forValue((r,c,v)=>{v==null?formulaMatrix.realDeleteValue(r,c):formulaMatrix.setValue(r,c,v)}),this._formulaData[unitId][sheetId]=formulaMatrix.clone()})}})}deleteArrayFormulaRange(unitId,sheetId,row,column){var _a24;const cellMatrixData=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(cellMatrixData==null)return;const rangeMatrixData=new core.ObjectMatrix(cellMatrixData);rangeMatrixData.getValue(row,column)&&(rangeMatrixData.realDeleteValue(row,column),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrixData.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length===0)return;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId();this._formulaData[unitId]={},workbook.getSheets().forEach(worksheet=>{const cellMatrix=worksheet.getCellMatrix(),sheetId=worksheet.getSheetId();initSheetFormulaData(this._formulaData,unitId,sheetId,cellMatrix)})}getCalculateData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),allUnitData={},unitSheetNameMap={};for(const workbook of unitAllSheet){const unitId=workbook.getUnitId(),sheets=workbook.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitSheetNameMap}}updateFormulaData(unitId,sheetId,cellValue){const cellMatrix=new core.ObjectMatrix(cellValue),formulaIdMap=this.getFormulaIdMap(unitId,sheetId),deleteFormulaIdMap=new Map,formulaData=this._formulaData;formulaData[unitId]==null&&(formulaData[unitId]={});const workbookFormulaData=formulaData[unitId];workbookFormulaData[sheetId]==null&&(workbookFormulaData[sheetId]={});const sheetFormulaDataMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{}),newSheetFormulaDataMatrix=new core.ObjectMatrix;return cellMatrix.forValue((r,c,cell)=>{updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell)}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)){const formulaInfo=formulaIdMap.get(formulaId),deleteFormula=deleteFormulaIdMap.get(formulaId);if(formulaInfo&&!core.isFormulaString(formulaString)){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else if(typeof deleteFormula=="string"){const x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0,offsetFormula=this._lexerTreeBuilder.moveFormulaRefOffset(deleteFormula,x,y);deleteFormulaIdMap.set(formulaId,{r,c,f:offsetFormula}),sheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId}),newSheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId})}else if(typeof deleteFormula=="object"){const x=c-deleteFormula.c,y=r-deleteFormula.r;sheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y})}}}),newSheetFormulaDataMatrix.clone()}updateArrayFormulaRange(unitId,sheetId,cellValue){var _a24;const arrayFormulaRange=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{arrayFormulaRangeMatrix.realDeleteValue(r,c)})}updateArrayFormulaCellData(unitId,sheetId,cellValue){var _a24,_b;const arrayFormulaRange=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange),arrayFormulaCellData=(_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId];if(!arrayFormulaCellData)return;const arrayFormulaCellDataMatrix=new core.ObjectMatrix(arrayFormulaCellData);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c)})}getFormulaItemBySId(sId,sheetId,unitId){const formulaData=this._formulaData;if(formulaData[unitId]==null)return null;const workbookFormulaData=formulaData[unitId];if((workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null)return null;const cellMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{});let formulaDataItem=null;return cellMatrix.forValue((row,column,item)=>{if(item==null)return!0;const{f,si,x=0,y=0}=item;if(si===sId&&f.length>0&&x===0&&y===0)return formulaDataItem=item,!1}),formulaDataItem}getFormulaDataItem(row,column,sheetId,unitId){var _a24,_b,_c,_d;return(_d=(_c=(_b=(_a24=this._formulaData)==null?void 0:_a24[unitId])==null?void 0:_b[sheetId])==null?void 0:_c[row])==null?void 0:_d[column]}getFormulaIdMap(unitId,sheetId){const formulaIdMap=new Map,formulaData=this._formulaData;if(formulaData[unitId]==null)return formulaIdMap;const workbookFormulaData=formulaData[unitId];return(workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null||new core.ObjectMatrix(workbookFormulaData[sheetId]||{}).forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0;core.isFormulaString(formulaString)&&core.isFormulaId(formulaId)&&x===0&&y===0&&formulaIdMap.set(formulaId,{f:formulaString,r,c})}),formulaIdMap}getFormulaStringByCell(row,column,sheetId,unitId){const formulaDataItem=this.getFormulaDataItem(row,column,sheetId,unitId);if(formulaDataItem==null)return null;const{f,si,x=0,y=0}=formulaDataItem;if(si!=null&&(x!==0||y!==0)){let formulaString="";if(f.length>0)formulaString=f;else{const originItem=this.getFormulaItemBySId(si,sheetId,unitId);if(originItem==null||originItem.f.length===0)return null;formulaString=originItem.f}return formulaString=this._lexerTreeBuilder.moveFormulaRefOffset(formulaString,x,y),formulaString}return core.isFormulaString(f)?f:null}},__name(_a,"FormulaDataModel"),_a);exports.FormulaDataModel=__decorateClass$m([__decorateParam$m(0,core.IUniverInstanceService),__decorateParam$m(1,core.Inject(LexerTreeBuilder))],exports.FormulaDataModel);function initSheetFormulaData(formulaData,unitId,sheetId,cellMatrix){const formulaIdMap=new Map,sheetFormulaDataMatrix=new core.ObjectMatrix;cellMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);checkFormulaString&&checkFormulaId?(sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c})):checkFormulaString&&!checkFormulaId?sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}):!checkFormulaString&&checkFormulaId&&sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)&&!core.isFormulaString(formulaString)){const formulaInfo=formulaIdMap.get(formulaId);if(formulaInfo){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else sheetFormulaDataMatrix.realDeleteValue(r,c)}}),formulaData[unitId]||(formulaData[unitId]={});const newSheetFormulaData=sheetFormulaDataMatrix.clone();return formulaData[unitId][sheetId]=newSheetFormulaData,{[unitId]:{[sheetId]:newSheetFormulaData}}}__name(initSheetFormulaData,"initSheetFormulaData");const SetArrayFormulaDataMutation={id:"formula.mutation.set-array-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},SetFormulaCalculationStartMutation={id:"formula.mutation.set-formula-calculation-start",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStopMutation={id:"formula.mutation.set-formula-calculation-stop",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationNotificationMutation={id:"formula.mutation.set-formula-calculation-notification",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationResultMutation={id:"formula.mutation.set-formula-calculation-result",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaDataMutation={id:"formula.mutation.set-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},_DefinedNamesService=class _DefinedNamesService extends core.Disposable{constructor(){super();__publicField(this,"_definedNameMap",{});__publicField(this,"_update$",new rxjs.Subject);__publicField(this,"update$",this._update$.asObservable());__publicField(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});__publicField(this,"_currentRange$",new rxjs.Subject);__publicField(this,"currentRange$",this._currentRange$.asObservable());__publicField(this,"_focusRange$",new rxjs.Subject);__publicField(this,"focusRange$",this._focusRange$.asObservable())}dispose(){this._definedNameMap={}}focusRange(unitId,id){const item=this.getValueById(unitId,id);item!=null&&this._focusRange$.next({...item,unitId})}setCurrentRange(range){this._currentRange=range,this._currentRange$.next(range)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return serializeRange(this._currentRange.range)}registerDefinedNames(unitId,params){this._definedNameMap[unitId]=params,this._update()}registerDefinedName(unitId,param){this._definedNameMap[unitId]==null&&(this._definedNameMap[unitId]={}),this._definedNameMap[unitId][param.id]=param,this._update()}removeDefinedName(unitId,id){var _a24;(_a24=this._definedNameMap[unitId])==null||delete _a24[id],this._update()}removeUnitDefinedName(unitId){delete this._definedNameMap[unitId],this._update()}getDefinedNameMap(unitId){return this._definedNameMap[unitId]}getValueByName(unitId,name){var _a24;const nameMap=this._definedNameMap[unitId];return nameMap==null?null:(_a24=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a24[0]}getValueById(unitId,id){var _a24;return(_a24=this._definedNameMap[unitId])==null?void 0:_a24[id]}hasDefinedName(unitId){return this._definedNameMap[unitId]==null?!1:(Array.from(Object.values(this._definedNameMap[unitId])).length||0)!==0}_update(){this._update$.next(null)}};__name(_DefinedNamesService,"DefinedNamesService");let DefinedNamesService=_DefinedNamesService;const IDefinedNamesService=core.createIdentifier("univer.formula.defined-names.service");var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l"),_a2;exports.FormulaCurrentConfigService=(_a2=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_formulaData",{});__publicField(this,"_sheetNameMap",{});__publicField(this,"_forceCalculate",!1);__publicField(this,"_dirtyRanges",[]);__publicField(this,"_dirtyNameMap",{});__publicField(this,"_dirtyDefinedNameMap",{});__publicField(this,"_dirtyUnitFeatureMap",{});__publicField(this,"_dirtyUnitOtherFormulaMap",{});__publicField(this,"_excludedCell");__publicField(this,"_sheetIdToNameMap",{});__publicField(this,"_executeUnitId","");__publicField(this,"_executeSubUnitId","");this._univerInstanceService=_univerInstanceService}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(unitId){this._executeUnitId=unitId}setExecuteSubUnitId(subUnitId){this._executeSubUnitId=subUnitId}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(unitId,sheetId){return this._sheetIdToNameMap[unitId]==null?"":this._sheetIdToNameMap[unitId][sheetId]||""}load(config){if(config.allUnitData&&config.unitSheetNameMap&&config.unitStylesData)this._unitData=config.allUnitData,this._unitStylesData=config.unitStylesData,this._sheetNameMap=config.unitSheetNameMap;else{const{allUnitData,unitSheetNameMap,unitStylesData}=this._loadSheetData();this._unitData=allUnitData,this._unitStylesData=unitStylesData,this._sheetNameMap=unitSheetNameMap}this._formulaData=config.formulaData,this._arrayFormulaCellData=convertUnitDataToRuntime(config.arrayFormulaCellData),this._forceCalculate=config.forceCalculate,this._dirtyRanges=config.dirtyRanges,this._dirtyNameMap=config.dirtyNameMap,this._dirtyDefinedNameMap=config.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=config.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=config.dirtyUnitOtherFormulaMap,this._excludedCell=config.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap}}loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell){this._dirtyRanges=dirtyRanges,this._excludedCell=excludedCell,this._dirtyNameMap={}}registerUnitData(unitData){this._unitData=unitData}registerFormulaData(formulaData){this._formulaData=formulaData}registerSheetNameMap(sheetNameMap){this._sheetNameMap=sheetNameMap}_mergeNameMap(unitSheetNameMap,dirtyNameMap){Object.keys(dirtyNameMap).forEach(unitId=>{dirtyNameMap[unitId]&&Object.keys(dirtyNameMap[unitId]).forEach(sheetId=>{unitSheetNameMap[unitId]==null&&(unitSheetNameMap[unitId]={}),unitSheetNameMap[unitId][dirtyNameMap[unitId][sheetId]]=sheetId})}),this._sheetIdToNameMap={},Object.keys(unitSheetNameMap).forEach(unitId=>{Object.keys(unitSheetNameMap[unitId]).forEach(sheetName=>{this._sheetIdToNameMap[unitId]==null&&(this._sheetIdToNameMap[unitId]={}),this._sheetIdToNameMap[unitId][unitSheetNameMap[unitId][sheetName]]=sheetName})})}_loadSheetData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();this._executeUnitId=workbook==null?void 0:workbook.getUnitId(),this._executeSubUnitId=worksheet==null?void 0:worksheet.getSheetId();const allUnitData={},unitStylesData={},unitSheetNameMap={};for(const workbook2 of unitAllSheet){const unitId=workbook2.getUnitId(),sheets=workbook2.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitStylesData[unitId]=workbook2.getStyles(),unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitStylesData,unitSheetNameMap}}},__name(_a2,"FormulaCurrentConfigService"),_a2);exports.FormulaCurrentConfigService=__decorateClass$l([__decorateParam$l(0,core.IUniverInstanceService)],exports.FormulaCurrentConfigService);const IFormulaCurrentConfigService=core.createIdentifier("univer.formula.current-data.service");var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k"),_a3;let Lexer=(_a3=class extends core.Disposable{constructor(_definedNamesService,_lexerTreeBuilder,_formulaCurrentConfigService){super(),this._definedNamesService=_definedNamesService,this._lexerTreeBuilder=_lexerTreeBuilder,this._formulaCurrentConfigService=_formulaCurrentConfigService}treeBuilder(formulaString,transformSuffix=!0){return this._lexerTreeBuilder.treeBuilder(formulaString,transformSuffix,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(formulaString){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(formulaString.indexOf(name)>-1)return!0}}return!1}_checkDefinedNameDirty(token){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++)if(names[i]===token)return!0}return!1}_injectDefinedName(sequenceArray){const unitId=this._formulaCurrentConfigService.getExecuteUnitId();if(unitId==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const sequenceNodes=this._lexerTreeBuilder.getSequenceNode(sequenceArray);let sequenceString="",hasDefinedName=!1;const definedNames=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"){sequenceString+=node;continue}const{nodeType,token}=node;if(nodeType===sequenceNodeType.REFERENCE||nodeType===sequenceNodeType.FUNCTION){const definedContent=this._definedNamesService.getValueByName(unitId,token);if(definedContent){let refString=definedContent.formulaOrRefString;refString.substring(0,1)===operatorToken.EQUALS&&(refString=refString.substring(1)),sequenceString+=refString,definedNames.push(definedContent.name),hasDefinedName=!0}else this._checkDefinedNameDirty(token)?(sequenceString+=ErrorType$1.NAME,hasDefinedName=!0,definedNames.push(token)):sequenceString+=token}else sequenceString+=token}return{sequenceString,hasDefinedName,definedNames}}},__name(_a3,"Lexer"),_a3);Lexer=__decorateClass$k([__decorateParam$k(0,IDefinedNamesService),__decorateParam$k(1,core.Inject(LexerTreeBuilder)),__decorateParam$k(2,IFormulaCurrentConfigService)],Lexer);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j"),FormulaExecuteStageType=(FormulaExecuteStageType2=>(FormulaExecuteStageType2[FormulaExecuteStageType2.IDLE=0]="IDLE",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY=1]="START_DEPENDENCY",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION=2]="START_CALCULATION",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",FormulaExecuteStageType2))(FormulaExecuteStageType||{}),FormulaExecutedStateType=(FormulaExecutedStateType2=>(FormulaExecutedStateType2[FormulaExecutedStateType2.INITIAL=0]="INITIAL",FormulaExecutedStateType2[FormulaExecutedStateType2.STOP_EXECUTION=1]="STOP_EXECUTION",FormulaExecutedStateType2[FormulaExecutedStateType2.NOT_EXECUTED=2]="NOT_EXECUTED",FormulaExecutedStateType2[FormulaExecutedStateType2.SUCCESS=3]="SUCCESS",FormulaExecutedStateType2))(FormulaExecutedStateType||{}),_a4;exports.FormulaRuntimeService=(_a4=class extends core.Disposable{constructor(_currentConfigService){super();__publicField(this,"_formulaExecuteStage",0);__publicField(this,"_stopState",!1);__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_currentRowCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentSubUnitId","");__publicField(this,"_currentUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_runtimeOtherData",{});__publicField(this,"_unitArrayFormulaRange",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeClearArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureRange",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_functionsExecutedState",0);__publicField(this,"_functionDefinitionPrivacyVar",new Map);__publicField(this,"_totalFormulasToCalculate",0);__publicField(this,"_completedFormulasCount",0);__publicField(this,"_totalArrayFormulasToCalculate",0);__publicField(this,"_completedArrayFormulasCount",0);__publicField(this,"_formulaCycleIndex",0);__publicField(this,"_isCycleDependency",!1);this._currentConfigService=_currentConfigService}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(value){this._totalArrayFormulasToCalculate=value}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(value){this._completedArrayFormulasCount=value}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(value){this._totalFormulasToCalculate=value}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(value){this._completedFormulasCount=value}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(index){this._formulaCycleIndex=index}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(type){this._formulaExecuteStage=type}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(row,column,rowCount,columnCount,sheetId,unitId){this._currentRow=row,this._currentColumn=column,this._currentRowCount=rowCount,this._currentColumnCount=columnCount,this._currentSubUnitId=sheetId,this._currentUnitId=unitId}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(lambdaId,lambdaVar){this._functionDefinitionPrivacyVar.set(lambdaId,lambdaVar)}getFunctionDefinitionPrivacyVar(lambdaId){return this._functionDefinitionPrivacyVar.get(lambdaId)}setRuntimeOtherData(formulaId,functionVariant){const subUnitId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeOtherData[unitId]===void 0&&(this._runtimeOtherData[unitId]={});const unitData=this._runtimeOtherData[unitId];unitData[subUnitId]===void 0&&(unitData[subUnitId]={});const subComponentData=unitData[subUnitId];let cellDatas=[];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn}=objectValueRefOrArray.getRangePosition();objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject),row=rowIndex-startRow,column=columnIndex-startColumn;cellDatas[row]==null&&(cellDatas[row]=[]),cellDatas[row][column]=value})}else cellDatas=[[objectValueToCellValue(functionVariant)]];subComponentData[formulaId]=cellDatas}setRuntimeData(functionVariant){const row=this._currentRow,column=this._currentColumn,rowCount=this._currentRowCount,columnCount=this.currentColumnCount,sheetId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeData[unitId]==null&&(this._runtimeData[unitId]={});const unitData=this._runtimeData[unitId];unitData[sheetId]==null&&(unitData[sheetId]=new core.ObjectMatrix),this._unitArrayFormulaRange[unitId]==null&&(this._unitArrayFormulaRange[unitId]={});const arrayFormulaRange=this._unitArrayFormulaRange[unitId];let arrayData=new core.ObjectMatrix;arrayFormulaRange[sheetId]&&(arrayData=new core.ObjectMatrix(arrayFormulaRange[sheetId])),this._runtimeArrayFormulaCellData[unitId]===void 0&&(this._runtimeArrayFormulaCellData[unitId]={});const runtimeArrayFormulaCellData=this._runtimeArrayFormulaCellData[unitId];runtimeArrayFormulaCellData[sheetId]==null&&(runtimeArrayFormulaCellData[sheetId]=new core.ObjectMatrix),this._runtimeClearArrayFormulaCellData[unitId]===void 0&&(this._runtimeClearArrayFormulaCellData[unitId]={});const clearArrayFormulaCellData=this._runtimeClearArrayFormulaCellData[unitId];clearArrayFormulaCellData[sheetId]==null&&(clearArrayFormulaCellData[sheetId]=new core.ObjectMatrix);const sheetData=unitData[sheetId],runtimeArrayUnitData=runtimeArrayFormulaCellData[sheetId],clearArrayUnitData=clearArrayFormulaCellData[sheetId];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn,endRow,endColumn}=objectValueRefOrArray.getRangePosition();if(startRow===endRow&&startColumn===endColumn){const firstCell=objectValueRefOrArray.getFirstCell(),valueObject=objectValueToCellValue(firstCell);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject);return}const arrayRange={startRow:row,startColumn:column,endRow:endRow-startRow+row,endColumn:endColumn-startColumn+column};if(arrayData.setValue(row,column,arrayRange),arrayFormulaRange[sheetId]=arrayData.getData(),this._checkIfArrayFormulaRangeHasData(unitId,sheetId,row,column,arrayRange)||this._checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange)){const errorObject=objectValueToCellValue(ErrorValueObject.create(ErrorType$1.SPILL));sheetData.setValue(row,column,errorObject),clearArrayUnitData.setValue(row,column,errorObject);const unitData2=this._currentConfigService.getUnitData();objectValueRefOrArray.iterator((_,rowIndex,columnIndex)=>{var _a24,_b;const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column,cell=(_b=(_a24=unitData2[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.cellData.getValue(currentRow,currentColumn);rowIndex===startRow&&columnIndex===startColumn?runtimeArrayUnitData.setValue(row,column,errorObject):cell!=null?(cell.v==null&&(cell.v=""),runtimeArrayUnitData.setValue(currentRow,currentColumn,cell)):runtimeArrayUnitData.setValue(currentRow,currentColumn,{v:""})})}else{const spillError=ErrorValueObject.create(ErrorType$1.SPILL);objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject);if(rowIndex===startRow&&columnIndex===startColumn){if(valueObject!=null&&valueObject.isError()&&valueObject.isEqualType(spillError))return clearArrayUnitData.setValue(row,column,{}),sheetData.setValue(row,column,{...objectValueToCellValue(spillError)}),!1;sheetData.setValue(row,column,{...value})}const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column;runtimeArrayUnitData.setValue(currentRow,currentColumn,value)})}}else{const valueObject=objectValueToCellValue(functionVariant);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject)}}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(featureId,featureRange){this._runtimeFeatureRange[featureId]=featureRange}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(featureId,featureData){this._runtimeFeatureCellData[featureId]=featureData}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(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,arrayRange){var _a24,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l;const{startRow,startColumn,endRow,endColumn}=arrayRange,unitData=this._currentConfigService.getUnitData(),unitArrayFormulaRange=(_c=(_b=(_a24=this._unitArrayFormulaRange[formulaUnitId])==null?void 0:_a24[formulaSheetId])==null?void 0:_b[formulaRow])==null?void 0:_c[formulaColumn];for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r===formulaRow&&formulaColumn===c)continue;const cell=(_f=(_e=(_d=this._runtimeData)==null?void 0:_d[formulaUnitId])==null?void 0:_e[formulaSheetId])==null?void 0:_f.getValue(r,c),arrayDataCell=(_i=(_h=(_g=this._runtimeArrayFormulaCellData)==null?void 0:_g[formulaUnitId])==null?void 0:_h[formulaSheetId])==null?void 0:_i.getValue(r,c),currentCell=(_l=(_k=(_j=unitData==null?void 0:unitData[formulaUnitId])==null?void 0:_j[formulaSheetId])==null?void 0:_k.cellData)==null?void 0:_l.getValue(r,c),featureCell=this._getRuntimeFeatureCellValue(r,c,formulaSheetId,formulaUnitId);if(!core.isNullCell(cell)||!core.isNullCell(arrayDataCell)&&!this._isInArrayFormulaRange(unitArrayFormulaRange,r,c)||!core.isNullCell(currentCell)||!core.isNullCell(featureCell))return!0}return!1}_getRuntimeFeatureCellValue(row,column,sheetId,unitId){return getRuntimeFeatureCell(row,column,sheetId,unitId,this._runtimeFeatureCellData)}_isInArrayFormulaRange(range,r,c){if(range==null)return!1;const{startRow,startColumn,endRow,endColumn}=range;return r>=startRow&&r<=endRow&&c>=startColumn&&c<=endColumn}_checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange){return arrayRange.endRow>=rowCount||arrayRange.endColumn>=columnCount}_isInDirtyRange(unitId,sheetId,row,column){const dirtyRanges=this._currentConfigService.getDirtyRanges();return dirtyRanges.length===0?!0:isInDirtyRange(dirtyRanges,unitId,sheetId,row,column)}},__name(_a4,"FormulaRuntimeService"),_a4);exports.FormulaRuntimeService=__decorateClass$j([__decorateParam$j(0,IFormulaCurrentConfigService)],exports.FormulaRuntimeService);const IFormulaRuntimeService=core.createIdentifier("univer.formula.runtime.service");var NodeType=(NodeType2=>(NodeType2.REFERENCE="ReferenceNode",NodeType2.VALUE="ValueNode",NodeType2.OPERATOR="OperatorNode",NodeType2.FUNCTION="FunctionNode",NodeType2.LAMBDA="LambdaNode",NodeType2.LAMBDA_PARAMETER="LambdaNodeParameter",NodeType2.ERROR="ErrorNode",NodeType2.BASE="Base",NodeType2.ROOT="Root",NodeType2.UNION="UnionNode",NodeType2.PREFIX="PrefixNode",NodeType2.SUFFIX="SuffixNode",NodeType2.NULL="NullNode",NodeType2))(NodeType||{});const NODE_ORDER_MAP=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]),_BaseAstNode=class _BaseAstNode extends core.Disposable{constructor(_token){super();__publicField(this,"_children",[]);__publicField(this,"_definedNames",[]);__publicField(this,"_parent");__publicField(this,"_valueObject");__publicField(this,"_calculateState",!1);__publicField(this,"_async",!1);__publicField(this,"_address",!1);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){var _a24;this._children.forEach(node=>{node.dispose()}),(_a24=this._valueObject)==null||_a24.dispose(),this._parent=null}get nodeType(){return NodeType.BASE}isAsync(){return this._async}isAddress(){return this._address}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(node){this._parent=node,node.addChildren(this)}getChildren(){return this._children}addChildren(...astNode){this._children.push(...astNode)}getToken(){return this._token}setValue(value){this._valueObject=value}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(state=!0){}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}async executeAsync(){return Promise.resolve(AstNodePromiseType.SUCCESS)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];childrenSerialization.push(item.serialize())}const result={token,nodeType:this.nodeType};return childrenCount>0&&(result.children=childrenSerialization),result}hasDefinedName(definedName){return this._definedNames.includes(definedName)}setDefinedNames(definedNames){this._definedNames=definedNames}};__name(_BaseAstNode,"BaseAstNode");let BaseAstNode=_BaseAstNode;const _ErrorNode=class _ErrorNode extends BaseAstNode{constructor(errorType){super(errorType);__publicField(this,"_errorValueObject");this._errorValueObject=ErrorValueObject.create(errorType)}get nodeType(){return NodeType.ERROR}static create(errorType){return new _ErrorNode(errorType)}getValue(){return this._errorValueObject}};__name(_ErrorNode,"ErrorNode");let ErrorNode=_ErrorNode;const DEFAULT_AST_NODE_FACTORY_Z_INDEX=100,_BaseAstNodeFactory=class _BaseAstNodeFactory extends core.Disposable{get zIndex(){return 0}create(param,currentRow,currentColumn){let token;return param instanceof LexerNode?token=param.getToken():token=param,new BaseAstNode(token)}};__name(_BaseAstNodeFactory,"BaseAstNodeFactory");let BaseAstNodeFactory=_BaseAstNodeFactory;const _AstRootNode=class _AstRootNode extends BaseAstNode{get nodeType(){return NodeType.ROOT}execute(){const node=this.getChildren()[0];node==null?this.setValue(ErrorValueObject.create(ErrorType$1.VALUE)):this.setValue(node.getValue())}};__name(_AstRootNode,"AstRootNode");let AstRootNode=_AstRootNode;const _AstRootNodeFactory=class _AstRootNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.ROOT)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;if(param.getToken()===DEFAULT_TOKEN_TYPE_ROOT)return new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT)}};__name(_AstRootNodeFactory,"AstRootNodeFactory");let AstRootNodeFactory=_AstRootNodeFactory;const _FunctionService=class _FunctionService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_functionExecutors",new Map);__publicField(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...functions){for(let i=0;i<functions.length;i++){const func=functions[i];this._functionExecutors.set(func.name,func)}}getExecutors(){return this._functionExecutors}getExecutor(functionToken){return this._functionExecutors.get(functionToken)}hasExecutor(functionToken){return this._functionExecutors.has(functionToken)}unregisterExecutors(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionExecutors.delete(functionToken)}}registerDescriptions(...descriptions){for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.set(description.functionName,description)}return core.toDisposable(()=>{for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.delete(description.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(functionToken){return this._functionDescriptions.get(functionToken)}hasDescription(functionToken){return this._functionDescriptions.has(functionToken)}unregisterDescriptions(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionDescriptions.delete(functionToken)}}};__name(_FunctionService,"FunctionService");let FunctionService=_FunctionService;const IFunctionService=core.createIdentifier("univer.formula.function.service");var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");const _PrefixNode=class _PrefixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.PREFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");value.isReferenceObject()&&(value=value.toArrayValueObject()),this._operatorString===prefixToken.MINUS?result=this._functionExecutor.calculate(NumberValueObject.create(0),value):this._operatorString===prefixToken.AT?result=this._handlerAT(value):result=ErrorValueObject.create(ErrorType$1.VALUE),this.setValue(result)}_handlerAT(value){if(!value.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const currentValue=value;if(currentValue.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const runtimeService=this._accessor.get(IFormulaRuntimeService),currentRow=runtimeService.currentRow||0,currentColumn=runtimeService.currentColumn||0;return currentValue.isRow()?currentValue.getCellByColumn(currentColumn):currentValue.isColumn()?currentValue.getCellByRow(currentRow):currentValue.isRange()||currentValue.isTable()?currentValue.getCellByPosition():ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_PrefixNode,"PrefixNode");let PrefixNode=_PrefixNode;var _a5;let PrefixNodeFactory=(_a5=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.PREFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const token=param.getToken(),tokenTrim=token.trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===prefixToken.MINUS)functionName=FUNCTION_NAMES_META.MINUS;else return tokenTrim===prefixToken.AT?new PrefixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new PrefixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a5,"PrefixNodeFactory"),_a5);PrefixNodeFactory=__decorateClass$i([__decorateParam$i(0,IFunctionService),__decorateParam$i(1,core.Inject(core.Injector))],PrefixNodeFactory);function prefixHandler(tokenTrim,functionService,injector){let minusPrefixNode,atPrefixNode;const prefix=tokenTrim.slice(0,2);let sliceLength=0;if(new RegExp(prefixToken.MINUS,"g").test(prefix)){const functionExecutor=functionService.getExecutor(FUNCTION_NAMES_META.MINUS);minusPrefixNode=new PrefixNode(injector,prefixToken.MINUS,functionExecutor),sliceLength++}return new RegExp(prefixToken.AT,"g").test(prefix)&&(atPrefixNode=new PrefixNode(injector,prefixToken.AT),minusPrefixNode&&atPrefixNode.setParent(minusPrefixNode),sliceLength++),sliceLength>0&&(tokenTrim=tokenTrim.slice(sliceLength)),{tokenTrim,minusPrefixNode,atPrefixNode}}__name(prefixHandler,"prefixHandler");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _FunctionNode=class _FunctionNode extends BaseAstNode{constructor(token,_functionExecutor,_currentConfigService,_runtimeService,_definedNamesService){super(token),this._functionExecutor=_functionExecutor,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return NodeType.FUNCTION}async executeAsync(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);let result;return resultVariant.isAsyncObject()||resultVariant.isAsyncArrayObject()?result=await resultVariant.getValue():result=resultVariant,this._setRefData(result),this.setValue(result),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);this._setRefData(resultVariant),this.setValue(resultVariant)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const children=this.getChildren(),childrenCount=children.length;if(!this._functionExecutor.needsExpandParams||childrenCount!==3)return;const lookupVectorOrArray=children[1].getValue(),resultVector=children[2].getValue();if(!(lookupVectorOrArray!=null&&lookupVectorOrArray.isReferenceObject())&&!(resultVector!=null&&resultVector.isReferenceObject()))return;const lookupVectorOrArrayRange=lookupVectorOrArray.getRangeData(),resultVectorRange=resultVector.getRangeData(),{startRow,startColumn,endRow,endColumn}=lookupVectorOrArrayRange,lookupCountRow=endRow-startRow+1,lookupCountColumn=endColumn-startColumn+1,{startRow:reStartRow,startColumn:reStartColumn,endRow:reEndRow,endColumn:reEndColumn}=resultVectorRange,resultCountRow=reEndRow-reStartRow+1,resultCountColumn=reEndColumn-reStartColumn+1;lookupCountRow!==resultCountRow&&(resultVectorRange.endRow+=lookupCountRow-resultCountRow),lookupCountColumn!==resultCountColumn&&(resultVectorRange.endColumn+=lookupCountColumn-resultCountColumn)}_calculate(variants){var _a24;const{minParams,maxParams}=this._functionExecutor;if(minParams!==-1&&maxParams!==-1&&(variants.length<minParams||variants.length>maxParams))return ErrorValueObject.create(ErrorType$1.NA);let resultVariant;if(this._setRefInfo(),this._functionExecutor.isCustom()){const resultVariantCustom=this._functionExecutor.calculateCustom(...variants.map(variant=>variant.isArray()?variant.toValue():variant.getValue()));if(typeof resultVariantCustom!="object"||resultVariantCustom==null)resultVariant=ValueObjectFactory.create(resultVariantCustom);else{const arrayValues=transformToValueObject(resultVariantCustom);resultVariant=ArrayValueObject.create({calculateValueList:arrayValues,rowCount:arrayValues.length,columnCount:((_a24=arrayValues[0])==null?void 0:_a24.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),resultVariant=this._functionExecutor.calculate(...variants);return resultVariant}_setDefinedNamesForFunction(){const editorUnitId=this._currentConfigService.getExecuteUnitId();if(editorUnitId==null)return;const definedNames=this._definedNamesService.getDefinedNameMap(editorUnitId);definedNames!=null&&this._functionExecutor.setDefinedNames(definedNames)}_setRefInfo(){const{currentUnitId,currentSubUnitId,currentRow,currentColumn}=this._runtimeService;this._functionExecutor.setRefInfo(currentUnitId,currentSubUnitId,currentRow,currentColumn)}_setRefData(variant){if(!variant.isReferenceObject())return;const referenceObject=variant;referenceObject.setForcedSheetId(this._currentConfigService.getSheetNameMap()),referenceObject.setUnitData(this._currentConfigService.getUnitData()),referenceObject.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),referenceObject.setRuntimeData(this._runtimeService.getUnitData()),referenceObject.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),referenceObject.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}};__name(_FunctionNode,"FunctionNode");let FunctionNode=_FunctionNode;var _a6;let FunctionNodeFactory=(_a6=class extends BaseAstNodeFactory{constructor(_functionService,_currentConfigService,_runtimeService,_definedNamesService,_injector){super(),this._functionService=_functionService,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.FUNCTION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(token){const functionExecutor=this._functionService.getExecutor(token);return functionExecutor?new FunctionNode(token,functionExecutor,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(typeof param=="string")return;const token=param.getToken(),{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(token.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(tokenTrim))&&!this._isParentUnionNode(param))return ErrorNode.create(ErrorType$1.VALUE);const tokenTrimUpper=tokenTrim.toUpperCase();if(this._functionService.hasExecutor(tokenTrimUpper)){const functionNode=this.create(tokenTrimUpper);return atPrefixNode?functionNode.setParent(atPrefixNode):minusPrefixNode&&functionNode.setParent(minusPrefixNode),functionNode}}_isParentUnionNode(param){var _a24,_b;return((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken())===matchToken.COLON}},__name(_a6,"FunctionNodeFactory"),_a6);FunctionNodeFactory=__decorateClass$h([__decorateParam$h(0,IFunctionService),__decorateParam$h(1,IFormulaCurrentConfigService),__decorateParam$h(2,IFormulaRuntimeService),__decorateParam$h(3,IDefinedNamesService),__decorateParam$h(4,core.Inject(core.Injector))],FunctionNodeFactory);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g"),_a7;let Interpreter=(_a7=class extends core.Disposable{constructor(_runtimeService){super(),this._runtimeService=_runtimeService}async executeAsync(node){if(!node)return ErrorValueObject.create(ErrorType$1.VALUE);await this._executeAsync(node);const value=node.getValue();if(value==null)throw new Error("node value is null");return Promise.resolve(value)}execute(node){if(!node)return ErrorValueObject.create(ErrorType$1.VALUE);this._execute(node);const value=node.getValue();if(value==null)throw new Error("node value is null");return value}executePreCalculateNode(node){return node.execute(),node.getValue()}checkAsyncNode(node){const result=[];this._checkAsyncNode(node,result);for(let i=0,len=result.length;i<len;i++)if(result[i]===!0)return!0;return!1}_checkAsyncNode(node,resultList){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];resultList.push(item.isAsync()),this._checkAsyncNode(item,resultList)}}async _executeAsync(node){if(this._runtimeService.isStopExecution())return Promise.resolve(AstNodePromiseType.ERROR);const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}await this._executeAsync(item)}return node.nodeType===NodeType.FUNCTION&&node.isAsync()?await node.executeAsync():node.execute(),Promise.resolve(AstNodePromiseType.SUCCESS)}_execute(node){if(this._runtimeService.isStopExecution())return AstNodePromiseType.ERROR;const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}this._execute(item)}return node.execute(),AstNodePromiseType.SUCCESS}},__name(_a7,"Interpreter"),_a7);Interpreter=__decorateClass$g([__decorateParam$g(0,IFormulaRuntimeService)],Interpreter);function isFirstChildParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER:!1}__name(isFirstChildParameter,"isFirstChildParameter");function isChildRunTimeParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER:!1}__name(isChildRunTimeParameter,"isChildRunTimeParameter");function getRootLexerHasValueNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(!currentLambdaPrivacyVar)return;const chainNode=currentLambdaPrivacyVar.get(lambdaParameter);return chainNode==null&&node.getValue()?node:getRootLexerHasValueNode(chainNode)}__name(getRootLexerHasValueNode,"getRootLexerHasValueNode");const _LambdaValueObjectObject=class _LambdaValueObjectObject extends BaseValueObject{constructor(_lambdaNode,_interpreter,_lambdaPrivacyVarKeys){super(0);__publicField(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=_lambdaNode,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys,this._lambdaPrivacyValueMap.clear()}static create(lambdaNode,interpreter,lambdaPrivacyVarKeys){return new _LambdaValueObjectObject(lambdaNode,interpreter,lambdaPrivacyVarKeys)}isLambda(){return!0}execute(...variants){const paramCount=this._lambdaPrivacyVarKeys.length;if(variants.length!==paramCount)return ErrorValueObject.create(ErrorType$1.VALUE);this._setLambdaPrivacyValueMap(variants),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let value;if(this._interpreter.checkAsyncNode(this._lambdaNode))value=new AsyncObject(this._interpreter.executeAsync(this._lambdaNode));else{const o=this._interpreter.execute(this._lambdaNode);o.isReferenceObject()?value=o.toArrayValueObject():value=o}return this._lambdaNode.setNotEmpty(!0),value}_setLambdaNodeValue(node){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER){const lambdaParameter=item.getLambdaParameter(),value=this._lambdaPrivacyValueMap.get(lambdaParameter);if(value)item.setValue(value);else{const currentLambdaPrivacyVar=item.getCurrentLambdaPrivacyVar(),node2=getRootLexerHasValueNode(currentLambdaPrivacyVar.get(lambdaParameter));node2!=null&&item.setValue(node2.getValue())}continue}this._setLambdaNodeValue(item)}}_setLambdaPrivacyValueMap(variants){for(let i=0;i<variants.length;i++){const variant=variants[i],key=this._lambdaPrivacyVarKeys[i];this._lambdaPrivacyValueMap.set(key,variant)}}};__name(_LambdaValueObjectObject,"LambdaValueObjectObject");let LambdaValueObjectObject=_LambdaValueObjectObject;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const _LambdaNode=class _LambdaNode extends BaseAstNode{constructor(token,_lambdaId,_interpreter,_lambdaPrivacyVarKeys){super(token);__publicField(this,"_isNotEmpty",!0);this._lambdaId=_lambdaId,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys}get nodeType(){return NodeType.LAMBDA}setNotEmpty(state=!1){this._isNotEmpty=state}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(LambdaValueObjectObject.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const children=this.getChildren(),childrenCount=children.length;this.setValue(children[childrenCount-1].getValue())}}};__name(_LambdaNode,"LambdaNode");let LambdaNode=_LambdaNode;var _a8;let LambdaNodeFactory=(_a8=class extends BaseAstNodeFactory{constructor(_runtimeService,_interpreter){super(),this._runtimeService=_runtimeService,this._interpreter=_interpreter}get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const children=param.getChildren(),lambdaVar=children[0];let parameterArray=children.slice(1,-1);const functionStatementNode=children[children.length-1];if(!(lambdaVar instanceof LexerNode&&functionStatementNode instanceof LexerNode))return ErrorNode.create(ErrorType$1.NAME);if(lambdaVar.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){const lambdaVarChildren=lambdaVar.getChildren();if(parameterArray.length!==lambdaVarChildren.length)return ErrorNode.create(ErrorType$1.VALUE)}else parameterArray=children.slice(0,-1);const lambdaId=core.Tools.generateRandomId(8),currentLambdaPrivacyVar=new Map;for(let i=0;i<parameterArray.length;i++){const parameter=parameterArray[i];if(parameter instanceof LexerNode){const variant=parameter.getChildren()[0];parameter.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER),currentLambdaPrivacyVar.set(variant.trim(),void 0)}else return ErrorNode.create(ErrorType$1.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(lambdaId,currentLambdaPrivacyVar),this._updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar),new LambdaNode(param.getToken(),lambdaId,this._interpreter,[...currentLambdaPrivacyVar.keys()])}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim().toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME))return this.create(param)}_updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){this._updateTree(functionStatementNode,lambdaId,currentLambdaPrivacyVar)}_updateTree(functionStatementNode,lambdaId,currentLambdaPrivacyVar){const children=functionStatementNode.getChildren(),childrenCount=children.length,firstChild=children[0];for(let i=0;i<childrenCount;i++){const node=children[i];if(!(isFirstChildParameter(firstChild)&&i!==0))if(node instanceof LexerNode)this._updateTree(node,lambdaId,currentLambdaPrivacyVar);else{const token=node.trim();if(currentLambdaPrivacyVar.has(token)){const newNode=new LexerNode;newNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER),newNode.setLambdaId(lambdaId),newNode.setLambdaPrivacyVar(currentLambdaPrivacyVar),newNode.setLambdaParameter(token),children[i]=newNode}}}}},__name(_a8,"LambdaNodeFactory"),_a8);LambdaNodeFactory=__decorateClass$f([__decorateParam$f(0,IFormulaRuntimeService),__decorateParam$f(1,core.Inject(Interpreter))],LambdaNodeFactory);function getRootLexerNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(currentLambdaPrivacyVar)return getRootLexerNode(currentLambdaPrivacyVar.get(lambdaParameter))}__name(getRootLexerNode,"getRootLexerNode");const _LambdaParameterNode=class _LambdaParameterNode extends BaseAstNode{constructor(token,_lambdaParameter,_currentLambdaPrivacyVar){super(token),this._lambdaParameter=_lambdaParameter,this._currentLambdaPrivacyVar=_currentLambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return NodeType.LAMBDA_PARAMETER}execute(){const node=getRootLexerNode(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(node)this.setValue(node.getValue());else{const value=this.getValue();(value==null||value.isError())&&this.setValue(ErrorValueObject.create(ErrorType$1.SPILL))}}};__name(_LambdaParameterNode,"LambdaParameterNode");let LambdaParameterNode=_LambdaParameterNode;const _LambdaParameterNodeFactory=class _LambdaParameterNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA_PARAMETER)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const currentLambdaPrivacyVar=param.getFunctionDefinitionPrivacyVar(),lambdaParameter=param.getLambdaParameter();return currentLambdaPrivacyVar?new LambdaParameterNode(param.getToken(),lambdaParameter,currentLambdaPrivacyVar):new ErrorNode(ErrorType$1.SPILL)}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER))return this.create(param)}};__name(_LambdaParameterNodeFactory,"LambdaParameterNodeFactory");let LambdaParameterNodeFactory=_LambdaParameterNodeFactory;const _NullNode=class _NullNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.NULL}execute(){this.setValue(NullValueObject.create())}};__name(_NullNode,"NullNode");let NullNode=_NullNode;var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const _OperatorNode=class _OperatorNode extends BaseAstNode{constructor(_operatorString,_functionExecutor){super(_operatorString),this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.OPERATOR}execute(){var _a24,_b;const children=this.getChildren();this._functionExecutor.name===FUNCTION_NAMES_META.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let object1=(_a24=children[0])==null?void 0:_a24.getValue(),object2=(_b=children[1])==null?void 0:_b.getValue();const token=this.getToken();if((object1==null||object2==null)&&token!==operatorToken.MINUS&&token!==operatorToken.PLUS){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}object1==null&&(object1=NullValueObject.create()),object2==null&&(object2=NullValueObject.create()),object1.isReferenceObject()&&(object1=object1.toArrayValueObject()),object2.isReferenceObject()&&(object2=object2.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(object1,object2))}};__name(_OperatorNode,"OperatorNode");let OperatorNode=_OperatorNode;var _a9;let OperatorNodeFactory=(_a9=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.OPERATOR)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){let functionName="";const tokenTrim=param;tokenTrim===operatorToken.PLUS?functionName=FUNCTION_NAMES_META.PLUS:tokenTrim===operatorToken.MINUS?functionName=FUNCTION_NAMES_META.MINUS:tokenTrim===operatorToken.MULTIPLY?functionName=FUNCTION_NAMES_META.MULTIPLY:tokenTrim===operatorToken.DIVIDED?functionName=FUNCTION_NAMES_META.DIVIDED:tokenTrim===operatorToken.CONCATENATE?functionName=FUNCTION_NAMES_TEXT.CONCATENATE:tokenTrim===operatorToken.POWER?functionName=FUNCTION_NAMES_MATH.POWER:OPERATOR_TOKEN_COMPARE_SET.has(tokenTrim)&&(functionName=FUNCTION_NAMES_META.COMPARE);const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new OperatorNode(tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(param instanceof LexerNode)return;const tokenTrim=param.trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&OPERATOR_TOKEN_SET.has(tokenTrim))return this.create(tokenTrim)}},__name(_a9,"OperatorNodeFactory"),_a9);OperatorNodeFactory=__decorateClass$e([__decorateParam$e(0,IFunctionService)],OperatorNodeFactory);const _SuperTableService=class _SuperTableService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_tableMap",new Map);__publicField(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(unitId,tableName){var _a24;(_a24=this._tableMap.get(unitId))==null||_a24.delete(tableName)}getTableMap(unitId){return this._tableMap.get(unitId)}getTableOptionMap(){return this._tableOptionMap}registerTable(unitId,tableName,reference){var _a24;this._tableMap.get(unitId)==null&&this._tableMap.set(unitId,new Map),(_a24=this._tableMap.get(unitId))==null||_a24.set(tableName,reference)}registerTableOptionMap(tableOption,tableOptionType){this._tableOptionMap.set(tableOption,tableOptionType)}};__name(_SuperTableService,"SuperTableService");let SuperTableService=_SuperTableService;const ISuperTableService=core.createIdentifier("univer.formula.super-table.service"),_TableReferenceObject=class _TableReferenceObject extends BaseReferenceObject{constructor(token,_tableData,_columnDataString,tableOptionMap){super(token),this._tableData=_tableData,this._columnDataString=_columnDataString;const sheetId=this._tableData.sheetId,range=this._tableData.range,titleMap=this._tableData.titleMap;this.setForcedSheetIdDirect(sheetId);const columnData=this._stringToColumnData(this._columnDataString,titleMap,tableOptionMap),startColumn=columnData.startColumn,endColumn=columnData.endColumn,type=columnData.type;let startRow=-1,endRow=-1;const tableStartRow=range.startRow,tableEndRow=range.startColumn;type===TableOptionType.ALL?(startRow=tableStartRow,endRow=tableEndRow):type===TableOptionType.DATA?(startRow=tableStartRow+1,endRow=tableEndRow):type===TableOptionType.HEADERS?(startRow=tableStartRow,endRow=tableStartRow):type===TableOptionType.TOTALS&&(startRow=tableEndRow,endRow=tableEndRow),this.setRangeData({startColumn,endColumn,startRow,endRow})}isTable(){return!0}_stringToColumnData(columnDataString,titleMap,tableOptionMap){columnDataString=columnDataString.substring(1,-1);const commaIndex=columnDataString.indexOf(matchToken.COMMA);let startColumn=-1,endColumn=-1,type=TableOptionType.ALL;if(commaIndex===-1){const data=this._columnHandler(columnDataString,titleMap);startColumn=data.startColumn,endColumn=data.endColumn}else{const rowString=columnDataString.substring(0,commaIndex).substring(1,-1),columnString=columnDataString.substring(commaIndex+1),data=this._columnHandler(columnString,titleMap,!0);startColumn=data.startColumn,endColumn=data.endColumn,type=tableOptionMap.get(rowString),type||(type=TableOptionType.ALL)}return{startColumn,endColumn,type}}_columnHandler(rightString,titleMap,isSingle=!1){var _a24,_b,_c;let startColumn=-1,endColumn=-1;const colonIndex=rightString.indexOf(matchToken.COLON);if(new RegExp($SUPER_TABLE_COLUMN_REGEX,"g").test(rightString)){const startColumnString=rightString.substring(0,colonIndex).substring(1,-1),endColumnString=rightString.substring(colonIndex+1).substring(1,-1);startColumn=(_a24=titleMap.get(startColumnString))!=null?_a24:-1,endColumn=(_b=titleMap.get(endColumnString))!=null?_b:-1}else isSingle&&(rightString=rightString.substring(1,-1)),startColumn=(_c=titleMap.get(rightString))!=null?_c:-1,endColumn=startColumn;return{startColumn,endColumn}}};__name(_TableReferenceObject,"TableReferenceObject");let TableReferenceObject=_TableReferenceObject;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");const _ReferenceNode=class _ReferenceNode extends BaseAstNode{constructor(_accessor,_operatorString,_referenceObject,_isPrepareMerge=!1){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._referenceObject=_referenceObject,this._isPrepareMerge=_isPrepareMerge}get nodeType(){return NodeType.REFERENCE}execute(){const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),runtimeService=this._accessor.get(IFormulaRuntimeService);this._referenceObject.setDefaultUnitId(runtimeService.currentUnitId),this._referenceObject.setDefaultSheetId(runtimeService.currentSubUnitId),this._referenceObject.setForcedSheetId(currentConfigService.getSheetNameMap()),this._referenceObject.setUnitData(currentConfigService.getUnitData()),this._referenceObject.setArrayFormulaCellData(currentConfigService.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(runtimeService.getUnitData()),this._referenceObject.setUnitStylesData(currentConfigService.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(runtimeService.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(runtimeService.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();this._referenceObject.setRefOffset(x,y),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(ErrorValueObject.create(ErrorType$1.NAME)):this.setValue(this._referenceObject)}};__name(_ReferenceNode,"ReferenceNode");let ReferenceNode=_ReferenceNode;var _a10;let ReferenceNodeFactory=(_a10=class extends BaseAstNodeFactory{constructor(_superTableService,_formulaRuntimeService,_functionService,_injector){super(),this._superTableService=_superTableService,this._formulaRuntimeService=_formulaRuntimeService,this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.REFERENCE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){var _a24,_b;let isLexerNode=!1,tokenTrimPre,isPrepareMerge=!1;param instanceof LexerNode?(isLexerNode=!0,tokenTrimPre=param.getToken().trim(),((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON&&(isPrepareMerge=!0)):tokenTrimPre=param.trim();const{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(tokenTrimPre,this._functionService,this._injector);if(!isLexerNode&&tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let node;if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(tokenTrim))node=new ReferenceNode(this._injector,tokenTrim,new CellReferenceObject(tokenTrim),isPrepareMerge);else if(isLexerNode&&this._checkParentIsUnionOperator(param))new RegExp(REFERENCE_REGEX_SINGLE_ROW).test(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new RowReferenceObject(tokenTrim),isPrepareMerge):new RegExp(REFERENCE_REGEX_SINGLE_COLUMN).test(tokenTrim)&&(node=new ReferenceNode(this._injector,tokenTrim,new ColumnReferenceObject(tokenTrim),isPrepareMerge));else{const unitId=this._formulaRuntimeService.currentUnitId,tableMap=this._superTableService.getTableMap(unitId),$regex=new RegExp($SUPER_TABLE_COLUMN_REGEX,"g"),tableName=tokenTrim.replace($regex,"");if(!isLexerNode&&(tableMap!=null&&tableMap.has(tableName))){const columnResult=$regex.exec(tokenTrim);let columnDataString="";columnResult&&(columnDataString=columnResult[0]);const tableData=tableMap.get(tableName),tableOption=this._superTableService.getTableOptionMap();node=new ReferenceNode(this._injector,tokenTrim,new TableReferenceObject(tokenTrim,tableData,columnDataString,tableOption))}}if(node)return atPrefixNode?node.setParent(atPrefixNode):minusPrefixNode&&node.setParent(minusPrefixNode),node}_checkParentIsUnionOperator(param){var _a24,_b;return((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON}},__name(_a10,"ReferenceNodeFactory"),_a10);ReferenceNodeFactory=__decorateClass$d([__decorateParam$d(0,ISuperTableService),__decorateParam$d(1,IFormulaRuntimeService),__decorateParam$d(2,IFunctionService),__decorateParam$d(3,core.Inject(core.Injector))],ReferenceNodeFactory);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const _SuffixNode=class _SuffixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.SUFFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");if(this._operatorString===suffixToken.PERCENTAGE){if(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(value,NumberValueObject.create(100)),result.isNumber()){const value2=Number(result.getValue());result=NumberValueObject.create(value2,"0.00%")}}else this._operatorString===suffixToken.POUND?result=this._handlerPound(value):result=ErrorValueObject.create(ErrorType$1.VALUE);this.setValue(result)}_handlerPound(value){var _a24,_b,_c,_d;if(!value.isReferenceObject()||!value.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),lexer=this._accessor.get(Lexer),cellValue=value,range=cellValue.getRangePosition(),unitId=cellValue.getUnitId(),sheetId=cellValue.getSheetId(),formulaData=currentConfigService.getFormulaData(),formulaString=(_d=(_c=(_b=(_a24=formulaData==null?void 0:formulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[range.startRow])==null?void 0:_c[range.startColumn])==null?void 0:_d.f;return formulaString&&lexer.treeBuilder(formulaString),ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_SuffixNode,"SuffixNode");let SuffixNode=_SuffixNode;var _a11;let SuffixNodeFactory=(_a11=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.SUFFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===suffixToken.PERCENTAGE)functionName=FUNCTION_NAMES_META.DIVIDED;else return tokenTrim===suffixToken.POUND?new SuffixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new SuffixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a11,"SuffixNodeFactory"),_a11);SuffixNodeFactory=__decorateClass$c([__decorateParam$c(0,IFunctionService),__decorateParam$c(1,core.Inject(core.Injector))],SuffixNodeFactory);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const _UnionNode=class _UnionNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.UNION}execute(){const children=this.getChildren(),leftNode=children[0].getValue(),rightNode=children[1].getValue();if(leftNode==null||rightNode==null)throw new Error("leftNode and rightNode");let result;this._operatorString===matchToken.COLON?result=this._unionFunction(leftNode,rightNode):result=ErrorValueObject.create(ErrorType$1.NAME),this.setValue(result)}_unionFunction(variant1,variant2){return variant1.isError()||variant2.isError()||!variant1.isReferenceObject()||!variant2.isReferenceObject()?ErrorValueObject.create(ErrorType$1.REF):(variant1=variant1,variant2=variant2,variant1.isCell()&&variant2.isCell()||variant1.isRow()&&variant2.isRow()||variant1.isColumn()&&variant2.isColumn()?variant1.unionBy(variant2):ErrorValueObject.create(ErrorType$1.NAME))}};__name(_UnionNode,"UnionNode");let UnionNode=_UnionNode;var _a12;let UnionNodeFactory=(_a12=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.UNION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){return new UnionNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&tokenTrim===matchToken.COLON)return this.create(tokenTrim)}},__name(_a12,"UnionNodeFactory"),_a12);UnionNodeFactory=__decorateClass$b([__decorateParam$b(0,IFunctionService)],UnionNodeFactory);const _ValueNode=class _ValueNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.VALUE}execute(){this.setValue(ValueObjectFactory.create(this._operatorString))}};__name(_ValueNode,"ValueNode");let ValueNode=_ValueNode;const _ValueNodeFactory=class _ValueNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.VALUE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}_checkValueNode(token){if(Number.isNaN(Number(token))){const tokenTrim=token.trim(),startToken=tokenTrim.charAt(0),endToken=tokenTrim.charAt(tokenTrim.length-1);if(ERROR_TYPE_SET.has(tokenTrim))return this.create(tokenTrim);if(startToken==='"'&&endToken==='"')return this.create(tokenTrim);if(startToken==="{"&&endToken==="}")return this.create(tokenTrim);const tokenTrimUpper=tokenTrim.toUpperCase();if(tokenTrimUpper===BooleanValue.TRUE||tokenTrimUpper===BooleanValue.FALSE)return this.create(tokenTrimUpper)}else return this.create(token)}create(param){return new ValueNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return this._checkValueNode(param)}};__name(_ValueNodeFactory,"ValueNodeFactory");let ValueNodeFactory=_ValueNodeFactory;function getAstNodeTopParent(node){let parent=node;for(;parent!=null&&parent.getParent();)parent=parent.getParent();return parent}__name(getAstNodeTopParent,"getAstNodeTopParent");var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a"),_a13;let AstTreeBuilder=(_a13=class extends core.Disposable{constructor(_runtimeService,_astRootNodeFactory,_functionNodeFactory,_lambdaNodeFactory,_lambdaParameterNodeFactory,_operatorNodeFactory,_prefixNodeFactory,_referenceNodeFactory,_suffixNodeFactory,_unionNodeFactory,_valueNodeFactory){super();__publicField(this,"_astNodeFactoryList",[]);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._runtimeService=_runtimeService,this._astRootNodeFactory=_astRootNodeFactory,this._functionNodeFactory=_functionNodeFactory,this._lambdaNodeFactory=_lambdaNodeFactory,this._lambdaParameterNodeFactory=_lambdaParameterNodeFactory,this._operatorNodeFactory=_operatorNodeFactory,this._prefixNodeFactory=_prefixNodeFactory,this._referenceNodeFactory=_referenceNodeFactory,this._suffixNodeFactory=_suffixNodeFactory,this._unionNodeFactory=_unionNodeFactory,this._valueNodeFactory=_valueNodeFactory,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(nodeFactory=>{nodeFactory.dispose()}),this._astNodeFactoryList=[]}parse(lexerNode,refOffsetX=0,refOffsetY=0){const astNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT);this._refOffsetX=refOffsetX,this._refOffsetY=refOffsetY;const node=this._parse(lexerNode,astNode);return lexerNode.hasDefinedNames()&&(node==null||node.setDefinedNames(lexerNode.getDefinedNames())),node}_lambdaParameterHandler(lexerNode,parent){if(parent.getLambdaId==null)return ErrorNode.create(ErrorType$1.VALUE);const lambdaId=parent.getLambdaId(),parentAstNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),currentLambdaPrivacyVar=this._runtimeService.getFunctionDefinitionPrivacyVar(lambdaId);if(!currentLambdaPrivacyVar)return!1;const currentLambdaPrivacyVarKeys=[...currentLambdaPrivacyVar.keys()],children=lexerNode.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item instanceof LexerNode)this._parse(item,parentAstNode);else return!1}const parentChildren=parentAstNode.getChildren(),parentChildrenCount=parentChildren.length;for(let i=0;i<parentChildrenCount;i++){const item=parentChildren[i];currentLambdaPrivacyVar.set(currentLambdaPrivacyVarKeys[i],item)}return parentAstNode.setParent(parent),parent}_changeLetToLambda(letLexerNode){const letChildren=letLexerNode.getChildren(),letChildrenCount=letChildren.length;if(letChildrenCount%2!==1||letChildrenCount===0)return;const newLambdaNode=new LexerNode;newLambdaNode.setToken(DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME);const newLambdaParameterNode=new LexerNode;newLambdaParameterNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER);const copyChildren=[...letChildren];for(let i=0;i<letChildrenCount;i++){const child=copyChildren[i];if(!(child instanceof LexerNode))return;i%2===0?child.changeToParent(newLambdaNode):child.changeToParent(newLambdaParameterNode)}newLambdaNode.addChildrenFirst(newLambdaParameterNode),newLambdaParameterNode.setParent(newLambdaNode);const parent=letLexerNode.getParent();return parent==null||parent.replaceChild(letLexerNode,newLambdaNode),newLambdaNode}_parse(lexerNode,parent){const children=lexerNode.getChildren(),childrenCount=children.length,calculateStack=[];let currentAstNode=null;const token=lexerNode.getToken().trim().toUpperCase();if(token===DEFAULT_TOKEN_LET_FUNCTION_NAME){const resultNode=this._changeLetToLambda(lexerNode);return resultNode!=null?this._parse(resultNode,parent):ErrorNode.create(ErrorType$1.ERROR)}if(token===DEFAULT_TOKEN_TYPE_PARAMETER){if(currentAstNode=parent,childrenCount===0)return new NullNode(DEFAULT_TOKEN_TYPE_ROOT).setParent(parent),currentAstNode}else{if(token===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){let resultNode=this._lambdaParameterHandler(lexerNode,parent);return resultNode===!1&&(resultNode=ErrorNode.create(ErrorType$1.ERROR)),resultNode}if(currentAstNode=this._checkAstNode(lexerNode),currentAstNode==null)return ErrorNode.create(ErrorType$1.NAME)}const firstChild=children[0];for(let i=0;i<childrenCount;i++){const item=children[i];if(isFirstChildParameter(firstChild)){if(i!==0&&i!==childrenCount-1)continue}else if(isChildRunTimeParameter(item)&&i!==childrenCount-1)continue;let astNode=null;if(item instanceof LexerNode){if(astNode=this._parse(item,currentAstNode),astNode===currentAstNode)continue}else astNode=this._checkAstNode(item);if(astNode==null)return ErrorNode.create(ErrorType$1.NAME);if(astNode=getAstNodeTopParent(astNode),astNode==null)return;switch(astNode.nodeType){case NodeType.ERROR:return astNode;case NodeType.FUNCTION:calculateStack.push(astNode);break;case NodeType.LAMBDA:calculateStack.push(astNode);break;case NodeType.LAMBDA_PARAMETER:calculateStack.push(astNode);break;case NodeType.OPERATOR:{const parameterNode1=calculateStack.pop(),parameterNode2=calculateStack.pop();parameterNode2&&parameterNode2.setParent(astNode),parameterNode1&&parameterNode1.setParent(astNode),calculateStack.push(astNode);break}case NodeType.REFERENCE:astNode.setRefOffset(this._refOffsetX,this._refOffsetY),calculateStack.push(astNode);break;case NodeType.ROOT:calculateStack.push(astNode);break;case NodeType.UNION:calculateStack.push(astNode);break;case NodeType.VALUE:calculateStack.push(astNode);break;case NodeType.PREFIX:calculateStack.push(astNode);break;case NodeType.SUFFIX:calculateStack.push(astNode);break}}const calculateStackCount=calculateStack.length;for(let i=0;i<calculateStackCount;i++)calculateStack[i].setParent(currentAstNode);return currentAstNode}_checkAstNode(item){let astNode=null;const astNodeFactoryListCount=this._astNodeFactoryList.length;for(let x=0;x<astNodeFactoryListCount&&(astNode=this._astNodeFactoryList[x].checkAndCreateNodeType(item),astNode==null);x++);return astNode}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(core.sortRules)}},__name(_a13,"AstTreeBuilder"),_a13);AstTreeBuilder=__decorateClass$a([__decorateParam$a(0,IFormulaRuntimeService),__decorateParam$a(1,core.Inject(AstRootNodeFactory)),__decorateParam$a(2,core.Inject(FunctionNodeFactory)),__decorateParam$a(3,core.Inject(LambdaNodeFactory)),__decorateParam$a(4,core.Inject(LambdaParameterNodeFactory)),__decorateParam$a(5,core.Inject(OperatorNodeFactory)),__decorateParam$a(6,core.Inject(PrefixNodeFactory)),__decorateParam$a(7,core.Inject(ReferenceNodeFactory)),__decorateParam$a(8,core.Inject(SuffixNodeFactory)),__decorateParam$a(9,core.Inject(UnionNodeFactory)),__decorateParam$a(10,core.Inject(ValueNodeFactory))],AstTreeBuilder);const _FeatureCalculationManagerService=class _FeatureCalculationManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_referenceExecutorMap",new Map);__publicField(this,"_onChanged$",new rxjs.Subject);__publicField(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(unitId,subUnitId,featureIds){featureIds.forEach(featureId=>{var _a24,_b;(_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))==null||_b.delete(featureId)}),this._onChanged$.next({unitId,subUnitId,featureIds})}get(unitId,subUnitId,featureId){var _a24,_b;return(_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))==null?void 0:_b.get(featureId)}has(unitId,subUnitId,featureId){var _a24,_b;return!!((_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))!=null&&_b.has(featureId))}register(unitId,subUnitId,featureId,referenceExecutor){let unitMap=this._referenceExecutorMap.get(unitId);unitMap||(unitMap=new Map,this._referenceExecutorMap.set(unitId,unitMap));let subUnitMap=unitMap.get(subUnitId);subUnitMap||(subUnitMap=new Map,unitMap.set(subUnitId,subUnitMap)),this._onChanged$.next({unitId,subUnitId,featureIds:[featureId]}),subUnitMap.set(featureId,referenceExecutor)}getReferenceExecutorMap(){return this._referenceExecutorMap}};__name(_FeatureCalculationManagerService,"FeatureCalculationManagerService");let FeatureCalculationManagerService=_FeatureCalculationManagerService;const IFeatureCalculationManagerService=core.createIdentifier("univer.formula.feature-calculation-manager.service"),_OtherFormulaManagerService=class _OtherFormulaManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(searchParam){var _a24,_b,_c;const{unitId,subUnitId,formulaId}=searchParam;(_c=(_b=(_a24=this._otherFormulaData)==null?void 0:_a24[unitId])==null?void 0:_b[subUnitId])==null||delete _c[formulaId]}get(searchParam){var _a24,_b;const{unitId,subUnitId,formulaId}=searchParam;return(_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId]}has(searchParam){var _a24,_b;const{unitId,subUnitId,formulaId}=searchParam;return((_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId])!=null}register(insertParam){const{unitId,subUnitId,formulaId,item}=insertParam;this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][subUnitId]||(this._otherFormulaData[unitId][subUnitId]={}),this._otherFormulaData[unitId][subUnitId][formulaId]=item}batchRegister(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{const item=subUnit[formulaId];if(item==null)return!0;this.register({unitId,subUnitId,formulaId,item})})})})}batchRemove(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{this.remove({unitId,subUnitId,formulaId})})})})}getOtherFormulaData(){return this._otherFormulaData}};__name(_OtherFormulaManagerService,"OtherFormulaManagerService");let OtherFormulaManagerService=_OtherFormulaManagerService;const IOtherFormulaManagerService=core.createIdentifier("univer.formula.other-formula-manager.service"),_FormulaDependencyTree=class _FormulaDependencyTree extends core.Disposable{constructor(){super(...arguments);__publicField(this,"node");__publicField(this,"children",[]);__publicField(this,"parents",[]);__publicField(this,"formula","");__publicField(this,"row",-1);__publicField(this,"column",-1);__publicField(this,"rowCount",Number.NEGATIVE_INFINITY);__publicField(this,"columnCount",Number.NEGATIVE_INFINITY);__publicField(this,"subUnitId","");__publicField(this,"unitId","");__publicField(this,"rangeList",[]);__publicField(this,"formulaId");__publicField(this,"featureId");__publicField(this,"isPassive",!0);__publicField(this,"getDirtyData");__publicField(this,"_state",0)}dispose(){var _a24;super.dispose(),this.children=[],this.rangeList=[],this.parents=[],(_a24=this.node)==null||_a24.dispose()}disposeWithChildren(){this.children.forEach(tree=>{tree.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(range){const startRow=range.startRow,startColumn=range.startColumn,endRow=range.endRow,endColumn=range.endColumn;return!(this.row<startRow||this.row>endRow||this.column<startColumn||this.column>endColumn)}dependencyRange(dependencyRangeList,dirtyUnitSheetNameMap,unitExcludedCell){var _a24,_b;if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId,range}=unitRange.gridRange;if(((_a24=dirtyUnitSheetNameMap[unitId])==null?void 0:_a24[sheetId])!=null)return!0;if(!dependencyRangeList.has(unitId))continue;const sheetRangeMap=dependencyRangeList.get(unitId);if(!sheetRangeMap.has(sheetId))continue;const dependencyRanges=sheetRangeMap.get(sheetId),excludedCell=(_b=unitExcludedCell==null?void 0:unitExcludedCell[unitId])==null?void 0:_b[sheetId];let{startRow:rangeStartRow,endRow:rangeEndRow,startColumn:rangeStartColumn,endColumn:rangeEndColumn}=range;Number.isNaN(rangeStartRow)&&(rangeStartRow=0),Number.isNaN(rangeStartColumn)&&(rangeStartColumn=0),Number.isNaN(rangeEndRow)&&(rangeEndRow=Number.POSITIVE_INFINITY),Number.isNaN(rangeEndColumn)&&(rangeEndColumn=Number.POSITIVE_INFINITY);for(const dependencyRange of dependencyRanges){const{startRow,startColumn,endRow,endColumn}=dependencyRange;if(!(rangeStartRow>endRow||rangeEndRow<startRow||rangeStartColumn>endColumn||rangeEndColumn<startColumn)){let isInclude=!0;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(row>=rangeStartRow&&row<=rangeEndRow&&column>=rangeStartColumn&&column<=rangeEndColumn)return isInclude=!1,!1}),isInclude)return!0}}}return!1}pushChildren(tree){this.children.push(tree),tree._pushParent(this)}pushRangeList(range){this.rangeList.push(range)}dependency(dependenceTree){if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],unitId=unitRange.gridRange.unitId,sheetId=unitRange.gridRange.sheetId,range=unitRange.gridRange.range;if(dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range))return!0}return!1}_pushParent(tree){this.parents.push(tree)}};__name(_FormulaDependencyTree,"FormulaDependencyTree");let FormulaDependencyTree=_FormulaDependencyTree;const _FormulaDependencyTreeCache=class _FormulaDependencyTreeCache extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_cacheItems",new Map)}dispose(){this.clear()}size(){return this._cacheItems.size}get length(){return this._cacheItems.size}add(unitRangeWithToken,tree){const{token}=unitRangeWithToken;if(!this._cacheItems.has(token)){this._cacheItems.set(token,{unitRangeWithToken,treeList:[tree]});return}this._cacheItems.get(token).treeList.push(tree)}clear(){this._cacheItems.clear()}remove(token,tree){if(!this._cacheItems.has(token))return;const cacheItem=this._cacheItems.get(token),index=cacheItem.treeList.indexOf(tree);index!==-1&&cacheItem.treeList.splice(index,1)}delete(token){this._cacheItems.delete(token)}dependency(dependenceTree){this._cacheItems.forEach(cacheItem=>{const{unitRangeWithToken,treeList}=cacheItem,{gridRange}=unitRangeWithToken,{unitId,sheetId,range}=gridRange;dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range)&&treeList.forEach(tree=>{if(tree===dependenceTree||tree.children.includes(dependenceTree))return!0;tree.pushChildren(dependenceTree)})})}};__name(_FormulaDependencyTreeCache,"FormulaDependencyTreeCache");let FormulaDependencyTreeCache=_FormulaDependencyTreeCache;const _DependencyManagerService=class _DependencyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{});__publicField(this,"_featureFormulaData",{});__publicField(this,"_formulaData",{})}dispose(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={}}getAllTree(){const trees=[];return Object.values(this._otherFormulaData).forEach(unit=>{if(unit==null)return!0;Object.values(unit).forEach(sheet=>{Object.values(sheet).forEach(formula=>{formula&&(formula.resetState(),trees.push(formula))})})}),Object.values(this._featureFormulaData).forEach(unit=>{if(unit==null)return!0;Object.values(unit).forEach(sheet=>{Object.values(sheet).forEach(feature=>{feature&&(feature.resetState(),trees.push(feature))})})}),Object.values(this._formulaData).map(unit=>unit==null?[]:Object.values(unit).forEach(sheet=>sheet.forValue((row,col,item)=>{item&&(item.resetState(),trees.push(item))}))),trees}buildDependencyTree(shouldBeBuildTrees,dependencyTrees){const allTrees=this.getAllTree();return shouldBeBuildTrees.length===0?(this._buildReverseDependency(allTrees,dependencyTrees),allTrees):(shouldBeBuildTrees instanceof FormulaDependencyTreeCache?this._buildDependencyTree(allTrees,shouldBeBuildTrees,dependencyTrees||[]):this._buildDependencyTree(allTrees,shouldBeBuildTrees,shouldBeBuildTrees),allTrees)}_buildDependencyTree(allTrees,shouldBeBuildTrees,dependencyTrees){allTrees.forEach(tree=>{shouldBeBuildTrees instanceof FormulaDependencyTreeCache?shouldBeBuildTrees.dependency(tree):shouldBeBuildTrees.forEach(shouldBeBuildTree=>{if(tree===shouldBeBuildTree||shouldBeBuildTree.children.includes(tree))return!0;shouldBeBuildTree.dependency(tree)&&shouldBeBuildTree.pushChildren(tree)})}),this._buildReverseDependency(allTrees,dependencyTrees)}_buildReverseDependency(allTrees,dependencyTrees){allTrees.forEach(tree=>{dependencyTrees==null||dependencyTrees.forEach(dependencyTree=>{if(tree===dependencyTree||tree.children.includes(dependencyTree))return!0;tree.dependency(dependencyTree)&&tree.pushChildren(dependencyTree)})})}clearDependencyForTree(shouldBeClearTree){if(shouldBeClearTree==null)return;const parents=shouldBeClearTree.parents,children=shouldBeClearTree.children;parents.forEach(parent=>{parent.children=parent.children.filter(child=>child!==shouldBeClearTree)}),children.forEach(child=>{child.parents=child.parents.filter(parent=>parent!==shouldBeClearTree)}),this._buildDependencyTree(parents,children,children),shouldBeClearTree.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={}}addOtherFormulaDependency(unitId,sheetId,formulaId,dependencyTree){this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][sheetId]||(this._otherFormulaData[unitId][sheetId]={}),this._otherFormulaData[unitId][sheetId][formulaId]=dependencyTree}removeOtherFormulaDependency(unitId,sheetId,formulaIds){this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId]&&formulaIds.forEach(formulaId=>{const deleteTree=this._otherFormulaData[unitId][sheetId][formulaId];this.clearDependencyForTree(deleteTree),delete this._otherFormulaData[unitId][sheetId][formulaId]})}getOtherFormulaDependency(unitId,sheetId,formulaId){var _a24,_b;return(_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[formulaId]}hasOtherFormulaDependency(unitId,sheetId,formulaId){var _a24,_b;return((_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[formulaId])!=null}addFeatureFormulaDependency(unitId,sheetId,featureId,dependencyTree){this._featureFormulaData[unitId]||(this._featureFormulaData[unitId]={}),this._featureFormulaData[unitId][sheetId]||(this._featureFormulaData[unitId][sheetId]={}),this._featureFormulaData[unitId][sheetId][featureId]=dependencyTree}removeFeatureFormulaDependency(unitId,sheetId,featureIds){this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId]&&featureIds.forEach(featureId=>{const deleteTree=this._featureFormulaData[unitId][sheetId][featureId];this.clearDependencyForTree(deleteTree),delete this._featureFormulaData[unitId][sheetId][featureId]})}getFeatureFormulaDependency(unitId,sheetId,featureId){var _a24,_b;return(_b=(_a24=this._featureFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[featureId]}hasFeatureFormulaDependency(unitId,sheetId,featureId){var _a24,_b;return((_b=(_a24=this._featureFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[featureId])!=null}addFormulaDependency(unitId,sheetId,row,column,dependencyTree){this._formulaData[unitId]||(this._formulaData[unitId]={}),this._formulaData[unitId][sheetId]||(this._formulaData[unitId][sheetId]=new core.ObjectMatrix),this._formulaData[unitId][sheetId].setValue(row,column,dependencyTree)}removeFormulaDependency(unitId,sheetId,row,column){if(this._formulaData[unitId]&&this._formulaData[unitId][sheetId]){const deleteTree=this._formulaData[unitId][sheetId].getValue(row,column);this.clearDependencyForTree(deleteTree),this._formulaData[unitId][sheetId].realDeleteValue(row,column)}}clearFormulaDependency(unitId,sheetId){this._formulaData[unitId]&&this._formulaData[unitId][sheetId]&&this._formulaData[unitId][sheetId].reset()}hasFormulaDependency(unitId,sheetId,row,column){var _a24,_b;return((_b=(_a24=this._formulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.getValue(row,column))!=null}};__name(_DependencyManagerService,"DependencyManagerService");let DependencyManagerService=_DependencyManagerService;const IDependencyManagerService=core.createIdentifier("univer.formula.dependency-manager.service");var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const FORMULA_CACHE_LRU_COUNT=1e5;var _a14;let FormulaDependencyGenerator=(_a14=class extends core.Disposable{constructor(_currentConfigService,_runtimeService,_otherFormulaManagerService,_featureCalculationManagerService,_interpreter,_astTreeBuilder,_lexer,_dependencyManagerService){super();__publicField(this,"_updateRangeFlattenCache",new Map);__publicField(this,"_dirtyUnitSheetNameMap",{});__publicField(this,"_formulaASTCache",new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT));this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._otherFormulaManagerService=_otherFormulaManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder,this._lexer=_lexer,this._dependencyManagerService=_dependencyManagerService}dispose(){this._updateRangeFlattenCache.clear(),this._formulaASTCache.clear(),this._dirtyUnitSheetNameMap={}}async generate(){this._updateRangeFlatten();const formulaData=this._currentConfigService.getFormulaData(),otherFormulaData=this._otherFormulaManagerService.getOtherFormulaData(),unitData=this._currentConfigService.getUnitData(),{treeList,dependencyTreeCache}=await this._generateTreeList(formulaData,otherFormulaData,unitData),updateTreeList=this._getUpdateTreeListAndMakeDependency(treeList,dependencyTreeCache);let finalTreeList=this._calculateRunList(updateTreeList);return this._dependencyFeatureCalculation(finalTreeList)&&(finalTreeList.forEach(tree=>{tree.resetState()}),finalTreeList=this._calculateRunList(finalTreeList)),this._checkIsCycleDependency(finalTreeList)&&this._runtimeService.enableCycleDependency(),Promise.resolve(finalTreeList)}_isCyclicUtil(node,visited,recursionStack){if(!visited.has(node)){visited.add(node),recursionStack.add(node);for(let i=0;i<node.children.length;i++)if(!visited.has(node.children[i])&&this._isCyclicUtil(node.children[i],visited,recursionStack)||recursionStack.has(node.children[i]))return!0}return recursionStack.delete(node),!1}_checkIsCycleDependency(treeList){const visited=new Set,recursionStack=new Set;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._isCyclicUtil(tree,visited,recursionStack)===!0)return!0}return!1}async _generateTreeList(formulaData,otherFormulaData,unitData){const formulaDataKeys=Object.keys(formulaData),otherFormulaDataKeys=Object.keys(otherFormulaData),treeList=[];this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(formulaDataKeys,formulaData,unitData,treeList),this._registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList),this._registerFeatureFormulas(treeList);const dependencyTreeCache=new FormulaDependencyTreeCache;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId),tree.node==null)continue;const rangeList=await this._getRangeListByNode(tree.node);for(let r=0,rLen=rangeList.length;r<rLen;r++){const range=rangeList[r];tree.pushRangeList(range),dependencyTreeCache.add(range,tree)}}return{treeList,dependencyTreeCache}}_registerFeatureFormulas(treeList){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{treeList.push(this._getFeatureFormulaTree(featureId,params))})})})}_getFeatureFormulaTree(featureId,params){const{unitId,subUnitId,dependencyRanges,getDirtyData}=params,FDtree=new FormulaDependencyTree;return FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.getDirtyData=getDirtyData,FDtree.featureId=featureId,FDtree.rangeList=dependencyRanges.map(range=>({gridRange:range,token:serializeRangeToRefString({...range,sheetName:this._currentConfigService.getSheetName(range.unitId,range.sheetId)})})),this._dependencyManagerService.addFeatureFormulaDependency(unitId,subUnitId,featureId,FDtree),FDtree}_registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList){for(const unitId of otherFormulaDataKeys){const subComponentData=otherFormulaData[unitId];if(subComponentData==null)continue;const subComponentKeys=Object.keys(subComponentData);for(const subUnitId of subComponentKeys){const subFormulaData=subComponentData[subUnitId];if(subFormulaData==null)continue;const subFormulaDataKeys=Object.keys(subFormulaData);for(const subFormulaDataId of subFormulaDataKeys){if(this._dependencyManagerService.hasOtherFormulaDependency(unitId,subUnitId,subFormulaDataId))continue;const formulaDataItem=subFormulaData[subFormulaDataId],{f:formulaString}=formulaDataItem,node=this._generateAstNode(unitId,formulaString),FDtree=new FormulaDependencyTree;FDtree.node=node,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.formulaId=subFormulaDataId,this._dependencyManagerService.addOtherFormulaDependency(unitId,subUnitId,subFormulaDataId,FDtree),treeList.push(FDtree)}}}}_registerFormulas(formulaDataKeys,formulaData,unitData,treeList){for(const unitId of formulaDataKeys){const sheetData=formulaData[unitId];if(sheetData==null)continue;const sheetDataKeys=Object.keys(sheetData);for(const sheetId of sheetDataKeys)new core.ObjectMatrix(sheetData[sheetId]||{}).forValue((row,column,formulaDataItem)=>{if(formulaDataItem==null)return!0;const{f:formulaString,x,y}=formulaDataItem;if(this._dependencyManagerService.hasFormulaDependency(unitId,sheetId,row,column))return!0;const node=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree,sheetItem=unitData[unitId][sheetId];FDtree.node=node,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=sheetId,FDtree.row=row,FDtree.column=column,FDtree.rowCount=sheetItem.rowCount,FDtree.columnCount=sheetItem.columnCount,this._dependencyManagerService.addFormulaDependency(unitId,sheetId,row,column,FDtree),treeList.push(FDtree)})}}_updateRangeFlatten(){const forceCalculate=this._currentConfigService.isForceCalculate(),dirtyRanges=this._currentConfigService.getDirtyRanges();if(!forceCalculate){this._updateRangeFlattenCache.clear();for(let i=0;i<dirtyRanges.length;i++){const gridRange=dirtyRanges[i],range=gridRange.range,sheetId=gridRange.sheetId,unitId=gridRange.unitId;this._addFlattenCache(unitId,sheetId,range)}this._dirtyUnitSheetNameMap=this._currentConfigService.getDirtyNameMap()}}_generateAstNode(unitId,formulaString,refOffsetX=0,refOffsetY=0){let astNode=this._formulaASTCache.get(`${unitId}${formulaString}##${refOffsetX}-${refOffsetY}`);if(astNode&&!this._isDirtyDefinedForNode(astNode))return astNode;const lexerNode=this._lexer.treeBuilder(formulaString);if(ERROR_TYPE_SET.has(lexerNode))return ErrorNode.create(lexerNode);if(astNode=this._astTreeBuilder.parse(lexerNode,refOffsetX,refOffsetY),astNode==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${unitId}${formulaString}##${refOffsetX}-${refOffsetY}`,astNode),astNode}_addFlattenCache(unitId,sheetId,range){let unitMatrix=this._updateRangeFlattenCache.get(unitId);unitMatrix==null&&(unitMatrix=new Map,this._updateRangeFlattenCache.set(unitId,unitMatrix));let ranges=unitMatrix.get(sheetId);ranges==null&&(ranges=[],unitMatrix.set(sheetId,ranges)),ranges.push(range)}_isPreCalculateNode(node){return node.nodeType===NodeType.UNION||node.nodeType===NodeType.PREFIX&&node.getToken()===prefixToken.AT||node.nodeType===NodeType.SUFFIX&&node.getToken()===suffixToken.POUND}_nodeTraversalRef(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(this._isPreCalculateNode(item)){result.push(item);continue}else item.nodeType===NodeType.REFERENCE&&result.push(item);this._nodeTraversalRef(item,result)}}_nodeTraversalReferenceFunction(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.nodeType===NodeType.FUNCTION&&item.isAddress()){result.push(item);continue}this._nodeTraversalReferenceFunction(item,result)}}async _executeNode(node){let value;return this._interpreter.checkAsyncNode(node)?value=await this._interpreter.executeAsync(node):value=this._interpreter.execute(node),value}async _getRangeListByNode(node){const preCalculateNodeList=[],referenceFunctionList=[];this._nodeTraversalRef(node,preCalculateNodeList),this._nodeTraversalReferenceFunction(node,referenceFunctionList);const rangeList=[];for(let i=0,len=preCalculateNodeList.length;i<len;i++){const node2=preCalculateNodeList[i],gridRange=(await this._executeNode(node2)).toUnitRange(),token=serializeRangeToRefString({...gridRange,sheetName:this._currentConfigService.getSheetName(gridRange.unitId,gridRange.sheetId)});rangeList.push({gridRange,token})}for(let i=0,len=referenceFunctionList.length;i<len;i++){const node2=referenceFunctionList[i],gridRange=(await this._executeNode(node2)).toUnitRange(),token=serializeRangeToRefString({...gridRange,sheetName:this._currentConfigService.getSheetName(gridRange.unitId,gridRange.sheetId)});rangeList.push({gridRange,token})}return rangeList}_isDirtyDefinedForNode(node){const definedNameMap=this._currentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._currentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(node.hasDefinedName(name))return!0}}return!1}_getUpdateTreeListAndMakeDependency(treeList,dependencyTreeCache){const newTreeList=[],existTree=new Set,forceCalculate=this._currentConfigService.isForceCalculate();let allTree=[];dependencyTreeCache.size()>treeList.length?allTree=this._dependencyManagerService.buildDependencyTree(treeList):allTree=this._dependencyManagerService.buildDependencyTree(dependencyTreeCache,treeList);for(let i=0,len=allTree.length;i<len;i++){const tree=allTree[i];(forceCalculate||tree.dependencyRange(this._updateRangeFlattenCache,this._dirtyUnitSheetNameMap,this._currentConfigService.getExcludedRange())||this._includeTree(tree))&&!existTree.has(tree)&&(newTreeList.push(tree),existTree.add(tree))}return dependencyTreeCache.dispose(),newTreeList}_dependencyFeatureCalculation(newTreeList){this._clearFeatureCalculationNode(newTreeList);let hasFeatureCalculation=!1;return this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const{unitId,subUnitId,getDirtyData}=params,dirtyRanges=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()).dirtyRanges,dirtyRangesToMap=this._convertDirtyRangesToMap(dirtyRanges),intersectTrees=this._intersectFeatureCalculation(dirtyRangesToMap,newTreeList,{unitId,subUnitId,featureId});if(intersectTrees.length>0){let featureTree=this._getExistTreeList({unitId,subUnitId,featureId},newTreeList);featureTree==null&&(featureTree=this._getFeatureFormulaTree(featureId,params),newTreeList.push(featureTree)),featureTree.parents=[],intersectTrees.forEach(tree=>{tree.children.includes(featureTree)||tree.pushChildren(featureTree)}),hasFeatureCalculation=!0}})})}),hasFeatureCalculation}_clearFeatureCalculationNode(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();newTreeList.forEach(tree=>{tree.children=tree.children.filter(child=>{var _a24,_b;return child.featureId?!((_b=(_a24=featureMap.get(tree.unitId))==null?void 0:_a24.get(tree.subUnitId))!=null&&_b.has(child.featureId)):!0}),tree.parents=tree.parents.filter(parent=>{var _a24,_b;return parent.featureId?!((_b=(_a24=featureMap.get(tree.unitId))==null?void 0:_a24.get(tree.subUnitId))!=null&&_b.has(parent.featureId)):!0})})}_getExistTreeList(param,treeList){const{unitId,subUnitId,featureId}=param;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(tree.unitId===unitId&&tree.subUnitId===subUnitId&&tree.featureId===featureId)return tree}}_convertDirtyRangesToMap(dirtyRanges){const map=new Map;for(const unitId in dirtyRanges){const unitMap=dirtyRanges[unitId],unitRangeMap=new Map;for(const subUnitId in unitMap){const ranges=unitMap[subUnitId];unitRangeMap.set(subUnitId,ranges)}map.set(unitId,unitRangeMap)}return map}_intersectFeatureCalculation(dirtyRangesToMap,newTreeList,param){const dependencyTree=[];for(let i=0,len=newTreeList.length;i<len;i++){const tree=newTreeList[i];if(tree.unitId===param.unitId&&tree.subUnitId===param.subUnitId&&tree.featureId===param.featureId)continue;tree.dependencyRange(dirtyRangesToMap,{})&&dependencyTree.push(tree)}return dependencyTree}_includeTreeFeature(tree){var _a24,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,featureId=tree.featureId;if(featureId!=null){const featureMap=this._currentConfigService.getDirtyUnitFeatureMap();if(((_b=(_a24=featureMap==null?void 0:featureMap[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[featureId])!=null)return!0}return!1}_includeOtherFormula(tree){var _a24,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,formulaId=tree.formulaId;if(formulaId!=null){const otherFormulaMap=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((_b=(_a24=otherFormulaMap==null?void 0:otherFormulaMap[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId])!=null)return!0}return!1}_includeDefinedName(tree){const node=tree.node;return!!(node!=null&&this._isDirtyDefinedForNode(node))}_includeTree(tree){var _a24,_b,_c;const unitId=tree.unitId,subUnitId=tree.subUnitId;if(this._includeTreeFeature(tree)===!0||this._includeOtherFormula(tree)===!0||this._includeDefinedName(tree)===!0)return!0;const excludedCell=(_b=(_a24=this._currentConfigService.getExcludedRange())==null?void 0:_a24[unitId])==null?void 0:_b[subUnitId];let isExclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(tree.row===row&&tree.column===column)return isExclude=!0,!1}),isExclude)return!1;if(((_c=this._dirtyUnitSheetNameMap[unitId])==null?void 0:_c[subUnitId])!=null)return!0;if(!this._updateRangeFlattenCache.has(unitId))return!1;const sheetRangeMap=this._updateRangeFlattenCache.get(unitId);if(!sheetRangeMap.has(subUnitId))return!1;const ranges=sheetRangeMap.get(subUnitId);for(const range of ranges)if(tree.inRangeData(range))return!0;return!1}_calculateRunList(treeList){let stack=treeList;const formulaRunList=[];for(;stack.length>0;){const tree=stack.pop();if(tree===void 0||tree.isSkip())continue;if(tree.isAdded()){formulaRunList.push(tree);continue}const cacheStack=[];for(let i=0,len=tree.parents.length;i<len;i++){const parentTree=tree.parents[i];parentTree.isAdded()||tree.isSkip()||cacheStack.push(parentTree)}cacheStack.length===0?(formulaRunList.push(tree),tree.setSkip()):(tree.setAdded(),stack.push(tree),stack=stack.concat(cacheStack))}return formulaRunList.reverse()}},__name(_a14,"FormulaDependencyGenerator"),_a14);FormulaDependencyGenerator=__decorateClass$9([core.OnLifecycle(core.LifecycleStages.Rendered,FormulaDependencyGenerator),__decorateParam$9(0,IFormulaCurrentConfigService),__decorateParam$9(1,IFormulaRuntimeService),__decorateParam$9(2,IOtherFormulaManagerService),__decorateParam$9(3,IFeatureCalculationManagerService),__decorateParam$9(4,core.Inject(Interpreter)),__decorateParam$9(5,core.Inject(AstTreeBuilder)),__decorateParam$9(6,core.Inject(Lexer)),__decorateParam$9(7,IDependencyManagerService)],FormulaDependencyGenerator);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const DEFAULT_CYCLE_REFERENCE_COUNT=1;var _a15;exports.CalculateFormulaService=(_a15=class extends core.Disposable{constructor(_configService,_lexer,_currentConfigService,_runtimeService,_formulaDependencyGenerator,_interpreter,_astTreeBuilder){super();__publicField(this,"_executionStartListener$",new rxjs.Subject);__publicField(this,"executionStartListener$",this._executionStartListener$.asObservable());__publicField(this,"_executionCompleteListener$",new rxjs.Subject);__publicField(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());__publicField(this,"_executionInProgressListener$",new rxjs.Subject);__publicField(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=_configService,this._lexer=_lexer,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._formulaDependencyGenerator=_formulaDependencyGenerator,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(featureId,featureData){this._runtimeService.setRuntimeFeatureCellData(featureId,featureData)}setRuntimeFeatureRange(featureId,featureRange){this._runtimeService.setRuntimeFeatureRange(featureId,featureRange)}async execute(formulaDatasetConfig){this._executionStartListener$.next(!0),this._currentConfigService.load(formulaDatasetConfig),this._runtimeService.reset();const cycleReferenceCount=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||DEFAULT_CYCLE_REFERENCE_COUNT;for(let i=0;i<cycleReferenceCount&&(this._runtimeService.setFormulaCycleIndex(i),await this._execute(),FORMULA_REF_TO_ARRAY_CACHE.clear(),!!this._runtimeService.isCycleDependency());i++);this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),CELL_INVERTED_INDEX_CACHE.clear()}async _execute(){const executeState=await this._apply();if(executeState==null)return;const{arrayFormulaRange,runtimeFeatureRange}=executeState,{dirtyRanges,excludedCell}=this._getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange);return dirtyRanges==null||dirtyRanges.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange){const dirtyRanges=[],excludedCell={};return Object.keys(arrayFormulaRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayFormulaRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const cellValue=new core.ObjectMatrix(sheetArrayFormulaRange[sheetId]);if(cellValue==null)return!0;const newCellData=new core.ObjectMatrix;cellValue.forValue((row,column,range)=>{newCellData.setValue(row,column,!0),dirtyRanges.push({unitId,sheetId,range})}),excludedCell[unitId]==null&&(excludedCell[unitId]={}),excludedCell[unitId][sheetId]=newCellData})}),Object.keys(runtimeFeatureRange).forEach(featureId=>{const arrayRange=runtimeFeatureRange[featureId];Object.keys(arrayRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const ranges=sheetArrayFormulaRange[sheetId];if(ranges==null)return!0;for(const range of ranges)dirtyRanges.push({unitId,sheetId,range})})})}),{dirtyRanges,excludedCell}}async _apply(isArrayFormulaState=!1){isArrayFormulaState?this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const treeList=await this._formulaDependencyGenerator.generate(),interpreter=this._interpreter;isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(treeList.length)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(treeList.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let pendingTasks=[];for(let i=0,len=treeList.length;i<len;i++){if(await new Promise(resolve=>{const calCancelTask=core.requestImmediateMacroTask(resolve);pendingTasks.push(calCancelTask)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const tree=treeList[i],astNode=tree.node,getDirtyData=tree.getDirtyData;let value;if(astNode==null&&getDirtyData==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId),getDirtyData!=null&&tree.featureId!=null){const{runtimeCellData,dirtyRanges}=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(tree.featureId,runtimeCellData),this._runtimeService.setRuntimeFeatureRange(tree.featureId,dirtyRanges)}else astNode!=null&&(interpreter.checkAsyncNode(astNode)?value=await interpreter.executeAsync(astNode):value=interpreter.execute(astNode),tree.formulaId!=null?this._runtimeService.setRuntimeOtherData(tree.formulaId,value):this._runtimeService.setRuntimeData(value));isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return pendingTasks.forEach(cancel=>cancel()),pendingTasks=[],treeList.length>0?this._runtimeService.markedAsSuccessfullyExecuted():isArrayFormulaState||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(formulaString,transformSuffix=!0){const lexerNode=this._lexer.treeBuilder(formulaString,transformSuffix);if(Object.values(ErrorType$1).includes(lexerNode))return ErrorNode.create(lexerNode);const astNode=this._astTreeBuilder.parse(lexerNode);astNode==null||astNode.serialize()}},__name(_a15,"CalculateFormulaService"),_a15);exports.CalculateFormulaService=__decorateClass$8([core.OnLifecycle(core.LifecycleStages.Rendered,exports.CalculateFormulaService),__decorateParam$8(0,core.IConfigService),__decorateParam$8(1,core.Inject(Lexer)),__decorateParam$8(2,IFormulaCurrentConfigService),__decorateParam$8(3,IFormulaRuntimeService),__decorateParam$8(4,core.Inject(FormulaDependencyGenerator)),__decorateParam$8(5,core.Inject(Interpreter)),__decorateParam$8(6,core.Inject(AstTreeBuilder))],exports.CalculateFormulaService);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7"),_a16;let CalculateController=(_a16=class extends core.Disposable{constructor(_commandService,_calculateFormulaService,_univerInstanceService,_formulaDataModel){super(),this._commandService=_commandService,this._calculateFormulaService=_calculateFormulaService,this._univerInstanceService=_univerInstanceService,this._formulaDataModel=_formulaDataModel,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{if(command.id===SetFormulaCalculationStopMutation.id)this._calculateFormulaService.stopFormulaExecution();else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;this._formulaDataModel.mergeFormulaData(formulaData)}else if(command.id===SetFormulaCalculationStartMutation.id){const params=command.params;if(params.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap}=params;this._calculate(!1,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap)}}else if(command.id===SetArrayFormulaDataMutation.id){const params=command.params;if(params==null)return;const{arrayFormulaRange,arrayFormulaCellData}=params;this._formulaDataModel.setArrayFormulaRange(arrayFormulaRange),this._formulaDataModel.setArrayFormulaCellData(arrayFormulaCellData)}}))}async _calculate(forceCalculate=!1,dirtyRanges=[],dirtyNameMap={},dirtyDefinedNameMap={},dirtyUnitFeatureMap={},dirtyUnitOtherFormulaMap={}){if(dirtyRanges.length===0&&Object.keys(dirtyNameMap).length===0&&Object.keys(dirtyDefinedNameMap).length===0&&Object.keys(dirtyUnitFeatureMap).length===0&&Object.keys(dirtyUnitOtherFormulaMap).length===0&&forceCalculate===!1)return;const formulaData=this._formulaDataModel.getFormulaData(),arrayFormulaCellData=this._formulaDataModel.getArrayFormulaCellData();this._calculateFormulaService.execute({formulaData,arrayFormulaCellData,forceCalculate,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(data=>{const functionsExecutedState=data.functionsExecutedState;switch(functionsExecutedState){case FormulaExecutedStateType.NOT_EXECUTED:break;case FormulaExecutedStateType.STOP_EXECUTION:break;case FormulaExecutedStateType.SUCCESS:this._applyFormula(data);break;case FormulaExecutedStateType.INITIAL:break}this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{functionsExecutedState},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(data=>{this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{stageInfo:data},{onlyLocal:!0})})}async _applyFormula(data){const{unitData,unitOtherData,arrayFormulaRange,arrayFormulaCellData,clearArrayFormulaCellData}=data;if(!unitData){console.error("No sheetData from Formula Engine!");return}arrayFormulaRange&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(clearArrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaCellData(arrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaRange(arrayFormulaRange),this._commandService.executeCommand(SetArrayFormulaDataMutation.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(SetFormulaCalculationResultMutation.id,{unitData:convertRuntimeToUnitData(unitData),unitOtherData},{onlyLocal:!0})}},__name(_a16,"CalculateController"),_a16);CalculateController=__decorateClass$7([core.OnLifecycle(core.LifecycleStages.Ready,CalculateController),__decorateParam$7(0,core.ICommandService),__decorateParam$7(1,core.Inject(exports.CalculateFormulaService)),__decorateParam$7(2,core.IUniverInstanceService),__decorateParam$7(3,core.Inject(exports.FormulaDataModel))],CalculateController);const RegisterFunctionMutation={id:"formula.mutation.register-function",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetDefinedNameMutation={id:"formula.mutation.set-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveDefinedNameMutation={id:"formula.mutation.remove-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFeatureCalculationMutation={id:"formula.mutation.set-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveFeatureCalculationMutation={id:"formula.mutation.remove-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetOtherFormulaMutation={id:"formula.mutation.set-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveOtherFormulaMutation={id:"formula.mutation.remove-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableMutation={id:"formula.mutation.set-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveSuperTableMutation={id:"formula.mutation.remove-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableOptionMutation={id:"formula.mutation.set-super-table-option",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")};var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a17;let FormulaController=(_a17=class extends core.Disposable{constructor(_function=[],_commandService,_functionService,_dataSyncPrimaryController){super(),this._function=_function,this._commandService=_commandService,this._functionService=_functionService,this._dataSyncPrimaryController=_dataSyncPrimaryController,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[SetFormulaDataMutation,SetArrayFormulaDataMutation,SetFormulaCalculationStartMutation,SetFormulaCalculationStopMutation,SetFormulaCalculationNotificationMutation,SetFormulaCalculationResultMutation,SetDefinedNameMutation,RemoveDefinedNameMutation,SetFeatureCalculationMutation,RemoveFeatureCalculationMutation,SetOtherFormulaMutation,RemoveOtherFormulaMutation,SetSuperTableMutation,RemoveSuperTableMutation,SetSuperTableOptionMutation,RegisterFunctionMutation].forEach(mutation=>{var _a24;this._commandService.registerCommand(mutation),(_a24=this._dataSyncPrimaryController)==null||_a24.registerSyncingMutations(mutation)})}_registerFunctions(){const functions=[...functionArray,...functionCompatibility,...functionCube,...functionDatabase,...functionDate,...functionEngineering,...functionFinancial,...functionInformation,...functionLogical,...functionLookup,...functionMath,...functionMeta,...functionStatistical,...functionText,...functionUniver,...functionWeb].concat(this._function).map(registerObject=>{const Func=registerObject[0],name=registerObject[1];return new Func(name)});this._functionService.registerExecutors(...functions)}},__name(_a17,"FormulaController"),_a17);FormulaController=__decorateClass$6([core.OnLifecycle(core.LifecycleStages.Ready,FormulaController),__decorateParam$6(1,core.ICommandService),__decorateParam$6(2,IFunctionService),__decorateParam$6(3,core.Optional(rpc.DataSyncPrimaryController))],FormulaController);var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a18;let SetDefinedNameController=(_a18=class extends core.Disposable{constructor(_commandService,_definedNamesService){super(),this._commandService=_commandService,this._definedNamesService=_definedNamesService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{id,unitId,name,formulaOrRefString,comment,hidden,localSheetId}=params;this._definedNamesService.registerDefinedName(unitId,{id,name:name.trim(),formulaOrRefString:formulaOrRefString.trim(),comment:comment==null?void 0:comment.trim(),hidden,localSheetId})}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,id}=params;this._definedNamesService.removeDefinedName(unitId,id)}}))}},__name(_a18,"SetDefinedNameController"),_a18);SetDefinedNameController=__decorateClass$5([core.OnLifecycle(core.LifecycleStages.Ready,SetDefinedNameController),__decorateParam$5(0,core.ICommandService),__decorateParam$5(1,IDefinedNamesService)],SetDefinedNameController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a19;let SetFeatureCalculationController=(_a19=class extends core.Disposable{constructor(_commandService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._featureCalculationManagerService.register(unitId,subUnitId,featureId,calculationParam)}else if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._featureCalculationManagerService.remove(unitId,subUnitId,featureIds)}}))}},__name(_a19,"SetFeatureCalculationController"),_a19);SetFeatureCalculationController=__decorateClass$4([core.OnLifecycle(core.LifecycleStages.Ready,SetFeatureCalculationController),__decorateParam$4(0,core.ICommandService),__decorateParam$4(1,IFeatureCalculationManagerService)],SetFeatureCalculationController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a20;let SetOtherFormulaController=(_a20=class extends core.Disposable{constructor(_commandService,_otherFormulaManagerService,_dependencyManagerService){super(),this._commandService=_commandService,this._otherFormulaManagerService=_otherFormulaManagerService,this._dependencyManagerService=_dependencyManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const config={[params.unitId]:{[params.subUnitId]:params.formulaMap}};this._otherFormulaManagerService.batchRegister(config)}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;const obj={};params.formulaIdList.forEach(id=>obj[id]=!0);const config={[params.unitId]:{[params.subUnitId]:obj}};this._otherFormulaManagerService.batchRemove(config)}}))}},__name(_a20,"SetOtherFormulaController"),_a20);SetOtherFormulaController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Ready,SetOtherFormulaController),__decorateParam$3(0,core.ICommandService),__decorateParam$3(1,IOtherFormulaManagerService),__decorateParam$3(2,IDependencyManagerService)],SetOtherFormulaController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a21;let SetSuperTableController=(_a21=class extends core.Disposable{constructor(_commandService,_superTableService){super(),this._commandService=_commandService,this._superTableService=_superTableService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName,reference}=params;this._superTableService.registerTable(unitId,tableName,reference)}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName}=params;this._superTableService.remove(unitId,tableName)}else if(command.id===SetSuperTableOptionMutation.id){const params=command.params;if(params==null)return;const{tableOption,tableOptionType}=params;this._superTableService.registerTableOptionMap(tableOption,tableOptionType)}}))}},__name(_a21,"SetSuperTableController"),_a21);SetSuperTableController=__decorateClass$2([core.OnLifecycle(core.LifecycleStages.Ready,SetSuperTableController),__decorateParam$2(0,core.ICommandService),__decorateParam$2(1,ISuperTableService)],SetSuperTableController);const _ActiveDirtyManagerService=class _ActiveDirtyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(commandId){this._dirtyConversionMap.delete(commandId)}get(commandId){return this._dirtyConversionMap.get(commandId)}has(commandId){return this._dirtyConversionMap.has(commandId)}register(commandId,dirtyConversion){this._dirtyConversionMap.set(commandId,dirtyConversion)}getDirtyConversionMap(){return this._dirtyConversionMap}};__name(_ActiveDirtyManagerService,"ActiveDirtyManagerService");let ActiveDirtyManagerService=_ActiveDirtyManagerService;const IActiveDirtyManagerService=core.createIdentifier("univer.formula.active-dirty-manager.service");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a22;let SetDependencyController=(_a22=class extends core.Disposable{constructor(_commandService,_dependencyManagerService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._dependencyManagerService=_dependencyManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(params=>{const{unitId,subUnitId,featureIds}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}else if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,[featureId])}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,params.formulaIdList)}else if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const formulaMap=params.formulaMap,formulaIdList=[];Object.keys(formulaMap).forEach(formulaId=>{formulaIdList.push(formulaId)}),this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,formulaIdList)}else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;Object.keys(formulaData).forEach(unitId=>{if(formulaData[unitId]==null)return!0;Object.keys(formulaData[unitId]).forEach(subUnitId=>{const formulaDataItem=formulaData[unitId][subUnitId];if(formulaDataItem==null)return this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId),!0;new core.ObjectMatrix(formulaDataItem).forValue((row,column)=>{this._dependencyManagerService.removeFormulaDependency(unitId,subUnitId,row,column)})})})}}))}},__name(_a22,"SetDependencyController"),_a22);SetDependencyController=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Ready,SetDependencyController),__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,IFeatureCalculationManagerService),__decorateParam$1(1,IDependencyManagerService),__decorateParam$1(2,IFeatureCalculationManagerService)],SetDependencyController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="base-formula-engine";var _a23;exports.UniverFormulaEnginePlugin=(_a23=class extends core.Plugin{constructor(_config,_injector){super(),this._config=_config,this._injector=_injector}onStarting(){this._initialize()}_initialize(){var _a24;const dependencies=[[IFunctionService,{useClass:FunctionService}],[IDefinedNamesService,{useClass:DefinedNamesService}],[IActiveDirtyManagerService,{useClass:ActiveDirtyManagerService}],[ISuperTableService,{useClass:SuperTableService}],[exports.FormulaDataModel],[LexerTreeBuilder],[FormulaController,{useFactory:__name(()=>{var _a25;return this._injector.createInstance(FormulaController,(_a25=this._config)==null?void 0:_a25.function)},"useFactory")}],[SetDefinedNameController],[SetSuperTableController]];(_a24=this._config)!=null&&_a24.notExecuteFormula||dependencies.push([exports.CalculateFormulaService],[IOtherFormulaManagerService,{useClass:OtherFormulaManagerService}],[IFormulaRuntimeService,{useClass:exports.FormulaRuntimeService}],[IFormulaCurrentConfigService,{useClass:exports.FormulaCurrentConfigService}],[IDependencyManagerService,{useClass:DependencyManagerService}],[IFeatureCalculationManagerService,{useClass:FeatureCalculationManagerService}],[CalculateController],[SetOtherFormulaController],[SetDependencyController],[SetFeatureCalculationController],[FormulaDependencyGenerator],[Interpreter],[AstTreeBuilder],[Lexer],[AstRootNodeFactory],[FunctionNodeFactory],[LambdaNodeFactory],[LambdaParameterNodeFactory],[OperatorNodeFactory],[PrefixNodeFactory],[ReferenceNodeFactory],[SuffixNodeFactory],[UnionNodeFactory],[ValueNodeFactory]),dependencies.forEach(dependency=>this._injector.add(dependency))}},__name(_a23,"UniverFormulaEnginePlugin"),__publicField(_a23,"pluginName",PLUGIN_NAME),_a23);exports.UniverFormulaEnginePlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector))],exports.UniverFormulaEnginePlugin);function isFormulaTransformable(lexerTreeBuilder,formula){const originSequenceNodes=lexerTreeBuilder.sequenceNodesBuilder(formula);return!(!originSequenceNodes||originSequenceNodes.every(node=>typeof node=="string"||node.nodeType!==sequenceNodeType.REFERENCE))}__name(isFormulaTransformable,"isFormulaTransformable");function transformFormula(lexerTreeBuilder,formula,originRow,originCol,targetRow,targetCol){if(!isFormulaTransformable(lexerTreeBuilder,formula))return formula;const originSequenceNodes=lexerTreeBuilder.sequenceNodesBuilder(formula),getRangeFromCell=__name((row,col)=>({startRow:row,endRow:row,startColumn:col,endColumn:col}),"getRangeFromCell"),originRange=getRangeFromCell(originRow,originCol),relativeRange=core.Rectangle.getRelativeRange(getRangeFromCell(targetRow,targetCol),originRange),sequenceNodes=core.Tools.deepClone(originSequenceNodes),transformSequenceNodes=Array.isArray(sequenceNodes)?sequenceNodes.map(node=>{if(typeof node=="object"&&node.nodeType===sequenceNodeType.REFERENCE){const gridRangeName=deserializeRangeWithSheet(node.token),newRange=core.Rectangle.getPositionRange(relativeRange,gridRangeName.range),newToken=serializeRange(newRange);return{...node,token:newToken}}return node}):sequenceNodes;return`=${transformSequenceNodes&&generateStringWithSequence(transformSequenceNodes)}`}__name(transformFormula,"transformFormula");exports.ArrayValueObject=ArrayValueObject;exports.AsyncArrayObject=AsyncArrayObject;exports.AsyncObject=AsyncObject;exports.BaseFunction=BaseFunction;exports.BaseReferenceObject=BaseReferenceObject;exports.BaseValueObject=BaseValueObject;exports.BooleanValue=BooleanValue;exports.BooleanValueObject=BooleanValueObject;exports.CustomFunction=CustomFunction;exports.DefinedNamesService=DefinedNamesService;exports.ERROR_TYPE_SET=ERROR_TYPE_SET;exports.ErrorType=ErrorType$1;exports.ErrorValueObject=ErrorValueObject;exports.FUNCTION_NAMES_ARRAY=FUNCTION_NAMES_ARRAY;exports.FUNCTION_NAMES_COMPATIBILITY=FUNCTION_NAMES_COMPATIBILITY;exports.FUNCTION_NAMES_CUBE=FUNCTION_NAMES_CUBE;exports.FUNCTION_NAMES_DATABASE=FUNCTION_NAMES_DATABASE;exports.FUNCTION_NAMES_DATE=FUNCTION_NAMES_DATE;exports.FUNCTION_NAMES_ENGINEERING=FUNCTION_NAMES_ENGINEERING;exports.FUNCTION_NAMES_FINANCIAL=FUNCTION_NAMES_FINANCIAL;exports.FUNCTION_NAMES_INFORMATION=FUNCTION_NAMES_INFORMATION;exports.FUNCTION_NAMES_LOGICAL=FUNCTION_NAMES_LOGICAL;exports.FUNCTION_NAMES_LOOKUP=FUNCTION_NAMES_LOOKUP;exports.FUNCTION_NAMES_MATH=FUNCTION_NAMES_MATH;exports.FUNCTION_NAMES_STATISTICAL=FUNCTION_NAMES_STATISTICAL;exports.FUNCTION_NAMES_TEXT=FUNCTION_NAMES_TEXT;exports.FUNCTION_NAMES_UNIVER=FUNCTION_NAMES_UNIVER;exports.FUNCTION_NAMES_WEB=FUNCTION_NAMES_WEB;exports.FeatureCalculationManagerService=FeatureCalculationManagerService;exports.FormulaExecuteStageType=FormulaExecuteStageType;exports.FormulaExecutedStateType=FormulaExecutedStateType;exports.FunctionService=FunctionService;exports.FunctionType=FunctionType;exports.IActiveDirtyManagerService=IActiveDirtyManagerService;exports.IDefinedNamesService=IDefinedNamesService;exports.IFeatureCalculationManagerService=IFeatureCalculationManagerService;exports.IFormulaCurrentConfigService=IFormulaCurrentConfigService;exports.IFormulaRuntimeService=IFormulaRuntimeService;exports.IFunctionService=IFunctionService;exports.IOtherFormulaManagerService=IOtherFormulaManagerService;exports.LexerNode=LexerNode;exports.LexerTreeBuilder=LexerTreeBuilder;exports.NullValueObject=NullValueObject;exports.NumberValueObject=NumberValueObject;exports.OtherFormulaManagerService=OtherFormulaManagerService;exports.RangeReferenceObject=RangeReferenceObject;exports.RegisterFunctionMutation=RegisterFunctionMutation;exports.RemoveDefinedNameMutation=RemoveDefinedNameMutation;exports.RemoveFeatureCalculationMutation=RemoveFeatureCalculationMutation;exports.RemoveOtherFormulaMutation=RemoveOtherFormulaMutation;exports.RemoveSuperTableMutation=RemoveSuperTableMutation;exports.SetArrayFormulaDataMutation=SetArrayFormulaDataMutation;exports.SetDefinedNameMutation=SetDefinedNameMutation;exports.SetFeatureCalculationMutation=SetFeatureCalculationMutation;exports.SetFormulaCalculationNotificationMutation=SetFormulaCalculationNotificationMutation;exports.SetFormulaCalculationResultMutation=SetFormulaCalculationResultMutation;exports.SetFormulaCalculationStartMutation=SetFormulaCalculationStartMutation;exports.SetFormulaCalculationStopMutation=SetFormulaCalculationStopMutation;exports.SetFormulaDataMutation=SetFormulaDataMutation;exports.SetOtherFormulaMutation=SetOtherFormulaMutation;exports.SetSuperTableMutation=SetSuperTableMutation;exports.SetSuperTableOptionMutation=SetSuperTableOptionMutation;exports.StringValueObject=StringValueObject;exports.ValueObjectFactory=ValueObjectFactory;exports.compareToken=compareToken;exports.convertUnitDataToRuntime=convertUnitDataToRuntime;exports.deserializeRangeForR1C1=deserializeRangeForR1C1;exports.deserializeRangeWithSheet=deserializeRangeWithSheet;exports.functionArray=functionArray;exports.functionCompatibility=functionCompatibility;exports.functionCube=functionCube;exports.functionDatabase=functionDatabase;exports.functionDate=functionDate;exports.functionEngineering=functionEngineering;exports.functionFinancial=functionFinancial;exports.functionInformation=functionInformation;exports.functionLogical=functionLogical;exports.functionLookup=functionLookup;exports.functionMath=functionMath;exports.functionMeta=functionMeta;exports.functionStatistical=functionStatistical;exports.functionText=functionText;exports.functionUniver=functionUniver;exports.functionWeb=functionWeb;exports.generateStringWithSequence=generateStringWithSequence;exports.getAbsoluteRefTypeWitString=getAbsoluteRefTypeWitString;exports.getAbsoluteRefTypeWithSingleString=getAbsoluteRefTypeWithSingleString;exports.getRangeWithRefsString=getRangeWithRefsString;exports.handleNumfmtInCell=handleNumfmtInCell;exports.includeFormulaLexerToken=includeFormulaLexerToken;exports.initSheetFormulaData=initSheetFormulaData;exports.isFormulaLexerToken=isFormulaLexerToken;exports.isFormulaTransformable=isFormulaTransformable;exports.isInDirtyRange=isInDirtyRange;exports.isReferenceString=isReferenceString;exports.isReferenceStringWithEffectiveColumn=isReferenceStringWithEffectiveColumn;exports.isReferenceStrings=isReferenceStrings;exports.matchRefDrawToken=matchRefDrawToken;exports.matchToken=matchToken;exports.normalizeSheetName=normalizeSheetName;exports.operatorToken=operatorToken;exports.sequenceNodeType=sequenceNodeType;exports.serializeRange=serializeRange;exports.serializeRangeToRefString=serializeRangeToRefString;exports.serializeRangeWithSheet=serializeRangeWithSheet;exports.serializeRangeWithSpreadsheet=serializeRangeWithSpreadsheet;exports.singleReferenceToGrid=singleReferenceToGrid;exports.strip=strip;exports.stripErrorMargin=stripErrorMargin;exports.transformFormula=transformFormula;
1
+ "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),rxjs=require("rxjs"),rpc=require("@univerjs/rpc");function isInDirtyRange(dirtyRanges,unitId,sheetId,row,column){for(let i=0,len=dirtyRanges.length;i<len;i++){const dirtyRange=dirtyRanges[i];if(unitId!==dirtyRange.unitId||sheetId!==dirtyRange.sheetId)continue;const{startRow,startColumn,endRow,endColumn}=dirtyRange.range;if(row>=startRow&&row<=endRow&&column>=startColumn&&column<=endColumn)return!0}return!1}__name(isInDirtyRange,"isInDirtyRange");var ErrorType$1=(ErrorType2=>(ErrorType2.DIV_BY_ZERO="#DIV/0!",ErrorType2.NAME="#NAME?",ErrorType2.VALUE="#VALUE!",ErrorType2.NUM="#NUM!",ErrorType2.NA="#N/A",ErrorType2.CYCLE="#CYCLE!",ErrorType2.REF="#REF!",ErrorType2.SPILL="#SPILL!",ErrorType2.CALC="#CALC!",ErrorType2.ERROR="#ERROR!",ErrorType2.CONNECT="#GETTING_DATA",ErrorType2.NULL="#NULL!",ErrorType2))(ErrorType$1||{});const ERROR_TYPE_SET=new Set(Object.values(ErrorType$1));var FunctionType=(FunctionType2=>(FunctionType2[FunctionType2.Financial=0]="Financial",FunctionType2[FunctionType2.Date=1]="Date",FunctionType2[FunctionType2.Math=2]="Math",FunctionType2[FunctionType2.Statistical=3]="Statistical",FunctionType2[FunctionType2.Lookup=4]="Lookup",FunctionType2[FunctionType2.Database=5]="Database",FunctionType2[FunctionType2.Text=6]="Text",FunctionType2[FunctionType2.Logical=7]="Logical",FunctionType2[FunctionType2.Information=8]="Information",FunctionType2[FunctionType2.Engineering=9]="Engineering",FunctionType2[FunctionType2.Cube=10]="Cube",FunctionType2[FunctionType2.Compatibility=11]="Compatibility",FunctionType2[FunctionType2.Web=12]="Web",FunctionType2[FunctionType2.Array=13]="Array",FunctionType2[FunctionType2.Univer=14]="Univer",FunctionType2[FunctionType2.User=15]="User",FunctionType2[FunctionType2.DefinedName=16]="DefinedName",FunctionType2))(FunctionType||{}),operatorToken=(operatorToken2=>(operatorToken2.PLUS="+",operatorToken2.MINUS="-",operatorToken2.MULTIPLY="*",operatorToken2.DIVIDED="/",operatorToken2.CONCATENATE="&",operatorToken2.POWER="^",operatorToken2.EQUALS="=",operatorToken2.NOT_EQUAL="<>",operatorToken2.GREATER_THAN=">",operatorToken2.GREATER_THAN_OR_EQUAL=">=",operatorToken2.LESS_THAN="<",operatorToken2.LESS_THAN_OR_EQUAL="<=",operatorToken2))(operatorToken||{}),compareToken=(compareToken2=>(compareToken2.EQUALS="=",compareToken2.NOT_EQUAL="<>",compareToken2.GREATER_THAN=">",compareToken2.GREATER_THAN_OR_EQUAL=">=",compareToken2.LESS_THAN="<",compareToken2.LESS_THAN_OR_EQUAL="<=",compareToken2))(compareToken||{});const OPERATOR_TOKEN_PRIORITY=new Map([["<>",3],["<",3],[">=",3],["=",3],[">",3],["<=",3],["&",2],["+",2],["-",2],["/",1],["*",1],["^",0]]),OPERATOR_TOKEN_SET=new Set(OPERATOR_TOKEN_PRIORITY.keys()),OPERATOR_TOKEN_COMPARE_SET=new Set(["=","<>",">",">=","<","<="]);var matchToken=(matchToken2=>(matchToken2.OPEN_BRACKET="(",matchToken2.CLOSE_BRACKET=")",matchToken2.COMMA=",",matchToken2.SINGLE_QUOTATION="'",matchToken2.DOUBLE_QUOTATION='"',matchToken2.OPEN_BRACES="{",matchToken2.CLOSE_BRACES="}",matchToken2.COLON=":",matchToken2.OPEN_SQUARE_BRACKET="[",matchToken2.CLOSE_SQUARE_BRACKET="]",matchToken2))(matchToken||{}),suffixToken=(suffixToken2=>(suffixToken2.PERCENTAGE="%",suffixToken2.POUND="#",suffixToken2))(suffixToken||{});const SUFFIX_TOKEN_SET=new Set(["%","#"]);var prefixToken=(prefixToken2=>(prefixToken2.AT="@",prefixToken2.MINUS="-",prefixToken2))(prefixToken||{});const SPACE_TOKEN=" ",FORMULA_LEXER_TOKENS=[...Object.values(compareToken),...Object.values(operatorToken),...Object.values(matchToken),...Object.values(suffixToken),...Object.values(prefixToken)];function isFormulaLexerToken(str){return FORMULA_LEXER_TOKENS.includes(str)}__name(isFormulaLexerToken,"isFormulaLexerToken");function includeFormulaLexerToken(str){for(const token of FORMULA_LEXER_TOKENS)if(str.indexOf(token)>-1)return!0;return!1}__name(includeFormulaLexerToken,"includeFormulaLexerToken");function normalizeSheetName(sheetName){return sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"?sheetName.substring(1,sheetName.length-1):sheetName}__name(normalizeSheetName,"normalizeSheetName");function matchRefDrawToken(char){return isFormulaLexerToken(char)&&char!==matchToken.CLOSE_BRACES&&char!==matchToken.CLOSE_BRACKET&&char!==matchToken.SINGLE_QUOTATION&&char!==matchToken.DOUBLE_QUOTATION||char===" "}__name(matchRefDrawToken,"matchRefDrawToken");function convertUnitDataToRuntime(unitData){const arrayFormulaCellData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;arrayFormulaCellData[unitId]==null&&(arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];arrayFormulaCellData[unitId][sheetId]=new core.ObjectMatrix(cellData)})}),arrayFormulaCellData}__name(convertUnitDataToRuntime,"convertUnitDataToRuntime");function convertRuntimeToUnitData(unitData){const unitPrimitiveData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;unitPrimitiveData[unitId]==null&&(unitPrimitiveData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];unitPrimitiveData[unitId][sheetId]=cellData.getData()})}),unitPrimitiveData}__name(convertRuntimeToUnitData,"convertRuntimeToUnitData");const DEFAULT_TOKEN_TYPE_PARAMETER="P_1",DEFAULT_TOKEN_TYPE_ROOT="R_1",DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER="L_1",DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER="LR_1",DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER="LO_1",DEFAULT_TOKEN_LET_FUNCTION_NAME="LET",DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME="LAMBDA",DEFAULT_TOKEN_CUBE_FUNCTION_NAME="CUBE",_LexerNode=class _LexerNode{constructor(){__publicField(this,"_parent");__publicField(this,"_token",DEFAULT_TOKEN_TYPE_ROOT);__publicField(this,"_children",[]);__publicField(this,"_lambdaId");__publicField(this,"_functionDefinitionPrivacyVar");__publicField(this,"_lambdaParameter","");__publicField(this,"_startIndex",-1);__publicField(this,"_endIndex",-1);__publicField(this,"_definedNames",[])}dispose(){var _a24;this._children.forEach(node=>{typeof node!="string"&&node.dispose()}),(_a24=this._functionDefinitionPrivacyVar)==null||_a24.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(lambdaId){this._lambdaId=lambdaId}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(lambdaPrivacyVar){this._functionDefinitionPrivacyVar=lambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(lambdaParameter){this._lambdaParameter=lambdaParameter}getParent(){return this._parent}setParent(lexerNode){this._parent=lexerNode}getChildren(){return this._children}setChildren(children){this._children=children}addChildren(children){this._children.push(children)}addChildrenFirst(children){this._children.unshift(children)}getToken(){return this._token}setToken(token){this._token=token}setIndex(st,ed){this._startIndex=st,this._endIndex=ed}setDefinedNames(definedNames){this._definedNames=definedNames}hasDefinedNames(){return this._definedNames.length>0}replaceChild(lexerNode,newLexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&(this.getChildren().splice(i,1,newLexerNode),newLexerNode.setParent(this))}changeToParent(newParentLexerNode){const parentNode=this.getParent();parentNode&&parentNode.removeChild(this),this.setParent(newParentLexerNode),newParentLexerNode.getChildren().push(this)}removeChild(lexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&this.getChildren().splice(i,1)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];item instanceof _LexerNode?childrenSerialization.push(item.serialize()):childrenSerialization.push(item)}return{token,st:this._startIndex,ed:this._endIndex,children:childrenSerialization}}_getIndexInParent(lexerNode){const childrenNode=this.getChildren(),childrenCount=childrenNode.length;for(let i=0;i<childrenCount;i++)if(childrenNode[i]===lexerNode)return i}};__name(_LexerNode,"LexerNode");let LexerNode=_LexerNode;const _FormulaAstLRU=class _FormulaAstLRU{constructor(cacheCount){__publicField(this,"_cache");this._cache=new core.LRUMap(cacheCount)}set(formulaString,node){const hash=this._hash(formulaString);this._cache.set(hash,node)}get(formulaString){const hash=this._hash(formulaString);return this._cache.get(hash)}clear(){this._cache.clear()}_hash(formulaString){return core.hashAlgorithm(formulaString)}};__name(_FormulaAstLRU,"FormulaAstLRU");let FormulaAstLRU=_FormulaAstLRU;const UNIT_NAME_REGEX='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',SHEET_NAME_REGEX="((?![\\[\\]\\/?*\\\\]).)*!",ABSOLUTE_SYMBOL="$",RANGE_SYMBOL="\\s*?:\\s*?",COLUMN_REGEX="[A-Za-z]+",ROW_REGEX="[1-9][0-9]*",UNIT_NAME_SHEET_NAME_REGEX=`'?(${UNIT_NAME_REGEX})?(${SHEET_NAME_REGEX})?'?`,SIMPLE_SINGLE_RANGE_REGEX=`\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}`,REFERENCE_MULTIPLE_RANGE_REGEX=`^(${prefixToken.AT})?${UNIT_NAME_SHEET_NAME_REGEX}${SIMPLE_SINGLE_RANGE_REGEX}${RANGE_SYMBOL}${SIMPLE_SINGLE_RANGE_REGEX}$`,REFERENCE_SINGLE_RANGE_REGEX=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?${SIMPLE_SINGLE_RANGE_REGEX}(${suffixToken.POUND})?$`,REFERENCE_REGEX_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_SINGLE_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_SINGLE_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,$SUPER_TABLE_COLUMN_REGEX="[.*?]",$ARRAY_VALUE_REGEX="{.*?}";function isReferenceString(refString){return new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(refString)||new RegExp(REFERENCE_MULTIPLE_RANGE_REGEX).test(refString)||new RegExp(REFERENCE_REGEX_ROW).test(refString)||new RegExp(REFERENCE_REGEX_COLUMN).test(refString)}__name(isReferenceString,"isReferenceString");var sequenceNodeType=(sequenceNodeType2=>(sequenceNodeType2[sequenceNodeType2.NORMAL=0]="NORMAL",sequenceNodeType2[sequenceNodeType2.NUMBER=1]="NUMBER",sequenceNodeType2[sequenceNodeType2.STRING=2]="STRING",sequenceNodeType2[sequenceNodeType2.FUNCTION=3]="FUNCTION",sequenceNodeType2[sequenceNodeType2.REFERENCE=4]="REFERENCE",sequenceNodeType2[sequenceNodeType2.ARRAY=5]="ARRAY",sequenceNodeType2[sequenceNodeType2.DEFINED_NAME=6]="DEFINED_NAME",sequenceNodeType2))(sequenceNodeType||{});function generateStringWithSequence(newSequenceNodes){let sequenceString="";for(const node of newSequenceNodes)typeof node=="string"?sequenceString+=node:sequenceString+=node.token;return sequenceString}__name(generateStringWithSequence,"generateStringWithSequence");const $ROW_REGEX=/[^0-9]/g,$COLUMN_REGEX=/[^A-Za-z]/g;function getAbsoluteRefTypeWithSingleString(singleRefString){let isColumnAbsolute=singleRefString[0]==="$";const remainChar=singleRefString.substring(1);let isRowAbsolute=remainChar.indexOf("$")>-1;return core.Tools.isStringNumber(remainChar)&&isColumnAbsolute&&!isRowAbsolute&&(isColumnAbsolute=!1,isRowAbsolute=!0),isColumnAbsolute&&isRowAbsolute?core.AbsoluteRefType.ALL:isColumnAbsolute?core.AbsoluteRefType.COLUMN:isRowAbsolute?core.AbsoluteRefType.ROW:core.AbsoluteRefType.NONE}__name(getAbsoluteRefTypeWithSingleString,"getAbsoluteRefTypeWithSingleString");function getAbsoluteRefTypeWitString(refString){const sheetArray=refString.split("!");sheetArray.length>1&&(refString=sheetArray[sheetArray.length-1]);const refArray=refString.split(":");return refArray.length>1?{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0]),endAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[1])}:{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0])}}__name(getAbsoluteRefTypeWitString,"getAbsoluteRefTypeWitString");function _getAbsoluteToken(absoluteRefType=core.AbsoluteRefType.NONE){let rowAbsoluteString="",columnAbsoluteString="";return absoluteRefType===core.AbsoluteRefType.ROW?rowAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.COLUMN?columnAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.ALL&&(rowAbsoluteString="$",columnAbsoluteString="$"),{rowAbsoluteString,columnAbsoluteString}}__name(_getAbsoluteToken,"_getAbsoluteToken");function serializeRange(range){const{startColumn,startRow,endColumn,endRow,startAbsoluteRefType,endAbsoluteRefType,rangeType=core.RANGE_TYPE.NORMAL}=range,start=_getAbsoluteToken(startAbsoluteRefType),end=_getAbsoluteToken(endAbsoluteRefType);if(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.ALL){const startStr2=`${start.rowAbsoluteString}${startRow+1}`,endStr2=`${end.rowAbsoluteString}${endRow+1}`;return`${startStr2}:${endStr2}`}if(rangeType===core.RANGE_TYPE.COLUMN){const startStr2=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}`,endStr2=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}`;return`${startStr2}:${endStr2}`}const startStr=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}${start.rowAbsoluteString}${startRow+1}`,endStr=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}${end.rowAbsoluteString}${endRow+1}`;return startStr===endStr?startStr:`${startStr}:${endStr}`}__name(serializeRange,"serializeRange");function serializeRangeWithSheet(sheetName,range){return needsQuoting(sheetName)?`'${sheetName}'!${serializeRange(range)}`:`${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSheet,"serializeRangeWithSheet");function serializeRangeWithSpreadsheet(unit,sheetName,range){return needsQuoting(unit)||needsQuoting(sheetName)?`'[${unit}]${sheetName}'!${serializeRange(range)}`:`[${unit}]${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSpreadsheet,"serializeRangeWithSpreadsheet");function serializeRangeToRefString(gridRangeName){const{unitId,sheetName,range}=gridRangeName;return unitId!=null&&unitId.length>0&&sheetName!=null&&sheetName.length>0?serializeRangeWithSpreadsheet(unitId,sheetName,range):sheetName!=null&&sheetName.length>0?serializeRangeWithSheet(sheetName,range):serializeRange(range)}__name(serializeRangeToRefString,"serializeRangeToRefString");function singleReferenceToGrid(refBody){const row=Number.parseInt(refBody.replace($ROW_REGEX,""))-1,column=core.Tools.ABCatNum(refBody.replace($COLUMN_REGEX,"")),absoluteRefType=getAbsoluteRefTypeWithSingleString(refBody);return{row,column,absoluteRefType}}__name(singleReferenceToGrid,"singleReferenceToGrid");function handleRefStringInfo(refString){const unitIdMatch=new RegExp(UNIT_NAME_REGEX).exec(refString);let unitId="";unitIdMatch!=null&&(unitId=unitIdMatch[0].trim(),unitId=unitId.slice(1,unitId.length-1),refString=refString.replace(new RegExp(UNIT_NAME_REGEX),""));const sheetNameIndex=refString.indexOf("!");let sheetName="",refBody="";return sheetNameIndex>-1?(sheetName=refString.substring(0,sheetNameIndex),sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"&&(sheetName=sheetName.substring(1,sheetName.length-1)),refBody=refString.substring(sheetNameIndex+1)):refBody=refString,{refBody,sheetName,unitId}}__name(handleRefStringInfo,"handleRefStringInfo");function deserializeRangeWithSheet(refString){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReferenceToGrid(refBody),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReferenceToGrid(refStartString),endGrid=singleReferenceToGrid(refEndString),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;let rangeType=core.RANGE_TYPE.NORMAL;return Number.isNaN(startRow)&&Number.isNaN(endRow)?rangeType=core.RANGE_TYPE.COLUMN:Number.isNaN(startColumn)&&Number.isNaN(endColumn)&&(rangeType=core.RANGE_TYPE.ROW),{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType,rangeType}}}__name(deserializeRangeWithSheet,"deserializeRangeWithSheet");function isReferenceStringWithEffectiveColumn(refString){if(!isReferenceString(refString))return!1;const{range}=deserializeRangeWithSheet(refString);return!(range.endColumn>=16384)}__name(isReferenceStringWithEffectiveColumn,"isReferenceStringWithEffectiveColumn");function getRangeWithRefsString(refString,getSheetIdByName){const valueArray=(refString==null?void 0:refString.split(","))||[];return refString===""||valueArray.length===0?[]:isReferenceStrings(refString)?valueArray.map(ref=>{const unitRange=deserializeRangeWithSheet(ref);return{unitId:unitRange.unitId,sheetId:getSheetIdByName(unitRange.sheetName),range:unitRange.range,sheetName:unitRange.sheetName}}):[]}__name(getRangeWithRefsString,"getRangeWithRefsString");function isReferenceStrings(refString){return((refString==null?void 0:refString.split(","))||[]).every(refString2=>isReferenceStringWithEffectiveColumn(refString2.trim()))}__name(isReferenceStrings,"isReferenceStrings");function needsQuoting(name){return name.length===0?!1:!!(includeFormulaLexerToken(name)||isA1Notation(name)||isR1C1Notation(name)||startsWithNonAlphabetic(name)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(name))}__name(needsQuoting,"needsQuoting");function isA1Notation(name){const match=name.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(name)&&match!==null}__name(isA1Notation,"isA1Notation");function isR1C1Notation(name){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(name)}__name(isR1C1Notation,"isR1C1Notation");function startsWithNonAlphabetic(name){return!new RegExp("^\\p{Letter}","u").test(name.charAt(0))}__name(startsWithNonAlphabetic,"startsWithNonAlphabetic");const FORMULA_CACHE_LRU_COUNT$2=1e5,FormulaLexerNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),FormulaSequenceNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),_LexerTreeBuilder=class _LexerTreeBuilder extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentLexerNode",new LexerNode);__publicField(this,"_upLevel",0);__publicField(this,"_segment","");__publicField(this,"_bracketState",[]);__publicField(this,"_squareBracketState",0);__publicField(this,"_bracesState",0);__publicField(this,"_singleQuotationState",0);__publicField(this,"_doubleQuotationState",0);__publicField(this,"_lambdaState",!1);__publicField(this,"_colonState",!1);__publicField(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),FormulaLexerNodeCache.clear(),FormulaSequenceNodeCache.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(formulaString,strIndex){const current=this._getCurrentParamIndex(formulaString,strIndex);if(current==null||current===ErrorType$1.VALUE)return;const lexerNode=current[0];if(typeof lexerNode=="string")return;let parent=lexerNode.getParent(),children=lexerNode;for(;parent;){const token=parent.getToken();if(token!==DEFAULT_TOKEN_TYPE_PARAMETER&&!isFormulaLexerToken(token)&&parent.getStartIndex()!==-1){const paramIndex=parent.getChildren().indexOf(children);return{functionName:token,paramIndex}}children=parent,parent=parent.getParent()}}checkIfAddBracket(formulaString){let lastBracketCount=0,lastIndex=formulaString.length-1,lastString=formulaString[lastIndex];for(;(lastString===matchToken.CLOSE_BRACKET||lastString===" ")&&lastIndex>=0;)lastString===matchToken.CLOSE_BRACKET&&lastBracketCount++,lastString=formulaString[--lastIndex];const current=this._getCurrentParamIndex(formulaString,formulaString.length-2);if(current==null||current===ErrorType$1.VALUE)return 0;const lexerNode=current[0];if(typeof lexerNode=="string")return 0;let parent=lexerNode.getParent(),bracketCount=0;for(current[1]===matchToken.OPEN_BRACKET&&bracketCount++;parent;){const token=parent.getToken();token!==DEFAULT_TOKEN_TYPE_PARAMETER&&token!==matchToken.COLON&&parent.getStartIndex()!==-1&&token.toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&(lastBracketCount===0?bracketCount+=1:lastBracketCount--),parent=parent.getParent()}return bracketCount}sequenceNodesBuilder(formulaString){const sequenceNodesCache=FormulaSequenceNodeCache.get(formulaString);if(sequenceNodesCache)return[...sequenceNodesCache];const sequenceArray=this._getSequenceArray(formulaString);if(sequenceArray.length===0)return;const newSequenceNodes=this.getSequenceNode(sequenceArray);return FormulaSequenceNodeCache.set(formulaString,[...newSequenceNodes]),newSequenceNodes}convertRefersToAbsolute(formulaString,startAbsoluteRefType,endAbsoluteRefType){const nodes=this.sequenceNodesBuilder(formulaString);if(nodes==null)return formulaString;let prefixToken2="";formulaString.substring(0,1)===operatorToken.EQUALS&&(prefixToken2=operatorToken.EQUALS);for(let i=0,len=nodes.length;i<len;i++){const node=nodes[i];if(typeof node!="string"&&node.nodeType===sequenceNodeType.REFERENCE){const{token,endIndex}=node,sequenceGrid=deserializeRangeWithSheet(token);if(sequenceGrid==null)continue;const{range,sheetName,unitId}=sequenceGrid,newRange={...range,startAbsoluteRefType,endAbsoluteRefType},newToken=serializeRangeToRefString({range:newRange,unitId,sheetName}),minusCount=newToken.length-token.length;nodes[i]={...node,token:newToken,endIndex:endIndex+minusCount};for(let j=i+1;j<len;j++){const nextNode=nodes[j];typeof nextNode!="string"&&(nextNode.startIndex+=minusCount,nextNode.endIndex+=minusCount)}}}return`${prefixToken2}${generateStringWithSequence(nodes)}`}moveFormulaRefOffset(formulaString,refOffsetX,refOffsetY,ignoreAbsolute=!1){const sequenceNodes=this.sequenceNodesBuilder(formulaString);if(sequenceNodes==null)return formulaString;const newSequenceNodes=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||node.nodeType!==sequenceNodeType.REFERENCE){newSequenceNodes.push(node);continue}const{token}=node,sequenceGrid=deserializeRangeWithSheet(token),{sheetName,unitId:sequenceUnitId}=sequenceGrid;let newRange=sequenceGrid.range;if(!ignoreAbsolute&&newRange.startAbsoluteRefType===core.AbsoluteRefType.ALL&&newRange.endAbsoluteRefType===core.AbsoluteRefType.ALL){newSequenceNodes.push(node);continue}else newRange=core.moveRangeByOffset(newRange,refOffsetX,refOffsetY,ignoreAbsolute);let newToken="";core.isValidRange(newRange)?newToken=serializeRangeToRefString({range:newRange,unitId:sequenceUnitId,sheetName}):newToken=ErrorType$1.REF,newSequenceNodes.push({...node,token:newToken})}return`=${generateStringWithSequence(newSequenceNodes)}`}getSequenceNode(sequenceArray){const sequenceNodes=[];let maybeString=!1;for(let i=0,len=sequenceArray.length;i<len;i++){const item=sequenceArray[i],preItem=sequenceArray[i-1],{segment,currentString}=item;if(currentString===matchToken.DOUBLE_QUOTATION&&(maybeString=!0),(segment!==""||i===0)&&i!==len-1){sequenceNodes.push(currentString);continue}let preSegment=(preItem==null?void 0:preItem.segment)||"",startIndex=i-preSegment.length,endIndex=i-1,deleteEndIndex=i-1;if(i===len-1&&this._isLastMergeString(currentString)&&(preSegment+=currentString,endIndex+=1),preSegment===""||OPERATOR_TOKEN_PRIORITY.has(preSegment)){sequenceNodes.push(currentString);continue}const preSegmentTrim=preSegment.trim(),preSegmentNotPrefixToken=this._replacePrefixString(preSegmentTrim);if(maybeString===!0&&preSegmentTrim[preSegmentTrim.length-1]===matchToken.DOUBLE_QUOTATION)maybeString=!1,this._processPushSequenceNode(sequenceNodes,sequenceNodeType.STRING,preSegment,startIndex,endIndex,deleteEndIndex);else if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(preSegmentNotPrefixToken)&&isReferenceStringWithEffectiveColumn(preSegmentNotPrefixToken)){if(preSegmentNotPrefixToken.length!==preSegmentTrim.length){const minusCount=preSegmentTrim.length-preSegmentNotPrefixToken.length;deleteEndIndex+=minusCount,startIndex+=minusCount,preSegment=this._replacePrefixString(preSegment)}this._processPushSequenceNode(sequenceNodes,sequenceNodeType.REFERENCE,preSegment,startIndex,endIndex,deleteEndIndex)}else core.Tools.isStringNumber(preSegmentTrim)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.NUMBER,preSegment,startIndex,endIndex,deleteEndIndex):preSegmentTrim.length>0&&this._processPushSequenceNode(sequenceNodes,sequenceNodeType.FUNCTION,preSegment,startIndex,endIndex,deleteEndIndex);(i!==len-1||!this._isLastMergeString(currentString))&&sequenceNodes.push(currentString)}return this._mergeSequenceNodeReference(sequenceNodes)}_processPushSequenceNode(sequenceNodes,nodeType,token,startIndex,endIndex,deleteEndIndex){this._pushSequenceNode(sequenceNodes,{nodeType,token,startIndex,endIndex},deleteEndIndex)}_getCurrentParamIndex(formulaString,index){return this._nodeMaker(formulaString,void 0,index)}_isLastMergeString(str){return str===matchToken.DOUBLE_QUOTATION||core.Tools.isStringNumber(str)||!isFormulaLexerToken(str)}_mergeSequenceNodeReference(sequenceNodes){const newSequenceNodes=[],sequenceNodesCount=sequenceNodes.length;let i=0;for(;i<sequenceNodesCount;){const node=sequenceNodes[i];if(typeof node=="string"){const preNode=sequenceNodes[i-1];if(node.trim()===matchToken.CLOSE_BRACES&&preNode!=null&&typeof preNode!="string"&&preNode.nodeType===sequenceNodeType.FUNCTION&&preNode.token.trim().substring(0,1)===matchToken.OPEN_BRACES){preNode.nodeType=sequenceNodeType.ARRAY,preNode.token+=node,preNode.endIndex+=node.length,i++;continue}newSequenceNodes.push(node)}else{const nextOneNode=sequenceNodes[i+1],nextTwoNode=sequenceNodes[i+2];nextOneNode===matchToken.COLON&&typeof node!="string"&&nextTwoNode!=null&&typeof nextTwoNode!="string"&&isReferenceStringWithEffectiveColumn((node.token+nextOneNode+nextTwoNode.token).trim())&&(node.nodeType=sequenceNodeType.REFERENCE,node.token+=nextOneNode+nextTwoNode.token,node.endIndex=nextTwoNode.endIndex,i+=2),newSequenceNodes.push(node)}i++}return newSequenceNodes}_pushSequenceNode(sequenceNodes,node,deleteEndIndex){const segmentCount=deleteEndIndex-node.startIndex+1;sequenceNodes.splice(sequenceNodes.length-segmentCount,segmentCount,node)}_replacePrefixString(token){const tokenArray=[];let isNotPreFix=!1;for(let i=0,len=token.length;i<len;i++){const char=token[i];if(char===SPACE_TOKEN&&!isNotPreFix)tokenArray.push(char);else{if(!isNotPreFix&&(char===prefixToken.AT||char===prefixToken.MINUS))continue;tokenArray.push(char),isNotPreFix=!0}}return tokenArray.join("")}nodeMakerTest(formulaString){return this._nodeMaker(formulaString)}treeBuilder(formulaString,transformSuffix=!0,injectDefinedName,simpleCheckDefinedName){if(transformSuffix===!0){const lexerNode=FormulaLexerNodeCache.get(formulaString),simpleCheckDefinedNameResult=simpleCheckDefinedName==null?void 0:simpleCheckDefinedName(formulaString);if(lexerNode&&!simpleCheckDefinedNameResult)return lexerNode}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT);const sequenceArray=[];let state=this._nodeMaker(formulaString,sequenceArray);if(state===ErrorType$1.VALUE||sequenceArray.length===0)return state;let currentHasDefinedName=!1,currentSequenceString="",currentDefinedNames=[];if(injectDefinedName){const{hasDefinedName,sequenceString,definedNames}=injectDefinedName(sequenceArray);currentHasDefinedName=hasDefinedName,currentSequenceString=sequenceString,currentDefinedNames=definedNames}if(currentHasDefinedName&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT),state=this._nodeMaker(`=${currentSequenceString}`),state===ErrorType$1.VALUE))return state;const node=this._getTopNode(this._currentLexerNode);if(node&&(this._currentLexerNode=node),transformSuffix){if(!this._suffixExpressionHandler(this._currentLexerNode))return ErrorType$1.VALUE;FormulaLexerNodeCache.set(formulaString,this._currentLexerNode)}return currentHasDefinedName&&this._currentLexerNode.setDefinedNames(currentDefinedNames),this._currentLexerNode}_suffixExpressionHandler(lexerNode){var _a24;const children=lexerNode.getChildren();if(!children)return!1;const childrenCount=children.length,baseStack=[],symbolStack=[];for(let i=0;i<childrenCount;i++){const node=children[i];if(node instanceof LexerNode)this._suffixExpressionHandler(node),baseStack.push(node);else{const char=node.trim();if(char==="")continue;if(OPERATOR_TOKEN_SET.has(char)){if(char===operatorToken.PLUS&&this._deletePlusForPreNode(children[i-1]))continue;if(char!==operatorToken.PLUS&&char!==operatorToken.MINUS&&this._deletePlusForPreNode(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a24=symbolStack[symbolStack.length-1])==null?void 0:_a24.trim();if(!lastSymbol||lastSymbol===matchToken.OPEN_BRACKET)break;const lastSymbolPriority=OPERATOR_TOKEN_PRIORITY.get(lastSymbol),charPriority=OPERATOR_TOKEN_PRIORITY.get(char);if(!lastSymbolPriority||!charPriority)break;if(charPriority>=lastSymbolPriority)baseStack.push(symbolStack.pop());else break}symbolStack.push(node)}else if(char===matchToken.OPEN_BRACKET)symbolStack.push(node);else if(char===matchToken.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i);else{if(this._checkCloseBracket(children[i-1]))return!1;baseStack.push(node)}}}return this._processSuffixExpressionRemain(baseStack,symbolStack,lexerNode)}_processSuffixExpressionRemain(baseStack,symbolStack,lexerNode){const baseStackLength=baseStack.length,lastBaseStack=baseStack[baseStackLength-1];for(;symbolStack.length>0;){const symbol=symbolStack.pop();if(!(lastBaseStack instanceof LexerNode)&&(symbol===matchToken.OPEN_BRACKET||symbol===matchToken.CLOSE_BRACKET))return!1;baseStack.push(symbol)}return lexerNode.setChildren(baseStack),!0}_processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i){var _a24;if(this._checkOpenBracket(children[i-1])||this._checkOperator(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a24=symbolStack[symbolStack.length-1])==null?void 0:_a24.trim();if(!lastSymbol)break;if(lastSymbol===matchToken.OPEN_BRACKET){symbolStack.pop();break}baseStack.push(symbolStack.pop())}}_checkCloseBracket(node){return node===matchToken.CLOSE_BRACKET}_checkOpenBracket(node){return node===matchToken.OPEN_BRACKET}_checkOperator(node){return node==null||node instanceof LexerNode?!1:OPERATOR_TOKEN_SET.has(node)}_deletePlusForPreNode(preNode){if(preNode==null)return!0;if(!(preNode instanceof LexerNode)){const preChar=preNode.trim();if(OPERATOR_TOKEN_SET.has(preChar)||preChar===matchToken.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new LexerNode}_resetSegment(){this._segment=""}_openBracket(type=0){this._bracketState.push(type)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const bracketState=this._bracketState;return bracketState[bracketState.length-1]}_changeCurrentBracket(type){const bracketState=this._bracketState;bracketState[bracketState.length-1]=type}_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(upLevel){this._upLevel=upLevel,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_getLastChildCurrentLexerNode(){const children=this._currentLexerNode.getChildren();if(children&&children.length>0){const lastNode=children[children.length-1];if(lastNode instanceof LexerNode)return lastNode}return!1}_getLastChildCurrent(){const children=this._currentLexerNode.getChildren();return children&&children.length>0?children[children.length-1]:!1}_setParentCurrentLexerNode(){const parent=this._currentLexerNode.getParent();return parent?(this._currentLexerNode=parent,!0):!1}_setAncestorCurrentLexerNode(){var _a24,_b,_c,_d,_e,_f;const parent=(_a24=this._currentLexerNode)==null?void 0:_a24.getParent();let state=!1;if(parent&&parent.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){if((_b=parent==null?void 0:parent.getParent())!=null&&_b.getParent()){const node=(_d=(_c=this._currentLexerNode.getParent())==null?void 0:_c.getParent())==null?void 0:_d.getParent();node&&(this._currentLexerNode=node),state=!0}}else if(parent!=null&&parent.getParent()){const node=(_e=this._currentLexerNode.getParent())==null?void 0:_e.getParent();node&&(this._currentLexerNode=node),state=!0}for(let i=0;i<this._upLevel;i++){const node=(_f=this._currentLexerNode)==null?void 0:_f.getParent();node&&(this._currentLexerNode=node),this._currentLexerNode?state=!0:state=!1}return state}_segmentCount(){return this._segment.trim().length}_pushSegment(value){this._segment+=value}_pushNodeToChildren(value,isUnshift=!1){if(value!==""){const children=this._currentLexerNode.getChildren();if(!(value instanceof LexerNode)&&this.isColonOpen()){const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(value),subLexerNode_ref.setParent(this._currentLexerNode),value=subLexerNode_ref}isUnshift?children.unshift(value):children.push(value)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(subLexerNode,isUnshift=!1){this._pushNodeToChildren(subLexerNode,isUnshift),subLexerNode.setParent(this._currentLexerNode),this._currentLexerNode=subLexerNode}_newAndPushCurrentLexerNode(token,current,isUnshift=!1){const subLexerNode=new LexerNode;subLexerNode.setToken(token),subLexerNode.setIndex(current-token.length,current-1),this._setCurrentLexerNode(subLexerNode,isUnshift)}_getTopNode(lexerNode){let parentNode=lexerNode;for(;parentNode!=null&&parentNode.getParent();)parentNode=parentNode.getParent();return parentNode}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_findPreviousToken(data,index){for(;index>=0;){const token=data[index];if(token!==" ")return token;index--}}_negativeCondition(prevString){return!!(OPERATOR_TOKEN_SET.has(prevString)||prevString===matchToken.OPEN_BRACKET||prevString===matchToken.COMMA||prevString==="")}_getSequenceArray(formulaString){const sequenceArray=[];return this._nodeMaker(formulaString,sequenceArray),sequenceArray}_resetTemp(){this._currentLexerNode=new LexerNode,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1}_checkSimilarErrorToken(currentString,cur,formulaStringArray){if(currentString!==suffixToken.POUND)return!0;let currentText=formulaStringArray[++cur];for(;currentText===" ";)currentText=formulaStringArray[++cur];return!!isFormulaLexerToken(currentText)}_nodeMaker(formulaString,sequenceArray,matchCurrentNodeIndex){formulaString.substring(0,1)===operatorToken.EQUALS&&(formulaString=formulaString.substring(1));let isZeroAdded=!1;formulaString.substring(0,1)===operatorToken.MINUS&&(formulaString=`0${formulaString}`,isZeroAdded=!0);const formulaStringArray=formulaString.split(""),formulaStringArrayCount=formulaStringArray.length;let cur=0;for(this._resetTemp();cur<formulaStringArrayCount;){const currentString=formulaStringArray[cur];if(matchCurrentNodeIndex===cur)return[this._currentLexerNode,currentString];if(currentString===matchToken.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,cur),this._resetSegment()),this._openBracket(1),this._closeLambda();const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur,isZeroAdded),cur++,this._closeBracket();continue}else nextCurrentString&&this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else this._pushNodeToChildren(currentString),this._openBracket(0);else if(currentString===matchToken.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._pushNodeToChildren(this._segment),this._resetSegment();const currentBracket=this._getCurrentBracket();if(currentBracket===0)this._pushNodeToChildren(currentString);else if(currentBracket===1){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER,cur,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE}else return ErrorType$1.VALUE;this._closeBracket()}else if(currentString===matchToken.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._openBraces();else if(currentString===matchToken.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(currentString===matchToken.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(currentString),this._openSquareBracket();else if(currentString===matchToken.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(currentString),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(currentString);else if(currentString===matchToken.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.DOUBLE_QUOTATION?cur++:this._closeDoubleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.SINGLE_QUOTATION?cur++:this._closeSingleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const currentBracket=this._getCurrentBracket();if(currentBracket===1||currentBracket==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1&&currentBracket!=null)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else{const cubeNode=new LexerNode;cubeNode.setToken(DEFAULT_TOKEN_CUBE_FUNCTION_NAME);const cubeParamNode=new LexerNode;cubeParamNode.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),cubeParamNode.changeToParent(cubeNode);const colonNode=this._currentLexerNode.getParent();if(colonNode&&colonNode.getToken()===matchToken.COLON){const colonNodeParent=colonNode.getParent();if(!colonNodeParent)return ErrorType$1.VALUE;colonNode.changeToParent(cubeParamNode),colonNodeParent.setChildren([]),cubeNode.changeToParent(colonNodeParent)}else return ErrorType$1.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=cubeNode,this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}}else if(currentString===matchToken.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const subLexerNode_op=new LexerNode;subLexerNode_op.setToken(currentString);const subLexerNode_left=new LexerNode;subLexerNode_left.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_left.setParent(subLexerNode_op);const subLexerNode_right=new LexerNode;subLexerNode_right.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_right.setParent(subLexerNode_op),subLexerNode_op.getChildren().push(subLexerNode_left,subLexerNode_right);let subLexerNode_main=subLexerNode_op,upLevel=0;if(this._segmentCount()>0){let subLexerNode_minus,subLexerNode_at,sliceLength=0;const segmentTrim=this._segment.trim(),lastString=segmentTrim[0],twoLastString=segmentTrim[1];if(lastString===prefixToken.MINUS&&(subLexerNode_minus=new LexerNode,subLexerNode_minus.setToken(prefixToken.MINUS),sliceLength++),(lastString===prefixToken.AT||twoLastString===prefixToken.AT)&&(subLexerNode_at=new LexerNode,subLexerNode_at.setToken(prefixToken.AT),subLexerNode_minus&&(subLexerNode_minus.addChildren(subLexerNode_at),subLexerNode_at.setParent(subLexerNode_minus)),sliceLength++),sliceLength>0&&(this._segment=segmentTrim.slice(sliceLength)),upLevel=sliceLength,subLexerNode_at)if(subLexerNode_at.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_at),subLexerNode_at.getParent()){const node=subLexerNode_at.getParent();node&&(subLexerNode_main=node)}else subLexerNode_main=subLexerNode_at;else subLexerNode_minus&&(subLexerNode_main=subLexerNode_minus,subLexerNode_minus.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_minus));const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(this._segment),subLexerNode_ref.setParent(subLexerNode_left),subLexerNode_left.getChildren().push(subLexerNode_ref),this._resetSegment()}else{const lastChildNode=this._getLastChildCurrentLexerNode();lastChildNode&&lastChildNode.changeToParent(subLexerNode_left)}this._setCurrentLexerNode(subLexerNode_main),this._currentLexerNode=subLexerNode_right,this._openColon(upLevel)}else if(SUFFIX_TOKEN_SET.has(currentString)&&this._checkSimilarErrorToken(currentString,cur,formulaStringArray)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){this._pushNodeToChildren(this._segment);const subLexerNode=new LexerNode;subLexerNode.setToken(currentString);const lastChildNode=this._getLastChildCurrent();lastChildNode instanceof LexerNode?lastChildNode.changeToParent(subLexerNode):lastChildNode!==!1&&(subLexerNode.getChildren().push(lastChildNode),this._removeLastChild()),this._pushNodeToChildren(subLexerNode),subLexerNode.setParent(this._currentLexerNode),this._resetSegment()}else if(OPERATOR_TOKEN_SET.has(currentString)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){let trimSegment=this._segment.trim();if(currentString===operatorToken.MINUS&&trimSegment===""){const prevString=this._findPreviousToken(formulaStringArray,cur-1)||"";if(this._negativeCondition(prevString)){this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++;continue}}else if(this._segment.length>0&&this._isScientificNotation(formulaStringArray,cur,currentString)){this._pushSegment(currentString),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++;continue}else this._segment.length>0&&trimSegment===""?trimSegment=this._segment:(this._pushNodeToChildren(this._segment),trimSegment="");if(currentString===operatorToken.LESS_THAN||currentString===operatorToken.GREATER_THAN){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&OPERATOR_TOKEN_SET.has(currentString+nextCurrentString)){this._pushNodeToChildren(trimSegment+currentString+nextCurrentString),this._resetSegment(),this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur,isZeroAdded),cur++;continue}else this._pushNodeToChildren(trimSegment+currentString)}else this._pushNodeToChildren(trimSegment+currentString);this._resetSegment()}else this._pushSegment(currentString);this._addSequenceArray(sequenceArray,currentString,cur,isZeroAdded),cur++}this._pushNodeToChildren(this._segment)}_isScientificNotation(formulaStringArray,cur,currentString){const preTwoChar=formulaStringArray[cur-2];if(preTwoChar&&Number.isNaN(Number(preTwoChar))||!(currentString===operatorToken.MINUS||currentString===operatorToken.PLUS))return!1;const nextOneChar=formulaStringArray[cur+1];if(nextOneChar&&Number.isNaN(Number(nextOneChar)))return!1;const preOneChar=formulaStringArray[cur-1];return preOneChar&&preOneChar.toUpperCase()==="E"}_addSequenceArray(sequenceArray,currentString,cur,isZeroAdded){isZeroAdded&&cur===0||sequenceArray==null||sequenceArray.push({segment:this._segment,currentString,cur,currentLexerNode:this._currentLexerNode})}};__name(_LexerTreeBuilder,"LexerTreeBuilder");let LexerTreeBuilder=_LexerTreeBuilder;const _ObjectClassType=class _ObjectClassType extends core.Disposable{constructor(){super(...arguments);__publicField(this,"pattern","")}getPattern(){return this.pattern}setPattern(pattern){this.pattern=pattern}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(object){return!1}};__name(_ObjectClassType,"ObjectClassType");let ObjectClassType=_ObjectClassType;var BooleanValue=(BooleanValue2=>(BooleanValue2.FALSE="FALSE",BooleanValue2.TRUE="TRUE",BooleanValue2))(BooleanValue||{}),AstNodePromiseType=(AstNodePromiseType2=>(AstNodePromiseType2[AstNodePromiseType2.SUCCESS=0]="SUCCESS",AstNodePromiseType2[AstNodePromiseType2.ERROR=1]="ERROR",AstNodePromiseType2))(AstNodePromiseType||{}),TableOptionType=(TableOptionType2=>(TableOptionType2.ALL="#All",TableOptionType2.DATA="#Data",TableOptionType2.HEADERS="#Headers",TableOptionType2.TOTALS="#Totals",TableOptionType2))(TableOptionType||{}),ConcatenateType=(ConcatenateType2=>(ConcatenateType2[ConcatenateType2.FRONT=0]="FRONT",ConcatenateType2[ConcatenateType2.BACK=1]="BACK",ConcatenateType2))(ConcatenateType||{});const _InvertedIndexCache=class _InvertedIndexCache{constructor(){__publicField(this,"_cache",new Map);__publicField(this,"_continueBuildingCache",new Map)}set(unitId,sheetId,column,value,row){if(!this.shouldContinueBuildingCache(unitId,sheetId,column,row))return;let unitMap=this._cache.get(unitId);unitMap==null&&(unitMap=new Map,this._cache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);columnMap==null&&(columnMap=new Map,sheetMap.set(column,columnMap));let cellList=columnMap.get(value);cellList==null&&(cellList=new Set,columnMap.set(value,cellList)),cellList.add(row)}getCellValuePositions(unitId,sheetId,column){var _a24,_b;return(_b=(_a24=this._cache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column)}getCellPositions(unitId,sheetId,column,value){var _a24,_b,_c;return(_c=(_b=(_a24=this._cache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column))==null?void 0:_c.get(value)}getCellPosition(unitId,sheetId,column,value,startRow,endRow){const rows=this.getCellPositions(unitId,sheetId,column,value);if(rows!=null){for(const row of rows)if(row>=startRow&&row<=endRow)return row}}setContinueBuildingCache(unitId,sheetId,column,startRow,endRow){let unitMap=this._continueBuildingCache.get(unitId);unitMap==null&&(unitMap=new Map,this._continueBuildingCache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);if(columnMap==null){columnMap={startRow,endRow},sheetMap.set(column,columnMap);return}columnMap.startRow=Math.min(columnMap.startRow,startRow),columnMap.endRow=Math.max(columnMap.endRow,endRow)}shouldContinueBuildingCache(unitId,sheetId,column,row){var _a24,_b;const rowRange=(_b=(_a24=this._continueBuildingCache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column);if(rowRange==null)return!0;const{startRow,endRow}=rowRange;return!(row>=startRow&&row<=endRow)}canUseCache(unitId,sheetId,column,rangeStartRow,rangeEndRow){var _a24,_b;if(column===-1||rangeStartRow===-1||rangeEndRow===-1)return!1;const rowRange=(_b=(_a24=this._continueBuildingCache.get(unitId))==null?void 0:_a24.get(sheetId))==null?void 0:_b.get(column);if(rowRange==null)return!1;const{startRow,endRow}=rowRange;return!(rangeStartRow>endRow||rangeEndRow<startRow)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}};__name(_InvertedIndexCache,"InvertedIndexCache");let InvertedIndexCache=_InvertedIndexCache;const CELL_INVERTED_INDEX_CACHE=new InvertedIndexCache;var ArrayBinarySearchType=(ArrayBinarySearchType2=>(ArrayBinarySearchType2[ArrayBinarySearchType2.MIN=0]="MIN",ArrayBinarySearchType2[ArrayBinarySearchType2.MAX=1]="MAX",ArrayBinarySearchType2))(ArrayBinarySearchType||{}),ArrayOrderSearchType=(ArrayOrderSearchType2=>(ArrayOrderSearchType2[ArrayOrderSearchType2.NORMAL=0]="NORMAL",ArrayOrderSearchType2[ArrayOrderSearchType2.MIN=1]="MIN",ArrayOrderSearchType2[ArrayOrderSearchType2.MAX=2]="MAX",ArrayOrderSearchType2))(ArrayOrderSearchType||{});function getCompare(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(a,b)=>a.localeCompare(b)}__name(getCompare,"getCompare");function isWildcard(str){return str.indexOf("*")>-1||str.indexOf("?")>-1}__name(isWildcard,"isWildcard");function isMatchWildcard(currentValue,value){const pattern=escapeRegExp(value).replace(/~?[*?]/g,match=>match.startsWith("~")?`\\${match.substring(1)}`:match==="*"?".*":match==="?"?".":match);return new RegExp(`^${pattern}$`).test(currentValue)}__name(isMatchWildcard,"isMatchWildcard");function replaceWildcard(value){return value.replace(/~?[*?]/g,match=>match.startsWith("~")?match.substring(1):" ")}__name(replaceWildcard,"replaceWildcard");function compareWithWildcard(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=isMatchWildcard(currentValue,value);break;case compareToken.NOT_EQUAL:result=!isMatchWildcard(currentValue,value);break;case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:result=isMatchWildcard(currentValue,value)||currentValue>replaceWildcard(value);break;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<replaceWildcard(value);break}return result}__name(compareWithWildcard,"compareWithWildcard");function escapeRegExp(str){return str.replace(/[.+^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");const _BaseValueObject=class _BaseValueObject extends ObjectClassType{constructor(_rawValue){super(),this._rawValue=_rawValue}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(value){}setArrayValue(value){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return ErrorValueObject.create(ErrorType$1.VALUE)}max(){return ErrorValueObject.create(ErrorType$1.VALUE)}min(){return ErrorValueObject.create(ErrorType$1.VALUE)}count(){return ErrorValueObject.create(ErrorType$1.VALUE)}countA(){return ErrorValueObject.create(ErrorType$1.VALUE)}countBlank(){return ErrorValueObject.create(ErrorType$1.VALUE)}getNegative(){return ErrorValueObject.create(ErrorType$1.VALUE)}getReciprocal(){return ErrorValueObject.create(ErrorType$1.VALUE)}plus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}minus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}multiply(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}divided(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}mod(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}map(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}mapValue(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}compare(valueObject,operator,isCaseSensitive=!1){return ErrorValueObject.create(ErrorType$1.NAME)}isEqual(valueObject){return this.compare(valueObject,compareToken.EQUALS)}isNotEqual(valueObject){return this.compare(valueObject,compareToken.NOT_EQUAL)}isGreaterThanOrEqual(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(valueObject){return this.compare(valueObject,compareToken.LESS_THAN_OR_EQUAL)}isLessThan(valueObject){return this.compare(valueObject,compareToken.LESS_THAN)}isGreaterThan(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN)}concatenateFront(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}concatenateBack(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}plusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}minusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}multiplyBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}dividedBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}modInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}compareBy(value,operator){return ErrorValueObject.create(ErrorType$1.NAME)}concatenate(value,concatenateType=ConcatenateType.FRONT){let currentValue=this.getValue().toString();if(typeof value=="string")concatenateType===ConcatenateType.FRONT?currentValue=value+currentValue:currentValue+=value;else if(typeof value=="number")concatenateType===ConcatenateType.FRONT?currentValue=value.toString()+currentValue:currentValue+=value.toString();else if(typeof value=="boolean"){const booleanString=value?"TRUE":"FALSE";concatenateType===ConcatenateType.FRONT?currentValue=booleanString+currentValue:currentValue+=booleanString}return currentValue}pow(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}powInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}sqrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cbrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cos(){return ErrorValueObject.create(ErrorType$1.VALUE)}cosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}acos(){return ErrorValueObject.create(ErrorType$1.VALUE)}acosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}sin(){return ErrorValueObject.create(ErrorType$1.VALUE)}sinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}asin(){return ErrorValueObject.create(ErrorType$1.VALUE)}asinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}tan(){return ErrorValueObject.create(ErrorType$1.VALUE)}tanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2Inverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return ErrorValueObject.create(ErrorType$1.VALUE)}log10(){return ErrorValueObject.create(ErrorType$1.VALUE)}exp(){return ErrorValueObject.create(ErrorType$1.VALUE)}abs(){return ErrorValueObject.create(ErrorType$1.VALUE)}round(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}roundInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floor(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floorInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceil(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceilInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToNumberObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToBooleanObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_BaseValueObject,"BaseValueObject");let BaseValueObject=_BaseValueObject;const Error_CACHE_LRU_COUNT=1e3,ErrorValueObjectCache=new FormulaAstLRU(Error_CACHE_LRU_COUNT),_ErrorValueObject=class _ErrorValueObject extends BaseValueObject{constructor(_errorType,_errorContent=""){super(_errorType),this._errorType=_errorType,this._errorContent=_errorContent}static create(errorType,errorContent=""){const key=`${errorType}-${errorContent}`,cached=ErrorValueObjectCache.get(key);if(cached)return cached;const instance=new _ErrorValueObject(errorType,errorContent);return ErrorValueObjectCache.set(key,instance),instance}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(object){return object.getErrorType()===this.getErrorType()}isError(){return!0}};__name(_ErrorValueObject,"ErrorValueObject");let ErrorValueObject=_ErrorValueObject;function reverseCompareOperator(operator){let result;switch(operator){case compareToken.EQUALS:result=compareToken.EQUALS;break;case compareToken.GREATER_THAN:result=compareToken.LESS_THAN;break;case compareToken.GREATER_THAN_OR_EQUAL:result=compareToken.LESS_THAN_OR_EQUAL;break;case compareToken.LESS_THAN:result=compareToken.GREATER_THAN;break;case compareToken.LESS_THAN_OR_EQUAL:result=compareToken.GREATER_THAN_OR_EQUAL;break;case compareToken.NOT_EQUAL:result=compareToken.NOT_EQUAL;break}return result}__name(reverseCompareOperator,"reverseCompareOperator");function plus(a,b){return a+b}__name(plus,"plus");function minus(a,b){return a-b}__name(minus,"minus");function multiply(a,b){return a*b}__name(multiply,"multiply");function divide(a,b){return a/b}__name(divide,"divide");function round(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.round(multiply(base,factor)+epsilon)/factor}__name(round,"round");function floor(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.floor(multiply(base,factor)+epsilon)/factor}__name(floor,"floor");function ceil(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.ceil(multiply(base,factor)-epsilon)/factor}__name(ceil,"ceil");function baseEpsilon(base,factor){return Number.EPSILON*Math.max(1,Math.abs(multiply(base,factor)))}__name(baseEpsilon,"baseEpsilon");function mod(base,divisor){return base-divisor*Math.floor(base/divisor)}__name(mod,"mod");function pow(base,exponent){return base**exponent}__name(pow,"pow");function sqrt(base){return Math.sqrt(base)}__name(sqrt,"sqrt");function equals(a,b){return a===b}__name(equals,"equals");function greaterThan(a,b){return a>b}__name(greaterThan,"greaterThan");function greaterThanOrEquals(a,b){return a>=b}__name(greaterThanOrEquals,"greaterThanOrEquals");function lessThan(a,b){return a<b}__name(lessThan,"lessThan");function lessThanOrEquals(a,b){return a<=b}__name(lessThanOrEquals,"lessThanOrEquals");function strip(num,precision=15){return Number.parseFloat(num.toPrecision(precision))}__name(strip,"strip");function withinErrorMargin(left,right,tolerance=Number.EPSILON){return Math.abs(left-right)<tolerance}__name(withinErrorMargin,"withinErrorMargin");function stripErrorMargin(num,precision=12,tolerance=1e-10){const stripResult=strip(num,precision);return withinErrorMargin(num,stripResult,tolerance)?stripResult:strip(num)}__name(stripErrorMargin,"stripErrorMargin");function getFractionalPart(num){return num-Math.trunc(num)}__name(getFractionalPart,"getFractionalPart");const currencySymbols=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],NumberFormatTypeMap={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 handleNumfmtInCell(oldCell,cell,styles){var _a24,_b;if(oldCell==null||cell==null)return cell;const oldCellStyle=(styles==null?void 0:styles.getStyleByCell(oldCell))||oldCell.s,cellStyle=(styles==null?void 0:styles.getStyleByCell(cell))||cell.s;if(oldCellStyle==null||cellStyle==null||typeof oldCellStyle!="object"||typeof cellStyle!="object")return cell;const oldPattern=(_a24=oldCellStyle==null?void 0:oldCellStyle.n)==null?void 0:_a24.pattern,pattern=(_b=cellStyle==null?void 0:cellStyle.n)==null?void 0:_b.pattern;if(oldPattern==null||pattern==null)return cell;const newPattern=oldPattern||pattern;return cellStyle.n.pattern=newPattern,cell}__name(handleNumfmtInCell,"handleNumfmtInCell");function getNumberFormatType(pattern){if(isAccounting(pattern))return 3;const type=core.numfmt.getInfo(pattern).type||"unknown";return NumberFormatTypeMap[type]}__name(getNumberFormatType,"getNumberFormatType");function isAccounting(pattern){return!!currencySymbols.find(code=>pattern.includes(code))&&pattern.startsWith("_(")}__name(isAccounting,"isAccounting");function comparePatternPriority(previousPattern,nextPattern,operator){if(previousPattern==="")return nextPattern;if(nextPattern==="")return previousPattern;const previousPatternType=getNumberFormatType(previousPattern),nextPatternType=getNumberFormatType(nextPattern);return operator===operatorToken.PLUS||operator===operatorToken.MINUS?previousPatternType===4&&nextPatternType===4||previousPatternType===11&&nextPatternType===11?"":nextPattern:operator===operatorToken.MULTIPLY||operator===operatorToken.DIVIDED?previousPatternType===6&&nextPatternType===6||previousPatternType===7&&nextPatternType===7||previousPatternType===8&&nextPatternType===8||previousPatternType===9&&nextPatternType===9?nextPattern:"":previousPattern||nextPattern}__name(comparePatternPriority,"comparePatternPriority");const _NullValueObject=class _NullValueObject extends BaseValueObject{static create(){return this._instance=this._instance||new _NullValueObject(0),this._instance}isNull(){return!0}plus(valueObject){return NumberValueObject.create(0).plus(valueObject)}minus(valueObject){return NumberValueObject.create(0).minus(valueObject)}multiply(valueObject){return NumberValueObject.create(0).multiply(valueObject)}divided(valueObject){return NumberValueObject.create(0).divided(valueObject)}mod(valueObject){return NumberValueObject.create(0).mod(valueObject)}compare(valueObject,operator){return valueObject.isString()?StringValueObject.create("").compare(valueObject,operator):valueObject.isBoolean()?BooleanValueObject.create(!1).compare(valueObject,operator):NumberValueObject.create(0).compare(valueObject,operator)}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plusBy(value){return NumberValueObject.create(0).plusBy(value)}minusBy(value){return NumberValueObject.create(0).minusBy(value)}multiplyBy(value){return NumberValueObject.create(0).multiplyBy(value)}dividedBy(value){return NumberValueObject.create(0).dividedBy(value)}compareBy(value,operator){return typeof value=="string"?StringValueObject.create("").compareBy(value,operator):typeof value=="boolean"?BooleanValueObject.create(!1).compareBy(value,operator):NumberValueObject.create(0).compareBy(value,operator)}pow(valueObject){return NumberValueObject.create(0).pow(valueObject)}sqrt(){return NumberValueObject.create(0).sqrt()}cbrt(){return NumberValueObject.create(0).cbrt()}cos(){return NumberValueObject.create(0).cos()}cosh(){return NumberValueObject.create(0).cosh()}acos(){return NumberValueObject.create(0).acos()}acosh(){return NumberValueObject.create(0).acosh()}sin(){return NumberValueObject.create(0).sin()}sinh(){return NumberValueObject.create(0).sinh()}asin(){return NumberValueObject.create(0).asin()}asinh(){return NumberValueObject.create(0).asinh()}tan(){return NumberValueObject.create(0).tan()}tanh(){return NumberValueObject.create(0).tanh()}atan(){return NumberValueObject.create(0).atan()}atan2(valueObject){return NumberValueObject.create(0).atan2(valueObject)}atanh(){return NumberValueObject.create(0).atanh()}log(){return ErrorValueObject.create(ErrorType$1.NUM)}log10(){return ErrorValueObject.create(ErrorType$1.NUM)}exp(){return NumberValueObject.create(0).exp()}abs(){return NumberValueObject.create(0).abs()}round(valueObject){return NumberValueObject.create(0).round(valueObject)}floor(valueObject){return NumberValueObject.create(0).floor(valueObject)}ceil(valueObject){return NumberValueObject.create(0).ceil(valueObject)}convertToNumberObjectValue(){return NumberValueObject.create(0)}convertToBooleanObjectValue(){return BooleanValueObject.create(!1)}};__name(_NullValueObject,"NullValueObject"),__publicField(_NullValueObject,"_instance");let NullValueObject=_NullValueObject;const _BooleanValueObject=class _BooleanValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",!1);this._value=rawValue}static create(value){return value?(this._instanceTrue=this._instanceTrue||new _BooleanValueObject(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new _BooleanValueObject(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(-result)}getReciprocal(){return this.getValue()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}plus(valueObject){return this._convertToNumber().plus(valueObject)}minus(valueObject){return this._convertToNumber().minus(valueObject)}multiply(valueObject){return this._convertToNumber().multiply(valueObject)}divided(valueObject){return this._convertToNumber().divided(valueObject)}mod(valueObject){return this._convertToNumber().mod(valueObject)}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):valueObject.isNull()?this._convertToNumber().compare(valueObject,operator):this.compareBy(valueObject.getValue(),operator)}compareBy(value,operator){let result=!1;if(typeof value=="string"||typeof value=="number")result=this._compareString(operator);else if(typeof value=="boolean"){const booleanNumber=NumberValueObject.create(value?1:0);return this._convertToNumber().compare(booleanNumber,operator)}return _BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!1}}concatenateFront(valueObject){return this._convertToNumber().concatenateFront(valueObject)}concatenateBack(valueObject){return this._convertToNumber().concatenateBack(valueObject)}_convertToNumber(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}pow(valueObject){return this._convertToNumber().pow(valueObject)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}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(valueObject){return this._convertToNumber().atan2(valueObject)}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(valueObject){return this._convertToNumber().round(valueObject)}floor(valueObject){return this._convertToNumber().floor(valueObject)}ceil(valueObject){return this._convertToNumber().ceil(valueObject)}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return this}};__name(_BooleanValueObject,"BooleanValueObject"),__publicField(_BooleanValueObject,"_instanceTrue"),__publicField(_BooleanValueObject,"_instanceFalse");let BooleanValueObject=_BooleanValueObject;const NUMBER_CACHE_LRU_COUNT=2e5,NumberValueObjectCache=new FormulaAstLRU(NUMBER_CACHE_LRU_COUNT),_NumberValueObject=class _NumberValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",0);this._value=Number(rawValue)}static create(value,pattern=""){const key=`${value}-${pattern}`,cached=NumberValueObjectCache.get(key);if(cached)return cached;const instance=new _NumberValueObject(value);return pattern&&instance.setPattern(pattern),NumberValueObjectCache.set(key,instance),instance}getValue(){return this._value}setValue(value){this._value=value}isNumber(){return!0}getNegative(){return _NumberValueObject.create(0).minus(this)}getReciprocal(){return _NumberValueObject.create(1).divided(this)}plus(valueObject){if(valueObject.isArray())return valueObject.plus(this);let object=this.plusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.PLUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}equalZero(){return this._value===0}minus(valueObject){if(valueObject.isArray()){const o=valueObject.getNegative();return o.isError()?o:o.plus(this)}let object=this.minusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MINUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}multiply(valueObject){if(valueObject.isArray())return valueObject.multiply(this);let object=this.multiplyBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MULTIPLY);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}divided(valueObject){if(valueObject.isArray()){const o=valueObject.getReciprocal();return o.isError()?o:o.multiply(this)}let object=this.dividedBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.DIVIDED);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}mod(valueObject){if(valueObject.isArray())return valueObject.modInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(valueObject.isNull())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value)||Math.abs(value)*11259e8<=Math.abs(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=mod(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}if(typeof value=="boolean"){const booleanValue=value?1:0;return booleanValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(mod(currentValue,booleanValue))}return this}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):this.compareBy(valueObject.getValue(),operator)}plusBy(value){const currentValue=this.getValue();if(typeof value=="string")return ERROR_TYPE_SET.has(value)?ErrorValueObject.create(value):ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=plus(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(plus(currentValue,value?1:0)):this}minusBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=minus(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(minus(currentValue,value?1:0)):this}multiplyBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=multiply(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(multiply(currentValue,value?1:0)):this}dividedBy(value){const currentValue=this.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=divide(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?value===!1?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(divide(currentValue,1)):this}compareBy(value,operator){const currentValue=this.getValue();let result=!1;return typeof value=="string"?result=this._compareString(operator):typeof value=="number"?result=this._compareNumber(currentValue,value,operator):typeof value=="boolean"&&(result=this._compareBoolean(operator)),BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}_compareNumber(currentValue,value,operator){return!Number.isFinite(currentValue)||!Number.isFinite(value)?this._compareInfinity(currentValue,value,operator):this._compareFiniteNumber(currentValue,value,operator)}_compareFiniteNumber(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return equals(currentValue,value);case compareToken.GREATER_THAN:return greaterThan(currentValue,value);case compareToken.GREATER_THAN_OR_EQUAL:return greaterThanOrEquals(currentValue,value);case compareToken.LESS_THAN:return lessThan(currentValue,value);case compareToken.LESS_THAN_OR_EQUAL:return lessThanOrEquals(currentValue,value);case compareToken.NOT_EQUAL:return!equals(currentValue,value)}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}pow(valueObject){if(valueObject.isArray())return valueObject.powInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=pow(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(pow(currentValue,value?1:0)):this}sqrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=sqrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cbrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cbrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cos(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cosh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}acos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acos(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}acosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acosh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}sin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sin(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sinh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}asin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asin(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}asinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asinh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}tan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}tanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan2(valueObject){if(valueObject.isArray())return valueObject.atan2Inverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0&&value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.atan2(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(Math.atan2(currentValue,value?1:0)):this}atanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log10(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log10(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}exp(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.exp(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}abs(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}round(valueObject){if(valueObject.isArray())return valueObject.roundInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-round(Math.abs(currentValue),value):round(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(round(currentValue,value?1:0)):this}floor(valueObject){if(valueObject.isArray())return valueObject.floorInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-floor(Math.abs(currentValue),value):floor(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(floor(currentValue,value?1:0)):this}ceil(valueObject){if(valueObject.isArray())return valueObject.ceilInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-ceil(Math.abs(currentValue),value):ceil(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(ceil(currentValue,value?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return createBooleanValueObjectByRawValue(!0)}_compareInfinity(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=currentValue===value;break;case compareToken.GREATER_THAN:result=currentValue>value;break;case compareToken.GREATER_THAN_OR_EQUAL:result=currentValue>=value;break;case compareToken.LESS_THAN:result=currentValue<value;break;case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<=value;break;case compareToken.NOT_EQUAL:result=currentValue!==value;break}return result}};__name(_NumberValueObject,"NumberValueObject");let NumberValueObject=_NumberValueObject;const STRING_CACHE_LRU_COUNT=2e5,StringValueObjectCache=new FormulaAstLRU(STRING_CACHE_LRU_COUNT),_StringValueObject=class _StringValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value");this._value=rawValue}static create(value){const cached=StringValueObjectCache.get(value);if(cached)return cached;const instance=new _StringValueObject(value);return StringValueObjectCache.set(value,instance),instance}getValue(){return this._value}isString(){return!0}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator,isCaseSensitive){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator),isCaseSensitive):this.compareBy(valueObject.getValue(),operator,isCaseSensitive)}compareBy(value,operator,isCaseSensitive=!1){let currentValue=this.getValue(),result=!1;if(typeof value=="string"){let _value=value;if(isCaseSensitive||(currentValue=currentValue.toLocaleLowerCase(),_value=_value.toLocaleLowerCase()),isWildcard(_value))return this._checkWildcard(_value,operator);result=this._compareString(currentValue,_value,operator)}else typeof value=="number"?result=this._compareNumber(operator):typeof value=="boolean"&&(result=this._compareBoolean(operator));return BooleanValueObject.create(result)}_compareString(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return currentValue===value;case compareToken.GREATER_THAN:return currentValue>value;case compareToken.GREATER_THAN_OR_EQUAL:return currentValue>=value;case compareToken.LESS_THAN:return currentValue<value;case compareToken.LESS_THAN_OR_EQUAL:return currentValue<=value;case compareToken.NOT_EQUAL:return currentValue!==value}}_compareNumber(operator){switch(operator){case compareToken.NOT_EQUAL:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return BooleanValueObject.create(!0)}_checkWildcard(value,operator){const currentValue=this.getValue().toLocaleLowerCase(),result=compareWithWildcard(currentValue,value,operator);return BooleanValueObject.create(result)}};__name(_StringValueObject,"StringValueObject");let StringValueObject=_StringValueObject;function createBooleanValueObjectByRawValue(rawValue){if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);let value=!1;if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase();rawValueUpper===BooleanValue.TRUE?value=!0:rawValueUpper===BooleanValue.FALSE&&(value=!1)}else rawValue===1?value=!0:value=!1;return BooleanValueObject.create(value)}__name(createBooleanValueObjectByRawValue,"createBooleanValueObjectByRawValue");function createStringValueObjectByRawValue(rawValue){let value=rawValue.toString();return value.charAt(0)==='"'&&value.charAt(value.length-1)==='"'&&(value=value.slice(1,-1),value=value.replace(/""/g,'"')),StringValueObject.create(value)}__name(createStringValueObjectByRawValue,"createStringValueObjectByRawValue");function createNumberValueObjectByRawValue(rawValue,pattern=""){if(typeof rawValue=="boolean"){let result=0;return rawValue&&(result=1),NumberValueObject.create(result,pattern)}else{if(typeof rawValue=="number")return Number.isFinite(rawValue)?NumberValueObject.create(rawValue,pattern):ErrorValueObject.create(ErrorType$1.NUM);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue),pattern)}return ErrorValueObject.create(ErrorType$1.VALUE)}__name(createNumberValueObjectByRawValue,"createNumberValueObjectByRawValue");function fromObjectToString(array){return""}__name(fromObjectToString,"fromObjectToString");function transformToValueObject(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];arrayValueList[r][c]=ValueObjectFactory.create(cell)}}return arrayValueList}__name(transformToValueObject,"transformToValueObject");function transformToValue(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];cell==null?arrayValueList[r][c]=null:cell.isError()?arrayValueList[r][c]=cell.getErrorType():arrayValueList[r][c]=cell.getValue()}}return arrayValueList}__name(transformToValue,"transformToValue");const _ArrayValueObject=class _ArrayValueObject extends BaseValueObject{constructor(rawValue){super(typeof rawValue=="string"?rawValue:fromObjectToString());__publicField(this,"_values",[]);__publicField(this,"_rowCount",-1);__publicField(this,"_columnCount",-1);__publicField(this,"_unitId","");__publicField(this,"_sheetId","");__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_sliceCache",new Map);__publicField(this,"_flattenCache");__publicField(this,"_defaultValue",null);__publicField(this,"_flattenPosition");this._values=this._formatValue(rawValue)}static create(rawValue){return new _ArrayValueObject(rawValue)}static createByArray(array){const arrayValueObjectData={calculateValueList:transformToValueObject(array),rowCount:array.length,columnCount:array[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new _ArrayValueObject(arrayValueObjectData)}dispose(){this._values.forEach(cells=>{cells.forEach(cell=>{cell==null||cell.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(o=>o)}getRowCount(){return this._rowCount}setRowCount(rowCount){this._rowCount=rowCount}getColumnCount(){return this._columnCount}setColumnCount(columnCount){this._columnCount=columnCount}setCurrent(row,column){this._currentRow=row,this._currentColumn=column}setUnitId(unitId){this._unitId=unitId}getUnitId(){return this._unitId}setSheetId(sheetId){this._sheetId=sheetId}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(value){this._clearCache(),this._values=value}isArray(){return!0}setDefaultValue(value){this._defaultValue=value}get(row,column){var _a24;return(_a24=this._values[row])==null?void 0:_a24[column]}getRealValue(row,column){const rowValues=this._values[row];if(rowValues==null)return null;const v=rowValues[column];return v==null?null:v}getValueOrDefault(row,column){return this.get(row,column)||this._defaultValue}set(row,column,value){if(row>=this._rowCount||column>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[row][column]=value}getRangePosition(){const rowCount=this.getRowCount(),startColumn=0,columnCount=this.getColumnCount();return{startRow:0,endRow:rowCount-1,startColumn,endColumn:columnCount-1}}iterator(callback){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)if(callback(((_a24=valueList[r])==null?void 0:_a24[c])||this._defaultValue,r,c)===!1)return}iteratorReverse(callback){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=endRow;r>=startRow;r--)for(let c=endColumn;c>=startColumn;c--)if(callback(((_a24=valueList[r])==null?void 0:_a24[c])||this._defaultValue,r,c)===!1)return}getLastTruePosition(){let rangeSingle;return this.iteratorReverse((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstTruePosition(){let rangeSingle;return this.iterator((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstCell(){const{startRow,startColumn}=this.getRangePosition();return this.get(startRow,startColumn)||this._defaultValue||NullValueObject.create()}getLastCell(){const{endRow,endColumn}=this.getRangePosition();return this.get(endRow,endColumn)||this._defaultValue||NullValueObject.create()}pick(takeArray){const newValue=this.pickRaw(takeArray);return this._createNewArray(newValue,1,newValue[0].length)}pickRaw(takeArray){const takeArrayRowCount=takeArray.getRowCount(),takeArrayColumnCount=takeArray.getColumnCount();if(takeArrayRowCount!==this._rowCount||takeArrayColumnCount!==this._columnCount)return[[NullValueObject.create()]];const newValue=[];newValue[0]=[];for(let r=0;r<takeArrayRowCount;r++)for(let c=0;c<takeArrayColumnCount;c++){const takeCell=takeArray.get(r,c);if(!(takeCell==null||takeCell.isError())&&takeCell.getValue()===!0){const value=this.get(r,c);newValue[0].push(value)}}return newValue}flatten(){if(this._flattenCache!=null)return this._flattenCache;const newValue=[];newValue[0]=[];for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);newValue[0].push(value)}const arrayV=this._createNewArray(newValue,1,newValue[0].length);return arrayV.setDefaultValue(this._defaultValue),this._flattenCache=arrayV,arrayV}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const stringValue=[],numberValue=[],stringPosition=[],numberPosition=[];let index=0;for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);if(value==null||value.isError()||value.isNull()){index++;continue}value.isString()?(stringValue.push(value),stringPosition.push(index++)):(numberValue.push(value),numberPosition.push(index++))}const result={stringArray:stringValue,numberArray:numberValue,stringPosition,numberPosition};return this._flattenPosition=result,result}slice(rowParam,columnParam){let rowStart=0,rowStop=this._rowCount,rowStep=1,columnStart=0,columnStop=this._columnCount,columnStep=1;if(rowParam!=null&&(rowStart=rowParam[0]||0,rowStop=rowParam[1]||this._rowCount,rowStep=rowParam[2]||1),columnParam!=null&&(columnStart=columnParam[0]||0,columnStop=columnParam[1]||this._columnCount,columnStep=columnParam[2]||1),rowStart>=this._rowCount||columnStart>=this._columnCount)return;const cacheKey=`${rowStart}_${rowStop}_${rowStep}_${columnStart}_${columnStop}_${columnStep}`,cache=this._sliceCache.get(cacheKey);if(cache!=null)return cache;const result=[],array=this._values;let result_row_index=0,result_column_index=0;for(let r=rowStart;r<rowStop;r+=rowStep){result_column_index=0,result[result_row_index]==null&&(result[result_row_index]=[]);for(let c=columnStart;c<columnStop;c+=columnStep){if(!array[r])return;let cell=array[r][c]||this._defaultValue;cell==null&&(cell=NullValueObject.create()),result[result_row_index][result_column_index]=cell,result_column_index++}result_row_index++}if(result.length===0||result[0].length===0)return;const startRow=rowStep>1?-1:rowStart+this._currentRow,startColumn=columnStep>1?-1:columnStart+this._currentColumn,newResultArray=this._createNewArray(result,result.length,result[0].length,startRow,startColumn);return newResultArray.setDefaultValue(this._defaultValue),this._sliceCache.set(cacheKey,newResultArray),newResultArray}sortByRow(index){const result=this._transposeArray(this._values);result.sort(this._sort(index)),this._clearCache(),this._values=this._transposeArray(result)}sortByColumn(index){this._clearCache(),this._values.sort(this._sort(index))}transpose(){const transposeArray=this._transposeArray(this._values),rowCount=this._rowCount,columnCount=this._columnCount,newArray=this._createNewArray(transposeArray,columnCount,rowCount);return newArray.setDefaultValue(this._defaultValue),newArray}orderSearch(valueObject,searchType=ArrayOrderSearchType.MIN,isDesc=!1,isFuzzyMatching=!1){let result,maxOrMin,resultPosition,maxOrMinPosition;const _handleMatch=__name((itemValue,row,column)=>{if(itemValue==null)return!0;let matchObject;if(isFuzzyMatching===!0?matchObject=itemValue.compare(valueObject,compareToken.EQUALS):matchObject=itemValue.isEqual(valueObject),(matchObject==null?void 0:matchObject.getValue())===!0)return result=itemValue,resultPosition={row,column},!1;searchType===ArrayOrderSearchType.MAX?itemValue.isGreaterThan(valueObject).getValue()===!0&&(maxOrMin==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin=itemValue,maxOrMinPosition={row,column}):searchType===ArrayOrderSearchType.MIN&&itemValue.isLessThan(valueObject).getValue()===!0&&(maxOrMin==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin=itemValue,maxOrMinPosition={row,column})},"_handleMatch");if(isDesc){const rowCount=this._values.length;if(this._values[0]==null)return;const columnCount=this._values[0].length;for(let r=rowCount-1;r>=0;r--)for(let c=columnCount-1;c>=0;c--){const itemValue=this._values[r][c];_handleMatch(itemValue,r,c)}}else this.iterator((itemValue,r,c)=>{_handleMatch(itemValue,r,c)});if(result!=null)return resultPosition;if(maxOrMin!=null)return maxOrMinPosition}binarySearch(valueObject,searchType=ArrayBinarySearchType.MIN){if(valueObject.isError())return;const{stringArray,stringPosition,numberArray,numberPosition}=this.flattenPosition();return valueObject.isString()?this._binarySearch(valueObject,stringArray,stringPosition,searchType):this._binarySearch(valueObject,numberArray,numberPosition,searchType)}_binarySearch(valueObject,searchArray,positionArray,searchType=ArrayBinarySearchType.MIN){const compareFunc=getCompare(),value=valueObject.getValue().toString().toLocaleLowerCase();let start=0,end=searchArray.length-1,lastValue=null;for(;start<=end;){const middle=Math.floor((start+end)/2),compareTo=searchArray[middle];let compare=0;if(compareTo.isNull())compare=1;else{const compareToValue=compareTo.getValue();compare=compareFunc(compareToValue.toString().toLocaleLowerCase(),value)}if(compare===0)return positionArray[middle];compare===-1?(start=middle+1,searchType===ArrayBinarySearchType.MIN&&(lastValue=middle)):(end=middle-1,searchType===ArrayBinarySearchType.MAX&&(lastValue=middle))}if(lastValue!=null)return positionArray[lastValue]}sum(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject)}),accumulatorAll}max(){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isLessThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}min(){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isGreaterThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}count(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countA(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countBlank(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{(valueObject==null||valueObject.isNull()||valueObject.getValue()==="")&&(accumulatorAll=accumulatorAll.plusBy(1))}),accumulatorAll}getNegative(){return _ArrayValueObject.create("{0}").minus(this)}getReciprocal(){return _ArrayValueObject.create("{1}").divided(this)}plus(valueObject){return this._batchOperator(valueObject,1)}minus(valueObject){return this._batchOperator(valueObject,0)}multiply(valueObject){return this._batchOperator(valueObject,2)}divided(valueObject){return this._batchOperator(valueObject,3)}mod(valueObject){return this._batchOperator(valueObject,4)}modInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.mod(currentValue))}compare(valueObject,operator,isCaseSensitive){return this._batchOperator(valueObject,5,operator,isCaseSensitive)}concatenateFront(valueObject){return this._batchOperator(valueObject,6)}concatenateBack(valueObject){return this._batchOperator(valueObject,7)}map(callbackFn){const wrappedCallbackFn=__name((currentValue,r,c)=>currentValue==null?NullValueObject.create():currentValue.isError()?currentValue:callbackFn(currentValue,r,c),"wrappedCallbackFn");return this.mapValue(wrappedCallbackFn)}mapValue(callbackFn){var _a24;const rowCount=this._rowCount,columnCount=this._columnCount,result=[];for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){const row=(_a24=this._values)==null?void 0:_a24[r];if(row==null)rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);else{const currentValue=row[c]||this._defaultValue;currentValue?rowList[c]=callbackFn(currentValue,r,c):rowList[c]=NullValueObject.create()}}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}pow(valueObject){return this._batchOperator(valueObject,8)}powInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.pow(currentValue))}sqrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sqrt())}cbrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cbrt())}cos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cos())}cosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cosh())}acos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acos())}acosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acosh())}sin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sin())}sinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sinh())}asin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asin())}asinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asinh())}tan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tan())}tanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tanh())}atan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atan())}atanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atanh())}atan2(valueObject){return this._batchOperator(valueObject,12)}atan2Inverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.atan2(currentValue))}mean(ddof=0){const sum=this.sum(),count=this.count();return sum.divided(ddof===0?count:count.minusBy(1))}median(){const numberArray=this.flattenPosition().numberArray,allValue=this._createNewArray([numberArray],1,numberArray.length),count=allValue.getColumnCount();if(count<=1)return allValue.get(0,0)||NullValueObject.create();if(allValue.sortByRow(0),count%2===0){const medianRight=allValue.get(0,count/2)||NullValueObject.create(),medianLeft=allValue.get(0,count/2-1)||NullValueObject.create();return medianRight.plus(medianLeft).divided(NumberValueObject.create(2))}return allValue.get(0,(count-1)/2)||NullValueObject.create()}var(ddof=0){const mean=this.mean(),squaredDifferences=[[]];this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return;const baseValueObject=valueObject.minus(mean).pow(NumberValueObject.create(2));baseValueObject.isError()||squaredDifferences[0].push(baseValueObject)});const{_unitId,_sheetId,_currentRow,_currentColumn}=this;return _ArrayValueObject.create({calculateValueList:squaredDifferences,rowCount:1,columnCount:squaredDifferences[0].length,unitId:_unitId,sheetId:_sheetId,row:_currentRow,column:_currentColumn}).mean(ddof)}std(ddof=0){const variance=this.var(ddof);return variance.isError()?variance:variance.sqrt()}log(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log())}log10(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log10())}exp(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.exp())}abs(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.abs())}round(valueObject){return this._batchOperator(valueObject,9)}roundInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.round(currentValue))}floor(valueObject){return this._batchOperator(valueObject,10)}floorInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.floor(currentValue))}ceil(valueObject){return this._batchOperator(valueObject,11)}ceilInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.ceil(currentValue))}toValue(){return transformToValue(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(index){const compare=getCompare();return(a,b)=>{const columnA=a[index],columnB=b[index];return columnA==null?1:columnB==null?-1:columnA.isError()&&columnA.isError()?0:columnA.isError()?1:columnB.isError()?-1:compare(columnA.getValue(),columnB.getValue())}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_batchOperator(valueObject,batchOperatorType,operator,isCaseSensitive){const valueList=[];let rowCount=this._rowCount,columnCount=this._columnCount;if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(rowCount=Math.max(valueRowCount,rowCount),columnCount=Math.max(valueColumnCount,columnCount),valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let c=0;c<columnCount;c++)valueList.push(v)}else if(valueRowCount===1&&this._columnCount>1){const list=valueObject.getArrayValue();for(let c=0;c<columnCount;c++)valueList.push(list[0][c])}else return this._batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive)}else for(let c=0;c<columnCount;c++)valueList.push(valueObject);const result=[];for(let c=0;c<columnCount;c++){const value=valueList[c];this._batchOperatorValue(value,c,result,batchOperatorType,operator,isCaseSensitive)}const newArray=this._createNewArray(result,rowCount,columnCount);return newArray.setDefaultValue(BooleanValueObject.create(!1)),newArray}_batchOperatorValue(valueObject,column,result,batchOperatorType,operator,isCaseSensitive){const rowCount=this._rowCount;let canUseCache=!1;const unitId=this.getUnitId(),sheetId=this.getSheetId(),startRow=this.getCurrentRow(),startColumn=this.getCurrentColumn();if(batchOperatorType===5&&(canUseCache=CELL_INVERTED_INDEX_CACHE.canUseCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1),canUseCache===!0)){if(operator===compareToken.EQUALS){const rowPositions=CELL_INVERTED_INDEX_CACHE.getCellPositions(unitId,sheetId,column+startColumn,valueObject.getValue());rowPositions!=null&&rowPositions.forEach(row=>{const r=row-startRow;result[r]==null&&(result[r]=[]),result[r][column]=BooleanValueObject.create(!0)})}else{const rowValuePositions=CELL_INVERTED_INDEX_CACHE.getCellValuePositions(unitId,sheetId,column+startColumn);rowValuePositions!=null&&rowValuePositions.forEach((rowPositions,rowValue)=>{let currentValue=NullValueObject.create();typeof rowValue=="string"?currentValue=StringValueObject.create(rowValue):typeof rowValue=="number"?currentValue=NumberValueObject.create(rowValue):typeof rowValue=="boolean"&&(currentValue=BooleanValueObject.create(rowValue)),currentValue.compare(valueObject,operator,isCaseSensitive).getValue()===!0&&rowPositions.forEach(index=>{index>=startRow&&index<=startRow+rowCount-1&&(result[index-startRow]==null&&(result[index-startRow]=[]),result[index-startRow][column]=BooleanValueObject.create(!0))})})}return}for(let r=0;r<rowCount;r++){const currentValue=this.getValueOrDefault(r,column);if(result[r]==null&&(result[r]=[]),currentValue&&valueObject)if(currentValue.isError())result[r][column]=currentValue;else if(valueObject.isError())result[r][column]=valueObject;else switch(batchOperatorType){case 1:result[r][column]=currentValue.plus(valueObject);break;case 0:result[r][column]=currentValue.minus(valueObject);break;case 2:result[r][column]=currentValue.multiply(valueObject);break;case 3:result[r][column]=currentValue.divided(valueObject);break;case 4:result[r][column]=currentValue.mod(valueObject);break;case 5:operator?result[r][column]=currentValue.compare(valueObject,operator,isCaseSensitive):result[r][column]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:result[r][column]=currentValue.concatenateFront(valueObject);break;case 7:result[r][column]=currentValue.concatenateBack(valueObject);break;case 8:result[r][column]=currentValue.pow(valueObject);break;case 9:result[r][column]=currentValue.round(valueObject);break;case 10:result[r][column]=currentValue.floor(valueObject);break;case 12:result[r][column]=currentValue.atan2(valueObject);break;case 11:result[r][column]=currentValue.ceil(valueObject);break}else result[r][column]=ErrorValueObject.create(ErrorType$1.NA);currentValue!=null&&(currentValue.isError()?CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getErrorType(),r+startRow):CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getValue(),r+startRow))}CELL_INVERTED_INDEX_CACHE.setContinueBuildingCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1)}_batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive){let rowCount=valueObject.getRowCount(),columnCount=valueObject.getColumnCount();rowCount<this._rowCount&&(rowCount=this._rowCount),columnCount<this._columnCount&&(columnCount=this._columnCount);const result=[],currentCalculateType=this._checkArrayCalculateType(this),opCalculateType=this._checkArrayCalculateType(valueObject);for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){let currentValue;currentCalculateType===3?currentValue=this.getValueOrDefault(0,0):currentCalculateType===1?currentValue=this.getValueOrDefault(0,c):currentCalculateType===2?currentValue=this.getValueOrDefault(r,0):currentValue=this.getValueOrDefault(r,c);let opValue;if(opCalculateType===3?opValue=valueObject.getValueOrDefault(0,0):opCalculateType===1?opValue=valueObject.getValueOrDefault(0,c):opCalculateType===2?opValue=valueObject.getValueOrDefault(r,0):opValue=valueObject.getValueOrDefault(r,c),currentValue&&opValue)if(currentValue.isError())rowList[c]=currentValue;else if(opValue.isError())rowList[c]=opValue;else switch(batchOperatorType){case 1:rowList[c]=currentValue.plus(opValue);break;case 0:rowList[c]=currentValue.minus(opValue);break;case 2:rowList[c]=currentValue.multiply(opValue);break;case 3:rowList[c]=currentValue.divided(opValue);break;case 4:rowList[c]=currentValue.mod(opValue);break;case 5:operator?rowList[c]=currentValue.compare(opValue,operator,isCaseSensitive):rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:rowList[c]=currentValue.concatenateFront(opValue);break;case 7:rowList[c]=currentValue.concatenateBack(opValue);break;case 8:rowList[c]=currentValue.pow(opValue);break;case 9:rowList[c]=currentValue.round(opValue);break;case 12:rowList[c]=currentValue.atan2(opValue);break;case 10:rowList[c]=currentValue.floor(opValue);break;case 11:rowList[c]=currentValue.ceil(opValue);break}else rowList[c]=ErrorValueObject.create(ErrorType$1.NA)}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}_checkArrayCalculateType(valueObject){return valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?3:valueObject.getRowCount()===1?1:valueObject.getColumnCount()===1?2:0}_formatValue(rawValue){if(typeof rawValue!="string")return rawValue=rawValue,this._rowCount=rawValue.rowCount,this._columnCount=rawValue.columnCount,this._unitId=rawValue.unitId,this._sheetId=rawValue.sheetId,this._currentRow=rawValue.row,this._currentColumn=rawValue.column,rawValue.calculateValueList;rawValue=rawValue.slice(1,-1);const rowArray=rawValue.split(";"),rowArrayCount=rowArray.length,result=[];let maxColumnCount=0;for(let r=0;r<rowArrayCount;r++){const columnArray=rowArray[r].split(","),columnArrayCount=columnArray.length;maxColumnCount<columnArrayCount&&(maxColumnCount=columnArrayCount);const row=[];for(let c=0;c<columnArrayCount;c++){const cellRaw=columnArray[c].trim();row.push(ValueObjectFactory.create(cellRaw))}result.push(row)}return this._rowCount=rowArrayCount,this._columnCount=maxColumnCount,result}_createNewArray(result,rowCount,columnCount,row=-1,column=-1){(this._currentColumn===-1||this._currentRow===-1)&&(row=-1,column=-1);const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId:this.getUnitId(),sheetId:this.getSheetId(),row,column};return _ArrayValueObject.create(arrayValueObjectData)}};__name(_ArrayValueObject,"ArrayValueObject");let ArrayValueObject=_ArrayValueObject;const _ValueObjectFactory=class _ValueObjectFactory{static create(rawValue){if(rawValue==null)return NullValueObject.create();if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase().trim();return ERROR_TYPE_SET.has(rawValueUpper)?ErrorValueObject.create(rawValueUpper):rawValueUpper===BooleanValue.TRUE||rawValueUpper===BooleanValue.FALSE?createBooleanValueObjectByRawValue(rawValue):core.isRealNum(rawValue)?NumberValueObject.create(Number(rawValue)):new RegExp($ARRAY_VALUE_REGEX,"g").test(rawValue.replace(/\n/g,"").replace(/\r/g,""))?ArrayValueObject.create(rawValue.replace(/\n/g,"").replace(/\r/g,"")):createStringValueObjectByRawValue(rawValue)}return typeof rawValue=="number"?createNumberValueObjectByRawValue(rawValue):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_ValueObjectFactory,"ValueObjectFactory");let ValueObjectFactory=_ValueObjectFactory;function getCellValue(cell){if(cell===null)return 0;if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return 0;const data=body.dataStream;return data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data}return(cell==null?void 0:cell.v)||0}__name(getCellValue,"getCellValue");function getRuntimeFeatureCell(row,column,sheetId,unitId,runtimeFeatureCellData){var _a24;const featureKeys=Object.keys(runtimeFeatureCellData);for(const featureId of featureKeys){const data=runtimeFeatureCellData[featureId],CellData=(_a24=data==null?void 0:data[unitId])==null?void 0:_a24[sheetId];if(CellData==null)continue;const value=CellData.getValue(row,column);if(value!=null)return value}}__name(getRuntimeFeatureCell,"getRuntimeFeatureCell");const FORMULA_CACHE_LRU_COUNT$1=1e5,FORMULA_REF_TO_ARRAY_CACHE=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$1),_BaseReferenceObject=class _BaseReferenceObject extends ObjectClassType{constructor(_token){super();__publicField(this,"_forcedSheetId","");__publicField(this,"_forcedSheetName","");__publicField(this,"_defaultSheetId","");__publicField(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_defaultUnitId","");__publicField(this,"_forcedUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(token){this._token=token}isExceedRange(){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();return startRow<0||startColumn<0||endRow>=this.getActiveSheetRowCount()||endColumn>=this.getActiveSheetColumnCount()}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow,startColumn,endRow,endColumn}=core.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(startRow)&&(startRow=0),Number.isNaN(startColumn)&&(startColumn=0),Number.isNaN(endRow)&&(endRow=this.getActiveSheetRowCount()-1),Number.isNaN(endColumn)&&(endColumn=this.getActiveSheetColumnCount()-1),{startRow,endRow,startColumn,endColumn}}isReferenceObject(){return!0}iterator(callback){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();if(this._checkIfWorksheetMiss())return callback(ErrorValueObject.create(ErrorType$1.VALUE),startRow,startColumn);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r<0||c<0)return callback(ErrorValueObject.create(ErrorType$1.REF),r,c);const cell=this.getCellData(r,c);let result=!1;if(core.isNullCell(cell)){result=callback(null,r,c);continue}let resultObjectValue=this.getCellValueObject(cell);if(r===startRow&&c===startColumn){const pattern=this.getCellPattern(unitId,sheetId,r,c);if(pattern&&resultObjectValue.isNumber()){const value=Number(resultObjectValue.getValue());resultObjectValue=NumberValueObject.create(value,pattern)}}if(result=callback(resultObjectValue,r,c),result===!1)return}}getFirstCell(){const{startRow,startColumn}=this.getRangePosition(),cell=this.getCellData(startRow,startColumn);if(!cell)return NumberValueObject.create(0);let cellValueObject=this.getCellValueObject(cell);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId,pattern=this.getCellPattern(unitId,sheetId,startRow,startColumn);if(pattern&&cellValueObject.isNumber()){const value=Number(cellValueObject.getValue());cellValueObject=NumberValueObject.create(value,pattern)}return cellValueObject}getRangeData(){return this._rangeData}setRangeData(range){this._rangeData=range}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(unitId){unitId.length>0&&(this._forcedUnitId=unitId)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(sheetNameMap){var _a24;this._forcedSheetId=(_a24=sheetNameMap[this.getUnitId()])==null?void 0:_a24[this._forcedSheetName]}setForcedSheetIdDirect(sheetId){this._forcedSheetId=sheetId}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(sheetName){sheetName.length>0&&(this._forcedSheetName=sheetName)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(sheetId){this._defaultSheetId=sheetId}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(unitId){this._defaultUnitId=unitId}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(unitData){this._unitData=unitData}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(unitStylesData){this._unitStylesData=unitStylesData}getRuntimeData(){return this._runtimeData}setRuntimeData(runtimeData){this._runtimeData=runtimeData}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(unitData){this._arrayFormulaCellData=unitData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(unitData){this._runtimeArrayFormulaCellData=unitData}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(unitData){this._runtimeFeatureCellData=unitData}getActiveSheetRowCount(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.rowCount)||0}getActiveSheetColumnCount(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.rowData)||{}}getColumnData(){var _a24;return((_a24=this.getCurrentActiveSheetData())==null?void 0:_a24.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(referenceObject){return ErrorValueObject.create(ErrorType$1.REF)}unionRange(rangeData1,rangeData2){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(cell){const value=getCellValue(cell);if(ERROR_TYPE_SET.has(value))return ErrorValueObject.create(value);if(cell.t===core.CellValueType.NUMBER){const pattern=this._getPatternByCell(cell);return createNumberValueObjectByRawValue(value,pattern)}return cell.t===core.CellValueType.STRING||cell.t===core.CellValueType.FORCE_STRING?StringValueObject.create(value.toString()):cell.t===core.CellValueType.BOOLEAN?createBooleanValueObjectByRawValue(value):ValueObjectFactory.create(value)}_getPatternByCell(cell){var _a24;const styles=this._unitStylesData[this.getUnitId()];if(!styles)return"";const style=styles.getStyleByCell(cell);return((_a24=style==null?void 0:style.n)==null?void 0:_a24.pattern)||""}getCellByRow(row){return this.getCellByPosition(row)}getCellByColumn(column){return this.getCellByPosition(void 0,column)}getCurrentActiveSheetData(){var _a24;return(_a24=this._unitData[this.getUnitId()])==null?void 0:_a24[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var _a24,_b;return(_b=(_a24=this._runtimeData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var _a24,_b;return(_b=(_a24=this._arrayFormulaCellData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var _a24,_b;return(_b=(_a24=this._runtimeArrayFormulaCellData)==null?void 0:_a24[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCellData(row,column){const activeSheetData=this.getCurrentActiveSheetData(),activeRuntimeData=this.getCurrentRuntimeSheetData(),activeArrayFormulaCellData=this.getCurrentActiveArrayFormulaCellData(),activeRuntimeArrayFormulaCellData=this.getCurrentRuntimeActiveArrayFormulaCellData();return(activeRuntimeData==null?void 0:activeRuntimeData.getValue(row,column))||(activeRuntimeArrayFormulaCellData==null?void 0:activeRuntimeArrayFormulaCellData.getValue(row,column))||this.getRuntimeFeatureCellValue(row,column)||(activeArrayFormulaCellData==null?void 0:activeArrayFormulaCellData.getValue(row,column))||(activeSheetData==null?void 0:activeSheetData.cellData.getValue(row,column))}getRuntimeFeatureCellValue(row,column){return getRuntimeFeatureCell(row,column,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(row,column){row||(row=this._rangeData.startRow),column||(column=this._rangeData.startColumn);const cell=this.getCellData(row,column);return cell?this.getCellValueObject(cell):ErrorValueObject.create(ErrorType$1.VALUE)}getCellPattern(unitId,sheetId,row,column){var _a24,_b,_c,_d;const currentStyles=this._unitStylesData[unitId];if(!currentStyles)return"";const currentCell=(_c=(_b=(_a24=this._unitData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.cellData)==null?void 0:_c.getValue(row,column);if(!currentCell)return"";const style=currentStyles.getStyleByCell(currentCell);return((_d=style==null?void 0:style.n)==null?void 0:_d.pattern)||""}toArrayValueObject(useCache=!0){var _a24;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),key=`${this.getUnitId()}_${this.getSheetId()}_${startRow}_${endRow}_${startColumn}_${endColumn}`,array=FORMULA_REF_TO_ARRAY_CACHE.get(key);if(array&&useCache)return array;const rowSize=endRow-startRow+1,columnSize=endColumn-startColumn+1;if(rowSize<0||columnSize<0)return this._getBlankArrayValueObject();const arrayValueList=new Array(rowSize);this.iterator((valueObject,rowIndex,columnIndex)=>{const row=rowIndex-startRow,column=columnIndex-startColumn;arrayValueList[row]||(arrayValueList[row]=new Array(columnSize)),valueObject==null&&(valueObject=NullValueObject.create()),arrayValueList[row][column]=valueObject});const arrayValueObjectData={calculateValueList:arrayValueList,rowCount:arrayValueList.length,columnCount:((_a24=arrayValueList[0])==null?void 0:_a24.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:startRow,column:startColumn},arrayValueObject=ArrayValueObject.create(arrayValueObjectData);return useCache&&FORMULA_REF_TO_ARRAY_CACHE.set(key,arrayValueObject),arrayValueObject}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 arrayValueObjectData={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_BaseReferenceObject,"BaseReferenceObject");let BaseReferenceObject=_BaseReferenceObject;const _AsyncObject=class _AsyncObject extends ObjectClassType{constructor(_promise){super(),this._promise=_promise}isAsyncObject(){return!0}async getValue(){return this._promise}};__name(_AsyncObject,"AsyncObject");let AsyncObject=_AsyncObject;const _AsyncArrayObject=class _AsyncArrayObject extends ObjectClassType{constructor(_promiseList){super(),this._promiseList=_promiseList}isAsyncArrayObject(){return!0}async getValue(){var _a24;const variants=[];for(let r=0;r<this._promiseList.length;r++){const promiseCells=this._promiseList[r];variants[r]==null&&(variants[r]=[]);for(let c=0;c<promiseCells.length;c++){const promiseCell=promiseCells[c];promiseCell.isAsyncObject()?variants[r][c]=await promiseCell.getValue():variants[r][c]=promiseCell}}const arrayValueObjectData={calculateValueList:variants,rowCount:variants.length,columnCount:((_a24=variants[0])==null?void 0:_a24.length)||0,unitId:"",sheetId:"",row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_AsyncArrayObject,"AsyncArrayObject");let AsyncArrayObject=_AsyncArrayObject;const _RangeReferenceObject=class _RangeReferenceObject extends BaseReferenceObject{constructor(range,forcedSheetId,forcedUnitId){super(""),this.setRangeData(range),forcedSheetId&&this.setForcedSheetIdDirect(forcedSheetId),forcedUnitId&&this.setForcedUnitIdDirect(forcedUnitId)}isRange(){return!0}};__name(_RangeReferenceObject,"RangeReferenceObject");let RangeReferenceObject=_RangeReferenceObject;const $relativeRegex=/[\[\]]/g;function handleR1C1(rowOrColumnString,current){if($relativeRegex.test(rowOrColumnString)){const index=Number(rowOrColumnString.replace($relativeRegex,""));return current+index}return Number(rowOrColumnString)-1}__name(handleR1C1,"handleR1C1");function singleReference(refBody,currentRow=0,currentColumn=0){refBody=refBody.toLocaleUpperCase();const refBodyArray=refBody.split(/[RC]/),rowString=refBodyArray[1],columnString=refBodyArray[2],row=handleR1C1(rowString,currentRow),column=handleR1C1(columnString,currentColumn);return{row,column,absoluteRefType:core.AbsoluteRefType.NONE}}__name(singleReference,"singleReference");function deserializeRangeForR1C1(refString,currentRow=0,currentColumn=0){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReference(refBody,currentRow,currentColumn),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReference(refStartString,currentRow,currentColumn),endGrid=singleReference(refEndString,currentRow,currentColumn),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;return{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType}}}__name(deserializeRangeForR1C1,"deserializeRangeForR1C1");function serializeRangeToR1C1(range){const startRowRef=getR1C1Ref(range.startRow,range.startAbsoluteRefType,!0),startColumnRef=getR1C1Ref(range.startColumn,range.startAbsoluteRefType,!1),endRowRef=getR1C1Ref(range.endRow,range.endAbsoluteRefType,!0),endColumnRef=getR1C1Ref(range.endColumn,range.endAbsoluteRefType,!1);return startRowRef===endRowRef&&startColumnRef===endColumnRef?`R${startRowRef}C${startColumnRef}`:`R${startRowRef}C${startColumnRef}:R${endRowRef}C${endColumnRef}`}__name(serializeRangeToR1C1,"serializeRangeToR1C1");function getR1C1Ref(index,absoluteRefType=core.AbsoluteRefType.ALL,isRow){switch(index+=1,absoluteRefType){case core.AbsoluteRefType.ALL:return`${index}`;case core.AbsoluteRefType.ROW:return isRow?`${index}`:`[${index}]`;case core.AbsoluteRefType.COLUMN:return isRow?`[${index}]`:`${index}`;case core.AbsoluteRefType.NONE:return`[${index}]`}}__name(getR1C1Ref,"getR1C1Ref");const functionArray=[];var FUNCTION_NAMES_ARRAY=(FUNCTION_NAMES_ARRAY2=>FUNCTION_NAMES_ARRAY2)(FUNCTION_NAMES_ARRAY||{});function expandArrayValueObject(rowCount,columnCount,valueObject,defaultValue){const result=[];if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(v);result.push(row)}}else if(valueRowCount===1&&valueColumnCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(0,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else if(valueColumnCount===1&&valueRowCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,0)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(valueObject);result.push(row)}return createNewArray(result,rowCount,columnCount)}__name(expandArrayValueObject,"expandArrayValueObject");function createNewArray(result,rowCount,columnCount,unitId="",sheetId=""){const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId,sheetId,row:-1,column:-1};return ArrayValueObject.create(arrayValueObjectData)}__name(createNewArray,"createNewArray");function findCompareToken(str){const comparisonTokens=[compareToken.EQUALS,compareToken.NOT_EQUAL,compareToken.GREATER_THAN_OR_EQUAL,compareToken.GREATER_THAN,compareToken.LESS_THAN_OR_EQUAL,compareToken.LESS_THAN];for(const token of comparisonTokens)if(str.startsWith(token)){const content=str.substring(token.length);return[token,ValueObjectFactory.create(content)]}return[compareToken.EQUALS,ValueObjectFactory.create(str)]}__name(findCompareToken,"findCompareToken");function valueObjectCompare(range,criteria,operator,isCaseSensitive){if(!operator)if(criteria.isString()){const criteriaValueString=`${criteria.getValue()}`,[token,criteriaStringObject]=findCompareToken(criteriaValueString);operator=token,criteria=criteriaStringObject}else operator=compareToken.EQUALS;return range.compare(criteria,operator,isCaseSensitive)}__name(valueObjectCompare,"valueObjectCompare");function booleanObjectIntersection(valueObject1,valueObject2){const maxRowLength=Math.max(valueObject1.isArray()?valueObject1.getRowCount():1,valueObject2.isArray()?valueObject2.getRowCount():1),maxColumnLength=Math.max(valueObject1.isArray()?valueObject1.getColumnCount():1,valueObject2.isArray()?valueObject2.getColumnCount():1),valueObject1Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject1),valueObject2Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject2);return valueObject1Array.mapValue((valueObject12,rowIndex,columnIndex)=>{const valueObject22=valueObject2Array.get(rowIndex,columnIndex);return valueObject12!=null&&valueObject12.isError()?valueObject12:valueObject22!=null&&valueObject22.isError()?valueObject22:valueObject12!=null&&valueObject12.isBoolean()&&(valueObject22!=null&&valueObject22.isBoolean())?createBooleanValueObjectByRawValue(valueObject12.getValue()&&valueObject22.getValue()):BooleanValueObject.create(!1)})}__name(booleanObjectIntersection,"booleanObjectIntersection");function convertTonNumber(valueObject){const currentValue=valueObject.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}__name(convertTonNumber,"convertTonNumber");function isSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?!0:valueObject.isReferenceObject()?!!(valueObject.isCell()||valueObject.getRowCount()===1&&valueObject.getColumnCount()===1):(valueObject=valueObject,!!(valueObject.isString()||valueObject.isNumber()||valueObject.isBoolean()||valueObject.isError()||valueObject.isNull()))}__name(isSingleValueObject,"isSingleValueObject");function objectValueToCellValue(objectValue){const pattern=objectValue==null?void 0:objectValue.getPattern();let cellWithStyle={};if(pattern&&(cellWithStyle={s:{n:{pattern}}}),objectValue==null)return{v:null,...cellWithStyle};if(objectValue.isError())return{v:objectValue.getErrorType(),t:core.CellValueType.STRING,...cellWithStyle};if(objectValue.isValueObject()){const vo=objectValue,v=vo.getValue();return vo.isNumber()?{v,t:core.CellValueType.NUMBER,...cellWithStyle}:vo.isBoolean()?{v:v?1:0,t:core.CellValueType.BOOLEAN,...cellWithStyle}:vo.isString()?{v,t:core.CellValueType.STRING,...cellWithStyle}:vo.isNull()?{v:null,...cellWithStyle}:{v,t:core.CellValueType.STRING,...cellWithStyle}}}__name(objectValueToCellValue,"objectValueToCellValue");function calculateMaxDimensions(variants){let maxRowLength=0,maxColumnLength=0;return variants.forEach((variant,i)=>{if(i%2===1)if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)}),{maxRowLength,maxColumnLength}}__name(calculateMaxDimensions,"calculateMaxDimensions");function getErrorArray(variants,sumRange,maxRowLength,maxColumnLength){const sumRowLength=sumRange.getRowCount(),sumColumnLength=sumRange.getColumnCount();for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],rangeRowLength=range.getRowCount(),rangeColumnLength=range.getColumnCount();if(rangeRowLength!==sumRowLength||rangeColumnLength!==sumColumnLength)return expandArrayValueObject(maxRowLength,maxColumnLength,ErrorValueObject.create(ErrorType$1.VALUE))}return null}__name(getErrorArray,"getErrorArray");function getBooleanResults(variants,maxRowLength,maxColumnLength,isNumberSensitive=!1){const booleanResults=[];for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],criteria=variants[i+1];expandArrayValueObject(maxRowLength,maxColumnLength,criteria,ErrorValueObject.create(ErrorType$1.NA)).iterator((criteriaValueObject,rowIndex,columnIndex)=>{if(!criteriaValueObject)return;let resultArrayObject=valueObjectCompare(range,criteriaValueObject);const[,criteriaStringObject]=findCompareToken(`${criteriaValueObject.getValue()}`);if(isNumberSensitive&&(resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject)),booleanResults[rowIndex]===void 0&&(booleanResults[rowIndex]=[]),booleanResults[rowIndex][columnIndex]===void 0){booleanResults[rowIndex][columnIndex]=resultArrayObject;return}booleanResults[rowIndex][columnIndex]=booleanObjectIntersection(booleanResults[rowIndex][columnIndex],resultArrayObject)})}return booleanResults}__name(getBooleanResults,"getBooleanResults");function filterSameValueObjectResult(array,range,criteria){return array.mapValue((valueObject,r,c)=>{const rangeValueObject=range.get(r,c);return rangeValueObject&&isSameValueObjectType(rangeValueObject,criteria)?valueObject:rangeValueObject!=null&&rangeValueObject.isError()&&criteria.isError()&&rangeValueObject.getValue()===criteria.getValue()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)})}__name(filterSameValueObjectResult,"filterSameValueObjectResult");function isSameValueObjectType(left,right){if(left.isNumber()&&right.isNumber()||left.isBoolean()&&right.isBoolean())return!0;const isLeftBlank=left.isString()&&left.getValue()==="",isRightBlank=right.isString()&&right.getValue()==="";return!!((isLeftBlank||left.isNull())&&(isRightBlank||right.isNull())||left.isString()&&!isLeftBlank&&right.isString()&&!isRightBlank)}__name(isSameValueObjectType,"isSameValueObjectType");const _CellReferenceObject=class _CellReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName),this.setRangeData(grid.range)}isCell(){return!0}unionBy(referenceObject){if(!referenceObject.isCell())return ErrorValueObject.create(ErrorType$1.REF);const cellReferenceObject=referenceObject,newRangeData=this.unionRange(this.getRangeData(),cellReferenceObject.getRangeData());return this._createRange(newRangeData)}unionRange(rangeData1,rangeData2){const startRow1=rangeData1.startRow,startColumn1=rangeData1.startColumn,startRow2=rangeData2.startRow,startColumn2=rangeData2.startColumn,range={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return startRow1>startRow2?(range.startRow=startRow2,range.endRow=startRow1):(range.startRow=startRow1,range.endRow=startRow2),startColumn1>startColumn2?(range.startColumn=startColumn2,range.endColumn=startColumn1):(range.startColumn=startColumn1,range.endColumn=startColumn2),rangeData1.startAbsoluteRefType&&(range.startAbsoluteRefType=rangeData1.startAbsoluteRefType),rangeData2.startAbsoluteRefType&&(range.endAbsoluteRefType=rangeData2.startAbsoluteRefType),range}_createRange(newRangeData){const rangeReferenceObject=new RangeReferenceObject(newRangeData,this.getForcedSheetId(),this.getForcedUnitId());rangeReferenceObject.setUnitData(this.getUnitData()),rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()),rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()),rangeReferenceObject.setRuntimeData(this.getRuntimeData()),rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()),rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()),rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();rangeReferenceObject.setRefOffset(x,y);const forceSheetId=this.getForcedSheetId();rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()),forceSheetId!=null&&rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);const forcedUnitId=this.getForcedUnitId();return forcedUnitId&&rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId),rangeReferenceObject}};__name(_CellReferenceObject,"CellReferenceObject");let CellReferenceObject=_CellReferenceObject;const _RowReferenceObject=class _RowReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:Number.NaN,startRow:grid.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(range)}isRow(){return!0}unionBy(referenceObject){if(!referenceObject.isRow())return ErrorValueObject.create(ErrorType$1.REF);const rowReferenceObject=referenceObject;if(rowReferenceObject.getForcedSheetName()!==void 0&&rowReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newRowRange=rowReferenceObject.getRangeData(),newRow=newRowRange.startRow,row=currentRangeData.startRow;return newRow>row?currentRangeData.endRow=newRow:(currentRangeData.startRow=newRow,currentRangeData.endRow=row),newRowRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newRowRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`),this}};__name(_RowReferenceObject,"RowReferenceObject");let RowReferenceObject=_RowReferenceObject;const _ColumnReferenceObject=class _ColumnReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheet(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:grid.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(range)}isColumn(){return!0}unionBy(referenceObject){if(!referenceObject.isColumn())return ErrorValueObject.create(ErrorType$1.REF);const columnReferenceObject=referenceObject;if(columnReferenceObject.getForcedSheetName()!==void 0&&columnReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newColumnRange=columnReferenceObject.getRangeData(),newColumn=newColumnRange.startColumn,column=currentRangeData.startColumn;return newColumn>column?currentRangeData.endColumn=newColumn:(currentRangeData.startColumn=newColumn,currentRangeData.endColumn=column),newColumnRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newColumnRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`),this}};__name(_ColumnReferenceObject,"ColumnReferenceObject");let ColumnReferenceObject=_ColumnReferenceObject;const _BaseFunction=class _BaseFunction extends core.Disposable{constructor(_name){super();__publicField(this,"_unitId");__publicField(this,"_subUnitId");__publicField(this,"_row",-1);__publicField(this,"_column",-1);__publicField(this,"_definedNames");__publicField(this,"needsExpandParams",!1);__publicField(this,"needsReferenceObject",!1);__publicField(this,"minParams",-1);__publicField(this,"maxParams",-1);this._name=_name}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(name){var _a24;const nameMap=this._definedNames;return nameMap==null?null:(_a24=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a24[0]}setDefinedNames(definedNames){this._definedNames=definedNames}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(unitId,subUnitId,row,column){this._unitId=unitId,this._subUnitId=subUnitId,this._row=row,this._column=column}calculateCustom(...arg){return null}calculate(...arg){return ErrorValueObject.create(ErrorType$1.VALUE)}checkArrayType(variant){return variant.isReferenceObject()||variant.isValueObject()&&variant.isArray()}getIndexNumValue(indexNum,defaultValue=1){let _indexNum=indexNum;if(_indexNum.isArray()&&(_indexNum=_indexNum.getFirstCell()),_indexNum.isBoolean())return _indexNum.getValue()===!1?ErrorValueObject.create(ErrorType$1.VALUE):defaultValue;if(_indexNum.isString()){const colIndexNumV=Number(_indexNum.getValue());return Number.isNaN(colIndexNumV)?ErrorValueObject.create(ErrorType$1.REF):colIndexNumV}else if(_indexNum.isNumber())return _indexNum.getValue();return ErrorValueObject.create(ErrorType$1.VALUE)}getZeroOrOneByOneDefault(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;logicValueObject.isNumber()&&logicValueObject.getValue()===0&&(logicValue=0)}return logicValue}getMatchTypeValue(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;if(logicValueObject.isNumber()){const logicV=logicValueObject.getValue();logicV<=0&&(logicValue=logicV)}}return logicValue}binarySearch(value,searchArray,resultArray,searchType){const rowOrColumn=searchArray.binarySearch(value,searchType);if(rowOrColumn==null)return ErrorValueObject.create(ErrorType$1.NA);let resultValue;return resultArray.getRowCount()===1?resultValue=resultArray.get(0,rowOrColumn)||NullValueObject.create():resultValue=resultArray.get(rowOrColumn,0)||NullValueObject.create(),resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}_getOneFirstByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[0][0]||ErrorValueObject.create(ErrorType$1.NA)}_getOneLastByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[array.length-1][array[0].length-1]||ErrorValueObject.create(ErrorType$1.NA)}equalSearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.isEqual(value));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}fuzzySearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.compare(value,compareToken.EQUALS));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}orderSearch(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1){const position=searchArray.orderSearch(value,searchType,isDesc);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);const resultValue=resultArray.get(position.row,position.column)||NullValueObject.create();return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}binarySearchExpand(value,searchArray,resultArray,axis=0,searchType){const rowOrColumn=searchArray.binarySearch(value,searchType);return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([rowOrColumn,rowOrColumn+1]):resultArray.slice(void 0,[rowOrColumn,rowOrColumn+1])}equalSearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.isEqual(value);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}fuzzySearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}orderSearchExpand(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1,axis=0){const position=searchArray.orderSearch(value,searchType,isDesc);return position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}flattenArray(variants,ignoreLogicalValuesAndText=!0){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean()||variant.isNull())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){let errorValue;if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull()||ignoreLogicalValuesAndText&&(valueObject.isString()||valueObject.isBoolean()))return!0;if(valueObject=this._includingLogicalValuesAndText(valueObject),valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}else flattenValues[0].push(variant)}return createNewArray(flattenValues,1,flattenValues[0].length)}_includingLogicalValuesAndText(valueObject){if(valueObject.isBoolean()&&(valueObject=convertTonNumber(valueObject)),valueObject.isString()){const value=Number(valueObject.getValue());valueObject=NumberValueObject.create(Number.isNaN(value)?0:value)}return valueObject}createReferenceObject(reference,range){const unitId=reference.getForcedUnitId(),sheetId=reference.getForcedSheetId()||"",sheetName=reference.getForcedSheetName(),token=serializeRangeToRefString({unitId,sheetName,range});let referenceObject;return new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(token)?referenceObject=new CellReferenceObject(token):new RegExp(REFERENCE_REGEX_SINGLE_ROW).test(token)?referenceObject=new RowReferenceObject(token):new RegExp(REFERENCE_REGEX_SINGLE_COLUMN).test(token)?referenceObject=new ColumnReferenceObject(token):referenceObject=new RangeReferenceObject(range,sheetId,unitId),this._setReferenceDefault(reference,referenceObject)}_setReferenceDefault(reference,object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object.setUnitData(reference.getUnitData()),object.setRuntimeData(reference.getRuntimeData()),object.setArrayFormulaCellData(reference.getArrayFormulaCellData()),object.setRuntimeArrayFormulaCellData(reference.getRuntimeArrayFormulaCellData()),object)}};__name(_BaseFunction,"BaseFunction");let BaseFunction=_BaseFunction;const _CustomFunction=class _CustomFunction extends BaseFunction{isCustom(){return!0}};__name(_CustomFunction,"CustomFunction");let CustomFunction=_CustomFunction;const _StdevP=class _StdevP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_StdevP,"StdevP");let StdevP=_StdevP;const _StdevS=class _StdevS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_StdevS,"StdevS");let StdevS=_StdevS;const _VarP=class _VarP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_VarP,"VarP");let VarP=_VarP;const _VarS=class _VarS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_VarS,"VarS");let VarS=_VarS;const _Rank=class _Rank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_Rank,"Rank");let Rank=_Rank;var FUNCTION_NAMES_COMPATIBILITY=(FUNCTION_NAMES_COMPATIBILITY2=>(FUNCTION_NAMES_COMPATIBILITY2.BETADIST="BETADIST",FUNCTION_NAMES_COMPATIBILITY2.BETAINV="BETAINV",FUNCTION_NAMES_COMPATIBILITY2.BINOMDIST="BINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIDIST="CHIDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIINV="CHIINV",FUNCTION_NAMES_COMPATIBILITY2.CHITEST="CHITEST",FUNCTION_NAMES_COMPATIBILITY2.CONFIDENCE="CONFIDENCE",FUNCTION_NAMES_COMPATIBILITY2.COVAR="COVAR",FUNCTION_NAMES_COMPATIBILITY2.CRITBINOM="CRITBINOM",FUNCTION_NAMES_COMPATIBILITY2.EXPONDIST="EXPONDIST",FUNCTION_NAMES_COMPATIBILITY2.FDIST="FDIST",FUNCTION_NAMES_COMPATIBILITY2.FINV="FINV",FUNCTION_NAMES_COMPATIBILITY2.FTEST="FTEST",FUNCTION_NAMES_COMPATIBILITY2.GAMMADIST="GAMMADIST",FUNCTION_NAMES_COMPATIBILITY2.GAMMAINV="GAMMAINV",FUNCTION_NAMES_COMPATIBILITY2.HYPGEOMDIST="HYPGEOMDIST",FUNCTION_NAMES_COMPATIBILITY2.LOGINV="LOGINV",FUNCTION_NAMES_COMPATIBILITY2.LOGNORMDIST="LOGNORMDIST",FUNCTION_NAMES_COMPATIBILITY2.MODE="MODE",FUNCTION_NAMES_COMPATIBILITY2.NEGBINOMDIST="NEGBINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMDIST="NORMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMINV="NORMINV",FUNCTION_NAMES_COMPATIBILITY2.NORMSDIST="NORMSDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMSINV="NORMSINV",FUNCTION_NAMES_COMPATIBILITY2.PERCENTILE="PERCENTILE",FUNCTION_NAMES_COMPATIBILITY2.PERCENTRANK="PERCENTRANK",FUNCTION_NAMES_COMPATIBILITY2.POISSON="POISSON",FUNCTION_NAMES_COMPATIBILITY2.QUARTILE="QUARTILE",FUNCTION_NAMES_COMPATIBILITY2.RANK="RANK",FUNCTION_NAMES_COMPATIBILITY2.STDEV="STDEV",FUNCTION_NAMES_COMPATIBILITY2.STDEVP="STDEVP",FUNCTION_NAMES_COMPATIBILITY2.TDIST="TDIST",FUNCTION_NAMES_COMPATIBILITY2.TINV="TINV",FUNCTION_NAMES_COMPATIBILITY2.TTEST="TTEST",FUNCTION_NAMES_COMPATIBILITY2.VAR="VAR",FUNCTION_NAMES_COMPATIBILITY2.VARP="VARP",FUNCTION_NAMES_COMPATIBILITY2.WEIBULL="WEIBULL",FUNCTION_NAMES_COMPATIBILITY2.ZTEST="ZTEST",FUNCTION_NAMES_COMPATIBILITY2))(FUNCTION_NAMES_COMPATIBILITY||{});const functionCompatibility=[[Rank,FUNCTION_NAMES_COMPATIBILITY.RANK],[StdevS,FUNCTION_NAMES_COMPATIBILITY.STDEV],[StdevP,FUNCTION_NAMES_COMPATIBILITY.STDEVP],[VarS,FUNCTION_NAMES_COMPATIBILITY.VAR],[VarP,FUNCTION_NAMES_COMPATIBILITY.VARP]],functionCube=[];var FUNCTION_NAMES_CUBE=(FUNCTION_NAMES_CUBE2=>(FUNCTION_NAMES_CUBE2.CUBEKPIMEMBER="CUBEKPIMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBER="CUBEMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",FUNCTION_NAMES_CUBE2.CUBERANKEDMEMBER="CUBERANKEDMEMBER",FUNCTION_NAMES_CUBE2.CUBESET="CUBESET",FUNCTION_NAMES_CUBE2.CUBESETCOUNT="CUBESETCOUNT",FUNCTION_NAMES_CUBE2.CUBEVALUE="CUBEVALUE",FUNCTION_NAMES_CUBE2))(FUNCTION_NAMES_CUBE||{});const functionDatabase=[];var FUNCTION_NAMES_DATABASE=(FUNCTION_NAMES_DATABASE2=>(FUNCTION_NAMES_DATABASE2.DAVERAGE="DAVERAGE",FUNCTION_NAMES_DATABASE2.DCOUNT="DCOUNT",FUNCTION_NAMES_DATABASE2.DCOUNTA="DCOUNTA",FUNCTION_NAMES_DATABASE2.DGET="DGET",FUNCTION_NAMES_DATABASE2.DMAX="DMAX",FUNCTION_NAMES_DATABASE2.DMIN="DMIN",FUNCTION_NAMES_DATABASE2.DPRODUCT="DPRODUCT",FUNCTION_NAMES_DATABASE2.DSTDEV="DSTDEV",FUNCTION_NAMES_DATABASE2.DSTDEVP="DSTDEVP",FUNCTION_NAMES_DATABASE2.DSUM="DSUM",FUNCTION_NAMES_DATABASE2.DVAR="DVAR",FUNCTION_NAMES_DATABASE2.DVARP="DVARP",FUNCTION_NAMES_DATABASE2))(FUNCTION_NAMES_DATABASE||{}),FUNCTION_NAMES_DATE=(FUNCTION_NAMES_DATE2=>(FUNCTION_NAMES_DATE2.DATE="DATE",FUNCTION_NAMES_DATE2.DATEDIF="DATEDIF",FUNCTION_NAMES_DATE2.DATEVALUE="DATEVALUE",FUNCTION_NAMES_DATE2.DAY="DAY",FUNCTION_NAMES_DATE2.DAYS="DAYS",FUNCTION_NAMES_DATE2.DAYS360="DAYS360",FUNCTION_NAMES_DATE2.EDATE="EDATE",FUNCTION_NAMES_DATE2.EOMONTH="EOMONTH",FUNCTION_NAMES_DATE2.HOUR="HOUR",FUNCTION_NAMES_DATE2.ISOWEEKNUM="ISOWEEKNUM",FUNCTION_NAMES_DATE2.MINUTE="MINUTE",FUNCTION_NAMES_DATE2.MONTH="MONTH",FUNCTION_NAMES_DATE2.NETWORKDAYS="NETWORKDAYS",FUNCTION_NAMES_DATE2.NETWORKDAYS_INTL="NETWORKDAYS.INTL",FUNCTION_NAMES_DATE2.NOW="NOW",FUNCTION_NAMES_DATE2.SECOND="SECOND",FUNCTION_NAMES_DATE2.TIME="TIME",FUNCTION_NAMES_DATE2.TIMEVALUE="TIMEVALUE",FUNCTION_NAMES_DATE2.TODAY="TODAY",FUNCTION_NAMES_DATE2.WEEKDAY="WEEKDAY",FUNCTION_NAMES_DATE2.WEEKNUM="WEEKNUM",FUNCTION_NAMES_DATE2.WORKDAY="WORKDAY",FUNCTION_NAMES_DATE2.WORKDAY_INTL="WORKDAY.INTL",FUNCTION_NAMES_DATE2.YEAR="YEAR",FUNCTION_NAMES_DATE2.YEARFRAC="YEARFRAC",FUNCTION_NAMES_DATE2))(FUNCTION_NAMES_DATE||{});const DEFAULT_DATE_FORMAT="yyyy/mm/dd;@",DEFAULT_NOW_FORMAT="yyyy/mm/dd hh:mm",DEFAULT_TIME_FORMAT="h:mm A/P";function excelDateSerial(date){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28)),dateInUTC=Date.UTC(date.getFullYear(),date.getMonth(),date.getDate());let dayDifference=(dateInUTC-baseDate.getTime())/(1e3*3600*24);return dateInUTC>leapDayDate.getTime()&&(dayDifference+=1),Math.floor(dayDifference)+1}__name(excelDateSerial,"excelDateSerial");function excelDateTimeSerial(date){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=(date.getTime()-baseDate.getTime())/(1e3*3600*24);return date>leapDayDate&&(dayDifference+=1),dayDifference+1}__name(excelDateTimeSerial,"excelDateTimeSerial");function excelSerialToDate(serial){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28));let dayDifference=Math.floor(serial)-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDate,"excelSerialToDate");function excelSerialToDateTime(serial){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=serial-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),dayDifference<0&&(dayDifference=serial),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDateTime,"excelSerialToDateTime");function isValidDateStr(dateStr){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(dateStr))return!1;const normalizedDateStr=dateStr.replace(/-/g,"/").replace(/T.+/,""),dateWithTime=new Date(`${normalizedDateStr}`);if(Number.isNaN(dateWithTime.getTime()))return!1;const year=dateWithTime.getFullYear(),month=(dateWithTime.getMonth()+1).toString().padStart(2,"0"),day=dateWithTime.getDate().toString().padStart(2,"0"),reconstructedDateStr=`${year}-${month}-${day}`;return dateStr.replace(/\//g,"-").split("-").map(v=>v.padStart(2,"0")).join("-")===reconstructedDateStr}__name(isValidDateStr,"isValidDateStr");function parseFormattedDate(value){return core.numfmt.parseDate(value)}__name(parseFormattedDate,"parseFormattedDate");function parseFormattedValue(value){return core.numfmt.parseValue(value)}__name(parseFormattedValue,"parseFormattedValue");function parseFormattedTime(value){return core.numfmt.parseTime(value)}__name(parseFormattedTime,"parseFormattedTime");function isDate(format){return core.numfmt.isDate(format)}__name(isDate,"isDate");const weekendNumberMap={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function isValidWeekend(weekend){return!!(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)||weekendNumberMap[Number(weekend)])}__name(isValidWeekend,"isValidWeekend");function getWeekendArray(weekend){if(!isValidWeekend(weekend))return[];if(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)){const result=[];for(let i=1;i<=weekend.length;i++)`${weekend[i-1]}`=="1"&&(i===weekend.length?result.push(0):result.push(i));return result}return weekendNumberMap[Number(weekend)]||[]}__name(getWeekendArray,"getWeekendArray");function countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),start=Math.floor(startDateSerialNumber),end=Math.floor(endDateSerialNumber),startSerialNumber=end>start?start:end;let workingDays=0;const daysDiff=Math.abs(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber))+1;for(let i=0;i<daysDiff;i++){const currentDateSerialNumber=startSerialNumber+i;if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber))continue;const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);weekendArray.includes(weekDay)||workingDays++}return end>start?workingDays:-workingDays}__name(countWorkingDays,"countWorkingDays");function getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),_startDateSerialNumber=Math.floor(startDateSerialNumber);let targetDateSerialNumber=_startDateSerialNumber,days=Math.abs(workingDays);for(let i=1;i<=days;i++){const currentDateSerialNumber=workingDays<0?_startDateSerialNumber-i:_startDateSerialNumber+i;if(currentDateSerialNumber<0)return ErrorValueObject.create(ErrorType$1.NUM);if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber)){days++;continue}const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);if(weekendArray.includes(weekDay)){days++;continue}targetDateSerialNumber=currentDateSerialNumber}return targetDateSerialNumber}__name(getDateSerialNumberByWorkingDays,"getDateSerialNumberByWorkingDays");function getDateSerialNumberByObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){let dateSerial;if(parseFormattedDate(`${dateValue}`))dateSerial=parseFormattedDate(`${dateValue}`).v;else if(parseFormattedTime(`${dateValue}`))dateSerial=parseFormattedTime(`${dateValue}`).v;else if(core.isRealNum(dateValue))dateSerial=+dateValue;else return ErrorValueObject.create(ErrorType$1.VALUE);return+dateSerial<0||+dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}else{const dateSerial=+serialNumberObject.getValue();return dateSerial<0||dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}}__name(getDateSerialNumberByObject,"getDateSerialNumberByObject");function getWeekDayByDateSerialNumber(dateSerialNumber){const isDate19000229=Math.floor(dateSerialNumber)===60;let date=excelSerialToDate(dateSerialNumber);const dateTime=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getTime(),leapDayDateTime=new Date(Date.UTC(1900,1,28)).getTime();return!isDate19000229&&dateTime<=leapDayDateTime&&(date=new Date(dateTime-24*3600*1e3)),new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getUTCDay()}__name(getWeekDayByDateSerialNumber,"getWeekDayByDateSerialNumber");function getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis){switch(basis){case 0:return getDaysByNASD(startDateSerialNumber,endDateSerialNumber);case 1:return getDaysByActual(startDateSerialNumber,endDateSerialNumber);case 2:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:360};case 3:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365};case 4:return getDaysByEuropean(startDateSerialNumber,endDateSerialNumber);default:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365}}}__name(getTwoDateDaysByBasis,"getTwoDateDaysByBasis");function getDaysByNASD(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1,endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startMonth===2?excelSerialToDate(startDateSerialNumber+1).getUTCMonth()+1===3&&(startDay=30):startDay===31&&(startDay=30),endDay===31&&(startDay<30?(endDateDate=excelSerialToDate(endDateSerialNumber+1),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate()):endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByNASD,"getDaysByNASD");function getDaysByActual(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,totalDays=Math.abs(endDateSerialNumber-startDateSerialNumber),totalYear=Math.abs(endYear-startYear)+1;let startYearFirstDaySerialNumber,endYearLastDaySerialNumber;if(endYear<startYear){const startYearFirstDay=new Date(Date.UTC(endYear,0,1)),endYearLastDay=new Date(Date.UTC(startYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),endYear===1900&&(startYearFirstDaySerialNumber+=1)}else{const startYearFirstDay=new Date(Date.UTC(startYear,0,1)),endYearLastDay=new Date(Date.UTC(endYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),startYear===1900&&(startYearFirstDaySerialNumber+=1)}return{days:totalDays,yearDays:(endYearLastDaySerialNumber-startYearFirstDaySerialNumber+1)/totalYear}}__name(getDaysByActual,"getDaysByActual");function getDaysByEuropean(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0;const endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1;let endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startDay===31&&(startDay=30),endDay===31&&(endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByEuropean,"getDaysByEuropean");const _DateFunction=class _DateFunction extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(year,month,day){if(year.isError())return year;if(month.isError())return month;if(day.isError())return day;const maxRowLength=Math.max(year.isArray()?year.getRowCount():1,month.isArray()?month.getRowCount():1,day.isArray()?day.getRowCount():1),maxColumnLength=Math.max(year.isArray()?year.getColumnCount():1,month.isArray()?month.getColumnCount():1,day.isArray()?day.getColumnCount():1),yearArray=expandArrayValueObject(maxRowLength,maxColumnLength,year),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,month),dayArray=expandArrayValueObject(maxRowLength,maxColumnLength,day);return yearArray.map((yearValueObject,rowIndex,columnIndex)=>{const monthValueObject=monthArray.get(rowIndex,columnIndex)||NullValueObject.create(),dayValueObject=dayArray.get(rowIndex,columnIndex)||NullValueObject.create();if(yearValueObject.isError())return yearValueObject;if(monthValueObject.isError())return monthValueObject;if(dayValueObject.isError())return dayValueObject;if(yearValueObject.isString()||monthValueObject.isString()||dayValueObject.isString())return ErrorValueObject.create(ErrorType$1.VALUE);let yearValue=+yearValueObject.getValue();const monthValue=Math.floor(+monthValueObject.getValue()),dayValue=+dayValueObject.getValue();if(yearValue<0||yearValue>9999)return ErrorValueObject.create(ErrorType$1.NUM);yearValue>=0&&yearValue<1899&&(yearValue+=1900);const date=new Date(yearValue,monthValue-1,dayValue),currentSerial=excelDateSerial(date);return currentSerial<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_DateFunction,"DateFunction");let DateFunction=_DateFunction;const _Datedif=class _Datedif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(startDate,endDate,unit){let _startDate=startDate,_endDate=endDate,_unit=unit;if(_startDate.isArray()&&(_startDate=_startDate.get(0,0)),_endDate.isArray()&&(_endDate=_endDate.get(0,0)),_unit.isArray()&&(_unit=_unit.get(0,0)),_startDate.isError())return _startDate;if(_endDate.isError())return _endDate;if(_unit.isError())return _unit;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);return typeof endDateSerialNumber!="number"?endDateSerialNumber:endDateSerialNumber<startDateSerialNumber||!_unit.isString()?ErrorValueObject.create(ErrorType$1.NUM):this._getResultByUnit(startDateSerialNumber,endDateSerialNumber,_unit)}_getResultByUnit(startDateSerialNumber,endDateSerialNumber,unit){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateDate.getUTCFullYear(),startMonth=startDateDate.getUTCMonth()+1,startDay=startDateDate.getUTCDate(),endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate(),unitValue=`${unit.getValue()}`.toLocaleUpperCase();let _endDateSerialNumber;switch(unitValue){case"Y":return NumberValueObject.create(endYear-startYear);case"M":return NumberValueObject.create((endYear-startYear)*12+endMonth-startMonth);case"D":return NumberValueObject.create(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber));case"MD":return NumberValueObject.create(endDay-startDay);case"YM":return NumberValueObject.create(endMonth-startMonth);case"YD":return _endDateSerialNumber=excelDateSerial(new Date(Date.UTC(startYear,endMonth-1,endDay))),NumberValueObject.create(Math.floor(_endDateSerialNumber)-Math.floor(startDateSerialNumber));default:return ErrorValueObject.create(ErrorType$1.NUM)}}};__name(_Datedif,"Datedif");let Datedif=_Datedif;const _Datevalue=class _Datevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dateText){return dateText.isError()?dateText:dateText.isArray()?dateText.map(dateTextObject=>this._handleSingleObject(dateTextObject)):this._handleSingleObject(dateText)}_handleSingleObject(dateTextObject){if(dateTextObject.isString()){const value=`${dateTextObject.getValue()}`,parsedDate=parseFormattedValue(value);if(parsedDate){const{v,z}=parsedDate;if(isDate(z))return NumberValueObject.create(Math.trunc(v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Datevalue,"Datevalue");let Datevalue=_Datevalue;const _Day=class _Day extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(0);date=excelSerialToDate(dateSerial)}const month=date.getDate();return NumberValueObject.create(month)}};__name(_Day,"Day");let Day=_Day;const _Days=class _Days extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(endDate,startDate){if(endDate.isError())return endDate;if(startDate.isError())return startDate;const maxRowLength=Math.max(endDate.isArray()?endDate.getRowCount():1,startDate.isArray()?startDate.getRowCount():1),maxColumnLength=Math.max(endDate.isArray()?endDate.getColumnCount():1,startDate.isArray()?startDate.getColumnCount():1),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),resultArray=endDateArray.map((endDateObject,rowIndex,columnIndex)=>{const startDateObject=startDateArray.get(rowIndex,columnIndex);if(endDateObject.isError())return endDateObject;if(startDateObject.isError())return startDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const result=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days,"Days");let Days=_Days;const _Days360=class _Days360 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,method){const _method=method!=null?method:BooleanValueObject.create(!1);if(startDate.isError())return startDate;if(endDate.isError())return endDate;if(_method.isError())return _method;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,endDate.isArray()?endDate.getRowCount():1,_method.isArray()?_method.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,endDate.isArray()?endDate.getColumnCount():1,_method.isArray()?_method.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate,ErrorValueObject.create(ErrorType$1.NA)),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate,ErrorValueObject.create(ErrorType$1.NA)),methodArray=expandArrayValueObject(maxRowLength,maxColumnLength,_method,ErrorValueObject.create(ErrorType$1.NA)),resultArray=startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const endDateObject=endDateArray.get(rowIndex,columnIndex);let methodObject=methodArray.get(rowIndex,columnIndex);if(startDateObject.isError())return startDateObject;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(endDateObject.isError())return endDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(methodObject.isString()&&(methodObject=methodObject.convertToNumberObjectValue()),methodObject.isError())return methodObject;const methodValue=+methodObject.getValue(),{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,methodValue?4:0),result=endDateSerialNumber>=startDateSerialNumber?days:-days;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days360,"Days360");let Days360=_Days360;const _Edate=class _Edate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){if(startDate.isError())return startDate;if(months.isError())return months;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,months.isArray()?months.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,months.isArray()?months.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),monthsArray=expandArrayValueObject(maxRowLength,maxColumnLength,months);return startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const monthsValueObject=monthsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startDateObject.isError())return startDateObject;if(monthsValueObject.isError())return monthsValueObject;if(startDateObject.isString()||startDateObject.isBoolean()||monthsValueObject.isString()||monthsValueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerial=+startDateObject.getValue();if(startDateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);const monthsValue=Math.floor(+monthsValueObject.getValue()),_startDate=excelSerialToDate(startDateSerial),year=_startDate.getUTCFullYear(),month=_startDate.getUTCMonth()+monthsValue,day=_startDate.getUTCDate(),resultDate=new Date(Date.UTC(year,month,day)),currentSerial=excelDateSerial(resultDate);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_Edate,"Edate");let Edate=_Edate;const _Eomonth=class _Eomonth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){let _startDate=startDate,_months=months;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_months.isArray()){const rowCount=_months.getRowCount(),columnCount=_months.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_months=_months.get(0,0)}if(_startDate.isError())return _startDate;if(_months.isError())return _months;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(_months.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth():0,monthsValue=Math.floor(+_months.getValue());if(Number.isNaN(monthsValue))return ErrorValueObject.create(ErrorType$1.VALUE);const targetDate=new Date(Date.UTC(startYear,startMonth+monthsValue+1,0)),result=excelDateSerial(targetDate);return NumberValueObject.create(result)}};__name(_Eomonth,"Eomonth");let Eomonth=_Eomonth;const _Hour=class _Hour extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const hours=excelSerialToDateTime(dateSerialNumber).getUTCHours();return NumberValueObject.create(hours)}};__name(_Hour,"Hour");let Hour=_Hour;const _Isoweeknum=class _Isoweeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(date){return date.isError()?date:date.isArray()?date.map(dateObject=>dateObject.isError()?dateObject:this._handleSingleObject(dateObject)):this._handleSingleObject(date)}_handleSingleObject(date){const dateSerialNumber=getDateSerialNumberByObject(date);if(typeof dateSerialNumber!="number")return dateSerialNumber;const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Isoweeknum,"Isoweeknum");let Isoweeknum=_Isoweeknum;const _Minute=class _Minute extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const minutes=excelSerialToDateTime(dateSerialNumber).getUTCMinutes();return NumberValueObject.create(minutes)}};__name(_Minute,"Minute");let Minute=_Minute;const _Month=class _Month extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1);date=excelSerialToDate(dateSerial)}const month=date.getUTCMonth()+1;return NumberValueObject.create(month)}};__name(_Month,"Month");let Month=_Month;const _Networkdays=class _Networkdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,1,holidaysValueArray);return NumberValueObject.create(result)}};__name(_Networkdays,"Networkdays");let Networkdays=_Networkdays;const _NetworkdaysIntl=class _NetworkdaysIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,endDate,weekend,holidays){return startDate.isError()?startDate:endDate.isError()?endDate:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,endDate,weekendItem,holidays)):this._handleSingleObject(startDate,endDate,weekend,holidays)}_handleSingleObject(startDate,endDate,weekend,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;let weekendValue=1;if(weekend){if(weekendValue=weekend.getValue(),weekend.isBoolean()&&(weekendValue=+weekendValue),weekend.isString()&&!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM)}if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidaysValueArray);return NumberValueObject.create(result)}};__name(_NetworkdaysIntl,"NetworkdaysIntl");let NetworkdaysIntl=_NetworkdaysIntl;const _Now=class _Now extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const now=new Date,utcNow=new Date(Date.UTC(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds())),currentSerial=excelDateTimeSerial(utcNow);return NumberValueObject.create(currentSerial,DEFAULT_NOW_FORMAT)}};__name(_Now,"Now");let Now=_Now;const _Second=class _Second extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const seconds=excelSerialToDateTime(dateSerialNumber).getUTCSeconds();return NumberValueObject.create(seconds)}};__name(_Second,"Second");let Second=_Second;const _Time=class _Time extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(hour,minute,second){if(hour.isError())return hour;if(minute.isError())return minute;if(second.isError())return second;const maxRowLength=Math.max(hour.isArray()?hour.getRowCount():1,minute.isArray()?minute.getRowCount():1,second.isArray()?second.getRowCount():1),maxColumnLength=Math.max(hour.isArray()?hour.getColumnCount():1,minute.isArray()?minute.getColumnCount():1,second.isArray()?second.getColumnCount():1),hourArray=expandArrayValueObject(maxRowLength,maxColumnLength,hour),minuteArray=expandArrayValueObject(maxRowLength,maxColumnLength,minute),secondArray=expandArrayValueObject(maxRowLength,maxColumnLength,second);return hourArray.map((hourValueObject,rowIndex,columnIndex)=>this._calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex))}_calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex){let _hourValueObject=hourValueObject,minuteValueObject=minuteArray.get(rowIndex,columnIndex)||NullValueObject.create(),secondValueObject=secondArray.get(rowIndex,columnIndex)||NullValueObject.create();if((_hourValueObject.isString()||_hourValueObject.isBoolean())&&(_hourValueObject=_hourValueObject.convertToNumberObjectValue()),(minuteValueObject.isString()||minuteValueObject.isBoolean())&&(minuteValueObject=minuteValueObject.convertToNumberObjectValue()),(secondValueObject.isString()||secondValueObject.isBoolean())&&(secondValueObject=secondValueObject.convertToNumberObjectValue()),_hourValueObject.isError())return _hourValueObject;if(minuteValueObject.isError())return minuteValueObject;if(secondValueObject.isError())return secondValueObject;let hourValue=Math.floor(+_hourValueObject.getValue()),minuteValue=Math.floor(+minuteValueObject.getValue()),secondValue=Math.floor(+secondValueObject.getValue());if(hourValue<0||minuteValue<0||secondValue<0||hourValue>32767||minuteValue>32767||secondValue>32767)return ErrorValueObject.create(ErrorType$1.NUM);minuteValue+=Math.floor(secondValue/60),secondValue%=60,hourValue+=Math.floor(minuteValue/60),minuteValue%=60,hourValue%=24;const fractionOfDay=(hourValue*3600+minuteValue*60+secondValue)/86400;return NumberValueObject.create(fractionOfDay,DEFAULT_TIME_FORMAT)}};__name(_Time,"Time");let Time=_Time;const _Timevalue=class _Timevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(timeText){return timeText.isError()?timeText:timeText.isArray()?timeText.map(timeTextObject=>this._handleSingleObject(timeTextObject)):this._handleSingleObject(timeText)}_handleSingleObject(timeTextObject){if(timeTextObject.isString()){const value=`${timeTextObject.getValue()}`,parsedTime=parseFormattedValue(value);if(parsedTime){const{v,z}=parsedTime;if(isDate(z))return NumberValueObject.create(getFractionalPart(v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Timevalue,"Timevalue");let Timevalue=_Timevalue;const _Today=class _Today extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const currentSerial=excelDateSerial(new Date);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)}};__name(_Today,"Today");let Today=_Today;const _Weekday=class _Weekday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(serialNumber,returnType){const _returnType=returnType!=null?returnType:NumberValueObject.create(1);if(serialNumber.isError())return serialNumber;if(_returnType.isError())return _returnType;const maxRowLength=Math.max(serialNumber.isArray()?serialNumber.getRowCount():1,_returnType.isArray()?_returnType.getRowCount():1),maxColumnLength=Math.max(serialNumber.isArray()?serialNumber.getColumnCount():1,_returnType.isArray()?_returnType.getColumnCount():1),serialNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,serialNumber,ErrorValueObject.create(ErrorType$1.NA)),returnTypeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_returnType,ErrorValueObject.create(ErrorType$1.NA)),resultArray=serialNumberArray.map((serialNumberObject,rowIndex,columnIndex)=>{const returnTypeObject=returnTypeArray.get(rowIndex,columnIndex);return this._handleSingleObject(serialNumberObject,returnTypeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(serialNumberObject,returnTypeObject){let _returnTypeObject=returnTypeObject;if(serialNumberObject.isError())return serialNumberObject;if(_returnTypeObject.isError())return _returnTypeObject;const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnTypeObject.isString()&&(_returnTypeObject=_returnTypeObject.convertToNumberObjectValue(),_returnTypeObject.isError()))return _returnTypeObject;const returnTypeValue=Math.floor(+_returnTypeObject.getValue());if(!this._returnTypeMap[returnTypeValue])return ErrorValueObject.create(ErrorType$1.NUM);const weekDay=getWeekDayByDateSerialNumber(dateSerialNumber),result=this._returnTypeMap[returnTypeValue][weekDay];return NumberValueObject.create(result)}};__name(_Weekday,"Weekday");let Weekday=_Weekday;const _Weeknum=class _Weeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(serialNumber,returnType){let _serialNumber=serialNumber,_returnType=returnType!=null?returnType:NumberValueObject.create(1);if(_serialNumber.isArray()){const rowCount=_serialNumber.getRowCount(),columnCount=_serialNumber.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_serialNumber=_serialNumber.get(0,0)}if(_serialNumber.isError())return _serialNumber;if(_returnType.isArray()){const rowCount=_returnType.getRowCount(),columnCount=_returnType.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_returnType=_returnType.get(0,0)}if(_returnType.isError())return _returnType;if(_serialNumber.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const dateSerialNumber=getDateSerialNumberByObject(_serialNumber);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnType.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const returnTypeValue=Math.floor(+_returnType.getValue());return Number.isNaN(returnTypeValue)?ErrorValueObject.create(ErrorType$1.VALUE):returnTypeValue in this._returnTypeMap?this._getResult(dateSerialNumber,returnTypeValue):ErrorValueObject.create(ErrorType$1.NUM)}_getResult(dateSerialNumber,returnTypeValue){const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;if(returnTypeValue===21)yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));else{const weekDay=this._returnTypeMap[returnTypeValue];yearStartWeekDay<weekDay?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay+7-weekDay):yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-weekDay)}const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Weeknum,"Weeknum");let Weeknum=_Weeknum;const _Workday=class _Workday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,days,holidays){let _startDate=startDate,_days=days;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_days.isArray()){const rowCount=_days.getRowCount(),columnCount=_days.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_days=_days.get(0,0)}if(_days.isError())return _days;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+_days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays);return typeof result!="number"?result:NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,workingDays,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,1,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Workday,"Workday");let Workday=_Workday;const _WorkdayIntl=class _WorkdayIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,days,weekend,holidays){return startDate.isError()?startDate:days.isError()?days:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,days,weekendItem,holidays)):this._handleSingleObject(startDate,days,weekend,holidays)}_handleSingleObject(startDate,days,weekend,holidays){const _weekend=weekend!=null?weekend:NumberValueObject.create(1),_startDate=this._checkArrayError(startDate);if(_startDate.isError())return _startDate;const _days=this._checkArrayError(days);if(_days.isError())return _days;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);let weekendValue=_weekend.getValue();if(_weekend.isBoolean()&&(weekendValue=+weekendValue),_weekend.isString()&&(!isValidWeekend(weekendValue)||weekendValue==="1111111"))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue);return typeof result!="number"?result:NumberValueObject.create(result)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isError(),_variant}_getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_WorkdayIntl,"WorkdayIntl");let WorkdayIntl=_WorkdayIntl;const _Year=class _Year extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+dateValue;if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1900);date=excelSerialToDate(dateSerial)}const year=date.getUTCFullYear();return NumberValueObject.create(year)}};__name(_Year,"Year");let Year=_Year;function checkVariantErrorIsArray(variant){let _variant=variant;if(variant.isArray()){const rowCount=variant.getRowCount(),columnCount=variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=variant.get(0,0)}return _variant.isError(),_variant}__name(checkVariantErrorIsArray,"checkVariantErrorIsArray");function checkVariantsErrorIsArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArrayOrBoolean,"checkVariantsErrorIsArrayOrBoolean");function checkVariantsErrorIsStringToNumber(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsStringToNumber,"checkVariantsErrorIsStringToNumber");const _Yearfrac=class _Yearfrac extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);const _startDate=checkVariantErrorIsArray(startDate);if(_startDate.isError())return _startDate;const _endDate=checkVariantErrorIsArray(endDate);if(_endDate.isError())return _endDate;if(_basis=checkVariantErrorIsArray(_basis),_basis.isError())return _basis;if(_startDate.isBoolean()||_endDate.isBoolean()||_basis.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const basisValue=Math.floor(+_basis.getValue());if(Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(basisValue<0||basisValue>4)return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue),result=days/yearDays;return NumberValueObject.create(result)}};__name(_Yearfrac,"Yearfrac");let Yearfrac=_Yearfrac;const functionDate=[[DateFunction,FUNCTION_NAMES_DATE.DATE],[Datedif,FUNCTION_NAMES_DATE.DATEDIF],[Datevalue,FUNCTION_NAMES_DATE.DATEVALUE],[Day,FUNCTION_NAMES_DATE.DAY],[Days,FUNCTION_NAMES_DATE.DAYS],[Days360,FUNCTION_NAMES_DATE.DAYS360],[Edate,FUNCTION_NAMES_DATE.EDATE],[Eomonth,FUNCTION_NAMES_DATE.EOMONTH],[Hour,FUNCTION_NAMES_DATE.HOUR],[Isoweeknum,FUNCTION_NAMES_DATE.ISOWEEKNUM],[Minute,FUNCTION_NAMES_DATE.MINUTE],[Month,FUNCTION_NAMES_DATE.MONTH],[Networkdays,FUNCTION_NAMES_DATE.NETWORKDAYS],[NetworkdaysIntl,FUNCTION_NAMES_DATE.NETWORKDAYS_INTL],[Now,FUNCTION_NAMES_DATE.NOW],[Second,FUNCTION_NAMES_DATE.SECOND],[Time,FUNCTION_NAMES_DATE.TIME],[Timevalue,FUNCTION_NAMES_DATE.TIMEVALUE],[Today,FUNCTION_NAMES_DATE.TODAY],[Weekday,FUNCTION_NAMES_DATE.WEEKDAY],[Weeknum,FUNCTION_NAMES_DATE.WEEKNUM],[Workday,FUNCTION_NAMES_DATE.WORKDAY],[WorkdayIntl,FUNCTION_NAMES_DATE.WORKDAY_INTL],[Year,FUNCTION_NAMES_DATE.YEAR],[Yearfrac,FUNCTION_NAMES_DATE.YEARFRAC]];var FUNCTION_NAMES_ENGINEERING=(FUNCTION_NAMES_ENGINEERING2=>(FUNCTION_NAMES_ENGINEERING2.BESSELI="BESSELI",FUNCTION_NAMES_ENGINEERING2.BESSELJ="BESSELJ",FUNCTION_NAMES_ENGINEERING2.BESSELK="BESSELK",FUNCTION_NAMES_ENGINEERING2.BESSELY="BESSELY",FUNCTION_NAMES_ENGINEERING2.BIN2DEC="BIN2DEC",FUNCTION_NAMES_ENGINEERING2.BIN2HEX="BIN2HEX",FUNCTION_NAMES_ENGINEERING2.BIN2OCT="BIN2OCT",FUNCTION_NAMES_ENGINEERING2.BITAND="BITAND",FUNCTION_NAMES_ENGINEERING2.BITLSHIFT="BITLSHIFT",FUNCTION_NAMES_ENGINEERING2.BITOR="BITOR",FUNCTION_NAMES_ENGINEERING2.BITRSHIFT="BITRSHIFT",FUNCTION_NAMES_ENGINEERING2.BITXOR="BITXOR",FUNCTION_NAMES_ENGINEERING2.COMPLEX="COMPLEX",FUNCTION_NAMES_ENGINEERING2.CONVERT="CONVERT",FUNCTION_NAMES_ENGINEERING2.DEC2BIN="DEC2BIN",FUNCTION_NAMES_ENGINEERING2.DEC2HEX="DEC2HEX",FUNCTION_NAMES_ENGINEERING2.DEC2OCT="DEC2OCT",FUNCTION_NAMES_ENGINEERING2.DELTA="DELTA",FUNCTION_NAMES_ENGINEERING2.ERF="ERF",FUNCTION_NAMES_ENGINEERING2.ERF_PRECISE="ERF.PRECISE",FUNCTION_NAMES_ENGINEERING2.ERFC="ERFC",FUNCTION_NAMES_ENGINEERING2.ERFC_PRECISE="ERFC.PRECISE",FUNCTION_NAMES_ENGINEERING2.GESTEP="GESTEP",FUNCTION_NAMES_ENGINEERING2.HEX2BIN="HEX2BIN",FUNCTION_NAMES_ENGINEERING2.HEX2DEC="HEX2DEC",FUNCTION_NAMES_ENGINEERING2.HEX2OCT="HEX2OCT",FUNCTION_NAMES_ENGINEERING2.IMABS="IMABS",FUNCTION_NAMES_ENGINEERING2.IMAGINARY="IMAGINARY",FUNCTION_NAMES_ENGINEERING2.IMARGUMENT="IMARGUMENT",FUNCTION_NAMES_ENGINEERING2.IMCONJUGATE="IMCONJUGATE",FUNCTION_NAMES_ENGINEERING2.IMCOS="IMCOS",FUNCTION_NAMES_ENGINEERING2.IMCOSH="IMCOSH",FUNCTION_NAMES_ENGINEERING2.IMCOT="IMCOT",FUNCTION_NAMES_ENGINEERING2.IMCSC="IMCSC",FUNCTION_NAMES_ENGINEERING2.IMCSCH="IMCSCH",FUNCTION_NAMES_ENGINEERING2.IMDIV="IMDIV",FUNCTION_NAMES_ENGINEERING2.IMEXP="IMEXP",FUNCTION_NAMES_ENGINEERING2.IMLN="IMLN",FUNCTION_NAMES_ENGINEERING2.IMLOG10="IMLOG10",FUNCTION_NAMES_ENGINEERING2.IMLOG2="IMLOG2",FUNCTION_NAMES_ENGINEERING2.IMPOWER="IMPOWER",FUNCTION_NAMES_ENGINEERING2.IMPRODUCT="IMPRODUCT",FUNCTION_NAMES_ENGINEERING2.IMREAL="IMREAL",FUNCTION_NAMES_ENGINEERING2.IMSEC="IMSEC",FUNCTION_NAMES_ENGINEERING2.IMSECH="IMSECH",FUNCTION_NAMES_ENGINEERING2.IMSIN="IMSIN",FUNCTION_NAMES_ENGINEERING2.IMSINH="IMSINH",FUNCTION_NAMES_ENGINEERING2.IMSQRT="IMSQRT",FUNCTION_NAMES_ENGINEERING2.IMSUB="IMSUB",FUNCTION_NAMES_ENGINEERING2.IMSUM="IMSUM",FUNCTION_NAMES_ENGINEERING2.IMTAN="IMTAN",FUNCTION_NAMES_ENGINEERING2.OCT2BIN="OCT2BIN",FUNCTION_NAMES_ENGINEERING2.OCT2DEC="OCT2DEC",FUNCTION_NAMES_ENGINEERING2.OCT2HEX="OCT2HEX",FUNCTION_NAMES_ENGINEERING2))(FUNCTION_NAMES_ENGINEERING||{}),BESSEL;(BESSEL2=>{const W=.636619772;function _horner(arr,v){let z=0;for(let i=0;i<arr.length;++i)z=v*z+arr[i];return z}__name(_horner,"_horner");function _bessel_iter(x,n,f0,f1,sign){if(n===0)return f0;if(n===1)return f1;const tdx=2/x;let _f0=f0,_f1=f1,f2=f1;for(let o=1;o<n;++o)f2=_f1*o*tdx+sign*_f0,_f0=_f1,_f1=f2;return f2}__name(_bessel_iter,"_bessel_iter");function _bessel_wrap(bessel0,bessel1,nonzero,sign){return __name(function(x,n){if(nonzero){if(x===0)return nonzero===1?-1/0:1/0;if(x<0)return Number.NaN}if(n===0)return bessel0(x);if(n===1)return bessel1(x);if(n<0)return Number.NaN;const _n=n|0,b0=bessel0(x),b1=bessel1(x);return _bessel_iter(x,_n,b0,b1,sign)},"bessel")}__name(_bessel_wrap,"_bessel_wrap"),BESSEL2.besselj=(()=>{const b0_a1a=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],b0_a2a=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;if(x<8)a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2;else{const xx=x-.785398164;y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/x)}return a}__name(bessel0,"bessel0");const b1_a1a=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],b1_a2a=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=Math.abs(x)-2.356194491;return Math.abs(x)<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/Math.abs(x))*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/Math.abs(x)),x<0&&(a=-a)),a}return __name(bessel1,"bessel1"),__name(function besselj2(x,n){const _n=Math.round(n);if(!Number.isFinite(x))return Number.isNaN(x)?x:0;if(_n<0)return(_n%2?-1:1)*besselj2(x,-_n);if(x<0)return(_n%2?-1:1)*besselj2(-x,_n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(x===0)return 0;let ret=0;if(x>_n)ret=_bessel_iter(x,_n,bessel0(x),bessel1(x),-1);else{const m=2*Math.floor((_n+Math.floor(Math.sqrt(40*_n)))/2);let jsum=!1,bjp=0,sum=0,bj=1,bjm=0;const tox=2/x;for(let j=m;j>0;j--)bjm=j*tox*bj-bjp,bjp=bj,bj=bjm,Math.abs(bj)>1e10&&(bj*=1e-10,bjp*=1e-10,ret*=1e-10,sum*=1e-10),jsum&&(sum+=bj),jsum=!jsum,j===_n&&(ret=bjp);sum=2*sum-bj,ret/=sum}return ret},"besselj2")})(),BESSEL2.bessely=(()=>{const b0_a1a=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],b0_a2a=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-.785398164;return x<8?(a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2+W*(0,BESSEL2.besselj)(x,0)*Math.log(x)):(y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}__name(bessel0,"bessel0");const b1_a1a=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],b1_a2a=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-2.356194491;return x<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2+W*((0,BESSEL2.besselj)(x,1)*Math.log(x)-1/x)):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,1,-1)})(),BESSEL2.besseli=(()=>{const b0_a=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],b0_b=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function bessel0(x){return x<=3.75?_horner(b0_a,x*x/(3.75*3.75)):Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b0_b,3.75/Math.abs(x))}__name(bessel0,"bessel0");const b1_a=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],b1_b=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function bessel1(x){return x<3.75?x*_horner(b1_a,x*x/(3.75*3.75)):(x<0?-1:1)*Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b1_b,3.75/Math.abs(x))}return __name(bessel1,"bessel1"),__name(function besseli2(x,n){const _n=Math.round(n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(_n<0)return Number.NaN;if(Math.abs(x)===0)return 0;if(x===1/0)return 1/0;let ret=0,j;const tox=2/Math.abs(x);let bip=0,bi=1,bim=0;const m=2*Math.round((_n+Math.round(Math.sqrt(40*_n)))/2);for(j=m;j>0;j--)bim=j*tox*bi+bip,bip=bi,bi=bim,Math.abs(bi)>1e10&&(bi*=1e-10,bip*=1e-10,ret*=1e-10),j===_n&&(ret=bip);return ret*=besseli2(x,0)/bi,x<0&&_n%2?-ret:ret},"besseli2")})(),BESSEL2.besselk=(()=>{const b0_a=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],b0_b=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function bessel0(x){return x<=2?-Math.log(x/2)*(0,BESSEL2.besseli)(x,0)+_horner(b0_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b0_b,2/x)}__name(bessel0,"bessel0");const b1_a=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],b1_b=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function bessel1(x){return x<=2?Math.log(x/2)*(0,BESSEL2.besseli)(x,1)+1/x*_horner(b1_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b1_b,2/x)}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,2,1)})()})(BESSEL||(BESSEL={}));function isValidBinaryNumber(number){return/^[01]{1,10}$/.test(number)}__name(isValidBinaryNumber,"isValidBinaryNumber");function isValidOctalNumber(number){return/^[0-7]{1,10}$/.test(number)}__name(isValidOctalNumber,"isValidOctalNumber");function isValidHexadecimalNumber(number){return/^[0-9A-Fa-f]{1,10}$/.test(number)}__name(isValidHexadecimalNumber,"isValidHexadecimalNumber");function erf(x){if(x===0)return 0;const cof=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let _x=x,isneg=!1;_x<0&&(_x=-_x,isneg=!0);const t=2/(2+_x),ty=4*t-2;let d=0,dd=0,tmp;for(let j=cof.length-1;j>0;j--)tmp=d,d=ty*d-dd+cof[j],dd=tmp;const res=t*Math.exp(-_x*_x+.5*(cof[0]+ty*d)-dd);return isneg?res-1:1-res}__name(erf,"erf");const _Besseli=class _Besseli extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besseli(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besseli,"Besseli");let Besseli=_Besseli;const _Besselj=class _Besselj extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselj(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselj,"Besselj");let Besselj=_Besselj;const _Besselk=class _Besselk extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselk(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselk,"Besselk");let Besselk=_Besselk;const _Bessely=class _Bessely extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.bessely(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Bessely,"Bessely");let Bessely=_Bessely;const _Bin2dec=class _Bin2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;return numberValue.length===10&&numberValue.substring(0,1)==="1"?result=Number.parseInt(numberValue.substring(1),2)-512:result=Number.parseInt(numberValue,2),NumberValueObject.create(result)}};__name(_Bin2dec,"Bin2dec");let Bin2dec=_Bin2dec;const _Bin2hex=class _Bin2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(0xfffffffe00+Number.parseInt(numberValue.substring(1),2)).toString(16);else if(result=Number.parseInt(numberValue,2).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Bin2hex,"Bin2hex");let Bin2hex=_Bin2hex;const _Bin2oct=class _Bin2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(1073741312+Number.parseInt(numberValue.substring(1),2)).toString(8);else if(result=Number.parseInt(numberValue,2).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Bin2oct,"Bin2oct");let Bin2oct=_Bin2oct;const _Bitand=class _Bitand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value&number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitand,"Bitand");let Bitand=_Bitand;const _Bitlshift=class _Bitlshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)<<BigInt(shiftAmountValue):BigInt(numberValue)>>BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitlshift,"Bitlshift");let Bitlshift=_Bitlshift;const _Bitor=class _Bitor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=Number(BigInt(number1Value)|BigInt(number2Value));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitor,"Bitor");let Bitor=_Bitor;const _Bitrshift=class _Bitrshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)>>BigInt(shiftAmountValue):BigInt(numberValue)<<BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitrshift,"Bitrshift");let Bitrshift=_Bitrshift;const _Bitxor=class _Bitxor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value^number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitxor,"Bitxor");let Bitxor=_Bitxor;const _Complex=class _Complex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(realNum,iNum,suffix){const _suffix=suffix!=null?suffix:StringValueObject.create("i"),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(realNum,iNum,_suffix);if(isError)return errorObject;const[realNumObject,iNumObject,suffixObject]=variants,realNumValue=+realNumObject.getValue(),iNumValue=+iNumObject.getValue(),suffixValue=`${suffixObject.getValue()}`;if(Number.isNaN(realNumValue)||Number.isNaN(iNumValue)||suffixValue!=="i"&&suffixValue!=="j")return ErrorValueObject.create(ErrorType$1.VALUE);if(realNumValue===0&&iNumValue===0)return NumberValueObject.create(0);if(realNumValue===0)return iNumValue===1?StringValueObject.create(suffixValue):StringValueObject.create(`${iNumValue}${suffixValue}`);if(iNumValue===0)return NumberValueObject.create(realNumValue);const sign=iNumValue>0?"+":"",suffixStr=iNumValue===1?suffixValue:`${iNumValue}${suffixValue}`;return StringValueObject.create(`${realNumValue}${sign}${suffixStr}`)}};__name(_Complex,"Complex");let Complex=_Complex;const _Convert=class _Convert extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);__publicField(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});__publicField(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(number,fromUnit,toUnit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,fromUnit,toUnit);if(isError)return errorObject;const[numberObject,fromUnitObject,toUnitObject]=variants,numberValue=+numberObject.getValue(),fromUnitValue=`${fromUnitObject.getValue()}`,toUnitValue=`${toUnitObject.getValue()}`;if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let from,fromMultiplier=1,to,toMultiplier=1;const{_from,_to}=this._lookupFromAndToUnits(fromUnitValue,toUnitValue);if(from=_from,to=_to,from===null){const{_from:_from2,_fromMultiplier}=this._lookupFromPrefix(fromUnitValue);from=_from2,fromMultiplier=_fromMultiplier}if(to===null){const{_to:_to2,_toMultiplier}=this._lookupToPrefix(toUnitValue);to=_to2,toMultiplier=_toMultiplier}if(from===null||to===null||from[3]!==to[3])return ErrorValueObject.create(ErrorType$1.NA);let result;return from[3]==="temperature"?result=this._getTemperatureConversion(numberValue,from[1],to[1]):result=numberValue*from[6]*fromMultiplier/(to[6]*toMultiplier),NumberValueObject.create(result)}_lookupFromAndToUnits(fromUnitValue,toUnitValue){let _from=null,_to=null,alt;for(let i=0;i<this._units.length;i++)alt=this._units[i][2]===null?[]:this._units[i][2],(this._units[i][1]===fromUnitValue||alt.indexOf(fromUnitValue)>=0)&&(_from=this._units[i]),(this._units[i][1]===toUnitValue||alt.indexOf(toUnitValue)>=0)&&(_to=this._units[i]);return{_from,_to}}_lookupFromPrefix(fromUnitValue){let _from=null,_fromMultiplier=1,baseFromUnit=fromUnitValue,alt;const fromBinaryPrefix=this._binaryPrefixes[fromUnitValue.substring(0,2)];let fromUnitPrefix=this._unitPrefixes[fromUnitValue.substring(0,1)];fromUnitValue.substring(0,2)==="da"&&(fromUnitPrefix=["dekao",10,"da"]),fromBinaryPrefix?(_fromMultiplier=fromBinaryPrefix[2],baseFromUnit=fromUnitValue.substring(2)):fromUnitPrefix&&(_fromMultiplier=fromUnitPrefix[1],baseFromUnit=fromUnitValue.substring(fromUnitPrefix[2].length));for(let j=0;j<this._units.length;j++)alt=this._units[j][2]===null?[]:this._units[j][2],(this._units[j][1]===baseFromUnit||alt.indexOf(baseFromUnit)>=0)&&(_from=this._units[j]);return{_from,_fromMultiplier}}_lookupToPrefix(toUnitValue){let _to=null,_toMultiplier=1,baseToUnit=toUnitValue,alt;const toBinaryPrefix=this._binaryPrefixes[toUnitValue.substring(0,2)];let toUnitPrefix=this._unitPrefixes[toUnitValue.substring(0,1)];toUnitValue.substring(0,2)==="da"&&(toUnitPrefix=["dekao",10,"da"]),toBinaryPrefix?(_toMultiplier=toBinaryPrefix[2],baseToUnit=toUnitValue.substring(2)):toUnitPrefix&&(_toMultiplier=toUnitPrefix[1],baseToUnit=toUnitValue.substring(toUnitPrefix[2].length));for(let k=0;k<this._units.length;k++)alt=this._units[k][2]===null?[]:this._units[k][2],(this._units[k][1]===baseToUnit||alt.indexOf(baseToUnit)>=0)&&(_to=this._units[k]);return{_to,_toMultiplier}}_getTemperatureConversion(number,from,to){switch(from){case"C":return this._centigradeConversion(number,to);case"F":return this._fahrenheitConversion(number,to);case"K":return this._kelvinConversion(number,to);case"Rank":return this._rankineConversion(number,to);case"Reau":return this._reaumurConversion(number,to);default:return number}}_centigradeConversion(number,to){switch(to){case"F":return number*9/5+32;case"K":return number+273.15;case"Rank":return(number+273.15)*9/5;case"Reau":return number*4/5;default:return number}}_fahrenheitConversion(number,to){switch(to){case"C":return(number-32)*5/9;case"K":return(number-32)*5/9+273.15;case"Rank":return number+459.67;case"Reau":return(number-32)*4/9;default:return number}}_kelvinConversion(number,to){switch(to){case"C":return number-273.15;case"F":return(number-273.15)*9/5+32;case"Rank":return number*9/5;case"Reau":return(number-273.15)*4/5;default:return number}}_rankineConversion(number,to){switch(to){case"C":return(number-491.67)*5/9;case"F":return number-459.67;case"K":return number*5/9;case"Reau":return(number-491.67)*4/9;default:return number}}_reaumurConversion(number,to){switch(to){case"C":return number*5/4;case"F":return number*9/4+32;case"K":return number*5/4+273.15;case"Rank":return number*9/4+491.67;default:return number}}};__name(_Convert,"Convert");let Convert=_Convert;const _Dec2bin=class _Dec2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${numberValue}`)||numberValue<-512||numberValue>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0){const toStr=(512+numberValue).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=Number.parseInt(`${numberValue}`,10).toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2bin,"Dec2bin");let Dec2bin=_Dec2bin;const _Dec2hex=class _Dec2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${numberValue}`)||numberValue<-549755813888||numberValue>549755813887)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1099511627776+numberValue).toString(16);else if(result=Number.parseInt(`${numberValue}`,10).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Dec2hex,"Dec2hex");let Dec2hex=_Dec2hex;const _Dec2oct=class _Dec2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${numberValue}`)||numberValue<-536870912||numberValue>536870911)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1073741824+numberValue).toString(8);else if(result=Number.parseInt(`${numberValue}`,10).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2oct,"Dec2oct");let Dec2oct=_Dec2oct;const _Delta=class _Delta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number1,number2){const _number2=number2!=null?number2:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number1,_number2);if(isError)return errorObject;const[number1Object,number2Object]=variants,number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(Number.isNaN(number1Value)||Number.isNaN(number2Value))return ErrorValueObject.create(ErrorType$1.VALUE);const result=number1Value===number2Value?1:0;return NumberValueObject.create(result)}};__name(_Delta,"Delta");let Delta=_Delta;const _Erf=class _Erf extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(lowerLimit,upperLimit){let result;if(upperLimit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit,upperLimit);if(isError)return errorObject;const[lowerLimitObject,upperLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue(),upperLimitValue=+upperLimitObject.getValue();if(Number.isNaN(lowerLimitValue)||Number.isNaN(upperLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(upperLimitValue)-erf(lowerLimitValue)}else{const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit);if(isError)return errorObject;const[lowerLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue();if(Number.isNaN(lowerLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(lowerLimitValue)}return NumberValueObject.create(result)}};__name(_Erf,"Erf");let Erf=_Erf;const _ErfPrecise=class _ErfPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erf(xValue);return NumberValueObject.create(result)}};__name(_ErfPrecise,"ErfPrecise");let ErfPrecise=_ErfPrecise;const _Erfc=class _Erfc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=1-erf(xValue);return NumberValueObject.create(result)}};__name(_Erfc,"Erfc");let Erfc=_Erfc;const _ErfcPrecise=class _ErfcPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=1-erf(xValue);return NumberValueObject.create(result)}};__name(_ErfcPrecise,"ErfcPrecise");let ErfcPrecise=_ErfcPrecise;const _Hex2bin=class _Hex2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1).toLocaleUpperCase()==="F",decimal=negative?Number.parseInt(numberValue,16)-1099511627776:Number.parseInt(numberValue,16);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2bin,"Hex2bin");let Hex2bin=_Hex2bin;const _Hex2dec=class _Hex2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,16);return result>=549755813888&&(result-=1099511627776),NumberValueObject.create(result)}};__name(_Hex2dec,"Hex2dec");let Hex2dec=_Hex2dec;const _Hex2oct=class _Hex2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,16);if(decimal>536870911&&decimal<0xffe0000000)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(decimal>=0xffe0000000)result=(decimal-0xffc0000000).toString(8);else if(result=decimal.toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2oct,"Hex2oct");let Hex2oct=_Hex2oct;const _Oct2bin=class _Oct2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1)==="7",decimal=negative?Number.parseInt(numberValue,8)-1073741824:Number.parseInt(numberValue,8);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Oct2bin,"Oct2bin");let Oct2bin=_Oct2bin;const _Oct2dec=class _Oct2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,8);return result>=536870912&&(result-=1073741824),NumberValueObject.create(result)}};__name(_Oct2dec,"Oct2dec");let Oct2dec=_Oct2dec;const _Oct2hex=class _Oct2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,8);let result;if(decimal>=536870912)result=`ff${(decimal+3221225472).toString(16)}`;else if(result=decimal.toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Oct2hex,"Oct2hex");let Oct2hex=_Oct2hex;const functionEngineering=[[Besseli,FUNCTION_NAMES_ENGINEERING.BESSELI],[Besselj,FUNCTION_NAMES_ENGINEERING.BESSELJ],[Besselk,FUNCTION_NAMES_ENGINEERING.BESSELK],[Bessely,FUNCTION_NAMES_ENGINEERING.BESSELY],[Bin2dec,FUNCTION_NAMES_ENGINEERING.BIN2DEC],[Bin2hex,FUNCTION_NAMES_ENGINEERING.BIN2HEX],[Bin2oct,FUNCTION_NAMES_ENGINEERING.BIN2OCT],[Bitand,FUNCTION_NAMES_ENGINEERING.BITAND],[Bitlshift,FUNCTION_NAMES_ENGINEERING.BITLSHIFT],[Bitor,FUNCTION_NAMES_ENGINEERING.BITOR],[Bitrshift,FUNCTION_NAMES_ENGINEERING.BITRSHIFT],[Bitxor,FUNCTION_NAMES_ENGINEERING.BITXOR],[Complex,FUNCTION_NAMES_ENGINEERING.COMPLEX],[Convert,FUNCTION_NAMES_ENGINEERING.CONVERT],[Dec2bin,FUNCTION_NAMES_ENGINEERING.DEC2BIN],[Dec2hex,FUNCTION_NAMES_ENGINEERING.DEC2HEX],[Dec2oct,FUNCTION_NAMES_ENGINEERING.DEC2OCT],[Delta,FUNCTION_NAMES_ENGINEERING.DELTA],[Erf,FUNCTION_NAMES_ENGINEERING.ERF],[ErfPrecise,FUNCTION_NAMES_ENGINEERING.ERF_PRECISE],[Erfc,FUNCTION_NAMES_ENGINEERING.ERFC],[ErfcPrecise,FUNCTION_NAMES_ENGINEERING.ERFC_PRECISE],[Hex2bin,FUNCTION_NAMES_ENGINEERING.HEX2BIN],[Hex2dec,FUNCTION_NAMES_ENGINEERING.HEX2DEC],[Hex2oct,FUNCTION_NAMES_ENGINEERING.HEX2OCT],[Oct2bin,FUNCTION_NAMES_ENGINEERING.OCT2BIN],[Oct2dec,FUNCTION_NAMES_ENGINEERING.OCT2DEC],[Oct2hex,FUNCTION_NAMES_ENGINEERING.OCT2HEX]];var FUNCTION_NAMES_FINANCIAL=(FUNCTION_NAMES_FINANCIAL2=>(FUNCTION_NAMES_FINANCIAL2.ACCRINT="ACCRINT",FUNCTION_NAMES_FINANCIAL2.ACCRINTM="ACCRINTM",FUNCTION_NAMES_FINANCIAL2.AMORDEGRC="AMORDEGRC",FUNCTION_NAMES_FINANCIAL2.AMORLINC="AMORLINC",FUNCTION_NAMES_FINANCIAL2.COUPDAYBS="COUPDAYBS",FUNCTION_NAMES_FINANCIAL2.COUPDAYS="COUPDAYS",FUNCTION_NAMES_FINANCIAL2.COUPDAYSNC="COUPDAYSNC",FUNCTION_NAMES_FINANCIAL2.COUPNCD="COUPNCD",FUNCTION_NAMES_FINANCIAL2.COUPNUM="COUPNUM",FUNCTION_NAMES_FINANCIAL2.COUPPCD="COUPPCD",FUNCTION_NAMES_FINANCIAL2.CUMIPMT="CUMIPMT",FUNCTION_NAMES_FINANCIAL2.CUMPRINC="CUMPRINC",FUNCTION_NAMES_FINANCIAL2.DB="DB",FUNCTION_NAMES_FINANCIAL2.DDB="DDB",FUNCTION_NAMES_FINANCIAL2.DISC="DISC",FUNCTION_NAMES_FINANCIAL2.DOLLARDE="DOLLARDE",FUNCTION_NAMES_FINANCIAL2.DOLLARFR="DOLLARFR",FUNCTION_NAMES_FINANCIAL2.DURATION="DURATION",FUNCTION_NAMES_FINANCIAL2.EFFECT="EFFECT",FUNCTION_NAMES_FINANCIAL2.FV="FV",FUNCTION_NAMES_FINANCIAL2.FVSCHEDULE="FVSCHEDULE",FUNCTION_NAMES_FINANCIAL2.INTRATE="INTRATE",FUNCTION_NAMES_FINANCIAL2.IPMT="IPMT",FUNCTION_NAMES_FINANCIAL2.IRR="IRR",FUNCTION_NAMES_FINANCIAL2.ISPMT="ISPMT",FUNCTION_NAMES_FINANCIAL2.MDURATION="MDURATION",FUNCTION_NAMES_FINANCIAL2.MIRR="MIRR",FUNCTION_NAMES_FINANCIAL2.NOMINAL="NOMINAL",FUNCTION_NAMES_FINANCIAL2.NPER="NPER",FUNCTION_NAMES_FINANCIAL2.NPV="NPV",FUNCTION_NAMES_FINANCIAL2.ODDFPRICE="ODDFPRICE",FUNCTION_NAMES_FINANCIAL2.ODDFYIELD="ODDFYIELD",FUNCTION_NAMES_FINANCIAL2.ODDLPRICE="ODDLPRICE",FUNCTION_NAMES_FINANCIAL2.ODDLYIELD="ODDLYIELD",FUNCTION_NAMES_FINANCIAL2.PDURATION="PDURATION",FUNCTION_NAMES_FINANCIAL2.PMT="PMT",FUNCTION_NAMES_FINANCIAL2.PPMT="PPMT",FUNCTION_NAMES_FINANCIAL2.PRICE="PRICE",FUNCTION_NAMES_FINANCIAL2.PRICEDISC="PRICEDISC",FUNCTION_NAMES_FINANCIAL2.PRICEMAT="PRICEMAT",FUNCTION_NAMES_FINANCIAL2.PV="PV",FUNCTION_NAMES_FINANCIAL2.RATE="RATE",FUNCTION_NAMES_FINANCIAL2.RECEIVED="RECEIVED",FUNCTION_NAMES_FINANCIAL2.RRI="RRI",FUNCTION_NAMES_FINANCIAL2.SLN="SLN",FUNCTION_NAMES_FINANCIAL2.SYD="SYD",FUNCTION_NAMES_FINANCIAL2.TBILLEQ="TBILLEQ",FUNCTION_NAMES_FINANCIAL2.TBILLPRICE="TBILLPRICE",FUNCTION_NAMES_FINANCIAL2.TBILLYIELD="TBILLYIELD",FUNCTION_NAMES_FINANCIAL2.VDB="VDB",FUNCTION_NAMES_FINANCIAL2.XIRR="XIRR",FUNCTION_NAMES_FINANCIAL2.XNPV="XNPV",FUNCTION_NAMES_FINANCIAL2.YIELD="YIELD",FUNCTION_NAMES_FINANCIAL2.YIELDDISC="YIELDDISC",FUNCTION_NAMES_FINANCIAL2.YIELDMAT="YIELDMAT",FUNCTION_NAMES_FINANCIAL2))(FUNCTION_NAMES_FINANCIAL||{});const _Accrint=class _Accrint extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",8)}calculate(issue,firstInterest,settlement,rate,par,frequency,basis,calcMethod){const _basis=basis!=null?basis:NumberValueObject.create(0),_calcMethod=calcMethod!=null?calcMethod:BooleanValueObject.create(!0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,firstInterest,settlement,rate,par,frequency,_basis);if(isError)return errorObject;const[issueObject,firstInterestObject,settlementObject,rateObject,parObject,frequencyObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstInterestSerialNumber=getDateSerialNumberByObject(firstInterestObject);if(typeof firstInterestSerialNumber!="number")return firstInterestSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue()),calcMethodValue=+_calcMethod.getValue();return Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)||Number.isNaN(calcMethodValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||parValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>=Math.floor(settlementSerialNumber)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue)}_getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue){let TwoDateDays;Math.floor(settlementSerialNumber)>=Math.floor(firstInterestSerialNumber)&&!calcMethodValue?TwoDateDays=getTwoDateDaysByBasis(firstInterestSerialNumber,settlementSerialNumber,basisValue):TwoDateDays=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue);const{days,yearDays}=TwoDateDays,NC=Math.ceil(days/yearDays*frequencyValue),NLi=yearDays/frequencyValue;let accruedDaysSum=0;for(let i=1;i<=NC;i++)if(i*NLi>days){const Ai=days-(i-1)*NLi;accruedDaysSum+=Ai/NLi}else accruedDaysSum+=1;const result=parValue*(rateValue/frequencyValue)*accruedDaysSum;return NumberValueObject.create(result)}};__name(_Accrint,"Accrint");let Accrint=_Accrint;const _Accrintm=class _Accrintm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(issue,settlement,rate,par,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,settlement,rate,par,_basis);if(isError)return errorObject;const[issueObject,settlementObject,rateObject,parObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<=0||parValue<=0||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>Math.floor(settlementSerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);if(Math.floor(issueSerialNumber)===Math.floor(settlementSerialNumber))return NumberValueObject.create(0);const{days,yearDays}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=parValue*rateValue*days/yearDays;return NumberValueObject.create(result)}};__name(_Accrintm,"Accrintm");let Accrintm=_Accrintm;const _Amorlinc=class _Amorlinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(cost,datePurchased,firstPeriod,salvage,period,rate,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(cost,datePurchased,firstPeriod,salvage,period,rate,_basis);if(isError)return errorObject;const[costObject,datePurchasedObject,firstPeriodObject,salvageObject,periodObject,rateObject,basisObject]=variants,datePurchasedSerialNumber=getDateSerialNumberByObject(datePurchasedObject);if(typeof datePurchasedSerialNumber!="number")return datePurchasedSerialNumber;const firstPeriodSerialNumber=getDateSerialNumberByObject(firstPeriodObject);if(typeof firstPeriodSerialNumber!="number")return firstPeriodSerialNumber;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue();let periodValue=+periodObject.getValue();const rateValue=+rateObject.getValue(),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(periodValue)||Number.isNaN(rateValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):costValue<=0||salvageValue<0||costValue<salvageValue||Math.floor(datePurchasedSerialNumber)>Math.floor(firstPeriodSerialNumber)||periodValue<0||rateValue<=0||![0,1,3,4].includes(basisValue)?ErrorValueObject.create(ErrorType$1.NUM):(periodValue>1?periodValue=Math.floor(periodValue):periodValue=Math.ceil(periodValue),this._getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue))}_getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue){const totalDepreciation=costValue-salvageValue,baseDepreciation=costValue*rateValue,{days,yearDays}=getTwoDateDaysByBasis(datePurchasedSerialNumber,firstPeriodSerialNumber,basisValue),firstPeriodYearsFraction=days/yearDays,life=Math.ceil(totalDepreciation/baseDepreciation-firstPeriodYearsFraction);if(life<0)return NumberValueObject.create(costValue);let result=baseDepreciation;return periodValue===0?result=baseDepreciation*firstPeriodYearsFraction:periodValue===life?result=totalDepreciation-baseDepreciation*(firstPeriodYearsFraction+periodValue-1):periodValue>life&&(result=0),NumberValueObject.create(result)}};__name(_Amorlinc,"Amorlinc");let Amorlinc=_Amorlinc;const _Coupdaybs=class _Coupdaybs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);let coupDateSerialNumber=excelDateSerial(coupDate);coupDateSerialNumber<0&&(coupDateSerialNumber=0);const{days}=getTwoDateDaysByBasis(coupDateSerialNumber,settlementSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaybs,"Coupdaybs");let Coupdaybs=_Coupdaybs;const _Coupdays=class _Coupdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(basisValue===1){const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);const beforeSettlementDateSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const afterSettlementDateSerialNumber=excelDateSerial(coupDate);beforeSettlementDateSerialNumber<0&&frequencyValue===1?result=365:result=afterSettlementDateSerialNumber-beforeSettlementDateSerialNumber}else basisValue===3?result=365/frequencyValue:result=360/frequencyValue;return NumberValueObject.create(result)}};__name(_Coupdays,"Coupdays");let Coupdays=_Coupdays;const _Coupdaysnc=class _Coupdaysnc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate),{days}=getTwoDateDaysByBasis(settlementSerialNumber,coupDateSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaysnc,"Coupdaysnc");let Coupdaysnc=_Coupdaysnc;const _Coupncd=class _Coupncd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate);return NumberValueObject.create(coupDateSerialNumber)}};__name(_Coupncd,"Coupncd");let Coupncd=_Coupncd;const _Coupnum=class _Coupnum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=0;const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(;coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue),result++;return excelDateSerial(coupDate)<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Coupnum,"Coupnum");let Coupnum=_Coupnum;const _Couppcd=class _Couppcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);let coupDateSerialNumber=excelDateSerial(coupDate);return coupDateSerialNumber<0&&(coupDateSerialNumber=0),NumberValueObject.create(coupDateSerialNumber)}};__name(_Couppcd,"Couppcd");let Couppcd=_Couppcd;function calculatePMT(rate,nper,pv,fv,type){let result;if(rate===0)result=(pv+fv)/nper;else{const term=(1+rate)**nper;result=type===1?(fv*rate/(term-1)+pv*rate/(1-1/term))/(1+rate):fv*rate/(term-1)+pv*rate/(1-1/term)}return-result}__name(calculatePMT,"calculatePMT");function calculateFV(rate,nper,pmt,pv,type){let result;if(rate===0)result=pv+pmt*nper;else{const term=(1+rate)**nper;result=type===1?pv*term+pmt*(1+rate)*(term-1)/rate:pv*term+pmt*(term-1)/rate}return-result}__name(calculateFV,"calculateFV");function calculateIPMT(rate,per,nper,pv,fv,type){const payment=calculatePMT(rate,nper,pv,fv,type);return(per===1?type===1?0:-pv:type===1?calculateFV(rate,per-2,payment,pv,1)-payment:calculateFV(rate,per-1,payment,pv,0))*rate}__name(calculateIPMT,"calculateIPMT");const _Cumipmt=class _Cumipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||startPeriodValue>nperValue||endPeriodValue>nperValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(typeValue===0&&(result=-pvValue),_startPeriodValue++);let canNotCalculate=!1;for(let i=_startPeriodValue;i<=endPeriodValue;i++){const principal=typeValue===1?calculateFV(rateValue,i-2,payment,pvValue,1):calculateFV(rateValue,i-1,payment,pvValue,0);if(principal===0){canNotCalculate=!0;break}result+=typeValue===1?principal-payment:principal}return result*=rateValue,(result<payment*(endPeriodValue-startPeriodValue+1)||canNotCalculate)&&(result=payment*(endPeriodValue-startPeriodValue+1)),NumberValueObject.create(result)}};__name(_Cumipmt,"Cumipmt");let Cumipmt=_Cumipmt;const _Cumprinc=class _Cumprinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(result=typeValue===0?payment+pvValue*rateValue:payment,_startPeriodValue++);for(let i=_startPeriodValue;i<=endPeriodValue;i++)result+=typeValue===1?payment-(calculateFV(rateValue,i-2,payment,pvValue,1)-payment)*rateValue:payment-calculateFV(rateValue,i-1,payment,pvValue,0)*rateValue;return NumberValueObject.create(result)}};__name(_Cumprinc,"Cumprinc");let Cumprinc=_Cumprinc;const _Db=class _Db extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,month){let _month=month!=null?month:NumberValueObject.create(12);_month.isNull()&&(_month=NumberValueObject.create(12));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_month.isArray()?_month.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_month.isArray()?_month.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_month,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),monthObject=monthArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,monthObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_monthObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue();let periodValue=+_periodObject.getValue();const monthValue=Math.floor(+_monthObject.getValue());return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||monthValue<1||monthValue>12?ErrorValueObject.create(ErrorType$1.NUM):(periodValue<1&&(periodValue=1),periodValue=Math.floor(periodValue),this._getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex){const rate=+(1-(salvageValue/costValue)**(1/lifeValue)).toFixed(3),initial=costValue*rate*monthValue/12;let total=initial,current=0;const ceiling=periodValue===lifeValue?lifeValue-1:periodValue;for(let i=2;i<=ceiling;i++)current=(costValue-total)*rate,total+=current;let result;return periodValue===1?result=initial:periodValue===lifeValue?result=(costValue-total)*rate:result=current,Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}};__name(_Db,"Db");let Db=_Db;const _Ddb=class _Ddb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,factor){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_factor.isArray()?_factor.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,factorObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_factorObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),periodValue=Math.ceil(+_periodObject.getValue()),factorValue=+_factorObject.getValue();return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||factorValue<=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(costValue,salvageValue,lifeValue,periodValue,factorValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,factorValue,rowIndex,columnIndex){let total=0,result=0;if(salvageValue<costValue)for(let i=1;i<=periodValue;i++)result=Math.min((costValue-total)*(factorValue/lifeValue),costValue-salvageValue-total),total+=result;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}};__name(_Ddb,"Ddb");let Ddb=_Ddb;const _Disc=class _Disc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-prValue)/redemptionValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Disc,"Disc");let Disc=_Disc;const _Dollarde=class _Dollarde extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(fractionalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(fractionalDollar,fraction);if(isError)return errorObject;const[fractionalDollarObject,fractionObject]=variants,fractionalDollarValue=+fractionalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(fractionalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${fractionalDollarValue}`,10);result+=fractionalDollarValue%1*10**Math.ceil(Math.log(fractionValue)/Math.LN10)/fractionValue;const power=10**(Math.ceil(Math.log(fractionValue)/Math.LN2)+1);return result=Math.round(result*power)/power,NumberValueObject.create(result)}};__name(_Dollarde,"Dollarde");let Dollarde=_Dollarde;const _Dollarfr=class _Dollarfr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(decimalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(decimalDollar,fraction);if(isError)return errorObject;const[decimalDollarObject,fractionObject]=variants,decimalDollarValue=+decimalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(decimalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${decimalDollarValue}`,10);return result+=decimalDollarValue%1*10**-Math.ceil(Math.log(fractionValue)/Math.LN10)*fractionValue,NumberValueObject.create(result)}};__name(_Dollarfr,"Dollarfr");let Dollarfr=_Dollarfr;const _Effect=class _Effect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(nominalRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(nominalRate,npery);if(isError)return errorObject;const[nominalRateObject,nperyObject]=variants,nominalRateValue=+nominalRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(nominalRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nominalRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=(1+nominalRateValue/nperyValue)**nperyValue-1;return NumberValueObject.create(result)}};__name(_Effect,"Effect");let Effect=_Effect;const _Fv=class _Fv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,pv,type){const _pv=pv!=null?pv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_pv.isArray()?_pv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_pv.isArray()?_pv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_pv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,pvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_pvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),typeValue=+_typeObject.getValue(),result=calculateFV(rateValue,nperValue,pmtValue,pvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Fv,"Fv");let Fv=_Fv;const _Fvschedule=class _Fvschedule extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(principal,schedule){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(principal);if(isError)return errorObject;const[principalObject]=variants,principalValue=+principalObject.getValue();if(Number.isNaN(principalValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=principalValue;if(schedule.isArray()){const scheduleValues=schedule.getArrayValue().flat();for(let i=0;i<scheduleValues.length;i++){const scheduleObject=scheduleValues[i];if(scheduleObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+scheduleObject.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}}else{if(schedule.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+schedule.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}return NumberValueObject.create(result)}};__name(_Fvschedule,"Fvschedule");let Fvschedule=_Fvschedule;const _Intrate=class _Intrate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,investment,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-investmentValue)/investmentValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Intrate,"Intrate");let Intrate=_Intrate;const _Ipmt=class _Ipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ipmt,"Ipmt");let Ipmt=_Ipmt;const _Ispmt=class _Ispmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(rate,per,nper,pv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue();if(nperValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=pvValue*rateValue*(perValue/nperValue-1);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ispmt,"Ispmt");let Ispmt=_Ispmt;const _Nominal=class _Nominal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(effectRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(effectRate,npery);if(isError)return errorObject;const[effectRateObject,nperyObject]=variants,effectRateValue=+effectRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(effectRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(effectRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=((effectRateValue+1)**(1/nperyValue)-1)*nperyValue;return NumberValueObject.create(result)}};__name(_Nominal,"Nominal");let Nominal=_Nominal;const _Nper=class _Nper extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,pmt,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pmtObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_pmtObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();if(typeValue=typeValue?1:0,rateValue===0&&pmtValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);let result;if(rateValue===0)result=-(pvValue+fvValue)/pmtValue;else{const num=pmtValue*(1+rateValue*typeValue)-fvValue*rateValue,den=pvValue*rateValue+pmtValue*(1+rateValue*typeValue);result=Math.log(num/den)/Math.log(1+rateValue)}return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Nper,"Nper");let Nper=_Nper;const _Pmt=class _Pmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pmt,"Pmt");let Pmt=_Pmt;const _Ppmt=class _Ppmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue)||perValue-nperValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0)-calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ppmt,"Ppmt");let Ppmt=_Ppmt;const _Pv=class _Pv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();typeValue=typeValue?1:0;const result=rateValue===0?-pmtValue*nperValue-fvValue:((1-(1+rateValue)**nperValue)/rateValue*pmtValue*(1+rateValue*typeValue)-fvValue)/(1+rateValue)**nperValue;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pv,"Pv");let Pv=_Pv;const _Rate=class _Rate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pmt,pv,fv,type,guess){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),_guess=guess!=null?guess:NumberValueObject.create(.1),maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1,_guess.isArray()?_guess.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1,_guess.isArray()?_guess.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),guessArray=expandArrayValueObject(maxRowLength,maxColumnLength,_guess,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),guessObject=guessArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pmtObject,pvObject,fvObject,typeObject,guessObject);if(isError)return errorObject;const[_nperObject,_pmtObject,_pvObject,_fvObject,_typeObject,_guessObject]=variants,nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();const guessValue=+_guessObject.getValue();return typeValue=typeValue?1:0,nperValue<=0||pmtValue>=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex){let result=guessValue;for(let i=0;i<20;i++){if(result<=-1)return ErrorValueObject.create(ErrorType$1.NUM);let y,f;if(Math.abs(result)<1e-10?y=pvValue*(1+nperValue*result)+pmtValue*(1+result*typeValue)*nperValue+fvValue:(f=(1+result)**nperValue,y=pvValue*f+pmtValue*(1/result+typeValue)*(f-1)+fvValue),Math.abs(y)<1e-10)break;let dy;if(Math.abs(result)<1e-10)dy=pvValue*nperValue+pmtValue*typeValue*nperValue;else{f=(1+result)**nperValue;const df=nperValue*(1+result)**(nperValue-1);dy=pvValue*df+pmtValue*(1/result+typeValue)*df+pmtValue*(-1/(result*result))*(f-1)}result-=y/dy}return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}};__name(_Rate,"Rate");let Rate=_Rate;const functionFinancial=[[Accrint,FUNCTION_NAMES_FINANCIAL.ACCRINT],[Accrintm,FUNCTION_NAMES_FINANCIAL.ACCRINTM],[Amorlinc,FUNCTION_NAMES_FINANCIAL.AMORLINC],[Coupdaybs,FUNCTION_NAMES_FINANCIAL.COUPDAYBS],[Coupdays,FUNCTION_NAMES_FINANCIAL.COUPDAYS],[Coupdaysnc,FUNCTION_NAMES_FINANCIAL.COUPDAYSNC],[Coupncd,FUNCTION_NAMES_FINANCIAL.COUPNCD],[Coupnum,FUNCTION_NAMES_FINANCIAL.COUPNUM],[Couppcd,FUNCTION_NAMES_FINANCIAL.COUPPCD],[Cumipmt,FUNCTION_NAMES_FINANCIAL.CUMIPMT],[Cumprinc,FUNCTION_NAMES_FINANCIAL.CUMPRINC],[Db,FUNCTION_NAMES_FINANCIAL.DB],[Ddb,FUNCTION_NAMES_FINANCIAL.DDB],[Disc,FUNCTION_NAMES_FINANCIAL.DISC],[Dollarde,FUNCTION_NAMES_FINANCIAL.DOLLARDE],[Dollarfr,FUNCTION_NAMES_FINANCIAL.DOLLARFR],[Effect,FUNCTION_NAMES_FINANCIAL.EFFECT],[Fv,FUNCTION_NAMES_FINANCIAL.FV],[Fvschedule,FUNCTION_NAMES_FINANCIAL.FVSCHEDULE],[Intrate,FUNCTION_NAMES_FINANCIAL.INTRATE],[Ipmt,FUNCTION_NAMES_FINANCIAL.IPMT],[Ispmt,FUNCTION_NAMES_FINANCIAL.ISPMT],[Nominal,FUNCTION_NAMES_FINANCIAL.NOMINAL],[Nper,FUNCTION_NAMES_FINANCIAL.NPER],[Pmt,FUNCTION_NAMES_FINANCIAL.PMT],[Ppmt,FUNCTION_NAMES_FINANCIAL.PPMT],[Pv,FUNCTION_NAMES_FINANCIAL.PV],[Rate,FUNCTION_NAMES_FINANCIAL.RATE]];var FUNCTION_NAMES_INFORMATION=(FUNCTION_NAMES_INFORMATION2=>(FUNCTION_NAMES_INFORMATION2.CELL="CELL",FUNCTION_NAMES_INFORMATION2.ERROR_TYPE="ERROR.TYPE",FUNCTION_NAMES_INFORMATION2.INFO="INFO",FUNCTION_NAMES_INFORMATION2.ISBLANK="ISBLANK",FUNCTION_NAMES_INFORMATION2.ISERR="ISERR",FUNCTION_NAMES_INFORMATION2.ISERROR="ISERROR",FUNCTION_NAMES_INFORMATION2.ISEVEN="ISEVEN",FUNCTION_NAMES_INFORMATION2.ISFORMULA="ISFORMULA",FUNCTION_NAMES_INFORMATION2.ISLOGICAL="ISLOGICAL",FUNCTION_NAMES_INFORMATION2.ISNA="ISNA",FUNCTION_NAMES_INFORMATION2.ISNONTEXT="ISNONTEXT",FUNCTION_NAMES_INFORMATION2.ISNUMBER="ISNUMBER",FUNCTION_NAMES_INFORMATION2.ISODD="ISODD",FUNCTION_NAMES_INFORMATION2.ISOMITTED="ISOMITTED",FUNCTION_NAMES_INFORMATION2.ISREF="ISREF",FUNCTION_NAMES_INFORMATION2.ISTEXT="ISTEXT",FUNCTION_NAMES_INFORMATION2.N="N",FUNCTION_NAMES_INFORMATION2.NA="NA",FUNCTION_NAMES_INFORMATION2.SHEET="SHEET",FUNCTION_NAMES_INFORMATION2.SHEETS="SHEETS",FUNCTION_NAMES_INFORMATION2.TYPE="TYPE",FUNCTION_NAMES_INFORMATION2))(FUNCTION_NAMES_INFORMATION||{});const _Cell=class _Cell extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(infoType,reference){let _infoType=infoType;if(_infoType.isError())return _infoType;if(_infoType.isReferenceObject()&&(_infoType=_infoType.toArrayValueObject()),_infoType.isArray()){const rowCount=_infoType.getRowCount(),columnCount=_infoType.getColumnCount();if(rowCount===1&&columnCount===1){const infoTypeObject=_infoType.get(0,0);return this._handleSingleObject(infoTypeObject,reference)}return _infoType.map(infoTypeObject=>infoTypeObject.isError()?infoTypeObject:this._handleSingleObject(infoTypeObject,reference,!0))}return this._handleSingleObject(_infoType,reference)}_handleSingleObject(infoType,reference,infoTypeIsArray=!1){let _reference=reference;if(_reference.isError())return _reference;if(!_reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const currentActiveSheetData=_reference.getCurrentActiveSheetData(),{columnData,defaultColumnWidth}=currentActiveSheetData;_reference=_reference.toArrayValueObject();const _currentRow=_reference.getCurrentRow(),_currentColumn=_reference.getCurrentColumn();_reference=_reference.getFirstCell();const infoTypeValue=`${infoType.getValue()}`;let result;switch(infoTypeValue.toLocaleLowerCase()){case"address":return StringValueObject.create(`$${core.Tools.chatAtABC(_currentColumn)}$${_currentRow+1}`);case"col":return NumberValueObject.create(_currentColumn+1);case"color":return NumberValueObject.create(0);case"contents":return _reference;case"filename":return ErrorValueObject.create(ErrorType$1.VALUE);case"format":return StringValueObject.create("G");case"parentheses":return NumberValueObject.create(0);case"prefix":return StringValueObject.create("");case"protect":return NumberValueObject.create(1);case"row":return NumberValueObject.create(_currentRow+1);case"type":return result="v",_reference.isNull()&&(result="b"),_reference.isString()&&(result="l"),StringValueObject.create(result);case"width":return this._getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray);default:return ErrorValueObject.create(ErrorType$1.VALUE)}}_getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray){var _a24;let result=(_a24=columnData[_currentColumn])==null?void 0:_a24.w;if(!result&&result!==0&&(result=defaultColumnWidth),infoTypeIsArray)return NumberValueObject.create(result);const resultArray=[[result,result===defaultColumnWidth]];return ArrayValueObject.createByArray(resultArray)}};__name(_Cell,"Cell");let Cell=_Cell;const _ErrorType=class _ErrorType extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"_errorTypeValueMap",new Map([[ErrorType$1.NULL,1],[ErrorType$1.DIV_BY_ZERO,2],[ErrorType$1.VALUE,3],[ErrorType$1.REF,4],[ErrorType$1.NAME,5],[ErrorType$1.NUM,6],[ErrorType$1.NA,7],[ErrorType$1.CONNECT,8],[ErrorType$1.CALC,14]]))}calculate(errorVal){return errorVal.isArray()?errorVal.mapValue(errorValObject=>this._handleSingleObject(errorValObject)):this._handleSingleObject(errorVal)}_handleSingleObject(errorVal){const errorValValue=errorVal.getValue(),result=this._errorTypeValueMap.get(errorValValue);return result?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NA)}};__name(_ErrorType,"ErrorType");let ErrorType=_ErrorType;const _Isblank=class _Isblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNull()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNull()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isblank,"Isblank");let Isblank=_Isblank;const _Iserr=class _Iserr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserr,"Iserr");let Iserr=_Iserr;const _Iserror=class _Iserror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserror,"Iserror");let Iserror=_Iserror;const _Iseven=class _Iseven extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2===0;return BooleanValueObject.create(result)}};__name(_Iseven,"Iseven");let Iseven=_Iseven;const _Islogical=class _Islogical extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isBoolean()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isBoolean()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Islogical,"Islogical");let Islogical=_Islogical;const _Isna=class _Isna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isna,"Isna");let Isna=_Isna;const _Isnontext=class _Isnontext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return!value.isArray()&&!value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!1):BooleanValueObject.create(!0)):BooleanValueObject.create(!1)}};__name(_Isnontext,"Isnontext");let Isnontext=_Isnontext;const _Isnumber=class _Isnumber extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNumber()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNumber()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isnumber,"Isnumber");let Isnumber=_Isnumber;const _Isodd=class _Isodd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2!==0;return BooleanValueObject.create(result)}};__name(_Isodd,"Isodd");let Isodd=_Isodd;const _Isref=class _Isref extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(value){return value.isReferenceObject()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)}};__name(_Isref,"Isref");let Isref=_Isref;const _Istext=class _Istext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Istext,"Istext");let Istext=_Istext;const _Type=class _Type extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){if(value.isReferenceObject()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount===1&&columnCount===1){const _value=value.getFirstCell();if(_value.isError())return NumberValueObject.create(16);if(_value.isBoolean())return NumberValueObject.create(4);if(_value.isString())return NumberValueObject.create(2);if(_value.isNumber()||_value.isNull())return NumberValueObject.create(1)}else return NumberValueObject.create(64)}else{if(value.isArray())return NumberValueObject.create(64);if(value.isError())return NumberValueObject.create(16);if(value.isBoolean())return NumberValueObject.create(4);if(value.isString())return NumberValueObject.create(2);if(value.isNumber()||value.isNull())return NumberValueObject.create(1)}return NumberValueObject.create(128)}};__name(_Type,"Type");let Type=_Type;const functionInformation=[[Cell,FUNCTION_NAMES_INFORMATION.CELL],[ErrorType,FUNCTION_NAMES_INFORMATION.ERROR_TYPE],[Isblank,FUNCTION_NAMES_INFORMATION.ISBLANK],[Iserr,FUNCTION_NAMES_INFORMATION.ISERR],[Iserror,FUNCTION_NAMES_INFORMATION.ISERROR],[Iseven,FUNCTION_NAMES_INFORMATION.ISEVEN],[Islogical,FUNCTION_NAMES_INFORMATION.ISLOGICAL],[Isna,FUNCTION_NAMES_INFORMATION.ISNA],[Isnontext,FUNCTION_NAMES_INFORMATION.ISNONTEXT],[Isnumber,FUNCTION_NAMES_INFORMATION.ISNUMBER],[Isodd,FUNCTION_NAMES_INFORMATION.ISODD],[Isref,FUNCTION_NAMES_INFORMATION.ISREF],[Istext,FUNCTION_NAMES_INFORMATION.ISTEXT],[Type,FUNCTION_NAMES_INFORMATION.TYPE]];var FUNCTION_NAMES_LOGICAL=(FUNCTION_NAMES_LOGICAL2=>(FUNCTION_NAMES_LOGICAL2.AND="AND",FUNCTION_NAMES_LOGICAL2.BYCOL="BYCOL",FUNCTION_NAMES_LOGICAL2.BYROW="BYROW",FUNCTION_NAMES_LOGICAL2.FALSE="FALSE",FUNCTION_NAMES_LOGICAL2.IF="IF",FUNCTION_NAMES_LOGICAL2.IFERROR="IFERROR",FUNCTION_NAMES_LOGICAL2.IFNA="IFNA",FUNCTION_NAMES_LOGICAL2.IFS="IFS",FUNCTION_NAMES_LOGICAL2.LAMBDA="LAMBDA",FUNCTION_NAMES_LOGICAL2.LET="LET",FUNCTION_NAMES_LOGICAL2.MAKEARRAY="MAKEARRAY",FUNCTION_NAMES_LOGICAL2.MAP="MAP",FUNCTION_NAMES_LOGICAL2.NOT="NOT",FUNCTION_NAMES_LOGICAL2.OR="OR",FUNCTION_NAMES_LOGICAL2.REDUCE="REDUCE",FUNCTION_NAMES_LOGICAL2.SCAN="SCAN",FUNCTION_NAMES_LOGICAL2.SWITCH="SWITCH",FUNCTION_NAMES_LOGICAL2.TRUE="TRUE",FUNCTION_NAMES_LOGICAL2.XOR="XOR",FUNCTION_NAMES_LOGICAL2))(FUNCTION_NAMES_LOGICAL||{});const _And=class _And extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result&&!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result&&!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(result)}};__name(_And,"And");let And=_And;const _False=class _False extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!1)}};__name(_False,"False");let False=_False;const _If=class _If extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(logicalTest,valueIfTrue,valueIfFalse=BooleanValueObject.create(!1)){if(logicalTest.isError())return logicalTest;if(valueIfTrue.isError())return valueIfTrue;const _logicalTest=this._getSingleValueObject(logicalTest);if(!_logicalTest.isArray())return _logicalTest.getValue()?valueIfTrue:valueIfFalse;const maxRowLength=Math.max(_logicalTest.isArray()?_logicalTest.getRowCount():1,valueIfTrue.isArray()?valueIfTrue.getRowCount():1,valueIfFalse.isArray()?valueIfFalse.getRowCount():1),maxColumnLength=Math.max(_logicalTest.isArray()?_logicalTest.getColumnCount():1,valueIfTrue.isArray()?valueIfTrue.getColumnCount():1,valueIfFalse.isArray()?valueIfFalse.getColumnCount():1),logicalTestArray=expandArrayValueObject(maxRowLength,maxColumnLength,_logicalTest),valueIfTrueArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfTrue,ErrorValueObject.create(ErrorType$1.NA)),valueIfFalseArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfFalse,ErrorValueObject.create(ErrorType$1.NA));return logicalTestArray.map((logicalTestValue,rowIndex,columnIndex)=>{if(logicalTestValue.isNull())return ErrorValueObject.create(ErrorType$1.NA);{const valueIfTrueValue=valueIfTrueArray.get(rowIndex,columnIndex)||NullValueObject.create(),valueIfFalseValue=valueIfFalseArray.get(rowIndex,columnIndex)||NullValueObject.create();return this._calculateSingleCell(logicalTestValue,valueIfTrueValue,valueIfFalseValue)}})}_getSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?valueObject.getFirstCell():valueObject}_calculateSingleCell(logicalTest,valueIfTrue,valueIfFalse){return logicalTest.isNull()?ErrorValueObject.create(ErrorType$1.NA):logicalTest.getValue()?valueIfTrue.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfTrue:valueIfFalse.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfFalse}};__name(_If,"If");let If=_If;const _Iferror=class _Iferror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfError){if(value.isError())return value;if(valueIfError.isError())return valueIfError;if(!value.isArray())return value.isError()?valueIfError:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfError.isArray()?valueIfError.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfError.isArray()?valueIfError.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfErrorArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfError);return valueArray.iterator((value2,rowIndex,columnIndex)=>{value2!=null&&value2.isError()&&valueArray.set(rowIndex,columnIndex,valueIfErrorArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Iferror,"Iferror");let Iferror=_Iferror;const _Ifna=class _Ifna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfNa){if(value.isError()&&value.getErrorType()!==ErrorType$1.NA)return value;if(valueIfNa.isError())return valueIfNa;if(!value.isArray())return value.isError()&&value.getErrorType()===ErrorType$1.NA?valueIfNa:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfNa.isArray()?valueIfNa.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfNa.isArray()?valueIfNa.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfNaArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfNa);return valueArray.iterator((cellValue,rowIndex,columnIndex)=>{cellValue!=null&&cellValue.isError()&&cellValue.getErrorType()===ErrorType$1.NA&&valueArray.set(rowIndex,columnIndex,valueIfNaArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Ifna,"Ifna");let Ifna=_Ifna;const _Ifs=class _Ifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...params){if(params.length%2!==0)return ErrorValueObject.create(ErrorType$1.NA);for(let i=0;i<params.length;i++)if(params[i].isError())return params[i];const maxRowLength=Math.max(...params.map(param=>param.isArray()?param.getRowCount():1)),maxColumnLength=Math.max(...params.map(param=>param.isArray()?param.getColumnCount():1)),expandedParams=params.map(param=>expandArrayValueObject(maxRowLength,maxColumnLength,param,ErrorValueObject.create(ErrorType$1.NA))),resultArray=expandedParams[0].map((_,rowIndex,columnIndex)=>{for(let i=0;i<expandedParams.length;i+=2){const condition=expandedParams[i].get(rowIndex,columnIndex)||NullValueObject.create(),result=expandedParams[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(condition.isNull())continue;if(condition.isError())return condition;const conditionValue=condition.getValue();if(condition.isString()){if(`${conditionValue}`.toLocaleUpperCase()==="TRUE")return result;if(`${conditionValue}`.toLocaleUpperCase()==="FALSE")continue;return ErrorValueObject.create(ErrorType$1.VALUE)}if(+conditionValue)return result.isNull()?ErrorValueObject.create(ErrorType$1.NA):result}return ErrorValueObject.create(ErrorType$1.NA)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ifs,"Ifs");let Ifs=_Ifs;const _Lambda=class _Lambda extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lambda,"Lambda");let Lambda=_Lambda;const _Let=class _Let extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Let,"Let");let Let=_Let;const _Makearray=class _Makearray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(...variants){const row=this.getIndexNumValue(variants[0]);if(typeof row!="number")return row;const column=this.getIndexNumValue(variants[1]);if(typeof column!="number")return column;if(!(variants[2].isValueObject()&&variants[2].isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);const lambda=variants[2],result=[];for(let r=0;r<row;r++){result[r]==null&&(result[r]=[]);for(let c=0;c<column;c++){let value=lambda.execute(NumberValueObject.create(r+1),NumberValueObject.create(c+1));value.isArray()&&(value=value.get(0,0)),result[r][c]=value}}return new AsyncArrayObject(result)}isAsync(){return!0}};__name(_Makearray,"Makearray");let Makearray=_Makearray;const _Not=class _Not extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(logical){return logical.isArray()?logical.map(logicalObject=>this._handleSingleObject(logicalObject)):this._handleSingleObject(logical)}_handleSingleObject(logical){if(logical.isError())return logical;const logicalValue=+logical.getValue();return Number.isNaN(logicalValue)?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(!logicalValue)}};__name(_Not,"Not");let Not=_Not;const _Or=class _Or extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!1,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result||!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result||!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?new ErrorValueObject(ErrorType$1.VALUE):new BooleanValueObject(result)}};__name(_Or,"Or");let Or=_Or;const _Switch=class _Switch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3)}calculate(expression,...args){if(expression.isError())return expression;const hasDefault=args.length%2!==0,defaultValue=hasDefault?args[args.length-1]:NullValueObject.create();return!expression.isArray()&&!args.some(arg=>arg.isArray())?this._handleNonArrayInputs(expression,args,defaultValue,hasDefault):this._handleArrayInputs(expression,args,defaultValue,hasDefault)}_handleNonArrayInputs(expression,args,defaultValue,hasDefault){for(let i=0;i<args.length-(hasDefault?1:0);i+=2){const switchValue=args[i],resultValue=args[i+1];if(!switchValue.isNull()){if(switchValue.isError())return switchValue;if(`${expression.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}return defaultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultValue}_handleArrayInputs(expression,args,defaultValue,hasDefault){const maxRowLength=Math.max(expression.isArray()?expression.getRowCount():1,...args.map(arg=>arg.isArray()?arg.getRowCount():1),defaultValue.isArray()?defaultValue.getRowCount():1),maxColumnLength=Math.max(expression.isArray()?expression.getColumnCount():1,...args.map(arg=>arg.isArray()?arg.getColumnCount():1),defaultValue.isArray()?defaultValue.getColumnCount():1),expandedExpression=expandArrayValueObject(maxRowLength,maxColumnLength,expression),expandedArgs=args.map(arg=>expandArrayValueObject(maxRowLength,maxColumnLength,arg,ErrorValueObject.create(ErrorType$1.NA))),expandedDefault=expandArrayValueObject(maxRowLength,maxColumnLength,defaultValue,ErrorValueObject.create(ErrorType$1.NA));return expandedExpression.map((expValue,rowIndex,columnIndex)=>{for(let i=0;i<expandedArgs.length-(hasDefault?1:0);i+=2){const switchValue=expandedArgs[i].get(rowIndex,columnIndex)||NullValueObject.create(),resultValue=expandedArgs[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(!switchValue.isNull()){if(switchValue.isError()||expValue.isError())return switchValue.isError()?switchValue:expValue;if(`${expValue.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}const defaultCellValue=expandedDefault.get(rowIndex,columnIndex)||NullValueObject.create();return defaultCellValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultCellValue})}};__name(_Switch,"Switch");let Switch=_Switch;const _True=class _True extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!0)}};__name(_True,"True");let True=_True;const _Xor=class _Xor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let trueCount=0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(value.getValue()&&trueCount++,noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(logicalValue.getValue()&&trueCount++,noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(trueCount%2===1)}};__name(_Xor,"Xor");let Xor=_Xor;const functionLogical=[[And,FUNCTION_NAMES_LOGICAL.AND],[False,FUNCTION_NAMES_LOGICAL.FALSE],[If,FUNCTION_NAMES_LOGICAL.IF],[Iferror,FUNCTION_NAMES_LOGICAL.IFERROR],[Ifna,FUNCTION_NAMES_LOGICAL.IFNA],[Ifs,FUNCTION_NAMES_LOGICAL.IFS],[Lambda,FUNCTION_NAMES_LOGICAL.LAMBDA],[Let,FUNCTION_NAMES_LOGICAL.LET],[Makearray,FUNCTION_NAMES_LOGICAL.MAKEARRAY],[Not,FUNCTION_NAMES_LOGICAL.NOT],[Or,FUNCTION_NAMES_LOGICAL.OR],[Switch,FUNCTION_NAMES_LOGICAL.SWITCH],[True,FUNCTION_NAMES_LOGICAL.TRUE],[Xor,FUNCTION_NAMES_LOGICAL.XOR]];var FUNCTION_NAMES_LOOKUP=(FUNCTION_NAMES_LOOKUP2=>(FUNCTION_NAMES_LOOKUP2.ADDRESS="ADDRESS",FUNCTION_NAMES_LOOKUP2.AREAS="AREAS",FUNCTION_NAMES_LOOKUP2.CHOOSE="CHOOSE",FUNCTION_NAMES_LOOKUP2.CHOOSECOLS="CHOOSECOLS",FUNCTION_NAMES_LOOKUP2.CHOOSEROWS="CHOOSEROWS",FUNCTION_NAMES_LOOKUP2.COLUMN="COLUMN",FUNCTION_NAMES_LOOKUP2.COLUMNS="COLUMNS",FUNCTION_NAMES_LOOKUP2.DROP="DROP",FUNCTION_NAMES_LOOKUP2.EXPAND="EXPAND",FUNCTION_NAMES_LOOKUP2.FILTER="FILTER",FUNCTION_NAMES_LOOKUP2.FORMULATEXT="FORMULATEXT",FUNCTION_NAMES_LOOKUP2.GETPIVOTDATA="GETPIVOTDATA",FUNCTION_NAMES_LOOKUP2.HLOOKUP="HLOOKUP",FUNCTION_NAMES_LOOKUP2.HSTACK="HSTACK",FUNCTION_NAMES_LOOKUP2.HYPERLINK="HYPERLINK",FUNCTION_NAMES_LOOKUP2.IMAGE="IMAGE",FUNCTION_NAMES_LOOKUP2.INDEX="INDEX",FUNCTION_NAMES_LOOKUP2.INDIRECT="INDIRECT",FUNCTION_NAMES_LOOKUP2.LOOKUP="LOOKUP",FUNCTION_NAMES_LOOKUP2.MATCH="MATCH",FUNCTION_NAMES_LOOKUP2.OFFSET="OFFSET",FUNCTION_NAMES_LOOKUP2.ROW="ROW",FUNCTION_NAMES_LOOKUP2.ROWS="ROWS",FUNCTION_NAMES_LOOKUP2.RTD="RTD",FUNCTION_NAMES_LOOKUP2.SORT="SORT",FUNCTION_NAMES_LOOKUP2.SORTBY="SORTBY",FUNCTION_NAMES_LOOKUP2.TAKE="TAKE",FUNCTION_NAMES_LOOKUP2.TOCOL="TOCOL",FUNCTION_NAMES_LOOKUP2.TOROW="TOROW",FUNCTION_NAMES_LOOKUP2.TRANSPOSE="TRANSPOSE",FUNCTION_NAMES_LOOKUP2.UNIQUE="UNIQUE",FUNCTION_NAMES_LOOKUP2.VLOOKUP="VLOOKUP",FUNCTION_NAMES_LOOKUP2.VSTACK="VSTACK",FUNCTION_NAMES_LOOKUP2.WRAPCOLS="WRAPCOLS",FUNCTION_NAMES_LOOKUP2.WRAPROWS="WRAPROWS",FUNCTION_NAMES_LOOKUP2.XLOOKUP="XLOOKUP",FUNCTION_NAMES_LOOKUP2.XMATCH="XMATCH",FUNCTION_NAMES_LOOKUP2))(FUNCTION_NAMES_LOOKUP||{});const _Address=class _Address extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",5)}calculate(rowNumber,columnNumber,absNumber,a1,sheetText){if(rowNumber.isError())return rowNumber;if(columnNumber.isError())return columnNumber;if(absNumber!=null&&absNumber.isError())return absNumber;if(a1!=null&&a1.isError())return a1;if(sheetText!=null&&sheetText.isError())return sheetText;const _absNumber=absNumber!=null?absNumber:NumberValueObject.create(1),_a1=a1!=null?a1:BooleanValueObject.create(!0),_sheetText=sheetText!=null?sheetText:StringValueObject.create(""),maxRowLength=Math.max(rowNumber.isArray()?rowNumber.getRowCount():1,columnNumber.isArray()?columnNumber.getRowCount():1,_absNumber.isArray()?_absNumber.getRowCount():1,_a1.isArray()?_a1.getRowCount():1,_sheetText.isArray()?_sheetText.getRowCount():1),maxColumnLength=Math.max(rowNumber.isArray()?rowNumber.getColumnCount():1,columnNumber.isArray()?columnNumber.getColumnCount():1,_absNumber.isArray()?_absNumber.getColumnCount():1,_a1.isArray()?_a1.getColumnCount():1,_sheetText.isArray()?_sheetText.getColumnCount():1),rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,rowNumber,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,columnNumber,ErrorValueObject.create(ErrorType$1.NA)),absNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_absNumber,ErrorValueObject.create(ErrorType$1.NA)),a1Array=expandArrayValueObject(maxRowLength,maxColumnLength,_a1,ErrorValueObject.create(ErrorType$1.NA)),sheetTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,_sheetText,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),absNumValue=absNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),a1Value=a1Array.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),sheetTextValue=sheetTextArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA);return rowNumValue.isError()?rowNumValue:columnNumValue.isError()?columnNumValue:absNumValue.isError()?absNumValue:a1Value.isError()?a1Value:sheetTextValue.isError()?sheetTextValue:this._calculateSingleCell(rowNumValue,columnNumValue,absNumValue,a1Value,sheetTextValue)})}_calculateSingleCell(rowNumber,columnNumber,absNumber,a1,sheetText){const row=Number.parseInt(`${Number(rowNumber.getValue())-1}`),column=Number.parseInt(`${Number(columnNumber.getValue())-1}`),absNumberValue=Number.parseInt(`${Number(absNumber.getValue())}`);if(Number.isNaN(row)||Number.isNaN(column)||Number.isNaN(absNumberValue)||absNumberValue<1||absNumberValue>4)return ErrorValueObject.create(ErrorType$1.VALUE);const absType=transformAbsoluteRefType(absNumberValue),a1Value=this.getZeroOrOneByOneDefault(a1),sheetTextValue=`${sheetText.getValue()}`,sheetName=needsQuoting(sheetTextValue)?`'${sheetTextValue}'`:sheetTextValue,range={startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absType,endAbsoluteRefType:absType},rangeString=a1&&!a1Value?serializeRangeToR1C1(range):serializeRange(range);return StringValueObject.create(sheetName!==""?`${sheetName}!${rangeString}`:rangeString)}};__name(_Address,"Address");let Address=_Address;function transformAbsoluteRefType(number){switch(number){case 1:return core.AbsoluteRefType.ALL;case 2:return core.AbsoluteRefType.ROW;case 3:return core.AbsoluteRefType.COLUMN;case 4:return core.AbsoluteRefType.NONE;default:return core.AbsoluteRefType.ALL}}__name(transformAbsoluteRefType,"transformAbsoluteRefType");const _Areas=class _Areas extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){return reference.isReferenceObject()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Areas,"Areas");let Areas=_Areas;const _Choose=class _Choose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(indexNum,...variants){let _indexNum=indexNum;if(_indexNum.isError())return _indexNum;if(_indexNum.isReferenceObject()&&(_indexNum=_indexNum.toArrayValueObject()),!_indexNum.isArray()){const index=_indexNum.convertToNumberObjectValue();return index.isError()?index:variants[Math.trunc(+index.getValue())-1]||ErrorValueObject.create(ErrorType$1.VALUE)}let maxRowLength=_indexNum.isArray()?_indexNum.getRowCount():1,maxColumnLength=_indexNum.isArray()?_indexNum.getColumnCount():1;variants.forEach((variant,i)=>{if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});const indexNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_indexNum,ErrorValueObject.create(ErrorType$1.NA)),arrayValueObjectList=variants.map(variant=>{let _variant=variant;return _variant.isReferenceObject()&&(_variant=_variant.toArrayValueObject()),expandArrayValueObject(maxRowLength,maxColumnLength,_variant,ErrorValueObject.create(ErrorType$1.NA))});return indexNumArray.map((indexNumValue,row,column)=>{if(indexNumValue.isError())return indexNumValue;const index=indexNumValue.convertToNumberObjectValue();if(index.isError())return index;const arrayValueObject=arrayValueObjectList[Math.trunc(+index.getValue())-1];let valueObject=(arrayValueObject==null?void 0:arrayValueObject.get(row,column))||ErrorValueObject.create(ErrorType$1.VALUE);return valueObject!=null&&valueObject.isNull()&&(valueObject=NumberValueObject.create(0)),valueObject})}};__name(_Choose,"Choose");let Choose=_Choose;const _Choosecols=class _Choosecols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchColArray=array;arrayColumnCount>1&&(variantValue<0?searchColArray=array.slice(void 0,[variantValue+arrayColumnCount,variantValue+1+arrayColumnCount]):searchColArray=array.slice(void 0,[variantValue-1,variantValue]));for(let r=0;r<arrayRowCount;r++)result[r]||(result[r]=[]),array.isArray()?result[r].push(searchColArray.get(r,0)):result[r].push(array)}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Choosecols,"Choosecols");let Choosecols=_Choosecols;const _Chooserows=class _Chooserows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchRowArray=array;arrayRowCount>1&&(variantValue<0?searchRowArray=array.slice([variantValue+arrayRowCount,variantValue+1+arrayRowCount]):searchRowArray=array.slice([variantValue-1,variantValue])),array.isArray()?result.push(searchRowArray.getArrayValue()[0]):result.push([array])}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Chooserows,"Chooserows");let Chooserows=_Chooserows;const _Column=class _Column extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.column+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const column=reference.getCurrentColumn(),columnCount=reference.getColumnCount(),calculateValueList=[];for(let i=0;i<columnCount;i++)calculateValueList.push(NumberValueObject.create(column+i+1));const arrayValueObjectData={calculateValueList:[calculateValueList],rowCount:1,columnCount,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Column,"Column");let Column=_Column;const _Columns=class _Columns extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const columnCount=reference.getColumnCount();return NumberValueObject.create(columnCount)}};__name(_Columns,"Columns");let Columns=_Columns;const _Filter=class _Filter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,include,ifEmpty){const _ifEmpty=ifEmpty!=null?ifEmpty:ErrorValueObject.create(ErrorType$1.CALC);if(array.isError())return array;if(include.isError())return include;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,includeRowCount=include.isArray()?include.getRowCount():1,includeColumnCount=include.isArray()?include.getColumnCount():1;return includeRowCount>1&&includeColumnCount>1||includeRowCount===1&&includeColumnCount!==arrayColumnCount||includeColumnCount===1&&includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):arrayRowCount===1&&arrayColumnCount===1?this._getResultArrayByR1C1(array,include,_ifEmpty):includeRowCount===1?includeColumnCount!==arrayColumnCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):includeColumnCount===1?includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):_ifEmpty}_getResultArrayByR1C1(array,include,ifEmpty){let _array=array,_include=include;return _array.isArray()&&(_array=_array.get(0,0)),_include.isArray()&&(_include=_include.get(0,0)),_include.isString()&&(_include=_include.convertToNumberObjectValue()),_include.isError()?_include:+_include.getValue()?_array:ifEmpty}_getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let c=0;c<arrayColumnCount;c++){let includeObject=include.get(0,c);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(+includeObject.getValue())for(let r=0;r<arrayRowCount;r++){resultArray[r]||(resultArray[r]=[]);const arrayObject=array.get(r,c);resultArray[r].push(arrayObject)}}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let r=0;r<arrayRowCount;r++){let includeObject=include.get(r,0);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(!+includeObject.getValue())continue;const row=[];for(let c=0;c<arrayColumnCount;c++){const arrayObject=array.get(r,c);row.push(arrayObject)}resultArray.push(row)}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Filter,"Filter");let Filter=_Filter;const _Hlookup=class _Hlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,rowIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!tableArray.isArray()||rowIndexNum.isError()||rangeLookup!=null&&rangeLookup.isError())return ErrorValueObject.create(ErrorType$1.NA);const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);const rowIndexNumValue=this.getIndexNumValue(rowIndexNum);if(rowIndexNumValue instanceof ErrorValueObject)return rowIndexNumValue;const searchArray=tableArray.slice([0,1]),resultArray=tableArray.slice([rowIndexNumValue-1,rowIndexNumValue]);return searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.REF):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,searchArray,resultArray,rangeLookupValue)):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Hlookup,"Hlookup");let Hlookup=_Hlookup;const _Hstack=class _Hstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxRowLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getRowCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<maxRowLength;r++){result[r]||(result[r]=[]);for(let c=0;c<columnCount;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),r>rowCount-1||!singleObject?result[r].push(ErrorValueObject.create(ErrorType$1.NA)):result[r].push(singleObject)}}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Hstack,"Hstack");let Hstack=_Hstack;const _Indirect=class _Indirect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}isAddress(){return!0}calculate(refText,a1){if(refText.isError())return refText;if(a1!=null&&a1.isError())return a1;let a1Value=this.getZeroOrOneByOneDefault(a1);a1Value==null&&(a1Value=1);let _refText=refText;if(refText.isArray()){const rowCount=refText.getRowCount(),columnCount=refText.getColumnCount();if(rowCount>1||columnCount>1)return refText.map(()=>ErrorValueObject.create(ErrorType$1.VALUE));_refText=refText.getFirstCell()}return this._handleSingleObject(_refText,a1Value)}_handleSingleObject(refTextObject,a1Value){const refTextValue=`${refTextObject.getValue()}`;if(refTextValue.trim()==="")return ErrorValueObject.create(ErrorType$1.REF);const refTextV=this._convertToDefinedName(refTextValue);if(a1Value===0){const gridRange2=deserializeRangeForR1C1(refTextV),{range:range2,sheetName:sheetName2,unitId:unitId2}=gridRange2,rangeReferenceObject2=new RangeReferenceObject(range2);return rangeReferenceObject2.setForcedUnitIdDirect(unitId2),rangeReferenceObject2.setForcedSheetName(sheetName2),this._setDefault(rangeReferenceObject2)}if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(refTextV))return this._setDefault(new CellReferenceObject(refTextV));if(new RegExp(REFERENCE_REGEX_ROW).test(refTextV))return this._setDefault(new RowReferenceObject(refTextV));if(new RegExp(REFERENCE_REGEX_COLUMN).test(refTextV))return this._setDefault(new ColumnReferenceObject(refTextV));const gridRange=deserializeRangeWithSheet(refTextV),{range,sheetName,unitId}=gridRange;if(Number.isNaN(range.startRow)||range.endRow+1>1048576||Number.isNaN(range.startColumn)||range.endColumn+1>16384)return ErrorValueObject.create(ErrorType$1.REF);const rangeReferenceObject=new RangeReferenceObject(range);return rangeReferenceObject.setForcedUnitIdDirect(unitId),rangeReferenceObject.setForcedSheetName(sheetName),this._setDefault(rangeReferenceObject)}_setDefault(object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object)}_convertToDefinedName(refText){const definedName=this.getDefinedName(refText);if(definedName==null)return refText;const formulaOrRefString=definedName.formulaOrRefString;return formulaOrRefString==null?refText:formulaOrRefString.startsWith(operatorToken.EQUALS)?formulaOrRefString.slice(1):formulaOrRefString}};__name(_Indirect,"Indirect");let Indirect=_Indirect;const _Lookup=class _Lookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsExpandParams",!0)}calculate(lookupValue,lookupVectorOrArray,resultVector){return lookupValue.isError()?lookupValue:lookupVectorOrArray.isError()?ErrorValueObject.create(ErrorType$1.REF):lookupVectorOrArray.isArray()?resultVector!=null&&resultVector.isError()?resultVector:lookupVectorOrArray.getColumnCount()===1||lookupVectorOrArray.getRowCount()===1?resultVector!=null&&!resultVector.isArray()?ErrorValueObject.create(ErrorType$1.REF):this._handleVector(lookupValue,lookupVectorOrArray,resultVector):this._handleArray(lookupValue,lookupVectorOrArray):ErrorValueObject.create(ErrorType$1.VALUE)}_handleVector(lookupValue,lookupVector,resultVector){let _resultVector=resultVector;if(_resultVector==null)_resultVector=lookupVector;else if(_resultVector.getRowCount()!==lookupVector.getRowCount()||_resultVector.getColumnCount()!==lookupVector.getColumnCount())return ErrorValueObject.create(ErrorType$1.REF);return lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,lookupVector,_resultVector)):this.binarySearch(lookupValue,lookupVector,_resultVector)}_handleArray(lookupValue,lookupArray){const rowCount=lookupArray.getRowCount(),columnCount=lookupArray.getColumnCount();let searchArray,resultArray;return columnCount>rowCount?(searchArray=lookupArray.slice([0,1]),resultArray=lookupArray.slice([rowCount-1,rowCount])):(searchArray=lookupArray.slice(void 0,[0,1]),resultArray=lookupArray.slice(void 0,[columnCount-1,columnCount])),searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,searchArray,resultArray)):this.binarySearch(lookupValue,searchArray,resultArray)}};__name(_Lookup,"Lookup");let Lookup=_Lookup;const _Match=class _Match extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(lookupValue,lookupArray,matchType){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||matchType!=null&&matchType.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchTypeValue=this.getMatchTypeValue(matchType);return matchTypeValue==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchTypeValue)):this._handleSingleObject(lookupValue,lookupArray,matchTypeValue)}_handleSingleObject(value,searchArray,matchTypeValue){const searchType=this._getSearchModeValue(matchTypeValue),result=searchArray.orderSearch(value,searchType);if(result==null)return ErrorValueObject.create(ErrorType$1.NA);if(result instanceof ErrorValueObject)return result;const resultNumber=searchArray.getRowCount()===1?result.column+1:result.row+1;return NumberValueObject.create(resultNumber)}_getSearchModeValue(searchModeValue){switch(searchModeValue){case 1:return ArrayOrderSearchType.MIN;case 0:return ArrayOrderSearchType.NORMAL;case-1:return ArrayOrderSearchType.MAX}}};__name(_Match,"Match");let Match=_Match;const _Offset=class _Offset extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(reference,rows,columns,height,width){if(reference.isError())return reference;if(rows.isError())return rows;if(columns.isError())return columns;if(height!=null&&height.isError())return height;if(width!=null&&width.isError())return width;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCount=reference.getRowCount(),columnCount=reference.getColumnCount();let _rows=rows;_rows.isReferenceObject()&&(_rows=_rows.toArrayValueObject());let _columns=columns;_columns.isReferenceObject()&&(_columns=_columns.toArrayValueObject());let _height=height;_height?_height.isReferenceObject()&&(_height=_height.toArrayValueObject()):_height=NumberValueObject.create(rowCount);let _width=width;_width?_width.isReferenceObject()&&(_width=_width.toArrayValueObject()):_width=NumberValueObject.create(columnCount);const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_height.isArray()?_height.getRowCount():1,_width.isArray()?_width.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_height.isArray()?_height.getColumnCount():1,_width.isArray()?_width.getColumnCount():1);if(_rows=_rows,_columns=_columns,_height=_height,_width=_width,maxRowLength===1&&maxColumnLength===1)return this._handleSingleObject(reference,_rows,_columns,_height,_width);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),heightArray=expandArrayValueObject(maxRowLength,maxColumnLength,_height,ErrorValueObject.create(ErrorType$1.NA)),widthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_width,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.mapValue((rowsValue,rowIndex,columnIndex)=>{const columnsValue=columnsArray.get(rowIndex,columnIndex),heightValue=heightArray.get(rowIndex,columnIndex),widthValue=widthArray.get(rowIndex,columnIndex);return rowsValue.isError()?rowsValue:columnsValue.isError()?columnsValue:heightValue.isError()?heightValue:widthValue.isError()?widthValue:this._handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,!0)})}_handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,isReportError=!1){const{startRow:referenceStartRow,startColumn:referenceStartColumn}=reference.getRangePosition(),rowOffset=this.getIndexNumValue(rowsValue),columnOffset=this.getIndexNumValue(columnsValue);if(typeof rowOffset!="number"||typeof columnOffset!="number")return ErrorValueObject.create(ErrorType$1.VALUE);const targetRow=referenceStartRow+rowOffset,targetColumn=referenceStartColumn+columnOffset;if(targetRow<0||targetColumn<0)return ErrorValueObject.create(ErrorType$1.REF);const heightCount=this.getIndexNumValue(heightValue),widthCount=this.getIndexNumValue(widthValue);if(typeof heightCount!="number"||typeof widthCount!="number")return ErrorValueObject.create(ErrorType$1.VALUE);if(heightCount===0||widthCount===0)return ErrorValueObject.create(ErrorType$1.REF);const targetRowWithHeight=heightCount>0?targetRow+heightCount-1:targetRow+heightCount+1,targetColumnWithWidth=widthCount>0?targetColumn+widthCount-1:targetColumn+widthCount+1;if(targetRowWithHeight<0||targetColumnWithWidth<0)return ErrorValueObject.create(ErrorType$1.REF);if(isReportError)return ErrorValueObject.create(ErrorType$1.VALUE);const startRow=targetRow<targetRowWithHeight?targetRow:targetRowWithHeight,startColumn=targetColumn<targetColumnWithWidth?targetColumn:targetColumnWithWidth,endRow=targetRow>targetRowWithHeight?targetRow:targetRowWithHeight,endColumn=targetColumn>targetColumnWithWidth?targetColumn:targetColumnWithWidth,range={startRow,startColumn,endRow,endColumn};return this.createReferenceObject(reference,range)}};__name(_Offset,"Offset");let Offset=_Offset;const _Row=class _Row extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.row+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const row=reference.getCurrentRow(),rowCount=reference.getRowCount(),calculateValueList=[];for(let i=0;i<rowCount;i++)calculateValueList.push([NumberValueObject.create(row+i+1)]);const arrayValueObjectData={calculateValueList,rowCount,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Row,"Row");let Row=_Row;const _Rows=class _Rows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const rowCount=reference.getRowCount();return NumberValueObject.create(rowCount)}};__name(_Rows,"Rows");let Rows=_Rows;const _Sort=class _Sort extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(array,sortIndex,sortOrder,byCol){const _sortIndex=sortIndex!=null?sortIndex:NumberValueObject.create(1),_sortOrder=sortOrder!=null?sortOrder:NumberValueObject.create(1),_byCol=byCol!=null?byCol:BooleanValueObject.create(!1);if(_byCol.isArray()){const byColRowCount=_byCol.getRowCount(),byColColumnCount=_byCol.getColumnCount();if(byColRowCount===1&&byColColumnCount===1){const byColObject=_byCol.get(0,0);return this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject)}return _byCol.map(byColObject=>{const result=this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject);return result.isArray()?result.get(0,0):result})}return this._handleSingleObject(array,_sortIndex,_sortOrder,_byCol)}_handleSingleObject(array,sortIndex,sortOrder,byCol){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,_sortIndex=this._checkArrayError(sortIndex);if(_sortIndex.isError())return _sortIndex;const sortIndexValue=Math.floor(+_sortIndex.getValue());if(sortIndexValue<1)return ErrorValueObject.create(ErrorType$1.VALUE);const _sortOrder=this._checkArrayError(sortOrder);if(_sortOrder.isError())return _sortOrder;const sortOrderValue=Math.floor(+_sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1)return ErrorValueObject.create(ErrorType$1.VALUE);let _byCol=byCol;if(_byCol.isString()&&(_byCol=_byCol.convertToNumberObjectValue()),_byCol.isError())return _byCol;if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1)return array;const byColValue=+_byCol.getValue();return this._getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant}_getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount){if(byColValue){if(sortIndexValue>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.transpose().getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(sortIndexValue>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(sortIndex,sortOrder=1){const compare=getCompare();return sortOrder===1?this._sortAsc(sortIndex,compare):this._sortDesc(sortIndex,compare)}_sortAsc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}}_sortDesc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}}};__name(_Sort,"Sort");let Sort=_Sort;const _Sortby=class _Sortby extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){variants.length===1&&variants.push(NumberValueObject.create(1));const variantsError=this._getVariantsError(array,...variants),{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants);if(variantsError.isError()){const expandArray=expandArrayValueObject(maxRowLength,maxColumnLength,variantsError);return maxRowLength===1&&maxColumnLength===1?expandArray.get(0,0):expandArray}const _variants=variants.map((variant,index)=>index%2===0?variant:expandArrayValueObject(maxRowLength,maxColumnLength,variant,ErrorValueObject.create(ErrorType$1.NA))),resultArray=this._getResultArray(array,_variants,maxRowLength,maxColumnLength);return maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(array,...variants){if(array.isError())return array;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant}if(variants.length<2||variants.length%2!==0)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1;if((byArray1RowCount>1||byArray1ColumnCount>1)&&(byArray1RowCount>1&&byArray1ColumnCount>1||byArray1RowCount===1&&byArray1ColumnCount!==arrayColumnCount||byArray1ColumnCount===1&&byArray1RowCount!==arrayRowCount))return ErrorValueObject.create(ErrorType$1.VALUE);for(let i=2;i<variants.length;i++){if(i%2===1)continue;const byArrayRowCount=variants[i].isArray()?variants[i].getRowCount():1,byArrayColumnCount=variants[i].isArray()?variants[i].getColumnCount():1;if(byArrayRowCount!==byArray1RowCount||byArrayColumnCount!==byArray1ColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE)}return BooleanValueObject.create(!0)}_getResultArray(array,variants,maxRowLength,maxColumnLength){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1,resultArray=[];for(let r=0;r<maxRowLength;r++){resultArray[r]=[];for(let c=0;c<maxColumnLength;c++){const{isError,errorObject,byArrays,sortOrders}=this._getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount);if(isError){resultArray[r].push(errorObject);continue}if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1){resultArray[r].push(array);continue}let arrayValue=array.getArrayValue();byArray1RowCount===1&&byArray1ColumnCount===1||(byArray1RowCount===1?(arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayRowCount,sortOrders)),arrayValue=this._transposeArray(arrayValue).slice(0,arrayRowCount)):byArray1ColumnCount===1&&(arrayValue=this._transposeArray(arrayValue),arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayColumnCount,sortOrders)),arrayValue=arrayValue.map(row=>row.slice(0,arrayColumnCount))));const result=ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(maxRowLength>1||maxColumnLength>1){resultArray[r].push(result.get(0,0));continue}resultArray[r].push(result)}}return resultArray}_getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount){const byArrays=[],sortOrders=[];let isError=!1,errorObject=null;for(let i=0;i<variants.length;i++){if(i%2===1)continue;const byArray=variants[i];let sortOrder=variants[i+1].get(r,c);if(sortOrder.isString()&&(sortOrder=sortOrder.convertToNumberObjectValue()),sortOrder.isError()){isError=!0,errorObject=sortOrder;break}const sortOrderValue=Math.floor(+sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1){isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);break}if(sortOrders.push(sortOrderValue),byArray.isArray()){let byArrayValue=byArray.getArrayValue();byArray1ColumnCount===1&&(byArrayValue=this._transposeArray(byArrayValue)),byArrays.push(byArrayValue[0])}else byArrays.push([byArray])}return{isError,errorObject,byArrays,sortOrders}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_sort(sortIndex,sortOrders){const compare=getCompare();return(a,b)=>{let columnA=a[sortIndex],columnB=b[sortIndex],result=this._compare(columnA,columnB,sortOrders[0],compare);if(result===0&&sortOrders.length>1){for(let i=1;i<sortOrders.length;i++)if(columnA=a[sortIndex+i],columnB=b[sortIndex+i],result=this._compare(columnA,columnB,sortOrders[i],compare),result!==0)return result}return result}}_compare(columnA,columnB,sortOrder,compare){return sortOrder===1?this._asc(columnA,columnB,compare):this._desc(columnA,columnB,compare)}_asc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}_desc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}};__name(_Sortby,"Sortby");let Sortby=_Sortby;const _Transpose=class _Transpose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){if(array.isError())return array;if(array.isArray()){const rowCount=array.getRowCount(),columnCount=array.getColumnCount();return rowCount===1&&columnCount===1?array.get(0,0):array.transpose()}return array}};__name(_Transpose,"Transpose");let Transpose=_Transpose;const _Unique=class _Unique extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,byCol,exactlyOnce){const _byCol=byCol!=null?byCol:BooleanValueObject.create(!1),_exactlyOnce=exactlyOnce!=null?exactlyOnce:BooleanValueObject.create(!1),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(_byCol.isArray()?_byCol.getRowCount():1,_exactlyOnce.isArray()?_exactlyOnce.getRowCount():1),maxColumnLength=Math.max(_byCol.isArray()?_byCol.getColumnCount():1,_exactlyOnce.isArray()?_exactlyOnce.getColumnCount():1),byColArray=expandArrayValueObject(maxRowLength,maxColumnLength,_byCol,ErrorValueObject.create(ErrorType$1.NA)),exactlyOnceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_exactlyOnce,ErrorValueObject.create(ErrorType$1.NA)),resultArray=byColArray.map((byColObject,rowIndex,columnIndex)=>{let _byColObject=byColObject,exactlyOnceObject=exactlyOnceArray.get(rowIndex,columnIndex);if(array.isError())return array;if(_byColObject.isString()&&(_byColObject=_byColObject.convertToNumberObjectValue()),_byColObject.isError())return _byColObject;if(exactlyOnceObject.isString()&&(exactlyOnceObject=exactlyOnceObject.convertToNumberObjectValue()),exactlyOnceObject.isError())return exactlyOnceObject;const byColValue=+_byColObject.getValue(),exactlyOnceValue=+exactlyOnceObject.getValue();let result;return!byColValue&&arrayRowCount===1||byColValue&&arrayColumnCount===1?result=array:result=this._getResult(array,byColValue,exactlyOnceValue),(maxRowLength>1||maxColumnLength>1)&&(result!=null&&result.isArray())?result.get(0,0):result});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(array,byColValue,exactlyOnceValue){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let arrayValue=array.getArrayValue(),arrayRows=arrayRowCount,arrayColumns=arrayColumnCount;byColValue&&(arrayValue=this._transposeArray(arrayValue),arrayRows=arrayColumnCount,arrayColumns=arrayRowCount);const repeatRows=this._getRepeatRows(arrayValue,arrayRows,arrayColumns);if(repeatRows.length>0){const spliceRows=[];repeatRows.forEach(rows=>{rows.forEach((r,index)=>{(index!==0||exactlyOnceValue)&&spliceRows.push(r)})}),arrayValue=arrayValue.filter((row,rowIndex)=>!spliceRows.includes(rowIndex))}return arrayValue.length===0?ErrorValueObject.create(ErrorType$1.CALC):(byColValue&&(arrayValue=this._transposeArray(arrayValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(arrayValue,arrayRows,arrayColumns){let repeatRows=[];for(let c=0;c<arrayColumns;c++)if(c===0){const objects=new Array(arrayRows).fill(null).map((item,index)=>({r:index,valueObject:arrayValue[index][c]}));repeatRows=this._getRepeatRowsByObjects(objects)}else{if(repeatRows.length===0)break;let newRepeatRows=[];repeatRows.forEach(item=>{const objects=item.map(r=>({r,valueObject:arrayValue[r][c]})),_repeatRows=this._getRepeatRowsByObjects(objects);newRepeatRows=newRepeatRows.concat(_repeatRows)}),repeatRows=newRepeatRows}return repeatRows}_getRepeatRowsByObjects(objects){const valueMap=new Map;return objects.forEach(item=>{const r=item.r,valueObject=item.valueObject;let value=valueObject.getValue();if(valueObject.isNull()?value=null:valueObject.isString()&&core.isRealNum(value)&&(value=+value),!valueMap.has(value))valueMap.set(value,[r]);else{const valueMapItem=valueMap.get(value);valueMapItem.push(r),valueMap.set(value,valueMapItem)}}),Array.from(valueMap.values()).filter(item=>item.length>1)}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}};__name(_Unique,"Unique");let Unique=_Unique;const _Vlookup=class _Vlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,colIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return tableArray;if(!tableArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);if(colIndexNum.isError())return colIndexNum;if(rangeLookup!=null&&rangeLookup.isError())return rangeLookup;const _rangeLookup=rangeLookup!=null?rangeLookup:BooleanValueObject.create(!0);return isSingleValueObject(lookupValue)&&isSingleValueObject(_rangeLookup)&&colIndexNum.isArray()?this._handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup):this._handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup)}_handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const _lookupValue=lookupValue.isArray()?lookupValue.getFirstCell():lookupValue,rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);let errorValue;const result=[];return colIndexNum.iterator((colIndexNumValueObject,rowIndex,columnIndex)=>{if(colIndexNumValueObject==null)return errorValue=ErrorValueObject.create(ErrorType$1.VALUE),!1;const searchObject=this._handleTableArray(_lookupValue,tableArray,colIndexNumValueObject,rangeLookupValue);if(searchObject.isError())return errorValue=searchObject,!1;result[rowIndex]===void 0&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=searchObject}),errorValue||createNewArray(result,result.length,result[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const maxRowLength=Math.max(lookupValue.isArray()?lookupValue.getRowCount():1,rangeLookup.isArray()?rangeLookup.getRowCount():1),maxColumnLength=Math.max(lookupValue.isArray()?lookupValue.getColumnCount():1,rangeLookup.isArray()?rangeLookup.getColumnCount():1),lookupValueArray=expandArrayValueObject(maxRowLength,maxColumnLength,lookupValue),rangeLookupArray=expandArrayValueObject(maxRowLength,maxColumnLength,rangeLookup);return lookupValueArray.map((lookupValue2,rowIndex,columnIndex)=>{if(lookupValue2.isError())return lookupValue2;const rangeLookupValueObject=rangeLookupArray.get(rowIndex,columnIndex);if(rangeLookupValueObject==null)return ErrorValueObject.create(ErrorType$1.VALUE);if(rangeLookupValueObject.isError())return rangeLookupValueObject;const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookupValueObject);return rangeLookupValue==null?ErrorValueObject.create(ErrorType$1.VALUE):this._handleTableArray(lookupValue2,tableArray,colIndexNum,rangeLookupValue)})}_handleTableArray(lookupValue,tableArray,colIndexNum,rangeLookupValue){const colIndexNumValue=this.getIndexNumValue(colIndexNum);if(colIndexNumValue instanceof ErrorValueObject)return colIndexNumValue;const searchArray=tableArray.slice(void 0,[0,1]);if(searchArray==null)return ErrorValueObject.create(ErrorType$1.VALUE);const resultArray=tableArray.slice(void 0,[colIndexNumValue-1,colIndexNumValue]);return resultArray==null?ErrorValueObject.create(ErrorType$1.REF):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Vlookup,"Vlookup");let Vlookup=_Vlookup;const _Vstack=class _Vstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxColumnLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getColumnCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<maxColumnLength;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),c>columnCount-1||!singleObject?row.push(ErrorValueObject.create(ErrorType$1.NA)):row.push(singleObject)}result.push(row)}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Vstack,"Vstack");let Vstack=_Vstack;const _Xlookup=class _Xlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(lookupValue,lookupArray,returnArray,ifNotFound,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError()||returnArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray()||!returnArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount(),rowCountReturn=returnArray.getRowCount(),columnCountReturn=returnArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||rowCountLookup!==rowCountReturn&&columnCountLookup!==columnCountReturn)return ErrorValueObject.create(ErrorType$1.VALUE);if(ifNotFound!=null&&ifNotFound.isError()||matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const _ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:this._getResult(lookupValue,lookupArray,returnArray,_ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn)}_getResult(lookupValue,lookupArray,returnArray,ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn){if(lookupValue.isArray()){let resultArray2;return rowCountLookup===1?resultArray2=returnArray.slice([0,1]):resultArray2=returnArray.slice(void 0,[0,1]),resultArray2==null?ErrorValueObject.create(ErrorType$1.NA):lookupValue.map(value=>{const result=this._handleSingleObject(value,lookupArray,resultArray2,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result})}if(columnCountLookup===columnCountReturn&&rowCountLookup===rowCountReturn){const result=this._handleSingleObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result}let axis=0;columnCountLookup===columnCountReturn&&(axis=1);const resultArray=this._handleExpandObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue,axis);return resultArray==null?ErrorValueObject.create(ErrorType$1.NA):resultArray}_handleExpandObject(value,searchArray,resultArray,matchModeValue,searchModeValue,axis=0){return(searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2?this.binarySearchExpand(value,searchArray,resultArray,axis,this._getSearchModeValue(searchModeValue)):matchModeValue===2?this.fuzzySearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis):matchModeValue===-1||matchModeValue===1?this.orderSearchExpand(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1,axis):this.equalSearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis)}_handleSingleObject(value,searchArray,resultArray,matchModeValue,searchModeValue){return(searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2?this.binarySearch(value,searchArray,resultArray,this._getSearchModeValue(searchModeValue)):matchModeValue===2?this.fuzzySearch(value,searchArray,resultArray,searchModeValue!==-1):matchModeValue===-1||matchModeValue===1?this.orderSearch(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1):this.equalSearch(value,searchArray,resultArray,searchModeValue!==-1)}_getSearchModeValue(searchModeValue){return searchModeValue===-2?ArrayBinarySearchType.MAX:ArrayBinarySearchType.MIN}};__name(_Xlookup,"Xlookup");let Xlookup=_Xlookup;const _Xmatch=class _Xmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(lookupValue,lookupArray,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1)return ErrorValueObject.create(ErrorType$1.VALUE);if(matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchModeValue,searchModeValue)):this._handleSingleObject(lookupValue,lookupArray,matchModeValue,searchModeValue)}_handleSingleObject(value,searchArray,matchModeValue,searchModeValue){let rowOrColumn;if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=this._getSearchModeValue(searchModeValue);rowOrColumn=searchArray.binarySearch(value,searchType)}else if(matchModeValue===2){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else if(matchModeValue===-1||matchModeValue===1){const position=searchArray.orderSearch(value,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);if(position instanceof ErrorValueObject)return position;rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else{const matchObject=searchArray.isEqual(value);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(rowOrColumn+1)}_getSearchModeValue(searchModeValue){return searchModeValue===-2?ArrayBinarySearchType.MAX:ArrayBinarySearchType.MIN}};__name(_Xmatch,"Xmatch");let Xmatch=_Xmatch;const _Index=class _Index extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4);__publicField(this,"needsReferenceObject",!0)}calculate(reference,rowNum,columnNum,areaNum){if(reference.isError())return reference;if(rowNum!=null&&rowNum.isError())return rowNum;if(columnNum!=null&&columnNum.isError())return columnNum;if(areaNum!=null&&areaNum.isError())return areaNum;let referenceRowCount=0,referenceColumnCount=0;if(reference.isValueObject())referenceRowCount=1,referenceColumnCount=1;else if(reference.isReferenceObject()){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();referenceRowCount=endRow-startRow+1,referenceColumnCount=endColumn-startColumn+1}else return ErrorValueObject.create(ErrorType$1.VALUE);let _rowNum,_columnNum;referenceRowCount===1&&referenceColumnCount>1&&columnNum==null?(_columnNum=rowNum!=null?rowNum:NumberValueObject.create(0),_rowNum=NumberValueObject.create(0)):(_rowNum=rowNum!=null?rowNum:NumberValueObject.create(0),_columnNum=columnNum!=null?columnNum:NumberValueObject.create(0));let _areaNum=areaNum!=null?areaNum:NumberValueObject.create(1);_rowNum.isReferenceObject()&&(_rowNum=_rowNum.toArrayValueObject()),_columnNum.isReferenceObject()&&(_columnNum=_columnNum.toArrayValueObject()),_areaNum.isReferenceObject()&&(_areaNum=_areaNum.toArrayValueObject());const maxRowLength=Math.max(_rowNum.isArray()?_rowNum.getRowCount():1,_columnNum.isArray()?_columnNum.getRowCount():1,_areaNum.isArray()?_areaNum.getRowCount():1),maxColumnLength=Math.max(_rowNum.isArray()?_rowNum.getColumnCount():1,_columnNum.isArray()?_columnNum.getColumnCount():1,_areaNum.isArray()?_areaNum.getColumnCount():1);if(_rowNum=_rowNum,_columnNum=_columnNum,_areaNum=_areaNum,maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(reference,_rowNum,_columnNum,_areaNum);{const rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rowNum,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columnNum,ErrorValueObject.create(ErrorType$1.NA)),areaNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_areaNum,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),areaNumValue=areaNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),result=this._calculateSingleCell(reference,rowNumValue,columnNumValue,areaNumValue);return result.isReferenceObject()?result.toArrayValueObject().getFirstCell():result})}}_calculateSingleCell(reference,rowNum,columnNum,areaNum){if(rowNum.isError())return rowNum;const rowNumberValue=this._getNumberValue(rowNum);if(rowNumberValue===void 0||rowNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(columnNum.isError())return columnNum;const columnNumberValue=this._getNumberValue(columnNum);if(columnNumberValue===void 0||columnNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(areaNum.isError())return areaNum;const areaNumberValue=this._getAreaNumberValue(areaNum);return areaNumberValue===void 0||areaNumberValue<1?ErrorValueObject.create(ErrorType$1.VALUE):reference.isReferenceObject()?this._getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue):reference.isValueObject()&&rowNumberValue===1&&columnNumberValue===1?reference:ErrorValueObject.create(ErrorType$1.REF)}_getNumberValue(numberValueObject){if(numberValueObject==null)return 0;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getAreaNumberValue(numberValueObject){if(numberValueObject==null)return 1;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();let referenceStartRow=0,referenceEndRow=0,referenceStartColumn=0,referenceEndColumn=0;if(rowNumberValue===0?(referenceStartRow=startRow,referenceEndRow=endRow):referenceStartRow=referenceEndRow=startRow+rowNumberValue-1,columnNumberValue===0?(referenceStartColumn=startColumn,referenceEndColumn=endColumn):referenceStartColumn=referenceEndColumn=startColumn+columnNumberValue-1,referenceStartRow>endRow||referenceStartColumn>endColumn)return ErrorValueObject.create(ErrorType$1.REF);const range={startRow:referenceStartRow,startColumn:referenceStartColumn,endRow:referenceEndRow,endColumn:referenceEndColumn};return this.createReferenceObject(reference,range)}};__name(_Index,"Index");let Index=_Index;const functionLookup=[[Address,FUNCTION_NAMES_LOOKUP.ADDRESS],[Areas,FUNCTION_NAMES_LOOKUP.AREAS],[Choose,FUNCTION_NAMES_LOOKUP.CHOOSE],[Choosecols,FUNCTION_NAMES_LOOKUP.CHOOSECOLS],[Chooserows,FUNCTION_NAMES_LOOKUP.CHOOSEROWS],[Column,FUNCTION_NAMES_LOOKUP.COLUMN],[Columns,FUNCTION_NAMES_LOOKUP.COLUMNS],[Filter,FUNCTION_NAMES_LOOKUP.FILTER],[Hlookup,FUNCTION_NAMES_LOOKUP.HLOOKUP],[Hstack,FUNCTION_NAMES_LOOKUP.HSTACK],[Index,FUNCTION_NAMES_LOOKUP.INDEX],[Indirect,FUNCTION_NAMES_LOOKUP.INDIRECT],[Lookup,FUNCTION_NAMES_LOOKUP.LOOKUP],[Match,FUNCTION_NAMES_LOOKUP.MATCH],[Offset,FUNCTION_NAMES_LOOKUP.OFFSET],[Row,FUNCTION_NAMES_LOOKUP.ROW],[Rows,FUNCTION_NAMES_LOOKUP.ROWS],[Sort,FUNCTION_NAMES_LOOKUP.SORT],[Sortby,FUNCTION_NAMES_LOOKUP.SORTBY],[Transpose,FUNCTION_NAMES_LOOKUP.TRANSPOSE],[Unique,FUNCTION_NAMES_LOOKUP.UNIQUE],[Vlookup,FUNCTION_NAMES_LOOKUP.VLOOKUP],[Vstack,FUNCTION_NAMES_LOOKUP.VSTACK],[Xlookup,FUNCTION_NAMES_LOOKUP.XLOOKUP],[Xmatch,FUNCTION_NAMES_LOOKUP.XMATCH]];var FUNCTION_NAMES_MATH=(FUNCTION_NAMES_MATH2=>(FUNCTION_NAMES_MATH2.ABS="ABS",FUNCTION_NAMES_MATH2.ACOS="ACOS",FUNCTION_NAMES_MATH2.ACOSH="ACOSH",FUNCTION_NAMES_MATH2.ACOT="ACOT",FUNCTION_NAMES_MATH2.ACOTH="ACOTH",FUNCTION_NAMES_MATH2.AGGREGATE="AGGREGATE",FUNCTION_NAMES_MATH2.ARABIC="ARABIC",FUNCTION_NAMES_MATH2.ASIN="ASIN",FUNCTION_NAMES_MATH2.ASINH="ASINH",FUNCTION_NAMES_MATH2.ATAN="ATAN",FUNCTION_NAMES_MATH2.ATAN2="ATAN2",FUNCTION_NAMES_MATH2.ATANH="ATANH",FUNCTION_NAMES_MATH2.BASE="BASE",FUNCTION_NAMES_MATH2.CEILING="CEILING",FUNCTION_NAMES_MATH2.CEILING_MATH="CEILING.MATH",FUNCTION_NAMES_MATH2.CEILING_PRECISE="CEILING.PRECISE",FUNCTION_NAMES_MATH2.COMBIN="COMBIN",FUNCTION_NAMES_MATH2.COMBINA="COMBINA",FUNCTION_NAMES_MATH2.COS="COS",FUNCTION_NAMES_MATH2.COSH="COSH",FUNCTION_NAMES_MATH2.COT="COT",FUNCTION_NAMES_MATH2.COTH="COTH",FUNCTION_NAMES_MATH2.CSC="CSC",FUNCTION_NAMES_MATH2.CSCH="CSCH",FUNCTION_NAMES_MATH2.DECIMAL="DECIMAL",FUNCTION_NAMES_MATH2.DEGREES="DEGREES",FUNCTION_NAMES_MATH2.EVEN="EVEN",FUNCTION_NAMES_MATH2.EXP="EXP",FUNCTION_NAMES_MATH2.FACT="FACT",FUNCTION_NAMES_MATH2.FACTDOUBLE="FACTDOUBLE",FUNCTION_NAMES_MATH2.FLOOR="FLOOR",FUNCTION_NAMES_MATH2.FLOOR_MATH="FLOOR.MATH",FUNCTION_NAMES_MATH2.FLOOR_PRECISE="FLOOR.PRECISE",FUNCTION_NAMES_MATH2.GCD="GCD",FUNCTION_NAMES_MATH2.INT="INT",FUNCTION_NAMES_MATH2.ISO_CEILING="ISO.CEILING",FUNCTION_NAMES_MATH2.LCM="LCM",FUNCTION_NAMES_MATH2.LET="LET",FUNCTION_NAMES_MATH2.LN="LN",FUNCTION_NAMES_MATH2.LOG="LOG",FUNCTION_NAMES_MATH2.LOG10="LOG10",FUNCTION_NAMES_MATH2.MDETERM="MDETERM",FUNCTION_NAMES_MATH2.MINVERSE="MINVERSE",FUNCTION_NAMES_MATH2.MMULT="MMULT",FUNCTION_NAMES_MATH2.MOD="MOD",FUNCTION_NAMES_MATH2.MROUND="MROUND",FUNCTION_NAMES_MATH2.MULTINOMIAL="MULTINOMIAL",FUNCTION_NAMES_MATH2.MUNIT="MUNIT",FUNCTION_NAMES_MATH2.ODD="ODD",FUNCTION_NAMES_MATH2.PI="PI",FUNCTION_NAMES_MATH2.POWER="POWER",FUNCTION_NAMES_MATH2.PRODUCT="PRODUCT",FUNCTION_NAMES_MATH2.QUOTIENT="QUOTIENT",FUNCTION_NAMES_MATH2.RADIANS="RADIANS",FUNCTION_NAMES_MATH2.RAND="RAND",FUNCTION_NAMES_MATH2.RANDARRAY="RANDARRAY",FUNCTION_NAMES_MATH2.RANDBETWEEN="RANDBETWEEN",FUNCTION_NAMES_MATH2.ROMAN="ROMAN",FUNCTION_NAMES_MATH2.ROUND="ROUND",FUNCTION_NAMES_MATH2.ROUNDDOWN="ROUNDDOWN",FUNCTION_NAMES_MATH2.ROUNDUP="ROUNDUP",FUNCTION_NAMES_MATH2.SEC="SEC",FUNCTION_NAMES_MATH2.SECH="SECH",FUNCTION_NAMES_MATH2.SERIESSUM="SERIESSUM",FUNCTION_NAMES_MATH2.SEQUENCE="SEQUENCE",FUNCTION_NAMES_MATH2.SIGN="SIGN",FUNCTION_NAMES_MATH2.SIN="SIN",FUNCTION_NAMES_MATH2.SINH="SINH",FUNCTION_NAMES_MATH2.SQRT="SQRT",FUNCTION_NAMES_MATH2.SQRTPI="SQRTPI",FUNCTION_NAMES_MATH2.SUBTOTAL="SUBTOTAL",FUNCTION_NAMES_MATH2.SUM="SUM",FUNCTION_NAMES_MATH2.SUMIF="SUMIF",FUNCTION_NAMES_MATH2.SUMIFS="SUMIFS",FUNCTION_NAMES_MATH2.SUMPRODUCT="SUMPRODUCT",FUNCTION_NAMES_MATH2.SUMSQ="SUMSQ",FUNCTION_NAMES_MATH2.SUMX2MY2="SUMX2MY2",FUNCTION_NAMES_MATH2.SUMX2PY2="SUMX2PY2",FUNCTION_NAMES_MATH2.SUMXMY2="SUMXMY2",FUNCTION_NAMES_MATH2.TAN="TAN",FUNCTION_NAMES_MATH2.TANH="TANH",FUNCTION_NAMES_MATH2.TRUNC="TRUNC",FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH||{});const _Abs=class _Abs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.abs()}};__name(_Abs,"Abs");let Abs=_Abs;const _Acos=class _Acos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acos()}};__name(_Acos,"Acos");let Acos=_Acos;const _Acosh=class _Acosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acosh()}};__name(_Acosh,"Acosh");let Acosh=_Acosh;const _Acot=class _Acot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acot(currentValue)):acot(_variant)}};__name(_Acot,"Acot");let Acot=_Acot;function acot(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);currentValue=Number(currentValue);let result=Math.atan(1/currentValue);return currentValue<0&&(result+=Math.PI),Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acot,"acot");const _Acoth=class _Acoth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acoth(currentValue)):acoth(_variant)}};__name(_Acoth,"Acoth");let Acoth=_Acoth;function acoth(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(currentValue=Number(currentValue),Math.abs(currentValue)<=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=1/2*Math.log((currentValue+1)/(currentValue-1));return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acoth,"acoth");const _Asin=class _Asin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asin()}};__name(_Asin,"Asin");let Asin=_Asin;const _Asinh=class _Asinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asinh()}};__name(_Asinh,"Asinh");let Asinh=_Asinh;const _Atan=class _Atan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atan()}};__name(_Atan,"Atan");let Atan=_Atan;const _Atan2=class _Atan2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(xNum,yNum){let _xNum=xNum,_yNum=yNum;return _xNum.isString()&&(_xNum=_xNum.convertToNumberObjectValue()),_xNum.isError()?_xNum:(_yNum.isString()&&(_yNum=_yNum.convertToNumberObjectValue()),_yNum.isError()?_yNum:_yNum.atan2(_xNum))}};__name(_Atan2,"Atan2");let Atan2=_Atan2;const _Atanh=class _Atanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atanh()}};__name(_Atanh,"Atanh");let Atanh=_Atanh;const _Base=class _Base extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(number,radix,minLength){const _minLength=minLength!=null?minLength:NumberValueObject.create(0);if(number.isError())return number;if(radix.isError())return radix;if(_minLength.isError())return _minLength;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,radix.isArray()?radix.getRowCount():1,_minLength.isArray()?_minLength.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,radix.isArray()?radix.getColumnCount():1,_minLength.isArray()?_minLength.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),minLengthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_minLength,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const radixObject=radixArray.get(rowIndex,columnIndex),minLengthObject=minLengthArray.get(rowIndex,columnIndex);return this._handleSingleObject(numberObject,radixObject,minLengthObject)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}_handleSingleObject(numberObject,radixObject,minLengthObject){let _numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;let _radixObject=radixObject;if(_radixObject.isString()&&(_radixObject=_radixObject.convertToNumberObjectValue()),_radixObject.isError())return _radixObject;let _minLengthObject=minLengthObject;if(_minLengthObject.isString()&&(_minLengthObject=_minLengthObject.convertToNumberObjectValue()),_minLengthObject.isError())return _minLengthObject;const numberValue=Math.floor(+_numberObject.getValue()),radixValue=Math.floor(+_radixObject.getValue()),minLengthValue=Math.floor(+_minLengthObject.getValue());if(numberValue<0||numberValue>=2**53||radixValue<2||radixValue>36||minLengthValue<0)return ErrorValueObject.create(ErrorType$1.NUM);let result=numberValue.toString(radixValue);return result.length<minLengthValue&&(result=new Array(minLengthValue-result.length+1).join("0")+result),StringValueObject.create(result.toLocaleUpperCase())}};__name(_Base,"Base");let Base=_Base;const _Ceiling=class _Ceiling extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=ceil(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}};__name(_Ceiling,"Ceiling");let Ceiling=_Ceiling;const _CeilingMath=class _CeilingMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0);if(number.isError())return number;if(_significance.isError())return _significance;if(_mode.isError())return _mode;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();return numberValue===0||significanceValue===0?NumberValueObject.create(0):this._getResult(numberValue,significanceValue,modeValue)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,significanceValue,modeValue){let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?ceil(Math.abs(numberValue)/Math.abs(significanceValue),0):-ceil(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)}};__name(_CeilingMath,"CeilingMath");let CeilingMath=_CeilingMath;const _CeilingPrecise=class _CeilingPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_CeilingPrecise,"CeilingPrecise");let CeilingPrecise=_CeilingPrecise;const _Cos=class _Cos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.cos()}};__name(_Cos,"Cos");let Cos=_Cos;const _Cosh=class _Cosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.cosh()}};__name(_Cosh,"Cosh");let Cosh=_Cosh;const _Cot=class _Cot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tan().getReciprocal()}};__name(_Cot,"Cot");let Cot=_Cot;const _Coth=class _Coth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;return numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError()?numberObject:+numberObject.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tanh().getReciprocal()}};__name(_Coth,"Coth");let Coth=_Coth;const _Csc=class _Csc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.sin().getReciprocal()}};__name(_Csc,"Csc");let Csc=_Csc;const _Csch=class _Csch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):!Number.isNaN(numberValue)&&!Number.isFinite(Math.sinh(numberValue))?NumberValueObject.create(0):numberObject.sinh().getReciprocal()}};__name(_Csch,"Csch");let Csch=_Csch;const _Decimal=class _Decimal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,radix){if(text.isError())return text;if(radix.isError())return radix;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,radix.isArray()?radix.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,radix.isArray()?radix.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{if(textObject.isError())return textObject;let radixObject=radixArray.get(rowIndex,columnIndex);if(radixObject.isString()&&(radixObject=radixObject.convertToNumberObjectValue()),radixObject.isError())return radixObject;const textValue=`${textObject.getValue()}`,radixValue=Math.floor(+radixObject.getValue());if(core.isRealNum(textValue)&&(+textValue<0||+textValue>=2**53||!Number.isInteger(+textValue))||textValue.toLocaleLowerCase()==="true"||textValue.toLocaleLowerCase()==="false"||radixValue<2||radixValue>36)return ErrorValueObject.create(ErrorType$1.NUM);if(textValue.replace(/\s/g,"")==="")return NumberValueObject.create(0);if(!this._isValidCharForRadix(textValue,radixValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Number.parseInt(textValue,radixValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_isValidCharForRadix(text,radix){for(const char of text){const charCode=char.toUpperCase().charCodeAt(0);if(radix<=10&&!(charCode>=48&&charCode<48+radix)||radix>10&&!(charCode>=48&&charCode<58||charCode>=65&&charCode<65+radix-10))return!1}return!0}};__name(_Decimal,"Decimal");let Decimal=_Decimal;const _Degrees=class _Degrees extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(180/Math.PI);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Degrees,"Degrees");let Degrees=_Degrees;const _Even=class _Even extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=(numberValue<0?-ceil(Math.abs(numberValue)/2,0):ceil(numberValue/2,0))*2;return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):result===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Even,"Even");let Even=_Even;const _Exp=class _Exp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.exp()}};__name(_Exp,"Exp");let Exp=_Exp;const _Floor=class _Floor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0)return NumberValueObject.create(0);if(significanceValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=floor(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Floor,"Floor");let Floor=_Floor;const _FloorMath=class _FloorMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?floor(Math.abs(numberValue)/Math.abs(significanceValue),0):-floor(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorMath,"FloorMath");let FloorMath=_FloorMath;const _FloorPrecise=class _FloorPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorPrecise,"FloorPrecise");let FloorPrecise=_FloorPrecise;const _Ln=class _Ln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log()}};__name(_Ln,"Ln");let Ln=_Ln;const _Log=class _Log extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,base){const _base=base!=null?base:NumberValueObject.create(10);if(number.isError())return number;if(_base.isError())return _base;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_base.isArray()?_base.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_base.isArray()?_base.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),baseArray=expandArrayValueObject(maxRowLength,maxColumnLength,_base,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let baseObject=baseArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(baseObject.isString()&&(baseObject=baseObject.convertToNumberObjectValue()),baseObject.isError())return baseObject;const numberValue=+_numberObject.getValue(),baseValue=+baseObject.getValue();if(numberValue<=0||baseValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const baseLog=Math.log(baseValue);if(baseLog===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.log(numberValue)/baseLog;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Log,"Log");let Log=_Log;const _Log10=class _Log10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log10()}};__name(_Log10,"Log10");let Log10=_Log10;const _Mod=class _Mod extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,divisor){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _divisor=divisor;return _divisor.isString()&&(_divisor=_divisor.convertToNumberObjectValue()),_divisor.isError()?_divisor:_number.mod(_divisor)}};__name(_Mod,"Mod");let Mod=_Mod;const _Mround=class _Mround extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,multiple){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isError())return _number;let _multiple=multiple;if(_multiple.isArray()){const rowCount=_multiple.getRowCount(),columnCount=_multiple.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_multiple=_multiple.get(0,0)}if(_multiple.isError())return _multiple;if(_number.isBoolean()||_multiple.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const numberValue=+_number.getValue(),multipleValue=+_multiple.getValue();if(Number.isNaN(numberValue)||Number.isNaN(multipleValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(multipleValue===0)return NumberValueObject.create(0);if(numberValue>0&&multipleValue<0||numberValue<0&&multipleValue>0)return ErrorValueObject.create(ErrorType$1.NUM);const result=round(numberValue/multipleValue,0)*multipleValue;return NumberValueObject.create(result)}};__name(_Mround,"Mround");let Mround=_Mround;const _Odd=class _Odd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=numberValue<0?-ceil(Math.abs(numberValue),0):ceil(numberValue,0);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):(Math.abs(result)%2===0&&(numberValue<0?result--:result++),NumberValueObject.create(result))}};__name(_Odd,"Odd");let Odd=_Odd;const _Pi=class _Pi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.PI)}};__name(_Pi,"Pi");let Pi=_Pi;const _Power=class _Power extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,power){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _power=power;return _power.isString()&&(_power=_power.convertToNumberObjectValue()),_power.isError()?_power:_number.pow(_power)}};__name(_Power,"Power");let Power=_Power;const _Product=class _Product extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(1);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=this._multiplyArray(variant)),variant.isError())return variant;if(accumulatorAll=accumulatorAll.multiply(variant),accumulatorAll.isError())return accumulatorAll}}return accumulatorAll}_multiplyArray(array){let result=NumberValueObject.create(1);return array.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return result=valueObject,!1;result=result.multiply(valueObject)}),result}};__name(_Product,"Product");let Product=_Product;const _Radians=class _Radians extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(Math.PI/180);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Radians,"Radians");let Radians=_Radians;const _Rand=class _Rand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.random())}};__name(_Rand,"Rand");let Rand=_Rand;const _Randarray=class _Randarray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",5)}calculate(rows,columns,min,max,wholeNumber){if(rows!=null&&rows.isError())return rows;if(columns!=null&&columns.isError())return columns;if(min!=null&&min.isError())return min;if(max!=null&&max.isError())return max;if(wholeNumber!=null&&wholeNumber.isError())return wholeNumber;const _rows=rows!=null?rows:NumberValueObject.create(1),_columns=columns!=null?columns:NumberValueObject.create(1),_min=min!=null?min:NumberValueObject.create(0),_max=max!=null?max:NumberValueObject.create(1),_wholeNumber=wholeNumber!=null?wholeNumber:NumberValueObject.create(0);return this._calculateResult(_rows,_columns,_min,_max,_wholeNumber)}_calculateResult(rows,columns,min,max,wholeNumber){const maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,columns.isArray()?columns.getRowCount():1,min.isArray()?min.getRowCount():1,max.isArray()?max.getRowCount():1,wholeNumber.isArray()?wholeNumber.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,columns.isArray()?columns.getColumnCount():1,min.isArray()?min.getColumnCount():1,max.isArray()?max.getColumnCount():1,wholeNumber.isArray()?wholeNumber.getColumnCount():1);if(maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(rows,columns,min,max,wholeNumber);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,columns,ErrorValueObject.create(ErrorType$1.NA)),minArray=expandArrayValueObject(maxRowLength,maxColumnLength,min,ErrorValueObject.create(ErrorType$1.NA)),maxArray=expandArrayValueObject(maxRowLength,maxColumnLength,max,ErrorValueObject.create(ErrorType$1.NA)),wholeNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,wholeNumber,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.map((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),minObject=minArray.get(rowIndex,columnIndex),maxObject=maxArray.get(rowIndex,columnIndex),wholeNumberObject=wholeNumberArray.get(rowIndex,columnIndex),_handleError=this._handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject);if(_handleError.errorObject)return _handleError.errorObject;let{minValue,maxValue,wholeNumberValue}=_handleError,result;return wholeNumberValue?(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),result=Math.floor(Math.random()*(maxValue-minValue+1))+minValue):result=Math.random()*(maxValue-minValue)+minValue,result<minValue||result>maxValue?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)})}_calculateSingleCell(rows,columns,min,max,wholeNumber){let _rows=rows;_rows.isArray()&&(_rows=_rows.get(0,0));let _columns=columns;_columns.isArray()&&(_columns=_columns.get(0,0));let _min=min;_min.isArray()&&(_min=_min.get(0,0));let _max=max;_max.isArray()&&(_max=_max.get(0,0));let _wholeNumber=wholeNumber;_wholeNumber.isArray()&&(_wholeNumber=_wholeNumber.get(0,0));const _handleError=this._handleError(_rows,_columns,_min,_max,_wholeNumber);if(_handleError.errorObject)return _handleError.errorObject;let{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}=_handleError;if(wholeNumberValue&&(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),minValue>maxValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<rowsValue;r++){const row=[];for(let c=0;c<columnsValue;c++)wholeNumberValue?row.push(Math.floor(Math.random()*(maxValue-minValue+1))+minValue):row.push(Math.random()*(maxValue-minValue)+minValue);result.push(row)}return rowsValue===1&&columnsValue===1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}_handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){let _rowsObject=rowsObject;if(_rowsObject.isString()&&(_rowsObject=_rowsObject.convertToNumberObjectValue()),_rowsObject.isError())return{errorObject:_rowsObject};let _columnsObject=columnsObject;if(_columnsObject.isString()&&(_columnsObject=_columnsObject.convertToNumberObjectValue()),_columnsObject.isError())return{errorObject:_columnsObject};let _minObject=minObject;if(_minObject.isString()&&(_minObject=_minObject.convertToNumberObjectValue()),_minObject.isError())return{errorObject:_minObject};let _maxObject=maxObject;if(_maxObject.isString()&&(_maxObject=_maxObject.convertToNumberObjectValue()),_maxObject.isError())return{errorObject:_maxObject};let _wholeNumberObject=wholeNumberObject;return _wholeNumberObject.isString()&&(_wholeNumberObject=_wholeNumberObject.convertToNumberObjectValue()),_wholeNumberObject.isError()?{errorObject:_wholeNumberObject}:this._getValue(_rowsObject,_columnsObject,_minObject,_maxObject,_wholeNumberObject)}_getValue(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){const rowsValue=Math.floor(+rowsObject.getValue()),columnsValue=Math.floor(+columnsObject.getValue());if(rowsValue===0||columnsValue===0)return{errorObject:ErrorValueObject.create(ErrorType$1.CALC)};if(rowsValue<0||columnsValue<0)return{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};const minValue=+minObject.getValue(),maxValue=+maxObject.getValue(),wholeNumberValue=+wholeNumberObject.getValue();return minValue>maxValue?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:wholeNumberValue&&(!Number.isInteger(minValue)||!Number.isInteger(maxValue))?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}}};__name(_Randarray,"Randarray");let Randarray=_Randarray;const _Randbetween=class _Randbetween extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(bottom,top){let _bottom=bottom;if(_bottom.isArray()){const rowCount=_bottom.getRowCount(),columnCount=_bottom.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_bottom=_bottom.get(0,0)}if(_bottom.isError())return _bottom;let _top=top;if(_top.isArray()){const rowCount=_top.getRowCount(),columnCount=_top.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_top=_top.get(0,0)}if(_top.isError())return _top;if(_bottom.isBoolean()||_top.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);let bottomValue=+_bottom.getValue(),topValue=+_top.getValue();if(Number.isNaN(bottomValue)||Number.isNaN(topValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(bottomValue>topValue)return ErrorValueObject.create(ErrorType$1.NUM);bottomValue=Math.ceil(bottomValue),topValue=Math.floor(topValue);const result=Math.floor(Math.random()*(topValue-bottomValue+1))+bottomValue;return NumberValueObject.create(result)}};__name(_Randbetween,"Randbetween");let Randbetween=_Randbetween;const _Round=class _Round extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.round(_numDigits)}};__name(_Round,"Round");let Round=_Round;const _Rounddown=class _Rounddown extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.floor(_numDigits)}};__name(_Rounddown,"Rounddown");let Rounddown=_Rounddown;const _Roundup=class _Roundup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.ceil(_numDigits)}};__name(_Roundup,"Roundup");let Roundup=_Roundup;const _Sec=class _Sec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cos().getReciprocal()}};__name(_Sec,"Sec");let Sec=_Sec;const _Sech=class _Sech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Number.isFinite(Math.cosh(numberValue))?Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cosh().getReciprocal():NumberValueObject.create(0)}};__name(_Sech,"Sech");let Sech=_Sech;const _Sin=class _Sin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sin()}};__name(_Sin,"Sin");let Sin=_Sin;const _Sinh=class _Sinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sinh()}};__name(_Sinh,"Sinh");let Sinh=_Sinh;const _Sqrt=class _Sqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.sqrt()}};__name(_Sqrt,"Sqrt");let Sqrt=_Sqrt;const _Sqrtpi=class _Sqrtpi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=+_number.getValue();if(numberValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sqrt(numberValue*Math.PI);return NumberValueObject.create(result)}};__name(_Sqrtpi,"Sqrtpi");let Sqrtpi=_Sqrtpi;const _Subtotal=class _Subtotal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(functionNum,...refs){if(functionNum.isError())return functionNum;if(functionNum.isReferenceObject()){const result=[];return functionNum.iterator((valueObject,rowIndex,columnIndex)=>{result[rowIndex]==null&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=this._handleSingleObject(valueObject,...refs)}),createNewArray(result,result.length,result[0].length)}return this._handleSingleObject(functionNum,...refs)}_handleSingleObject(functionNum,...refs){const indexNum=this._getIndexNumValue(functionNum);let result;if(indexNum instanceof ErrorValueObject)return indexNum;switch(indexNum){case 1:result=this._average(!1,...refs);break;case 2:result=this._count(!1,...refs);break;case 3:result=this._counta(!1,...refs);break;case 4:result=this._max(!1,...refs);break;case 5:result=this._min(!1,...refs);break;case 6:result=this._product(!1,...refs);break;case 7:result=this._stdev(!1,...refs);break;case 8:result=this._stdevp(!1,...refs);break;case 9:result=this._sum(!1,...refs);break;case 10:result=this._var(!1,...refs);break;case 11:result=this._varp(!1,...refs);break;case 101:result=this._average(!0,...refs);break;case 102:result=this._count(!0,...refs);break;case 103:result=this._counta(!0,...refs);break;case 104:result=this._max(!0,...refs);break;case 105:result=this._min(!0,...refs);break;case 106:result=this._product(!0,...refs);break;case 107:result=this._stdev(!0,...refs);break;case 108:result=this._stdevp(!0,...refs);break;case 109:result=this._sum(!0,...refs);break;case 110:result=this._var(!0,...refs);break;case 111:result=this._varp(!0,...refs);break;default:result=ErrorValueObject.create(ErrorType$1.VALUE)}return result}_getIndexNumValue(indexNum){const indexNumValue=indexNum?Number(indexNum.getValue()):0;if(Number.isNaN(indexNumValue))return ErrorValueObject.create(ErrorType$1.VALUE);const indexNumValueInt=Math.floor(indexNumValue);return indexNumValueInt>=1&&indexNumValueInt<=11||indexNumValueInt>=101&&indexNumValueInt<=111?indexNumValueInt:ErrorValueObject.create(ErrorType$1.VALUE)}_average(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.mean()}_count(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex))return!0;valueObject!=null&&valueObject.isNumber()&&(accumulatorAll=accumulatorAll.plusBy(1))})}return accumulatorAll}_counta(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)})}return accumulatorAll}_max(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.max()}_min(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.min()}_product(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);if(flattenArray.isError())return flattenArray;if(this._isBlankArrayObject(flattenArray))return NumberValueObject.create(0);let result=NumberValueObject.create(1);return flattenArray.iterator(valueObject=>{result=result.multiply(valueObject)}),result}_stdev(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std(1)}_stdevp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std()}_sum(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.sum()}_var(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var(1)}_varp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var()}_flattenRefArray(ignoreHidden,...variants){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();let errorValue;if(variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull()||valueObject.isString()||valueObject.isBoolean())return!0;if(valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}return createNewArray(flattenValues,1,flattenValues[0].length)}_isRowHidden(rowData,rowIndex){const row=rowData[rowIndex];return row?row.hd===core.BooleanNumber.TRUE:!1}_isBlankArrayObject(arrayObject){return arrayObject.getArrayValue()[0].length===0}};__name(_Subtotal,"Subtotal");let Subtotal=_Subtotal;const _Sum=class _Sum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&(variant=variant.sum()),accumulatorAll=accumulatorAll.plus(variant),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sum,"Sum");let Sum=_Sum;const _Sumif=class _Sumif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(range,criteria,sumRange){return range.isError()?range:criteria.isError()?criteria:sumRange!=null&&sumRange.isError()?sumRange:!range.isArray()||sumRange&&!sumRange.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):criteria.isArray()?criteria.map(criteriaItem=>this._handleSingleObject(range,criteriaItem,sumRange)):this._handleSingleObject(range,criteria,sumRange)}_handleSingleObject(range,criteria,sumRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const sumRangeArray=sumRange?sumRange.slice([0,range.getRowCount()],[0,range.getColumnCount()]):range;return sumRangeArray?sumRangeArray.pick(resultArrayObject).sum():ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Sumif,"Sumif");let Sumif=_Sumif;const _Sumifs=class _Sumifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(sumRange,...variants){if(sumRange.isError())return sumRange;if(!sumRange.isArray()||variants.length<2||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,sumRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(sumRange,booleanResults)}_aggregateResults(sumRange,booleanResults){const sumResults=booleanResults.map(row=>row.map(booleanResult=>sumRange.pick(booleanResult).sum())),arrayValueObjectData={calculateValueList:sumResults,rowCount:sumResults.length,columnCount:sumResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Sumifs,"Sumifs");let Sumifs=_Sumifs;const _Sumproduct=class _Sumproduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(array1,...variants){if(array1.isError())return array1;const _array1=this._initArray1(array1);if(variants.length>0){const rowCount=_array1.getRowCount(),columnCount=_array1.getColumnCount();let resultArray=this._getResultArrayByArray1(rowCount,columnCount,_array1);if(resultArray instanceof ErrorValueObject)return resultArray;resultArray=resultArray;for(let i=0;i<variants.length;i++){if(variants[i].isError())return variants[i];let variantRowCount=1,variantColumnCount=1;if(variants[i].isArray()&&(variantRowCount=variants[i].getRowCount(),variantColumnCount=variants[i].getColumnCount()),variantRowCount!==rowCount||variantColumnCount!==columnCount)return ErrorValueObject.create(ErrorType$1.VALUE);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let variantValueObject=variants[i];if(variants[i].isArray()&&(variantValueObject=variants[i].get(r,c)),variantValueObject.isError())return variantValueObject;const variantValue=variantValueObject.getValue();!variantValue||!core.isRealNum(variantValue)?row.push(0):row.push(+variantValue*resultArray[r][c])}resultArray[r]=row}}const result=resultArray.reduce((acc,cur)=>acc.concat(cur)).reduce((acc,cur)=>acc+cur,0);return NumberValueObject.create(result)}else return _array1.sum()}_initArray1(array1){let _array1=array1;return _array1.isArray()||(_array1=ArrayValueObject.create({calculateValueList:[[_array1]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),_array1}_getResultArrayByArray1(rowCount,columnCount,array1){const resultArray=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const array1ValueObject=array1.get(r,c);if(array1ValueObject.isError())return array1ValueObject;const array1Value=array1ValueObject.getValue();!array1Value||!core.isRealNum(array1Value)?row.push(0):row.push(+array1Value)}resultArray.push(row)}return resultArray}};__name(_Sumproduct,"Sumproduct");let Sumproduct=_Sumproduct;const _Sumsq=class _Sumsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);const exponent=NumberValueObject.create(2);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()?variant.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject.pow(exponent))}):accumulatorAll=accumulatorAll.plus(variant.pow(exponent)),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sumsq,"Sumsq");let Sumsq=_Sumsq;const _Sumx2my2=class _Sumx2my2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2-arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2-arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2my2,"Sumx2my2");let Sumx2my2=_Sumx2my2;const _Sumx2py2=class _Sumx2py2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2+arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2+arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2py2,"Sumx2py2");let Sumx2py2=_Sumx2py2;const _Sumxmy2=class _Sumxmy2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=(arrayXValue-arrayYValue)**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(arrayXValue-arrayYValue)**2;return NumberValueObject.create(result)}};__name(_Sumxmy2,"Sumxmy2");let Sumxmy2=_Sumxmy2;const _Tan=class _Tan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tan()}};__name(_Tan,"Tan");let Tan=_Tan;const _Tanh=class _Tanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tanh()}};__name(_Tanh,"Tanh");let Tanh=_Tanh;const _Trunc=class _Trunc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,numDigits){const _numDigits=numDigits!=null?numDigits:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_numDigits.isArray()?_numDigits.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_numDigits.isArray()?_numDigits.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numDigitsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numDigits,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let numDigitsObject=numDigitsArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numDigitsObject.isString()&&(numDigitsObject=numDigitsObject.convertToNumberObjectValue()),numDigitsObject.isError())return numDigitsObject;const numberValue=+_numberObject.getValue(),numDigitsValue=+numDigitsObject.getValue(),factor=10**Math.trunc(numDigitsValue),epsilon=baseEpsilon(numberValue,factor),result=Math.trunc(multiply(numberValue,factor)+epsilon)/factor;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Trunc,"Trunc");let Trunc=_Trunc;const functionMath=[[Abs,FUNCTION_NAMES_MATH.ABS],[Acos,FUNCTION_NAMES_MATH.ACOS],[Acosh,FUNCTION_NAMES_MATH.ACOSH],[Acot,FUNCTION_NAMES_MATH.ACOT],[Acoth,FUNCTION_NAMES_MATH.ACOTH],[Asin,FUNCTION_NAMES_MATH.ASIN],[Asinh,FUNCTION_NAMES_MATH.ASINH],[Atan,FUNCTION_NAMES_MATH.ATAN],[Atan2,FUNCTION_NAMES_MATH.ATAN2],[Atanh,FUNCTION_NAMES_MATH.ATANH],[Base,FUNCTION_NAMES_MATH.BASE],[Ceiling,FUNCTION_NAMES_MATH.CEILING],[CeilingMath,FUNCTION_NAMES_MATH.CEILING_MATH],[CeilingPrecise,FUNCTION_NAMES_MATH.CEILING_PRECISE],[Cos,FUNCTION_NAMES_MATH.COS],[Cosh,FUNCTION_NAMES_MATH.COSH],[Cot,FUNCTION_NAMES_MATH.COT],[Coth,FUNCTION_NAMES_MATH.COTH],[Csc,FUNCTION_NAMES_MATH.CSC],[Csch,FUNCTION_NAMES_MATH.CSCH],[Decimal,FUNCTION_NAMES_MATH.DECIMAL],[Degrees,FUNCTION_NAMES_MATH.DEGREES],[Even,FUNCTION_NAMES_MATH.EVEN],[Exp,FUNCTION_NAMES_MATH.EXP],[Floor,FUNCTION_NAMES_MATH.FLOOR],[FloorMath,FUNCTION_NAMES_MATH.FLOOR_MATH],[FloorPrecise,FUNCTION_NAMES_MATH.FLOOR_PRECISE],[Ln,FUNCTION_NAMES_MATH.LN],[Log,FUNCTION_NAMES_MATH.LOG],[Log10,FUNCTION_NAMES_MATH.LOG10],[Mod,FUNCTION_NAMES_MATH.MOD],[Mround,FUNCTION_NAMES_MATH.MROUND],[Odd,FUNCTION_NAMES_MATH.ODD],[Pi,FUNCTION_NAMES_MATH.PI],[Power,FUNCTION_NAMES_MATH.POWER],[Product,FUNCTION_NAMES_MATH.PRODUCT],[Radians,FUNCTION_NAMES_MATH.RADIANS],[Rand,FUNCTION_NAMES_MATH.RAND],[Randarray,FUNCTION_NAMES_MATH.RANDARRAY],[Randbetween,FUNCTION_NAMES_MATH.RANDBETWEEN],[Round,FUNCTION_NAMES_MATH.ROUND],[Rounddown,FUNCTION_NAMES_MATH.ROUNDDOWN],[Roundup,FUNCTION_NAMES_MATH.ROUNDUP],[Sec,FUNCTION_NAMES_MATH.SEC],[Sech,FUNCTION_NAMES_MATH.SECH],[Sin,FUNCTION_NAMES_MATH.SIN],[Sinh,FUNCTION_NAMES_MATH.SINH],[Sqrt,FUNCTION_NAMES_MATH.SQRT],[Sqrtpi,FUNCTION_NAMES_MATH.SQRTPI],[Subtotal,FUNCTION_NAMES_MATH.SUBTOTAL],[Sum,FUNCTION_NAMES_MATH.SUM],[Sumif,FUNCTION_NAMES_MATH.SUMIF],[Sumifs,FUNCTION_NAMES_MATH.SUMIFS],[Sumproduct,FUNCTION_NAMES_MATH.SUMPRODUCT],[Sumsq,FUNCTION_NAMES_MATH.SUMSQ],[Sumx2my2,FUNCTION_NAMES_MATH.SUMX2MY2],[Sumx2py2,FUNCTION_NAMES_MATH.SUMX2PY2],[Sumxmy2,FUNCTION_NAMES_MATH.SUMXMY2],[Tan,FUNCTION_NAMES_MATH.TAN],[Tanh,FUNCTION_NAMES_MATH.TANH],[Trunc,FUNCTION_NAMES_MATH.TRUNC]],_Compare=class _Compare extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"_compareType",compareToken.EQUALS)}setCompareType(token){this._compareType=token}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.compare(variant2,this._compareType)}};__name(_Compare,"Compare");let Compare=_Compare;const _CubeValueObject=class _CubeValueObject extends BaseValueObject{constructor(values){super("");__publicField(this,"_values",[]);this._values=values}static create(values){return new _CubeValueObject(values)}isCube(){return!0}sum(){const result=NumberValueObject.create(0);return this._values.forEach(arr=>{result.plus(arr.sum())}),result}max(){let result=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isLessThan(compare)&&(result=compare)}),result}min(){let result=NumberValueObject.create(Number.POSITIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isGreaterThan(compare)&&(result=compare)}),result}count(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.count())}),count}countA(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countA())}),count}countBlank(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countBlank())}),count}};__name(_CubeValueObject,"CubeValueObject");let CubeValueObject=_CubeValueObject;const _Cube=class _Cube extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);values.push(variant)}return CubeValueObject.create(values)}};__name(_Cube,"Cube");let Cube=_Cube;const _Divided=class _Divided extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:!variant2.isArray()&&variant2.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):variant1.divided(variant2)}};__name(_Divided,"Divided");let Divided=_Divided;var FUNCTION_NAMES_META=(FUNCTION_NAMES_META2=>(FUNCTION_NAMES_META2.COMPARE="COMPARE",FUNCTION_NAMES_META2.DIVIDED="DIVIDED",FUNCTION_NAMES_META2.MINUS="MINUS",FUNCTION_NAMES_META2.MULTIPLY="MULTIPLY",FUNCTION_NAMES_META2.PLUS="PLUS",FUNCTION_NAMES_META2.UNION="UNION",FUNCTION_NAMES_META2.CUBE="CUBE",FUNCTION_NAMES_META2))(FUNCTION_NAMES_META||{});const _Minus=class _Minus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.minus(variant2)}};__name(_Minus,"Minus");let Minus=_Minus;const _Multiply=class _Multiply extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.multiply(variant2)}};__name(_Multiply,"Multiply");let Multiply=_Multiply;const _Plus=class _Plus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.plus(variant2)}};__name(_Plus,"Plus");let Plus=_Plus;const functionMeta=[[Compare,FUNCTION_NAMES_META.COMPARE],[Divided,FUNCTION_NAMES_META.DIVIDED],[Minus,FUNCTION_NAMES_META.MINUS],[Multiply,FUNCTION_NAMES_META.MULTIPLY],[Plus,FUNCTION_NAMES_META.PLUS],[Cube,FUNCTION_NAMES_META.CUBE]];var FUNCTION_NAMES_STATISTICAL=(FUNCTION_NAMES_STATISTICAL2=>(FUNCTION_NAMES_STATISTICAL2.AVEDEV="AVEDEV",FUNCTION_NAMES_STATISTICAL2.AVERAGE="AVERAGE",FUNCTION_NAMES_STATISTICAL2.AVERAGEA="AVERAGEA",FUNCTION_NAMES_STATISTICAL2.AVERAGEIF="AVERAGEIF",FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS="AVERAGEIFS",FUNCTION_NAMES_STATISTICAL2.BETA_DIST="BETA.DIST",FUNCTION_NAMES_STATISTICAL2.BETA_INV="BETA.INV",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST="BINOM.DIST",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE="BINOM.DIST.RANGE",FUNCTION_NAMES_STATISTICAL2.BINOM_INV="BINOM.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST="CHISQ.DIST",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT="CHISQ.DIST.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV="CHISQ.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT="CHISQ.INV.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST="CHISQ.TEST",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM="CONFIDENCE.NORM",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T="CONFIDENCE.T",FUNCTION_NAMES_STATISTICAL2.CORREL="CORREL",FUNCTION_NAMES_STATISTICAL2.COUNT="COUNT",FUNCTION_NAMES_STATISTICAL2.COUNTA="COUNTA",FUNCTION_NAMES_STATISTICAL2.COUNTBLANK="COUNTBLANK",FUNCTION_NAMES_STATISTICAL2.COUNTIF="COUNTIF",FUNCTION_NAMES_STATISTICAL2.COUNTIFS="COUNTIFS",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P="COVARIANCE.P",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S="COVARIANCE.S",FUNCTION_NAMES_STATISTICAL2.DEVSQ="DEVSQ",FUNCTION_NAMES_STATISTICAL2.EXPON_DIST="EXPON.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST="F.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST_RT="F.DIST.RT",FUNCTION_NAMES_STATISTICAL2.F_INV="F.INV",FUNCTION_NAMES_STATISTICAL2.F_INV_RT="F.INV.RT",FUNCTION_NAMES_STATISTICAL2.F_TEST="F.TEST",FUNCTION_NAMES_STATISTICAL2.FISHER="FISHER",FUNCTION_NAMES_STATISTICAL2.FISHERINV="FISHERINV",FUNCTION_NAMES_STATISTICAL2.FORECAST="FORECAST",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS="FORECAST.ETS",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT="FORECAST.ETS.STAT",FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR="FORECAST.LINEAR",FUNCTION_NAMES_STATISTICAL2.FREQUENCY="FREQUENCY",FUNCTION_NAMES_STATISTICAL2.GAMMA="GAMMA",FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST="GAMMA.DIST",FUNCTION_NAMES_STATISTICAL2.GAMMA_INV="GAMMA.INV",FUNCTION_NAMES_STATISTICAL2.GAMMALN="GAMMALN",FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE="GAMMALN.PRECISE",FUNCTION_NAMES_STATISTICAL2.GAUSS="GAUSS",FUNCTION_NAMES_STATISTICAL2.GEOMEAN="GEOMEAN",FUNCTION_NAMES_STATISTICAL2.GROWTH="GROWTH",FUNCTION_NAMES_STATISTICAL2.HARMEAN="HARMEAN",FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST="HYPGEOM.DIST",FUNCTION_NAMES_STATISTICAL2.INTERCEPT="INTERCEPT",FUNCTION_NAMES_STATISTICAL2.KURT="KURT",FUNCTION_NAMES_STATISTICAL2.LARGE="LARGE",FUNCTION_NAMES_STATISTICAL2.LINEST="LINEST",FUNCTION_NAMES_STATISTICAL2.LOGEST="LOGEST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST="LOGNORM.DIST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV="LOGNORM.INV",FUNCTION_NAMES_STATISTICAL2.MAX="MAX",FUNCTION_NAMES_STATISTICAL2.MAXA="MAXA",FUNCTION_NAMES_STATISTICAL2.MAXIFS="MAXIFS",FUNCTION_NAMES_STATISTICAL2.MEDIAN="MEDIAN",FUNCTION_NAMES_STATISTICAL2.MIN="MIN",FUNCTION_NAMES_STATISTICAL2.MINA="MINA",FUNCTION_NAMES_STATISTICAL2.MINIFS="MINIFS",FUNCTION_NAMES_STATISTICAL2.MODE_MULT="MODE.MULT",FUNCTION_NAMES_STATISTICAL2.MODE_SNGL="MODE.SNGL",FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST="NEGBINOM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_DIST="NORM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_INV="NORM.INV",FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST="NORM.S.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_S_INV="NORM.S.INV",FUNCTION_NAMES_STATISTICAL2.PEARSON="PEARSON",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC="PERCENTILE.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC="PERCENTILE.INC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC="PERCENTRANK.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC="PERCENTRANK.INC",FUNCTION_NAMES_STATISTICAL2.PERMUT="PERMUT",FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA="PERMUTATIONA",FUNCTION_NAMES_STATISTICAL2.PHI="PHI",FUNCTION_NAMES_STATISTICAL2.POISSON_DIST="POISSON.DIST",FUNCTION_NAMES_STATISTICAL2.PROB="PROB",FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC="QUARTILE.EXC",FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC="QUARTILE.INC",FUNCTION_NAMES_STATISTICAL2.RANK_AVG="RANK.AVG",FUNCTION_NAMES_STATISTICAL2.RANK_EQ="RANK.EQ",FUNCTION_NAMES_STATISTICAL2.RSQ="RSQ",FUNCTION_NAMES_STATISTICAL2.SKEW="SKEW",FUNCTION_NAMES_STATISTICAL2.SKEW_P="SKEW.P",FUNCTION_NAMES_STATISTICAL2.SLOPE="SLOPE",FUNCTION_NAMES_STATISTICAL2.SMALL="SMALL",FUNCTION_NAMES_STATISTICAL2.STANDARDIZE="STANDARDIZE",FUNCTION_NAMES_STATISTICAL2.STDEV_P="STDEV.P",FUNCTION_NAMES_STATISTICAL2.STDEV_S="STDEV.S",FUNCTION_NAMES_STATISTICAL2.STDEVA="STDEVA",FUNCTION_NAMES_STATISTICAL2.STDEVPA="STDEVPA",FUNCTION_NAMES_STATISTICAL2.STEYX="STEYX",FUNCTION_NAMES_STATISTICAL2.T_DIST="T.DIST",FUNCTION_NAMES_STATISTICAL2.T_DIST_2T="T.DIST.2T",FUNCTION_NAMES_STATISTICAL2.T_DIST_RT="T.DIST.RT",FUNCTION_NAMES_STATISTICAL2.T_INV="T.INV",FUNCTION_NAMES_STATISTICAL2.T_INV_2T="T.INV.2T",FUNCTION_NAMES_STATISTICAL2.T_TEST="T.TEST",FUNCTION_NAMES_STATISTICAL2.TREND="TREND",FUNCTION_NAMES_STATISTICAL2.TRIMMEAN="TRIMMEAN",FUNCTION_NAMES_STATISTICAL2.VAR_P="VAR.P",FUNCTION_NAMES_STATISTICAL2.VAR_S="VAR.S",FUNCTION_NAMES_STATISTICAL2.VARA="VARA",FUNCTION_NAMES_STATISTICAL2.VARPA="VARPA",FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST="WEIBULL.DIST",FUNCTION_NAMES_STATISTICAL2.Z_TEST="Z.TEST",FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL||{});const _Avedev=class _Avedev extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant=filterNumberValueObject(variant),variant.isError())return variant;if(variants[i]=variant,accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}if(accumulatorCount.getValue()===0)return ErrorValueObject.create(ErrorType$1.NUM);const average=accumulatorSum.divided(accumulatorCount);if(average.isError())return average;let accumulatorAveDev=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs().sum()),accumulatorAveDev.isError())return accumulatorAveDev}else variant.isNull()||(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs()))}return accumulatorAveDev.divided(accumulatorCount)}};__name(_Avedev,"Avedev");let Avedev=_Avedev;function filterNumberValueObject(array){const newArray=[];newArray[0]=[];let isError=null;return array.iterator((valueObject,_rowIndex,_columnIndex)=>{if(valueObject!=null&&valueObject.isError())return isError=valueObject,!1;valueObject!=null&&valueObject.isNumber()&&newArray[0].push(valueObject)}),isError||createNewArray(newArray,1,newArray[0].length)}__name(filterNumberValueObject,"filterNumberValueObject");const _Average=class _Average extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Average,"Average");let Average=_Average;const _Averagea=class _Averagea extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;let _valueObject=valueObject;if(_valueObject.isString()&&(_valueObject=_valueObject.convertToNumberObjectValue(),_valueObject.isError()&&(_valueObject=NumberValueObject.create(0))),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorSum=_valueObject,!1;accumulatorSum=accumulatorSum.plus(_valueObject),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1))}),accumulatorSum.isError())return accumulatorSum}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Averagea,"Averagea");let Averagea=_Averagea;const _Averageif=class _Averageif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(range,criteria,averageRange){if(range.isError())return range;if(criteria.isError())return criteria;if(averageRange!=null&&averageRange.isError())return averageRange;let _range=range;_range.isReferenceObject()&&(_range=_range.toArrayValueObject()),_range.isArray()||(_range=createNewArray([[_range]],1,1));let _criteria=criteria;return _criteria.isReferenceObject()&&(_criteria=_criteria.toArrayValueObject()),averageRange&&!(averageRange!=null&&averageRange.isReferenceObject())?ErrorValueObject.create(ErrorType$1.NA):(_criteria=_criteria,_criteria.isArray()?_criteria.map(criteriaItem=>this._handleSingleObject(_range,criteriaItem,averageRange)):this._handleSingleObject(_range,_criteria,averageRange))}_handleSingleObject(range,criteria,averageRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);let averageRangeArray=averageRange?this._createRangeReferenceObject(averageRange,range):range;if(!averageRangeArray)return ErrorValueObject.create(ErrorType$1.VALUE);if(averageRangeArray.isError())return averageRangeArray;averageRangeArray.isReferenceObject()&&(averageRangeArray=averageRangeArray.toArrayValueObject()),averageRangeArray=averageRangeArray;const picked=averageRangeArray.pick(resultArrayObject),sum=picked.sum(),count=picked.count();return sum.divided(count)}_createRangeReferenceObject(averageRange,range){const averageRangeRow=averageRange.getRowCount(),averageRangeColumn=averageRange.getColumnCount(),rowCount=range.isArray()?range.getRowCount():1,columnCount=range.isArray()?range.getColumnCount():1;if(averageRangeRow===rowCount&&averageRangeColumn===columnCount)return averageRange;const{startRow,startColumn}=averageRange.getRangePosition(),rangeData={startRow,startColumn,endRow:startRow+rowCount-1,endColumn:startColumn+columnCount-1};return this.createReferenceObject(averageRange,rangeData)}};__name(_Averageif,"Averageif");let Averageif=_Averageif;const _Averageifs=class _Averageifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(averageRange,...variants){if(averageRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!averageRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,averageRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(averageRange,booleanResults)}_aggregateResults(averageRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=averageRange.pick(booleanResult),sum=picked.sum(),count=picked.count();return sum.divided(count)})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Averageifs,"Averageifs");let Averageifs=_Averageifs;const _Count=class _Count extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){const variant=variants[i];variant.isError()||(variant.isArray()?accumulatorAll=accumulatorAll.plus(variant.count()):variant.isString()?variant.convertToNumberObjectValue().isError()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))))}return accumulatorAll}};__name(_Count,"Count");let Count=_Count;const _Counta=class _Counta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError()){accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1));continue}variant.isArray()?(variant=variant.countA(),accumulatorAll=accumulatorAll.plus(variant)):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1)))}return accumulatorAll}};__name(_Counta,"Counta");let Counta=_Counta;const _Countblank=class _Countblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isError()?variant:variant.getValue()===""||variant.isNull()?NumberValueObject.create(1):variant.isArray()?variant.countBlank():NumberValueObject.create(0)}};__name(_Countblank,"Countblank");let Countblank=_Countblank;const _Countif=class _Countif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(range,criteria){return range.isError()||criteria.isError()?ErrorValueObject.create(ErrorType$1.NA):range.isArray()?criteria.isArray()?criteria.mapValue(criteriaItem=>this._handleSingleObject(range,criteriaItem)):this._handleSingleObject(range,criteria):ErrorValueObject.create(ErrorType$1.VALUE)}_handleSingleObject(range,criteria){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const picked=range.pick(resultArrayObject);return this._countA(picked)}_countA(array){let accumulatorAll=NumberValueObject.create(0);return array.iterator(valueObject=>{if(valueObject==null)return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}};__name(_Countif,"Countif");let Countif=_Countif;const _Countifs=class _Countifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...variants){if(variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,variants[0],maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(booleanResults)}_aggregateResults(booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>countTrueValue(booleanResult))),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Countifs,"Countifs");let Countifs=_Countifs;function countTrueValue(array){let count=0;return array.iterator(value=>{value!=null&&value.isBoolean()&&value.getValue()===!0&&count++}),NumberValueObject.create(count)}__name(countTrueValue,"countTrueValue");const _Max=class _Max extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.max()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Max,"Max");let Max=_Max;const _Maxa=class _Maxa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Maxa,"Maxa");let Maxa=_Maxa;const _Maxifs=class _Maxifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(maxRange,...variants){if(maxRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!maxRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,maxRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(maxRange,booleanResults)}_aggregateResults(maxRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=maxRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.max()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Maxifs,"Maxifs");let Maxifs=_Maxifs;const _Min=class _Min extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.min()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Min,"Min");let Min=_Min;const _Mina=class _Mina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Mina,"Mina");let Mina=_Mina;const _Minifs=class _Minifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(minRange,...variants){if(minRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!minRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,minRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(minRange,booleanResults)}_aggregateResults(minRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=minRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.min()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Minifs,"Minifs");let Minifs=_Minifs;const _RankAvg=class _RankAvg extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();return Number.isNaN(numberValue)||Number.isNaN(orderValue)?ErrorValueObject.create(ErrorType$1.VALUE):this._getResult(numberValue,orderValue,refNumbers)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,orderValue,refNumbers){const refOrderNumbers=refNumbers.sort((a,b)=>orderValue?a-b:b-a);let index=refOrderNumbers.indexOf(numberValue);const results=[];for(;index>=0;){const start=index+1;results.push(start),index=refOrderNumbers.indexOf(numberValue,start)}if(results.length===0)return ErrorValueObject.create(ErrorType$1.NA);const result=results.reduce((acc,cur)=>acc+cur,0)/results.length;return NumberValueObject.create(result)}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankAvg,"RankAvg");let RankAvg=_RankAvg;const _RankEq=class _RankEq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankEq,"RankEq");let RankEq=_RankEq;const _Stdeva=class _Stdeva extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_Stdeva,"Stdeva");let Stdeva=_Stdeva;const _Stdevpa=class _Stdevpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_Stdevpa,"Stdevpa");let Stdevpa=_Stdevpa;const _Vara=class _Vara extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_Vara,"Vara");let Vara=_Vara;const _Varpa=class _Varpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_Varpa,"Varpa");let Varpa=_Varpa;const functionStatistical=[[Avedev,FUNCTION_NAMES_STATISTICAL.AVEDEV],[Average,FUNCTION_NAMES_STATISTICAL.AVERAGE],[Averagea,FUNCTION_NAMES_STATISTICAL.AVERAGEA],[Averageif,FUNCTION_NAMES_STATISTICAL.AVERAGEIF],[Averageifs,FUNCTION_NAMES_STATISTICAL.AVERAGEIFS],[Count,FUNCTION_NAMES_STATISTICAL.COUNT],[Counta,FUNCTION_NAMES_STATISTICAL.COUNTA],[Countblank,FUNCTION_NAMES_STATISTICAL.COUNTBLANK],[Countif,FUNCTION_NAMES_STATISTICAL.COUNTIF],[Countifs,FUNCTION_NAMES_STATISTICAL.COUNTIFS],[Max,FUNCTION_NAMES_STATISTICAL.MAX],[Maxa,FUNCTION_NAMES_STATISTICAL.MAXA],[Maxifs,FUNCTION_NAMES_STATISTICAL.MAXIFS],[Min,FUNCTION_NAMES_STATISTICAL.MIN],[Mina,FUNCTION_NAMES_STATISTICAL.MINA],[Minifs,FUNCTION_NAMES_STATISTICAL.MINIFS],[RankAvg,FUNCTION_NAMES_STATISTICAL.RANK_AVG],[RankEq,FUNCTION_NAMES_STATISTICAL.RANK_EQ],[StdevP,FUNCTION_NAMES_STATISTICAL.STDEV_P],[StdevS,FUNCTION_NAMES_STATISTICAL.STDEV_S],[Stdeva,FUNCTION_NAMES_STATISTICAL.STDEVA],[Stdevpa,FUNCTION_NAMES_STATISTICAL.STDEVPA],[VarP,FUNCTION_NAMES_STATISTICAL.VAR_P],[VarS,FUNCTION_NAMES_STATISTICAL.VAR_S],[Vara,FUNCTION_NAMES_STATISTICAL.VARA],[Varpa,FUNCTION_NAMES_STATISTICAL.VARPA]];var FUNCTION_NAMES_TEXT=(FUNCTION_NAMES_TEXT2=>(FUNCTION_NAMES_TEXT2.ASC="ASC",FUNCTION_NAMES_TEXT2.ARRAYTOTEXT="ARRAYTOTEXT",FUNCTION_NAMES_TEXT2.BAHTTEXT="BAHTTEXT",FUNCTION_NAMES_TEXT2.CHAR="CHAR",FUNCTION_NAMES_TEXT2.CLEAN="CLEAN",FUNCTION_NAMES_TEXT2.CODE="CODE",FUNCTION_NAMES_TEXT2.CONCAT="CONCAT",FUNCTION_NAMES_TEXT2.CONCATENATE="CONCATENATE",FUNCTION_NAMES_TEXT2.DBCS="DBCS",FUNCTION_NAMES_TEXT2.DOLLAR="DOLLAR",FUNCTION_NAMES_TEXT2.EXACT="EXACT",FUNCTION_NAMES_TEXT2.FIND="FIND",FUNCTION_NAMES_TEXT2.FINDB="FINDB",FUNCTION_NAMES_TEXT2.FIXED="FIXED",FUNCTION_NAMES_TEXT2.LEFT="LEFT",FUNCTION_NAMES_TEXT2.LEFTB="LEFTB",FUNCTION_NAMES_TEXT2.LEN="LEN",FUNCTION_NAMES_TEXT2.LENB="LENB",FUNCTION_NAMES_TEXT2.LOWER="LOWER",FUNCTION_NAMES_TEXT2.MID="MID",FUNCTION_NAMES_TEXT2.MIDB="MIDB",FUNCTION_NAMES_TEXT2.NUMBERVALUE="NUMBERVALUE",FUNCTION_NAMES_TEXT2.PHONETIC="PHONETIC",FUNCTION_NAMES_TEXT2.PROPER="PROPER",FUNCTION_NAMES_TEXT2.REPLACE="REPLACE",FUNCTION_NAMES_TEXT2.REPLACEB="REPLACEB",FUNCTION_NAMES_TEXT2.REPT="REPT",FUNCTION_NAMES_TEXT2.RIGHT="RIGHT",FUNCTION_NAMES_TEXT2.RIGHTB="RIGHTB",FUNCTION_NAMES_TEXT2.SEARCH="SEARCH",FUNCTION_NAMES_TEXT2.SEARCHB="SEARCHB",FUNCTION_NAMES_TEXT2.SUBSTITUTE="SUBSTITUTE",FUNCTION_NAMES_TEXT2.T="T",FUNCTION_NAMES_TEXT2.TEXT="TEXT",FUNCTION_NAMES_TEXT2.TEXTAFTER="TEXTAFTER",FUNCTION_NAMES_TEXT2.TEXTBEFORE="TEXTBEFORE",FUNCTION_NAMES_TEXT2.TEXTJOIN="TEXTJOIN",FUNCTION_NAMES_TEXT2.TEXTSPLIT="TEXTSPLIT",FUNCTION_NAMES_TEXT2.TRIM="TRIM",FUNCTION_NAMES_TEXT2.UNICHAR="UNICHAR",FUNCTION_NAMES_TEXT2.UNICODE="UNICODE",FUNCTION_NAMES_TEXT2.UPPER="UPPER",FUNCTION_NAMES_TEXT2.VALUE="VALUE",FUNCTION_NAMES_TEXT2.VALUETOTEXT="VALUETOTEXT",FUNCTION_NAMES_TEXT2.CALL="CALL",FUNCTION_NAMES_TEXT2.EUROCONVERT="EUROCONVERT",FUNCTION_NAMES_TEXT2.REGISTER_ID="REGISTER.ID",FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT||{});const _Concat=class _Concat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let concatenatedString="",isError=null;for(const textValue of textValues)if(textValue.isArray()){if(textValue.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;if(valueObject.isError())return isError=valueObject,!1;valueObject.isBoolean()?concatenatedString+=`${valueObject.getValue()}`.toLocaleUpperCase():(valueObject.isString()||valueObject.isNumber())&&(concatenatedString+=valueObject.getValue())}),isError)return isError}else!textValue.isError()&&!textValue.isNull()&&(concatenatedString+=textValue.getValue());return StringValueObject.create(concatenatedString)}};__name(_Concat,"Concat");let Concat=_Concat;const _Concatenate=class _Concatenate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let maxRowLength=0,maxColumnLength=0;textValues.forEach(textValue=>{if(textValue.isArray()){const arrayValue=textValue;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});let result=null;for(const textValue of textValues)result=expandArrayValueObject(maxRowLength,maxColumnLength,textValue,ErrorValueObject.create(ErrorType$1.NA)).mapValue((textValueObject,rowIndex,columnIndex)=>{const resultValueObject=result&&result.get(rowIndex,columnIndex);if(resultValueObject!=null&&resultValueObject.isError())return resultValueObject;if(textValueObject.isError())return textValueObject;let resultValue=resultValueObject==null?void 0:resultValueObject.getValue(),textValue2=textValueObject==null?void 0:textValueObject.getValue();resultValueObject!=null&&resultValueObject.isBoolean()&&(resultValue=`${resultValue}`.toLocaleUpperCase()),textValueObject!=null&&textValueObject.isBoolean()&&(textValue2=`${textValue2}`.toLocaleUpperCase());const resultValueObjectString=resultValueObject!=null&&resultValueObject.isNull()?"":resultValue!=null?resultValue:"",textValueObjectString=textValueObject!=null&&textValueObject.isNull()?"":textValue2!=null?textValue2:"";return StringValueObject.create(`${resultValueObjectString}${textValueObjectString}`)});return result||ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Concatenate,"Concatenate");let Concatenate=_Concatenate;const _Len=class _Len extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isNumber()){const numberValue=text.getValue(),numberValueString=stripErrorMargin(numberValue,12,Number.EPSILON).toString();return NumberValueObject.create(numberValueString.length)}if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString();return NumberValueObject.create(textValue.length)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Len,"Len");let Len=_Len;function charLenByte(str){let byteCount=0;for(let i=0;i<str.length;i++){const charCode=str.charCodeAt(i);charCode>=12352&&charCode<=12543||charCode>=19968&&charCode<=40959||charCode>=44032&&charCode<=55215?byteCount+=2:byteCount+=1}return byteCount}__name(charLenByte,"charLenByte");const _Lenb=class _Lenb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString(),textByteLen=charLenByte(textValue);return NumberValueObject.create(textByteLen)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lenb,"Lenb");let Lenb=_Lenb;const _Lower=class _Lower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return StringValueObject.create("");if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString().toLowerCase();return StringValueObject.create(textValue)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lower,"Lower");let Lower=_Lower;const _Rept=class _Rept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,numberTimes){if(text.isError())return text;if(numberTimes.isError())return numberTimes;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,numberTimes.isArray()?numberTimes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,numberTimes.isArray()?numberTimes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),numberTimesArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberTimes,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{let numberTimesObject=numberTimesArray.get(rowIndex,columnIndex);if(textObject.isError())return textObject;let textValue=textObject.getValue();if(textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue+="",numberTimesObject.isString()&&(numberTimesObject=numberTimesObject.convertToNumberObjectValue()),numberTimesObject.isError())return numberTimesObject;const stringMaxLength=32767,numberTimesValue=Math.floor(+numberTimesObject.getValue());if(numberTimesValue<0||numberTimesValue>stringMaxLength/textValue.length)return ErrorValueObject.create(ErrorType$1.VALUE);const result=textValue.repeat(numberTimesValue);return StringValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rept,"Rept");let Rept=_Rept;const getFormatPreview=__name((pattern,value)=>core.numfmt.format(pattern,value),"getFormatPreview"),_Text=class _Text extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,formatText){if(text.isError())return text;if(formatText.isError())return formatText;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,formatText.isArray()?formatText.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,formatText.isArray()?formatText.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text),formatTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,formatText);return textArray.map((textValue,rowIndex,columnIndex)=>{if(textValue.isError()||textValue.isString()||textValue.isBoolean())return textValue;let formatTextValue=formatTextArray.get(rowIndex,columnIndex)||StringValueObject.create(" ");if(formatTextValue.isError())return formatTextValue;if(formatTextValue.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);formatTextValue.isNull()&&(formatTextValue=StringValueObject.create(" "));const formatTextValueString=`${formatTextValue.getValue()}`;let textValueNumber=textValue.getValue();textValue.isNull()&&(textValueNumber=0);const previewText=getFormatPreview(formatTextValueString,textValueNumber);return StringValueObject.create(previewText)})}};__name(_Text,"Text");let Text=_Text;const _Textafter=class _Textafter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let _delimiter=delimiter;_delimiter.isArray()&&(_delimiter=_delimiter.get(0,0));let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiterObject,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject,delimiterObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getStringValue(delimiterObject),_variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue===""?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.length>textValue.length?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){const matchNum=textValue.match(new RegExp(delimiterValue,`g${matchModeValue?"i":""}`));if(matchNum&&matchNum.length<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum.length<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):ifNotFoundObject;let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.toLocaleLowerCase():delimiterValue;let resultIndex=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const index=substrText.lastIndexOf(_delimiterValue);resultIndex=index,substrText=substrText.substr(0,index)}else{const index=substrText.indexOf(_delimiterValue);resultIndex+=index+i*_delimiterValue.length,substrText=substrText.substr(index+_delimiterValue.length)}const result=textValue.substr(resultIndex+_delimiterValue.length);return StringValueObject.create(result)}};__name(_Textafter,"Textafter");let Textafter=_Textafter;const _Textbefore=class _Textbefore extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let _delimiter=delimiter;_delimiter.isArray()&&(_delimiter=_delimiter.get(0,0));let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiterObject,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject,delimiterObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getStringValue(delimiterObject),_variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue===""?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.length>textValue.length?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){const matchNum=textValue.match(new RegExp(delimiterValue,`g${matchModeValue?"i":""}`));if(matchNum&&matchNum.length<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum.length<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):ifNotFoundObject;let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.toLocaleLowerCase():delimiterValue;let resultIndex=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const index=substrText.lastIndexOf(_delimiterValue);resultIndex=index,substrText=substrText.substr(0,index)}else{const index=substrText.indexOf(_delimiterValue);resultIndex+=index+i*_delimiterValue.length,substrText=substrText.substr(index+_delimiterValue.length)}const result=textValue.substr(0,resultIndex);return StringValueObject.create(result)}};__name(_Textbefore,"Textbefore");let Textbefore=_Textbefore;const _Textsplit=class _Textsplit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,colDelimiter,rowDelimiter,ignoreEmpty,matchMode,padWith){let _rowDelimiter=rowDelimiter!=null?rowDelimiter:StringValueObject.create("\\s");const _ignoreEmpty=ignoreEmpty!=null?ignoreEmpty:NumberValueObject.create(0),_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_padWith=padWith!=null?padWith:StringValueObject.create(ErrorType$1.NA),{_variant:_colDelimiter,values:colDelimiterValue}=this._getStringValues(colDelimiter),{_variant,values:rowDelimiterValue}=this._getStringValues(_rowDelimiter);_rowDelimiter=_variant;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),ignoreEmptyArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignoreEmpty,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_colDelimiter,_rowDelimiter,ignoreEmptyArray,matchModeArray,_padWith,colDelimiterValue,rowDelimiterValue);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray.map(item=>item.get(0,0))}_getStringValues(variant){let _variant=variant;const values=[];if(_variant.isArray())_variant.iterator(variantObject=>{if(variantObject!=null&&variantObject.isError())return _variant=variantObject,!1;if(variantObject!=null&&variantObject.isNull())return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=this._getRegExpStringValue(variantObject);if(value==="")return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;values.push(value)});else{const value=this._getRegExpStringValue(_variant);value===""&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE)),values.push(value)}return{_variant,values}}_getResultArray(textArray,colDelimiter,rowDelimiter,ignoreEmptyArray,matchModeArray,padWith,colDelimiterValue,rowDelimiterValue){return textArray.map((textObject,rowIndex,columnIndex)=>{let ignoreEmptyObject=ignoreEmptyArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex);const _variantsError=this._checkVariantsError(textObject,colDelimiter,rowDelimiter,ignoreEmptyObject,matchModeObject);if(_variantsError.isError())return _variantsError;if(textObject.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let _padWith=padWith;if(_padWith.isArray()){const padWithRowCount=_padWith.getRowCount(),padWithColumnCount=_padWith.getColumnCount();if(padWithRowCount>1||padWithColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_padWith=_padWith.get(0,0)}let textValue=`${textObject.getValue()}`;if(textObject.isBoolean()&&(textValue=textValue.toLocaleUpperCase()),ignoreEmptyObject.isString()&&(ignoreEmptyObject=ignoreEmptyObject.convertToNumberObjectValue(),ignoreEmptyObject.isError()))return ignoreEmptyObject;const ignoreEmptyValue=Math.floor(+ignoreEmptyObject.getValue());if(matchModeObject.isString()&&(matchModeObject=matchModeObject.convertToNumberObjectValue(),matchModeObject.isError()))return matchModeObject;const matchModeValue=Math.floor(+matchModeObject.getValue());if(matchModeValue<0||matchModeValue>1)return ErrorValueObject.create(ErrorType$1.VALUE);let padWithValue=`${_padWith.getValue()}`;return _padWith.isBoolean()&&(padWithValue=padWithValue.toLocaleUpperCase()),this._getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue)})}_getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue){const rowDelimiterRegExp=new RegExp(rowDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),colDelimiterRegExp=new RegExp(colDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),resultRows=textValue.split(rowDelimiterRegExp);let resultColsMaxCount=1,result=resultRows.map(row=>{let cols=row.split(colDelimiterRegExp);return ignoreEmptyValue&&(cols=cols.filter(col=>col!=="")),resultColsMaxCount=Math.max(resultColsMaxCount,cols.length),cols});return result=result.map(row=>{let _row=row;return _row.length<resultColsMaxCount&&(_row=_row.concat(new Array(resultColsMaxCount-_row.length).fill(padWithValue))),_row}),ArrayValueObject.createByArray(result)}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getRegExpStringValue(valueObject){let value=valueObject.getValue();return valueObject.isNull()&&(value="\\s"),valueObject.isBoolean()&&(value=value?"TRUE":"FALSE"),value+="",this._escapeRegExp(value)}_escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};__name(_Textsplit,"Textsplit");let Textsplit=_Textsplit;const functionText=[[Concat,FUNCTION_NAMES_TEXT.CONCAT],[Concatenate,FUNCTION_NAMES_TEXT.CONCATENATE],[Len,FUNCTION_NAMES_TEXT.LEN],[Lenb,FUNCTION_NAMES_TEXT.LENB],[Lower,FUNCTION_NAMES_TEXT.LOWER],[Rept,FUNCTION_NAMES_TEXT.REPT],[Text,FUNCTION_NAMES_TEXT.TEXT],[Textafter,FUNCTION_NAMES_TEXT.TEXTAFTER],[Textbefore,FUNCTION_NAMES_TEXT.TEXTBEFORE],[Textsplit,FUNCTION_NAMES_TEXT.TEXTSPLIT]],functionUniver=[];var FUNCTION_NAMES_UNIVER=(FUNCTION_NAMES_UNIVER2=>FUNCTION_NAMES_UNIVER2)(FUNCTION_NAMES_UNIVER||{});const functionWeb=[];var FUNCTION_NAMES_WEB=(FUNCTION_NAMES_WEB2=>(FUNCTION_NAMES_WEB2.ENCODEURL="ENCODEURL",FUNCTION_NAMES_WEB2.FILTERXML="FILTERXML",FUNCTION_NAMES_WEB2.WEBSERVICE="WEBSERVICE",FUNCTION_NAMES_WEB2))(FUNCTION_NAMES_WEB||{});function updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell){var _a24;const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);if(checkFormulaString&&checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId});else if(checkFormulaString&&!checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString});else if(!checkFormulaString&&checkFormulaId)sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId});else if(!checkFormulaString&&!checkFormulaId&&sheetFormulaDataMatrix.getValue(r,c)){const currentFormulaInfo=sheetFormulaDataMatrix.getValue(r,c),f=(currentFormulaInfo==null?void 0:currentFormulaInfo.f)||"",si=(currentFormulaInfo==null?void 0:currentFormulaInfo.si)||"";if(core.isFormulaString(f)&&core.isFormulaId(si)){const updatedFormula=(_a24=formulaIdMap.get(si))==null?void 0:_a24.f;updatedFormula?deleteFormulaIdMap.set(si,updatedFormula):deleteFormulaIdMap.set(si,f)}sheetFormulaDataMatrix.realDeleteValue(r,c),newSheetFormulaDataMatrix.setValue(r,c,null)}}__name(updateFormulaDataByCellValue,"updateFormulaDataByCellValue");function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c){const arrayFormulaRangeValue=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(r,c);if(arrayFormulaRangeValue==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRangeValue;for(let r2=startRow;r2<=endRow;r2++)for(let c2=startColumn;c2<=endColumn;c2++)arrayFormulaCellDataMatrix.realDeleteValue(r2,c2)}__name(clearArrayFormulaCellDataByCell,"clearArrayFormulaCellDataByCell");var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m"),_a;exports.FormulaDataModel=(_a=class extends core.Disposable{constructor(_univerInstanceService,_lexerTreeBuilder){super();__publicField(this,"_formulaData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_arrayFormulaCellData",{});this._univerInstanceService=_univerInstanceService,this._lexerTreeBuilder=_lexerTreeBuilder,this.initFormulaData()}clearPreviousArrayFormulaCellData(clearArrayFormulaCellData){Object.keys(clearArrayFormulaCellData).forEach(unitId=>{const clearSheetData=clearArrayFormulaCellData[unitId];if(clearSheetData==null)return!0;Object.keys(clearSheetData).forEach(sheetId=>{var _a24,_b,_c,_d;const clearCellMatrixData=clearSheetData[sheetId],rangeMatrix=(_b=(_a24=this._arrayFormulaRange)==null?void 0:_a24[unitId])==null?void 0:_b[sheetId];if(rangeMatrix==null)return!0;let arrayFormulaCellMatrixData=new core.ObjectMatrix;((_c=this._arrayFormulaCellData[unitId])==null?void 0:_c[sheetId])!=null&&(arrayFormulaCellMatrixData=new core.ObjectMatrix((_d=this._arrayFormulaCellData[unitId])==null?void 0:_d[sheetId])),clearCellMatrixData.forValue((row,column)=>{var _a25;const range=(_a25=rangeMatrix==null?void 0:rangeMatrix[row])==null?void 0:_a25[column];if(range==null)return!0;const{startRow,startColumn,endRow,endColumn}=range;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}mergeArrayFormulaCellData(unitData){Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]==null&&(this._arrayFormulaRange[unitId]={}),this._arrayFormulaCellData[unitId]==null&&(this._arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24,_b;const cellMatrixData=sheetData[sheetId],arrayFormulaRangeMatrix=new core.ObjectMatrix((_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId]),arrayFormulaCellMatrixData=new core.ObjectMatrix((_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId]);cellMatrixData.forValue((row,column)=>{const arrayFormulaRange=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(row,column);if(arrayFormulaRange==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRange;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),cellMatrixData.forValue((row,column,cellData)=>{arrayFormulaCellMatrixData.setValue(row,column,cellData)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(value){this._formulaData=value}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(value){this._arrayFormulaRange=value}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(value){this._arrayFormulaCellData=value}mergeArrayFormulaRange(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]||(this._arrayFormulaRange[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24;const arrayFormula=new core.ObjectMatrix(sheetData[sheetId]),rangeMatrix=new core.ObjectMatrix((_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId]);arrayFormula.forValue((r,c,v)=>{rangeMatrix.setValue(r,c,v)}),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrix.getData())})})}mergeFormulaData(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData!==void 0){if(sheetData===null){delete this._formulaData[unitId];return}this._formulaData[unitId]||(this._formulaData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a24,_b;const currentSheetData=sheetData[sheetId];if(currentSheetData===void 0)return;if(currentSheetData===null){(_a24=this._formulaData[unitId])==null||delete _a24[sheetId];return}const sheetFormula=new core.ObjectMatrix(currentSheetData),formulaMatrix=new core.ObjectMatrix(((_b=this._formulaData[unitId])==null?void 0:_b[sheetId])||{});sheetFormula.forValue((r,c,v)=>{v==null?formulaMatrix.realDeleteValue(r,c):formulaMatrix.setValue(r,c,v)}),this._formulaData[unitId][sheetId]=formulaMatrix.clone()})}})}deleteArrayFormulaRange(unitId,sheetId,row,column){var _a24;const cellMatrixData=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(cellMatrixData==null)return;const rangeMatrixData=new core.ObjectMatrix(cellMatrixData);rangeMatrixData.getValue(row,column)&&(rangeMatrixData.realDeleteValue(row,column),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrixData.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length===0)return;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId();this._formulaData[unitId]={},workbook.getSheets().forEach(worksheet=>{const cellMatrix=worksheet.getCellMatrix(),sheetId=worksheet.getSheetId();initSheetFormulaData(this._formulaData,unitId,sheetId,cellMatrix)})}getCalculateData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),allUnitData={},unitSheetNameMap={};for(const workbook of unitAllSheet){const unitId=workbook.getUnitId(),sheets=workbook.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitSheetNameMap}}updateFormulaData(unitId,sheetId,cellValue){const cellMatrix=new core.ObjectMatrix(cellValue),formulaIdMap=this.getFormulaIdMap(unitId,sheetId),deleteFormulaIdMap=new Map,formulaData=this._formulaData;formulaData[unitId]==null&&(formulaData[unitId]={});const workbookFormulaData=formulaData[unitId];workbookFormulaData[sheetId]==null&&(workbookFormulaData[sheetId]={});const sheetFormulaDataMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{}),newSheetFormulaDataMatrix=new core.ObjectMatrix;return cellMatrix.forValue((r,c,cell)=>{updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell)}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)){const formulaInfo=formulaIdMap.get(formulaId),deleteFormula=deleteFormulaIdMap.get(formulaId);if(formulaInfo&&!core.isFormulaString(formulaString)){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else if(typeof deleteFormula=="string"){const x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0,offsetFormula=this._lexerTreeBuilder.moveFormulaRefOffset(deleteFormula,x,y);deleteFormulaIdMap.set(formulaId,{r,c,f:offsetFormula}),sheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId}),newSheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId})}else if(typeof deleteFormula=="object"){const x=c-deleteFormula.c,y=r-deleteFormula.r;sheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y})}}}),newSheetFormulaDataMatrix.clone()}updateArrayFormulaRange(unitId,sheetId,cellValue){var _a24;const arrayFormulaRange=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{arrayFormulaRangeMatrix.realDeleteValue(r,c)})}updateArrayFormulaCellData(unitId,sheetId,cellValue){var _a24,_b;const arrayFormulaRange=(_a24=this._arrayFormulaRange[unitId])==null?void 0:_a24[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange),arrayFormulaCellData=(_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId];if(!arrayFormulaCellData)return;const arrayFormulaCellDataMatrix=new core.ObjectMatrix(arrayFormulaCellData);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c)})}getFormulaItemBySId(sId,sheetId,unitId){const formulaData=this._formulaData;if(formulaData[unitId]==null)return null;const workbookFormulaData=formulaData[unitId];if((workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null)return null;const cellMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{});let formulaDataItem=null;return cellMatrix.forValue((row,column,item)=>{if(item==null)return!0;const{f,si,x=0,y=0}=item;if(si===sId&&f.length>0&&x===0&&y===0)return formulaDataItem=item,!1}),formulaDataItem}getFormulaDataItem(row,column,sheetId,unitId){var _a24,_b,_c,_d;return(_d=(_c=(_b=(_a24=this._formulaData)==null?void 0:_a24[unitId])==null?void 0:_b[sheetId])==null?void 0:_c[row])==null?void 0:_d[column]}getFormulaIdMap(unitId,sheetId){const formulaIdMap=new Map,formulaData=this._formulaData;if(formulaData[unitId]==null)return formulaIdMap;const workbookFormulaData=formulaData[unitId];return(workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null||new core.ObjectMatrix(workbookFormulaData[sheetId]||{}).forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0;core.isFormulaString(formulaString)&&core.isFormulaId(formulaId)&&x===0&&y===0&&formulaIdMap.set(formulaId,{f:formulaString,r,c})}),formulaIdMap}getFormulaStringByCell(row,column,sheetId,unitId){const formulaDataItem=this.getFormulaDataItem(row,column,sheetId,unitId);if(formulaDataItem==null)return null;const{f,si,x=0,y=0}=formulaDataItem;if(si!=null&&(x!==0||y!==0)){let formulaString="";if(f.length>0)formulaString=f;else{const originItem=this.getFormulaItemBySId(si,sheetId,unitId);if(originItem==null||originItem.f.length===0)return null;formulaString=originItem.f}return formulaString=this._lexerTreeBuilder.moveFormulaRefOffset(formulaString,x,y),formulaString}return core.isFormulaString(f)?f:null}},__name(_a,"FormulaDataModel"),_a);exports.FormulaDataModel=__decorateClass$m([__decorateParam$m(0,core.IUniverInstanceService),__decorateParam$m(1,core.Inject(LexerTreeBuilder))],exports.FormulaDataModel);function initSheetFormulaData(formulaData,unitId,sheetId,cellMatrix){const formulaIdMap=new Map,sheetFormulaDataMatrix=new core.ObjectMatrix;cellMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);checkFormulaString&&checkFormulaId?(sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c})):checkFormulaString&&!checkFormulaId?sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}):!checkFormulaString&&checkFormulaId&&sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)&&!core.isFormulaString(formulaString)){const formulaInfo=formulaIdMap.get(formulaId);if(formulaInfo){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else sheetFormulaDataMatrix.realDeleteValue(r,c)}}),formulaData[unitId]||(formulaData[unitId]={});const newSheetFormulaData=sheetFormulaDataMatrix.clone();return formulaData[unitId][sheetId]=newSheetFormulaData,{[unitId]:{[sheetId]:newSheetFormulaData}}}__name(initSheetFormulaData,"initSheetFormulaData");const SetArrayFormulaDataMutation={id:"formula.mutation.set-array-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},SetFormulaCalculationStartMutation={id:"formula.mutation.set-formula-calculation-start",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStopMutation={id:"formula.mutation.set-formula-calculation-stop",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationNotificationMutation={id:"formula.mutation.set-formula-calculation-notification",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationResultMutation={id:"formula.mutation.set-formula-calculation-result",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaDataMutation={id:"formula.mutation.set-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},_DefinedNamesService=class _DefinedNamesService extends core.Disposable{constructor(){super();__publicField(this,"_definedNameMap",{});__publicField(this,"_update$",new rxjs.Subject);__publicField(this,"update$",this._update$.asObservable());__publicField(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});__publicField(this,"_currentRange$",new rxjs.Subject);__publicField(this,"currentRange$",this._currentRange$.asObservable());__publicField(this,"_focusRange$",new rxjs.Subject);__publicField(this,"focusRange$",this._focusRange$.asObservable())}dispose(){this._definedNameMap={}}focusRange(unitId,id){const item=this.getValueById(unitId,id);item!=null&&this._focusRange$.next({...item,unitId})}setCurrentRange(range){this._currentRange=range,this._currentRange$.next(range)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return serializeRange(this._currentRange.range)}registerDefinedNames(unitId,params){this._definedNameMap[unitId]=params,this._update()}registerDefinedName(unitId,param){this._definedNameMap[unitId]==null&&(this._definedNameMap[unitId]={}),this._definedNameMap[unitId][param.id]=param,this._update()}removeDefinedName(unitId,id){var _a24;(_a24=this._definedNameMap[unitId])==null||delete _a24[id],this._update()}removeUnitDefinedName(unitId){delete this._definedNameMap[unitId],this._update()}getDefinedNameMap(unitId){return this._definedNameMap[unitId]}getValueByName(unitId,name){var _a24;const nameMap=this._definedNameMap[unitId];return nameMap==null?null:(_a24=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a24[0]}getValueById(unitId,id){var _a24;return(_a24=this._definedNameMap[unitId])==null?void 0:_a24[id]}hasDefinedName(unitId){return this._definedNameMap[unitId]==null?!1:(Array.from(Object.values(this._definedNameMap[unitId])).length||0)!==0}_update(){this._update$.next(null)}};__name(_DefinedNamesService,"DefinedNamesService");let DefinedNamesService=_DefinedNamesService;const IDefinedNamesService=core.createIdentifier("univer.formula.defined-names.service");var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l"),_a2;exports.FormulaCurrentConfigService=(_a2=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_formulaData",{});__publicField(this,"_sheetNameMap",{});__publicField(this,"_forceCalculate",!1);__publicField(this,"_dirtyRanges",[]);__publicField(this,"_dirtyNameMap",{});__publicField(this,"_dirtyDefinedNameMap",{});__publicField(this,"_dirtyUnitFeatureMap",{});__publicField(this,"_dirtyUnitOtherFormulaMap",{});__publicField(this,"_excludedCell");__publicField(this,"_sheetIdToNameMap",{});__publicField(this,"_executeUnitId","");__publicField(this,"_executeSubUnitId","");this._univerInstanceService=_univerInstanceService}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(unitId){this._executeUnitId=unitId}setExecuteSubUnitId(subUnitId){this._executeSubUnitId=subUnitId}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(unitId,sheetId){return this._sheetIdToNameMap[unitId]==null?"":this._sheetIdToNameMap[unitId][sheetId]||""}load(config){if(config.allUnitData&&config.unitSheetNameMap&&config.unitStylesData)this._unitData=config.allUnitData,this._unitStylesData=config.unitStylesData,this._sheetNameMap=config.unitSheetNameMap;else{const{allUnitData,unitSheetNameMap,unitStylesData}=this._loadSheetData();this._unitData=allUnitData,this._unitStylesData=unitStylesData,this._sheetNameMap=unitSheetNameMap}this._formulaData=config.formulaData,this._arrayFormulaCellData=convertUnitDataToRuntime(config.arrayFormulaCellData),this._forceCalculate=config.forceCalculate,this._dirtyRanges=config.dirtyRanges,this._dirtyNameMap=config.dirtyNameMap,this._dirtyDefinedNameMap=config.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=config.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=config.dirtyUnitOtherFormulaMap,this._excludedCell=config.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap}}loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell){this._dirtyRanges=dirtyRanges,this._excludedCell=excludedCell,this._dirtyNameMap={}}registerUnitData(unitData){this._unitData=unitData}registerFormulaData(formulaData){this._formulaData=formulaData}registerSheetNameMap(sheetNameMap){this._sheetNameMap=sheetNameMap}_mergeNameMap(unitSheetNameMap,dirtyNameMap){Object.keys(dirtyNameMap).forEach(unitId=>{dirtyNameMap[unitId]&&Object.keys(dirtyNameMap[unitId]).forEach(sheetId=>{unitSheetNameMap[unitId]==null&&(unitSheetNameMap[unitId]={}),unitSheetNameMap[unitId][dirtyNameMap[unitId][sheetId]]=sheetId})}),this._sheetIdToNameMap={},Object.keys(unitSheetNameMap).forEach(unitId=>{Object.keys(unitSheetNameMap[unitId]).forEach(sheetName=>{this._sheetIdToNameMap[unitId]==null&&(this._sheetIdToNameMap[unitId]={}),this._sheetIdToNameMap[unitId][unitSheetNameMap[unitId][sheetName]]=sheetName})})}_loadSheetData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();this._executeUnitId=workbook==null?void 0:workbook.getUnitId(),this._executeSubUnitId=worksheet==null?void 0:worksheet.getSheetId();const allUnitData={},unitStylesData={},unitSheetNameMap={};for(const workbook2 of unitAllSheet){const unitId=workbook2.getUnitId(),sheets=workbook2.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitStylesData[unitId]=workbook2.getStyles(),unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitStylesData,unitSheetNameMap}}},__name(_a2,"FormulaCurrentConfigService"),_a2);exports.FormulaCurrentConfigService=__decorateClass$l([__decorateParam$l(0,core.IUniverInstanceService)],exports.FormulaCurrentConfigService);const IFormulaCurrentConfigService=core.createIdentifier("univer.formula.current-data.service");var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k"),_a3;exports.Lexer=(_a3=class extends core.Disposable{constructor(_definedNamesService,_lexerTreeBuilder,_formulaCurrentConfigService){super(),this._definedNamesService=_definedNamesService,this._lexerTreeBuilder=_lexerTreeBuilder,this._formulaCurrentConfigService=_formulaCurrentConfigService}treeBuilder(formulaString,transformSuffix=!0){return this._lexerTreeBuilder.treeBuilder(formulaString,transformSuffix,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(formulaString){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(formulaString.indexOf(name)>-1)return!0}}return!1}_checkDefinedNameDirty(token){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++)if(names[i]===token)return!0}return!1}_injectDefinedName(sequenceArray){const unitId=this._formulaCurrentConfigService.getExecuteUnitId();if(unitId==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const sequenceNodes=this._lexerTreeBuilder.getSequenceNode(sequenceArray);let sequenceString="",hasDefinedName=!1;const definedNames=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"){sequenceString+=node;continue}const{nodeType,token}=node;if(nodeType===sequenceNodeType.REFERENCE||nodeType===sequenceNodeType.FUNCTION){const definedContent=this._definedNamesService.getValueByName(unitId,token);if(definedContent){let refString=definedContent.formulaOrRefString;refString.substring(0,1)===operatorToken.EQUALS&&(refString=refString.substring(1)),sequenceString+=refString,definedNames.push(definedContent.name),hasDefinedName=!0}else this._checkDefinedNameDirty(token)?(sequenceString+=ErrorType$1.NAME,hasDefinedName=!0,definedNames.push(token)):sequenceString+=token}else sequenceString+=token}return{sequenceString,hasDefinedName,definedNames}}},__name(_a3,"Lexer"),_a3);exports.Lexer=__decorateClass$k([__decorateParam$k(0,IDefinedNamesService),__decorateParam$k(1,core.Inject(LexerTreeBuilder)),__decorateParam$k(2,IFormulaCurrentConfigService)],exports.Lexer);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j"),FormulaExecuteStageType=(FormulaExecuteStageType2=>(FormulaExecuteStageType2[FormulaExecuteStageType2.IDLE=0]="IDLE",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY=1]="START_DEPENDENCY",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION=2]="START_CALCULATION",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",FormulaExecuteStageType2))(FormulaExecuteStageType||{}),FormulaExecutedStateType=(FormulaExecutedStateType2=>(FormulaExecutedStateType2[FormulaExecutedStateType2.INITIAL=0]="INITIAL",FormulaExecutedStateType2[FormulaExecutedStateType2.STOP_EXECUTION=1]="STOP_EXECUTION",FormulaExecutedStateType2[FormulaExecutedStateType2.NOT_EXECUTED=2]="NOT_EXECUTED",FormulaExecutedStateType2[FormulaExecutedStateType2.SUCCESS=3]="SUCCESS",FormulaExecutedStateType2))(FormulaExecutedStateType||{}),_a4;exports.FormulaRuntimeService=(_a4=class extends core.Disposable{constructor(_currentConfigService){super();__publicField(this,"_formulaExecuteStage",0);__publicField(this,"_stopState",!1);__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_currentRowCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentSubUnitId","");__publicField(this,"_currentUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_runtimeOtherData",{});__publicField(this,"_unitArrayFormulaRange",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeClearArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureRange",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_functionsExecutedState",0);__publicField(this,"_functionDefinitionPrivacyVar",new Map);__publicField(this,"_totalFormulasToCalculate",0);__publicField(this,"_completedFormulasCount",0);__publicField(this,"_totalArrayFormulasToCalculate",0);__publicField(this,"_completedArrayFormulasCount",0);__publicField(this,"_formulaCycleIndex",0);__publicField(this,"_isCycleDependency",!1);this._currentConfigService=_currentConfigService}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(value){this._totalArrayFormulasToCalculate=value}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(value){this._completedArrayFormulasCount=value}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(value){this._totalFormulasToCalculate=value}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(value){this._completedFormulasCount=value}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(index){this._formulaCycleIndex=index}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(type){this._formulaExecuteStage=type}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(row,column,rowCount,columnCount,sheetId,unitId){this._currentRow=row,this._currentColumn=column,this._currentRowCount=rowCount,this._currentColumnCount=columnCount,this._currentSubUnitId=sheetId,this._currentUnitId=unitId}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(lambdaId,lambdaVar){this._functionDefinitionPrivacyVar.set(lambdaId,lambdaVar)}getFunctionDefinitionPrivacyVar(lambdaId){return this._functionDefinitionPrivacyVar.get(lambdaId)}setRuntimeOtherData(formulaId,functionVariant){const subUnitId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeOtherData[unitId]===void 0&&(this._runtimeOtherData[unitId]={});const unitData=this._runtimeOtherData[unitId];unitData[subUnitId]===void 0&&(unitData[subUnitId]={});const subComponentData=unitData[subUnitId];let cellDatas=[];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn}=objectValueRefOrArray.getRangePosition();objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject),row=rowIndex-startRow,column=columnIndex-startColumn;cellDatas[row]==null&&(cellDatas[row]=[]),cellDatas[row][column]=value})}else cellDatas=[[objectValueToCellValue(functionVariant)]];subComponentData[formulaId]=cellDatas}setRuntimeData(functionVariant){const row=this._currentRow,column=this._currentColumn,rowCount=this._currentRowCount,columnCount=this.currentColumnCount,sheetId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeData[unitId]==null&&(this._runtimeData[unitId]={});const unitData=this._runtimeData[unitId];unitData[sheetId]==null&&(unitData[sheetId]=new core.ObjectMatrix),this._unitArrayFormulaRange[unitId]==null&&(this._unitArrayFormulaRange[unitId]={});const arrayFormulaRange=this._unitArrayFormulaRange[unitId];let arrayData=new core.ObjectMatrix;arrayFormulaRange[sheetId]&&(arrayData=new core.ObjectMatrix(arrayFormulaRange[sheetId])),this._runtimeArrayFormulaCellData[unitId]===void 0&&(this._runtimeArrayFormulaCellData[unitId]={});const runtimeArrayFormulaCellData=this._runtimeArrayFormulaCellData[unitId];runtimeArrayFormulaCellData[sheetId]==null&&(runtimeArrayFormulaCellData[sheetId]=new core.ObjectMatrix),this._runtimeClearArrayFormulaCellData[unitId]===void 0&&(this._runtimeClearArrayFormulaCellData[unitId]={});const clearArrayFormulaCellData=this._runtimeClearArrayFormulaCellData[unitId];clearArrayFormulaCellData[sheetId]==null&&(clearArrayFormulaCellData[sheetId]=new core.ObjectMatrix);const sheetData=unitData[sheetId],runtimeArrayUnitData=runtimeArrayFormulaCellData[sheetId],clearArrayUnitData=clearArrayFormulaCellData[sheetId];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn,endRow,endColumn}=objectValueRefOrArray.getRangePosition();if(startRow===endRow&&startColumn===endColumn){const firstCell=objectValueRefOrArray.getFirstCell(),valueObject=objectValueToCellValue(firstCell);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject);return}const arrayRange={startRow:row,startColumn:column,endRow:endRow-startRow+row,endColumn:endColumn-startColumn+column};if(arrayData.setValue(row,column,arrayRange),arrayFormulaRange[sheetId]=arrayData.getData(),this._checkIfArrayFormulaRangeHasData(unitId,sheetId,row,column,arrayRange)||this._checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange)){const errorObject=objectValueToCellValue(ErrorValueObject.create(ErrorType$1.SPILL));sheetData.setValue(row,column,errorObject),clearArrayUnitData.setValue(row,column,errorObject);const unitData2=this._currentConfigService.getUnitData();objectValueRefOrArray.iterator((_,rowIndex,columnIndex)=>{var _a24,_b;const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column,cell=(_b=(_a24=unitData2[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.cellData.getValue(currentRow,currentColumn);rowIndex===startRow&&columnIndex===startColumn?runtimeArrayUnitData.setValue(row,column,errorObject):cell!=null?(cell.v==null&&(cell.v=""),runtimeArrayUnitData.setValue(currentRow,currentColumn,cell)):runtimeArrayUnitData.setValue(currentRow,currentColumn,{v:""})})}else{const spillError=ErrorValueObject.create(ErrorType$1.SPILL);objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject);if(rowIndex===startRow&&columnIndex===startColumn){if(valueObject!=null&&valueObject.isError()&&valueObject.isEqualType(spillError))return clearArrayUnitData.setValue(row,column,{}),sheetData.setValue(row,column,{...objectValueToCellValue(spillError)}),!1;sheetData.setValue(row,column,{...value})}const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column;runtimeArrayUnitData.setValue(currentRow,currentColumn,value)})}}else{const valueObject=objectValueToCellValue(functionVariant);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject)}}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(featureId,featureRange){this._runtimeFeatureRange[featureId]=featureRange}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(featureId,featureData){this._runtimeFeatureCellData[featureId]=featureData}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(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,arrayRange){var _a24,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l;const{startRow,startColumn,endRow,endColumn}=arrayRange,unitData=this._currentConfigService.getUnitData(),unitArrayFormulaRange=(_c=(_b=(_a24=this._unitArrayFormulaRange[formulaUnitId])==null?void 0:_a24[formulaSheetId])==null?void 0:_b[formulaRow])==null?void 0:_c[formulaColumn];for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r===formulaRow&&formulaColumn===c)continue;const cell=(_f=(_e=(_d=this._runtimeData)==null?void 0:_d[formulaUnitId])==null?void 0:_e[formulaSheetId])==null?void 0:_f.getValue(r,c),arrayDataCell=(_i=(_h=(_g=this._runtimeArrayFormulaCellData)==null?void 0:_g[formulaUnitId])==null?void 0:_h[formulaSheetId])==null?void 0:_i.getValue(r,c),currentCell=(_l=(_k=(_j=unitData==null?void 0:unitData[formulaUnitId])==null?void 0:_j[formulaSheetId])==null?void 0:_k.cellData)==null?void 0:_l.getValue(r,c),featureCell=this._getRuntimeFeatureCellValue(r,c,formulaSheetId,formulaUnitId);if(!core.isNullCell(cell)||!core.isNullCell(arrayDataCell)&&!this._isInArrayFormulaRange(unitArrayFormulaRange,r,c)||!core.isNullCell(currentCell)||!core.isNullCell(featureCell))return!0}return!1}_getRuntimeFeatureCellValue(row,column,sheetId,unitId){return getRuntimeFeatureCell(row,column,sheetId,unitId,this._runtimeFeatureCellData)}_isInArrayFormulaRange(range,r,c){if(range==null)return!1;const{startRow,startColumn,endRow,endColumn}=range;return r>=startRow&&r<=endRow&&c>=startColumn&&c<=endColumn}_checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange){return arrayRange.endRow>=rowCount||arrayRange.endColumn>=columnCount}_isInDirtyRange(unitId,sheetId,row,column){const dirtyRanges=this._currentConfigService.getDirtyRanges();return dirtyRanges.length===0?!0:isInDirtyRange(dirtyRanges,unitId,sheetId,row,column)}},__name(_a4,"FormulaRuntimeService"),_a4);exports.FormulaRuntimeService=__decorateClass$j([__decorateParam$j(0,IFormulaCurrentConfigService)],exports.FormulaRuntimeService);const IFormulaRuntimeService=core.createIdentifier("univer.formula.runtime.service");var NodeType=(NodeType2=>(NodeType2.REFERENCE="ReferenceNode",NodeType2.VALUE="ValueNode",NodeType2.OPERATOR="OperatorNode",NodeType2.FUNCTION="FunctionNode",NodeType2.LAMBDA="LambdaNode",NodeType2.LAMBDA_PARAMETER="LambdaNodeParameter",NodeType2.ERROR="ErrorNode",NodeType2.BASE="Base",NodeType2.ROOT="Root",NodeType2.UNION="UnionNode",NodeType2.PREFIX="PrefixNode",NodeType2.SUFFIX="SuffixNode",NodeType2.NULL="NullNode",NodeType2))(NodeType||{});const NODE_ORDER_MAP=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]),_BaseAstNode=class _BaseAstNode extends core.Disposable{constructor(_token){super();__publicField(this,"_children",[]);__publicField(this,"_definedNames",[]);__publicField(this,"_parent");__publicField(this,"_valueObject");__publicField(this,"_calculateState",!1);__publicField(this,"_async",!1);__publicField(this,"_address",!1);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){var _a24;this._children.forEach(node=>{node.dispose()}),(_a24=this._valueObject)==null||_a24.dispose(),this._parent=null}get nodeType(){return NodeType.BASE}isAsync(){return this._async}isAddress(){return this._address}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(node){this._parent=node,node.addChildren(this)}getChildren(){return this._children}addChildren(...astNode){this._children.push(...astNode)}getToken(){return this._token}setValue(value){this._valueObject=value}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(state=!0){}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}async executeAsync(){return Promise.resolve(AstNodePromiseType.SUCCESS)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];childrenSerialization.push(item.serialize())}const result={token,nodeType:this.nodeType};return childrenCount>0&&(result.children=childrenSerialization),result}hasDefinedName(definedName){return this._definedNames.includes(definedName)}setDefinedNames(definedNames){this._definedNames=definedNames}};__name(_BaseAstNode,"BaseAstNode");let BaseAstNode=_BaseAstNode;const _ErrorNode=class _ErrorNode extends BaseAstNode{constructor(errorType){super(errorType);__publicField(this,"_errorValueObject");this._errorValueObject=ErrorValueObject.create(errorType)}get nodeType(){return NodeType.ERROR}static create(errorType){return new _ErrorNode(errorType)}getValue(){return this._errorValueObject}};__name(_ErrorNode,"ErrorNode");let ErrorNode=_ErrorNode;const DEFAULT_AST_NODE_FACTORY_Z_INDEX=100,_BaseAstNodeFactory=class _BaseAstNodeFactory extends core.Disposable{get zIndex(){return 0}create(param,currentRow,currentColumn){let token;return param instanceof LexerNode?token=param.getToken():token=param,new BaseAstNode(token)}};__name(_BaseAstNodeFactory,"BaseAstNodeFactory");let BaseAstNodeFactory=_BaseAstNodeFactory;const _AstRootNode=class _AstRootNode extends BaseAstNode{get nodeType(){return NodeType.ROOT}execute(){const node=this.getChildren()[0];node==null?this.setValue(ErrorValueObject.create(ErrorType$1.VALUE)):this.setValue(node.getValue())}};__name(_AstRootNode,"AstRootNode");let AstRootNode=_AstRootNode;const _AstRootNodeFactory=class _AstRootNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.ROOT)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;if(param.getToken()===DEFAULT_TOKEN_TYPE_ROOT)return new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT)}};__name(_AstRootNodeFactory,"AstRootNodeFactory");let AstRootNodeFactory=_AstRootNodeFactory;const _FunctionService=class _FunctionService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_functionExecutors",new Map);__publicField(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...functions){for(let i=0;i<functions.length;i++){const func=functions[i];this._functionExecutors.set(func.name,func)}}getExecutors(){return this._functionExecutors}getExecutor(functionToken){return this._functionExecutors.get(functionToken)}hasExecutor(functionToken){return this._functionExecutors.has(functionToken)}unregisterExecutors(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionExecutors.delete(functionToken)}}registerDescriptions(...descriptions){for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.set(description.functionName,description)}return core.toDisposable(()=>{for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.delete(description.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(functionToken){return this._functionDescriptions.get(functionToken)}hasDescription(functionToken){return this._functionDescriptions.has(functionToken)}unregisterDescriptions(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionDescriptions.delete(functionToken)}}};__name(_FunctionService,"FunctionService");let FunctionService=_FunctionService;const IFunctionService=core.createIdentifier("univer.formula.function.service");var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");const _PrefixNode=class _PrefixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.PREFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");value.isReferenceObject()&&(value=value.toArrayValueObject()),this._operatorString===prefixToken.MINUS?result=this._functionExecutor.calculate(NumberValueObject.create(0),value):this._operatorString===prefixToken.AT?result=this._handlerAT(value):result=ErrorValueObject.create(ErrorType$1.VALUE),this.setValue(result)}_handlerAT(value){if(!value.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const currentValue=value;if(currentValue.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const runtimeService=this._accessor.get(IFormulaRuntimeService),currentRow=runtimeService.currentRow||0,currentColumn=runtimeService.currentColumn||0;return currentValue.isRow()?currentValue.getCellByColumn(currentColumn):currentValue.isColumn()?currentValue.getCellByRow(currentRow):currentValue.isRange()||currentValue.isTable()?currentValue.getCellByPosition():ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_PrefixNode,"PrefixNode");let PrefixNode=_PrefixNode;var _a5;exports.PrefixNodeFactory=(_a5=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.PREFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const token=param.getToken(),tokenTrim=token.trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===prefixToken.MINUS)functionName=FUNCTION_NAMES_META.MINUS;else return tokenTrim===prefixToken.AT?new PrefixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new PrefixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a5,"PrefixNodeFactory"),_a5);exports.PrefixNodeFactory=__decorateClass$i([__decorateParam$i(0,IFunctionService),__decorateParam$i(1,core.Inject(core.Injector))],exports.PrefixNodeFactory);function prefixHandler(tokenTrim,functionService,injector){let minusPrefixNode,atPrefixNode;const prefix=tokenTrim.slice(0,2);let sliceLength=0;if(new RegExp(prefixToken.MINUS,"g").test(prefix)){const functionExecutor=functionService.getExecutor(FUNCTION_NAMES_META.MINUS);minusPrefixNode=new PrefixNode(injector,prefixToken.MINUS,functionExecutor),sliceLength++}return new RegExp(prefixToken.AT,"g").test(prefix)&&(atPrefixNode=new PrefixNode(injector,prefixToken.AT),minusPrefixNode&&atPrefixNode.setParent(minusPrefixNode),sliceLength++),sliceLength>0&&(tokenTrim=tokenTrim.slice(sliceLength)),{tokenTrim,minusPrefixNode,atPrefixNode}}__name(prefixHandler,"prefixHandler");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _FunctionNode=class _FunctionNode extends BaseAstNode{constructor(token,_functionExecutor,_currentConfigService,_runtimeService,_definedNamesService){super(token),this._functionExecutor=_functionExecutor,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return NodeType.FUNCTION}async executeAsync(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);let result;return resultVariant.isAsyncObject()||resultVariant.isAsyncArrayObject()?result=await resultVariant.getValue():result=resultVariant,this._setRefData(result),this.setValue(result),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);this._setRefData(resultVariant),this.setValue(resultVariant)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const children=this.getChildren(),childrenCount=children.length;if(!this._functionExecutor.needsExpandParams||childrenCount!==3)return;const lookupVectorOrArray=children[1].getValue(),resultVector=children[2].getValue();if(!(lookupVectorOrArray!=null&&lookupVectorOrArray.isReferenceObject())&&!(resultVector!=null&&resultVector.isReferenceObject()))return;const lookupVectorOrArrayRange=lookupVectorOrArray.getRangeData(),resultVectorRange=resultVector.getRangeData(),{startRow,startColumn,endRow,endColumn}=lookupVectorOrArrayRange,lookupCountRow=endRow-startRow+1,lookupCountColumn=endColumn-startColumn+1,{startRow:reStartRow,startColumn:reStartColumn,endRow:reEndRow,endColumn:reEndColumn}=resultVectorRange,resultCountRow=reEndRow-reStartRow+1,resultCountColumn=reEndColumn-reStartColumn+1;lookupCountRow!==resultCountRow&&(resultVectorRange.endRow+=lookupCountRow-resultCountRow),lookupCountColumn!==resultCountColumn&&(resultVectorRange.endColumn+=lookupCountColumn-resultCountColumn)}_calculate(variants){var _a24;const{minParams,maxParams}=this._functionExecutor;if(minParams!==-1&&maxParams!==-1&&(variants.length<minParams||variants.length>maxParams))return ErrorValueObject.create(ErrorType$1.NA);let resultVariant;if(this._setRefInfo(),this._functionExecutor.isCustom()){const resultVariantCustom=this._functionExecutor.calculateCustom(...variants.map(variant=>variant.isArray()?variant.toValue():variant.getValue()));if(typeof resultVariantCustom!="object"||resultVariantCustom==null)resultVariant=ValueObjectFactory.create(resultVariantCustom);else{const arrayValues=transformToValueObject(resultVariantCustom);resultVariant=ArrayValueObject.create({calculateValueList:arrayValues,rowCount:arrayValues.length,columnCount:((_a24=arrayValues[0])==null?void 0:_a24.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),resultVariant=this._functionExecutor.calculate(...variants);return resultVariant}_setDefinedNamesForFunction(){const editorUnitId=this._currentConfigService.getExecuteUnitId();if(editorUnitId==null)return;const definedNames=this._definedNamesService.getDefinedNameMap(editorUnitId);definedNames!=null&&this._functionExecutor.setDefinedNames(definedNames)}_setRefInfo(){const{currentUnitId,currentSubUnitId,currentRow,currentColumn}=this._runtimeService;this._functionExecutor.setRefInfo(currentUnitId,currentSubUnitId,currentRow,currentColumn)}_setRefData(variant){if(!variant.isReferenceObject())return;const referenceObject=variant;referenceObject.setForcedSheetId(this._currentConfigService.getSheetNameMap()),referenceObject.setUnitData(this._currentConfigService.getUnitData()),referenceObject.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),referenceObject.setRuntimeData(this._runtimeService.getUnitData()),referenceObject.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),referenceObject.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}};__name(_FunctionNode,"FunctionNode");let FunctionNode=_FunctionNode;var _a6;exports.FunctionNodeFactory=(_a6=class extends BaseAstNodeFactory{constructor(_functionService,_currentConfigService,_runtimeService,_definedNamesService,_injector){super(),this._functionService=_functionService,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.FUNCTION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(token){const functionExecutor=this._functionService.getExecutor(token);return functionExecutor?new FunctionNode(token,functionExecutor,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(typeof param=="string")return;const token=param.getToken(),{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(token.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(tokenTrim))&&!this._isParentUnionNode(param))return ErrorNode.create(ErrorType$1.VALUE);const tokenTrimUpper=tokenTrim.toUpperCase();if(this._functionService.hasExecutor(tokenTrimUpper)){const functionNode=this.create(tokenTrimUpper);return atPrefixNode?functionNode.setParent(atPrefixNode):minusPrefixNode&&functionNode.setParent(minusPrefixNode),functionNode}}_isParentUnionNode(param){var _a24,_b;return((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken())===matchToken.COLON}},__name(_a6,"FunctionNodeFactory"),_a6);exports.FunctionNodeFactory=__decorateClass$h([__decorateParam$h(0,IFunctionService),__decorateParam$h(1,IFormulaCurrentConfigService),__decorateParam$h(2,IFormulaRuntimeService),__decorateParam$h(3,IDefinedNamesService),__decorateParam$h(4,core.Inject(core.Injector))],exports.FunctionNodeFactory);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g"),_a7;exports.Interpreter=(_a7=class extends core.Disposable{constructor(_runtimeService){super(),this._runtimeService=_runtimeService}async executeAsync(node){if(!node)return ErrorValueObject.create(ErrorType$1.VALUE);await this._executeAsync(node);const value=node.getValue();if(value==null)throw new Error("node value is null");return Promise.resolve(value)}execute(node){if(!node)return ErrorValueObject.create(ErrorType$1.VALUE);this._execute(node);const value=node.getValue();if(value==null)throw new Error("node value is null");return value}executePreCalculateNode(node){return node.execute(),node.getValue()}checkAsyncNode(node){const result=[];this._checkAsyncNode(node,result);for(let i=0,len=result.length;i<len;i++)if(result[i]===!0)return!0;return!1}_checkAsyncNode(node,resultList){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];resultList.push(item.isAsync()),this._checkAsyncNode(item,resultList)}}async _executeAsync(node){if(this._runtimeService.isStopExecution())return Promise.resolve(AstNodePromiseType.ERROR);const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}await this._executeAsync(item)}return node.nodeType===NodeType.FUNCTION&&node.isAsync()?await node.executeAsync():node.execute(),Promise.resolve(AstNodePromiseType.SUCCESS)}_execute(node){if(this._runtimeService.isStopExecution())return AstNodePromiseType.ERROR;const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}this._execute(item)}return node.execute(),AstNodePromiseType.SUCCESS}},__name(_a7,"Interpreter"),_a7);exports.Interpreter=__decorateClass$g([__decorateParam$g(0,IFormulaRuntimeService)],exports.Interpreter);function isFirstChildParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER:!1}__name(isFirstChildParameter,"isFirstChildParameter");function isChildRunTimeParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER:!1}__name(isChildRunTimeParameter,"isChildRunTimeParameter");function getRootLexerHasValueNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(!currentLambdaPrivacyVar)return;const chainNode=currentLambdaPrivacyVar.get(lambdaParameter);return chainNode==null&&node.getValue()?node:getRootLexerHasValueNode(chainNode)}__name(getRootLexerHasValueNode,"getRootLexerHasValueNode");const _LambdaValueObjectObject=class _LambdaValueObjectObject extends BaseValueObject{constructor(_lambdaNode,_interpreter,_lambdaPrivacyVarKeys){super(0);__publicField(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=_lambdaNode,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys,this._lambdaPrivacyValueMap.clear()}static create(lambdaNode,interpreter,lambdaPrivacyVarKeys){return new _LambdaValueObjectObject(lambdaNode,interpreter,lambdaPrivacyVarKeys)}isLambda(){return!0}execute(...variants){const paramCount=this._lambdaPrivacyVarKeys.length;if(variants.length!==paramCount)return ErrorValueObject.create(ErrorType$1.VALUE);this._setLambdaPrivacyValueMap(variants),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let value;if(this._interpreter.checkAsyncNode(this._lambdaNode))value=new AsyncObject(this._interpreter.executeAsync(this._lambdaNode));else{const o=this._interpreter.execute(this._lambdaNode);o.isReferenceObject()?value=o.toArrayValueObject():value=o}return this._lambdaNode.setNotEmpty(!0),value}_setLambdaNodeValue(node){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER){const lambdaParameter=item.getLambdaParameter(),value=this._lambdaPrivacyValueMap.get(lambdaParameter);if(value)item.setValue(value);else{const currentLambdaPrivacyVar=item.getCurrentLambdaPrivacyVar(),node2=getRootLexerHasValueNode(currentLambdaPrivacyVar.get(lambdaParameter));node2!=null&&item.setValue(node2.getValue())}continue}this._setLambdaNodeValue(item)}}_setLambdaPrivacyValueMap(variants){for(let i=0;i<variants.length;i++){const variant=variants[i],key=this._lambdaPrivacyVarKeys[i];this._lambdaPrivacyValueMap.set(key,variant)}}};__name(_LambdaValueObjectObject,"LambdaValueObjectObject");let LambdaValueObjectObject=_LambdaValueObjectObject;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const _LambdaNode=class _LambdaNode extends BaseAstNode{constructor(token,_lambdaId,_interpreter,_lambdaPrivacyVarKeys){super(token);__publicField(this,"_isNotEmpty",!0);this._lambdaId=_lambdaId,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys}get nodeType(){return NodeType.LAMBDA}setNotEmpty(state=!1){this._isNotEmpty=state}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(LambdaValueObjectObject.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const children=this.getChildren(),childrenCount=children.length;this.setValue(children[childrenCount-1].getValue())}}};__name(_LambdaNode,"LambdaNode");let LambdaNode=_LambdaNode;var _a8;exports.LambdaNodeFactory=(_a8=class extends BaseAstNodeFactory{constructor(_runtimeService,_interpreter){super(),this._runtimeService=_runtimeService,this._interpreter=_interpreter}get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const children=param.getChildren(),lambdaVar=children[0];let parameterArray=children.slice(1,-1);const functionStatementNode=children[children.length-1];if(!(lambdaVar instanceof LexerNode&&functionStatementNode instanceof LexerNode))return ErrorNode.create(ErrorType$1.NAME);if(lambdaVar.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){const lambdaVarChildren=lambdaVar.getChildren();if(parameterArray.length!==lambdaVarChildren.length)return ErrorNode.create(ErrorType$1.VALUE)}else parameterArray=children.slice(0,-1);const lambdaId=core.Tools.generateRandomId(8),currentLambdaPrivacyVar=new Map;for(let i=0;i<parameterArray.length;i++){const parameter=parameterArray[i];if(parameter instanceof LexerNode){const variant=parameter.getChildren()[0];parameter.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER),currentLambdaPrivacyVar.set(variant.trim(),void 0)}else return ErrorNode.create(ErrorType$1.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(lambdaId,currentLambdaPrivacyVar),this._updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar),new LambdaNode(param.getToken(),lambdaId,this._interpreter,[...currentLambdaPrivacyVar.keys()])}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim().toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME))return this.create(param)}_updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){this._updateTree(functionStatementNode,lambdaId,currentLambdaPrivacyVar)}_updateTree(functionStatementNode,lambdaId,currentLambdaPrivacyVar){const children=functionStatementNode.getChildren(),childrenCount=children.length,firstChild=children[0];for(let i=0;i<childrenCount;i++){const node=children[i];if(!(isFirstChildParameter(firstChild)&&i!==0))if(node instanceof LexerNode)this._updateTree(node,lambdaId,currentLambdaPrivacyVar);else{const token=node.trim();if(currentLambdaPrivacyVar.has(token)){const newNode=new LexerNode;newNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER),newNode.setLambdaId(lambdaId),newNode.setLambdaPrivacyVar(currentLambdaPrivacyVar),newNode.setLambdaParameter(token),children[i]=newNode}}}}},__name(_a8,"LambdaNodeFactory"),_a8);exports.LambdaNodeFactory=__decorateClass$f([__decorateParam$f(0,IFormulaRuntimeService),__decorateParam$f(1,core.Inject(exports.Interpreter))],exports.LambdaNodeFactory);function getRootLexerNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(currentLambdaPrivacyVar)return getRootLexerNode(currentLambdaPrivacyVar.get(lambdaParameter))}__name(getRootLexerNode,"getRootLexerNode");const _LambdaParameterNode=class _LambdaParameterNode extends BaseAstNode{constructor(token,_lambdaParameter,_currentLambdaPrivacyVar){super(token),this._lambdaParameter=_lambdaParameter,this._currentLambdaPrivacyVar=_currentLambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return NodeType.LAMBDA_PARAMETER}execute(){const node=getRootLexerNode(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(node)this.setValue(node.getValue());else{const value=this.getValue();(value==null||value.isError())&&this.setValue(ErrorValueObject.create(ErrorType$1.SPILL))}}};__name(_LambdaParameterNode,"LambdaParameterNode");let LambdaParameterNode=_LambdaParameterNode;const _LambdaParameterNodeFactory=class _LambdaParameterNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA_PARAMETER)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const currentLambdaPrivacyVar=param.getFunctionDefinitionPrivacyVar(),lambdaParameter=param.getLambdaParameter();return currentLambdaPrivacyVar?new LambdaParameterNode(param.getToken(),lambdaParameter,currentLambdaPrivacyVar):new ErrorNode(ErrorType$1.SPILL)}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER))return this.create(param)}};__name(_LambdaParameterNodeFactory,"LambdaParameterNodeFactory");let LambdaParameterNodeFactory=_LambdaParameterNodeFactory;const _NullNode=class _NullNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.NULL}execute(){this.setValue(NullValueObject.create())}};__name(_NullNode,"NullNode");let NullNode=_NullNode;var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const _OperatorNode=class _OperatorNode extends BaseAstNode{constructor(_operatorString,_functionExecutor){super(_operatorString),this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.OPERATOR}execute(){var _a24,_b;const children=this.getChildren();this._functionExecutor.name===FUNCTION_NAMES_META.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let object1=(_a24=children[0])==null?void 0:_a24.getValue(),object2=(_b=children[1])==null?void 0:_b.getValue();const token=this.getToken();if((object1==null||object2==null)&&token!==operatorToken.MINUS&&token!==operatorToken.PLUS){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}object1==null&&(object1=NullValueObject.create()),object2==null&&(object2=NullValueObject.create()),object1.isReferenceObject()&&(object1=object1.toArrayValueObject()),object2.isReferenceObject()&&(object2=object2.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(object1,object2))}};__name(_OperatorNode,"OperatorNode");let OperatorNode=_OperatorNode;var _a9;exports.OperatorNodeFactory=(_a9=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.OPERATOR)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){let functionName="";const tokenTrim=param;tokenTrim===operatorToken.PLUS?functionName=FUNCTION_NAMES_META.PLUS:tokenTrim===operatorToken.MINUS?functionName=FUNCTION_NAMES_META.MINUS:tokenTrim===operatorToken.MULTIPLY?functionName=FUNCTION_NAMES_META.MULTIPLY:tokenTrim===operatorToken.DIVIDED?functionName=FUNCTION_NAMES_META.DIVIDED:tokenTrim===operatorToken.CONCATENATE?functionName=FUNCTION_NAMES_TEXT.CONCATENATE:tokenTrim===operatorToken.POWER?functionName=FUNCTION_NAMES_MATH.POWER:OPERATOR_TOKEN_COMPARE_SET.has(tokenTrim)&&(functionName=FUNCTION_NAMES_META.COMPARE);const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new OperatorNode(tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(param instanceof LexerNode)return;const tokenTrim=param.trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&OPERATOR_TOKEN_SET.has(tokenTrim))return this.create(tokenTrim)}},__name(_a9,"OperatorNodeFactory"),_a9);exports.OperatorNodeFactory=__decorateClass$e([__decorateParam$e(0,IFunctionService)],exports.OperatorNodeFactory);const _SuperTableService=class _SuperTableService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_tableMap",new Map);__publicField(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(unitId,tableName){var _a24;(_a24=this._tableMap.get(unitId))==null||_a24.delete(tableName)}getTableMap(unitId){return this._tableMap.get(unitId)}getTableOptionMap(){return this._tableOptionMap}registerTable(unitId,tableName,reference){var _a24;this._tableMap.get(unitId)==null&&this._tableMap.set(unitId,new Map),(_a24=this._tableMap.get(unitId))==null||_a24.set(tableName,reference)}registerTableOptionMap(tableOption,tableOptionType){this._tableOptionMap.set(tableOption,tableOptionType)}};__name(_SuperTableService,"SuperTableService");let SuperTableService=_SuperTableService;const ISuperTableService=core.createIdentifier("univer.formula.super-table.service"),_TableReferenceObject=class _TableReferenceObject extends BaseReferenceObject{constructor(token,_tableData,_columnDataString,tableOptionMap){super(token),this._tableData=_tableData,this._columnDataString=_columnDataString;const sheetId=this._tableData.sheetId,range=this._tableData.range,titleMap=this._tableData.titleMap;this.setForcedSheetIdDirect(sheetId);const columnData=this._stringToColumnData(this._columnDataString,titleMap,tableOptionMap),startColumn=columnData.startColumn,endColumn=columnData.endColumn,type=columnData.type;let startRow=-1,endRow=-1;const tableStartRow=range.startRow,tableEndRow=range.startColumn;type===TableOptionType.ALL?(startRow=tableStartRow,endRow=tableEndRow):type===TableOptionType.DATA?(startRow=tableStartRow+1,endRow=tableEndRow):type===TableOptionType.HEADERS?(startRow=tableStartRow,endRow=tableStartRow):type===TableOptionType.TOTALS&&(startRow=tableEndRow,endRow=tableEndRow),this.setRangeData({startColumn,endColumn,startRow,endRow})}isTable(){return!0}_stringToColumnData(columnDataString,titleMap,tableOptionMap){columnDataString=columnDataString.substring(1,-1);const commaIndex=columnDataString.indexOf(matchToken.COMMA);let startColumn=-1,endColumn=-1,type=TableOptionType.ALL;if(commaIndex===-1){const data=this._columnHandler(columnDataString,titleMap);startColumn=data.startColumn,endColumn=data.endColumn}else{const rowString=columnDataString.substring(0,commaIndex).substring(1,-1),columnString=columnDataString.substring(commaIndex+1),data=this._columnHandler(columnString,titleMap,!0);startColumn=data.startColumn,endColumn=data.endColumn,type=tableOptionMap.get(rowString),type||(type=TableOptionType.ALL)}return{startColumn,endColumn,type}}_columnHandler(rightString,titleMap,isSingle=!1){var _a24,_b,_c;let startColumn=-1,endColumn=-1;const colonIndex=rightString.indexOf(matchToken.COLON);if(new RegExp($SUPER_TABLE_COLUMN_REGEX,"g").test(rightString)){const startColumnString=rightString.substring(0,colonIndex).substring(1,-1),endColumnString=rightString.substring(colonIndex+1).substring(1,-1);startColumn=(_a24=titleMap.get(startColumnString))!=null?_a24:-1,endColumn=(_b=titleMap.get(endColumnString))!=null?_b:-1}else isSingle&&(rightString=rightString.substring(1,-1)),startColumn=(_c=titleMap.get(rightString))!=null?_c:-1,endColumn=startColumn;return{startColumn,endColumn}}};__name(_TableReferenceObject,"TableReferenceObject");let TableReferenceObject=_TableReferenceObject;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");const _ReferenceNode=class _ReferenceNode extends BaseAstNode{constructor(_accessor,_operatorString,_referenceObject,_isPrepareMerge=!1){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._referenceObject=_referenceObject,this._isPrepareMerge=_isPrepareMerge}get nodeType(){return NodeType.REFERENCE}execute(){const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),runtimeService=this._accessor.get(IFormulaRuntimeService);this._referenceObject.setDefaultUnitId(runtimeService.currentUnitId),this._referenceObject.setDefaultSheetId(runtimeService.currentSubUnitId),this._referenceObject.setForcedSheetId(currentConfigService.getSheetNameMap()),this._referenceObject.setUnitData(currentConfigService.getUnitData()),this._referenceObject.setArrayFormulaCellData(currentConfigService.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(runtimeService.getUnitData()),this._referenceObject.setUnitStylesData(currentConfigService.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(runtimeService.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(runtimeService.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();this._referenceObject.setRefOffset(x,y),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(ErrorValueObject.create(ErrorType$1.NAME)):this.setValue(this._referenceObject)}};__name(_ReferenceNode,"ReferenceNode");let ReferenceNode=_ReferenceNode;var _a10;exports.ReferenceNodeFactory=(_a10=class extends BaseAstNodeFactory{constructor(_superTableService,_formulaRuntimeService,_functionService,_injector){super(),this._superTableService=_superTableService,this._formulaRuntimeService=_formulaRuntimeService,this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.REFERENCE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){var _a24,_b;let isLexerNode=!1,tokenTrimPre,isPrepareMerge=!1;param instanceof LexerNode?(isLexerNode=!0,tokenTrimPre=param.getToken().trim(),((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON&&(isPrepareMerge=!0)):tokenTrimPre=param.trim();const{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(tokenTrimPre,this._functionService,this._injector);if(!isLexerNode&&tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let node;if(new RegExp(REFERENCE_SINGLE_RANGE_REGEX).test(tokenTrim))node=new ReferenceNode(this._injector,tokenTrim,new CellReferenceObject(tokenTrim),isPrepareMerge);else if(isLexerNode&&this._checkParentIsUnionOperator(param))new RegExp(REFERENCE_REGEX_SINGLE_ROW).test(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new RowReferenceObject(tokenTrim),isPrepareMerge):new RegExp(REFERENCE_REGEX_SINGLE_COLUMN).test(tokenTrim)&&(node=new ReferenceNode(this._injector,tokenTrim,new ColumnReferenceObject(tokenTrim),isPrepareMerge));else{const unitId=this._formulaRuntimeService.currentUnitId,tableMap=this._superTableService.getTableMap(unitId),$regex=new RegExp($SUPER_TABLE_COLUMN_REGEX,"g"),tableName=tokenTrim.replace($regex,"");if(!isLexerNode&&(tableMap!=null&&tableMap.has(tableName))){const columnResult=$regex.exec(tokenTrim);let columnDataString="";columnResult&&(columnDataString=columnResult[0]);const tableData=tableMap.get(tableName),tableOption=this._superTableService.getTableOptionMap();node=new ReferenceNode(this._injector,tokenTrim,new TableReferenceObject(tokenTrim,tableData,columnDataString,tableOption))}}if(node)return atPrefixNode?node.setParent(atPrefixNode):minusPrefixNode&&node.setParent(minusPrefixNode),node}_checkParentIsUnionOperator(param){var _a24,_b;return((_b=(_a24=param.getParent())==null?void 0:_a24.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON}},__name(_a10,"ReferenceNodeFactory"),_a10);exports.ReferenceNodeFactory=__decorateClass$d([__decorateParam$d(0,ISuperTableService),__decorateParam$d(1,IFormulaRuntimeService),__decorateParam$d(2,IFunctionService),__decorateParam$d(3,core.Inject(core.Injector))],exports.ReferenceNodeFactory);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const _SuffixNode=class _SuffixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.SUFFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");if(this._operatorString===suffixToken.PERCENTAGE){if(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(value,NumberValueObject.create(100)),result.isNumber()){const value2=Number(result.getValue());result=NumberValueObject.create(value2,"0.00%")}}else this._operatorString===suffixToken.POUND?result=this._handlerPound(value):result=ErrorValueObject.create(ErrorType$1.VALUE);this.setValue(result)}_handlerPound(value){var _a24,_b,_c,_d;if(!value.isReferenceObject()||!value.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),lexer=this._accessor.get(exports.Lexer),cellValue=value,range=cellValue.getRangePosition(),unitId=cellValue.getUnitId(),sheetId=cellValue.getSheetId(),formulaData=currentConfigService.getFormulaData(),formulaString=(_d=(_c=(_b=(_a24=formulaData==null?void 0:formulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[range.startRow])==null?void 0:_c[range.startColumn])==null?void 0:_d.f;return formulaString&&lexer.treeBuilder(formulaString),ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_SuffixNode,"SuffixNode");let SuffixNode=_SuffixNode;var _a11;exports.SuffixNodeFactory=(_a11=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.SUFFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===suffixToken.PERCENTAGE)functionName=FUNCTION_NAMES_META.DIVIDED;else return tokenTrim===suffixToken.POUND?new SuffixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new SuffixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a11,"SuffixNodeFactory"),_a11);exports.SuffixNodeFactory=__decorateClass$c([__decorateParam$c(0,IFunctionService),__decorateParam$c(1,core.Inject(core.Injector))],exports.SuffixNodeFactory);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const _UnionNode=class _UnionNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.UNION}execute(){const children=this.getChildren(),leftNode=children[0].getValue(),rightNode=children[1].getValue();if(leftNode==null||rightNode==null)throw new Error("leftNode and rightNode");let result;this._operatorString===matchToken.COLON?result=this._unionFunction(leftNode,rightNode):result=ErrorValueObject.create(ErrorType$1.NAME),this.setValue(result)}_unionFunction(variant1,variant2){return variant1.isError()||variant2.isError()||!variant1.isReferenceObject()||!variant2.isReferenceObject()?ErrorValueObject.create(ErrorType$1.REF):(variant1=variant1,variant2=variant2,variant1.isCell()&&variant2.isCell()||variant1.isRow()&&variant2.isRow()||variant1.isColumn()&&variant2.isColumn()?variant1.unionBy(variant2):ErrorValueObject.create(ErrorType$1.NAME))}};__name(_UnionNode,"UnionNode");let UnionNode=_UnionNode;var _a12;exports.UnionNodeFactory=(_a12=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.UNION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){return new UnionNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&tokenTrim===matchToken.COLON)return this.create(tokenTrim)}},__name(_a12,"UnionNodeFactory"),_a12);exports.UnionNodeFactory=__decorateClass$b([__decorateParam$b(0,IFunctionService)],exports.UnionNodeFactory);const _ValueNode=class _ValueNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.VALUE}execute(){this.setValue(ValueObjectFactory.create(this._operatorString))}};__name(_ValueNode,"ValueNode");let ValueNode=_ValueNode;const _ValueNodeFactory=class _ValueNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.VALUE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}_checkValueNode(token){if(Number.isNaN(Number(token))){const tokenTrim=token.trim(),startToken=tokenTrim.charAt(0),endToken=tokenTrim.charAt(tokenTrim.length-1);if(ERROR_TYPE_SET.has(tokenTrim))return this.create(tokenTrim);if(startToken==='"'&&endToken==='"')return this.create(tokenTrim);if(startToken==="{"&&endToken==="}")return this.create(tokenTrim);const tokenTrimUpper=tokenTrim.toUpperCase();if(tokenTrimUpper===BooleanValue.TRUE||tokenTrimUpper===BooleanValue.FALSE)return this.create(tokenTrimUpper)}else return this.create(token)}create(param){return new ValueNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return this._checkValueNode(param)}};__name(_ValueNodeFactory,"ValueNodeFactory");let ValueNodeFactory=_ValueNodeFactory;function getAstNodeTopParent(node){let parent=node;for(;parent!=null&&parent.getParent();)parent=parent.getParent();return parent}__name(getAstNodeTopParent,"getAstNodeTopParent");var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a"),_a13;exports.AstTreeBuilder=(_a13=class extends core.Disposable{constructor(_runtimeService,_astRootNodeFactory,_functionNodeFactory,_lambdaNodeFactory,_lambdaParameterNodeFactory,_operatorNodeFactory,_prefixNodeFactory,_referenceNodeFactory,_suffixNodeFactory,_unionNodeFactory,_valueNodeFactory){super();__publicField(this,"_astNodeFactoryList",[]);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._runtimeService=_runtimeService,this._astRootNodeFactory=_astRootNodeFactory,this._functionNodeFactory=_functionNodeFactory,this._lambdaNodeFactory=_lambdaNodeFactory,this._lambdaParameterNodeFactory=_lambdaParameterNodeFactory,this._operatorNodeFactory=_operatorNodeFactory,this._prefixNodeFactory=_prefixNodeFactory,this._referenceNodeFactory=_referenceNodeFactory,this._suffixNodeFactory=_suffixNodeFactory,this._unionNodeFactory=_unionNodeFactory,this._valueNodeFactory=_valueNodeFactory,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(nodeFactory=>{nodeFactory.dispose()}),this._astNodeFactoryList=[]}parse(lexerNode,refOffsetX=0,refOffsetY=0){const astNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT);this._refOffsetX=refOffsetX,this._refOffsetY=refOffsetY;const node=this._parse(lexerNode,astNode);return lexerNode.hasDefinedNames()&&(node==null||node.setDefinedNames(lexerNode.getDefinedNames())),node}_lambdaParameterHandler(lexerNode,parent){if(parent.getLambdaId==null)return ErrorNode.create(ErrorType$1.VALUE);const lambdaId=parent.getLambdaId(),parentAstNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),currentLambdaPrivacyVar=this._runtimeService.getFunctionDefinitionPrivacyVar(lambdaId);if(!currentLambdaPrivacyVar)return!1;const currentLambdaPrivacyVarKeys=[...currentLambdaPrivacyVar.keys()],children=lexerNode.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item instanceof LexerNode)this._parse(item,parentAstNode);else return!1}const parentChildren=parentAstNode.getChildren(),parentChildrenCount=parentChildren.length;for(let i=0;i<parentChildrenCount;i++){const item=parentChildren[i];currentLambdaPrivacyVar.set(currentLambdaPrivacyVarKeys[i],item)}return parentAstNode.setParent(parent),parent}_changeLetToLambda(letLexerNode){const letChildren=letLexerNode.getChildren(),letChildrenCount=letChildren.length;if(letChildrenCount%2!==1||letChildrenCount===0)return;const newLambdaNode=new LexerNode;newLambdaNode.setToken(DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME);const newLambdaParameterNode=new LexerNode;newLambdaParameterNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER);const copyChildren=[...letChildren];for(let i=0;i<letChildrenCount;i++){const child=copyChildren[i];if(!(child instanceof LexerNode))return;i%2===0?child.changeToParent(newLambdaNode):child.changeToParent(newLambdaParameterNode)}newLambdaNode.addChildrenFirst(newLambdaParameterNode),newLambdaParameterNode.setParent(newLambdaNode);const parent=letLexerNode.getParent();return parent==null||parent.replaceChild(letLexerNode,newLambdaNode),newLambdaNode}_parse(lexerNode,parent){const children=lexerNode.getChildren(),childrenCount=children.length,calculateStack=[];let currentAstNode=null;const token=lexerNode.getToken().trim().toUpperCase();if(token===DEFAULT_TOKEN_LET_FUNCTION_NAME){const resultNode=this._changeLetToLambda(lexerNode);return resultNode!=null?this._parse(resultNode,parent):ErrorNode.create(ErrorType$1.ERROR)}if(token===DEFAULT_TOKEN_TYPE_PARAMETER){if(currentAstNode=parent,childrenCount===0)return new NullNode(DEFAULT_TOKEN_TYPE_ROOT).setParent(parent),currentAstNode}else{if(token===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){let resultNode=this._lambdaParameterHandler(lexerNode,parent);return resultNode===!1&&(resultNode=ErrorNode.create(ErrorType$1.ERROR)),resultNode}if(currentAstNode=this._checkAstNode(lexerNode),currentAstNode==null)return ErrorNode.create(ErrorType$1.NAME)}const firstChild=children[0];for(let i=0;i<childrenCount;i++){const item=children[i];if(isFirstChildParameter(firstChild)){if(i!==0&&i!==childrenCount-1)continue}else if(isChildRunTimeParameter(item)&&i!==childrenCount-1)continue;let astNode=null;if(item instanceof LexerNode){if(astNode=this._parse(item,currentAstNode),astNode===currentAstNode)continue}else astNode=this._checkAstNode(item);if(astNode==null)return ErrorNode.create(ErrorType$1.NAME);if(astNode=getAstNodeTopParent(astNode),astNode==null)return;switch(astNode.nodeType){case NodeType.ERROR:return astNode;case NodeType.FUNCTION:calculateStack.push(astNode);break;case NodeType.LAMBDA:calculateStack.push(astNode);break;case NodeType.LAMBDA_PARAMETER:calculateStack.push(astNode);break;case NodeType.OPERATOR:{const parameterNode1=calculateStack.pop(),parameterNode2=calculateStack.pop();parameterNode2&&parameterNode2.setParent(astNode),parameterNode1&&parameterNode1.setParent(astNode),calculateStack.push(astNode);break}case NodeType.REFERENCE:astNode.setRefOffset(this._refOffsetX,this._refOffsetY),calculateStack.push(astNode);break;case NodeType.ROOT:calculateStack.push(astNode);break;case NodeType.UNION:calculateStack.push(astNode);break;case NodeType.VALUE:calculateStack.push(astNode);break;case NodeType.PREFIX:calculateStack.push(astNode);break;case NodeType.SUFFIX:calculateStack.push(astNode);break}}const calculateStackCount=calculateStack.length;for(let i=0;i<calculateStackCount;i++)calculateStack[i].setParent(currentAstNode);return currentAstNode}_checkAstNode(item){let astNode=null;const astNodeFactoryListCount=this._astNodeFactoryList.length;for(let x=0;x<astNodeFactoryListCount&&(astNode=this._astNodeFactoryList[x].checkAndCreateNodeType(item),astNode==null);x++);return astNode}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(core.sortRules)}},__name(_a13,"AstTreeBuilder"),_a13);exports.AstTreeBuilder=__decorateClass$a([__decorateParam$a(0,IFormulaRuntimeService),__decorateParam$a(1,core.Inject(AstRootNodeFactory)),__decorateParam$a(2,core.Inject(exports.FunctionNodeFactory)),__decorateParam$a(3,core.Inject(exports.LambdaNodeFactory)),__decorateParam$a(4,core.Inject(LambdaParameterNodeFactory)),__decorateParam$a(5,core.Inject(exports.OperatorNodeFactory)),__decorateParam$a(6,core.Inject(exports.PrefixNodeFactory)),__decorateParam$a(7,core.Inject(exports.ReferenceNodeFactory)),__decorateParam$a(8,core.Inject(exports.SuffixNodeFactory)),__decorateParam$a(9,core.Inject(exports.UnionNodeFactory)),__decorateParam$a(10,core.Inject(ValueNodeFactory))],exports.AstTreeBuilder);const _FeatureCalculationManagerService=class _FeatureCalculationManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_referenceExecutorMap",new Map);__publicField(this,"_onChanged$",new rxjs.Subject);__publicField(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(unitId,subUnitId,featureIds){featureIds.forEach(featureId=>{var _a24,_b;(_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))==null||_b.delete(featureId)}),this._onChanged$.next({unitId,subUnitId,featureIds})}get(unitId,subUnitId,featureId){var _a24,_b;return(_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))==null?void 0:_b.get(featureId)}has(unitId,subUnitId,featureId){var _a24,_b;return!!((_b=(_a24=this._referenceExecutorMap.get(unitId))==null?void 0:_a24.get(subUnitId))!=null&&_b.has(featureId))}register(unitId,subUnitId,featureId,referenceExecutor){let unitMap=this._referenceExecutorMap.get(unitId);unitMap||(unitMap=new Map,this._referenceExecutorMap.set(unitId,unitMap));let subUnitMap=unitMap.get(subUnitId);subUnitMap||(subUnitMap=new Map,unitMap.set(subUnitId,subUnitMap)),this._onChanged$.next({unitId,subUnitId,featureIds:[featureId]}),subUnitMap.set(featureId,referenceExecutor)}getReferenceExecutorMap(){return this._referenceExecutorMap}};__name(_FeatureCalculationManagerService,"FeatureCalculationManagerService");let FeatureCalculationManagerService=_FeatureCalculationManagerService;const IFeatureCalculationManagerService=core.createIdentifier("univer.formula.feature-calculation-manager.service"),_OtherFormulaManagerService=class _OtherFormulaManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(searchParam){var _a24,_b,_c;const{unitId,subUnitId,formulaId}=searchParam;(_c=(_b=(_a24=this._otherFormulaData)==null?void 0:_a24[unitId])==null?void 0:_b[subUnitId])==null||delete _c[formulaId]}get(searchParam){var _a24,_b;const{unitId,subUnitId,formulaId}=searchParam;return(_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId]}has(searchParam){var _a24,_b;const{unitId,subUnitId,formulaId}=searchParam;return((_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId])!=null}register(insertParam){const{unitId,subUnitId,formulaId,item}=insertParam;this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][subUnitId]||(this._otherFormulaData[unitId][subUnitId]={}),this._otherFormulaData[unitId][subUnitId][formulaId]=item}batchRegister(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{const item=subUnit[formulaId];if(item==null)return!0;this.register({unitId,subUnitId,formulaId,item})})})})}batchRemove(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{this.remove({unitId,subUnitId,formulaId})})})})}getOtherFormulaData(){return this._otherFormulaData}};__name(_OtherFormulaManagerService,"OtherFormulaManagerService");let OtherFormulaManagerService=_OtherFormulaManagerService;const IOtherFormulaManagerService=core.createIdentifier("univer.formula.other-formula-manager.service"),_FormulaDependencyTree=class _FormulaDependencyTree extends core.Disposable{constructor(){super(...arguments);__publicField(this,"node");__publicField(this,"children",[]);__publicField(this,"parents",[]);__publicField(this,"formula","");__publicField(this,"row",-1);__publicField(this,"column",-1);__publicField(this,"rowCount",Number.NEGATIVE_INFINITY);__publicField(this,"columnCount",Number.NEGATIVE_INFINITY);__publicField(this,"subUnitId","");__publicField(this,"unitId","");__publicField(this,"rangeList",[]);__publicField(this,"formulaId");__publicField(this,"featureId");__publicField(this,"isPassive",!0);__publicField(this,"getDirtyData");__publicField(this,"_state",0)}dispose(){var _a24;super.dispose(),this.children=[],this.rangeList=[],this.parents=[],(_a24=this.node)==null||_a24.dispose()}disposeWithChildren(){this.children.forEach(tree=>{tree.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(range){const startRow=range.startRow,startColumn=range.startColumn,endRow=range.endRow,endColumn=range.endColumn;return!(this.row<startRow||this.row>endRow||this.column<startColumn||this.column>endColumn)}dependencyRange(dependencyRangeList,dirtyUnitSheetNameMap,unitExcludedCell){var _a24,_b;if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId,range}=unitRange.gridRange;if(((_a24=dirtyUnitSheetNameMap[unitId])==null?void 0:_a24[sheetId])!=null)return!0;if(!dependencyRangeList.has(unitId))continue;const sheetRangeMap=dependencyRangeList.get(unitId);if(!sheetRangeMap.has(sheetId))continue;const dependencyRanges=sheetRangeMap.get(sheetId),excludedCell=(_b=unitExcludedCell==null?void 0:unitExcludedCell[unitId])==null?void 0:_b[sheetId];let{startRow:rangeStartRow,endRow:rangeEndRow,startColumn:rangeStartColumn,endColumn:rangeEndColumn}=range;Number.isNaN(rangeStartRow)&&(rangeStartRow=0),Number.isNaN(rangeStartColumn)&&(rangeStartColumn=0),Number.isNaN(rangeEndRow)&&(rangeEndRow=Number.POSITIVE_INFINITY),Number.isNaN(rangeEndColumn)&&(rangeEndColumn=Number.POSITIVE_INFINITY);for(const dependencyRange of dependencyRanges){const{startRow,startColumn,endRow,endColumn}=dependencyRange;if(!(rangeStartRow>endRow||rangeEndRow<startRow||rangeStartColumn>endColumn||rangeEndColumn<startColumn)){let isInclude=!0;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(row>=rangeStartRow&&row<=rangeEndRow&&column>=rangeStartColumn&&column<=rangeEndColumn)return isInclude=!1,!1}),isInclude)return!0}}}return!1}pushChildren(tree){this.children.push(tree),tree._pushParent(this)}pushRangeList(range){this.rangeList.push(range)}dependency(dependenceTree){if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],unitId=unitRange.gridRange.unitId,sheetId=unitRange.gridRange.sheetId,range=unitRange.gridRange.range;if(dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range))return!0}return!1}_pushParent(tree){this.parents.push(tree)}};__name(_FormulaDependencyTree,"FormulaDependencyTree");let FormulaDependencyTree=_FormulaDependencyTree;const _FormulaDependencyTreeCache=class _FormulaDependencyTreeCache extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_cacheItems",new Map)}dispose(){this.clear()}size(){return this._cacheItems.size}get length(){return this._cacheItems.size}add(unitRangeWithToken,tree){const{token}=unitRangeWithToken;if(!this._cacheItems.has(token)){this._cacheItems.set(token,{unitRangeWithToken,treeList:[tree]});return}this._cacheItems.get(token).treeList.push(tree)}clear(){this._cacheItems.clear()}remove(token,tree){if(!this._cacheItems.has(token))return;const cacheItem=this._cacheItems.get(token),index=cacheItem.treeList.indexOf(tree);index!==-1&&cacheItem.treeList.splice(index,1)}delete(token){this._cacheItems.delete(token)}dependency(dependenceTree){this._cacheItems.forEach(cacheItem=>{const{unitRangeWithToken,treeList}=cacheItem,{gridRange}=unitRangeWithToken,{unitId,sheetId,range}=gridRange;dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range)&&treeList.forEach(tree=>{if(tree===dependenceTree||tree.children.includes(dependenceTree))return!0;tree.pushChildren(dependenceTree)})})}};__name(_FormulaDependencyTreeCache,"FormulaDependencyTreeCache");let FormulaDependencyTreeCache=_FormulaDependencyTreeCache;const _DependencyManagerService=class _DependencyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{});__publicField(this,"_featureFormulaData",{});__publicField(this,"_formulaData",{})}dispose(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={}}getAllTree(){const trees=[];return Object.values(this._otherFormulaData).forEach(unit=>{if(unit==null)return!0;Object.values(unit).forEach(sheet=>{Object.values(sheet).forEach(formula=>{formula&&(formula.resetState(),trees.push(formula))})})}),Object.values(this._featureFormulaData).forEach(unit=>{if(unit==null)return!0;Object.values(unit).forEach(sheet=>{Object.values(sheet).forEach(feature=>{feature&&(feature.resetState(),trees.push(feature))})})}),Object.values(this._formulaData).map(unit=>unit==null?[]:Object.values(unit).forEach(sheet=>sheet.forValue((row,col,item)=>{item&&(item.resetState(),trees.push(item))}))),trees}buildDependencyTree(shouldBeBuildTrees,dependencyTrees){const allTrees=this.getAllTree();return shouldBeBuildTrees.length===0?(this._buildReverseDependency(allTrees,dependencyTrees),allTrees):(shouldBeBuildTrees instanceof FormulaDependencyTreeCache?this._buildDependencyTree(allTrees,shouldBeBuildTrees,dependencyTrees||[]):this._buildDependencyTree(allTrees,shouldBeBuildTrees,shouldBeBuildTrees),allTrees)}_buildDependencyTree(allTrees,shouldBeBuildTrees,dependencyTrees){allTrees.forEach(tree=>{shouldBeBuildTrees instanceof FormulaDependencyTreeCache?shouldBeBuildTrees.dependency(tree):shouldBeBuildTrees.forEach(shouldBeBuildTree=>{if(tree===shouldBeBuildTree||shouldBeBuildTree.children.includes(tree))return!0;shouldBeBuildTree.dependency(tree)&&shouldBeBuildTree.pushChildren(tree)})}),this._buildReverseDependency(allTrees,dependencyTrees)}_buildReverseDependency(allTrees,dependencyTrees){allTrees.forEach(tree=>{dependencyTrees==null||dependencyTrees.forEach(dependencyTree=>{if(tree===dependencyTree||tree.children.includes(dependencyTree))return!0;tree.dependency(dependencyTree)&&tree.pushChildren(dependencyTree)})})}clearDependencyForTree(shouldBeClearTree){if(shouldBeClearTree==null)return;const parents=shouldBeClearTree.parents,children=shouldBeClearTree.children;parents.forEach(parent=>{parent.children=parent.children.filter(child=>child!==shouldBeClearTree)}),children.forEach(child=>{child.parents=child.parents.filter(parent=>parent!==shouldBeClearTree)}),this._buildDependencyTree(parents,children,children),shouldBeClearTree.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={}}addOtherFormulaDependency(unitId,sheetId,formulaId,dependencyTree){this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][sheetId]||(this._otherFormulaData[unitId][sheetId]={}),this._otherFormulaData[unitId][sheetId][formulaId]=dependencyTree}removeOtherFormulaDependency(unitId,sheetId,formulaIds){this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId]&&formulaIds.forEach(formulaId=>{const deleteTree=this._otherFormulaData[unitId][sheetId][formulaId];this.clearDependencyForTree(deleteTree),delete this._otherFormulaData[unitId][sheetId][formulaId]})}getOtherFormulaDependency(unitId,sheetId,formulaId){var _a24,_b;return(_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[formulaId]}hasOtherFormulaDependency(unitId,sheetId,formulaId){var _a24,_b;return((_b=(_a24=this._otherFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[formulaId])!=null}addFeatureFormulaDependency(unitId,sheetId,featureId,dependencyTree){this._featureFormulaData[unitId]||(this._featureFormulaData[unitId]={}),this._featureFormulaData[unitId][sheetId]||(this._featureFormulaData[unitId][sheetId]={}),this._featureFormulaData[unitId][sheetId][featureId]=dependencyTree}removeFeatureFormulaDependency(unitId,sheetId,featureIds){this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId]&&featureIds.forEach(featureId=>{const deleteTree=this._featureFormulaData[unitId][sheetId][featureId];this.clearDependencyForTree(deleteTree),delete this._featureFormulaData[unitId][sheetId][featureId]})}getFeatureFormulaDependency(unitId,sheetId,featureId){var _a24,_b;return(_b=(_a24=this._featureFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[featureId]}hasFeatureFormulaDependency(unitId,sheetId,featureId){var _a24,_b;return((_b=(_a24=this._featureFormulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b[featureId])!=null}addFormulaDependency(unitId,sheetId,row,column,dependencyTree){this._formulaData[unitId]||(this._formulaData[unitId]={}),this._formulaData[unitId][sheetId]||(this._formulaData[unitId][sheetId]=new core.ObjectMatrix),this._formulaData[unitId][sheetId].setValue(row,column,dependencyTree)}removeFormulaDependency(unitId,sheetId,row,column){if(this._formulaData[unitId]&&this._formulaData[unitId][sheetId]){const deleteTree=this._formulaData[unitId][sheetId].getValue(row,column);this.clearDependencyForTree(deleteTree),this._formulaData[unitId][sheetId].realDeleteValue(row,column)}}clearFormulaDependency(unitId,sheetId){this._formulaData[unitId]&&this._formulaData[unitId][sheetId]&&this._formulaData[unitId][sheetId].reset()}hasFormulaDependency(unitId,sheetId,row,column){var _a24,_b;return((_b=(_a24=this._formulaData[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.getValue(row,column))!=null}};__name(_DependencyManagerService,"DependencyManagerService");let DependencyManagerService=_DependencyManagerService;const IDependencyManagerService=core.createIdentifier("univer.formula.dependency-manager.service");var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const FORMULA_CACHE_LRU_COUNT=1e5;var _a14;exports.FormulaDependencyGenerator=(_a14=class extends core.Disposable{constructor(_currentConfigService,_runtimeService,_otherFormulaManagerService,_featureCalculationManagerService,_interpreter,_astTreeBuilder,_lexer,_dependencyManagerService){super();__publicField(this,"_updateRangeFlattenCache",new Map);__publicField(this,"_dirtyUnitSheetNameMap",{});__publicField(this,"_formulaASTCache",new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT));this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._otherFormulaManagerService=_otherFormulaManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder,this._lexer=_lexer,this._dependencyManagerService=_dependencyManagerService}dispose(){this._updateRangeFlattenCache.clear(),this._formulaASTCache.clear(),this._dirtyUnitSheetNameMap={}}async generate(){this._updateRangeFlatten();const formulaData=this._currentConfigService.getFormulaData(),otherFormulaData=this._otherFormulaManagerService.getOtherFormulaData(),unitData=this._currentConfigService.getUnitData(),{treeList,dependencyTreeCache}=await this._generateTreeList(formulaData,otherFormulaData,unitData),updateTreeList=this._getUpdateTreeListAndMakeDependency(treeList,dependencyTreeCache);let finalTreeList=this._calculateRunList(updateTreeList);return this._dependencyFeatureCalculation(finalTreeList)&&(finalTreeList.forEach(tree=>{tree.resetState()}),finalTreeList=this._calculateRunList(finalTreeList)),this._checkIsCycleDependency(finalTreeList)&&this._runtimeService.enableCycleDependency(),Promise.resolve(finalTreeList)}_isCyclicUtil(node,visited,recursionStack){if(!visited.has(node)){visited.add(node),recursionStack.add(node);for(let i=0;i<node.children.length;i++)if(!visited.has(node.children[i])&&this._isCyclicUtil(node.children[i],visited,recursionStack)||recursionStack.has(node.children[i]))return!0}return recursionStack.delete(node),!1}_checkIsCycleDependency(treeList){const visited=new Set,recursionStack=new Set;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._isCyclicUtil(tree,visited,recursionStack)===!0)return!0}return!1}async _generateTreeList(formulaData,otherFormulaData,unitData){const formulaDataKeys=Object.keys(formulaData),otherFormulaDataKeys=Object.keys(otherFormulaData),treeList=[];this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(formulaDataKeys,formulaData,unitData,treeList),this._registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList),this._registerFeatureFormulas(treeList);const dependencyTreeCache=new FormulaDependencyTreeCache;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId),tree.node==null)continue;const rangeList=await this._getRangeListByNode(tree.node);for(let r=0,rLen=rangeList.length;r<rLen;r++){const range=rangeList[r];tree.pushRangeList(range),dependencyTreeCache.add(range,tree)}}return{treeList,dependencyTreeCache}}_registerFeatureFormulas(treeList){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{treeList.push(this._getFeatureFormulaTree(featureId,params))})})})}_getFeatureFormulaTree(featureId,params){const{unitId,subUnitId,dependencyRanges,getDirtyData}=params,FDtree=new FormulaDependencyTree;return FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.getDirtyData=getDirtyData,FDtree.featureId=featureId,FDtree.rangeList=dependencyRanges.map(range=>({gridRange:range,token:serializeRangeToRefString({...range,sheetName:this._currentConfigService.getSheetName(range.unitId,range.sheetId)})})),this._dependencyManagerService.addFeatureFormulaDependency(unitId,subUnitId,featureId,FDtree),FDtree}_registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList){for(const unitId of otherFormulaDataKeys){const subComponentData=otherFormulaData[unitId];if(subComponentData==null)continue;const subComponentKeys=Object.keys(subComponentData);for(const subUnitId of subComponentKeys){const subFormulaData=subComponentData[subUnitId];if(subFormulaData==null)continue;const subFormulaDataKeys=Object.keys(subFormulaData);for(const subFormulaDataId of subFormulaDataKeys){if(this._dependencyManagerService.hasOtherFormulaDependency(unitId,subUnitId,subFormulaDataId))continue;const formulaDataItem=subFormulaData[subFormulaDataId],{f:formulaString}=formulaDataItem,node=this._generateAstNode(unitId,formulaString),FDtree=new FormulaDependencyTree;FDtree.node=node,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.formulaId=subFormulaDataId,this._dependencyManagerService.addOtherFormulaDependency(unitId,subUnitId,subFormulaDataId,FDtree),treeList.push(FDtree)}}}}_registerFormulas(formulaDataKeys,formulaData,unitData,treeList){for(const unitId of formulaDataKeys){const sheetData=formulaData[unitId];if(sheetData==null)continue;const sheetDataKeys=Object.keys(sheetData);for(const sheetId of sheetDataKeys)new core.ObjectMatrix(sheetData[sheetId]||{}).forValue((row,column,formulaDataItem)=>{if(formulaDataItem==null)return!0;const{f:formulaString,x,y}=formulaDataItem;if(this._dependencyManagerService.hasFormulaDependency(unitId,sheetId,row,column))return!0;const node=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree,sheetItem=unitData[unitId][sheetId];FDtree.node=node,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=sheetId,FDtree.row=row,FDtree.column=column,FDtree.rowCount=sheetItem.rowCount,FDtree.columnCount=sheetItem.columnCount,this._dependencyManagerService.addFormulaDependency(unitId,sheetId,row,column,FDtree),treeList.push(FDtree)})}}_updateRangeFlatten(){const forceCalculate=this._currentConfigService.isForceCalculate(),dirtyRanges=this._currentConfigService.getDirtyRanges();if(!forceCalculate){this._updateRangeFlattenCache.clear();for(let i=0;i<dirtyRanges.length;i++){const gridRange=dirtyRanges[i],range=gridRange.range,sheetId=gridRange.sheetId,unitId=gridRange.unitId;this._addFlattenCache(unitId,sheetId,range)}this._dirtyUnitSheetNameMap=this._currentConfigService.getDirtyNameMap()}}_generateAstNode(unitId,formulaString,refOffsetX=0,refOffsetY=0){let astNode=this._formulaASTCache.get(`${unitId}${formulaString}##${refOffsetX}-${refOffsetY}`);if(astNode&&!this._isDirtyDefinedForNode(astNode))return astNode;const lexerNode=this._lexer.treeBuilder(formulaString);if(ERROR_TYPE_SET.has(lexerNode))return ErrorNode.create(lexerNode);if(astNode=this._astTreeBuilder.parse(lexerNode,refOffsetX,refOffsetY),astNode==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${unitId}${formulaString}##${refOffsetX}-${refOffsetY}`,astNode),astNode}_addFlattenCache(unitId,sheetId,range){let unitMatrix=this._updateRangeFlattenCache.get(unitId);unitMatrix==null&&(unitMatrix=new Map,this._updateRangeFlattenCache.set(unitId,unitMatrix));let ranges=unitMatrix.get(sheetId);ranges==null&&(ranges=[],unitMatrix.set(sheetId,ranges)),ranges.push(range)}_isPreCalculateNode(node){return node.nodeType===NodeType.UNION||node.nodeType===NodeType.PREFIX&&node.getToken()===prefixToken.AT||node.nodeType===NodeType.SUFFIX&&node.getToken()===suffixToken.POUND}_nodeTraversalRef(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(this._isPreCalculateNode(item)){result.push(item);continue}else item.nodeType===NodeType.REFERENCE&&result.push(item);this._nodeTraversalRef(item,result)}}_nodeTraversalReferenceFunction(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.nodeType===NodeType.FUNCTION&&item.isAddress()){result.push(item);continue}this._nodeTraversalReferenceFunction(item,result)}}async _executeNode(node){let value;return this._interpreter.checkAsyncNode(node)?value=await this._interpreter.executeAsync(node):value=this._interpreter.execute(node),value}async _getRangeListByNode(node){const preCalculateNodeList=[],referenceFunctionList=[];this._nodeTraversalRef(node,preCalculateNodeList),this._nodeTraversalReferenceFunction(node,referenceFunctionList);const rangeList=[];for(let i=0,len=preCalculateNodeList.length;i<len;i++){const node2=preCalculateNodeList[i],gridRange=(await this._executeNode(node2)).toUnitRange(),token=serializeRangeToRefString({...gridRange,sheetName:this._currentConfigService.getSheetName(gridRange.unitId,gridRange.sheetId)});rangeList.push({gridRange,token})}for(let i=0,len=referenceFunctionList.length;i<len;i++){const node2=referenceFunctionList[i],gridRange=(await this._executeNode(node2)).toUnitRange(),token=serializeRangeToRefString({...gridRange,sheetName:this._currentConfigService.getSheetName(gridRange.unitId,gridRange.sheetId)});rangeList.push({gridRange,token})}return rangeList}_isDirtyDefinedForNode(node){const definedNameMap=this._currentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._currentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(node.hasDefinedName(name))return!0}}return!1}_getUpdateTreeListAndMakeDependency(treeList,dependencyTreeCache){const newTreeList=[],existTree=new Set,forceCalculate=this._currentConfigService.isForceCalculate();let allTree=[];dependencyTreeCache.size()>treeList.length?allTree=this._dependencyManagerService.buildDependencyTree(treeList):allTree=this._dependencyManagerService.buildDependencyTree(dependencyTreeCache,treeList);for(let i=0,len=allTree.length;i<len;i++){const tree=allTree[i];(forceCalculate||tree.dependencyRange(this._updateRangeFlattenCache,this._dirtyUnitSheetNameMap,this._currentConfigService.getExcludedRange())||this._includeTree(tree))&&!existTree.has(tree)&&(newTreeList.push(tree),existTree.add(tree))}return dependencyTreeCache.dispose(),newTreeList}_dependencyFeatureCalculation(newTreeList){this._clearFeatureCalculationNode(newTreeList);let hasFeatureCalculation=!1;return this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const{unitId,subUnitId,getDirtyData}=params,dirtyRanges=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()).dirtyRanges,dirtyRangesToMap=this._convertDirtyRangesToMap(dirtyRanges),intersectTrees=this._intersectFeatureCalculation(dirtyRangesToMap,newTreeList,{unitId,subUnitId,featureId});if(intersectTrees.length>0){let featureTree=this._getExistTreeList({unitId,subUnitId,featureId},newTreeList);featureTree==null&&(featureTree=this._getFeatureFormulaTree(featureId,params),newTreeList.push(featureTree)),featureTree.parents=[],intersectTrees.forEach(tree=>{tree.children.includes(featureTree)||tree.pushChildren(featureTree)}),hasFeatureCalculation=!0}})})}),hasFeatureCalculation}_clearFeatureCalculationNode(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();newTreeList.forEach(tree=>{tree.children=tree.children.filter(child=>{var _a24,_b;return child.featureId?!((_b=(_a24=featureMap.get(tree.unitId))==null?void 0:_a24.get(tree.subUnitId))!=null&&_b.has(child.featureId)):!0}),tree.parents=tree.parents.filter(parent=>{var _a24,_b;return parent.featureId?!((_b=(_a24=featureMap.get(tree.unitId))==null?void 0:_a24.get(tree.subUnitId))!=null&&_b.has(parent.featureId)):!0})})}_getExistTreeList(param,treeList){const{unitId,subUnitId,featureId}=param;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(tree.unitId===unitId&&tree.subUnitId===subUnitId&&tree.featureId===featureId)return tree}}_convertDirtyRangesToMap(dirtyRanges){const map=new Map;for(const unitId in dirtyRanges){const unitMap=dirtyRanges[unitId],unitRangeMap=new Map;for(const subUnitId in unitMap){const ranges=unitMap[subUnitId];unitRangeMap.set(subUnitId,ranges)}map.set(unitId,unitRangeMap)}return map}_intersectFeatureCalculation(dirtyRangesToMap,newTreeList,param){const dependencyTree=[];for(let i=0,len=newTreeList.length;i<len;i++){const tree=newTreeList[i];if(tree.unitId===param.unitId&&tree.subUnitId===param.subUnitId&&tree.featureId===param.featureId)continue;tree.dependencyRange(dirtyRangesToMap,{})&&dependencyTree.push(tree)}return dependencyTree}_includeTreeFeature(tree){var _a24,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,featureId=tree.featureId;if(featureId!=null){const featureMap=this._currentConfigService.getDirtyUnitFeatureMap();if(((_b=(_a24=featureMap==null?void 0:featureMap[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[featureId])!=null)return!0}return!1}_includeOtherFormula(tree){var _a24,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,formulaId=tree.formulaId;if(formulaId!=null){const otherFormulaMap=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((_b=(_a24=otherFormulaMap==null?void 0:otherFormulaMap[unitId])==null?void 0:_a24[subUnitId])==null?void 0:_b[formulaId])!=null)return!0}return!1}_includeDefinedName(tree){const node=tree.node;return!!(node!=null&&this._isDirtyDefinedForNode(node))}_includeTree(tree){var _a24,_b,_c;const unitId=tree.unitId,subUnitId=tree.subUnitId;if(this._includeTreeFeature(tree)===!0||this._includeOtherFormula(tree)===!0||this._includeDefinedName(tree)===!0)return!0;const excludedCell=(_b=(_a24=this._currentConfigService.getExcludedRange())==null?void 0:_a24[unitId])==null?void 0:_b[subUnitId];let isExclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(tree.row===row&&tree.column===column)return isExclude=!0,!1}),isExclude)return!1;if(((_c=this._dirtyUnitSheetNameMap[unitId])==null?void 0:_c[subUnitId])!=null)return!0;if(!this._updateRangeFlattenCache.has(unitId))return!1;const sheetRangeMap=this._updateRangeFlattenCache.get(unitId);if(!sheetRangeMap.has(subUnitId))return!1;const ranges=sheetRangeMap.get(subUnitId);for(const range of ranges)if(tree.inRangeData(range))return!0;return!1}_calculateRunList(treeList){let stack=treeList;const formulaRunList=[];for(;stack.length>0;){const tree=stack.pop();if(tree===void 0||tree.isSkip())continue;if(tree.isAdded()){formulaRunList.push(tree),tree.setSkip();continue}const cacheStack=[];for(let i=0,len=tree.parents.length;i<len;i++){const parentTree=tree.parents[i];parentTree.isAdded()||tree.isSkip()||cacheStack.push(parentTree)}cacheStack.length===0?(formulaRunList.push(tree),tree.setSkip()):(tree.setAdded(),stack.push(tree),stack=stack.concat(cacheStack))}return formulaRunList.reverse()}},__name(_a14,"FormulaDependencyGenerator"),_a14);exports.FormulaDependencyGenerator=__decorateClass$9([core.OnLifecycle(core.LifecycleStages.Rendered,exports.FormulaDependencyGenerator),__decorateParam$9(0,IFormulaCurrentConfigService),__decorateParam$9(1,IFormulaRuntimeService),__decorateParam$9(2,IOtherFormulaManagerService),__decorateParam$9(3,IFeatureCalculationManagerService),__decorateParam$9(4,core.Inject(exports.Interpreter)),__decorateParam$9(5,core.Inject(exports.AstTreeBuilder)),__decorateParam$9(6,core.Inject(exports.Lexer)),__decorateParam$9(7,IDependencyManagerService)],exports.FormulaDependencyGenerator);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const DEFAULT_CYCLE_REFERENCE_COUNT=1;var _a15;exports.CalculateFormulaService=(_a15=class extends core.Disposable{constructor(_configService,_lexer,_currentConfigService,_runtimeService,_formulaDependencyGenerator,_interpreter,_astTreeBuilder){super();__publicField(this,"_executionStartListener$",new rxjs.Subject);__publicField(this,"executionStartListener$",this._executionStartListener$.asObservable());__publicField(this,"_executionCompleteListener$",new rxjs.Subject);__publicField(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());__publicField(this,"_executionInProgressListener$",new rxjs.Subject);__publicField(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=_configService,this._lexer=_lexer,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._formulaDependencyGenerator=_formulaDependencyGenerator,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(featureId,featureData){this._runtimeService.setRuntimeFeatureCellData(featureId,featureData)}setRuntimeFeatureRange(featureId,featureRange){this._runtimeService.setRuntimeFeatureRange(featureId,featureRange)}async execute(formulaDatasetConfig){this._executionStartListener$.next(!0),this._currentConfigService.load(formulaDatasetConfig),this._runtimeService.reset();const cycleReferenceCount=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||DEFAULT_CYCLE_REFERENCE_COUNT;for(let i=0;i<cycleReferenceCount&&(this._runtimeService.setFormulaCycleIndex(i),await this._execute(),FORMULA_REF_TO_ARRAY_CACHE.clear(),!!this._runtimeService.isCycleDependency());i++);this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),CELL_INVERTED_INDEX_CACHE.clear()}async _execute(){const executeState=await this._apply();if(executeState==null)return;const{arrayFormulaRange,runtimeFeatureRange}=executeState,{dirtyRanges,excludedCell}=this._getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange);return dirtyRanges==null||dirtyRanges.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange){const dirtyRanges=[],excludedCell={};return Object.keys(arrayFormulaRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayFormulaRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const cellValue=new core.ObjectMatrix(sheetArrayFormulaRange[sheetId]);if(cellValue==null)return!0;const newCellData=new core.ObjectMatrix;cellValue.forValue((row,column,range)=>{newCellData.setValue(row,column,!0),dirtyRanges.push({unitId,sheetId,range})}),excludedCell[unitId]==null&&(excludedCell[unitId]={}),excludedCell[unitId][sheetId]=newCellData})}),Object.keys(runtimeFeatureRange).forEach(featureId=>{const arrayRange=runtimeFeatureRange[featureId];Object.keys(arrayRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const ranges=sheetArrayFormulaRange[sheetId];if(ranges==null)return!0;for(const range of ranges)dirtyRanges.push({unitId,sheetId,range})})})}),{dirtyRanges,excludedCell}}async _apply(isArrayFormulaState=!1){isArrayFormulaState?this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const treeList=await this._formulaDependencyGenerator.generate(),interpreter=this._interpreter;isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(treeList.length)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(treeList.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let pendingTasks=[];for(let i=0,len=treeList.length;i<len;i++){if(await new Promise(resolve=>{const calCancelTask=core.requestImmediateMacroTask(resolve);pendingTasks.push(calCancelTask)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const tree=treeList[i],astNode=tree.node,getDirtyData=tree.getDirtyData;let value;if(astNode==null&&getDirtyData==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId),getDirtyData!=null&&tree.featureId!=null){const{runtimeCellData,dirtyRanges}=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(tree.featureId,runtimeCellData),this._runtimeService.setRuntimeFeatureRange(tree.featureId,dirtyRanges)}else astNode!=null&&(interpreter.checkAsyncNode(astNode)?value=await interpreter.executeAsync(astNode):value=interpreter.execute(astNode),tree.formulaId!=null?this._runtimeService.setRuntimeOtherData(tree.formulaId,value):this._runtimeService.setRuntimeData(value));isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return pendingTasks.forEach(cancel=>cancel()),pendingTasks=[],treeList.length>0?this._runtimeService.markedAsSuccessfullyExecuted():isArrayFormulaState||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(formulaString,transformSuffix=!0){const lexerNode=this._lexer.treeBuilder(formulaString,transformSuffix);if(Object.values(ErrorType$1).includes(lexerNode))return ErrorNode.create(lexerNode);const astNode=this._astTreeBuilder.parse(lexerNode);astNode==null||astNode.serialize()}},__name(_a15,"CalculateFormulaService"),_a15);exports.CalculateFormulaService=__decorateClass$8([core.OnLifecycle(core.LifecycleStages.Rendered,exports.CalculateFormulaService),__decorateParam$8(0,core.IConfigService),__decorateParam$8(1,core.Inject(exports.Lexer)),__decorateParam$8(2,IFormulaCurrentConfigService),__decorateParam$8(3,IFormulaRuntimeService),__decorateParam$8(4,core.Inject(exports.FormulaDependencyGenerator)),__decorateParam$8(5,core.Inject(exports.Interpreter)),__decorateParam$8(6,core.Inject(exports.AstTreeBuilder))],exports.CalculateFormulaService);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7"),_a16;exports.CalculateController=(_a16=class extends core.Disposable{constructor(_commandService,_calculateFormulaService,_univerInstanceService,_formulaDataModel){super(),this._commandService=_commandService,this._calculateFormulaService=_calculateFormulaService,this._univerInstanceService=_univerInstanceService,this._formulaDataModel=_formulaDataModel,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{if(command.id===SetFormulaCalculationStopMutation.id)this._calculateFormulaService.stopFormulaExecution();else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;this._formulaDataModel.mergeFormulaData(formulaData)}else if(command.id===SetFormulaCalculationStartMutation.id){const params=command.params;if(params.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap}=params;this._calculate(!1,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap)}}else if(command.id===SetArrayFormulaDataMutation.id){const params=command.params;if(params==null)return;const{arrayFormulaRange,arrayFormulaCellData}=params;this._formulaDataModel.setArrayFormulaRange(arrayFormulaRange),this._formulaDataModel.setArrayFormulaCellData(arrayFormulaCellData)}}))}async _calculate(forceCalculate=!1,dirtyRanges=[],dirtyNameMap={},dirtyDefinedNameMap={},dirtyUnitFeatureMap={},dirtyUnitOtherFormulaMap={}){if(dirtyRanges.length===0&&Object.keys(dirtyNameMap).length===0&&Object.keys(dirtyDefinedNameMap).length===0&&Object.keys(dirtyUnitFeatureMap).length===0&&Object.keys(dirtyUnitOtherFormulaMap).length===0&&forceCalculate===!1)return;const formulaData=this._formulaDataModel.getFormulaData(),arrayFormulaCellData=this._formulaDataModel.getArrayFormulaCellData();this._calculateFormulaService.execute({formulaData,arrayFormulaCellData,forceCalculate,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(data=>{const functionsExecutedState=data.functionsExecutedState;switch(functionsExecutedState){case FormulaExecutedStateType.NOT_EXECUTED:break;case FormulaExecutedStateType.STOP_EXECUTION:break;case FormulaExecutedStateType.SUCCESS:this._applyFormula(data);break;case FormulaExecutedStateType.INITIAL:break}this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{functionsExecutedState},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(data=>{this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{stageInfo:data},{onlyLocal:!0})})}async _applyFormula(data){const{unitData,unitOtherData,arrayFormulaRange,arrayFormulaCellData,clearArrayFormulaCellData}=data;if(!unitData){console.error("No sheetData from Formula Engine!");return}arrayFormulaRange&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(clearArrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaCellData(arrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaRange(arrayFormulaRange),this._commandService.executeCommand(SetArrayFormulaDataMutation.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(SetFormulaCalculationResultMutation.id,{unitData:convertRuntimeToUnitData(unitData),unitOtherData},{onlyLocal:!0})}},__name(_a16,"CalculateController"),_a16);exports.CalculateController=__decorateClass$7([core.OnLifecycle(core.LifecycleStages.Ready,exports.CalculateController),__decorateParam$7(0,core.ICommandService),__decorateParam$7(1,core.Inject(exports.CalculateFormulaService)),__decorateParam$7(2,core.IUniverInstanceService),__decorateParam$7(3,core.Inject(exports.FormulaDataModel))],exports.CalculateController);const RegisterFunctionMutation={id:"formula.mutation.register-function",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetDefinedNameMutation={id:"formula.mutation.set-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveDefinedNameMutation={id:"formula.mutation.remove-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFeatureCalculationMutation={id:"formula.mutation.set-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveFeatureCalculationMutation={id:"formula.mutation.remove-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetOtherFormulaMutation={id:"formula.mutation.set-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveOtherFormulaMutation={id:"formula.mutation.remove-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableMutation={id:"formula.mutation.set-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveSuperTableMutation={id:"formula.mutation.remove-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableOptionMutation={id:"formula.mutation.set-super-table-option",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")};var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a17;let FormulaController=(_a17=class extends core.Disposable{constructor(_function=[],_commandService,_functionService,_dataSyncPrimaryController){super(),this._function=_function,this._commandService=_commandService,this._functionService=_functionService,this._dataSyncPrimaryController=_dataSyncPrimaryController,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[SetFormulaDataMutation,SetArrayFormulaDataMutation,SetFormulaCalculationStartMutation,SetFormulaCalculationStopMutation,SetFormulaCalculationNotificationMutation,SetFormulaCalculationResultMutation,SetDefinedNameMutation,RemoveDefinedNameMutation,SetFeatureCalculationMutation,RemoveFeatureCalculationMutation,SetOtherFormulaMutation,RemoveOtherFormulaMutation,SetSuperTableMutation,RemoveSuperTableMutation,SetSuperTableOptionMutation,RegisterFunctionMutation].forEach(mutation=>{var _a24;this._commandService.registerCommand(mutation),(_a24=this._dataSyncPrimaryController)==null||_a24.registerSyncingMutations(mutation)})}_registerFunctions(){const functions=[...functionArray,...functionCompatibility,...functionCube,...functionDatabase,...functionDate,...functionEngineering,...functionFinancial,...functionInformation,...functionLogical,...functionLookup,...functionMath,...functionMeta,...functionStatistical,...functionText,...functionUniver,...functionWeb].concat(this._function).map(registerObject=>{const Func=registerObject[0],name=registerObject[1];return new Func(name)});this._functionService.registerExecutors(...functions)}},__name(_a17,"FormulaController"),_a17);FormulaController=__decorateClass$6([core.OnLifecycle(core.LifecycleStages.Ready,FormulaController),__decorateParam$6(1,core.ICommandService),__decorateParam$6(2,IFunctionService),__decorateParam$6(3,core.Optional(rpc.DataSyncPrimaryController))],FormulaController);var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a18;let SetDefinedNameController=(_a18=class extends core.Disposable{constructor(_commandService,_definedNamesService){super(),this._commandService=_commandService,this._definedNamesService=_definedNamesService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{id,unitId,name,formulaOrRefString,comment,hidden,localSheetId}=params;this._definedNamesService.registerDefinedName(unitId,{id,name:name.trim(),formulaOrRefString:formulaOrRefString.trim(),comment:comment==null?void 0:comment.trim(),hidden,localSheetId})}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,id}=params;this._definedNamesService.removeDefinedName(unitId,id)}}))}},__name(_a18,"SetDefinedNameController"),_a18);SetDefinedNameController=__decorateClass$5([core.OnLifecycle(core.LifecycleStages.Ready,SetDefinedNameController),__decorateParam$5(0,core.ICommandService),__decorateParam$5(1,IDefinedNamesService)],SetDefinedNameController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a19;let SetFeatureCalculationController=(_a19=class extends core.Disposable{constructor(_commandService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._featureCalculationManagerService.register(unitId,subUnitId,featureId,calculationParam)}else if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._featureCalculationManagerService.remove(unitId,subUnitId,featureIds)}}))}},__name(_a19,"SetFeatureCalculationController"),_a19);SetFeatureCalculationController=__decorateClass$4([core.OnLifecycle(core.LifecycleStages.Ready,SetFeatureCalculationController),__decorateParam$4(0,core.ICommandService),__decorateParam$4(1,IFeatureCalculationManagerService)],SetFeatureCalculationController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a20;let SetOtherFormulaController=(_a20=class extends core.Disposable{constructor(_commandService,_otherFormulaManagerService,_dependencyManagerService){super(),this._commandService=_commandService,this._otherFormulaManagerService=_otherFormulaManagerService,this._dependencyManagerService=_dependencyManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const config={[params.unitId]:{[params.subUnitId]:params.formulaMap}};this._otherFormulaManagerService.batchRegister(config)}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;const obj={};params.formulaIdList.forEach(id=>obj[id]=!0);const config={[params.unitId]:{[params.subUnitId]:obj}};this._otherFormulaManagerService.batchRemove(config)}}))}},__name(_a20,"SetOtherFormulaController"),_a20);SetOtherFormulaController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Ready,SetOtherFormulaController),__decorateParam$3(0,core.ICommandService),__decorateParam$3(1,IOtherFormulaManagerService),__decorateParam$3(2,IDependencyManagerService)],SetOtherFormulaController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a21;let SetSuperTableController=(_a21=class extends core.Disposable{constructor(_commandService,_superTableService){super(),this._commandService=_commandService,this._superTableService=_superTableService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName,reference}=params;this._superTableService.registerTable(unitId,tableName,reference)}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName}=params;this._superTableService.remove(unitId,tableName)}else if(command.id===SetSuperTableOptionMutation.id){const params=command.params;if(params==null)return;const{tableOption,tableOptionType}=params;this._superTableService.registerTableOptionMap(tableOption,tableOptionType)}}))}},__name(_a21,"SetSuperTableController"),_a21);SetSuperTableController=__decorateClass$2([core.OnLifecycle(core.LifecycleStages.Ready,SetSuperTableController),__decorateParam$2(0,core.ICommandService),__decorateParam$2(1,ISuperTableService)],SetSuperTableController);const _ActiveDirtyManagerService=class _ActiveDirtyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(commandId){this._dirtyConversionMap.delete(commandId)}get(commandId){return this._dirtyConversionMap.get(commandId)}has(commandId){return this._dirtyConversionMap.has(commandId)}register(commandId,dirtyConversion){this._dirtyConversionMap.set(commandId,dirtyConversion)}getDirtyConversionMap(){return this._dirtyConversionMap}};__name(_ActiveDirtyManagerService,"ActiveDirtyManagerService");let ActiveDirtyManagerService=_ActiveDirtyManagerService;const IActiveDirtyManagerService=core.createIdentifier("univer.formula.active-dirty-manager.service");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a22;let SetDependencyController=(_a22=class extends core.Disposable{constructor(_commandService,_dependencyManagerService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._dependencyManagerService=_dependencyManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(params=>{const{unitId,subUnitId,featureIds}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}else if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,[featureId])}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,params.formulaIdList)}else if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const formulaMap=params.formulaMap,formulaIdList=[];Object.keys(formulaMap).forEach(formulaId=>{formulaIdList.push(formulaId)}),this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,formulaIdList)}else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;Object.keys(formulaData).forEach(unitId=>{if(formulaData[unitId]==null)return!0;Object.keys(formulaData[unitId]).forEach(subUnitId=>{const formulaDataItem=formulaData[unitId][subUnitId];if(formulaDataItem==null)return this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId),!0;new core.ObjectMatrix(formulaDataItem).forValue((row,column)=>{this._dependencyManagerService.removeFormulaDependency(unitId,subUnitId,row,column)})})})}}))}},__name(_a22,"SetDependencyController"),_a22);SetDependencyController=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Ready,SetDependencyController),__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,IFeatureCalculationManagerService),__decorateParam$1(1,IDependencyManagerService),__decorateParam$1(2,IFeatureCalculationManagerService)],SetDependencyController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="base-formula-engine";var _a23;exports.UniverFormulaEnginePlugin=(_a23=class extends core.Plugin{constructor(_config,_injector){super(),this._config=_config,this._injector=_injector}onStarting(){this._initialize()}_initialize(){var _a24;const dependencies=[[IFunctionService,{useClass:FunctionService}],[IDefinedNamesService,{useClass:DefinedNamesService}],[IActiveDirtyManagerService,{useClass:ActiveDirtyManagerService}],[ISuperTableService,{useClass:SuperTableService}],[exports.FormulaDataModel],[LexerTreeBuilder],[FormulaController,{useFactory:__name(()=>{var _a25;return this._injector.createInstance(FormulaController,(_a25=this._config)==null?void 0:_a25.function)},"useFactory")}],[SetDefinedNameController],[SetSuperTableController]];(_a24=this._config)!=null&&_a24.notExecuteFormula||dependencies.push([exports.CalculateFormulaService],[IOtherFormulaManagerService,{useClass:OtherFormulaManagerService}],[IFormulaRuntimeService,{useClass:exports.FormulaRuntimeService}],[IFormulaCurrentConfigService,{useClass:exports.FormulaCurrentConfigService}],[IDependencyManagerService,{useClass:DependencyManagerService}],[IFeatureCalculationManagerService,{useClass:FeatureCalculationManagerService}],[exports.CalculateController],[SetOtherFormulaController],[SetDependencyController],[SetFeatureCalculationController],[exports.FormulaDependencyGenerator],[exports.Interpreter],[exports.AstTreeBuilder],[exports.Lexer],[AstRootNodeFactory],[exports.FunctionNodeFactory],[exports.LambdaNodeFactory],[LambdaParameterNodeFactory],[exports.OperatorNodeFactory],[exports.PrefixNodeFactory],[exports.ReferenceNodeFactory],[exports.SuffixNodeFactory],[exports.UnionNodeFactory],[ValueNodeFactory]),dependencies.forEach(dependency=>this._injector.add(dependency))}},__name(_a23,"UniverFormulaEnginePlugin"),__publicField(_a23,"pluginName",PLUGIN_NAME),_a23);exports.UniverFormulaEnginePlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector))],exports.UniverFormulaEnginePlugin);exports.ActiveDirtyManagerService=ActiveDirtyManagerService;exports.ArrayValueObject=ArrayValueObject;exports.AstRootNodeFactory=AstRootNodeFactory;exports.AsyncArrayObject=AsyncArrayObject;exports.AsyncObject=AsyncObject;exports.BaseFunction=BaseFunction;exports.BaseReferenceObject=BaseReferenceObject;exports.BaseValueObject=BaseValueObject;exports.BooleanValue=BooleanValue;exports.BooleanValueObject=BooleanValueObject;exports.CustomFunction=CustomFunction;exports.DefinedNamesService=DefinedNamesService;exports.DependencyManagerService=DependencyManagerService;exports.ERROR_TYPE_SET=ERROR_TYPE_SET;exports.ErrorType=ErrorType$1;exports.ErrorValueObject=ErrorValueObject;exports.FUNCTION_NAMES_ARRAY=FUNCTION_NAMES_ARRAY;exports.FUNCTION_NAMES_COMPATIBILITY=FUNCTION_NAMES_COMPATIBILITY;exports.FUNCTION_NAMES_CUBE=FUNCTION_NAMES_CUBE;exports.FUNCTION_NAMES_DATABASE=FUNCTION_NAMES_DATABASE;exports.FUNCTION_NAMES_DATE=FUNCTION_NAMES_DATE;exports.FUNCTION_NAMES_ENGINEERING=FUNCTION_NAMES_ENGINEERING;exports.FUNCTION_NAMES_FINANCIAL=FUNCTION_NAMES_FINANCIAL;exports.FUNCTION_NAMES_INFORMATION=FUNCTION_NAMES_INFORMATION;exports.FUNCTION_NAMES_LOGICAL=FUNCTION_NAMES_LOGICAL;exports.FUNCTION_NAMES_LOOKUP=FUNCTION_NAMES_LOOKUP;exports.FUNCTION_NAMES_MATH=FUNCTION_NAMES_MATH;exports.FUNCTION_NAMES_STATISTICAL=FUNCTION_NAMES_STATISTICAL;exports.FUNCTION_NAMES_TEXT=FUNCTION_NAMES_TEXT;exports.FUNCTION_NAMES_UNIVER=FUNCTION_NAMES_UNIVER;exports.FUNCTION_NAMES_WEB=FUNCTION_NAMES_WEB;exports.FeatureCalculationManagerService=FeatureCalculationManagerService;exports.FormulaExecuteStageType=FormulaExecuteStageType;exports.FormulaExecutedStateType=FormulaExecutedStateType;exports.FunctionService=FunctionService;exports.FunctionType=FunctionType;exports.IActiveDirtyManagerService=IActiveDirtyManagerService;exports.IDefinedNamesService=IDefinedNamesService;exports.IDependencyManagerService=IDependencyManagerService;exports.IFeatureCalculationManagerService=IFeatureCalculationManagerService;exports.IFormulaCurrentConfigService=IFormulaCurrentConfigService;exports.IFormulaRuntimeService=IFormulaRuntimeService;exports.IFunctionService=IFunctionService;exports.IOtherFormulaManagerService=IOtherFormulaManagerService;exports.ISuperTableService=ISuperTableService;exports.LambdaParameterNodeFactory=LambdaParameterNodeFactory;exports.LexerNode=LexerNode;exports.LexerTreeBuilder=LexerTreeBuilder;exports.NullValueObject=NullValueObject;exports.NumberValueObject=NumberValueObject;exports.OtherFormulaManagerService=OtherFormulaManagerService;exports.RangeReferenceObject=RangeReferenceObject;exports.RegisterFunctionMutation=RegisterFunctionMutation;exports.RemoveDefinedNameMutation=RemoveDefinedNameMutation;exports.RemoveFeatureCalculationMutation=RemoveFeatureCalculationMutation;exports.RemoveOtherFormulaMutation=RemoveOtherFormulaMutation;exports.RemoveSuperTableMutation=RemoveSuperTableMutation;exports.SetArrayFormulaDataMutation=SetArrayFormulaDataMutation;exports.SetDefinedNameMutation=SetDefinedNameMutation;exports.SetFeatureCalculationMutation=SetFeatureCalculationMutation;exports.SetFormulaCalculationNotificationMutation=SetFormulaCalculationNotificationMutation;exports.SetFormulaCalculationResultMutation=SetFormulaCalculationResultMutation;exports.SetFormulaCalculationStartMutation=SetFormulaCalculationStartMutation;exports.SetFormulaCalculationStopMutation=SetFormulaCalculationStopMutation;exports.SetFormulaDataMutation=SetFormulaDataMutation;exports.SetOtherFormulaMutation=SetOtherFormulaMutation;exports.SetSuperTableMutation=SetSuperTableMutation;exports.SetSuperTableOptionMutation=SetSuperTableOptionMutation;exports.StringValueObject=StringValueObject;exports.SuperTableService=SuperTableService;exports.ValueNodeFactory=ValueNodeFactory;exports.ValueObjectFactory=ValueObjectFactory;exports.compareToken=compareToken;exports.convertUnitDataToRuntime=convertUnitDataToRuntime;exports.deserializeRangeForR1C1=deserializeRangeForR1C1;exports.deserializeRangeWithSheet=deserializeRangeWithSheet;exports.functionArray=functionArray;exports.functionCompatibility=functionCompatibility;exports.functionCube=functionCube;exports.functionDatabase=functionDatabase;exports.functionDate=functionDate;exports.functionEngineering=functionEngineering;exports.functionFinancial=functionFinancial;exports.functionInformation=functionInformation;exports.functionLogical=functionLogical;exports.functionLookup=functionLookup;exports.functionMath=functionMath;exports.functionMeta=functionMeta;exports.functionStatistical=functionStatistical;exports.functionText=functionText;exports.functionUniver=functionUniver;exports.functionWeb=functionWeb;exports.generateStringWithSequence=generateStringWithSequence;exports.getAbsoluteRefTypeWitString=getAbsoluteRefTypeWitString;exports.getAbsoluteRefTypeWithSingleString=getAbsoluteRefTypeWithSingleString;exports.getRangeWithRefsString=getRangeWithRefsString;exports.handleNumfmtInCell=handleNumfmtInCell;exports.includeFormulaLexerToken=includeFormulaLexerToken;exports.initSheetFormulaData=initSheetFormulaData;exports.isFormulaLexerToken=isFormulaLexerToken;exports.isInDirtyRange=isInDirtyRange;exports.isReferenceString=isReferenceString;exports.isReferenceStringWithEffectiveColumn=isReferenceStringWithEffectiveColumn;exports.isReferenceStrings=isReferenceStrings;exports.matchRefDrawToken=matchRefDrawToken;exports.matchToken=matchToken;exports.normalizeSheetName=normalizeSheetName;exports.operatorToken=operatorToken;exports.sequenceNodeType=sequenceNodeType;exports.serializeRange=serializeRange;exports.serializeRangeToRefString=serializeRangeToRefString;exports.serializeRangeWithSheet=serializeRangeWithSheet;exports.serializeRangeWithSpreadsheet=serializeRangeWithSpreadsheet;exports.singleReferenceToGrid=singleReferenceToGrid;exports.strip=strip;exports.stripErrorMargin=stripErrorMargin;