@univerjs/engine-formula 0.2.11 → 0.2.13

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 (94) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +2101 -501
  3. package/lib/types/basics/__tests__/math.spec.d.ts +16 -0
  4. package/lib/types/basics/math.d.ts +21 -0
  5. package/lib/types/controller/config.schema.d.ts +10 -0
  6. package/lib/types/controller/formula.controller.d.ts +3 -5
  7. package/lib/types/controller/set-dependency.controller.d.ts +1 -1
  8. package/lib/types/engine/analysis/__tests__/create-command-test-bed.d.ts +6 -6
  9. package/lib/types/engine/dependency/dependency-tree.d.ts +22 -2
  10. package/lib/types/engine/dependency/range-block-util.d.ts +15 -0
  11. package/lib/types/engine/reference-object/base-reference-object.d.ts +6 -6
  12. package/lib/types/engine/value-object/array-value-object.d.ts +1 -1
  13. package/lib/types/engine/value-object/lambda-value-object.d.ts +3 -2
  14. package/lib/types/functions/__tests__/create-function-test-bed.d.ts +6 -6
  15. package/lib/types/functions/base-function.d.ts +1 -1
  16. package/lib/types/functions/information/isformula/__tests__/index.spec.d.ts +16 -0
  17. package/lib/types/functions/information/isformula/index.d.ts +9 -0
  18. package/lib/types/functions/information/n/__tests__/index.spec.d.ts +16 -0
  19. package/lib/types/functions/information/n/index.d.ts +7 -0
  20. package/lib/types/functions/information/na/__tests__/index.spec.d.ts +16 -0
  21. package/lib/types/functions/information/na/index.d.ts +7 -0
  22. package/lib/types/functions/logical/bycol/__test__/index.spec.d.ts +16 -0
  23. package/lib/types/functions/logical/bycol/index.d.ts +7 -0
  24. package/lib/types/functions/logical/byrow/__test__/index.spec.d.ts +16 -0
  25. package/lib/types/functions/logical/byrow/index.d.ts +7 -0
  26. package/lib/types/functions/logical/function-map.d.ts +1 -1
  27. package/lib/types/functions/logical/map/__test__/index.spec.d.ts +16 -0
  28. package/lib/types/functions/logical/map/index.d.ts +8 -0
  29. package/lib/types/functions/logical/reduce/__test__/index.spec.d.ts +16 -0
  30. package/lib/types/functions/logical/reduce/index.d.ts +8 -0
  31. package/lib/types/functions/logical/scan/__test__/index.spec.d.ts +16 -0
  32. package/lib/types/functions/logical/scan/index.d.ts +8 -0
  33. package/lib/types/functions/lookup/drop/__tests__/index.spec.d.ts +16 -0
  34. package/lib/types/functions/lookup/drop/index.d.ts +9 -0
  35. package/lib/types/functions/lookup/expand/__tests__/index.spec.d.ts +16 -0
  36. package/lib/types/functions/lookup/expand/index.d.ts +9 -0
  37. package/lib/types/functions/lookup/function-map.d.ts +1 -1
  38. package/lib/types/functions/lookup/take/__tests__/index.spec.d.ts +16 -0
  39. package/lib/types/functions/lookup/take/index.d.ts +9 -0
  40. package/lib/types/functions/lookup/tocol/__tests__/index.spec.d.ts +16 -0
  41. package/lib/types/functions/lookup/tocol/index.d.ts +10 -0
  42. package/lib/types/functions/lookup/torow/__tests__/index.spec.d.ts +16 -0
  43. package/lib/types/functions/lookup/torow/index.d.ts +10 -0
  44. package/lib/types/functions/lookup/wrapcols/__tests__/index.spec.d.ts +16 -0
  45. package/lib/types/functions/lookup/wrapcols/index.d.ts +8 -0
  46. package/lib/types/functions/lookup/wraprows/__tests__/index.spec.d.ts +16 -0
  47. package/lib/types/functions/lookup/wraprows/index.d.ts +8 -0
  48. package/lib/types/functions/math/combin/__tests__/index.spec.d.ts +16 -0
  49. package/lib/types/functions/math/combin/index.d.ts +7 -0
  50. package/lib/types/functions/math/combina/__tests__/index.spec.d.ts +16 -0
  51. package/lib/types/functions/math/combina/index.d.ts +7 -0
  52. package/lib/types/functions/math/fact/__tests__/index.spec.d.ts +16 -0
  53. package/lib/types/functions/math/fact/index.d.ts +8 -0
  54. package/lib/types/functions/math/factdouble/__tests__/index.spec.d.ts +16 -0
  55. package/lib/types/functions/math/factdouble/index.d.ts +8 -0
  56. package/lib/types/functions/math/gcd/__tests__/index.spec.d.ts +16 -0
  57. package/lib/types/functions/math/gcd/index.d.ts +8 -0
  58. package/lib/types/functions/math/int/__tests__/index.spec.d.ts +16 -0
  59. package/lib/types/functions/math/int/index.d.ts +8 -0
  60. package/lib/types/functions/math/lcm/__tests__/index.spec.d.ts +16 -0
  61. package/lib/types/functions/math/lcm/index.d.ts +8 -0
  62. package/lib/types/functions/math/mdeterm/__tests__/index.spec.d.ts +16 -0
  63. package/lib/types/functions/math/mdeterm/index.d.ts +7 -0
  64. package/lib/types/functions/math/minverse/__tests__/index.spec.d.ts +16 -0
  65. package/lib/types/functions/math/minverse/index.d.ts +7 -0
  66. package/lib/types/functions/math/mmult/__tests__/index.spec.d.ts +16 -0
  67. package/lib/types/functions/math/mmult/index.d.ts +9 -0
  68. package/lib/types/functions/math/mod/index.d.ts +1 -1
  69. package/lib/types/functions/math/multinomial/__tests__/index.spec.d.ts +16 -0
  70. package/lib/types/functions/math/multinomial/index.d.ts +8 -0
  71. package/lib/types/functions/math/munit/__tests__/index.spec.d.ts +16 -0
  72. package/lib/types/functions/math/munit/index.d.ts +8 -0
  73. package/lib/types/functions/math/quotient/__tests__/index.spec.d.ts +16 -0
  74. package/lib/types/functions/math/quotient/index.d.ts +7 -0
  75. package/lib/types/functions/math/sequence/__tests__/index.spec.d.ts +16 -0
  76. package/lib/types/functions/math/sequence/index.d.ts +8 -0
  77. package/lib/types/functions/math/seriessum/__tests__/index.spec.d.ts +16 -0
  78. package/lib/types/functions/math/seriessum/index.d.ts +8 -0
  79. package/lib/types/functions/math/sign/__tests__/index.spec.d.ts +16 -0
  80. package/lib/types/functions/math/sign/index.d.ts +8 -0
  81. package/lib/types/models/__tests__/create-command-test-bed.d.ts +6 -6
  82. package/lib/types/models/formula-data.model.d.ts +3 -2
  83. package/lib/types/plugin.d.ts +5 -10
  84. package/lib/types/services/active-dirty-manager.service.d.ts +1 -1
  85. package/lib/types/services/current-data.service.d.ts +1 -1
  86. package/lib/types/services/defined-names.service.d.ts +1 -1
  87. package/lib/types/services/dependency-manager.service.d.ts +5 -10
  88. package/lib/types/services/feature-calculation-manager.service.d.ts +1 -1
  89. package/lib/types/services/function.service.d.ts +1 -1
  90. package/lib/types/services/other-formula-manager.service.d.ts +1 -1
  91. package/lib/types/services/runtime.service.d.ts +1 -1
  92. package/lib/types/services/super-table.service.d.ts +1 -1
  93. package/lib/umd/index.js +2 -2
  94. package/package.json +9 -9
package/lib/es/index.js CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { ObjectMatrix, LRUMap, hashAlgorithm, Tools, AbsoluteRefType, RANGE_TYPE, Disposable, moveRangeByOffset, isValidRange, numfmt, isRealNum, DEFAULT_EMPTY_DOCUMENT_VALUE, isNullCell, CellValueType, BooleanNumber, isFormulaString, isFormulaId, Inject, UniverInstanceType, IUniverInstanceService, CommandType, createIdentifier, toDisposable, Injector, sortRules, OnLifecycle, LifecycleStages, requestImmediateMacroTask, IConfigService, ICommandService, Optional, Plugin } from "@univerjs/core";
5
+ import { ObjectMatrix, LRUMap, hashAlgorithm, Tools, AbsoluteRefType, RANGE_TYPE, Disposable, moveRangeByOffset, isValidRange, DEFAULT_EMPTY_DOCUMENT_VALUE, DataStreamTreeTokenType, numfmt, isRealNum, isNullCell, CellValueType, BooleanNumber, isFormulaString, isFormulaId, Inject, UniverInstanceType, IUniverInstanceService, CommandType, createIdentifier, toDisposable, Injector, sortRules, OnLifecycle, LifecycleStages, requestImmediateMacroTask, IConfigService, ICommandService, Optional, Plugin } from "@univerjs/core";
6
6
  import { Subject } from "rxjs";
7
7
  import { DataSyncPrimaryController } from "@univerjs/rpc";
8
8
  function isInDirtyRange(dirtyRanges, unitId, sheetId, row, column) {
@@ -114,10 +114,10 @@ const DEFAULT_TOKEN_TYPE_PARAMETER = "P_1", DEFAULT_TOKEN_TYPE_ROOT = "R_1", DEF
114
114
  __publicField(this, "_definedNames", []);
115
115
  }
116
116
  dispose() {
117
- var _a25;
117
+ var _a26;
118
118
  this._children.forEach((node) => {
119
119
  typeof node != "string" && node.dispose();
120
- }), (_a25 = this._functionDefinitionPrivacyVar) == null || _a25.clear(), this._parent = null;
120
+ }), (_a26 = this._functionDefinitionPrivacyVar) == null || _a26.clear(), this._parent = null;
121
121
  }
122
122
  getDefinedNames() {
123
123
  return this._definedNames;
@@ -708,7 +708,7 @@ const FORMULA_CACHE_LRU_COUNT$2 = 1e5, FormulaLexerNodeCache = new FormulaAstLRU
708
708
  }
709
709
  // eslint-disable-next-line complexity
710
710
  _suffixExpressionHandler(lexerNode) {
711
- var _a25;
711
+ var _a26;
712
712
  const children = lexerNode.getChildren();
713
713
  if (!children)
714
714
  return !1;
@@ -728,7 +728,7 @@ const FORMULA_CACHE_LRU_COUNT$2 = 1e5, FormulaLexerNodeCache = new FormulaAstLRU
728
728
  if (char !== operatorToken.PLUS && char !== operatorToken.MINUS && this._deletePlusForPreNode(children[i - 1]))
729
729
  return !1;
730
730
  for (; symbolStack.length > 0; ) {
731
- const lastSymbol = (_a25 = symbolStack[symbolStack.length - 1]) == null ? void 0 : _a25.trim();
731
+ const lastSymbol = (_a26 = symbolStack[symbolStack.length - 1]) == null ? void 0 : _a26.trim();
732
732
  if (!lastSymbol || lastSymbol === matchToken.OPEN_BRACKET)
733
733
  break;
734
734
  const lastSymbolPriority = OPERATOR_TOKEN_PRIORITY.get(lastSymbol), charPriority = OPERATOR_TOKEN_PRIORITY.get(char);
@@ -764,11 +764,11 @@ const FORMULA_CACHE_LRU_COUNT$2 = 1e5, FormulaLexerNodeCache = new FormulaAstLRU
764
764
  return lexerNode.setChildren(baseStack), !0;
765
765
  }
766
766
  _processSuffixExpressionCloseBracket(baseStack, symbolStack, children, i) {
767
- var _a25;
767
+ var _a26;
768
768
  if (this._checkOpenBracket(children[i - 1]) || this._checkOperator(children[i - 1]))
769
769
  return !1;
770
770
  for (; symbolStack.length > 0; ) {
771
- const lastSymbol = (_a25 = symbolStack[symbolStack.length - 1]) == null ? void 0 : _a25.trim();
771
+ const lastSymbol = (_a26 = symbolStack[symbolStack.length - 1]) == null ? void 0 : _a26.trim();
772
772
  if (!lastSymbol)
773
773
  break;
774
774
  if (lastSymbol === matchToken.OPEN_BRACKET) {
@@ -880,8 +880,8 @@ const FORMULA_CACHE_LRU_COUNT$2 = 1e5, FormulaLexerNodeCache = new FormulaAstLRU
880
880
  return parent ? (this._currentLexerNode = parent, !0) : !1;
881
881
  }
882
882
  _setAncestorCurrentLexerNode() {
883
- var _a25, _b, _c, _d, _e, _f;
884
- const parent = (_a25 = this._currentLexerNode) == null ? void 0 : _a25.getParent();
883
+ var _a26, _b, _c, _d, _e, _f;
884
+ const parent = (_a26 = this._currentLexerNode) == null ? void 0 : _a26.getParent();
885
885
  let state = !1;
886
886
  if (parent && parent.getToken() === DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER) {
887
887
  if ((_b = parent == null ? void 0 : parent.getParent()) != null && _b.getParent()) {
@@ -1013,7 +1013,7 @@ const FORMULA_CACHE_LRU_COUNT$2 = 1e5, FormulaLexerNodeCache = new FormulaAstLRU
1013
1013
  this._pushNodeToChildren(currentString), this._openBracket(
1014
1014
  0
1015
1015
  /* NORMAL */
1016
- );
1016
+ ), this._resetSegment();
1017
1017
  else if (currentString === matchToken.CLOSE_BRACKET && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) {
1018
1018
  this._pushNodeToChildren(this._segment), this._resetSegment();
1019
1019
  const currentBracket = this._getCurrentBracket();
@@ -1199,6 +1199,32 @@ const _ObjectClassType = class _ObjectClassType extends Disposable {
1199
1199
  };
1200
1200
  __name(_ObjectClassType, "ObjectClassType");
1201
1201
  let ObjectClassType = _ObjectClassType;
1202
+ function getCellValue(cell) {
1203
+ if (cell === null)
1204
+ return 0;
1205
+ if (cell != null && cell.p) {
1206
+ const body = cell == null ? void 0 : cell.p.body;
1207
+ if (body == null)
1208
+ return 0;
1209
+ const data = body.dataStream;
1210
+ return data.substring(data.length - 2, data.length) === DEFAULT_EMPTY_DOCUMENT_VALUE ? data.substring(0, data.length - 2).replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_END, "") : data;
1211
+ }
1212
+ return (cell == null ? void 0 : cell.v) || 0;
1213
+ }
1214
+ __name(getCellValue, "getCellValue");
1215
+ function getRuntimeFeatureCell(row, column, sheetId, unitId, runtimeFeatureCellData) {
1216
+ var _a26;
1217
+ const featureKeys = Object.keys(runtimeFeatureCellData);
1218
+ for (const featureId of featureKeys) {
1219
+ const data = runtimeFeatureCellData[featureId], CellData = (_a26 = data == null ? void 0 : data[unitId]) == null ? void 0 : _a26[sheetId];
1220
+ if (CellData == null)
1221
+ continue;
1222
+ const value = CellData.getValue(row, column);
1223
+ if (value != null)
1224
+ return value;
1225
+ }
1226
+ }
1227
+ __name(getRuntimeFeatureCell, "getRuntimeFeatureCell");
1202
1228
  var BooleanValue = /* @__PURE__ */ ((BooleanValue2) => (BooleanValue2.FALSE = "FALSE", BooleanValue2.TRUE = "TRUE", BooleanValue2))(BooleanValue || {}), AstNodePromiseType = /* @__PURE__ */ ((AstNodePromiseType2) => (AstNodePromiseType2[AstNodePromiseType2.SUCCESS = 0] = "SUCCESS", AstNodePromiseType2[AstNodePromiseType2.ERROR = 1] = "ERROR", AstNodePromiseType2))(AstNodePromiseType || {}), TableOptionType = /* @__PURE__ */ ((TableOptionType2) => (TableOptionType2.ALL = "#All", TableOptionType2.DATA = "#Data", TableOptionType2.HEADERS = "#Headers", TableOptionType2.TOTALS = "#Totals", TableOptionType2))(TableOptionType || {}), ConcatenateType = /* @__PURE__ */ ((ConcatenateType2) => (ConcatenateType2[ConcatenateType2.FRONT = 0] = "FRONT", ConcatenateType2[ConcatenateType2.BACK = 1] = "BACK", ConcatenateType2))(ConcatenateType || {});
1203
1229
  const _InvertedIndexCache = class _InvertedIndexCache {
1204
1230
  constructor() {
@@ -1230,12 +1256,12 @@ const _InvertedIndexCache = class _InvertedIndexCache {
1230
1256
  cellList == null && (cellList = /* @__PURE__ */ new Set(), columnMap.set(value, cellList)), cellList.add(row);
1231
1257
  }
1232
1258
  getCellValuePositions(unitId, sheetId, column) {
1233
- var _a25, _b;
1234
- return (_b = (_a25 = this._cache.get(unitId)) == null ? void 0 : _a25.get(sheetId)) == null ? void 0 : _b.get(column);
1259
+ var _a26, _b;
1260
+ return (_b = (_a26 = this._cache.get(unitId)) == null ? void 0 : _a26.get(sheetId)) == null ? void 0 : _b.get(column);
1235
1261
  }
1236
1262
  getCellPositions(unitId, sheetId, column, value) {
1237
- var _a25, _b, _c;
1238
- return (_c = (_b = (_a25 = this._cache.get(unitId)) == null ? void 0 : _a25.get(sheetId)) == null ? void 0 : _b.get(column)) == null ? void 0 : _c.get(value);
1263
+ var _a26, _b, _c;
1264
+ return (_c = (_b = (_a26 = this._cache.get(unitId)) == null ? void 0 : _a26.get(sheetId)) == null ? void 0 : _b.get(column)) == null ? void 0 : _c.get(value);
1239
1265
  }
1240
1266
  getCellPosition(unitId, sheetId, column, value, startRow, endRow) {
1241
1267
  const rows = this.getCellPositions(unitId, sheetId, column, value);
@@ -1258,18 +1284,18 @@ const _InvertedIndexCache = class _InvertedIndexCache {
1258
1284
  columnMap.startRow = Math.min(columnMap.startRow, startRow), columnMap.endRow = Math.max(columnMap.endRow, endRow);
1259
1285
  }
1260
1286
  shouldContinueBuildingCache(unitId, sheetId, column, row) {
1261
- var _a25, _b;
1262
- const rowRange = (_b = (_a25 = this._continueBuildingCache.get(unitId)) == null ? void 0 : _a25.get(sheetId)) == null ? void 0 : _b.get(column);
1287
+ var _a26, _b;
1288
+ const rowRange = (_b = (_a26 = this._continueBuildingCache.get(unitId)) == null ? void 0 : _a26.get(sheetId)) == null ? void 0 : _b.get(column);
1263
1289
  if (rowRange == null)
1264
1290
  return !0;
1265
1291
  const { startRow, endRow } = rowRange;
1266
1292
  return !(row >= startRow && row <= endRow);
1267
1293
  }
1268
1294
  canUseCache(unitId, sheetId, column, rangeStartRow, rangeEndRow) {
1269
- var _a25, _b;
1295
+ var _a26, _b;
1270
1296
  if (column === -1 || rangeStartRow === -1 || rangeEndRow === -1)
1271
1297
  return !1;
1272
- const rowRange = (_b = (_a25 = this._continueBuildingCache.get(unitId)) == null ? void 0 : _a25.get(sheetId)) == null ? void 0 : _b.get(column);
1298
+ const rowRange = (_b = (_a26 = this._continueBuildingCache.get(unitId)) == null ? void 0 : _a26.get(sheetId)) == null ? void 0 : _b.get(column);
1273
1299
  if (rowRange == null)
1274
1300
  return !1;
1275
1301
  const { startRow, endRow } = rowRange;
@@ -2882,13 +2908,13 @@ const currencySymbols = [
2882
2908
  /* Custom */
2883
2909
  };
2884
2910
  function handleNumfmtInCell(oldCell, cell, styles) {
2885
- var _a25, _b;
2911
+ var _a26, _b;
2886
2912
  if (oldCell == null || cell == null)
2887
2913
  return cell;
2888
2914
  const oldCellStyle = (styles == null ? void 0 : styles.getStyleByCell(oldCell)) || oldCell.s, cellStyle = (styles == null ? void 0 : styles.getStyleByCell(cell)) || cell.s;
2889
2915
  if (oldCellStyle == null || cellStyle == null || typeof oldCellStyle != "object" || typeof cellStyle != "object")
2890
2916
  return cell;
2891
- const oldPattern = (_a25 = oldCellStyle == null ? void 0 : oldCellStyle.n) == null ? void 0 : _a25.pattern, pattern = (_b = cellStyle == null ? void 0 : cellStyle.n) == null ? void 0 : _b.pattern;
2917
+ const oldPattern = (_a26 = oldCellStyle == null ? void 0 : oldCellStyle.n) == null ? void 0 : _a26.pattern, pattern = (_b = cellStyle == null ? void 0 : cellStyle.n) == null ? void 0 : _b.pattern;
2892
2918
  if (oldPattern == null || pattern == null)
2893
2919
  return cell;
2894
2920
  const newPattern = oldPattern || pattern;
@@ -3873,8 +3899,8 @@ const _ArrayValueObject = class _ArrayValueObject extends BaseValueObject {
3873
3899
  this._defaultValue = value;
3874
3900
  }
3875
3901
  get(row, column) {
3876
- var _a25;
3877
- return (_a25 = this._values[row]) == null ? void 0 : _a25[column];
3902
+ var _a26;
3903
+ return ((_a26 = this._values[row]) == null ? void 0 : _a26[column]) || this._defaultValue;
3878
3904
  }
3879
3905
  getRealValue(row, column) {
3880
3906
  const rowValues = this._values[row];
@@ -3901,19 +3927,19 @@ const _ArrayValueObject = class _ArrayValueObject extends BaseValueObject {
3901
3927
  };
3902
3928
  }
3903
3929
  iterator(callback) {
3904
- var _a25;
3930
+ var _a26;
3905
3931
  const { startRow, endRow, startColumn, endColumn } = this.getRangePosition(), valueList = this.getArrayValue();
3906
3932
  for (let r = startRow; r <= endRow; r++)
3907
3933
  for (let c = startColumn; c <= endColumn; c++)
3908
- if (callback(((_a25 = valueList[r]) == null ? void 0 : _a25[c]) || this._defaultValue, r, c) === !1)
3934
+ if (callback(((_a26 = valueList[r]) == null ? void 0 : _a26[c]) || this._defaultValue, r, c) === !1)
3909
3935
  return;
3910
3936
  }
3911
3937
  iteratorReverse(callback) {
3912
- var _a25;
3938
+ var _a26;
3913
3939
  const { startRow, endRow, startColumn, endColumn } = this.getRangePosition(), valueList = this.getArrayValue();
3914
3940
  for (let r = endRow; r >= startRow; r--)
3915
3941
  for (let c = endColumn; c >= startColumn; c--)
3916
- if (callback(((_a25 = valueList[r]) == null ? void 0 : _a25[c]) || this._defaultValue, r, c) === !1)
3942
+ if (callback(((_a26 = valueList[r]) == null ? void 0 : _a26[c]) || this._defaultValue, r, c) === !1)
3917
3943
  return;
3918
3944
  }
3919
3945
  getLastTruePosition() {
@@ -4239,12 +4265,12 @@ const _ArrayValueObject = class _ArrayValueObject extends BaseValueObject {
4239
4265
  return this.mapValue(wrappedCallbackFn);
4240
4266
  }
4241
4267
  mapValue(callbackFn) {
4242
- var _a25;
4268
+ var _a26;
4243
4269
  const rowCount = this._rowCount, columnCount = this._columnCount, result = [];
4244
4270
  for (let r = 0; r < rowCount; r++) {
4245
4271
  const rowList = [];
4246
4272
  for (let c = 0; c < columnCount; c++) {
4247
- const row = (_a25 = this._values) == null ? void 0 : _a25[r];
4273
+ const row = (_a26 = this._values) == null ? void 0 : _a26[r];
4248
4274
  if (row == null)
4249
4275
  rowList[c] = ErrorValueObject.create(ErrorType$1.VALUE);
4250
4276
  else {
@@ -4708,32 +4734,6 @@ const _ValueObjectFactory = class _ValueObjectFactory {
4708
4734
  };
4709
4735
  __name(_ValueObjectFactory, "ValueObjectFactory");
4710
4736
  let ValueObjectFactory = _ValueObjectFactory;
4711
- function getCellValue(cell) {
4712
- if (cell === null)
4713
- return 0;
4714
- if (cell != null && cell.p) {
4715
- const body = cell == null ? void 0 : cell.p.body;
4716
- if (body == null)
4717
- return 0;
4718
- const data = body.dataStream;
4719
- return data.substring(data.length - 2, data.length) === DEFAULT_EMPTY_DOCUMENT_VALUE ? data.substring(0, data.length - 2) : data;
4720
- }
4721
- return (cell == null ? void 0 : cell.v) || 0;
4722
- }
4723
- __name(getCellValue, "getCellValue");
4724
- function getRuntimeFeatureCell(row, column, sheetId, unitId, runtimeFeatureCellData) {
4725
- var _a25;
4726
- const featureKeys = Object.keys(runtimeFeatureCellData);
4727
- for (const featureId of featureKeys) {
4728
- const data = runtimeFeatureCellData[featureId], CellData = (_a25 = data == null ? void 0 : data[unitId]) == null ? void 0 : _a25[sheetId];
4729
- if (CellData == null)
4730
- continue;
4731
- const value = CellData.getValue(row, column);
4732
- if (value != null)
4733
- return value;
4734
- }
4735
- }
4736
- __name(getRuntimeFeatureCell, "getRuntimeFeatureCell");
4737
4737
  const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$1), _BaseReferenceObject = class _BaseReferenceObject extends ObjectClassType {
4738
4738
  constructor(_token) {
4739
4739
  super();
@@ -4850,8 +4850,8 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
4850
4850
  return this._forcedUnitId;
4851
4851
  }
4852
4852
  setForcedSheetId(sheetNameMap) {
4853
- var _a25;
4854
- this._forcedSheetId = (_a25 = sheetNameMap[this.getUnitId()]) == null ? void 0 : _a25[this._forcedSheetName];
4853
+ var _a26;
4854
+ this._forcedSheetId = (_a26 = sheetNameMap[this.getUnitId()]) == null ? void 0 : _a26[this._forcedSheetName];
4855
4855
  }
4856
4856
  setForcedSheetIdDirect(sheetId) {
4857
4857
  this._forcedSheetId = sheetId;
@@ -4914,12 +4914,12 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
4914
4914
  this._runtimeFeatureCellData = unitData;
4915
4915
  }
4916
4916
  getActiveSheetRowCount() {
4917
- var _a25;
4918
- return ((_a25 = this.getCurrentActiveSheetData()) == null ? void 0 : _a25.rowCount) || 0;
4917
+ var _a26;
4918
+ return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.rowCount) || 0;
4919
4919
  }
4920
4920
  getActiveSheetColumnCount() {
4921
- var _a25;
4922
- return ((_a25 = this.getCurrentActiveSheetData()) == null ? void 0 : _a25.columnCount) || 0;
4921
+ var _a26;
4922
+ return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.columnCount) || 0;
4923
4923
  }
4924
4924
  getRowCount() {
4925
4925
  return this._rangeData.endRow - this._rangeData.startRow + 1;
@@ -4928,12 +4928,12 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
4928
4928
  return this._rangeData.endColumn - this._rangeData.startColumn + 1;
4929
4929
  }
4930
4930
  getRowData() {
4931
- var _a25;
4932
- return ((_a25 = this.getCurrentActiveSheetData()) == null ? void 0 : _a25.rowData) || {};
4931
+ var _a26;
4932
+ return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.rowData) || {};
4933
4933
  }
4934
4934
  getColumnData() {
4935
- var _a25;
4936
- return ((_a25 = this.getCurrentActiveSheetData()) == null ? void 0 : _a25.columnData) || {};
4935
+ var _a26;
4936
+ return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.columnData) || {};
4937
4937
  }
4938
4938
  isCell() {
4939
4939
  return !1;
@@ -4972,11 +4972,11 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
4972
4972
  return cell.t === CellValueType.STRING || cell.t === CellValueType.FORCE_STRING ? StringValueObject.create(value.toString()) : cell.t === CellValueType.BOOLEAN ? createBooleanValueObjectByRawValue(value) : ValueObjectFactory.create(value);
4973
4973
  }
4974
4974
  _getPatternByCell(cell) {
4975
- var _a25;
4975
+ var _a26;
4976
4976
  const styles = this._unitStylesData[this.getUnitId()];
4977
4977
  if (!styles) return "";
4978
4978
  const style = styles.getStyleByCell(cell);
4979
- return ((_a25 = style == null ? void 0 : style.n) == null ? void 0 : _a25.pattern) || "";
4979
+ return ((_a26 = style == null ? void 0 : style.n) == null ? void 0 : _a26.pattern) || "";
4980
4980
  }
4981
4981
  getCellByRow(row) {
4982
4982
  return this.getCellByPosition(row);
@@ -4985,23 +4985,23 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
4985
4985
  return this.getCellByPosition(void 0, column);
4986
4986
  }
4987
4987
  getCurrentActiveSheetData() {
4988
- var _a25;
4989
- return (_a25 = this._unitData[this.getUnitId()]) == null ? void 0 : _a25[this.getSheetId()];
4988
+ var _a26;
4989
+ return (_a26 = this._unitData[this.getUnitId()]) == null ? void 0 : _a26[this.getSheetId()];
4990
4990
  }
4991
4991
  getCurrentStylesData() {
4992
4992
  return this._unitStylesData[this.getUnitId()];
4993
4993
  }
4994
4994
  getCurrentRuntimeSheetData() {
4995
- var _a25, _b;
4996
- return (_b = (_a25 = this._runtimeData) == null ? void 0 : _a25[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
4995
+ var _a26, _b;
4996
+ return (_b = (_a26 = this._runtimeData) == null ? void 0 : _a26[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
4997
4997
  }
4998
4998
  getCurrentActiveArrayFormulaCellData() {
4999
- var _a25, _b;
5000
- return (_b = (_a25 = this._arrayFormulaCellData) == null ? void 0 : _a25[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
4999
+ var _a26, _b;
5000
+ return (_b = (_a26 = this._arrayFormulaCellData) == null ? void 0 : _a26[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
5001
5001
  }
5002
5002
  getCurrentRuntimeActiveArrayFormulaCellData() {
5003
- var _a25, _b;
5004
- return (_b = (_a25 = this._runtimeArrayFormulaCellData) == null ? void 0 : _a25[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
5003
+ var _a26, _b;
5004
+ return (_b = (_a26 = this._runtimeArrayFormulaCellData) == null ? void 0 : _a26[this.getUnitId()]) == null ? void 0 : _b[this.getSheetId()];
5005
5005
  }
5006
5006
  getCellData(row, column) {
5007
5007
  const activeSheetData = this.getCurrentActiveSheetData(), activeRuntimeData = this.getCurrentRuntimeSheetData(), activeArrayFormulaCellData = this.getCurrentActiveArrayFormulaCellData(), activeRuntimeArrayFormulaCellData = this.getCurrentRuntimeActiveArrayFormulaCellData();
@@ -5024,18 +5024,18 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
5024
5024
  * @returns
5025
5025
  */
5026
5026
  getCellPattern(unitId, sheetId, row, column) {
5027
- var _a25, _b, _c, _d;
5027
+ var _a26, _b, _c, _d;
5028
5028
  const currentStyles = this._unitStylesData[unitId];
5029
5029
  if (!currentStyles)
5030
5030
  return "";
5031
- const currentCell = (_c = (_b = (_a25 = this._unitData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b.cellData) == null ? void 0 : _c.getValue(row, column);
5031
+ const currentCell = (_c = (_b = (_a26 = this._unitData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b.cellData) == null ? void 0 : _c.getValue(row, column);
5032
5032
  if (!currentCell)
5033
5033
  return "";
5034
5034
  const style = currentStyles.getStyleByCell(currentCell);
5035
5035
  return ((_d = style == null ? void 0 : style.n) == null ? void 0 : _d.pattern) || "";
5036
5036
  }
5037
5037
  toArrayValueObject(useCache = !0) {
5038
- var _a25;
5038
+ var _a26;
5039
5039
  const { startRow, endRow, startColumn, endColumn } = this.getRangePosition(), key = `${this.getUnitId()}_${this.getSheetId()}_${startRow}_${endRow}_${startColumn}_${endColumn}`, array = FORMULA_REF_TO_ARRAY_CACHE.get(key);
5040
5040
  if (array && useCache)
5041
5041
  return array;
@@ -5050,7 +5050,7 @@ const FORMULA_CACHE_LRU_COUNT$1 = 1e5, FORMULA_REF_TO_ARRAY_CACHE = new FormulaA
5050
5050
  const arrayValueObjectData = {
5051
5051
  calculateValueList: arrayValueList,
5052
5052
  rowCount: arrayValueList.length,
5053
- columnCount: ((_a25 = arrayValueList[0]) == null ? void 0 : _a25.length) || 0,
5053
+ columnCount: ((_a26 = arrayValueList[0]) == null ? void 0 : _a26.length) || 0,
5054
5054
  unitId: this.getUnitId(),
5055
5055
  sheetId: this.getSheetId(),
5056
5056
  row: startRow,
@@ -5104,7 +5104,7 @@ const _AsyncArrayObject = class _AsyncArrayObject extends ObjectClassType {
5104
5104
  return !0;
5105
5105
  }
5106
5106
  async getValue() {
5107
- var _a25;
5107
+ var _a26;
5108
5108
  const variants = [];
5109
5109
  for (let r = 0; r < this._promiseList.length; r++) {
5110
5110
  const promiseCells = this._promiseList[r];
@@ -5117,7 +5117,7 @@ const _AsyncArrayObject = class _AsyncArrayObject extends ObjectClassType {
5117
5117
  const arrayValueObjectData = {
5118
5118
  calculateValueList: variants,
5119
5119
  rowCount: variants.length,
5120
- columnCount: ((_a25 = variants[0]) == null ? void 0 : _a25.length) || 0,
5120
+ columnCount: ((_a26 = variants[0]) == null ? void 0 : _a26.length) || 0,
5121
5121
  unitId: "",
5122
5122
  sheetId: "",
5123
5123
  row: 0,
@@ -5563,9 +5563,9 @@ const _BaseFunction = class _BaseFunction extends Disposable {
5563
5563
  * =INDIRECT("DefinedName1")
5564
5564
  */
5565
5565
  getDefinedName(name) {
5566
- var _a25;
5566
+ var _a26;
5567
5567
  const nameMap = this._definedNames;
5568
- return nameMap == null ? null : (_a25 = Array.from(Object.values(nameMap)).filter((value) => value.name === name)) == null ? void 0 : _a25[0];
5568
+ return nameMap == null ? null : (_a26 = Array.from(Object.values(nameMap)).filter((value) => value.name === name)) == null ? void 0 : _a26[0];
5569
5569
  }
5570
5570
  setDefinedNames(definedNames) {
5571
5571
  this._definedNames = definedNames;
@@ -9606,9 +9606,9 @@ function calculateOddFPrice(settlementSerialNumber, maturitySerialNumber, issueS
9606
9606
  __name(calculateOddFPrice, "calculateOddFPrice");
9607
9607
  function calculateOddShortFirstCoupon(settlementSerialNumber, maturitySerialNumber, issueSerialNumber, firstCouponSerialNumber, rate, yld, redemption, frequency, basis, DFC, E) {
9608
9608
  let result = 0;
9609
- const N = calculateCoupnum(settlementSerialNumber, maturitySerialNumber, frequency), DSC = getPositiveDaysBetween(settlementSerialNumber, firstCouponSerialNumber, basis);
9610
- result += redemption / (1 + yld / frequency) ** (N - 1 + DSC / E), result += 100 * rate / frequency * DFC / E / (1 + yld / frequency) ** (DSC / E);
9611
- for (let k = 2; k <= N; k++)
9609
+ const N2 = calculateCoupnum(settlementSerialNumber, maturitySerialNumber, frequency), DSC = getPositiveDaysBetween(settlementSerialNumber, firstCouponSerialNumber, basis);
9610
+ result += redemption / (1 + yld / frequency) ** (N2 - 1 + DSC / E), result += 100 * rate / frequency * DFC / E / (1 + yld / frequency) ** (DSC / E);
9611
+ for (let k = 2; k <= N2; k++)
9612
9612
  result += 100 * rate / frequency / (1 + yld / frequency) ** (k - 1 + DSC / E);
9613
9613
  const A = getPositiveDaysBetween(issueSerialNumber, settlementSerialNumber, basis);
9614
9614
  return result -= 100 * rate / frequency * A / E, result;
@@ -9616,7 +9616,7 @@ function calculateOddShortFirstCoupon(settlementSerialNumber, maturitySerialNumb
9616
9616
  __name(calculateOddShortFirstCoupon, "calculateOddShortFirstCoupon");
9617
9617
  function calculateOddLongFirstCoupon(settlementSerialNumber, maturitySerialNumber, issueSerialNumber, firstCouponSerialNumber, rate, yld, redemption, frequency, basis, E) {
9618
9618
  let result = 0;
9619
- const N = calculateCoupnum(firstCouponSerialNumber, maturitySerialNumber, frequency), Nq = getCouponsNumber(firstCouponSerialNumber, settlementSerialNumber, 12 / frequency, !0);
9619
+ const N2 = calculateCoupnum(firstCouponSerialNumber, maturitySerialNumber, frequency), Nq = getCouponsNumber(firstCouponSerialNumber, settlementSerialNumber, 12 / frequency, !0);
9620
9620
  let DSC;
9621
9621
  if (basis === 2 || basis === 3) {
9622
9622
  const coupncd = calculateCoupncd(settlementSerialNumber, firstCouponSerialNumber, frequency);
@@ -9625,7 +9625,7 @@ function calculateOddLongFirstCoupon(settlementSerialNumber, maturitySerialNumbe
9625
9625
  const couppcd = calculateCouppcd(settlementSerialNumber, firstCouponSerialNumber, frequency), { days } = getTwoDateDaysByBasis(couppcd, settlementSerialNumber, basis);
9626
9626
  DSC = E - days;
9627
9627
  }
9628
- result += redemption / (1 + yld / frequency) ** (N + Nq + DSC / E);
9628
+ result += redemption / (1 + yld / frequency) ** (N2 + Nq + DSC / E);
9629
9629
  const NC = calculateCoupnum(issueSerialNumber, firstCouponSerialNumber, frequency);
9630
9630
  let lateCoupon = firstCouponSerialNumber, DCiDivNLiSum = 0, AiDivNLiSum = 0;
9631
9631
  for (let index = NC; index >= 1; index--) {
@@ -9635,7 +9635,7 @@ function calculateOddLongFirstCoupon(settlementSerialNumber, maturitySerialNumbe
9635
9635
  AiDivNLiSum += Ai / NLi, lateCoupon = earlyCoupon;
9636
9636
  }
9637
9637
  result += 100 * rate / frequency * DCiDivNLiSum / (1 + yld / frequency) ** (Nq + DSC / E);
9638
- for (let k = 1; k <= N; k++)
9638
+ for (let k = 1; k <= N2; k++)
9639
9639
  result += 100 * rate / frequency / (1 + yld / frequency) ** (k + Nq + DSC / E);
9640
9640
  return result -= 100 * rate / frequency * AiDivNLiSum, result;
9641
9641
  }
@@ -9710,14 +9710,14 @@ function guessIsNaNorInfinity(guess, iterF) {
9710
9710
  }
9711
9711
  __name(guessIsNaNorInfinity, "guessIsNaNorInfinity");
9712
9712
  function calculatePrice(settlementSerialNumber, maturitySerialNumber, rate, yld, redemption, frequency, basis) {
9713
- const N = calculateCoupnum(settlementSerialNumber, maturitySerialNumber, frequency), E = calculateCoupdays(settlementSerialNumber, maturitySerialNumber, frequency, basis), A = calculateCoupdaybs(settlementSerialNumber, maturitySerialNumber, frequency, basis);
9714
- if (N === 1) {
9713
+ const N2 = calculateCoupnum(settlementSerialNumber, maturitySerialNumber, frequency), E = calculateCoupdays(settlementSerialNumber, maturitySerialNumber, frequency, basis), A = calculateCoupdaybs(settlementSerialNumber, maturitySerialNumber, frequency, basis);
9714
+ if (N2 === 1) {
9715
9715
  const DSR = E - A, T1 = 100 * rate / frequency + redemption, T2 = yld / frequency * DSR / E + 1, T3 = 100 * rate / frequency * A / E;
9716
9716
  return T1 / T2 - T3;
9717
9717
  }
9718
9718
  const DSC = E - A;
9719
- let result = redemption / (1 + yld / frequency) ** (N - 1 + DSC / E);
9720
- for (let k = 1; k <= N; k++)
9719
+ let result = redemption / (1 + yld / frequency) ** (N2 - 1 + DSC / E);
9720
+ for (let k = 1; k <= N2; k++)
9721
9721
  result += 100 * rate / frequency / (1 + yld / frequency) ** (k - 1 + DSC / E);
9722
9722
  return result -= 100 * rate / frequency * A / E, result;
9723
9723
  }
@@ -12071,8 +12071,8 @@ const _Cell = class _Cell extends BaseFunction {
12071
12071
  }
12072
12072
  }
12073
12073
  _getWidthResult(columnData, defaultColumnWidth, _currentColumn, infoTypeIsArray) {
12074
- var _a25;
12075
- let result = (_a25 = columnData[_currentColumn]) == null ? void 0 : _a25.w;
12074
+ var _a26;
12075
+ let result = (_a26 = columnData[_currentColumn]) == null ? void 0 : _a26.w;
12076
12076
  if (!result && result !== 0 && (result = defaultColumnWidth), infoTypeIsArray)
12077
12077
  return NumberValueObject.create(result);
12078
12078
  const resultArray = [[result, result === defaultColumnWidth]];
@@ -12171,6 +12171,29 @@ const _Iseven = class _Iseven extends BaseFunction {
12171
12171
  };
12172
12172
  __name(_Iseven, "Iseven");
12173
12173
  let Iseven = _Iseven;
12174
+ const _Isformula = class _Isformula extends BaseFunction {
12175
+ constructor() {
12176
+ super(...arguments);
12177
+ __publicField(this, "minParams", 1);
12178
+ __publicField(this, "maxParams", 1);
12179
+ __publicField(this, "needsReferenceObject", !0);
12180
+ }
12181
+ calculate(reference) {
12182
+ var _a26;
12183
+ if (reference.isError())
12184
+ return reference;
12185
+ if (!reference.isReferenceObject())
12186
+ return ErrorValueObject.create(ErrorType$1.NA);
12187
+ const cellDataMatrix = (_a26 = reference.getCurrentActiveSheetData()) == null ? void 0 : _a26.cellData.getMatrix(), { startRow, startColumn } = reference.getRangePosition(), _reference = reference.toArrayValueObject(), resultArray = _reference.mapValue((valueObject, rowIndex, columnIndex) => {
12188
+ var _a27;
12189
+ const cellData = (_a27 = cellDataMatrix == null ? void 0 : cellDataMatrix[startRow + rowIndex]) == null ? void 0 : _a27[startColumn + columnIndex];
12190
+ return cellData != null && cellData.f || cellData != null && cellData.si ? BooleanValueObject.create(!0) : BooleanValueObject.create(!1);
12191
+ });
12192
+ return _reference.getRowCount() === 1 && _reference.getColumnCount() === 1 ? resultArray.get(0, 0) : resultArray;
12193
+ }
12194
+ };
12195
+ __name(_Isformula, "Isformula");
12196
+ let Isformula = _Isformula;
12174
12197
  const _Islogical = class _Islogical extends BaseFunction {
12175
12198
  constructor() {
12176
12199
  super(...arguments);
@@ -12271,6 +12294,36 @@ const _Istext = class _Istext extends BaseFunction {
12271
12294
  };
12272
12295
  __name(_Istext, "Istext");
12273
12296
  let Istext = _Istext;
12297
+ const _N = class _N extends BaseFunction {
12298
+ constructor() {
12299
+ super(...arguments);
12300
+ __publicField(this, "minParams", 1);
12301
+ __publicField(this, "maxParams", 1);
12302
+ }
12303
+ calculate(value) {
12304
+ let _value = value;
12305
+ if (value.isArray() && (_value = value.get(0, 0)), _value.isError())
12306
+ return _value;
12307
+ if (_value.isString())
12308
+ return NumberValueObject.create(0);
12309
+ const val = +_value.getValue();
12310
+ return NumberValueObject.create(val);
12311
+ }
12312
+ };
12313
+ __name(_N, "N");
12314
+ let N = _N;
12315
+ const _Na = class _Na extends BaseFunction {
12316
+ constructor() {
12317
+ super(...arguments);
12318
+ __publicField(this, "minParams", 0);
12319
+ __publicField(this, "maxParams", 0);
12320
+ }
12321
+ calculate() {
12322
+ return ErrorValueObject.create(ErrorType$1.NA);
12323
+ }
12324
+ };
12325
+ __name(_Na, "Na");
12326
+ let Na = _Na;
12274
12327
  const _Type = class _Type extends BaseFunction {
12275
12328
  constructor() {
12276
12329
  super(...arguments);
@@ -12317,6 +12370,7 @@ const functionInformation = [
12317
12370
  [Iserr, FUNCTION_NAMES_INFORMATION.ISERR],
12318
12371
  [Iserror, FUNCTION_NAMES_INFORMATION.ISERROR],
12319
12372
  [Iseven, FUNCTION_NAMES_INFORMATION.ISEVEN],
12373
+ [Isformula, FUNCTION_NAMES_INFORMATION.ISFORMULA],
12320
12374
  [Islogical, FUNCTION_NAMES_INFORMATION.ISLOGICAL],
12321
12375
  [Isna, FUNCTION_NAMES_INFORMATION.ISNA],
12322
12376
  [Isnontext, FUNCTION_NAMES_INFORMATION.ISNONTEXT],
@@ -12324,10 +12378,10 @@ const functionInformation = [
12324
12378
  [Isodd, FUNCTION_NAMES_INFORMATION.ISODD],
12325
12379
  [Isref, FUNCTION_NAMES_INFORMATION.ISREF],
12326
12380
  [Istext, FUNCTION_NAMES_INFORMATION.ISTEXT],
12381
+ [N, FUNCTION_NAMES_INFORMATION.N],
12382
+ [Na, FUNCTION_NAMES_INFORMATION.NA],
12327
12383
  [Type, FUNCTION_NAMES_INFORMATION.TYPE]
12328
- ];
12329
- var FUNCTION_NAMES_LOGICAL = /* @__PURE__ */ ((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 || {});
12330
- const _And = class _And extends BaseFunction {
12384
+ ], _And = class _And extends BaseFunction {
12331
12385
  constructor() {
12332
12386
  super(...arguments);
12333
12387
  __publicField(this, "minParams", 1);
@@ -12352,6 +12406,108 @@ const _And = class _And extends BaseFunction {
12352
12406
  };
12353
12407
  __name(_And, "And");
12354
12408
  let And = _And;
12409
+ const _Bycol = class _Bycol extends BaseFunction {
12410
+ constructor() {
12411
+ super(...arguments);
12412
+ __publicField(this, "minParams", 2);
12413
+ __publicField(this, "maxParams", 2);
12414
+ }
12415
+ calculate(array, lambda) {
12416
+ if (array.isError())
12417
+ return array;
12418
+ if (lambda.isError())
12419
+ return lambda;
12420
+ if (!(lambda.isValueObject() && lambda.isLambda() && lambda.getLambdaPrivacyVarKeys().length === 1))
12421
+ return ErrorValueObject.create(ErrorType$1.VALUE);
12422
+ const _lambda = lambda, rowCount = array.isArray() ? array.getRowCount() : 1, columnCount = array.isArray() ? array.getColumnCount() : 1, _array = expandArrayValueObject(rowCount, columnCount, array), result = [[]];
12423
+ for (let c = 0; c < columnCount; c++) {
12424
+ const rows = [];
12425
+ for (let r = 0; r < rowCount; r++) {
12426
+ const col = _array.get(r, c);
12427
+ rows.push([col]);
12428
+ }
12429
+ const lambdaVariant = ArrayValueObject.create({
12430
+ calculateValueList: rows,
12431
+ rowCount,
12432
+ columnCount: 1,
12433
+ unitId: "",
12434
+ sheetId: "",
12435
+ row: 0,
12436
+ column: 0
12437
+ });
12438
+ let value = _lambda.execute(lambdaVariant);
12439
+ if (value.isArray()) {
12440
+ const valueRowCount = value.getRowCount(), valueColumnCount = value.getColumnCount();
12441
+ if (valueRowCount > 1 || valueColumnCount > 1)
12442
+ return ErrorValueObject.create(ErrorType$1.CALC);
12443
+ value = value.get(0, 0);
12444
+ }
12445
+ value.isNull() && (value = NumberValueObject.create(0)), result[0].push(value);
12446
+ }
12447
+ return columnCount === 1 ? result[0][0] : ArrayValueObject.create({
12448
+ calculateValueList: result,
12449
+ rowCount: 1,
12450
+ columnCount,
12451
+ unitId: this.unitId,
12452
+ sheetId: this.subUnitId,
12453
+ row: this.row,
12454
+ column: this.column
12455
+ });
12456
+ }
12457
+ };
12458
+ __name(_Bycol, "Bycol");
12459
+ let Bycol = _Bycol;
12460
+ const _Byrow = class _Byrow extends BaseFunction {
12461
+ constructor() {
12462
+ super(...arguments);
12463
+ __publicField(this, "minParams", 2);
12464
+ __publicField(this, "maxParams", 2);
12465
+ }
12466
+ calculate(array, lambda) {
12467
+ if (array.isError())
12468
+ return array;
12469
+ if (lambda.isError())
12470
+ return lambda;
12471
+ if (!(lambda.isValueObject() && lambda.isLambda() && lambda.getLambdaPrivacyVarKeys().length === 1))
12472
+ return ErrorValueObject.create(ErrorType$1.VALUE);
12473
+ const _lambda = lambda, rowCount = array.isArray() ? array.getRowCount() : 1, columnCount = array.isArray() ? array.getColumnCount() : 1, _array = expandArrayValueObject(rowCount, columnCount, array), result = [];
12474
+ for (let r = 0; r < rowCount; r++) {
12475
+ const rows = [[]];
12476
+ for (let c = 0; c < columnCount; c++) {
12477
+ const col = _array.get(r, c);
12478
+ rows[0].push(col);
12479
+ }
12480
+ const lambdaVariant = ArrayValueObject.create({
12481
+ calculateValueList: rows,
12482
+ rowCount: 1,
12483
+ columnCount,
12484
+ unitId: "",
12485
+ sheetId: "",
12486
+ row: 0,
12487
+ column: 0
12488
+ });
12489
+ let value = _lambda.execute(lambdaVariant);
12490
+ if (value.isArray()) {
12491
+ const valueRowCount = value.getRowCount(), valueColumnCount = value.getColumnCount();
12492
+ if (valueRowCount > 1 || valueColumnCount > 1)
12493
+ return ErrorValueObject.create(ErrorType$1.CALC);
12494
+ value = value.get(0, 0);
12495
+ }
12496
+ value.isNull() && (value = NumberValueObject.create(0)), result.push([value]);
12497
+ }
12498
+ return rowCount === 1 ? result[0][0] : ArrayValueObject.create({
12499
+ calculateValueList: result,
12500
+ rowCount,
12501
+ columnCount: 1,
12502
+ unitId: this.unitId,
12503
+ sheetId: this.subUnitId,
12504
+ row: this.row,
12505
+ column: this.column
12506
+ });
12507
+ }
12508
+ };
12509
+ __name(_Byrow, "Byrow");
12510
+ let Byrow = _Byrow;
12355
12511
  const _False = class _False extends BaseFunction {
12356
12512
  constructor() {
12357
12513
  super(...arguments);
@@ -12364,6 +12520,7 @@ const _False = class _False extends BaseFunction {
12364
12520
  };
12365
12521
  __name(_False, "False");
12366
12522
  let False = _False;
12523
+ var FUNCTION_NAMES_LOGICAL = /* @__PURE__ */ ((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 || {});
12367
12524
  const _If = class _If extends BaseFunction {
12368
12525
  constructor() {
12369
12526
  super(...arguments);
@@ -12557,6 +12714,72 @@ const _Makearray = class _Makearray extends BaseFunction {
12557
12714
  };
12558
12715
  __name(_Makearray, "Makearray");
12559
12716
  let Makearray = _Makearray;
12717
+ var _a2;
12718
+ let Map$1 = (_a2 = class extends BaseFunction {
12719
+ constructor() {
12720
+ super(...arguments);
12721
+ __publicField(this, "minParams", 2);
12722
+ __publicField(this, "maxParams", 255);
12723
+ }
12724
+ calculate(...variants) {
12725
+ const _variants = [];
12726
+ let lambda = null, maxRowLength = 0, maxColumnLength = 0;
12727
+ for (let i = 0; i < variants.length; i++) {
12728
+ const variant = variants[i];
12729
+ if (variant.isError())
12730
+ return variant;
12731
+ if (i === variants.length - 1) {
12732
+ if (!(variant.isValueObject() && variant.isLambda()))
12733
+ return ErrorValueObject.create(ErrorType$1.VALUE);
12734
+ lambda = variant;
12735
+ } else
12736
+ _variants.push(variant), maxRowLength = Math.max(maxRowLength, variant.isArray() ? variant.getRowCount() : 1), maxColumnLength = Math.max(maxColumnLength, variant.isArray() ? variant.getColumnCount() : 1);
12737
+ }
12738
+ const resultArray = this._getResultArray(_variants, lambda, maxRowLength, maxColumnLength);
12739
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray[0][0] : ArrayValueObject.create({
12740
+ calculateValueList: resultArray,
12741
+ rowCount: maxRowLength,
12742
+ columnCount: maxColumnLength,
12743
+ unitId: this.unitId,
12744
+ sheetId: this.subUnitId,
12745
+ row: this.row,
12746
+ column: this.column
12747
+ });
12748
+ }
12749
+ _getResultArray(variants, lambda, maxRowLength, maxColumnLength) {
12750
+ const resultArray = [];
12751
+ for (let r = 0; r < maxRowLength; r++) {
12752
+ const row = [];
12753
+ for (let c = 0; c < maxColumnLength; c++) {
12754
+ const lambdaVariant = [];
12755
+ let isRowPushed = !1;
12756
+ for (let i = 0; i < variants.length; i++) {
12757
+ const variant = variants[i];
12758
+ if (!variant.isArray())
12759
+ if (r === 0 && c === 0) {
12760
+ lambdaVariant.push(variant);
12761
+ continue;
12762
+ } else {
12763
+ row.push(ErrorValueObject.create(ErrorType$1.NA)), isRowPushed = !0;
12764
+ break;
12765
+ }
12766
+ const valueObject = variant.get(r, c);
12767
+ if (!valueObject) {
12768
+ row.push(ErrorValueObject.create(ErrorType$1.NA)), isRowPushed = !0;
12769
+ break;
12770
+ }
12771
+ lambdaVariant.push(valueObject);
12772
+ }
12773
+ if (isRowPushed || lambdaVariant.length === 0)
12774
+ continue;
12775
+ let value = lambda.execute(...lambdaVariant);
12776
+ value.isArray() && (value = value.get(0, 0)), value.isNull() && (value = NumberValueObject.create(0)), row.push(value);
12777
+ }
12778
+ resultArray.push(row);
12779
+ }
12780
+ return resultArray;
12781
+ }
12782
+ }, __name(_a2, "Map"), _a2);
12560
12783
  const _Not = class _Not extends BaseFunction {
12561
12784
  constructor() {
12562
12785
  super(...arguments);
@@ -12600,6 +12823,100 @@ const _Or = class _Or extends BaseFunction {
12600
12823
  };
12601
12824
  __name(_Or, "Or");
12602
12825
  let Or = _Or;
12826
+ const _Reduce = class _Reduce extends BaseFunction {
12827
+ constructor() {
12828
+ super(...arguments);
12829
+ __publicField(this, "minParams", 3);
12830
+ __publicField(this, "maxParams", 3);
12831
+ }
12832
+ calculate(initialValue, array, lambda) {
12833
+ return initialValue.isArray() ? initialValue.mapValue((initialValueObject) => this._handleSingleValueObject(initialValueObject, array, lambda)) : this._handleSingleValueObject(initialValue, array, lambda);
12834
+ }
12835
+ _handleSingleValueObject(initialValue, array, lambda) {
12836
+ if (initialValue.isError())
12837
+ return initialValue;
12838
+ if (array.isError())
12839
+ return array;
12840
+ if (lambda.isError())
12841
+ return lambda;
12842
+ if (!(lambda.isValueObject() && lambda.isLambda() && lambda.getLambdaPrivacyVarKeys().length === 2))
12843
+ return ErrorValueObject.create(ErrorType$1.VALUE);
12844
+ const _lambda = lambda, rowCount = array.isArray() ? array.getRowCount() : 1, columnCount = array.isArray() ? array.getColumnCount() : 1;
12845
+ let accumulator = initialValue;
12846
+ for (let r = 0; r < rowCount; r++)
12847
+ for (let c = 0; c < columnCount; c++) {
12848
+ const valueObject = array.isArray() ? array.get(r, c) : array;
12849
+ if (valueObject.isError())
12850
+ return valueObject;
12851
+ let value = _lambda.execute(accumulator, valueObject);
12852
+ if (value.isArray() && (value = value.get(0, 0)), value.isError())
12853
+ return value;
12854
+ value.isNull() && (value = NumberValueObject.create(0)), accumulator = value;
12855
+ }
12856
+ const result = +accumulator.getValue();
12857
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.VALUE) : NumberValueObject.create(result);
12858
+ }
12859
+ };
12860
+ __name(_Reduce, "Reduce");
12861
+ let Reduce = _Reduce;
12862
+ const _Scan = class _Scan extends BaseFunction {
12863
+ constructor() {
12864
+ super(...arguments);
12865
+ __publicField(this, "minParams", 3);
12866
+ __publicField(this, "maxParams", 3);
12867
+ }
12868
+ calculate(initialValue, array, lambda) {
12869
+ if (initialValue.isError())
12870
+ return initialValue;
12871
+ if (array.isError())
12872
+ return array;
12873
+ if (lambda.isError())
12874
+ return lambda;
12875
+ if (!(lambda.isValueObject() && lambda.isLambda() && lambda.getLambdaPrivacyVarKeys().length === 2))
12876
+ return ErrorValueObject.create(ErrorType$1.VALUE);
12877
+ let _initialValue = initialValue;
12878
+ if (initialValue.isArray()) {
12879
+ const rowCount = initialValue.getRowCount(), columnCount = initialValue.getColumnCount();
12880
+ if (rowCount > 1 || columnCount > 1)
12881
+ return ErrorValueObject.create(ErrorType$1.CALC);
12882
+ _initialValue = initialValue.get(0, 0);
12883
+ }
12884
+ return this._getResult(_initialValue, array, lambda);
12885
+ }
12886
+ _getResult(initialValue, array, lambda) {
12887
+ const rowCount = array.isArray() ? array.getRowCount() : 1, columnCount = array.isArray() ? array.getColumnCount() : 1;
12888
+ let accumulator = initialValue;
12889
+ const resultArray = [];
12890
+ for (let r = 0; r < rowCount; r++) {
12891
+ const row = [];
12892
+ for (let c = 0; c < columnCount; c++) {
12893
+ if (accumulator.isError()) {
12894
+ row.push(accumulator);
12895
+ continue;
12896
+ }
12897
+ const valueObject = array.isArray() ? array.get(r, c) : array;
12898
+ if (valueObject.isError()) {
12899
+ accumulator = valueObject, row.push(valueObject);
12900
+ continue;
12901
+ }
12902
+ let value = lambda.execute(accumulator, valueObject);
12903
+ value.isArray() && (value = value.get(0, 0)), value.isNull() && (value = NumberValueObject.create(0)), accumulator = value, row.push(value);
12904
+ }
12905
+ resultArray.push(row);
12906
+ }
12907
+ return rowCount === 1 && columnCount === 1 ? resultArray[0][0] : ArrayValueObject.create({
12908
+ calculateValueList: resultArray,
12909
+ rowCount,
12910
+ columnCount,
12911
+ unitId: this.unitId,
12912
+ sheetId: this.subUnitId,
12913
+ row: this.row,
12914
+ column: this.column
12915
+ });
12916
+ }
12917
+ };
12918
+ __name(_Scan, "Scan");
12919
+ let Scan = _Scan;
12603
12920
  const _Switch = class _Switch extends BaseFunction {
12604
12921
  constructor() {
12605
12922
  super(...arguments);
@@ -12691,6 +13008,8 @@ __name(_Xor, "Xor");
12691
13008
  let Xor = _Xor;
12692
13009
  const functionLogical = [
12693
13010
  [And, FUNCTION_NAMES_LOGICAL.AND],
13011
+ [Bycol, FUNCTION_NAMES_LOGICAL.BYCOL],
13012
+ [Byrow, FUNCTION_NAMES_LOGICAL.BYROW],
12694
13013
  [False, FUNCTION_NAMES_LOGICAL.FALSE],
12695
13014
  [If, FUNCTION_NAMES_LOGICAL.IF],
12696
13015
  [Iferror, FUNCTION_NAMES_LOGICAL.IFERROR],
@@ -12699,14 +13018,15 @@ const functionLogical = [
12699
13018
  [Lambda, FUNCTION_NAMES_LOGICAL.LAMBDA],
12700
13019
  [Let, FUNCTION_NAMES_LOGICAL.LET],
12701
13020
  [Makearray, FUNCTION_NAMES_LOGICAL.MAKEARRAY],
13021
+ [Map$1, FUNCTION_NAMES_LOGICAL.MAP],
12702
13022
  [Not, FUNCTION_NAMES_LOGICAL.NOT],
12703
13023
  [Or, FUNCTION_NAMES_LOGICAL.OR],
13024
+ [Reduce, FUNCTION_NAMES_LOGICAL.REDUCE],
13025
+ [Scan, FUNCTION_NAMES_LOGICAL.SCAN],
12704
13026
  [Switch, FUNCTION_NAMES_LOGICAL.SWITCH],
12705
13027
  [True, FUNCTION_NAMES_LOGICAL.TRUE],
12706
13028
  [Xor, FUNCTION_NAMES_LOGICAL.XOR]
12707
- ];
12708
- var FUNCTION_NAMES_LOOKUP = /* @__PURE__ */ ((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 || {});
12709
- const _Address = class _Address extends BaseFunction {
13029
+ ], _Address = class _Address extends BaseFunction {
12710
13030
  constructor() {
12711
13031
  super(...arguments);
12712
13032
  __publicField(this, "minParams", 2);
@@ -12960,41 +13280,201 @@ const _Columns = class _Columns extends BaseFunction {
12960
13280
  };
12961
13281
  __name(_Columns, "Columns");
12962
13282
  let Columns = _Columns;
12963
- const _Filter = class _Filter extends BaseFunction {
13283
+ const _Drop = class _Drop extends BaseFunction {
12964
13284
  constructor() {
12965
13285
  super(...arguments);
12966
13286
  __publicField(this, "minParams", 2);
12967
13287
  __publicField(this, "maxParams", 3);
12968
13288
  }
12969
- calculate(array, include, ifEmpty) {
12970
- const _ifEmpty = ifEmpty != null ? ifEmpty : ErrorValueObject.create(ErrorType$1.CALC);
13289
+ calculate(array, rows, columns) {
13290
+ const _columns = columns != null ? columns : NumberValueObject.create(0), arrayRowCount = array.isArray() ? array.getRowCount() : 1, arrayColumnCount = array.isArray() ? array.getColumnCount() : 1, maxRowLength = Math.max(
13291
+ rows.isArray() ? rows.getRowCount() : 1,
13292
+ _columns.isArray() ? _columns.getRowCount() : 1
13293
+ ), maxColumnLength = Math.max(
13294
+ rows.isArray() ? rows.getColumnCount() : 1,
13295
+ _columns.isArray() ? _columns.getColumnCount() : 1
13296
+ ), rowsArray = expandArrayValueObject(maxRowLength, maxColumnLength, rows, ErrorValueObject.create(ErrorType$1.NA)), columnsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _columns, ErrorValueObject.create(ErrorType$1.NA));
13297
+ if (maxRowLength > 1 || maxColumnLength > 1)
13298
+ return rowsArray.mapValue((rowsObject2, rowIndex, columnIndex) => {
13299
+ const columnsObject2 = columnsArray.get(rowIndex, columnIndex);
13300
+ if (array.isError())
13301
+ return array;
13302
+ if (array.isNull())
13303
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13304
+ const { isError: isError2, errorObject: errorObject2 } = this._checkRowsColumns(rowsObject2, columnsObject2, arrayRowCount, arrayColumnCount);
13305
+ return isError2 ? errorObject2 : array.isArray() ? ErrorValueObject.create(ErrorType$1.VALUE) : array;
13306
+ });
12971
13307
  if (array.isError())
12972
13308
  return array;
12973
- if (include.isError())
12974
- return include;
12975
- 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;
12976
- 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;
13309
+ if (array.isNull())
13310
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13311
+ const rowsObject = rows.isArray() ? rows.get(0, 0) : rows, columnsObject = _columns.isArray() ? _columns.get(0, 0) : _columns, { isError, errorObject, rowsValue, columnsValue } = this._checkRowsColumns(rowsObject, columnsObject, arrayRowCount, arrayColumnCount);
13312
+ return isError ? errorObject : this._getResultArray(array, rowsValue, columnsValue, arrayRowCount, arrayColumnCount);
12977
13313
  }
12978
- _getResultArrayByR1C1(array, include, ifEmpty) {
12979
- let _array = array, _include = include;
12980
- 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;
13314
+ _checkRowsColumns(rowsObject, columnsObject, arrayRowCount, arrayColumnCount) {
13315
+ if (rowsObject.isError())
13316
+ return {
13317
+ isError: !0,
13318
+ errorObject: rowsObject
13319
+ };
13320
+ if (columnsObject.isError())
13321
+ return {
13322
+ isError: !0,
13323
+ errorObject: columnsObject
13324
+ };
13325
+ const rowsValue = Math.trunc(+rowsObject.getValue()), columnsValue = Math.trunc(+columnsObject.getValue());
13326
+ return Number.isNaN(rowsValue) || Number.isNaN(columnsValue) ? {
13327
+ isError: !0,
13328
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE)
13329
+ } : Math.abs(rowsValue) >= arrayRowCount || Math.abs(columnsValue) >= arrayColumnCount ? {
13330
+ isError: !0,
13331
+ errorObject: ErrorValueObject.create(ErrorType$1.CALC)
13332
+ } : {
13333
+ isError: !1,
13334
+ rowsValue,
13335
+ columnsValue
13336
+ };
12981
13337
  }
12982
- _getResultArrayByR1(arrayRowCount, arrayColumnCount, array, include, ifEmpty) {
12983
- const resultArray = [];
12984
- for (let c = 0; c < arrayColumnCount; c++) {
12985
- let includeObject = include.get(0, c);
12986
- if (includeObject.isString() && (includeObject = includeObject.convertToNumberObjectValue()), includeObject.isError())
12987
- return includeObject;
12988
- if (+includeObject.getValue())
12989
- for (let r = 0; r < arrayRowCount; r++) {
12990
- resultArray[r] || (resultArray[r] = []);
12991
- const arrayObject = array.get(r, c);
12992
- resultArray[r].push(arrayObject);
12993
- }
12994
- }
12995
- return resultArray.length === 0 ? ifEmpty : ArrayValueObject.create({
12996
- calculateValueList: resultArray,
12997
- rowCount: resultArray.length,
13338
+ _getResultArray(array, rows, columns, arrayRowCount, arrayColumnCount) {
13339
+ const rowParam = rows >= 0 ? [rows, arrayRowCount] : [0, arrayRowCount + rows], columnParam = columns >= 0 ? [columns, arrayColumnCount] : [0, arrayColumnCount + columns];
13340
+ let resultArray;
13341
+ return rows === 0 && columns === 0 ? resultArray = array : rows === 0 ? resultArray = array.slice(void 0, columnParam) : columns === 0 ? resultArray = array.slice(rowParam, void 0) : resultArray = array.slice(rowParam, columnParam), resultArray = resultArray.map((valueObject) => valueObject.isNull() ? NumberValueObject.create(0) : valueObject), arrayRowCount - rows === 1 && arrayColumnCount - columns === 1 ? resultArray.get(0, 0) : resultArray;
13342
+ }
13343
+ };
13344
+ __name(_Drop, "Drop");
13345
+ let Drop = _Drop;
13346
+ const _Expand = class _Expand extends BaseFunction {
13347
+ constructor() {
13348
+ super(...arguments);
13349
+ __publicField(this, "minParams", 2);
13350
+ __publicField(this, "maxParams", 4);
13351
+ }
13352
+ calculate(array, rows, columns, padWith) {
13353
+ const arrayRowCount = array.isArray() ? array.getRowCount() : 1, arrayColumnCount = array.isArray() ? array.getColumnCount() : 1;
13354
+ let _rows = rows, _columns = columns != null ? columns : NumberValueObject.create(arrayColumnCount);
13355
+ const _padWith = padWith != null ? padWith : ErrorValueObject.create(ErrorType$1.NA);
13356
+ rows.isNull() && (_rows = NumberValueObject.create(arrayRowCount)), _columns.isNull() && (_columns = NumberValueObject.create(arrayColumnCount));
13357
+ const maxRowLength = Math.max(
13358
+ _rows.isArray() ? _rows.getRowCount() : 1,
13359
+ _columns.isArray() ? _columns.getRowCount() : 1
13360
+ ), maxColumnLength = Math.max(
13361
+ _rows.isArray() ? _rows.getColumnCount() : 1,
13362
+ _columns.isArray() ? _columns.getColumnCount() : 1
13363
+ ), rowsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _rows, ErrorValueObject.create(ErrorType$1.NA)), columnsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _columns, ErrorValueObject.create(ErrorType$1.NA));
13364
+ if (maxRowLength > 1 || maxColumnLength > 1)
13365
+ return rowsArray.mapValue((rowsObject2, rowIndex, columnIndex) => {
13366
+ const columnsObject2 = columnsArray.get(rowIndex, columnIndex);
13367
+ if (array.isError())
13368
+ return array;
13369
+ if (array.isNull())
13370
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13371
+ const { isError: isError2, errorObject: errorObject2 } = this._checkRowsColumnsPadWith(rowsObject2, columnsObject2, _padWith, arrayRowCount, arrayColumnCount);
13372
+ return isError2 ? errorObject2 : array.isArray() ? array.get(0, 0) : array;
13373
+ });
13374
+ if (array.isError())
13375
+ return array;
13376
+ if (array.isNull())
13377
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13378
+ const rowsObject = _rows.isArray() ? _rows.get(0, 0) : _rows, columnsObject = _columns.isArray() ? _columns.get(0, 0) : _columns, { isError, errorObject, rowsValue, columnsValue, padWithObject } = this._checkRowsColumnsPadWith(rowsObject, columnsObject, _padWith, arrayRowCount, arrayColumnCount);
13379
+ return isError ? errorObject : this._getResultArray(array, rowsValue, columnsValue, padWithObject, arrayRowCount, arrayColumnCount);
13380
+ }
13381
+ _checkRowsColumnsPadWith(rowsObject, columnsObject, padWith, arrayRowCount, arrayColumnCount) {
13382
+ if (rowsObject.isError())
13383
+ return {
13384
+ isError: !0,
13385
+ errorObject: rowsObject
13386
+ };
13387
+ if (columnsObject.isError())
13388
+ return {
13389
+ isError: !0,
13390
+ errorObject: columnsObject
13391
+ };
13392
+ const rowsValue = Math.trunc(+rowsObject.getValue()), columnsValue = Math.trunc(+columnsObject.getValue());
13393
+ if (Number.isNaN(rowsValue) || Number.isNaN(columnsValue))
13394
+ return {
13395
+ isError: !0,
13396
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE)
13397
+ };
13398
+ if (Math.abs(rowsValue) < arrayRowCount || Math.abs(columnsValue) < arrayColumnCount)
13399
+ return {
13400
+ isError: !0,
13401
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE)
13402
+ };
13403
+ let _padWith = padWith;
13404
+ if (padWith.isArray()) {
13405
+ const rowCount = padWith.getRowCount(), columnCount = padWith.getColumnCount();
13406
+ if (rowCount > 1 || columnCount > 1)
13407
+ return {
13408
+ isError: !0,
13409
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE)
13410
+ };
13411
+ _padWith = padWith.get(0, 0);
13412
+ }
13413
+ return {
13414
+ isError: !1,
13415
+ rowsValue,
13416
+ columnsValue,
13417
+ padWithObject: _padWith
13418
+ };
13419
+ }
13420
+ _getResultArray(array, rows, columns, padWith, arrayRowCount, arrayColumnCount) {
13421
+ let resultArray = [];
13422
+ array.isArray() ? resultArray = array.map((valueObject) => valueObject.isNull() ? NumberValueObject.create(0) : valueObject).getArrayValue() : resultArray = [[array]];
13423
+ const addRows = Math.max(0, rows - arrayRowCount), addColumns = Math.max(0, columns - arrayColumnCount);
13424
+ for (let r = 0; r < addRows; r++)
13425
+ resultArray.push(new Array(arrayColumnCount).fill(padWith));
13426
+ for (let c = 0; c < addColumns; c++)
13427
+ resultArray.forEach((row) => {
13428
+ row.push(padWith);
13429
+ });
13430
+ return rows === 1 && columns === 1 ? resultArray[0][0] : ArrayValueObject.create({
13431
+ calculateValueList: resultArray,
13432
+ rowCount: resultArray.length,
13433
+ columnCount: resultArray[0].length,
13434
+ unitId: this.unitId,
13435
+ sheetId: this.subUnitId,
13436
+ row: this.row,
13437
+ column: this.column
13438
+ });
13439
+ }
13440
+ };
13441
+ __name(_Expand, "Expand");
13442
+ let Expand = _Expand;
13443
+ const _Filter = class _Filter extends BaseFunction {
13444
+ constructor() {
13445
+ super(...arguments);
13446
+ __publicField(this, "minParams", 2);
13447
+ __publicField(this, "maxParams", 3);
13448
+ }
13449
+ calculate(array, include, ifEmpty) {
13450
+ const _ifEmpty = ifEmpty != null ? ifEmpty : ErrorValueObject.create(ErrorType$1.CALC);
13451
+ if (array.isError())
13452
+ return array;
13453
+ if (include.isError())
13454
+ return include;
13455
+ 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;
13456
+ 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;
13457
+ }
13458
+ _getResultArrayByR1C1(array, include, ifEmpty) {
13459
+ let _array = array, _include = include;
13460
+ 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;
13461
+ }
13462
+ _getResultArrayByR1(arrayRowCount, arrayColumnCount, array, include, ifEmpty) {
13463
+ const resultArray = [];
13464
+ for (let c = 0; c < arrayColumnCount; c++) {
13465
+ let includeObject = include.get(0, c);
13466
+ if (includeObject.isString() && (includeObject = includeObject.convertToNumberObjectValue()), includeObject.isError())
13467
+ return includeObject;
13468
+ if (+includeObject.getValue())
13469
+ for (let r = 0; r < arrayRowCount; r++) {
13470
+ resultArray[r] || (resultArray[r] = []);
13471
+ const arrayObject = array.get(r, c);
13472
+ resultArray[r].push(arrayObject);
13473
+ }
13474
+ }
13475
+ return resultArray.length === 0 ? ifEmpty : ArrayValueObject.create({
13476
+ calculateValueList: resultArray,
13477
+ rowCount: resultArray.length,
12998
13478
  columnCount: resultArray[0].length || 0,
12999
13479
  unitId: this.unitId,
13000
13480
  sheetId: this.subUnitId,
@@ -13030,6 +13510,7 @@ const _Filter = class _Filter extends BaseFunction {
13030
13510
  };
13031
13511
  __name(_Filter, "Filter");
13032
13512
  let Filter = _Filter;
13513
+ var FUNCTION_NAMES_LOOKUP = /* @__PURE__ */ ((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 || {});
13033
13514
  const _Hlookup = class _Hlookup extends BaseFunction {
13034
13515
  constructor() {
13035
13516
  super(...arguments);
@@ -13094,6 +13575,112 @@ const _Hstack = class _Hstack extends BaseFunction {
13094
13575
  };
13095
13576
  __name(_Hstack, "Hstack");
13096
13577
  let Hstack = _Hstack;
13578
+ const _Index = class _Index extends BaseFunction {
13579
+ constructor() {
13580
+ super(...arguments);
13581
+ __publicField(this, "minParams", 1);
13582
+ __publicField(this, "maxParams", 4);
13583
+ __publicField(this, "needsReferenceObject", !0);
13584
+ }
13585
+ // eslint-disable-next-line max-lines-per-function, complexity
13586
+ calculate(reference, rowNum, columnNum, areaNum) {
13587
+ if (reference.isError())
13588
+ return reference;
13589
+ if (rowNum != null && rowNum.isError())
13590
+ return rowNum;
13591
+ if (columnNum != null && columnNum.isError())
13592
+ return columnNum;
13593
+ if (areaNum != null && areaNum.isError())
13594
+ return areaNum;
13595
+ let referenceRowCount = 0, referenceColumnCount = 0;
13596
+ if (reference.isValueObject())
13597
+ referenceRowCount = 1, referenceColumnCount = 1;
13598
+ else if (reference.isReferenceObject()) {
13599
+ const { startRow, endRow, startColumn, endColumn } = reference.getRangePosition();
13600
+ referenceRowCount = endRow - startRow + 1, referenceColumnCount = endColumn - startColumn + 1;
13601
+ } else
13602
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13603
+ let _rowNum, _columnNum;
13604
+ 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));
13605
+ let _areaNum = areaNum != null ? areaNum : NumberValueObject.create(1);
13606
+ _rowNum.isReferenceObject() && (_rowNum = _rowNum.toArrayValueObject()), _columnNum.isReferenceObject() && (_columnNum = _columnNum.toArrayValueObject()), _areaNum.isReferenceObject() && (_areaNum = _areaNum.toArrayValueObject());
13607
+ const maxRowLength = Math.max(
13608
+ _rowNum.isArray() ? _rowNum.getRowCount() : 1,
13609
+ _columnNum.isArray() ? _columnNum.getRowCount() : 1,
13610
+ _areaNum.isArray() ? _areaNum.getRowCount() : 1
13611
+ ), maxColumnLength = Math.max(
13612
+ _rowNum.isArray() ? _rowNum.getColumnCount() : 1,
13613
+ _columnNum.isArray() ? _columnNum.getColumnCount() : 1,
13614
+ _areaNum.isArray() ? _areaNum.getColumnCount() : 1
13615
+ );
13616
+ if (_rowNum = _rowNum, _columnNum = _columnNum, _areaNum = _areaNum, maxRowLength === 1 && maxColumnLength === 1)
13617
+ return this._calculateSingleCell(reference, _rowNum, _columnNum, _areaNum);
13618
+ {
13619
+ 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));
13620
+ return rowNumArray.map((rowNumValue, rowIndex, columnIndex) => {
13621
+ const columnNumValue = columnNumArray.get(rowIndex, columnIndex) || NullValueObject.create(), areaNumValue = areaNumArray.get(rowIndex, columnIndex) || NullValueObject.create(), result = this._calculateSingleCell(reference, rowNumValue, columnNumValue, areaNumValue);
13622
+ return result.isReferenceObject() ? result.toArrayValueObject().getFirstCell() : result;
13623
+ });
13624
+ }
13625
+ }
13626
+ _calculateSingleCell(reference, rowNum, columnNum, areaNum) {
13627
+ if (rowNum.isError())
13628
+ return rowNum;
13629
+ const rowNumberValue = this._getNumberValue(rowNum);
13630
+ if (rowNumberValue === void 0 || rowNumberValue < 0)
13631
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13632
+ if (columnNum.isError())
13633
+ return columnNum;
13634
+ const columnNumberValue = this._getNumberValue(columnNum);
13635
+ if (columnNumberValue === void 0 || columnNumberValue < 0)
13636
+ return ErrorValueObject.create(ErrorType$1.VALUE);
13637
+ if (areaNum.isError())
13638
+ return areaNum;
13639
+ const areaNumberValue = this._getAreaNumberValue(areaNum);
13640
+ 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);
13641
+ }
13642
+ _getNumberValue(numberValueObject) {
13643
+ if (numberValueObject == null)
13644
+ return 0;
13645
+ let logicValue = 0;
13646
+ if (numberValueObject.isBoolean())
13647
+ numberValueObject.getValue() === !0 && (logicValue = 1);
13648
+ else {
13649
+ if (numberValueObject.isString())
13650
+ return;
13651
+ numberValueObject.isNumber() ? logicValue = Math.floor(numberValueObject.getValue()) : numberValueObject.isNull() && (logicValue = 0);
13652
+ }
13653
+ return logicValue;
13654
+ }
13655
+ _getAreaNumberValue(numberValueObject) {
13656
+ if (numberValueObject == null)
13657
+ return 1;
13658
+ let logicValue = 0;
13659
+ if (numberValueObject.isBoolean())
13660
+ numberValueObject.getValue() === !0 && (logicValue = 1);
13661
+ else {
13662
+ if (numberValueObject.isString())
13663
+ return;
13664
+ numberValueObject.isNumber() ? logicValue = Math.floor(numberValueObject.getValue()) : numberValueObject.isNull() && (logicValue = 0);
13665
+ }
13666
+ return logicValue;
13667
+ }
13668
+ _getReferenceObject(reference, rowNumberValue, columnNumberValue, areaNumberValue) {
13669
+ const { startRow, endRow, startColumn, endColumn } = reference.getRangePosition();
13670
+ let referenceStartRow = 0, referenceEndRow = 0, referenceStartColumn = 0, referenceEndColumn = 0;
13671
+ 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)
13672
+ return ErrorValueObject.create(ErrorType$1.REF);
13673
+ const range = {
13674
+ startRow: referenceStartRow,
13675
+ startColumn: referenceStartColumn,
13676
+ endRow: referenceEndRow,
13677
+ endColumn: referenceEndColumn
13678
+ };
13679
+ return this.createReferenceObject(reference, range);
13680
+ }
13681
+ };
13682
+ __name(_Index, "Index");
13683
+ let Index = _Index;
13097
13684
  const _Indirect = class _Indirect extends BaseFunction {
13098
13685
  constructor() {
13099
13686
  super(...arguments);
@@ -13665,6 +14252,224 @@ const _Sortby = class _Sortby extends BaseFunction {
13665
14252
  };
13666
14253
  __name(_Sortby, "Sortby");
13667
14254
  let Sortby = _Sortby;
14255
+ const _Take = class _Take extends BaseFunction {
14256
+ constructor() {
14257
+ super(...arguments);
14258
+ __publicField(this, "minParams", 2);
14259
+ __publicField(this, "maxParams", 3);
14260
+ }
14261
+ calculate(array, rows, columns) {
14262
+ const arrayRowCount = array.isArray() ? array.getRowCount() : 1, arrayColumnCount = array.isArray() ? array.getColumnCount() : 1;
14263
+ let _rows = rows, _columns = columns != null ? columns : NumberValueObject.create(arrayColumnCount);
14264
+ rows.isNull() && (_rows = NumberValueObject.create(arrayRowCount)), _columns.isNull() && (_columns = NumberValueObject.create(arrayColumnCount));
14265
+ const maxRowLength = Math.max(
14266
+ _rows.isArray() ? _rows.getRowCount() : 1,
14267
+ _columns.isArray() ? _columns.getRowCount() : 1
14268
+ ), maxColumnLength = Math.max(
14269
+ _rows.isArray() ? _rows.getColumnCount() : 1,
14270
+ _columns.isArray() ? _columns.getColumnCount() : 1
14271
+ ), rowsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _rows, ErrorValueObject.create(ErrorType$1.NA)), columnsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _columns, ErrorValueObject.create(ErrorType$1.NA));
14272
+ if (maxRowLength > 1 || maxColumnLength > 1)
14273
+ return rowsArray.mapValue((rowsObject2, rowIndex, columnIndex) => {
14274
+ const columnsObject2 = columnsArray.get(rowIndex, columnIndex);
14275
+ if (array.isError())
14276
+ return array;
14277
+ if (array.isNull())
14278
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14279
+ const { isError: isError2, errorObject: errorObject2 } = this._checkRowsColumns(rowsObject2, columnsObject2, arrayRowCount, arrayColumnCount);
14280
+ return isError2 ? errorObject2 : array.isArray() ? ErrorValueObject.create(ErrorType$1.VALUE) : array;
14281
+ });
14282
+ if (array.isError())
14283
+ return array;
14284
+ if (array.isNull())
14285
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14286
+ const rowsObject = _rows.isArray() ? _rows.get(0, 0) : _rows, columnsObject = _columns.isArray() ? _columns.get(0, 0) : _columns, { isError, errorObject, rowsValue, columnsValue } = this._checkRowsColumns(rowsObject, columnsObject, arrayRowCount, arrayColumnCount);
14287
+ return isError ? errorObject : this._getResultArray(array, rowsValue, columnsValue, arrayRowCount, arrayColumnCount);
14288
+ }
14289
+ _checkRowsColumns(rowsObject, columnsObject, arrayRowCount, arrayColumnCount) {
14290
+ if (rowsObject.isError())
14291
+ return {
14292
+ isError: !0,
14293
+ errorObject: rowsObject
14294
+ };
14295
+ if (columnsObject.isError())
14296
+ return {
14297
+ isError: !0,
14298
+ errorObject: columnsObject
14299
+ };
14300
+ let rowsValue = Math.trunc(+rowsObject.getValue()), columnsValue = Math.trunc(+columnsObject.getValue());
14301
+ return Number.isNaN(rowsValue) || Number.isNaN(columnsValue) ? {
14302
+ isError: !0,
14303
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE)
14304
+ } : Math.abs(rowsValue) === 0 || Math.abs(columnsValue) === 0 ? {
14305
+ isError: !0,
14306
+ errorObject: ErrorValueObject.create(ErrorType$1.CALC)
14307
+ } : (rowsValue > arrayRowCount && (rowsValue = arrayRowCount), columnsValue > arrayColumnCount && (columnsValue = arrayColumnCount), {
14308
+ isError: !1,
14309
+ rowsValue,
14310
+ columnsValue
14311
+ });
14312
+ }
14313
+ _getResultArray(array, rows, columns, arrayRowCount, arrayColumnCount) {
14314
+ if (!array.isArray())
14315
+ return array;
14316
+ const rowParam = rows >= 0 ? [0, rows] : [arrayRowCount + rows, arrayRowCount], columnParam = columns >= 0 ? [0, columns] : [arrayColumnCount + columns, arrayColumnCount];
14317
+ let resultArray;
14318
+ return rows === arrayRowCount && columns === arrayColumnCount ? resultArray = array : rows === arrayRowCount ? resultArray = array.slice(void 0, columnParam) : columns === arrayColumnCount ? resultArray = array.slice(rowParam, void 0) : resultArray = array.slice(rowParam, columnParam), resultArray = resultArray.map((valueObject) => valueObject.isNull() ? NumberValueObject.create(0) : valueObject), rows === 1 && columns === 1 ? resultArray.get(0, 0) : resultArray;
14319
+ }
14320
+ };
14321
+ __name(_Take, "Take");
14322
+ let Take = _Take;
14323
+ const _Tocol = class _Tocol extends BaseFunction {
14324
+ constructor() {
14325
+ super(...arguments);
14326
+ __publicField(this, "minParams", 1);
14327
+ __publicField(this, "maxParams", 3);
14328
+ }
14329
+ calculate(array, ignore, scanByColumn) {
14330
+ const _ignore = ignore != null ? ignore : NumberValueObject.create(0), _scanByColumn = scanByColumn != null ? scanByColumn : BooleanValueObject.create(!1), maxRowLength = Math.max(
14331
+ _ignore.isArray() ? _ignore.getRowCount() : 1,
14332
+ _scanByColumn.isArray() ? _scanByColumn.getRowCount() : 1
14333
+ ), maxColumnLength = Math.max(
14334
+ _ignore.isArray() ? _ignore.getColumnCount() : 1,
14335
+ _scanByColumn.isArray() ? _scanByColumn.getColumnCount() : 1
14336
+ ), ignoreArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ignore, ErrorValueObject.create(ErrorType$1.NA)), scanByColumnArray = expandArrayValueObject(maxRowLength, maxColumnLength, _scanByColumn, ErrorValueObject.create(ErrorType$1.NA)), resultArray = ignoreArray.mapValue((ignoreObject, rowIndex, columnIndex) => {
14337
+ const scanByColumnObject = scanByColumnArray.get(rowIndex, columnIndex);
14338
+ if (array.isError())
14339
+ return array;
14340
+ if (array.isNull())
14341
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14342
+ if (ignoreObject.isError())
14343
+ return ignoreObject;
14344
+ if (scanByColumnObject.isError())
14345
+ return scanByColumnObject;
14346
+ const ignoreValue = Math.trunc(+ignoreObject.getValue()), scanByColumnValue = +scanByColumnObject.getValue();
14347
+ if (Number.isNaN(ignoreValue) || ignoreValue < 0 || ignoreValue > 3 || Number.isNaN(scanByColumnValue))
14348
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14349
+ if (!array.isArray())
14350
+ return array;
14351
+ let result = [];
14352
+ return scanByColumnValue ? result = this._getArrayValueByColumn(array, ignoreValue) : result = this._getArrayValueByRow(array, ignoreValue), result.length === 0 ? ErrorValueObject.create(ErrorType$1.CALC) : maxRowLength > 1 || maxColumnLength > 1 || result.length === 1 ? result[0] : ArrayValueObject.create({
14353
+ calculateValueList: result.map((valueObject) => [valueObject]),
14354
+ rowCount: result.length,
14355
+ columnCount: 1,
14356
+ unitId: this.unitId,
14357
+ sheetId: this.subUnitId,
14358
+ row: this.row,
14359
+ column: this.column
14360
+ });
14361
+ });
14362
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
14363
+ }
14364
+ _getArrayValueByColumn(array, ignore) {
14365
+ const _array = array, arrayRowCount = _array.getRowCount(), arrayColumnCount = _array.getColumnCount(), result = [];
14366
+ for (let c = 0; c < arrayColumnCount; c++)
14367
+ for (let r = 0; r < arrayRowCount; r++) {
14368
+ const valueObject = _array.get(r, c);
14369
+ this._isIgnore(valueObject, ignore) || result.push(valueObject.isNull() ? NumberValueObject.create(0) : valueObject);
14370
+ }
14371
+ return result;
14372
+ }
14373
+ _getArrayValueByRow(array, ignore) {
14374
+ const _array = array, arrayRowCount = _array.getRowCount(), arrayColumnCount = _array.getColumnCount(), result = [];
14375
+ for (let r = 0; r < arrayRowCount; r++)
14376
+ for (let c = 0; c < arrayColumnCount; c++) {
14377
+ const valueObject = _array.get(r, c);
14378
+ this._isIgnore(valueObject, ignore) || result.push(valueObject.isNull() ? NumberValueObject.create(0) : valueObject);
14379
+ }
14380
+ return result;
14381
+ }
14382
+ _isIgnore(valueObject, ignore) {
14383
+ switch (ignore) {
14384
+ case 0:
14385
+ return !1;
14386
+ case 1:
14387
+ return valueObject.isNull();
14388
+ case 2:
14389
+ return valueObject.isError();
14390
+ case 3:
14391
+ return valueObject.isNull() || valueObject.isError();
14392
+ default:
14393
+ return !1;
14394
+ }
14395
+ }
14396
+ };
14397
+ __name(_Tocol, "Tocol");
14398
+ let Tocol = _Tocol;
14399
+ const _Torow = class _Torow extends BaseFunction {
14400
+ constructor() {
14401
+ super(...arguments);
14402
+ __publicField(this, "minParams", 1);
14403
+ __publicField(this, "maxParams", 3);
14404
+ }
14405
+ calculate(array, ignore, scanByColumn) {
14406
+ const _ignore = ignore != null ? ignore : NumberValueObject.create(0), _scanByColumn = scanByColumn != null ? scanByColumn : BooleanValueObject.create(!1), maxRowLength = Math.max(
14407
+ _ignore.isArray() ? _ignore.getRowCount() : 1,
14408
+ _scanByColumn.isArray() ? _scanByColumn.getRowCount() : 1
14409
+ ), maxColumnLength = Math.max(
14410
+ _ignore.isArray() ? _ignore.getColumnCount() : 1,
14411
+ _scanByColumn.isArray() ? _scanByColumn.getColumnCount() : 1
14412
+ ), ignoreArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ignore, ErrorValueObject.create(ErrorType$1.NA)), scanByColumnArray = expandArrayValueObject(maxRowLength, maxColumnLength, _scanByColumn, ErrorValueObject.create(ErrorType$1.NA)), resultArray = ignoreArray.mapValue((ignoreObject, rowIndex, columnIndex) => {
14413
+ const scanByColumnObject = scanByColumnArray.get(rowIndex, columnIndex);
14414
+ if (array.isError())
14415
+ return array;
14416
+ if (ignoreObject.isError())
14417
+ return ignoreObject;
14418
+ if (scanByColumnObject.isError())
14419
+ return scanByColumnObject;
14420
+ const ignoreValue = Math.trunc(+ignoreObject.getValue()), scanByColumnValue = +scanByColumnObject.getValue();
14421
+ if (Number.isNaN(ignoreValue) || ignoreValue < 0 || ignoreValue > 3 || Number.isNaN(scanByColumnValue) || array.isNull())
14422
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14423
+ if (!array.isArray())
14424
+ return array;
14425
+ let result = [];
14426
+ return scanByColumnValue ? result = this._getArrayValueByColumn(array, ignoreValue) : result = this._getArrayValueByRow(array, ignoreValue), result.length === 0 ? ErrorValueObject.create(ErrorType$1.CALC) : maxRowLength > 1 || maxColumnLength > 1 || result.length === 1 ? result[0] : ArrayValueObject.create({
14427
+ calculateValueList: [result],
14428
+ rowCount: 1,
14429
+ columnCount: result.length,
14430
+ unitId: this.unitId,
14431
+ sheetId: this.subUnitId,
14432
+ row: this.row,
14433
+ column: this.column
14434
+ });
14435
+ });
14436
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
14437
+ }
14438
+ _getArrayValueByColumn(array, ignore) {
14439
+ const _array = array, arrayRowCount = _array.getRowCount(), arrayColumnCount = _array.getColumnCount(), result = [];
14440
+ for (let c = 0; c < arrayColumnCount; c++)
14441
+ for (let r = 0; r < arrayRowCount; r++) {
14442
+ const valueObject = _array.get(r, c);
14443
+ this._isIgnore(valueObject, ignore) || result.push(valueObject.isNull() ? NumberValueObject.create(0) : valueObject);
14444
+ }
14445
+ return result;
14446
+ }
14447
+ _getArrayValueByRow(array, ignore) {
14448
+ const _array = array, arrayRowCount = _array.getRowCount(), arrayColumnCount = _array.getColumnCount(), result = [];
14449
+ for (let r = 0; r < arrayRowCount; r++)
14450
+ for (let c = 0; c < arrayColumnCount; c++) {
14451
+ const valueObject = _array.get(r, c);
14452
+ this._isIgnore(valueObject, ignore) || result.push(valueObject.isNull() ? NumberValueObject.create(0) : valueObject);
14453
+ }
14454
+ return result;
14455
+ }
14456
+ _isIgnore(valueObject, ignore) {
14457
+ switch (ignore) {
14458
+ case 0:
14459
+ return !1;
14460
+ case 1:
14461
+ return valueObject.isNull();
14462
+ case 2:
14463
+ return valueObject.isError();
14464
+ case 3:
14465
+ return valueObject.isNull() || valueObject.isError();
14466
+ default:
14467
+ return !1;
14468
+ }
14469
+ }
14470
+ };
14471
+ __name(_Torow, "Torow");
14472
+ let Torow = _Torow;
13668
14473
  const _Transpose = class _Transpose extends BaseFunction {
13669
14474
  constructor() {
13670
14475
  super(...arguments);
@@ -13858,37 +14663,147 @@ const _Vstack = class _Vstack extends BaseFunction {
13858
14663
  __publicField(this, "minParams", 1);
13859
14664
  __publicField(this, "maxParams", 255);
13860
14665
  }
13861
- calculate(...variants) {
13862
- const maxColumnLength = Math.max(
13863
- ...variants.map((variantObject) => variantObject.isArray() ? variantObject.getColumnCount() : 1)
13864
- ), result = [];
13865
- for (let i = 0; i < variants.length; i++) {
13866
- const variantObject = variants[i];
13867
- if (variantObject.isError())
13868
- return variantObject;
13869
- const rowCount = variantObject.isArray() ? variantObject.getRowCount() : 1, columnCount = variantObject.isArray() ? variantObject.getColumnCount() : 1;
13870
- for (let r = 0; r < rowCount; r++) {
13871
- const row = [];
13872
- for (let c = 0; c < maxColumnLength; c++) {
13873
- let singleObject = variantObject;
13874
- variantObject.isArray() && (singleObject = variantObject.get(r, c)), c > columnCount - 1 || !singleObject ? row.push(ErrorValueObject.create(ErrorType$1.NA)) : row.push(singleObject);
13875
- }
13876
- result.push(row);
14666
+ calculate(...variants) {
14667
+ const maxColumnLength = Math.max(
14668
+ ...variants.map((variantObject) => variantObject.isArray() ? variantObject.getColumnCount() : 1)
14669
+ ), result = [];
14670
+ for (let i = 0; i < variants.length; i++) {
14671
+ const variantObject = variants[i];
14672
+ if (variantObject.isError())
14673
+ return variantObject;
14674
+ const rowCount = variantObject.isArray() ? variantObject.getRowCount() : 1, columnCount = variantObject.isArray() ? variantObject.getColumnCount() : 1;
14675
+ for (let r = 0; r < rowCount; r++) {
14676
+ const row = [];
14677
+ for (let c = 0; c < maxColumnLength; c++) {
14678
+ let singleObject = variantObject;
14679
+ variantObject.isArray() && (singleObject = variantObject.get(r, c)), c > columnCount - 1 || !singleObject ? row.push(ErrorValueObject.create(ErrorType$1.NA)) : row.push(singleObject);
14680
+ }
14681
+ result.push(row);
14682
+ }
14683
+ }
14684
+ return ArrayValueObject.create({
14685
+ calculateValueList: result,
14686
+ rowCount: result.length,
14687
+ columnCount: result[0].length || 0,
14688
+ unitId: this.unitId,
14689
+ sheetId: this.subUnitId,
14690
+ row: this.row,
14691
+ column: this.column
14692
+ });
14693
+ }
14694
+ };
14695
+ __name(_Vstack, "Vstack");
14696
+ let Vstack = _Vstack;
14697
+ const _Wrapcols = class _Wrapcols extends BaseFunction {
14698
+ constructor() {
14699
+ super(...arguments);
14700
+ __publicField(this, "minParams", 2);
14701
+ __publicField(this, "maxParams", 3);
14702
+ }
14703
+ calculate(vector, wrapCount, padWith) {
14704
+ let _padWith = padWith != null ? padWith : ErrorValueObject.create(ErrorType$1.NA);
14705
+ _padWith.isNull() && (_padWith = ErrorValueObject.create(ErrorType$1.NA));
14706
+ const vectorRowCount = vector.isArray() ? vector.getRowCount() : 1, vectorColumnCount = vector.isArray() ? vector.getColumnCount() : 1, maxRowLength = Math.max(
14707
+ wrapCount.isArray() ? wrapCount.getRowCount() : 1,
14708
+ _padWith.isArray() ? _padWith.getRowCount() : 1
14709
+ ), maxColumnLength = Math.max(
14710
+ wrapCount.isArray() ? wrapCount.getColumnCount() : 1,
14711
+ _padWith.isArray() ? _padWith.getColumnCount() : 1
14712
+ ), wrapCountArray = expandArrayValueObject(maxRowLength, maxColumnLength, wrapCount, ErrorValueObject.create(ErrorType$1.NA)), padWithArray = expandArrayValueObject(maxRowLength, maxColumnLength, _padWith, ErrorValueObject.create(ErrorType$1.NA)), resultArray = wrapCountArray.mapValue((wrapCountObject, rowIndex, columnIndex) => {
14713
+ const padWithObject = padWithArray.get(rowIndex, columnIndex);
14714
+ if (vector.isError())
14715
+ return vector;
14716
+ if (vector.isNull())
14717
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14718
+ if (wrapCountObject.isError())
14719
+ return wrapCountObject;
14720
+ const wrapCountValue = Math.trunc(+wrapCountObject.getValue());
14721
+ if (vectorRowCount > 1 && vectorColumnCount > 1 || Number.isNaN(wrapCountValue))
14722
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14723
+ if (wrapCountValue < 1)
14724
+ return ErrorValueObject.create(ErrorType$1.NUM);
14725
+ const vectorArray = vector.isArray() ? vector.getArrayValue().flat() : [vector], result = this._getWrapArray(vectorArray, wrapCountValue, padWithObject);
14726
+ return maxRowLength > 1 || maxColumnLength > 1 || result.length === 1 && result[0].length === 1 ? result[0][0] : ArrayValueObject.create({
14727
+ calculateValueList: result,
14728
+ rowCount: result.length,
14729
+ columnCount: result[0].length,
14730
+ unitId: this.unitId,
14731
+ sheetId: this.subUnitId,
14732
+ row: this.row,
14733
+ column: this.column
14734
+ });
14735
+ });
14736
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
14737
+ }
14738
+ _getWrapArray(vectorArray, wrapCount, padWith) {
14739
+ const columns = Math.ceil(vectorArray.length / wrapCount), _wrapCount = columns > 1 ? wrapCount : vectorArray.length, result = [];
14740
+ for (let c = 0; c < columns; c++)
14741
+ for (let r = 0; r < _wrapCount; r++) {
14742
+ result[r] || (result[r] = []);
14743
+ const index = c * _wrapCount + r;
14744
+ index < vectorArray.length ? result[r].push(vectorArray[index].isNull() ? NumberValueObject.create(0) : vectorArray[index]) : result[r].push(padWith);
14745
+ }
14746
+ return result;
14747
+ }
14748
+ };
14749
+ __name(_Wrapcols, "Wrapcols");
14750
+ let Wrapcols = _Wrapcols;
14751
+ const _Wraprows = class _Wraprows extends BaseFunction {
14752
+ constructor() {
14753
+ super(...arguments);
14754
+ __publicField(this, "minParams", 2);
14755
+ __publicField(this, "maxParams", 3);
14756
+ }
14757
+ calculate(vector, wrapCount, padWith) {
14758
+ let _padWith = padWith != null ? padWith : ErrorValueObject.create(ErrorType$1.NA);
14759
+ _padWith.isNull() && (_padWith = ErrorValueObject.create(ErrorType$1.NA));
14760
+ const vectorRowCount = vector.isArray() ? vector.getRowCount() : 1, vectorColumnCount = vector.isArray() ? vector.getColumnCount() : 1, maxRowLength = Math.max(
14761
+ wrapCount.isArray() ? wrapCount.getRowCount() : 1,
14762
+ _padWith.isArray() ? _padWith.getRowCount() : 1
14763
+ ), maxColumnLength = Math.max(
14764
+ wrapCount.isArray() ? wrapCount.getColumnCount() : 1,
14765
+ _padWith.isArray() ? _padWith.getColumnCount() : 1
14766
+ ), wrapCountArray = expandArrayValueObject(maxRowLength, maxColumnLength, wrapCount, ErrorValueObject.create(ErrorType$1.NA)), padWithArray = expandArrayValueObject(maxRowLength, maxColumnLength, _padWith, ErrorValueObject.create(ErrorType$1.NA)), resultArray = wrapCountArray.mapValue((wrapCountObject, rowIndex, columnIndex) => {
14767
+ const padWithObject = padWithArray.get(rowIndex, columnIndex);
14768
+ if (vector.isError())
14769
+ return vector;
14770
+ if (vector.isNull())
14771
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14772
+ if (wrapCountObject.isError())
14773
+ return wrapCountObject;
14774
+ const wrapCountValue = Math.trunc(+wrapCountObject.getValue());
14775
+ if (vectorRowCount > 1 && vectorColumnCount > 1 || Number.isNaN(wrapCountValue))
14776
+ return ErrorValueObject.create(ErrorType$1.VALUE);
14777
+ if (wrapCountValue < 1)
14778
+ return ErrorValueObject.create(ErrorType$1.NUM);
14779
+ const vectorArray = vector.isArray() ? vector.getArrayValue().flat() : [vector], result = this._getWrapArray(vectorArray, wrapCountValue, padWithObject);
14780
+ return maxRowLength > 1 || maxColumnLength > 1 || result.length === 1 && result[0].length === 1 ? result[0][0] : ArrayValueObject.create({
14781
+ calculateValueList: result,
14782
+ rowCount: result.length,
14783
+ columnCount: result[0].length,
14784
+ unitId: this.unitId,
14785
+ sheetId: this.subUnitId,
14786
+ row: this.row,
14787
+ column: this.column
14788
+ });
14789
+ });
14790
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
14791
+ }
14792
+ _getWrapArray(vectorArray, wrapCount, padWith) {
14793
+ const rows = Math.ceil(vectorArray.length / wrapCount), _wrapCount = rows > 1 ? wrapCount : vectorArray.length, result = [];
14794
+ for (let r = 0; r < rows; r++) {
14795
+ const row = [];
14796
+ for (let c = 0; c < _wrapCount; c++) {
14797
+ const index = r * _wrapCount + c;
14798
+ index < vectorArray.length ? row.push(vectorArray[index].isNull() ? NumberValueObject.create(0) : vectorArray[index]) : row.push(padWith);
13877
14799
  }
14800
+ result.push(row);
13878
14801
  }
13879
- return ArrayValueObject.create({
13880
- calculateValueList: result,
13881
- rowCount: result.length,
13882
- columnCount: result[0].length || 0,
13883
- unitId: this.unitId,
13884
- sheetId: this.subUnitId,
13885
- row: this.row,
13886
- column: this.column
13887
- });
14802
+ return result;
13888
14803
  }
13889
14804
  };
13890
- __name(_Vstack, "Vstack");
13891
- let Vstack = _Vstack;
14805
+ __name(_Wraprows, "Wraprows");
14806
+ let Wraprows = _Wraprows;
13892
14807
  const _Xlookup = class _Xlookup extends BaseFunction {
13893
14808
  constructor() {
13894
14809
  super(...arguments);
@@ -14039,112 +14954,6 @@ const _Xmatch = class _Xmatch extends BaseFunction {
14039
14954
  };
14040
14955
  __name(_Xmatch, "Xmatch");
14041
14956
  let Xmatch = _Xmatch;
14042
- const _Index = class _Index extends BaseFunction {
14043
- constructor() {
14044
- super(...arguments);
14045
- __publicField(this, "minParams", 1);
14046
- __publicField(this, "maxParams", 4);
14047
- __publicField(this, "needsReferenceObject", !0);
14048
- }
14049
- // eslint-disable-next-line max-lines-per-function, complexity
14050
- calculate(reference, rowNum, columnNum, areaNum) {
14051
- if (reference.isError())
14052
- return reference;
14053
- if (rowNum != null && rowNum.isError())
14054
- return rowNum;
14055
- if (columnNum != null && columnNum.isError())
14056
- return columnNum;
14057
- if (areaNum != null && areaNum.isError())
14058
- return areaNum;
14059
- let referenceRowCount = 0, referenceColumnCount = 0;
14060
- if (reference.isValueObject())
14061
- referenceRowCount = 1, referenceColumnCount = 1;
14062
- else if (reference.isReferenceObject()) {
14063
- const { startRow, endRow, startColumn, endColumn } = reference.getRangePosition();
14064
- referenceRowCount = endRow - startRow + 1, referenceColumnCount = endColumn - startColumn + 1;
14065
- } else
14066
- return ErrorValueObject.create(ErrorType$1.VALUE);
14067
- let _rowNum, _columnNum;
14068
- 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));
14069
- let _areaNum = areaNum != null ? areaNum : NumberValueObject.create(1);
14070
- _rowNum.isReferenceObject() && (_rowNum = _rowNum.toArrayValueObject()), _columnNum.isReferenceObject() && (_columnNum = _columnNum.toArrayValueObject()), _areaNum.isReferenceObject() && (_areaNum = _areaNum.toArrayValueObject());
14071
- const maxRowLength = Math.max(
14072
- _rowNum.isArray() ? _rowNum.getRowCount() : 1,
14073
- _columnNum.isArray() ? _columnNum.getRowCount() : 1,
14074
- _areaNum.isArray() ? _areaNum.getRowCount() : 1
14075
- ), maxColumnLength = Math.max(
14076
- _rowNum.isArray() ? _rowNum.getColumnCount() : 1,
14077
- _columnNum.isArray() ? _columnNum.getColumnCount() : 1,
14078
- _areaNum.isArray() ? _areaNum.getColumnCount() : 1
14079
- );
14080
- if (_rowNum = _rowNum, _columnNum = _columnNum, _areaNum = _areaNum, maxRowLength === 1 && maxColumnLength === 1)
14081
- return this._calculateSingleCell(reference, _rowNum, _columnNum, _areaNum);
14082
- {
14083
- 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));
14084
- return rowNumArray.map((rowNumValue, rowIndex, columnIndex) => {
14085
- const columnNumValue = columnNumArray.get(rowIndex, columnIndex) || NullValueObject.create(), areaNumValue = areaNumArray.get(rowIndex, columnIndex) || NullValueObject.create(), result = this._calculateSingleCell(reference, rowNumValue, columnNumValue, areaNumValue);
14086
- return result.isReferenceObject() ? result.toArrayValueObject().getFirstCell() : result;
14087
- });
14088
- }
14089
- }
14090
- _calculateSingleCell(reference, rowNum, columnNum, areaNum) {
14091
- if (rowNum.isError())
14092
- return rowNum;
14093
- const rowNumberValue = this._getNumberValue(rowNum);
14094
- if (rowNumberValue === void 0 || rowNumberValue < 0)
14095
- return ErrorValueObject.create(ErrorType$1.VALUE);
14096
- if (columnNum.isError())
14097
- return columnNum;
14098
- const columnNumberValue = this._getNumberValue(columnNum);
14099
- if (columnNumberValue === void 0 || columnNumberValue < 0)
14100
- return ErrorValueObject.create(ErrorType$1.VALUE);
14101
- if (areaNum.isError())
14102
- return areaNum;
14103
- const areaNumberValue = this._getAreaNumberValue(areaNum);
14104
- 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);
14105
- }
14106
- _getNumberValue(numberValueObject) {
14107
- if (numberValueObject == null)
14108
- return 0;
14109
- let logicValue = 0;
14110
- if (numberValueObject.isBoolean())
14111
- numberValueObject.getValue() === !0 && (logicValue = 1);
14112
- else {
14113
- if (numberValueObject.isString())
14114
- return;
14115
- numberValueObject.isNumber() ? logicValue = Math.floor(numberValueObject.getValue()) : numberValueObject.isNull() && (logicValue = 0);
14116
- }
14117
- return logicValue;
14118
- }
14119
- _getAreaNumberValue(numberValueObject) {
14120
- if (numberValueObject == null)
14121
- return 1;
14122
- let logicValue = 0;
14123
- if (numberValueObject.isBoolean())
14124
- numberValueObject.getValue() === !0 && (logicValue = 1);
14125
- else {
14126
- if (numberValueObject.isString())
14127
- return;
14128
- numberValueObject.isNumber() ? logicValue = Math.floor(numberValueObject.getValue()) : numberValueObject.isNull() && (logicValue = 0);
14129
- }
14130
- return logicValue;
14131
- }
14132
- _getReferenceObject(reference, rowNumberValue, columnNumberValue, areaNumberValue) {
14133
- const { startRow, endRow, startColumn, endColumn } = reference.getRangePosition();
14134
- let referenceStartRow = 0, referenceEndRow = 0, referenceStartColumn = 0, referenceEndColumn = 0;
14135
- 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)
14136
- return ErrorValueObject.create(ErrorType$1.REF);
14137
- const range = {
14138
- startRow: referenceStartRow,
14139
- startColumn: referenceStartColumn,
14140
- endRow: referenceEndRow,
14141
- endColumn: referenceEndColumn
14142
- };
14143
- return this.createReferenceObject(reference, range);
14144
- }
14145
- };
14146
- __name(_Index, "Index");
14147
- let Index = _Index;
14148
14957
  const functionLookup = [
14149
14958
  [Address, FUNCTION_NAMES_LOOKUP.ADDRESS],
14150
14959
  [Areas, FUNCTION_NAMES_LOOKUP.AREAS],
@@ -14153,6 +14962,8 @@ const functionLookup = [
14153
14962
  [Chooserows, FUNCTION_NAMES_LOOKUP.CHOOSEROWS],
14154
14963
  [Column, FUNCTION_NAMES_LOOKUP.COLUMN],
14155
14964
  [Columns, FUNCTION_NAMES_LOOKUP.COLUMNS],
14965
+ [Drop, FUNCTION_NAMES_LOOKUP.DROP],
14966
+ [Expand, FUNCTION_NAMES_LOOKUP.EXPAND],
14156
14967
  [Filter, FUNCTION_NAMES_LOOKUP.FILTER],
14157
14968
  [Hlookup, FUNCTION_NAMES_LOOKUP.HLOOKUP],
14158
14969
  [Hstack, FUNCTION_NAMES_LOOKUP.HSTACK],
@@ -14165,10 +14976,15 @@ const functionLookup = [
14165
14976
  [Rows, FUNCTION_NAMES_LOOKUP.ROWS],
14166
14977
  [Sort, FUNCTION_NAMES_LOOKUP.SORT],
14167
14978
  [Sortby, FUNCTION_NAMES_LOOKUP.SORTBY],
14979
+ [Take, FUNCTION_NAMES_LOOKUP.TAKE],
14980
+ [Tocol, FUNCTION_NAMES_LOOKUP.TOCOL],
14981
+ [Torow, FUNCTION_NAMES_LOOKUP.TOROW],
14168
14982
  [Transpose, FUNCTION_NAMES_LOOKUP.TRANSPOSE],
14169
14983
  [Unique, FUNCTION_NAMES_LOOKUP.UNIQUE],
14170
14984
  [Vlookup, FUNCTION_NAMES_LOOKUP.VLOOKUP],
14171
14985
  [Vstack, FUNCTION_NAMES_LOOKUP.VSTACK],
14986
+ [Wrapcols, FUNCTION_NAMES_LOOKUP.WRAPCOLS],
14987
+ [Wraprows, FUNCTION_NAMES_LOOKUP.WRAPROWS],
14172
14988
  [Xlookup, FUNCTION_NAMES_LOOKUP.XLOOKUP],
14173
14989
  [Xmatch, FUNCTION_NAMES_LOOKUP.XMATCH]
14174
14990
  ];
@@ -14482,6 +15298,129 @@ const _CeilingPrecise = class _CeilingPrecise extends BaseFunction {
14482
15298
  };
14483
15299
  __name(_CeilingPrecise, "CeilingPrecise");
14484
15300
  let CeilingPrecise = _CeilingPrecise;
15301
+ function calculateFactorial(n, step = 1) {
15302
+ let _n = Math.floor(n);
15303
+ if (n < 0)
15304
+ return Number.NaN;
15305
+ let result = 1;
15306
+ for (; _n > 1 && Number.isFinite(result); )
15307
+ result *= _n, _n -= step;
15308
+ return result;
15309
+ }
15310
+ __name(calculateFactorial, "calculateFactorial");
15311
+ function calculateCombin(n, k) {
15312
+ const t = Math.min(n - k, k);
15313
+ let result = 1;
15314
+ for (let i = 1; i <= t && Number.isFinite(result); i++)
15315
+ result *= n - i + 1, result /= i;
15316
+ return result;
15317
+ }
15318
+ __name(calculateCombin, "calculateCombin");
15319
+ function calculateGcd(a, b) {
15320
+ let _a26 = Math.floor(a), _b = Math.floor(b);
15321
+ for (; _b !== 0; ) {
15322
+ const t = _b;
15323
+ _b = _a26 % _b, _a26 = t;
15324
+ }
15325
+ return _a26;
15326
+ }
15327
+ __name(calculateGcd, "calculateGcd");
15328
+ function calculateLcm(a, b) {
15329
+ const den = calculateGcd(a, b);
15330
+ return den === 0 ? 0 : Math.abs(a * b) / den;
15331
+ }
15332
+ __name(calculateLcm, "calculateLcm");
15333
+ function calculateMdeterm(matrix) {
15334
+ const n = matrix.length;
15335
+ if (n === 1)
15336
+ return matrix[0][0];
15337
+ if (n === 2)
15338
+ return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
15339
+ let det = 0;
15340
+ for (let col = 0; col < n; col++)
15341
+ det += (col % 2 === 0 ? 1 : -1) * matrix[0][col] * calculateMdeterm(minor(matrix, 0, col));
15342
+ return det;
15343
+ }
15344
+ __name(calculateMdeterm, "calculateMdeterm");
15345
+ function calculateMinverse(matrix) {
15346
+ const det = calculateMdeterm(matrix);
15347
+ return det === 0 ? null : matrix.length === 1 ? [[1 / det]] : adjoint(matrix).map((row) => row.map((value) => value / det));
15348
+ }
15349
+ __name(calculateMinverse, "calculateMinverse");
15350
+ function minor(matrix, row, col) {
15351
+ return matrix.filter((_, r) => r !== row).map((row2) => row2.filter((_, c) => c !== col));
15352
+ }
15353
+ __name(minor, "minor");
15354
+ function adjoint(matrix) {
15355
+ const n = matrix.length, adj = Array.from({ length: n }, () => new Array(n).fill(0));
15356
+ for (let i = 0; i < n; i++)
15357
+ for (let j = 0; j < n; j++) {
15358
+ const sign2 = (i + j) % 2 === 0 ? 1 : -1;
15359
+ adj[j][i] = sign2 * calculateMdeterm(minor(matrix, i, j));
15360
+ }
15361
+ return adj;
15362
+ }
15363
+ __name(adjoint, "adjoint");
15364
+ const _Combin = class _Combin extends BaseFunction {
15365
+ constructor() {
15366
+ super(...arguments);
15367
+ __publicField(this, "minParams", 2);
15368
+ __publicField(this, "maxParams", 2);
15369
+ }
15370
+ calculate(number, numberChosen) {
15371
+ const maxRowLength = Math.max(
15372
+ number.isArray() ? number.getRowCount() : 1,
15373
+ numberChosen.isArray() ? numberChosen.getRowCount() : 1
15374
+ ), maxColumnLength = Math.max(
15375
+ number.isArray() ? number.getColumnCount() : 1,
15376
+ numberChosen.isArray() ? numberChosen.getColumnCount() : 1
15377
+ ), numberArray = expandArrayValueObject(maxRowLength, maxColumnLength, number, ErrorValueObject.create(ErrorType$1.NA)), numberChosenArray = expandArrayValueObject(maxRowLength, maxColumnLength, numberChosen, ErrorValueObject.create(ErrorType$1.NA)), resultArray = numberArray.mapValue((numberObject, rowIndex, columnIndex) => {
15378
+ let _numberObject = numberObject, numberChosenObject = numberChosenArray.get(rowIndex, columnIndex);
15379
+ if (_numberObject.isString() && (_numberObject = _numberObject.convertToNumberObjectValue()), numberChosenObject.isString() && (numberChosenObject = numberChosenObject.convertToNumberObjectValue()), _numberObject.isError())
15380
+ return _numberObject;
15381
+ if (numberChosenObject.isError())
15382
+ return numberChosenObject;
15383
+ const numberValue = Math.floor(+_numberObject.getValue()), numberChosenValue = Math.floor(+numberChosenObject.getValue());
15384
+ if (numberValue < 0 || numberChosenValue < 0 || numberValue < numberChosenValue)
15385
+ return ErrorValueObject.create(ErrorType$1.NUM);
15386
+ const result = calculateCombin(numberValue, numberChosenValue);
15387
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.NUM) : NumberValueObject.create(result);
15388
+ });
15389
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
15390
+ }
15391
+ };
15392
+ __name(_Combin, "Combin");
15393
+ let Combin = _Combin;
15394
+ const _Combina = class _Combina extends BaseFunction {
15395
+ constructor() {
15396
+ super(...arguments);
15397
+ __publicField(this, "minParams", 2);
15398
+ __publicField(this, "maxParams", 2);
15399
+ }
15400
+ calculate(number, numberChosen) {
15401
+ const maxRowLength = Math.max(
15402
+ number.isArray() ? number.getRowCount() : 1,
15403
+ numberChosen.isArray() ? numberChosen.getRowCount() : 1
15404
+ ), maxColumnLength = Math.max(
15405
+ number.isArray() ? number.getColumnCount() : 1,
15406
+ numberChosen.isArray() ? numberChosen.getColumnCount() : 1
15407
+ ), numberArray = expandArrayValueObject(maxRowLength, maxColumnLength, number, ErrorValueObject.create(ErrorType$1.NA)), numberChosenArray = expandArrayValueObject(maxRowLength, maxColumnLength, numberChosen, ErrorValueObject.create(ErrorType$1.NA)), resultArray = numberArray.mapValue((numberObject, rowIndex, columnIndex) => {
15408
+ let _numberObject = numberObject, numberChosenObject = numberChosenArray.get(rowIndex, columnIndex);
15409
+ if (_numberObject.isString() && (_numberObject = _numberObject.convertToNumberObjectValue()), numberChosenObject.isString() && (numberChosenObject = numberChosenObject.convertToNumberObjectValue()), _numberObject.isError())
15410
+ return _numberObject;
15411
+ if (numberChosenObject.isError())
15412
+ return numberChosenObject;
15413
+ const numberValue = Math.floor(+_numberObject.getValue()), numberChosenValue = Math.floor(+numberChosenObject.getValue());
15414
+ if (numberValue < 0 || numberChosenValue < 0 || numberValue === 0 && numberValue < numberChosenValue)
15415
+ return ErrorValueObject.create(ErrorType$1.NUM);
15416
+ const result = calculateCombin(numberValue + numberChosenValue - 1, numberValue - 1);
15417
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.NUM) : NumberValueObject.create(result);
15418
+ });
15419
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
15420
+ }
15421
+ };
15422
+ __name(_Combina, "Combina");
15423
+ let Combina = _Combina;
14485
15424
  const _Cos = class _Cos extends BaseFunction {
14486
15425
  constructor() {
14487
15426
  super(...arguments);
@@ -14684,6 +15623,51 @@ const _Exp = class _Exp extends BaseFunction {
14684
15623
  };
14685
15624
  __name(_Exp, "Exp");
14686
15625
  let Exp = _Exp;
15626
+ const _Fact = class _Fact extends BaseFunction {
15627
+ constructor() {
15628
+ super(...arguments);
15629
+ __publicField(this, "minParams", 1);
15630
+ __publicField(this, "maxParams", 1);
15631
+ }
15632
+ calculate(number) {
15633
+ return number.isArray() ? number.mapValue((numberObject) => this._handleSingleObject(numberObject)) : this._handleSingleObject(number);
15634
+ }
15635
+ _handleSingleObject(number) {
15636
+ let _number = number;
15637
+ if (_number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
15638
+ return _number;
15639
+ const numberValue = Math.floor(+_number.getValue()), result = calculateFactorial(numberValue);
15640
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.NUM) : NumberValueObject.create(result);
15641
+ }
15642
+ };
15643
+ __name(_Fact, "Fact");
15644
+ let Fact = _Fact;
15645
+ const _Factdouble = class _Factdouble extends BaseFunction {
15646
+ constructor() {
15647
+ super(...arguments);
15648
+ __publicField(this, "minParams", 1);
15649
+ __publicField(this, "maxParams", 1);
15650
+ }
15651
+ calculate(number) {
15652
+ let _number = number;
15653
+ if (number.isArray()) {
15654
+ const rowCount = number.getRowCount(), columnCount = number.getColumnCount();
15655
+ if (rowCount > 1 || columnCount > 1)
15656
+ return ErrorValueObject.create(ErrorType$1.VALUE);
15657
+ _number = number.get(0, 0);
15658
+ }
15659
+ return this._handleSingleObject(_number);
15660
+ }
15661
+ _handleSingleObject(number) {
15662
+ let _number = number;
15663
+ if (_number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
15664
+ return _number;
15665
+ const numberValue = Math.floor(+_number.getValue()), result = calculateFactorial(numberValue, 2);
15666
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.NUM) : NumberValueObject.create(result);
15667
+ }
15668
+ };
15669
+ __name(_Factdouble, "Factdouble");
15670
+ let Factdouble = _Factdouble;
14687
15671
  const _Floor = class _Floor extends BaseFunction {
14688
15672
  constructor() {
14689
15673
  super(...arguments);
@@ -14789,8 +15773,145 @@ const _FloorPrecise = class _FloorPrecise extends BaseFunction {
14789
15773
  return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
14790
15774
  }
14791
15775
  };
14792
- __name(_FloorPrecise, "FloorPrecise");
14793
- let FloorPrecise = _FloorPrecise;
15776
+ __name(_FloorPrecise, "FloorPrecise");
15777
+ let FloorPrecise = _FloorPrecise;
15778
+ const _Gcd = class _Gcd extends BaseFunction {
15779
+ constructor() {
15780
+ super(...arguments);
15781
+ __publicField(this, "minParams", 1);
15782
+ __publicField(this, "maxParams", 255);
15783
+ }
15784
+ calculate(...variants) {
15785
+ let result = 0;
15786
+ for (let i = 0; i < variants.length; i++) {
15787
+ const variant = variants[i];
15788
+ if (!variant.isNull())
15789
+ if (variant.isArray()) {
15790
+ let isError = !1, errorObject = ErrorValueObject.create(ErrorType$1.VALUE);
15791
+ if (variant.iterator((valueObject) => {
15792
+ if (valueObject != null && valueObject.isNull())
15793
+ return !0;
15794
+ const { isError: _isError, errorObject: _errorObject, number } = this._handleSingleObject(valueObject);
15795
+ if (_isError)
15796
+ return isError = !0, errorObject = _errorObject, !1;
15797
+ result = calculateGcd(result, number);
15798
+ }), isError)
15799
+ return errorObject;
15800
+ } else {
15801
+ const { isError, errorObject, number } = this._handleSingleObject(variant);
15802
+ if (isError)
15803
+ return errorObject;
15804
+ result = calculateGcd(result, number);
15805
+ }
15806
+ }
15807
+ return NumberValueObject.create(result);
15808
+ }
15809
+ _handleSingleObject(number) {
15810
+ if (number.isBoolean())
15811
+ return {
15812
+ isError: !0,
15813
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE),
15814
+ number: null
15815
+ };
15816
+ let _number = number;
15817
+ if (number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
15818
+ return {
15819
+ isError: !0,
15820
+ errorObject: _number,
15821
+ number: null
15822
+ };
15823
+ const numberValue = Math.floor(+_number.getValue());
15824
+ return numberValue < 0 || numberValue >= 2 ** 53 ? {
15825
+ isError: !0,
15826
+ errorObject: ErrorValueObject.create(ErrorType$1.NUM),
15827
+ number: null
15828
+ } : {
15829
+ isError: !1,
15830
+ errorObject: null,
15831
+ number: numberValue
15832
+ };
15833
+ }
15834
+ };
15835
+ __name(_Gcd, "Gcd");
15836
+ let Gcd = _Gcd;
15837
+ const _Int = class _Int extends BaseFunction {
15838
+ constructor() {
15839
+ super(...arguments);
15840
+ __publicField(this, "minParams", 1);
15841
+ __publicField(this, "maxParams", 1);
15842
+ }
15843
+ calculate(number) {
15844
+ return number.isArray() ? number.mapValue((numberObject) => this._handleSingleObject(numberObject)) : this._handleSingleObject(number);
15845
+ }
15846
+ _handleSingleObject(number) {
15847
+ let _number = number;
15848
+ if (_number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
15849
+ return _number;
15850
+ const numberValue = Math.floor(+_number.getValue());
15851
+ return NumberValueObject.create(numberValue);
15852
+ }
15853
+ };
15854
+ __name(_Int, "Int");
15855
+ let Int = _Int;
15856
+ const _Lcm = class _Lcm extends BaseFunction {
15857
+ constructor() {
15858
+ super(...arguments);
15859
+ __publicField(this, "minParams", 1);
15860
+ __publicField(this, "maxParams", 255);
15861
+ }
15862
+ calculate(...variants) {
15863
+ let result = 1, noCalculate = !0;
15864
+ for (let i = 0; i < variants.length; i++) {
15865
+ const variant = variants[i];
15866
+ if (!variant.isNull())
15867
+ if (variant.isArray()) {
15868
+ let isError = !1, errorObject = ErrorValueObject.create(ErrorType$1.VALUE);
15869
+ if (variant.iterator((valueObject) => {
15870
+ if (valueObject != null && valueObject.isNull())
15871
+ return !0;
15872
+ const { isError: _isError, errorObject: _errorObject, number } = this._handleSingleObject(valueObject);
15873
+ if (_isError)
15874
+ return isError = !0, errorObject = _errorObject, !1;
15875
+ result = calculateLcm(result, number), noCalculate = !1;
15876
+ }), isError)
15877
+ return errorObject;
15878
+ } else {
15879
+ const { isError, errorObject, number } = this._handleSingleObject(variant);
15880
+ if (isError)
15881
+ return errorObject;
15882
+ result = calculateLcm(result, number), noCalculate = !1;
15883
+ }
15884
+ }
15885
+ return noCalculate ? NumberValueObject.create(0) : Number.isNaN(result) || !Number.isFinite(result) || result >= 2 ** 53 ? ErrorValueObject.create(ErrorType$1.VALUE) : NumberValueObject.create(result);
15886
+ }
15887
+ _handleSingleObject(number) {
15888
+ if (number.isBoolean())
15889
+ return {
15890
+ isError: !0,
15891
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE),
15892
+ number: null
15893
+ };
15894
+ let _number = number;
15895
+ if (number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
15896
+ return {
15897
+ isError: !0,
15898
+ errorObject: _number,
15899
+ number: null
15900
+ };
15901
+ const numberValue = Math.floor(+_number.getValue());
15902
+ return numberValue < 0 ? {
15903
+ isError: !0,
15904
+ errorObject: ErrorValueObject.create(ErrorType$1.NUM),
15905
+ number: null
15906
+ } : {
15907
+ isError: !1,
15908
+ errorObject: null,
15909
+ number: numberValue
15910
+ };
15911
+ }
15912
+ };
15913
+ __name(_Lcm, "Lcm");
15914
+ let Lcm = _Lcm;
14794
15915
  const _Ln = class _Ln extends BaseFunction {
14795
15916
  constructor() {
14796
15917
  super(...arguments);
@@ -14855,6 +15976,119 @@ const _Log10 = class _Log10 extends BaseFunction {
14855
15976
  };
14856
15977
  __name(_Log10, "Log10");
14857
15978
  let Log10 = _Log10;
15979
+ const _Mdeterm = class _Mdeterm extends BaseFunction {
15980
+ constructor() {
15981
+ super(...arguments);
15982
+ __publicField(this, "minParams", 1);
15983
+ __publicField(this, "maxParams", 1);
15984
+ }
15985
+ calculate(array) {
15986
+ const arrayRowCount = array.isArray() ? array.getRowCount() : 1, arrayColumnCount = array.isArray() ? array.getColumnCount() : 1, matrix = [];
15987
+ for (let r = 0; r < arrayRowCount; r++) {
15988
+ const row = [];
15989
+ for (let c = 0; c < arrayColumnCount; c++) {
15990
+ let valueObject = array.isArray() ? array.get(r, c) : array;
15991
+ if (valueObject.isError())
15992
+ return valueObject;
15993
+ if (valueObject.isNull() || valueObject.isBoolean())
15994
+ return ErrorValueObject.create(ErrorType$1.VALUE);
15995
+ if (valueObject.isString() && (valueObject = valueObject.convertToNumberObjectValue()), valueObject.isError())
15996
+ return valueObject;
15997
+ const value = +valueObject.getValue();
15998
+ row.push(value);
15999
+ }
16000
+ matrix.push(row);
16001
+ }
16002
+ if (arrayRowCount !== arrayColumnCount)
16003
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16004
+ const result = calculateMdeterm(matrix);
16005
+ return NumberValueObject.create(result);
16006
+ }
16007
+ };
16008
+ __name(_Mdeterm, "Mdeterm");
16009
+ let Mdeterm = _Mdeterm;
16010
+ const _Minverse = class _Minverse extends BaseFunction {
16011
+ constructor() {
16012
+ super(...arguments);
16013
+ __publicField(this, "minParams", 1);
16014
+ __publicField(this, "maxParams", 1);
16015
+ }
16016
+ calculate(array) {
16017
+ const arrayRowCount = array.isArray() ? array.getRowCount() : 1, arrayColumnCount = array.isArray() ? array.getColumnCount() : 1, matrix = [];
16018
+ for (let r = 0; r < arrayRowCount; r++) {
16019
+ const row = [];
16020
+ for (let c = 0; c < arrayColumnCount; c++) {
16021
+ let valueObject = array.isArray() ? array.get(r, c) : array;
16022
+ if (valueObject.isError())
16023
+ return valueObject;
16024
+ if (valueObject.isNull() || valueObject.isBoolean())
16025
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16026
+ if (valueObject.isString() && (valueObject = valueObject.convertToNumberObjectValue()), valueObject.isError())
16027
+ return valueObject;
16028
+ const value = +valueObject.getValue();
16029
+ row.push(value);
16030
+ }
16031
+ matrix.push(row);
16032
+ }
16033
+ if (arrayRowCount !== arrayColumnCount)
16034
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16035
+ const result = calculateMinverse(matrix);
16036
+ return result === null ? ErrorValueObject.create(ErrorType$1.NUM) : ArrayValueObject.createByArray(result);
16037
+ }
16038
+ };
16039
+ __name(_Minverse, "Minverse");
16040
+ let Minverse = _Minverse;
16041
+ const _Mmult = class _Mmult extends BaseFunction {
16042
+ constructor() {
16043
+ super(...arguments);
16044
+ __publicField(this, "minParams", 2);
16045
+ __publicField(this, "maxParams", 2);
16046
+ }
16047
+ calculate(array1, array2) {
16048
+ const array1RowCount = array1.isArray() ? array1.getRowCount() : 1, array1ColumnCount = array1.isArray() ? array1.getColumnCount() : 1, array2RowCount = array2.isArray() ? array2.getRowCount() : 1, array2ColumnCount = array2.isArray() ? array2.getColumnCount() : 1;
16049
+ if (array1ColumnCount !== array2RowCount)
16050
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16051
+ const matrix1 = this._getMatrix(array1, array1RowCount, array1ColumnCount), matrix2 = this._getMatrix(array2, array2RowCount, array2ColumnCount);
16052
+ if (matrix1 instanceof ErrorValueObject)
16053
+ return matrix1;
16054
+ if (matrix2 instanceof ErrorValueObject)
16055
+ return matrix2;
16056
+ const result = this._getResult(matrix1, matrix2, array1RowCount, array1ColumnCount, array2ColumnCount);
16057
+ return ArrayValueObject.createByArray(result);
16058
+ }
16059
+ _getMatrix(array, rowCount, columnCount) {
16060
+ const matrix = [];
16061
+ for (let r = 0; r < rowCount; r++) {
16062
+ const row = [];
16063
+ for (let c = 0; c < columnCount; c++) {
16064
+ let valueObject = array.isArray() ? array.get(r, c) : array;
16065
+ if (valueObject.isError())
16066
+ return valueObject;
16067
+ if (valueObject.isNull() || valueObject.isBoolean())
16068
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16069
+ if (valueObject.isString() && (valueObject = valueObject.convertToNumberObjectValue()), valueObject.isError())
16070
+ return valueObject;
16071
+ const value = +valueObject.getValue();
16072
+ row.push(value);
16073
+ }
16074
+ matrix.push(row);
16075
+ }
16076
+ return matrix;
16077
+ }
16078
+ _getResult(matrix1, matrix2, array1RowCount, array1ColumnCount, array2ColumnCount) {
16079
+ const result = Array.from({ length: array1RowCount }, () => new Array(array2ColumnCount).fill(0));
16080
+ for (let r = 0; r < array1RowCount; r++)
16081
+ for (let c = 0; c < array2ColumnCount; c++) {
16082
+ let value = 0;
16083
+ for (let k = 0; k < array1ColumnCount; k++)
16084
+ value += matrix1[r][k] * matrix2[k][c];
16085
+ result[r][c] = value;
16086
+ }
16087
+ return result;
16088
+ }
16089
+ };
16090
+ __name(_Mmult, "Mmult");
16091
+ let Mmult = _Mmult;
14858
16092
  const _Mod = class _Mod extends BaseFunction {
14859
16093
  constructor() {
14860
16094
  super(...arguments);
@@ -14911,6 +16145,104 @@ const _Mround = class _Mround extends BaseFunction {
14911
16145
  };
14912
16146
  __name(_Mround, "Mround");
14913
16147
  let Mround = _Mround;
16148
+ const _Multinomial = class _Multinomial extends BaseFunction {
16149
+ constructor() {
16150
+ super(...arguments);
16151
+ __publicField(this, "minParams", 1);
16152
+ __publicField(this, "maxParams", 255);
16153
+ }
16154
+ calculate(...variants) {
16155
+ let sum2 = 0, den = 1;
16156
+ for (let i = 0; i < variants.length; i++) {
16157
+ const variant = variants[i];
16158
+ if (!variant.isNull())
16159
+ if (variant.isArray()) {
16160
+ let isError = !1, errorObject = ErrorValueObject.create(ErrorType$1.VALUE);
16161
+ if (variant.iterator((valueObject) => {
16162
+ if (valueObject != null && valueObject.isNull())
16163
+ return !0;
16164
+ const { isError: _isError, errorObject: _errorObject, number } = this._handleSingleObject(valueObject);
16165
+ if (_isError)
16166
+ return isError = !0, errorObject = _errorObject, !1;
16167
+ if (sum2 += number, sum2 > 170)
16168
+ return isError = !0, errorObject = ErrorValueObject.create(ErrorType$1.NUM), !1;
16169
+ den *= calculateFactorial(number);
16170
+ }), isError)
16171
+ return errorObject;
16172
+ } else {
16173
+ const { isError, errorObject, number } = this._handleSingleObject(variant);
16174
+ if (isError)
16175
+ return errorObject;
16176
+ if (sum2 += number, sum2 > 170)
16177
+ return ErrorValueObject.create(ErrorType$1.NUM);
16178
+ den *= calculateFactorial(number);
16179
+ }
16180
+ }
16181
+ const result = calculateFactorial(sum2) / den;
16182
+ return NumberValueObject.create(result);
16183
+ }
16184
+ _handleSingleObject(number) {
16185
+ if (number.isBoolean())
16186
+ return {
16187
+ isError: !0,
16188
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE),
16189
+ number: null
16190
+ };
16191
+ let _number = number;
16192
+ if (number.isString() && (_number = _number.convertToNumberObjectValue()), _number.isError())
16193
+ return {
16194
+ isError: !0,
16195
+ errorObject: _number,
16196
+ number: null
16197
+ };
16198
+ const numberValue = Math.floor(+_number.getValue());
16199
+ return numberValue < 0 ? {
16200
+ isError: !0,
16201
+ errorObject: ErrorValueObject.create(ErrorType$1.NUM),
16202
+ number: null
16203
+ } : {
16204
+ isError: !1,
16205
+ errorObject: null,
16206
+ number: numberValue
16207
+ };
16208
+ }
16209
+ };
16210
+ __name(_Multinomial, "Multinomial");
16211
+ let Multinomial = _Multinomial;
16212
+ const _Munit = class _Munit extends BaseFunction {
16213
+ constructor() {
16214
+ super(...arguments);
16215
+ __publicField(this, "minParams", 1);
16216
+ __publicField(this, "maxParams", 1);
16217
+ }
16218
+ calculate(dimension) {
16219
+ if (dimension.isArray()) {
16220
+ const rowCount = dimension.getRowCount(), columnCount = dimension.getColumnCount(), resultArray = dimension.mapValue((dimensionObject) => {
16221
+ const result = this._handleSingleObject(dimensionObject);
16222
+ return result.isError() ? result : rowCount > 1 || columnCount > 1 ? result.get(0, 0) : result;
16223
+ });
16224
+ return rowCount === 1 && columnCount === 1 ? resultArray.get(0, 0) : resultArray;
16225
+ }
16226
+ return this._handleSingleObject(dimension);
16227
+ }
16228
+ _handleSingleObject(dimension) {
16229
+ let _dimension = dimension;
16230
+ if (_dimension.isString() && (_dimension = _dimension.convertToNumberObjectValue()), _dimension.isError())
16231
+ return _dimension;
16232
+ const dimensionValue = Math.floor(+_dimension.getValue());
16233
+ if (dimensionValue <= 0)
16234
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16235
+ const result = [];
16236
+ for (let r = 0; r < dimensionValue; r++) {
16237
+ result[r] = [];
16238
+ for (let c = 0; c < dimensionValue; c++)
16239
+ result[r][c] = r === c ? 1 : 0;
16240
+ }
16241
+ return ArrayValueObject.createByArray(result);
16242
+ }
16243
+ };
16244
+ __name(_Munit, "Munit");
16245
+ let Munit = _Munit;
14914
16246
  const _Odd = class _Odd extends BaseFunction {
14915
16247
  constructor() {
14916
16248
  super(...arguments);
@@ -14995,6 +16327,27 @@ const _Product = class _Product extends BaseFunction {
14995
16327
  };
14996
16328
  __name(_Product, "Product");
14997
16329
  let Product = _Product;
16330
+ const _Quotient = class _Quotient extends BaseFunction {
16331
+ constructor() {
16332
+ super(...arguments);
16333
+ __publicField(this, "minParams", 2);
16334
+ __publicField(this, "maxParams", 2);
16335
+ }
16336
+ calculate(numerator, denominator) {
16337
+ const { isError, errorObject, variants } = checkVariantsErrorIsArrayOrBoolean(numerator, denominator);
16338
+ if (isError)
16339
+ return errorObject;
16340
+ const [numeratorObject, denominatorObject] = variants, numeratorValue = +numeratorObject.getValue(), denominatorValue = +denominatorObject.getValue();
16341
+ if (Number.isNaN(numeratorValue) || Number.isNaN(denominatorValue))
16342
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16343
+ if (denominatorValue === 0)
16344
+ return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);
16345
+ const result = Math.trunc(numeratorValue / denominatorValue);
16346
+ return NumberValueObject.create(result);
16347
+ }
16348
+ };
16349
+ __name(_Quotient, "Quotient");
16350
+ let Quotient = _Quotient;
14998
16351
  const _Radians = class _Radians extends BaseFunction {
14999
16352
  constructor() {
15000
16353
  super(...arguments);
@@ -15277,6 +16630,141 @@ const _Sech = class _Sech extends BaseFunction {
15277
16630
  };
15278
16631
  __name(_Sech, "Sech");
15279
16632
  let Sech = _Sech;
16633
+ const _Seriessum = class _Seriessum extends BaseFunction {
16634
+ constructor() {
16635
+ super(...arguments);
16636
+ __publicField(this, "minParams", 4);
16637
+ __publicField(this, "maxParams", 4);
16638
+ }
16639
+ calculate(x, n, m, coefficients) {
16640
+ if (x.isNull() || n.isNull() || m.isNull() || coefficients.isNull())
16641
+ return ErrorValueObject.create(ErrorType$1.NA);
16642
+ const { isError, errorObject, variants } = checkVariantsErrorIsArrayOrBoolean(x, n, m);
16643
+ if (isError)
16644
+ return errorObject;
16645
+ const { isError: isError2, errorObject: errorObject2, variants: variants2 } = checkVariantsErrorIsStringToNumber(...variants);
16646
+ if (isError2)
16647
+ return errorObject2;
16648
+ const [xObject, nObject, mObject] = variants2, xValue = +xObject.getValue(), nValue = +nObject.getValue(), mValue = +mObject.getValue(), coefficientsArray = [];
16649
+ if (coefficients.isArray()) {
16650
+ let isError_coefficients = !1, errorObject_coefficients = ErrorValueObject.create(ErrorType$1.VALUE);
16651
+ if (coefficients.iterator((coefficientsObject) => {
16652
+ const { isError: _isError, errorObject: _errorObject, coefficientsObject: _coefficientsObject } = this._handleSingleObject(coefficientsObject);
16653
+ if (_isError)
16654
+ return isError_coefficients = !0, errorObject_coefficients = _errorObject, !1;
16655
+ const coefficientsValue = +_coefficientsObject.getValue();
16656
+ coefficientsArray.push(coefficientsValue);
16657
+ }), isError_coefficients)
16658
+ return errorObject_coefficients;
16659
+ } else {
16660
+ const { isError: _isError, errorObject: _errorObject, coefficientsObject: _coefficientsObject } = this._handleSingleObject(coefficients);
16661
+ if (_isError)
16662
+ return _errorObject;
16663
+ const coefficientsValue = +_coefficientsObject.getValue();
16664
+ coefficientsArray.push(coefficientsValue);
16665
+ }
16666
+ let result = 0;
16667
+ for (let i = 0; i < coefficientsArray.length; i++)
16668
+ result += coefficientsArray[i] * xValue ** (nValue + i * mValue);
16669
+ return Number.isNaN(result) || !Number.isFinite(result) ? ErrorValueObject.create(ErrorType$1.NUM) : NumberValueObject.create(result);
16670
+ }
16671
+ _handleSingleObject(coefficientsObject) {
16672
+ if (coefficientsObject.isError())
16673
+ return {
16674
+ isError: !0,
16675
+ errorObject: coefficientsObject,
16676
+ coefficientsObject: null
16677
+ };
16678
+ if (coefficientsObject != null && coefficientsObject.isBoolean())
16679
+ return {
16680
+ isError: !0,
16681
+ errorObject: ErrorValueObject.create(ErrorType$1.VALUE),
16682
+ coefficientsObject: null
16683
+ };
16684
+ let _coefficientsObject = coefficientsObject;
16685
+ return _coefficientsObject.isString() && (_coefficientsObject = _coefficientsObject.convertToNumberObjectValue()), _coefficientsObject.isError() ? {
16686
+ isError: !0,
16687
+ errorObject: _coefficientsObject,
16688
+ coefficientsObject: null
16689
+ } : {
16690
+ isError: !1,
16691
+ errorObject: null,
16692
+ coefficientsObject: _coefficientsObject
16693
+ };
16694
+ }
16695
+ };
16696
+ __name(_Seriessum, "Seriessum");
16697
+ let Seriessum = _Seriessum;
16698
+ const _Sequence = class _Sequence extends BaseFunction {
16699
+ constructor() {
16700
+ super(...arguments);
16701
+ __publicField(this, "minParams", 1);
16702
+ __publicField(this, "maxParams", 4);
16703
+ }
16704
+ calculate(rows, columns, start, step) {
16705
+ let _rows = rows, _columns = columns != null ? columns : NumberValueObject.create(1), _start = start != null ? start : NumberValueObject.create(1), _step = step != null ? step : NumberValueObject.create(1);
16706
+ _rows.isNull() && (_rows = NumberValueObject.create(1)), _columns.isNull() && (_columns = NumberValueObject.create(1)), _start.isNull() && (_start = NumberValueObject.create(1)), _step.isNull() && (_step = NumberValueObject.create(1));
16707
+ const maxRowLength = Math.max(
16708
+ _rows.isArray() ? _rows.getRowCount() : 1,
16709
+ _columns.isArray() ? _columns.getRowCount() : 1,
16710
+ _start.isArray() ? _start.getRowCount() : 1,
16711
+ _step.isArray() ? _step.getRowCount() : 1
16712
+ ), maxColumnLength = Math.max(
16713
+ _rows.isArray() ? _rows.getColumnCount() : 1,
16714
+ _columns.isArray() ? _columns.getColumnCount() : 1,
16715
+ _start.isArray() ? _start.getColumnCount() : 1,
16716
+ _step.isArray() ? _step.getColumnCount() : 1
16717
+ ), rowsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _rows, ErrorValueObject.create(ErrorType$1.NA)), columnsArray = expandArrayValueObject(maxRowLength, maxColumnLength, _columns, ErrorValueObject.create(ErrorType$1.NA)), startArray = expandArrayValueObject(maxRowLength, maxColumnLength, _start, ErrorValueObject.create(ErrorType$1.NA)), stepArray = expandArrayValueObject(maxRowLength, maxColumnLength, _step, ErrorValueObject.create(ErrorType$1.NA)), resultArray = rowsArray.mapValue((rowsObject, rowIndex, columnIndex) => {
16718
+ const columnsObject = columnsArray.get(rowIndex, columnIndex), startObject = startArray.get(rowIndex, columnIndex), stepObject = stepArray.get(rowIndex, columnIndex);
16719
+ return rowsObject.isError() ? rowsObject : columnsObject.isError() ? columnsObject : startObject.isError() ? startObject : stepObject.isError() ? stepObject : this._getResult(rowsObject, columnsObject, startObject, stepObject, maxRowLength, maxColumnLength);
16720
+ });
16721
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
16722
+ }
16723
+ _getResult(rowsObject, columnsObject, startObject, stepObject, maxRowLength, maxColumnLength) {
16724
+ const { isError, errorObject, variants } = checkVariantsErrorIsStringToNumber(rowsObject, columnsObject, startObject, stepObject);
16725
+ if (isError)
16726
+ return errorObject;
16727
+ const [_rowsObject, _columnsObject, _startObject, _stepObject] = variants, rowsValue = Math.floor(+_rowsObject.getValue()), columnsValue = Math.floor(+_columnsObject.getValue()), startValue = +_startObject.getValue(), stepValue = +_stepObject.getValue();
16728
+ if (rowsValue < 0 || columnsValue < 0)
16729
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16730
+ if (rowsValue === 0 || columnsValue === 0)
16731
+ return ErrorValueObject.create(ErrorType$1.CALC);
16732
+ const result = [];
16733
+ for (let r = 0; r < rowsValue; r++) {
16734
+ result[r] = [];
16735
+ for (let c = 0; c < columnsValue; c++)
16736
+ result[r][c] = startValue + (r * columnsValue + c) * stepValue;
16737
+ }
16738
+ return maxRowLength > 1 || maxColumnLength > 1 ? NumberValueObject.create(result[0][0]) : ArrayValueObject.createByArray(result);
16739
+ }
16740
+ };
16741
+ __name(_Sequence, "Sequence");
16742
+ let Sequence = _Sequence;
16743
+ const _Sign = class _Sign extends BaseFunction {
16744
+ constructor() {
16745
+ super(...arguments);
16746
+ __publicField(this, "minParams", 1);
16747
+ __publicField(this, "maxParams", 1);
16748
+ }
16749
+ calculate(number) {
16750
+ if (number.isArray()) {
16751
+ const resultArray = number.mapValue((numberObject) => this._handleSingleObject(numberObject));
16752
+ return resultArray.getRowCount() === 1 && resultArray.getColumnCount() === 1 ? resultArray.get(0, 0) : resultArray;
16753
+ }
16754
+ return this._handleSingleObject(number);
16755
+ }
16756
+ _handleSingleObject(number) {
16757
+ if (number.isError())
16758
+ return number;
16759
+ const { isError, errorObject, variants } = checkVariantsErrorIsStringToNumber(number);
16760
+ if (isError)
16761
+ return errorObject;
16762
+ const [numberObject] = variants, numberValue = +numberObject.getValue();
16763
+ return numberValue > 0 ? NumberValueObject.create(1) : numberValue < 0 ? NumberValueObject.create(-1) : NumberValueObject.create(0);
16764
+ }
16765
+ };
16766
+ __name(_Sign, "Sign");
16767
+ let Sign = _Sign;
15280
16768
  const _Sin = class _Sin extends BaseFunction {
15281
16769
  constructor() {
15282
16770
  super(...arguments);
@@ -15956,6 +17444,8 @@ const functionMath = [
15956
17444
  [Ceiling, FUNCTION_NAMES_MATH.CEILING],
15957
17445
  [CeilingMath, FUNCTION_NAMES_MATH.CEILING_MATH],
15958
17446
  [CeilingPrecise, FUNCTION_NAMES_MATH.CEILING_PRECISE],
17447
+ [Combin, FUNCTION_NAMES_MATH.COMBIN],
17448
+ [Combina, FUNCTION_NAMES_MATH.COMBINA],
15959
17449
  [Cos, FUNCTION_NAMES_MATH.COS],
15960
17450
  [Cosh, FUNCTION_NAMES_MATH.COSH],
15961
17451
  [Cot, FUNCTION_NAMES_MATH.COT],
@@ -15966,18 +17456,29 @@ const functionMath = [
15966
17456
  [Degrees, FUNCTION_NAMES_MATH.DEGREES],
15967
17457
  [Even, FUNCTION_NAMES_MATH.EVEN],
15968
17458
  [Exp, FUNCTION_NAMES_MATH.EXP],
17459
+ [Fact, FUNCTION_NAMES_MATH.FACT],
17460
+ [Factdouble, FUNCTION_NAMES_MATH.FACTDOUBLE],
15969
17461
  [Floor, FUNCTION_NAMES_MATH.FLOOR],
15970
17462
  [FloorMath, FUNCTION_NAMES_MATH.FLOOR_MATH],
15971
17463
  [FloorPrecise, FUNCTION_NAMES_MATH.FLOOR_PRECISE],
17464
+ [Gcd, FUNCTION_NAMES_MATH.GCD],
17465
+ [Int, FUNCTION_NAMES_MATH.INT],
17466
+ [Lcm, FUNCTION_NAMES_MATH.LCM],
15972
17467
  [Ln, FUNCTION_NAMES_MATH.LN],
15973
17468
  [Log, FUNCTION_NAMES_MATH.LOG],
15974
17469
  [Log10, FUNCTION_NAMES_MATH.LOG10],
17470
+ [Mdeterm, FUNCTION_NAMES_MATH.MDETERM],
17471
+ [Minverse, FUNCTION_NAMES_MATH.MINVERSE],
17472
+ [Mmult, FUNCTION_NAMES_MATH.MMULT],
15975
17473
  [Mod, FUNCTION_NAMES_MATH.MOD],
15976
17474
  [Mround, FUNCTION_NAMES_MATH.MROUND],
17475
+ [Multinomial, FUNCTION_NAMES_MATH.MULTINOMIAL],
17476
+ [Munit, FUNCTION_NAMES_MATH.MUNIT],
15977
17477
  [Odd, FUNCTION_NAMES_MATH.ODD],
15978
17478
  [Pi, FUNCTION_NAMES_MATH.PI],
15979
17479
  [Power, FUNCTION_NAMES_MATH.POWER],
15980
17480
  [Product, FUNCTION_NAMES_MATH.PRODUCT],
17481
+ [Quotient, FUNCTION_NAMES_MATH.QUOTIENT],
15981
17482
  [Radians, FUNCTION_NAMES_MATH.RADIANS],
15982
17483
  [Rand, FUNCTION_NAMES_MATH.RAND],
15983
17484
  [Randarray, FUNCTION_NAMES_MATH.RANDARRAY],
@@ -15987,6 +17488,9 @@ const functionMath = [
15987
17488
  [Roundup, FUNCTION_NAMES_MATH.ROUNDUP],
15988
17489
  [Sec, FUNCTION_NAMES_MATH.SEC],
15989
17490
  [Sech, FUNCTION_NAMES_MATH.SECH],
17491
+ [Seriessum, FUNCTION_NAMES_MATH.SERIESSUM],
17492
+ [Sequence, FUNCTION_NAMES_MATH.SEQUENCE],
17493
+ [Sign, FUNCTION_NAMES_MATH.SIGN],
15990
17494
  [Sin, FUNCTION_NAMES_MATH.SIN],
15991
17495
  [Sinh, FUNCTION_NAMES_MATH.SINH],
15992
17496
  [Sqrt, FUNCTION_NAMES_MATH.SQRT],
@@ -17365,35 +18869,28 @@ var FUNCTION_NAMES_UNIVER = /* @__PURE__ */ ((FUNCTION_NAMES_UNIVER2) => FUNCTIO
17365
18869
  const functionWeb = [];
17366
18870
  var FUNCTION_NAMES_WEB = /* @__PURE__ */ ((FUNCTION_NAMES_WEB2) => (FUNCTION_NAMES_WEB2.ENCODEURL = "ENCODEURL", FUNCTION_NAMES_WEB2.FILTERXML = "FILTERXML", FUNCTION_NAMES_WEB2.WEBSERVICE = "WEBSERVICE", FUNCTION_NAMES_WEB2))(FUNCTION_NAMES_WEB || {});
17367
18871
  function updateFormulaDataByCellValue(sheetFormulaDataMatrix, newSheetFormulaDataMatrix, formulaIdMap, deleteFormulaIdMap, r, c, cell) {
17368
- var _a25;
17369
- const formulaString = (cell == null ? void 0 : cell.f) || "", formulaId = (cell == null ? void 0 : cell.si) || "", checkFormulaString = isFormulaString(formulaString), checkFormulaId = isFormulaId(formulaId);
17370
- if (checkFormulaString && checkFormulaId)
17371
- sheetFormulaDataMatrix.setValue(r, c, {
17372
- f: formulaString,
17373
- si: formulaId
17374
- }), formulaIdMap.set(formulaId, { f: formulaString, r, c }), newSheetFormulaDataMatrix.setValue(r, c, {
17375
- f: formulaString,
17376
- si: formulaId
17377
- });
17378
- else if (checkFormulaString && !checkFormulaId)
17379
- sheetFormulaDataMatrix.setValue(r, c, {
17380
- f: formulaString
17381
- }), newSheetFormulaDataMatrix.setValue(r, c, {
17382
- f: formulaString
17383
- });
17384
- else if (!checkFormulaString && checkFormulaId)
17385
- sheetFormulaDataMatrix.setValue(r, c, {
17386
- f: "",
17387
- si: formulaId
17388
- });
17389
- else if (!checkFormulaString && !checkFormulaId && sheetFormulaDataMatrix.getValue(r, c)) {
17390
- const currentFormulaInfo = sheetFormulaDataMatrix.getValue(r, c), f = (currentFormulaInfo == null ? void 0 : currentFormulaInfo.f) || "", si = (currentFormulaInfo == null ? void 0 : currentFormulaInfo.si) || "";
18872
+ const formulaString = (cell == null ? void 0 : cell.f) || "", formulaId = (cell == null ? void 0 : cell.si) || "", checkFormulaString = isFormulaString(formulaString), checkFormulaId = isFormulaId(formulaId), currentFormulaInfo = sheetFormulaDataMatrix.getValue(r, c), f = (currentFormulaInfo == null ? void 0 : currentFormulaInfo.f) || "", si = (currentFormulaInfo == null ? void 0 : currentFormulaInfo.si) || "";
18873
+ function clearFormulaData() {
18874
+ var _a26;
17391
18875
  if (isFormulaString(f) && isFormulaId(si)) {
17392
- const updatedFormula = (_a25 = formulaIdMap.get(si)) == null ? void 0 : _a25.f;
18876
+ const updatedFormula = (_a26 = formulaIdMap.get(si)) == null ? void 0 : _a26.f;
17393
18877
  updatedFormula ? deleteFormulaIdMap.set(si, updatedFormula) : deleteFormulaIdMap.set(si, f);
17394
18878
  }
17395
- sheetFormulaDataMatrix.realDeleteValue(r, c), newSheetFormulaDataMatrix.setValue(r, c, null);
17396
18879
  }
18880
+ __name(clearFormulaData, "clearFormulaData"), checkFormulaString && checkFormulaId ? (si !== formulaId && clearFormulaData(), sheetFormulaDataMatrix.setValue(r, c, {
18881
+ f: formulaString,
18882
+ si: formulaId
18883
+ }), formulaIdMap.set(formulaId, { f: formulaString, r, c }), newSheetFormulaDataMatrix.setValue(r, c, {
18884
+ f: formulaString,
18885
+ si: formulaId
18886
+ })) : checkFormulaString && !checkFormulaId ? (f !== formulaString && clearFormulaData(), sheetFormulaDataMatrix.setValue(r, c, {
18887
+ f: formulaString
18888
+ }), newSheetFormulaDataMatrix.setValue(r, c, {
18889
+ f: formulaString
18890
+ })) : !checkFormulaString && checkFormulaId ? (si !== formulaId && clearFormulaData(), sheetFormulaDataMatrix.setValue(r, c, {
18891
+ f: "",
18892
+ si: formulaId
18893
+ })) : !checkFormulaString && !checkFormulaId && sheetFormulaDataMatrix.getValue(r, c) && (clearFormulaData(), sheetFormulaDataMatrix.realDeleteValue(r, c), newSheetFormulaDataMatrix.setValue(r, c, null));
17397
18894
  }
17398
18895
  __name(updateFormulaDataByCellValue, "updateFormulaDataByCellValue");
17399
18896
  function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix, arrayFormulaCellDataMatrix, r, c) {
@@ -17410,8 +18907,8 @@ var __defProp$m = Object.defineProperty, __getOwnPropDesc$m = Object.getOwnPrope
17410
18907
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
17411
18908
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
17412
18909
  return kind && result && __defProp$m(target, key, result), result;
17413
- }, "__decorateClass$m"), __decorateParam$m = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$m"), _a2;
17414
- let FormulaDataModel = (_a2 = class extends Disposable {
18910
+ }, "__decorateClass$m"), __decorateParam$m = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$m"), _a3;
18911
+ let FormulaDataModel = (_a3 = class extends Disposable {
17415
18912
  constructor(_univerInstanceService, _lexerTreeBuilder) {
17416
18913
  super();
17417
18914
  __publicField(this, "_formulaData", {});
@@ -17419,22 +18916,25 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17419
18916
  __publicField(this, "_arrayFormulaCellData", {});
17420
18917
  this._univerInstanceService = _univerInstanceService, this._lexerTreeBuilder = _lexerTreeBuilder, this.initFormulaData();
17421
18918
  }
18919
+ dispose() {
18920
+ super.dispose(), this._formulaData = {}, this._arrayFormulaRange = {}, this._arrayFormulaCellData = {};
18921
+ }
17422
18922
  clearPreviousArrayFormulaCellData(clearArrayFormulaCellData) {
17423
18923
  Object.keys(clearArrayFormulaCellData).forEach((unitId) => {
17424
18924
  const clearSheetData = clearArrayFormulaCellData[unitId];
17425
18925
  if (clearSheetData == null)
17426
18926
  return !0;
17427
18927
  Object.keys(clearSheetData).forEach((sheetId) => {
17428
- var _a25, _b, _c, _d;
17429
- const clearCellMatrixData = clearSheetData[sheetId], rangeMatrix = (_b = (_a25 = this._arrayFormulaRange) == null ? void 0 : _a25[unitId]) == null ? void 0 : _b[sheetId];
18928
+ var _a26, _b, _c, _d;
18929
+ const clearCellMatrixData = clearSheetData[sheetId], rangeMatrix = (_b = (_a26 = this._arrayFormulaRange) == null ? void 0 : _a26[unitId]) == null ? void 0 : _b[sheetId];
17430
18930
  if (rangeMatrix == null)
17431
18931
  return !0;
17432
18932
  let arrayFormulaCellMatrixData = new ObjectMatrix();
17433
18933
  ((_c = this._arrayFormulaCellData[unitId]) == null ? void 0 : _c[sheetId]) != null && (arrayFormulaCellMatrixData = new ObjectMatrix(
17434
18934
  (_d = this._arrayFormulaCellData[unitId]) == null ? void 0 : _d[sheetId]
17435
18935
  )), clearCellMatrixData.forValue((row, column) => {
17436
- var _a26;
17437
- const range = (_a26 = rangeMatrix == null ? void 0 : rangeMatrix[row]) == null ? void 0 : _a26[column];
18936
+ var _a27;
18937
+ const range = (_a27 = rangeMatrix == null ? void 0 : rangeMatrix[row]) == null ? void 0 : _a27[column];
17438
18938
  if (range == null)
17439
18939
  return !0;
17440
18940
  const { startRow, startColumn, endRow, endColumn } = range;
@@ -17451,8 +18951,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17451
18951
  if (sheetData == null)
17452
18952
  return !0;
17453
18953
  this._arrayFormulaRange[unitId] == null && (this._arrayFormulaRange[unitId] = {}), this._arrayFormulaCellData[unitId] == null && (this._arrayFormulaCellData[unitId] = {}), Object.keys(sheetData).forEach((sheetId) => {
17454
- var _a25, _b;
17455
- const cellMatrixData = sheetData[sheetId], arrayFormulaRangeMatrix = new ObjectMatrix((_a25 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a25[sheetId]), arrayFormulaCellMatrixData = new ObjectMatrix((_b = this._arrayFormulaCellData[unitId]) == null ? void 0 : _b[sheetId]);
18954
+ var _a26, _b;
18955
+ const cellMatrixData = sheetData[sheetId], arrayFormulaRangeMatrix = new ObjectMatrix((_a26 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a26[sheetId]), arrayFormulaCellMatrixData = new ObjectMatrix((_b = this._arrayFormulaCellData[unitId]) == null ? void 0 : _b[sheetId]);
17456
18956
  cellMatrixData.forValue((row, column) => {
17457
18957
  const arrayFormulaRange = arrayFormulaRangeMatrix == null ? void 0 : arrayFormulaRangeMatrix.getValue(row, column);
17458
18958
  if (arrayFormulaRange == null)
@@ -17491,8 +18991,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17491
18991
  if (sheetData == null)
17492
18992
  return !0;
17493
18993
  this._arrayFormulaRange[unitId] || (this._arrayFormulaRange[unitId] = {}), Object.keys(sheetData).forEach((sheetId) => {
17494
- var _a25;
17495
- const arrayFormula = new ObjectMatrix(sheetData[sheetId]), rangeMatrix = new ObjectMatrix((_a25 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a25[sheetId]);
18994
+ var _a26;
18995
+ const arrayFormula = new ObjectMatrix(sheetData[sheetId]), rangeMatrix = new ObjectMatrix((_a26 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a26[sheetId]);
17496
18996
  arrayFormula.forValue((r, c, v) => {
17497
18997
  rangeMatrix.setValue(r, c, v);
17498
18998
  }), this._arrayFormulaRange[unitId] && (this._arrayFormulaRange[unitId][sheetId] = rangeMatrix.getData());
@@ -17508,12 +19008,12 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17508
19008
  return;
17509
19009
  }
17510
19010
  this._formulaData[unitId] || (this._formulaData[unitId] = {}), Object.keys(sheetData).forEach((sheetId) => {
17511
- var _a25, _b;
19011
+ var _a26, _b;
17512
19012
  const currentSheetData = sheetData[sheetId];
17513
19013
  if (currentSheetData === void 0)
17514
19014
  return;
17515
19015
  if (currentSheetData === null) {
17516
- (_a25 = this._formulaData[unitId]) == null || delete _a25[sheetId];
19016
+ (_a26 = this._formulaData[unitId]) == null || delete _a26[sheetId];
17517
19017
  return;
17518
19018
  }
17519
19019
  const sheetFormula = new ObjectMatrix(currentSheetData), formulaMatrix = new ObjectMatrix(((_b = this._formulaData[unitId]) == null ? void 0 : _b[sheetId]) || {});
@@ -17525,8 +19025,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17525
19025
  });
17526
19026
  }
17527
19027
  deleteArrayFormulaRange(unitId, sheetId, row, column) {
17528
- var _a25;
17529
- const cellMatrixData = (_a25 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a25[sheetId];
19028
+ var _a26;
19029
+ const cellMatrixData = (_a26 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a26[sheetId];
17530
19030
  if (cellMatrixData == null)
17531
19031
  return;
17532
19032
  const rangeMatrixData = new ObjectMatrix(cellMatrixData);
@@ -17608,8 +19108,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17608
19108
  }), newSheetFormulaDataMatrix.clone();
17609
19109
  }
17610
19110
  updateArrayFormulaRange(unitId, sheetId, cellValue) {
17611
- var _a25;
17612
- const arrayFormulaRange = (_a25 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a25[sheetId];
19111
+ var _a26;
19112
+ const arrayFormulaRange = (_a26 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a26[sheetId];
17613
19113
  if (!arrayFormulaRange) return;
17614
19114
  const arrayFormulaRangeMatrix = new ObjectMatrix(arrayFormulaRange);
17615
19115
  new ObjectMatrix(cellValue).forValue((r, c, cell) => {
@@ -17617,8 +19117,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17617
19117
  });
17618
19118
  }
17619
19119
  updateArrayFormulaCellData(unitId, sheetId, cellValue) {
17620
- var _a25, _b;
17621
- const arrayFormulaRange = (_a25 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a25[sheetId];
19120
+ var _a26, _b;
19121
+ const arrayFormulaRange = (_a26 = this._arrayFormulaRange[unitId]) == null ? void 0 : _a26[sheetId];
17622
19122
  if (!arrayFormulaRange) return;
17623
19123
  const arrayFormulaRangeMatrix = new ObjectMatrix(arrayFormulaRange), arrayFormulaCellData = (_b = this._arrayFormulaCellData[unitId]) == null ? void 0 : _b[sheetId];
17624
19124
  if (!arrayFormulaCellData) return;
@@ -17645,8 +19145,8 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17645
19145
  }), formulaDataItem;
17646
19146
  }
17647
19147
  getFormulaDataItem(row, column, sheetId, unitId) {
17648
- var _a25, _b, _c, _d;
17649
- return (_d = (_c = (_b = (_a25 = this._formulaData) == null ? void 0 : _a25[unitId]) == null ? void 0 : _b[sheetId]) == null ? void 0 : _c[row]) == null ? void 0 : _d[column];
19148
+ var _a26, _b, _c, _d;
19149
+ return (_d = (_c = (_b = (_a26 = this._formulaData) == null ? void 0 : _a26[unitId]) == null ? void 0 : _b[sheetId]) == null ? void 0 : _c[row]) == null ? void 0 : _d[column];
17650
19150
  }
17651
19151
  getFormulaIdMap(unitId, sheetId) {
17652
19152
  const formulaIdMap = /* @__PURE__ */ new Map(), formulaData = this._formulaData;
@@ -17685,7 +19185,7 @@ let FormulaDataModel = (_a2 = class extends Disposable {
17685
19185
  }
17686
19186
  return isFormulaString(f) ? f : null;
17687
19187
  }
17688
- }, __name(_a2, "FormulaDataModel"), _a2);
19188
+ }, __name(_a3, "FormulaDataModel"), _a3);
17689
19189
  FormulaDataModel = __decorateClass$m([
17690
19190
  __decorateParam$m(0, IUniverInstanceService),
17691
19191
  __decorateParam$m(1, Inject(LexerTreeBuilder))
@@ -17791,8 +19291,8 @@ const SetArrayFormulaDataMutation = {
17791
19291
  this._definedNameMap[unitId] == null && (this._definedNameMap[unitId] = {}), this._definedNameMap[unitId][param.id] = param, this._update();
17792
19292
  }
17793
19293
  removeDefinedName(unitId, id) {
17794
- var _a25;
17795
- (_a25 = this._definedNameMap[unitId]) == null || delete _a25[id], this._update();
19294
+ var _a26;
19295
+ (_a26 = this._definedNameMap[unitId]) == null || delete _a26[id], this._update();
17796
19296
  }
17797
19297
  removeUnitDefinedName(unitId) {
17798
19298
  delete this._definedNameMap[unitId], this._update();
@@ -17801,13 +19301,13 @@ const SetArrayFormulaDataMutation = {
17801
19301
  return this._definedNameMap[unitId];
17802
19302
  }
17803
19303
  getValueByName(unitId, name) {
17804
- var _a25;
19304
+ var _a26;
17805
19305
  const nameMap = this._definedNameMap[unitId];
17806
- return nameMap == null ? null : (_a25 = Array.from(Object.values(nameMap)).filter((value) => value.name === name)) == null ? void 0 : _a25[0];
19306
+ return nameMap == null ? null : (_a26 = Array.from(Object.values(nameMap)).filter((value) => value.name === name)) == null ? void 0 : _a26[0];
17807
19307
  }
17808
19308
  getValueById(unitId, id) {
17809
- var _a25;
17810
- return (_a25 = this._definedNameMap[unitId]) == null ? void 0 : _a25[id];
19309
+ var _a26;
19310
+ return (_a26 = this._definedNameMap[unitId]) == null ? void 0 : _a26[id];
17811
19311
  }
17812
19312
  hasDefinedName(unitId) {
17813
19313
  return this._definedNameMap[unitId] == null ? !1 : (Array.from(Object.values(this._definedNameMap[unitId])).length || 0) !== 0;
@@ -17823,8 +19323,8 @@ var __defProp$l = Object.defineProperty, __getOwnPropDesc$l = Object.getOwnPrope
17823
19323
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
17824
19324
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
17825
19325
  return kind && result && __defProp$l(target, key, result), result;
17826
- }, "__decorateClass$l"), __decorateParam$l = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$l"), _a3;
17827
- let FormulaCurrentConfigService = (_a3 = class extends Disposable {
19326
+ }, "__decorateClass$l"), __decorateParam$l = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$l"), _a4;
19327
+ let FormulaCurrentConfigService = (_a4 = class extends Disposable {
17828
19328
  constructor(_univerInstanceService) {
17829
19329
  super();
17830
19330
  __publicField(this, "_unitData", {});
@@ -18020,7 +19520,7 @@ let FormulaCurrentConfigService = (_a3 = class extends Disposable {
18020
19520
  unitSheetNameMap
18021
19521
  };
18022
19522
  }
18023
- }, __name(_a3, "FormulaCurrentConfigService"), _a3);
19523
+ }, __name(_a4, "FormulaCurrentConfigService"), _a4);
18024
19524
  FormulaCurrentConfigService = __decorateClass$l([
18025
19525
  __decorateParam$l(0, IUniverInstanceService)
18026
19526
  ], FormulaCurrentConfigService);
@@ -18031,8 +19531,8 @@ var __defProp$k = Object.defineProperty, __getOwnPropDesc$k = Object.getOwnPrope
18031
19531
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
18032
19532
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
18033
19533
  return kind && result && __defProp$k(target, key, result), result;
18034
- }, "__decorateClass$k"), __decorateParam$k = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$k"), _a4;
18035
- let Lexer = (_a4 = class extends Disposable {
19534
+ }, "__decorateClass$k"), __decorateParam$k = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$k"), _a5;
19535
+ let Lexer = (_a5 = class extends Disposable {
18036
19536
  constructor(_definedNamesService, _lexerTreeBuilder, _formulaCurrentConfigService) {
18037
19537
  super(), this._definedNamesService = _definedNamesService, this._lexerTreeBuilder = _lexerTreeBuilder, this._formulaCurrentConfigService = _formulaCurrentConfigService;
18038
19538
  }
@@ -18094,7 +19594,7 @@ let Lexer = (_a4 = class extends Disposable {
18094
19594
  definedNames
18095
19595
  };
18096
19596
  }
18097
- }, __name(_a4, "Lexer"), _a4);
19597
+ }, __name(_a5, "Lexer"), _a5);
18098
19598
  Lexer = __decorateClass$k([
18099
19599
  __decorateParam$k(0, IDefinedNamesService),
18100
19600
  __decorateParam$k(1, Inject(LexerTreeBuilder)),
@@ -18104,8 +19604,8 @@ var __defProp$j = Object.defineProperty, __getOwnPropDesc$j = Object.getOwnPrope
18104
19604
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
18105
19605
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
18106
19606
  return kind && result && __defProp$j(target, key, result), result;
18107
- }, "__decorateClass$j"), __decorateParam$j = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$j"), FormulaExecuteStageType = /* @__PURE__ */ ((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 = /* @__PURE__ */ ((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 || {}), _a5;
18108
- let FormulaRuntimeService = (_a5 = class extends Disposable {
19607
+ }, "__decorateClass$j"), __decorateParam$j = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$j"), FormulaExecuteStageType = /* @__PURE__ */ ((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 = /* @__PURE__ */ ((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 || {}), _a6;
19608
+ let FormulaRuntimeService = (_a6 = class extends Disposable {
18109
19609
  constructor(_currentConfigService) {
18110
19610
  super();
18111
19611
  __publicField(this, "_formulaExecuteStage", 0);
@@ -18286,8 +19786,8 @@ let FormulaRuntimeService = (_a5 = class extends Disposable {
18286
19786
  sheetData.setValue(row, column, errorObject), clearArrayUnitData.setValue(row, column, errorObject);
18287
19787
  const unitData2 = this._currentConfigService.getUnitData();
18288
19788
  objectValueRefOrArray.iterator((_, rowIndex, columnIndex) => {
18289
- var _a25, _b;
18290
- const currentRow = rowIndex - startRow + row, currentColumn = columnIndex - startColumn + column, cell = (_b = (_a25 = unitData2[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b.cellData.getValue(currentRow, currentColumn);
19789
+ var _a26, _b;
19790
+ const currentRow = rowIndex - startRow + row, currentColumn = columnIndex - startColumn + column, cell = (_b = (_a26 = unitData2[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b.cellData.getValue(currentRow, currentColumn);
18291
19791
  rowIndex === startRow && columnIndex === startColumn ? runtimeArrayUnitData.setValue(row, column, errorObject) : cell != null ? (cell.v == null && (cell.v = ""), runtimeArrayUnitData.setValue(currentRow, currentColumn, cell)) : runtimeArrayUnitData.setValue(currentRow, currentColumn, { v: "" });
18292
19792
  });
18293
19793
  } else {
@@ -18358,8 +19858,8 @@ let FormulaRuntimeService = (_a5 = class extends Disposable {
18358
19858
  };
18359
19859
  }
18360
19860
  _checkIfArrayFormulaRangeHasData(formulaUnitId, formulaSheetId, formulaRow, formulaColumn, arrayRange) {
18361
- var _a25, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
18362
- const { startRow, startColumn, endRow, endColumn } = arrayRange, unitData = this._currentConfigService.getUnitData(), unitArrayFormulaRange = (_c = (_b = (_a25 = this._unitArrayFormulaRange[formulaUnitId]) == null ? void 0 : _a25[formulaSheetId]) == null ? void 0 : _b[formulaRow]) == null ? void 0 : _c[formulaColumn];
19861
+ var _a26, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
19862
+ const { startRow, startColumn, endRow, endColumn } = arrayRange, unitData = this._currentConfigService.getUnitData(), unitArrayFormulaRange = (_c = (_b = (_a26 = this._unitArrayFormulaRange[formulaUnitId]) == null ? void 0 : _a26[formulaSheetId]) == null ? void 0 : _b[formulaRow]) == null ? void 0 : _c[formulaColumn];
18363
19863
  for (let r = startRow; r <= endRow; r++)
18364
19864
  for (let c = startColumn; c <= endColumn; c++) {
18365
19865
  if (r === formulaRow && formulaColumn === c)
@@ -18389,7 +19889,7 @@ let FormulaRuntimeService = (_a5 = class extends Disposable {
18389
19889
  const dirtyRanges = this._currentConfigService.getDirtyRanges();
18390
19890
  return dirtyRanges.length === 0 ? !0 : isInDirtyRange(dirtyRanges, unitId, sheetId, row, column);
18391
19891
  }
18392
- }, __name(_a5, "FormulaRuntimeService"), _a5);
19892
+ }, __name(_a6, "FormulaRuntimeService"), _a6);
18393
19893
  FormulaRuntimeService = __decorateClass$j([
18394
19894
  __decorateParam$j(0, IFormulaCurrentConfigService)
18395
19895
  ], FormulaRuntimeService);
@@ -18421,10 +19921,10 @@ const NODE_ORDER_MAP = /* @__PURE__ */ new Map([
18421
19921
  this._token = _token;
18422
19922
  }
18423
19923
  dispose() {
18424
- var _a25;
19924
+ var _a26;
18425
19925
  this._children.forEach((node) => {
18426
19926
  node.dispose();
18427
- }), (_a25 = this._valueObject) == null || _a25.dispose(), this._parent = null;
19927
+ }), (_a26 = this._valueObject) == null || _a26.dispose(), this._parent = null;
18428
19928
  }
18429
19929
  get nodeType() {
18430
19930
  return NodeType.BASE;
@@ -18656,8 +20156,8 @@ const _PrefixNode = class _PrefixNode extends BaseAstNode {
18656
20156
  };
18657
20157
  __name(_PrefixNode, "PrefixNode");
18658
20158
  let PrefixNode = _PrefixNode;
18659
- var _a6;
18660
- let PrefixNodeFactory = (_a6 = class extends BaseAstNodeFactory {
20159
+ var _a7;
20160
+ let PrefixNodeFactory = (_a7 = class extends BaseAstNodeFactory {
18661
20161
  constructor(_functionService, _injector) {
18662
20162
  super(), this._functionService = _functionService, this._injector = _injector;
18663
20163
  }
@@ -18677,7 +20177,7 @@ let PrefixNodeFactory = (_a6 = class extends BaseAstNodeFactory {
18677
20177
  const functionExecutor = this._functionService.getExecutor(functionName);
18678
20178
  return functionExecutor ? new PrefixNode(this._injector, tokenTrim, functionExecutor) : (console.error(`No function ${token}`), ErrorNode.create(ErrorType$1.NAME));
18679
20179
  }
18680
- }, __name(_a6, "PrefixNodeFactory"), _a6);
20180
+ }, __name(_a7, "PrefixNodeFactory"), _a7);
18681
20181
  PrefixNodeFactory = __decorateClass$i([
18682
20182
  __decorateParam$i(0, IFunctionService),
18683
20183
  __decorateParam$i(1, Inject(Injector))
@@ -18750,7 +20250,7 @@ const _FunctionNode = class _FunctionNode extends BaseAstNode {
18750
20250
  lookupCountRow !== resultCountRow && (resultVectorRange.endRow += lookupCountRow - resultCountRow), lookupCountColumn !== resultCountColumn && (resultVectorRange.endColumn += lookupCountColumn - resultCountColumn);
18751
20251
  }
18752
20252
  _calculate(variants) {
18753
- var _a25;
20253
+ var _a26;
18754
20254
  const { minParams, maxParams } = this._functionExecutor;
18755
20255
  if (minParams !== -1 && maxParams !== -1 && (variants.length < minParams || variants.length > maxParams))
18756
20256
  return ErrorValueObject.create(ErrorType$1.NA);
@@ -18766,7 +20266,7 @@ const _FunctionNode = class _FunctionNode extends BaseAstNode {
18766
20266
  resultVariant = ArrayValueObject.create({
18767
20267
  calculateValueList: arrayValues,
18768
20268
  rowCount: arrayValues.length,
18769
- columnCount: ((_a25 = arrayValues[0]) == null ? void 0 : _a25.length) || 0,
20269
+ columnCount: ((_a26 = arrayValues[0]) == null ? void 0 : _a26.length) || 0,
18770
20270
  unitId: "",
18771
20271
  sheetId: "",
18772
20272
  row: -1,
@@ -18797,8 +20297,8 @@ const _FunctionNode = class _FunctionNode extends BaseAstNode {
18797
20297
  };
18798
20298
  __name(_FunctionNode, "FunctionNode");
18799
20299
  let FunctionNode = _FunctionNode;
18800
- var _a7;
18801
- let FunctionNodeFactory = (_a7 = class extends BaseAstNodeFactory {
20300
+ var _a8;
20301
+ let FunctionNodeFactory = (_a8 = class extends BaseAstNodeFactory {
18802
20302
  constructor(_functionService, _currentConfigService, _runtimeService, _definedNamesService, _injector) {
18803
20303
  super(), this._functionService = _functionService, this._currentConfigService = _currentConfigService, this._runtimeService = _runtimeService, this._definedNamesService = _definedNamesService, this._injector = _injector;
18804
20304
  }
@@ -18822,10 +20322,10 @@ let FunctionNodeFactory = (_a7 = class extends BaseAstNodeFactory {
18822
20322
  }
18823
20323
  }
18824
20324
  _isParentUnionNode(param) {
18825
- var _a25, _b;
18826
- return ((_b = (_a25 = param.getParent()) == null ? void 0 : _a25.getParent()) == null ? void 0 : _b.getToken()) === matchToken.COLON;
20325
+ var _a26, _b;
20326
+ return ((_b = (_a26 = param.getParent()) == null ? void 0 : _a26.getParent()) == null ? void 0 : _b.getToken()) === matchToken.COLON;
18827
20327
  }
18828
- }, __name(_a7, "FunctionNodeFactory"), _a7);
20328
+ }, __name(_a8, "FunctionNodeFactory"), _a8);
18829
20329
  FunctionNodeFactory = __decorateClass$h([
18830
20330
  __decorateParam$h(0, IFunctionService),
18831
20331
  __decorateParam$h(1, IFormulaCurrentConfigService),
@@ -18837,8 +20337,8 @@ var __defProp$g = Object.defineProperty, __getOwnPropDesc$g = Object.getOwnPrope
18837
20337
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
18838
20338
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
18839
20339
  return kind && result && __defProp$g(target, key, result), result;
18840
- }, "__decorateClass$g"), __decorateParam$g = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$g"), _a8;
18841
- let Interpreter = (_a8 = class extends Disposable {
20340
+ }, "__decorateClass$g"), __decorateParam$g = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$g"), _a9;
20341
+ let Interpreter = (_a9 = class extends Disposable {
18842
20342
  constructor(_runtimeService) {
18843
20343
  super(), this._runtimeService = _runtimeService;
18844
20344
  }
@@ -18906,7 +20406,7 @@ let Interpreter = (_a8 = class extends Disposable {
18906
20406
  }
18907
20407
  return node.execute(), AstNodePromiseType.SUCCESS;
18908
20408
  }
18909
- }, __name(_a8, "Interpreter"), _a8);
20409
+ }, __name(_a9, "Interpreter"), _a9);
18910
20410
  Interpreter = __decorateClass$g([
18911
20411
  __decorateParam$g(0, IFormulaRuntimeService)
18912
20412
  ], Interpreter);
@@ -18979,6 +20479,9 @@ const _LambdaValueObjectObject = class _LambdaValueObjectObject extends BaseValu
18979
20479
  this._lambdaPrivacyValueMap.set(key, variant);
18980
20480
  }
18981
20481
  }
20482
+ getLambdaPrivacyVarKeys() {
20483
+ return this._lambdaPrivacyVarKeys;
20484
+ }
18982
20485
  };
18983
20486
  __name(_LambdaValueObjectObject, "LambdaValueObjectObject");
18984
20487
  let LambdaValueObjectObject = _LambdaValueObjectObject;
@@ -19029,8 +20532,8 @@ const _LambdaNode = class _LambdaNode extends BaseAstNode {
19029
20532
  };
19030
20533
  __name(_LambdaNode, "LambdaNode");
19031
20534
  let LambdaNode = _LambdaNode;
19032
- var _a9;
19033
- let LambdaNodeFactory = (_a9 = class extends BaseAstNodeFactory {
20535
+ var _a10;
20536
+ let LambdaNodeFactory = (_a10 = class extends BaseAstNodeFactory {
19034
20537
  constructor(_runtimeService, _interpreter) {
19035
20538
  super(), this._runtimeService = _runtimeService, this._interpreter = _interpreter;
19036
20539
  }
@@ -19083,7 +20586,7 @@ let LambdaNodeFactory = (_a9 = class extends BaseAstNodeFactory {
19083
20586
  }
19084
20587
  }
19085
20588
  }
19086
- }, __name(_a9, "LambdaNodeFactory"), _a9);
20589
+ }, __name(_a10, "LambdaNodeFactory"), _a10);
19087
20590
  LambdaNodeFactory = __decorateClass$f([
19088
20591
  __decorateParam$f(0, IFormulaRuntimeService),
19089
20592
  __decorateParam$f(1, Inject(Interpreter))
@@ -19164,10 +20667,10 @@ const _OperatorNode = class _OperatorNode extends BaseAstNode {
19164
20667
  return NodeType.OPERATOR;
19165
20668
  }
19166
20669
  execute() {
19167
- var _a25, _b;
20670
+ var _a26, _b;
19168
20671
  const children = this.getChildren();
19169
20672
  this._functionExecutor.name === FUNCTION_NAMES_META.COMPARE && this._functionExecutor.setCompareType(this.getToken());
19170
- let object1 = (_a25 = children[0]) == null ? void 0 : _a25.getValue(), object2 = (_b = children[1]) == null ? void 0 : _b.getValue();
20673
+ let object1 = (_a26 = children[0]) == null ? void 0 : _a26.getValue(), object2 = (_b = children[1]) == null ? void 0 : _b.getValue();
19171
20674
  const token = this.getToken();
19172
20675
  if ((object1 == null || object2 == null) && token !== operatorToken.MINUS && token !== operatorToken.PLUS) {
19173
20676
  this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));
@@ -19183,8 +20686,8 @@ const _OperatorNode = class _OperatorNode extends BaseAstNode {
19183
20686
  };
19184
20687
  __name(_OperatorNode, "OperatorNode");
19185
20688
  let OperatorNode = _OperatorNode;
19186
- var _a10;
19187
- let OperatorNodeFactory = (_a10 = class extends BaseAstNodeFactory {
20689
+ var _a11;
20690
+ let OperatorNodeFactory = (_a11 = class extends BaseAstNodeFactory {
19188
20691
  constructor(_functionService) {
19189
20692
  super(), this._functionService = _functionService;
19190
20693
  }
@@ -19205,7 +20708,7 @@ let OperatorNodeFactory = (_a10 = class extends BaseAstNodeFactory {
19205
20708
  if (!(tokenTrim.charAt(0) === '"' && tokenTrim.charAt(tokenTrim.length - 1) === '"') && OPERATOR_TOKEN_SET.has(tokenTrim))
19206
20709
  return this.create(tokenTrim);
19207
20710
  }
19208
- }, __name(_a10, "OperatorNodeFactory"), _a10);
20711
+ }, __name(_a11, "OperatorNodeFactory"), _a11);
19209
20712
  OperatorNodeFactory = __decorateClass$e([
19210
20713
  __decorateParam$e(0, IFunctionService)
19211
20714
  ], OperatorNodeFactory);
@@ -19221,8 +20724,8 @@ const _SuperTableService = class _SuperTableService extends Disposable {
19221
20724
  this._tableMap.clear(), this._tableOptionMap.clear();
19222
20725
  }
19223
20726
  remove(unitId, tableName) {
19224
- var _a25;
19225
- (_a25 = this._tableMap.get(unitId)) == null || _a25.delete(tableName);
20727
+ var _a26;
20728
+ (_a26 = this._tableMap.get(unitId)) == null || _a26.delete(tableName);
19226
20729
  }
19227
20730
  getTableMap(unitId) {
19228
20731
  return this._tableMap.get(unitId);
@@ -19231,8 +20734,8 @@ const _SuperTableService = class _SuperTableService extends Disposable {
19231
20734
  return this._tableOptionMap;
19232
20735
  }
19233
20736
  registerTable(unitId, tableName, reference) {
19234
- var _a25;
19235
- this._tableMap.get(unitId) == null && this._tableMap.set(unitId, /* @__PURE__ */ new Map()), (_a25 = this._tableMap.get(unitId)) == null || _a25.set(tableName, reference);
20737
+ var _a26;
20738
+ this._tableMap.get(unitId) == null && this._tableMap.set(unitId, /* @__PURE__ */ new Map()), (_a26 = this._tableMap.get(unitId)) == null || _a26.set(tableName, reference);
19236
20739
  }
19237
20740
  registerTableOptionMap(tableOption, tableOptionType) {
19238
20741
  this._tableOptionMap.set(tableOption, tableOptionType);
@@ -19276,12 +20779,12 @@ const ISuperTableService = createIdentifier("univer.formula.super-table.service"
19276
20779
  };
19277
20780
  }
19278
20781
  _columnHandler(rightString, titleMap, isSingle = !1) {
19279
- var _a25, _b, _c;
20782
+ var _a26, _b, _c;
19280
20783
  let startColumn = -1, endColumn = -1;
19281
20784
  const colonIndex = rightString.indexOf(matchToken.COLON);
19282
20785
  if (new RegExp($SUPER_TABLE_COLUMN_REGEX, "g").test(rightString)) {
19283
20786
  const startColumnString = rightString.substring(0, colonIndex).substring(1, -1), endColumnString = rightString.substring(colonIndex + 1).substring(1, -1);
19284
- startColumn = (_a25 = titleMap.get(startColumnString)) != null ? _a25 : -1, endColumn = (_b = titleMap.get(endColumnString)) != null ? _b : -1;
20787
+ startColumn = (_a26 = titleMap.get(startColumnString)) != null ? _a26 : -1, endColumn = (_b = titleMap.get(endColumnString)) != null ? _b : -1;
19285
20788
  } else
19286
20789
  isSingle && (rightString = rightString.substring(1, -1)), startColumn = (_c = titleMap.get(rightString)) != null ? _c : -1, endColumn = startColumn;
19287
20790
  return {
@@ -19313,8 +20816,8 @@ const _ReferenceNode = class _ReferenceNode extends BaseAstNode {
19313
20816
  };
19314
20817
  __name(_ReferenceNode, "ReferenceNode");
19315
20818
  let ReferenceNode = _ReferenceNode;
19316
- var _a11;
19317
- let ReferenceNodeFactory = (_a11 = class extends BaseAstNodeFactory {
20819
+ var _a12;
20820
+ let ReferenceNodeFactory = (_a12 = class extends BaseAstNodeFactory {
19318
20821
  constructor(_superTableService, _formulaRuntimeService, _functionService, _injector) {
19319
20822
  super(), this._superTableService = _superTableService, this._formulaRuntimeService = _formulaRuntimeService, this._functionService = _functionService, this._injector = _injector;
19320
20823
  }
@@ -19322,9 +20825,9 @@ let ReferenceNodeFactory = (_a11 = class extends BaseAstNodeFactory {
19322
20825
  return NODE_ORDER_MAP.get(NodeType.REFERENCE) || DEFAULT_AST_NODE_FACTORY_Z_INDEX;
19323
20826
  }
19324
20827
  checkAndCreateNodeType(param) {
19325
- var _a25, _b;
20828
+ var _a26, _b;
19326
20829
  let isLexerNode = !1, tokenTrimPre, isPrepareMerge = !1;
19327
- param instanceof LexerNode ? (isLexerNode = !0, tokenTrimPre = param.getToken().trim(), ((_b = (_a25 = param.getParent()) == null ? void 0 : _a25.getParent()) == null ? void 0 : _b.getToken().trim()) === matchToken.COLON && (isPrepareMerge = !0)) : tokenTrimPre = param.trim();
20830
+ param instanceof LexerNode ? (isLexerNode = !0, tokenTrimPre = param.getToken().trim(), ((_b = (_a26 = param.getParent()) == null ? void 0 : _a26.getParent()) == null ? void 0 : _b.getToken().trim()) === matchToken.COLON && (isPrepareMerge = !0)) : tokenTrimPre = param.trim();
19328
20831
  const { tokenTrim, minusPrefixNode, atPrefixNode } = prefixHandler(tokenTrimPre, this._functionService, this._injector);
19329
20832
  if (!isLexerNode && tokenTrim.charAt(0) === '"' && tokenTrim.charAt(tokenTrim.length - 1) === '"')
19330
20833
  return;
@@ -19351,10 +20854,10 @@ let ReferenceNodeFactory = (_a11 = class extends BaseAstNodeFactory {
19351
20854
  return atPrefixNode ? node.setParent(atPrefixNode) : minusPrefixNode && node.setParent(minusPrefixNode), node;
19352
20855
  }
19353
20856
  _checkParentIsUnionOperator(param) {
19354
- var _a25, _b;
19355
- return ((_b = (_a25 = param.getParent()) == null ? void 0 : _a25.getParent()) == null ? void 0 : _b.getToken().trim()) === matchToken.COLON;
20857
+ var _a26, _b;
20858
+ return ((_b = (_a26 = param.getParent()) == null ? void 0 : _a26.getParent()) == null ? void 0 : _b.getToken().trim()) === matchToken.COLON;
19356
20859
  }
19357
- }, __name(_a11, "ReferenceNodeFactory"), _a11);
20860
+ }, __name(_a12, "ReferenceNodeFactory"), _a12);
19358
20861
  ReferenceNodeFactory = __decorateClass$d([
19359
20862
  __decorateParam$d(0, ISuperTableService),
19360
20863
  __decorateParam$d(1, IFormulaRuntimeService),
@@ -19389,17 +20892,17 @@ const _SuffixNode = class _SuffixNode extends BaseAstNode {
19389
20892
  this.setValue(result);
19390
20893
  }
19391
20894
  _handlerPound(value) {
19392
- var _a25, _b, _c, _d;
20895
+ var _a26, _b, _c, _d;
19393
20896
  if (!value.isReferenceObject() || !value.isCell())
19394
20897
  return ErrorValueObject.create(ErrorType$1.VALUE);
19395
- 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 = (_a25 = formulaData == null ? void 0 : formulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b[range.startRow]) == null ? void 0 : _c[range.startColumn]) == null ? void 0 : _d.f;
20898
+ 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 = (_a26 = formulaData == null ? void 0 : formulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b[range.startRow]) == null ? void 0 : _c[range.startColumn]) == null ? void 0 : _d.f;
19396
20899
  return formulaString && lexer.treeBuilder(formulaString), ErrorValueObject.create(ErrorType$1.VALUE);
19397
20900
  }
19398
20901
  };
19399
20902
  __name(_SuffixNode, "SuffixNode");
19400
20903
  let SuffixNode = _SuffixNode;
19401
- var _a12;
19402
- let SuffixNodeFactory = (_a12 = class extends BaseAstNodeFactory {
20904
+ var _a13;
20905
+ let SuffixNodeFactory = (_a13 = class extends BaseAstNodeFactory {
19403
20906
  constructor(_functionService, _injector) {
19404
20907
  super(), this._functionService = _functionService, this._injector = _injector;
19405
20908
  }
@@ -19419,7 +20922,7 @@ let SuffixNodeFactory = (_a12 = class extends BaseAstNodeFactory {
19419
20922
  const functionExecutor = this._functionService.getExecutor(functionName);
19420
20923
  return functionExecutor ? new SuffixNode(this._injector, tokenTrim, functionExecutor) : (console.error(`No function ${param}`), ErrorNode.create(ErrorType$1.NAME));
19421
20924
  }
19422
- }, __name(_a12, "SuffixNodeFactory"), _a12);
20925
+ }, __name(_a13, "SuffixNodeFactory"), _a13);
19423
20926
  SuffixNodeFactory = __decorateClass$c([
19424
20927
  __decorateParam$c(0, IFunctionService),
19425
20928
  __decorateParam$c(1, Inject(Injector))
@@ -19449,8 +20952,8 @@ const _UnionNode = class _UnionNode extends BaseAstNode {
19449
20952
  };
19450
20953
  __name(_UnionNode, "UnionNode");
19451
20954
  let UnionNode = _UnionNode;
19452
- var _a13;
19453
- let UnionNodeFactory = (_a13 = class extends BaseAstNodeFactory {
20955
+ var _a14;
20956
+ let UnionNodeFactory = (_a14 = class extends BaseAstNodeFactory {
19454
20957
  constructor(_functionService) {
19455
20958
  super(), this._functionService = _functionService;
19456
20959
  }
@@ -19467,7 +20970,7 @@ let UnionNodeFactory = (_a13 = class extends BaseAstNodeFactory {
19467
20970
  if (!(tokenTrim.charAt(0) === '"' && tokenTrim.charAt(tokenTrim.length - 1) === '"') && tokenTrim === matchToken.COLON)
19468
20971
  return this.create(tokenTrim);
19469
20972
  }
19470
- }, __name(_a13, "UnionNodeFactory"), _a13);
20973
+ }, __name(_a14, "UnionNodeFactory"), _a14);
19471
20974
  UnionNodeFactory = __decorateClass$b([
19472
20975
  __decorateParam$b(0, IFunctionService)
19473
20976
  ], UnionNodeFactory);
@@ -19524,8 +21027,8 @@ var __defProp$a = Object.defineProperty, __getOwnPropDesc$a = Object.getOwnPrope
19524
21027
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
19525
21028
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
19526
21029
  return kind && result && __defProp$a(target, key, result), result;
19527
- }, "__decorateClass$a"), __decorateParam$a = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$a"), _a14;
19528
- let AstTreeBuilder = (_a14 = class extends Disposable {
21030
+ }, "__decorateClass$a"), __decorateParam$a = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$a"), _a15;
21031
+ let AstTreeBuilder = (_a15 = class extends Disposable {
19529
21032
  constructor(_runtimeService, _astRootNodeFactory, _functionNodeFactory, _lambdaNodeFactory, _lambdaParameterNodeFactory, _operatorNodeFactory, _prefixNodeFactory, _referenceNodeFactory, _suffixNodeFactory, _unionNodeFactory, _valueNodeFactory) {
19530
21033
  super();
19531
21034
  __publicField(this, "_astNodeFactoryList", []);
@@ -19685,7 +21188,7 @@ let AstTreeBuilder = (_a14 = class extends Disposable {
19685
21188
  this._valueNodeFactory
19686
21189
  ].sort(sortRules);
19687
21190
  }
19688
- }, __name(_a14, "AstTreeBuilder"), _a14);
21191
+ }, __name(_a15, "AstTreeBuilder"), _a15);
19689
21192
  AstTreeBuilder = __decorateClass$a([
19690
21193
  __decorateParam$a(0, IFormulaRuntimeService),
19691
21194
  __decorateParam$a(1, Inject(AstRootNodeFactory)),
@@ -19712,8 +21215,8 @@ const _FeatureCalculationManagerService = class _FeatureCalculationManagerServic
19712
21215
  }
19713
21216
  remove(unitId, subUnitId, featureIds) {
19714
21217
  featureIds.forEach((featureId) => {
19715
- var _a25, _b;
19716
- (_b = (_a25 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a25.get(subUnitId)) == null || _b.delete(featureId);
21218
+ var _a26, _b;
21219
+ (_b = (_a26 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a26.get(subUnitId)) == null || _b.delete(featureId);
19717
21220
  }), this._onChanged$.next({
19718
21221
  unitId,
19719
21222
  subUnitId,
@@ -19721,12 +21224,12 @@ const _FeatureCalculationManagerService = class _FeatureCalculationManagerServic
19721
21224
  });
19722
21225
  }
19723
21226
  get(unitId, subUnitId, featureId) {
19724
- var _a25, _b;
19725
- return (_b = (_a25 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a25.get(subUnitId)) == null ? void 0 : _b.get(featureId);
21227
+ var _a26, _b;
21228
+ return (_b = (_a26 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a26.get(subUnitId)) == null ? void 0 : _b.get(featureId);
19726
21229
  }
19727
21230
  has(unitId, subUnitId, featureId) {
19728
- var _a25, _b;
19729
- return !!((_b = (_a25 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a25.get(subUnitId)) != null && _b.has(featureId));
21231
+ var _a26, _b;
21232
+ return !!((_b = (_a26 = this._referenceExecutorMap.get(unitId)) == null ? void 0 : _a26.get(subUnitId)) != null && _b.has(featureId));
19730
21233
  }
19731
21234
  register(unitId, subUnitId, featureId, referenceExecutor) {
19732
21235
  let unitMap = this._referenceExecutorMap.get(unitId);
@@ -19755,19 +21258,19 @@ const IFeatureCalculationManagerService = createIdentifier(
19755
21258
  this._otherFormulaData = {};
19756
21259
  }
19757
21260
  remove(searchParam) {
19758
- var _a25, _b, _c;
21261
+ var _a26, _b, _c;
19759
21262
  const { unitId, subUnitId, formulaId } = searchParam;
19760
- (_c = (_b = (_a25 = this._otherFormulaData) == null ? void 0 : _a25[unitId]) == null ? void 0 : _b[subUnitId]) == null || delete _c[formulaId];
21263
+ (_c = (_b = (_a26 = this._otherFormulaData) == null ? void 0 : _a26[unitId]) == null ? void 0 : _b[subUnitId]) == null || delete _c[formulaId];
19761
21264
  }
19762
21265
  get(searchParam) {
19763
- var _a25, _b;
21266
+ var _a26, _b;
19764
21267
  const { unitId, subUnitId, formulaId } = searchParam;
19765
- return (_b = (_a25 = this._otherFormulaData[unitId]) == null ? void 0 : _a25[subUnitId]) == null ? void 0 : _b[formulaId];
21268
+ return (_b = (_a26 = this._otherFormulaData[unitId]) == null ? void 0 : _a26[subUnitId]) == null ? void 0 : _b[formulaId];
19766
21269
  }
19767
21270
  has(searchParam) {
19768
- var _a25, _b;
21271
+ var _a26, _b;
19769
21272
  const { unitId, subUnitId, formulaId } = searchParam;
19770
- return ((_b = (_a25 = this._otherFormulaData[unitId]) == null ? void 0 : _a25[subUnitId]) == null ? void 0 : _b[formulaId]) != null;
21273
+ return ((_b = (_a26 = this._otherFormulaData[unitId]) == null ? void 0 : _a26[subUnitId]) == null ? void 0 : _b[formulaId]) != null;
19771
21274
  }
19772
21275
  register(insertParam) {
19773
21276
  const { unitId, subUnitId, formulaId, item } = insertParam;
@@ -19825,7 +21328,7 @@ const IOtherFormulaManagerService = createIdentifier(
19825
21328
  "univer.formula.other-formula-manager.service"
19826
21329
  ), _FormulaDependencyTree = class _FormulaDependencyTree extends Disposable {
19827
21330
  constructor() {
19828
- super(...arguments);
21331
+ super();
19829
21332
  __publicField(this, "node");
19830
21333
  __publicField(this, "children", []);
19831
21334
  __publicField(this, "parents", []);
@@ -19840,12 +21343,20 @@ const IOtherFormulaManagerService = createIdentifier(
19840
21343
  __publicField(this, "formulaId");
19841
21344
  __publicField(this, "featureId");
19842
21345
  __publicField(this, "isPassive", !0);
21346
+ __publicField(this, "_childIds", /* @__PURE__ */ new Set());
21347
+ // the left top cell , which means the position of the FormulaDependencyTree
21348
+ __publicField(this, "anchorToken", "");
19843
21349
  __publicField(this, "getDirtyData");
19844
21350
  __publicField(this, "_state", 0);
21351
+ __publicField(this, "_id");
21352
+ this._id = `${Math.random().toString(36).slice(3)}-${Math.random().toString(36).slice(3)}`;
21353
+ }
21354
+ get id() {
21355
+ return this._id;
19845
21356
  }
19846
21357
  dispose() {
19847
- var _a25;
19848
- super.dispose(), this.children = [], this.rangeList = [], this.parents = [], (_a25 = this.node) == null || _a25.dispose();
21358
+ var _a26;
21359
+ super.dispose(), this.children = [], this.rangeList = [], this.parents = [], (_a26 = this.node) == null || _a26.dispose();
19849
21360
  }
19850
21361
  disposeWithChildren() {
19851
21362
  this.children.forEach((tree) => {
@@ -19877,12 +21388,12 @@ const IOtherFormulaManagerService = createIdentifier(
19877
21388
  * @param dependencyRangeList
19878
21389
  */
19879
21390
  dependencyRange(dependencyRangeList, dirtyUnitSheetNameMap, unitExcludedCell) {
19880
- var _a25, _b;
21391
+ var _a26, _b;
19881
21392
  if (this.rangeList.length === 0)
19882
21393
  return !1;
19883
21394
  for (let r = 0, len = this.rangeList.length; r < len; r++) {
19884
21395
  const unitRange = this.rangeList[r], { unitId, sheetId, range } = unitRange.gridRange;
19885
- if (((_a25 = dirtyUnitSheetNameMap[unitId]) == null ? void 0 : _a25[sheetId]) != null)
21396
+ if (((_a26 = dirtyUnitSheetNameMap[unitId]) == null ? void 0 : _a26[sheetId]) != null)
19886
21397
  return !0;
19887
21398
  if (!dependencyRangeList.has(unitId))
19888
21399
  continue;
@@ -19907,7 +21418,10 @@ const IOtherFormulaManagerService = createIdentifier(
19907
21418
  return !1;
19908
21419
  }
19909
21420
  pushChildren(tree) {
19910
- this.children.push(tree), tree._pushParent(this);
21421
+ this.children.push(tree), tree._pushParent(this), this._childIds.add(tree.id);
21422
+ }
21423
+ hasChild(tree) {
21424
+ return this._childIds.has(tree.id);
19911
21425
  }
19912
21426
  /**
19913
21427
  * Add the range corresponding to the current ast node.
@@ -19940,6 +21454,11 @@ const _FormulaDependencyTreeCache = class _FormulaDependencyTreeCache extends Di
19940
21454
  constructor() {
19941
21455
  super(...arguments);
19942
21456
  __publicField(this, "_cacheItems", /* @__PURE__ */ new Map());
21457
+ __publicField(this, "_map", /* @__PURE__ */ new Map());
21458
+ __publicField(this, "_dependencyMap", /* @__PURE__ */ new Map());
21459
+ __publicField(this, "_parentIdMap", /* @__PURE__ */ new Map());
21460
+ // use for mark the first cell of the range
21461
+ __publicField(this, "_rangeTokens", /* @__PURE__ */ new Set());
19943
21462
  }
19944
21463
  dispose() {
19945
21464
  this.clear();
@@ -19947,6 +21466,12 @@ const _FormulaDependencyTreeCache = class _FormulaDependencyTreeCache extends Di
19947
21466
  size() {
19948
21467
  return this._cacheItems.size;
19949
21468
  }
21469
+ getDependencyMap() {
21470
+ return this._dependencyMap;
21471
+ }
21472
+ getDependencyTree(id) {
21473
+ return this._dependencyMap.get(id);
21474
+ }
19950
21475
  get length() {
19951
21476
  return this._cacheItems.size;
19952
21477
  }
@@ -19955,14 +21480,38 @@ const _FormulaDependencyTreeCache = class _FormulaDependencyTreeCache extends Di
19955
21480
  if (!this._cacheItems.has(token)) {
19956
21481
  this._cacheItems.set(token, {
19957
21482
  unitRangeWithToken,
19958
- treeList: [tree]
21483
+ treeList: [tree],
21484
+ ids: /* @__PURE__ */ new Set([tree.id])
19959
21485
  });
19960
21486
  return;
19961
21487
  }
19962
- this._cacheItems.get(token).treeList.push(tree);
21488
+ const cacheItem = this._cacheItems.get(token);
21489
+ cacheItem.treeList.push(tree), cacheItem.ids.add(tree.id);
21490
+ const { gridRange } = unitRangeWithToken, { range } = gridRange;
21491
+ range.startRow === range.endRow && range.startColumn === range.endColumn || this._rangeTokens.add(token);
21492
+ }
21493
+ addDependencyMap(tree) {
21494
+ this._dependencyMap.set(tree.id, tree);
21495
+ }
21496
+ updateParent(tree) {
21497
+ const ids = /* @__PURE__ */ new Set(), unitId = tree.unitId, sheetId = tree.subUnitId, testCacheItems = this._cacheItems.get(tree.anchorToken);
21498
+ if (testCacheItems) {
21499
+ this._parentIdMap.set(tree.id, [...testCacheItems.ids]);
21500
+ return;
21501
+ }
21502
+ for (const token of this._rangeTokens) {
21503
+ const cacheItem = this._cacheItems.get(token);
21504
+ if (cacheItem) {
21505
+ const { unitRangeWithToken, treeList } = cacheItem, { gridRange } = unitRangeWithToken;
21506
+ if (gridRange.unitId === unitId && gridRange.sheetId === sheetId && tree.inRangeData(gridRange.range))
21507
+ for (const tree2 of treeList)
21508
+ ids.add(tree2.id);
21509
+ }
21510
+ }
21511
+ this._parentIdMap.set(tree.id, [...ids]);
19963
21512
  }
19964
21513
  clear() {
19965
- this._cacheItems.clear();
21514
+ this._cacheItems.clear(), this._map.clear(), this._dependencyMap.clear();
19966
21515
  }
19967
21516
  remove(token, tree) {
19968
21517
  if (!this._cacheItems.has(token))
@@ -19973,6 +21522,37 @@ const _FormulaDependencyTreeCache = class _FormulaDependencyTreeCache extends Di
19973
21522
  delete(token) {
19974
21523
  this._cacheItems.delete(token);
19975
21524
  }
21525
+ getDependencyId(dependenceTree, ids) {
21526
+ const parentIdList = this._parentIdMap.get(dependenceTree.id);
21527
+ if (parentIdList) {
21528
+ const list = [...parentIdList];
21529
+ for (const parentId of list) {
21530
+ ids.add(parentId);
21531
+ const tree = this._dependencyMap.get(parentId);
21532
+ tree && parentId !== dependenceTree.id && this.getDependencyId(tree, ids);
21533
+ }
21534
+ }
21535
+ }
21536
+ /**
21537
+ * Determine whether range is dependent on other trees.
21538
+ * @param dependenceTree
21539
+ */
21540
+ dependencyUseParentId(dependenceTree) {
21541
+ let ids = /* @__PURE__ */ new Set();
21542
+ this.getDependencyId(dependenceTree, ids);
21543
+ for (const parentId of ids) {
21544
+ const tree = this._dependencyMap.get(parentId);
21545
+ if (tree && tree.hasChild(dependenceTree) && tree.rangeList) {
21546
+ for (const rangeItem of tree.rangeList)
21547
+ if (rangeItem.gridRange.unitId === dependenceTree.unitId && rangeItem.gridRange.sheetId === dependenceTree.subUnitId) {
21548
+ tree.pushChildren(dependenceTree);
21549
+ break;
21550
+ }
21551
+ }
21552
+ tree && !tree.hasChild(dependenceTree) && tree.pushChildren(dependenceTree);
21553
+ }
21554
+ ids.clear(), ids = null;
21555
+ }
19976
21556
  /**
19977
21557
  * Determine whether range is dependent on other trees.
19978
21558
  * @param dependenceTree
@@ -20028,7 +21608,21 @@ const _DependencyManagerService = class _DependencyManagerService extends Dispos
20028
21608
  }
20029
21609
  buildDependencyTree(shouldBeBuildTrees, dependencyTrees) {
20030
21610
  const allTrees = this.getAllTree();
20031
- return shouldBeBuildTrees.length === 0 ? (this._buildReverseDependency(allTrees, dependencyTrees), allTrees) : (shouldBeBuildTrees instanceof FormulaDependencyTreeCache ? this._buildDependencyTree(allTrees, shouldBeBuildTrees, dependencyTrees || []) : this._buildDependencyTree(allTrees, shouldBeBuildTrees, shouldBeBuildTrees), allTrees);
21611
+ return shouldBeBuildTrees instanceof FormulaDependencyTreeCache ? this._buildDependencyTreeWithCache(allTrees, shouldBeBuildTrees, dependencyTrees || []) : this._buildDependencyTree(allTrees, shouldBeBuildTrees, shouldBeBuildTrees), allTrees;
21612
+ }
21613
+ _buildDependencyTreeWithCache(allTrees, formulaDependencyTreeCache, dependencyTrees) {
21614
+ const cache = new FormulaDependencyTreeCache();
21615
+ for (const tree of allTrees.concat(dependencyTrees)) {
21616
+ const rangeList = tree.rangeList;
21617
+ for (const range of rangeList)
21618
+ cache.add(range, tree), cache.addDependencyMap(tree);
21619
+ }
21620
+ const treeMap = cache.getDependencyMap();
21621
+ for (const tree of treeMap.values())
21622
+ cache.updateParent(tree);
21623
+ for (const tree of treeMap.values())
21624
+ cache.dependencyUseParentId(tree);
21625
+ cache.dispose();
20032
21626
  }
20033
21627
  /**
20034
21628
  * Build the dependency relationship between the trees.
@@ -20036,27 +21630,18 @@ const _DependencyManagerService = class _DependencyManagerService extends Dispos
20036
21630
  * @param shouldBeBuildTrees FormulaDependencyTree[] | FormulaDependencyTreeCache
20037
21631
  */
20038
21632
  _buildDependencyTree(allTrees, shouldBeBuildTrees, dependencyTrees) {
20039
- allTrees.forEach((tree) => {
20040
- shouldBeBuildTrees instanceof FormulaDependencyTreeCache ? shouldBeBuildTrees.dependency(tree) : shouldBeBuildTrees.forEach((shouldBeBuildTree) => {
20041
- if (tree === shouldBeBuildTree || shouldBeBuildTree.children.includes(tree))
20042
- return !0;
20043
- shouldBeBuildTree.dependency(tree) && shouldBeBuildTree.pushChildren(tree);
20044
- });
20045
- }), this._buildReverseDependency(allTrees, dependencyTrees);
20046
- }
20047
- /**
20048
- * Build the reverse dependency relationship between the trees.
20049
- * @param allTrees
20050
- * @param dependencyTrees
20051
- */
20052
- _buildReverseDependency(allTrees, dependencyTrees) {
20053
- allTrees.forEach((tree) => {
20054
- dependencyTrees == null || dependencyTrees.forEach((dependencyTree) => {
20055
- if (tree === dependencyTree || tree.children.includes(dependencyTree))
20056
- return !0;
20057
- tree.dependency(dependencyTree) && tree.pushChildren(dependencyTree);
20058
- });
20059
- });
21633
+ const cache = new FormulaDependencyTreeCache();
21634
+ for (const tree of allTrees.concat(shouldBeBuildTrees, dependencyTrees)) {
21635
+ const rangeList = tree.rangeList;
21636
+ for (const range of rangeList)
21637
+ cache.add(range, tree), cache.addDependencyMap(tree);
21638
+ }
21639
+ const treeMap = cache.getDependencyMap();
21640
+ for (const tree of treeMap.values())
21641
+ cache.updateParent(tree);
21642
+ for (const tree of treeMap.values())
21643
+ cache.dependencyUseParentId(tree);
21644
+ cache.dispose();
20060
21645
  }
20061
21646
  /**
20062
21647
  * Clear the dependency relationship of the tree.
@@ -20086,12 +21671,12 @@ const _DependencyManagerService = class _DependencyManagerService extends Dispos
20086
21671
  });
20087
21672
  }
20088
21673
  getOtherFormulaDependency(unitId, sheetId, formulaId) {
20089
- var _a25, _b;
20090
- return (_b = (_a25 = this._otherFormulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b[formulaId];
21674
+ var _a26, _b;
21675
+ return (_b = (_a26 = this._otherFormulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b[formulaId];
20091
21676
  }
20092
21677
  hasOtherFormulaDependency(unitId, sheetId, formulaId) {
20093
- var _a25, _b;
20094
- return ((_b = (_a25 = this._otherFormulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b[formulaId]) != null;
21678
+ var _a26, _b;
21679
+ return ((_b = (_a26 = this._otherFormulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b[formulaId]) != null;
20095
21680
  }
20096
21681
  addFeatureFormulaDependency(unitId, sheetId, featureId, dependencyTree) {
20097
21682
  this._featureFormulaData[unitId] || (this._featureFormulaData[unitId] = {}), this._featureFormulaData[unitId][sheetId] || (this._featureFormulaData[unitId][sheetId] = {}), this._featureFormulaData[unitId][sheetId][featureId] = dependencyTree;
@@ -20103,12 +21688,12 @@ const _DependencyManagerService = class _DependencyManagerService extends Dispos
20103
21688
  });
20104
21689
  }
20105
21690
  getFeatureFormulaDependency(unitId, sheetId, featureId) {
20106
- var _a25, _b;
20107
- return (_b = (_a25 = this._featureFormulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b[featureId];
21691
+ var _a26, _b;
21692
+ return (_b = (_a26 = this._featureFormulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b[featureId];
20108
21693
  }
20109
21694
  hasFeatureFormulaDependency(unitId, sheetId, featureId) {
20110
- var _a25, _b;
20111
- return ((_b = (_a25 = this._featureFormulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b[featureId]) != null;
21695
+ var _a26, _b;
21696
+ return ((_b = (_a26 = this._featureFormulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b[featureId]) != null;
20112
21697
  }
20113
21698
  addFormulaDependency(unitId, sheetId, row, column, dependencyTree) {
20114
21699
  this._formulaData[unitId] || (this._formulaData[unitId] = {}), this._formulaData[unitId][sheetId] || (this._formulaData[unitId][sheetId] = new ObjectMatrix()), this._formulaData[unitId][sheetId].setValue(row, column, dependencyTree);
@@ -20120,11 +21705,11 @@ const _DependencyManagerService = class _DependencyManagerService extends Dispos
20120
21705
  }
20121
21706
  }
20122
21707
  clearFormulaDependency(unitId, sheetId) {
20123
- this._formulaData[unitId] && this._formulaData[unitId][sheetId] && this._formulaData[unitId][sheetId].reset();
21708
+ sheetId && this._formulaData[unitId] && this._formulaData[unitId][sheetId] ? this._formulaData[unitId][sheetId].reset() : this._formulaData[unitId] && (this._formulaData[unitId] = null);
20124
21709
  }
20125
21710
  hasFormulaDependency(unitId, sheetId, row, column) {
20126
- var _a25, _b;
20127
- return ((_b = (_a25 = this._formulaData[unitId]) == null ? void 0 : _a25[sheetId]) == null ? void 0 : _b.getValue(row, column)) != null;
21711
+ var _a26, _b;
21712
+ return ((_b = (_a26 = this._formulaData[unitId]) == null ? void 0 : _a26[sheetId]) == null ? void 0 : _b.getValue(row, column)) != null;
20128
21713
  }
20129
21714
  };
20130
21715
  __name(_DependencyManagerService, "DependencyManagerService");
@@ -20138,8 +21723,8 @@ var __defProp$9 = Object.defineProperty, __getOwnPropDesc$9 = Object.getOwnPrope
20138
21723
  return kind && result && __defProp$9(target, key, result), result;
20139
21724
  }, "__decorateClass$9"), __decorateParam$9 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$9");
20140
21725
  const FORMULA_CACHE_LRU_COUNT = 1e5;
20141
- var _a15;
20142
- let FormulaDependencyGenerator = (_a15 = class extends Disposable {
21726
+ var _a16;
21727
+ let FormulaDependencyGenerator = (_a16 = class extends Disposable {
20143
21728
  constructor(_currentConfigService, _runtimeService, _otherFormulaManagerService, _featureCalculationManagerService, _interpreter, _astTreeBuilder, _lexer, _dependencyManagerService) {
20144
21729
  super();
20145
21730
  __publicField(this, "_updateRangeFlattenCache", /* @__PURE__ */ new Map());
@@ -20253,7 +21838,18 @@ let FormulaDependencyGenerator = (_a15 = class extends Disposable {
20253
21838
  if (this._dependencyManagerService.hasFormulaDependency(unitId, sheetId, row, column))
20254
21839
  return !0;
20255
21840
  const node = this._generateAstNode(unitId, formulaString, x, y), FDtree = new FormulaDependencyTree(), sheetItem = unitData[unitId][sheetId];
20256
- 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);
21841
+ FDtree.node = node, FDtree.formula = formulaString, FDtree.unitId = unitId, FDtree.subUnitId = sheetId, FDtree.row = row, FDtree.column = column;
21842
+ const range = {
21843
+ range: {
21844
+ startRow: row,
21845
+ startColumn: column,
21846
+ endRow: row,
21847
+ endColumn: column
21848
+ },
21849
+ unitId,
21850
+ sheetId
21851
+ };
21852
+ FDtree.anchorToken = serializeRangeToRefString({ ...range, sheetName: this._currentConfigService.getSheetName(unitId, sheetId) }), FDtree.rowCount = sheetItem.rowCount, FDtree.columnCount = sheetItem.columnCount, this._dependencyManagerService.addFormulaDependency(unitId, sheetId, row, column, FDtree), treeList.push(FDtree);
20257
21853
  });
20258
21854
  }
20259
21855
  }
@@ -20387,11 +21983,11 @@ let FormulaDependencyGenerator = (_a15 = class extends Disposable {
20387
21983
  const featureMap = this._featureCalculationManagerService.getReferenceExecutorMap();
20388
21984
  newTreeList.forEach((tree) => {
20389
21985
  tree.children = tree.children.filter((child) => {
20390
- var _a25, _b;
20391
- return child.featureId ? !((_b = (_a25 = featureMap.get(tree.unitId)) == null ? void 0 : _a25.get(tree.subUnitId)) != null && _b.has(child.featureId)) : !0;
21986
+ var _a26, _b;
21987
+ return child.featureId ? !((_b = (_a26 = featureMap.get(tree.unitId)) == null ? void 0 : _a26.get(tree.subUnitId)) != null && _b.has(child.featureId)) : !0;
20392
21988
  }), tree.parents = tree.parents.filter((parent) => {
20393
- var _a25, _b;
20394
- return parent.featureId ? !((_b = (_a25 = featureMap.get(tree.unitId)) == null ? void 0 : _a25.get(tree.subUnitId)) != null && _b.has(parent.featureId)) : !0;
21989
+ var _a26, _b;
21990
+ return parent.featureId ? !((_b = (_a26 = featureMap.get(tree.unitId)) == null ? void 0 : _a26.get(tree.subUnitId)) != null && _b.has(parent.featureId)) : !0;
20395
21991
  });
20396
21992
  });
20397
21993
  }
@@ -20426,21 +22022,21 @@ let FormulaDependencyGenerator = (_a15 = class extends Disposable {
20426
22022
  return dependencyTree;
20427
22023
  }
20428
22024
  _includeTreeFeature(tree) {
20429
- var _a25, _b;
22025
+ var _a26, _b;
20430
22026
  const unitId = tree.unitId, subUnitId = tree.subUnitId, featureId = tree.featureId;
20431
22027
  if (featureId != null) {
20432
22028
  const featureMap = this._currentConfigService.getDirtyUnitFeatureMap();
20433
- if (((_b = (_a25 = featureMap == null ? void 0 : featureMap[unitId]) == null ? void 0 : _a25[subUnitId]) == null ? void 0 : _b[featureId]) != null)
22029
+ if (((_b = (_a26 = featureMap == null ? void 0 : featureMap[unitId]) == null ? void 0 : _a26[subUnitId]) == null ? void 0 : _b[featureId]) != null)
20434
22030
  return !0;
20435
22031
  }
20436
22032
  return !1;
20437
22033
  }
20438
22034
  _includeOtherFormula(tree) {
20439
- var _a25, _b;
22035
+ var _a26, _b;
20440
22036
  const unitId = tree.unitId, subUnitId = tree.subUnitId, formulaId = tree.formulaId;
20441
22037
  if (formulaId != null) {
20442
22038
  const otherFormulaMap = this._currentConfigService.getDirtyUnitOtherFormulaMap();
20443
- if (((_b = (_a25 = otherFormulaMap == null ? void 0 : otherFormulaMap[unitId]) == null ? void 0 : _a25[subUnitId]) == null ? void 0 : _b[formulaId]) != null)
22039
+ if (((_b = (_a26 = otherFormulaMap == null ? void 0 : otherFormulaMap[unitId]) == null ? void 0 : _a26[subUnitId]) == null ? void 0 : _b[formulaId]) != null)
20444
22040
  return !0;
20445
22041
  }
20446
22042
  return !1;
@@ -20455,11 +22051,11 @@ let FormulaDependencyGenerator = (_a15 = class extends Disposable {
20455
22051
  * @param tree
20456
22052
  */
20457
22053
  _includeTree(tree) {
20458
- var _a25, _b, _c;
22054
+ var _a26, _b, _c;
20459
22055
  const unitId = tree.unitId, subUnitId = tree.subUnitId;
20460
22056
  if (this._includeTreeFeature(tree) === !0 || this._includeOtherFormula(tree) === !0 || this._includeDefinedName(tree) === !0)
20461
22057
  return !0;
20462
- const excludedCell = (_b = (_a25 = this._currentConfigService.getExcludedRange()) == null ? void 0 : _a25[unitId]) == null ? void 0 : _b[subUnitId];
22058
+ const excludedCell = (_b = (_a26 = this._currentConfigService.getExcludedRange()) == null ? void 0 : _a26[unitId]) == null ? void 0 : _b[subUnitId];
20463
22059
  let isExclude = !1;
20464
22060
  if (excludedCell == null || excludedCell.forValue((row, column) => {
20465
22061
  if (tree.row === row && tree.column === column)
@@ -20503,7 +22099,7 @@ let FormulaDependencyGenerator = (_a15 = class extends Disposable {
20503
22099
  }
20504
22100
  return formulaRunList.reverse();
20505
22101
  }
20506
- }, __name(_a15, "FormulaDependencyGenerator"), _a15);
22102
+ }, __name(_a16, "FormulaDependencyGenerator"), _a16);
20507
22103
  FormulaDependencyGenerator = __decorateClass$9([
20508
22104
  OnLifecycle(LifecycleStages.Rendered, FormulaDependencyGenerator),
20509
22105
  __decorateParam$9(0, IFormulaCurrentConfigService),
@@ -20521,8 +22117,8 @@ var __defProp$8 = Object.defineProperty, __getOwnPropDesc$8 = Object.getOwnPrope
20521
22117
  return kind && result && __defProp$8(target, key, result), result;
20522
22118
  }, "__decorateClass$8"), __decorateParam$8 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$8");
20523
22119
  const DEFAULT_CYCLE_REFERENCE_COUNT = 1;
20524
- var _a16;
20525
- let CalculateFormulaService = (_a16 = class extends Disposable {
22120
+ var _a17;
22121
+ let CalculateFormulaService = (_a17 = class extends Disposable {
20526
22122
  constructor(_configService, _lexer, _currentConfigService, _runtimeService, _formulaDependencyGenerator, _interpreter, _astTreeBuilder) {
20527
22123
  super();
20528
22124
  __publicField(this, "_executionStartListener$", new Subject());
@@ -20642,7 +22238,7 @@ let CalculateFormulaService = (_a16 = class extends Disposable {
20642
22238
  const astNode = this._astTreeBuilder.parse(lexerNode);
20643
22239
  astNode == null || astNode.serialize();
20644
22240
  }
20645
- }, __name(_a16, "CalculateFormulaService"), _a16);
22241
+ }, __name(_a17, "CalculateFormulaService"), _a17);
20646
22242
  CalculateFormulaService = __decorateClass$8([
20647
22243
  OnLifecycle(LifecycleStages.Rendered, CalculateFormulaService),
20648
22244
  __decorateParam$8(0, IConfigService),
@@ -20657,8 +22253,8 @@ var __defProp$7 = Object.defineProperty, __getOwnPropDesc$7 = Object.getOwnPrope
20657
22253
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
20658
22254
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
20659
22255
  return kind && result && __defProp$7(target, key, result), result;
20660
- }, "__decorateClass$7"), __decorateParam$7 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$7"), _a17;
20661
- let CalculateController = (_a17 = class extends Disposable {
22256
+ }, "__decorateClass$7"), __decorateParam$7 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$7"), _a18;
22257
+ let CalculateController = (_a18 = class extends Disposable {
20662
22258
  constructor(_commandService, _calculateFormulaService, _univerInstanceService, _formulaDataModel) {
20663
22259
  super(), this._commandService = _commandService, this._calculateFormulaService = _calculateFormulaService, this._univerInstanceService = _univerInstanceService, this._formulaDataModel = _formulaDataModel, this._initialize();
20664
22260
  }
@@ -20771,7 +22367,7 @@ let CalculateController = (_a17 = class extends Disposable {
20771
22367
  }
20772
22368
  );
20773
22369
  }
20774
- }, __name(_a17, "CalculateController"), _a17);
22370
+ }, __name(_a18, "CalculateController"), _a18);
20775
22371
  CalculateController = __decorateClass$7([
20776
22372
  OnLifecycle(LifecycleStages.Ready, CalculateController),
20777
22373
  __decorateParam$7(0, ICommandService),
@@ -20819,15 +22415,15 @@ const RegisterFunctionMutation = {
20819
22415
  id: "formula.mutation.set-super-table-option",
20820
22416
  type: CommandType.MUTATION,
20821
22417
  handler: /* @__PURE__ */ __name(() => !0, "handler")
20822
- };
22418
+ }, PLUGIN_CONFIG_KEY = "engine-formula.config", defaultPluginConfig = {};
20823
22419
  var __defProp$6 = Object.defineProperty, __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor, __decorateClass$6 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
20824
22420
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
20825
22421
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
20826
22422
  return kind && result && __defProp$6(target, key, result), result;
20827
- }, "__decorateClass$6"), __decorateParam$6 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$6"), _a18;
20828
- let FormulaController = (_a18 = class extends Disposable {
20829
- constructor(_function = [], _commandService, _functionService, _dataSyncPrimaryController) {
20830
- super(), this._function = _function, this._commandService = _commandService, this._functionService = _functionService, this._dataSyncPrimaryController = _dataSyncPrimaryController, this._initialize();
22423
+ }, "__decorateClass$6"), __decorateParam$6 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$6"), _a19;
22424
+ let FormulaController = (_a19 = class extends Disposable {
22425
+ constructor(_commandService, _functionService, _configService, _dataSyncPrimaryController) {
22426
+ super(), this._commandService = _commandService, this._functionService = _functionService, this._configService = _configService, this._dataSyncPrimaryController = _dataSyncPrimaryController, this._initialize();
20831
22427
  }
20832
22428
  _initialize() {
20833
22429
  this._registerCommands(), this._registerFunctions();
@@ -20851,12 +22447,13 @@ let FormulaController = (_a18 = class extends Disposable {
20851
22447
  SetSuperTableOptionMutation,
20852
22448
  RegisterFunctionMutation
20853
22449
  ].forEach((mutation) => {
20854
- var _a25;
20855
- this._commandService.registerCommand(mutation), (_a25 = this._dataSyncPrimaryController) == null || _a25.registerSyncingMutations(mutation);
22450
+ var _a26;
22451
+ this._commandService.registerCommand(mutation), (_a26 = this._dataSyncPrimaryController) == null || _a26.registerSyncingMutations(mutation);
20856
22452
  });
20857
22453
  }
20858
22454
  _registerFunctions() {
20859
- const functions = [
22455
+ var _a26;
22456
+ const config2 = this._configService.getConfig(PLUGIN_CONFIG_KEY), functions = [
20860
22457
  ...functionArray,
20861
22458
  ...functionCompatibility,
20862
22459
  ...functionCube,
@@ -20873,25 +22470,26 @@ let FormulaController = (_a18 = class extends Disposable {
20873
22470
  ...functionText,
20874
22471
  ...functionUniver,
20875
22472
  ...functionWeb
20876
- ].concat(this._function).map((registerObject) => {
22473
+ ].concat((_a26 = config2 == null ? void 0 : config2.function) != null ? _a26 : []).map((registerObject) => {
20877
22474
  const Func = registerObject[0], name = registerObject[1];
20878
22475
  return new Func(name);
20879
22476
  });
20880
22477
  this._functionService.registerExecutors(...functions);
20881
22478
  }
20882
- }, __name(_a18, "FormulaController"), _a18);
22479
+ }, __name(_a19, "FormulaController"), _a19);
20883
22480
  FormulaController = __decorateClass$6([
20884
22481
  OnLifecycle(LifecycleStages.Ready, FormulaController),
20885
- __decorateParam$6(1, ICommandService),
20886
- __decorateParam$6(2, IFunctionService),
22482
+ __decorateParam$6(0, ICommandService),
22483
+ __decorateParam$6(1, IFunctionService),
22484
+ __decorateParam$6(2, IConfigService),
20887
22485
  __decorateParam$6(3, Optional(DataSyncPrimaryController))
20888
22486
  ], FormulaController);
20889
22487
  var __defProp$5 = Object.defineProperty, __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor, __decorateClass$5 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
20890
22488
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
20891
22489
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
20892
22490
  return kind && result && __defProp$5(target, key, result), result;
20893
- }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5"), _a19;
20894
- let SetDefinedNameController = (_a19 = class extends Disposable {
22491
+ }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5"), _a20;
22492
+ let SetDefinedNameController = (_a20 = class extends Disposable {
20895
22493
  constructor(_commandService, _definedNamesService) {
20896
22494
  super(), this._commandService = _commandService, this._definedNamesService = _definedNamesService, this._initialize();
20897
22495
  }
@@ -20924,7 +22522,7 @@ let SetDefinedNameController = (_a19 = class extends Disposable {
20924
22522
  })
20925
22523
  );
20926
22524
  }
20927
- }, __name(_a19, "SetDefinedNameController"), _a19);
22525
+ }, __name(_a20, "SetDefinedNameController"), _a20);
20928
22526
  SetDefinedNameController = __decorateClass$5([
20929
22527
  OnLifecycle(LifecycleStages.Ready, SetDefinedNameController),
20930
22528
  __decorateParam$5(0, ICommandService),
@@ -20934,8 +22532,8 @@ var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPrope
20934
22532
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
20935
22533
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
20936
22534
  return kind && result && __defProp$4(target, key, result), result;
20937
- }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a20;
20938
- let SetFeatureCalculationController = (_a20 = class extends Disposable {
22535
+ }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a21;
22536
+ let SetFeatureCalculationController = (_a21 = class extends Disposable {
20939
22537
  constructor(_commandService, _featureCalculationManagerService) {
20940
22538
  super(), this._commandService = _commandService, this._featureCalculationManagerService = _featureCalculationManagerService, this._initialize();
20941
22539
  }
@@ -20961,7 +22559,7 @@ let SetFeatureCalculationController = (_a20 = class extends Disposable {
20961
22559
  })
20962
22560
  );
20963
22561
  }
20964
- }, __name(_a20, "SetFeatureCalculationController"), _a20);
22562
+ }, __name(_a21, "SetFeatureCalculationController"), _a21);
20965
22563
  SetFeatureCalculationController = __decorateClass$4([
20966
22564
  OnLifecycle(LifecycleStages.Ready, SetFeatureCalculationController),
20967
22565
  __decorateParam$4(0, ICommandService),
@@ -20971,8 +22569,8 @@ var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPrope
20971
22569
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
20972
22570
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
20973
22571
  return kind && result && __defProp$3(target, key, result), result;
20974
- }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a21;
20975
- let SetOtherFormulaController = (_a21 = class extends Disposable {
22572
+ }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a22;
22573
+ let SetOtherFormulaController = (_a22 = class extends Disposable {
20976
22574
  constructor(_commandService, _otherFormulaManagerService, _dependencyManagerService) {
20977
22575
  super(), this._commandService = _commandService, this._otherFormulaManagerService = _otherFormulaManagerService, this._dependencyManagerService = _dependencyManagerService, this._initialize();
20978
22576
  }
@@ -21000,7 +22598,7 @@ let SetOtherFormulaController = (_a21 = class extends Disposable {
21000
22598
  })
21001
22599
  );
21002
22600
  }
21003
- }, __name(_a21, "SetOtherFormulaController"), _a21);
22601
+ }, __name(_a22, "SetOtherFormulaController"), _a22);
21004
22602
  SetOtherFormulaController = __decorateClass$3([
21005
22603
  OnLifecycle(LifecycleStages.Ready, SetOtherFormulaController),
21006
22604
  __decorateParam$3(0, ICommandService),
@@ -21011,8 +22609,8 @@ var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPrope
21011
22609
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
21012
22610
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
21013
22611
  return kind && result && __defProp$2(target, key, result), result;
21014
- }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a22;
21015
- let SetSuperTableController = (_a22 = class extends Disposable {
22612
+ }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a23;
22613
+ let SetSuperTableController = (_a23 = class extends Disposable {
21016
22614
  constructor(_commandService, _superTableService) {
21017
22615
  super(), this._commandService = _commandService, this._superTableService = _superTableService, this._initialize();
21018
22616
  }
@@ -21044,7 +22642,7 @@ let SetSuperTableController = (_a22 = class extends Disposable {
21044
22642
  })
21045
22643
  );
21046
22644
  }
21047
- }, __name(_a22, "SetSuperTableController"), _a22);
22645
+ }, __name(_a23, "SetSuperTableController"), _a23);
21048
22646
  SetSuperTableController = __decorateClass$2([
21049
22647
  OnLifecycle(LifecycleStages.Ready, SetSuperTableController),
21050
22648
  __decorateParam$2(0, ICommandService),
@@ -21083,8 +22681,8 @@ var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPrope
21083
22681
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
21084
22682
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
21085
22683
  return kind && result && __defProp$1(target, key, result), result;
21086
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a23;
21087
- let SetDependencyController = (_a23 = class extends Disposable {
22684
+ }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a24;
22685
+ let SetDependencyController = (_a24 = class extends Disposable {
21088
22686
  constructor(_commandService, _dependencyManagerService, _featureCalculationManagerService) {
21089
22687
  super(), this._commandService = _commandService, this._dependencyManagerService = _dependencyManagerService, this._featureCalculationManagerService = _featureCalculationManagerService, this._initialize();
21090
22688
  }
@@ -21130,22 +22728,29 @@ let SetDependencyController = (_a23 = class extends Disposable {
21130
22728
  } else if (command.id === SetFormulaDataMutation.id) {
21131
22729
  const formulaData = command.params.formulaData;
21132
22730
  Object.keys(formulaData).forEach((unitId) => {
21133
- if (formulaData[unitId] == null)
21134
- return !0;
21135
- Object.keys(formulaData[unitId]).forEach((subUnitId) => {
21136
- const formulaDataItem = formulaData[unitId][subUnitId];
21137
- if (formulaDataItem == null)
21138
- return this._dependencyManagerService.clearFormulaDependency(unitId, subUnitId), !0;
21139
- new ObjectMatrix(formulaDataItem).forValue((row, column) => {
21140
- this._dependencyManagerService.removeFormulaDependency(unitId, subUnitId, row, column);
22731
+ const unitFormulaData = formulaData[unitId];
22732
+ if (unitFormulaData !== void 0) {
22733
+ if (unitFormulaData === null) {
22734
+ this._dependencyManagerService.clearFormulaDependency(unitId);
22735
+ return;
22736
+ }
22737
+ Object.keys(unitFormulaData).forEach((subUnitId) => {
22738
+ const formulaDataItem = unitFormulaData[subUnitId];
22739
+ if (formulaDataItem !== void 0) {
22740
+ if (formulaDataItem === null)
22741
+ return this._dependencyManagerService.clearFormulaDependency(unitId, subUnitId), !0;
22742
+ new ObjectMatrix(formulaDataItem).forValue((row, column) => {
22743
+ this._dependencyManagerService.removeFormulaDependency(unitId, subUnitId, row, column);
22744
+ });
22745
+ }
21141
22746
  });
21142
- });
22747
+ }
21143
22748
  });
21144
22749
  }
21145
22750
  })
21146
22751
  );
21147
22752
  }
21148
- }, __name(_a23, "SetDependencyController"), _a23);
22753
+ }, __name(_a24, "SetDependencyController"), _a24);
21149
22754
  SetDependencyController = __decorateClass$1([
21150
22755
  OnLifecycle(LifecycleStages.Ready, SetDependencyController),
21151
22756
  __decorateParam$1(0, ICommandService),
@@ -21158,17 +22763,19 @@ var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnProperty
21158
22763
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
21159
22764
  return kind && result && __defProp2(target, key, result), result;
21160
22765
  }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam");
21161
- const PLUGIN_NAME = "base-formula-engine";
21162
- var _a24;
21163
- let UniverFormulaEnginePlugin = (_a24 = class extends Plugin {
21164
- constructor(_config, _injector) {
21165
- super(), this._config = _config, this._injector = _injector;
22766
+ const PLUGIN_NAME = "UNIVER_ENGINE_FORMULA_PLUGIN";
22767
+ var _a25;
22768
+ let UniverFormulaEnginePlugin = (_a25 = class extends Plugin {
22769
+ constructor(_config = defaultPluginConfig, _injector, _configService) {
22770
+ super(), this._config = _config, this._injector = _injector, this._configService = _configService;
22771
+ const { ...rest } = this._config;
22772
+ this._configService.setConfig(PLUGIN_CONFIG_KEY, rest);
21166
22773
  }
21167
22774
  onStarting() {
21168
22775
  this._initialize();
21169
22776
  }
21170
22777
  _initialize() {
21171
- var _a25;
22778
+ var _a26;
21172
22779
  const dependencies = [
21173
22780
  // Services
21174
22781
  [IFunctionService, { useClass: FunctionService }],
@@ -21180,19 +22787,11 @@ let UniverFormulaEnginePlugin = (_a24 = class extends Plugin {
21180
22787
  // Engine
21181
22788
  [LexerTreeBuilder],
21182
22789
  //Controllers
21183
- [
21184
- FormulaController,
21185
- {
21186
- useFactory: /* @__PURE__ */ __name(() => {
21187
- var _a26;
21188
- return this._injector.createInstance(FormulaController, (_a26 = this._config) == null ? void 0 : _a26.function);
21189
- }, "useFactory")
21190
- }
21191
- ],
22790
+ [FormulaController],
21192
22791
  [SetDefinedNameController],
21193
22792
  [SetSuperTableController]
21194
22793
  ];
21195
- (_a25 = this._config) != null && _a25.notExecuteFormula || dependencies.push(
22794
+ (_a26 = this._config) != null && _a26.notExecuteFormula || dependencies.push(
21196
22795
  // Services
21197
22796
  [CalculateFormulaService],
21198
22797
  [IOtherFormulaManagerService, { useClass: OtherFormulaManagerService }],
@@ -21223,9 +22822,10 @@ let UniverFormulaEnginePlugin = (_a24 = class extends Plugin {
21223
22822
  [ValueNodeFactory]
21224
22823
  ), dependencies.forEach((dependency) => this._injector.add(dependency));
21225
22824
  }
21226
- }, __name(_a24, "UniverFormulaEnginePlugin"), __publicField(_a24, "pluginName", PLUGIN_NAME), _a24);
22825
+ }, __name(_a25, "UniverFormulaEnginePlugin"), __publicField(_a25, "pluginName", PLUGIN_NAME), _a25);
21227
22826
  UniverFormulaEnginePlugin = __decorateClass([
21228
- __decorateParam(1, Inject(Injector))
22827
+ __decorateParam(1, Inject(Injector)),
22828
+ __decorateParam(2, IConfigService)
21229
22829
  ], UniverFormulaEnginePlugin);
21230
22830
  export {
21231
22831
  ActiveDirtyManagerService,