@univerjs/engine-formula 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/es/index.js +11684 -8513
  3. package/lib/types/basics/common.d.ts +2 -0
  4. package/lib/types/commands/mutations/set-feature-calculation.mutation.d.ts +6 -3
  5. package/lib/types/commands/mutations/set-formula-calculation.mutation.d.ts +4 -10
  6. package/lib/types/controller/formula.controller.d.ts +1 -2
  7. package/lib/types/controller/set-dependency.controller.d.ts +4 -1
  8. package/lib/types/engine/analysis/__tests__/create-command-test-bed.d.ts +7 -8
  9. package/lib/types/engine/ast-node/function-node.d.ts +1 -1
  10. package/lib/types/engine/ast-node/prefix-node.d.ts +1 -2
  11. package/lib/types/engine/ast-node/reference-node.d.ts +1 -1
  12. package/lib/types/engine/ast-node/suffix-node.d.ts +1 -1
  13. package/lib/types/engine/dependency/dependency-tree.d.ts +4 -1
  14. package/lib/types/engine/dependency/formula-dependency.d.ts +1 -0
  15. package/lib/types/engine/utils/prefixHandler.d.ts +1 -2
  16. package/lib/types/engine/value-object/array-value-object.d.ts +1 -0
  17. package/lib/types/engine/value-object/base-value-object.d.ts +1 -0
  18. package/lib/types/engine/value-object/primitive-object.d.ts +3 -0
  19. package/lib/types/functions/__tests__/create-function-test-bed.d.ts +7 -8
  20. package/lib/types/functions/date/datedif/__tests__/index.spec.d.ts +16 -0
  21. package/lib/types/functions/date/datedif/index.d.ts +9 -0
  22. package/lib/types/functions/date/days/__tests__/index.spec.d.ts +16 -0
  23. package/lib/types/functions/date/days/index.d.ts +8 -0
  24. package/lib/types/functions/date/days360/__tests__/index.spec.d.ts +16 -0
  25. package/lib/types/functions/date/days360/index.d.ts +9 -0
  26. package/lib/types/functions/date/eomonth/__tests__/index.spec.d.ts +16 -0
  27. package/lib/types/functions/date/eomonth/index.d.ts +8 -0
  28. package/lib/types/functions/date/function-map.d.ts +1 -1
  29. package/lib/types/functions/date/isoweeknum/__tests__/index.spec.d.ts +16 -0
  30. package/lib/types/functions/date/isoweeknum/index.d.ts +9 -0
  31. package/lib/types/functions/date/networkdays/index.d.ts +1 -0
  32. package/lib/types/functions/date/networkdays-intl/index.d.ts +1 -0
  33. package/lib/types/functions/date/weekday/index.d.ts +1 -0
  34. package/lib/types/functions/date/weeknum/__tests__/index.spec.d.ts +16 -0
  35. package/lib/types/functions/date/weeknum/index.d.ts +10 -0
  36. package/lib/types/functions/date/workday/index.d.ts +1 -0
  37. package/lib/types/functions/date/workday-intl/index.d.ts +2 -0
  38. package/lib/types/functions/date/yearfrac/__tests__/index.spec.d.ts +16 -0
  39. package/lib/types/functions/date/yearfrac/index.d.ts +12 -0
  40. package/lib/types/functions/information/cell/__tests__/index.spec.d.ts +16 -0
  41. package/lib/types/functions/information/cell/index.d.ts +12 -0
  42. package/lib/types/functions/information/error-type/__tests__/index.spec.d.ts +16 -0
  43. package/lib/types/functions/information/error-type/index.d.ts +10 -0
  44. package/lib/types/functions/information/function-map.d.ts +2 -1
  45. package/lib/types/functions/information/type/__tests__/index.spec.d.ts +16 -0
  46. package/lib/types/functions/information/type/index.d.ts +10 -0
  47. package/lib/types/functions/lookup/areas/__tests__/index.spec.d.ts +16 -0
  48. package/lib/types/functions/lookup/areas/index.d.ts +11 -0
  49. package/lib/types/functions/lookup/choosecols/__tests__/index.spec.d.ts +16 -0
  50. package/lib/types/functions/lookup/choosecols/index.d.ts +9 -0
  51. package/lib/types/functions/lookup/chooserows/__tests__/index.spec.d.ts +16 -0
  52. package/lib/types/functions/lookup/chooserows/index.d.ts +9 -0
  53. package/lib/types/functions/lookup/filter/__tests__/index.spec.d.ts +16 -0
  54. package/lib/types/functions/lookup/filter/index.d.ts +11 -0
  55. package/lib/types/functions/lookup/function-map.d.ts +3 -6
  56. package/lib/types/functions/lookup/hstack/__tests__/index.spec.d.ts +16 -0
  57. package/lib/types/functions/lookup/hstack/index.d.ts +9 -0
  58. package/lib/types/functions/lookup/sort/__tests__/index.spec.d.ts +16 -0
  59. package/lib/types/functions/lookup/sort/index.d.ts +14 -0
  60. package/lib/types/functions/lookup/sortby/__tests__/index.spec.d.ts +16 -0
  61. package/lib/types/functions/lookup/sortby/index.d.ts +17 -0
  62. package/lib/types/functions/lookup/transpose/__tests__/index.spec.d.ts +16 -0
  63. package/lib/types/functions/lookup/transpose/index.d.ts +9 -0
  64. package/lib/types/functions/lookup/unique/__tests__/index.spec.d.ts +16 -0
  65. package/lib/types/functions/lookup/unique/index.d.ts +12 -0
  66. package/lib/types/functions/lookup/vstack/__tests__/index.spec.d.ts +16 -0
  67. package/lib/types/functions/lookup/vstack/index.d.ts +9 -0
  68. package/lib/types/functions/lookup/xlookup/index.d.ts +1 -0
  69. package/lib/types/functions/math/base/index.d.ts +1 -0
  70. package/lib/types/functions/math/ceiling/__tests__/index.spec.d.ts +16 -0
  71. package/lib/types/functions/math/ceiling/index.d.ts +8 -0
  72. package/lib/types/functions/math/ceiling-math/__tests__/index.spec.d.ts +16 -0
  73. package/lib/types/functions/math/ceiling-math/index.d.ts +9 -0
  74. package/lib/types/functions/math/ceiling-precise/__tests__/index.spec.d.ts +16 -0
  75. package/lib/types/functions/math/ceiling-precise/index.d.ts +8 -0
  76. package/lib/types/functions/math/cosh/index.d.ts +1 -1
  77. package/lib/types/functions/math/cot/index.d.ts +1 -0
  78. package/lib/types/functions/math/coth/index.d.ts +1 -0
  79. package/lib/types/functions/math/csc/index.d.ts +1 -0
  80. package/lib/types/functions/math/csch/index.d.ts +1 -0
  81. package/lib/types/functions/math/decimal/__tests__/index.spec.d.ts +16 -0
  82. package/lib/types/functions/math/decimal/index.d.ts +9 -0
  83. package/lib/types/functions/math/degrees/__tests__/index.spec.d.ts +16 -0
  84. package/lib/types/functions/math/degrees/index.d.ts +9 -0
  85. package/lib/types/functions/math/even/__tests__/index.spec.d.ts +16 -0
  86. package/lib/types/functions/math/even/index.d.ts +9 -0
  87. package/lib/types/functions/math/exp/__tests__/index.spec.d.ts +16 -0
  88. package/lib/types/functions/math/exp/index.d.ts +8 -0
  89. package/lib/types/functions/math/floor/__tests__/index.spec.d.ts +16 -0
  90. package/lib/types/functions/math/floor/index.d.ts +8 -0
  91. package/lib/types/functions/math/floor-math/__tests__/index.spec.d.ts +16 -0
  92. package/lib/types/functions/math/floor-math/index.d.ts +8 -0
  93. package/lib/types/functions/math/floor-precise/__tests__/index.spec.d.ts +16 -0
  94. package/lib/types/functions/math/floor-precise/index.d.ts +8 -0
  95. package/lib/types/functions/math/function-map.d.ts +3 -2
  96. package/lib/types/functions/math/ln/__tests__/index.spec.d.ts +16 -0
  97. package/lib/types/functions/math/ln/index.d.ts +8 -0
  98. package/lib/types/functions/math/log/__tests__/index.spec.d.ts +16 -0
  99. package/lib/types/functions/math/log/index.d.ts +8 -0
  100. package/lib/types/functions/math/log10/__tests__/index.spec.d.ts +16 -0
  101. package/lib/types/functions/math/log10/index.d.ts +8 -0
  102. package/lib/types/functions/math/mround/__tests__/index.spec.d.ts +16 -0
  103. package/lib/types/functions/math/mround/index.d.ts +8 -0
  104. package/lib/types/functions/math/odd/__tests__/index.spec.d.ts +16 -0
  105. package/lib/types/functions/math/odd/index.d.ts +9 -0
  106. package/lib/types/functions/math/pi/__tests__/index.spec.d.ts +16 -0
  107. package/lib/types/functions/math/pi/index.d.ts +8 -0
  108. package/lib/types/functions/math/radians/__tests__/index.spec.d.ts +16 -0
  109. package/lib/types/functions/math/radians/index.d.ts +9 -0
  110. package/lib/types/functions/math/rand/__tests__/index.spec.d.ts +16 -0
  111. package/lib/types/functions/math/rand/index.d.ts +8 -0
  112. package/lib/types/functions/math/randarray/__tests__/index.spec.d.ts +16 -0
  113. package/lib/types/functions/math/randarray/index.d.ts +13 -0
  114. package/lib/types/functions/math/randbetween/__tests__/index.spec.d.ts +16 -0
  115. package/lib/types/functions/math/randbetween/index.d.ts +8 -0
  116. package/lib/types/functions/math/round/__tests__/index.spec.d.ts +16 -0
  117. package/lib/types/functions/math/round/index.d.ts +8 -0
  118. package/lib/types/functions/math/rounddown/__tests__/index.spec.d.ts +16 -0
  119. package/lib/types/functions/math/rounddown/index.d.ts +8 -0
  120. package/lib/types/functions/math/roundup/__tests__/index.spec.d.ts +16 -0
  121. package/lib/types/functions/math/roundup/index.d.ts +8 -0
  122. package/lib/types/functions/math/sec/__tests__/index.spec.d.ts +16 -0
  123. package/lib/types/functions/math/sec/index.d.ts +9 -0
  124. package/lib/types/functions/math/sech/__tests__/index.spec.d.ts +16 -0
  125. package/lib/types/functions/math/sech/index.d.ts +9 -0
  126. package/lib/types/functions/math/sqrt/__tests__/index.spec.d.ts +16 -0
  127. package/lib/types/functions/math/sqrt/index.d.ts +8 -0
  128. package/lib/types/functions/math/sqrtpi/__tests__/index.spec.d.ts +16 -0
  129. package/lib/types/functions/math/sqrtpi/index.d.ts +8 -0
  130. package/lib/types/functions/math/sumproduct/index.d.ts +2 -0
  131. package/lib/types/functions/math/sumsq/__tests__/index.spec.d.ts +16 -0
  132. package/lib/types/functions/math/sumsq/index.d.ts +8 -0
  133. package/lib/types/functions/math/sumx2my2/__tests__/index.spec.d.ts +16 -0
  134. package/lib/types/functions/math/sumx2my2/index.d.ts +9 -0
  135. package/lib/types/functions/math/sumx2py2/__tests__/index.spec.d.ts +16 -0
  136. package/lib/types/functions/math/sumx2py2/index.d.ts +9 -0
  137. package/lib/types/functions/math/sumxmy2/__tests__/index.spec.d.ts +16 -0
  138. package/lib/types/functions/math/sumxmy2/index.d.ts +9 -0
  139. package/lib/types/functions/math/trunc/__tests__/index.spec.d.ts +16 -0
  140. package/lib/types/functions/math/trunc/index.d.ts +8 -0
  141. package/lib/types/functions/text/function-map.d.ts +6 -3
  142. package/lib/types/functions/text/rept/__test__/index.spec.d.ts +16 -0
  143. package/lib/types/functions/text/rept/index.d.ts +8 -0
  144. package/lib/types/functions/text/textafter/__test__/index.spec.d.ts +16 -0
  145. package/lib/types/functions/text/textafter/index.d.ts +15 -0
  146. package/lib/types/functions/text/textbefore/__test__/index.spec.d.ts +16 -0
  147. package/lib/types/functions/text/textbefore/index.d.ts +15 -0
  148. package/lib/types/functions/text/textsplit/__test__/index.spec.d.ts +16 -0
  149. package/lib/types/functions/text/textsplit/index.d.ts +15 -0
  150. package/lib/types/index.d.ts +3 -3
  151. package/lib/types/models/__tests__/create-command-test-bed.d.ts +7 -8
  152. package/lib/types/plugin.d.ts +1 -2
  153. package/lib/types/services/active-dirty-manager.service.d.ts +1 -1
  154. package/lib/types/services/current-data.service.d.ts +11 -1
  155. package/lib/types/services/defined-names.service.d.ts +1 -1
  156. package/lib/types/services/dependency-manager.service.d.ts +16 -6
  157. package/lib/types/services/feature-calculation-manager.service.d.ts +19 -12
  158. package/lib/types/services/function.service.d.ts +2 -3
  159. package/lib/types/services/other-formula-manager.service.d.ts +1 -1
  160. package/lib/types/services/runtime.service.d.ts +1 -1
  161. package/lib/types/services/super-table.service.d.ts +1 -1
  162. package/lib/umd/index.js +1 -1
  163. package/package.json +9 -11
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var na=Object.defineProperty;var sa=(n,i,e)=>i in n?na(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e;var d=(n,i,e)=>sa(n,typeof i!="symbol"?i+"":i,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@univerjs/core"),q=require("@wendellhu/redi"),Dt=require("rxjs"),ia=require("@univerjs/rpc");function Ps(n,i,e,t,r){for(let s=0,a=n.length;s<a;s++){const o=n[s];if(i!==o.unitId||e!==o.sheetId)continue;const{startRow:u,startColumn:c,endRow:l,endColumn:m}=o.range;if(t>=u&&t<=l&&r>=c&&r<=m)return!0}return!1}var f=(n=>(n.DIV_BY_ZERO="#DIV/0!",n.NAME="#NAME?",n.VALUE="#VALUE!",n.NUM="#NUM!",n.NA="#N/A",n.CYCLE="#CYCLE!",n.REF="#REF!",n.SPILL="#SPILL!",n.CALC="#CALC!",n.ERROR="#ERROR!",n.CONNECT="#GETTING_DATA",n.NULL="#NULL!",n))(f||{});const Lt=new Set(Object.values(f));var Ls=(n=>(n[n.Financial=0]="Financial",n[n.Date=1]="Date",n[n.Math=2]="Math",n[n.Statistical=3]="Statistical",n[n.Lookup=4]="Lookup",n[n.Database=5]="Database",n[n.Text=6]="Text",n[n.Logical=7]="Logical",n[n.Information=8]="Information",n[n.Engineering=9]="Engineering",n[n.Cube=10]="Cube",n[n.Compatibility=11]="Compatibility",n[n.Web=12]="Web",n[n.Array=13]="Array",n[n.Univer=14]="Univer",n[n.User=15]="User",n[n.DefinedName=16]="DefinedName",n))(Ls||{}),se=(n=>(n.PLUS="+",n.MINUS="-",n.MULTIPLY="*",n.DIVIDED="/",n.CONCATENATE="&",n.POWER="^",n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(se||{}),O=(n=>(n.EQUALS="=",n.NOT_EQUAL="<>",n.GREATER_THAN=">",n.GREATER_THAN_OR_EQUAL=">=",n.LESS_THAN="<",n.LESS_THAN_OR_EQUAL="<=",n))(O||{});const ar=new Map([["<>",3],["<",3],[">=",3],["=",3],[">",3],["<=",3],["&",2],["+",2],["-",2],["/",1],["*",1],["^",0]]),ht=new Set(ar.keys()),aa=new Set(["=","<>",">",">=","<","<="]);var z=(n=>(n.OPEN_BRACKET="(",n.CLOSE_BRACKET=")",n.COMMA=",",n.SINGLE_QUOTATION="'",n.DOUBLE_QUOTATION='"',n.OPEN_BRACES="{",n.CLOSE_BRACES="}",n.COLON=":",n.OPEN_SQUARE_BRACKET="[",n.CLOSE_SQUARE_BRACKET="]",n))(z||{}),Xe=(n=>(n.PERCENTAGE="%",n.POUND="#",n))(Xe||{});const oa=new Set(["%","#"]);var Re=(n=>(n.AT="@",n.MINUS="-",n))(Re||{});const ua=" ",xs=[...Object.values(O),...Object.values(se),...Object.values(z),...Object.values(Xe),...Object.values(Re)];function vt(n){return xs.includes(n)}function Vs(n){for(const i of xs)if(n.indexOf(i)>-1)return!0;return!1}function ca(n){return n[0]==="'"&&n[n.length-1]==="'"?n.substring(1,n.length-1):n}function la(n){return vt(n)&&n!==z.CLOSE_BRACES&&n!==z.CLOSE_BRACKET&&n!==z.SINGLE_QUOTATION&&n!==z.DOUBLE_QUOTATION||n===" "}function ws(n){const i={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;i[e]==null&&(i[e]={}),Object.keys(t).forEach(r=>{const s=t[r];i[e][r]=new b.ObjectMatrix(s)})}),i}function fa(n){const i={};return Object.keys(n).forEach(e=>{const t=n[e];if(t==null)return!0;i[e]==null&&(i[e]={}),Object.keys(t).forEach(r=>{const s=t[r];i[e][r]=s.getData()})}),i}const Ne="P_1",st="R_1",bt="L_1",Ht="LR_1",Us="LO_1",ha="LET",It="LAMBDA",ma="CUBE";class G{constructor(){d(this,"_parent");d(this,"_token",st);d(this,"_children",[]);d(this,"_lambdaId");d(this,"_functionDefinitionPrivacyVar");d(this,"_lambdaParameter","");d(this,"_startIndex",-1);d(this,"_endIndex",-1);d(this,"_definedNames",[])}dispose(){var i;this._children.forEach(e=>{typeof e!="string"&&e.dispose()}),(i=this._functionDefinitionPrivacyVar)==null||i.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(i){this._lambdaId=i}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(i){this._functionDefinitionPrivacyVar=i}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(i){this._lambdaParameter=i}getParent(){return this._parent}setParent(i){this._parent=i}getChildren(){return this._children}setChildren(i){this._children=i}addChildren(i){this._children.push(i)}addChildrenFirst(i){this._children.unshift(i)}getToken(){return this._token}setToken(i){this._token=i}setIndex(i,e){this._startIndex=i,this._endIndex=e}setDefinedNames(i){this._definedNames=i}hasDefinedNames(){return this._definedNames.length>0}replaceChild(i,e){const t=this._getIndexInParent(i);t!=null&&(this.getChildren().splice(t,1,e),e.setParent(this))}changeToParent(i){const e=this.getParent();e&&e.removeChild(this),this.setParent(i),i.getChildren().push(this)}removeChild(i){const e=this._getIndexInParent(i);e!=null&&this.getChildren().splice(e,1)}serialize(){const i=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let s=0;s<r;s++){const a=e[s];a instanceof G?t.push(a.serialize()):t.push(a)}return{token:i,st:this._startIndex,ed:this._endIndex,children:t}}_getIndexInParent(i){const e=this.getChildren(),t=e.length;for(let r=0;r<t;r++)if(e[r]===i)return r}}class _t{constructor(i){d(this,"_cache");this._cache=new b.LRUMap(i)}set(i,e){const t=this._hash(i);this._cache.set(t,e)}get(i){const e=this._hash(i);return this._cache.get(e)}clear(){this._cache.clear()}_hash(i){return b.hashAlgorithm(i)}}const an='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',da="((?![\\[\\]\\/?*\\\\]).)*!",it="$",hn="\\s*?:\\s*?",dr="[A-Za-z]+",gr="[1-9][0-9]*",xt=`'?(${an})?(${da})?'?`,on=`\\${it}?${dr}\\${it}?${gr}`,ga=`^(${Re.AT})?${xt}${on}${hn}${on}$`,Qt=`^${xt}\\s*?${on}(${Xe.POUND})?$`,Os=`^${xt}\\${it}?${gr}${hn}\\${it}?${gr}$`,Ms=`^${xt}\\${it}?${dr}${hn}\\${it}?${dr}$`,Fs=`^${xt}\\s*?\\${it}?${gr}$`,vs=`^${xt}\\s*?\\${it}?${dr}$`,Bs="[.*?]",pa="{.*?}";function Ts(n){return new RegExp(Qt).test(n)||new RegExp(ga).test(n)||new RegExp(Os).test(n)||new RegExp(Ms).test(n)}var Le=(n=>(n[n.NORMAL=0]="NORMAL",n[n.NUMBER=1]="NUMBER",n[n.STRING=2]="STRING",n[n.FUNCTION=3]="FUNCTION",n[n.REFERENCE=4]="REFERENCE",n[n.ARRAY=5]="ARRAY",n[n.DEFINED_NAME=6]="DEFINED_NAME",n))(Le||{});function pr(n){let i="";for(const e of n)typeof e=="string"?i+=e:i+=e.token;return i}const Ra=/[^0-9]/g,_a=/[^A-Za-z]/g;function Bt(n){let i=n[0]==="$";const e=n.substring(1);let t=e.indexOf("$")>-1;return b.Tools.isStringNumber(e)&&i&&!t&&(i=!1,t=!0),i&&t?b.AbsoluteRefType.ALL:i?b.AbsoluteRefType.COLUMN:t?b.AbsoluteRefType.ROW:b.AbsoluteRefType.NONE}function Ea(n){const i=n.split("!");i.length>1&&(n=i[i.length-1]);const e=n.split(":");return e.length>1?{startAbsoluteRefType:Bt(e[0]),endAbsoluteRefType:Bt(e[1])}:{startAbsoluteRefType:Bt(e[0])}}function Qn(n=b.AbsoluteRefType.NONE){let i="",e="";return n===b.AbsoluteRefType.ROW?i="$":n===b.AbsoluteRefType.COLUMN?e="$":n===b.AbsoluteRefType.ALL&&(i="$",e="$"),{rowAbsoluteString:i,columnAbsoluteString:e}}function Ke(n){const{startColumn:i,startRow:e,endColumn:t,endRow:r,startAbsoluteRefType:s,endAbsoluteRefType:a,rangeType:o=b.RANGE_TYPE.NORMAL}=n,u=Qn(s),c=Qn(a);if(o===b.RANGE_TYPE.ROW||o===b.RANGE_TYPE.ALL){const g=`${u.rowAbsoluteString}${e+1}`,p=`${c.rowAbsoluteString}${r+1}`;return`${g}:${p}`}if(o===b.RANGE_TYPE.COLUMN){const g=`${u.columnAbsoluteString}${b.Tools.chatAtABC(i)}`,p=`${c.columnAbsoluteString}${b.Tools.chatAtABC(t)}`;return`${g}:${p}`}const l=`${u.columnAbsoluteString}${b.Tools.chatAtABC(i)}${u.rowAbsoluteString}${e+1}`,m=`${c.columnAbsoluteString}${b.Tools.chatAtABC(t)}${c.rowAbsoluteString}${r+1}`;return l===m?l:`${l}:${m}`}function ks(n,i){return _r(n)?`'${n}'!${Ke(i)}`:`${n}!${Ke(i)}`}function Is(n,i,e){return _r(n)||_r(i)?`'[${n}]${i}'!${Ke(e)}`:`[${n}]${i}!${Ke(e)}`}function pt(n){const{unitId:i,sheetName:e,range:t}=n;return i!=null&&i.length>0&&e!=null&&e.length>0?Is(i,e,t):e!=null&&e.length>0?ks(e,t):Ke(t)}function or(n){const i=Number.parseInt(n.replace(Ra,""))-1,e=b.Tools.ABCatNum(n.replace(_a,"")),t=Bt(n);return{row:i,column:e,absoluteRefType:t}}function js(n){const i=new RegExp(an).exec(n);let e="";i!=null&&(e=i[0].trim(),e=e.slice(1,e.length-1),n=n.replace(new RegExp(an),""));const t=n.indexOf("!");let r="",s="";return t>-1?(r=n.substring(0,t),r[0]==="'"&&r[r.length-1]==="'"&&(r=r.substring(1,r.length-1)),s=n.substring(t+1)):s=n,{refBody:s,sheetName:r,unitId:e}}function $e(n){const{refBody:i,sheetName:e,unitId:t}=js(n),r=i.indexOf(":");if(r===-1){const R=or(i),D=R.row,P=R.column,w=R.absoluteRefType;return{unitId:t,sheetName:e,range:{startRow:D,startColumn:P,endRow:D,endColumn:P,startAbsoluteRefType:w,endAbsoluteRefType:w}}}const s=i.substring(0,r),a=i.substring(r+1),o=or(s),u=or(a),c=o.row,l=o.column,m=u.row,g=u.column;let p=b.RANGE_TYPE.NORMAL;return Number.isNaN(c)&&Number.isNaN(m)?p=b.RANGE_TYPE.COLUMN:Number.isNaN(l)&&Number.isNaN(g)&&(p=b.RANGE_TYPE.ROW),{unitId:t,sheetName:e,range:{startRow:c,startColumn:l,endRow:m,endColumn:g,startAbsoluteRefType:o.absoluteRefType,endAbsoluteRefType:u.absoluteRefType,rangeType:p}}}function Rr(n){if(!Ts(n))return!1;const{range:i}=$e(n);return!(i.endColumn>=16384)}function Ca(n,i){const e=(n==null?void 0:n.split(","))||[];return n===""||e.length===0?[]:$s(n)?e.map(s=>{const a=$e(s);return{unitId:a.unitId,sheetId:i(a.sheetName),range:a.range,sheetName:a.sheetName}}):[]}function $s(n){return((n==null?void 0:n.split(","))||[]).every(e=>Rr(e.trim()))}function _r(n){return n.length===0?!1:!!(Vs(n)||ya(n)||Da(n)||ba(n)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(n))}function ya(n){const i=n.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(n)&&i!==null}function Da(n){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(n)}function ba(n){return!new RegExp("^\\p{Letter}","u").test(n.charAt(0))}const Ys=1e5,Xr=new _t(Ys),Kr=new _t(Ys);class Or extends b.Disposable{constructor(){super(...arguments);d(this,"_currentLexerNode",new G);d(this,"_upLevel",0);d(this,"_segment","");d(this,"_bracketState",[]);d(this,"_squareBracketState",0);d(this,"_bracesState",0);d(this,"_singleQuotationState",0);d(this,"_doubleQuotationState",0);d(this,"_lambdaState",!1);d(this,"_colonState",!1);d(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),Xr.clear(),Kr.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(e,t){const r=this._getCurrentParamIndex(e,t);if(r==null||r===f.VALUE)return;const s=r[0];if(typeof s=="string")return;let a=s.getParent(),o=s;for(;a;){const u=a.getToken();if(u!==Ne&&!vt(u)&&a.getStartIndex()!==-1){const c=a.getChildren().indexOf(o);return{functionName:u,paramIndex:c}}o=a,a=a.getParent()}}checkIfAddBracket(e){let t=0,r=e.length-1,s=e[r];for(;(s===z.CLOSE_BRACKET||s===" ")&&r>=0;)s===z.CLOSE_BRACKET&&t++,s=e[--r];const a=this._getCurrentParamIndex(e,e.length-2);if(a==null||a===f.VALUE)return 0;const o=a[0];if(typeof o=="string")return 0;let u=o.getParent(),c=0;for(a[1]===z.OPEN_BRACKET&&c++;u;){const l=u.getToken();l!==Ne&&l!==z.COLON&&u.getStartIndex()!==-1&&l.toUpperCase()!==It&&(t===0?c+=1:t--),u=u.getParent()}return c}sequenceNodesBuilder(e){const t=Kr.get(e);if(t)return[...t];const r=this._getSequenceArray(e);if(r.length===0)return;const s=this.getSequenceNode(r);return Kr.set(e,[...s]),s}convertRefersToAbsolute(e,t,r){const s=this.sequenceNodesBuilder(e);if(s==null)return e;let a="";e.substring(0,1)===se.EQUALS&&(a=se.EQUALS);for(let o=0,u=s.length;o<u;o++){const c=s[o];if(typeof c!="string"&&c.nodeType===Le.REFERENCE){const{token:l,endIndex:m}=c,g=$e(l);if(g==null)continue;const{range:p,sheetName:R,unitId:D}=g,P={...p,startAbsoluteRefType:t,endAbsoluteRefType:r},w=pt({range:P,unitId:D,sheetName:R}),v=w.length-l.length;s[o]={...c,token:w,endIndex:m+v};for(let B=o+1;B<u;B++){const X=s[B];typeof X!="string"&&(X.startIndex+=v,X.endIndex+=v)}}}return`${a}${pr(s)}`}moveFormulaRefOffset(e,t,r,s=!1){const a=this.sequenceNodesBuilder(e);if(a==null)return e;const o=[];for(let u=0,c=a.length;u<c;u++){const l=a[u];if(typeof l=="string"||l.nodeType!==Le.REFERENCE){o.push(l);continue}const{token:m}=l,g=$e(m),{sheetName:p,unitId:R}=g;let D=g.range;if(!s&&D.startAbsoluteRefType===b.AbsoluteRefType.ALL&&D.endAbsoluteRefType===b.AbsoluteRefType.ALL){o.push(l);continue}else D=b.moveRangeByOffset(D,t,r,s);let P="";b.isValidRange(D)?P=pt({range:D,unitId:R,sheetName:p}):P=f.REF,o.push({...l,token:P})}return`=${pr(o)}`}getSequenceNode(e){const t=[];let r=!1;for(let s=0,a=e.length;s<a;s++){const o=e[s],u=e[s-1],{segment:c,currentString:l}=o;if(l===z.DOUBLE_QUOTATION&&(r=!0),(c!==""||s===0)&&s!==a-1){t.push(l);continue}let m=(u==null?void 0:u.segment)||"",g=s-m.length,p=s-1,R=s-1;if(s===a-1&&this._isLastMergeString(l)&&(m+=l,p+=1),m===""||ar.has(m)){t.push(l);continue}const D=m.trim(),P=this._replacePrefixString(D);if(r===!0&&D[D.length-1]===z.DOUBLE_QUOTATION)r=!1,this._processPushSequenceNode(t,Le.STRING,m,g,p,R);else if(new RegExp(Qt).test(P)&&Rr(P)){if(P.length!==D.length){const w=D.length-P.length;R+=w,g+=w,m=this._replacePrefixString(m)}this._processPushSequenceNode(t,Le.REFERENCE,m,g,p,R)}else b.Tools.isStringNumber(D)?this._processPushSequenceNode(t,Le.NUMBER,m,g,p,R):D.length>0&&this._processPushSequenceNode(t,Le.FUNCTION,m,g,p,R);(s!==a-1||!this._isLastMergeString(l))&&t.push(l)}return this._mergeSequenceNodeReference(t)}_processPushSequenceNode(e,t,r,s,a,o){this._pushSequenceNode(e,{nodeType:t,token:r,startIndex:s,endIndex:a},o)}_getCurrentParamIndex(e,t){return this._nodeMaker(e,void 0,t)}_isLastMergeString(e){return e===z.DOUBLE_QUOTATION||b.Tools.isStringNumber(e)||!vt(e)}_mergeSequenceNodeReference(e){const t=[],r=e.length;let s=0;for(;s<r;){const a=e[s];if(typeof a=="string"){const o=e[s-1];if(a.trim()===z.CLOSE_BRACES&&o!=null&&typeof o!="string"&&o.nodeType===Le.FUNCTION&&o.token.trim().substring(0,1)===z.OPEN_BRACES){o.nodeType=Le.ARRAY,o.token+=a,o.endIndex+=a.length,s++;continue}t.push(a)}else{const o=e[s+1],u=e[s+2];o===z.COLON&&typeof a!="string"&&u!=null&&typeof u!="string"&&Rr((a.token+o+u.token).trim())&&(a.nodeType=Le.REFERENCE,a.token+=o+u.token,a.endIndex=u.endIndex,s+=2),t.push(a)}s++}return t}_pushSequenceNode(e,t,r){const s=r-t.startIndex+1;e.splice(e.length-s,s,t)}_replacePrefixString(e){const t=[];let r=!1;for(let s=0,a=e.length;s<a;s++){const o=e[s];if(o===ua&&!r)t.push(o);else{if(!r&&(o===Re.AT||o===Re.MINUS))continue;t.push(o),r=!0}}return t.join("")}nodeMakerTest(e){return this._nodeMaker(e)}treeBuilder(e,t=!0,r,s){if(t===!0){const g=Xr.get(e),p=s==null?void 0:s(e);if(g&&!p)return g}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(st);const a=[];let o=this._nodeMaker(e,a);if(o===f.VALUE||a.length===0)return o;let u=!1,c="",l=[];if(r){const{hasDefinedName:g,sequenceString:p,definedNames:R}=r(a);u=g,c=p,l=R}if(u&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(st),o=this._nodeMaker(`=${c}`),o===f.VALUE))return o;const m=this._getTopNode(this._currentLexerNode);if(m&&(this._currentLexerNode=m),t){if(!this._suffixExpressionHandler(this._currentLexerNode))return f.VALUE;Xr.set(e,this._currentLexerNode)}return u&&this._currentLexerNode.setDefinedNames(l),this._currentLexerNode}_suffixExpressionHandler(e){var o;const t=e.getChildren();if(!t)return!1;const r=t.length,s=[],a=[];for(let u=0;u<r;u++){const c=t[u];if(c instanceof G)this._suffixExpressionHandler(c),s.push(c);else{const l=c.trim();if(l==="")continue;if(ht.has(l)){if(l===se.PLUS&&this._deletePlusForPreNode(t[u-1]))continue;if(l!==se.PLUS&&l!==se.MINUS&&this._deletePlusForPreNode(t[u-1]))return!1;for(;a.length>0;){const m=(o=a[a.length-1])==null?void 0:o.trim();if(!m||m===z.OPEN_BRACKET)break;const g=ar.get(m),p=ar.get(l);if(!g||!p)break;if(p>=g)s.push(a.pop());else break}a.push(c)}else if(l===z.OPEN_BRACKET)a.push(c);else if(l===z.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(s,a,t,u);else{if(this._checkCloseBracket(t[u-1]))return!1;s.push(c)}}}return this._processSuffixExpressionRemain(s,a,e)}_processSuffixExpressionRemain(e,t,r){const s=e.length,a=e[s-1];for(;t.length>0;){const o=t.pop();if(!(a instanceof G)&&(o===z.OPEN_BRACKET||o===z.CLOSE_BRACKET))return!1;e.push(o)}return r.setChildren(e),!0}_processSuffixExpressionCloseBracket(e,t,r,s){var a;if(this._checkOpenBracket(r[s-1])||this._checkOperator(r[s-1]))return!1;for(;t.length>0;){const o=(a=t[t.length-1])==null?void 0:a.trim();if(!o)break;if(o===z.OPEN_BRACKET){t.pop();break}e.push(t.pop())}}_checkCloseBracket(e){return e===z.CLOSE_BRACKET}_checkOpenBracket(e){return e===z.OPEN_BRACKET}_checkOperator(e){return e==null||e instanceof G?!1:ht.has(e)}_deletePlusForPreNode(e){if(e==null)return!0;if(!(e instanceof G)){const t=e.trim();if(ht.has(t)||t===z.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new G}_resetSegment(){this._segment=""}_openBracket(e=0){this._bracketState.push(e)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const e=this._bracketState;return e[e.length-1]}_changeCurrentBracket(e){const t=this._bracketState;t[t.length-1]=e}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(e){this._upLevel=e,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_getLastChildCurrentLexerNode(){const e=this._currentLexerNode.getChildren();if(e&&e.length>0){const t=e[e.length-1];if(t instanceof G)return t}return!1}_getLastChildCurrent(){const e=this._currentLexerNode.getChildren();return e&&e.length>0?e[e.length-1]:!1}_setParentCurrentLexerNode(){const e=this._currentLexerNode.getParent();return e?(this._currentLexerNode=e,!0):!1}_setAncestorCurrentLexerNode(){var r,s,a,o,u,c;const e=(r=this._currentLexerNode)==null?void 0:r.getParent();let t=!1;if(e&&e.getToken()===bt){if((s=e==null?void 0:e.getParent())!=null&&s.getParent()){const l=(o=(a=this._currentLexerNode.getParent())==null?void 0:a.getParent())==null?void 0:o.getParent();l&&(this._currentLexerNode=l),t=!0}}else if(e!=null&&e.getParent()){const l=(u=this._currentLexerNode.getParent())==null?void 0:u.getParent();l&&(this._currentLexerNode=l),t=!0}for(let l=0;l<this._upLevel;l++){const m=(c=this._currentLexerNode)==null?void 0:c.getParent();m&&(this._currentLexerNode=m),this._currentLexerNode?t=!0:t=!1}return t}_segmentCount(){return this._segment.trim().length}_pushSegment(e){this._segment+=e}_pushNodeToChildren(e,t=!1){if(e!==""){const r=this._currentLexerNode.getChildren();if(!(e instanceof G)&&this.isColonOpen()){const s=new G;s.setToken(e),s.setParent(this._currentLexerNode),e=s}t?r.unshift(e):r.push(e)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(e,t=!1){this._pushNodeToChildren(e,t),e.setParent(this._currentLexerNode),this._currentLexerNode=e}_newAndPushCurrentLexerNode(e,t,r=!1){const s=new G;s.setToken(e),s.setIndex(t-e.length,t-1),this._setCurrentLexerNode(s,r)}_getTopNode(e){let t=e;for(;t!=null&&t.getParent();)t=t.getParent();return t}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_findPreviousToken(e,t){for(;t>=0;){const r=e[t];if(r!==" ")return r;t--}}_negativeCondition(e){return!!(ht.has(e)||e===z.OPEN_BRACKET||e===z.COMMA||e==="")}_getSequenceArray(e){const t=[];return this._nodeMaker(e,t),t}_resetTemp(){this._currentLexerNode=new G,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1}_checkSimilarErrorToken(e,t,r){if(e!==Xe.POUND)return!0;let s=r[++t];for(;s===" ";)s=r[++t];return!!vt(s)}_nodeMaker(e,t,r){e.substring(0,1)===se.EQUALS&&(e=e.substring(1));let s=!1;e.substring(0,1)===se.MINUS&&(e=`0${e}`,s=!0);const a=e.split(""),o=a.length;let u=0;for(this._resetTemp();u<o;){const c=a[u];if(r===u)return[this._currentLexerNode,c];if(c===z.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,u),this._resetSegment()),this._openBracket(1),this._closeLambda();const l=a[u+1];if(l&&l===z.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._addSequenceArray(t,c,u,s),u++,this._addSequenceArray(t,l,u,s),u++,this._closeBracket();continue}else l&&this._newAndPushCurrentLexerNode(Ne,u)}else this._pushNodeToChildren(c),this._openBracket(0);else if(c===z.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._pushNodeToChildren(this._segment),this._resetSegment();const l=this._getCurrentBracket();if(l===0)this._pushNodeToChildren(c);else if(l===1){const m=a[u+1];if(m&&m===z.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==o-1)return f.VALUE;this._newAndPushCurrentLexerNode(bt,u,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&u!==o-1)return f.VALUE}else return f.VALUE;this._closeBracket()}else if(c===z.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._openBraces();else if(c===z.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(c===z.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(c),this._openSquareBracket();else if(c===z.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(c),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(c);else if(c===z.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const l=a[u+1];l&&l===z.DOUBLE_QUOTATION?u++:this._closeDoubleQuotation()}this._pushSegment(c)}else if(c===z.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const l=a[u+1];l&&l===z.SINGLE_QUOTATION?u++:this._closeSingleQuotation()}this._pushSegment(c)}else if(c===z.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=this._getCurrentBracket();if(l===1||l==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&u!==o-1&&l!=null)return f.VALUE;this._newAndPushCurrentLexerNode(Ne,u)}else{const m=new G;m.setToken(ma);const g=new G;g.setToken(Ne),g.changeToParent(m);const p=this._currentLexerNode.getParent();if(p&&p.getToken()===z.COLON){const R=p.getParent();if(!R)return f.VALUE;p.changeToParent(g),R.setChildren([]),m.changeToParent(R)}else return f.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=m,this._newAndPushCurrentLexerNode(Ne,u)}}else if(c===z.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=new G;l.setToken(c);const m=new G;m.setToken(Ne),m.setParent(l);const g=new G;g.setToken(Ne),g.setParent(l),l.getChildren().push(m,g);let p=l,R=0;if(this._segmentCount()>0){let D,P,w=0;const v=this._segment.trim(),B=v[0],X=v[1];if(B===Re.MINUS&&(D=new G,D.setToken(Re.MINUS),w++),(B===Re.AT||X===Re.AT)&&(P=new G,P.setToken(Re.AT),D&&(D.addChildren(P),P.setParent(D)),w++),w>0&&(this._segment=v.slice(w)),R=w,P)if(P.addChildren(l),l.setParent(P),P.getParent()){const ge=P.getParent();ge&&(p=ge)}else p=P;else D&&(p=D,D.addChildren(l),l.setParent(D));const ue=new G;ue.setToken(this._segment),ue.setParent(m),m.getChildren().push(ue),this._resetSegment()}else{const D=this._getLastChildCurrentLexerNode();D&&D.changeToParent(m)}this._setCurrentLexerNode(p),this._currentLexerNode=g,this._openColon(R)}else if(oa.has(c)&&this._checkSimilarErrorToken(c,u,a)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){this._pushNodeToChildren(this._segment);const l=new G;l.setToken(c);const m=this._getLastChildCurrent();m instanceof G?m.changeToParent(l):m!==!1&&(l.getChildren().push(m),this._removeLastChild()),this._pushNodeToChildren(l),l.setParent(this._currentLexerNode),this._resetSegment()}else if(ht.has(c)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()){let l=this._segment.trim();if(c===se.MINUS&&l===""){const m=this._findPreviousToken(a,u-1)||"";if(this._negativeCondition(m)){this._pushSegment(se.MINUS),this._addSequenceArray(t,c,u,s),u++;continue}}else if(this._segment.length>0&&this._isScientificNotation(a,u,c)){this._pushSegment(c),this._addSequenceArray(t,c,u,s),u++;continue}else this._segment.length>0&&l===""?l=this._segment:(this._pushNodeToChildren(this._segment),l="");if(c===se.LESS_THAN||c===se.GREATER_THAN){const m=a[u+1];if(m&&ht.has(c+m)){this._pushNodeToChildren(l+c+m),this._resetSegment(),this._addSequenceArray(t,c,u,s),u++,this._addSequenceArray(t,m,u,s),u++;continue}else this._pushNodeToChildren(l+c)}else this._pushNodeToChildren(l+c);this._resetSegment()}else this._pushSegment(c);this._addSequenceArray(t,c,u,s),u++}this._pushNodeToChildren(this._segment)}_isScientificNotation(e,t,r){const s=e[t-2];if(s&&Number.isNaN(Number(s))||!(r===se.MINUS||r===se.PLUS))return!1;const a=e[t+1];if(a&&Number.isNaN(Number(a)))return!1;const o=e[t-1];return o&&o.toUpperCase()==="E"}_addSequenceArray(e,t,r,s){s&&r===0||e==null||e.push({segment:this._segment,currentString:t,cur:r,currentLexerNode:this._currentLexerNode})}}class Mr extends b.Disposable{constructor(){super(...arguments);d(this,"pattern","")}getPattern(){return this.pattern}setPattern(e){this.pattern=e}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(e){return!1}}var at=(n=>(n.FALSE="FALSE",n.TRUE="TRUE",n))(at||{}),gt=(n=>(n[n.SUCCESS=0]="SUCCESS",n[n.ERROR=1]="ERROR",n))(gt||{}),mt=(n=>(n.ALL="#All",n.DATA="#Data",n.HEADERS="#Headers",n.TOTALS="#Totals",n))(mt||{}),Te=(n=>(n[n.FRONT=0]="FRONT",n[n.BACK=1]="BACK",n))(Te||{});class Sa{constructor(){d(this,"_cache",new Map);d(this,"_continueBuildingCache",new Map)}set(i,e,t,r,s){if(!this.shouldContinueBuildingCache(i,e,t,s))return;let a=this._cache.get(i);a==null&&(a=new Map,this._cache.set(i,a));let o=a.get(e);o==null&&(o=new Map,a.set(e,o));let u=o.get(t);u==null&&(u=new Map,o.set(t,u));let c=u.get(r);c==null&&(c=new Set,u.set(r,c)),c.add(s)}getCellValuePositions(i,e,t){var r,s;return(s=(r=this._cache.get(i))==null?void 0:r.get(e))==null?void 0:s.get(t)}getCellPositions(i,e,t,r){var s,a,o;return(o=(a=(s=this._cache.get(i))==null?void 0:s.get(e))==null?void 0:a.get(t))==null?void 0:o.get(r)}getCellPosition(i,e,t,r,s,a){const o=this.getCellPositions(i,e,t,r);if(o!=null){for(const u of o)if(u>=s&&u<=a)return u}}setContinueBuildingCache(i,e,t,r,s){let a=this._continueBuildingCache.get(i);a==null&&(a=new Map,this._continueBuildingCache.set(i,a));let o=a.get(e);o==null&&(o=new Map,a.set(e,o));let u=o.get(t);if(u==null){u={startRow:r,endRow:s},o.set(t,u);return}u.startRow=Math.min(u.startRow,r),u.endRow=Math.max(u.endRow,s)}shouldContinueBuildingCache(i,e,t,r){var u,c;const s=(c=(u=this._continueBuildingCache.get(i))==null?void 0:u.get(e))==null?void 0:c.get(t);if(s==null)return!0;const{startRow:a,endRow:o}=s;return!(r>=a&&r<=o)}canUseCache(i,e,t,r,s){var c,l;if(t===-1||r===-1||s===-1)return!1;const a=(l=(c=this._continueBuildingCache.get(i))==null?void 0:c.get(e))==null?void 0:l.get(t);if(a==null)return!1;const{startRow:o,endRow:u}=a;return!(r>u||s<o)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}}const rt=new Sa;var Ge=(n=>(n[n.MIN=0]="MIN",n[n.MAX=1]="MAX",n))(Ge||{}),xe=(n=>(n[n.NORMAL=0]="NORMAL",n[n.MIN=1]="MIN",n[n.MAX=2]="MAX",n))(xe||{});function zn(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(n,i)=>n.localeCompare(i)}function Aa(n){return n.indexOf("*")>-1||n.indexOf("?")>-1}function qr(n,i){const e=La(i).replace(/~?[*?]/g,r=>r.startsWith("~")?`\\${r.substring(1)}`:r==="*"?".*":r==="?"?".":r);return new RegExp(`^${e}$`).test(n)}function Nn(n){return n.replace(/~?[*?]/g,i=>i.startsWith("~")?i.substring(1):" ")}function Pa(n,i,e){let t=!1;switch(e){case O.EQUALS:t=qr(n,i);break;case O.NOT_EQUAL:t=!qr(n,i);break;case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:t=qr(n,i)||n>Nn(i);break;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:t=n<Nn(i);break}return t}function La(n){return n.replace(/[.+^${}()|[\]\\]/g,"\\$&")}class qe extends Mr{constructor(i){super(),this._rawValue=i}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(i){}setArrayValue(i){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return h.create(f.VALUE)}max(){return h.create(f.VALUE)}min(){return h.create(f.VALUE)}count(){return h.create(f.VALUE)}countA(){return h.create(f.VALUE)}countBlank(){return h.create(f.VALUE)}getNegative(){return h.create(f.VALUE)}getReciprocal(){return h.create(f.VALUE)}plus(i){return h.create(f.VALUE)}minus(i){return h.create(f.VALUE)}multiply(i){return h.create(f.VALUE)}divided(i){return h.create(f.VALUE)}mod(i){return h.create(f.VALUE)}map(i){return h.create(f.NAME)}mapValue(i){return h.create(f.NAME)}compare(i,e,t=!1){return h.create(f.NAME)}isEqual(i){return this.compare(i,O.EQUALS)}isNotEqual(i){return this.compare(i,O.NOT_EQUAL)}isGreaterThanOrEqual(i){return this.compare(i,O.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(i){return this.compare(i,O.LESS_THAN_OR_EQUAL)}isLessThan(i){return this.compare(i,O.LESS_THAN)}isGreaterThan(i){return this.compare(i,O.GREATER_THAN)}concatenateFront(i){return h.create(f.NAME)}concatenateBack(i){return h.create(f.NAME)}plusBy(i){return h.create(f.VALUE)}minusBy(i){return h.create(f.VALUE)}multiplyBy(i){return h.create(f.VALUE)}dividedBy(i){return h.create(f.VALUE)}modInverse(i){return h.create(f.VALUE)}compareBy(i,e){return h.create(f.NAME)}concatenate(i,e=Te.FRONT){let t=this.getValue().toString();if(typeof i=="string")e===Te.FRONT?t=i+t:t+=i;else if(typeof i=="number")e===Te.FRONT?t=i.toString()+t:t+=i.toString();else if(typeof i=="boolean"){const r=i?"TRUE":"FALSE";e===Te.FRONT?t=r+t:t+=r}return t}pow(i){return h.create(f.VALUE)}powInverse(i){return h.create(f.VALUE)}sqrt(){return h.create(f.VALUE)}cbrt(){return h.create(f.VALUE)}cos(){return h.create(f.VALUE)}acos(){return h.create(f.VALUE)}acosh(){return h.create(f.VALUE)}sin(){return h.create(f.VALUE)}sinh(){return h.create(f.VALUE)}asin(){return h.create(f.VALUE)}asinh(){return h.create(f.VALUE)}tan(){return h.create(f.VALUE)}tanh(){return h.create(f.VALUE)}atan(){return h.create(f.VALUE)}atan2(i){return h.create(f.VALUE)}atan2Inverse(i){return h.create(f.VALUE)}atanh(){return h.create(f.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return h.create(f.VALUE)}log10(){return h.create(f.VALUE)}exp(){return h.create(f.VALUE)}abs(){return h.create(f.VALUE)}round(i){return h.create(f.VALUE)}roundInverse(i){return h.create(f.VALUE)}floor(i){return h.create(f.VALUE)}floorInverse(i){return h.create(f.VALUE)}ceil(i){return h.create(f.VALUE)}ceilInverse(i){return h.create(f.VALUE)}convertToNumberObjectValue(){return h.create(f.VALUE)}convertToBooleanObjectValue(){return h.create(f.VALUE)}}const xa=1e3,Wn=new _t(xa);class h extends qe{constructor(i,e=""){super(i),this._errorType=i,this._errorContent=e}static create(i,e=""){const t=`${i}-${e}`,r=Wn.get(t);if(r)return r;const s=new h(i,e);return Wn.set(t,s),s}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(i){return i.getErrorType()===this.getErrorType()}isError(){return!0}}function mn(n){let i;switch(n){case O.EQUALS:i=O.EQUALS;break;case O.GREATER_THAN:i=O.LESS_THAN;break;case O.GREATER_THAN_OR_EQUAL:i=O.LESS_THAN_OR_EQUAL;break;case O.LESS_THAN:i=O.GREATER_THAN;break;case O.LESS_THAN_OR_EQUAL:i=O.GREATER_THAN_OR_EQUAL;break;case O.NOT_EQUAL:i=O.NOT_EQUAL;break}return i}function Gn(n,i){return n+i}function Xn(n,i){return n-i}function St(n,i){return n*i}function Kn(n,i){return n/i}function qn(n,i){const e=10**Math.floor(i),t=dn(n,e);return Math.round(St(n,e)+t)/e}function Zn(n,i){const e=10**Math.floor(i),t=dn(n,e);return Math.floor(St(n,e)+t)/e}function Jn(n,i){const e=10**Math.floor(i),t=dn(n,e);return Math.ceil(St(n,e)-t)/e}function dn(n,i){return Number.EPSILON*Math.max(1,Math.abs(St(n,i)))}function es(n,i){return n-i*Math.floor(n/i)}function ts(n,i){return n**i}function Va(n){return Math.sqrt(n)}function rs(n,i){return n===i}function wa(n,i){return n>i}function Ua(n,i){return n>=i}function Oa(n,i){return n<i}function Ma(n,i){return n<=i}function un(n,i=15){return Number.parseFloat(n.toPrecision(i))}function Fa(n,i){return Math.abs(n-i)<Number.EPSILON}function Hs(n,i=12){const e=un(n,i);return Fa(n,e)?e:un(n)}function va(n){return n-Math.trunc(n)}var Ba=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ta(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Qs={exports:{}};(function(n,i){(function(e,t){n.exports=t()})(typeof self<"u"?self:Ba,function(){return function(){var e={d:function(E,_){for(var C in _)e.o(_,C)&&!e.o(E,C)&&Object.defineProperty(E,C,{enumerable:!0,get:_[C]})},o:function(E,_){return Object.prototype.hasOwnProperty.call(E,_)}},t={};e.d(t,{default:function(){return ra}});var r={1078:"af",1052:"sq",1118:"am",5121:"ar_DZ",15361:"ar_BH",3073:"ar_EG",2049:"ar_IQ",11265:"ar_JO",13313:"ar_KW",12289:"ar_LB",4097:"ar_LY",6145:"ar_MA",8193:"ar_OM",16385:"ar_QA",1025:"ar_SA",10241:"ar_SY",7169:"ar_TN",14337:"ar_AE",9217:"ar_YE",1067:"hy",1101:"as",2092:"az_AZ",1068:"az_AZ",1069:"eu",1059:"be",2117:"bn",1093:"bn_IN",5146:"bs",1026:"bg",1109:"my",1027:"ca",2052:"zh_CN",3076:"zh_HK",5124:"zh_MO",4100:"zh_SG",1028:"zh_TW",1050:"hr",1029:"cs",1030:"da",1125:"dv",2067:"nl_BE",1043:"nl_NL",1126:"bin",3081:"en_AU",10249:"en_BZ",4105:"en_CA",9225:"en_CB",2057:"en_GB",16393:"en_IN",6153:"en_IE",8201:"en_JM",5129:"en_NZ",13321:"en_PH",7177:"en_ZA",11273:"en_TT",1033:"en_US",12297:"en_ZW",1061:"et",1071:"mk",1080:"fo",1065:"fa",1124:"fil",1035:"fi",2060:"fr_BE",11276:"fr_CM",3084:"fr_CA",9228:"fr_CG",12300:"fr_CI",1036:"fr_FR",5132:"fr_LU",13324:"fr_ML",6156:"fr_MC",14348:"fr_MA",10252:"fr_SN",4108:"fr_CH",7180:"fr",1122:"fy_NL",2108:"gd_IE",1084:"gd",1110:"gl",1079:"ka",3079:"de_AT",1031:"de_DE",5127:"de_LI",4103:"de_LU",2055:"de_CH",1032:"el",1140:"gn",1095:"gu",1279:"en",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig_NG",1057:"id",1040:"it_IT",2064:"it_CH",1041:"ja",1099:"kn",1120:"ks",1087:"kk",1107:"km",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1142:"la",1062:"lv",1063:"lt",2110:"ms_BN",1086:"ms_MY",1100:"ml",1082:"mt",1112:"mni",1153:"mi",1102:"mr",1104:"mn",2128:"mn",1121:"ne",1044:"no_NO",2068:"no_NO",1096:"or",1045:"pl",1046:"pt_BR",2070:"pt_PT",1094:"pa",1047:"rm",2072:"ro_MO",1048:"ro_RO",1049:"ru",2073:"ru_MO",1083:"se",1103:"sa",3098:"sr_SP",2074:"sr_SP",1072:"st",1074:"tn",1113:"sd",1115:"si",1051:"sk",1060:"sl",1143:"so",1070:"sb",11274:"es_AR",16394:"es_BO",13322:"es_CL",9226:"es_CO",5130:"es_CR",7178:"es_DO",12298:"es_EC",17418:"es_SV",4106:"es_GT",18442:"es_HN",2058:"es_MX",19466:"es_NI",6154:"es_PA",15370:"es_PY",10250:"es_PE",20490:"es_PR",1034:"es_ES",14346:"es_UY",8202:"es_VE",1089:"sw",2077:"sv_FI",1053:"sv_SE",1114:"syc",1064:"tg",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1073:"ts",1055:"tr",1090:"tk",1058:"uk",1056:"ur",2115:"uz_UZ",1091:"uz_UZ",1075:"ve",1066:"vi",1106:"cy",1076:"xh",1085:"yi",1077:"zu"};const s=/^([a-z\d]+)(?:[_-]([a-z\d]+))?(?:\.([a-z\d]+))?(?:@([a-z\d]+))?$/i,a={},o={group:" ",decimal:".",positive:"+",negative:"-",percent:"%",exponent:"E",nan:"NaN",infinity:"∞",ampm:["AM","PM"],mmmm6:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],mmm6:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],mmmm:["January","February","March","April","May","June","July","August","September","October","November","December"],mmm:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]};function u(E){const _=s.exec(E);if(!_)throw new SyntaxError("Malformed locale: ".concat(E));return{lang:_[1]+(_[2]?"_"+_[2]:""),language:_[1],territory:_[2]||"",codeset:_[3]||"",modifier:_[4]||""}}function c(E){if(typeof E=="number")return r[65535&E]||null;const _=parseInt(E,16);return isFinite(_)&&r[65535&_]?r[65535&_]||null:s.test(E)?E:null}function l(E){const _=c(E);let C=null;if(_){const A=u(_);C=a[A.lang]||a[A.language]||null}return C}function m(E){return Object.assign({},o,E)}function g(E,_){const C=typeof _=="object"?_:u(_);return a[C.lang]=m(E),C.language===C.lang||a[C.language]||(a[C.language]=m(E)),a[C.lang]}const p=m({group:","});function R(E,_){if(typeof E!="number")return E;if(E<0)return-R(-E,_);if(_){const C=10**(_||0)||1;return R(E*C,0)/C}return Math.round(E)}p.isDefault=!0,g({group:",",ampm:["上午","下午"],mmmm:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["周日","周一","周二","周三","周四","周五","周六"]},"zh_CN"),g({group:",",nan:"非數值",ampm:["上午","下午"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],ddd:["週日","週一","週二","週三","週四","週五","週六"]},"zh_TW"),g({group:",",ampm:["午前","午後"],mmmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],mmm:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dddd:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],ddd:["日","月","火","水","木","金","土"]},"ja"),g({group:",",ampm:["오전","오후"],mmmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],mmm:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dddd:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],ddd:["일","월","화","수","목","금","토"]},"ko"),g({group:",",ampm:["ก่อนเที่ยง","หลังเที่ยง"],mmmm:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],mmm:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dddd:["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],ddd:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."]},"th"),g({decimal:",",ampm:["dop.","odp."],mmmm:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],mmm:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],dddd:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],ddd:["ne","po","út","st","čt","pá","so"]},"cs"),g({group:".",decimal:",",mmmm:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],mmm:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"da"),g({group:".",decimal:",",ampm:["a.m.","p.m."],mmmm:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],mmm:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],dddd:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],ddd:["zo","ma","di","wo","do","vr","za"]},"nl"),g({group:","},"en"),g({decimal:",",nan:"epäluku",ampm:["ap.","ip."],mmmm:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],mmm:["tammik.","helmik.","maalisk.","huhtik.","toukok.","kesäk.","heinäk.","elok.","syysk.","lokak.","marrask.","jouluk."],dddd:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],ddd:["su","ma","ti","ke","to","pe","la"]},"fi"),g({group:" ",decimal:",",mmmm:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],mmm:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dddd:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],ddd:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."]},"fr"),g({group:".",decimal:",",mmmm:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],mmm:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sept.","Okt.","Nov.","Dez."],dddd:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],ddd:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."]},"de"),g({group:".",decimal:",",ampm:["π.μ.","μ.μ."],mmmm:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],mmm:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dddd:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],ddd:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"]},"el"),g({decimal:",",ampm:["de.","du."],mmmm:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],mmm:["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],dddd:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],ddd:["V","H","K","Sze","Cs","P","Szo"]},"hu"),g({group:".",decimal:",",ampm:["f.h.","e.h."],mmmm:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],mmm:["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des."],dddd:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],ddd:["sun.","mán.","þri.","mið.","fim.","fös.","lau."]},"is"),g({group:".",decimal:",",mmmm:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],mmm:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],dddd:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],ddd:["Min","Sen","Sel","Rab","Kam","Jum","Sab"]},"id"),g({group:".",decimal:",",mmmm:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],mmm:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],dddd:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],ddd:["dom","lun","mar","mer","gio","ven","sab"]},"it"),g({decimal:",",ampm:["a.m.","p.m."],mmmm:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],mmm:["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],dddd:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],ddd:["søn.","man.","tir.","ons.","tor.","fre.","lør."]},"nb"),g({decimal:",",mmmm:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],mmm:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],dddd:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],ddd:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."]},"pl"),g({group:".",decimal:",",mmmm:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],mmm:["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],dddd:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],ddd:["dom.","seg.","ter.","qua.","qui.","sex.","sáb."]},"pt"),g({decimal:",",nan:"не число",mmmm:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],mmm:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],dddd:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],ddd:["вс","пн","вт","ср","чт","пт","сб"]},"ru"),g({decimal:",",mmmm:["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"],mmm:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],dddd:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],ddd:["ne","po","ut","st","št","pi","so"]},"sk"),g({group:".",decimal:",",ampm:["a. m.","p. m."],mmmm:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],mmm:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],dddd:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],ddd:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."]},"es"),g({decimal:",",ampm:["fm","em"],mmmm:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],mmm:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],dddd:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],ddd:["sön","mån","tis","ons","tors","fre","lör"]},"sv"),g({group:".",decimal:",",ampm:["ÖÖ","ÖS"],mmmm:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],mmm:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dddd:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],ddd:["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"]},"tr");function D(E,_,C){const A=E<0?-1:1,V=10**(_||2),T=10**(C||2);let U,x,S=Math.abs(E),I=0,H=0,M=0,Q=1;if((E=S)%1==0)x=[E*A,1];else if(E<1e-19)x=[A,1e19];else if(E>1e19)x=[1e19*A,1];else{do if(S=1/(S-Math.floor(S)),U=Q,Q=Q*Math.floor(S)+I,I=U,H=M,M=Math.floor(E*Q+.5),M>=V||Q>=T)return[A*H,I];while(Math.abs(E-M/Q)>=1e-10&&S!==Math.floor(S));x=[A*M,Q]}return x}const P={overflow:"######",dateErrorThrows:!1,dateErrorNumber:!0,dateSpanLarge:!0,leap1900:!0,nbsp:!0,throws:!0,invalid:"######",locale:"",ignoreTimezone:!1},w=Object.assign({},P);function v(E){if(E===null&&(E=P),E){for(const _ in E)if(_ in P){const C=E[_];w[_]=C==null?P[_]:C}}return{...w}}const B={"#":"",0:"0","?":" "},X={"@":"text","-":"minus","+":"plus"},ue=["#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#000","#FFF","#F00","#0F0","#00F","#FF0","#F0F","#0FF","#800","#080","#008","#880","#808","#088","#CCC","#888","#99F","#936","#FFC","#CFF","#606","#F88","#06C","#CCF","#008","#F0F","#FF0","#0FF","#808","#800","#088","#00F","#0CF","#CFF","#CFC","#FF9","#9CF","#F9C","#C9F","#FC9","#36F","#3CC","#9C0","#FC0"],ge=["¤","$","£","¥","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],Ae=new RegExp("["+ge.join("")+"]");function _e(E,_,C){return _[C+"_max"]=E.length,_[C+"_min"]=E.replace(/#/g,"").length,_}const be={};function Ee(E){if(!(E in be)){const _=[],C=E.replace(/^[#,]+/,"").replace(/[1-9]\d*/g,A=>"?".repeat(A.length));for(let A=0;A<C.length;A++){const V=C.charAt(A);_[A]=V in B?B[V]:V}be[E]=_.join("")}return be[E]}function he(E,_){typeof E=="string"&&(E={type:"string",value:E=E.replace(/ /g,B["?"])}),_.push(E)}function Me(E){const _=[],C={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:_};let A=E+"",V="int",T=!1,U=null;const x=[];let S,I,H=!1;for(;A&&!T;){if(S=/^General/i.exec(A))C.general=!0,he({type:"general"},_);else if(V==="int"&&(S=/^[#?0]+(?:,[#?0]+)*/.exec(A))||V==="den"&&(S=/^[#?\d]+/.exec(A))||(S=/^[#?0]+/.exec(A)))C[V+"_pattern"].push(S[0]),U={type:V,num:S[0]},he(U,_);else if((S=/^\//.exec(A))&&C[V+"_pattern"].length){if(!U)throw new SyntaxError("Missing a numerator in pattern ".concat(E));C.fractions=!0,C.num_pattern.push(C[V+"_pattern"].pop()),U.type="num",V="den",he({type:"div"},_)}else if(S=/^,+/.exec(A)){const F=A.charAt(1)in B;I.slice(-1)in B&&(S[0].length>1||!F)?C.scale=.001**S[0].length:C.dec_fractions||he(S[0],_)}else{if(S=/^;/.exec(A)){T=!0;break}if(S=/^[@+-]/.exec(A))S[0]==="@"&&(C.text=!0),he({type:X[S[0]]},_);else if(S=/^(?:\[(h+|m+|s+)\])/i.exec(A)){const F=S[1].toLowerCase(),Y=F[0],W={type:"",size:0,date:1,raw:S[0],pad:F.length};Y==="h"?(W.size=16,W.type="hour-elap"):Y==="m"?(W.size=32,W.type="min-elap"):(W.size=64,W.type="sec-elap"),C.date=C.date|W.size,x.push(W),he(W,_)}else if(S=/^(?:B2)/i.exec(A))H||(C.date_system=6);else if(S=/^(?:B1)/i.exec(A))H||(C.date_system=1);else if(S=/^(?:([hHmMsSyYbBdDegG])\1*)/.exec(A)){const F={type:"",size:0,date:1,raw:S[0]},Y=S[0].toLowerCase(),W=Y[0];if(Y==="y"||Y==="yy")F.size=2,F.type="year-short";else if(W==="y"||W==="e")F.size=2,F.type="year";else if(Y==="b"||Y==="bb")F.size=2,F.type="b-year-short";else if(W==="b")F.size=2,F.type="b-year";else if(Y==="d"||Y==="dd")F.size=8,F.type="day",F.pad=/dd/.test(Y);else if(Y==="ddd")F.size=8,F.type="weekday-short";else if(W==="d")F.size=8,F.type="weekday";else if(W==="h")F.size=16,F.type="hour",F.pad=/hh/i.test(Y);else if(W==="m"){Y.length===3?(F.size=4,F.type="monthname-short"):Y.length===5?(F.size=4,F.type="monthname-single"):Y.length>=4&&(F.size=4,F.type="monthname");const ee=x[x.length-1];!F.type&&ee&&!ee.used&&80&ee.size&&(ee.used=!0,F.size=32,F.type="min",F.pad=/mm/.test(Y)),F.type||(F.size=4,F.type="month",F.pad=/mm/.test(Y),F.indeterminate=!0)}else if(W==="s"){F.size=64,F.type="sec",F.pad=/ss/.test(Y);const ee=x[x.length-1];ee&&32&ee.size?F.used=!0:ee&&ee.indeterminate&&(delete ee.indeterminate,ee.size=32,ee.type="min",F.used=!0)}C.date=C.date|F.size,C.date_eval=!0,x.push(F),he(F,_)}else if(S=/^(?:AM\/PM|am\/pm|A\/P)/.exec(A))C.clock=12,C.date=16|C.date,C.date_eval=!0,he({type:"am",short:S[0]==="A/P"},_);else if(C.date&&(S=/^\.0{1,3}/i.exec(A))){const F=S[0].length-1,Y=[64,128,256,512][F];C.date=C.date|Y,C.date_eval=!0,C.sec_decimals=Math.max(C.sec_decimals,F),he({type:"subsec",size:Y,decimals:F,date:1,raw:S[0]},_)}else if((S=/^\\(.)/.exec(A))||(S=/^"([^"]*?)"/.exec(A)))he(S[1],_);else if(S=/^\[(<[=>]?|>=?|=)\s*(-?[.\d]+)\]/.exec(A))C.condition=[S[1],parseFloat(S[2],10)];else if(S=/^\[\$([^\]]+)\]/.exec(A)){const F=S[1].split("-"),Y=F.length<2?"":F[F.length-1],W=F[0];W&&he(W,_);const ee=c(Y);ee&&(C.locale=ee);const ne=parseInt(Y,16);isFinite(ne)&&16711680&ne&&(ne>>16&255)===6&&(C.date_system=6),H=!0}else if(S=/^\[(black|blue|cyan|green|magenta|red|white|yellow|color\s*(\d+))\]/i.exec(A))C.color=S[2]?ue[parseInt(S[2],10)]||"#000":S[1].toLowerCase();else if(!(S=/^\[(DBNum1|ENG|HIJ|JPN|TWN)\]/i.exec(A))){if(S=/^%/.exec(A))C.scale=100,C.percent=!0,he("%",_);else if(S=/^_(\\.|.)/.exec(A))he(" ",_);else if(S=/^\./.exec(A))he({type:"point",value:S[0]},_),C.dec_fractions=!0,V="frac";else if(S=/^[Ee]([+-]?|(?=[0#?]))/.exec(A))C.exponential=!0,C.exp_plus=S[1]==="+",V="man",he({type:"exp",plus:S[1]==="+"},_);else if(!(S=/^\*(\\.|.)/.exec(A))){if(S=/^[BENn[]/.exec(A))throw new SyntaxError("Unexpected char ".concat(A.charAt(0)," in pattern ").concat(E));A[0]==="("&&(C.parens=!0),S=[A[0]],he(S[0],_)}}}I=S[0],A=A.slice(S?S[0].length:1)}if(C.pattern=E.slice(0,E.length-A.length),/^((?:\[[^\]]+\])+)(;|$)/.test(C.pattern)&&!/^\[(?:h+|m+|s+)\]/.test(C.pattern)&&he({type:"text"},_),C.fractions&&C.dec_fractions||C.fractions&&C.exponential)throw new SyntaxError("Invalid pattern: ".concat(C.pattern));const M=C.int_pattern.join("");if(C.grouping=M.indexOf(",")>=0,C.grouping){const F=M.split(","),Y=F.length;Y===2?(C.group_pri=F[1].length,C.group_sec=C.group_pri):Y>2&&(C.group_pri=F[Y-1].length,C.group_sec=F[Y-2].length)}else C.group_pri=0,C.group_sec=0;_e(M.replace(/[,]/g,""),C,"int"),_e(C.frac_pattern.join(""),C,"frac"),_e(C.man_pattern.join(""),C,"man");let Q=C.num_pattern.join(""),K=C.den_pattern.join("");const N=/\?/.test(K)||/\?/.test(Q);return K=K.replace(/\d/g,N?"?":"#"),N&&(K=K.replace(/#$/g,"?")),_e(Q,C,"num"),_e(K,C,"den"),N&&(Q=Q.replace(/#$/g,"?")),C.int_padding=Ee(C.int_pattern.join("")),C.man_padding=Ee(C.man_pattern.join("")),C.num_padding=Ee(Q),C.den_padding=Ee(K),C.den_pattern.length&&(C.denominator=parseInt(C.den_pattern.join("").replace(/\D/g,""),10)),C.integer=!!C.int_pattern.join("").length,C.fractions&&_.forEach((F,Y)=>{const W=_[Y+1];F.type==="string"&&W&&(W.type==="num"?F.rule="num+int":W.type==="div"?F.rule="num":W.type==="den"&&(F.rule="den"))}),C}const ut=E=>{const _=E.condition;_&&_[1]<0&&(_[0]==="<"||_[0]==="<="||_[0]==="=")||E.tokens.unshift({type:"minus",volatile:!0})};function wn(E){const _=[];let C,A=!1,V=null,T=E,U=0,x=!1,S=0,I=0;do{if(x=Me(T),(x.date||x.general)&&(x.int_pattern.length||x.frac_pattern.length||x.scale!==1||x.text))throw new Error("Illegal format");if(x.condition&&(I++,A=!0),x.text){if(V)throw new Error("Unexpected partition");V=x}x.locale&&(C=c(x.locale)),_.push(x),U=T.charAt(x.pattern.length)===";"?1:0,T=T.slice(x.pattern.length+U),S++}while(U&&S<4&&I<3);if(U)throw new Error("Unexpected partition");if(I>2)throw new Error("Unexpected condition");const H=_[3];if(H&&(H.int_pattern.length||H.frac_pattern.length||H.date))throw new Error("Unexpected partition");if(A){const M=_.length;if(M===1&&(_[1]=Me("General"),_[1].generated=!0),M<3){const Q=_[0],K=_[1];if(ut(Q),K.condition)ut(K);else{const N=Q.condition;(N[0]==="="||N[1]>=0&&(N[0]===">"||N[0]===">="))&&K.tokens.unshift({type:"minus",volatile:!0})}}else _.forEach(ut)}else{if(_.length<4&&V)for(let M=0,Q=_.length;M<Q;M++)_[M]===V&&_.splice(M,1);if(_.length<1&&V&&(_[0]=Me("General"),_[0].generated=!0),_.length<2){const M=Me(_[0].pattern);M.tokens.unshift({type:"minus",volatile:!0}),M.generated=!0,_.push(M)}if(_.length<3){const M=Me(_[0].pattern);M.generated=!0,_.push(M)}if(_.length<4)if(V)_.push(V);else{const M=Me("@");M.generated=!0,_.push(M)}_[0].condition=[">",0],_[1].condition=["<",0],_[2].condition=null}return{pattern:E,partitions:_,locale:C}}const Ve=Math.floor;function Un(E){if((!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&E>=0){if(E===0)return[1900,1,0];if(E===60)return[1900,2,29];if(E<60)return[1900,E<32?1:2,(E-1)%31+1]}let C=E+68569+2415019;const A=Ve(4*C/146097);C-=Ve((146097*A+3)/4);const V=Ve(4e3*(C+1)/1461001);C=C-Ve(1461*V/4)+31;const T=Ve(80*C/2447),U=C-Ve(2447*T/80);C=Ve(T/11);const x=T+2-12*C;return[0|100*(A-49)+V+C,0|x,0|U]}function Hi(E){return Un(E+1462)}function Qi(E){if(E===60)throw new Error("#VALUE!");if(E<=1)return[1317,8,29];if(E<60)return[1317,E<32?9:10,1+(E-2)%30];const _=10631/30,C=.1335;let A=E+466935;const V=Ve(A/10631);A-=10631*V;const T=Ve((A-C)/_);A-=Ve(T*_+C);const U=Ve((A+28.5001)/29.5);return U===13?[30*V+T,12,30]:[30*V+T,U,A-Ve(29.5001*U-29)]}function On(E){let _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,C=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const A=Ve(E);return _===6?Qi(A):_===-1?Hi(A):Un(A,C)}const Zt=Math.floor,Wr=86400;function Jt(E,_){let C=null;if(Array.isArray(E)){const[A,V,T,U,x,S]=E;C=Date.UTC(A,V==null?0:V-1,T!=null?T:1,U||0,x||0,S||0)}else if(E instanceof Date&&(C=1*E,!_||!_.ignoreTimezone)){const A=new Date;A.setUTCFullYear(E.getFullYear(),E.getMonth(),E.getDate()),A.setUTCHours(E.getHours(),E.getMinutes(),E.getSeconds(),E.getMilliseconds()),C=1*A}if(C!=null&&isFinite(C)){const A=C/864e5;return A-(A<=-25509?-25568:-25569)}return E}function Mn(E,_){let C=0|E;const A=Wr*(E-C);let V=Zt(A);A-V>.9999&&(V+=1,V===Wr&&(V=0,C+=1));const T=V<0?Wr+V:V,[U,x,S]=On(E,0,_&&_.leap1900),I=Zt(T/60/60)%60,H=Zt(T/60)%60,M=Zt(T)%60;if(_&&_.nativeDate){const Q=new Date(0);return Q.setUTCFullYear(U,x-1,S),Q.setUTCHours(I,H,M),Q}return[U,x,S,I,H,M]}function zi(E){return!!(E[0]&&E[0].percent||E[1]&&E[1].percent||E[2]&&E[2].percent||E[3]&&E[3].percent)}function Ni(E){return!!(E[0]&&E[0].date||E[1]&&E[1].date||E[2]&&E[2].date||E[3]&&E[3].date)}function Wi(E){const[_,C,A,V]=E;return!(_&&!_.generated||C&&!C.generated||A&&!A.generated||!V||!V.text||V.generated)}const Gi={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},Xi=[["DMY",1],["DM",2],["MY",3],["MDY",4],["MD",5],["hmsa",6],["hma",7],["hms",8],["hm",9]],Ki={total:1,sign:0,period:0,int:1,frac:0},Ut=(E,_)=>E.replace(/\./,_.decimal);function Fn(E,_,C,A){const V=0|C;if(typeof C=="string")E.push(C);else if(C===V)E.push(Math.abs(V));else{const T=Math.abs(C);let U=T?Math.floor(Math.log10(T)):0,x=U<0?T*10**-U:T/10**U;x===10&&(x=1,U++);const S=function(H){let M=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const Q=Math.abs(H);if(!Q)return Ki;const K=M&&H<0?1:0,N=Math.floor(Q),F=Math.floor(Math.log10(Q)+1);let Y=0,W=0;if(N!==Q){Y=1;const ee=String(R(F<0?Q*10**-F:Q/10**F,15));let ne=ee.length,re=!0,Ce=0;for(;Ce<=ee.length;){if(ee[Ce]==="."){ne--;break}ee[Ce]==="0"&&re?ne--:re=!1,Ce++}W=ne-F,W<0&&(W=0,Y=0)}return{total:K+Math.max(F,1)+Y+W,digits:Math.max(F,0)+W,sign:K,period:Y,int:Math.max(F,1),frac:W}}(T),I=()=>{const H=Math.abs(U);let M;M=x===1?x:R(x,5),E.push(Ut(M+"",A),A.exponent,U<0?A.negative:A.positive,H<10?"0":"",H)};if(U>=-4&&U<=-1){const H=T.toPrecision(10+U).replace(/\.?0+$/,"");E.push(Ut(H,A))}else if(U===10){const H=T.toFixed(10).slice(0,12).replace(/\.$/,"");E.push(Ut(H,A))}else if(Math.abs(U)<=9)if(S.total<=11){const H=R(T,9).toFixed(S.frac);E.push(Ut(H,A))}else U===9?E.push(Math.floor(T)):U>=0&&U<9?E.push(R(T,9-U)):I();else S.total>=12?I():Math.floor(T)===T?E.push(Math.floor(T)):E.push(Ut(R(T,9).toFixed(S.frac),A))}return E}const Ot=86400,vn={int:"integer",frac:"fraction",man:"mantissa",num:"numerator",den:"denominator"},Bn=function(E){let _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const C=Math.floor(Math.log10(E));return _>1?Math.floor(C/_)*_:C};function Tn(E,_,C,A){let V="",T="",U="",x="",S="",I=0,H=0|E,M=0,Q=0,K=1,N=0,F=0,Y=0,W=0,ee=0,ne=0;const re=A||p;if(!_.text&&isFinite(_.scale)&&_.scale!==1&&(E=function(te){if(te===0)return te;const ae=Math.ceil(Math.log10(te<0?-te:te)),k=10**(16-Math.floor(ae));return Math.round(te*k)/k}(E*_.scale)),_.exponential){let te=Math.abs(E);if(te){const ae=10**-Bn(te,_.int_max),k=R(te*ae,_.frac_max)/ae;I=Bn(k,_.int_max)}te/=10**I,E=E<0?-te:te,V+=Math.abs(I)}if(_.integer){const te=Math.abs(R(E,_.fractions?1:_.frac_max));S+=te<1?"":Math.floor(te)}if(_.grouping){let te="",ae=S.length;for(ae>_.group_pri&&(ae-=_.group_pri,te=re.group+S.slice(ae,ae+_.group_pri)+te);ae>_.group_sec;)ae-=_.group_sec,te=re.group+S.slice(ae,ae+_.group_sec)+te;S=ae?S.slice(0,ae)+te:te}_.dec_fractions&&(x=String(R(E,_.frac_max)).split(".")[1]||"");let Ce=!1;if(_.fractions){const te=Math.abs(_.integer?E%1:E);if(te)if(Ce=!0,isFinite(_.denominator))U+=_.denominator,T+=R(te*_.denominator),T==="0"&&(T="",U="",Ce=!1,S||(S="0"));else{const ae=D(te,_.integer?_.num_max:1/0,_.den_max);T+=ae[0],U+=ae[1],_.integer&&T==="0"&&(S||(S="0"),T="",U="",Ce=!1)}}if(_.date){H=Math.trunc(E);const te=Ot*(E-H);if(M=Math.floor(te),ne=te-M,Math.abs(ne)<1e-6?ne=0:ne>.9999&&(ne=0,M+=1,M===Ot&&(M=0,H+=1)),ne){const ae=512&_.date||256&_.date||128&_.date;(ae===512&&ne>.9995||ae===256&&ne>.995||ae===128&&ne>.95||!ae&&ne>=.5)&&(M++,ne=0)}if(H||_.date_system){const ae=On(E,_.date_system,C.leap1900);Q=ae[0],K=ae[1],N=ae[2]}if(M){const ae=M<0?Ot+M:M;ee=Math.floor(ae)%60,W=Math.floor(ae/60)%60,Y=Math.floor(ae/60/60)%60}if(F=(6+H)%7,_.date_eval&&(ze=E,ct=H+M/Ot,C.dateSpanLarge?ze<-694324||ct>=35830291:ze<0||ct>=2958466)){if(C.dateErrorThrows)throw new Error("Date out of bounds");return C.dateErrorNumber?Fn(E<0?[re.negative]:[],0,E,re).join(""):C.overflow}}var ze,ct;if(_.int_padding&&(S=_.int_padding.length===1?S||_.int_padding:_.int_padding.substring(0,_.int_padding.length-S.length)+S),_.num_padding&&(T=_.num_padding.length===1?T||_.num_padding:_.num_padding.substring(0,_.num_padding.length-T.length)+T),_.den_padding&&(U=_.den_padding.length===1?U||_.den_padding:U+_.den_padding.slice(U.length)),_.man_padding){const te=_.exp_plus?"+":"";V=_.man_padding.length===1?(I<0?"-":te)+(V||_.man_padding):(I<0?"-":te)+_.man_padding.slice(0,_.man_padding.length-V.length)+V}const $=[];let Oe=0;const et={int:0,frac:0,man:0,num:0,den:0};for(let te=0,ae=_.tokens.length;te<ae;te++){const k=_.tokens[te],er=k.num?k.num.length:0;if(k.type==="string")k.rule?k.rule==="num"?Ce?$.push(k.value):(_.num_min>0||_.den_min>0)&&$.push(k.value.replace(/./g,B["?"])):k.rule==="num+int"?Ce&&S?$.push(k.value):_.den_min>0&&(S||_.num_min)&&$.push(k.value.replace(/./g,B["?"])):k.rule==="den"&&(Ce?$.push(k.value):(_.den_min>0||_.den_min>0)&&$.push(k.value.replace(/./g,B["?"]))):$.push(k.value);else if(k.type==="error")$.push(C.invalid);else if(k.type==="point")$.push(_.date?k.value:re.decimal);else if(k.type==="general")Fn($,0,E,re);else if(k.type==="exp")$.push(re.exponent);else if(k.type==="minus")k.volatile&&_.date||k.volatile&&(E>=0||typeof E!="number")||(k.volatile&&!_.fractions&&(_.integer||_.dec_fractions)?(E<0&&S&&S!=="0"||x)&&$.push(re.negative):$.push(re.negative));else if(k.type==="plus")$.push(re.positive);else if(k.type==="text")$.push(E);else if(k.type==="div")Ce?$.push("/"):_.num_min>0||_.den_min>0?$.push(B["?"]):$.push(B["#"]);else if(k.type==="int")if(_.int_pattern.length===1)$.push(S);else{const de=Oe?_.int_pattern.join("").length-et.int:1/0,Et=Oe===_.int_pattern.length-1?0:_.int_pattern.join("").length-(et.int+k.num.length);$.push(S.substring(S.length-de,S.length-Et)),Oe++,et.int+=k.num.length}else if(k.type==="frac"){const de=et.frac;for(let Et=0;Et<er;Et++)$.push(x[Et+de]||B[k.num[Et]]);et.frac+=er}else if(k.type in vn)_[k.type+"_pattern"].length===1?(k.type==="int"&&$.push(S),k.type==="frac"&&$.push(x),k.type==="man"&&$.push(V),k.type==="num"&&$.push(T),k.type==="den"&&$.push(U)):($.push(vn[k.type].slice(et[k.type],et[k.type]+er)),et[k.type]+=er);else if(k.type==="year")Q<0&&$.push(re.negative),$.push(String(Math.abs(Q)).padStart(4,"0"));else if(k.type==="year-short"){const de=Q%100;$.push(de<10?"0":"",de)}else if(k.type==="month")$.push(k.pad&&K<10?"0":"",K);else if(k.type==="monthname-single")_.date_system===6?$.push(re.mmmm6[K-1].charAt(0)):$.push(re.mmmm[K-1].charAt(0));else if(k.type==="monthname-short")_.date_system===6?$.push(re.mmm6[K-1]):$.push(re.mmm[K-1]);else if(k.type==="monthname")_.date_system===6?$.push(re.mmmm6[K-1]):$.push(re.mmmm[K-1]);else if(k.type==="weekday-short")$.push(re.ddd[F]);else if(k.type==="weekday")$.push(re.dddd[F]);else if(k.type==="day")$.push(k.pad&&N<10?"0":"",N);else if(k.type==="hour"){const de=Y%_.clock||(_.clock<24?_.clock:0);$.push(k.pad&&de<10?"0":"",de)}else if(k.type==="min")$.push(k.pad&&W<10?"0":"",W);else if(k.type==="sec")$.push(k.pad&&ee<10?"0":"",ee);else if(k.type==="subsec"){$.push(re.decimal);const de=ne.toFixed(_.sec_decimals);$.push(de.slice(2,2+k.decimals))}else if(k.type==="am"){const de=Y<12?0:1;k.short&&!A?$.push("AP"[de]):$.push(re.ampm[de])}else if(k.type==="hour-elap"){E<0&&$.push(re.negative);const de=24*H+Math.floor(Math.abs(M)/3600);$.push(String(Math.abs(de)).padStart(k.pad,"0"))}else if(k.type==="min-elap"){E<0&&$.push(re.negative);const de=1440*H+Math.floor(Math.abs(M)/60);$.push(String(Math.abs(de)).padStart(k.pad,"0"))}else if(k.type==="sec-elap"){E<0&&$.push(re.negative);const de=H*Ot+Math.abs(M);$.push(String(Math.abs(de)).padStart(k.pad,"0"))}else if(k.type==="b-year")$.push(Q+543);else if(k.type==="b-year-short"){const de=(Q+543)%100;$.push(de<10?"0":"",de)}}return C.nbsp?$.join(""):$.join("").replace(/\u00a0/g," ")}function kn(E,_){for(let C=0;C<3;C++){const A=_[C];if(A){let V;if(A.condition){const T=A.condition[0],U=A.condition[1];T==="="?V=E===U:T===">"?V=E>U:T==="<"?V=E<U:T===">="?V=E>=U:T==="<="?V=E<=U:T==="<>"&&(V=E!==U)}else V=!0;if(V)return A}}}const In=Me("@"),jn="black",Fe={};function ve(E,_){if(E){const C=E[0];_[C]=_[C]||{},ve(E.slice(1),_[C])}else _.$=!0}["d-F-y","d-F-Y","d-M-y","d-M-Y","F-d-y","F-d-Y","F-j-y","F-j-Y","j-F-y","j-F-Y","j-M-y","j-M-Y","M-d-y","M-d-Y","M-j-y","M-j-Y","m-d-y","m-d-Y","m-j-y","m-j-Y","n-d-y","n-d-Y","n-j-y","n-j-Y","y-F-d","y-F-j","y-M-d","y-M-j","Y-F-d","Y-F-j","Y-M-d","Y-m-d","Y-M-j","Y-m-j","Y-n-d","Y-n-j","j-F","j-M","d-F","d-M","n-d","n-j","n-Y","m-d","m-j","m-Y","M-Y","M-y","F-y","F-Y","Y-M","Y-n","Y-m","Y-F","Y-M"].forEach(E=>{ve(E,Fe),ve(E+" x",Fe),ve(E+" l",Fe),ve(E+" l x",Fe),ve("l "+E,Fe),ve("l "+E+" x",Fe),ve(E+" D",Fe),ve(E+" D x",Fe),ve("D "+E,Fe),ve("D "+E+" x",Fe)});const qi={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},Zi={january:1,february:2,march:3,april:4,june:6,july:7,august:8,september:9,october:10,november:11,december:12},Ji={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"},ea=new Date().getUTCFullYear();function $n(E){const _=new RegExp("^([\\s+%"+ge.join("")+"(-]*)(((?:(?:\\d[\\d,]*)(?:\\.\\d*)?|(?:\\.\\d+)))([eE][+-]?\\d+)?)([\\s%"+ge.join("")+")]*)$").exec(E);if(_){const[,C,A,V,T,U]=_;let x=1,S="",I=!1,H=!1,M=!1,Q=!1,K=!1,N=null,F=!1,Y=parseFloat(A.replace(/,/g,""));if(!isFinite(Y))return null;for(let ee=0;ee<C.length;ee++){const ne=C[ee];if(ne==="-"){if(I||H)return null;I=!0,x=-1}else if(Ae.test(ne)){if(K)return null;K=!0,N=ne}else if(ne==="("){if(H||I)return null;H=!0,x=-1}else if(ne==="%"){if(Q)return null;Q=!0}}for(let ee=0;ee<U.length;ee++){const ne=U[ee];if(Ae.test(ne)){if(K)return null;K=!0,N=ne,F=!0}else if(ne===")"){if(M||!H)return null;M=!0}else if(ne==="%"){if(Q)return null;Q=!0}}if(T){if(Q||K)return null;S="0.00E+00"}else if(Q){if(K)return null;S=V.includes(".")?"0.00%":"0%",Y*=.01}else if(K){const ee=V.includes(".")?"#,##0.00":"#,##0";S=F?ee+N:N+ee}else V.includes(",")&&(S=V.includes(".")?"#,##0.00":"#,##0");const W={v:Y*x};return S&&(W.z=S),W}}const Ie=(E,_,C)=>{const A=C.path||"",V=Object.keys(_);for(let T=0;T<V.length;T++){let U;const x=V[T];if(_[x]){if(x==="$"||x==="€")E||(U=C);else if(x==="-"){const S=/^(\s*([./-]|,\s)\s*|\s+)/.exec(E);if(S){const I=S[1]==="-"||S[1]==="/"||S[1]==="."?S[1]:" ";if(!C.sep||C.sep===I){const H=S[0].replace(/\s+/g," ");U=Ie(E.slice(S[0].length),_[x],{...C,sep:I,path:A+H})}}}else if(x===" "){const S=/^[,.]?\s+/.exec(E);if(S){const I=S[0].replace(/\s+/g," ");U=Ie(E.slice(S[0].length),_[x],{...C,path:A+I})}}else if(x==="j"||x==="d"){const S=/^(0?[1-9]|1\d|2\d|3[01])\b/.exec(E);S&&(U=Ie(E.slice(S[0].length),_[x],{...C,day:S[0],path:A+x}))}else if(x==="n"||x==="m"){const S=/^(0?[1-9]|1[012])\b/.exec(E);S&&(U=Ie(E.slice(S[0].length),_[x],{...C,month:+S[0],_mon:S[0],path:A+x}))}else if(x==="F"||x==="M"){const S=/^([a-z]{3,9})\b/i.exec(E),I=S&&(x==="F"?Zi:qi)[S[0].toLowerCase()];I&&(U=Ie(E.slice(S[0].length),_[x],{...C,month:I,_mon:S[0],path:A+x}))}else if(x==="l"||x==="D"){const S=/^([a-z]{3,9})\b/i.exec(E);(S&&Ji[S[0].toLowerCase()])===x&&(U=Ie(E.slice(S[0].length),_[x],{...C,path:A+x}))}else if(x==="y"){const S=/^\d\d\b/.exec(E);if(S){const I=+S[0]>=30?+S[0]+1900:+S[0]+2e3;U=Ie(E.slice(S[0].length),_[x],{...C,year:I,path:A+x})}}else if(x==="Y"){const S=/^\d\d\d\d\b/.exec(E);S&&(U=Ie(E.slice(S[0].length),_[x],{...C,year:+S[0],path:A+x}))}else{if(x!=="x")throw new Error('Unknown date token "'.concat(x,'"'));{const S=Gr(E);S&&(U=Ie("",_[x],{...C,time:S.v,tf:S.z,path:A+x}))}}if(U)return U}}};function Yn(E,_){const C=Ie(E.trim(),Fe,{path:""});if(C){var A;if(C.sep==="."&&C.path.length===3)return null;const V=+((A=C.year)!==null&&A!==void 0?A:ea);if(C.day||(C.day=1),!function(x,S,I){if(I<1||S<1||S>12)return!1;if(S===2){if(I>(x%4==0&&x%100!=0||x%400==0||x===1900?29:28))return!1}else if((S===4||S===6||S===9||S===11)&&I>30||(S===1||S===3||S===5||S===7||S===8||S===10||S===12)&&I>31)return!1;return!0}(V,C.month,C.day))return null;let T=-1/0;if(V<1900)return null;V<=1900&&C.month<=2?T=25568:V<1e4&&(T=25569);const U=Date.UTC(V,C.month-1,C.day)/864e5+T+(C.time||0);if(U>=0&&U<=2958465){const x=C._mon[0]==="0"||C.day[0]==="0"||C._mon.length===2&&C.day.length===2,S=C.path.replace(/[jdlDnmMFyYx-]/g,I=>I==="j"||I==="d"?x?"dd":"d":I==="D"?"ddd":I==="l"?"dddd":I==="n"||I==="m"?x?"mm":"m":I==="M"?"mmm":I==="F"?"mmmm":I==="y"?"yy":I==="x"?C.tf||"":I==="Y"?"yyyy":I);return _&&_.nativeDate?{v:Mn(U,_),z:S}:{v:U,z:S}}}return null}function Gr(E){const _=/^\s*([10]?\d|2[0-4])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?(\.\d{1,10})?(?:\s*([AP])M?)?\s*$/i.exec(E);if(_){const[,C,A,V,T,U]=_;if(T&&!V||!U&&!A&&!V)return null;let x=1*(C||0);if(U){if(x>=13)return null;U[0]!=="p"&&U[0]!=="P"||(x+=12)}return{v:(60*x*60+60*(1*(A||0))+1*(V||0)+1*(T||0))/86400,z:(C.length===2?"hh":"h")+":mm"+(V?":ss":"")+(U?" AM/PM":"")}}return null}function Hn(E){return/^\s*true\s*$/i.test(E)?{v:!0}:/^\s*false\s*$/i.test(E)?{v:!1}:null}const Mt={};function ta(E,_){const{pattern:C,partitions:A,locale:V}=E,T=S=>{const I=Object.assign({},v(),_,S);return V&&(I.locale=V),I},U=(S,I)=>{const H=T(I);return function(M,Q,K){const N=l(K.locale),F=Q[3]?Q[3]:In;if(typeof M=="boolean"&&(M=M?"TRUE":"FALSE"),M==null)return"";if(typeof M!="number")return Tn(M,F,K,N);if(!isFinite(M)){const W=N||p;return isNaN(M)?W.nan:(M<0?W.negative:"")+W.infinity}const Y=kn(M,Q);return Y?Tn(M,Y,K,N):K.overflow}(Jt(S,H),A,H)};U.color=(S,I)=>function(H,M){if(typeof H!="number"||!isFinite(H))return(M[3]?M[3].color:In.color)||jn;const Q=kn(H,M);return Q&&Q.color||jn}(Jt(S,T(I)),A);const x=function(S){var I;let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const[M,Q]=S,K=M.frac_max,N={type:"general",isDate:Ni(S),isText:Wi(S),isPercent:zi(S),maxDecimals:M.general?9:K,scale:(I=M.scale)!==null&&I!==void 0?I:1,color:0,parentheses:0,grouped:M.grouping?1:0,_partitions:S},F=!N.isDate&&!N.isText&&!M.error&&M.tokens.some(re=>re.type==="string"&&(H?re.value===H:Ae.test(re.value)));let Y="G",W=K>=0?Math.min(15,K):"",ee="",ne="";if(Q&&Q.color&&(ne="-",N.color=1),M.parens&&(ee="()",N.parentheses=1),F)Y="C",N.type="currency";else if(M.error)N.type="error",N.maxDecimals=0;else if(N.isDate){let re=0,Ce=0,ze="";M.tokens.forEach($=>{const Oe=$.type;/^(b-)?year/.test(Oe)?(ze+="Y",Ce++):Oe.startsWith("month")?(ze+="M",Ce++):/^(week)?day/.test(Oe)?(ze+="D",Ce++):Oe!=="hour"&&Oe!=="min"&&Oe!=="sec"&&Oe!=="am"||(ze+=Oe[0],re++)}),N.type="date",Ce&&re?N.type="datetime":!Ce&&re&&(N.type="time");const ct=Xi.find($=>ze.startsWith($[0]));Y=ct?"D":"G",W=ct?ct[1]:""}else N.isText?(Y="G",N.type="text",W="",N.maxDecimals=0):M.general?(Y="G",N.type="general",W=""):M.fractions?(Y="G",N.type="fraction",W=""):M.exponential?(Y="S",N.type="scientific"):N.isPercent?(Y="P",N.type="percent"):M.grouping?(Y=",",N.type="grouped"):(M.int_max||K)&&(Y="F",N.type="number");return N.code=Y+W+ne+ee,N.level=Gi[N.type],Object.freeze(N)}(A,(_||{}).currency)||new SyntaxError;return U.info=x,U.dateInfo=function(S){const[I]=S;return{year:!!(2&I.date),month:!!(4&I.date),day:!!(8&I.date),hours:!!(16&I.date),minutes:!!(32&I.date),seconds:!!(64&I.date),clockType:I.clock===12?12:24}}(A),U.isPercent=()=>!!x.isPercent,U.isDate=()=>!!x.isDate,U.isText=()=>!!x.isText,U.pattern=C,E.error&&(U.error=E.error),U.options=T,U.locale=V||_&&_.locale||"",Object.freeze(U)}function ce(E,_){E||(E="General");let C=null;return Mt[E]?C=Mt[E]:(C=Object.assign({},v(),_).throws?wn(E):function(A){try{return wn(A)}catch(V){const T={tokens:[{type:"error"}],error:V.message};return{pattern:A,partitions:[T,T,T,T],error:V.message,locale:null}}}(E),C.error||(Mt[E]=C)),ta(C,_)}ce.isDate=E=>ce(E,{throws:!1}).isDate(),ce.isPercent=E=>ce(E,{throws:!1}).isPercent(),ce.isText=E=>ce(E,{throws:!1}).isText(),ce.getInfo=(E,_)=>ce(E,{..._,throws:!1}).info,ce.getDateInfo=(E,_)=>ce(E,{..._,throws:!1}).dateInfo,ce.dateToSerial=Jt,ce.dateFromSerial=Mn,ce.options=v,ce.dec2frac=D,ce.round=R,ce.codeToLocale=r,ce.parseLocale=u,ce.getLocale=l,ce.addLocale=(E,_)=>{const C=u(_);return delete Mt[C.lang],delete Mt[C.language],g(E,C)},ce.format=function(E,_,C){let A=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const V=C&&typeof C=="object"?C:{locale:C,throws:!A};return ce(E,V)(Jt(_,V),V)},ce.is_date=ce.isDate,ce.parseNumber=$n,ce.parseDate=Yn,ce.parseTime=Gr,ce.parseBool=Hn,ce.parseValue=function(E,_){var C,A,V;return(C=(A=(V=$n(E))!==null&&V!==void 0?V:Yn(E,_))!==null&&A!==void 0?A:Gr(E))!==null&&C!==void 0?C:Hn(E)};var ra=ce;return t=t.default}()})})(Qs);var ka=Qs.exports,Ia=ka;const Vt=Ta(Ia),ja=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],$a={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 Ya(n,i,e){var u,c;if(n==null||i==null)return i;const t=(e==null?void 0:e.getStyleByCell(n))||n.s,r=(e==null?void 0:e.getStyleByCell(i))||i.s;if(t==null||r==null||typeof t!="object"||typeof r!="object")return i;const s=(u=t==null?void 0:t.n)==null?void 0:u.pattern,a=(c=r==null?void 0:r.n)==null?void 0:c.pattern;if(s==null||a==null)return i;const o=s||a;return r.n.pattern=o,i}function ns(n){if(Ha(n))return 3;const i=Vt.getInfo(n).type||"unknown";return $a[i]}function Ha(n){return!!ja.find(i=>n.includes(i))&&n.startsWith("_(")}function tr(n,i,e){if(n==="")return i;if(i==="")return n;const t=ns(n),r=ns(i);return e===se.PLUS||e===se.MINUS?t===4&&r===4||t===11&&r===11?"":i:e===se.MULTIPLY||e===se.DIVIDED?t===6&&r===6||t===7&&r===7||t===8&&r===8||t===9&&r===9?i:"":n||i}const Ur=class Ur extends qe{static create(){return this._instance=this._instance||new Ur(0),this._instance}isNull(){return!0}plus(i){return y.create(0).plus(i)}minus(i){return y.create(0).minus(i)}multiply(i){return y.create(0).multiply(i)}divided(i){return y.create(0).divided(i)}mod(i){return y.create(0).mod(i)}compare(i,e){return i.isString()?fe.create("").compare(i,e):i.isBoolean()?j.create(!1).compare(i,e):y.create(0).compare(i,e)}concatenateFront(i){return i.isArray()?i.concatenateBack(fe.create("")):fe.create(this.concatenate(i.getValue(),Te.FRONT))}concatenateBack(i){return i.isArray()?i.concatenateFront(fe.create("")):fe.create(this.concatenate(i.getValue(),Te.BACK))}plusBy(i){return y.create(0).plusBy(i)}minusBy(i){return y.create(0).minusBy(i)}multiplyBy(i){return y.create(0).multiplyBy(i)}dividedBy(i){return y.create(0).dividedBy(i)}compareBy(i,e){return typeof i=="string"?fe.create("").compareBy(i,e):typeof i=="boolean"?j.create(!1).compareBy(i,e):y.create(0).compareBy(i,e)}pow(i){return y.create(0).pow(i)}sqrt(){return y.create(0).sqrt()}cbrt(){return y.create(0).cbrt()}cos(){return y.create(0).cos()}acos(){return y.create(0).acos()}acosh(){return y.create(0).acosh()}sin(){return y.create(0).sin()}sinh(){return y.create(0).sinh()}asin(){return y.create(0).asin()}asinh(){return y.create(0).asinh()}tan(){return y.create(0).tan()}tanh(){return y.create(0).tanh()}atan(){return y.create(0).atan()}atan2(i){return y.create(0).atan2(i)}atanh(){return y.create(0).atanh()}log(){return h.create(f.NUM)}log10(){return h.create(f.NUM)}exp(){return y.create(0).exp()}abs(){return y.create(0).abs()}round(i){return y.create(0).round(i)}floor(i){return y.create(0).floor(i)}ceil(i){return y.create(0).ceil(i)}convertToNumberObjectValue(){return y.create(0)}convertToBooleanObjectValue(){return j.create(!1)}};d(Ur,"_instance");let ie=Ur;const dt=class dt extends qe{constructor(e){super(e);d(this,"_value",!1);this._value=e}static create(e){return e?(this._instanceTrue=this._instanceTrue||new dt(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new dt(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const e=this.getValue();let t=0;return e&&(t=1),y.create(-t)}getReciprocal(){return this.getValue()?y.create(1):h.create(f.DIV_BY_ZERO)}plus(e){return this._convertToNumber().plus(e)}minus(e){return this._convertToNumber().minus(e)}multiply(e){return this._convertToNumber().multiply(e)}divided(e){return this._convertToNumber().divided(e)}mod(e){return this._convertToNumber().mod(e)}compare(e,t){return e.isArray()?e.compare(this,mn(t)):e.isNull()?this._convertToNumber().compare(e,t):this.compareBy(e.getValue(),t)}compareBy(e,t){let r=!1;if(typeof e=="string"||typeof e=="number")r=this._compareString(t);else if(typeof e=="boolean"){const s=y.create(e?1:0);return this._convertToNumber().compare(s,t)}return dt.create(r)}_compareString(e){switch(e){case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!0;case O.EQUALS:case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!1}}concatenateFront(e){return this._convertToNumber().concatenateFront(e)}concatenateBack(e){return this._convertToNumber().concatenateBack(e)}_convertToNumber(){const e=this.getValue();let t=0;return e&&(t=1),y.create(t)}pow(e){return this._convertToNumber().pow(e)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(e){return this._convertToNumber().atan2(e)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(e){return this._convertToNumber().round(e)}floor(e){return this._convertToNumber().floor(e)}ceil(e){return this._convertToNumber().ceil(e)}convertToNumberObjectValue(){return vr(this.getValue())}convertToBooleanObjectValue(){return this}};d(dt,"_instanceTrue"),d(dt,"_instanceFalse");let j=dt;const Qa=2e5,ss=new _t(Qa);class y extends qe{constructor(e){super(e);d(this,"_value",0);this._value=Number(e)}static create(e,t=""){const r=`${e}-${t}`,s=ss.get(r);if(s)return s;const a=new y(e);return t&&a.setPattern(t),ss.set(r,a),a}getValue(){return this._value}setValue(e){this._value=e}isNumber(){return!0}getNegative(){return y.create(0).minus(this)}getReciprocal(){return y.create(1).divided(this)}plus(e){if(e.isArray())return e.plus(this);let t=this.plusBy(e.getValue());if(t.isError())return t;const r=tr(this.getPattern(),e.getPattern(),se.PLUS);return t=y.create(Number(t.getValue()),r),t}equalZero(){return this._value===0}minus(e){if(e.isArray()){const s=e.getNegative();return s.isError()?s:s.plus(this)}let t=this.minusBy(e.getValue());if(t.isError())return t;const r=tr(this.getPattern(),e.getPattern(),se.MINUS);return t=y.create(Number(t.getValue()),r),t}multiply(e){if(e.isArray())return e.multiply(this);let t=this.multiplyBy(e.getValue());if(t.isError())return t;const r=tr(this.getPattern(),e.getPattern(),se.MULTIPLY);return t=y.create(Number(t.getValue()),r),t}divided(e){if(e.isArray()){const s=e.getReciprocal();return s.isError()?s:s.multiply(this)}let t=this.dividedBy(e.getValue());if(t.isError())return t;const r=tr(this.getPattern(),e.getPattern(),se.DIVIDED);return t=y.create(Number(t.getValue()),r),t}mod(e){if(e.isArray())return e.modInverse(this);const t=this.getValue(),r=e.getValue();if(e.isNull())return h.create(f.DIV_BY_ZERO);if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(r===0)return h.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(r)||Math.abs(r)*11259e8<=Math.abs(t))return h.create(f.NUM);const s=es(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}if(typeof r=="boolean"){const s=r?1:0;return s===0?h.create(f.DIV_BY_ZERO):y.create(es(t,s))}return this}concatenateFront(e){return e.isArray()?e.concatenateBack(this):fe.create(this.concatenate(e.getValue(),Te.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):fe.create(this.concatenate(e.getValue(),Te.BACK))}compare(e,t){return e.isArray()?e.compare(this,mn(t)):this.compareBy(e.getValue(),t)}plusBy(e){const t=this.getValue();if(typeof e=="string")return Lt.has(e)?h.create(e):h.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return h.create(f.NUM);const r=Gn(t,e);return Number.isFinite(r)?y.create(r):h.create(f.NUM)}return typeof e=="boolean"?y.create(Gn(t,e?1:0)):this}minusBy(e){const t=this.getValue();if(typeof e=="string")return h.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return h.create(f.NUM);const r=Xn(t,e);return Number.isFinite(r)?y.create(r):h.create(f.NUM)}return typeof e=="boolean"?y.create(Xn(t,e?1:0)):this}multiplyBy(e){const t=this.getValue();if(typeof e=="string")return h.create(f.VALUE);if(typeof e=="number"){if(!Number.isFinite(t)||!Number.isFinite(e))return h.create(f.NUM);const r=St(t,e);return Number.isFinite(r)?y.create(r):h.create(f.NUM)}return typeof e=="boolean"?y.create(St(t,e?1:0)):this}dividedBy(e){const t=this.getValue();if(typeof e=="string")return h.create(f.VALUE);if(typeof e=="number"){if(e===0)return h.create(f.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(e))return h.create(f.NUM);const r=Kn(t,e);return Number.isFinite(r)?y.create(r):h.create(f.NUM)}return typeof e=="boolean"?e===!1?h.create(f.DIV_BY_ZERO):y.create(Kn(t,1)):this}compareBy(e,t){const r=this.getValue();let s=!1;return typeof e=="string"?s=this._compareString(t):typeof e=="number"?s=this._compareNumber(r,e,t):typeof e=="boolean"&&(s=this._compareBoolean(t)),j.create(s)}_compareString(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}_compareNumber(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)?this._compareInfinity(e,t,r):this._compareFiniteNumber(e,t,r)}_compareFiniteNumber(e,t,r){switch(r){case O.EQUALS:return rs(e,t);case O.GREATER_THAN:return wa(e,t);case O.GREATER_THAN_OR_EQUAL:return Ua(e,t);case O.LESS_THAN:return Oa(e,t);case O.LESS_THAN_OR_EQUAL:return Ma(e,t);case O.NOT_EQUAL:return!rs(e,t)}}_compareBoolean(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}pow(e){if(e.isArray())return e.powInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return h.create(f.NUM);const s=ts(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}return typeof r=="boolean"?y.create(ts(t,r?1:0)):this}sqrt(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Va(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}cbrt(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.cbrt(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}cos(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.cos(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}acos(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.acos(e);return Number.isNaN(t)?h.create(f.NUM):y.create(t)}acosh(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.acosh(e);return Number.isNaN(t)?h.create(f.NUM):y.create(t)}sin(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.sin(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}sinh(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.sinh(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}asin(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.asin(e);return Number.isNaN(t)?h.create(f.NUM):y.create(t)}asinh(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.asinh(e);return Number.isNaN(t)?h.create(f.NUM):y.create(t)}tan(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.tan(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}tanh(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.tanh(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}atan(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.atan(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}atan2(e){if(e.isArray())return e.atan2Inverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return h.create(f.NUM);if(t===0&&r===0)return h.create(f.DIV_BY_ZERO);const s=Math.atan2(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}return typeof r=="boolean"?y.create(Math.atan2(t,r?1:0)):this}atanh(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.atanh(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}log(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return h.create(f.NUM);const t=Math.log(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}log10(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return h.create(f.NUM);const t=Math.log10(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}exp(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.exp(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}abs(){const e=this.getValue();if(!Number.isFinite(e))return h.create(f.NUM);const t=Math.abs(e);return Number.isFinite(t)?y.create(t):h.create(f.NUM)}round(e){if(e.isArray())return e.roundInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return h.create(f.NUM);const s=qn(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}return typeof r=="boolean"?y.create(qn(t,r?1:0)):this}floor(e){if(e.isArray())return e.floorInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return h.create(f.NUM);const s=Zn(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}return typeof r=="boolean"?y.create(Zn(t,r?1:0)):this}ceil(e){if(e.isArray())return e.ceilInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return h.create(f.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return h.create(f.NUM);const s=Jn(t,r);return Number.isFinite(s)?y.create(s):h.create(f.NUM)}return typeof r=="boolean"?y.create(Jn(t,r?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return Fr(!0)}_compareInfinity(e,t,r){let s=!1;switch(r){case O.EQUALS:s=e===t;break;case O.GREATER_THAN:s=e>t;break;case O.GREATER_THAN_OR_EQUAL:s=e>=t;break;case O.LESS_THAN:s=e<t;break;case O.LESS_THAN_OR_EQUAL:s=e<=t;break;case O.NOT_EQUAL:s=e!==t;break}return s}}const za=2e5,is=new _t(za);class fe extends qe{constructor(e){super(e);d(this,"_value");this._value=e}static create(e){const t=is.get(e);if(t)return t;const r=new fe(e);return is.set(e,r),r}getValue(){return this._value}isString(){return!0}concatenateFront(e){return e.isArray()?e.concatenateBack(this):fe.create(this.concatenate(e.getValue(),Te.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):fe.create(this.concatenate(e.getValue(),Te.BACK))}compare(e,t,r){return e.isArray()?e.compare(this,mn(t),r):this.compareBy(e.getValue(),t,r)}compareBy(e,t,r=!1){let s=this.getValue(),a=!1;if(typeof e=="string"){if(r||(s=s.toLocaleLowerCase(),e=e.toLocaleLowerCase()),Aa(e))return this._checkWildcard(e,t);a=this._compareString(s,e,t)}else typeof e=="number"?a=this._compareNumber(t):typeof e=="boolean"&&(a=this._compareBoolean(t));return j.create(a)}_compareString(e,t,r){switch(r){case O.EQUALS:return e===t;case O.GREATER_THAN:return e>t;case O.GREATER_THAN_OR_EQUAL:return e>=t;case O.LESS_THAN:return e<t;case O.LESS_THAN_OR_EQUAL:return e<=t;case O.NOT_EQUAL:return e!==t}}_compareNumber(e){switch(e){case O.NOT_EQUAL:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!0;case O.EQUALS:case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(e){switch(e){case O.EQUALS:case O.GREATER_THAN:case O.GREATER_THAN_OR_EQUAL:return!1;case O.LESS_THAN:case O.LESS_THAN_OR_EQUAL:case O.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return vr(this.getValue())}convertToBooleanObjectValue(){return j.create(!0)}_checkWildcard(e,t){const r=this.getValue().toLocaleLowerCase(),s=Pa(r,e,t);return j.create(s)}}function Fr(n){if(typeof n=="boolean")return j.create(n);let i=!1;if(typeof n=="string"){const e=n.toLocaleUpperCase();e===at.TRUE?i=!0:e===at.FALSE&&(i=!1)}else n===1?i=!0:i=!1;return j.create(i)}function Na(n){let i=n.toString();return i.charAt(0)==='"'&&i.charAt(i.length-1)==='"'&&(i=i.slice(1,-1),i=i.replace(/""/g,'"')),fe.create(i)}function vr(n,i=""){if(typeof n=="boolean"){let e=0;return n&&(e=1),y.create(e,i)}else{if(typeof n=="number")return Number.isFinite(n)?y.create(n,i):h.create(f.NUM);if(b.isRealNum(n))return y.create(Number(n),i)}return h.create(f.VALUE)}function Wa(n){return""}function zs(n=[]){const i=[];for(let e=0;e<n.length;e++){const t=n[e];i[e]==null&&(i[e]=[]);for(let r=0;r<t.length;r++){const s=t[r];i[e][r]=ot.create(s)}}return i}function Ga(n=[]){const i=[];for(let e=0;e<n.length;e++){const t=n[e];i[e]==null&&(i[e]=[]);for(let r=0;r<t.length;r++){const s=t[r];s==null?i[e][r]=null:s.isError()?i[e][r]=s.getErrorType():i[e][r]=s.getValue()}}return i}class me extends qe{constructor(e){super(typeof e=="string"?e:Wa());d(this,"_values",[]);d(this,"_rowCount",-1);d(this,"_columnCount",-1);d(this,"_unitId","");d(this,"_sheetId","");d(this,"_currentRow",-1);d(this,"_currentColumn",-1);d(this,"_sliceCache",new Map);d(this,"_flattenCache");d(this,"_defaultValue",null);d(this,"_flattenPosition");this._values=this._formatValue(e)}static create(e){return new me(e)}static createByArray(e){const r={calculateValueList:zs(e),rowCount:e.length,columnCount:e[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new me(r)}dispose(){this._values.forEach(e=>{e.forEach(t=>{t==null||t.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(e=>e)}getRowCount(){return this._rowCount}setRowCount(e){this._rowCount=e}getColumnCount(){return this._columnCount}setColumnCount(e){this._columnCount=e}setCurrent(e,t){this._currentRow=e,this._currentColumn=t}setUnitId(e){this._unitId=e}getUnitId(){return this._unitId}setSheetId(e){this._sheetId=e}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(e){this._clearCache(),this._values=e}isArray(){return!0}setDefaultValue(e){this._defaultValue=e}get(e,t){var r;return(r=this._values[e])==null?void 0:r[t]}getRealValue(e,t){const r=this._values[e];if(r==null)return null;const s=r[t];return s==null?null:s}getValueOrDefault(e,t){return this.get(e,t)||this._defaultValue}set(e,t,r){if(e>=this._rowCount||t>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[e][t]=r}getRangePosition(){const t=this.getRowCount(),r=0,s=this.getColumnCount();return{startRow:0,endRow:t-1,startColumn:r,endColumn:s-1}}iterator(e){var u;const{startRow:t,endRow:r,startColumn:s,endColumn:a}=this.getRangePosition(),o=this.getArrayValue();for(let c=t;c<=r;c++)for(let l=s;l<=a;l++)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}iteratorReverse(e){var u;const{startRow:t,endRow:r,startColumn:s,endColumn:a}=this.getRangePosition(),o=this.getArrayValue();for(let c=r;c>=t;c--)for(let l=a;l>=s;l--)if(e(((u=o[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}getLastTruePosition(){let e;return this.iteratorReverse((t,r,s)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:s},!1}),e}getFirstTruePosition(){let e;return this.iterator((t,r,s)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:s},!1}),e}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ie.create()}getLastCell(){const{endRow:e,endColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ie.create()}pick(e){const t=this.pickRaw(e);return this._createNewArray(t,1,t[0].length)}pickRaw(e){const t=e.getRowCount(),r=e.getColumnCount();if(t!==this._rowCount||r!==this._columnCount)return[[ie.create()]];const s=[];s[0]=[];for(let a=0;a<t;a++)for(let o=0;o<r;o++){const u=e.get(a,o);if(!(u==null||u.isError())&&u.getValue()===!0){const c=this.get(a,o);s[0].push(c)}}return s}flatten(){if(this._flattenCache!=null)return this._flattenCache;const e=[];e[0]=[];for(let r=0;r<this._rowCount;r++)for(let s=0;s<this._columnCount;s++){const a=this.get(r,s);e[0].push(a)}const t=this._createNewArray(e,1,e[0].length);return t.setDefaultValue(this._defaultValue),this._flattenCache=t,t}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const e=[],t=[],r=[],s=[];let a=0;for(let u=0;u<this._rowCount;u++)for(let c=0;c<this._columnCount;c++){const l=this.get(u,c);if(l==null||l.isError()||l.isNull()){a++;continue}l.isString()?(e.push(l),r.push(a++)):(t.push(l),s.push(a++))}const o={stringArray:e,numberArray:t,stringPosition:r,numberPosition:s};return this._flattenPosition=o,o}slice(e,t){let r=0,s=this._rowCount,a=1,o=0,u=this._columnCount,c=1;if(e!=null&&(r=e[0]||0,s=e[1]||this._rowCount,a=e[2]||1),t!=null&&(o=t[0]||0,u=t[1]||this._columnCount,c=t[2]||1),r>=this._rowCount||o>=this._columnCount)return;const l=`${r}_${s}_${a}_${o}_${u}_${c}`,m=this._sliceCache.get(l);if(m!=null)return m;const g=[],p=this._values;let R=0,D=0;for(let B=r;B<s;B+=a){D=0,g[R]==null&&(g[R]=[]);for(let X=o;X<u;X+=c){if(!p[B])return;let ue=p[B][X]||this._defaultValue;ue==null&&(ue=ie.create()),g[R][D]=ue,D++}R++}if(g.length===0||g[0].length===0)return;const P=a>1?-1:r+this._currentRow,w=c>1?-1:o+this._currentColumn,v=this._createNewArray(g,g.length,g[0].length,P,w);return v.setDefaultValue(this._defaultValue),this._sliceCache.set(l,v),v}sortByRow(e){const t=this._transposeArray(this._values);t.sort(this._sort(e)),this._clearCache(),this._values=this._transposeArray(t)}sortByColumn(e){this._clearCache(),this._values.sort(this._sort(e))}transpose(){const e=this._transposeArray(this._values),t=this._rowCount,r=this._columnCount,s=this._createNewArray(e,r,t);return s.setDefaultValue(this._defaultValue),s}orderSearch(e,t=xe.MIN,r=!1,s=!1){let a,o,u,c;const l=(m,g,p)=>{if(m==null)return!0;let R;if(s===!0?R=m.compare(e,O.EQUALS):R=m.isEqual(e),(R==null?void 0:R.getValue())===!0)return a=m,u={row:g,column:p},!1;t===xe.MAX?m.isGreaterThan(e).getValue()===!0&&(o==null||m.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=m,c={row:g,column:p}):t===xe.MIN&&m.isLessThan(e).getValue()===!0&&(o==null||m.minus(e).abs().isLessThanOrEqual(o.minus(e).abs()).getValue()===!0)&&(o=m,c={row:g,column:p})};if(r){const m=this._values.length;if(this._values[0]==null)return;const g=this._values[0].length;for(let p=m-1;p>=0;p--)for(let R=g-1;R>=0;R--){const D=this._values[p][R];l(D,p,R)}}else this.iterator((m,g,p)=>{l(m,g,p)});if(a!=null)return u;if(o!=null)return c}binarySearch(e,t=Ge.MIN){if(e.isError())return;const{stringArray:r,stringPosition:s,numberArray:a,numberPosition:o}=this.flattenPosition();return e.isString()?this._binarySearch(e,r,s,t):this._binarySearch(e,a,o,t)}_binarySearch(e,t,r,s=Ge.MIN){const a=zn(),o=e.getValue().toString().toLocaleLowerCase();let u=0,c=t.length-1,l=null;for(;u<=c;){const m=Math.floor((u+c)/2),g=t[m];let p=0;if(g.isNull())p=1;else{const R=g.getValue();p=a(R.toString().toLocaleLowerCase(),o)}if(p===0)return r[m];p===-1?(u=m+1,s===Ge.MIN&&(l=m)):(c=m-1,s===Ge.MAX&&(l=m))}if(l!=null)return r[l]}sum(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isString()||t.isBoolean()||t.isNull())return!0;if(t.isError())return e=t,!1;e=e.plus(t)}),e}max(){let e=y.create(Number.NEGATIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isLessThan(t).getValue()&&(e=t)}),e}min(){let e=y.create(Number.POSITIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isGreaterThan(t).getValue()&&(e=t)}),e}count(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isError()||t.isString()||t.isNull()||t.isBoolean())return!0;e=e.plusBy(1)}),e}countA(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isNull())return!0;e=e.plusBy(1)}),e}countBlank(){let e=y.create(0);return this.iterator(t=>{(t==null||t.isNull()||t.getValue()==="")&&(e=e.plusBy(1))}),e}getNegative(){return me.create("{0}").minus(this)}getReciprocal(){return me.create("{1}").divided(this)}plus(e){return this._batchOperator(e,1)}minus(e){return this._batchOperator(e,0)}multiply(e){return this._batchOperator(e,2)}divided(e){return this._batchOperator(e,3)}mod(e){return this._batchOperator(e,4)}modInverse(e){return this.map(t=>t.isError()?t:e.mod(t))}compare(e,t,r){return this._batchOperator(e,5,t,r)}concatenateFront(e){return this._batchOperator(e,6)}concatenateBack(e){return this._batchOperator(e,7)}map(e){const t=(r,s,a)=>r==null?ie.create():r.isError()?r:e(r,s,a);return this.mapValue(t)}mapValue(e){var a;const t=this._rowCount,r=this._columnCount,s=[];for(let o=0;o<t;o++){const u=[];for(let c=0;c<r;c++){const l=(a=this._values)==null?void 0:a[o];if(l==null)u[c]=h.create(f.VALUE);else{const m=l[c]||this._defaultValue;m?u[c]=e(m,o,c):u[c]=ie.create()}}s.push(u)}return this._createNewArray(s,t,r)}pow(e){return this._batchOperator(e,8)}powInverse(e){return this.map(t=>t.isError()?t:e.pow(t))}sqrt(){return this.map(e=>e.isError()?e:e.sqrt())}cbrt(){return this.map(e=>e.isError()?e:e.cbrt())}cos(){return this.map(e=>e.isError()?e:e.cos())}acos(){return this.map(e=>e.isError()?e:e.acos())}acosh(){return this.map(e=>e.isError()?e:e.acosh())}sin(){return this.map(e=>e.isError()?e:e.sin())}sinh(){return this.map(e=>e.isError()?e:e.sinh())}asin(){return this.map(e=>e.isError()?e:e.asin())}asinh(){return this.map(e=>e.isError()?e:e.asinh())}tan(){return this.map(e=>e.isError()?e:e.tan())}tanh(){return this.map(e=>e.isError()?e:e.tanh())}atan(){return this.map(e=>e.isError()?e:e.atan())}atanh(){return this.map(e=>e.isError()?e:e.atanh())}atan2(e){return this._batchOperator(e,12)}atan2Inverse(e){return this.map(t=>t.isError()?t:e.atan2(t))}mean(e=0){const t=this.sum(),r=this.count();return t.divided(e===0?r:r.minusBy(1))}median(){const e=this.flattenPosition().numberArray,t=this._createNewArray([e],1,e.length),r=t.getColumnCount();if(r<=1)return t.get(0,0)||ie.create();if(t.sortByRow(0),r%2===0){const s=t.get(0,r/2)||ie.create(),a=t.get(0,r/2-1)||ie.create();return s.plus(a).divided(y.create(2))}return t.get(0,(r-1)/2)||ie.create()}var(e=0){const t=this.mean(),r=[[]];this.iterator(l=>{if(l==null||l.isError()||l.isString()||l.isBoolean()||l.isNull())return;const m=l.minus(t).pow(y.create(2));m.isError()||r[0].push(m)});const{_unitId:s,_sheetId:a,_currentRow:o,_currentColumn:u}=this;return me.create({calculateValueList:r,rowCount:1,columnCount:r[0].length,unitId:s,sheetId:a,row:o,column:u}).mean(e)}std(e=0){const t=this.var(e);return t.isError()?t:t.sqrt()}log(){return this.map(e=>e.isError()?e:e.log())}log10(){return this.map(e=>e.isError()?e:e.log10())}exp(){return this.map(e=>e.isError()?e:e.exp())}abs(){return this.map(e=>e.isError()?e:e.abs())}round(e){return this._batchOperator(e,9)}roundInverse(e){return this.map(t=>t.isError()?t:e.round(t))}floor(e){return this._batchOperator(e,10)}floorInverse(e){return this.map(t=>t.isError()?t:e.floor(t))}ceil(e){return this._batchOperator(e,11)}ceilInverse(e){return this.map(t=>t.isError()?t:e.ceil(t))}toValue(){return Ga(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(e){const t=zn();return(r,s)=>{const a=r[e],o=s[e];return a==null?1:o==null?-1:a.isError()&&a.isError()?0:a.isError()?1:o.isError()?-1:t(a.getValue(),o.getValue())}}_transposeArray(e){const t=e.length,r=e[0].length,s=[];for(let a=0;a<r;a++){s[a]=[];for(let o=0;o<t;o++)s[a][o]=e[o][a]}return s}_batchOperator(e,t,r,s){const a=[];let o=this._rowCount,u=this._columnCount;if(e.isArray()){const m=e.getRowCount(),g=e.getColumnCount();if(o=Math.max(m,o),u=Math.max(g,u),m===1&&g===1){const p=e.getFirstCell();for(let R=0;R<u;R++)a.push(p)}else if(m===1&&this._columnCount>1){const p=e.getArrayValue();for(let R=0;R<u;R++)a.push(p[0][R])}else return this._batchOperatorArray(e,t,r,s)}else for(let m=0;m<u;m++)a.push(e);const c=[];for(let m=0;m<u;m++){const g=a[m];this._batchOperatorValue(g,m,c,t,r,s)}const l=this._createNewArray(c,o,u);return l.setDefaultValue(j.create(!1)),l}_batchOperatorValue(e,t,r,s,a,o){const u=this._rowCount;let c=!1;const l=this.getUnitId(),m=this.getSheetId(),g=this.getCurrentRow(),p=this.getCurrentColumn();if(s===5&&(c=rt.canUseCache(l,m,t+p,g,g+u-1),c===!0)){if(a===O.EQUALS){const R=rt.getCellPositions(l,m,t+p,e.getValue());R!=null&&R.forEach(D=>{const P=D-g;r[P]==null&&(r[P]=[]),r[P][t]=j.create(!0)})}else{const R=rt.getCellValuePositions(l,m,t+p);R!=null&&R.forEach((D,P)=>{let w=ie.create();typeof P=="string"?w=fe.create(P):typeof P=="number"?w=y.create(P):typeof P=="boolean"&&(w=j.create(P)),w.compare(e,a,o).getValue()===!0&&D.forEach(B=>{B>=g&&B<=g+u-1&&(r[B-g]==null&&(r[B-g]=[]),r[B-g][t]=j.create(!0))})})}return}for(let R=0;R<u;R++){const D=this.getValueOrDefault(R,t);if(r[R]==null&&(r[R]=[]),D&&e)if(D.isError())r[R][t]=D;else if(e.isError())r[R][t]=e;else switch(s){case 1:r[R][t]=D.plus(e);break;case 0:r[R][t]=D.minus(e);break;case 2:r[R][t]=D.multiply(e);break;case 3:r[R][t]=D.divided(e);break;case 4:r[R][t]=D.mod(e);break;case 5:a?r[R][t]=D.compare(e,a,o):r[R][t]=h.create(f.VALUE);break;case 6:r[R][t]=D.concatenateFront(e);break;case 7:r[R][t]=D.concatenateBack(e);break;case 8:r[R][t]=D.pow(e);break;case 9:r[R][t]=D.round(e);break;case 10:r[R][t]=D.floor(e);break;case 12:r[R][t]=D.atan2(e);break;case 11:r[R][t]=D.ceil(e);break}else r[R][t]=h.create(f.NA);D!=null&&(D.isError()?rt.set(l,m,t+p,D.getErrorType(),R+g):D.isNull()?rt.set(l,m,t+p,"",R+g):rt.set(l,m,t+p,D.getValue(),R+g))}rt.setContinueBuildingCache(l,m,t+p,g,g+u-1)}_batchOperatorArray(e,t,r,s){let a=e.getRowCount(),o=e.getColumnCount();a<this._rowCount&&(a=this._rowCount),o<this._columnCount&&(o=this._columnCount);const u=[],c=this._checkArrayCalculateType(this),l=this._checkArrayCalculateType(e);for(let m=0;m<a;m++){const g=[];for(let p=0;p<o;p++){let R;c===3?R=this.getValueOrDefault(0,0):c===1?R=this.getValueOrDefault(0,p):c===2?R=this.getValueOrDefault(m,0):R=this.getValueOrDefault(m,p);let D;if(l===3?D=e.getValueOrDefault(0,0):l===1?D=e.getValueOrDefault(0,p):l===2?D=e.getValueOrDefault(m,0):D=e.getValueOrDefault(m,p),R&&D)if(R.isError())g[p]=R;else if(D.isError())g[p]=D;else switch(t){case 1:g[p]=R.plus(D);break;case 0:g[p]=R.minus(D);break;case 2:g[p]=R.multiply(D);break;case 3:g[p]=R.divided(D);break;case 4:g[p]=R.mod(D);break;case 5:r?g[p]=R.compare(D,r,s):g[p]=h.create(f.VALUE);break;case 6:g[p]=R.concatenateFront(D);break;case 7:g[p]=R.concatenateBack(D);break;case 8:g[p]=R.pow(D);break;case 9:g[p]=R.round(D);break;case 12:g[p]=R.atan2(D);break;case 10:g[p]=R.floor(D);break;case 11:g[p]=R.ceil(D);break}else g[p]=h.create(f.NA)}u.push(g)}return this._createNewArray(u,a,o)}_checkArrayCalculateType(e){return e.getRowCount()===1&&e.getColumnCount()===1?3:e.getRowCount()===1?1:e.getColumnCount()===1?2:0}_formatValue(e){if(typeof e!="string")return e=e,this._rowCount=e.rowCount,this._columnCount=e.columnCount,this._unitId=e.unitId,this._sheetId=e.sheetId,this._currentRow=e.row,this._currentColumn=e.column,e.calculateValueList;e=e.slice(1,-1);const t=e.split(";"),r=t.length,s=[];let a=0;for(let o=0;o<r;o++){const c=t[o].split(","),l=c.length;a<l&&(a=l);const m=[];for(let g=0;g<l;g++){const p=c[g].trim();m.push(ot.create(p))}s.push(m)}return this._rowCount=r,this._columnCount=a,s}_createNewArray(e,t,r,s=-1,a=-1){(this._currentColumn===-1||this._currentRow===-1)&&(s=-1,a=-1);const o={calculateValueList:e,rowCount:t,columnCount:r,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:s,column:a};return me.create(o)}}class ot{static create(i){if(i==null)return ie.create();if(typeof i=="boolean")return j.create(i);if(typeof i=="string"){const e=i.toLocaleUpperCase().trim();return Lt.has(e)?h.create(e):e===at.TRUE||e===at.FALSE?Fr(i):b.isRealNum(i)?y.create(Number(i)):new RegExp(pa,"g").test(i.replace(/\n/g,"").replace(/\r/g,""))?me.create(i.replace(/\n/g,"").replace(/\r/g,"")):Na(i)}return typeof i=="number"?vr(i):h.create(f.VALUE)}}function Xa(n){if(n===null)return 0;if(n!=null&&n.p){const i=n==null?void 0:n.p.body;if(i==null)return 0;const e=i.dataStream;return e.substring(e.length-2,e.length)===b.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return(n==null?void 0:n.v)||0}const Ka=1e5,cn=new _t(Ka);class wt extends Mr{constructor(e){super();d(this,"_forcedSheetId","");d(this,"_forcedSheetName","");d(this,"_defaultSheetId","");d(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});d(this,"_unitData",{});d(this,"_unitStylesData",{});d(this,"_defaultUnitId","");d(this,"_forcedUnitId","");d(this,"_runtimeData",{});d(this,"_arrayFormulaCellData",{});d(this,"_runtimeArrayFormulaCellData",{});d(this,"_runtimeFeatureCellData",{});d(this,"_refOffsetX",0);d(this,"_refOffsetY",0);this._token=e}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(e){this._token=e}isExceedRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:s}=this.getRangePosition();return e<0||r<0||t>=this.getActiveSheetRowCount()||s>=this.getActiveSheetColumnCount()}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow:e,startColumn:t,endRow:r,endColumn:s}=b.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=this.getActiveSheetRowCount()-1),Number.isNaN(s)&&(s=this.getActiveSheetColumnCount()-1),{startRow:e,endRow:r,startColumn:t,endColumn:s}}isReferenceObject(){return!0}iterator(e){const{startRow:t,endRow:r,startColumn:s,endColumn:a}=this.getRangePosition();if(this._checkIfWorksheetMiss())return e(h.create(f.VALUE),t,s);const o=this._forcedUnitId||this._defaultUnitId,u=this._forcedSheetId||this._defaultSheetId;for(let c=t;c<=r;c++)for(let l=s;l<=a;l++){if(c<0||l<0)return e(h.create(f.REF),c,l);const m=this.getCellData(c,l);let g=!1;if(b.isNullCell(m)){g=e(null,c,l);continue}let p=this.getCellValueObject(m);if(c===t&&l===s){const R=this.getCellPattern(o,u,c,l);if(R&&p.isNumber()){const D=Number(p.getValue());p=y.create(D,R)}}if(g=e(p,c,l),g===!1)return}}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition(),r=this.getCellData(e,t);if(!r)return y.create(0);let s=this.getCellValueObject(r);const a=this._forcedUnitId||this._defaultUnitId,o=this._forcedSheetId||this._defaultSheetId,u=this.getCellPattern(a,o,e,t);if(u&&s.isNumber()){const c=Number(s.getValue());s=y.create(c,u)}return s}getRangeData(){return this._rangeData}setRangeData(e){this._rangeData=e}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(e){e.length>0&&(this._forcedUnitId=e)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(e){var t;this._forcedSheetId=(t=e[this.getUnitId()])==null?void 0:t[this._forcedSheetName]}setForcedSheetIdDirect(e){this._forcedSheetId=e}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(e){e.length>0&&(this._forcedSheetName=e)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(e){this._defaultSheetId=e}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(e){this._defaultUnitId=e}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(e){this._unitData=e}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(e){this._unitStylesData=e}getRuntimeData(){return this._runtimeData}setRuntimeData(e){this._runtimeData=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(e){this._runtimeArrayFormulaCellData=e}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e){this._runtimeFeatureCellData=e}getActiveSheetRowCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowCount)||0}getActiveSheetColumnCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowData)||{}}getColumnData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(e){return h.create(f.REF)}unionRange(e,t){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(e){const t=Xa(e);if(Lt.has(t))return h.create(t);if(e.t===b.CellValueType.NUMBER){const r=this._getPatternByCell(e);return vr(t,r)}return e.t===b.CellValueType.STRING||e.t===b.CellValueType.FORCE_STRING?fe.create(t.toString()):e.t===b.CellValueType.BOOLEAN?Fr(t):ot.create(t)}_getPatternByCell(e){var s;const t=this._unitStylesData[this.getUnitId()];if(!t)return"";const r=t.getStyleByCell(e);return((s=r==null?void 0:r.n)==null?void 0:s.pattern)||""}getCellByRow(e){return this.getCellByPosition(e)}getCellByColumn(e){return this.getCellByPosition(void 0,e)}getCurrentActiveSheetData(){var e;return(e=this._unitData[this.getUnitId()])==null?void 0:e[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var e,t;return(t=(e=this._runtimeData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var e,t;return(t=(e=this._arrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var e,t;return(t=(e=this._runtimeArrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCellData(e,t){const r=this.getCurrentActiveSheetData(),s=this.getCurrentRuntimeSheetData(),a=this.getCurrentActiveArrayFormulaCellData(),o=this.getCurrentRuntimeActiveArrayFormulaCellData();return(s==null?void 0:s.getValue(e,t))||(o==null?void 0:o.getValue(e,t))||this.getRuntimeFeatureCellValue(e,t)||(a==null?void 0:a.getValue(e,t))||(r==null?void 0:r.cellData.getValue(e,t))}getRuntimeFeatureCellValue(e,t){var s;const r=Object.keys(this._runtimeFeatureCellData);for(const a of r){const o=this._runtimeFeatureCellData[a],u=(s=o==null?void 0:o[this.getUnitId()])==null?void 0:s[this.getSheetId()];if(u==null)continue;const c=u.getValue(e,t);if(c!=null)return c}}getCellByPosition(e,t){e||(e=this._rangeData.startRow),t||(t=this._rangeData.startColumn);const r=this.getCellData(e,t);return r?this.getCellValueObject(r):h.create(f.VALUE)}getCellPattern(e,t,r,s){var c,l,m,g;const a=this._unitStylesData[e];if(!a)return"";const o=(m=(l=(c=this._unitData[e])==null?void 0:c[t])==null?void 0:l.cellData)==null?void 0:m.getValue(r,s);if(!o)return"";const u=a.getStyleByCell(o);return((g=u==null?void 0:u.n)==null?void 0:g.pattern)||""}toArrayValueObject(e=!0){var R;const{startRow:t,endRow:r,startColumn:s,endColumn:a}=this.getRangePosition(),o=`${this.getUnitId()}_${this.getSheetId()}_${t}_${r}_${s}_${a}`,u=cn.get(o);if(u&&e)return u;const c=r-t+1,l=a-s+1;if(c<0||l<0)return this._getBlankArrayValueObject();const m=new Array(c);this.iterator((D,P,w)=>{const v=P-t,B=w-s;m[v]||(m[v]=new Array(l)),D==null&&(D=ie.create()),m[v][B]=D});const g={calculateValueList:m,rowCount:m.length,columnCount:((R=m[0])==null?void 0:R.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:t,column:s},p=me.create(g);return e&&cn.set(o,p),p}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const e={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return me.create(e)}}class Ns extends Mr{constructor(i){super(),this._promise=i}isAsyncObject(){return!0}async getValue(){return this._promise}}class Ws extends Mr{constructor(i){super(),this._promiseList=i}isAsyncArrayObject(){return!0}async getValue(){var t;const i=[];for(let r=0;r<this._promiseList.length;r++){const s=this._promiseList[r];i[r]==null&&(i[r]=[]);for(let a=0;a<s.length;a++){const o=s[a];o.isAsyncObject()?i[r][a]=await o.getValue():i[r][a]=o}}const e={calculateValueList:i,rowCount:i.length,columnCount:((t=i[0])==null?void 0:t.length)||0,unitId:"",sheetId:"",row:0,column:0};return me.create(e)}}class jt extends wt{constructor(i,e,t){super(""),this.setRangeData(i),e&&this.setForcedSheetIdDirect(e),t&&this.setForcedUnitIdDirect(t)}isRange(){return!0}}const as=/[\[\]]/g;function os(n,i){if(as.test(n)){const e=Number(n.replace(as,""));return i+e}return Number(n)-1}function Zr(n,i=0,e=0){n=n.toLocaleUpperCase();const t=n.split(/[RC]/),r=t[1],s=t[2],a=os(r,i),o=os(s,e);return{row:a,column:o,absoluteRefType:b.AbsoluteRefType.NONE}}function Gs(n,i=0,e=0){const{refBody:t,sheetName:r,unitId:s}=js(n),a=t.indexOf(":");if(a===-1){const D=Zr(t,i,e),P=D.row,w=D.column,v=D.absoluteRefType;return{unitId:s,sheetName:r,range:{startRow:P,startColumn:w,endRow:P,endColumn:w,startAbsoluteRefType:v,endAbsoluteRefType:v}}}const o=t.substring(0,a),u=t.substring(a+1),c=Zr(o,i,e),l=Zr(u,i,e),m=c.row,g=c.column,p=l.row,R=l.column;return{unitId:s,sheetName:r,range:{startRow:m,startColumn:g,endRow:p,endColumn:R,startAbsoluteRefType:c.absoluteRefType,endAbsoluteRefType:l.absoluteRefType}}}function qa(n){const i=rr(n.startRow,n.startAbsoluteRefType,!0),e=rr(n.startColumn,n.startAbsoluteRefType,!1),t=rr(n.endRow,n.endAbsoluteRefType,!0),r=rr(n.endColumn,n.endAbsoluteRefType,!1);return i===t&&e===r?`R${i}C${e}`:`R${i}C${e}:R${t}C${r}`}function rr(n,i=b.AbsoluteRefType.ALL,e){switch(n+=1,i){case b.AbsoluteRefType.ALL:return`${n}`;case b.AbsoluteRefType.ROW:return e?`${n}`:`[${n}]`;case b.AbsoluteRefType.COLUMN:return e?`[${n}]`:`${n}`;case b.AbsoluteRefType.NONE:return`[${n}]`}}const Xs=[];var Ks=(n=>n)(Ks||{});function J(n,i,e,t){const r=[];if(e.isArray()){const s=e.getRowCount(),a=e.getColumnCount();if(s===1&&a===1){const o=e.getFirstCell();for(let u=0;u<n;u++){const c=[];for(let l=0;l<i;l++)c.push(o);r.push(c)}}else if(s===1&&a>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<i;c++){const l=e.getRealValue(0,c)||(t!=null?t:ie.create());u.push(l)}r.push(u)}else if(a===1&&s>1)for(let o=0;o<n;o++){const u=[];for(let c=0;c<i;c++){const l=e.getRealValue(o,0)||(t!=null?t:ie.create());u.push(l)}r.push(u)}else for(let o=0;o<n;o++){const u=[];for(let c=0;c<i;c++){const l=e.getRealValue(o,c)||(t!=null?t:ie.create());u.push(l)}r.push(u)}}else for(let s=0;s<n;s++){const a=[];for(let o=0;o<i;o++)a.push(e);r.push(a)}return Rt(r,n,i)}function Rt(n,i,e,t="",r=""){const s={calculateValueList:n,rowCount:i,columnCount:e,unitId:t,sheetId:r,row:-1,column:-1};return me.create(s)}function zt(n){const i=[O.EQUALS,O.NOT_EQUAL,O.GREATER_THAN_OR_EQUAL,O.GREATER_THAN,O.LESS_THAN_OR_EQUAL,O.LESS_THAN];for(const e of i)if(n.startsWith(e)){const t=n.substring(e.length);return[e,ot.create(t)]}return[O.EQUALS,ot.create(n)]}function Br(n,i,e,t){if(!e)if(i.isString()){const r=`${i.getValue()}`,[s,a]=zt(r);e=s,i=a}else e=O.EQUALS;return n.compare(i,e,t)}function Za(n,i){const e=Math.max(n.isArray()?n.getRowCount():1,i.isArray()?i.getRowCount():1),t=Math.max(n.isArray()?n.getColumnCount():1,i.isArray()?i.getColumnCount():1),r=J(e,t,n),s=J(e,t,i);return r.mapValue((a,o,u)=>{const c=s.get(o,u);return a!=null&&a.isError()?a:c!=null&&c.isError()?c:a!=null&&a.isBoolean()&&(c!=null&&c.isBoolean())?Fr(a.getValue()&&c.getValue()):j.create(!1)})}function Ja(n){const i=n.getValue();let e=0;return i&&(e=1),y.create(e)}function us(n){return n.isArray()&&n.getRowCount()===1&&n.getColumnCount()===1?!0:n.isReferenceObject()?!!(n.isCell()||n.getRowCount()===1&&n.getColumnCount()===1):(n=n,!!(n.isString()||n.isNumber()||n.isBoolean()||n.isError()||n.isNull()))}function lt(n){const i=n==null?void 0:n.getPattern();let e={};if(i&&(e={s:{n:{pattern:i}}}),n==null)return{v:null,...e};if(n.isError())return{v:n.getErrorType(),t:b.CellValueType.STRING,...e};if(n.isValueObject()){const t=n,r=t.getValue();return t.isNumber()?{v:r,t:b.CellValueType.NUMBER,...e}:t.isBoolean()?{v:r?1:0,t:b.CellValueType.BOOLEAN,...e}:t.isString()?{v:r,t:b.CellValueType.STRING,...e}:t.isNull()?{v:null,...e}:{v:r,t:b.CellValueType.STRING,...e}}}function Nt(n){let i=0,e=0;return n.forEach((t,r)=>{if(r%2===1)if(t.isArray()){const s=t;i=Math.max(i,s.getRowCount()),e=Math.max(e,s.getColumnCount())}else i=Math.max(i,1),e=Math.max(e,1)}),{maxRowLength:i,maxColumnLength:e}}function Wt(n,i,e,t){const r=i.getRowCount(),s=i.getColumnCount();for(let a=0;a<n.length;a++){if(a%2===1)continue;const o=n[a],u=o.getRowCount(),c=o.getColumnCount();if(u!==r||c!==s)return J(e,t,h.create(f.VALUE))}return null}function Gt(n,i,e,t=!1){const r=[];for(let s=0;s<n.length;s++){if(s%2===1)continue;const a=n[s],o=n[s+1];J(i,e,o,h.create(f.NA)).iterator((c,l,m)=>{if(!c)return;let g=Br(a,c);const[,p]=zt(`${c.getValue()}`);if(t&&(g=Tr(g,a,p)),r[l]===void 0&&(r[l]=[]),r[l][m]===void 0){r[l][m]=g;return}r[l][m]=Za(r[l][m],g)})}return r}function Tr(n,i,e){return n.mapValue((t,r,s)=>{const a=i.get(r,s);return a&&eo(a,e)?t:a!=null&&a.isError()&&e.isError()&&a.getValue()===e.getValue()?j.create(!0):j.create(!1)})}function eo(n,i){if(n.isNumber()&&i.isNumber()||n.isBoolean()&&i.isBoolean())return!0;const e=n.isString()&&n.getValue()==="",t=i.isString()&&i.getValue()==="";return!!((e||n.isNull())&&(t||i.isNull())||n.isString()&&!e&&i.isString()&&!t)}class gn extends wt{constructor(i){super(i);const e=$e(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName),this.setRangeData(e.range)}isCell(){return!0}unionBy(i){if(!i.isCell())return h.create(f.REF);const e=i,t=this.unionRange(this.getRangeData(),e.getRangeData());return this._createRange(t)}unionRange(i,e){const t=i.startRow,r=i.startColumn,s=e.startRow,a=e.startColumn,o={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return t>s?(o.startRow=s,o.endRow=t):(o.startRow=t,o.endRow=s),r>a?(o.startColumn=a,o.endColumn=r):(o.startColumn=r,o.endColumn=a),i.startAbsoluteRefType&&(o.startAbsoluteRefType=i.startAbsoluteRefType),e.startAbsoluteRefType&&(o.endAbsoluteRefType=e.startAbsoluteRefType),o}_createRange(i){const e=new jt(i,this.getForcedSheetId(),this.getForcedUnitId());e.setUnitData(this.getUnitData()),e.setDefaultSheetId(this.getDefaultSheetId()),e.setDefaultUnitId(this.getDefaultUnitId()),e.setRuntimeData(this.getRuntimeData()),e.setUnitStylesData(this.getUnitStylesData()),e.setArrayFormulaCellData(this.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();e.setRefOffset(t,r);const s=this.getForcedSheetId();e.setForcedSheetName(this.getForcedSheetName()),s!=null&&e.setForcedSheetIdDirect(s);const a=this.getForcedUnitId();return a&&e.setForcedUnitIdDirect(a),e}}class pn extends wt{constructor(i){super(i);const e=$e(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:Number.NaN,startRow:e.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(t)}isRow(){return!0}unionBy(i){if(!i.isRow())return h.create(f.REF);const e=i;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return h.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),s=r.startRow,a=t.startRow;return s>a?t.endRow=s:(t.startRow=s,t.endRow=a),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=b.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class Rn extends wt{constructor(i){super(i);const e=$e(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={startColumn:e.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(t)}isColumn(){return!0}unionBy(i){if(!i.isColumn())return h.create(f.REF);const e=i;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return h.create(f.REF);const t=this.getRangeData(),r=e.getRangeData(),s=r.startColumn,a=t.startColumn;return s>a?t.endColumn=s:(t.startColumn=s,t.endColumn=a),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=b.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${z.COLON}${e.getToken()}`),this}}class L extends b.Disposable{constructor(e){super();d(this,"_unitId");d(this,"_subUnitId");d(this,"_row",-1);d(this,"_column",-1);d(this,"_definedNames");d(this,"needsExpandParams",!1);d(this,"needsReferenceObject",!1);d(this,"minParams",-1);d(this,"maxParams",-1);this._name=e}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}getDefinedName(e){var r;const t=this._definedNames;return t==null?null:(r=Array.from(Object.values(t)).filter(s=>s.name===e))==null?void 0:r[0]}setDefinedNames(e){this._definedNames=e}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(e,t,r,s){this._unitId=e,this._subUnitId=t,this._row=r,this._column=s}calculateCustom(...e){return null}calculate(...e){return h.create(f.VALUE)}checkArrayType(e){return e.isReferenceObject()||e.isValueObject()&&e.isArray()}getIndexNumValue(e,t=1){if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())return e.getValue()===!1?h.create(f.VALUE):t;if(e.isString()){const r=Number(e.getValue());return Number.isNaN(r)?h.create(f.REF):r}else if(e.isNumber())return e.getValue();return h.create(f.VALUE)}getZeroOrOneByOneDefault(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;e.isNumber()&&e.getValue()===0&&(t=0)}return t}getMatchTypeValue(e){if(e==null)return 1;let t=1;if(e.isArray()&&(e=e.getFirstCell()),e.isBoolean())e.getValue()===!1&&(t=0);else{if(e.isString())return;if(e.isNumber()){const r=e.getValue();r<=0&&(t=r)}}return t}binarySearch(e,t,r,s){const a=t.binarySearch(e,s);if(a==null)return h.create(f.NA);let o;return r.getRowCount()===1?o=r.get(0,a)||ie.create():o=r.get(a,0)||ie.create(),o.isNull()?h.create(f.NA):o}_getOneFirstByRaw(e){return e.length===0?h.create(f.NA):e[0][0]||h.create(f.NA)}_getOneLastByRaw(e){return e.length===0?h.create(f.NA):e[e.length-1][e[0].length-1]||h.create(f.NA)}equalSearch(e,t,r,s=!0){const a=r.pickRaw(t.isEqual(e));return s?this._getOneFirstByRaw(a):this._getOneLastByRaw(a)}fuzzySearch(e,t,r,s=!0){const a=r.pickRaw(t.compare(e,O.EQUALS));return s?this._getOneFirstByRaw(a):this._getOneLastByRaw(a)}orderSearch(e,t,r,s=xe.MIN,a=!1){const o=t.orderSearch(e,s,a);if(o==null)return h.create(f.NA);const u=r.get(o.row,o.column)||ie.create();return u.isNull()?h.create(f.NA):u}binarySearchExpand(e,t,r,s=0,a){const o=t.binarySearch(e,a);return o==null?h.create(f.NA):s===0?r.slice([o,o+1]):r.slice(void 0,[o,o+1])}equalSearchExpand(e,t,r,s=!0,a=0){const o=t.isEqual(e);let u;return s?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?h.create(f.NA):a===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}fuzzySearchExpand(e,t,r,s=!0,a=0){const o=t.compare(e,O.EQUALS);let u;return s?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null?h.create(f.NA):a===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}orderSearchExpand(e,t,r,s=xe.MIN,a=!1,o=0){const u=t.orderSearch(e,s,a);return u==null?h.create(f.NA):o===0?r.slice([u.row,u.row+1]):r.slice(void 0,[u.column,u.column+1])}flattenArray(e,t=!0){const r=[];r[0]=[];for(let s=0;s<e.length;s++){let a=e[s];if((a.isString()||a.isBoolean()||a.isNull())&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()){let o;if(a.iterator(u=>{if(u==null||u.isNull()||t&&(u.isString()||u.isBoolean()))return!0;if(u=this._includingLogicalValuesAndText(u),u.isError())return o=u,!1;r[0].push(u)}),o!=null&&o.isError())return o}else r[0].push(a)}return Rt(r,1,r[0].length)}_includingLogicalValuesAndText(e){if(e.isBoolean()&&(e=Ja(e)),e.isString()){const t=Number(e.getValue());e=y.create(Number.isNaN(t)?0:t)}return e}createReferenceObject(e,t){const r=e.getForcedUnitId(),s=e.getForcedSheetId()||"",a=e.getForcedSheetName(),u=pt({unitId:r,sheetName:a,range:t});let c;return new RegExp(Qt).test(u)?c=new gn(u):new RegExp(Fs).test(u)?c=new pn(u):new RegExp(vs).test(u)?c=new Rn(u):c=new jt(t,s,r),this._setReferenceDefault(e,c)}_setReferenceDefault(e,t){return this.unitId==null||this.subUnitId==null?h.create(f.REF):(t.setDefaultUnitId(this.unitId),t.setDefaultSheetId(this.subUnitId),t.setUnitData(e.getUnitData()),t.setRuntimeData(e.getRuntimeData()),t.setArrayFormulaCellData(e.getArrayFormulaCellData()),t.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),t)}}class to extends L{isCustom(){return!0}}class qs extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std()}}class Zs extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std(1)}}class Js extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var()}}class ei extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var(1)}}var Ct=(n=>(n.BETADIST="BETADIST",n.BETAINV="BETAINV",n.BINOMDIST="BINOMDIST",n.CHIDIST="CHIDIST",n.CHIINV="CHIINV",n.CHITEST="CHITEST",n.CONFIDENCE="CONFIDENCE",n.COVAR="COVAR",n.CRITBINOM="CRITBINOM",n.EXPONDIST="EXPONDIST",n.FDIST="FDIST",n.FINV="FINV",n.FTEST="FTEST",n.GAMMADIST="GAMMADIST",n.GAMMAINV="GAMMAINV",n.HYPGEOMDIST="HYPGEOMDIST",n.LOGINV="LOGINV",n.LOGNORMDIST="LOGNORMDIST",n.MODE="MODE",n.NEGBINOMDIST="NEGBINOMDIST",n.NORMDIST="NORMDIST",n.NORMINV="NORMINV",n.NORMSDIST="NORMSDIST",n.NORMSINV="NORMSINV",n.PERCENTILE="PERCENTILE",n.PERCENTRANK="PERCENTRANK",n.POISSON="POISSON",n.QUARTILE="QUARTILE",n.RANK="RANK",n.STDEV="STDEV",n.STDEVP="STDEVP",n.TDIST="TDIST",n.TINV="TINV",n.TTEST="TTEST",n.VAR="VAR",n.VARP="VARP",n.WEIBULL="WEIBULL",n.ZTEST="ZTEST",n))(Ct||{});const ti=[[Zs,Ct.STDEV],[qs,Ct.STDEVP],[ei,Ct.VAR],[Js,Ct.VARP]],ri=[];var ni=(n=>(n.CUBEKPIMEMBER="CUBEKPIMEMBER",n.CUBEMEMBER="CUBEMEMBER",n.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",n.CUBERANKEDMEMBER="CUBERANKEDMEMBER",n.CUBESET="CUBESET",n.CUBESETCOUNT="CUBESETCOUNT",n.CUBEVALUE="CUBEVALUE",n))(ni||{});const si=[];var ii=(n=>(n.DAVERAGE="DAVERAGE",n.DCOUNT="DCOUNT",n.DCOUNTA="DCOUNTA",n.DGET="DGET",n.DMAX="DMAX",n.DMIN="DMIN",n.DPRODUCT="DPRODUCT",n.DSTDEV="DSTDEV",n.DSTDEVP="DSTDEVP",n.DSUM="DSUM",n.DVAR="DVAR",n.DVARP="DVARP",n))(ii||{});const _n="yyyy/mm/dd;@",ro="yyyy/mm/dd hh:mm",no="h:mm A/P";function En(n){const i=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28)),t=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate());let r=(t-i.getTime())/(1e3*3600*24);return t>e.getTime()&&(r+=1),Math.floor(r)+1}function so(n){const i=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let r=(n.getTime()-i.getTime())/(1e3*3600*24);return n>e&&(r+=1),r+1}function Xt(n){const i=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28));let t=Math.floor(n)-1;return t>(e.getTime()-i.getTime())/(1e3*3600*24)&&(t-=1),new Date(i.getTime()+t*(1e3*3600*24))}function Cn(n){const i=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let t=n-1;return t>(e.getTime()-i.getTime())/(1e3*3600*24)&&(t-=1),t<0&&(t=n),new Date(i.getTime()+t*(1e3*3600*24))}function yn(n){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(n))return!1;const e=n.replace(/-/g,"/").replace(/T.+/,""),t=new Date(`${e}`);if(Number.isNaN(t.getTime()))return!1;const r=t.getFullYear(),s=(t.getMonth()+1).toString().padStart(2,"0"),a=t.getDate().toString().padStart(2,"0"),o=`${r}-${s}-${a}`;return n.replace(/\//g,"-").split("-").map(c=>c.padStart(2,"0")).join("-")===o}function cs(n){return Vt.parseDate(n)}function ai(n){return Vt.parseValue(n)}function ls(n){return Vt.parseTime(n)}function oi(n){return Vt.isDate(n)}const ui={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 $t(n){return!!(typeof n=="string"&&/^[0|1]{7}/.test(n)||ui[Number(n)])}function ci(n){if(!$t(n))return[];if(typeof n=="string"&&/^[0|1]{7}/.test(n)){const i=[];for(let e=1;e<=n.length;e++)`${n[e-1]}`=="1"&&(e===n.length?i.push(0):i.push(e));return i}return ui[Number(n)]||[]}function Er(n,i,e=1,t){const r=ci(e),s=Math.floor(n),a=Math.floor(i),o=a>s?s:a;let u=0;const c=Math.abs(Math.floor(i)-Math.floor(n))+1;for(let l=0;l<c;l++){const m=o+l;if(t&&t.length>0&&t.some(p=>Math.floor(p)===m))continue;const g=Dn(m);r.includes(g)||u++}return a>s?u:-u}function Cr(n,i,e=1,t){const r=ci(e);n=Math.floor(n);let s=n,a=Math.abs(i);for(let o=1;o<=a;o++){const u=i<0?n-o:n+o;if(u<0)return h.create(f.NUM);if(t&&t.length>0&&t.some(l=>Math.floor(l)===u)){a++;continue}const c=Dn(u);if(r.includes(c)){a++;continue}s=u}return s}function De(n){const i=n.getValue();if(n.isString()){let e;if(cs(`${i}`))e=cs(`${i}`).v;else if(ls(`${i}`))e=ls(`${i}`).v;else if(b.isRealNum(i))e=+i;else return h.create(f.VALUE);return+e<0||+e>2958465?h.create(f.NUM):e}else{const e=+n.getValue();return e<0||e>2958465?h.create(f.NUM):e}}function Dn(n){const i=Math.floor(n)===60;let e=Xt(n);const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getTime(),r=new Date(Date.UTC(1900,1,28)).getTime();return!i&&t<=r&&(e=new Date(t-24*3600*1e3)),new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getUTCDay()}class io extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(s,a,e),u=J(s,a,t),c=J(s,a,r);return o.map((l,m,g)=>{const p=u.get(m,g)||ie.create(),R=c.get(m,g)||ie.create();if(l.isError())return l;if(p.isError())return p;if(R.isError())return R;if(l.isString()||p.isString()||R.isString())return h.create(f.VALUE);let D=+l.getValue();const P=Math.floor(+p.getValue()),w=+R.getValue();if(D<0||D>9999)return h.create(f.NUM);D>=0&&D<1899&&(D+=1900);const v=new Date(D,P-1,w),B=En(v);return B<0?h.create(f.NUM):y.create(B,_n)})}}class ao extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=ai(t);if(r){const{v:s,z:a}=r;if(oi(a))return y.create(Math.trunc(s))}}return h.create(f.VALUE)}}class oo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t;const r=e.getValue();if(e.isString()){if(!yn(`${r}`))return h.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return h.create(f.NUM);if(o===0)return y.create(0);t=Xt(o)}const s=t.getDate();return y.create(s)}}class uo extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),a=J(r,s,e),o=J(r,s,t);return a.map((u,c,l)=>{const m=o.get(c,l)||ie.create();if(u.isError())return u;if(m.isError())return m;if(u.isString()||u.isBoolean()||m.isString()||m.isBoolean())return h.create(f.VALUE);const g=+u.getValue();if(g<0)return h.create(f.NUM);const p=Math.floor(+m.getValue()),R=Xt(g),D=R.getUTCFullYear(),P=R.getUTCMonth()+p,w=R.getUTCDate(),v=new Date(Date.UTC(D,P,w)),B=En(v);return y.create(B,_n)})}}var pe=(n=>(n.DATE="DATE",n.DATEDIF="DATEDIF",n.DATEVALUE="DATEVALUE",n.DAY="DAY",n.DAYS="DAYS",n.DAYS360="DAYS360",n.EDATE="EDATE",n.EOMONTH="EOMONTH",n.HOUR="HOUR",n.ISOWEEKNUM="ISOWEEKNUM",n.MINUTE="MINUTE",n.MONTH="MONTH",n.NETWORKDAYS="NETWORKDAYS",n.NETWORKDAYS_INTL="NETWORKDAYS.INTL",n.NOW="NOW",n.SECOND="SECOND",n.TIME="TIME",n.TIMEVALUE="TIMEVALUE",n.TODAY="TODAY",n.WEEKDAY="WEEKDAY",n.WEEKNUM="WEEKNUM",n.WORKDAY="WORKDAY",n.WORKDAY_INTL="WORKDAY.INTL",n.YEAR="YEAR",n.YEARFRAC="YEARFRAC",n))(pe||{});class co extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=De(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const s=Cn(t).getUTCHours();return y.create(s)}}class lo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=De(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const s=Cn(t).getUTCMinutes();return y.create(s)}}class fo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!yn(`${r}`))return h.create(f.VALUE);t=new Date(`${r}`)}else{const o=+e.getValue();if(o<0)return h.create(f.NUM);if(o===0)return y.create(1);t=Xt(o)}const s=t.getUTCMonth()+1;return y.create(s)}}class ho extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(e.isArray()){if(e.getRowCount()>1||e.getColumnCount()>1)return h.create(f.VALUE);if(e=e.get(0,0),e.isError())return e}if(t.isArray()){if(t.getRowCount()>1||t.getColumnCount()>1)return h.create(f.VALUE);if(t=t.get(0,0),t.isError())return t}if(e.isBoolean()||t.isBoolean())return h.create(f.VALUE);const s=De(e);if(typeof s!="number")return s;const a=De(t);if(typeof a!="number")return a;let o;if(r){const u=[];if(r!=null&&r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();for(let m=0;m<c;m++)for(let g=0;g<l;g++){const p=r.get(m,g);if(p.isBoolean())return h.create(f.VALUE);const R=De(p);if(typeof R!="number")return R;u.push(R)}}else{if(r.isBoolean())return h.create(f.VALUE);const c=De(r);if(typeof c!="number")return c;u.push(c)}o=Er(s,a,1,u)}else o=Er(s,a);return y.create(o)}}class mo extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",4)}calculate(e,t,r,s){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:s!=null&&s.isError()?s:r!=null&&r.isArray()?r.map(a=>this._handleSingleObject(e,t,a,s)):this._handleSingleObject(e,t,r,s)}_handleSingleObject(e,t,r,s){let a=1;if(r){if(a=r.getValue(),r.isBoolean()&&(a=+a),r.isString()&&!$t(a))return h.create(f.VALUE);if(!$t(a))return h.create(f.NUM)}if(e.isArray()){if(e.getRowCount()>1||e.getColumnCount()>1)return h.create(f.VALUE);if(e=e.get(0,0),e.isError())return e}if(t.isArray()){if(t.getRowCount()>1||t.getColumnCount()>1)return h.create(f.VALUE);if(t=t.get(0,0),t.isError())return t}if(e.isBoolean()||t.isBoolean())return h.create(f.VALUE);const o=De(e);if(typeof o!="number")return o;const u=De(t);if(typeof u!="number")return u;let c;if(s){const l=[];if(s!=null&&s.isArray()){const m=s.getRowCount(),g=s.getColumnCount();for(let p=0;p<m;p++)for(let R=0;R<g;R++){const D=s.get(p,R);if(D.isBoolean())return h.create(f.VALUE);const P=De(D);if(typeof P!="number")return P;l.push(P)}}else{if(s.isBoolean())return h.create(f.VALUE);const m=De(s);if(typeof m!="number")return m;l.push(m)}c=Er(o,u,a,l)}else c=Er(o,u,a);return y.create(c)}}class go extends L{constructor(){super(...arguments);d(this,"minParams",0);d(this,"maxParams",0)}calculate(){const e=new Date,t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())),r=so(t);return y.create(r,ro)}}class po extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=De(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const s=Cn(t).getUTCSeconds();return y.create(s)}}class Ro extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(s,a,e),u=J(s,a,t),c=J(s,a,r);return o.map((l,m,g)=>this._calculateTime(l,u,c,m,g))}_calculateTime(e,t,r,s,a){let o=t.get(s,a)||ie.create(),u=r.get(s,a)||ie.create();if((e.isString()||e.isBoolean())&&(e=e.convertToNumberObjectValue()),(o.isString()||o.isBoolean())&&(o=o.convertToNumberObjectValue()),(u.isString()||u.isBoolean())&&(u=u.convertToNumberObjectValue()),e.isError())return e;if(o.isError())return o;if(u.isError())return u;let c=Math.floor(+e.getValue()),l=Math.floor(+o.getValue()),m=Math.floor(+u.getValue());if(c<0||l<0||m<0||c>32767||l>32767||m>32767)return h.create(f.NUM);l+=Math.floor(m/60),m%=60,c+=Math.floor(l/60),l%=60,c%=24;const p=(c*3600+l*60+m)/86400;return y.create(p,no)}}class _o extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=ai(t);if(r){const{v:s,z:a}=r;if(oi(a))return y.create(va(s))}}return h.create(f.VALUE)}}class Eo extends L{constructor(){super(...arguments);d(this,"minParams",0);d(this,"maxParams",0)}calculate(){const e=En(new Date);return y.create(e,_n)}}class Co extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t!=null&&t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t!=null&&t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t!=null&&t.isArray()?t.getColumnCount():1),a=J(r,s,e,h.create(f.NA)),o=t?J(r,s,t,h.create(f.NA)):[],u=a.map((c,l,m)=>{if(t){const g=o.get(l,m);return this._handleSingleObject(c,g)}else return this._handleSingleObject(c)});return u.getRowCount()===1&&u.getColumnCount()===1?u.getArrayValue()[0][0]:u}_handleSingleObject(e,t){if(e.isError())return e;if(t!=null&&t.isError())return t;const r=De(e);if(typeof r!="number")return r;const s={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]};let a=1;if(t){if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;if(a=Math.floor(+t.getValue()),!s[a])return h.create(f.NUM)}const o=Dn(r),u=s[a][o];return y.create(u)}}class yo extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(e.isArray()){if(e.getRowCount()>1||e.getColumnCount()>1)return h.create(f.VALUE);if(e=e.get(0,0),e.isError())return e}if(t.isArray()){if(t.getRowCount()>1||t.getColumnCount()>1)return h.create(f.VALUE);if(t=t.get(0,0),t.isError())return t}if(e.isBoolean()||t.isBoolean())return h.create(f.VALUE);const s=De(e);if(typeof s!="number")return s;if(t.isString()&&(t=t.convertToNumberObjectValue(),t.isError()))return t;const a=+t.getValue();let o;if(r){const u=[];if(r!=null&&r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();for(let m=0;m<c;m++)for(let g=0;g<l;g++){const p=r.get(m,g);if(p.isBoolean())return h.create(f.VALUE);const R=De(p);if(typeof R!="number")return R;u.push(R)}}else{if(r.isBoolean())return h.create(f.VALUE);const c=De(r);if(typeof c!="number")return c;u.push(c)}o=Cr(s,a,1,u)}else o=Cr(s,a);return typeof o!="number"?o:y.create(o)}}class Do extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",4)}calculate(e,t,r,s){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:s!=null&&s.isError()?s:r!=null&&r.isArray()?r.map(a=>this._handleSingleObject(e,t,a,s)):this._handleSingleObject(e,t,r,s)}_handleSingleObject(e,t,r,s){let a=1;if(r){if(a=r.getValue(),r.isBoolean()&&(a=+a),r.isString()&&(!$t(a)||a==="1111111"))return h.create(f.VALUE);if(!$t(a))return h.create(f.NUM)}if(e.isArray()){if(e.getRowCount()>1||e.getColumnCount()>1)return h.create(f.VALUE);if(e=e.get(0,0),e.isError())return e}if(t.isArray()){if(t.getRowCount()>1||t.getColumnCount()>1)return h.create(f.VALUE);if(t=t.get(0,0),t.isError())return t}if(e.isBoolean()||t.isBoolean())return h.create(f.VALUE);const o=De(e);if(typeof o!="number")return o;if(t.isString()&&(t=t.convertToNumberObjectValue(),t.isError()))return t;const u=+t.getValue();let c;if(s){const l=[];if(s!=null&&s.isArray()){const m=s.getRowCount(),g=s.getColumnCount();for(let p=0;p<m;p++)for(let R=0;R<g;R++){const D=s.get(p,R);if(D.isBoolean())return h.create(f.VALUE);const P=De(D);if(typeof P!="number")return P;l.push(P)}}else{if(s.isBoolean())return h.create(f.VALUE);const m=De(s);if(typeof m!="number")return m;l.push(m)}c=Cr(o,u,a,l)}else c=Cr(o,u,a);return typeof c!="number"?c:y.create(c)}}class bo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!yn(`${r}`))return h.create(f.VALUE);t=new Date(`${r}`)}else{const o=+r;if(o<0)return h.create(f.NUM);if(o===0)return y.create(1900);t=Xt(o)}const s=t.getUTCFullYear();return y.create(s)}}const li=[[io,pe.DATE],[ao,pe.DATEVALUE],[oo,pe.DAY],[uo,pe.EDATE],[co,pe.HOUR],[lo,pe.MINUTE],[fo,pe.MONTH],[ho,pe.NETWORKDAYS],[mo,pe.NETWORKDAYS_INTL],[go,pe.NOW],[po,pe.SECOND],[Ro,pe.TIME],[_o,pe.TIMEVALUE],[Eo,pe.TODAY],[Co,pe.WEEKDAY],[yo,pe.WORKDAY],[Do,pe.WORKDAY_INTL],[bo,pe.YEAR]],fi=[];var hi=(n=>(n.BESSELI="BESSELI",n.BESSELJ="BESSELJ",n.BESSELK="BESSELK",n.BESSELY="BESSELY",n.BIN2DEC="BIN2DEC",n.BIN2HEX="BIN2HEX",n.BIN2OCT="BIN2OCT",n.BITAND="BITAND",n.BITLSHIFT="BITLSHIFT",n.BITOR="BITOR",n.BITRSHIFT="BITRSHIFT",n.BITXOR="BITXOR",n.COMPLEX="COMPLEX",n.CONVERT="CONVERT",n.DEC2BIN="DEC2BIN",n.DEC2HEX="DEC2HEX",n.DEC2OCT="DEC2OCT",n.DELTA="DELTA",n.ERF="ERF",n.ERF_PRECISE="ERF.PRECISE",n.ERFC="ERFC",n.ERFC_PRECISE="ERFC.PRECISE",n.GESTEP="GESTEP",n.HEX2BIN="HEX2BIN",n.HEX2DEC="HEX2DEC",n.HEX2OCT="HEX2OCT",n.IMABS="IMABS",n.IMAGINARY="IMAGINARY",n.IMARGUMENT="IMARGUMENT",n.IMCONJUGATE="IMCONJUGATE",n.IMCOS="IMCOS",n.IMCOSH="IMCOSH",n.IMCOT="IMCOT",n.IMCSC="IMCSC",n.IMCSCH="IMCSCH",n.IMDIV="IMDIV",n.IMEXP="IMEXP",n.IMLN="IMLN",n.IMLOG10="IMLOG10",n.IMLOG2="IMLOG2",n.IMPOWER="IMPOWER",n.IMPRODUCT="IMPRODUCT",n.IMREAL="IMREAL",n.IMSEC="IMSEC",n.IMSECH="IMSECH",n.IMSIN="IMSIN",n.IMSINH="IMSINH",n.IMSQRT="IMSQRT",n.IMSUB="IMSUB",n.IMSUM="IMSUM",n.IMTAN="IMTAN",n.OCT2BIN="OCT2BIN",n.OCT2DEC="OCT2DEC",n.OCT2HEX="OCT2HEX",n))(hi||{});const mi=[];var di=(n=>(n.ACCRINT="ACCRINT",n.ACCRINTM="ACCRINTM",n.AMORDEGRC="AMORDEGRC",n.AMORLINC="AMORLINC",n.COUPDAYBS="COUPDAYBS",n.COUPDAYS="COUPDAYS",n.COUPDAYSNC="COUPDAYSNC",n.COUPNCD="COUPNCD",n.COUPNUM="COUPNUM",n.COUPPCD="COUPPCD",n.CUMIPMT="CUMIPMT",n.CUMPRINC="CUMPRINC",n.DB="DB",n.DDB="DDB",n.DISC="DISC",n.DOLLARDE="DOLLARDE",n.DOLLARFR="DOLLARFR",n.DURATION="DURATION",n.EFFECT="EFFECT",n.FV="FV",n.FVSCHEDULE="FVSCHEDULE",n.INTRATE="INTRATE",n.IPMT="IPMT",n.IRR="IRR",n.ISPMT="ISPMT",n.MDURATION="MDURATION",n.MIRR="MIRR",n.NOMINAL="NOMINAL",n.NPER="NPER",n.NPV="NPV",n.ODDFPRICE="ODDFPRICE",n.ODDFYIELD="ODDFYIELD",n.ODDLPRICE="ODDLPRICE",n.ODDLYIELD="ODDLYIELD",n.PDURATION="PDURATION",n.PMT="PMT",n.PPMT="PPMT",n.PRICE="PRICE",n.PRICEDISC="PRICEDISC",n.PRICEMAT="PRICEMAT",n.PV="PV",n.RATE="RATE",n.RECEIVED="RECEIVED",n.RRI="RRI",n.SLN="SLN",n.SYD="SYD",n.TBILLEQ="TBILLEQ",n.TBILLPRICE="TBILLPRICE",n.TBILLYIELD="TBILLYIELD",n.VDB="VDB",n.XIRR="XIRR",n.XNPV="XNPV",n.YIELD="YIELD",n.YIELDDISC="YIELDDISC",n.YIELDMAT="YIELDMAT",n))(di||{}),we=(n=>(n.CELL="CELL",n.ERROR_TYPE="ERROR.TYPE",n.INFO="INFO",n.ISBLANK="ISBLANK",n.ISERR="ISERR",n.ISERROR="ISERROR",n.ISEVEN="ISEVEN",n.ISFORMULA="ISFORMULA",n.ISLOGICAL="ISLOGICAL",n.ISNA="ISNA",n.ISNONTEXT="ISNONTEXT",n.ISNUMBER="ISNUMBER",n.ISODD="ISODD",n.ISOMITTED="ISOMITTED",n.ISREF="ISREF",n.ISTEXT="ISTEXT",n.N="N",n.NA="NA",n.SHEET="SHEET",n.SHEETS="SHEETS",n.TYPE="TYPE",n))(we||{});class So extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isNull()?j.create(!0):e.isArray()?e.mapValue(t=>t.isNull()?j.create(!0):j.create(!1)):j.create(!1)}}class Ao extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?j.create(!1):e.isError()?j.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?j.create(!1):t.isError()?j.create(!0):j.create(!1)):j.create(!1)}}class Po extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?j.create(!0):e.isArray()?e.mapValue(t=>t.isError()?j.create(!0):j.create(!1)):j.create(!1)}}class Lo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return h.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return j.create(r%2===0)}}class xo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isBoolean()?j.create(!0):e.isArray()?e.mapValue(t=>t.isBoolean()?j.create(!0):j.create(!1)):j.create(!1)}}class Vo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.getValue()===f.NA?j.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===f.NA?j.create(!0):j.create(!1)):j.create(!1)}}class wo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return!e.isArray()&&!e.isString()?j.create(!0):e.isArray()?e.mapValue(t=>t.isString()?j.create(!1):j.create(!0)):j.create(!1)}}class Uo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isNumber()?j.create(!0):e.isArray()?e.mapValue(t=>t.isNumber()?j.create(!0):j.create(!1)):j.create(!1)}}class Oo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){if(e.isArray()||e.isBoolean()||!e.isNumber()&&(e=e.convertToNumberObjectValue(),!e.isNumber()))return h.create(f.VALUE);const t=e.getValue(),r=Math.floor(Math.abs(t));return j.create(r%2!==0)}}class Mo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1);d(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?j.create(!0):j.create(!1)}}class Fo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()?j.create(!0):e.isArray()?e.mapValue(t=>t.isString()?j.create(!0):j.create(!1)):j.create(!1)}}const gi=[[So,we.ISBLANK],[Ao,we.ISERR],[Lo,we.ISEVEN],[Oo,we.ISODD],[Po,we.ISERROR],[xo,we.ISLOGICAL],[Vo,we.ISNA],[wo,we.ISNONTEXT],[Uo,we.ISNUMBER],[Mo,we.ISREF],[Fo,we.ISTEXT]];class vo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=!0,r=!0,s=null;for(const a of e){if(a.isError())return a;if(a.isArray()){if(a.iterator(o=>{if(o!=null&&o.isError())return s=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t&&!!o.getValue(),r=!1)}),s)return s}else(a.isBoolean()||a.isNumber())&&(t=t&&!!a.getValue(),r=!1)}return r?h.create(f.VALUE):j.create(t)}}var nt=(n=>(n.AND="AND",n.BYCOL="BYCOL",n.BYROW="BYROW",n.FALSE="FALSE",n.IF="IF",n.IFERROR="IFERROR",n.IFNA="IFNA",n.IFS="IFS",n.LAMBDA="LAMBDA",n.LET="LET",n.MAKEARRAY="MAKEARRAY",n.MAP="MAP",n.NOT="NOT",n.OR="OR",n.REDUCE="REDUCE",n.SCAN="SCAN",n.SWITCH="SWITCH",n.TRUE="TRUE",n.XOR="XOR",n))(nt||{});class Bo extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r=j.create(!1)){if(e.isError())return e;if(t.isError())return t;if(e=this._getSingleValueObject(e),!e.isArray())return e.getValue()?t:r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=J(s,a,e),u=J(s,a,t,h.create(f.NA)),c=J(s,a,r,h.create(f.NA));return o.map((l,m,g)=>{if(l.isNull())return h.create(f.NA);{const p=u.get(m,g)||ie.create(),R=c.get(m,g)||ie.create();return this._calculateSingleCell(l,p,R)}})}_getSingleValueObject(e){return e.isArray()&&e.getRowCount()===1&&e.getColumnCount()===1?e.getFirstCell():e}_calculateSingleCell(e,t,r){return e.isNull()?h.create(f.NA):e.getValue()?t.isNull()?h.create(f.NA):t:r.isNull()?h.create(f.NA):r}}class To extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;if(!e.isArray())return e.isError()?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),a=J(r,s,e),o=J(r,s,t);return a.iterator((u,c,l)=>{u!=null&&u.isError()&&a.set(c,l,o.get(c,l))}),a}}class ko extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){return h.create(f.VALUE)}}class Io extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",3)}calculate(...e){const t=this.getIndexNumValue(e[0]);if(typeof t!="number")return t;const r=this.getIndexNumValue(e[1]);if(typeof r!="number")return r;if(!(e[2].isValueObject()&&e[2].isLambda()))return h.create(f.VALUE);const s=e[2],a=[];for(let o=0;o<t;o++){a[o]==null&&(a[o]=[]);for(let u=0;u<r;u++){const c=s.execute(y.create(o+1),y.create(u+1));a[o][u]=c}}return new Ws(a)}isAsync(){return!0}}class jo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=!1,r=!0,s=null;for(const a of e){if(a.isError())return a;if(a.isArray()){if(a.iterator(o=>{if(o!=null&&o.isError())return s=o,!1;(o!=null&&o.isBoolean()||o!=null&&o.isNumber())&&(t=t||!!o.getValue(),r=!1)}),s)return s}else(a.isBoolean()||a.isNumber())&&(t=t||!!a.getValue(),r=!1)}return r?new h(f.VALUE):new j(t)}}const pi=[[vo,nt.AND],[Bo,nt.IF],[ko,nt.LAMBDA],[Io,nt.MAKEARRAY],[jo,nt.OR],[To,nt.IFERROR]];class $o extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",5)}calculate(e,t,r,s,a){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(s!=null&&s.isError())return s;if(a!=null&&a.isError())return a;r=r!=null?r:y.create(1),s=s!=null?s:j.create(!0),a=a!=null?a:fe.create("");const o=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1,a.isArray()?a.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1,a.isArray()?a.getColumnCount():1),c=J(o,u,e,h.create(f.NA)),l=J(o,u,t,h.create(f.NA)),m=J(o,u,r,h.create(f.NA)),g=J(o,u,s,h.create(f.NA)),p=J(o,u,a,h.create(f.NA));return c.map((R,D,P)=>{const w=l.get(D,P)||h.create(f.NA),v=m.get(D,P)||h.create(f.NA),B=g.get(D,P)||h.create(f.NA),X=p.get(D,P)||h.create(f.NA);return R.isError()?R:w.isError()?w:v.isError()?v:B.isError()?B:X.isError()?X:this._calculateSingleCell(R,w,v,B,X)})}_calculateSingleCell(e,t,r,s,a){const o=Number.parseInt(`${Number(e.getValue())-1}`),u=Number.parseInt(`${Number(t.getValue())-1}`),c=Number.parseInt(`${Number(r.getValue())}`);if(Number.isNaN(o)||Number.isNaN(u)||Number.isNaN(c)||c<1||c>4)return h.create(f.VALUE);const l=Yo(c),m=this.getZeroOrOneByOneDefault(s),g=`${a.getValue()}`,p=_r(g)?`'${g}'`:g,R={startRow:o,startColumn:u,endRow:o,endColumn:u,startAbsoluteRefType:l,endAbsoluteRefType:l},D=s&&!m?qa(R):Ke(R);return fe.create(p!==""?`${p}!${D}`:D)}}function Yo(n){switch(n){case 1:return b.AbsoluteRefType.ALL;case 2:return b.AbsoluteRefType.ROW;case 3:return b.AbsoluteRefType.COLUMN;case 4:return b.AbsoluteRefType.NONE;default:return b.AbsoluteRefType.ALL}}class Ho extends L{constructor(){super(...arguments);d(this,"minParams",0);d(this,"maxParams",1)}calculate(e){if(e==null)return y.create(this.column+1);if(e.isError())return e;if(!e.isArray())return h.create(f.NA);const t=e.getCurrentColumn(),r=e.getColumnCount(),s=[];for(let o=0;o<r;o++)s.push(y.create(t+o+1));const a={calculateValueList:[s],rowCount:1,columnCount:r,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(a)}}class Qo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return y.create(1);if(!e.isArray())return h.create(f.NA);const t=e.getColumnCount();return y.create(t)}}var Se=(n=>(n.ADDRESS="ADDRESS",n.AREAS="AREAS",n.CHOOSE="CHOOSE",n.CHOOSECOLS="CHOOSECOLS",n.CHOOSEROWS="CHOOSEROWS",n.COLUMN="COLUMN",n.COLUMNS="COLUMNS",n.DROP="DROP",n.EXPAND="EXPAND",n.FILTER="FILTER",n.FORMULATEXT="FORMULATEXT",n.GETPIVOTDATA="GETPIVOTDATA",n.HLOOKUP="HLOOKUP",n.HSTACK="HSTACK",n.HYPERLINK="HYPERLINK",n.IMAGE="IMAGE",n.INDEX="INDEX",n.INDIRECT="INDIRECT",n.LOOKUP="LOOKUP",n.MATCH="MATCH",n.OFFSET="OFFSET",n.ROW="ROW",n.ROWS="ROWS",n.RTD="RTD",n.SORT="SORT",n.SORTBY="SORTBY",n.TAKE="TAKE",n.TOCOL="TOCOL",n.TOROW="TOROW",n.TRANSPOSE="TRANSPOSE",n.UNIQUE="UNIQUE",n.VLOOKUP="VLOOKUP",n.VSTACK="VSTACK",n.WRAPCOLS="WRAPCOLS",n.WRAPROWS="WRAPROWS",n.XLOOKUP="XLOOKUP",n.XMATCH="XMATCH",n))(Se||{});class zo extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",4)}calculate(e,t,r,s){if(e.isError())return e;if(t.isError())return h.create(f.REF);if(!t.isArray()||r.isError()||s!=null&&s.isError())return h.create(f.NA);const a=this.getZeroOrOneByOneDefault(s);if(a==null)return h.create(f.VALUE);const o=this.getIndexNumValue(r);if(o instanceof h)return o;const u=t.slice([0,1]),c=t.slice([o-1,o]);return u==null||c==null?h.create(f.REF):e.isArray()?e.map(l=>this._handleSingleObject(l,u,c,a)):this._handleSingleObject(e,u,c,a)}_handleSingleObject(e,t,r,s){return s===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class No extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",2)}isAddress(){return!0}calculate(e,t){if(e.isError())return e;let r=this.getZeroOrOneByOneDefault(t);if(r==null&&(r=1),e.isArray()){const m=e;if(m.getRowCount()===1&&m.getColumnCount()===1)e=m.getFirstCell();else return m.map(()=>h.create(f.VALUE))}if(!e.isString())return h.create(f.REF);const s=this._convertToDefinedName(e.getValue());if(r===0){const m=Gs(s),{range:g,sheetName:p,unitId:R}=m,D=new jt(g);return D.setForcedUnitIdDirect(R),D.setForcedSheetName(p),this._setDefault(D)}if(new RegExp(Qt).test(s))return this._setDefault(new gn(s));if(new RegExp(Os).test(s))return this._setDefault(new pn(s));if(new RegExp(Ms).test(s))return this._setDefault(new Rn(s));const a=$e(s),{range:o,sheetName:u,unitId:c}=a,l=new jt(o);return l.setForcedUnitIdDirect(c),l.setForcedSheetName(u),this._setDefault(l)}_setDefault(e){return this.unitId==null||this.subUnitId==null?h.create(f.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e)}_convertToDefinedName(e){const t=this.getDefinedName(e);if(t==null)return e;const r=t.formulaOrRefString;return r==null?e:r.startsWith(se.EQUALS)?r.slice(1):r}}class Wo extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3);d(this,"needsExpandParams",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?h.create(f.REF):t.isArray()?r!=null&&r.isError()?r:t.getColumnCount()===1||t.getRowCount()===1?r!=null&&!r.isArray()?h.create(f.REF):this._handleVector(e,t,r):this._handleArray(e,t):h.create(f.VALUE)}_handleVector(e,t,r){if(r==null)r=t;else if(r.getRowCount()!==t.getRowCount()||r.getColumnCount()!==t.getColumnCount())return h.create(f.REF);return e.isArray()?e.map(s=>this.binarySearch(s,t,r)):this.binarySearch(e,t,r)}_handleArray(e,t){const r=t.getRowCount(),s=t.getColumnCount();let a,o;return s>r?(a=t.slice([0,1]),o=t.slice([r-1,r])):(a=t.slice(void 0,[0,1]),o=t.slice(void 0,[s-1,s])),a==null||o==null?h.create(f.VALUE):e.isArray()?e.map(u=>this.binarySearch(u,a,o)):this.binarySearch(e,a,o)}}class Go extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return h.create(f.REF);if(!t.isArray())return h.create(f.VALUE);const s=t.getRowCount(),a=t.getColumnCount();if(s!==1&&a!==1||r!=null&&r.isError())return h.create(f.NA);const o=this.getMatchTypeValue(r);return o==null?h.create(f.VALUE):e.isArray()?e.map(u=>this._handleSingleObject(u,t,o)):this._handleSingleObject(e,t,o)}_handleSingleObject(e,t,r){const s=this._getSearchModeValue(r),a=t.orderSearch(e,s);if(a==null)return h.create(f.NA);if(a instanceof h)return a;const o=t.getRowCount()===1?a.column+1:a.row+1;return y.create(o)}_getSearchModeValue(e){switch(e){case 1:return xe.MIN;case 0:return xe.NORMAL;case-1:return xe.MAX}}}class Xo extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",5);d(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,t,r,s,a){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(s!=null&&s.isError())return s;if(a!=null&&a.isError())return a;if(!e.isReferenceObject())return h.create(f.VALUE);e=e;const o=e.getRowCount(),u=e.getColumnCount();t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),s?s.isReferenceObject()&&(s=s.toArrayValueObject()):s=y.create(o),a?a.isReferenceObject()&&(a=a.toArrayValueObject()):a=y.create(u);const c=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1,a.isArray()?a.getRowCount():1),l=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1,a.isArray()?a.getColumnCount():1);if(t=t,r=r,s=s,a=a,c===1&&l===1)return this._handleSingleObject(e,t,r,s,a);const m=J(c,l,t,h.create(f.NA)),g=J(c,l,r,h.create(f.NA)),p=J(c,l,s,h.create(f.NA)),R=J(c,l,a,h.create(f.NA));return m.mapValue((D,P,w)=>{const v=g.get(P,w),B=p.get(P,w),X=R.get(P,w);return D.isError()?D:v.isError()?v:B.isError()?B:X.isError()?X:this._handleSingleObject(e,D,v,B,X,!0)})}_handleSingleObject(e,t,r,s,a,o=!1){const{startRow:u,startColumn:c}=e.getRangeData(),l=this.getIndexNumValue(t),m=this.getIndexNumValue(r);if(typeof l!="number"||typeof m!="number")return h.create(f.VALUE);const g=u+l,p=c+m;if(g<0||p<0)return h.create(f.REF);const R=this.getIndexNumValue(s),D=this.getIndexNumValue(a);if(typeof R!="number"||typeof D!="number")return h.create(f.VALUE);if(R===0||D===0)return h.create(f.REF);const P=R>0?g+R-1:g+R+1,w=D>0?p+D-1:p+D+1;if(P<0||w<0)return h.create(f.REF);if(o)return h.create(f.VALUE);const v=g<P?g:P,B=p<w?p:w,X=g>P?g:P,ue=p>w?p:w,ge={startRow:v,startColumn:B,endRow:X,endColumn:ue};return this.createReferenceObject(e,ge)}}class Ko extends L{constructor(){super(...arguments);d(this,"minParams",0);d(this,"maxParams",1)}calculate(e){if(e==null)return y.create(this.row+1);if(e.isError())return e;if(!e.isArray())return h.create(f.NA);const t=e.getCurrentRow(),r=e.getRowCount(),s=[];for(let o=0;o<r;o++)s.push([y.create(t+o+1)]);const a={calculateValueList:s,rowCount:r,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(a)}}class qo extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return y.create(1);if(!e.isArray())return h.create(f.NA);const t=e.getRowCount();return y.create(t)}}class Zo extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",4)}calculate(e,t,r,s){return e.isError()?e:t.isError()?t:t.isArray()?r.isError()?r:s!=null&&s.isError()?s:(s=s!=null?s:j.create(!0),us(e)&&us(s)&&r.isArray()?this._handleArrayColIndexNum(e,t,r,s):this._handleNonArrayColIndexNum(e,t,r,s)):h.create(f.VALUE)}_handleArrayColIndexNum(e,t,r,s){e=e.isArray()?e.getFirstCell():e;const a=this.getZeroOrOneByOneDefault(s);if(a==null)return h.create(f.VALUE);let o;const u=[];return r.iterator((c,l,m)=>{if(c==null)return o=h.create(f.VALUE),!1;const g=this._handleTableArray(e,t,c,a);if(g.isError())return o=g,!1;u[l]===void 0&&(u[l]=[]),u[l][m]=g}),o||Rt(u,u.length,u[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(e,t,r,s){const a=Math.max(e.isArray()?e.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,s.isArray()?s.getColumnCount():1),u=J(a,o,e),c=J(a,o,s);return u.map((l,m,g)=>{if(l.isError())return l;const p=c.get(m,g);if(p==null)return h.create(f.VALUE);if(p.isError())return p;const R=this.getZeroOrOneByOneDefault(p);return R==null?h.create(f.VALUE):this._handleTableArray(l,t,r,R)})}_handleTableArray(e,t,r,s){const a=this.getIndexNumValue(r);if(a instanceof h)return a;const o=t.slice(void 0,[0,1]);if(o==null)return h.create(f.VALUE);const u=t.slice(void 0,[a-1,a]);return u==null?h.create(f.REF):this._handleSingleObject(e,o,u,s)}_handleSingleObject(e,t,r,s){return s===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class Jo extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",6)}calculate(e,t,r,s,a,o){if(e.isError())return e;if(t.isError())return h.create(f.REF);if(!t.isArray())return h.create(f.VALUE);const u=t.getRowCount(),c=t.getColumnCount();if(u!==1&&c!==1)return h.create(f.VALUE);if(r.isError())return h.create(f.REF);if(!r.isArray())return h.create(f.VALUE);const l=r.getRowCount(),m=r.getColumnCount();if(u!==l&&c!==m)return h.create(f.VALUE);if(s!=null&&s.isError()||a!=null&&a.isError()||o!=null&&o.isError())return h.create(f.NA);s==null&&(s=h.create(f.NA));const g=this.getIndexNumValue(a||y.create(0));if(g instanceof h)return g;const p=this.getIndexNumValue(o||y.create(1));if(p instanceof h)return p;if(e.isArray()){let P;return u===1?P=r.slice([0,1]):P=r.slice(void 0,[0,1]),P==null?h.create(f.NA):e.map(w=>{const v=this._handleSingleObject(w,t,P,g,p);return v.isError()?s:v})}if(c===m&&u===l){const P=this._handleSingleObject(e,t,r,g,p);return P.isError()?s:P}let R=0;c===m&&(R=1);const D=this._handleExpandObject(e,t,r,g,p,R);return D==null?h.create(f.NA):D}_handleExpandObject(e,t,r,s,a,o=0){return(a===2||a===-2)&&s!==2?this.binarySearchExpand(e,t,r,o,this._getSearchModeValue(a)):s===2?this.fuzzySearchExpand(e,t,r,a!==-1,o):s===-1||s===1?this.orderSearchExpand(e,t,r,s===1?xe.MAX:xe.MIN,a===-1,o):this.equalSearchExpand(e,t,r,a!==-1,o)}_handleSingleObject(e,t,r,s,a){return(a===2||a===-2)&&s!==2?this.binarySearch(e,t,r,this._getSearchModeValue(a)):s===2?this.fuzzySearch(e,t,r,a!==-1):s===-1||s===1?this.orderSearch(e,t,r,s===1?xe.MAX:xe.MIN,a===-1):this.equalSearch(e,t,r,a!==-1)}_getSearchModeValue(e){return e===-2?Ge.MAX:Ge.MIN}}class eu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",4)}calculate(e,t,r,s){if(e.isError())return e;if(t.isError())return h.create(f.REF);if(!t.isArray())return h.create(f.VALUE);const a=t.getRowCount(),o=t.getColumnCount();if(a!==1&&o!==1)return h.create(f.VALUE);if(r!=null&&r.isError()||s!=null&&s.isError())return h.create(f.NA);const u=this.getIndexNumValue(r||y.create(0));if(u instanceof h)return u;const c=this.getIndexNumValue(s||y.create(1));return c instanceof h?c:e.isArray()?e.map(l=>this._handleSingleObject(l,t,u,c)):this._handleSingleObject(e,t,u,c)}_handleSingleObject(e,t,r,s){let a;if((s===2||s===-2)&&r!==2){const o=this._getSearchModeValue(s);a=t.binarySearch(e,o)}else if(r===2){const o=t.compare(e,O.EQUALS);let u;if(s!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return h.create(f.NA);a=t.getRowCount()===1?u.column:u.row}else if(r===-1||r===1){const o=t.orderSearch(e,r===1?xe.MAX:xe.MIN,s===-1);if(o==null)return h.create(f.NA);if(o instanceof h)return o;a=t.getRowCount()===1?o.column:o.row}else{const o=t.isEqual(e);let u;if(s!==-1?u=o.getFirstTruePosition():u=o.getLastTruePosition(),u==null)return h.create(f.NA);a=t.getRowCount()===1?u.column:u.row}return a==null?h.create(f.NA):y.create(a+1)}_getSearchModeValue(e){return e===-2?Ge.MAX:Ge.MIN}}class tu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",255);d(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()&&(e=e.toArrayValueObject()),e=e,!e.isArray()){const u=e.convertToNumberObjectValue();return u.isError()?u:t[Math.trunc(+u.getValue())-1]||h.create(f.VALUE)}let r=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;t.forEach((u,c)=>{if(u.isArray()){const l=u;r=Math.max(r,l.getRowCount()),s=Math.max(s,l.getColumnCount())}else r=Math.max(r,1),s=Math.max(s,1)});const a=J(r,s,e,h.create(f.NA)),o=t.map(u=>(u.isReferenceObject()&&(u=u.toArrayValueObject()),J(r,s,u,h.create(f.NA))));return a.map((u,c,l)=>{if(u.isError())return u;const m=u.convertToNumberObjectValue();if(m.isError())return m;const g=o[Math.trunc(+m.getValue())-1];let p=(g==null?void 0:g.get(c,l))||h.create(f.VALUE);return p!=null&&p.isNull()&&(p=y.create(0)),p})}}class ru extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",4);d(this,"needsReferenceObject",!0)}calculate(e,t,r,s){if(e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(s!=null&&s.isError())return s;let a=0,o=0;if(e.isValueObject())a=1,o=1;else if(e.isReferenceObject()){const{startRow:l,endRow:m,startColumn:g,endColumn:p}=e.getRangeData();a=m-l+1,o=p-g+1}else return h.create(f.VALUE);a===1&&o>1&&r==null?(r=t!=null?t:y.create(0),t=y.create(0)):(t=t!=null?t:y.create(0),r=r!=null?r:y.create(0)),s=s!=null?s:y.create(1),t.isReferenceObject()&&(t=t.toArrayValueObject()),r.isReferenceObject()&&(r=r.toArrayValueObject()),s.isReferenceObject()&&(s=s.toArrayValueObject());const u=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1);if(t=t,r=r,s=s,u===1&&c===1)return this._calculateSingleCell(e,t,r,s);{const l=J(u,c,t,h.create(f.NA)),m=J(u,c,r,h.create(f.NA)),g=J(u,c,s,h.create(f.NA));return l.map((p,R,D)=>{const P=m.get(R,D)||ie.create(),w=g.get(R,D)||ie.create(),v=this._calculateSingleCell(e,p,P,w);return v.isReferenceObject()?v.toArrayValueObject().getFirstCell():v})}}_calculateSingleCell(e,t,r,s){if(t.isError())return t;const a=this._getNumberValue(t);if(a===void 0||a<0)return h.create(f.VALUE);if(r.isError())return r;const o=this._getNumberValue(r);if(o===void 0||o<0)return h.create(f.VALUE);if(s.isError())return s;const u=this._getAreaNumberValue(s);return u===void 0||u<1?h.create(f.VALUE):e.isReferenceObject()?this._getReferenceObject(e,a,o,u):e.isValueObject()&&a===1&&o===1?e:h.create(f.REF)}_getNumberValue(e){if(e==null)return 0;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getAreaNumberValue(e){if(e==null)return 1;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getReferenceObject(e,t,r,s){const{startRow:a,endRow:o,startColumn:u,endColumn:c}=e.getRangeData();let l=0,m=0,g=0,p=0;if(t===0?(l=a,m=o):l=m=a+t-1,r===0?(g=u,p=c):g=p=u+r-1,l>o||g>c)return h.create(f.REF);const R={startRow:l,startColumn:g,endRow:m,endColumn:p};return this.createReferenceObject(e,R)}}const Ri=[[$o,Se.ADDRESS],[tu,Se.CHOOSE],[Ho,Se.COLUMN],[Qo,Se.COLUMNS],[ru,Se.INDEX],[No,Se.INDIRECT],[Xo,Se.OFFSET],[Ko,Se.ROW],[qo,Se.ROWS],[Zo,Se.VLOOKUP],[Wo,Se.LOOKUP],[Go,Se.MATCH],[zo,Se.HLOOKUP],[Jo,Se.XLOOKUP],[eu,Se.XMATCH]];class nu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.abs()}}class su extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acos()}}class iu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.acosh()}}class au extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:fs(t)):fs(e)}}function fs(n){let i=n.getValue();if(n.isBoolean()&&(i=i?1:0),!Number.isFinite(i))return h.create(f.VALUE);i=Number(i);let e=Math.atan(1/i);return i<0&&(e+=Math.PI),Number.isNaN(e)?h.create(f.VALUE):y.create(e)}class ou extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:hs(t)):hs(e)}}function hs(n){let i=n.getValue();if(n.isBoolean()&&(i=i?1:0),!Number.isFinite(i))return h.create(f.VALUE);if(i=Number(i),Math.abs(i)<=1)return h.create(f.NUM);const e=1/2*Math.log((i+1)/(i-1));return Number.isNaN(e)?h.create(f.VALUE):y.create(e)}class uu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asin()}}class cu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.asinh()}}class lu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atan()}}class fu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atan2(e))}}class hu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.atanh()}}class mu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r!=null&&r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r!=null&&r.isArray()?r.getColumnCount():1),o=J(s,a,e,h.create(f.NA)),u=J(s,a,t,h.create(f.NA)),c=r?J(s,a,r,h.create(f.NA)):[],l=o.map((m,g,p)=>{let R=u.get(g,p),D=r?c.get(g,p):{};if(m.isString()&&(m=m.convertToNumberObjectValue()),R.isString()&&(R=R.convertToNumberObjectValue()),r&&D.isString()&&(D=D.convertToNumberObjectValue()),m.isString()||R.isString()||r&&D.isString())return h.create(f.VALUE);if(m.isError())return m;if(R.isError())return R;if(r&&D.isError())return D;const P=Math.floor(+m.getValue()),w=Math.floor(+R.getValue()),v=r?Math.floor(+D.getValue()):0;if(P<0||P>=2**53||w<2||w>36||v<0)return h.create(f.NUM);let B=P.toString(w);return r&&B.length<v&&(B=new Array(v-B.length+1).join("0")+B),fe.create(B)});return l.getRowCount()===1&&l.getColumnCount()===1?l.getArrayValue()[0][0]:l}}class du extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.cos()}}class gu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:ms(t)):ms(e)}}function ms(n){let i=n.getValue();if(n.isBoolean()&&(i=i?1:0),!Number.isFinite(i))return h.create(f.VALUE);i=Number(i);const e=Math.cosh(i);return Number.isNaN(e)?h.create(f.VALUE):y.create(e)}class pu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:ds(t))):ds(e)}}function ds(n){let i=n.getValue();return i=Number(i),Math.abs(i)>=2**27?h.create(f.NUM):i===0?h.create(f.DIV_BY_ZERO):n.tan().getReciprocal()}class Ru extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:gs(t))):gs(e)}}function gs(n){let i=n.getValue();return i=Number(i),i===0?h.create(f.DIV_BY_ZERO):n.tanh().getReciprocal()}class _u extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:ps(t))):ps(e)}}function ps(n){let i=n.getValue();return i=Number(i),Math.abs(i)>=2**27?h.create(f.NUM):i===0?h.create(f.DIV_BY_ZERO):n.sin().getReciprocal()}class Eu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.isArray()?e.map(t=>(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:Rs(t))):Rs(e)}}function Rs(n){let i=n.getValue();return i=Number(i),i===0?h.create(f.DIV_BY_ZERO):!Number.isNaN(i)&&!Number.isFinite(Math.sinh(i))?y.create(0):n.sinh().getReciprocal()}var oe=(n=>(n.ABS="ABS",n.ACOS="ACOS",n.ACOSH="ACOSH",n.ACOT="ACOT",n.ACOTH="ACOTH",n.AGGREGATE="AGGREGATE",n.ARABIC="ARABIC",n.ASIN="ASIN",n.ASINH="ASINH",n.ATAN="ATAN",n.ATAN2="ATAN2",n.ATANH="ATANH",n.BASE="BASE",n.CEILING="CEILING",n.CEILING_MATH="CEILING.MATH",n.CEILING_PRECISE="CEILING.PRECISE",n.COMBIN="COMBIN",n.COMBINA="COMBINA",n.COS="COS",n.COSH="COSH",n.COT="COT",n.COTH="COTH",n.CSC="CSC",n.CSCH="CSCH",n.DECIMAL="DECIMAL",n.DEGREES="DEGREES",n.EVEN="EVEN",n.EXP="EXP",n.FACT="FACT",n.FACTDOUBLE="FACTDOUBLE",n.FLOOR="FLOOR",n.FLOOR_MATH="FLOOR.MATH",n.FLOOR_PRECISE="FLOOR.PRECISE",n.GCD="GCD",n.INT="INT",n.ISO_CEILING="ISO.CEILING",n.LCM="LCM",n.LET="LET",n.LN="LN",n.LOG="LOG",n.LOG10="LOG10",n.MDETERM="MDETERM",n.MINVERSE="MINVERSE",n.MMULT="MMULT",n.MOD="MOD",n.MROUND="MROUND",n.MULTINOMIAL="MULTINOMIAL",n.MUNIT="MUNIT",n.ODD="ODD",n.PI="PI",n.POWER="POWER",n.PRODUCT="PRODUCT",n.QUOTIENT="QUOTIENT",n.RADIANS="RADIANS",n.RAND="RAND",n.RANDARRAY="RANDARRAY",n.RANDBETWEEN="RANDBETWEEN",n.ROMAN="ROMAN",n.ROUND="ROUND",n.ROUNDDOWN="ROUNDDOWN",n.ROUNDUP="ROUNDUP",n.SEC="SEC",n.SECH="SECH",n.SERIESSUM="SERIESSUM",n.SEQUENCE="SEQUENCE",n.SIGN="SIGN",n.SIN="SIN",n.SINH="SINH",n.SQRT="SQRT",n.SQRTPI="SQRTPI",n.SUBTOTAL="SUBTOTAL",n.SUM="SUM",n.SUMIF="SUMIF",n.SUMIFS="SUMIFS",n.SUMPRODUCT="SUMPRODUCT",n.SUMSQ="SUMSQ",n.SUMX2MY2="SUMX2MY2",n.SUMX2PY2="SUMX2PY2",n.SUMXMY2="SUMXMY2",n.TAN="TAN",n.TANH="TANH",n.TRUNC="TRUNC",n))(oe||{});class Cu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.mod(t))}}class yu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:e.pow(t))}}class Du extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(1);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=this._multiplyArray(s)),s.isError())return s;if(t=t.multiply(s),t.isError())return t}}return t}_multiplyArray(e){let t=y.create(1);return e.iterator(r=>{if(r==null||r.isString()||r.isBoolean()||r.isNull())return!0;if(r.isError())return t=r,!1;t=t.multiply(r)}),t}}class bu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.sin()}}class Su extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.sinh()}}class Au extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",255);d(this,"needsReferenceObject",!0)}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()){const r=[];return e.iterator((s,a,o)=>{r[a]==null&&(r[a]=[]),r[a][o]=this._handleSingleObject(s,...t)}),Rt(r,r.length,r[0].length)}return this._handleSingleObject(e,...t)}_handleSingleObject(e,...t){const r=this._getIndexNumValue(e);let s;if(r instanceof h)return r;switch(r){case 1:s=this._average(!1,...t);break;case 2:s=this._count(!1,...t);break;case 3:s=this._counta(!1,...t);break;case 4:s=this._max(!1,...t);break;case 5:s=this._min(!1,...t);break;case 6:s=this._product(!1,...t);break;case 7:s=this._stdev(!1,...t);break;case 8:s=this._stdevp(!1,...t);break;case 9:s=this._sum(!1,...t);break;case 10:s=this._var(!1,...t);break;case 11:s=this._varp(!1,...t);break;case 101:s=this._average(!0,...t);break;case 102:s=this._count(!0,...t);break;case 103:s=this._counta(!0,...t);break;case 104:s=this._max(!0,...t);break;case 105:s=this._min(!0,...t);break;case 106:s=this._product(!0,...t);break;case 107:s=this._stdev(!0,...t);break;case 108:s=this._stdevp(!0,...t);break;case 109:s=this._sum(!0,...t);break;case 110:s=this._var(!0,...t);break;case 111:s=this._varp(!0,...t);break;default:s=h.create(f.VALUE)}return s}_getIndexNumValue(e){const t=e?Number(e.getValue()):0;if(Number.isNaN(t))return h.create(f.VALUE);const r=Math.floor(t);return r>=1&&r<=11||r>=101&&r<=111?r:h.create(f.VALUE)}_average(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.mean()}_count(e,...t){let r=y.create(0);for(let s=0;s<t.length;s++){const a=t[s];if(!a.isReferenceObject())return h.create(f.VALUE);const o=a.getRowData();a.iterator((u,c)=>{if(e&&this._isRowHidden(o,c))return!0;u!=null&&u.isNumber()&&(r=r.plusBy(1))})}return r}_counta(e,...t){let r=y.create(0);for(let s=0;s<t.length;s++){const a=t[s];if(!a.isReferenceObject())return h.create(f.VALUE);const o=a.getRowData();a.iterator((u,c)=>{if(e&&this._isRowHidden(o,c)||u==null||u.isNull())return!0;r=r.plusBy(1)})}return r}_max(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?y.create(0):r.max()}_min(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?y.create(0):r.min()}_product(e,...t){const r=this._flattenRefArray(e,...t);if(r.isError())return r;if(this._isBlankArrayObject(r))return y.create(0);let s=y.create(1);return r.iterator(a=>{s=s.multiply(a)}),s}_stdev(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?h.create(f.DIV_BY_ZERO):r.std(1)}_stdevp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?h.create(f.DIV_BY_ZERO):r.std()}_sum(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.sum()}_var(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?h.create(f.DIV_BY_ZERO):r.var(1)}_varp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?h.create(f.DIV_BY_ZERO):r.var()}_flattenRefArray(e,...t){const r=[];r[0]=[];for(let s=0;s<t.length;s++){const a=t[s];if(a.isError())return a;if(!a.isReferenceObject())return h.create(f.VALUE);const o=a.getRowData();let u;if(a.iterator((c,l)=>{if(e&&this._isRowHidden(o,l)||c==null||c.isNull()||c.isString()||c.isBoolean())return!0;if(c.isError())return u=c,!1;r[0].push(c)}),u!=null&&u.isError())return u}return Rt(r,1,r[0].length)}_isRowHidden(e,t){const r=e[t];return r?r.hd===b.BooleanNumber.TRUE:!1}_isBlankArrayObject(e){return e.getArrayValue()[0].length===0}}class Pu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){let s=e[r];if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&(s=s.sum()),t=t.plus(s),t.isError())return t}return t}}class Lu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:!e.isArray()||r&&!r.isArray()?h.create(f.VALUE):t.isArray()?t.map(s=>this._handleSingleObject(e,s,r)):this._handleSingleObject(e,t,r)}_handleSingleObject(e,t,r){let s=Br(e,t);const[,a]=zt(`${t.getValue()}`);s=Tr(s,e,a);const o=r?r.slice([0,e.getRowCount()],[0,e.getColumnCount()]):e;return o?o.pick(s).sum():h.create(f.VALUE)}}class xu extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(!e.isArray()||t.length<2||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return h.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Nt(t),a=Wt(t,e,r,s);if(a)return a;const o=Gt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(a=>a.map(o=>e.pick(o).sum())),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(s)}}class Vu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(e.isArray()||(e=me.create({calculateValueList:[[e]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),t.length>0){const r=e.getRowCount(),s=e.getColumnCount(),a=[];for(let u=0;u<r;u++){const c=[];for(let l=0;l<s;l++){const m=e.get(u,l);if(m.isError())return m;const g=m.getValue();!g||!b.isRealNum(g)?c.push(0):c.push(+g)}a.push(c)}for(let u=0;u<t.length;u++){if(t[u].isError())return t[u];let c=1,l=1;if(t[u].isArray()&&(c=t[u].getRowCount(),l=t[u].getColumnCount()),c!==r||l!==s)return h.create(f.VALUE);for(let m=0;m<r;m++){const g=[];for(let p=0;p<s;p++){let R=t[u];if(t[u].isArray()&&(R=t[u].get(m,p)),R.isError())return R;const D=R.getValue();!D||!b.isRealNum(D)?g.push(0):g.push(+D*a[m][p])}a[m]=g}}const o=a.reduce((u,c)=>u.concat(c)).reduce((u,c)=>u+c,0);return y.create(o)}else return e.sum()}}class wu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tan()}}class Uu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isString()&&(e=e.convertToNumberObjectValue()),e.isError()?e:e.tanh()}}const _i=[[nu,oe.ABS],[su,oe.ACOS],[iu,oe.ACOSH],[au,oe.ACOT],[ou,oe.ACOTH],[uu,oe.ASIN],[cu,oe.ASINH],[lu,oe.ATAN],[fu,oe.ATAN2],[hu,oe.ATANH],[mu,oe.BASE],[du,oe.COS],[gu,oe.COSH],[pu,oe.COT],[Ru,oe.COTH],[_u,oe.CSC],[Eu,oe.CSCH],[Cu,oe.MOD],[yu,oe.POWER],[Du,oe.PRODUCT],[bu,oe.SIN],[Su,oe.SINH],[Au,oe.SUBTOTAL],[Pu,oe.SUM],[Lu,oe.SUMIF],[xu,oe.SUMIFS],[Vu,oe.SUMPRODUCT],[wu,oe.TAN],[Uu,oe.TANH]];class Ou extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2);d(this,"_compareType",O.EQUALS)}setCompareType(e){this._compareType=e}calculate(e,t){return e.isError()?e:t.isError()?t:e.compare(t,this._compareType)}}class bn extends qe{constructor(e){super("");d(this,"_values",[]);this._values=e}static create(e){return new bn(e)}isCube(){return!0}sum(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.sum())}),e}max(){let e=y.create(Number.NEGATIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isLessThan(r)&&(e=r)}),e}min(){let e=y.create(Number.POSITIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isGreaterThan(r)&&(e=r)}),e}count(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.count())}),e}countA(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.countA())}),e}countBlank(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.countBlank())}),e}}class Mu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const s=e[r];if(s.isError())return s;if(!s.isArray())return h.create(f.VALUE);t.push(s)}return bn.create(t)}}class Fu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:!t.isArray()&&t.getValue()===0?h.create(f.DIV_BY_ZERO):e.divided(t)}}var Pe=(n=>(n.COMPARE="COMPARE",n.DIVIDED="DIVIDED",n.MINUS="MINUS",n.MULTIPLY="MULTIPLY",n.PLUS="PLUS",n.UNION="UNION",n.CUBE="CUBE",n))(Pe||{});class vu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.minus(t)}}class Bu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.multiply(t)}}class Tu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.plus(t)}}const Ei=[[Ou,Pe.COMPARE],[Fu,Pe.DIVIDED],[vu,Pe.MINUS],[Bu,Pe.MULTIPLY],[Tu,Pe.PLUS],[Mu,Pe.CUBE]];class ku extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let s=0;s<e.length;s++){let a=e[s];if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()){if(t=t.plus(a.sum()),t.isError())return t;r=r.plus(a.count())}else a.isNull()||(t=t.plus(a),r=r.plus(y.create(1)))}return t.divided(r)}}class Iu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){const s=e[r];s.isError()||(s.isArray()?t=t.plus(s.count()):s.isString()?s.convertToNumberObjectValue().isError()||(t=t.plus(y.create(1))):s.isNull()||(t=t.plus(y.create(1))))}return t}}class ju extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){let s=e[r];if(s.isError()){t=t.plus(y.create(1));continue}s.isArray()?(s=s.countA(),t=t.plus(s)):s.isNull()||(t=t.plus(y.create(1)))}return t}}var le=(n=>(n.AVEDEV="AVEDEV",n.AVERAGE="AVERAGE",n.AVERAGEA="AVERAGEA",n.AVERAGEIF="AVERAGEIF",n.AVERAGEIFS="AVERAGEIFS",n.BETA_DIST="BETA.DIST",n.BETA_INV="BETA.INV",n.BINOM_DIST="BINOM.DIST",n.BINOM_DIST_RANGE="BINOM.DIST.RANGE",n.BINOM_INV="BINOM.INV",n.CHISQ_DIST="CHISQ.DIST",n.CHISQ_DIST_RT="CHISQ.DIST.RT",n.CHISQ_INV="CHISQ.INV",n.CHISQ_INV_RT="CHISQ.INV.RT",n.CHISQ_TEST="CHISQ.TEST",n.CONFIDENCE_NORM="CONFIDENCE.NORM",n.CONFIDENCE_T="CONFIDENCE.T",n.CORREL="CORREL",n.COUNT="COUNT",n.COUNTA="COUNTA",n.COUNTBLANK="COUNTBLANK",n.COUNTIF="COUNTIF",n.COUNTIFS="COUNTIFS",n.COVARIANCE_P="COVARIANCE.P",n.COVARIANCE_S="COVARIANCE.S",n.DEVSQ="DEVSQ",n.EXPON_DIST="EXPON.DIST",n.F_DIST="F.DIST",n.F_DIST_RT="F.DIST.RT",n.F_INV="F.INV",n.F_INV_RT="F.INV.RT",n.F_TEST="F.TEST",n.FISHER="FISHER",n.FISHERINV="FISHERINV",n.FORECAST="FORECAST",n.FORECAST_ETS="FORECAST.ETS",n.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",n.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",n.FORECAST_ETS_STAT="FORECAST.ETS.STAT",n.FORECAST_LINEAR="FORECAST.LINEAR",n.FREQUENCY="FREQUENCY",n.GAMMA="GAMMA",n.GAMMA_DIST="GAMMA.DIST",n.GAMMA_INV="GAMMA.INV",n.GAMMALN="GAMMALN",n.GAMMALN_PRECISE="GAMMALN.PRECISE",n.GAUSS="GAUSS",n.GEOMEAN="GEOMEAN",n.GROWTH="GROWTH",n.HARMEAN="HARMEAN",n.HYPGEOM_DIST="HYPGEOM.DIST",n.INTERCEPT="INTERCEPT",n.KURT="KURT",n.LARGE="LARGE",n.LINEST="LINEST",n.LOGEST="LOGEST",n.LOGNORM_DIST="LOGNORM.DIST",n.LOGNORM_INV="LOGNORM.INV",n.MAX="MAX",n.MAXA="MAXA",n.MAXIFS="MAXIFS",n.MEDIAN="MEDIAN",n.MIN="MIN",n.MINA="MINA",n.MINIFS="MINIFS",n.MODE_MULT="MODE.MULT",n.MODE_SNGL="MODE.SNGL",n.NEGBINOM_DIST="NEGBINOM.DIST",n.NORM_DIST="NORM.DIST",n.NORM_INV="NORM.INV",n.NORM_S_DIST="NORM.S.DIST",n.NORM_S_INV="NORM.S.INV",n.PEARSON="PEARSON",n.PERCENTILE_EXC="PERCENTILE.EXC",n.PERCENTILE_INC="PERCENTILE.INC",n.PERCENTRANK_EXC="PERCENTRANK.EXC",n.PERCENTRANK_INC="PERCENTRANK.INC",n.PERMUT="PERMUT",n.PERMUTATIONA="PERMUTATIONA",n.PHI="PHI",n.POISSON_DIST="POISSON.DIST",n.PROB="PROB",n.QUARTILE_EXC="QUARTILE.EXC",n.QUARTILE_INC="QUARTILE.INC",n.RANK_AVG="RANK.AVG",n.RANK_EQ="RANK.EQ",n.RSQ="RSQ",n.SKEW="SKEW",n.SKEW_P="SKEW.P",n.SLOPE="SLOPE",n.SMALL="SMALL",n.STANDARDIZE="STANDARDIZE",n.STDEV_P="STDEV.P",n.STDEV_S="STDEV.S",n.STDEVA="STDEVA",n.STDEVPA="STDEVPA",n.STEYX="STEYX",n.T_DIST="T.DIST",n.T_DIST_2T="T.DIST.2T",n.T_DIST_RT="T.DIST.RT",n.T_INV="T.INV",n.T_INV_2T="T.INV.2T",n.T_TEST="T.TEST",n.TREND="TREND",n.TRIMMEAN="TRIMMEAN",n.VAR_P="VAR.P",n.VAR_S="VAR.S",n.VARA="VARA",n.VARPA="VARPA",n.WEIBULL_DIST="WEIBULL.DIST",n.Z_TEST="Z.TEST",n))(le||{});class $u extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=s.max()),s.isError())return s;t=this._validator(t,s)}}return t.getValue()===Number.NEGATIVE_INFINITY?y.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class Yu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isArray()&&(s=s.min()),s.isError())return s;t=this._validator(t,s)}}return t.getValue()===Number.POSITIVE_INFINITY?y.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class Hu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std(1)}}class Qu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std()}}class zu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var(1)}}class Nu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var()}}class Wu extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",255)}calculate(e,...t){if(e.isError())return h.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return h.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Nt(t),a=Wt(t,e,r,s);if(a)return a;const o=Gt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(a=>a.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?me.create("0"):u.max()})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(s)}}class Gu extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let s=0;s<e.length;s++){let a=e[s];if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),a.isError())return a;if(a.isArray()){if(a.iterator(o=>{if(o==null||o.isNull())return!0;if(o.isString()&&(o=o.convertToNumberObjectValue(),o.isError()&&(o=y.create(0))),o.isBoolean()&&(o=o.convertToNumberObjectValue()),o.isError())return t=o,!1;t=t.plus(o),r=r.plus(y.create(1))}),t.isError())return t}else a.isNull()||(t=t.plus(a),r=r.plus(y.create(1)))}return t.divided(r)}}class Xu extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",255)}calculate(e,...t){if(e.isError())return h.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return h.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Nt(t),a=Wt(t,e,r,s);if(a)return a;const o=Gt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(a=>a.map(o=>{const u=e.pick(o);return u.getColumnCount()===0?me.create("0"):u.min()})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(s)}}class Ku extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",3);d(this,"needsReferenceObject",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:(e.isReferenceObject()&&(e=e.toArrayValueObject()),e.isArray()||(e=Rt([[e]],1,1)),t.isReferenceObject()&&(t=t.toArrayValueObject()),r&&!(r!=null&&r.isReferenceObject())?h.create(f.NA):(t=t,t.isArray()?t.map(s=>this._handleSingleObject(e,s,r)):this._handleSingleObject(e,t,r)))}_handleSingleObject(e,t,r){let s=Br(e,t);const[,a]=zt(`${t.getValue()}`);s=Tr(s,e,a);let o=r?this._createRangeReferenceObject(r,e):e;if(!o)return h.create(f.VALUE);if(o.isError())return o;o.isReferenceObject()&&(o=o.toArrayValueObject()),o=o;const u=o.pick(s),c=u.sum(),l=u.count();return c.divided(l)}_createRangeReferenceObject(e,t){const r=e.getRowCount(),s=e.getColumnCount(),a=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1;if(r===a&&s===o)return e;const{startRow:u,startColumn:c}=e.getRangeData(),l={startRow:u,startColumn:c,endRow:u+a-1,endColumn:c+o-1};return this.createReferenceObject(e,l)}}class qu extends L{constructor(){super(...arguments);d(this,"minParams",3);d(this,"maxParams",255)}calculate(e,...t){if(e.isError())return h.create(f.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return h.create(f.VALUE);const{maxRowLength:r,maxColumnLength:s}=Nt(t),a=Wt(t,e,r,s);if(a)return a;const o=Gt(t,r,s,!0);return this._aggregateResults(e,o)}_aggregateResults(e,t){const r=t.map(a=>a.map(o=>{const u=e.pick(o),c=u.sum(),l=u.count();return c.divided(l)})),s={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(s)}}class Zu extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){return e.isError()||t.isError()?h.create(f.NA):e.isArray()?t.isArray()?t.mapValue(r=>this._handleSingleObject(e,r)):this._handleSingleObject(e,t):h.create(f.VALUE)}_handleSingleObject(e,t){let r=Br(e,t);const[,s]=zt(`${t.getValue()}`);r=Tr(r,e,s);const a=e.pick(r);return this._countA(a)}_countA(e){let t=y.create(0);return e.iterator(r=>{if(r==null)return!0;t=t.plusBy(1)}),t}}class Ju extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",255)}calculate(...e){if(e.length%2!==0||e.some((o,u)=>u%2===0&&!o.isArray()))return h.create(f.VALUE);const{maxRowLength:t,maxColumnLength:r}=Nt(e),s=Wt(e,e[0],t,r);if(s)return s;const a=Gt(e,t,r,!0);return this._aggregateResults(a)}_aggregateResults(e){const t=e.map(s=>s.map(a=>ec(a))),r={calculateValueList:t,rowCount:t.length,columnCount:t[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return me.create(r)}}function ec(n){let i=0;return n.iterator(e=>{e!=null&&e.isBoolean()&&e.getValue()===!0&&i++}),y.create(i)}class tc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.getValue()===""||e.isNull()?y.create(1):e.isArray()?e.countBlank():y.create(0)}}class rc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&s.iterator(a=>{if((a==null||a.isNull()||a.isString())&&(a=y.create(0)),a.isBoolean()&&(a=a.convertToNumberObjectValue()),a.isError())return t=a,!1;t=this._validator(t,a)}),t.isError())return t;t=this._validator(t,s)}}return t.getValue()===Number.POSITIVE_INFINITY?y.create(0):t}_validator(e,t){return e.isGreaterThan(t).getValue()&&(e=t),e}}class nc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let s=e[r];if(!s.isNull()){if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()&&s.iterator(a=>{if((a==null||a.isNull()||a.isString())&&(a=y.create(0)),a.isBoolean()&&(a=a.convertToNumberObjectValue()),a.isError())return t=a,!1;t=this._validator(t,a)}),t.isError())return t;t=this._validator(t,s)}}return t.getValue()===Number.NEGATIVE_INFINITY?y.create(0):t}_validator(e,t){return e.isLessThan(t).getValue()&&(e=t),e}}class sc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(u=ic(u),u.isError())return u;if(e[o]=u,t=t.plus(u.sum()),t.isError())return t;r=r.plus(u.count())}else u.isNull()||(t=t.plus(u),r=r.plus(y.create(1)))}if(r.getValue()===0)return h.create(f.NUM);const s=t.divided(r);if(s.isError())return s;let a=y.create(0);for(let o=0;o<e.length;o++){let u=e[o];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(a=a.plus(u.minus(s).abs().sum()),a.isError())return a}else u.isNull()||(a=a.plus(u.minus(s).abs()))}return a.divided(r)}}function ic(n){const i=[];i[0]=[];let e=null;return n.iterator((t,r,s)=>{if(t!=null&&t.isError())return e=t,!1;t!=null&&t.isNumber()&&i[0].push(t)}),e||Rt(i,1,i[0].length)}const Ci=[[sc,le.AVEDEV],[ku,le.AVERAGE],[Gu,le.AVERAGEA],[Ku,le.AVERAGEIF],[qu,le.AVERAGEIFS],[Iu,le.COUNT],[ju,le.COUNTA],[tc,le.COUNTBLANK],[Zu,le.COUNTIF],[Ju,le.COUNTIFS],[$u,le.MAX],[nc,le.MAXA],[Wu,le.MAXIFS],[Yu,le.MIN],[rc,le.MINA],[Xu,le.MINIFS],[qs,le.STDEV_P],[Zs,le.STDEV_S],[Hu,le.STDEVA],[Qu,le.STDEVPA],[Js,le.VAR_P],[ei,le.VAR_S],[zu,le.VARA],[Nu,le.VARPA]];class ac extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t=0,r=0;e.forEach(a=>{if(a.isArray()){const o=a;t=Math.max(t,o.getRowCount()),r=Math.max(r,o.getColumnCount())}else t=Math.max(t,1),r=Math.max(r,1)});let s=null;for(const a of e)s=J(t,r,a,h.create(f.NA)).mapValue((u,c,l)=>{const m=s&&s.get(c,l);if(m!=null&&m.isError())return m;if(u.isError())return u;let g=m==null?void 0:m.getValue(),p=u==null?void 0:u.getValue();m!=null&&m.isBoolean()&&(g=`${g}`.toLocaleUpperCase()),u!=null&&u.isBoolean()&&(p=`${p}`.toLocaleUpperCase());const R=m!=null&&m.isNull()?"":g!=null?g:"",D=u!=null&&u.isNull()?"":p!=null?p:"";return fe.create(`${R}${D}`)});return s||h.create(f.VALUE)}}var We=(n=>(n.ASC="ASC",n.ARRAYTOTEXT="ARRAYTOTEXT",n.BAHTTEXT="BAHTTEXT",n.CHAR="CHAR",n.CLEAN="CLEAN",n.CODE="CODE",n.CONCAT="CONCAT",n.CONCATENATE="CONCATENATE",n.DBCS="DBCS",n.DOLLAR="DOLLAR",n.EXACT="EXACT",n.FIND="FIND",n.FINDB="FINDB",n.FIXED="FIXED",n.LEFT="LEFT",n.LEFTB="LEFTB",n.LEN="LEN",n.LENB="LENB",n.LOWER="LOWER",n.MID="MID",n.MIDB="MIDB",n.NUMBERVALUE="NUMBERVALUE",n.PHONETIC="PHONETIC",n.PROPER="PROPER",n.REPLACE="REPLACE",n.REPLACEB="REPLACEB",n.REPT="REPT",n.RIGHT="RIGHT",n.RIGHTB="RIGHTB",n.SEARCH="SEARCH",n.SEARCHB="SEARCHB",n.SUBSTITUTE="SUBSTITUTE",n.T="T",n.TEXT="TEXT",n.TEXTAFTER="TEXTAFTER",n.TEXTBEFORE="TEXTBEFORE",n.TEXTJOIN="TEXTJOIN",n.TEXTSPLIT="TEXTSPLIT",n.TRIM="TRIM",n.UNICHAR="UNICHAR",n.UNICODE="UNICODE",n.UPPER="UPPER",n.VALUE="VALUE",n.VALUETOTEXT="VALUETOTEXT",n.CALL="CALL",n.EUROCONVERT="EUROCONVERT",n.REGISTER_ID="REGISTER.ID",n))(We||{});class oc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return y.create(0);if(e.isNumber()){const t=e.getValue(),r=Hs(t).toString();return y.create(r.length)}if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString();return y.create(t.length)}return h.create(f.VALUE)}}function uc(n){let i=0;for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);t>=12352&&t<=12543||t>=19968&&t<=40959||t>=44032&&t<=55215?i+=2:i+=1}return i}class cc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return y.create(0);if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString(),r=uc(t);return y.create(r)}return h.create(f.VALUE)}}const lc=(n,i)=>Vt.format(n,i);class fc extends L{constructor(){super(...arguments);d(this,"minParams",2);d(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),a=J(r,s,e),o=J(r,s,t);return a.map((u,c,l)=>{if(u.isError()||u.isString()||u.isBoolean())return u;let m=o.get(c,l)||fe.create(" ");if(m.isError())return m;if(m.isBoolean())return h.create(f.VALUE);m.isNull()&&(m=fe.create(" "));const g=`${m.getValue()}`;u.isNull()&&(u=y.create(0));const p=u.getValue(),R=lc(g,p);return fe.create(R)})}}class hc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return fe.create("");if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString().toLowerCase();return fe.create(t)}return h.create(f.VALUE)}}class mc extends L{constructor(){super(...arguments);d(this,"minParams",1);d(this,"maxParams",255)}calculate(...e){let t="",r=null;for(const s of e)if(s.isArray()){if(s.iterator(a=>{if(a==null||a.isNull())return!0;if(a.isError())return r=a,!1;a.isBoolean()?t+=`${a.getValue()}`.toLocaleUpperCase():(a.isString()||a.isNumber())&&(t+=a.getValue())}),r)return r}else!s.isError()&&!s.isNull()&&(t+=s.getValue());return fe.create(t)}}const yi=[[mc,We.CONCAT],[ac,We.CONCATENATE],[oc,We.LEN],[cc,We.LENB],[fc,We.TEXT],[hc,We.LOWER]],Di=[];var bi=(n=>n)(bi||{});const Si=[];var Ai=(n=>(n.ENCODEURL="ENCODEURL",n.FILTERXML="FILTERXML",n.WEBSERVICE="WEBSERVICE",n))(Ai||{});function dc(n,i,e,t,r,s,a){var m;const o=(a==null?void 0:a.f)||"",u=(a==null?void 0:a.si)||"",c=b.isFormulaString(o),l=b.isFormulaId(u);if(c&&l)n.setValue(r,s,{f:o,si:u}),e.set(u,{f:o,r,c:s}),i.setValue(r,s,{f:o,si:u});else if(c&&!l)n.setValue(r,s,{f:o}),i.setValue(r,s,{f:o});else if(!c&&l)n.setValue(r,s,{f:"",si:u});else if(!c&&!l&&n.getValue(r,s)){const g=n.getValue(r,s),p=(g==null?void 0:g.f)||"",R=(g==null?void 0:g.si)||"";if(b.isFormulaString(p)&&b.isFormulaId(R)){const D=(m=e.get(R))==null?void 0:m.f;D?t.set(R,D):t.set(R,p)}n.realDeleteValue(r,s),i.setValue(r,s,null)}}function gc(n,i,e,t){const r=n==null?void 0:n.getValue(e,t);if(r==null)return!0;const{startRow:s,startColumn:a,endRow:o,endColumn:u}=r;for(let c=s;c<=o;c++)for(let l=a;l<=u;l++)i.realDeleteValue(c,l)}var pc=Object.defineProperty,Rc=Object.getOwnPropertyDescriptor,_c=(n,i,e,t)=>{for(var r=t>1?void 0:t?Rc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&pc(i,e,r),r},_s=(n,i)=>(e,t)=>i(e,t,n);exports.FormulaDataModel=class extends b.Disposable{constructor(e,t){super();d(this,"_formulaData",{});d(this,"_arrayFormulaRange",{});d(this,"_arrayFormulaCellData",{});this._univerInstanceService=e,this._lexerTreeBuilder=t,this.initFormulaData()}clearPreviousArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{var c,l,m,g;const a=r[s],o=(l=(c=this._arrayFormulaRange)==null?void 0:c[t])==null?void 0:l[s];if(o==null)return!0;let u=new b.ObjectMatrix;((m=this._arrayFormulaCellData[t])==null?void 0:m[s])!=null&&(u=new b.ObjectMatrix((g=this._arrayFormulaCellData[t])==null?void 0:g[s])),a.forValue((p,R)=>{var X;const D=(X=o==null?void 0:o[p])==null?void 0:X[R];if(D==null)return!0;const{startRow:P,startColumn:w,endRow:v,endColumn:B}=D;for(let ue=P;ue<=v;ue++)for(let ge=w;ge<=B;ge++)u.setValue(ue,ge,null)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][s]=u.getData())})})}mergeArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]==null&&(this._arrayFormulaRange[t]={}),this._arrayFormulaCellData[t]==null&&(this._arrayFormulaCellData[t]={}),Object.keys(r).forEach(s=>{var c,l;const a=r[s],o=new b.ObjectMatrix((c=this._arrayFormulaRange[t])==null?void 0:c[s]),u=new b.ObjectMatrix((l=this._arrayFormulaCellData[t])==null?void 0:l[s]);a.forValue((m,g)=>{const p=o==null?void 0:o.getValue(m,g);if(p==null)return!0;const{startRow:R,startColumn:D,endRow:P,endColumn:w}=p;for(let v=R;v<=P;v++)for(let B=D;B<=w;B++)u.setValue(v,B,null)}),a.forValue((m,g,p)=>{u.setValue(m,g,p)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][s]=u.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(e){this._formulaData=e}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(e){this._arrayFormulaRange=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}mergeArrayFormulaRange(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]||(this._arrayFormulaRange[t]={}),Object.keys(r).forEach(s=>{var u;const a=new b.ObjectMatrix(r[s]),o=new b.ObjectMatrix((u=this._arrayFormulaRange[t])==null?void 0:u[s]);a.forValue((c,l,m)=>{o.setValue(c,l,m)}),this._arrayFormulaRange[t]&&(this._arrayFormulaRange[t][s]=o.getData())})})}mergeFormulaData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r!==void 0){if(r===null){delete this._formulaData[t];return}this._formulaData[t]||(this._formulaData[t]={}),Object.keys(r).forEach(s=>{var c,l;const a=r[s];if(a===void 0)return;if(a===null){(c=this._formulaData[t])==null||delete c[s];return}const o=new b.ObjectMatrix(a),u=new b.ObjectMatrix(((l=this._formulaData[t])==null?void 0:l[s])||{});o.forValue((m,g,p)=>{p==null?u.realDeleteValue(m,g):u.setValue(m,g,p)}),this._formulaData[t][s]=u.clone()})}})}deleteArrayFormulaRange(e,t,r,s){var u;const a=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(a==null)return;const o=new b.ObjectMatrix(a);o.getValue(r,s)&&(o.realDeleteValue(r,s),this._arrayFormulaRange[e]&&(this._arrayFormulaRange[e][t]=o.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET).length===0)return;const t=this._univerInstanceService.getCurrentUnitForType(b.UniverInstanceType.UNIVER_SHEET),r=t.getUnitId();this._formulaData[r]={},t.getSheets().forEach(a=>{const o=a.getCellMatrix(),u=a.getSheetId();Pi(this._formulaData,r,u,o)})}getCalculateData(){const e=this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET),t={},r={};for(const s of e){const a=s.getUnitId(),o=s.getSheets(),u={},c={};for(const l of o){const m=l.getSheetId(),g=l.getConfig();u[m]={cellData:new b.ObjectMatrix(g.cellData),rowCount:g.rowCount,columnCount:g.columnCount,rowData:g.rowData,columnData:g.columnData},c[l.getName()]=l.getSheetId()}t[a]=u,r[a]=c}return{allUnitData:t,unitSheetNameMap:r}}updateFormulaData(e,t,r){const s=new b.ObjectMatrix(r),a=this.getFormulaIdMap(e,t),o=new Map,u=this._formulaData;u[e]==null&&(u[e]={});const c=u[e];c[t]==null&&(c[t]={});const l=new b.ObjectMatrix(c[t]||{}),m=new b.ObjectMatrix;return s.forValue((g,p,R)=>{dc(l,m,a,o,g,p,R)}),l.forValue((g,p,R)=>{const D=(R==null?void 0:R.f)||"",P=(R==null?void 0:R.si)||"";if(b.isFormulaId(P)){const w=a.get(P),v=o.get(P);if(w&&!b.isFormulaString(D)){const B=w.f,X=p-w.c,ue=g-w.r;l.setValue(g,p,{f:B,si:P,x:X,y:ue}),m.setValue(g,p,{f:B,si:P,x:X,y:ue})}else if(typeof v=="string"){const B=(R==null?void 0:R.x)||0,X=(R==null?void 0:R.y)||0,ue=this._lexerTreeBuilder.moveFormulaRefOffset(v,B,X);o.set(P,{r:g,c:p,f:ue}),l.setValue(g,p,{f:ue,si:P}),m.setValue(g,p,{f:ue,si:P})}else if(typeof v=="object"){const B=p-v.c,X=g-v.r;l.setValue(g,p,{f:v.f,si:P,x:B,y:X}),m.setValue(g,p,{f:v.f,si:P,x:B,y:X})}}}),m.clone()}updateArrayFormulaRange(e,t,r){var u;const s=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(!s)return;const a=new b.ObjectMatrix(s);new b.ObjectMatrix(r).forValue((c,l,m)=>{a.realDeleteValue(c,l)})}updateArrayFormulaCellData(e,t,r){var l,m;const s=(l=this._arrayFormulaRange[e])==null?void 0:l[t];if(!s)return;const a=new b.ObjectMatrix(s),o=(m=this._arrayFormulaCellData[e])==null?void 0:m[t];if(!o)return;const u=new b.ObjectMatrix(o);new b.ObjectMatrix(r).forValue((g,p,R)=>{gc(a,u,g,p)})}getFormulaItemBySId(e,t,r){const s=this._formulaData;if(s[r]==null)return null;const a=s[r];if((a==null?void 0:a[t])==null)return null;const o=new b.ObjectMatrix(a[t]||{});let u=null;return o.forValue((c,l,m)=>{if(m==null)return!0;const{f:g,si:p,x:R=0,y:D=0}=m;if(p===e&&g.length>0&&R===0&&D===0)return u=m,!1}),u}getFormulaDataItem(e,t,r,s){var a,o,u,c;return(c=(u=(o=(a=this._formulaData)==null?void 0:a[s])==null?void 0:o[r])==null?void 0:u[e])==null?void 0:c[t]}getFormulaIdMap(e,t){const r=new Map,s=this._formulaData;if(s[e]==null)return r;const a=s[e];return(a==null?void 0:a[t])==null||new b.ObjectMatrix(a[t]||{}).forValue((u,c,l)=>{const m=(l==null?void 0:l.f)||"",g=(l==null?void 0:l.si)||"",p=(l==null?void 0:l.x)||0,R=(l==null?void 0:l.y)||0;b.isFormulaString(m)&&b.isFormulaId(g)&&p===0&&R===0&&r.set(g,{f:m,r:u,c})}),r}getFormulaStringByCell(e,t,r,s){const a=this.getFormulaDataItem(e,t,r,s);if(a==null)return null;const{f:o,si:u,x:c=0,y:l=0}=a;if(u!=null&&(c!==0||l!==0)){let m="";if(o.length>0)m=o;else{const g=this.getFormulaItemBySId(u,r,s);if(g==null||g.f.length===0)return null;m=g.f}return m=this._lexerTreeBuilder.moveFormulaRefOffset(m,c,l),m}return b.isFormulaString(o)?o:null}};exports.FormulaDataModel=_c([_s(0,b.IUniverInstanceService),_s(1,q.Inject(Or))],exports.FormulaDataModel);function Pi(n,i,e,t){const r=new Map,s=new b.ObjectMatrix;t.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",m=(c==null?void 0:c.si)||"",g=b.isFormulaString(l),p=b.isFormulaId(m);g&&p?(s.setValue(o,u,{f:l,si:m}),r.set(m,{f:l,r:o,c:u})):g&&!p?s.setValue(o,u,{f:l}):!g&&p&&s.setValue(o,u,{f:"",si:m})}),s.forValue((o,u,c)=>{const l=(c==null?void 0:c.f)||"",m=(c==null?void 0:c.si)||"";if(b.isFormulaId(m)&&!b.isFormulaString(l)){const g=r.get(m);if(g){const p=g.f,R=u-g.c,D=o-g.r;s.setValue(o,u,{f:p,si:m,x:R,y:D})}else s.realDeleteValue(o,u)}}),n[i]||(n[i]={});const a=s.clone();return n[i][e]=a,{[i]:{[e]:a}}}const yr={id:"formula.mutation.set-array-formula-data",type:b.CommandType.MUTATION,handler:(n,i)=>!0},Sn={id:"formula.mutation.set-formula-calculation-start",type:b.CommandType.MUTATION,handler:()=>!0},An={id:"formula.mutation.set-formula-calculation-stop",type:b.CommandType.MUTATION,handler:()=>!0},Dr={id:"formula.mutation.set-formula-calculation-notification",type:b.CommandType.MUTATION,handler:()=>!0},Pn={id:"formula.mutation.set-formula-calculation-result",type:b.CommandType.MUTATION,handler:()=>!0},kr={id:"formula.mutation.set-formula-data",type:b.CommandType.MUTATION,handler:(n,i)=>!0};class Li extends b.Disposable{constructor(){super();d(this,"_definedNameMap",{});d(this,"_update$",new Dt.Subject);d(this,"update$",this._update$.asObservable());d(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});d(this,"_currentRange$",new Dt.Subject);d(this,"currentRange$",this._currentRange$.asObservable());d(this,"_focusRange$",new Dt.Subject);d(this,"focusRange$",this._focusRange$.asObservable())}dispose(){this._definedNameMap={}}focusRange(e,t){const r=this.getValueById(e,t);r!=null&&this._focusRange$.next({...r,unitId:e})}setCurrentRange(e){this._currentRange=e,this._currentRange$.next(e)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return Ke(this._currentRange.range)}registerDefinedNames(e,t){this._definedNameMap[e]=t,this._update()}registerDefinedName(e,t){this._definedNameMap[e]==null&&(this._definedNameMap[e]={}),this._definedNameMap[e][t.id]=t,this._update()}removeDefinedName(e,t){var r;(r=this._definedNameMap[e])==null||delete r[t],this._update()}removeUnitDefinedName(e){delete this._definedNameMap[e],this._update()}getDefinedNameMap(e){return this._definedNameMap[e]}getValueByName(e,t){var s;const r=this._definedNameMap[e];return r==null?null:(s=Array.from(Object.values(r)).filter(a=>a.name===t))==null?void 0:s[0]}getValueById(e,t){var r;return(r=this._definedNameMap[e])==null?void 0:r[t]}hasDefinedName(e){return this._definedNameMap[e]==null?!1:(Array.from(Object.values(this._definedNameMap[e])).length||0)!==0}_update(){this._update$.next(null)}}const Kt=q.createIdentifier("univer.formula.defined-names.service");var Ec=Object.defineProperty,Cc=Object.getOwnPropertyDescriptor,yc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Cc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Ec(i,e,r),r},Dc=(n,i)=>(e,t)=>i(e,t,n);exports.FormulaCurrentConfigService=class extends b.Disposable{constructor(e){super();d(this,"_unitData",{});d(this,"_unitStylesData",{});d(this,"_arrayFormulaCellData",{});d(this,"_formulaData",{});d(this,"_sheetNameMap",{});d(this,"_forceCalculate",!1);d(this,"_dirtyRanges",[]);d(this,"_dirtyNameMap",{});d(this,"_dirtyDefinedNameMap",{});d(this,"_dirtyUnitFeatureMap",{});d(this,"_dirtyUnitOtherFormulaMap",{});d(this,"_excludedCell");d(this,"_sheetIdToNameMap",{});d(this,"_executeUnitId","");d(this,"_executeSubUnitId","");this._univerInstanceService=e}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(e){this._executeUnitId=e}setExecuteSubUnitId(e){this._executeSubUnitId=e}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(e,t){return this._sheetIdToNameMap[e]==null?"":this._sheetIdToNameMap[e][t]||""}load(e){if(e.allUnitData&&e.unitSheetNameMap&&e.unitStylesData)this._unitData=e.allUnitData,this._unitStylesData=e.unitStylesData,this._sheetNameMap=e.unitSheetNameMap;else{const{allUnitData:t,unitSheetNameMap:r,unitStylesData:s}=this._loadSheetData();this._unitData=t,this._unitStylesData=s,this._sheetNameMap=r}this._formulaData=e.formulaData,this._arrayFormulaCellData=ws(e.arrayFormulaCellData),this._forceCalculate=e.forceCalculate,this._dirtyRanges=e.dirtyRanges,this._dirtyNameMap=e.dirtyNameMap,this._dirtyDefinedNameMap=e.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=e.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=e.dirtyUnitOtherFormulaMap,this._excludedCell=e.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}loadDirtyRangesAndExcludedCell(e,t){this._dirtyRanges=e,this._excludedCell=t,this._dirtyNameMap={}}registerUnitData(e){this._unitData=e}registerFormulaData(e){this._formulaData=e}registerSheetNameMap(e){this._sheetNameMap=e}_mergeNameMap(e,t){Object.keys(t).forEach(r=>{t[r]&&Object.keys(t[r]).forEach(s=>{e[r]==null&&(e[r]={}),e[r][t[r][s]]=s})}),this._sheetIdToNameMap={},Object.keys(e).forEach(r=>{Object.keys(e[r]).forEach(s=>{this._sheetIdToNameMap[r]==null&&(this._sheetIdToNameMap[r]={}),this._sheetIdToNameMap[r][e[r][s]]=s})})}_loadSheetData(){const e=this._univerInstanceService.getAllUnitsForType(b.UniverInstanceType.UNIVER_SHEET),t=this._univerInstanceService.getCurrentUnitForType(b.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getActiveSheet();this._executeUnitId=t==null?void 0:t.getUnitId(),this._executeSubUnitId=r==null?void 0:r.getSheetId();const s={},a={},o={};for(const u of e){const c=u.getUnitId(),l=u.getSheets(),m={},g={};for(const p of l){const R=p.getSheetId(),D=p.getConfig();m[R]={cellData:new b.ObjectMatrix(D.cellData),rowCount:D.rowCount,columnCount:D.columnCount,rowData:D.rowData,columnData:D.columnData},g[p.getName()]=p.getSheetId()}s[c]=m,a[c]=u.getStyles(),o[c]=g}return{allUnitData:s,unitStylesData:a,unitSheetNameMap:o}}};exports.FormulaCurrentConfigService=yc([Dc(0,b.IUniverInstanceService)],exports.FormulaCurrentConfigService);const Ze=q.createIdentifier("univer.formula.current-data.service");var bc=Object.defineProperty,Sc=Object.getOwnPropertyDescriptor,Ac=(n,i,e,t)=>{for(var r=t>1?void 0:t?Sc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&bc(i,e,r),r},Jr=(n,i)=>(e,t)=>i(e,t,n);let At=class extends b.Disposable{constructor(n,i,e){super(),this._definedNamesService=n,this._lexerTreeBuilder=i,this._formulaCurrentConfigService=e}treeBuilder(n,i=!0){return this._lexerTreeBuilder.treeBuilder(n,i,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(n){const i=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&i[e]!=null){const t=Object.keys(i[e]);for(let r=0,s=t.length;r<s;r++){const a=t[r];if(n.indexOf(a)>-1)return!0}}return!1}_checkDefinedNameDirty(n){const i=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),e=this._formulaCurrentConfigService.getExecuteUnitId();if(e!=null&&i[e]!=null){const t=Object.keys(i[e]);for(let r=0,s=t.length;r<s;r++)if(t[r]===n)return!0}return!1}_injectDefinedName(n){const i=this._formulaCurrentConfigService.getExecuteUnitId();if(i==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const e=this._lexerTreeBuilder.getSequenceNode(n);let t="",r=!1;const s=[];for(let a=0,o=e.length;a<o;a++){const u=e[a];if(typeof u=="string"){t+=u;continue}const{nodeType:c,token:l}=u;if(c===Le.REFERENCE||c===Le.FUNCTION){const m=this._definedNamesService.getValueByName(i,l);if(m){let g=m.formulaOrRefString;g.substring(0,1)===se.EQUALS&&(g=g.substring(1)),t+=g,s.push(m.name),r=!0}else this._checkDefinedNameDirty(l)?(t+=f.NAME,r=!0,s.push(l)):t+=l}else t+=l}return{sequenceString:t,hasDefinedName:r,definedNames:s}}};At=Ac([Jr(0,Kt),Jr(1,q.Inject(Or)),Jr(2,Ze)],At);var Pc=Object.defineProperty,Lc=Object.getOwnPropertyDescriptor,xc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Lc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Pc(i,e,r),r},Vc=(n,i)=>(e,t)=>i(e,t,n),je=(n=>(n[n.IDLE=0]="IDLE",n[n.START_DEPENDENCY=1]="START_DEPENDENCY",n[n.START_CALCULATION=2]="START_CALCULATION",n[n.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",n[n.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",n[n.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",n[n.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",n[n.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",n))(je||{}),yt=(n=>(n[n.INITIAL=0]="INITIAL",n[n.STOP_EXECUTION=1]="STOP_EXECUTION",n[n.NOT_EXECUTED=2]="NOT_EXECUTED",n[n.SUCCESS=3]="SUCCESS",n))(yt||{});exports.FormulaRuntimeService=class extends b.Disposable{constructor(e){super();d(this,"_formulaExecuteStage",0);d(this,"_stopState",!1);d(this,"_currentRow",-1);d(this,"_currentColumn",-1);d(this,"_currentRowCount",Number.NEGATIVE_INFINITY);d(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);d(this,"_currentSubUnitId","");d(this,"_currentUnitId","");d(this,"_runtimeData",{});d(this,"_runtimeOtherData",{});d(this,"_unitArrayFormulaRange",{});d(this,"_runtimeArrayFormulaCellData",{});d(this,"_runtimeClearArrayFormulaCellData",{});d(this,"_runtimeFeatureRange",{});d(this,"_runtimeFeatureCellData",{});d(this,"_functionsExecutedState",0);d(this,"_functionDefinitionPrivacyVar",new Map);d(this,"_totalFormulasToCalculate",0);d(this,"_completedFormulasCount",0);d(this,"_totalArrayFormulasToCalculate",0);d(this,"_completedArrayFormulasCount",0);d(this,"_formulaCycleIndex",0);d(this,"_isCycleDependency",!1);this._currentConfigService=e}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={}}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setTotalArrayFormulasToCalculate(e){this._totalArrayFormulasToCalculate=e}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(e){this._completedArrayFormulasCount=e}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(e){this._totalFormulasToCalculate=e}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(e){this._completedFormulasCount=e}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(e){this._formulaCycleIndex=e}getFormulaCycleIndex(){return this._formulaCycleIndex}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(e){this._formulaExecuteStage=e}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}setCurrent(e,t,r,s,a,o){this._currentRow=e,this._currentColumn=t,this._currentRowCount=r,this._currentColumnCount=s,this._currentSubUnitId=a,this._currentUnitId=o}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(e,t){this._functionDefinitionPrivacyVar.set(e,t)}getFunctionDefinitionPrivacyVar(e){return this._functionDefinitionPrivacyVar.get(e)}setRuntimeOtherData(e,t){const r=this._currentSubUnitId,s=this._currentUnitId;this._runtimeOtherData[s]===void 0&&(this._runtimeOtherData[s]={});const a=this._runtimeOtherData[s];a[r]===void 0&&(a[r]={});const o=a[r];let u=[];if(t.isReferenceObject()||t.isValueObject()&&t.isArray()){const c=t,{startRow:l,startColumn:m}=c.getRangePosition();c.iterator((g,p,R)=>{const D=lt(g),P=p-l,w=R-m;u[P]==null&&(u[P]=[]),u[P][w]=D})}else u=[[lt(t)]];o[e]=u}setRuntimeData(e){const t=this._currentRow,r=this._currentColumn,s=this._currentRowCount,a=this.currentColumnCount,o=this._currentSubUnitId,u=this._currentUnitId;this._runtimeData[u]==null&&(this._runtimeData[u]={});const c=this._runtimeData[u];c[o]==null&&(c[o]=new b.ObjectMatrix),this._unitArrayFormulaRange[u]==null&&(this._unitArrayFormulaRange[u]={});const l=this._unitArrayFormulaRange[u];let m=new b.ObjectMatrix;l[o]&&(m=new b.ObjectMatrix(l[o])),this._runtimeArrayFormulaCellData[u]===void 0&&(this._runtimeArrayFormulaCellData[u]={});const g=this._runtimeArrayFormulaCellData[u];g[o]==null&&(g[o]=new b.ObjectMatrix),this._runtimeClearArrayFormulaCellData[u]===void 0&&(this._runtimeClearArrayFormulaCellData[u]={});const p=this._runtimeClearArrayFormulaCellData[u];p[o]==null&&(p[o]=new b.ObjectMatrix);const R=c[o],D=g[o],P=p[o];if(e.isReferenceObject()||e.isValueObject()&&e.isArray()){const w=e,{startRow:v,startColumn:B,endRow:X,endColumn:ue}=w.getRangePosition();if(v===X&&B===ue){const Ae=w.getFirstCell(),_e=lt(Ae);R.setValue(t,r,_e),P.setValue(t,r,_e);return}const ge={startRow:t,startColumn:r,endRow:X-v+t,endColumn:ue-B+r};if(m.setValue(t,r,ge),l[o]=m.getData(),this._checkIfArrayFormulaRangeHasData(u,o,t,r,ge)||this._checkIfArrayFormulaExceeded(s,a,ge)){const Ae=lt(h.create(f.SPILL));R.setValue(t,r,Ae),P.setValue(t,r,Ae)}else{const Ae=h.create(f.SPILL);w.iterator((_e,be,Ee)=>{const he=lt(_e);if(be===v&&Ee===B){if(_e!=null&&_e.isError()&&_e.isEqualType(Ae))return P.setValue(t,r,{}),R.setValue(t,r,{...lt(Ae)}),!1;R.setValue(t,r,{...he})}const Me=be-v+t,ut=Ee-B+r;D.setValue(Me,ut,he)})}}else{const w=lt(e);R.setValue(t,r,w),P.setValue(t,r,w)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(e,t){this._runtimeFeatureRange[e]=t}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e,t){this._runtimeFeatureCellData[e]=t}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(e,t,r,s,a){var p,R,D,P,w,v,B,X,ue,ge,Ae,_e;const{startRow:o,startColumn:u,endRow:c,endColumn:l}=a,m=this._currentConfigService.getUnitData(),g=(D=(R=(p=this._unitArrayFormulaRange[e])==null?void 0:p[t])==null?void 0:R[r])==null?void 0:D[s];for(let be=o;be<=c;be++)for(let Ee=u;Ee<=l;Ee++){if(be===r&&s===Ee)continue;const he=(v=(w=(P=this._runtimeData)==null?void 0:P[e])==null?void 0:w[t])==null?void 0:v.getValue(be,Ee),Me=(ue=(X=(B=this._runtimeArrayFormulaCellData)==null?void 0:B[e])==null?void 0:X[t])==null?void 0:ue.getValue(be,Ee),ut=(_e=(Ae=(ge=m==null?void 0:m[e])==null?void 0:ge[t])==null?void 0:Ae.cellData)==null?void 0:_e.getValue(be,Ee);if(!b.isNullCell(he)||!b.isNullCell(Me)&&!this._isInArrayFormulaRange(g,be,Ee)||!b.isNullCell(ut))return!0}return!1}_isInArrayFormulaRange(e,t,r){if(e==null)return!1;const{startRow:s,startColumn:a,endRow:o,endColumn:u}=e;return t>=s&&t<=o&&r>=a&&r<=u}_checkIfArrayFormulaExceeded(e,t,r){return r.endRow>=e||r.endColumn>=t}_isInDirtyRange(e,t,r,s){const a=this._currentConfigService.getDirtyRanges();return a.length===0?!0:Ps(a,e,t,r,s)}};exports.FormulaRuntimeService=xc([Vc(0,Ze)],exports.FormulaRuntimeService);const ke=q.createIdentifier("univer.formula.runtime.service");var Z=(n=>(n.REFERENCE="ReferenceNode",n.VALUE="ValueNode",n.OPERATOR="OperatorNode",n.FUNCTION="FunctionNode",n.LAMBDA="LambdaNode",n.LAMBDA_PARAMETER="LambdaNodeParameter",n.ERROR="ErrorNode",n.BASE="Base",n.ROOT="Root",n.UNION="UnionNode",n.PREFIX="PrefixNode",n.SUFFIX="SuffixNode",n.NULL="NullNode",n))(Z||{});const Ye=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]);class Ue extends b.Disposable{constructor(e){super();d(this,"_children",[]);d(this,"_definedNames",[]);d(this,"_parent");d(this,"_valueObject");d(this,"_calculateState",!1);d(this,"_async",!1);d(this,"_address",!1);d(this,"_refOffsetX",0);d(this,"_refOffsetY",0);this._token=e}dispose(){var e;this._children.forEach(t=>{t.dispose()}),(e=this._valueObject)==null||e.dispose(),this._parent=null}get nodeType(){return Z.BASE}isAsync(){return this._async}isAddress(){return this._address}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(e){this._parent=e,e.addChildren(this)}getChildren(){return this._children}addChildren(...e){this._children.push(...e)}getToken(){return this._token}setValue(e){this._valueObject=e}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(e=!0){}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}async executeAsync(){return Promise.resolve(gt.SUCCESS)}serialize(){const e=this.getToken(),t=this.getChildren(),r=[],s=t.length;for(let o=0;o<s;o++){const u=t[o];r.push(u.serialize())}const a={token:e,nodeType:this.nodeType};return s>0&&(a.children=r),a}hasDefinedName(e){return this._definedNames.includes(e)}setDefinedNames(e){this._definedNames=e}}class ye extends Ue{constructor(e){super(e);d(this,"_errorValueObject");this._errorValueObject=h.create(e)}get nodeType(){return Z.ERROR}static create(e){return new ye(e)}getValue(){return this._errorValueObject}}const He=100;class Qe extends b.Disposable{get zIndex(){return 0}create(i,e,t){let r;return i instanceof G?r=i.getToken():r=i,new Ue(r)}}class ln extends Ue{get nodeType(){return Z.ROOT}execute(){const e=this.getChildren()[0];e==null?this.setValue(h.create(f.VALUE)):this.setValue(e.getValue())}}class xi extends Qe{get zIndex(){return Ye.get(Z.ROOT)||He}checkAndCreateNodeType(i){if(!(i instanceof G))return;if(i.getToken()===st)return new ln(st)}}class Vi extends b.Disposable{constructor(){super(...arguments);d(this,"_functionExecutors",new Map);d(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.set(r.name,r)}}getExecutors(){return this._functionExecutors}getExecutor(e){return this._functionExecutors.get(e)}hasExecutor(e){return this._functionExecutors.has(e)}unregisterExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.delete(r)}}registerDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.set(r.functionName,r)}return b.toDisposable(()=>{for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(e){return this._functionDescriptions.get(e)}hasDescription(e){return this._functionDescriptions.has(e)}unregisterDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r)}}}const Je=q.createIdentifier("univer.formula.function.service");var wc=Object.defineProperty,Uc=Object.getOwnPropertyDescriptor,Oc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Uc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&wc(i,e,r),r},Es=(n,i)=>(e,t)=>i(e,t,n);class br extends Ue{constructor(i,e,t){super(e),this._accessor=i,this._operatorString=e,this._functionExecutor=t}get nodeType(){return Z.PREFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");e.isReferenceObject()&&(e=e.toArrayValueObject()),this._operatorString===Re.MINUS?t=this._functionExecutor.calculate(y.create(0),e):this._operatorString===Re.AT?t=this._handlerAT(e):t=h.create(f.VALUE),this.setValue(t)}_handlerAT(i){if(!i.isReferenceObject())return h.create(f.VALUE);const e=i;if(e.isCell())return h.create(f.VALUE);const t=this._accessor.get(ke),r=t.currentRow||0,s=t.currentColumn||0;return e.isRow()?e.getCellByColumn(s):e.isColumn()?e.getCellByRow(r):e.isRange()||e.isTable()?e.getCellByPosition():h.create(f.VALUE)}}let Sr=class extends Qe{constructor(n,i){super(),this._functionService=n,this._injector=i}get zIndex(){return Ye.get(Z.PREFIX)||He}checkAndCreateNodeType(n){if(!(n instanceof G))return;const i=n.getToken(),e=i.trim();if(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')return;let t="";if(e===Re.MINUS)t=Pe.MINUS;else return e===Re.AT?new br(this._injector,e):void 0;const r=this._functionService.getExecutor(t);return r?new br(this._injector,e,r):(console.error(`No function ${i}`),ye.create(f.NAME))}};Sr=Oc([Es(0,Je),Es(1,q.Inject(q.Injector))],Sr);function wi(n,i,e){let t,r;const s=n.slice(0,2);let a=0;if(new RegExp(Re.MINUS,"g").test(s)){const o=i.getExecutor(Pe.MINUS);t=new br(e,Re.MINUS,o),a++}return new RegExp(Re.AT,"g").test(s)&&(r=new br(e,Re.AT),t&&r.setParent(t),a++),a>0&&(n=n.slice(a)),{tokenTrim:n,minusPrefixNode:t,atPrefixNode:r}}var Mc=Object.defineProperty,Fc=Object.getOwnPropertyDescriptor,vc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Fc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Mc(i,e,r),r},Ft=(n,i)=>(e,t)=>i(e,t,n);class Bc extends Ue{constructor(i,e,t,r,s){super(i),this._functionExecutor=e,this._currentConfigService=t,this._runtimeService=r,this._definedNamesService=s,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return Z.FUNCTION}async executeAsync(){const i=[],e=this.getChildren(),t=e.length;this._compatibility();for(let a=0;a<t;a++){const o=e[a].getValue();o!=null&&(o.isReferenceObject()?i.push(o.toArrayValueObject()):i.push(o))}const r=this._calculate(i);let s;return r.isAsyncObject()||r.isAsyncArrayObject()?s=await r.getValue():s=r,this._setRefData(s),this.setValue(s),Promise.resolve(gt.SUCCESS)}execute(){const i=[],e=this.getChildren(),t=e.length;this._compatibility();for(let s=0;s<t;s++){const a=e[s].getValue();a!=null&&(a.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?i.push(a.toArrayValueObject()):i.push(a))}const r=this._calculate(i);this._setRefData(r),this.setValue(r)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const i=this.getChildren(),e=i.length;if(!this._functionExecutor.needsExpandParams||e!==3)return;const t=i[1].getValue(),r=i[2].getValue();if(!(t!=null&&t.isReferenceObject())&&!(r!=null&&r.isReferenceObject()))return;const s=t.getRangeData(),a=r.getRangeData(),{startRow:o,startColumn:u,endRow:c,endColumn:l}=s,m=c-o+1,g=l-u+1,{startRow:p,startColumn:R,endRow:D,endColumn:P}=a,w=D-p+1,v=P-R+1;m!==w&&(a.endRow+=m-w),g!==v&&(a.endColumn+=g-v)}_calculate(i){var s;const{minParams:e,maxParams:t}=this._functionExecutor;if(e!==-1&&t!==-1&&(i.length<e||i.length>t))return h.create(f.NA);let r;if(this._setRefInfo(),this._functionExecutor.isCustom()){const a=this._functionExecutor.calculateCustom(...i.map(o=>o.isArray()?o.toValue():o.getValue()));if(typeof a!="object"||a==null)r=ot.create(a);else{const o=zs(a);r=me.create({calculateValueList:o,rowCount:o.length,columnCount:((s=o[0])==null?void 0:s.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),r=this._functionExecutor.calculate(...i);return r}_setDefinedNamesForFunction(){const i=this._currentConfigService.getExecuteUnitId();if(i==null)return;const e=this._definedNamesService.getDefinedNameMap(i);e!=null&&this._functionExecutor.setDefinedNames(e)}_setRefInfo(){const{currentUnitId:i,currentSubUnitId:e,currentRow:t,currentColumn:r}=this._runtimeService;this._functionExecutor.setRefInfo(i,e,t,r)}_setRefData(i){if(!i.isReferenceObject())return;const e=i;e.setForcedSheetId(this._currentConfigService.getSheetNameMap()),e.setUnitData(this._currentConfigService.getUnitData()),e.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),e.setRuntimeData(this._runtimeService.getUnitData()),e.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}}let Ar=class extends Qe{constructor(n,i,e,t,r){super(),this._functionService=n,this._currentConfigService=i,this._runtimeService=e,this._definedNamesService=t,this._injector=r}get zIndex(){return Ye.get(Z.FUNCTION)||He}create(n){const i=this._functionService.getExecutor(n);return i?new Bc(n,i,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${n}`),ye.create(f.NAME))}checkAndCreateNodeType(n){if(typeof n=="string")return;const i=n.getToken(),{tokenTrim:e,minusPrefixNode:t,atPrefixNode:r}=wi(i.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(e))&&!this._isParentUnionNode(n))return ye.create(f.VALUE);const s=e.toUpperCase();if(this._functionService.hasExecutor(s)){const a=this.create(s);return r?a.setParent(r):t&&a.setParent(t),a}}_isParentUnionNode(n){var i,e;return((e=(i=n.getParent())==null?void 0:i.getParent())==null?void 0:e.getToken())===z.COLON}};Ar=vc([Ft(0,Je),Ft(1,Ze),Ft(2,ke),Ft(3,Kt),Ft(4,q.Inject(q.Injector))],Ar);var Tc=Object.defineProperty,kc=Object.getOwnPropertyDescriptor,Ic=(n,i,e,t)=>{for(var r=t>1?void 0:t?kc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Tc(i,e,r),r},jc=(n,i)=>(e,t)=>i(e,t,n);let Pt=class extends b.Disposable{constructor(n){super(),this._runtimeService=n}async executeAsync(n){if(!n)return h.create(f.VALUE);await this._executeAsync(n);const i=n.getValue();if(i==null)throw new Error("node value is null");return Promise.resolve(i)}execute(n){if(!n)return h.create(f.VALUE);this._execute(n);const i=n.getValue();if(i==null)throw new Error("node value is null");return i}executePreCalculateNode(n){return n.execute(),n.getValue()}checkAsyncNode(n){const i=[];this._checkAsyncNode(n,i);for(let e=0,t=i.length;e<t;e++)if(i[e]===!0)return!0;return!1}_checkAsyncNode(n,i){const e=n.getChildren(),t=e.length;for(let r=0;r<t;r++){const s=e[r];i.push(s.isAsync()),this._checkAsyncNode(s,i)}}async _executeAsync(n){if(this._runtimeService.isStopExecution())return Promise.resolve(gt.ERROR);const i=n.getChildren(),e=i.length;for(let t=0;t<e;t++){const r=i[t];if(r.getToken().toUpperCase()===It&&r.isEmptyParamFunction()){r.execute();continue}await this._executeAsync(r)}return n.nodeType===Z.FUNCTION&&n.isAsync()?await n.executeAsync():n.execute(),Promise.resolve(gt.SUCCESS)}_execute(n){if(this._runtimeService.isStopExecution())return gt.ERROR;const i=n.getChildren(),e=i.length;for(let t=0;t<e;t++){const r=i[t];if(r.getToken().toUpperCase()===It&&r.isEmptyParamFunction()){r.execute();continue}this._execute(r)}return n.execute(),gt.SUCCESS}};Pt=Ic([jc(0,ke)],Pt);function Ui(n){return n instanceof G?n.getToken()===bt:!1}function $c(n){return n instanceof G?n.getToken()===Us:!1}function Oi(n){if(!n)return;if(n.getToken()!==Ht)return n;const i=n,e=i.getCurrentLambdaPrivacyVar(),t=i.getLambdaParameter();if(!e)return;const r=e.get(t);return r==null&&n.getValue()?n:Oi(r)}class Ln extends qe{constructor(e,t,r){super(0);d(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=e,this._interpreter=t,this._lambdaPrivacyVarKeys=r,this._lambdaPrivacyValueMap.clear()}static create(e,t,r){return new Ln(e,t,r)}isLambda(){return!0}execute(...e){const t=this._lambdaPrivacyVarKeys.length;if(e.length!==t)return h.create(f.VALUE);this._setLambdaPrivacyValueMap(e),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let r;if(this._interpreter.checkAsyncNode(this._lambdaNode))r=new Ns(this._interpreter.executeAsync(this._lambdaNode));else{const s=this._interpreter.execute(this._lambdaNode);s.isReferenceObject()?r=s.toArrayValueObject():r=s}return this._lambdaNode.setNotEmpty(!0),r}_setLambdaNodeValue(e){const t=e.getChildren(),r=t.length;for(let s=0;s<r;s++){const a=t[s];if(a.getToken()===Ht){const u=a.getLambdaParameter(),c=this._lambdaPrivacyValueMap.get(u);if(c)a.setValue(c);else{const l=a.getCurrentLambdaPrivacyVar(),m=Oi(l.get(u));m!=null&&a.setValue(m.getValue())}continue}this._setLambdaNodeValue(a)}}_setLambdaPrivacyValueMap(e){for(let t=0;t<e.length;t++){const r=e[t],s=this._lambdaPrivacyVarKeys[t];this._lambdaPrivacyValueMap.set(s,r)}}}var Yc=Object.defineProperty,Hc=Object.getOwnPropertyDescriptor,Qc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Hc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Yc(i,e,r),r},Cs=(n,i)=>(e,t)=>i(e,t,n);class zc extends Ue{constructor(e,t,r,s){super(e);d(this,"_isNotEmpty",!0);this._lambdaId=t,this._interpreter=r,this._lambdaPrivacyVarKeys=s}get nodeType(){return Z.LAMBDA}setNotEmpty(e=!1){this._isNotEmpty=e}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(Ln.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const e=this.getChildren(),t=e.length;this.setValue(e[t-1].getValue())}}}let Pr=class extends Qe{constructor(n,i){super(),this._runtimeService=n,this._interpreter=i}get zIndex(){return Ye.get(Z.LAMBDA)||He}create(n){const i=n.getChildren(),e=i[0];let t=i.slice(1,-1);const r=i[i.length-1];if(!(e instanceof G&&r instanceof G))return ye.create(f.NAME);if(e.getToken()===bt){const o=e.getChildren();if(t.length!==o.length)return ye.create(f.VALUE)}else t=i.slice(0,-1);const s=b.Tools.generateRandomId(8),a=new Map;for(let o=0;o<t.length;o++){const u=t[o];if(u instanceof G){const c=u.getChildren()[0];u.setToken(Us),a.set(c.trim(),void 0)}else return ye.create(f.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(s,a),this._updateLambdaStatement(r,s,a),new zc(n.getToken(),s,this._interpreter,[...a.keys()])}checkAndCreateNodeType(n){if(!(!(n instanceof G)||n.getToken().trim().toUpperCase()!==It))return this.create(n)}_updateLambdaStatement(n,i,e){this._updateTree(n,i,e)}_updateTree(n,i,e){const t=n.getChildren(),r=t.length,s=t[0];for(let a=0;a<r;a++){const o=t[a];if(!(Ui(s)&&a!==0))if(o instanceof G)this._updateTree(o,i,e);else{const u=o.trim();if(e.has(u)){const c=new G;c.setToken(Ht),c.setLambdaId(i),c.setLambdaPrivacyVar(e),c.setLambdaParameter(u),t[a]=c}}}}};Pr=Qc([Cs(0,ke),Cs(1,q.Inject(Pt))],Pr);function Mi(n){if(!n)return;if(n.getToken()!==Ht)return n;const i=n,e=i.getCurrentLambdaPrivacyVar(),t=i.getLambdaParameter();if(e)return Mi(e.get(t))}class Nc extends Ue{constructor(i,e,t){super(i),this._lambdaParameter=e,this._currentLambdaPrivacyVar=t}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return Z.LAMBDA_PARAMETER}execute(){const i=Mi(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(i)this.setValue(i.getValue());else{const e=this.getValue();(e==null||e.isError())&&this.setValue(h.create(f.SPILL))}}}class Fi extends Qe{get zIndex(){return Ye.get(Z.LAMBDA_PARAMETER)||He}create(i){const e=i.getFunctionDefinitionPrivacyVar(),t=i.getLambdaParameter();return e?new Nc(i.getToken(),t,e):new ye(f.SPILL)}checkAndCreateNodeType(i){if(!(!(i instanceof G)||i.getToken().trim()!==Ht))return this.create(i)}}class Wc extends Ue{constructor(i){super(i),this._operatorString=i}get nodeType(){return Z.NULL}execute(){this.setValue(ie.create())}}var Gc=Object.defineProperty,Xc=Object.getOwnPropertyDescriptor,Kc=(n,i,e,t)=>{for(var r=t>1?void 0:t?Xc(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Gc(i,e,r),r},qc=(n,i)=>(e,t)=>i(e,t,n);class Zc extends Ue{constructor(i,e){super(i),this._operatorString=i,this._functionExecutor=e}get nodeType(){return Z.OPERATOR}execute(){var s,a;const i=this.getChildren();this._functionExecutor.name===Pe.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let e=(s=i[0])==null?void 0:s.getValue(),t=(a=i[1])==null?void 0:a.getValue();const r=this.getToken();if((e==null||t==null)&&r!==se.MINUS&&r!==se.PLUS){this.setValue(h.create(f.VALUE));return}e==null&&(e=ie.create()),t==null&&(t=ie.create()),e.isReferenceObject()&&(e=e.toArrayValueObject()),t.isReferenceObject()&&(t=t.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(e,t))}}let Lr=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return Ye.get(Z.OPERATOR)||He}create(n){let i="";const e=n;e===se.PLUS?i=Pe.PLUS:e===se.MINUS?i=Pe.MINUS:e===se.MULTIPLY?i=Pe.MULTIPLY:e===se.DIVIDED?i=Pe.DIVIDED:e===se.CONCATENATE?i=We.CONCATENATE:e===se.POWER?i=oe.POWER:aa.has(e)&&(i=Pe.COMPARE);const t=this._functionService.getExecutor(i);return t?new Zc(e,t):(console.error(`No function ${n}`),ye.create(f.NAME))}checkAndCreateNodeType(n){if(n instanceof G)return;const i=n.trim();if(!(i.charAt(0)==='"'&&i.charAt(i.length-1)==='"')&&ht.has(i))return this.create(i)}};Lr=Kc([qc(0,Je)],Lr);class Jc extends b.Disposable{constructor(){super(...arguments);d(this,"_tableMap",new Map);d(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(e,t){var r;(r=this._tableMap.get(e))==null||r.delete(t)}getTableMap(e){return this._tableMap.get(e)}getTableOptionMap(){return this._tableOptionMap}registerTable(e,t,r){var s;this._tableMap.get(e)==null&&this._tableMap.set(e,new Map),(s=this._tableMap.get(e))==null||s.set(t,r)}registerTableOptionMap(e,t){this._tableOptionMap.set(e,t)}}const xn=q.createIdentifier("univer.formula.super-table.service");class el extends wt{constructor(i,e,t,r){super(i),this._tableData=e,this._columnDataString=t;const s=this._tableData.sheetId,a=this._tableData.range,o=this._tableData.titleMap;this.setForcedSheetIdDirect(s);const u=this._stringToColumnData(this._columnDataString,o,r),c=u.startColumn,l=u.endColumn,m=u.type;let g=-1,p=-1;const R=a.startRow,D=a.startColumn;m===mt.ALL?(g=R,p=D):m===mt.DATA?(g=R+1,p=D):m===mt.HEADERS?(g=R,p=R):m===mt.TOTALS&&(g=D,p=D),this.setRangeData({startColumn:c,endColumn:l,startRow:g,endRow:p})}isTable(){return!0}_stringToColumnData(i,e,t){i=i.substring(1,-1);const r=i.indexOf(z.COMMA);let s=-1,a=-1,o=mt.ALL;if(r===-1){const u=this._columnHandler(i,e);s=u.startColumn,a=u.endColumn}else{const u=i.substring(0,r).substring(1,-1),c=i.substring(r+1),l=this._columnHandler(c,e,!0);s=l.startColumn,a=l.endColumn,o=t.get(u),o||(o=mt.ALL)}return{startColumn:s,endColumn:a,type:o}}_columnHandler(i,e,t=!1){var o,u,c;let r=-1,s=-1;const a=i.indexOf(z.COLON);if(new RegExp(Bs,"g").test(i)){const l=i.substring(0,a).substring(1,-1),m=i.substring(a+1).substring(1,-1);r=(o=e.get(l))!=null?o:-1,s=(u=e.get(m))!=null?u:-1}else t&&(i=i.substring(1,-1)),r=(c=e.get(i))!=null?c:-1,s=r;return{startColumn:r,endColumn:s}}}var tl=Object.defineProperty,rl=Object.getOwnPropertyDescriptor,nl=(n,i,e,t)=>{for(var r=t>1?void 0:t?rl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&tl(i,e,r),r},nr=(n,i)=>(e,t)=>i(e,t,n);class sr extends Ue{constructor(i,e,t,r=!1){super(e),this._accessor=i,this._operatorString=e,this._referenceObject=t,this._isPrepareMerge=r}get nodeType(){return Z.REFERENCE}execute(){const i=this._accessor.get(Ze),e=this._accessor.get(ke);this._referenceObject.setDefaultUnitId(e.currentUnitId),this._referenceObject.setDefaultSheetId(e.currentSubUnitId),this._referenceObject.setForcedSheetId(i.getSheetNameMap()),this._referenceObject.setUnitData(i.getUnitData()),this._referenceObject.setArrayFormulaCellData(i.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(e.getUnitData()),this._referenceObject.setUnitStylesData(i.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(e.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(e.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();this._referenceObject.setRefOffset(t,r),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(h.create(f.NAME)):this.setValue(this._referenceObject)}}let xr=class extends Qe{constructor(n,i,e,t){super(),this._superTableService=n,this._formulaRuntimeService=i,this._functionService=e,this._injector=t}get zIndex(){return Ye.get(Z.REFERENCE)||He}checkAndCreateNodeType(n){var u,c;let i=!1,e,t=!1;n instanceof G?(i=!0,e=n.getToken().trim(),((c=(u=n.getParent())==null?void 0:u.getParent())==null?void 0:c.getToken().trim())===z.COLON&&(t=!0)):e=n.trim();const{tokenTrim:r,minusPrefixNode:s,atPrefixNode:a}=wi(e,this._functionService,this._injector);if(!i&&r.charAt(0)==='"'&&r.charAt(r.length-1)==='"')return;let o;if(new RegExp(Qt).test(r))o=new sr(this._injector,r,new gn(r),t);else if(i&&this._checkParentIsUnionOperator(n))new RegExp(Fs).test(r)?o=new sr(this._injector,r,new pn(r),t):new RegExp(vs).test(r)&&(o=new sr(this._injector,r,new Rn(r),t));else{const l=this._formulaRuntimeService.currentUnitId,m=this._superTableService.getTableMap(l),g=new RegExp(Bs,"g"),p=r.replace(g,"");if(!i&&(m!=null&&m.has(p))){const R=g.exec(r);let D="";R&&(D=R[0]);const P=m.get(p),w=this._superTableService.getTableOptionMap();o=new sr(this._injector,r,new el(r,P,D,w))}}if(o)return a?o.setParent(a):s&&o.setParent(s),o}_checkParentIsUnionOperator(n){var i,e;return((e=(i=n.getParent())==null?void 0:i.getParent())==null?void 0:e.getToken().trim())===z.COLON}};xr=nl([nr(0,xn),nr(1,ke),nr(2,Je),nr(3,q.Inject(q.Injector))],xr);var sl=Object.defineProperty,il=Object.getOwnPropertyDescriptor,al=(n,i,e,t)=>{for(var r=t>1?void 0:t?il(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&sl(i,e,r),r},ys=(n,i)=>(e,t)=>i(e,t,n);class Ds extends Ue{constructor(i,e,t){super(e),this._accessor=i,this._operatorString=e,this._functionExecutor=t}get nodeType(){return Z.SUFFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");if(this._operatorString===Xe.PERCENTAGE){if(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(e,y.create(100)),t.isNumber()){const r=Number(t.getValue());t=y.create(r,"0.00%")}}else this._operatorString===Xe.POUND?t=this._handlerPound(e):t=h.create(f.VALUE);this.setValue(t)}_handlerPound(i){var l,m,g,p;if(!i.isReferenceObject()||!i.isCell())return h.create(f.VALUE);const e=this._accessor.get(Ze),t=this._accessor.get(At),r=i,s=r.getRangePosition(),a=r.getUnitId(),o=r.getSheetId(),u=e.getFormulaData(),c=(p=(g=(m=(l=u==null?void 0:u[a])==null?void 0:l[o])==null?void 0:m[s.startRow])==null?void 0:g[s.startColumn])==null?void 0:p.f;return c&&t.treeBuilder(c),h.create(f.VALUE)}}let Vr=class extends Qe{constructor(n,i){super(),this._functionService=n,this._injector=i}get zIndex(){return Ye.get(Z.SUFFIX)||He}checkAndCreateNodeType(n){if(!(n instanceof G))return;const i=n.getToken().trim();if(i.charAt(0)==='"'&&i.charAt(i.length-1)==='"')return;let e="";if(i===Xe.PERCENTAGE)e=Pe.DIVIDED;else return i===Xe.POUND?new Ds(this._injector,i):void 0;const t=this._functionService.getExecutor(e);return t?new Ds(this._injector,i,t):(console.error(`No function ${n}`),ye.create(f.NAME))}};Vr=al([ys(0,Je),ys(1,q.Inject(q.Injector))],Vr);var ol=Object.defineProperty,ul=Object.getOwnPropertyDescriptor,cl=(n,i,e,t)=>{for(var r=t>1?void 0:t?ul(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&ol(i,e,r),r},ll=(n,i)=>(e,t)=>i(e,t,n);class fl extends Ue{constructor(i){super(i),this._operatorString=i}get nodeType(){return Z.UNION}execute(){const i=this.getChildren(),e=i[0].getValue(),t=i[1].getValue();if(e==null||t==null)throw new Error("leftNode and rightNode");let r;this._operatorString===z.COLON?r=this._unionFunction(e,t):r=h.create(f.NAME),this.setValue(r)}_unionFunction(i,e){return i.isError()||e.isError()||!i.isReferenceObject()||!e.isReferenceObject()?h.create(f.REF):(i=i,e=e,i.isCell()&&e.isCell()||i.isRow()&&e.isRow()||i.isColumn()&&e.isColumn()?i.unionBy(e):h.create(f.NAME))}}let wr=class extends Qe{constructor(n){super(),this._functionService=n}get zIndex(){return Ye.get(Z.UNION)||He}create(n){return new fl(n)}checkAndCreateNodeType(n){if(!(n instanceof G))return;const e=n.getToken().trim();if(!(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')&&e===z.COLON)return this.create(e)}};wr=cl([ll(0,Je)],wr);class hl extends Ue{constructor(i){super(i),this._operatorString=i}get nodeType(){return Z.VALUE}execute(){this.setValue(ot.create(this._operatorString))}}class vi extends Qe{get zIndex(){return Ye.get(Z.VALUE)||He}_checkValueNode(i){if(Number.isNaN(Number(i))){const e=i.trim(),t=e.charAt(0),r=e.charAt(e.length-1);if(Lt.has(e))return this.create(e);if(t==='"'&&r==='"')return this.create(e);if(t==="{"&&r==="}")return this.create(e);const s=e.toUpperCase();if(s===at.TRUE||s===at.FALSE)return this.create(s)}else return this.create(i)}create(i){return new hl(i)}checkAndCreateNodeType(i){if(!(i instanceof G))return this._checkValueNode(i)}}function ml(n){let i=n;for(;i!=null&&i.getParent();)i=i.getParent();return i}var dl=Object.defineProperty,gl=Object.getOwnPropertyDescriptor,pl=(n,i,e,t)=>{for(var r=t>1?void 0:t?gl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&dl(i,e,r),r},Be=(n,i)=>(e,t)=>i(e,t,n);let Yt=class extends b.Disposable{constructor(i,e,t,r,s,a,o,u,c,l,m){super();d(this,"_astNodeFactoryList",[]);d(this,"_refOffsetX",0);d(this,"_refOffsetY",0);this._runtimeService=i,this._astRootNodeFactory=e,this._functionNodeFactory=t,this._lambdaNodeFactory=r,this._lambdaParameterNodeFactory=s,this._operatorNodeFactory=a,this._prefixNodeFactory=o,this._referenceNodeFactory=u,this._suffixNodeFactory=c,this._unionNodeFactory=l,this._valueNodeFactory=m,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(i=>{i.dispose()}),this._astNodeFactoryList=[]}parse(i,e=0,t=0){const r=new ln(st);this._refOffsetX=e,this._refOffsetY=t;const s=this._parse(i,r);return i.hasDefinedNames()&&(s==null||s.setDefinedNames(i.getDefinedNames())),s}_lambdaParameterHandler(i,e){if(e.getLambdaId==null)return ye.create(f.VALUE);const t=e.getLambdaId(),r=new ln(st),s=this._runtimeService.getFunctionDefinitionPrivacyVar(t);if(!s)return!1;const a=[...s.keys()],o=i.getChildren(),u=o.length;for(let m=0;m<u;m++){const g=o[m];if(g instanceof G)this._parse(g,r);else return!1}const c=r.getChildren(),l=c.length;for(let m=0;m<l;m++){const g=c[m];s.set(a[m],g)}return r.setParent(e),e}_changeLetToLambda(i){const e=i.getChildren(),t=e.length;if(t%2!==1||t===0)return;const r=new G;r.setToken(It);const s=new G;s.setToken(bt);const a=[...e];for(let u=0;u<t;u++){const c=a[u];if(!(c instanceof G))return;u%2===0?c.changeToParent(r):c.changeToParent(s)}r.addChildrenFirst(s),s.setParent(r);const o=i.getParent();return o==null||o.replaceChild(i,r),r}_parse(i,e){const t=i.getChildren(),r=t.length,s=[];let a=null;const o=i.getToken().trim().toUpperCase();if(o===ha){const l=this._changeLetToLambda(i);return l!=null?this._parse(l,e):ye.create(f.ERROR)}if(o===Ne){if(a=e,r===0)return new Wc(st).setParent(e),a}else{if(o===bt){let l=this._lambdaParameterHandler(i,e);return l===!1&&(l=ye.create(f.ERROR)),l}if(a=this._checkAstNode(i),a==null)return ye.create(f.NAME)}const u=t[0];for(let l=0;l<r;l++){const m=t[l];if(Ui(u)){if(l!==0&&l!==r-1)continue}else if($c(m)&&l!==r-1)continue;let g=null;if(m instanceof G){if(g=this._parse(m,a),g===a)continue}else g=this._checkAstNode(m);if(g==null)return ye.create(f.NAME);if(g=ml(g),g==null)return;switch(g.nodeType){case Z.ERROR:return g;case Z.FUNCTION:s.push(g);break;case Z.LAMBDA:s.push(g);break;case Z.LAMBDA_PARAMETER:s.push(g);break;case Z.OPERATOR:{const p=s.pop(),R=s.pop();R&&R.setParent(g),p&&p.setParent(g),s.push(g);break}case Z.REFERENCE:g.setRefOffset(this._refOffsetX,this._refOffsetY),s.push(g);break;case Z.ROOT:s.push(g);break;case Z.UNION:s.push(g);break;case Z.VALUE:s.push(g);break;case Z.PREFIX:s.push(g);break;case Z.SUFFIX:s.push(g);break}}const c=s.length;for(let l=0;l<c;l++)s[l].setParent(a);return a}_checkAstNode(i){let e=null;const t=this._astNodeFactoryList.length;for(let r=0;r<t&&(e=this._astNodeFactoryList[r].checkAndCreateNodeType(i),e==null);r++);return e}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(b.sortRules)}};Yt=pl([Be(0,ke),Be(1,q.Inject(xi)),Be(2,q.Inject(Ar)),Be(3,q.Inject(Pr)),Be(4,q.Inject(Fi)),Be(5,q.Inject(Lr)),Be(6,q.Inject(Sr)),Be(7,q.Inject(xr)),Be(8,q.Inject(Vr)),Be(9,q.Inject(wr)),Be(10,q.Inject(vi))],Yt);class Bi extends b.Disposable{constructor(){super(...arguments);d(this,"_referenceExecutorMap",new Map)}dispose(){this._referenceExecutorMap.clear()}remove(e){this._referenceExecutorMap.delete(e)}get(e){return this._referenceExecutorMap.get(e)}has(e){return this._referenceExecutorMap.has(e)}register(e,t){this._referenceExecutorMap.set(e,t)}getReferenceExecutorMap(){return this._referenceExecutorMap}}const qt=q.createIdentifier("univer.formula.feature-calculation-manager.service");class Ti extends b.Disposable{constructor(){super(...arguments);d(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(e){var a,o,u;const{unitId:t,subUnitId:r,formulaId:s}=e;(u=(o=(a=this._otherFormulaData)==null?void 0:a[t])==null?void 0:o[r])==null||delete u[s]}get(e){var a,o;const{unitId:t,subUnitId:r,formulaId:s}=e;return(o=(a=this._otherFormulaData[t])==null?void 0:a[r])==null?void 0:o[s]}has(e){var a,o;const{unitId:t,subUnitId:r,formulaId:s}=e;return((o=(a=this._otherFormulaData[t])==null?void 0:a[r])==null?void 0:o[s])!=null}register(e){const{unitId:t,subUnitId:r,formulaId:s,item:a}=e;this._otherFormulaData[t]||(this._otherFormulaData[t]={}),this._otherFormulaData[t][r]||(this._otherFormulaData[t][r]={}),this._otherFormulaData[t][r][s]=a}batchRegister(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{const a=r[s];if(a==null)return!0;Object.keys(a).forEach(o=>{const u=a[o];if(u==null)return!0;this.register({unitId:t,subUnitId:s,formulaId:o,item:u})})})})}batchRemove(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(s=>{const a=r[s];if(a==null)return!0;Object.keys(a).forEach(o=>{this.remove({unitId:t,subUnitId:s,formulaId:o})})})})}getOtherFormulaData(){return this._otherFormulaData}}const Ir=q.createIdentifier("univer.formula.other-formula-manager.service");class en extends b.Disposable{constructor(){super(...arguments);d(this,"node");d(this,"children",[]);d(this,"parents",[]);d(this,"formula","");d(this,"row",-1);d(this,"column",-1);d(this,"rowCount",Number.NEGATIVE_INFINITY);d(this,"columnCount",Number.NEGATIVE_INFINITY);d(this,"subUnitId","");d(this,"unitId","");d(this,"rangeList",[]);d(this,"formulaId");d(this,"featureId");d(this,"getDirtyData");d(this,"_state",0)}dispose(){var e;super.dispose(),this.children=[],this.rangeList=[],this.parents=[],(e=this.node)==null||e.dispose()}disposeWithChildren(){this.children.forEach(e=>{e.disposeWithChildren()}),this.dispose()}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(e){const t=e.startRow,r=e.startColumn,s=e.endRow,a=e.endColumn;return!(this.row<t||this.row>s||this.column<r||this.column>a)}dependencyRange(e,t,r){var s,a;if(this.rangeList.length===0)return!1;for(let o=0,u=this.rangeList.length;o<u;o++){const c=this.rangeList[o],{unitId:l,sheetId:m,range:g}=c.gridRange;if(((s=t[l])==null?void 0:s[m])!=null)return!0;if(!e.has(l))continue;const p=e.get(l);if(!p.has(m))continue;const R=p.get(m),D=(a=r==null?void 0:r[l])==null?void 0:a[m];let{startRow:P,endRow:w,startColumn:v,endColumn:B}=g;Number.isNaN(P)&&(P=0),Number.isNaN(v)&&(v=0),Number.isNaN(w)&&(w=Number.POSITIVE_INFINITY),Number.isNaN(B)&&(B=Number.POSITIVE_INFINITY);for(const X of R){const{startRow:ue,startColumn:ge,endRow:Ae,endColumn:_e}=X;if(!(P>Ae||w<ue||v>_e||B<ge)){let be=!0;if(D==null||D.forValue((Ee,he)=>{if(Ee>=P&&Ee<=w&&he>=v&&he<=B)return be=!1,!1}),be)return!0}}}return!1}pushChildren(e){this.children.push(e),e._pushParent(this)}pushRangeList(e){this.rangeList.push(e)}dependency(e){if(this.rangeList.length===0)return!1;for(let t=0,r=this.rangeList.length;t<r;t++){const s=this.rangeList[t],a=s.gridRange.unitId,o=s.gridRange.sheetId,u=s.gridRange.range;if(e.unitId===a&&e.subUnitId===o&&e.inRangeData(u))return!0}return!1}_pushParent(e){this.parents.push(e)}}class fn extends b.Disposable{constructor(){super(...arguments);d(this,"_cacheItems",new Map)}dispose(){this.clear()}size(){return this._cacheItems.size}get length(){return this._cacheItems.size}add(e,t){const{token:r}=e;if(!this._cacheItems.has(r)){this._cacheItems.set(r,{unitRangeWithToken:e,treeList:[t]});return}this._cacheItems.get(r).treeList.push(t)}clear(){this._cacheItems.clear()}remove(e,t){if(!this._cacheItems.has(e))return;const r=this._cacheItems.get(e),s=r.treeList.indexOf(t);s!==-1&&r.treeList.splice(s,1)}delete(e){this._cacheItems.delete(e)}dependency(e){this._cacheItems.forEach(t=>{const{unitRangeWithToken:r,treeList:s}=t,{gridRange:a}=r,{unitId:o,sheetId:u,range:c}=a;e.unitId===o&&e.subUnitId===u&&e.inRangeData(c)&&s.forEach(l=>{if(l===e||l.children.includes(e))return!0;l.pushChildren(e)})})}}class Rl extends b.Disposable{constructor(){super(...arguments);d(this,"_otherFormulaData",{});d(this,"_featureFormulaData",new Map);d(this,"_formulaData",{})}dispose(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}getAllTree(){const e=[];return Object.values(this._otherFormulaData).forEach(t=>{if(t==null)return!0;Object.values(t).forEach(r=>{Object.values(r).forEach(s=>{s&&(s.resetState(),e.push(s))})})}),this._featureFormulaData.forEach(t=>{t&&(t.resetState(),e.push(t))}),Object.values(this._formulaData).map(t=>t==null?[]:Object.values(t).forEach(r=>r.forValue((s,a,o)=>{o&&(o.resetState(),e.push(o))}))),e}buildDependencyTree(e,t){const r=this.getAllTree();return e.length===0?(this._buildReverseDependency(r,t),r):(e instanceof fn?this._buildDependencyTree(r,e,t||[]):this._buildDependencyTree(r,e,e),r)}_buildDependencyTree(e,t,r){e.forEach(s=>{t instanceof fn?t.dependency(s):t.forEach(a=>{if(s===a||a.children.includes(s))return!0;a.dependency(s)&&a.pushChildren(s)})}),this._buildReverseDependency(e,r)}_buildReverseDependency(e,t){e.forEach(r=>{t==null||t.forEach(s=>{if(r===s||r.children.includes(s))return!0;r.dependency(s)&&r.pushChildren(s)})})}clearDependencyForTree(e){if(e==null)return;const t=e.parents,r=e.children;t.forEach(s=>{s.children=s.children.filter(a=>a!==e)}),r.forEach(s=>{s.parents=s.parents.filter(a=>a!==e)}),this._buildDependencyTree(t,r,r),e.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData.clear(),this._formulaData={}}addOtherFormulaDependency(e,t,r,s){this._otherFormulaData[e]||(this._otherFormulaData[e]={}),this._otherFormulaData[e][t]||(this._otherFormulaData[e][t]={}),this._otherFormulaData[e][t][r]=s}removeOtherFormulaDependency(e,t,r){this._otherFormulaData[e]&&this._otherFormulaData[e][t]&&r.forEach(s=>{const a=this._otherFormulaData[e][t][s];this.clearDependencyForTree(a),delete this._otherFormulaData[e][t][s]})}hasOtherFormulaDependency(e,t,r){var s,a;return((a=(s=this._otherFormulaData[e])==null?void 0:s[t])==null?void 0:a[r])!=null}addFeatureFormulaDependency(e,t){this._featureFormulaData.set(e,t)}removeFeatureFormulaDependency(e){const t=this._featureFormulaData.get(e);this.clearDependencyForTree(t),this._featureFormulaData.delete(e)}hasFeatureFormulaDependency(e){return this._featureFormulaData.has(e)}addFormulaDependency(e,t,r,s,a){this._formulaData[e]||(this._formulaData[e]={}),this._formulaData[e][t]||(this._formulaData[e][t]=new b.ObjectMatrix),this._formulaData[e][t].setValue(r,s,a)}removeFormulaDependency(e,t,r,s){if(this._formulaData[e]&&this._formulaData[e][t]){const a=this._formulaData[e][t].getValue(r,s);this.clearDependencyForTree(a),this._formulaData[e][t].realDeleteValue(r,s)}}clearFormulaDependency(e,t){this._formulaData[e]&&this._formulaData[e][t]&&this._formulaData[e][t].reset()}hasFormulaDependency(e,t,r,s){var a,o;return((o=(a=this._formulaData[e])==null?void 0:a[t])==null?void 0:o.getValue(r,s))!=null}}const jr=q.createIdentifier("univer.formula.dependency-manager.service");var _l=Object.defineProperty,El=Object.getOwnPropertyDescriptor,Cl=(n,i,e,t)=>{for(var r=t>1?void 0:t?El(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&_l(i,e,r),r},tt=(n,i)=>(e,t)=>i(e,t,n);const yl=1e5;let Tt=class extends b.Disposable{constructor(i,e,t,r,s,a,o,u){super();d(this,"_updateRangeFlattenCache",new Map);d(this,"_dirtyUnitSheetNameMap",{});d(this,"_formulaASTCache",new _t(yl));this._currentConfigService=i,this._runtimeService=e,this._otherFormulaManagerService=t,this._featureCalculationManagerService=r,this._interpreter=s,this._astTreeBuilder=a,this._lexer=o,this._dependencyManagerService=u}dispose(){this._updateRangeFlattenCache.clear(),this._formulaASTCache.clear(),this._dirtyUnitSheetNameMap={}}async generate(){this._updateRangeFlatten();const i=this._currentConfigService.getFormulaData(),e=this._otherFormulaManagerService.getOtherFormulaData(),t=this._currentConfigService.getUnitData(),{treeList:r,dependencyTreeCache:s}=await this._generateTreeList(i,e,t),a=this._getUpdateTreeListAndMakeDependency(r,s);this._checkIsCycleDependency(a)&&this._runtimeService.enableCycleDependency();const u=this._calculateRunList(a);return Promise.resolve(u)}_isCyclicUtil(i,e,t){if(!e.has(i)){e.add(i),t.add(i);for(let r=0;r<i.children.length;r++)if(!e.has(i.children[r])&&this._isCyclicUtil(i.children[r],e,t)||t.has(i.children[r]))return!0}return t.delete(i),!1}_checkIsCycleDependency(i){const e=new Set,t=new Set;for(let r=0,s=i.length;r<s;r++){const a=i[r];if(this._isCyclicUtil(a,e,t)===!0)return!0}return!1}async _generateTreeList(i,e,t){const r=Object.keys(i),s=Object.keys(e),a=[];this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(r,i,t,a),this._registerOtherFormulas(e,s,a),this._registerFeatureFormulas(a);const u=new fn;for(let c=0,l=a.length;c<l;c++){const m=a[c];if(this._runtimeService.setCurrent(m.row,m.column,m.rowCount,m.columnCount,m.subUnitId,m.unitId),m.node==null)continue;const g=await this._getRangeListByNode(m.node);for(let p=0,R=g.length;p<R;p++){const D=g[p];m.pushRangeList(D),u.add(D,m)}}return{treeList:a,dependencyTreeCache:u}}_registerFeatureFormulas(i){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((e,t)=>{const{unitId:r,subUnitId:s,dependencyRanges:a,getDirtyData:o}=e;if(this._dependencyManagerService.hasFeatureFormulaDependency(r,s,t))return!0;const u=new en;u.unitId=r,u.subUnitId=s,u.getDirtyData=o,u.featureId=t,u.rangeList=a.map(c=>({gridRange:c,token:pt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)})})),this._dependencyManagerService.addFeatureFormulaDependency(t,u),i.push(u)})}_registerOtherFormulas(i,e,t){for(const r of e){const s=i[r];if(s==null)continue;const a=Object.keys(s);for(const o of a){const u=s[o];if(u==null)continue;const c=Object.keys(u);for(const l of c){if(this._dependencyManagerService.hasOtherFormulaDependency(r,o,l))continue;const m=u[l],{f:g}=m,p=this._generateAstNode(r,g),R=new en;R.node=p,R.formula=g,R.unitId=r,R.subUnitId=o,R.formulaId=l,this._dependencyManagerService.addOtherFormulaDependency(r,o,l,R),t.push(R)}}}}_registerFormulas(i,e,t,r){for(const s of i){const a=e[s];if(a==null)continue;const o=Object.keys(a);for(const u of o)new b.ObjectMatrix(a[u]||{}).forValue((l,m,g)=>{if(g==null)return!0;const{f:p,x:R,y:D}=g;if(this._dependencyManagerService.hasFormulaDependency(s,u,l,m))return!0;const P=this._generateAstNode(s,p,R,D),w=new en,v=t[s][u];w.node=P,w.formula=p,w.unitId=s,w.subUnitId=u,w.row=l,w.column=m,w.rowCount=v.rowCount,w.columnCount=v.columnCount,this._dependencyManagerService.addFormulaDependency(s,u,l,m,w),r.push(w)})}}_updateRangeFlatten(){const i=this._currentConfigService.isForceCalculate(),e=this._currentConfigService.getDirtyRanges();if(!i){this._updateRangeFlattenCache.clear();for(let t=0;t<e.length;t++){const r=e[t],s=r.range,a=r.sheetId,o=r.unitId;this._addFlattenCache(o,a,s)}this._dirtyUnitSheetNameMap=this._currentConfigService.getDirtyNameMap()}}_generateAstNode(i,e,t=0,r=0){let s=this._formulaASTCache.get(`${i}${e}##${t}-${r}`);if(s&&!this._isDirtyDefinedForNode(s))return s;const a=this._lexer.treeBuilder(e);if(Lt.has(a))return ye.create(a);if(s=this._astTreeBuilder.parse(a,t,r),s==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${i}${e}##${t}-${r}`,s),s}_addFlattenCache(i,e,t){let r=this._updateRangeFlattenCache.get(i);r==null&&(r=new Map,this._updateRangeFlattenCache.set(i,r));let s=r.get(e);s==null&&(s=[],r.set(e,s)),s.push(t)}_isPreCalculateNode(i){return i.nodeType===Z.UNION||i.nodeType===Z.PREFIX&&i.getToken()===Re.AT||i.nodeType===Z.SUFFIX&&i.getToken()===Xe.POUND}_nodeTraversalRef(i,e){const t=i.getChildren(),r=t.length;for(let s=0;s<r;s++){const a=t[s];if(this._isPreCalculateNode(a)){e.push(a);continue}else a.nodeType===Z.REFERENCE&&e.push(a);this._nodeTraversalRef(a,e)}}_nodeTraversalReferenceFunction(i,e){const t=i.getChildren(),r=t.length;for(let s=0;s<r;s++){const a=t[s];if(a.nodeType===Z.FUNCTION&&a.isAddress()){e.push(a);continue}this._nodeTraversalReferenceFunction(a,e)}}async _executeNode(i){let e;return this._interpreter.checkAsyncNode(i)?e=await this._interpreter.executeAsync(i):e=this._interpreter.execute(i),e}async _getRangeListByNode(i){const e=[],t=[];this._nodeTraversalRef(i,e),this._nodeTraversalReferenceFunction(i,t);const r=[];for(let s=0,a=e.length;s<a;s++){const o=e[s],c=(await this._executeNode(o)).toUnitRange(),l=pt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}for(let s=0,a=t.length;s<a;s++){const o=t[s],c=(await this._executeNode(o)).toUnitRange(),l=pt({...c,sheetName:this._currentConfigService.getSheetName(c.unitId,c.sheetId)});r.push({gridRange:c,token:l})}return r}_isDirtyDefinedForNode(i){const e=this._currentConfigService.getDirtyDefinedNameMap(),t=this._currentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let s=0,a=r.length;s<a;s++){const o=r[s];if(i.hasDefinedName(o))return!0}}return!1}_getUpdateTreeListAndMakeDependency(i,e){const t=[],r=new Set,s=this._currentConfigService.isForceCalculate();let a=[];e.size()>i.length?a=this._dependencyManagerService.buildDependencyTree(i):a=this._dependencyManagerService.buildDependencyTree(e,i);for(let o=0,u=a.length;o<u;o++){const c=a[o];(s||c.dependencyRange(this._updateRangeFlattenCache,this._dirtyUnitSheetNameMap,this._currentConfigService.getExcludedRange())||this._includeTree(c))&&!r.has(c)&&(t.push(c),r.add(c))}return e.dispose(),t}_includeTreeFeature(i){var s,a;const e=i.unitId,t=i.subUnitId,r=i.featureId;if(r!=null){const o=this._currentConfigService.getDirtyUnitFeatureMap();if(((a=(s=o==null?void 0:o[e])==null?void 0:s[t])==null?void 0:a[r])!=null)return!0}return!1}_includeOtherFormula(i){var s,a;const e=i.unitId,t=i.subUnitId,r=i.formulaId;if(r!=null){const o=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((a=(s=o==null?void 0:o[e])==null?void 0:s[t])==null?void 0:a[r])!=null)return!0}return!1}_includeDefinedName(i){const e=i.node;return!!(e!=null&&this._isDirtyDefinedForNode(e))}_includeTree(i){var u,c,l;const e=i.unitId,t=i.subUnitId;if(this._includeTreeFeature(i)===!0||this._includeOtherFormula(i)===!0||this._includeDefinedName(i)===!0)return!0;const r=(c=(u=this._currentConfigService.getExcludedRange())==null?void 0:u[e])==null?void 0:c[t];let s=!1;if(r==null||r.forValue((m,g)=>{if(i.row===m&&i.column===g)return s=!0,!1}),s)return!1;if(((l=this._dirtyUnitSheetNameMap[e])==null?void 0:l[t])!=null)return!0;if(!this._updateRangeFlattenCache.has(e))return!1;const a=this._updateRangeFlattenCache.get(e);if(!a.has(t))return!1;const o=a.get(t);for(const m of o)if(i.inRangeData(m))return!0;return!1}_calculateRunList(i){let e=i;const t=[];for(;e.length>0;){const r=e.pop();if(r===void 0||r.isSkip())continue;if(r.isAdded()){t.push(r);continue}const s=[];for(let a=0,o=r.parents.length;a<o;a++){const u=r.parents[a];u.isAdded()||r.isSkip()||s.push(u)}s.length===0?(t.push(r),r.setSkip()):(r.setAdded(),e.push(r),e=e.concat(s))}return t.reverse()}};Tt=Cl([b.OnLifecycle(b.LifecycleStages.Rendered,Tt),tt(0,Ze),tt(1,ke),tt(2,Ir),tt(3,qt),tt(4,q.Inject(Pt)),tt(5,q.Inject(Yt)),tt(6,q.Inject(At)),tt(7,jr)],Tt);var Dl=Object.defineProperty,bl=Object.getOwnPropertyDescriptor,Sl=(n,i,e,t)=>{for(var r=t>1?void 0:t?bl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Dl(i,e,r),r},ft=(n,i)=>(e,t)=>i(e,t,n);const Al=1;exports.CalculateFormulaService=class extends b.Disposable{constructor(e,t,r,s,a,o,u){super();d(this,"_executionStartListener$",new Dt.Subject);d(this,"executionStartListener$",this._executionStartListener$.asObservable());d(this,"_executionCompleteListener$",new Dt.Subject);d(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());d(this,"_executionInProgressListener$",new Dt.Subject);d(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=e,this._lexer=t,this._currentConfigService=r,this._runtimeService=s,this._formulaDependencyGenerator=a,this._interpreter=o,this._astTreeBuilder=u}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(e,t){this._runtimeService.setRuntimeFeatureCellData(e,t)}setRuntimeFeatureRange(e,t){this._runtimeService.setRuntimeFeatureRange(e,t)}async execute(e){this._executionStartListener$.next(!0),this._currentConfigService.load(e),this._runtimeService.reset();const t=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||Al;for(let r=0;r<t&&(this._runtimeService.setFormulaCycleIndex(r),await this._execute(),cn.clear(),!!this._runtimeService.isCycleDependency());r++);this._runtimeService.setFormulaExecuteStage(je.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),rt.clear()}async _execute(){const e=await this._apply();if(e==null)return;const{arrayFormulaRange:t,runtimeFeatureRange:r}=e,{dirtyRanges:s,excludedCell:a}=this._getArrayFormulaDirtyRangeAndExcludedRange(t,r);return s==null||s.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(s,a),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(e,t){const r=[],s={};return Object.keys(e).forEach(a=>{const o=e[a];if(o==null)return!0;Object.keys(o).forEach(u=>{const c=new b.ObjectMatrix(o[u]);if(c==null)return!0;const l=new b.ObjectMatrix;c.forValue((m,g,p)=>{l.setValue(m,g,!0),r.push({unitId:a,sheetId:u,range:p})}),s[a]==null&&(s[a]={}),s[a][u]=l})}),Object.keys(t).forEach(a=>{const o=t[a];Object.keys(o).forEach(u=>{const c=o[u];if(c==null)return!0;Object.keys(c).forEach(l=>{const m=c[l];if(m==null)return!0;for(const g of m)r.push({unitId:u,sheetId:l,range:g})})})}),{dirtyRanges:r,excludedCell:s}}async _apply(e=!1){e?this._runtimeService.setFormulaExecuteStage(je.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(je.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const t=await this._formulaDependencyGenerator.generate(),r=this._interpreter;e?(this._runtimeService.setFormulaExecuteStage(je.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(t.length)):(this._runtimeService.setFormulaExecuteStage(je.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(t.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let s=[];for(let a=0,o=t.length;a<o;a++){if(await new Promise(g=>{const p=b.requestImmediateMacroTask(g);s.push(p)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(je.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const u=t[a],c=u.node,l=u.getDirtyData;let m;if(c==null&&l==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(u.row,u.column,u.rowCount,u.columnCount,u.subUnitId,u.unitId),l!=null&&u.featureId!=null){const{runtimeCellData:g,dirtyRanges:p}=l(u);this._runtimeService.setRuntimeFeatureCellData(u.featureId,g),this._runtimeService.setRuntimeFeatureRange(u.featureId,p)}else c!=null&&(r.checkAsyncNode(c)?m=await r.executeAsync(c):m=r.execute(c),u.formulaId!=null?this._runtimeService.setRuntimeOtherData(u.formulaId,m):this._runtimeService.setRuntimeData(m));e?(this._runtimeService.setFormulaExecuteStage(je.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(a+1)):(this._runtimeService.setFormulaExecuteStage(je.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(a+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return s.forEach(a=>a()),s=[],t.length>0?this._runtimeService.markedAsSuccessfullyExecuted():e||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(e,t=!0){const r=this._lexer.treeBuilder(e,t);if(Object.values(f).includes(r))return ye.create(r);const s=this._astTreeBuilder.parse(r);s==null||s.serialize()}};exports.CalculateFormulaService=Sl([b.OnLifecycle(b.LifecycleStages.Rendered,exports.CalculateFormulaService),ft(0,b.IConfigService),ft(1,q.Inject(At)),ft(2,Ze),ft(3,ke),ft(4,q.Inject(Tt)),ft(5,q.Inject(Pt)),ft(6,q.Inject(Yt))],exports.CalculateFormulaService);var Pl=Object.defineProperty,Ll=Object.getOwnPropertyDescriptor,xl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Ll(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Pl(i,e,r),r},ir=(n,i)=>(e,t)=>i(e,t,n);let ur=class extends b.Disposable{constructor(n,i,e,t){super(),this._commandService=n,this._calculateFormulaService=i,this._univerInstanceService=e,this._formulaDataModel=t,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((n,i)=>{if(n.id===An.id)this._calculateFormulaService.stopFormulaExecution();else if(n.id===kr.id){const e=n.params.formulaData;this._formulaDataModel.mergeFormulaData(e)}else if(n.id===Sn.id){const e=n.params;if(e.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges:t,dirtyNameMap:r,dirtyDefinedNameMap:s,dirtyUnitFeatureMap:a,dirtyUnitOtherFormulaMap:o}=e;this._calculate(!1,t,r,s,a,o)}}else if(n.id===yr.id){const e=n.params;if(e==null)return;const{arrayFormulaRange:t,arrayFormulaCellData:r}=e;this._formulaDataModel.setArrayFormulaRange(t),this._formulaDataModel.setArrayFormulaCellData(r)}}))}async _calculate(n=!1,i=[],e={},t={},r={},s={}){if(i.length===0&&Object.keys(e).length===0&&Object.keys(t).length===0&&Object.keys(r).length===0&&Object.keys(s).length===0&&n===!1)return;const a=this._formulaDataModel.getFormulaData(),o=this._formulaDataModel.getArrayFormulaCellData();this._calculateFormulaService.execute({formulaData:a,arrayFormulaCellData:o,forceCalculate:n,dirtyRanges:i,dirtyNameMap:e,dirtyDefinedNameMap:t,dirtyUnitFeatureMap:r,dirtyUnitOtherFormulaMap:s})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(n=>{const i=n.functionsExecutedState;switch(i){case yt.NOT_EXECUTED:break;case yt.STOP_EXECUTION:break;case yt.SUCCESS:this._applyFormula(n);break;case yt.INITIAL:break}this._commandService.executeCommand(Dr.id,{functionsExecutedState:i},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(n=>{this._commandService.executeCommand(Dr.id,{stageInfo:n},{onlyLocal:!0})})}async _applyFormula(n){const{unitData:i,unitOtherData:e,arrayFormulaRange:t,arrayFormulaCellData:r,clearArrayFormulaCellData:s}=n;if(!i){console.error("No sheetData from Formula Engine!");return}t&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(s),this._formulaDataModel.mergeArrayFormulaCellData(r),this._formulaDataModel.mergeArrayFormulaRange(t),this._commandService.executeCommand(yr.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(Pn.id,{unitData:fa(i),unitOtherData:e},{onlyLocal:!0})}};ur=xl([b.OnLifecycle(b.LifecycleStages.Ready,ur),ir(0,b.ICommandService),ir(1,q.Inject(exports.CalculateFormulaService)),ir(2,b.IUniverInstanceService),ir(3,q.Inject(exports.FormulaDataModel))],ur);const ki={id:"formula.mutation.register-function",type:b.CommandType.MUTATION,handler:()=>!0},$r={id:"formula.mutation.set-defined-name",type:b.CommandType.MUTATION,handler:()=>!0},Yr={id:"formula.mutation.remove-defined-name",type:b.CommandType.MUTATION,handler:()=>!0},Hr={id:"formula.mutation.set-feature-calculation",type:b.CommandType.MUTATION,handler:()=>!0},Qr={id:"formula.mutation.remove-feature-calculation",type:b.CommandType.MUTATION,handler:()=>!0},zr={id:"formula.mutation.set-other-formula",type:b.CommandType.MUTATION,handler:()=>!0},Nr={id:"formula.mutation.remove-other-formula",type:b.CommandType.MUTATION,handler:()=>!0},Ii={id:"formula.mutation.set-super-table",type:b.CommandType.MUTATION,handler:()=>!0},ji={id:"formula.mutation.remove-super-table",type:b.CommandType.MUTATION,handler:()=>!0},Vn={id:"formula.mutation.set-super-table-option",type:b.CommandType.MUTATION,handler:()=>!0};var Vl=Object.defineProperty,wl=Object.getOwnPropertyDescriptor,Ul=(n,i,e,t)=>{for(var r=t>1?void 0:t?wl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Vl(i,e,r),r},tn=(n,i)=>(e,t)=>i(e,t,n);let kt=class extends b.Disposable{constructor(n=[],i,e,t){super(),this._function=n,this._commandService=i,this._functionService=e,this._dataSyncPrimaryController=t,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[kr,yr,Sn,An,Dr,Pn,$r,Yr,Hr,Qr,zr,Nr,Ii,ji,Vn,ki].forEach(n=>{var i;this._commandService.registerCommand(n),(i=this._dataSyncPrimaryController)==null||i.registerSyncingMutations(n)})}_registerFunctions(){const n=[...Xs,...ti,...ri,...si,...li,...fi,...mi,...gi,...pi,...Ri,..._i,...Ei,...Ci,...yi,...Di,...Si].concat(this._function).map(i=>{const e=i[0],t=i[1];return new e(t)});this._functionService.registerExecutors(...n)}};kt=Ul([b.OnLifecycle(b.LifecycleStages.Ready,kt),tn(1,b.ICommandService),tn(2,Je),tn(3,q.Optional(ia.DataSyncPrimaryController))],kt);var Ol=Object.defineProperty,Ml=Object.getOwnPropertyDescriptor,Fl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Ml(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Ol(i,e,r),r},bs=(n,i)=>(e,t)=>i(e,t,n);let cr=class extends b.Disposable{constructor(n,i){super(),this._commandService=n,this._definedNamesService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===$r.id){const i=n.params;if(i==null)return;const{id:e,unitId:t,name:r,formulaOrRefString:s,comment:a,hidden:o,localSheetId:u}=i;this._definedNamesService.registerDefinedName(t,{id:e,name:r.trim(),formulaOrRefString:s.trim(),comment:a==null?void 0:a.trim(),hidden:o,localSheetId:u})}else if(n.id===Yr.id){const i=n.params;if(i==null)return;const{unitId:e,id:t}=i;this._definedNamesService.removeDefinedName(e,t)}}))}};cr=Fl([b.OnLifecycle(b.LifecycleStages.Ready,cr),bs(0,b.ICommandService),bs(1,Kt)],cr);var vl=Object.defineProperty,Bl=Object.getOwnPropertyDescriptor,Tl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Bl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&vl(i,e,r),r},Ss=(n,i)=>(e,t)=>i(e,t,n);let lr=class extends b.Disposable{constructor(n,i){super(),this._commandService=n,this._featureCalculationManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Hr.id){const i=n.params;if(i==null)return;const{featureId:e,calculationParam:t}=i;this._featureCalculationManagerService.register(e,t)}else if(n.id===Qr.id){const i=n.params;if(i==null)return;const{featureId:e}=i;this._featureCalculationManagerService.remove(e)}}))}};lr=Tl([b.OnLifecycle(b.LifecycleStages.Ready,lr),Ss(0,b.ICommandService),Ss(1,qt)],lr);var kl=Object.defineProperty,Il=Object.getOwnPropertyDescriptor,jl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Il(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&kl(i,e,r),r},rn=(n,i)=>(e,t)=>i(e,t,n);let fr=class extends b.Disposable{constructor(n,i,e){super(),this._commandService=n,this._otherFormulaManagerService=i,this._dependencyManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===zr.id){const i=n.params;if(i==null)return;const e={[i.unitId]:{[i.subUnitId]:i.formulaMap}};this._otherFormulaManagerService.batchRegister(e)}else if(n.id===Nr.id){const i=n.params;if(i==null)return;const e={};i.formulaIdList.forEach(r=>e[r]=!0);const t={[i.unitId]:{[i.subUnitId]:e}};this._otherFormulaManagerService.batchRemove(t)}}))}};fr=jl([b.OnLifecycle(b.LifecycleStages.Ready,fr),rn(0,b.ICommandService),rn(1,Ir),rn(2,jr)],fr);var $l=Object.defineProperty,Yl=Object.getOwnPropertyDescriptor,Hl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Yl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&$l(i,e,r),r},As=(n,i)=>(e,t)=>i(e,t,n);let hr=class extends b.Disposable{constructor(n,i){super(),this._commandService=n,this._superTableService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===$r.id){const i=n.params;if(i==null)return;const{unitId:e,tableName:t,reference:r}=i;this._superTableService.registerTable(e,t,r)}else if(n.id===Yr.id){const i=n.params;if(i==null)return;const{unitId:e,tableName:t}=i;this._superTableService.remove(e,t)}else if(n.id===Vn.id){const i=n.params;if(i==null)return;const{tableOption:e,tableOptionType:t}=i;this._superTableService.registerTableOptionMap(e,t)}}))}};hr=Hl([b.OnLifecycle(b.LifecycleStages.Ready,hr),As(0,b.ICommandService),As(1,xn)],hr);class Ql extends b.Disposable{constructor(){super(...arguments);d(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(e){this._dirtyConversionMap.delete(e)}get(e){return this._dirtyConversionMap.get(e)}has(e){return this._dirtyConversionMap.has(e)}register(e,t){this._dirtyConversionMap.set(e,t)}getDirtyConversionMap(){return this._dirtyConversionMap}}const $i=q.createIdentifier("univer.formula.active-dirty-manager.service");var zl=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Wl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Nl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&zl(i,e,r),r},nn=(n,i)=>(e,t)=>i(e,t,n);let mr=class extends b.Disposable{constructor(n,i){super(),this._commandService=n,this._dependencyManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===Qr.id||n.id===Hr.id){const i=n.params;if(i==null)return;const{featureId:e}=i;this._dependencyManagerService.removeFeatureFormulaDependency(e)}else if(n.id===Nr.id){const i=n.params;if(i==null)return;this._dependencyManagerService.removeOtherFormulaDependency(i.unitId,i.subUnitId,i.formulaIdList)}else if(n.id===zr.id){const i=n.params;if(i==null)return;const e=i.formulaMap,t=[];Object.keys(e).forEach(r=>{t.push(r)}),this._dependencyManagerService.removeOtherFormulaDependency(i.unitId,i.subUnitId,t)}else if(n.id===kr.id){const i=n.params.formulaData;Object.keys(i).forEach(e=>{if(i[e]==null)return!0;Object.keys(i[e]).forEach(t=>{const r=i[e][t];if(r==null)return this._dependencyManagerService.clearFormulaDependency(e,t),!0;new b.ObjectMatrix(r).forValue((s,a)=>{this._dependencyManagerService.removeFormulaDependency(e,t,s,a)})})})}}))}};mr=Wl([b.OnLifecycle(b.LifecycleStages.Ready,mr),nn(0,b.ICommandService),nn(1,qt),nn(1,jr)],mr);var Gl=Object.defineProperty,Xl=Object.getOwnPropertyDescriptor,Kl=(n,i,e,t)=>{for(var r=t>1?void 0:t?Xl(i,e):i,s=n.length-1,a;s>=0;s--)(a=n[s])&&(r=(t?a(i,e,r):a(r))||r);return t&&r&&Gl(i,e,r),r},ql=(n,i)=>(e,t)=>i(e,t,n);const Zl="base-formula-engine";var sn;exports.UniverFormulaEnginePlugin=(sn=class extends b.Plugin{constructor(i,e){super(),this._config=i,this._injector=e}onStarting(){this._initialize()}_initialize(){var e;const i=[[Je,{useClass:Vi}],[qt,{useClass:Bi}],[Kt,{useClass:Li}],[$i,{useClass:Ql}],[xn,{useClass:Jc}],[exports.FormulaDataModel],[Or],[kt,{useFactory:()=>{var t;return this._injector.createInstance(kt,(t=this._config)==null?void 0:t.function)}}],[lr],[cr],[hr]];(e=this._config)!=null&&e.notExecuteFormula||i.push([exports.CalculateFormulaService],[Ir,{useClass:Ti}],[ke,{useClass:exports.FormulaRuntimeService}],[Ze,{useClass:exports.FormulaCurrentConfigService}],[jr,{useClass:Rl}],[ur],[fr],[mr],[Tt],[Pt],[Yt],[At],[xi],[Ar],[Pr],[Fi],[Lr],[Sr],[xr],[Vr],[wr],[vi]),i.forEach(t=>this._injector.add(t))}},d(sn,"pluginName",Zl),sn);exports.UniverFormulaEnginePlugin=Kl([ql(1,q.Inject(q.Injector))],exports.UniverFormulaEnginePlugin);function Yi(n,i){const e=n.sequenceNodesBuilder(i);return!(!e||e.every(t=>typeof t=="string"||t.nodeType!==Le.REFERENCE))}function Jl(n,i,e,t,r,s){if(!Yi(n,i))return i;const a=n.sequenceNodesBuilder(i),o=(p,R)=>({startRow:p,endRow:p,startColumn:R,endColumn:R}),u=o(e,t),c=b.Rectangle.getRelativeRange(o(r,s),u),l=b.Tools.deepClone(a),m=Array.isArray(l)?l.map(p=>{if(typeof p=="object"&&p.nodeType===Le.REFERENCE){const R=$e(p.token),D=b.Rectangle.getPositionRange(c,R.range),P=Ke(D);return{...p,token:P}}return p}):l;return`=${m&&pr(m)}`}exports.ArrayValueObject=me;exports.AsyncArrayObject=Ws;exports.AsyncObject=Ns;exports.BaseFunction=L;exports.BaseReferenceObject=wt;exports.BaseValueObject=qe;exports.BooleanValue=at;exports.BooleanValueObject=j;exports.CustomFunction=to;exports.DefinedNamesService=Li;exports.ERROR_TYPE_SET=Lt;exports.ErrorType=f;exports.ErrorValueObject=h;exports.FUNCTION_NAMES_ARRAY=Ks;exports.FUNCTION_NAMES_COMPATIBILITY=Ct;exports.FUNCTION_NAMES_CUBE=ni;exports.FUNCTION_NAMES_DATABASE=ii;exports.FUNCTION_NAMES_DATE=pe;exports.FUNCTION_NAMES_ENGINEERING=hi;exports.FUNCTION_NAMES_FINANCIAL=di;exports.FUNCTION_NAMES_INFORMATION=we;exports.FUNCTION_NAMES_LOGICAL=nt;exports.FUNCTION_NAMES_LOOKUP=Se;exports.FUNCTION_NAMES_MATH=oe;exports.FUNCTION_NAMES_STATISTICAL=le;exports.FUNCTION_NAMES_TEXT=We;exports.FUNCTION_NAMES_UNIVER=bi;exports.FUNCTION_NAMES_WEB=Ai;exports.FeatureCalculationManagerService=Bi;exports.FormulaExecuteStageType=je;exports.FormulaExecutedStateType=yt;exports.FunctionService=Vi;exports.FunctionType=Ls;exports.IActiveDirtyManagerService=$i;exports.IDefinedNamesService=Kt;exports.IFeatureCalculationManagerService=qt;exports.IFormulaCurrentConfigService=Ze;exports.IFormulaRuntimeService=ke;exports.IFunctionService=Je;exports.IOtherFormulaManagerService=Ir;exports.LexerNode=G;exports.LexerTreeBuilder=Or;exports.NullValueObject=ie;exports.NumberValueObject=y;exports.OtherFormulaManagerService=Ti;exports.RangeReferenceObject=jt;exports.RegisterFunctionMutation=ki;exports.RemoveDefinedNameMutation=Yr;exports.RemoveFeatureCalculationMutation=Qr;exports.RemoveOtherFormulaMutation=Nr;exports.RemoveSuperTableMutation=ji;exports.SetArrayFormulaDataMutation=yr;exports.SetDefinedNameMutation=$r;exports.SetFeatureCalculationMutation=Hr;exports.SetFormulaCalculationNotificationMutation=Dr;exports.SetFormulaCalculationResultMutation=Pn;exports.SetFormulaCalculationStartMutation=Sn;exports.SetFormulaCalculationStopMutation=An;exports.SetFormulaDataMutation=kr;exports.SetOtherFormulaMutation=zr;exports.SetSuperTableMutation=Ii;exports.SetSuperTableOptionMutation=Vn;exports.StringValueObject=fe;exports.ValueObjectFactory=ot;exports.compareToken=O;exports.convertUnitDataToRuntime=ws;exports.deserializeRangeForR1C1=Gs;exports.deserializeRangeWithSheet=$e;exports.functionArray=Xs;exports.functionCompatibility=ti;exports.functionCube=ri;exports.functionDatabase=si;exports.functionDate=li;exports.functionEngineering=fi;exports.functionFinancial=mi;exports.functionInformation=gi;exports.functionLogical=pi;exports.functionLookup=Ri;exports.functionMath=_i;exports.functionMeta=Ei;exports.functionStatistical=Ci;exports.functionText=yi;exports.functionUniver=Di;exports.functionWeb=Si;exports.generateStringWithSequence=pr;exports.getAbsoluteRefTypeWitString=Ea;exports.getAbsoluteRefTypeWithSingleString=Bt;exports.getRangeWithRefsString=Ca;exports.handleNumfmtInCell=Ya;exports.includeFormulaLexerToken=Vs;exports.initSheetFormulaData=Pi;exports.isFormulaLexerToken=vt;exports.isFormulaTransformable=Yi;exports.isInDirtyRange=Ps;exports.isReferenceString=Ts;exports.isReferenceStringWithEffectiveColumn=Rr;exports.isReferenceStrings=$s;exports.matchRefDrawToken=la;exports.matchToken=z;exports.normalizeSheetName=ca;exports.operatorToken=se;exports.sequenceNodeType=Le;exports.serializeRange=Ke;exports.serializeRangeToRefString=pt;exports.serializeRangeWithSheet=ks;exports.serializeRangeWithSpreadsheet=Is;exports.singleReferenceToGrid=or;exports.strip=un;exports.stripErrorMargin=Hs;exports.transformFormula=Jl;
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):currentValue.isNull()?CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,"",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");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){var _a24;const featureKeys=Object.keys(this._runtimeFeatureCellData);for(const featureId of featureKeys){const data=this._runtimeFeatureCellData[featureId],runtimeFeatureCellData=(_a24=data==null?void 0:data[this.getUnitId()])==null?void 0:_a24[this.getSheetId()];if(runtimeFeatureCellData==null)continue;const value=runtimeFeatureCellData.getValue(row,column);if(value!=null)return value}}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");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);return typeof endDateSerialNumber!="number"?endDateSerialNumber:(methodObject.isString()&&(methodObject=methodObject.convertToNumberObjectValue()),methodObject.isError()?methodObject:this._getResult(startDateSerialNumber,endDateSerialNumber,methodObject))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(startDateSerialNumber,endDateSerialNumber,methodObject){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;+methodObject.getValue()?(startDay===31&&(startDay=30),endDay===31&&(endDay=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,totalDays=daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths;return NumberValueObject.create(totalDays)}};__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;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=this._checkArrayError(startDate);if(_startDate.isError())return _startDate;const _endDate=this._checkArrayError(endDate);if(_endDate.isError())return _endDate;if(_basis=this._checkArrayError(_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);switch(basisValue){case 0:return this._getResultByNASD(startDateSerialNumber,endDateSerialNumber);case 1:return this._getResultByActual(startDateSerialNumber,endDateSerialNumber);case 2:return NumberValueObject.create(Math.abs(endDateSerialNumber-startDateSerialNumber)/360);case 3:return NumberValueObject.create(Math.abs(endDateSerialNumber-startDateSerialNumber)/365);case 4:return this._getResultByEuropean(startDateSerialNumber,endDateSerialNumber);default:return NumberValueObject.create(0)}}_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}_getResultByNASD(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;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,result=Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths)/360;return NumberValueObject.create(result)}_getResultByActual(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)}const result=totalDays/((endYearLastDaySerialNumber-startYearFirstDaySerialNumber+1)/totalYear);return NumberValueObject.create(result)}_getResultByEuropean(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,result=Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths)/360;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]],functionEngineering=[];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||{});const functionFinancial=[];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||{}),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()||_value.isBoolean()||!_value.isNumber()&&(_value=_value.convertToNumberObjectValue(),!_value.isNumber()))return ErrorValueObject.create(ErrorType$1.VALUE);const val=_value.getValue(),floored=Math.floor(Math.abs(val));return BooleanValueObject.create(floored%2===0)}};__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()||_value.isBoolean()||!_value.isNumber()&&(_value=_value.convertToNumberObjectValue(),!_value.isNumber()))return ErrorValueObject.create(ErrorType$1.VALUE);const val=_value.getValue(),floored=Math.floor(Math.abs(val));return BooleanValueObject.create(floored%2!==0)}};__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],[Iseven,FUNCTION_NAMES_INFORMATION.ISEVEN],[Isodd,FUNCTION_NAMES_INFORMATION.ISODD],[Iserror,FUNCTION_NAMES_INFORMATION.ISERROR],[Islogical,FUNCTION_NAMES_INFORMATION.ISLOGICAL],[Isna,FUNCTION_NAMES_INFORMATION.ISNA],[Isnontext,FUNCTION_NAMES_INFORMATION.ISNONTEXT],[Isnumber,FUNCTION_NAMES_INFORMATION.ISNUMBER],[Isref,FUNCTION_NAMES_INFORMATION.ISREF],[Istext,FUNCTION_NAMES_INFORMATION.ISTEXT],[Type,FUNCTION_NAMES_INFORMATION.TYPE]],_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;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 _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 _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 _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++){const value=lambda.execute(NumberValueObject.create(r+1),NumberValueObject.create(c+1));result[r][c]=value}}return new AsyncArrayObject(result)}isAsync(){return!0}};__name(_Makearray,"Makearray");let Makearray=_Makearray;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 functionLogical=[[And,FUNCTION_NAMES_LOGICAL.AND],[If,FUNCTION_NAMES_LOGICAL.IF],[Lambda,FUNCTION_NAMES_LOGICAL.LAMBDA],[Makearray,FUNCTION_NAMES_LOGICAL.MAKEARRAY],[Or,FUNCTION_NAMES_LOGICAL.OR],[Iferror,FUNCTION_NAMES_LOGICAL.IFERROR]];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){let _refText=refText;if(_refText.isError())return _refText;let a1Value=this.getZeroOrOneByOneDefault(a1);if(a1Value==null&&(a1Value=1),_refText.isArray()){const refTextArray=_refText;if(refTextArray.getRowCount()===1&&refTextArray.getColumnCount()===1)_refText=refTextArray.getFirstCell();else return refTextArray.map(()=>ErrorValueObject.create(ErrorType$1.VALUE))}if(!_refText.isString())return ErrorValueObject.create(ErrorType$1.REF);const refTextV=this._convertToDefinedName(_refText.getValue());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,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 _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 _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 _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],[Log,FUNCTION_NAMES_MATH.LOG],[Ln,FUNCTION_NAMES_MATH.LN],[Log10,FUNCTION_NAMES_MATH.LOG10],[Mod,FUNCTION_NAMES_MATH.MOD],[Mround,FUNCTION_NAMES_MATH.MROUND],[Power,FUNCTION_NAMES_MATH.POWER],[Odd,FUNCTION_NAMES_MATH.ODD],[Pi,FUNCTION_NAMES_MATH.PI],[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],[Sumsq,FUNCTION_NAMES_MATH.SUMSQ],[Sumx2my2,FUNCTION_NAMES_MATH.SUMX2MY2],[Sumx2py2,FUNCTION_NAMES_MATH.SUMX2PY2],[Sumxmy2,FUNCTION_NAMES_MATH.SUMXMY2],[Sumproduct,FUNCTION_NAMES_MATH.SUMPRODUCT],[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]],_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 _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;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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 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,_c,_d,_e;const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column;if(rowIndex===startRow&&columnIndex===startColumn)runtimeArrayUnitData.setValue(row,column,errorObject);else if(((_c=(_b=(_a24=unitData2[unitId])==null?void 0:_a24[sheetId])==null?void 0:_b.cellData)==null?void 0:_c.getValue(currentRow,currentColumn))!=null){const cell=(_e=(_d=unitData2[unitId])==null?void 0:_d[sheetId])==null?void 0:_e.cellData.getValue(currentRow,currentColumn);runtimeArrayUnitData.setValue(currentRow,currentColumn,cell)}else 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);if(!core.isNullCell(cell)||!core.isNullCell(arrayDataCell)&&!this._isInArrayFormulaRange(unitArrayFormulaRange,r,c)||!core.isNullCell(currentCell))return!0}return!1}_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()?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);this._checkIsCycleDependency(updateTreeList)&&this._runtimeService.enableCycleDependency();const finalTreeList=this._calculateRunList(updateTreeList);return 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)=>{const{unitId,subUnitId,dependencyRanges,getDirtyData}=params;if(this._dependencyManagerService.hasFeatureFormulaDependency(unitId,subUnitId,featureId))return this._makePassiveDirtyForFeatureFormulas(this._dependencyManagerService.getFeatureFormulaDependency(unitId,subUnitId,featureId)),!0;const FDtree=new FormulaDependencyTree;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),this._makePassiveDirtyForFeatureFormulas(FDtree),treeList.push(FDtree)})})})}_makePassiveDirtyForFeatureFormulas(tree){var _a24,_b;const featureId=tree.featureId;if(featureId==null){tree.isPassive=!0;return}const featureMap=this._currentConfigService.getDirtyUnitFeatureMap();if(featureMap==null){tree.isPassive=!0;return}if(((_b=(_a24=featureMap[tree.unitId])==null?void 0:_a24[tree.subUnitId])==null?void 0:_b[featureId])==null){tree.isPassive=!0;return}tree.isPassive=!1}_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}_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(tree,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;