@pixerate/editor 0.47.0 → 0.48.0

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 (76) hide show
  1. package/dist/agent/index.cjs +246 -29
  2. package/dist/agent/index.cjs.map +1 -1
  3. package/dist/agent/index.d.cts +18 -6
  4. package/dist/agent/index.d.ts +18 -6
  5. package/dist/agent/index.js +226 -9
  6. package/dist/agent/index.js.map +1 -1
  7. package/dist/{builtins-xs7rK6ys.d.cts → builtins-1kqwLUnb.d.cts} +1 -1
  8. package/dist/{builtins-D2nMtw2W.d.ts → builtins-BKYlHH1s.d.ts} +1 -1
  9. package/dist/chart/index.cjs +214 -3541
  10. package/dist/chart/index.cjs.map +1 -1
  11. package/dist/chart/index.d.cts +4 -494
  12. package/dist/chart/index.d.ts +4 -494
  13. package/dist/chart/index.js +135 -3462
  14. package/dist/chart/index.js.map +1 -1
  15. package/dist/{chunk-5VXI5GED.js → chunk-2CJ3LPYQ.js} +3 -3
  16. package/dist/{chunk-ZFBBVGCI.js → chunk-EKYHKQPG.js} +243 -243
  17. package/dist/{chunk-ZFBBVGCI.js.map → chunk-EKYHKQPG.js.map} +1 -1
  18. package/dist/chunk-HXUL3LS7.js +113 -0
  19. package/dist/chunk-HXUL3LS7.js.map +1 -0
  20. package/dist/{chunk-REAGGLXS.js → chunk-JQ3BB3E6.js} +2 -2
  21. package/dist/chunk-LTUM52X6.js +4074 -0
  22. package/dist/chunk-LTUM52X6.js.map +1 -0
  23. package/dist/{chunk-J3R2OWOE.cjs → chunk-MUCYWI6W.cjs} +608 -15
  24. package/dist/chunk-MUCYWI6W.cjs.map +1 -0
  25. package/dist/chunk-PIMCHMZE.cjs +521 -0
  26. package/dist/chunk-PIMCHMZE.cjs.map +1 -0
  27. package/dist/{chunk-TK2XZK6Z.js → chunk-PKBWLEL7.js} +594 -1
  28. package/dist/chunk-PKBWLEL7.js.map +1 -0
  29. package/dist/chunk-PRSJJZBS.cjs +4074 -0
  30. package/dist/chunk-PRSJJZBS.cjs.map +1 -0
  31. package/dist/chunk-U6IZKC7B.cjs +113 -0
  32. package/dist/chunk-U6IZKC7B.cjs.map +1 -0
  33. package/dist/{chunk-SQC26VQV.cjs → chunk-UN33YOXW.cjs} +191 -191
  34. package/dist/{chunk-SQC26VQV.cjs.map → chunk-UN33YOXW.cjs.map} +1 -1
  35. package/dist/{chunk-PQFAHT5O.js → chunk-VKPEPWKZ.js} +27 -94
  36. package/dist/chunk-VKPEPWKZ.js.map +1 -0
  37. package/dist/{chunk-H4PICYNL.cjs → chunk-WXEHCVJQ.cjs} +113 -180
  38. package/dist/chunk-WXEHCVJQ.cjs.map +1 -0
  39. package/dist/{chunk-LYGEEDNR.cjs → chunk-XP5IUZUO.cjs} +242 -242
  40. package/dist/chunk-XP5IUZUO.cjs.map +1 -0
  41. package/dist/{chunk-C3NWJE3K.js → chunk-XUUD43OV.js} +11 -672
  42. package/dist/chunk-XUUD43OV.js.map +1 -0
  43. package/dist/{chunk-BBRK6MOI.cjs → chunk-YU4WQE5M.cjs} +100 -100
  44. package/dist/{chunk-BBRK6MOI.cjs.map → chunk-YU4WQE5M.cjs.map} +1 -1
  45. package/dist/commands/index.d.cts +1 -1
  46. package/dist/commands/index.d.ts +1 -1
  47. package/dist/controller-ChjCCMLl.d.cts +822 -0
  48. package/dist/controller-DtbEo3om.d.ts +822 -0
  49. package/dist/extensions/index.cjs +32 -4
  50. package/dist/extensions/index.cjs.map +1 -1
  51. package/dist/extensions/index.d.cts +4 -2
  52. package/dist/extensions/index.d.ts +4 -2
  53. package/dist/extensions/index.js +31 -3
  54. package/dist/{index-QrqMmZ75.d.cts → index-DoHqT1mq.d.cts} +203 -7
  55. package/dist/{index-CSUCQYAH.d.ts → index-YLZ0fKqE.d.ts} +203 -7
  56. package/dist/index.cjs +37 -12
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.d.cts +9 -7
  59. package/dist/index.d.ts +9 -7
  60. package/dist/index.js +31 -6
  61. package/dist/index.js.map +1 -1
  62. package/dist/spreadsheet/index.cjs +4 -4
  63. package/dist/spreadsheet/index.js +3 -3
  64. package/package.json +1 -1
  65. package/dist/chunk-C3NWJE3K.js.map +0 -1
  66. package/dist/chunk-H4PICYNL.cjs.map +0 -1
  67. package/dist/chunk-J3R2OWOE.cjs.map +0 -1
  68. package/dist/chunk-LYGEEDNR.cjs.map +0 -1
  69. package/dist/chunk-NEOO6QJD.cjs +0 -1182
  70. package/dist/chunk-NEOO6QJD.cjs.map +0 -1
  71. package/dist/chunk-PQFAHT5O.js.map +0 -1
  72. package/dist/chunk-TK2XZK6Z.js.map +0 -1
  73. package/dist/types-BVqWm3d1.d.cts +0 -320
  74. package/dist/types-BVqWm3d1.d.ts +0 -320
  75. /package/dist/{chunk-5VXI5GED.js.map → chunk-2CJ3LPYQ.js.map} +0 -0
  76. /package/dist/{chunk-REAGGLXS.js.map → chunk-JQ3BB3E6.js.map} +0 -0
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- var _chunkLYGEEDNRcjs = require('./chunk-LYGEEDNR.cjs');
29
+ var _chunkXP5IUZUOcjs = require('./chunk-XP5IUZUO.cjs');
30
30
 
31
31
  // src/spreadsheet/formula/lexer.ts
32
32
  var MAX_QUOTED_SHEET_LENGTH = 2 * 31 + 2;
@@ -558,56 +558,56 @@ var escapeRegExp = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
558
558
  var hasWildcards = (pattern) => /(^|[^~])[*?]/.test(pattern);
559
559
  function parseCriteria(criterion) {
560
560
  if (typeof criterion === "number") {
561
- return (value) => _chunkLYGEEDNRcjs.numericValue.call(void 0, value) === criterion;
561
+ return (value) => _chunkXP5IUZUOcjs.numericValue.call(void 0, value) === criterion;
562
562
  }
563
563
  if (typeof criterion === "boolean") {
564
564
  return (value) => value === criterion;
565
565
  }
566
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, criterion)) return (value) => _chunkLYGEEDNRcjs.isBlank.call(void 0, value);
566
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, criterion)) return (value) => _chunkXP5IUZUOcjs.isBlank.call(void 0, value);
567
567
  const text = String(criterion);
568
568
  const match = /^(<>|<=|>=|=|<|>)?([\s\S]*)$/.exec(text);
569
569
  const op = _nullishCoalesce(match[1], () => ( "="));
570
570
  const operand = match[2];
571
571
  if (operand === "") {
572
- if (op === "=") return (value) => _chunkLYGEEDNRcjs.isBlank.call(void 0, value);
573
- if (op === "<>") return (value) => !_chunkLYGEEDNRcjs.isBlank.call(void 0, value);
572
+ if (op === "=") return (value) => _chunkXP5IUZUOcjs.isBlank.call(void 0, value);
573
+ if (op === "<>") return (value) => !_chunkXP5IUZUOcjs.isBlank.call(void 0, value);
574
574
  return () => false;
575
575
  }
576
- const parsed = _chunkLYGEEDNRcjs.parseCellInput.call(void 0, operand.trim());
577
- const operandNumber = _nullishCoalesce(_chunkLYGEEDNRcjs.numericValue.call(void 0, operand), () => ( (parsed.type === "number" ? parsed.value : null)));
576
+ const parsed = _chunkXP5IUZUOcjs.parseCellInput.call(void 0, operand.trim());
577
+ const operandNumber = _nullishCoalesce(_chunkXP5IUZUOcjs.numericValue.call(void 0, operand), () => ( (parsed.type === "number" ? parsed.value : null)));
578
578
  const operandDate = parsed.type === "date" ? parsed.value : null;
579
- const isDateValue = (value) => typeof value === "number" || _chunkLYGEEDNRcjs.parseIsoDate.call(void 0, value) !== null;
579
+ const isDateValue = (value) => typeof value === "number" || _chunkXP5IUZUOcjs.parseIsoDate.call(void 0, value) !== null;
580
580
  const operandUpper = operand.trim().toUpperCase();
581
581
  const operandBoolean = operandUpper === "TRUE" ? true : operandUpper === "FALSE" ? false : null;
582
582
  if (op === "=" || op === "<>") {
583
583
  let equals;
584
584
  if (operandDate !== null) {
585
- equals = (value) => isDateValue(value) && _chunkLYGEEDNRcjs.compareValues.call(void 0, value, operandDate) === 0;
585
+ equals = (value) => isDateValue(value) && _chunkXP5IUZUOcjs.compareValues.call(void 0, value, operandDate) === 0;
586
586
  } else if (operandNumber !== null) {
587
- equals = (value) => _chunkLYGEEDNRcjs.numericValue.call(void 0, value) === operandNumber;
587
+ equals = (value) => _chunkXP5IUZUOcjs.numericValue.call(void 0, value) === operandNumber;
588
588
  } else if (operandBoolean !== null) {
589
589
  equals = (value) => value === operandBoolean || typeof value === "string" && value.trim().toUpperCase() === operandUpper;
590
- } else if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, operand)) {
591
- return op === "=" ? (value) => value === operand : (value) => value !== operand && !_chunkLYGEEDNRcjs.isBlank.call(void 0, value);
590
+ } else if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, operand)) {
591
+ return op === "=" ? (value) => value === operand : (value) => value !== operand && !_chunkXP5IUZUOcjs.isBlank.call(void 0, value);
592
592
  } else {
593
593
  const regex = wildcardToRegExp(operand);
594
- equals = (value) => typeof value === "string" && !_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) && regex.test(value);
594
+ equals = (value) => typeof value === "string" && !_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) && regex.test(value);
595
595
  }
596
- return op === "=" ? (value) => !_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) && equals(value) : (value) => !_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) && !equals(value);
596
+ return op === "=" ? (value) => !_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) && equals(value) : (value) => !_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) && !equals(value);
597
597
  }
598
598
  const test = (cmp) => op === "<" ? cmp < 0 : op === "<=" ? cmp <= 0 : op === ">" ? cmp > 0 : cmp >= 0;
599
599
  if (operandDate !== null) {
600
- return (value) => isDateValue(value) && test(_chunkLYGEEDNRcjs.compareValues.call(void 0, value, operandDate));
600
+ return (value) => isDateValue(value) && test(_chunkXP5IUZUOcjs.compareValues.call(void 0, value, operandDate));
601
601
  }
602
602
  if (operandNumber !== null) {
603
603
  return (value) => {
604
- const num = _chunkLYGEEDNRcjs.numericValue.call(void 0, value);
604
+ const num = _chunkXP5IUZUOcjs.numericValue.call(void 0, value);
605
605
  return num !== null && test(num - operandNumber);
606
606
  };
607
607
  }
608
608
  const lower = operand.toLowerCase();
609
609
  return (value) => {
610
- if (typeof value !== "string" || value === "" || _chunkLYGEEDNRcjs.FORMULA_ERRORS.has(value) || _chunkLYGEEDNRcjs.numericValue.call(void 0, value) !== null) {
610
+ if (typeof value !== "string" || value === "" || _chunkXP5IUZUOcjs.FORMULA_ERRORS.has(value) || _chunkXP5IUZUOcjs.numericValue.call(void 0, value) !== null) {
611
611
  return false;
612
612
  }
613
613
  const v = value.toLowerCase();
@@ -620,7 +620,7 @@ var arg = (name, description, type = "any", extra = {}) => ({ name, description,
620
620
  var optional = (name, description, type = "any") => arg(name, description, type, { optional: true });
621
621
  var repeating = (name, description, type = "any") => arg(name, description, type, { repeating: true });
622
622
  function failed(value) {
623
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, value);
623
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, value);
624
624
  }
625
625
  function unaryMath(ctx, fn) {
626
626
  const value = ctx.number(0);
@@ -639,7 +639,7 @@ function roundWith(value, digits, mode) {
639
639
  const factor = Math.pow(10, Math.trunc(digits));
640
640
  const scaled = Number((Math.abs(value) * factor).toPrecision(15));
641
641
  const rounded = mode === "up" ? Math.ceil(scaled) : Math.floor(scaled);
642
- return _chunkLYGEEDNRcjs.cleanFloat.call(void 0, Math.sign(value) * rounded / factor);
642
+ return _chunkXP5IUZUOcjs.cleanFloat.call(void 0, Math.sign(value) * rounded / factor);
643
643
  }
644
644
  var MATH_FUNCTIONS = [
645
645
  {
@@ -666,7 +666,7 @@ var MATH_FUNCTIONS = [
666
666
  if (nums.length === 0) return 0;
667
667
  let product = 1;
668
668
  for (const num of nums) product *= num;
669
- return _chunkLYGEEDNRcjs.cleanFloat.call(void 0, product);
669
+ return _chunkXP5IUZUOcjs.cleanFloat.call(void 0, product);
670
670
  }
671
671
  },
672
672
  {
@@ -679,7 +679,7 @@ var MATH_FUNCTIONS = [
679
679
  if (failed(num)) return num;
680
680
  const decimals = ctx.number(1, 0);
681
681
  if (failed(decimals)) return decimals;
682
- return _chunkLYGEEDNRcjs.roundHalfAwayFromZero.call(void 0, num, Math.trunc(decimals));
682
+ return _chunkXP5IUZUOcjs.roundHalfAwayFromZero.call(void 0, num, Math.trunc(decimals));
683
683
  }
684
684
  },
685
685
  {
@@ -765,7 +765,7 @@ var MATH_FUNCTIONS = [
765
765
  const divisor = ctx.number(1);
766
766
  if (failed(divisor)) return divisor;
767
767
  if (divisor === 0) return ctx.argError(1, "#DIV/0!", "can't be zero.");
768
- return _chunkLYGEEDNRcjs.cleanFloat.call(void 0, num - divisor * Math.floor(num / divisor));
768
+ return _chunkXP5IUZUOcjs.cleanFloat.call(void 0, num - divisor * Math.floor(num / divisor));
769
769
  }
770
770
  },
771
771
  {
@@ -825,7 +825,7 @@ function roundToMultiple(name, number, significance, round, ctx) {
825
825
  if (number > 0 && significance < 0) {
826
826
  return ctx.error("#NUM!", `${name} can't round a positive number to a negative significance.`);
827
827
  }
828
- return _chunkLYGEEDNRcjs.cleanFloat.call(void 0, round(_chunkLYGEEDNRcjs.cleanFloat.call(void 0, number / significance)) * significance);
828
+ return _chunkXP5IUZUOcjs.cleanFloat.call(void 0, round(_chunkXP5IUZUOcjs.cleanFloat.call(void 0, number / significance)) * significance);
829
829
  }
830
830
 
831
831
  // src/spreadsheet/formula/functions/statistical.ts
@@ -860,13 +860,13 @@ var STATISTICAL_FUNCTIONS = [
860
860
  args: [VALUES],
861
861
  evaluate: (ctx) => {
862
862
  const items = ctx.flatValues();
863
- const error = items.find(_chunkLYGEEDNRcjs.isFormulaError);
863
+ const error = items.find(_chunkXP5IUZUOcjs.isFormulaError);
864
864
  if (error) return error;
865
865
  let total = 0;
866
866
  let count = 0;
867
867
  for (const item of items) {
868
868
  const num = Number(item);
869
- if (!isNaN(num) && !_chunkLYGEEDNRcjs.isBlank.call(void 0, item)) {
869
+ if (!isNaN(num) && !_chunkXP5IUZUOcjs.isBlank.call(void 0, item)) {
870
870
  total += num;
871
871
  count++;
872
872
  }
@@ -882,7 +882,7 @@ var STATISTICAL_FUNCTIONS = [
882
882
  evaluate: (ctx) => {
883
883
  let count = 0;
884
884
  for (const item of ctx.flatValues()) {
885
- if (!isNaN(Number(item)) && !_chunkLYGEEDNRcjs.isBlank.call(void 0, item)) count++;
885
+ if (!isNaN(Number(item)) && !_chunkXP5IUZUOcjs.isBlank.call(void 0, item)) count++;
886
886
  }
887
887
  return count;
888
888
  }
@@ -892,7 +892,7 @@ var STATISTICAL_FUNCTIONS = [
892
892
  category: "statistical",
893
893
  description: "Counts the values that are not blank.",
894
894
  args: [repeating("value", "A value, cell or range to count.")],
895
- evaluate: (ctx) => ctx.flatValues().filter((item) => !_chunkLYGEEDNRcjs.isBlank.call(void 0, item)).length
895
+ evaluate: (ctx) => ctx.flatValues().filter((item) => !_chunkXP5IUZUOcjs.isBlank.call(void 0, item)).length
896
896
  },
897
897
  {
898
898
  name: "COUNTBLANK",
@@ -902,7 +902,7 @@ var STATISTICAL_FUNCTIONS = [
902
902
  evaluate: (ctx) => {
903
903
  const range = ctx.range(0);
904
904
  if (failed(range)) return range;
905
- return range.values.filter(_chunkLYGEEDNRcjs.isBlank).length;
905
+ return range.values.filter(_chunkXP5IUZUOcjs.isBlank).length;
906
906
  }
907
907
  },
908
908
  {
@@ -981,7 +981,7 @@ var STATISTICAL_FUNCTIONS = [
981
981
  args: [VALUES],
982
982
  evaluate: (ctx) => {
983
983
  const v = variance(ctx);
984
- return failed(v) ? v : _chunkLYGEEDNRcjs.cleanFloat.call(void 0, Math.sqrt(v));
984
+ return failed(v) ? v : _chunkXP5IUZUOcjs.cleanFloat.call(void 0, Math.sqrt(v));
985
985
  }
986
986
  },
987
987
  {
@@ -991,7 +991,7 @@ var STATISTICAL_FUNCTIONS = [
991
991
  args: [VALUES],
992
992
  evaluate: (ctx) => {
993
993
  const v = variance(ctx);
994
- return failed(v) ? v : _chunkLYGEEDNRcjs.cleanFloat.call(void 0, v);
994
+ return failed(v) ? v : _chunkXP5IUZUOcjs.cleanFloat.call(void 0, v);
995
995
  }
996
996
  },
997
997
  {
@@ -1045,7 +1045,7 @@ function matchMask(ctx, base, baseIndex, firstPair) {
1045
1045
  return ctx.argError(i, "#VALUE!", `must be the same size as argument ${baseIndex + 1} (${base.rows}\xD7${base.cols}).`);
1046
1046
  }
1047
1047
  const criterion = ctx.scalar(i + 1);
1048
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, criterion)) return criterion;
1048
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, criterion)) return criterion;
1049
1049
  const matches = parseCriteria(criterion);
1050
1050
  for (let k = 0; k < mask.length; k++) {
1051
1051
  if (mask[k] && !matches(range.values[k])) mask[k] = false;
@@ -1058,9 +1058,9 @@ function matchedNumbers(target, base, mask) {
1058
1058
  for (let c = 0; c < base.cols; c++) {
1059
1059
  for (let r = 0; r < base.rows; r++) {
1060
1060
  if (!mask[c * base.rows + r]) continue;
1061
- const value = _chunkLYGEEDNRcjs.rangeGet.call(void 0, target, r, c);
1062
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
1063
- const num = _chunkLYGEEDNRcjs.numericValue.call(void 0, value);
1061
+ const value = _chunkXP5IUZUOcjs.rangeGet.call(void 0, target, r, c);
1062
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
1063
+ const num = _chunkXP5IUZUOcjs.numericValue.call(void 0, value);
1064
1064
  if (num !== null) nums.push(num);
1065
1065
  }
1066
1066
  }
@@ -1188,13 +1188,13 @@ function logicalValues(ctx) {
1188
1188
  const value = ctx.value(i);
1189
1189
  if (Array.isArray(value)) {
1190
1190
  for (const item of value) {
1191
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, item)) return item;
1192
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, item)) continue;
1191
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, item)) return item;
1192
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, item)) continue;
1193
1193
  if (typeof item === "boolean") values.push(item);
1194
1194
  else if (typeof item === "number") values.push(item !== 0);
1195
1195
  else {
1196
- const num = _chunkLYGEEDNRcjs.numericValue.call(void 0, item);
1197
- const bool2 = num !== null ? num !== 0 : _chunkLYGEEDNRcjs.toBoolean.call(void 0, item);
1196
+ const num = _chunkXP5IUZUOcjs.numericValue.call(void 0, item);
1197
+ const bool2 = num !== null ? num !== 0 : _chunkXP5IUZUOcjs.toBoolean.call(void 0, item);
1198
1198
  if (typeof bool2 === "boolean") values.push(bool2);
1199
1199
  }
1200
1200
  }
@@ -1232,7 +1232,7 @@ var LOGICAL_FUNCTIONS = [
1232
1232
  args: [arg("value", "The value to check."), arg("value_if_error", "The result when value is an error.")],
1233
1233
  evaluate: (ctx) => {
1234
1234
  const value = ctx.value(0);
1235
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) ? ctx.value(1) : value;
1235
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) ? ctx.value(1) : value;
1236
1236
  }
1237
1237
  },
1238
1238
  {
@@ -1274,13 +1274,13 @@ var LOGICAL_FUNCTIONS = [
1274
1274
  allowTrailingArgument: true,
1275
1275
  evaluate: (ctx) => {
1276
1276
  const expression = ctx.scalar(0);
1277
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, expression)) return expression;
1278
- const target = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, expression);
1277
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, expression)) return expression;
1278
+ const target = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, expression);
1279
1279
  let i = 1;
1280
1280
  for (; i + 1 < ctx.args.length; i += 2) {
1281
1281
  const candidate = ctx.scalar(i);
1282
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, candidate)) return candidate;
1283
- if (_chunkLYGEEDNRcjs.compareValues.call(void 0, target, _chunkLYGEEDNRcjs.normalizeValue.call(void 0, candidate)) === 0) return ctx.value(i + 1);
1282
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, candidate)) return candidate;
1283
+ if (_chunkXP5IUZUOcjs.compareValues.call(void 0, target, _chunkXP5IUZUOcjs.normalizeValue.call(void 0, candidate)) === 0) return ctx.value(i + 1);
1284
1284
  }
1285
1285
  if (i < ctx.args.length) return ctx.value(i);
1286
1286
  return ctx.error("#N/A", "SWITCH found no matching value and has no default.");
@@ -1354,8 +1354,8 @@ function parseNumericText(text) {
1354
1354
  return negative ? -num : num;
1355
1355
  }
1356
1356
  if (scale === 1 && !negative) {
1357
- const date = /^\d{4}-\d{1,2}-\d{1,2}/.test(trimmed) ? _chunkLYGEEDNRcjs.toDate.call(void 0, trimmed) : null;
1358
- if (date) return _chunkLYGEEDNRcjs.dateToSerial.call(void 0, date);
1357
+ const date = /^\d{4}-\d{1,2}-\d{1,2}/.test(trimmed) ? _chunkXP5IUZUOcjs.toDate.call(void 0, trimmed) : null;
1358
+ if (date) return _chunkXP5IUZUOcjs.dateToSerial.call(void 0, date);
1359
1359
  }
1360
1360
  return null;
1361
1361
  }
@@ -1389,9 +1389,9 @@ var TEXT_FUNCTIONS = [
1389
1389
  args: [repeating("text", "A value, cell or range to join.", "text")],
1390
1390
  evaluate: (ctx) => {
1391
1391
  const items = ctx.flatValues();
1392
- const error = items.find(_chunkLYGEEDNRcjs.isFormulaError);
1392
+ const error = items.find(_chunkXP5IUZUOcjs.isFormulaError);
1393
1393
  if (error) return error;
1394
- return items.map(_chunkLYGEEDNRcjs.toText).join("");
1394
+ return items.map(_chunkXP5IUZUOcjs.toText).join("");
1395
1395
  }
1396
1396
  },
1397
1397
  {
@@ -1409,9 +1409,9 @@ var TEXT_FUNCTIONS = [
1409
1409
  const ignoreEmpty = ctx.boolean(1);
1410
1410
  if (failed(ignoreEmpty)) return ignoreEmpty;
1411
1411
  const items = ctx.flatValues(2);
1412
- const error = items.find(_chunkLYGEEDNRcjs.isFormulaError);
1412
+ const error = items.find(_chunkXP5IUZUOcjs.isFormulaError);
1413
1413
  if (error) return error;
1414
- return items.map(_chunkLYGEEDNRcjs.toText).filter((text) => !ignoreEmpty || text !== "").join(delimiter);
1414
+ return items.map(_chunkXP5IUZUOcjs.toText).filter((text) => !ignoreEmpty || text !== "").join(delimiter);
1415
1415
  }
1416
1416
  },
1417
1417
  {
@@ -1614,11 +1614,11 @@ var TEXT_FUNCTIONS = [
1614
1614
  args: [TEXT],
1615
1615
  evaluate: (ctx) => {
1616
1616
  const value = ctx.scalar(0);
1617
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
1617
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
1618
1618
  if (typeof value === "number") return value;
1619
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, value)) return 0;
1620
- const num = _nullishCoalesce(parseNumericText(_chunkLYGEEDNRcjs.toText.call(void 0, value)), () => ( _chunkLYGEEDNRcjs.parseNumberText.call(void 0, _chunkLYGEEDNRcjs.toText.call(void 0, value))));
1621
- if (num === null) return ctx.argError(0, "#VALUE!", `("${_chunkLYGEEDNRcjs.toText.call(void 0, value)}") can't be converted to a number.`);
1619
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, value)) return 0;
1620
+ const num = _nullishCoalesce(parseNumericText(_chunkXP5IUZUOcjs.toText.call(void 0, value)), () => ( _chunkXP5IUZUOcjs.parseNumberText.call(void 0, _chunkXP5IUZUOcjs.toText.call(void 0, value))));
1621
+ if (num === null) return ctx.argError(0, "#VALUE!", `("${_chunkXP5IUZUOcjs.toText.call(void 0, value)}") can't be converted to a number.`);
1622
1622
  return num;
1623
1623
  }
1624
1624
  },
@@ -1629,10 +1629,10 @@ var TEXT_FUNCTIONS = [
1629
1629
  args: [arg("value", "The number or date to format."), arg("format_text", "The format code.", "text")],
1630
1630
  evaluate: (ctx) => {
1631
1631
  const value = ctx.scalar(0);
1632
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
1632
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
1633
1633
  const format = ctx.text(1);
1634
1634
  if (failed(format)) return format;
1635
- const result = _chunkLYGEEDNRcjs.formatTextFunction.call(void 0, value, format);
1635
+ const result = _chunkXP5IUZUOcjs.formatTextFunction.call(void 0, value, format);
1636
1636
  if ("text" in result) return result.text;
1637
1637
  if (result.error === "#VALUE!") {
1638
1638
  return Array.from(format).length > 255 ? ctx.argError(1, "#VALUE!", "is longer than 255 characters.") : ctx.argError(0, "#VALUE!", `is outside the date range, so it can't use the format "${format}".`);
@@ -1645,15 +1645,15 @@ var TEXT_FUNCTIONS = [
1645
1645
  // src/spreadsheet/formula/functions/lookup.ts
1646
1646
  var sameType = (a, b) => typeof a === "number" === (typeof b === "number") && typeof a === "boolean" === (typeof b === "boolean");
1647
1647
  function lookupIndex(values, target, mode, reverse = false) {
1648
- const wanted = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, target);
1648
+ const wanted = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, target);
1649
1649
  const order = values.map((_, i) => i);
1650
1650
  if (reverse) order.reverse();
1651
1651
  if (mode === "exact" || mode === "wildcard") {
1652
1652
  const regex = mode === "wildcard" && typeof wanted === "string" && hasWildcards(wanted) ? wildcardToRegExp(wanted) : null;
1653
1653
  for (const i of order) {
1654
- const value = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, values[i]);
1655
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) || _chunkLYGEEDNRcjs.isBlank.call(void 0, value)) continue;
1656
- if (regex ? typeof value === "string" && regex.test(value) : sameType(value, wanted) && _chunkLYGEEDNRcjs.compareValues.call(void 0, value, wanted) === 0) {
1654
+ const value = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, values[i]);
1655
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) || _chunkXP5IUZUOcjs.isBlank.call(void 0, value)) continue;
1656
+ if (regex ? typeof value === "string" && regex.test(value) : sameType(value, wanted) && _chunkXP5IUZUOcjs.compareValues.call(void 0, value, wanted) === 0) {
1657
1657
  return i;
1658
1658
  }
1659
1659
  }
@@ -1662,9 +1662,9 @@ function lookupIndex(values, target, mode, reverse = false) {
1662
1662
  if (mode === "sorted-asc" || mode === "sorted-desc") {
1663
1663
  let found = -1;
1664
1664
  for (let i = 0; i < values.length; i++) {
1665
- const value = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, values[i]);
1666
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) || _chunkLYGEEDNRcjs.isBlank.call(void 0, value) || !sameType(value, wanted)) continue;
1667
- const cmp = _chunkLYGEEDNRcjs.compareValues.call(void 0, value, wanted);
1665
+ const value = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, values[i]);
1666
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) || _chunkXP5IUZUOcjs.isBlank.call(void 0, value) || !sameType(value, wanted)) continue;
1667
+ const cmp = _chunkXP5IUZUOcjs.compareValues.call(void 0, value, wanted);
1668
1668
  if (mode === "sorted-asc" ? cmp <= 0 : cmp >= 0) found = i;
1669
1669
  else break;
1670
1670
  }
@@ -1673,12 +1673,12 @@ function lookupIndex(values, target, mode, reverse = false) {
1673
1673
  let best = -1;
1674
1674
  let bestValue;
1675
1675
  for (const i of order) {
1676
- const value = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, values[i]);
1677
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) || _chunkLYGEEDNRcjs.isBlank.call(void 0, value) || !sameType(value, wanted)) continue;
1678
- const cmp = _chunkLYGEEDNRcjs.compareValues.call(void 0, value, wanted);
1676
+ const value = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, values[i]);
1677
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) || _chunkXP5IUZUOcjs.isBlank.call(void 0, value) || !sameType(value, wanted)) continue;
1678
+ const cmp = _chunkXP5IUZUOcjs.compareValues.call(void 0, value, wanted);
1679
1679
  if (cmp === 0) return i;
1680
1680
  const candidate = mode === "next-smaller" ? cmp < 0 : cmp > 0;
1681
- const closer = best === -1 || (mode === "next-smaller" ? _chunkLYGEEDNRcjs.compareValues.call(void 0, value, bestValue) > 0 : _chunkLYGEEDNRcjs.compareValues.call(void 0, value, bestValue) < 0);
1681
+ const closer = best === -1 || (mode === "next-smaller" ? _chunkXP5IUZUOcjs.compareValues.call(void 0, value, bestValue) > 0 : _chunkXP5IUZUOcjs.compareValues.call(void 0, value, bestValue) < 0);
1682
1682
  if (candidate && closer) {
1683
1683
  best = i;
1684
1684
  bestValue = value;
@@ -1697,7 +1697,7 @@ function vector(ctx, index) {
1697
1697
  var notFound = (ctx, value) => ctx.error("#N/A", `${ctx.name} couldn't find ${typeof value === "string" ? `"${value}"` : String(value)}.`);
1698
1698
  function tableLookup(ctx, vertical) {
1699
1699
  const target = ctx.scalar(0);
1700
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, target)) return target;
1700
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, target)) return target;
1701
1701
  const table = ctx.range(1);
1702
1702
  if (failed(table)) return table;
1703
1703
  const index = ctx.integer(2);
@@ -1709,10 +1709,10 @@ function tableLookup(ctx, vertical) {
1709
1709
  if (index > span) {
1710
1710
  return ctx.argError(2, "#REF!", `is larger than the number of ${vertical ? "columns" : "rows"} in the table (${span}).`);
1711
1711
  }
1712
- const keys = vertical ? _chunkLYGEEDNRcjs.sliceRange.call(void 0, table, 0, table.rows, 0, 1) : _chunkLYGEEDNRcjs.sliceRange.call(void 0, table, 0, 1, 0, table.cols);
1712
+ const keys = vertical ? _chunkXP5IUZUOcjs.sliceRange.call(void 0, table, 0, table.rows, 0, 1) : _chunkXP5IUZUOcjs.sliceRange.call(void 0, table, 0, 1, 0, table.cols);
1713
1713
  const position = lookupIndex(keys, target, approximate ? "sorted-asc" : "wildcard");
1714
1714
  if (position === -1) return notFound(ctx, target);
1715
- return vertical ? _chunkLYGEEDNRcjs.rangeGet.call(void 0, table, position, index - 1) : _chunkLYGEEDNRcjs.rangeGet.call(void 0, table, index - 1, position);
1715
+ return vertical ? _chunkXP5IUZUOcjs.rangeGet.call(void 0, table, position, index - 1) : _chunkXP5IUZUOcjs.rangeGet.call(void 0, table, index - 1, position);
1716
1716
  }
1717
1717
  var LOOKUP_FUNCTIONS = [
1718
1718
  {
@@ -1750,7 +1750,7 @@ var LOOKUP_FUNCTIONS = [
1750
1750
  ],
1751
1751
  evaluate: (ctx) => {
1752
1752
  const target = ctx.scalar(0);
1753
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, target)) return target;
1753
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, target)) return target;
1754
1754
  const list = vector(ctx, 1);
1755
1755
  if (failed(list)) return list;
1756
1756
  const type = ctx.number(2, 1);
@@ -1787,9 +1787,9 @@ var LOOKUP_FUNCTIONS = [
1787
1787
  return ctx.argError(2, "#REF!", `is outside the range (1 to ${range.cols}).`);
1788
1788
  }
1789
1789
  if (row === 0 && col === 0) return range.values;
1790
- if (row === 0) return _chunkLYGEEDNRcjs.sliceRange.call(void 0, range, 0, range.rows, col - 1, 1);
1791
- if (col === 0) return _chunkLYGEEDNRcjs.sliceRange.call(void 0, range, row - 1, 1, 0, range.cols);
1792
- return _chunkLYGEEDNRcjs.rangeGet.call(void 0, range, row - 1, col - 1);
1790
+ if (row === 0) return _chunkXP5IUZUOcjs.sliceRange.call(void 0, range, 0, range.rows, col - 1, 1);
1791
+ if (col === 0) return _chunkXP5IUZUOcjs.sliceRange.call(void 0, range, row - 1, 1, 0, range.cols);
1792
+ return _chunkXP5IUZUOcjs.rangeGet.call(void 0, range, row - 1, col - 1);
1793
1793
  }
1794
1794
  },
1795
1795
  {
@@ -1806,7 +1806,7 @@ var LOOKUP_FUNCTIONS = [
1806
1806
  ],
1807
1807
  evaluate: (ctx) => {
1808
1808
  const target = ctx.scalar(0);
1809
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, target)) return target;
1809
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, target)) return target;
1810
1810
  const list = vector(ctx, 1);
1811
1811
  if (failed(list)) return list;
1812
1812
  const result = ctx.range(2);
@@ -1827,9 +1827,9 @@ var LOOKUP_FUNCTIONS = [
1827
1827
  const position = lookupIndex(list.values, target, mode, searchMode < 0);
1828
1828
  if (position === -1) return ctx.has(3) ? ctx.value(3) : notFound(ctx, target);
1829
1829
  if (vertical) {
1830
- return result.cols === 1 ? _chunkLYGEEDNRcjs.rangeGet.call(void 0, result, position, 0) : _chunkLYGEEDNRcjs.sliceRange.call(void 0, result, position, 1, 0, result.cols);
1830
+ return result.cols === 1 ? _chunkXP5IUZUOcjs.rangeGet.call(void 0, result, position, 0) : _chunkXP5IUZUOcjs.sliceRange.call(void 0, result, position, 1, 0, result.cols);
1831
1831
  }
1832
- return result.rows === 1 ? _chunkLYGEEDNRcjs.rangeGet.call(void 0, result, 0, position) : _chunkLYGEEDNRcjs.sliceRange.call(void 0, result, 0, result.rows, position, 1);
1832
+ return result.rows === 1 ? _chunkXP5IUZUOcjs.rangeGet.call(void 0, result, 0, position) : _chunkXP5IUZUOcjs.sliceRange.call(void 0, result, 0, result.rows, position, 1);
1833
1833
  }
1834
1834
  }
1835
1835
  ];
@@ -1856,7 +1856,7 @@ var DATE_FUNCTIONS = [
1856
1856
  args: [],
1857
1857
  volatile: true,
1858
1858
  // Local calendar date (toISOString would give the UTC date).
1859
- evaluate: () => _chunkLYGEEDNRcjs.formatIsoDate.call(void 0, /* @__PURE__ */ new Date())
1859
+ evaluate: () => _chunkXP5IUZUOcjs.formatIsoDate.call(void 0, /* @__PURE__ */ new Date())
1860
1860
  },
1861
1861
  {
1862
1862
  name: "NOW",
@@ -1864,7 +1864,7 @@ var DATE_FUNCTIONS = [
1864
1864
  description: "Returns the current date and time (YYYY-MM-DD HH:MM:SS). Changes on every recalculation.",
1865
1865
  args: [],
1866
1866
  volatile: true,
1867
- evaluate: () => _chunkLYGEEDNRcjs.formatIsoDateTime.call(void 0, /* @__PURE__ */ new Date())
1867
+ evaluate: () => _chunkXP5IUZUOcjs.formatIsoDateTime.call(void 0, /* @__PURE__ */ new Date())
1868
1868
  },
1869
1869
  {
1870
1870
  name: "DATE",
@@ -1889,7 +1889,7 @@ var DATE_FUNCTIONS = [
1889
1889
  if (date.getFullYear() < 1900 || date.getFullYear() > 9999) {
1890
1890
  return ctx.error("#NUM!", "DATE produced a date outside the years 1900-9999.");
1891
1891
  }
1892
- return _chunkLYGEEDNRcjs.formatIsoDate.call(void 0, date);
1892
+ return _chunkXP5IUZUOcjs.formatIsoDate.call(void 0, date);
1893
1893
  }
1894
1894
  },
1895
1895
  {
@@ -1940,7 +1940,7 @@ var DATE_FUNCTIONS = [
1940
1940
  if (failed(end)) return end;
1941
1941
  const start = ctx.date(1);
1942
1942
  if (failed(start)) return start;
1943
- return _chunkLYGEEDNRcjs.daysBetween.call(void 0, start, end);
1943
+ return _chunkXP5IUZUOcjs.daysBetween.call(void 0, start, end);
1944
1944
  }
1945
1945
  },
1946
1946
  {
@@ -1953,7 +1953,7 @@ var DATE_FUNCTIONS = [
1953
1953
  if (failed(start)) return start;
1954
1954
  const months = ctx.integer(1);
1955
1955
  if (failed(months)) return months;
1956
- return _chunkLYGEEDNRcjs.formatIsoDate.call(void 0, addMonths(start, months));
1956
+ return _chunkXP5IUZUOcjs.formatIsoDate.call(void 0, addMonths(start, months));
1957
1957
  }
1958
1958
  },
1959
1959
  {
@@ -1966,7 +1966,7 @@ var DATE_FUNCTIONS = [
1966
1966
  if (failed(start)) return start;
1967
1967
  const months = ctx.integer(1);
1968
1968
  if (failed(months)) return months;
1969
- return _chunkLYGEEDNRcjs.formatIsoDate.call(void 0, new Date(start.getFullYear(), start.getMonth() + months + 1, 0));
1969
+ return _chunkXP5IUZUOcjs.formatIsoDate.call(void 0, new Date(start.getFullYear(), start.getMonth() + months + 1, 0));
1970
1970
  }
1971
1971
  },
1972
1972
  {
@@ -1983,20 +1983,20 @@ var DATE_FUNCTIONS = [
1983
1983
  if (ctx.has(2)) {
1984
1984
  const raw = ctx.value(2);
1985
1985
  for (const value of Array.isArray(raw) ? raw : [raw]) {
1986
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
1987
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, value)) continue;
1988
- const date = _chunkLYGEEDNRcjs.toDate.call(void 0, value);
1986
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
1987
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, value)) continue;
1988
+ const date = _chunkXP5IUZUOcjs.toDate.call(void 0, value);
1989
1989
  if (!date) return ctx.argError(2, "#VALUE!", "must contain only dates.");
1990
- holidays.add(_chunkLYGEEDNRcjs.formatIsoDate.call(void 0, date));
1990
+ holidays.add(_chunkXP5IUZUOcjs.formatIsoDate.call(void 0, date));
1991
1991
  }
1992
1992
  }
1993
- const sign = _chunkLYGEEDNRcjs.daysBetween.call(void 0, start, end) < 0 ? -1 : 1;
1993
+ const sign = _chunkXP5IUZUOcjs.daysBetween.call(void 0, start, end) < 0 ? -1 : 1;
1994
1994
  const [from, to] = sign < 0 ? [end, start] : [start, end];
1995
1995
  let count = 0;
1996
- const total = _chunkLYGEEDNRcjs.daysBetween.call(void 0, from, to);
1996
+ const total = _chunkXP5IUZUOcjs.daysBetween.call(void 0, from, to);
1997
1997
  for (let i = 0; i <= total; i++) {
1998
1998
  const day = new Date(from.getFullYear(), from.getMonth(), from.getDate() + i);
1999
- if (isWorkday(day) && !holidays.has(_chunkLYGEEDNRcjs.formatIsoDate.call(void 0, day))) count++;
1999
+ if (isWorkday(day) && !holidays.has(_chunkXP5IUZUOcjs.formatIsoDate.call(void 0, day))) count++;
2000
2000
  }
2001
2001
  return sign * count;
2002
2002
  }
@@ -2017,7 +2017,7 @@ var DATE_FUNCTIONS = [
2017
2017
  if (failed(end)) return end;
2018
2018
  const unit = ctx.text(2);
2019
2019
  if (failed(unit)) return unit;
2020
- if (_chunkLYGEEDNRcjs.daysBetween.call(void 0, start, end) < 0) return ctx.error("#NUM!", "DATEDIF needs the start date to be on or before the end date.");
2020
+ if (_chunkXP5IUZUOcjs.daysBetween.call(void 0, start, end) < 0) return ctx.error("#NUM!", "DATEDIF needs the start date to be on or before the end date.");
2021
2021
  let months = (end.getFullYear() - start.getFullYear()) * 12 + end.getMonth() - start.getMonth();
2022
2022
  if (end.getDate() < start.getDate()) months--;
2023
2023
  switch (unit.trim().toUpperCase()) {
@@ -2026,16 +2026,16 @@ var DATE_FUNCTIONS = [
2026
2026
  case "M":
2027
2027
  return months;
2028
2028
  case "D":
2029
- return _chunkLYGEEDNRcjs.daysBetween.call(void 0, start, end);
2029
+ return _chunkXP5IUZUOcjs.daysBetween.call(void 0, start, end);
2030
2030
  case "YM":
2031
2031
  return months % 12;
2032
2032
  case "MD": {
2033
2033
  const anchor = addMonths(start, months);
2034
- return _chunkLYGEEDNRcjs.daysBetween.call(void 0, anchor, end);
2034
+ return _chunkXP5IUZUOcjs.daysBetween.call(void 0, anchor, end);
2035
2035
  }
2036
2036
  case "YD": {
2037
2037
  const anchor = addMonths(start, Math.floor(months / 12) * 12);
2038
- return _chunkLYGEEDNRcjs.daysBetween.call(void 0, anchor, end);
2038
+ return _chunkXP5IUZUOcjs.daysBetween.call(void 0, anchor, end);
2039
2039
  }
2040
2040
  default:
2041
2041
  return ctx.argError(2, "#NUM!", 'must be "Y", "M", "D", "MD", "YM" or "YD".');
@@ -2053,14 +2053,14 @@ var INFORMATION_FUNCTIONS = [
2053
2053
  category: "information",
2054
2054
  description: "Returns TRUE if the value is empty.",
2055
2055
  args: [VALUE],
2056
- evaluate: check(_chunkLYGEEDNRcjs.isBlank)
2056
+ evaluate: check(_chunkXP5IUZUOcjs.isBlank)
2057
2057
  },
2058
2058
  {
2059
2059
  name: "ISNUMBER",
2060
2060
  category: "information",
2061
2061
  description: "Returns TRUE if the value is a number (typed cell values that look like numbers count).",
2062
2062
  args: [VALUE],
2063
- evaluate: check((value) => _chunkLYGEEDNRcjs.numericValue.call(void 0, value) !== null)
2063
+ evaluate: check((value) => _chunkXP5IUZUOcjs.numericValue.call(void 0, value) !== null)
2064
2064
  },
2065
2065
  {
2066
2066
  name: "ISTEXT",
@@ -2068,7 +2068,7 @@ var INFORMATION_FUNCTIONS = [
2068
2068
  description: "Returns TRUE if the value is text that is not a number.",
2069
2069
  args: [VALUE],
2070
2070
  evaluate: check(
2071
- (value) => typeof value === "string" && !_chunkLYGEEDNRcjs.isBlank.call(void 0, value) && !_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value) && _chunkLYGEEDNRcjs.numericValue.call(void 0, value) === null
2071
+ (value) => typeof value === "string" && !_chunkXP5IUZUOcjs.isBlank.call(void 0, value) && !_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value) && _chunkXP5IUZUOcjs.numericValue.call(void 0, value) === null
2072
2072
  )
2073
2073
  },
2074
2074
  {
@@ -2076,7 +2076,7 @@ var INFORMATION_FUNCTIONS = [
2076
2076
  category: "information",
2077
2077
  description: "Returns TRUE if the value is any error.",
2078
2078
  args: [VALUE],
2079
- evaluate: check(_chunkLYGEEDNRcjs.isFormulaError)
2079
+ evaluate: check(_chunkXP5IUZUOcjs.isFormulaError)
2080
2080
  },
2081
2081
  {
2082
2082
  name: "ISNA",
@@ -2091,8 +2091,8 @@ var INFORMATION_FUNCTIONS = [
2091
2091
  var MAX_ARRAY_CELLS = 1e6;
2092
2092
  function rangeArg(ctx, index) {
2093
2093
  const value = ctx.value(index);
2094
- if (Array.isArray(value)) return _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2095
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
2094
+ if (Array.isArray(value)) return _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2095
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
2096
2096
  return { rows: 1, cols: 1, values: [value] };
2097
2097
  }
2098
2098
  function fromRows(rows, cols) {
@@ -2100,16 +2100,16 @@ function fromRows(rows, cols) {
2100
2100
  for (let c = 0; c < cols; c++) {
2101
2101
  for (const row of rows) out.push(row[c]);
2102
2102
  }
2103
- return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, rows.length, cols);
2103
+ return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, rows.length, cols);
2104
2104
  }
2105
2105
  var rowOf = (range, r) => {
2106
2106
  const row = [];
2107
- for (let c = 0; c < range.cols; c++) row.push(_chunkLYGEEDNRcjs.rangeGet.call(void 0, range, r, c));
2107
+ for (let c = 0; c < range.cols; c++) row.push(_chunkXP5IUZUOcjs.rangeGet.call(void 0, range, r, c));
2108
2108
  return row;
2109
2109
  };
2110
2110
  var colOf = (range, c) => {
2111
2111
  const col = [];
2112
- for (let r = 0; r < range.rows; r++) col.push(_chunkLYGEEDNRcjs.rangeGet.call(void 0, range, r, c));
2112
+ for (let r = 0; r < range.rows; r++) col.push(_chunkXP5IUZUOcjs.rangeGet.call(void 0, range, r, c));
2113
2113
  return col;
2114
2114
  };
2115
2115
  var linesOf = (range, byCol) => byCol ? Array.from({ length: range.cols }, (_, c) => colOf(range, c)) : Array.from({ length: range.rows }, (_, r) => rowOf(range, r));
@@ -2117,13 +2117,13 @@ function fromLines(lines, byCol, width) {
2117
2117
  if (!byCol) return fromRows(lines, width);
2118
2118
  const out = [];
2119
2119
  for (const line of lines) for (const v of line) out.push(v);
2120
- return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, width, lines.length);
2120
+ return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, width, lines.length);
2121
2121
  }
2122
2122
  function compareForSort(a, b, order) {
2123
- const blankA = _chunkLYGEEDNRcjs.isBlank.call(void 0, a);
2124
- const blankB = _chunkLYGEEDNRcjs.isBlank.call(void 0, b);
2123
+ const blankA = _chunkXP5IUZUOcjs.isBlank.call(void 0, a);
2124
+ const blankB = _chunkXP5IUZUOcjs.isBlank.call(void 0, b);
2125
2125
  if (blankA || blankB) return blankA === blankB ? 0 : blankA ? 1 : -1;
2126
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, _chunkLYGEEDNRcjs.normalizeValue.call(void 0, a), _chunkLYGEEDNRcjs.normalizeValue.call(void 0, b)) * order;
2126
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, _chunkXP5IUZUOcjs.normalizeValue.call(void 0, a), _chunkXP5IUZUOcjs.normalizeValue.call(void 0, b)) * order;
2127
2127
  }
2128
2128
  var sortOrder = (ctx, index) => {
2129
2129
  const order = ctx.integer(index, 1);
@@ -2131,9 +2131,9 @@ var sortOrder = (ctx, index) => {
2131
2131
  return order === 1 || order === -1 ? order : ctx.argError(index, "#VALUE!", "must be 1 (ascending) or -1 (descending).");
2132
2132
  };
2133
2133
  function includeFlag(value) {
2134
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
2135
- const flag = _chunkLYGEEDNRcjs.toBoolean.call(void 0, value);
2136
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, flag) ? "#VALUE!" : flag;
2134
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
2135
+ const flag = _chunkXP5IUZUOcjs.toBoolean.call(void 0, value);
2136
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, flag) ? "#VALUE!" : flag;
2137
2137
  }
2138
2138
  var ARRAY_FUNCTIONS = [
2139
2139
  {
@@ -2261,8 +2261,8 @@ var ARRAY_FUNCTIONS = [
2261
2261
  if (failed(exactlyOnce)) return exactlyOnce;
2262
2262
  const keyOf = (line) => JSON.stringify(
2263
2263
  line.map((v) => {
2264
- const n = _chunkLYGEEDNRcjs.normalizeValue.call(void 0, v);
2265
- return typeof n === "string" ? `s:${n.toLowerCase()}` : _chunkLYGEEDNRcjs.isBlank.call(void 0, n) ? "blank" : `${typeof n}:${String(n)}`;
2264
+ const n = _chunkXP5IUZUOcjs.normalizeValue.call(void 0, v);
2265
+ return typeof n === "string" ? `s:${n.toLowerCase()}` : _chunkXP5IUZUOcjs.isBlank.call(void 0, n) ? "blank" : `${typeof n}:${String(n)}`;
2266
2266
  })
2267
2267
  );
2268
2268
  const counts = /* @__PURE__ */ new Map();
@@ -2302,7 +2302,7 @@ var ARRAY_FUNCTIONS = [
2302
2302
  for (let c = 0; c < cols; c++) {
2303
2303
  for (let r = 0; r < rows; r++) out.push(start + step * (r * cols + c));
2304
2304
  }
2305
- return rows * cols === 1 ? out[0] : _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, rows, cols);
2305
+ return rows * cols === 1 ? out[0] : _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, rows, cols);
2306
2306
  }
2307
2307
  },
2308
2308
  {
@@ -2316,9 +2316,9 @@ var ARRAY_FUNCTIONS = [
2316
2316
  if (range.rows * range.cols === 1) return range.values[0];
2317
2317
  const out = [];
2318
2318
  for (let r = 0; r < range.rows; r++) {
2319
- for (let c = 0; c < range.cols; c++) out.push(_chunkLYGEEDNRcjs.rangeGet.call(void 0, range, r, c));
2319
+ for (let c = 0; c < range.cols; c++) out.push(_chunkXP5IUZUOcjs.rangeGet.call(void 0, range, r, c));
2320
2320
  }
2321
- return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, range.cols, range.rows);
2321
+ return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, range.cols, range.rows);
2322
2322
  }
2323
2323
  },
2324
2324
  {
@@ -2353,7 +2353,7 @@ var ARRAY_FUNCTIONS = [
2353
2353
  const next = () => integer ? min2 + Math.floor(Math.random() * (max2 - min2 + 1)) : min2 + Math.random() * (max2 - min2);
2354
2354
  const out = [];
2355
2355
  for (let i = 0; i < rows * cols; i++) out.push(next());
2356
- return rows * cols === 1 ? out[0] : _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, rows, cols);
2356
+ return rows * cols === 1 ? out[0] : _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, rows, cols);
2357
2357
  }
2358
2358
  },
2359
2359
  {
@@ -2647,12 +2647,12 @@ var quote = (value) => typeof value === "string" ? `"${value}"` : String(value);
2647
2647
  var MAX_FORMULA_ARRAY_SIZE = 1e6;
2648
2648
  function shapeOf(value) {
2649
2649
  if (!Array.isArray(value)) return { rows: 1, cols: 1 };
2650
- const range = _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2650
+ const range = _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2651
2651
  return { rows: range.rows, cols: range.cols };
2652
2652
  }
2653
2653
  function broadcastGet(value, row, col) {
2654
2654
  if (!Array.isArray(value)) return value;
2655
- const range = _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2655
+ const range = _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2656
2656
  const r = range.rows === 1 ? 0 : row;
2657
2657
  const c = range.cols === 1 ? 0 : col;
2658
2658
  if (r >= range.rows || c >= range.cols) return "#N/A";
@@ -2663,7 +2663,7 @@ function buildArray(rows, cols, fn) {
2663
2663
  for (let c = 0; c < cols; c++) {
2664
2664
  for (let r = 0; r < rows; r++) out.push(fn(r, c));
2665
2665
  }
2666
- return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, rows, cols);
2666
+ return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, rows, cols);
2667
2667
  }
2668
2668
  var isMultiArray = (value) => Array.isArray(value) && value.length > 1;
2669
2669
  var firstValue = (value) => Array.isArray(value) ? value.length ? value[0] : "" : value;
@@ -2675,7 +2675,7 @@ function elementValue(value) {
2675
2675
  return value;
2676
2676
  }
2677
2677
  function asRange(value) {
2678
- if (Array.isArray(value)) return _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2678
+ if (Array.isArray(value)) return _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2679
2679
  return { rows: 1, cols: 1, values: [value] };
2680
2680
  }
2681
2681
  var LITERAL_BLANK = { type: "Literal", value: "" };
@@ -2730,10 +2730,10 @@ var FormulaEvaluator = (_class2 = class {
2730
2730
  let value = this.evaluate(astOrFormula);
2731
2731
  let array;
2732
2732
  if (Array.isArray(value)) {
2733
- if (value.length > 1) array = _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2733
+ if (value.length > 1) array = _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2734
2734
  value = firstValue(value);
2735
2735
  }
2736
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) {
2736
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) {
2737
2737
  const code = value;
2738
2738
  const diagnostic = this.diagnostics.find((d) => d.code === code);
2739
2739
  const result = {
@@ -2775,7 +2775,7 @@ var FormulaEvaluator = (_class2 = class {
2775
2775
  }
2776
2776
  if (node.sheetEnd !== void 0) return this.evaluate3d(node);
2777
2777
  const value = this.context.resolveCell(node.col, node.row, _nullishCoalesce(node.sheet, () => ( this.defaultSheet)));
2778
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) {
2778
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) {
2779
2779
  const label = `${sheetLabel(node)}${node.ref}`;
2780
2780
  if (value === "#REF!" && node.sheet !== void 0) {
2781
2781
  return this.fail("#REF!", `${label} refers to a sheet that doesn't exist.`);
@@ -2798,7 +2798,7 @@ var FormulaEvaluator = (_class2 = class {
2798
2798
  case "Invoke": {
2799
2799
  const callee = this.evaluateNode(node.callee);
2800
2800
  if (isFormulaLambda(callee)) return this.invokeLambda(callee, node.args);
2801
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, callee)) return callee;
2801
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, callee)) return callee;
2802
2802
  return this.fail("#VALUE!", "Only a LAMBDA function can be called with arguments in parentheses.");
2803
2803
  }
2804
2804
  case "PropertyRef": {
@@ -2818,9 +2818,9 @@ var FormulaEvaluator = (_class2 = class {
2818
2818
  }
2819
2819
  case "BinaryOp": {
2820
2820
  const left = this.evaluateNode(node.left);
2821
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, left)) return left;
2821
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, left)) return left;
2822
2822
  const right = this.evaluateNode(node.right);
2823
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, right)) return right;
2823
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, right)) return right;
2824
2824
  if (isFormulaLambda(left) || isFormulaLambda(right)) {
2825
2825
  return this.fail("#VALUE!", `The ${node.op} operator can't use a LAMBDA function; call it with arguments first.`);
2826
2826
  }
@@ -2832,16 +2832,16 @@ var FormulaEvaluator = (_class2 = class {
2832
2832
  if (rows * cols > MAX_FORMULA_ARRAY_SIZE) return this.fail("#NUM!", "The array result is too large.");
2833
2833
  return buildArray(rows, cols, (r2, c) => {
2834
2834
  const l2 = broadcastGet(left, r2, c);
2835
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, l2)) return l2;
2835
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, l2)) return l2;
2836
2836
  const rv = broadcastGet(right, r2, c);
2837
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, rv)) return rv;
2837
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, rv)) return rv;
2838
2838
  return this.binary(node.op, l2, rv);
2839
2839
  });
2840
2840
  }
2841
2841
  const l = firstValue(left);
2842
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, l)) return l;
2842
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, l)) return l;
2843
2843
  const r = firstValue(right);
2844
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, r)) return r;
2844
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, r)) return r;
2845
2845
  return this.binary(node.op, l, r);
2846
2846
  }
2847
2847
  case "FunctionCall":
@@ -2852,9 +2852,9 @@ var FormulaEvaluator = (_class2 = class {
2852
2852
  }
2853
2853
  unary(op, raw) {
2854
2854
  if (isFormulaLambda(raw)) return this.fail("#VALUE!", `The ${op} operator can't use a LAMBDA function.`);
2855
- const val = _chunkLYGEEDNRcjs.toNumber.call(void 0, raw);
2856
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, val)) {
2857
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, raw) ? raw : this.fail("#VALUE!", `The ${op} operator can't use text (${quote(raw)}).`);
2855
+ const val = _chunkXP5IUZUOcjs.toNumber.call(void 0, raw);
2856
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, val)) {
2857
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, raw) ? raw : this.fail("#VALUE!", `The ${op} operator can't use text (${quote(raw)}).`);
2858
2858
  }
2859
2859
  if (op === "-") return -val;
2860
2860
  if (op === "+") return val;
@@ -2864,14 +2864,14 @@ var FormulaEvaluator = (_class2 = class {
2864
2864
  binary(op, left, right) {
2865
2865
  if (["+", "-", "*", "/", "^"].includes(op)) {
2866
2866
  if (op === "+" || op === "-") {
2867
- const leftDate = _chunkLYGEEDNRcjs.parseIsoDate.call(void 0, left);
2868
- const rightDate = _chunkLYGEEDNRcjs.parseIsoDate.call(void 0, right);
2867
+ const leftDate = _chunkXP5IUZUOcjs.parseIsoDate.call(void 0, left);
2868
+ const rightDate = _chunkXP5IUZUOcjs.parseIsoDate.call(void 0, right);
2869
2869
  if (leftDate || rightDate) return this.dateArithmetic(op, left, right, leftDate, rightDate);
2870
2870
  }
2871
- const a = _chunkLYGEEDNRcjs.toNumber.call(void 0, left);
2872
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, a)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(left)}).`);
2873
- const b = _chunkLYGEEDNRcjs.toNumber.call(void 0, right);
2874
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, b)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(right)}).`);
2871
+ const a = _chunkXP5IUZUOcjs.toNumber.call(void 0, left);
2872
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, a)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(left)}).`);
2873
+ const b = _chunkXP5IUZUOcjs.toNumber.call(void 0, right);
2874
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, b)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(right)}).`);
2875
2875
  const x = a;
2876
2876
  const y = b;
2877
2877
  let result;
@@ -2896,19 +2896,19 @@ var FormulaEvaluator = (_class2 = class {
2896
2896
  }
2897
2897
  switch (op) {
2898
2898
  case "&":
2899
- return _chunkLYGEEDNRcjs.toText.call(void 0, left) + _chunkLYGEEDNRcjs.toText.call(void 0, right);
2899
+ return _chunkXP5IUZUOcjs.toText.call(void 0, left) + _chunkXP5IUZUOcjs.toText.call(void 0, right);
2900
2900
  case "=":
2901
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) === 0;
2901
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) === 0;
2902
2902
  case "<>":
2903
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) !== 0;
2903
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) !== 0;
2904
2904
  case "<":
2905
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) < 0;
2905
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) < 0;
2906
2906
  case "<=":
2907
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) <= 0;
2907
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) <= 0;
2908
2908
  case ">":
2909
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) > 0;
2909
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) > 0;
2910
2910
  case ">=":
2911
- return _chunkLYGEEDNRcjs.compareValues.call(void 0, left, right) >= 0;
2911
+ return _chunkXP5IUZUOcjs.compareValues.call(void 0, left, right) >= 0;
2912
2912
  default:
2913
2913
  throw new Error(`Unsupported binary operator: ${op}`);
2914
2914
  }
@@ -2920,7 +2920,7 @@ var FormulaEvaluator = (_class2 = class {
2920
2920
  dateArithmetic(op, left, right, leftDate, rightDate) {
2921
2921
  if (leftDate && rightDate) {
2922
2922
  if (op === "+") return this.fail("#VALUE!", "Two dates can't be added; subtract them to count the days between.");
2923
- return _chunkLYGEEDNRcjs.cleanFloat.call(void 0, _chunkLYGEEDNRcjs.dateToSerial.call(void 0, leftDate) - _chunkLYGEEDNRcjs.dateToSerial.call(void 0, rightDate));
2923
+ return _chunkXP5IUZUOcjs.cleanFloat.call(void 0, _chunkXP5IUZUOcjs.dateToSerial.call(void 0, leftDate) - _chunkXP5IUZUOcjs.dateToSerial.call(void 0, rightDate));
2924
2924
  }
2925
2925
  if (!leftDate && op === "-") {
2926
2926
  return this.fail("#VALUE!", `A date (${quote(right)}) can't be subtracted from a number.`);
@@ -2928,14 +2928,14 @@ var FormulaEvaluator = (_class2 = class {
2928
2928
  const date = _nullishCoalesce(leftDate, () => ( rightDate));
2929
2929
  const dateText = String(leftDate ? left : right);
2930
2930
  const other = leftDate ? right : left;
2931
- const days = _chunkLYGEEDNRcjs.toNumber.call(void 0, other);
2932
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, days)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(other)}).`);
2931
+ const days = _chunkXP5IUZUOcjs.toNumber.call(void 0, other);
2932
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, days)) return this.fail("#VALUE!", `The ${op} operator can't use text (${quote(other)}).`);
2933
2933
  const n = days;
2934
- const result = _chunkLYGEEDNRcjs.serialToDate.call(void 0, _chunkLYGEEDNRcjs.dateToSerial.call(void 0, date) + (op === "+" ? n : -n));
2934
+ const result = _chunkXP5IUZUOcjs.serialToDate.call(void 0, _chunkXP5IUZUOcjs.dateToSerial.call(void 0, date) + (op === "+" ? n : -n));
2935
2935
  if (!result || result.getFullYear() < 1 || result.getFullYear() > 9999) {
2936
2936
  return this.fail("#NUM!", "The resulting date is out of range.");
2937
2937
  }
2938
- return _chunkLYGEEDNRcjs.isoDateHasTime.call(void 0, dateText) || !Number.isInteger(n) ? _chunkLYGEEDNRcjs.formatIsoDateTime.call(void 0, result) : _chunkLYGEEDNRcjs.formatIsoDate.call(void 0, result);
2938
+ return _chunkXP5IUZUOcjs.isoDateHasTime.call(void 0, dateText) || !Number.isInteger(n) ? _chunkXP5IUZUOcjs.formatIsoDateTime.call(void 0, result) : _chunkXP5IUZUOcjs.formatIsoDate.call(void 0, result);
2939
2939
  }
2940
2940
  /**
2941
2941
  * `@` (implicit intersection): a range reference reads the cell in the
@@ -2948,14 +2948,14 @@ var FormulaEvaluator = (_class2 = class {
2948
2948
  if (value.length <= 1) return firstValue(value);
2949
2949
  const cell = _optionalChain([this, 'access', _5 => _5.context, 'access', _6 => _6.getFormulaCell, 'optionalCall', _7 => _7()]);
2950
2950
  if (argument.type === "Range" && cell) {
2951
- const range = _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, value);
2951
+ const range = _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, value);
2952
2952
  const top = Math.min(argument.startRow, argument.endRow);
2953
- const left = Math.min(_chunkLYGEEDNRcjs.colNameToIndex.call(void 0, argument.startCol), _chunkLYGEEDNRcjs.colNameToIndex.call(void 0, argument.endCol));
2953
+ const left = Math.min(_chunkXP5IUZUOcjs.colNameToIndex.call(void 0, argument.startCol), _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, argument.endCol));
2954
2954
  if (range.cols === 1) {
2955
2955
  const r = cell.row - top;
2956
2956
  if (r >= 0 && r < range.rows) return range.values[r];
2957
2957
  } else if (range.rows === 1) {
2958
- const c = _chunkLYGEEDNRcjs.colNameToIndex.call(void 0, cell.col) - left;
2958
+ const c = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, cell.col) - left;
2959
2959
  if (c >= 0 && c < range.cols) return range.values[c];
2960
2960
  }
2961
2961
  return this.fail("#VALUE!", `The @ operator found no cell of ${argument.raw} in the formula's row or column.`);
@@ -2971,14 +2971,14 @@ var FormulaEvaluator = (_class2 = class {
2971
2971
  }
2972
2972
  const spill = this.context.resolveSpill(node.col, node.row, _nullishCoalesce(node.sheet, () => ( this.defaultSheet)));
2973
2973
  if (typeof spill === "string" || !spill) {
2974
- const code = _chunkLYGEEDNRcjs.isFormulaError.call(void 0, spill) ? spill : "#REF!";
2974
+ const code = _chunkXP5IUZUOcjs.isFormulaError.call(void 0, spill) ? spill : "#REF!";
2975
2975
  return this.fail(
2976
2976
  code,
2977
2977
  code === "#REF!" ? `${node.ref}# refers to ${node.ref}, which doesn't hold a spilled array.` : `The spill range ${node.ref}# isn't available (${code}).`
2978
2978
  );
2979
2979
  }
2980
- const values = _chunkLYGEEDNRcjs.withRangeShape.call(void 0, spill.values.slice(), spill.rows, spill.cols);
2981
- const error = values.find(_chunkLYGEEDNRcjs.isFormulaError);
2980
+ const values = _chunkXP5IUZUOcjs.withRangeShape.call(void 0, spill.values.slice(), spill.rows, spill.cols);
2981
+ const error = values.find(_chunkXP5IUZUOcjs.isFormulaError);
2982
2982
  if (error) this.fail(error, `The spill range ${node.ref}# contains an error (${error}).`);
2983
2983
  return values;
2984
2984
  }
@@ -2995,9 +2995,9 @@ var FormulaEvaluator = (_class2 = class {
2995
2995
  }
2996
2996
  return values;
2997
2997
  }
2998
- const cols = Math.abs(_chunkLYGEEDNRcjs.colNameToIndex.call(void 0, node.endCol) - _chunkLYGEEDNRcjs.colNameToIndex.call(void 0, node.startCol)) + 1;
2999
- if (values.length % cols === 0) _chunkLYGEEDNRcjs.withRangeShape.call(void 0, values, values.length / cols, cols);
3000
- const error = values.find(_chunkLYGEEDNRcjs.isFormulaError);
2998
+ const cols = Math.abs(_chunkXP5IUZUOcjs.colNameToIndex.call(void 0, node.endCol) - _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, node.startCol)) + 1;
2999
+ if (values.length % cols === 0) _chunkXP5IUZUOcjs.withRangeShape.call(void 0, values, values.length / cols, cols);
3000
+ const error = values.find(_chunkXP5IUZUOcjs.isFormulaError);
3001
3001
  if (error) this.fail(error, `The range ${node.raw} contains an error (${error}).`);
3002
3002
  return values;
3003
3003
  }
@@ -3013,7 +3013,7 @@ var FormulaEvaluator = (_class2 = class {
3013
3013
  if (named) {
3014
3014
  const value = this.evaluateDefinedName(named, node.name);
3015
3015
  if (isFormulaLambda(value)) return this.invokeLambda(value, node.args);
3016
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
3016
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
3017
3017
  return this.fail("#VALUE!", `The name ${node.name} doesn't refer to a LAMBDA function, so it can't be called.`);
3018
3018
  }
3019
3019
  if (variables) {
@@ -3155,9 +3155,9 @@ var FormulaEvaluator = (_class2 = class {
3155
3155
  if (!Array.isArray(part)) return this.fail("#REF!", `${label} refers to a sheet that doesn't exist.`);
3156
3156
  for (const value of part) values.push(_nullishCoalesce(value, () => ( "")));
3157
3157
  }
3158
- const error = values.find(_chunkLYGEEDNRcjs.isFormulaError);
3158
+ const error = values.find(_chunkXP5IUZUOcjs.isFormulaError);
3159
3159
  if (error) this.fail(error, `The 3-D reference ${label} contains an error (${error}).`);
3160
- return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, values, values.length, 1);
3160
+ return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, values, values.length, 1);
3161
3161
  }
3162
3162
  /** Calls a lambda with argument expressions, evaluated in the caller's scope. */
3163
3163
  invokeLambda(lambda, argNodes) {
@@ -3284,7 +3284,7 @@ var FormulaEvaluator = (_class2 = class {
3284
3284
  }
3285
3285
  const value = this.evaluateNode(node);
3286
3286
  if (isFormulaLambda(value)) return value;
3287
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
3287
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
3288
3288
  return this.fail("#VALUE!", `Argument ${index + 1} of ${fn} must be a LAMBDA function.`);
3289
3289
  }
3290
3290
  /** Calls a built-in function with already evaluated arguments. */
@@ -3313,7 +3313,7 @@ var FormulaEvaluator = (_class2 = class {
3313
3313
  const arrays = [];
3314
3314
  for (let i = 0; i < node.args.length - 1; i++) {
3315
3315
  const value = this.evaluateNode(node.args[i]);
3316
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
3316
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
3317
3317
  arrays.push(value);
3318
3318
  }
3319
3319
  const arity = this.checkArity("MAP", lambda, arrays.length);
@@ -3341,7 +3341,7 @@ var FormulaEvaluator = (_class2 = class {
3341
3341
  const fn = scan ? "SCAN" : "REDUCE";
3342
3342
  let acc = this.evaluateNode(node.args[0]);
3343
3343
  const arrayValue = this.evaluateNode(node.args[1]);
3344
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, arrayValue)) return arrayValue;
3344
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, arrayValue)) return arrayValue;
3345
3345
  const lambda = this.lambdaArgument(fn, node.args[2], 2);
3346
3346
  if (typeof lambda === "string") return lambda;
3347
3347
  const arity = this.checkArity(fn, lambda, 2);
@@ -3350,18 +3350,18 @@ var FormulaEvaluator = (_class2 = class {
3350
3350
  const results = scan ? new Array(range.rows * range.cols) : [];
3351
3351
  for (let r = 0; r < range.rows; r++) {
3352
3352
  for (let c = 0; c < range.cols; c++) {
3353
- acc = this.invokeWithValues(lambda, [acc, _chunkLYGEEDNRcjs.rangeGet.call(void 0, range, r, c)]);
3353
+ acc = this.invokeWithValues(lambda, [acc, _chunkXP5IUZUOcjs.rangeGet.call(void 0, range, r, c)]);
3354
3354
  if (scan) results[c * range.rows + r] = elementValue(acc);
3355
3355
  }
3356
3356
  }
3357
- if (scan) return _chunkLYGEEDNRcjs.withRangeShape.call(void 0, results, range.rows, range.cols);
3357
+ if (scan) return _chunkXP5IUZUOcjs.withRangeShape.call(void 0, results, range.rows, range.cols);
3358
3358
  return acc;
3359
3359
  }
3360
3360
  /** BYROW(array, lambda) / BYCOL(array, lambda): one result per row (a column) or per column (a row). */
3361
3361
  evaluateByLine(node, byRow) {
3362
3362
  const fn = byRow ? "BYROW" : "BYCOL";
3363
3363
  const arrayValue = this.evaluateNode(node.args[0]);
3364
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, arrayValue)) return arrayValue;
3364
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, arrayValue)) return arrayValue;
3365
3365
  const lambda = this.lambdaArgument(fn, node.args[1], 1);
3366
3366
  if (typeof lambda === "string") return lambda;
3367
3367
  const arity = this.checkArity(fn, lambda, 1);
@@ -3372,19 +3372,19 @@ var FormulaEvaluator = (_class2 = class {
3372
3372
  for (let i = 0; i < count; i++) {
3373
3373
  const line = [];
3374
3374
  const length = byRow ? range.cols : range.rows;
3375
- for (let j = 0; j < length; j++) line.push(byRow ? _chunkLYGEEDNRcjs.rangeGet.call(void 0, range, i, j) : _chunkLYGEEDNRcjs.rangeGet.call(void 0, range, j, i));
3376
- const slice = byRow ? _chunkLYGEEDNRcjs.withRangeShape.call(void 0, line, 1, length) : _chunkLYGEEDNRcjs.withRangeShape.call(void 0, line, length, 1);
3375
+ for (let j = 0; j < length; j++) line.push(byRow ? _chunkXP5IUZUOcjs.rangeGet.call(void 0, range, i, j) : _chunkXP5IUZUOcjs.rangeGet.call(void 0, range, j, i));
3376
+ const slice = byRow ? _chunkXP5IUZUOcjs.withRangeShape.call(void 0, line, 1, length) : _chunkXP5IUZUOcjs.withRangeShape.call(void 0, line, length, 1);
3377
3377
  out.push(elementValue(this.invokeWithValues(lambda, [slice])));
3378
3378
  }
3379
- return byRow ? _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, count, 1) : _chunkLYGEEDNRcjs.withRangeShape.call(void 0, out, 1, count);
3379
+ return byRow ? _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, count, 1) : _chunkXP5IUZUOcjs.withRangeShape.call(void 0, out, 1, count);
3380
3380
  }
3381
3381
  /** MAKEARRAY(rows, columns, lambda): lambda(row, column) for every 1-based position. */
3382
3382
  evaluateMakeArray(node) {
3383
3383
  const size = (index) => {
3384
3384
  const value = firstValue(this.evaluateNode(node.args[index]));
3385
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, value)) return value;
3386
- const num = _chunkLYGEEDNRcjs.toNumber.call(void 0, value);
3387
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, num)) return this.fail("#VALUE!", `Argument ${index + 1} of MAKEARRAY must be a number.`);
3385
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return value;
3386
+ const num = _chunkXP5IUZUOcjs.toNumber.call(void 0, value);
3387
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, num)) return this.fail("#VALUE!", `Argument ${index + 1} of MAKEARRAY must be a number.`);
3388
3388
  return Math.trunc(num);
3389
3389
  };
3390
3390
  const rows = size(0);
@@ -3412,9 +3412,9 @@ var FormulaEvaluator = (_class2 = class {
3412
3412
  const number = (index, fallback) => {
3413
3413
  if (!has(index) && fallback !== void 0) return fallback;
3414
3414
  const v = scalar(index);
3415
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, v)) return v;
3416
- const num = _chunkLYGEEDNRcjs.toNumber.call(void 0, v);
3417
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, num) ? argError(index, "#VALUE!", `can't be text (${quote(v)}).`) : num;
3415
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, v)) return v;
3416
+ const num = _chunkXP5IUZUOcjs.toNumber.call(void 0, v);
3417
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, num) ? argError(index, "#VALUE!", `can't be text (${quote(v)}).`) : num;
3418
3418
  };
3419
3419
  const flatValues = (from = 0, to = args.length) => {
3420
3420
  const items = [];
@@ -3439,39 +3439,39 @@ var FormulaEvaluator = (_class2 = class {
3439
3439
  number,
3440
3440
  integer: (index, fallback) => {
3441
3441
  const num = number(index, fallback);
3442
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, num) ? num : Math.trunc(num);
3442
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, num) ? num : Math.trunc(num);
3443
3443
  },
3444
3444
  text: (index, fallback) => {
3445
3445
  if (!has(index) && fallback !== void 0) return fallback;
3446
3446
  const v = scalar(index);
3447
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, v) ? v : _chunkLYGEEDNRcjs.toText.call(void 0, v);
3447
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, v) ? v : _chunkXP5IUZUOcjs.toText.call(void 0, v);
3448
3448
  },
3449
3449
  boolean: (index, fallback) => {
3450
3450
  if (!has(index) && fallback !== void 0) return fallback;
3451
3451
  const v = scalar(index);
3452
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, v)) return v;
3453
- const bool = _chunkLYGEEDNRcjs.toBoolean.call(void 0, v);
3454
- return _chunkLYGEEDNRcjs.isFormulaError.call(void 0, bool) ? argError(index, "#VALUE!", `must be TRUE or FALSE, not text (${quote(v)}).`) : bool;
3452
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, v)) return v;
3453
+ const bool = _chunkXP5IUZUOcjs.toBoolean.call(void 0, v);
3454
+ return _chunkXP5IUZUOcjs.isFormulaError.call(void 0, bool) ? argError(index, "#VALUE!", `must be TRUE or FALSE, not text (${quote(v)}).`) : bool;
3455
3455
  },
3456
3456
  date: (index) => {
3457
3457
  const v = scalar(index);
3458
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, v)) return v;
3459
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, v)) return argError(index, "#VALUE!", "is empty, but a date is needed.");
3460
- return _nullishCoalesce(_chunkLYGEEDNRcjs.toDate.call(void 0, v), () => ( argError(index, "#VALUE!", `(${quote(v)}) isn't a valid date.`)));
3458
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, v)) return v;
3459
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, v)) return argError(index, "#VALUE!", "is empty, but a date is needed.");
3460
+ return _nullishCoalesce(_chunkXP5IUZUOcjs.toDate.call(void 0, v), () => ( argError(index, "#VALUE!", `(${quote(v)}) isn't a valid date.`)));
3461
3461
  },
3462
3462
  range: (index) => {
3463
3463
  const v = value(index);
3464
- if (Array.isArray(v)) return _chunkLYGEEDNRcjs.toFormulaRange.call(void 0, v);
3465
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, v)) return v;
3464
+ if (Array.isArray(v)) return _chunkXP5IUZUOcjs.toFormulaRange.call(void 0, v);
3465
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, v)) return v;
3466
3466
  return argError(index, "#VALUE!", "must be a range.");
3467
3467
  },
3468
3468
  flatValues,
3469
3469
  numbers: (from, to) => {
3470
3470
  const nums = [];
3471
3471
  for (const item of flatValues(from, to)) {
3472
- if (_chunkLYGEEDNRcjs.isFormulaError.call(void 0, item)) return item;
3473
- if (_chunkLYGEEDNRcjs.isBlank.call(void 0, item) || typeof item === "boolean") continue;
3474
- const num = typeof item === "number" ? item : _chunkLYGEEDNRcjs.numericValue.call(void 0, item);
3472
+ if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, item)) return item;
3473
+ if (_chunkXP5IUZUOcjs.isBlank.call(void 0, item) || typeof item === "boolean") continue;
3474
+ const num = typeof item === "number" ? item : _chunkXP5IUZUOcjs.numericValue.call(void 0, item);
3475
3475
  if (num !== null) nums.push(num);
3476
3476
  }
3477
3477
  return nums;
@@ -3505,4 +3505,4 @@ var FormulaEvaluator = (_class2 = class {
3505
3505
 
3506
3506
 
3507
3507
  exports.tokenizeFormula = tokenizeFormula; exports.WHOLE_COLUMN_END_ROW = WHOLE_COLUMN_END_ROW; exports.parseCellReference = parseCellReference; exports.parseRange = parseRange; exports.FormulaParser = FormulaParser; exports.parseFormula = parseFormula; exports.FormulaLambda = FormulaLambda; exports.isFormulaLambda = isFormulaLambda; exports.MAX_LAMBDA_DEPTH = MAX_LAMBDA_DEPTH; exports.wildcardToRegExp = wildcardToRegExp; exports.parseCriteria = parseCriteria; exports.registerFormulaFunction = registerFormulaFunction; exports.unregisterFormulaFunction = unregisterFormulaFunction; exports.getFormulaFunction = getFormulaFunction; exports.listFormulaFunctions = listFormulaFunctions; exports.searchFormulaFunctions = searchFormulaFunctions; exports.getFormulaArgumentSpecIndex = getFormulaArgumentSpecIndex; exports.checkFormulaArgumentCount = checkFormulaArgumentCount; exports.getFormulaSignatureParts = getFormulaSignatureParts; exports.getFormulaSignature = getFormulaSignature; exports.describeFormulaError = describeFormulaError; exports.MAX_FORMULA_ARRAY_SIZE = MAX_FORMULA_ARRAY_SIZE; exports.FormulaEvaluator = FormulaEvaluator;
3508
- //# sourceMappingURL=chunk-SQC26VQV.cjs.map
3508
+ //# sourceMappingURL=chunk-UN33YOXW.cjs.map