@univerjs/engine-formula 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/es/index.js +697 -436
  3. package/lib/types/engine/dependency/dependency-tree.d.ts +1 -1
  4. package/lib/types/engine/dependency/formula-dependency.d.ts +6 -1
  5. package/lib/types/functions/information/iseven/iseven.d.ts +2 -3
  6. package/lib/types/functions/information/isodd/isodd.d.ts +2 -3
  7. package/lib/types/functions/logical/false/__tests__/index.spec.d.ts +16 -0
  8. package/lib/types/functions/logical/false/index.d.ts +8 -0
  9. package/lib/types/functions/logical/function-map.d.ts +2 -2
  10. package/lib/types/functions/logical/ifna/__tests__/index.spec.d.ts +16 -0
  11. package/lib/types/functions/logical/ifna/index.d.ts +9 -0
  12. package/lib/types/functions/logical/ifs/__tests__/index.spec.d.ts +16 -0
  13. package/lib/types/functions/logical/ifs/index.d.ts +8 -0
  14. package/lib/types/functions/logical/not/__tests__/index.spec.d.ts +16 -0
  15. package/lib/types/functions/logical/not/index.d.ts +8 -0
  16. package/lib/types/functions/logical/switch/__tests__/index.spec.d.ts +16 -0
  17. package/lib/types/functions/logical/switch/index.d.ts +9 -0
  18. package/lib/types/functions/logical/true/__tests__/index.spec.d.ts +16 -0
  19. package/lib/types/functions/logical/true/index.d.ts +8 -0
  20. package/lib/types/functions/logical/xor/__tests__/index.spec.d.ts +16 -0
  21. package/lib/types/functions/logical/xor/index.d.ts +8 -0
  22. package/lib/types/functions/lookup/indirect/index.d.ts +1 -0
  23. package/lib/types/functions/statistical/function-map.d.ts +1 -1
  24. package/lib/types/services/feature-calculation-manager.service.d.ts +1 -2
  25. package/lib/umd/index.js +1 -1
  26. package/package.json +7 -7
package/lib/es/index.js CHANGED
@@ -6815,10 +6815,21 @@ const _Iseven = class _Iseven extends BaseFunction {
6815
6815
  }
6816
6816
  calculate(value) {
6817
6817
  let _value = value;
6818
- if (_value.isArray() || _value.isBoolean() || !_value.isNumber() && (_value = _value.convertToNumberObjectValue(), !_value.isNumber()))
6818
+ if (_value.isArray()) {
6819
+ const rowCount = _value.getRowCount(), columnCount = _value.getColumnCount();
6820
+ if (rowCount > 1 || columnCount > 1)
6821
+ return ErrorValueObject.create(ErrorType$1.VALUE);
6822
+ _value = _value.get(0, 0);
6823
+ }
6824
+ if (_value.isError())
6825
+ return _value;
6826
+ if (_value.isBoolean())
6827
+ return ErrorValueObject.create(ErrorType$1.VALUE);
6828
+ const val = Math.trunc(+_value.getValue());
6829
+ if (Number.isNaN(val))
6819
6830
  return ErrorValueObject.create(ErrorType$1.VALUE);
6820
- const val = _value.getValue(), floored = Math.floor(Math.abs(val));
6821
- return BooleanValueObject.create(floored % 2 === 0);
6831
+ const result = val % 2 === 0;
6832
+ return BooleanValueObject.create(result);
6822
6833
  }
6823
6834
  };
6824
6835
  __name(_Iseven, "Iseven");
@@ -6879,10 +6890,21 @@ const _Isodd = class _Isodd extends BaseFunction {
6879
6890
  }
6880
6891
  calculate(value) {
6881
6892
  let _value = value;
6882
- if (_value.isArray() || _value.isBoolean() || !_value.isNumber() && (_value = _value.convertToNumberObjectValue(), !_value.isNumber()))
6893
+ if (_value.isArray()) {
6894
+ const rowCount = _value.getRowCount(), columnCount = _value.getColumnCount();
6895
+ if (rowCount > 1 || columnCount > 1)
6896
+ return ErrorValueObject.create(ErrorType$1.VALUE);
6897
+ _value = _value.get(0, 0);
6898
+ }
6899
+ if (_value.isError())
6900
+ return _value;
6901
+ if (_value.isBoolean())
6883
6902
  return ErrorValueObject.create(ErrorType$1.VALUE);
6884
- const val = _value.getValue(), floored = Math.floor(Math.abs(val));
6885
- return BooleanValueObject.create(floored % 2 !== 0);
6903
+ const val = Math.trunc(+_value.getValue());
6904
+ if (Number.isNaN(val))
6905
+ return ErrorValueObject.create(ErrorType$1.VALUE);
6906
+ const result = val % 2 !== 0;
6907
+ return BooleanValueObject.create(result);
6886
6908
  }
6887
6909
  };
6888
6910
  __name(_Isodd, "Isodd");
@@ -6956,17 +6978,19 @@ const functionInformation = [
6956
6978
  [ErrorType, FUNCTION_NAMES_INFORMATION.ERROR_TYPE],
6957
6979
  [Isblank, FUNCTION_NAMES_INFORMATION.ISBLANK],
6958
6980
  [Iserr, FUNCTION_NAMES_INFORMATION.ISERR],
6959
- [Iseven, FUNCTION_NAMES_INFORMATION.ISEVEN],
6960
- [Isodd, FUNCTION_NAMES_INFORMATION.ISODD],
6961
6981
  [Iserror, FUNCTION_NAMES_INFORMATION.ISERROR],
6982
+ [Iseven, FUNCTION_NAMES_INFORMATION.ISEVEN],
6962
6983
  [Islogical, FUNCTION_NAMES_INFORMATION.ISLOGICAL],
6963
6984
  [Isna, FUNCTION_NAMES_INFORMATION.ISNA],
6964
6985
  [Isnontext, FUNCTION_NAMES_INFORMATION.ISNONTEXT],
6965
6986
  [Isnumber, FUNCTION_NAMES_INFORMATION.ISNUMBER],
6987
+ [Isodd, FUNCTION_NAMES_INFORMATION.ISODD],
6966
6988
  [Isref, FUNCTION_NAMES_INFORMATION.ISREF],
6967
6989
  [Istext, FUNCTION_NAMES_INFORMATION.ISTEXT],
6968
6990
  [Type, FUNCTION_NAMES_INFORMATION.TYPE]
6969
- ], _And = class _And extends BaseFunction {
6991
+ ];
6992
+ 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 || {});
6993
+ const _And = class _And extends BaseFunction {
6970
6994
  constructor() {
6971
6995
  super(...arguments);
6972
6996
  __publicField(this, "minParams", 1);
@@ -6991,7 +7015,18 @@ const functionInformation = [
6991
7015
  };
6992
7016
  __name(_And, "And");
6993
7017
  let And = _And;
6994
- 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 || {});
7018
+ const _False = class _False extends BaseFunction {
7019
+ constructor() {
7020
+ super(...arguments);
7021
+ __publicField(this, "minParams", 0);
7022
+ __publicField(this, "maxParams", 0);
7023
+ }
7024
+ calculate() {
7025
+ return BooleanValueObject.create(!1);
7026
+ }
7027
+ };
7028
+ __name(_False, "False");
7029
+ let False = _False;
6995
7030
  const _If = class _If extends BaseFunction {
6996
7031
  constructor() {
6997
7032
  super(...arguments);
@@ -7060,6 +7095,78 @@ const _Iferror = class _Iferror extends BaseFunction {
7060
7095
  };
7061
7096
  __name(_Iferror, "Iferror");
7062
7097
  let Iferror = _Iferror;
7098
+ const _Ifna = class _Ifna extends BaseFunction {
7099
+ constructor() {
7100
+ super(...arguments);
7101
+ __publicField(this, "minParams", 2);
7102
+ __publicField(this, "maxParams", 2);
7103
+ }
7104
+ calculate(value, valueIfNa) {
7105
+ if (value.isError() && value.getErrorType() !== ErrorType$1.NA)
7106
+ return value;
7107
+ if (valueIfNa.isError())
7108
+ return valueIfNa;
7109
+ if (!value.isArray())
7110
+ return value.isError() && value.getErrorType() === ErrorType$1.NA ? valueIfNa : value;
7111
+ const maxRowLength = Math.max(
7112
+ value.isArray() ? value.getRowCount() : 1,
7113
+ valueIfNa.isArray() ? valueIfNa.getRowCount() : 1
7114
+ ), maxColumnLength = Math.max(
7115
+ value.isArray() ? value.getColumnCount() : 1,
7116
+ valueIfNa.isArray() ? valueIfNa.getColumnCount() : 1
7117
+ ), valueArray = expandArrayValueObject(maxRowLength, maxColumnLength, value), valueIfNaArray = expandArrayValueObject(maxRowLength, maxColumnLength, valueIfNa);
7118
+ return valueArray.iterator((cellValue, rowIndex, columnIndex) => {
7119
+ cellValue != null && cellValue.isError() && cellValue.getErrorType() === ErrorType$1.NA && valueArray.set(rowIndex, columnIndex, valueIfNaArray.get(rowIndex, columnIndex));
7120
+ }), valueArray;
7121
+ }
7122
+ };
7123
+ __name(_Ifna, "Ifna");
7124
+ let Ifna = _Ifna;
7125
+ const _Ifs = class _Ifs extends BaseFunction {
7126
+ constructor() {
7127
+ super(...arguments);
7128
+ __publicField(this, "minParams", 2);
7129
+ __publicField(this, "maxParams", 255);
7130
+ }
7131
+ calculate(...params) {
7132
+ if (params.length % 2 !== 0)
7133
+ return ErrorValueObject.create(ErrorType$1.NA);
7134
+ for (let i = 0; i < params.length; i++)
7135
+ if (params[i].isError())
7136
+ return params[i];
7137
+ if (!params.some((param) => param.isArray())) {
7138
+ for (let i = 0; i < params.length; i += 2) {
7139
+ const condition = params[i], result = params[i + 1];
7140
+ if (condition.isNull())
7141
+ continue;
7142
+ if (condition.getValue())
7143
+ return result.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : result;
7144
+ }
7145
+ return ErrorValueObject.create(ErrorType$1.NA);
7146
+ }
7147
+ const maxRowLength = Math.max(
7148
+ ...params.map((param) => param.isArray() ? param.getRowCount() : 1)
7149
+ ), maxColumnLength = Math.max(
7150
+ ...params.map((param) => param.isArray() ? param.getColumnCount() : 1)
7151
+ ), expandedParams = params.map(
7152
+ (param) => expandArrayValueObject(maxRowLength, maxColumnLength, param, ErrorValueObject.create(ErrorType$1.NA))
7153
+ );
7154
+ return expandedParams[0].map((_, rowIndex, columnIndex) => {
7155
+ for (let i = 0; i < expandedParams.length; i += 2) {
7156
+ const condition = expandedParams[i].get(rowIndex, columnIndex) || NullValueObject.create(), result = expandedParams[i + 1].get(rowIndex, columnIndex) || NullValueObject.create();
7157
+ if (condition.isNull())
7158
+ continue;
7159
+ if (condition.isError())
7160
+ return condition;
7161
+ if (condition.getValue())
7162
+ return result.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : result;
7163
+ }
7164
+ return ErrorValueObject.create(ErrorType$1.NA);
7165
+ });
7166
+ }
7167
+ };
7168
+ __name(_Ifs, "Ifs");
7169
+ let Ifs = _Ifs;
7063
7170
  const _Lambda = class _Lambda extends BaseFunction {
7064
7171
  constructor() {
7065
7172
  super(...arguments);
@@ -7103,6 +7210,18 @@ const _Makearray = class _Makearray extends BaseFunction {
7103
7210
  };
7104
7211
  __name(_Makearray, "Makearray");
7105
7212
  let Makearray = _Makearray;
7213
+ const _Not = class _Not extends BaseFunction {
7214
+ constructor() {
7215
+ super(...arguments);
7216
+ __publicField(this, "minParams", 1);
7217
+ __publicField(this, "maxParams", 1);
7218
+ }
7219
+ calculate(logicalValue) {
7220
+ return logicalValue.isError() ? logicalValue : logicalValue.isArray() ? logicalValue.map((value) => value != null && value.isError() ? value : value != null && value.isBoolean() || value != null && value.isNumber() ? BooleanValueObject.create(!value.getValue()) : ErrorValueObject.create(ErrorType$1.VALUE)) : logicalValue.isBoolean() || logicalValue.isNumber() ? BooleanValueObject.create(!logicalValue.getValue()) : ErrorValueObject.create(ErrorType$1.VALUE);
7221
+ }
7222
+ };
7223
+ __name(_Not, "Not");
7224
+ let Not = _Not;
7106
7225
  const _Or = class _Or extends BaseFunction {
7107
7226
  constructor() {
7108
7227
  super(...arguments);
@@ -7128,13 +7247,109 @@ const _Or = class _Or extends BaseFunction {
7128
7247
  };
7129
7248
  __name(_Or, "Or");
7130
7249
  let Or = _Or;
7250
+ const _Switch = class _Switch extends BaseFunction {
7251
+ constructor() {
7252
+ super(...arguments);
7253
+ __publicField(this, "minParams", 3);
7254
+ }
7255
+ calculate(expression, ...args) {
7256
+ if (expression.isError())
7257
+ return expression;
7258
+ const hasDefault = args.length % 2 !== 0, defaultValue = hasDefault ? args[args.length - 1] : NullValueObject.create();
7259
+ return !expression.isArray() && !args.some((arg) => arg.isArray()) ? this._handleNonArrayInputs(expression, args, defaultValue, hasDefault) : this._handleArrayInputs(expression, args, defaultValue, hasDefault);
7260
+ }
7261
+ _handleNonArrayInputs(expression, args, defaultValue, hasDefault) {
7262
+ for (let i = 0; i < args.length - (hasDefault ? 1 : 0); i += 2) {
7263
+ const switchValue = args[i], resultValue = args[i + 1];
7264
+ if (!switchValue.isNull()) {
7265
+ if (switchValue.isError())
7266
+ return switchValue;
7267
+ if (expression.getValue() === switchValue.getValue())
7268
+ return resultValue.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : resultValue;
7269
+ }
7270
+ }
7271
+ return defaultValue.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : defaultValue;
7272
+ }
7273
+ _handleArrayInputs(expression, args, defaultValue, hasDefault) {
7274
+ const maxRowLength = Math.max(
7275
+ expression.isArray() ? expression.getRowCount() : 1,
7276
+ ...args.map((arg) => arg.isArray() ? arg.getRowCount() : 1),
7277
+ defaultValue.isArray() ? defaultValue.getRowCount() : 1
7278
+ ), maxColumnLength = Math.max(
7279
+ expression.isArray() ? expression.getColumnCount() : 1,
7280
+ ...args.map((arg) => arg.isArray() ? arg.getColumnCount() : 1),
7281
+ defaultValue.isArray() ? defaultValue.getColumnCount() : 1
7282
+ ), expandedExpression = expandArrayValueObject(maxRowLength, maxColumnLength, expression), expandedArgs = args.map(
7283
+ (arg) => expandArrayValueObject(maxRowLength, maxColumnLength, arg, ErrorValueObject.create(ErrorType$1.NA))
7284
+ ), expandedDefault = expandArrayValueObject(maxRowLength, maxColumnLength, defaultValue, ErrorValueObject.create(ErrorType$1.NA));
7285
+ return expandedExpression.map((expValue, rowIndex, columnIndex) => {
7286
+ for (let i = 0; i < expandedArgs.length - (hasDefault ? 1 : 0); i += 2) {
7287
+ const switchValue = expandedArgs[i].get(rowIndex, columnIndex) || NullValueObject.create(), resultValue = expandedArgs[i + 1].get(rowIndex, columnIndex) || NullValueObject.create();
7288
+ if (!switchValue.isNull()) {
7289
+ if (switchValue.isError() || expValue.isError())
7290
+ return switchValue.isError() ? switchValue : expValue;
7291
+ if (expValue.getValue() === switchValue.getValue())
7292
+ return resultValue.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : resultValue;
7293
+ }
7294
+ }
7295
+ const defaultCellValue = expandedDefault.get(rowIndex, columnIndex) || NullValueObject.create();
7296
+ return defaultCellValue.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : defaultCellValue;
7297
+ });
7298
+ }
7299
+ };
7300
+ __name(_Switch, "Switch");
7301
+ let Switch = _Switch;
7302
+ const _True = class _True extends BaseFunction {
7303
+ constructor() {
7304
+ super(...arguments);
7305
+ __publicField(this, "minParams", 0);
7306
+ __publicField(this, "maxParams", 0);
7307
+ }
7308
+ calculate() {
7309
+ return BooleanValueObject.create(!0);
7310
+ }
7311
+ };
7312
+ __name(_True, "True");
7313
+ let True = _True;
7314
+ const _Xor = class _Xor extends BaseFunction {
7315
+ constructor() {
7316
+ super(...arguments);
7317
+ __publicField(this, "minParams", 1);
7318
+ __publicField(this, "maxParams", 255);
7319
+ }
7320
+ calculate(...logicalValues) {
7321
+ let trueCount = 0, noBoolean = !0, errorValue = null;
7322
+ for (const logicalValue of logicalValues) {
7323
+ if (logicalValue.isError())
7324
+ return logicalValue;
7325
+ if (logicalValue.isArray()) {
7326
+ if (logicalValue.iterator((value) => {
7327
+ if (value != null && value.isError())
7328
+ return errorValue = value, !1;
7329
+ (value != null && value.isBoolean() || value != null && value.isNumber()) && (value.getValue() && trueCount++, noBoolean = !1);
7330
+ }), errorValue)
7331
+ return errorValue;
7332
+ } else (logicalValue.isBoolean() || logicalValue.isNumber()) && (logicalValue.getValue() && trueCount++, noBoolean = !1);
7333
+ }
7334
+ return noBoolean ? ErrorValueObject.create(ErrorType$1.VALUE) : BooleanValueObject.create(trueCount % 2 === 1);
7335
+ }
7336
+ };
7337
+ __name(_Xor, "Xor");
7338
+ let Xor = _Xor;
7131
7339
  const functionLogical = [
7132
7340
  [And, FUNCTION_NAMES_LOGICAL.AND],
7341
+ [False, FUNCTION_NAMES_LOGICAL.FALSE],
7133
7342
  [If, FUNCTION_NAMES_LOGICAL.IF],
7343
+ [Iferror, FUNCTION_NAMES_LOGICAL.IFERROR],
7344
+ [Ifna, FUNCTION_NAMES_LOGICAL.IFNA],
7345
+ [Ifs, FUNCTION_NAMES_LOGICAL.IFS],
7134
7346
  [Lambda, FUNCTION_NAMES_LOGICAL.LAMBDA],
7135
7347
  [Makearray, FUNCTION_NAMES_LOGICAL.MAKEARRAY],
7348
+ [Not, FUNCTION_NAMES_LOGICAL.NOT],
7136
7349
  [Or, FUNCTION_NAMES_LOGICAL.OR],
7137
- [Iferror, FUNCTION_NAMES_LOGICAL.IFERROR]
7350
+ [Switch, FUNCTION_NAMES_LOGICAL.SWITCH],
7351
+ [True, FUNCTION_NAMES_LOGICAL.TRUE],
7352
+ [Xor, FUNCTION_NAMES_LOGICAL.XOR]
7138
7353
  ];
7139
7354
  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 || {});
7140
7355
  const _Address = class _Address extends BaseFunction {
@@ -7535,20 +7750,26 @@ const _Indirect = class _Indirect extends BaseFunction {
7535
7750
  return !0;
7536
7751
  }
7537
7752
  calculate(refText, a1) {
7538
- let _refText = refText;
7539
- if (_refText.isError())
7540
- return _refText;
7753
+ if (refText.isError())
7754
+ return refText;
7755
+ if (a1 != null && a1.isError())
7756
+ return a1;
7541
7757
  let a1Value = this.getZeroOrOneByOneDefault(a1);
7542
- if (a1Value == null && (a1Value = 1), _refText.isArray()) {
7543
- const refTextArray = _refText;
7544
- if (refTextArray.getRowCount() === 1 && refTextArray.getColumnCount() === 1)
7545
- _refText = refTextArray.getFirstCell();
7546
- else
7547
- return refTextArray.map(() => ErrorValueObject.create(ErrorType$1.VALUE));
7758
+ a1Value == null && (a1Value = 1);
7759
+ let _refText = refText;
7760
+ if (refText.isArray()) {
7761
+ const rowCount = refText.getRowCount(), columnCount = refText.getColumnCount();
7762
+ if (rowCount > 1 || columnCount > 1)
7763
+ return refText.map(() => ErrorValueObject.create(ErrorType$1.VALUE));
7764
+ _refText = refText.getFirstCell();
7548
7765
  }
7549
- if (!_refText.isString())
7766
+ return this._handleSingleObject(_refText, a1Value);
7767
+ }
7768
+ _handleSingleObject(refTextObject, a1Value) {
7769
+ const refTextValue = `${refTextObject.getValue()}`;
7770
+ if (refTextValue.trim() === "")
7550
7771
  return ErrorValueObject.create(ErrorType$1.REF);
7551
- const refTextV = this._convertToDefinedName(_refText.getValue());
7772
+ const refTextV = this._convertToDefinedName(refTextValue);
7552
7773
  if (a1Value === 0) {
7553
7774
  const gridRange2 = deserializeRangeForR1C1(refTextV), { range: range2, sheetName: sheetName2, unitId: unitId2 } = gridRange2, rangeReferenceObject2 = new RangeReferenceObject(range2);
7554
7775
  return rangeReferenceObject2.setForcedUnitIdDirect(unitId2), rangeReferenceObject2.setForcedSheetName(sheetName2), this._setDefault(rangeReferenceObject2);
@@ -7559,7 +7780,10 @@ const _Indirect = class _Indirect extends BaseFunction {
7559
7780
  return this._setDefault(new RowReferenceObject(refTextV));
7560
7781
  if (new RegExp(REFERENCE_REGEX_COLUMN).test(refTextV))
7561
7782
  return this._setDefault(new ColumnReferenceObject(refTextV));
7562
- const gridRange = deserializeRangeWithSheet(refTextV), { range, sheetName, unitId } = gridRange, rangeReferenceObject = new RangeReferenceObject(range);
7783
+ const gridRange = deserializeRangeWithSheet(refTextV), { range, sheetName, unitId } = gridRange;
7784
+ if (Number.isNaN(range.startRow))
7785
+ return ErrorValueObject.create(ErrorType$1.REF);
7786
+ const rangeReferenceObject = new RangeReferenceObject(range);
7563
7787
  return rangeReferenceObject.setForcedUnitIdDirect(unitId), rangeReferenceObject.setForcedSheetName(sheetName), this._setDefault(rangeReferenceObject);
7564
7788
  }
7565
7789
  _setDefault(object) {
@@ -10050,6 +10274,75 @@ const _Sumifs = class _Sumifs extends BaseFunction {
10050
10274
  };
10051
10275
  __name(_Sumifs, "Sumifs");
10052
10276
  let Sumifs = _Sumifs;
10277
+ const _Sumproduct = class _Sumproduct extends BaseFunction {
10278
+ constructor() {
10279
+ super(...arguments);
10280
+ __publicField(this, "minParams", 1);
10281
+ __publicField(this, "maxParams", 255);
10282
+ }
10283
+ calculate(array1, ...variants) {
10284
+ if (array1.isError())
10285
+ return array1;
10286
+ const _array1 = this._initArray1(array1);
10287
+ if (variants.length > 0) {
10288
+ const rowCount = _array1.getRowCount(), columnCount = _array1.getColumnCount();
10289
+ let resultArray = this._getResultArrayByArray1(rowCount, columnCount, _array1);
10290
+ if (resultArray instanceof ErrorValueObject)
10291
+ return resultArray;
10292
+ resultArray = resultArray;
10293
+ for (let i = 0; i < variants.length; i++) {
10294
+ if (variants[i].isError())
10295
+ return variants[i];
10296
+ let variantRowCount = 1, variantColumnCount = 1;
10297
+ if (variants[i].isArray() && (variantRowCount = variants[i].getRowCount(), variantColumnCount = variants[i].getColumnCount()), variantRowCount !== rowCount || variantColumnCount !== columnCount)
10298
+ return ErrorValueObject.create(ErrorType$1.VALUE);
10299
+ for (let r = 0; r < rowCount; r++) {
10300
+ const row = [];
10301
+ for (let c = 0; c < columnCount; c++) {
10302
+ let variantValueObject = variants[i];
10303
+ if (variants[i].isArray() && (variantValueObject = variants[i].get(r, c)), variantValueObject.isError())
10304
+ return variantValueObject;
10305
+ const variantValue = variantValueObject.getValue();
10306
+ !variantValue || !isRealNum(variantValue) ? row.push(0) : row.push(+variantValue * resultArray[r][c]);
10307
+ }
10308
+ resultArray[r] = row;
10309
+ }
10310
+ }
10311
+ const result = resultArray.reduce((acc, cur) => acc.concat(cur)).reduce((acc, cur) => acc + cur, 0);
10312
+ return NumberValueObject.create(result);
10313
+ } else
10314
+ return _array1.sum();
10315
+ }
10316
+ _initArray1(array1) {
10317
+ let _array1 = array1;
10318
+ return _array1.isArray() || (_array1 = ArrayValueObject.create({
10319
+ calculateValueList: [[_array1]],
10320
+ rowCount: 1,
10321
+ columnCount: 1,
10322
+ unitId: "",
10323
+ sheetId: "",
10324
+ row: 0,
10325
+ column: 0
10326
+ })), _array1;
10327
+ }
10328
+ _getResultArrayByArray1(rowCount, columnCount, array1) {
10329
+ const resultArray = [];
10330
+ for (let r = 0; r < rowCount; r++) {
10331
+ const row = [];
10332
+ for (let c = 0; c < columnCount; c++) {
10333
+ const array1ValueObject = array1.get(r, c);
10334
+ if (array1ValueObject.isError())
10335
+ return array1ValueObject;
10336
+ const array1Value = array1ValueObject.getValue();
10337
+ !array1Value || !isRealNum(array1Value) ? row.push(0) : row.push(+array1Value);
10338
+ }
10339
+ resultArray.push(row);
10340
+ }
10341
+ return resultArray;
10342
+ }
10343
+ };
10344
+ __name(_Sumproduct, "Sumproduct");
10345
+ let Sumproduct = _Sumproduct;
10053
10346
  const _Sumsq = class _Sumsq extends BaseFunction {
10054
10347
  constructor() {
10055
10348
  super(...arguments);
@@ -10241,75 +10534,6 @@ const _Sumxmy2 = class _Sumxmy2 extends BaseFunction {
10241
10534
  };
10242
10535
  __name(_Sumxmy2, "Sumxmy2");
10243
10536
  let Sumxmy2 = _Sumxmy2;
10244
- const _Sumproduct = class _Sumproduct extends BaseFunction {
10245
- constructor() {
10246
- super(...arguments);
10247
- __publicField(this, "minParams", 1);
10248
- __publicField(this, "maxParams", 255);
10249
- }
10250
- calculate(array1, ...variants) {
10251
- if (array1.isError())
10252
- return array1;
10253
- const _array1 = this._initArray1(array1);
10254
- if (variants.length > 0) {
10255
- const rowCount = _array1.getRowCount(), columnCount = _array1.getColumnCount();
10256
- let resultArray = this._getResultArrayByArray1(rowCount, columnCount, _array1);
10257
- if (resultArray instanceof ErrorValueObject)
10258
- return resultArray;
10259
- resultArray = resultArray;
10260
- for (let i = 0; i < variants.length; i++) {
10261
- if (variants[i].isError())
10262
- return variants[i];
10263
- let variantRowCount = 1, variantColumnCount = 1;
10264
- if (variants[i].isArray() && (variantRowCount = variants[i].getRowCount(), variantColumnCount = variants[i].getColumnCount()), variantRowCount !== rowCount || variantColumnCount !== columnCount)
10265
- return ErrorValueObject.create(ErrorType$1.VALUE);
10266
- for (let r = 0; r < rowCount; r++) {
10267
- const row = [];
10268
- for (let c = 0; c < columnCount; c++) {
10269
- let variantValueObject = variants[i];
10270
- if (variants[i].isArray() && (variantValueObject = variants[i].get(r, c)), variantValueObject.isError())
10271
- return variantValueObject;
10272
- const variantValue = variantValueObject.getValue();
10273
- !variantValue || !isRealNum(variantValue) ? row.push(0) : row.push(+variantValue * resultArray[r][c]);
10274
- }
10275
- resultArray[r] = row;
10276
- }
10277
- }
10278
- const result = resultArray.reduce((acc, cur) => acc.concat(cur)).reduce((acc, cur) => acc + cur, 0);
10279
- return NumberValueObject.create(result);
10280
- } else
10281
- return _array1.sum();
10282
- }
10283
- _initArray1(array1) {
10284
- let _array1 = array1;
10285
- return _array1.isArray() || (_array1 = ArrayValueObject.create({
10286
- calculateValueList: [[_array1]],
10287
- rowCount: 1,
10288
- columnCount: 1,
10289
- unitId: "",
10290
- sheetId: "",
10291
- row: 0,
10292
- column: 0
10293
- })), _array1;
10294
- }
10295
- _getResultArrayByArray1(rowCount, columnCount, array1) {
10296
- const resultArray = [];
10297
- for (let r = 0; r < rowCount; r++) {
10298
- const row = [];
10299
- for (let c = 0; c < columnCount; c++) {
10300
- const array1ValueObject = array1.get(r, c);
10301
- if (array1ValueObject.isError())
10302
- return array1ValueObject;
10303
- const array1Value = array1ValueObject.getValue();
10304
- !array1Value || !isRealNum(array1Value) ? row.push(0) : row.push(+array1Value);
10305
- }
10306
- resultArray.push(row);
10307
- }
10308
- return resultArray;
10309
- }
10310
- };
10311
- __name(_Sumproduct, "Sumproduct");
10312
- let Sumproduct = _Sumproduct;
10313
10537
  const _Tan = class _Tan extends BaseFunction {
10314
10538
  constructor() {
10315
10539
  super(...arguments);
@@ -10391,14 +10615,14 @@ const functionMath = [
10391
10615
  [Floor, FUNCTION_NAMES_MATH.FLOOR],
10392
10616
  [FloorMath, FUNCTION_NAMES_MATH.FLOOR_MATH],
10393
10617
  [FloorPrecise, FUNCTION_NAMES_MATH.FLOOR_PRECISE],
10394
- [Log, FUNCTION_NAMES_MATH.LOG],
10395
10618
  [Ln, FUNCTION_NAMES_MATH.LN],
10619
+ [Log, FUNCTION_NAMES_MATH.LOG],
10396
10620
  [Log10, FUNCTION_NAMES_MATH.LOG10],
10397
10621
  [Mod, FUNCTION_NAMES_MATH.MOD],
10398
10622
  [Mround, FUNCTION_NAMES_MATH.MROUND],
10399
- [Power, FUNCTION_NAMES_MATH.POWER],
10400
10623
  [Odd, FUNCTION_NAMES_MATH.ODD],
10401
10624
  [Pi, FUNCTION_NAMES_MATH.PI],
10625
+ [Power, FUNCTION_NAMES_MATH.POWER],
10402
10626
  [Product, FUNCTION_NAMES_MATH.PRODUCT],
10403
10627
  [Radians, FUNCTION_NAMES_MATH.RADIANS],
10404
10628
  [Rand, FUNCTION_NAMES_MATH.RAND],
@@ -10417,11 +10641,11 @@ const functionMath = [
10417
10641
  [Sum, FUNCTION_NAMES_MATH.SUM],
10418
10642
  [Sumif, FUNCTION_NAMES_MATH.SUMIF],
10419
10643
  [Sumifs, FUNCTION_NAMES_MATH.SUMIFS],
10644
+ [Sumproduct, FUNCTION_NAMES_MATH.SUMPRODUCT],
10420
10645
  [Sumsq, FUNCTION_NAMES_MATH.SUMSQ],
10421
10646
  [Sumx2my2, FUNCTION_NAMES_MATH.SUMX2MY2],
10422
10647
  [Sumx2py2, FUNCTION_NAMES_MATH.SUMX2PY2],
10423
10648
  [Sumxmy2, FUNCTION_NAMES_MATH.SUMXMY2],
10424
- [Sumproduct, FUNCTION_NAMES_MATH.SUMPRODUCT],
10425
10649
  [Tan, FUNCTION_NAMES_MATH.TAN],
10426
10650
  [Tanh, FUNCTION_NAMES_MATH.TANH],
10427
10651
  [Trunc, FUNCTION_NAMES_MATH.TRUNC]
@@ -10571,7 +10795,9 @@ const functionMeta = [
10571
10795
  [Multiply, FUNCTION_NAMES_META.MULTIPLY],
10572
10796
  [Plus, FUNCTION_NAMES_META.PLUS],
10573
10797
  [Cube, FUNCTION_NAMES_META.CUBE]
10574
- ], _Average = class _Average extends BaseFunction {
10798
+ ];
10799
+ var FUNCTION_NAMES_STATISTICAL = /* @__PURE__ */ ((FUNCTION_NAMES_STATISTICAL2) => (FUNCTION_NAMES_STATISTICAL2.AVEDEV = "AVEDEV", FUNCTION_NAMES_STATISTICAL2.AVERAGE = "AVERAGE", FUNCTION_NAMES_STATISTICAL2.AVERAGEA = "AVERAGEA", FUNCTION_NAMES_STATISTICAL2.AVERAGEIF = "AVERAGEIF", FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS = "AVERAGEIFS", FUNCTION_NAMES_STATISTICAL2.BETA_DIST = "BETA.DIST", FUNCTION_NAMES_STATISTICAL2.BETA_INV = "BETA.INV", FUNCTION_NAMES_STATISTICAL2.BINOM_DIST = "BINOM.DIST", FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE = "BINOM.DIST.RANGE", FUNCTION_NAMES_STATISTICAL2.BINOM_INV = "BINOM.INV", FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST = "CHISQ.DIST", FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT = "CHISQ.DIST.RT", FUNCTION_NAMES_STATISTICAL2.CHISQ_INV = "CHISQ.INV", FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT = "CHISQ.INV.RT", FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST = "CHISQ.TEST", FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM = "CONFIDENCE.NORM", FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T = "CONFIDENCE.T", FUNCTION_NAMES_STATISTICAL2.CORREL = "CORREL", FUNCTION_NAMES_STATISTICAL2.COUNT = "COUNT", FUNCTION_NAMES_STATISTICAL2.COUNTA = "COUNTA", FUNCTION_NAMES_STATISTICAL2.COUNTBLANK = "COUNTBLANK", FUNCTION_NAMES_STATISTICAL2.COUNTIF = "COUNTIF", FUNCTION_NAMES_STATISTICAL2.COUNTIFS = "COUNTIFS", FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P = "COVARIANCE.P", FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S = "COVARIANCE.S", FUNCTION_NAMES_STATISTICAL2.DEVSQ = "DEVSQ", FUNCTION_NAMES_STATISTICAL2.EXPON_DIST = "EXPON.DIST", FUNCTION_NAMES_STATISTICAL2.F_DIST = "F.DIST", FUNCTION_NAMES_STATISTICAL2.F_DIST_RT = "F.DIST.RT", FUNCTION_NAMES_STATISTICAL2.F_INV = "F.INV", FUNCTION_NAMES_STATISTICAL2.F_INV_RT = "F.INV.RT", FUNCTION_NAMES_STATISTICAL2.F_TEST = "F.TEST", FUNCTION_NAMES_STATISTICAL2.FISHER = "FISHER", FUNCTION_NAMES_STATISTICAL2.FISHERINV = "FISHERINV", FUNCTION_NAMES_STATISTICAL2.FORECAST = "FORECAST", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS = "FORECAST.ETS", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT = "FORECAST.ETS.CONFINT", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY = "FORECAST.ETS.SEASONALITY", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT = "FORECAST.ETS.STAT", FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR = "FORECAST.LINEAR", FUNCTION_NAMES_STATISTICAL2.FREQUENCY = "FREQUENCY", FUNCTION_NAMES_STATISTICAL2.GAMMA = "GAMMA", FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST = "GAMMA.DIST", FUNCTION_NAMES_STATISTICAL2.GAMMA_INV = "GAMMA.INV", FUNCTION_NAMES_STATISTICAL2.GAMMALN = "GAMMALN", FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE = "GAMMALN.PRECISE", FUNCTION_NAMES_STATISTICAL2.GAUSS = "GAUSS", FUNCTION_NAMES_STATISTICAL2.GEOMEAN = "GEOMEAN", FUNCTION_NAMES_STATISTICAL2.GROWTH = "GROWTH", FUNCTION_NAMES_STATISTICAL2.HARMEAN = "HARMEAN", FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST = "HYPGEOM.DIST", FUNCTION_NAMES_STATISTICAL2.INTERCEPT = "INTERCEPT", FUNCTION_NAMES_STATISTICAL2.KURT = "KURT", FUNCTION_NAMES_STATISTICAL2.LARGE = "LARGE", FUNCTION_NAMES_STATISTICAL2.LINEST = "LINEST", FUNCTION_NAMES_STATISTICAL2.LOGEST = "LOGEST", FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST = "LOGNORM.DIST", FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV = "LOGNORM.INV", FUNCTION_NAMES_STATISTICAL2.MAX = "MAX", FUNCTION_NAMES_STATISTICAL2.MAXA = "MAXA", FUNCTION_NAMES_STATISTICAL2.MAXIFS = "MAXIFS", FUNCTION_NAMES_STATISTICAL2.MEDIAN = "MEDIAN", FUNCTION_NAMES_STATISTICAL2.MIN = "MIN", FUNCTION_NAMES_STATISTICAL2.MINA = "MINA", FUNCTION_NAMES_STATISTICAL2.MINIFS = "MINIFS", FUNCTION_NAMES_STATISTICAL2.MODE_MULT = "MODE.MULT", FUNCTION_NAMES_STATISTICAL2.MODE_SNGL = "MODE.SNGL", FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST = "NEGBINOM.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_DIST = "NORM.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_INV = "NORM.INV", FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST = "NORM.S.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_S_INV = "NORM.S.INV", FUNCTION_NAMES_STATISTICAL2.PEARSON = "PEARSON", FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC = "PERCENTILE.EXC", FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC = "PERCENTILE.INC", FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC = "PERCENTRANK.EXC", FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC = "PERCENTRANK.INC", FUNCTION_NAMES_STATISTICAL2.PERMUT = "PERMUT", FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA = "PERMUTATIONA", FUNCTION_NAMES_STATISTICAL2.PHI = "PHI", FUNCTION_NAMES_STATISTICAL2.POISSON_DIST = "POISSON.DIST", FUNCTION_NAMES_STATISTICAL2.PROB = "PROB", FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC = "QUARTILE.EXC", FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC = "QUARTILE.INC", FUNCTION_NAMES_STATISTICAL2.RANK_AVG = "RANK.AVG", FUNCTION_NAMES_STATISTICAL2.RANK_EQ = "RANK.EQ", FUNCTION_NAMES_STATISTICAL2.RSQ = "RSQ", FUNCTION_NAMES_STATISTICAL2.SKEW = "SKEW", FUNCTION_NAMES_STATISTICAL2.SKEW_P = "SKEW.P", FUNCTION_NAMES_STATISTICAL2.SLOPE = "SLOPE", FUNCTION_NAMES_STATISTICAL2.SMALL = "SMALL", FUNCTION_NAMES_STATISTICAL2.STANDARDIZE = "STANDARDIZE", FUNCTION_NAMES_STATISTICAL2.STDEV_P = "STDEV.P", FUNCTION_NAMES_STATISTICAL2.STDEV_S = "STDEV.S", FUNCTION_NAMES_STATISTICAL2.STDEVA = "STDEVA", FUNCTION_NAMES_STATISTICAL2.STDEVPA = "STDEVPA", FUNCTION_NAMES_STATISTICAL2.STEYX = "STEYX", FUNCTION_NAMES_STATISTICAL2.T_DIST = "T.DIST", FUNCTION_NAMES_STATISTICAL2.T_DIST_2T = "T.DIST.2T", FUNCTION_NAMES_STATISTICAL2.T_DIST_RT = "T.DIST.RT", FUNCTION_NAMES_STATISTICAL2.T_INV = "T.INV", FUNCTION_NAMES_STATISTICAL2.T_INV_2T = "T.INV.2T", FUNCTION_NAMES_STATISTICAL2.T_TEST = "T.TEST", FUNCTION_NAMES_STATISTICAL2.TREND = "TREND", FUNCTION_NAMES_STATISTICAL2.TRIMMEAN = "TRIMMEAN", FUNCTION_NAMES_STATISTICAL2.VAR_P = "VAR.P", FUNCTION_NAMES_STATISTICAL2.VAR_S = "VAR.S", FUNCTION_NAMES_STATISTICAL2.VARA = "VARA", FUNCTION_NAMES_STATISTICAL2.VARPA = "VARPA", FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST = "WEIBULL.DIST", FUNCTION_NAMES_STATISTICAL2.Z_TEST = "Z.TEST", FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL || {});
10800
+ const _Avedev = class _Avedev extends BaseFunction {
10575
10801
  constructor() {
10576
10802
  super(...arguments);
10577
10803
  __publicField(this, "minParams", 1);
@@ -10581,197 +10807,70 @@ const functionMeta = [
10581
10807
  let accumulatorSum = NumberValueObject.create(0), accumulatorCount = NumberValueObject.create(0);
10582
10808
  for (let i = 0; i < variants.length; i++) {
10583
10809
  let variant = variants[i];
10584
- if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isError())
10810
+ if (variant.isString() && (variant = variant.convertToNumberObjectValue()), variant.isError())
10585
10811
  return variant;
10586
10812
  if (variant.isArray()) {
10587
- if (accumulatorSum = accumulatorSum.plus(variant.sum()), accumulatorSum.isError())
10813
+ if (variant = filterNumberValueObject(variant), variant.isError())
10814
+ return variant;
10815
+ if (variants[i] = variant, accumulatorSum = accumulatorSum.plus(variant.sum()), accumulatorSum.isError())
10588
10816
  return accumulatorSum;
10589
10817
  accumulatorCount = accumulatorCount.plus(variant.count());
10590
10818
  } else variant.isNull() || (accumulatorSum = accumulatorSum.plus(variant), accumulatorCount = accumulatorCount.plus(NumberValueObject.create(1)));
10591
10819
  }
10592
- return accumulatorSum.divided(accumulatorCount);
10593
- }
10594
- };
10595
- __name(_Average, "Average");
10596
- let Average = _Average;
10597
- const _Count = class _Count extends BaseFunction {
10598
- constructor() {
10599
- super(...arguments);
10600
- __publicField(this, "minParams", 1);
10601
- __publicField(this, "maxParams", 255);
10602
- }
10603
- calculate(...variants) {
10604
- let accumulatorAll = NumberValueObject.create(0);
10605
- for (let i = 0; i < variants.length; i++) {
10606
- const variant = variants[i];
10607
- variant.isError() || (variant.isArray() ? accumulatorAll = accumulatorAll.plus(variant.count()) : variant.isString() ? variant.convertToNumberObjectValue().isError() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1))) : variant.isNull() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1))));
10608
- }
10609
- return accumulatorAll;
10610
- }
10611
- };
10612
- __name(_Count, "Count");
10613
- let Count = _Count;
10614
- const _Counta = class _Counta extends BaseFunction {
10615
- constructor() {
10616
- super(...arguments);
10617
- __publicField(this, "minParams", 1);
10618
- __publicField(this, "maxParams", 255);
10619
- }
10620
- calculate(...variants) {
10621
- let accumulatorAll = NumberValueObject.create(0);
10622
- for (let i = 0; i < variants.length; i++) {
10623
- let variant = variants[i];
10624
- if (variant.isError()) {
10625
- accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1));
10626
- continue;
10627
- }
10628
- variant.isArray() ? (variant = variant.countA(), accumulatorAll = accumulatorAll.plus(variant)) : variant.isNull() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1)));
10629
- }
10630
- return accumulatorAll;
10631
- }
10632
- };
10633
- __name(_Counta, "Counta");
10634
- let Counta = _Counta;
10635
- var FUNCTION_NAMES_STATISTICAL = /* @__PURE__ */ ((FUNCTION_NAMES_STATISTICAL2) => (FUNCTION_NAMES_STATISTICAL2.AVEDEV = "AVEDEV", FUNCTION_NAMES_STATISTICAL2.AVERAGE = "AVERAGE", FUNCTION_NAMES_STATISTICAL2.AVERAGEA = "AVERAGEA", FUNCTION_NAMES_STATISTICAL2.AVERAGEIF = "AVERAGEIF", FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS = "AVERAGEIFS", FUNCTION_NAMES_STATISTICAL2.BETA_DIST = "BETA.DIST", FUNCTION_NAMES_STATISTICAL2.BETA_INV = "BETA.INV", FUNCTION_NAMES_STATISTICAL2.BINOM_DIST = "BINOM.DIST", FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE = "BINOM.DIST.RANGE", FUNCTION_NAMES_STATISTICAL2.BINOM_INV = "BINOM.INV", FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST = "CHISQ.DIST", FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT = "CHISQ.DIST.RT", FUNCTION_NAMES_STATISTICAL2.CHISQ_INV = "CHISQ.INV", FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT = "CHISQ.INV.RT", FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST = "CHISQ.TEST", FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM = "CONFIDENCE.NORM", FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T = "CONFIDENCE.T", FUNCTION_NAMES_STATISTICAL2.CORREL = "CORREL", FUNCTION_NAMES_STATISTICAL2.COUNT = "COUNT", FUNCTION_NAMES_STATISTICAL2.COUNTA = "COUNTA", FUNCTION_NAMES_STATISTICAL2.COUNTBLANK = "COUNTBLANK", FUNCTION_NAMES_STATISTICAL2.COUNTIF = "COUNTIF", FUNCTION_NAMES_STATISTICAL2.COUNTIFS = "COUNTIFS", FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P = "COVARIANCE.P", FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S = "COVARIANCE.S", FUNCTION_NAMES_STATISTICAL2.DEVSQ = "DEVSQ", FUNCTION_NAMES_STATISTICAL2.EXPON_DIST = "EXPON.DIST", FUNCTION_NAMES_STATISTICAL2.F_DIST = "F.DIST", FUNCTION_NAMES_STATISTICAL2.F_DIST_RT = "F.DIST.RT", FUNCTION_NAMES_STATISTICAL2.F_INV = "F.INV", FUNCTION_NAMES_STATISTICAL2.F_INV_RT = "F.INV.RT", FUNCTION_NAMES_STATISTICAL2.F_TEST = "F.TEST", FUNCTION_NAMES_STATISTICAL2.FISHER = "FISHER", FUNCTION_NAMES_STATISTICAL2.FISHERINV = "FISHERINV", FUNCTION_NAMES_STATISTICAL2.FORECAST = "FORECAST", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS = "FORECAST.ETS", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT = "FORECAST.ETS.CONFINT", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY = "FORECAST.ETS.SEASONALITY", FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT = "FORECAST.ETS.STAT", FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR = "FORECAST.LINEAR", FUNCTION_NAMES_STATISTICAL2.FREQUENCY = "FREQUENCY", FUNCTION_NAMES_STATISTICAL2.GAMMA = "GAMMA", FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST = "GAMMA.DIST", FUNCTION_NAMES_STATISTICAL2.GAMMA_INV = "GAMMA.INV", FUNCTION_NAMES_STATISTICAL2.GAMMALN = "GAMMALN", FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE = "GAMMALN.PRECISE", FUNCTION_NAMES_STATISTICAL2.GAUSS = "GAUSS", FUNCTION_NAMES_STATISTICAL2.GEOMEAN = "GEOMEAN", FUNCTION_NAMES_STATISTICAL2.GROWTH = "GROWTH", FUNCTION_NAMES_STATISTICAL2.HARMEAN = "HARMEAN", FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST = "HYPGEOM.DIST", FUNCTION_NAMES_STATISTICAL2.INTERCEPT = "INTERCEPT", FUNCTION_NAMES_STATISTICAL2.KURT = "KURT", FUNCTION_NAMES_STATISTICAL2.LARGE = "LARGE", FUNCTION_NAMES_STATISTICAL2.LINEST = "LINEST", FUNCTION_NAMES_STATISTICAL2.LOGEST = "LOGEST", FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST = "LOGNORM.DIST", FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV = "LOGNORM.INV", FUNCTION_NAMES_STATISTICAL2.MAX = "MAX", FUNCTION_NAMES_STATISTICAL2.MAXA = "MAXA", FUNCTION_NAMES_STATISTICAL2.MAXIFS = "MAXIFS", FUNCTION_NAMES_STATISTICAL2.MEDIAN = "MEDIAN", FUNCTION_NAMES_STATISTICAL2.MIN = "MIN", FUNCTION_NAMES_STATISTICAL2.MINA = "MINA", FUNCTION_NAMES_STATISTICAL2.MINIFS = "MINIFS", FUNCTION_NAMES_STATISTICAL2.MODE_MULT = "MODE.MULT", FUNCTION_NAMES_STATISTICAL2.MODE_SNGL = "MODE.SNGL", FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST = "NEGBINOM.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_DIST = "NORM.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_INV = "NORM.INV", FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST = "NORM.S.DIST", FUNCTION_NAMES_STATISTICAL2.NORM_S_INV = "NORM.S.INV", FUNCTION_NAMES_STATISTICAL2.PEARSON = "PEARSON", FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC = "PERCENTILE.EXC", FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC = "PERCENTILE.INC", FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC = "PERCENTRANK.EXC", FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC = "PERCENTRANK.INC", FUNCTION_NAMES_STATISTICAL2.PERMUT = "PERMUT", FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA = "PERMUTATIONA", FUNCTION_NAMES_STATISTICAL2.PHI = "PHI", FUNCTION_NAMES_STATISTICAL2.POISSON_DIST = "POISSON.DIST", FUNCTION_NAMES_STATISTICAL2.PROB = "PROB", FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC = "QUARTILE.EXC", FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC = "QUARTILE.INC", FUNCTION_NAMES_STATISTICAL2.RANK_AVG = "RANK.AVG", FUNCTION_NAMES_STATISTICAL2.RANK_EQ = "RANK.EQ", FUNCTION_NAMES_STATISTICAL2.RSQ = "RSQ", FUNCTION_NAMES_STATISTICAL2.SKEW = "SKEW", FUNCTION_NAMES_STATISTICAL2.SKEW_P = "SKEW.P", FUNCTION_NAMES_STATISTICAL2.SLOPE = "SLOPE", FUNCTION_NAMES_STATISTICAL2.SMALL = "SMALL", FUNCTION_NAMES_STATISTICAL2.STANDARDIZE = "STANDARDIZE", FUNCTION_NAMES_STATISTICAL2.STDEV_P = "STDEV.P", FUNCTION_NAMES_STATISTICAL2.STDEV_S = "STDEV.S", FUNCTION_NAMES_STATISTICAL2.STDEVA = "STDEVA", FUNCTION_NAMES_STATISTICAL2.STDEVPA = "STDEVPA", FUNCTION_NAMES_STATISTICAL2.STEYX = "STEYX", FUNCTION_NAMES_STATISTICAL2.T_DIST = "T.DIST", FUNCTION_NAMES_STATISTICAL2.T_DIST_2T = "T.DIST.2T", FUNCTION_NAMES_STATISTICAL2.T_DIST_RT = "T.DIST.RT", FUNCTION_NAMES_STATISTICAL2.T_INV = "T.INV", FUNCTION_NAMES_STATISTICAL2.T_INV_2T = "T.INV.2T", FUNCTION_NAMES_STATISTICAL2.T_TEST = "T.TEST", FUNCTION_NAMES_STATISTICAL2.TREND = "TREND", FUNCTION_NAMES_STATISTICAL2.TRIMMEAN = "TRIMMEAN", FUNCTION_NAMES_STATISTICAL2.VAR_P = "VAR.P", FUNCTION_NAMES_STATISTICAL2.VAR_S = "VAR.S", FUNCTION_NAMES_STATISTICAL2.VARA = "VARA", FUNCTION_NAMES_STATISTICAL2.VARPA = "VARPA", FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST = "WEIBULL.DIST", FUNCTION_NAMES_STATISTICAL2.Z_TEST = "Z.TEST", FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL || {});
10636
- const _Max = class _Max extends BaseFunction {
10637
- constructor() {
10638
- super(...arguments);
10639
- __publicField(this, "minParams", 1);
10640
- __publicField(this, "maxParams", 255);
10641
- }
10642
- calculate(...variants) {
10643
- let accumulatorAll = NumberValueObject.create(Number.NEGATIVE_INFINITY);
10820
+ if (accumulatorCount.getValue() === 0)
10821
+ return ErrorValueObject.create(ErrorType$1.NUM);
10822
+ const average = accumulatorSum.divided(accumulatorCount);
10823
+ if (average.isError())
10824
+ return average;
10825
+ let accumulatorAveDev = NumberValueObject.create(0);
10644
10826
  for (let i = 0; i < variants.length; i++) {
10645
10827
  let variant = variants[i];
10646
- if (!variant.isNull()) {
10647
- if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isArray() && (variant = variant.max()), variant.isError())
10648
- return variant;
10649
- accumulatorAll = this._validator(accumulatorAll, variant);
10650
- }
10828
+ if (variant.isString() && (variant = variant.convertToNumberObjectValue()), variant.isError())
10829
+ return variant;
10830
+ if (variant.isArray()) {
10831
+ if (accumulatorAveDev = accumulatorAveDev.plus(variant.minus(average).abs().sum()), accumulatorAveDev.isError())
10832
+ return accumulatorAveDev;
10833
+ } else variant.isNull() || (accumulatorAveDev = accumulatorAveDev.plus(variant.minus(average).abs()));
10651
10834
  }
10652
- return accumulatorAll.getValue() === Number.NEGATIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
10653
- }
10654
- _validator(accumulatorAll, valueObject) {
10655
- const validator = accumulatorAll.isLessThan(valueObject);
10656
- let _accumulatorAll = accumulatorAll;
10657
- return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
10835
+ return accumulatorAveDev.divided(accumulatorCount);
10658
10836
  }
10659
10837
  };
10660
- __name(_Max, "Max");
10661
- let Max = _Max;
10662
- const _Min = class _Min extends BaseFunction {
10838
+ __name(_Avedev, "Avedev");
10839
+ let Avedev = _Avedev;
10840
+ function filterNumberValueObject(array) {
10841
+ const newArray = [];
10842
+ newArray[0] = [];
10843
+ let isError = null;
10844
+ return array.iterator((valueObject, _rowIndex, _columnIndex) => {
10845
+ if (valueObject != null && valueObject.isError())
10846
+ return isError = valueObject, !1;
10847
+ valueObject != null && valueObject.isNumber() && newArray[0].push(valueObject);
10848
+ }), isError || createNewArray(newArray, 1, newArray[0].length);
10849
+ }
10850
+ __name(filterNumberValueObject, "filterNumberValueObject");
10851
+ const _Average = class _Average extends BaseFunction {
10663
10852
  constructor() {
10664
10853
  super(...arguments);
10665
10854
  __publicField(this, "minParams", 1);
10666
10855
  __publicField(this, "maxParams", 255);
10667
10856
  }
10668
10857
  calculate(...variants) {
10669
- let accumulatorAll = NumberValueObject.create(Number.POSITIVE_INFINITY);
10858
+ let accumulatorSum = NumberValueObject.create(0), accumulatorCount = NumberValueObject.create(0);
10670
10859
  for (let i = 0; i < variants.length; i++) {
10671
10860
  let variant = variants[i];
10672
- if (!variant.isNull()) {
10673
- if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isArray() && (variant = variant.min()), variant.isError())
10674
- return variant;
10675
- accumulatorAll = this._validator(accumulatorAll, variant);
10676
- }
10861
+ if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isError())
10862
+ return variant;
10863
+ if (variant.isArray()) {
10864
+ if (accumulatorSum = accumulatorSum.plus(variant.sum()), accumulatorSum.isError())
10865
+ return accumulatorSum;
10866
+ accumulatorCount = accumulatorCount.plus(variant.count());
10867
+ } else variant.isNull() || (accumulatorSum = accumulatorSum.plus(variant), accumulatorCount = accumulatorCount.plus(NumberValueObject.create(1)));
10677
10868
  }
10678
- return accumulatorAll.getValue() === Number.POSITIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
10679
- }
10680
- _validator(accumulatorAll, valueObject) {
10681
- const validator = accumulatorAll.isGreaterThan(valueObject);
10682
- let _accumulatorAll = accumulatorAll;
10683
- return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
10684
- }
10685
- };
10686
- __name(_Min, "Min");
10687
- let Min = _Min;
10688
- const _Stdeva = class _Stdeva extends BaseFunction {
10689
- constructor() {
10690
- super(...arguments);
10691
- __publicField(this, "minParams", 1);
10692
- __publicField(this, "maxParams", 255);
10693
- }
10694
- calculate(...variants) {
10695
- const flattenArray = this.flattenArray(variants, !1);
10696
- return flattenArray.isError() ? flattenArray : flattenArray.std(1);
10697
- }
10698
- };
10699
- __name(_Stdeva, "Stdeva");
10700
- let Stdeva = _Stdeva;
10701
- const _Stdevpa = class _Stdevpa extends BaseFunction {
10702
- constructor() {
10703
- super(...arguments);
10704
- __publicField(this, "minParams", 1);
10705
- __publicField(this, "maxParams", 255);
10706
- }
10707
- calculate(...variants) {
10708
- const flattenArray = this.flattenArray(variants, !1);
10709
- return flattenArray.isError() ? flattenArray : flattenArray.std();
10710
- }
10711
- };
10712
- __name(_Stdevpa, "Stdevpa");
10713
- let Stdevpa = _Stdevpa;
10714
- const _Vara = class _Vara extends BaseFunction {
10715
- constructor() {
10716
- super(...arguments);
10717
- __publicField(this, "minParams", 1);
10718
- __publicField(this, "maxParams", 255);
10719
- }
10720
- calculate(...variants) {
10721
- const flattenArray = this.flattenArray(variants, !1);
10722
- return flattenArray.isError() ? flattenArray : flattenArray.var(1);
10723
- }
10724
- };
10725
- __name(_Vara, "Vara");
10726
- let Vara = _Vara;
10727
- const _Varpa = class _Varpa extends BaseFunction {
10728
- constructor() {
10729
- super(...arguments);
10730
- __publicField(this, "minParams", 1);
10731
- __publicField(this, "maxParams", 255);
10732
- }
10733
- calculate(...variants) {
10734
- const flattenArray = this.flattenArray(variants, !1);
10735
- return flattenArray.isError() ? flattenArray : flattenArray.var();
10736
- }
10737
- };
10738
- __name(_Varpa, "Varpa");
10739
- let Varpa = _Varpa;
10740
- const _Maxifs = class _Maxifs extends BaseFunction {
10741
- constructor() {
10742
- super(...arguments);
10743
- __publicField(this, "minParams", 3);
10744
- __publicField(this, "maxParams", 255);
10745
- }
10746
- calculate(maxRange, ...variants) {
10747
- if (maxRange.isError())
10748
- return ErrorValueObject.create(ErrorType$1.NA);
10749
- if (!maxRange.isArray() || variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
10750
- return ErrorValueObject.create(ErrorType$1.VALUE);
10751
- const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, maxRange, maxRowLength, maxColumnLength);
10752
- if (errorArray)
10753
- return errorArray;
10754
- const booleanResults = getBooleanResults(variants, maxRowLength, maxColumnLength, !0);
10755
- return this._aggregateResults(maxRange, booleanResults);
10756
- }
10757
- _aggregateResults(maxRange, booleanResults) {
10758
- const maxResults = booleanResults.map((row) => row.map((booleanResult) => {
10759
- const picked = maxRange.pick(booleanResult);
10760
- return picked.getColumnCount() === 0 ? ArrayValueObject.create("0") : picked.max();
10761
- })), arrayValueObjectData = {
10762
- calculateValueList: maxResults,
10763
- rowCount: maxResults.length,
10764
- columnCount: maxResults[0].length,
10765
- unitId: this.unitId || "",
10766
- sheetId: this.subUnitId || "",
10767
- row: this.row,
10768
- column: this.column
10769
- };
10770
- return ArrayValueObject.create(arrayValueObjectData);
10869
+ return accumulatorSum.divided(accumulatorCount);
10771
10870
  }
10772
10871
  };
10773
- __name(_Maxifs, "Maxifs");
10774
- let Maxifs = _Maxifs;
10872
+ __name(_Average, "Average");
10873
+ let Average = _Average;
10775
10874
  const _Averagea = class _Averagea extends BaseFunction {
10776
10875
  constructor() {
10777
10876
  super(...arguments);
@@ -10801,41 +10900,6 @@ const _Averagea = class _Averagea extends BaseFunction {
10801
10900
  };
10802
10901
  __name(_Averagea, "Averagea");
10803
10902
  let Averagea = _Averagea;
10804
- const _Minifs = class _Minifs extends BaseFunction {
10805
- constructor() {
10806
- super(...arguments);
10807
- __publicField(this, "minParams", 3);
10808
- __publicField(this, "maxParams", 255);
10809
- }
10810
- calculate(minRange, ...variants) {
10811
- if (minRange.isError())
10812
- return ErrorValueObject.create(ErrorType$1.NA);
10813
- if (!minRange.isArray() || variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
10814
- return ErrorValueObject.create(ErrorType$1.VALUE);
10815
- const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, minRange, maxRowLength, maxColumnLength);
10816
- if (errorArray)
10817
- return errorArray;
10818
- const booleanResults = getBooleanResults(variants, maxRowLength, maxColumnLength, !0);
10819
- return this._aggregateResults(minRange, booleanResults);
10820
- }
10821
- _aggregateResults(minRange, booleanResults) {
10822
- const maxResults = booleanResults.map((row) => row.map((booleanResult) => {
10823
- const picked = minRange.pick(booleanResult);
10824
- return picked.getColumnCount() === 0 ? ArrayValueObject.create("0") : picked.min();
10825
- })), arrayValueObjectData = {
10826
- calculateValueList: maxResults,
10827
- rowCount: maxResults.length,
10828
- columnCount: maxResults[0].length,
10829
- unitId: this.unitId || "",
10830
- sheetId: this.subUnitId || "",
10831
- row: this.row,
10832
- column: this.column
10833
- };
10834
- return ArrayValueObject.create(arrayValueObjectData);
10835
- }
10836
- };
10837
- __name(_Minifs, "Minifs");
10838
- let Minifs = _Minifs;
10839
10903
  const _Averageif = class _Averageif extends BaseFunction {
10840
10904
  constructor() {
10841
10905
  super(...arguments);
@@ -10925,6 +10989,56 @@ const _Averageifs = class _Averageifs extends BaseFunction {
10925
10989
  };
10926
10990
  __name(_Averageifs, "Averageifs");
10927
10991
  let Averageifs = _Averageifs;
10992
+ const _Count = class _Count extends BaseFunction {
10993
+ constructor() {
10994
+ super(...arguments);
10995
+ __publicField(this, "minParams", 1);
10996
+ __publicField(this, "maxParams", 255);
10997
+ }
10998
+ calculate(...variants) {
10999
+ let accumulatorAll = NumberValueObject.create(0);
11000
+ for (let i = 0; i < variants.length; i++) {
11001
+ const variant = variants[i];
11002
+ variant.isError() || (variant.isArray() ? accumulatorAll = accumulatorAll.plus(variant.count()) : variant.isString() ? variant.convertToNumberObjectValue().isError() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1))) : variant.isNull() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1))));
11003
+ }
11004
+ return accumulatorAll;
11005
+ }
11006
+ };
11007
+ __name(_Count, "Count");
11008
+ let Count = _Count;
11009
+ const _Counta = class _Counta extends BaseFunction {
11010
+ constructor() {
11011
+ super(...arguments);
11012
+ __publicField(this, "minParams", 1);
11013
+ __publicField(this, "maxParams", 255);
11014
+ }
11015
+ calculate(...variants) {
11016
+ let accumulatorAll = NumberValueObject.create(0);
11017
+ for (let i = 0; i < variants.length; i++) {
11018
+ let variant = variants[i];
11019
+ if (variant.isError()) {
11020
+ accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1));
11021
+ continue;
11022
+ }
11023
+ variant.isArray() ? (variant = variant.countA(), accumulatorAll = accumulatorAll.plus(variant)) : variant.isNull() || (accumulatorAll = accumulatorAll.plus(NumberValueObject.create(1)));
11024
+ }
11025
+ return accumulatorAll;
11026
+ }
11027
+ };
11028
+ __name(_Counta, "Counta");
11029
+ let Counta = _Counta;
11030
+ const _Countblank = class _Countblank extends BaseFunction {
11031
+ constructor() {
11032
+ super(...arguments);
11033
+ __publicField(this, "minParams", 1);
11034
+ __publicField(this, "maxParams", 1);
11035
+ }
11036
+ calculate(variant) {
11037
+ return variant.isError() ? variant : variant.getValue() === "" || variant.isNull() ? NumberValueObject.create(1) : variant.isArray() ? variant.countBlank() : NumberValueObject.create(0);
11038
+ }
11039
+ };
11040
+ __name(_Countblank, "Countblank");
11041
+ let Countblank = _Countblank;
10928
11042
  const _Countif = class _Countif extends BaseFunction {
10929
11043
  constructor() {
10930
11044
  super(...arguments);
@@ -10941,34 +11055,135 @@ const _Countif = class _Countif extends BaseFunction {
10941
11055
  const picked = range.pick(resultArrayObject);
10942
11056
  return this._countA(picked);
10943
11057
  }
10944
- _countA(array) {
10945
- let accumulatorAll = NumberValueObject.create(0);
10946
- return array.iterator((valueObject) => {
10947
- if (valueObject == null)
10948
- return !0;
10949
- accumulatorAll = accumulatorAll.plusBy(1);
10950
- }), accumulatorAll;
11058
+ _countA(array) {
11059
+ let accumulatorAll = NumberValueObject.create(0);
11060
+ return array.iterator((valueObject) => {
11061
+ if (valueObject == null)
11062
+ return !0;
11063
+ accumulatorAll = accumulatorAll.plusBy(1);
11064
+ }), accumulatorAll;
11065
+ }
11066
+ };
11067
+ __name(_Countif, "Countif");
11068
+ let Countif = _Countif;
11069
+ const _Countifs = class _Countifs extends BaseFunction {
11070
+ constructor() {
11071
+ super(...arguments);
11072
+ __publicField(this, "minParams", 2);
11073
+ __publicField(this, "maxParams", 255);
11074
+ }
11075
+ calculate(...variants) {
11076
+ if (variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
11077
+ return ErrorValueObject.create(ErrorType$1.VALUE);
11078
+ const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, variants[0], maxRowLength, maxColumnLength);
11079
+ if (errorArray)
11080
+ return errorArray;
11081
+ const booleanResults = getBooleanResults(variants, maxRowLength, maxColumnLength, !0);
11082
+ return this._aggregateResults(booleanResults);
11083
+ }
11084
+ _aggregateResults(booleanResults) {
11085
+ const maxResults = booleanResults.map((row) => row.map((booleanResult) => countTrueValue(booleanResult))), arrayValueObjectData = {
11086
+ calculateValueList: maxResults,
11087
+ rowCount: maxResults.length,
11088
+ columnCount: maxResults[0].length,
11089
+ unitId: this.unitId || "",
11090
+ sheetId: this.subUnitId || "",
11091
+ row: this.row,
11092
+ column: this.column
11093
+ };
11094
+ return ArrayValueObject.create(arrayValueObjectData);
11095
+ }
11096
+ };
11097
+ __name(_Countifs, "Countifs");
11098
+ let Countifs = _Countifs;
11099
+ function countTrueValue(array) {
11100
+ let count = 0;
11101
+ return array.iterator((value) => {
11102
+ value != null && value.isBoolean() && value.getValue() === !0 && count++;
11103
+ }), NumberValueObject.create(count);
11104
+ }
11105
+ __name(countTrueValue, "countTrueValue");
11106
+ const _Max = class _Max extends BaseFunction {
11107
+ constructor() {
11108
+ super(...arguments);
11109
+ __publicField(this, "minParams", 1);
11110
+ __publicField(this, "maxParams", 255);
11111
+ }
11112
+ calculate(...variants) {
11113
+ let accumulatorAll = NumberValueObject.create(Number.NEGATIVE_INFINITY);
11114
+ for (let i = 0; i < variants.length; i++) {
11115
+ let variant = variants[i];
11116
+ if (!variant.isNull()) {
11117
+ if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isArray() && (variant = variant.max()), variant.isError())
11118
+ return variant;
11119
+ accumulatorAll = this._validator(accumulatorAll, variant);
11120
+ }
11121
+ }
11122
+ return accumulatorAll.getValue() === Number.NEGATIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
11123
+ }
11124
+ _validator(accumulatorAll, valueObject) {
11125
+ const validator = accumulatorAll.isLessThan(valueObject);
11126
+ let _accumulatorAll = accumulatorAll;
11127
+ return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
11128
+ }
11129
+ };
11130
+ __name(_Max, "Max");
11131
+ let Max = _Max;
11132
+ const _Maxa = class _Maxa extends BaseFunction {
11133
+ constructor() {
11134
+ super(...arguments);
11135
+ __publicField(this, "minParams", 1);
11136
+ __publicField(this, "maxParams", 255);
11137
+ }
11138
+ calculate(...variants) {
11139
+ let accumulatorAll = NumberValueObject.create(Number.NEGATIVE_INFINITY);
11140
+ for (let i = 0; i < variants.length; i++) {
11141
+ let variant = variants[i];
11142
+ if (!variant.isNull()) {
11143
+ if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isError())
11144
+ return variant;
11145
+ if (variant.isArray() && variant.iterator((valueObject) => {
11146
+ let _valueObject = valueObject;
11147
+ if ((_valueObject == null || _valueObject.isNull() || _valueObject.isString()) && (_valueObject = NumberValueObject.create(0)), _valueObject.isBoolean() && (_valueObject = _valueObject.convertToNumberObjectValue()), _valueObject.isError())
11148
+ return accumulatorAll = _valueObject, !1;
11149
+ accumulatorAll = this._validator(accumulatorAll, _valueObject);
11150
+ }), accumulatorAll.isError())
11151
+ return accumulatorAll;
11152
+ accumulatorAll = this._validator(accumulatorAll, variant);
11153
+ }
11154
+ }
11155
+ return accumulatorAll.getValue() === Number.NEGATIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
11156
+ }
11157
+ _validator(accumulatorAll, valueObject) {
11158
+ const validator = accumulatorAll.isLessThan(valueObject);
11159
+ let _accumulatorAll = accumulatorAll;
11160
+ return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
10951
11161
  }
10952
11162
  };
10953
- __name(_Countif, "Countif");
10954
- let Countif = _Countif;
10955
- const _Countifs = class _Countifs extends BaseFunction {
11163
+ __name(_Maxa, "Maxa");
11164
+ let Maxa = _Maxa;
11165
+ const _Maxifs = class _Maxifs extends BaseFunction {
10956
11166
  constructor() {
10957
11167
  super(...arguments);
10958
- __publicField(this, "minParams", 2);
11168
+ __publicField(this, "minParams", 3);
10959
11169
  __publicField(this, "maxParams", 255);
10960
11170
  }
10961
- calculate(...variants) {
10962
- if (variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
11171
+ calculate(maxRange, ...variants) {
11172
+ if (maxRange.isError())
11173
+ return ErrorValueObject.create(ErrorType$1.NA);
11174
+ if (!maxRange.isArray() || variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
10963
11175
  return ErrorValueObject.create(ErrorType$1.VALUE);
10964
- const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, variants[0], maxRowLength, maxColumnLength);
11176
+ const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, maxRange, maxRowLength, maxColumnLength);
10965
11177
  if (errorArray)
10966
11178
  return errorArray;
10967
11179
  const booleanResults = getBooleanResults(variants, maxRowLength, maxColumnLength, !0);
10968
- return this._aggregateResults(booleanResults);
11180
+ return this._aggregateResults(maxRange, booleanResults);
10969
11181
  }
10970
- _aggregateResults(booleanResults) {
10971
- const maxResults = booleanResults.map((row) => row.map((booleanResult) => countTrueValue(booleanResult))), arrayValueObjectData = {
11182
+ _aggregateResults(maxRange, booleanResults) {
11183
+ const maxResults = booleanResults.map((row) => row.map((booleanResult) => {
11184
+ const picked = maxRange.pick(booleanResult);
11185
+ return picked.getColumnCount() === 0 ? ArrayValueObject.create("0") : picked.max();
11186
+ })), arrayValueObjectData = {
10972
11187
  calculateValueList: maxResults,
10973
11188
  rowCount: maxResults.length,
10974
11189
  columnCount: maxResults[0].length,
@@ -10980,28 +11195,9 @@ const _Countifs = class _Countifs extends BaseFunction {
10980
11195
  return ArrayValueObject.create(arrayValueObjectData);
10981
11196
  }
10982
11197
  };
10983
- __name(_Countifs, "Countifs");
10984
- let Countifs = _Countifs;
10985
- function countTrueValue(array) {
10986
- let count = 0;
10987
- return array.iterator((value) => {
10988
- value != null && value.isBoolean() && value.getValue() === !0 && count++;
10989
- }), NumberValueObject.create(count);
10990
- }
10991
- __name(countTrueValue, "countTrueValue");
10992
- const _Countblank = class _Countblank extends BaseFunction {
10993
- constructor() {
10994
- super(...arguments);
10995
- __publicField(this, "minParams", 1);
10996
- __publicField(this, "maxParams", 1);
10997
- }
10998
- calculate(variant) {
10999
- return variant.isError() ? variant : variant.getValue() === "" || variant.isNull() ? NumberValueObject.create(1) : variant.isArray() ? variant.countBlank() : NumberValueObject.create(0);
11000
- }
11001
- };
11002
- __name(_Countblank, "Countblank");
11003
- let Countblank = _Countblank;
11004
- const _Mina = class _Mina extends BaseFunction {
11198
+ __name(_Maxifs, "Maxifs");
11199
+ let Maxifs = _Maxifs;
11200
+ const _Min = class _Min extends BaseFunction {
11005
11201
  constructor() {
11006
11202
  super(...arguments);
11007
11203
  __publicField(this, "minParams", 1);
@@ -11012,15 +11208,8 @@ const _Mina = class _Mina extends BaseFunction {
11012
11208
  for (let i = 0; i < variants.length; i++) {
11013
11209
  let variant = variants[i];
11014
11210
  if (!variant.isNull()) {
11015
- if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isError())
11211
+ if ((variant.isString() || variant.isBoolean()) && (variant = variant.convertToNumberObjectValue()), variant.isArray() && (variant = variant.min()), variant.isError())
11016
11212
  return variant;
11017
- if (variant.isArray() && variant.iterator((valueObject) => {
11018
- let _valueObject = valueObject;
11019
- if ((_valueObject == null || _valueObject.isNull() || _valueObject.isString()) && (_valueObject = NumberValueObject.create(0)), _valueObject.isBoolean() && (_valueObject = _valueObject.convertToNumberObjectValue()), _valueObject.isError())
11020
- return accumulatorAll = _valueObject, !1;
11021
- accumulatorAll = this._validator(accumulatorAll, _valueObject);
11022
- }), accumulatorAll.isError())
11023
- return accumulatorAll;
11024
11213
  accumulatorAll = this._validator(accumulatorAll, variant);
11025
11214
  }
11026
11215
  }
@@ -11032,16 +11221,16 @@ const _Mina = class _Mina extends BaseFunction {
11032
11221
  return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
11033
11222
  }
11034
11223
  };
11035
- __name(_Mina, "Mina");
11036
- let Mina = _Mina;
11037
- const _Maxa = class _Maxa extends BaseFunction {
11224
+ __name(_Min, "Min");
11225
+ let Min = _Min;
11226
+ const _Mina = class _Mina extends BaseFunction {
11038
11227
  constructor() {
11039
11228
  super(...arguments);
11040
11229
  __publicField(this, "minParams", 1);
11041
11230
  __publicField(this, "maxParams", 255);
11042
11231
  }
11043
11232
  calculate(...variants) {
11044
- let accumulatorAll = NumberValueObject.create(Number.NEGATIVE_INFINITY);
11233
+ let accumulatorAll = NumberValueObject.create(Number.POSITIVE_INFINITY);
11045
11234
  for (let i = 0; i < variants.length; i++) {
11046
11235
  let variant = variants[i];
11047
11236
  if (!variant.isNull()) {
@@ -11057,67 +11246,103 @@ const _Maxa = class _Maxa extends BaseFunction {
11057
11246
  accumulatorAll = this._validator(accumulatorAll, variant);
11058
11247
  }
11059
11248
  }
11060
- return accumulatorAll.getValue() === Number.NEGATIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
11249
+ return accumulatorAll.getValue() === Number.POSITIVE_INFINITY ? NumberValueObject.create(0) : accumulatorAll;
11061
11250
  }
11062
11251
  _validator(accumulatorAll, valueObject) {
11063
- const validator = accumulatorAll.isLessThan(valueObject);
11252
+ const validator = accumulatorAll.isGreaterThan(valueObject);
11064
11253
  let _accumulatorAll = accumulatorAll;
11065
11254
  return validator.getValue() && (_accumulatorAll = valueObject), _accumulatorAll;
11066
11255
  }
11067
11256
  };
11068
- __name(_Maxa, "Maxa");
11069
- let Maxa = _Maxa;
11070
- const _Avedev = class _Avedev extends BaseFunction {
11257
+ __name(_Mina, "Mina");
11258
+ let Mina = _Mina;
11259
+ const _Minifs = class _Minifs extends BaseFunction {
11260
+ constructor() {
11261
+ super(...arguments);
11262
+ __publicField(this, "minParams", 3);
11263
+ __publicField(this, "maxParams", 255);
11264
+ }
11265
+ calculate(minRange, ...variants) {
11266
+ if (minRange.isError())
11267
+ return ErrorValueObject.create(ErrorType$1.NA);
11268
+ if (!minRange.isArray() || variants.length % 2 !== 0 || variants.some((variant, i) => i % 2 === 0 && !variant.isArray()))
11269
+ return ErrorValueObject.create(ErrorType$1.VALUE);
11270
+ const { maxRowLength, maxColumnLength } = calculateMaxDimensions(variants), errorArray = getErrorArray(variants, minRange, maxRowLength, maxColumnLength);
11271
+ if (errorArray)
11272
+ return errorArray;
11273
+ const booleanResults = getBooleanResults(variants, maxRowLength, maxColumnLength, !0);
11274
+ return this._aggregateResults(minRange, booleanResults);
11275
+ }
11276
+ _aggregateResults(minRange, booleanResults) {
11277
+ const maxResults = booleanResults.map((row) => row.map((booleanResult) => {
11278
+ const picked = minRange.pick(booleanResult);
11279
+ return picked.getColumnCount() === 0 ? ArrayValueObject.create("0") : picked.min();
11280
+ })), arrayValueObjectData = {
11281
+ calculateValueList: maxResults,
11282
+ rowCount: maxResults.length,
11283
+ columnCount: maxResults[0].length,
11284
+ unitId: this.unitId || "",
11285
+ sheetId: this.subUnitId || "",
11286
+ row: this.row,
11287
+ column: this.column
11288
+ };
11289
+ return ArrayValueObject.create(arrayValueObjectData);
11290
+ }
11291
+ };
11292
+ __name(_Minifs, "Minifs");
11293
+ let Minifs = _Minifs;
11294
+ const _Stdeva = class _Stdeva extends BaseFunction {
11071
11295
  constructor() {
11072
11296
  super(...arguments);
11073
11297
  __publicField(this, "minParams", 1);
11074
11298
  __publicField(this, "maxParams", 255);
11075
11299
  }
11076
11300
  calculate(...variants) {
11077
- let accumulatorSum = NumberValueObject.create(0), accumulatorCount = NumberValueObject.create(0);
11078
- for (let i = 0; i < variants.length; i++) {
11079
- let variant = variants[i];
11080
- if (variant.isString() && (variant = variant.convertToNumberObjectValue()), variant.isError())
11081
- return variant;
11082
- if (variant.isArray()) {
11083
- if (variant = filterNumberValueObject(variant), variant.isError())
11084
- return variant;
11085
- if (variants[i] = variant, accumulatorSum = accumulatorSum.plus(variant.sum()), accumulatorSum.isError())
11086
- return accumulatorSum;
11087
- accumulatorCount = accumulatorCount.plus(variant.count());
11088
- } else variant.isNull() || (accumulatorSum = accumulatorSum.plus(variant), accumulatorCount = accumulatorCount.plus(NumberValueObject.create(1)));
11089
- }
11090
- if (accumulatorCount.getValue() === 0)
11091
- return ErrorValueObject.create(ErrorType$1.NUM);
11092
- const average = accumulatorSum.divided(accumulatorCount);
11093
- if (average.isError())
11094
- return average;
11095
- let accumulatorAveDev = NumberValueObject.create(0);
11096
- for (let i = 0; i < variants.length; i++) {
11097
- let variant = variants[i];
11098
- if (variant.isString() && (variant = variant.convertToNumberObjectValue()), variant.isError())
11099
- return variant;
11100
- if (variant.isArray()) {
11101
- if (accumulatorAveDev = accumulatorAveDev.plus(variant.minus(average).abs().sum()), accumulatorAveDev.isError())
11102
- return accumulatorAveDev;
11103
- } else variant.isNull() || (accumulatorAveDev = accumulatorAveDev.plus(variant.minus(average).abs()));
11104
- }
11105
- return accumulatorAveDev.divided(accumulatorCount);
11301
+ const flattenArray = this.flattenArray(variants, !1);
11302
+ return flattenArray.isError() ? flattenArray : flattenArray.std(1);
11106
11303
  }
11107
11304
  };
11108
- __name(_Avedev, "Avedev");
11109
- let Avedev = _Avedev;
11110
- function filterNumberValueObject(array) {
11111
- const newArray = [];
11112
- newArray[0] = [];
11113
- let isError = null;
11114
- return array.iterator((valueObject, _rowIndex, _columnIndex) => {
11115
- if (valueObject != null && valueObject.isError())
11116
- return isError = valueObject, !1;
11117
- valueObject != null && valueObject.isNumber() && newArray[0].push(valueObject);
11118
- }), isError || createNewArray(newArray, 1, newArray[0].length);
11119
- }
11120
- __name(filterNumberValueObject, "filterNumberValueObject");
11305
+ __name(_Stdeva, "Stdeva");
11306
+ let Stdeva = _Stdeva;
11307
+ const _Stdevpa = class _Stdevpa extends BaseFunction {
11308
+ constructor() {
11309
+ super(...arguments);
11310
+ __publicField(this, "minParams", 1);
11311
+ __publicField(this, "maxParams", 255);
11312
+ }
11313
+ calculate(...variants) {
11314
+ const flattenArray = this.flattenArray(variants, !1);
11315
+ return flattenArray.isError() ? flattenArray : flattenArray.std();
11316
+ }
11317
+ };
11318
+ __name(_Stdevpa, "Stdevpa");
11319
+ let Stdevpa = _Stdevpa;
11320
+ const _Vara = class _Vara extends BaseFunction {
11321
+ constructor() {
11322
+ super(...arguments);
11323
+ __publicField(this, "minParams", 1);
11324
+ __publicField(this, "maxParams", 255);
11325
+ }
11326
+ calculate(...variants) {
11327
+ const flattenArray = this.flattenArray(variants, !1);
11328
+ return flattenArray.isError() ? flattenArray : flattenArray.var(1);
11329
+ }
11330
+ };
11331
+ __name(_Vara, "Vara");
11332
+ let Vara = _Vara;
11333
+ const _Varpa = class _Varpa extends BaseFunction {
11334
+ constructor() {
11335
+ super(...arguments);
11336
+ __publicField(this, "minParams", 1);
11337
+ __publicField(this, "maxParams", 255);
11338
+ }
11339
+ calculate(...variants) {
11340
+ const flattenArray = this.flattenArray(variants, !1);
11341
+ return flattenArray.isError() ? flattenArray : flattenArray.var();
11342
+ }
11343
+ };
11344
+ __name(_Varpa, "Varpa");
11345
+ let Varpa = _Varpa;
11121
11346
  const functionStatistical = [
11122
11347
  [Avedev, FUNCTION_NAMES_STATISTICAL.AVEDEV],
11123
11348
  [Average, FUNCTION_NAMES_STATISTICAL.AVERAGE],
@@ -12573,15 +12798,9 @@ let FormulaRuntimeService = (_a4 = class extends Disposable {
12573
12798
  sheetData.setValue(row, column, errorObject), clearArrayUnitData.setValue(row, column, errorObject);
12574
12799
  const unitData2 = this._currentConfigService.getUnitData();
12575
12800
  objectValueRefOrArray.iterator((_, rowIndex, columnIndex) => {
12576
- var _a24, _b, _c, _d, _e;
12577
- const currentRow = rowIndex - startRow + row, currentColumn = columnIndex - startColumn + column;
12578
- if (rowIndex === startRow && columnIndex === startColumn)
12579
- runtimeArrayUnitData.setValue(row, column, errorObject);
12580
- else if (((_c = (_b = (_a24 = unitData2[unitId]) == null ? void 0 : _a24[sheetId]) == null ? void 0 : _b.cellData) == null ? void 0 : _c.getValue(currentRow, currentColumn)) != null) {
12581
- const cell = (_e = (_d = unitData2[unitId]) == null ? void 0 : _d[sheetId]) == null ? void 0 : _e.cellData.getValue(currentRow, currentColumn);
12582
- runtimeArrayUnitData.setValue(currentRow, currentColumn, cell);
12583
- } else
12584
- runtimeArrayUnitData.setValue(currentRow, currentColumn, { v: "" });
12801
+ var _a24, _b;
12802
+ const currentRow = rowIndex - startRow + row, currentColumn = columnIndex - startColumn + column, cell = (_b = (_a24 = unitData2[unitId]) == null ? void 0 : _a24[sheetId]) == null ? void 0 : _b.cellData.getValue(currentRow, currentColumn);
12803
+ 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: "" });
12585
12804
  });
12586
12805
  } else {
12587
12806
  const spillError = ErrorValueObject.create(ErrorType$1.SPILL);
@@ -14439,9 +14658,10 @@ let FormulaDependencyGenerator = (_a14 = class extends Disposable {
14439
14658
  async generate() {
14440
14659
  this._updateRangeFlatten();
14441
14660
  const formulaData = this._currentConfigService.getFormulaData(), otherFormulaData = this._otherFormulaManagerService.getOtherFormulaData(), unitData = this._currentConfigService.getUnitData(), { treeList, dependencyTreeCache } = await this._generateTreeList(formulaData, otherFormulaData, unitData), updateTreeList = this._getUpdateTreeListAndMakeDependency(treeList, dependencyTreeCache);
14442
- this._checkIsCycleDependency(updateTreeList) && this._runtimeService.enableCycleDependency();
14443
- const finalTreeList = this._calculateRunList(updateTreeList);
14444
- return Promise.resolve(finalTreeList);
14661
+ let finalTreeList = this._calculateRunList(updateTreeList);
14662
+ return this._dependencyFeatureCalculation(finalTreeList) && (finalTreeList.forEach((tree) => {
14663
+ tree.resetState();
14664
+ }), finalTreeList = this._calculateRunList(finalTreeList)), this._checkIsCycleDependency(finalTreeList) && this._runtimeService.enableCycleDependency(), Promise.resolve(finalTreeList);
14445
14665
  }
14446
14666
  _isCyclicUtil(node, visited, recursionStack) {
14447
14667
  if (!visited.has(node)) {
@@ -14492,35 +14712,17 @@ let FormulaDependencyGenerator = (_a14 = class extends Disposable {
14492
14712
  this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap, _) => {
14493
14713
  subUnitMap.forEach((featureMap2, _2) => {
14494
14714
  featureMap2.forEach((params, featureId) => {
14495
- const { unitId, subUnitId, dependencyRanges, getDirtyData } = params;
14496
- if (this._dependencyManagerService.hasFeatureFormulaDependency(unitId, subUnitId, featureId))
14497
- return this._makePassiveDirtyForFeatureFormulas(this._dependencyManagerService.getFeatureFormulaDependency(unitId, subUnitId, featureId)), !0;
14498
- const FDtree = new FormulaDependencyTree();
14499
- FDtree.unitId = unitId, FDtree.subUnitId = subUnitId, FDtree.getDirtyData = getDirtyData, FDtree.featureId = featureId, FDtree.rangeList = dependencyRanges.map((range) => ({
14500
- gridRange: range,
14501
- token: serializeRangeToRefString({ ...range, sheetName: this._currentConfigService.getSheetName(range.unitId, range.sheetId) })
14502
- })), this._dependencyManagerService.addFeatureFormulaDependency(unitId, subUnitId, featureId, FDtree), this._makePassiveDirtyForFeatureFormulas(FDtree), treeList.push(FDtree);
14715
+ treeList.push(this._getFeatureFormulaTree(featureId, params));
14503
14716
  });
14504
14717
  });
14505
14718
  });
14506
14719
  }
14507
- _makePassiveDirtyForFeatureFormulas(tree) {
14508
- var _a24, _b;
14509
- const featureId = tree.featureId;
14510
- if (featureId == null) {
14511
- tree.isPassive = !0;
14512
- return;
14513
- }
14514
- const featureMap = this._currentConfigService.getDirtyUnitFeatureMap();
14515
- if (featureMap == null) {
14516
- tree.isPassive = !0;
14517
- return;
14518
- }
14519
- if (((_b = (_a24 = featureMap[tree.unitId]) == null ? void 0 : _a24[tree.subUnitId]) == null ? void 0 : _b[featureId]) == null) {
14520
- tree.isPassive = !0;
14521
- return;
14522
- }
14523
- tree.isPassive = !1;
14720
+ _getFeatureFormulaTree(featureId, params) {
14721
+ const { unitId, subUnitId, dependencyRanges, getDirtyData } = params, FDtree = new FormulaDependencyTree();
14722
+ return FDtree.unitId = unitId, FDtree.subUnitId = subUnitId, FDtree.getDirtyData = getDirtyData, FDtree.featureId = featureId, FDtree.rangeList = dependencyRanges.map((range) => ({
14723
+ gridRange: range,
14724
+ token: serializeRangeToRefString({ ...range, sheetName: this._currentConfigService.getSheetName(range.unitId, range.sheetId) })
14725
+ })), this._dependencyManagerService.addFeatureFormulaDependency(unitId, subUnitId, featureId, FDtree), FDtree;
14524
14726
  }
14525
14727
  _registerOtherFormulas(otherFormulaData, otherFormulaDataKeys, treeList) {
14526
14728
  for (const unitId of otherFormulaDataKeys) {
@@ -14669,6 +14871,65 @@ let FormulaDependencyGenerator = (_a14 = class extends Disposable {
14669
14871
  }
14670
14872
  return dependencyTreeCache.dispose(), newTreeList;
14671
14873
  }
14874
+ _dependencyFeatureCalculation(newTreeList) {
14875
+ this._clearFeatureCalculationNode(newTreeList);
14876
+ let hasFeatureCalculation = !1;
14877
+ return this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap, _) => {
14878
+ subUnitMap.forEach((featureMap2, _2) => {
14879
+ featureMap2.forEach((params, featureId) => {
14880
+ const { unitId, subUnitId, getDirtyData } = params, dirtyRanges = getDirtyData(this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData()).dirtyRanges, dirtyRangesToMap = this._convertDirtyRangesToMap(dirtyRanges), intersectTrees = this._intersectFeatureCalculation(dirtyRangesToMap, newTreeList, { unitId, subUnitId, featureId });
14881
+ if (intersectTrees.length > 0) {
14882
+ let featureTree = this._getExistTreeList({ unitId, subUnitId, featureId }, newTreeList);
14883
+ featureTree == null && (featureTree = this._getFeatureFormulaTree(featureId, params), newTreeList.push(featureTree)), featureTree.parents = [], intersectTrees.forEach((tree) => {
14884
+ tree.children.includes(featureTree) || tree.pushChildren(featureTree);
14885
+ }), hasFeatureCalculation = !0;
14886
+ }
14887
+ });
14888
+ });
14889
+ }), hasFeatureCalculation;
14890
+ }
14891
+ _clearFeatureCalculationNode(newTreeList) {
14892
+ const featureMap = this._featureCalculationManagerService.getReferenceExecutorMap();
14893
+ newTreeList.forEach((tree) => {
14894
+ tree.children = tree.children.filter((child) => {
14895
+ var _a24, _b;
14896
+ return child.featureId ? !((_b = (_a24 = featureMap.get(tree.unitId)) == null ? void 0 : _a24.get(tree.subUnitId)) != null && _b.has(child.featureId)) : !0;
14897
+ }), tree.parents = tree.parents.filter((parent) => {
14898
+ var _a24, _b;
14899
+ return parent.featureId ? !((_b = (_a24 = featureMap.get(tree.unitId)) == null ? void 0 : _a24.get(tree.subUnitId)) != null && _b.has(parent.featureId)) : !0;
14900
+ });
14901
+ });
14902
+ }
14903
+ _getExistTreeList(param, treeList) {
14904
+ const { unitId, subUnitId, featureId } = param;
14905
+ for (let i = 0, len = treeList.length; i < len; i++) {
14906
+ const tree = treeList[i];
14907
+ if (tree.unitId === unitId && tree.subUnitId === subUnitId && tree.featureId === featureId)
14908
+ return tree;
14909
+ }
14910
+ }
14911
+ _convertDirtyRangesToMap(dirtyRanges) {
14912
+ const map = /* @__PURE__ */ new Map();
14913
+ for (const unitId in dirtyRanges) {
14914
+ const unitMap = dirtyRanges[unitId], unitRangeMap = /* @__PURE__ */ new Map();
14915
+ for (const subUnitId in unitMap) {
14916
+ const ranges = unitMap[subUnitId];
14917
+ unitRangeMap.set(subUnitId, ranges);
14918
+ }
14919
+ map.set(unitId, unitRangeMap);
14920
+ }
14921
+ return map;
14922
+ }
14923
+ _intersectFeatureCalculation(dirtyRangesToMap, newTreeList, param) {
14924
+ const dependencyTree = [];
14925
+ for (let i = 0, len = newTreeList.length; i < len; i++) {
14926
+ const tree = newTreeList[i];
14927
+ if (tree.unitId === param.unitId && tree.subUnitId === param.subUnitId && tree.featureId === param.featureId)
14928
+ continue;
14929
+ tree.dependencyRange(dirtyRangesToMap, {}) && dependencyTree.push(tree);
14930
+ }
14931
+ return dependencyTree;
14932
+ }
14672
14933
  _includeTreeFeature(tree) {
14673
14934
  var _a24, _b;
14674
14935
  const unitId = tree.unitId, subUnitId = tree.subUnitId, featureId = tree.featureId;
@@ -14870,7 +15131,7 @@ let CalculateFormulaService = (_a15 = class extends Disposable {
14870
15131
  tree.subUnitId,
14871
15132
  tree.unitId
14872
15133
  ), getDirtyData != null && tree.featureId != null) {
14873
- const { runtimeCellData, dirtyRanges } = getDirtyData(tree, this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData());
15134
+ const { runtimeCellData, dirtyRanges } = getDirtyData(this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData());
14874
15135
  this._runtimeService.setRuntimeFeatureCellData(tree.featureId, runtimeCellData), this._runtimeService.setRuntimeFeatureRange(tree.featureId, dirtyRanges);
14875
15136
  } else astNode != null && (interpreter.checkAsyncNode(astNode) ? value = await interpreter.executeAsync(astNode) : value = interpreter.execute(astNode), tree.formulaId != null ? this._runtimeService.setRuntimeOtherData(tree.formulaId, value) : this._runtimeService.setRuntimeData(value));
14876
15137
  isArrayFormulaState ? (this._runtimeService.setFormulaExecuteStage(