@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.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +2101 -501
- package/lib/types/basics/__tests__/math.spec.d.ts +16 -0
- package/lib/types/basics/math.d.ts +21 -0
- package/lib/types/controller/config.schema.d.ts +10 -0
- package/lib/types/controller/formula.controller.d.ts +3 -5
- package/lib/types/controller/set-dependency.controller.d.ts +1 -1
- package/lib/types/engine/analysis/__tests__/create-command-test-bed.d.ts +6 -6
- package/lib/types/engine/dependency/dependency-tree.d.ts +22 -2
- package/lib/types/engine/dependency/range-block-util.d.ts +15 -0
- package/lib/types/engine/reference-object/base-reference-object.d.ts +6 -6
- package/lib/types/engine/value-object/array-value-object.d.ts +1 -1
- package/lib/types/engine/value-object/lambda-value-object.d.ts +3 -2
- package/lib/types/functions/__tests__/create-function-test-bed.d.ts +6 -6
- package/lib/types/functions/base-function.d.ts +1 -1
- package/lib/types/functions/information/isformula/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/information/isformula/index.d.ts +9 -0
- package/lib/types/functions/information/n/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/information/n/index.d.ts +7 -0
- package/lib/types/functions/information/na/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/information/na/index.d.ts +7 -0
- package/lib/types/functions/logical/bycol/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/logical/bycol/index.d.ts +7 -0
- package/lib/types/functions/logical/byrow/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/logical/byrow/index.d.ts +7 -0
- package/lib/types/functions/logical/function-map.d.ts +1 -1
- package/lib/types/functions/logical/map/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/logical/map/index.d.ts +8 -0
- package/lib/types/functions/logical/reduce/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/logical/reduce/index.d.ts +8 -0
- package/lib/types/functions/logical/scan/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/logical/scan/index.d.ts +8 -0
- package/lib/types/functions/lookup/drop/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/drop/index.d.ts +9 -0
- package/lib/types/functions/lookup/expand/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/expand/index.d.ts +9 -0
- package/lib/types/functions/lookup/function-map.d.ts +1 -1
- package/lib/types/functions/lookup/take/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/take/index.d.ts +9 -0
- package/lib/types/functions/lookup/tocol/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/tocol/index.d.ts +10 -0
- package/lib/types/functions/lookup/torow/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/torow/index.d.ts +10 -0
- package/lib/types/functions/lookup/wrapcols/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/wrapcols/index.d.ts +8 -0
- package/lib/types/functions/lookup/wraprows/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/wraprows/index.d.ts +8 -0
- package/lib/types/functions/math/combin/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/combin/index.d.ts +7 -0
- package/lib/types/functions/math/combina/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/combina/index.d.ts +7 -0
- package/lib/types/functions/math/fact/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/fact/index.d.ts +8 -0
- package/lib/types/functions/math/factdouble/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/factdouble/index.d.ts +8 -0
- package/lib/types/functions/math/gcd/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/gcd/index.d.ts +8 -0
- package/lib/types/functions/math/int/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/int/index.d.ts +8 -0
- package/lib/types/functions/math/lcm/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/lcm/index.d.ts +8 -0
- package/lib/types/functions/math/mdeterm/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/mdeterm/index.d.ts +7 -0
- package/lib/types/functions/math/minverse/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/minverse/index.d.ts +7 -0
- package/lib/types/functions/math/mmult/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/mmult/index.d.ts +9 -0
- package/lib/types/functions/math/mod/index.d.ts +1 -1
- package/lib/types/functions/math/multinomial/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/multinomial/index.d.ts +8 -0
- package/lib/types/functions/math/munit/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/munit/index.d.ts +8 -0
- package/lib/types/functions/math/quotient/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/quotient/index.d.ts +7 -0
- package/lib/types/functions/math/sequence/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/sequence/index.d.ts +8 -0
- package/lib/types/functions/math/seriessum/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/seriessum/index.d.ts +8 -0
- package/lib/types/functions/math/sign/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/math/sign/index.d.ts +8 -0
- package/lib/types/models/__tests__/create-command-test-bed.d.ts +6 -6
- package/lib/types/models/formula-data.model.d.ts +3 -2
- package/lib/types/plugin.d.ts +5 -10
- package/lib/types/services/active-dirty-manager.service.d.ts +1 -1
- package/lib/types/services/current-data.service.d.ts +1 -1
- package/lib/types/services/defined-names.service.d.ts +1 -1
- package/lib/types/services/dependency-manager.service.d.ts +5 -10
- package/lib/types/services/feature-calculation-manager.service.d.ts +1 -1
- package/lib/types/services/function.service.d.ts +1 -1
- package/lib/types/services/other-formula-manager.service.d.ts +1 -1
- package/lib/types/services/runtime.service.d.ts +1 -1
- package/lib/types/services/super-table.service.d.ts +1 -1
- package/lib/umd/index.js +2 -2
- 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,
|
|
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
|
|
117
|
+
var _a26;
|
|
118
118
|
this._children.forEach((node) => {
|
|
119
119
|
typeof node != "string" && node.dispose();
|
|
120
|
-
}), (
|
|
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
|
|
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 = (
|
|
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
|
|
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 = (
|
|
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
|
|
884
|
-
const parent = (
|
|
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
|
|
1234
|
-
return (_b = (
|
|
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
|
|
1238
|
-
return (_c = (_b = (
|
|
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
|
|
1262
|
-
const rowRange = (_b = (
|
|
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
|
|
1295
|
+
var _a26, _b;
|
|
1270
1296
|
if (column === -1 || rangeStartRow === -1 || rangeEndRow === -1)
|
|
1271
1297
|
return !1;
|
|
1272
|
-
const rowRange = (_b = (
|
|
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
|
|
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 = (
|
|
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
|
|
3877
|
-
return (
|
|
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
|
|
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(((
|
|
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
|
|
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(((
|
|
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
|
|
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 = (
|
|
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
|
|
4854
|
-
this._forcedSheetId = (
|
|
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
|
|
4918
|
-
return ((
|
|
4917
|
+
var _a26;
|
|
4918
|
+
return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.rowCount) || 0;
|
|
4919
4919
|
}
|
|
4920
4920
|
getActiveSheetColumnCount() {
|
|
4921
|
-
var
|
|
4922
|
-
return ((
|
|
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
|
|
4932
|
-
return ((
|
|
4931
|
+
var _a26;
|
|
4932
|
+
return ((_a26 = this.getCurrentActiveSheetData()) == null ? void 0 : _a26.rowData) || {};
|
|
4933
4933
|
}
|
|
4934
4934
|
getColumnData() {
|
|
4935
|
-
var
|
|
4936
|
-
return ((
|
|
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
|
|
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 ((
|
|
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
|
|
4989
|
-
return (
|
|
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
|
|
4996
|
-
return (_b = (
|
|
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
|
|
5000
|
-
return (_b = (
|
|
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
|
|
5004
|
-
return (_b = (
|
|
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
|
|
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 = (
|
|
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
|
|
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: ((
|
|
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
|
|
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: ((
|
|
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
|
|
5566
|
+
var _a26;
|
|
5567
5567
|
const nameMap = this._definedNames;
|
|
5568
|
-
return nameMap == null ? null : (
|
|
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
|
|
9610
|
-
result += redemption / (1 + yld / frequency) ** (
|
|
9611
|
-
for (let k = 2; 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
|
|
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) ** (
|
|
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 <=
|
|
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
|
|
9714
|
-
if (
|
|
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) ** (
|
|
9720
|
-
for (let k = 1; 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
|
|
12075
|
-
let result = (
|
|
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
|
|
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,
|
|
12970
|
-
const
|
|
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 (
|
|
12974
|
-
return
|
|
12975
|
-
const
|
|
12976
|
-
return
|
|
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
|
-
|
|
12979
|
-
|
|
12980
|
-
|
|
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
|
-
|
|
12983
|
-
const
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
12991
|
-
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
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
|
|
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(
|
|
13891
|
-
let
|
|
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
|
-
|
|
17369
|
-
|
|
17370
|
-
|
|
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 = (
|
|
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"),
|
|
17414
|
-
let FormulaDataModel = (
|
|
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
|
|
17429
|
-
const clearCellMatrixData = clearSheetData[sheetId], rangeMatrix = (_b = (
|
|
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
|
|
17437
|
-
const range = (
|
|
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
|
|
17455
|
-
const cellMatrixData = sheetData[sheetId], arrayFormulaRangeMatrix = new ObjectMatrix((
|
|
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
|
|
17495
|
-
const arrayFormula = new ObjectMatrix(sheetData[sheetId]), rangeMatrix = new ObjectMatrix((
|
|
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
|
|
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
|
-
(
|
|
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
|
|
17529
|
-
const cellMatrixData = (
|
|
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
|
|
17612
|
-
const arrayFormulaRange = (
|
|
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
|
|
17621
|
-
const arrayFormulaRange = (
|
|
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
|
|
17649
|
-
return (_d = (_c = (_b = (
|
|
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(
|
|
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
|
|
17795
|
-
(
|
|
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
|
|
19304
|
+
var _a26;
|
|
17805
19305
|
const nameMap = this._definedNameMap[unitId];
|
|
17806
|
-
return nameMap == null ? null : (
|
|
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
|
|
17810
|
-
return (
|
|
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"),
|
|
17827
|
-
let FormulaCurrentConfigService = (
|
|
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(
|
|
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"),
|
|
18035
|
-
let Lexer = (
|
|
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(
|
|
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 || {}),
|
|
18108
|
-
let FormulaRuntimeService = (
|
|
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
|
|
18290
|
-
const currentRow = rowIndex - startRow + row, currentColumn = columnIndex - startColumn + column, cell = (_b = (
|
|
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
|
|
18362
|
-
const { startRow, startColumn, endRow, endColumn } = arrayRange, unitData = this._currentConfigService.getUnitData(), unitArrayFormulaRange = (_c = (_b = (
|
|
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(
|
|
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
|
|
19924
|
+
var _a26;
|
|
18425
19925
|
this._children.forEach((node) => {
|
|
18426
19926
|
node.dispose();
|
|
18427
|
-
}), (
|
|
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
|
|
18660
|
-
let PrefixNodeFactory = (
|
|
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(
|
|
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
|
|
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: ((
|
|
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
|
|
18801
|
-
let FunctionNodeFactory = (
|
|
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
|
|
18826
|
-
return ((_b = (
|
|
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(
|
|
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"),
|
|
18841
|
-
let Interpreter = (
|
|
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(
|
|
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
|
|
19033
|
-
let LambdaNodeFactory = (
|
|
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(
|
|
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
|
|
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 = (
|
|
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
|
|
19187
|
-
let OperatorNodeFactory = (
|
|
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(
|
|
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
|
|
19225
|
-
(
|
|
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
|
|
19235
|
-
this._tableMap.get(unitId) == null && this._tableMap.set(unitId, /* @__PURE__ */ new Map()), (
|
|
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
|
|
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 = (
|
|
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
|
|
19317
|
-
let ReferenceNodeFactory = (
|
|
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
|
|
20828
|
+
var _a26, _b;
|
|
19326
20829
|
let isLexerNode = !1, tokenTrimPre, isPrepareMerge = !1;
|
|
19327
|
-
param instanceof LexerNode ? (isLexerNode = !0, tokenTrimPre = param.getToken().trim(), ((_b = (
|
|
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
|
|
19355
|
-
return ((_b = (
|
|
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(
|
|
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
|
|
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 = (
|
|
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
|
|
19402
|
-
let SuffixNodeFactory = (
|
|
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(
|
|
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
|
|
19453
|
-
let UnionNodeFactory = (
|
|
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(
|
|
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"),
|
|
19528
|
-
let AstTreeBuilder = (
|
|
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(
|
|
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
|
|
19716
|
-
(_b = (
|
|
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
|
|
19725
|
-
return (_b = (
|
|
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
|
|
19729
|
-
return !!((_b = (
|
|
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
|
|
21261
|
+
var _a26, _b, _c;
|
|
19759
21262
|
const { unitId, subUnitId, formulaId } = searchParam;
|
|
19760
|
-
(_c = (_b = (
|
|
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
|
|
21266
|
+
var _a26, _b;
|
|
19764
21267
|
const { unitId, subUnitId, formulaId } = searchParam;
|
|
19765
|
-
return (_b = (
|
|
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
|
|
21271
|
+
var _a26, _b;
|
|
19769
21272
|
const { unitId, subUnitId, formulaId } = searchParam;
|
|
19770
|
-
return ((_b = (
|
|
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(
|
|
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
|
|
19848
|
-
super.dispose(), this.children = [], this.rangeList = [], this.parents = [], (
|
|
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
|
|
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 (((
|
|
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)
|
|
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
|
|
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
|
-
|
|
20040
|
-
|
|
20041
|
-
|
|
20042
|
-
|
|
20043
|
-
|
|
20044
|
-
|
|
20045
|
-
|
|
20046
|
-
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
|
|
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
|
|
20090
|
-
return (_b = (
|
|
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
|
|
20094
|
-
return ((_b = (
|
|
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
|
|
20107
|
-
return (_b = (
|
|
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
|
|
20111
|
-
return ((_b = (
|
|
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]
|
|
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
|
|
20127
|
-
return ((_b = (
|
|
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
|
|
20142
|
-
let FormulaDependencyGenerator = (
|
|
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
|
|
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
|
|
20391
|
-
return child.featureId ? !((_b = (
|
|
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
|
|
20394
|
-
return parent.featureId ? !((_b = (
|
|
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
|
|
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 = (
|
|
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
|
|
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 = (
|
|
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
|
|
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 = (
|
|
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(
|
|
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
|
|
20525
|
-
let CalculateFormulaService = (
|
|
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(
|
|
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"),
|
|
20661
|
-
let CalculateController = (
|
|
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(
|
|
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"),
|
|
20828
|
-
let FormulaController = (
|
|
20829
|
-
constructor(
|
|
20830
|
-
super(), this.
|
|
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
|
|
20855
|
-
this._commandService.registerCommand(mutation), (
|
|
22450
|
+
var _a26;
|
|
22451
|
+
this._commandService.registerCommand(mutation), (_a26 = this._dataSyncPrimaryController) == null || _a26.registerSyncingMutations(mutation);
|
|
20856
22452
|
});
|
|
20857
22453
|
}
|
|
20858
22454
|
_registerFunctions() {
|
|
20859
|
-
|
|
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(
|
|
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(
|
|
22479
|
+
}, __name(_a19, "FormulaController"), _a19);
|
|
20883
22480
|
FormulaController = __decorateClass$6([
|
|
20884
22481
|
OnLifecycle(LifecycleStages.Ready, FormulaController),
|
|
20885
|
-
__decorateParam$6(
|
|
20886
|
-
__decorateParam$6(
|
|
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"),
|
|
20894
|
-
let SetDefinedNameController = (
|
|
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(
|
|
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"),
|
|
20938
|
-
let SetFeatureCalculationController = (
|
|
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(
|
|
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"),
|
|
20975
|
-
let SetOtherFormulaController = (
|
|
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(
|
|
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"),
|
|
21015
|
-
let SetSuperTableController = (
|
|
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(
|
|
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"),
|
|
21087
|
-
let SetDependencyController = (
|
|
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
|
-
|
|
21134
|
-
|
|
21135
|
-
|
|
21136
|
-
|
|
21137
|
-
|
|
21138
|
-
|
|
21139
|
-
|
|
21140
|
-
|
|
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(
|
|
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 = "
|
|
21162
|
-
var
|
|
21163
|
-
let UniverFormulaEnginePlugin = (
|
|
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
|
|
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
|
-
(
|
|
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(
|
|
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,
|