@univerjs/engine-formula 0.2.13 → 0.2.15

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/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, 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";
5
+ import { ObjectMatrix, LRUMap, hashAlgorithm, Tools, AbsoluteRefType, RANGE_TYPE, Disposable, moveRangeByOffset, isValidRange, BuildTextUtils, 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) {
@@ -1207,7 +1207,7 @@ function getCellValue(cell) {
1207
1207
  if (body == null)
1208
1208
  return 0;
1209
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;
1210
+ return BuildTextUtils.transform.getPlainText(data);
1211
1211
  }
1212
1212
  return (cell == null ? void 0 : cell.v) || 0;
1213
1213
  }
@@ -1351,6 +1351,23 @@ function escapeRegExp(str) {
1351
1351
  return str.replace(/[.+^${}()|[\]\\]/g, "\\$&");
1352
1352
  }
1353
1353
  __name(escapeRegExp, "escapeRegExp");
1354
+ function getMatchModeValue(matchModeValue) {
1355
+ switch (matchModeValue) {
1356
+ case 1:
1357
+ return 2;
1358
+ case 0:
1359
+ return 0;
1360
+ case -1:
1361
+ return 1;
1362
+ default:
1363
+ return 0;
1364
+ }
1365
+ }
1366
+ __name(getMatchModeValue, "getMatchModeValue");
1367
+ function getSearchModeValue(searchModeValue) {
1368
+ return searchModeValue === -2 ? 1 : 0;
1369
+ }
1370
+ __name(getSearchModeValue, "getSearchModeValue");
1354
1371
  const _BaseValueObject = class _BaseValueObject extends ObjectClassType {
1355
1372
  constructor(_rawValue) {
1356
1373
  super(), this._rawValue = _rawValue;
@@ -4097,49 +4114,56 @@ const _ArrayValueObject = class _ArrayValueObject extends BaseValueObject {
4097
4114
  return result = itemValue, resultPosition = { row, column }, !1;
4098
4115
  searchType === ArrayOrderSearchType.MAX ? itemValue.isGreaterThan(valueObject).getValue() === !0 && (maxOrMin2 == null || itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue() === !0) && (maxOrMin2 = itemValue, maxOrMinPosition = { row, column }) : searchType === ArrayOrderSearchType.MIN && itemValue.isLessThan(valueObject).getValue() === !0 && (maxOrMin2 == null || itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue() === !0) && (maxOrMin2 = itemValue, maxOrMinPosition = { row, column });
4099
4116
  }, "_handleMatch");
4100
- if (isDesc) {
4101
- const rowCount = this._values.length;
4102
- if (this._values[0] == null)
4103
- return;
4104
- const columnCount = this._values[0].length;
4105
- for (let r = rowCount - 1; r >= 0; r--)
4106
- for (let c = columnCount - 1; c >= 0; c--) {
4107
- const itemValue = this._values[r][c];
4108
- _handleMatch(itemValue, r, c);
4109
- }
4110
- } else
4111
- this.iterator((itemValue, r, c) => {
4112
- _handleMatch(itemValue, r, c);
4113
- });
4114
- if (result != null)
4117
+ if (isDesc ? this.iteratorReverse((itemValue, r, c) => _handleMatch(itemValue, r, c)) : this.iterator((itemValue, r, c) => _handleMatch(itemValue, r, c)), result != null)
4115
4118
  return resultPosition;
4116
4119
  if (maxOrMin2 != null)
4117
4120
  return maxOrMinPosition;
4118
4121
  }
4119
- binarySearch(valueObject, searchType = ArrayBinarySearchType.MIN) {
4122
+ binarySearch(valueObject, searchType = ArrayBinarySearchType.MIN, matchType = ArrayOrderSearchType.MIN) {
4120
4123
  if (valueObject.isError())
4121
4124
  return;
4122
4125
  const { stringArray, stringPosition, numberArray, numberPosition } = this.flattenPosition();
4123
- return valueObject.isString() ? this._binarySearch(valueObject, stringArray, stringPosition, searchType) : this._binarySearch(valueObject, numberArray, numberPosition, searchType);
4126
+ return valueObject.isString() ? this._binarySearch(valueObject, stringArray, stringPosition, searchType, matchType) : this._binarySearch(valueObject, numberArray, numberPosition, searchType, matchType);
4124
4127
  }
4125
- _binarySearch(valueObject, searchArray, positionArray, searchType = ArrayBinarySearchType.MIN) {
4126
- const compareFunc = getCompare(), value = valueObject.getValue().toString().toLocaleLowerCase();
4127
- let start = 0, end = searchArray.length - 1, lastValue = null;
4128
+ /**
4129
+ * searchType defaults to ascending order
4130
+ *
4131
+ * matchType defaults to the maximum value less than the search value, which is used for the default matching mode of VLOOKUP/LOOKUP/HLOOKUP.
4132
+ * @param valueObject
4133
+ * @param searchArray
4134
+ * @param positionArray
4135
+ * @param searchType
4136
+ * @param matchType
4137
+ * @returns
4138
+ */
4139
+ _binarySearch(valueObject, searchArray, positionArray, searchType = ArrayBinarySearchType.MIN, matchType = ArrayOrderSearchType.MIN) {
4140
+ const compareFunc = getCompare(), value = Number(valueObject.getValue()), isValueNumber = !Number.isNaN(value);
4141
+ let start = 0, end = searchArray.length - 1, exactMatchIndex = -1, nearestSmallerIndex = -1, nearestLargerIndex = -1;
4128
4142
  for (; start <= end; ) {
4129
4143
  const middle = Math.floor((start + end) / 2), compareTo = searchArray[middle];
4130
- let compare = 0;
4144
+ let compareResult;
4131
4145
  if (compareTo.isNull())
4132
- compare = 1;
4146
+ compareResult = searchType === ArrayBinarySearchType.MIN ? 1 : -1;
4133
4147
  else {
4134
4148
  const compareToValue = compareTo.getValue();
4135
- compare = compareFunc(compareToValue.toString().toLocaleLowerCase(), value);
4149
+ if (isValueNumber) {
4150
+ const compareToNumber = Number(compareToValue);
4151
+ compareResult = Number.isNaN(compareToNumber) ? 1 : Math.sign(compareToNumber - value);
4152
+ } else
4153
+ compareResult = compareFunc(compareToValue.toString().toLocaleLowerCase(), valueObject.getValue().toString().toLocaleLowerCase());
4154
+ }
4155
+ if (searchType === ArrayBinarySearchType.MAX && (compareResult = -compareResult), compareResult === 0) {
4156
+ exactMatchIndex = middle;
4157
+ break;
4136
4158
  }
4137
- if (compare === 0)
4138
- return positionArray[middle];
4139
- compare === -1 ? (start = middle + 1, searchType === ArrayBinarySearchType.MIN && (lastValue = middle)) : (end = middle - 1, searchType === ArrayBinarySearchType.MAX && (lastValue = middle));
4159
+ compareResult < 0 ? (nearestSmallerIndex = middle, start = middle + 1) : (nearestLargerIndex = middle, end = middle - 1);
4140
4160
  }
4141
- if (lastValue != null)
4142
- return positionArray[lastValue];
4161
+ if (matchType === ArrayOrderSearchType.NORMAL)
4162
+ return exactMatchIndex !== -1 ? positionArray[exactMatchIndex] : void 0;
4163
+ if (matchType === ArrayOrderSearchType.MIN)
4164
+ return exactMatchIndex !== -1 ? positionArray[exactMatchIndex] : searchType === ArrayBinarySearchType.MIN ? positionArray[nearestSmallerIndex] : positionArray[nearestLargerIndex];
4165
+ if (matchType === ArrayOrderSearchType.MAX)
4166
+ return exactMatchIndex !== -1 ? positionArray[exactMatchIndex] : searchType === ArrayBinarySearchType.MIN ? positionArray[nearestLargerIndex] : positionArray[nearestSmallerIndex];
4143
4167
  }
4144
4168
  sum() {
4145
4169
  let accumulatorAll = NumberValueObject.create(0);
@@ -5209,6 +5233,103 @@ function getR1C1Ref(index, absoluteRefType = AbsoluteRefType.ALL, isRow) {
5209
5233
  __name(getR1C1Ref, "getR1C1Ref");
5210
5234
  const functionArray = [];
5211
5235
  var FUNCTION_NAMES_ARRAY = /* @__PURE__ */ ((FUNCTION_NAMES_ARRAY2) => FUNCTION_NAMES_ARRAY2)(FUNCTION_NAMES_ARRAY || {});
5236
+ const _CellReferenceObject = class _CellReferenceObject extends BaseReferenceObject {
5237
+ constructor(token) {
5238
+ super(token);
5239
+ const grid = deserializeRangeWithSheet(token);
5240
+ this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName), this.setRangeData(grid.range);
5241
+ }
5242
+ isCell() {
5243
+ return !0;
5244
+ }
5245
+ unionBy(referenceObject) {
5246
+ if (!referenceObject.isCell())
5247
+ return ErrorValueObject.create(ErrorType$1.REF);
5248
+ const cellReferenceObject = referenceObject, newRangeData = this.unionRange(this.getRangeData(), cellReferenceObject.getRangeData());
5249
+ return this._createRange(newRangeData);
5250
+ }
5251
+ unionRange(rangeData1, rangeData2) {
5252
+ const startRow1 = rangeData1.startRow, startColumn1 = rangeData1.startColumn, startRow2 = rangeData2.startRow, startColumn2 = rangeData2.startColumn, range = {
5253
+ startRow: -1,
5254
+ startColumn: -1,
5255
+ endRow: -1,
5256
+ endColumn: -1
5257
+ };
5258
+ return startRow1 > startRow2 ? (range.startRow = startRow2, range.endRow = startRow1) : (range.startRow = startRow1, range.endRow = startRow2), startColumn1 > startColumn2 ? (range.startColumn = startColumn2, range.endColumn = startColumn1) : (range.startColumn = startColumn1, range.endColumn = startColumn2), rangeData1.startAbsoluteRefType && (range.startAbsoluteRefType = rangeData1.startAbsoluteRefType), rangeData2.startAbsoluteRefType && (range.endAbsoluteRefType = rangeData2.startAbsoluteRefType), range;
5259
+ }
5260
+ _createRange(newRangeData) {
5261
+ const rangeReferenceObject = new RangeReferenceObject(
5262
+ newRangeData,
5263
+ this.getForcedSheetId(),
5264
+ this.getForcedUnitId()
5265
+ );
5266
+ rangeReferenceObject.setUnitData(this.getUnitData()), rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()), rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()), rangeReferenceObject.setRuntimeData(this.getRuntimeData()), rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()), rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()), rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()), rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());
5267
+ const { x, y } = this.getRefOffset();
5268
+ rangeReferenceObject.setRefOffset(x, y);
5269
+ const forceSheetId = this.getForcedSheetId();
5270
+ rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()), forceSheetId != null && rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);
5271
+ const forcedUnitId = this.getForcedUnitId();
5272
+ return forcedUnitId && rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId), rangeReferenceObject;
5273
+ }
5274
+ };
5275
+ __name(_CellReferenceObject, "CellReferenceObject");
5276
+ let CellReferenceObject = _CellReferenceObject;
5277
+ const _ColumnReferenceObject = class _ColumnReferenceObject extends BaseReferenceObject {
5278
+ constructor(token) {
5279
+ super(token);
5280
+ const grid = deserializeRangeWithSheet(token);
5281
+ this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName);
5282
+ const range = {
5283
+ startColumn: grid.range.startColumn,
5284
+ startRow: Number.NaN,
5285
+ endColumn: -1,
5286
+ endRow: Number.NaN
5287
+ };
5288
+ this.setRangeData(range);
5289
+ }
5290
+ isColumn() {
5291
+ return !0;
5292
+ }
5293
+ unionBy(referenceObject) {
5294
+ if (!referenceObject.isColumn())
5295
+ return ErrorValueObject.create(ErrorType$1.REF);
5296
+ const columnReferenceObject = referenceObject;
5297
+ if (columnReferenceObject.getForcedSheetName() !== void 0 && columnReferenceObject.getForcedSheetName() !== "")
5298
+ return ErrorValueObject.create(ErrorType$1.REF);
5299
+ const currentRangeData = this.getRangeData(), newColumnRange = columnReferenceObject.getRangeData(), newColumn = newColumnRange.startColumn, column = currentRangeData.startColumn;
5300
+ return newColumn > column ? currentRangeData.endColumn = newColumn : (currentRangeData.startColumn = newColumn, currentRangeData.endColumn = column), newColumnRange.startAbsoluteRefType && (currentRangeData.endAbsoluteRefType = newColumnRange.startAbsoluteRefType), currentRangeData.rangeType = RANGE_TYPE.COLUMN, this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`), this;
5301
+ }
5302
+ };
5303
+ __name(_ColumnReferenceObject, "ColumnReferenceObject");
5304
+ let ColumnReferenceObject = _ColumnReferenceObject;
5305
+ const _RowReferenceObject = class _RowReferenceObject extends BaseReferenceObject {
5306
+ constructor(token) {
5307
+ super(token);
5308
+ const grid = deserializeRangeWithSheet(token);
5309
+ this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName);
5310
+ const range = {
5311
+ startColumn: Number.NaN,
5312
+ startRow: grid.range.startRow,
5313
+ endColumn: Number.NaN,
5314
+ endRow: -1
5315
+ };
5316
+ this.setRangeData(range);
5317
+ }
5318
+ isRow() {
5319
+ return !0;
5320
+ }
5321
+ unionBy(referenceObject) {
5322
+ if (!referenceObject.isRow())
5323
+ return ErrorValueObject.create(ErrorType$1.REF);
5324
+ const rowReferenceObject = referenceObject;
5325
+ if (rowReferenceObject.getForcedSheetName() !== void 0 && rowReferenceObject.getForcedSheetName() !== "")
5326
+ return ErrorValueObject.create(ErrorType$1.REF);
5327
+ const currentRangeData = this.getRangeData(), newRowRange = rowReferenceObject.getRangeData(), newRow = newRowRange.startRow, row = currentRangeData.startRow;
5328
+ return newRow > row ? currentRangeData.endRow = newRow : (currentRangeData.startRow = newRow, currentRangeData.endRow = row), newRowRange.startAbsoluteRefType && (currentRangeData.endAbsoluteRefType = newRowRange.startAbsoluteRefType), currentRangeData.rangeType = RANGE_TYPE.ROW, this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`), this;
5329
+ }
5330
+ };
5331
+ __name(_RowReferenceObject, "RowReferenceObject");
5332
+ let RowReferenceObject = _RowReferenceObject;
5212
5333
  function expandArrayValueObject(rowCount, columnCount, valueObject, defaultValue) {
5213
5334
  const result = [];
5214
5335
  if (valueObject.isArray()) {
@@ -5418,103 +5539,6 @@ function isSameValueObjectType(left, right) {
5418
5539
  return !!((isLeftBlank || left.isNull()) && (isRightBlank || right.isNull()) || left.isString() && !isLeftBlank && right.isString() && !isRightBlank);
5419
5540
  }
5420
5541
  __name(isSameValueObjectType, "isSameValueObjectType");
5421
- const _CellReferenceObject = class _CellReferenceObject extends BaseReferenceObject {
5422
- constructor(token) {
5423
- super(token);
5424
- const grid = deserializeRangeWithSheet(token);
5425
- this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName), this.setRangeData(grid.range);
5426
- }
5427
- isCell() {
5428
- return !0;
5429
- }
5430
- unionBy(referenceObject) {
5431
- if (!referenceObject.isCell())
5432
- return ErrorValueObject.create(ErrorType$1.REF);
5433
- const cellReferenceObject = referenceObject, newRangeData = this.unionRange(this.getRangeData(), cellReferenceObject.getRangeData());
5434
- return this._createRange(newRangeData);
5435
- }
5436
- unionRange(rangeData1, rangeData2) {
5437
- const startRow1 = rangeData1.startRow, startColumn1 = rangeData1.startColumn, startRow2 = rangeData2.startRow, startColumn2 = rangeData2.startColumn, range = {
5438
- startRow: -1,
5439
- startColumn: -1,
5440
- endRow: -1,
5441
- endColumn: -1
5442
- };
5443
- return startRow1 > startRow2 ? (range.startRow = startRow2, range.endRow = startRow1) : (range.startRow = startRow1, range.endRow = startRow2), startColumn1 > startColumn2 ? (range.startColumn = startColumn2, range.endColumn = startColumn1) : (range.startColumn = startColumn1, range.endColumn = startColumn2), rangeData1.startAbsoluteRefType && (range.startAbsoluteRefType = rangeData1.startAbsoluteRefType), rangeData2.startAbsoluteRefType && (range.endAbsoluteRefType = rangeData2.startAbsoluteRefType), range;
5444
- }
5445
- _createRange(newRangeData) {
5446
- const rangeReferenceObject = new RangeReferenceObject(
5447
- newRangeData,
5448
- this.getForcedSheetId(),
5449
- this.getForcedUnitId()
5450
- );
5451
- rangeReferenceObject.setUnitData(this.getUnitData()), rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()), rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()), rangeReferenceObject.setRuntimeData(this.getRuntimeData()), rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()), rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()), rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()), rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());
5452
- const { x, y } = this.getRefOffset();
5453
- rangeReferenceObject.setRefOffset(x, y);
5454
- const forceSheetId = this.getForcedSheetId();
5455
- rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()), forceSheetId != null && rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);
5456
- const forcedUnitId = this.getForcedUnitId();
5457
- return forcedUnitId && rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId), rangeReferenceObject;
5458
- }
5459
- };
5460
- __name(_CellReferenceObject, "CellReferenceObject");
5461
- let CellReferenceObject = _CellReferenceObject;
5462
- const _RowReferenceObject = class _RowReferenceObject extends BaseReferenceObject {
5463
- constructor(token) {
5464
- super(token);
5465
- const grid = deserializeRangeWithSheet(token);
5466
- this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName);
5467
- const range = {
5468
- startColumn: Number.NaN,
5469
- startRow: grid.range.startRow,
5470
- endColumn: Number.NaN,
5471
- endRow: -1
5472
- };
5473
- this.setRangeData(range);
5474
- }
5475
- isRow() {
5476
- return !0;
5477
- }
5478
- unionBy(referenceObject) {
5479
- if (!referenceObject.isRow())
5480
- return ErrorValueObject.create(ErrorType$1.REF);
5481
- const rowReferenceObject = referenceObject;
5482
- if (rowReferenceObject.getForcedSheetName() !== void 0 && rowReferenceObject.getForcedSheetName() !== "")
5483
- return ErrorValueObject.create(ErrorType$1.REF);
5484
- const currentRangeData = this.getRangeData(), newRowRange = rowReferenceObject.getRangeData(), newRow = newRowRange.startRow, row = currentRangeData.startRow;
5485
- return newRow > row ? currentRangeData.endRow = newRow : (currentRangeData.startRow = newRow, currentRangeData.endRow = row), newRowRange.startAbsoluteRefType && (currentRangeData.endAbsoluteRefType = newRowRange.startAbsoluteRefType), currentRangeData.rangeType = RANGE_TYPE.ROW, this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`), this;
5486
- }
5487
- };
5488
- __name(_RowReferenceObject, "RowReferenceObject");
5489
- let RowReferenceObject = _RowReferenceObject;
5490
- const _ColumnReferenceObject = class _ColumnReferenceObject extends BaseReferenceObject {
5491
- constructor(token) {
5492
- super(token);
5493
- const grid = deserializeRangeWithSheet(token);
5494
- this.setForcedUnitIdDirect(grid.unitId), this.setForcedSheetName(grid.sheetName);
5495
- const range = {
5496
- startColumn: grid.range.startColumn,
5497
- startRow: Number.NaN,
5498
- endColumn: -1,
5499
- endRow: Number.NaN
5500
- };
5501
- this.setRangeData(range);
5502
- }
5503
- isColumn() {
5504
- return !0;
5505
- }
5506
- unionBy(referenceObject) {
5507
- if (!referenceObject.isColumn())
5508
- return ErrorValueObject.create(ErrorType$1.REF);
5509
- const columnReferenceObject = referenceObject;
5510
- if (columnReferenceObject.getForcedSheetName() !== void 0 && columnReferenceObject.getForcedSheetName() !== "")
5511
- return ErrorValueObject.create(ErrorType$1.REF);
5512
- const currentRangeData = this.getRangeData(), newColumnRange = columnReferenceObject.getRangeData(), newColumn = newColumnRange.startColumn, column = currentRangeData.startColumn;
5513
- return newColumn > column ? currentRangeData.endColumn = newColumn : (currentRangeData.startColumn = newColumn, currentRangeData.endColumn = column), newColumnRange.startAbsoluteRefType && (currentRangeData.endAbsoluteRefType = newColumnRange.startAbsoluteRefType), currentRangeData.rangeType = RANGE_TYPE.COLUMN, this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`), this;
5514
- }
5515
- };
5516
- __name(_ColumnReferenceObject, "ColumnReferenceObject");
5517
- let ColumnReferenceObject = _ColumnReferenceObject;
5518
5542
  const _BaseFunction = class _BaseFunction extends Disposable {
5519
5543
  constructor(_name) {
5520
5544
  super();
@@ -5654,8 +5678,8 @@ const _BaseFunction = class _BaseFunction extends Disposable {
5654
5678
  }
5655
5679
  return logicValue;
5656
5680
  }
5657
- binarySearch(value, searchArray, resultArray, searchType) {
5658
- const rowOrColumn = searchArray.binarySearch(value, searchType);
5681
+ binarySearch(value, searchArray, resultArray, searchType, matchType) {
5682
+ const rowOrColumn = searchArray.binarySearch(value, searchType, matchType);
5659
5683
  if (rowOrColumn == null)
5660
5684
  return ErrorValueObject.create(ErrorType$1.NA);
5661
5685
  let resultValue;
@@ -5682,8 +5706,8 @@ const _BaseFunction = class _BaseFunction extends Disposable {
5682
5706
  const resultValue = resultArray.get(position.row, position.column) || NullValueObject.create();
5683
5707
  return resultValue.isNull() ? ErrorValueObject.create(ErrorType$1.NA) : resultValue;
5684
5708
  }
5685
- binarySearchExpand(value, searchArray, resultArray, axis = 0, searchType) {
5686
- const rowOrColumn = searchArray.binarySearch(value, searchType);
5709
+ binarySearchExpand(value, searchArray, resultArray, axis = 0, searchType, matchType) {
5710
+ const rowOrColumn = searchArray.binarySearch(value, searchType, matchType);
5687
5711
  return rowOrColumn == null ? ErrorValueObject.create(ErrorType$1.NA) : axis === 0 ? resultArray.slice([rowOrColumn, rowOrColumn + 1]) : resultArray.slice(void 0, [rowOrColumn, rowOrColumn + 1]);
5688
5712
  }
5689
5713
  equalSearchExpand(value, searchArray, resultArray, isFirst = !0, axis = 0) {
@@ -14843,11 +14867,17 @@ const _Xlookup = class _Xlookup extends BaseFunction {
14843
14867
  if (lookupValue.isArray()) {
14844
14868
  let resultArray2;
14845
14869
  return rowCountLookup === 1 ? resultArray2 = returnArray.slice([0, 1]) : resultArray2 = returnArray.slice(void 0, [0, 1]), resultArray2 == null ? ErrorValueObject.create(ErrorType$1.NA) : lookupValue.map((value) => {
14870
+ const checkErrorCombination = this._checkErrorCombination(matchModeValue, searchModeValue);
14871
+ if (checkErrorCombination)
14872
+ return checkErrorCombination;
14846
14873
  const result = this._handleSingleObject(value, lookupArray, resultArray2, matchModeValue, searchModeValue);
14847
14874
  return result.isError() ? ifNotFound : result;
14848
14875
  });
14849
14876
  }
14850
14877
  if (columnCountLookup === columnCountReturn && rowCountLookup === rowCountReturn) {
14878
+ const checkErrorCombination = this._checkErrorCombination(matchModeValue, searchModeValue);
14879
+ if (checkErrorCombination)
14880
+ return checkErrorCombination;
14851
14881
  const result = this._handleSingleObject(lookupValue, lookupArray, returnArray, matchModeValue, searchModeValue);
14852
14882
  return result.isError() ? ifNotFound : result;
14853
14883
  }
@@ -14857,13 +14887,18 @@ const _Xlookup = class _Xlookup extends BaseFunction {
14857
14887
  return resultArray == null ? ErrorValueObject.create(ErrorType$1.NA) : resultArray;
14858
14888
  }
14859
14889
  _handleExpandObject(value, searchArray, resultArray, matchModeValue, searchModeValue, axis = 0) {
14860
- return (searchModeValue === 2 || searchModeValue === -2) && matchModeValue !== 2 ? this.binarySearchExpand(
14861
- value,
14862
- searchArray,
14863
- resultArray,
14864
- axis,
14865
- this._getSearchModeValue(searchModeValue)
14866
- ) : matchModeValue === 2 ? this.fuzzySearchExpand(value, searchArray, resultArray, searchModeValue !== -1, axis) : matchModeValue === -1 || matchModeValue === 1 ? this.orderSearchExpand(
14890
+ if ((searchModeValue === 2 || searchModeValue === -2) && matchModeValue !== 2) {
14891
+ const searchType = getSearchModeValue(searchModeValue), matchType = getMatchModeValue(matchModeValue);
14892
+ return this.binarySearchExpand(
14893
+ value,
14894
+ searchArray,
14895
+ resultArray,
14896
+ axis,
14897
+ searchType,
14898
+ matchType
14899
+ );
14900
+ }
14901
+ return matchModeValue === 2 ? this.fuzzySearchExpand(value, searchArray, resultArray, searchModeValue !== -1, axis) : matchModeValue === -1 || matchModeValue === 1 ? this.orderSearchExpand(
14867
14902
  value,
14868
14903
  searchArray,
14869
14904
  resultArray,
@@ -14873,7 +14908,11 @@ const _Xlookup = class _Xlookup extends BaseFunction {
14873
14908
  ) : this.equalSearchExpand(value, searchArray, resultArray, searchModeValue !== -1, axis);
14874
14909
  }
14875
14910
  _handleSingleObject(value, searchArray, resultArray, matchModeValue, searchModeValue) {
14876
- return (searchModeValue === 2 || searchModeValue === -2) && matchModeValue !== 2 ? this.binarySearch(value, searchArray, resultArray, this._getSearchModeValue(searchModeValue)) : matchModeValue === 2 ? this.fuzzySearch(value, searchArray, resultArray, searchModeValue !== -1) : matchModeValue === -1 || matchModeValue === 1 ? this.orderSearch(
14911
+ if ((searchModeValue === 2 || searchModeValue === -2) && matchModeValue !== 2) {
14912
+ const searchType = getSearchModeValue(searchModeValue), matchType = getMatchModeValue(matchModeValue);
14913
+ return this.binarySearch(value, searchArray, resultArray, searchType, matchType);
14914
+ }
14915
+ return matchModeValue === 2 ? this.fuzzySearch(value, searchArray, resultArray, searchModeValue !== -1) : matchModeValue === -1 || matchModeValue === 1 ? this.orderSearch(
14877
14916
  value,
14878
14917
  searchArray,
14879
14918
  resultArray,
@@ -14881,8 +14920,14 @@ const _Xlookup = class _Xlookup extends BaseFunction {
14881
14920
  searchModeValue === -1
14882
14921
  ) : this.equalSearch(value, searchArray, resultArray, searchModeValue !== -1);
14883
14922
  }
14884
- _getSearchModeValue(searchModeValue) {
14885
- return searchModeValue === -2 ? ArrayBinarySearchType.MAX : ArrayBinarySearchType.MIN;
14923
+ /**
14924
+ * Wildcard matching and binary search cannot appear at the same time
14925
+ * @param matchModeValue
14926
+ * @param searchModeValue
14927
+ * @returns
14928
+ */
14929
+ _checkErrorCombination(matchModeValue, searchModeValue) {
14930
+ return matchModeValue === 2 && (searchModeValue === -2 || searchModeValue === 2) ? ErrorValueObject.create(ErrorType$1.VALUE) : null;
14886
14931
  }
14887
14932
  };
14888
14933
  __name(_Xlookup, "Xlookup");
@@ -14924,8 +14969,8 @@ const _Xmatch = class _Xmatch extends BaseFunction {
14924
14969
  _handleSingleObject(value, searchArray, matchModeValue, searchModeValue) {
14925
14970
  let rowOrColumn;
14926
14971
  if ((searchModeValue === 2 || searchModeValue === -2) && matchModeValue !== 2) {
14927
- const searchType = this._getSearchModeValue(searchModeValue);
14928
- rowOrColumn = searchArray.binarySearch(value, searchType);
14972
+ const searchType = getSearchModeValue(searchModeValue), matchType = getMatchModeValue(matchModeValue);
14973
+ rowOrColumn = searchArray.binarySearch(value, searchType, matchType);
14929
14974
  } else if (matchModeValue === 2) {
14930
14975
  const matchObject = searchArray.compare(value, compareToken.EQUALS);
14931
14976
  let position;
@@ -14948,9 +14993,6 @@ const _Xmatch = class _Xmatch extends BaseFunction {
14948
14993
  }
14949
14994
  return rowOrColumn == null ? ErrorValueObject.create(ErrorType$1.NA) : NumberValueObject.create(rowOrColumn + 1);
14950
14995
  }
14951
- _getSearchModeValue(searchModeValue) {
14952
- return searchModeValue === -2 ? ArrayBinarySearchType.MAX : ArrayBinarySearchType.MIN;
14953
- }
14954
14996
  };
14955
14997
  __name(_Xmatch, "Xmatch");
14956
14998
  let Xmatch = _Xmatch;
@@ -14987,9 +15029,7 @@ const functionLookup = [
14987
15029
  [Wraprows, FUNCTION_NAMES_LOOKUP.WRAPROWS],
14988
15030
  [Xlookup, FUNCTION_NAMES_LOOKUP.XLOOKUP],
14989
15031
  [Xmatch, FUNCTION_NAMES_LOOKUP.XMATCH]
14990
- ];
14991
- var FUNCTION_NAMES_MATH = /* @__PURE__ */ ((FUNCTION_NAMES_MATH2) => (FUNCTION_NAMES_MATH2.ABS = "ABS", FUNCTION_NAMES_MATH2.ACOS = "ACOS", FUNCTION_NAMES_MATH2.ACOSH = "ACOSH", FUNCTION_NAMES_MATH2.ACOT = "ACOT", FUNCTION_NAMES_MATH2.ACOTH = "ACOTH", FUNCTION_NAMES_MATH2.AGGREGATE = "AGGREGATE", FUNCTION_NAMES_MATH2.ARABIC = "ARABIC", FUNCTION_NAMES_MATH2.ASIN = "ASIN", FUNCTION_NAMES_MATH2.ASINH = "ASINH", FUNCTION_NAMES_MATH2.ATAN = "ATAN", FUNCTION_NAMES_MATH2.ATAN2 = "ATAN2", FUNCTION_NAMES_MATH2.ATANH = "ATANH", FUNCTION_NAMES_MATH2.BASE = "BASE", FUNCTION_NAMES_MATH2.CEILING = "CEILING", FUNCTION_NAMES_MATH2.CEILING_MATH = "CEILING.MATH", FUNCTION_NAMES_MATH2.CEILING_PRECISE = "CEILING.PRECISE", FUNCTION_NAMES_MATH2.COMBIN = "COMBIN", FUNCTION_NAMES_MATH2.COMBINA = "COMBINA", FUNCTION_NAMES_MATH2.COS = "COS", FUNCTION_NAMES_MATH2.COSH = "COSH", FUNCTION_NAMES_MATH2.COT = "COT", FUNCTION_NAMES_MATH2.COTH = "COTH", FUNCTION_NAMES_MATH2.CSC = "CSC", FUNCTION_NAMES_MATH2.CSCH = "CSCH", FUNCTION_NAMES_MATH2.DECIMAL = "DECIMAL", FUNCTION_NAMES_MATH2.DEGREES = "DEGREES", FUNCTION_NAMES_MATH2.EVEN = "EVEN", FUNCTION_NAMES_MATH2.EXP = "EXP", FUNCTION_NAMES_MATH2.FACT = "FACT", FUNCTION_NAMES_MATH2.FACTDOUBLE = "FACTDOUBLE", FUNCTION_NAMES_MATH2.FLOOR = "FLOOR", FUNCTION_NAMES_MATH2.FLOOR_MATH = "FLOOR.MATH", FUNCTION_NAMES_MATH2.FLOOR_PRECISE = "FLOOR.PRECISE", FUNCTION_NAMES_MATH2.GCD = "GCD", FUNCTION_NAMES_MATH2.INT = "INT", FUNCTION_NAMES_MATH2.ISO_CEILING = "ISO.CEILING", FUNCTION_NAMES_MATH2.LCM = "LCM", FUNCTION_NAMES_MATH2.LET = "LET", FUNCTION_NAMES_MATH2.LN = "LN", FUNCTION_NAMES_MATH2.LOG = "LOG", FUNCTION_NAMES_MATH2.LOG10 = "LOG10", FUNCTION_NAMES_MATH2.MDETERM = "MDETERM", FUNCTION_NAMES_MATH2.MINVERSE = "MINVERSE", FUNCTION_NAMES_MATH2.MMULT = "MMULT", FUNCTION_NAMES_MATH2.MOD = "MOD", FUNCTION_NAMES_MATH2.MROUND = "MROUND", FUNCTION_NAMES_MATH2.MULTINOMIAL = "MULTINOMIAL", FUNCTION_NAMES_MATH2.MUNIT = "MUNIT", FUNCTION_NAMES_MATH2.ODD = "ODD", FUNCTION_NAMES_MATH2.PI = "PI", FUNCTION_NAMES_MATH2.POWER = "POWER", FUNCTION_NAMES_MATH2.PRODUCT = "PRODUCT", FUNCTION_NAMES_MATH2.QUOTIENT = "QUOTIENT", FUNCTION_NAMES_MATH2.RADIANS = "RADIANS", FUNCTION_NAMES_MATH2.RAND = "RAND", FUNCTION_NAMES_MATH2.RANDARRAY = "RANDARRAY", FUNCTION_NAMES_MATH2.RANDBETWEEN = "RANDBETWEEN", FUNCTION_NAMES_MATH2.ROMAN = "ROMAN", FUNCTION_NAMES_MATH2.ROUND = "ROUND", FUNCTION_NAMES_MATH2.ROUNDDOWN = "ROUNDDOWN", FUNCTION_NAMES_MATH2.ROUNDUP = "ROUNDUP", FUNCTION_NAMES_MATH2.SEC = "SEC", FUNCTION_NAMES_MATH2.SECH = "SECH", FUNCTION_NAMES_MATH2.SERIESSUM = "SERIESSUM", FUNCTION_NAMES_MATH2.SEQUENCE = "SEQUENCE", FUNCTION_NAMES_MATH2.SIGN = "SIGN", FUNCTION_NAMES_MATH2.SIN = "SIN", FUNCTION_NAMES_MATH2.SINH = "SINH", FUNCTION_NAMES_MATH2.SQRT = "SQRT", FUNCTION_NAMES_MATH2.SQRTPI = "SQRTPI", FUNCTION_NAMES_MATH2.SUBTOTAL = "SUBTOTAL", FUNCTION_NAMES_MATH2.SUM = "SUM", FUNCTION_NAMES_MATH2.SUMIF = "SUMIF", FUNCTION_NAMES_MATH2.SUMIFS = "SUMIFS", FUNCTION_NAMES_MATH2.SUMPRODUCT = "SUMPRODUCT", FUNCTION_NAMES_MATH2.SUMSQ = "SUMSQ", FUNCTION_NAMES_MATH2.SUMX2MY2 = "SUMX2MY2", FUNCTION_NAMES_MATH2.SUMX2PY2 = "SUMX2PY2", FUNCTION_NAMES_MATH2.SUMXMY2 = "SUMXMY2", FUNCTION_NAMES_MATH2.TAN = "TAN", FUNCTION_NAMES_MATH2.TANH = "TANH", FUNCTION_NAMES_MATH2.TRUNC = "TRUNC", FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH || {});
14992
- const _Abs = class _Abs extends BaseFunction {
15032
+ ], _Abs = class _Abs extends BaseFunction {
14993
15033
  constructor() {
14994
15034
  super(...arguments);
14995
15035
  __publicField(this, "minParams", 1);
@@ -15775,6 +15815,7 @@ const _FloorPrecise = class _FloorPrecise extends BaseFunction {
15775
15815
  };
15776
15816
  __name(_FloorPrecise, "FloorPrecise");
15777
15817
  let FloorPrecise = _FloorPrecise;
15818
+ var FUNCTION_NAMES_MATH = /* @__PURE__ */ ((FUNCTION_NAMES_MATH2) => (FUNCTION_NAMES_MATH2.ABS = "ABS", FUNCTION_NAMES_MATH2.ACOS = "ACOS", FUNCTION_NAMES_MATH2.ACOSH = "ACOSH", FUNCTION_NAMES_MATH2.ACOT = "ACOT", FUNCTION_NAMES_MATH2.ACOTH = "ACOTH", FUNCTION_NAMES_MATH2.AGGREGATE = "AGGREGATE", FUNCTION_NAMES_MATH2.ARABIC = "ARABIC", FUNCTION_NAMES_MATH2.ASIN = "ASIN", FUNCTION_NAMES_MATH2.ASINH = "ASINH", FUNCTION_NAMES_MATH2.ATAN = "ATAN", FUNCTION_NAMES_MATH2.ATAN2 = "ATAN2", FUNCTION_NAMES_MATH2.ATANH = "ATANH", FUNCTION_NAMES_MATH2.BASE = "BASE", FUNCTION_NAMES_MATH2.CEILING = "CEILING", FUNCTION_NAMES_MATH2.CEILING_MATH = "CEILING.MATH", FUNCTION_NAMES_MATH2.CEILING_PRECISE = "CEILING.PRECISE", FUNCTION_NAMES_MATH2.COMBIN = "COMBIN", FUNCTION_NAMES_MATH2.COMBINA = "COMBINA", FUNCTION_NAMES_MATH2.COS = "COS", FUNCTION_NAMES_MATH2.COSH = "COSH", FUNCTION_NAMES_MATH2.COT = "COT", FUNCTION_NAMES_MATH2.COTH = "COTH", FUNCTION_NAMES_MATH2.CSC = "CSC", FUNCTION_NAMES_MATH2.CSCH = "CSCH", FUNCTION_NAMES_MATH2.DECIMAL = "DECIMAL", FUNCTION_NAMES_MATH2.DEGREES = "DEGREES", FUNCTION_NAMES_MATH2.EVEN = "EVEN", FUNCTION_NAMES_MATH2.EXP = "EXP", FUNCTION_NAMES_MATH2.FACT = "FACT", FUNCTION_NAMES_MATH2.FACTDOUBLE = "FACTDOUBLE", FUNCTION_NAMES_MATH2.FLOOR = "FLOOR", FUNCTION_NAMES_MATH2.FLOOR_MATH = "FLOOR.MATH", FUNCTION_NAMES_MATH2.FLOOR_PRECISE = "FLOOR.PRECISE", FUNCTION_NAMES_MATH2.GCD = "GCD", FUNCTION_NAMES_MATH2.INT = "INT", FUNCTION_NAMES_MATH2.ISO_CEILING = "ISO.CEILING", FUNCTION_NAMES_MATH2.LCM = "LCM", FUNCTION_NAMES_MATH2.LET = "LET", FUNCTION_NAMES_MATH2.LN = "LN", FUNCTION_NAMES_MATH2.LOG = "LOG", FUNCTION_NAMES_MATH2.LOG10 = "LOG10", FUNCTION_NAMES_MATH2.MDETERM = "MDETERM", FUNCTION_NAMES_MATH2.MINVERSE = "MINVERSE", FUNCTION_NAMES_MATH2.MMULT = "MMULT", FUNCTION_NAMES_MATH2.MOD = "MOD", FUNCTION_NAMES_MATH2.MROUND = "MROUND", FUNCTION_NAMES_MATH2.MULTINOMIAL = "MULTINOMIAL", FUNCTION_NAMES_MATH2.MUNIT = "MUNIT", FUNCTION_NAMES_MATH2.ODD = "ODD", FUNCTION_NAMES_MATH2.PI = "PI", FUNCTION_NAMES_MATH2.POWER = "POWER", FUNCTION_NAMES_MATH2.PRODUCT = "PRODUCT", FUNCTION_NAMES_MATH2.QUOTIENT = "QUOTIENT", FUNCTION_NAMES_MATH2.RADIANS = "RADIANS", FUNCTION_NAMES_MATH2.RAND = "RAND", FUNCTION_NAMES_MATH2.RANDARRAY = "RANDARRAY", FUNCTION_NAMES_MATH2.RANDBETWEEN = "RANDBETWEEN", FUNCTION_NAMES_MATH2.ROMAN = "ROMAN", FUNCTION_NAMES_MATH2.ROUND = "ROUND", FUNCTION_NAMES_MATH2.ROUNDDOWN = "ROUNDDOWN", FUNCTION_NAMES_MATH2.ROUNDUP = "ROUNDUP", FUNCTION_NAMES_MATH2.SEC = "SEC", FUNCTION_NAMES_MATH2.SECH = "SECH", FUNCTION_NAMES_MATH2.SERIESSUM = "SERIESSUM", FUNCTION_NAMES_MATH2.SEQUENCE = "SEQUENCE", FUNCTION_NAMES_MATH2.SIGN = "SIGN", FUNCTION_NAMES_MATH2.SIN = "SIN", FUNCTION_NAMES_MATH2.SINH = "SINH", FUNCTION_NAMES_MATH2.SQRT = "SQRT", FUNCTION_NAMES_MATH2.SQRTPI = "SQRTPI", FUNCTION_NAMES_MATH2.SUBTOTAL = "SUBTOTAL", FUNCTION_NAMES_MATH2.SUM = "SUM", FUNCTION_NAMES_MATH2.SUMIF = "SUMIF", FUNCTION_NAMES_MATH2.SUMIFS = "SUMIFS", FUNCTION_NAMES_MATH2.SUMPRODUCT = "SUMPRODUCT", FUNCTION_NAMES_MATH2.SUMSQ = "SUMSQ", FUNCTION_NAMES_MATH2.SUMX2MY2 = "SUMX2MY2", FUNCTION_NAMES_MATH2.SUMX2PY2 = "SUMX2PY2", FUNCTION_NAMES_MATH2.SUMXMY2 = "SUMXMY2", FUNCTION_NAMES_MATH2.TAN = "TAN", FUNCTION_NAMES_MATH2.TANH = "TANH", FUNCTION_NAMES_MATH2.TRUNC = "TRUNC", FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH || {});
15778
15819
  const _Gcd = class _Gcd extends BaseFunction {
15779
15820
  constructor() {
15780
15821
  super(...arguments);
@@ -16630,6 +16671,51 @@ const _Sech = class _Sech extends BaseFunction {
16630
16671
  };
16631
16672
  __name(_Sech, "Sech");
16632
16673
  let Sech = _Sech;
16674
+ const _Sequence = class _Sequence extends BaseFunction {
16675
+ constructor() {
16676
+ super(...arguments);
16677
+ __publicField(this, "minParams", 1);
16678
+ __publicField(this, "maxParams", 4);
16679
+ }
16680
+ calculate(rows, columns, start, step) {
16681
+ let _rows = rows, _columns = columns != null ? columns : NumberValueObject.create(1), _start = start != null ? start : NumberValueObject.create(1), _step = step != null ? step : NumberValueObject.create(1);
16682
+ _rows.isNull() && (_rows = NumberValueObject.create(1)), _columns.isNull() && (_columns = NumberValueObject.create(1)), _start.isNull() && (_start = NumberValueObject.create(1)), _step.isNull() && (_step = NumberValueObject.create(1));
16683
+ const maxRowLength = Math.max(
16684
+ _rows.isArray() ? _rows.getRowCount() : 1,
16685
+ _columns.isArray() ? _columns.getRowCount() : 1,
16686
+ _start.isArray() ? _start.getRowCount() : 1,
16687
+ _step.isArray() ? _step.getRowCount() : 1
16688
+ ), maxColumnLength = Math.max(
16689
+ _rows.isArray() ? _rows.getColumnCount() : 1,
16690
+ _columns.isArray() ? _columns.getColumnCount() : 1,
16691
+ _start.isArray() ? _start.getColumnCount() : 1,
16692
+ _step.isArray() ? _step.getColumnCount() : 1
16693
+ ), 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) => {
16694
+ const columnsObject = columnsArray.get(rowIndex, columnIndex), startObject = startArray.get(rowIndex, columnIndex), stepObject = stepArray.get(rowIndex, columnIndex);
16695
+ return rowsObject.isError() ? rowsObject : columnsObject.isError() ? columnsObject : startObject.isError() ? startObject : stepObject.isError() ? stepObject : this._getResult(rowsObject, columnsObject, startObject, stepObject, maxRowLength, maxColumnLength);
16696
+ });
16697
+ return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
16698
+ }
16699
+ _getResult(rowsObject, columnsObject, startObject, stepObject, maxRowLength, maxColumnLength) {
16700
+ const { isError, errorObject, variants } = checkVariantsErrorIsStringToNumber(rowsObject, columnsObject, startObject, stepObject);
16701
+ if (isError)
16702
+ return errorObject;
16703
+ const [_rowsObject, _columnsObject, _startObject, _stepObject] = variants, rowsValue = Math.floor(+_rowsObject.getValue()), columnsValue = Math.floor(+_columnsObject.getValue()), startValue = +_startObject.getValue(), stepValue = +_stepObject.getValue();
16704
+ if (rowsValue < 0 || columnsValue < 0)
16705
+ return ErrorValueObject.create(ErrorType$1.VALUE);
16706
+ if (rowsValue === 0 || columnsValue === 0)
16707
+ return ErrorValueObject.create(ErrorType$1.CALC);
16708
+ const result = [];
16709
+ for (let r = 0; r < rowsValue; r++) {
16710
+ result[r] = [];
16711
+ for (let c = 0; c < columnsValue; c++)
16712
+ result[r][c] = startValue + (r * columnsValue + c) * stepValue;
16713
+ }
16714
+ return maxRowLength > 1 || maxColumnLength > 1 ? NumberValueObject.create(result[0][0]) : ArrayValueObject.createByArray(result);
16715
+ }
16716
+ };
16717
+ __name(_Sequence, "Sequence");
16718
+ let Sequence = _Sequence;
16633
16719
  const _Seriessum = class _Seriessum extends BaseFunction {
16634
16720
  constructor() {
16635
16721
  super(...arguments);
@@ -16695,51 +16781,6 @@ const _Seriessum = class _Seriessum extends BaseFunction {
16695
16781
  };
16696
16782
  __name(_Seriessum, "Seriessum");
16697
16783
  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
16784
  const _Sign = class _Sign extends BaseFunction {
16744
16785
  constructor() {
16745
16786
  super(...arguments);
@@ -18360,9 +18401,7 @@ const functionStatistical = [
18360
18401
  [VarS, FUNCTION_NAMES_STATISTICAL.VAR_S],
18361
18402
  [Vara, FUNCTION_NAMES_STATISTICAL.VARA],
18362
18403
  [Varpa, FUNCTION_NAMES_STATISTICAL.VARPA]
18363
- ];
18364
- var FUNCTION_NAMES_TEXT = /* @__PURE__ */ ((FUNCTION_NAMES_TEXT2) => (FUNCTION_NAMES_TEXT2.ASC = "ASC", FUNCTION_NAMES_TEXT2.ARRAYTOTEXT = "ARRAYTOTEXT", FUNCTION_NAMES_TEXT2.BAHTTEXT = "BAHTTEXT", FUNCTION_NAMES_TEXT2.CHAR = "CHAR", FUNCTION_NAMES_TEXT2.CLEAN = "CLEAN", FUNCTION_NAMES_TEXT2.CODE = "CODE", FUNCTION_NAMES_TEXT2.CONCAT = "CONCAT", FUNCTION_NAMES_TEXT2.CONCATENATE = "CONCATENATE", FUNCTION_NAMES_TEXT2.DBCS = "DBCS", FUNCTION_NAMES_TEXT2.DOLLAR = "DOLLAR", FUNCTION_NAMES_TEXT2.EXACT = "EXACT", FUNCTION_NAMES_TEXT2.FIND = "FIND", FUNCTION_NAMES_TEXT2.FINDB = "FINDB", FUNCTION_NAMES_TEXT2.FIXED = "FIXED", FUNCTION_NAMES_TEXT2.LEFT = "LEFT", FUNCTION_NAMES_TEXT2.LEFTB = "LEFTB", FUNCTION_NAMES_TEXT2.LEN = "LEN", FUNCTION_NAMES_TEXT2.LENB = "LENB", FUNCTION_NAMES_TEXT2.LOWER = "LOWER", FUNCTION_NAMES_TEXT2.MID = "MID", FUNCTION_NAMES_TEXT2.MIDB = "MIDB", FUNCTION_NAMES_TEXT2.NUMBERVALUE = "NUMBERVALUE", FUNCTION_NAMES_TEXT2.PHONETIC = "PHONETIC", FUNCTION_NAMES_TEXT2.PROPER = "PROPER", FUNCTION_NAMES_TEXT2.REPLACE = "REPLACE", FUNCTION_NAMES_TEXT2.REPLACEB = "REPLACEB", FUNCTION_NAMES_TEXT2.REPT = "REPT", FUNCTION_NAMES_TEXT2.RIGHT = "RIGHT", FUNCTION_NAMES_TEXT2.RIGHTB = "RIGHTB", FUNCTION_NAMES_TEXT2.SEARCH = "SEARCH", FUNCTION_NAMES_TEXT2.SEARCHB = "SEARCHB", FUNCTION_NAMES_TEXT2.SUBSTITUTE = "SUBSTITUTE", FUNCTION_NAMES_TEXT2.T = "T", FUNCTION_NAMES_TEXT2.TEXT = "TEXT", FUNCTION_NAMES_TEXT2.TEXTAFTER = "TEXTAFTER", FUNCTION_NAMES_TEXT2.TEXTBEFORE = "TEXTBEFORE", FUNCTION_NAMES_TEXT2.TEXTJOIN = "TEXTJOIN", FUNCTION_NAMES_TEXT2.TEXTSPLIT = "TEXTSPLIT", FUNCTION_NAMES_TEXT2.TRIM = "TRIM", FUNCTION_NAMES_TEXT2.UNICHAR = "UNICHAR", FUNCTION_NAMES_TEXT2.UNICODE = "UNICODE", FUNCTION_NAMES_TEXT2.UPPER = "UPPER", FUNCTION_NAMES_TEXT2.VALUE = "VALUE", FUNCTION_NAMES_TEXT2.VALUETOTEXT = "VALUETOTEXT", FUNCTION_NAMES_TEXT2.CALL = "CALL", FUNCTION_NAMES_TEXT2.EUROCONVERT = "EUROCONVERT", FUNCTION_NAMES_TEXT2.REGISTER_ID = "REGISTER.ID", FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT || {});
18365
- const _Concat = class _Concat extends BaseFunction {
18404
+ ], _Concat = class _Concat extends BaseFunction {
18366
18405
  constructor() {
18367
18406
  super(...arguments);
18368
18407
  __publicField(this, "minParams", 1);
@@ -18419,6 +18458,61 @@ const _Concatenate = class _Concatenate extends BaseFunction {
18419
18458
  };
18420
18459
  __name(_Concatenate, "Concatenate");
18421
18460
  let Concatenate = _Concatenate;
18461
+ var FUNCTION_NAMES_TEXT = /* @__PURE__ */ ((FUNCTION_NAMES_TEXT2) => (FUNCTION_NAMES_TEXT2.ASC = "ASC", FUNCTION_NAMES_TEXT2.ARRAYTOTEXT = "ARRAYTOTEXT", FUNCTION_NAMES_TEXT2.BAHTTEXT = "BAHTTEXT", FUNCTION_NAMES_TEXT2.CHAR = "CHAR", FUNCTION_NAMES_TEXT2.CLEAN = "CLEAN", FUNCTION_NAMES_TEXT2.CODE = "CODE", FUNCTION_NAMES_TEXT2.CONCAT = "CONCAT", FUNCTION_NAMES_TEXT2.CONCATENATE = "CONCATENATE", FUNCTION_NAMES_TEXT2.DBCS = "DBCS", FUNCTION_NAMES_TEXT2.DOLLAR = "DOLLAR", FUNCTION_NAMES_TEXT2.EXACT = "EXACT", FUNCTION_NAMES_TEXT2.FIND = "FIND", FUNCTION_NAMES_TEXT2.FINDB = "FINDB", FUNCTION_NAMES_TEXT2.FIXED = "FIXED", FUNCTION_NAMES_TEXT2.LEFT = "LEFT", FUNCTION_NAMES_TEXT2.LEFTB = "LEFTB", FUNCTION_NAMES_TEXT2.LEN = "LEN", FUNCTION_NAMES_TEXT2.LENB = "LENB", FUNCTION_NAMES_TEXT2.LOWER = "LOWER", FUNCTION_NAMES_TEXT2.MID = "MID", FUNCTION_NAMES_TEXT2.MIDB = "MIDB", FUNCTION_NAMES_TEXT2.NUMBERVALUE = "NUMBERVALUE", FUNCTION_NAMES_TEXT2.PHONETIC = "PHONETIC", FUNCTION_NAMES_TEXT2.PROPER = "PROPER", FUNCTION_NAMES_TEXT2.REPLACE = "REPLACE", FUNCTION_NAMES_TEXT2.REPLACEB = "REPLACEB", FUNCTION_NAMES_TEXT2.REPT = "REPT", FUNCTION_NAMES_TEXT2.RIGHT = "RIGHT", FUNCTION_NAMES_TEXT2.RIGHTB = "RIGHTB", FUNCTION_NAMES_TEXT2.SEARCH = "SEARCH", FUNCTION_NAMES_TEXT2.SEARCHB = "SEARCHB", FUNCTION_NAMES_TEXT2.SUBSTITUTE = "SUBSTITUTE", FUNCTION_NAMES_TEXT2.T = "T", FUNCTION_NAMES_TEXT2.TEXT = "TEXT", FUNCTION_NAMES_TEXT2.TEXTAFTER = "TEXTAFTER", FUNCTION_NAMES_TEXT2.TEXTBEFORE = "TEXTBEFORE", FUNCTION_NAMES_TEXT2.TEXTJOIN = "TEXTJOIN", FUNCTION_NAMES_TEXT2.TEXTSPLIT = "TEXTSPLIT", FUNCTION_NAMES_TEXT2.TRIM = "TRIM", FUNCTION_NAMES_TEXT2.UNICHAR = "UNICHAR", FUNCTION_NAMES_TEXT2.UNICODE = "UNICODE", FUNCTION_NAMES_TEXT2.UPPER = "UPPER", FUNCTION_NAMES_TEXT2.VALUE = "VALUE", FUNCTION_NAMES_TEXT2.VALUETOTEXT = "VALUETOTEXT", FUNCTION_NAMES_TEXT2.CALL = "CALL", FUNCTION_NAMES_TEXT2.EUROCONVERT = "EUROCONVERT", FUNCTION_NAMES_TEXT2.REGISTER_ID = "REGISTER.ID", FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT || {});
18462
+ function charLenByte(str) {
18463
+ let byteCount = 0;
18464
+ for (let i = 0; i < str.length; i++) {
18465
+ const charCode = str.charCodeAt(i);
18466
+ charCode >= 12352 && charCode <= 12543 || // Japanese hiragana and katakana
18467
+ charCode >= 19968 && charCode <= 40959 || // Chinese (simplified and traditional)
18468
+ charCode >= 44032 && charCode <= 55215 ? byteCount += 2 : byteCount += 1;
18469
+ }
18470
+ return byteCount;
18471
+ }
18472
+ __name(charLenByte, "charLenByte");
18473
+ const _Leftb = class _Leftb extends BaseFunction {
18474
+ constructor() {
18475
+ super(...arguments);
18476
+ __publicField(this, "minParams", 1);
18477
+ __publicField(this, "maxParams", 2);
18478
+ }
18479
+ calculate(text, numBytes) {
18480
+ if (text.isError())
18481
+ return text;
18482
+ if (numBytes != null && numBytes.isError())
18483
+ return numBytes;
18484
+ const _numBytes = numBytes || NumberValueObject.create(1), maxRowLength = Math.max(
18485
+ text.isArray() ? text.getRowCount() : 1,
18486
+ _numBytes && _numBytes.isArray() ? _numBytes.getRowCount() : 1
18487
+ ), maxColumnLength = Math.max(
18488
+ text.isArray() ? text.getColumnCount() : 1,
18489
+ _numBytes && _numBytes.isArray() ? _numBytes.getColumnCount() : 1
18490
+ ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text), numBytesArray = expandArrayValueObject(maxRowLength, maxColumnLength, _numBytes);
18491
+ return textArray.map((textValue, rowIndex, columnIndex) => this._handleSingleText(textValue, rowIndex, columnIndex, numBytesArray));
18492
+ }
18493
+ _handleSingleText(textValue, rowIndex, columnIndex, numBytesArray) {
18494
+ let numBytes = numBytesArray.get(rowIndex, columnIndex) || NumberValueObject.create(1);
18495
+ if (numBytes.isError())
18496
+ return numBytes;
18497
+ let textValueString = textValue.getValue();
18498
+ if (textValue.isNull() && (textValueString = ""), textValue.isBoolean() && (textValueString = textValueString ? "TRUE" : "FALSE"), textValueString = `${textValueString}`, (numBytes.isString() || numBytes.isBoolean() || numBytes.isNull()) && (numBytes = numBytes.convertToNumberObjectValue()), numBytes.isError())
18499
+ return numBytes;
18500
+ const numBytesValueNumber = Math.floor(+numBytes.getValue());
18501
+ return numBytesValueNumber < 0 ? ErrorValueObject.create(ErrorType$1.VALUE) : StringValueObject.create(this._sliceByBytes(textValueString, numBytesValueNumber));
18502
+ }
18503
+ _sliceByBytes(text, numBytes) {
18504
+ let byteCount = 0, sliceIndex = 0;
18505
+ for (let i = 0; i < text.length; i++) {
18506
+ const char = text[i], charByteLength = charLenByte(char);
18507
+ if (byteCount + charByteLength > numBytes)
18508
+ break;
18509
+ byteCount += charByteLength, sliceIndex++;
18510
+ }
18511
+ return [...text].slice(0, sliceIndex).join("");
18512
+ }
18513
+ };
18514
+ __name(_Leftb, "Leftb");
18515
+ let Leftb = _Leftb;
18422
18516
  const _Len = class _Len extends BaseFunction {
18423
18517
  constructor() {
18424
18518
  super(...arguments);
@@ -18446,17 +18540,6 @@ const _Len = class _Len extends BaseFunction {
18446
18540
  };
18447
18541
  __name(_Len, "Len");
18448
18542
  let Len = _Len;
18449
- function charLenByte(str) {
18450
- let byteCount = 0;
18451
- for (let i = 0; i < str.length; i++) {
18452
- const charCode = str.charCodeAt(i);
18453
- charCode >= 12352 && charCode <= 12543 || // Japanese hiragana and katakana
18454
- charCode >= 19968 && charCode <= 40959 || // Chinese (simplified and traditional)
18455
- charCode >= 44032 && charCode <= 55215 ? byteCount += 2 : byteCount += 1;
18456
- }
18457
- return byteCount;
18458
- }
18459
- __name(charLenByte, "charLenByte");
18460
18543
  const _Lenb = class _Lenb extends BaseFunction {
18461
18544
  constructor() {
18462
18545
  super(...arguments);
@@ -18503,6 +18586,47 @@ const _Lower = class _Lower extends BaseFunction {
18503
18586
  };
18504
18587
  __name(_Lower, "Lower");
18505
18588
  let Lower = _Lower;
18589
+ const _Mid = class _Mid extends BaseFunction {
18590
+ constructor() {
18591
+ super(...arguments);
18592
+ __publicField(this, "minParams", 3);
18593
+ __publicField(this, "maxParams", 3);
18594
+ }
18595
+ calculate(withinText, startNum, numChars) {
18596
+ if (withinText.isError())
18597
+ return withinText;
18598
+ if (startNum.isError())
18599
+ return startNum;
18600
+ if (numChars.isError())
18601
+ return numChars;
18602
+ const maxRowLength = Math.max(
18603
+ withinText.isArray() ? withinText.getRowCount() : 1,
18604
+ startNum.isArray() ? startNum.getRowCount() : 1,
18605
+ numChars.isArray() ? numChars.getRowCount() : 1
18606
+ ), maxColumnLength = Math.max(
18607
+ withinText.isArray() ? withinText.getColumnCount() : 1,
18608
+ startNum.isArray() ? startNum.getColumnCount() : 1,
18609
+ numChars.isArray() ? numChars.getColumnCount() : 1
18610
+ ), withinTextArray = expandArrayValueObject(maxRowLength, maxColumnLength, withinText), startNumArray = expandArrayValueObject(maxRowLength, maxColumnLength, startNum), numCharsArray = expandArrayValueObject(maxRowLength, maxColumnLength, numChars);
18611
+ return withinTextArray.map((withinTextValue, rowIndex, columnIndex) => this._handleSingleText(withinTextValue, rowIndex, columnIndex, startNumArray, numCharsArray));
18612
+ }
18613
+ _handleSingleText(withinTextValue, rowIndex, columnIndex, startNumArray, numCharsArray) {
18614
+ let startNumValue = startNumArray.get(rowIndex, columnIndex) || NullValueObject.create(), numCharsValue = numCharsArray.get(rowIndex, columnIndex) || NullValueObject.create();
18615
+ if (startNumValue.isError())
18616
+ return startNumValue;
18617
+ if (numCharsValue.isError())
18618
+ return numCharsValue;
18619
+ let withinTextValueString = withinTextValue.getValue();
18620
+ if (withinTextValue.isNull() && (withinTextValueString = ""), withinTextValue.isBoolean() && (withinTextValueString = withinTextValueString ? "TRUE" : "FALSE"), withinTextValueString = `${withinTextValueString}`, (startNumValue.isString() || startNumValue.isBoolean() || startNumValue.isNull()) && (startNumValue = startNumValue.convertToNumberObjectValue()), startNumValue.isError())
18621
+ return startNumValue;
18622
+ if ((numCharsValue.isString() || numCharsValue.isBoolean() || numCharsValue.isNull()) && (numCharsValue = numCharsValue.convertToNumberObjectValue()), numCharsValue.isError())
18623
+ return numCharsValue;
18624
+ const startNumValueNumber = Math.floor(+startNumValue.getValue()) - 1, numCharsValueNumber = numCharsValue.getValue();
18625
+ return startNumValueNumber < 0 || numCharsValueNumber < 0 ? ErrorValueObject.create(ErrorType$1.VALUE) : StringValueObject.create(withinTextValueString.substring(startNumValueNumber, startNumValueNumber + numCharsValueNumber));
18626
+ }
18627
+ };
18628
+ __name(_Mid, "Mid");
18629
+ let Mid = _Mid;
18506
18630
  const _Rept = class _Rept extends BaseFunction {
18507
18631
  constructor() {
18508
18632
  super(...arguments);
@@ -18538,7 +18662,7 @@ const _Rept = class _Rept extends BaseFunction {
18538
18662
  };
18539
18663
  __name(_Rept, "Rept");
18540
18664
  let Rept = _Rept;
18541
- const getFormatPreview = /* @__PURE__ */ __name((pattern, value) => numfmt.format(pattern, value), "getFormatPreview"), _Text = class _Text extends BaseFunction {
18665
+ const getFormatPreview = /* @__PURE__ */ __name((pattern, value) => numfmt.format(pattern, value, { throws: !1 }), "getFormatPreview"), _Text = class _Text extends BaseFunction {
18542
18666
  constructor() {
18543
18667
  super(...arguments);
18544
18668
  __publicField(this, "minParams", 2);
@@ -18557,19 +18681,24 @@ const getFormatPreview = /* @__PURE__ */ __name((pattern, value) => numfmt.forma
18557
18681
  formatText.isArray() ? formatText.getColumnCount() : 1
18558
18682
  ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text), formatTextArray = expandArrayValueObject(maxRowLength, maxColumnLength, formatText);
18559
18683
  return textArray.map((textValue, rowIndex, columnIndex) => {
18560
- if (textValue.isError() || textValue.isString() || textValue.isBoolean())
18684
+ if (textValue.isError())
18561
18685
  return textValue;
18562
18686
  let formatTextValue = formatTextArray.get(rowIndex, columnIndex) || StringValueObject.create(" ");
18563
18687
  if (formatTextValue.isError())
18564
18688
  return formatTextValue;
18565
18689
  if (formatTextValue.isBoolean())
18566
18690
  return ErrorValueObject.create(ErrorType$1.VALUE);
18567
- formatTextValue.isNull() && (formatTextValue = StringValueObject.create(" "));
18568
- const formatTextValueString = `${formatTextValue.getValue()}`;
18691
+ if (textValue.isBoolean())
18692
+ return textValue;
18569
18693
  let textValueNumber = textValue.getValue();
18570
- textValue.isNull() && (textValueNumber = 0);
18571
- const previewText = getFormatPreview(formatTextValueString, textValueNumber);
18572
- return StringValueObject.create(previewText);
18694
+ if (textValue.isNull() && (textValueNumber = 0), textValue.isString()) {
18695
+ if (!isRealNum(textValueNumber))
18696
+ return textValue;
18697
+ textValueNumber = Number(textValueNumber);
18698
+ }
18699
+ formatTextValue.isNull() && (formatTextValue = StringValueObject.create(" "));
18700
+ const formatTextValueString = `${formatTextValue.getValue()}`, previewText = getFormatPreview(formatTextValueString, textValueNumber);
18701
+ return StringValueObject.create(formatTextValueString === " " ? previewText.trimEnd() : previewText);
18573
18702
  });
18574
18703
  }
18575
18704
  };
@@ -18582,8 +18711,6 @@ const _Textafter = class _Textafter extends BaseFunction {
18582
18711
  __publicField(this, "maxParams", 6);
18583
18712
  }
18584
18713
  calculate(text, delimiter, instanceNum, matchMode, matchEnd, ifNotFound) {
18585
- let _delimiter = delimiter;
18586
- _delimiter.isArray() && (_delimiter = _delimiter.get(0, 0));
18587
18714
  let instanceNumIsNull = !1, _instanceNum = instanceNum != null ? instanceNum : NumberValueObject.create(1);
18588
18715
  _instanceNum.isNull() && (instanceNumIsNull = !0, _instanceNum = NumberValueObject.create(1));
18589
18716
  const onlyThreeVariant = !matchMode, _matchMode = matchMode != null ? matchMode : NumberValueObject.create(0), _matchEnd = matchEnd != null ? matchEnd : NumberValueObject.create(0), _ifNotFound = ifNotFound != null ? ifNotFound : ErrorValueObject.create(ErrorType$1.NA), maxRowLength = Math.max(
@@ -18598,19 +18725,22 @@ const _Textafter = class _Textafter extends BaseFunction {
18598
18725
  _matchMode.isArray() ? _matchMode.getColumnCount() : 1,
18599
18726
  _matchEnd.isArray() ? _matchEnd.getColumnCount() : 1,
18600
18727
  _ifNotFound.isArray() ? _ifNotFound.getColumnCount() : 1
18601
- ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text, ErrorValueObject.create(ErrorType$1.NA)), instanceNumArray = expandArrayValueObject(maxRowLength, maxColumnLength, _instanceNum, ErrorValueObject.create(ErrorType$1.NA)), matchModeArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchMode, ErrorValueObject.create(ErrorType$1.NA)), matchEndArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchEnd, ErrorValueObject.create(ErrorType$1.NA)), ifNotFoundArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ifNotFound, ErrorValueObject.create(ErrorType$1.NA)), resultArray = this._getResultArray(textArray, _delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant);
18728
+ ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text, ErrorValueObject.create(ErrorType$1.NA)), instanceNumArray = expandArrayValueObject(maxRowLength, maxColumnLength, _instanceNum, ErrorValueObject.create(ErrorType$1.NA)), matchModeArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchMode, ErrorValueObject.create(ErrorType$1.NA)), matchEndArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchEnd, ErrorValueObject.create(ErrorType$1.NA)), ifNotFoundArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ifNotFound, ErrorValueObject.create(ErrorType$1.NA)), resultArray = this._getResultArray(textArray, delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant);
18602
18729
  return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
18603
18730
  }
18604
- _getResultArray(textArray, delimiterObject, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant) {
18731
+ _getResultArray(textArray, delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant) {
18605
18732
  return textArray.map((textObject, rowIndex, columnIndex) => {
18606
- const instanceNumObject = instanceNumArray.get(rowIndex, columnIndex), matchModeObject = matchModeArray.get(rowIndex, columnIndex), matchEndObject = matchEndArray.get(rowIndex, columnIndex), ifNotFoundObject = ifNotFoundArray.get(rowIndex, columnIndex), _variantsError = this._checkVariantsError(textObject, instanceNumObject, matchModeObject, matchEndObject, delimiterObject);
18733
+ const instanceNumObject = instanceNumArray.get(rowIndex, columnIndex), matchModeObject = matchModeArray.get(rowIndex, columnIndex), matchEndObject = matchEndArray.get(rowIndex, columnIndex), ifNotFoundObject = ifNotFoundArray.get(rowIndex, columnIndex), _variantsError = this._checkVariantsError(textObject, instanceNumObject, matchModeObject, matchEndObject);
18607
18734
  if (_variantsError.isError())
18608
18735
  return _variantsError;
18609
- const textValue = this._getStringValue(textObject), delimiterValue = this._getStringValue(delimiterObject), _variantsNumberFloorValue = this._getVariantsNumberFloorValue(instanceNumObject, matchModeObject, matchEndObject);
18736
+ const textValue = this._getStringValue(textObject), delimiterValue = this._getDelimiterValue(delimiter);
18737
+ if (delimiterValue instanceof ErrorValueObject)
18738
+ return delimiterValue;
18739
+ const _variantsNumberFloorValue = this._getVariantsNumberFloorValue(instanceNumObject, matchModeObject, matchEndObject);
18610
18740
  if (_variantsNumberFloorValue instanceof ErrorValueObject)
18611
18741
  return _variantsNumberFloorValue;
18612
18742
  const [instanceNumValue, matchModeValue, matchEndValue] = _variantsNumberFloorValue;
18613
- return instanceNumValue === 0 || matchModeValue < 0 || matchModeValue > 1 || matchEndValue < 0 || matchEndValue > 1 ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue === "" ? instanceNumValue > 0 ? StringValueObject.create(textValue) : StringValueObject.create("") : !instanceNumIsNull && Math.abs(instanceNumValue) > textValue.length ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.length > textValue.length ? ErrorValueObject.create(ErrorType$1.NA) : this._getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant);
18743
+ return instanceNumValue === 0 || matchModeValue < 0 || matchModeValue > 1 || matchEndValue < 0 || matchEndValue > 1 ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.includes("") ? instanceNumValue > 0 ? StringValueObject.create(textValue) : StringValueObject.create("") : !instanceNumIsNull && Math.abs(instanceNumValue) > textValue.length ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.every((item) => item.length > textValue.length) ? ErrorValueObject.create(ErrorType$1.NA) : this._getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant);
18614
18744
  });
18615
18745
  }
18616
18746
  _checkVariantsError(...variantas) {
@@ -18625,6 +18755,24 @@ const _Textafter = class _Textafter extends BaseFunction {
18625
18755
  let value = `${variant.getValue()}`;
18626
18756
  return variant.isNull() && (value = ""), variant.isBoolean() && (value = value.toLocaleUpperCase()), value;
18627
18757
  }
18758
+ _getDelimiterValue(delimiter) {
18759
+ const delimiterValue = [];
18760
+ if (delimiter.isArray()) {
18761
+ let isError = !1, errorObject = ErrorValueObject.create(ErrorType$1.VALUE);
18762
+ if (delimiter.iterator((delimiterObject) => {
18763
+ const _delimiterObject = delimiterObject;
18764
+ if (_delimiterObject.isError())
18765
+ return isError = !0, errorObject = _delimiterObject, !1;
18766
+ delimiterValue.push(this._getStringValue(_delimiterObject));
18767
+ }), isError)
18768
+ return errorObject;
18769
+ } else {
18770
+ if (delimiter.isError())
18771
+ return delimiter;
18772
+ delimiterValue.push(this._getStringValue(delimiter));
18773
+ }
18774
+ return delimiterValue;
18775
+ }
18628
18776
  _getVariantsNumberFloorValue(...variants) {
18629
18777
  const values = [];
18630
18778
  for (let i = 0; i < variants.length; i++) {
@@ -18637,23 +18785,32 @@ const _Textafter = class _Textafter extends BaseFunction {
18637
18785
  return values;
18638
18786
  }
18639
18787
  _getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant) {
18640
- const matchNum = textValue.match(new RegExp(delimiterValue, `g${matchModeValue ? "i" : ""}`));
18641
- if (matchNum && matchNum.length < Math.abs(instanceNumValue) && onlyThreeVariant)
18642
- return ErrorValueObject.create(ErrorType$1.NA);
18643
- if (!matchNum || matchNum.length < Math.abs(instanceNumValue))
18644
- return matchEndValue ? instanceNumValue > 0 ? StringValueObject.create("") : StringValueObject.create(textValue) : ifNotFoundObject;
18645
18788
  let substrText = matchModeValue ? textValue.toLocaleLowerCase() : textValue;
18646
- const _delimiterValue = matchModeValue ? delimiterValue.toLocaleLowerCase() : delimiterValue;
18647
- let resultIndex = 0;
18789
+ const _delimiterValue = matchModeValue ? delimiterValue.map((item) => item.toLocaleLowerCase()) : delimiterValue;
18790
+ let resultIndex = 0, matchNum = 0, preDelimiterLength = 0;
18648
18791
  for (let i = 0; i < Math.abs(instanceNumValue); i++)
18649
18792
  if (instanceNumValue < 0) {
18650
- const index = substrText.lastIndexOf(_delimiterValue);
18651
- resultIndex = index, substrText = substrText.substr(0, index);
18793
+ const delimiterItem = _delimiterValue.map((item) => ({
18794
+ index: substrText.lastIndexOf(item),
18795
+ length: item.length
18796
+ })).filter((item) => item.index !== -1).sort((a, b) => b.index - a.index)[0];
18797
+ if (!delimiterItem)
18798
+ break;
18799
+ resultIndex = delimiterItem.index, substrText = substrText.substr(0, delimiterItem.index), preDelimiterLength = delimiterItem.length, matchNum++;
18652
18800
  } else {
18653
- const index = substrText.indexOf(_delimiterValue);
18654
- resultIndex += index + i * _delimiterValue.length, substrText = substrText.substr(index + _delimiterValue.length);
18801
+ const delimiterItem = _delimiterValue.map((item) => ({
18802
+ index: substrText.indexOf(item),
18803
+ length: item.length
18804
+ })).filter((item) => item.index !== -1).sort((a, b) => a.index - b.index)[0];
18805
+ if (!delimiterItem)
18806
+ break;
18807
+ resultIndex += delimiterItem.index + preDelimiterLength, substrText = substrText.substr(delimiterItem.index + delimiterItem.length), preDelimiterLength = delimiterItem.length, matchNum++;
18655
18808
  }
18656
- const result = textValue.substr(resultIndex + _delimiterValue.length);
18809
+ if (matchNum && matchNum < Math.abs(instanceNumValue) && onlyThreeVariant)
18810
+ return ErrorValueObject.create(ErrorType$1.NA);
18811
+ if (!matchNum || matchNum < Math.abs(instanceNumValue))
18812
+ return matchEndValue ? instanceNumValue > 0 ? StringValueObject.create("") : StringValueObject.create(textValue) : ifNotFoundObject;
18813
+ const result = textValue.substr(resultIndex + preDelimiterLength);
18657
18814
  return StringValueObject.create(result);
18658
18815
  }
18659
18816
  };
@@ -18666,8 +18823,6 @@ const _Textbefore = class _Textbefore extends BaseFunction {
18666
18823
  __publicField(this, "maxParams", 6);
18667
18824
  }
18668
18825
  calculate(text, delimiter, instanceNum, matchMode, matchEnd, ifNotFound) {
18669
- let _delimiter = delimiter;
18670
- _delimiter.isArray() && (_delimiter = _delimiter.get(0, 0));
18671
18826
  let instanceNumIsNull = !1, _instanceNum = instanceNum != null ? instanceNum : NumberValueObject.create(1);
18672
18827
  _instanceNum.isNull() && (instanceNumIsNull = !0, _instanceNum = NumberValueObject.create(1));
18673
18828
  const onlyThreeVariant = !matchMode, _matchMode = matchMode != null ? matchMode : NumberValueObject.create(0), _matchEnd = matchEnd != null ? matchEnd : NumberValueObject.create(0), _ifNotFound = ifNotFound != null ? ifNotFound : ErrorValueObject.create(ErrorType$1.NA), maxRowLength = Math.max(
@@ -18682,19 +18837,22 @@ const _Textbefore = class _Textbefore extends BaseFunction {
18682
18837
  _matchMode.isArray() ? _matchMode.getColumnCount() : 1,
18683
18838
  _matchEnd.isArray() ? _matchEnd.getColumnCount() : 1,
18684
18839
  _ifNotFound.isArray() ? _ifNotFound.getColumnCount() : 1
18685
- ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text, ErrorValueObject.create(ErrorType$1.NA)), instanceNumArray = expandArrayValueObject(maxRowLength, maxColumnLength, _instanceNum, ErrorValueObject.create(ErrorType$1.NA)), matchModeArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchMode, ErrorValueObject.create(ErrorType$1.NA)), matchEndArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchEnd, ErrorValueObject.create(ErrorType$1.NA)), ifNotFoundArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ifNotFound, ErrorValueObject.create(ErrorType$1.NA)), resultArray = this._getResultArray(textArray, _delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant);
18840
+ ), textArray = expandArrayValueObject(maxRowLength, maxColumnLength, text, ErrorValueObject.create(ErrorType$1.NA)), instanceNumArray = expandArrayValueObject(maxRowLength, maxColumnLength, _instanceNum, ErrorValueObject.create(ErrorType$1.NA)), matchModeArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchMode, ErrorValueObject.create(ErrorType$1.NA)), matchEndArray = expandArrayValueObject(maxRowLength, maxColumnLength, _matchEnd, ErrorValueObject.create(ErrorType$1.NA)), ifNotFoundArray = expandArrayValueObject(maxRowLength, maxColumnLength, _ifNotFound, ErrorValueObject.create(ErrorType$1.NA)), resultArray = this._getResultArray(textArray, delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant);
18686
18841
  return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray;
18687
18842
  }
18688
- _getResultArray(textArray, delimiterObject, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant) {
18843
+ _getResultArray(textArray, delimiter, instanceNumArray, matchModeArray, matchEndArray, ifNotFoundArray, instanceNumIsNull, onlyThreeVariant) {
18689
18844
  return textArray.map((textObject, rowIndex, columnIndex) => {
18690
- const instanceNumObject = instanceNumArray.get(rowIndex, columnIndex), matchModeObject = matchModeArray.get(rowIndex, columnIndex), matchEndObject = matchEndArray.get(rowIndex, columnIndex), ifNotFoundObject = ifNotFoundArray.get(rowIndex, columnIndex), _variantsError = this._checkVariantsError(textObject, instanceNumObject, matchModeObject, matchEndObject, delimiterObject);
18845
+ const instanceNumObject = instanceNumArray.get(rowIndex, columnIndex), matchModeObject = matchModeArray.get(rowIndex, columnIndex), matchEndObject = matchEndArray.get(rowIndex, columnIndex), ifNotFoundObject = ifNotFoundArray.get(rowIndex, columnIndex), _variantsError = this._checkVariantsError(textObject, instanceNumObject, matchModeObject, matchEndObject);
18691
18846
  if (_variantsError.isError())
18692
18847
  return _variantsError;
18693
- const textValue = this._getStringValue(textObject), delimiterValue = this._getStringValue(delimiterObject), _variantsNumberFloorValue = this._getVariantsNumberFloorValue(instanceNumObject, matchModeObject, matchEndObject);
18848
+ const textValue = this._getStringValue(textObject), delimiterValue = this._getDelimiterValue(delimiter);
18849
+ if (delimiterValue instanceof ErrorValueObject)
18850
+ return delimiterValue;
18851
+ const _variantsNumberFloorValue = this._getVariantsNumberFloorValue(instanceNumObject, matchModeObject, matchEndObject);
18694
18852
  if (_variantsNumberFloorValue instanceof ErrorValueObject)
18695
18853
  return _variantsNumberFloorValue;
18696
18854
  const [instanceNumValue, matchModeValue, matchEndValue] = _variantsNumberFloorValue;
18697
- return instanceNumValue === 0 || matchModeValue < 0 || matchModeValue > 1 || matchEndValue < 0 || matchEndValue > 1 ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue === "" ? instanceNumValue > 0 ? StringValueObject.create("") : StringValueObject.create(textValue) : !instanceNumIsNull && Math.abs(instanceNumValue) > textValue.length ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.length > textValue.length ? ErrorValueObject.create(ErrorType$1.NA) : this._getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant);
18855
+ return instanceNumValue === 0 || matchModeValue < 0 || matchModeValue > 1 || matchEndValue < 0 || matchEndValue > 1 ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.includes("") ? instanceNumValue > 0 ? StringValueObject.create("") : StringValueObject.create(textValue) : !instanceNumIsNull && Math.abs(instanceNumValue) > textValue.length ? ErrorValueObject.create(ErrorType$1.VALUE) : delimiterValue.every((item) => item.length > textValue.length) ? ErrorValueObject.create(ErrorType$1.NA) : this._getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant);
18698
18856
  });
18699
18857
  }
18700
18858
  _checkVariantsError(...variantas) {
@@ -18709,6 +18867,24 @@ const _Textbefore = class _Textbefore extends BaseFunction {
18709
18867
  let value = `${variant.getValue()}`;
18710
18868
  return variant.isNull() && (value = ""), variant.isBoolean() && (value = value.toLocaleUpperCase()), value;
18711
18869
  }
18870
+ _getDelimiterValue(delimiter) {
18871
+ const delimiterValue = [];
18872
+ if (delimiter.isArray()) {
18873
+ let isError = !1, errorObject = ErrorValueObject.create(ErrorType$1.VALUE);
18874
+ if (delimiter.iterator((delimiterObject) => {
18875
+ const _delimiterObject = delimiterObject;
18876
+ if (_delimiterObject.isError())
18877
+ return isError = !0, errorObject = _delimiterObject, !1;
18878
+ delimiterValue.push(this._getStringValue(_delimiterObject));
18879
+ }), isError)
18880
+ return errorObject;
18881
+ } else {
18882
+ if (delimiter.isError())
18883
+ return delimiter;
18884
+ delimiterValue.push(this._getStringValue(delimiter));
18885
+ }
18886
+ return delimiterValue;
18887
+ }
18712
18888
  _getVariantsNumberFloorValue(...variants) {
18713
18889
  const values = [];
18714
18890
  for (let i = 0; i < variants.length; i++) {
@@ -18721,22 +18897,31 @@ const _Textbefore = class _Textbefore extends BaseFunction {
18721
18897
  return values;
18722
18898
  }
18723
18899
  _getResult(textValue, delimiterValue, instanceNumValue, matchModeValue, matchEndValue, ifNotFoundObject, onlyThreeVariant) {
18724
- const matchNum = textValue.match(new RegExp(delimiterValue, `g${matchModeValue ? "i" : ""}`));
18725
- if (matchNum && matchNum.length < Math.abs(instanceNumValue) && onlyThreeVariant)
18726
- return ErrorValueObject.create(ErrorType$1.NA);
18727
- if (!matchNum || matchNum.length < Math.abs(instanceNumValue))
18728
- return matchEndValue ? instanceNumValue > 0 ? StringValueObject.create(textValue) : StringValueObject.create("") : ifNotFoundObject;
18729
18900
  let substrText = matchModeValue ? textValue.toLocaleLowerCase() : textValue;
18730
- const _delimiterValue = matchModeValue ? delimiterValue.toLocaleLowerCase() : delimiterValue;
18731
- let resultIndex = 0;
18901
+ const _delimiterValue = matchModeValue ? delimiterValue.map((item) => item.toLocaleLowerCase()) : delimiterValue;
18902
+ let resultIndex = 0, matchNum = 0, preDelimiterLength = 0;
18732
18903
  for (let i = 0; i < Math.abs(instanceNumValue); i++)
18733
18904
  if (instanceNumValue < 0) {
18734
- const index = substrText.lastIndexOf(_delimiterValue);
18735
- resultIndex = index, substrText = substrText.substr(0, index);
18905
+ const delimiterItem = _delimiterValue.map((item) => ({
18906
+ index: substrText.lastIndexOf(item),
18907
+ length: item.length
18908
+ })).filter((item) => item.index !== -1).sort((a, b) => b.index - a.index)[0];
18909
+ if (!delimiterItem)
18910
+ break;
18911
+ resultIndex = delimiterItem.index, substrText = substrText.substr(0, delimiterItem.index), matchNum++;
18736
18912
  } else {
18737
- const index = substrText.indexOf(_delimiterValue);
18738
- resultIndex += index + i * _delimiterValue.length, substrText = substrText.substr(index + _delimiterValue.length);
18913
+ const delimiterItem = _delimiterValue.map((item) => ({
18914
+ index: substrText.indexOf(item),
18915
+ length: item.length
18916
+ })).filter((item) => item.index !== -1).sort((a, b) => a.index - b.index)[0];
18917
+ if (!delimiterItem)
18918
+ break;
18919
+ resultIndex += delimiterItem.index + preDelimiterLength, substrText = substrText.substr(delimiterItem.index + delimiterItem.length), preDelimiterLength = delimiterItem.length, matchNum++;
18739
18920
  }
18921
+ if (matchNum && matchNum < Math.abs(instanceNumValue) && onlyThreeVariant)
18922
+ return ErrorValueObject.create(ErrorType$1.NA);
18923
+ if (!matchNum || matchNum < Math.abs(instanceNumValue))
18924
+ return matchEndValue ? instanceNumValue > 0 ? StringValueObject.create(textValue) : StringValueObject.create("") : ifNotFoundObject;
18740
18925
  const result = textValue.substr(0, resultIndex);
18741
18926
  return StringValueObject.create(result);
18742
18927
  }
@@ -18751,7 +18936,7 @@ const _Textsplit = class _Textsplit extends BaseFunction {
18751
18936
  }
18752
18937
  calculate(text, colDelimiter, rowDelimiter, ignoreEmpty, matchMode, padWith) {
18753
18938
  let _rowDelimiter = rowDelimiter != null ? rowDelimiter : StringValueObject.create("\\s");
18754
- const _ignoreEmpty = ignoreEmpty != null ? ignoreEmpty : NumberValueObject.create(0), _matchMode = matchMode != null ? matchMode : NumberValueObject.create(0), _padWith = padWith != null ? padWith : StringValueObject.create(ErrorType$1.NA), { _variant: _colDelimiter, values: colDelimiterValue } = this._getStringValues(colDelimiter), { _variant, values: rowDelimiterValue } = this._getStringValues(_rowDelimiter);
18939
+ const _ignoreEmpty = ignoreEmpty != null ? ignoreEmpty : NumberValueObject.create(0), _matchMode = matchMode != null ? matchMode : NumberValueObject.create(0), _padWith = padWith != null ? padWith : StringValueObject.create(ErrorType$1.NA), { _variant: _colDelimiter, values: colDelimiterValue } = this._getStringValues(colDelimiter), { _variant, values: rowDelimiterValue } = this._getStringValues(_rowDelimiter, !1);
18755
18940
  _rowDelimiter = _variant;
18756
18941
  const maxRowLength = Math.max(
18757
18942
  text.isArray() ? text.getRowCount() : 1,
@@ -18773,14 +18958,14 @@ const _Textsplit = class _Textsplit extends BaseFunction {
18773
18958
  );
18774
18959
  return maxRowLength === 1 && maxColumnLength === 1 ? resultArray.get(0, 0) : resultArray.map((item) => item.get(0, 0));
18775
18960
  }
18776
- _getStringValues(variant) {
18961
+ _getStringValues(variant, isNotNull = !0) {
18777
18962
  let _variant = variant;
18778
18963
  const values = [];
18779
18964
  if (_variant.isArray())
18780
18965
  _variant.iterator((variantObject) => {
18781
18966
  if (variantObject != null && variantObject.isError())
18782
18967
  return _variant = variantObject, !1;
18783
- if (variantObject != null && variantObject.isNull())
18968
+ if (variantObject != null && variantObject.isNull() && isNotNull)
18784
18969
  return _variant = ErrorValueObject.create(ErrorType$1.VALUE), !1;
18785
18970
  const value = this._getRegExpStringValue(variantObject);
18786
18971
  if (value === "")
@@ -18788,6 +18973,7 @@ const _Textsplit = class _Textsplit extends BaseFunction {
18788
18973
  values.push(value);
18789
18974
  });
18790
18975
  else {
18976
+ _variant.isNull() && isNotNull && (_variant = ErrorValueObject.create(ErrorType$1.VALUE));
18791
18977
  const value = this._getRegExpStringValue(_variant);
18792
18978
  value === "" && (_variant = ErrorValueObject.create(ErrorType$1.VALUE)), values.push(value);
18793
18979
  }
@@ -18859,11 +19045,13 @@ const functionText = [
18859
19045
  [Len, FUNCTION_NAMES_TEXT.LEN],
18860
19046
  [Lenb, FUNCTION_NAMES_TEXT.LENB],
18861
19047
  [Lower, FUNCTION_NAMES_TEXT.LOWER],
19048
+ [Mid, FUNCTION_NAMES_TEXT.MID],
18862
19049
  [Rept, FUNCTION_NAMES_TEXT.REPT],
18863
19050
  [Text, FUNCTION_NAMES_TEXT.TEXT],
18864
19051
  [Textafter, FUNCTION_NAMES_TEXT.TEXTAFTER],
18865
19052
  [Textbefore, FUNCTION_NAMES_TEXT.TEXTBEFORE],
18866
- [Textsplit, FUNCTION_NAMES_TEXT.TEXTSPLIT]
19053
+ [Textsplit, FUNCTION_NAMES_TEXT.TEXTSPLIT],
19054
+ [Leftb, FUNCTION_NAMES_TEXT.LEFTB]
18867
19055
  ], functionUniver = [];
18868
19056
  var FUNCTION_NAMES_UNIVER = /* @__PURE__ */ ((FUNCTION_NAMES_UNIVER2) => FUNCTION_NAMES_UNIVER2)(FUNCTION_NAMES_UNIVER || {});
18869
19057
  const functionWeb = [];