@omegagrid/grid-core 0.5.20 → 0.6.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 (111) hide show
  1. package/dist/__generated/functions.d.ts.map +1 -1
  2. package/dist/__generated/functions.js +1 -3
  3. package/dist/__generated/functions.js.map +1 -1
  4. package/dist/calculations/autofill.js +15 -22
  5. package/dist/calculations/autofill.js.map +1 -1
  6. package/dist/calculations/conditions.js +7 -12
  7. package/dist/calculations/conditions.js.map +1 -1
  8. package/dist/calculations/context.d.ts.map +1 -1
  9. package/dist/calculations/context.js +7 -11
  10. package/dist/calculations/context.js.map +1 -1
  11. package/dist/calculations/formula.js +78 -89
  12. package/dist/calculations/formula.js.map +1 -1
  13. package/dist/calculations/functions/dates.d.ts.map +1 -1
  14. package/dist/calculations/functions/dates.js +26 -40
  15. package/dist/calculations/functions/dates.js.map +1 -1
  16. package/dist/calculations/functions/index.js +10 -43
  17. package/dist/calculations/functions/index.js.map +1 -1
  18. package/dist/calculations/functions/logical.js +13 -25
  19. package/dist/calculations/functions/logical.js.map +1 -1
  20. package/dist/calculations/functions/lookup.js +27 -46
  21. package/dist/calculations/functions/lookup.js.map +1 -1
  22. package/dist/calculations/functions/math.js +74 -137
  23. package/dist/calculations/functions/math.js.map +1 -1
  24. package/dist/calculations/functions/special.js +1 -5
  25. package/dist/calculations/functions/special.js.map +1 -1
  26. package/dist/calculations/functions/statistical.js +17 -29
  27. package/dist/calculations/functions/statistical.js.map +1 -1
  28. package/dist/calculations/functions/text.js +9 -17
  29. package/dist/calculations/functions/text.js.map +1 -1
  30. package/dist/calculations/helpers.js +6 -15
  31. package/dist/calculations/helpers.js.map +1 -1
  32. package/dist/calculations/index.js +6 -35
  33. package/dist/calculations/index.js.map +1 -1
  34. package/dist/calculations/operators.d.ts.map +1 -1
  35. package/dist/calculations/operators.js +14 -23
  36. package/dist/calculations/operators.js.map +1 -1
  37. package/dist/calculations/tokenization.d.ts +1 -1
  38. package/dist/calculations/tokenization.d.ts.map +1 -1
  39. package/dist/calculations/tokenization.js +18 -26
  40. package/dist/calculations/tokenization.js.map +1 -1
  41. package/dist/common/index.js +1 -17
  42. package/dist/common/index.js.map +1 -1
  43. package/dist/common/range.js +6 -15
  44. package/dist/common/range.js.map +1 -1
  45. package/dist/constants.d.ts +13 -12
  46. package/dist/constants.d.ts.map +1 -1
  47. package/dist/constants.js +5 -8
  48. package/dist/constants.js.map +1 -1
  49. package/dist/index.js +7 -40
  50. package/dist/index.js.map +1 -1
  51. package/dist/model/calculationModel.js +9 -13
  52. package/dist/model/calculationModel.js.map +1 -1
  53. package/dist/model/cellModel.js +44 -53
  54. package/dist/model/cellModel.js.map +1 -1
  55. package/dist/model/columnModel.d.ts +5 -6
  56. package/dist/model/columnModel.d.ts.map +1 -1
  57. package/dist/model/columnModel.js +15 -22
  58. package/dist/model/columnModel.js.map +1 -1
  59. package/dist/model/commentModel.js +8 -13
  60. package/dist/model/commentModel.js.map +1 -1
  61. package/dist/model/conditionalFormats.d.ts +3 -3
  62. package/dist/model/conditionalFormats.js +22 -27
  63. package/dist/model/conditionalFormats.js.map +1 -1
  64. package/dist/model/cssStyle.d.ts.map +1 -1
  65. package/dist/model/cssStyle.js +38 -53
  66. package/dist/model/cssStyle.js.map +1 -1
  67. package/dist/model/dependencies.js +6 -10
  68. package/dist/model/dependencies.js.map +1 -1
  69. package/dist/model/elementModel.js +8 -12
  70. package/dist/model/elementModel.js.map +1 -1
  71. package/dist/model/filterModel.d.ts.map +1 -1
  72. package/dist/model/filterModel.js +26 -39
  73. package/dist/model/filterModel.js.map +1 -1
  74. package/dist/model/gridModel.d.ts.map +1 -1
  75. package/dist/model/gridModel.js +70 -84
  76. package/dist/model/gridModel.js.map +1 -1
  77. package/dist/model/groupModel.d.ts +1 -1
  78. package/dist/model/groupModel.js +5 -10
  79. package/dist/model/groupModel.js.map +1 -1
  80. package/dist/model/history.js +1 -5
  81. package/dist/model/history.js.map +1 -1
  82. package/dist/model/index.js +20 -36
  83. package/dist/model/index.js.map +1 -1
  84. package/dist/model/iterableRange.js +5 -10
  85. package/dist/model/iterableRange.js.map +1 -1
  86. package/dist/model/namingModel.js +8 -13
  87. package/dist/model/namingModel.js.map +1 -1
  88. package/dist/model/options.js +12 -39
  89. package/dist/model/options.js.map +1 -1
  90. package/dist/model/rowModel.d.ts +3 -3
  91. package/dist/model/rowModel.d.ts.map +1 -1
  92. package/dist/model/rowModel.js +12 -17
  93. package/dist/model/rowModel.js.map +1 -1
  94. package/dist/model/selectionModel.js +5 -9
  95. package/dist/model/selectionModel.js.map +1 -1
  96. package/dist/model/sortingModel.js +8 -13
  97. package/dist/model/sortingModel.js.map +1 -1
  98. package/dist/model/style.js +9 -18
  99. package/dist/model/style.js.map +1 -1
  100. package/dist/model/styleModel.js +7 -11
  101. package/dist/model/styleModel.js.map +1 -1
  102. package/dist/model/tableTheme.js +6 -11
  103. package/dist/model/tableTheme.js.map +1 -1
  104. package/dist/sparklines/index.js +1 -17
  105. package/dist/sparklines/index.js.map +1 -1
  106. package/dist/sparklines/sparklines.js +22 -30
  107. package/dist/sparklines/sparklines.js.map +1 -1
  108. package/dist/types.js +1 -2
  109. package/dist/utils.js +4 -9
  110. package/dist/utils.js.map +1 -1
  111. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/__generated/functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;;AA4C5D,wBAAwD"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/__generated/functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;wBA4ChC,2BAA2B;AAAvD,wBAAwD"}
@@ -1,5 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  const functions = JSON.parse(`[
4
2
  {
5
3
  "name": "text",
@@ -43,5 +41,5 @@ const functions = JSON.parse(`[
43
41
  ]
44
42
  }
45
43
  ]`);
46
- exports.default = functions;
44
+ export default functions;
47
45
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/__generated/functions.ts"],"names":[],"mappings":";;AACA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0C3B,CAAC,CAAC;AACJ,kBAAe,SAAwC,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/__generated/functions.ts"],"names":[],"mappings":"AACA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0C3B,CAAC,CAAC;AACJ,eAAe,SAAwC,CAAC"}
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.autofill = exports.extrapolateFormulas = exports.extrapolateValues = void 0;
4
- const core_1 = require("@omegagrid/core");
5
- const _1 = require(".");
6
- function extrapolateValues(source, count) {
7
- var _a;
1
+ import { matrix } from "@omegagrid/core";
2
+ import { Formula, prefixFormula } from ".";
3
+ export function extrapolateValues(source, count) {
8
4
  const result = Array(count).fill(null);
9
5
  let increment = 0;
10
6
  let inputValues = [];
@@ -20,7 +16,7 @@ function extrapolateValues(source, count) {
20
16
  }
21
17
  if (increment == 0) {
22
18
  for (let i = 0; i < count; i++) {
23
- result[i] = (_a = source[i % source.length]) === null || _a === void 0 ? void 0 : _a.value;
19
+ result[i] = source[i % source.length]?.value;
24
20
  }
25
21
  }
26
22
  else {
@@ -31,12 +27,11 @@ function extrapolateValues(source, count) {
31
27
  }
32
28
  return result;
33
29
  }
34
- exports.extrapolateValues = extrapolateValues;
35
- function extrapolateFormulas(cell, direction, count) {
36
- const formula = new _1.Formula(cell.formula, cell.model.calculations.tokenizer);
30
+ export function extrapolateFormulas(cell, direction, count) {
31
+ const formula = new Formula(cell.formula, cell.model.calculations.tokenizer);
37
32
  const result = [];
38
33
  for (let i = 0; i < count; i++) {
39
- result.push((0, _1.prefixFormula)(formula.shift({
34
+ result.push(prefixFormula(formula.shift({
40
35
  index: 0,
41
36
  offset: 1,
42
37
  direction: direction,
@@ -45,18 +40,17 @@ function extrapolateFormulas(cell, direction, count) {
45
40
  }
46
41
  return result;
47
42
  }
48
- exports.extrapolateFormulas = extrapolateFormulas;
49
- function autofill(model, selectedRange, autofillRange, direction) {
43
+ export function autofill(model, selectedRange, autofillRange, direction) {
50
44
  const sourceMatrix = model.getCellMatrix(selectedRange);
51
45
  let input;
52
46
  if (direction == 'right')
53
- input = core_1.matrix.clone(sourceMatrix);
47
+ input = matrix.clone(sourceMatrix);
54
48
  else if (direction == 'down')
55
- input = core_1.matrix.transpose(sourceMatrix);
49
+ input = matrix.transpose(sourceMatrix);
56
50
  else if (direction == 'left')
57
- input = core_1.matrix.reverseColumns(sourceMatrix);
51
+ input = matrix.reverseColumns(sourceMatrix);
58
52
  else if (direction == 'up')
59
- input = core_1.matrix.reverseColumns(core_1.matrix.transpose(sourceMatrix));
53
+ input = matrix.reverseColumns(matrix.transpose(sourceMatrix));
60
54
  const displayValueMatrix = new Array(autofillRange.size.rows);
61
55
  for (let r = 0; r < autofillRange.size.rows; r++) {
62
56
  displayValueMatrix[r] = (new Array(autofillRange.size.columns));
@@ -75,11 +69,11 @@ function autofill(model, selectedRange, autofillRange, direction) {
75
69
  return extrapolateValues(vect, autofillCount);
76
70
  });
77
71
  if (direction == 'down')
78
- output = core_1.matrix.transpose(output);
72
+ output = matrix.transpose(output);
79
73
  else if (direction == 'left')
80
- output = core_1.matrix.reverseColumns(output);
74
+ output = matrix.reverseColumns(output);
81
75
  else if (direction == 'up')
82
- output = core_1.matrix.reverseRows(core_1.matrix.transpose(output));
76
+ output = matrix.reverseRows(matrix.transpose(output));
83
77
  return model.spillValues({
84
78
  cell: model.getCellByRange(autofillRange.bounds[0][0]),
85
79
  values: output,
@@ -87,5 +81,4 @@ function autofill(model, selectedRange, autofillRange, direction) {
87
81
  displayValues: displayValueMatrix
88
82
  });
89
83
  }
90
- exports.autofill = autofill;
91
84
  //# sourceMappingURL=autofill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autofill.js","sourceRoot":"","sources":["../../src/calculations/autofill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autofill.js","sourceRoot":"","sources":["../../src/calculations/autofill.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
- "use strict";
2
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.evalCondition = exports.scalarCompare = void 0;
5
- const core_1 = require("@omegagrid/core");
6
- function scalarCompare(s1, s2) {
2
+ import { utils } from "@omegagrid/core";
3
+ export function scalarCompare(s1, s2) {
7
4
  if ((isNaN(s1) || s1 == null) && (isNaN(s2) || s2 == null)) {
8
- s1 = s1 == null ? '' : core_1.utils.removeAccents(s1.toString()).toLowerCase();
9
- s2 = s2 == null ? '' : core_1.utils.removeAccents(s2.toString()).toLowerCase();
5
+ s1 = s1 == null ? '' : utils.removeAccents(s1.toString()).toLowerCase();
6
+ s2 = s2 == null ? '' : utils.removeAccents(s2.toString()).toLowerCase();
10
7
  }
11
8
  if (s1 > s2)
12
9
  return 1;
@@ -14,10 +11,9 @@ function scalarCompare(s1, s2) {
14
11
  return -1;
15
12
  return 0;
16
13
  }
17
- exports.scalarCompare = scalarCompare;
18
- function evalCondition(condition, value) {
19
- const isStringValue = core_1.utils.isString(value);
20
- if (core_1.utils.isString(condition)) {
14
+ export function evalCondition(condition, value) {
15
+ const isStringValue = utils.isString(value);
16
+ if (utils.isString(condition)) {
21
17
  condition = condition.toString().trim();
22
18
  if (condition.startsWith('=')) {
23
19
  return scalarCompare(value, isStringValue ? condition.substring(1) : parseFloat(condition.substring(1))) == 0;
@@ -42,5 +38,4 @@ function evalCondition(condition, value) {
42
38
  return value == condition;
43
39
  }
44
40
  }
45
- exports.evalCondition = evalCondition;
46
41
  //# sourceMappingURL=conditions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/calculations/conditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/calculations/conditions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/calculations/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAa,YAAY,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAExD,qBAAa,kBAAkB;aAIF,KAAK,EAAE,SAAS;IAF5C,WAAW,EAAE,SAAS,CAAC;gBAEK,KAAK,EAAE,SAAS;IAE5C,QAAQ,UAAW,MAAM,eAIxB;IAED;;;;;OAKG;IACH,EAAE,QAAS,YAAY,UAAU,MAAM,KAAG,OAAO,CAG/C;IAEF;;;;;OAKG;IACH,EAAE,OAAQ,YAAY,UAAU,MAAM,qBAGrC;IAED;;;;;OAKG;IACH,EAAE,SAAU,MAAM,UAAU,MAAM,KAAG,OAAO,CAE1C;IAEF;;;;;OAKG;IACH,EAAE,SAAU,MAAM,UAAU,MAAM,KAAG,OAAO,CAK1C;IAEF;;;;OAIG;IACH,EAAE,SAAU,MAAM,kCAIhB;IAEF;;;;;;OAMG;IACH,EAAE,iDAAkD,QAAQ,YAE3D;CACD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/calculations/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAa,YAAY,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAExD,qBAAa,kBAAkB;aAIF,KAAK,EAAE,SAAS;IAF5C,WAAW,EAAE,SAAS,CAAC;gBAEK,KAAK,EAAE,SAAS;IAE5C,QAAQ,UAAW,MAAM,eAIxB;IAED;;;;;OAKG;IACH,EAAE,QAAS,YAAY,UAAU,MAAM,KAAG,OAAO,CAG/C;IAEF;;;;;OAKG;IACH,EAAE,OAAQ,YAAY,UAAU,MAAM,qBAGrC;IAED;;;;;OAKG;IACH,EAAE,SAAU,MAAM,UAAU,MAAM,KAAG,OAAO,CAE1C;IAEF;;;;;OAKG;IACH,EAAE,SAAU,MAAM,UAAU,MAAM,KAAG,OAAO,CAK1C;IAEF;;;;OAIG;IACH,EAAE,SAAU,MAAM,kCAIhB;IAEF;;;;;;OAMG;IACH,EAAE,aAAc,MAAM,YAAY,MAAM,YAAY,QAAQ,KAAG,MAAM,CAEpE;CACD"}
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CalculationContext = void 0;
4
- const common_1 = require("../common");
5
- const functions_1 = require("./functions");
6
- const operators_1 = require("./operators");
7
- class CalculationContext {
1
+ import { CellRange } from "../common";
2
+ import { _map } from "./functions";
3
+ import { matrixOperation } from "./operators";
4
+ export class CalculationContext {
8
5
  constructor(model) {
9
6
  this.model = model;
10
7
  this.getModel = (sheet) => {
@@ -31,7 +28,7 @@ class CalculationContext {
31
28
  */
32
29
  this.rn = (a1, sheet) => {
33
30
  const m = this.getModel(sheet);
34
- return m.getValuesInRange(common_1.CellRange.fromA1(a1));
31
+ return m.getValuesInRange(CellRange.fromA1(a1));
35
32
  };
36
33
  /**
37
34
  * Returns cell value by range name
@@ -61,7 +58,7 @@ class CalculationContext {
61
58
  * @returns
62
59
  */
63
60
  this.fn = (name) => {
64
- const fn = functions_1._map.get(name);
61
+ const fn = _map.get(name);
65
62
  if (fn)
66
63
  return fn;
67
64
  throw new Error(`Function "${name}" not found`);
@@ -74,9 +71,8 @@ class CalculationContext {
74
71
  * @return value
75
72
  */
76
73
  this.op = (operand1, operand2, operator) => {
77
- return (0, operators_1.matrixOperation)(operand1, operand2, operator);
74
+ return matrixOperation(operand1, operand2, operator);
78
75
  };
79
76
  }
80
77
  }
81
- exports.CalculationContext = CalculationContext;
82
78
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/calculations/context.ts"],"names":[],"mappings":";;;AACA,sCAAoD;AAEpD,2CAAmC;AACnC,2CAAwD;AAExD,MAAa,kBAAkB;IAI9B,YAA4B,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAE5C,aAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACnE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,CAAC,CAAA;QAC9C,CAAC,CAAA;QAED;;;;;WAKG;QACH,OAAE,GAAG,CAAC,EAAiB,EAAE,KAAc,EAAW,EAAE;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC,CAAC;QAEF;;;;;WAKG;QACH,OAAE,GAAG,CAAC,EAAgB,EAAE,KAAc,EAAE,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,gBAAgB,CAAC,kBAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC,CAAA;QAED;;;;;WAKG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC/E,CAAC,CAAC;QAEF;;;;;WAKG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF;;;;WAIG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,gBAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF;;;;;;WAMG;QACH,OAAE,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAkB,EAAU,EAAE;YACvE,OAAO,IAAA,2BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAA;IAzE+C,CAAC;CA0EjD;AA9ED,gDA8EC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/calculations/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,OAAO,kBAAkB;IAI9B,YAA4B,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAE5C,aAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACnE,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,CAAC,CAAA;QAC9C,CAAC,CAAA;QAED;;;;;WAKG;QACH,OAAE,GAAG,CAAC,EAAiB,EAAE,KAAc,EAAW,EAAE;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC,CAAC;QAEF;;;;;WAKG;QACH,OAAE,GAAG,CAAC,EAAgB,EAAE,KAAc,EAAE,EAAE;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC,CAAA;QAED;;;;;WAKG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC/E,CAAC,CAAC;QAEF;;;;;WAKG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF;;;;WAIG;QACH,OAAE,GAAG,CAAC,IAAY,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF;;;;;;WAMG;QACH,OAAE,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAkB,EAAU,EAAE;YACvE,OAAO,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAA;IAzE+C,CAAC;CA0EjD"}
@@ -1,16 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Formula = exports.stripFormulaPrefix = exports.prefixFormula = exports.isFormula = void 0;
4
- const tokenization_1 = require("./tokenization");
5
- const common_1 = require("../common");
6
- const operators_1 = require("./operators");
7
- const helpers_1 = require("./helpers");
8
- const isFormula = (value) => value && value.length > 0 && value.charAt(0) == '=' ? true : false;
9
- exports.isFormula = isFormula;
10
- const prefixFormula = (value) => (0, exports.isFormula)(value) ? value : ('=' + (value !== null && value !== void 0 ? value : ''));
11
- exports.prefixFormula = prefixFormula;
12
- const stripFormulaPrefix = (value) => (0, exports.isFormula)(value) ? value.substring(1) : value;
13
- exports.stripFormulaPrefix = stripFormulaPrefix;
1
+ import { TokenType } from "./tokenization";
2
+ import { CellRange } from "../common";
3
+ import { operatorMap } from "./operators";
4
+ import { isArrayFunction } from "./helpers";
5
+ export const isFormula = (value) => value && value.length > 0 && value.charAt(0) == '=' ? true : false;
6
+ export const prefixFormula = (value) => isFormula(value) ? value : ('=' + (value ?? ''));
7
+ export const stripFormulaPrefix = (value) => isFormula(value) ? value.substring(1) : value;
14
8
  const colors = ['#5B97FF', '#FF616B', '#B77CFF', '#00B02C', '#FC58BE', '#FF9000', '#2EB0B3'];
15
9
  const getColor = (index) => colors[index % colors.length];
16
10
  const xlPrefixes = new Map([
@@ -22,11 +16,10 @@ const xlPrefixes = new Map([
22
16
  ['XOR', '_xlfn.'],
23
17
  ]);
24
18
  const getXlFunctionPrefix = (fn) => {
25
- var _a;
26
- return (_a = xlPrefixes.get(fn)) !== null && _a !== void 0 ? _a : '';
19
+ return xlPrefixes.get(fn) ?? '';
27
20
  };
28
- class Formula {
29
- get fn() { var _a; return (_a = this._fn) !== null && _a !== void 0 ? _a : (this._fn = (new Function('t', 'ctx', 'return ' + this.compile()))); }
21
+ export class Formula {
22
+ get fn() { return this._fn ?? (this._fn = (new Function('t', 'ctx', 'return ' + this.compile()))); }
30
23
  get tokens() { return this._tokens; }
31
24
  get variables() { return this._variables; }
32
25
  get cells() { return this._cells; }
@@ -36,12 +29,12 @@ class Formula {
36
29
  this._colors = new Map();
37
30
  let sheet;
38
31
  this._tokens.forEach((t, i) => {
39
- if ([tokenization_1.TokenType.Cell, tokenization_1.TokenType.Range].includes(t[1])) {
32
+ if ([TokenType.Cell, TokenType.Range].includes(t[1])) {
40
33
  const key = (sheet ? ('\'' + sheet + '\'!') : '') + t[0];
41
34
  this._colors.set(key, { color: getColor(this._colors.size), address: t[0], sheet: sheet, type: t[1], tokenIndex: i });
42
35
  sheet = null;
43
36
  }
44
- else if (t[1] == tokenization_1.TokenType.Sheet) {
37
+ else if (t[1] == TokenType.Sheet) {
45
38
  sheet = t[0];
46
39
  }
47
40
  });
@@ -70,13 +63,13 @@ class Formula {
70
63
  */
71
64
  findSheetTokenIndex(tokenIndex) {
72
65
  const token = this._tokens[tokenIndex];
73
- if (![tokenization_1.TokenType.Cell, tokenization_1.TokenType.Range].includes(token[1]))
66
+ if (![TokenType.Cell, TokenType.Range].includes(token[1]))
74
67
  return -1;
75
- if (tokenIndex == 0 || this._tokens[tokenIndex - 1][1] != tokenization_1.TokenType.SheetSeparator)
68
+ if (tokenIndex == 0 || this._tokens[tokenIndex - 1][1] != TokenType.SheetSeparator)
76
69
  return -1;
77
70
  let i = tokenIndex - 2;
78
71
  while (i >= 0) {
79
- if (this._tokens[i][1] == tokenization_1.TokenType.Sheet)
72
+ if (this._tokens[i][1] == TokenType.Sheet)
80
73
  return i;
81
74
  i--;
82
75
  }
@@ -88,15 +81,15 @@ class Formula {
88
81
  * @returns number of tokens removed
89
82
  */
90
83
  removeSheetToken(tokenIndex) {
91
- if (this._tokens[tokenIndex][1] != tokenization_1.TokenType.Sheet) {
84
+ if (this._tokens[tokenIndex][1] != TokenType.Sheet) {
92
85
  tokenIndex = this.findSheetTokenIndex(tokenIndex);
93
86
  }
94
87
  if (tokenIndex > -1) {
95
- if (tokenIndex > 0 && this._tokens[tokenIndex - 1][1] == tokenization_1.TokenType.SheetQuote)
88
+ if (tokenIndex > 0 && this._tokens[tokenIndex - 1][1] == TokenType.SheetQuote)
96
89
  tokenIndex--;
97
90
  let maxIndex = tokenIndex;
98
91
  while (maxIndex < this._tokens.length && [
99
- tokenization_1.TokenType.SheetSeparator, tokenization_1.TokenType.SheetQuote, tokenization_1.TokenType.Sheet
92
+ TokenType.SheetSeparator, TokenType.SheetQuote, TokenType.Sheet
100
93
  ].includes(this._tokens[maxIndex][1])) {
101
94
  maxIndex++;
102
95
  }
@@ -106,8 +99,7 @@ class Formula {
106
99
  return 0;
107
100
  }
108
101
  getNamedColor(name) {
109
- var _a, _b;
110
- return (_b = (_a = this.colors.get(name)) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : 'inherit';
102
+ return this.colors.get(name)?.color ?? 'inherit';
111
103
  }
112
104
  getTokenPosition(index) {
113
105
  let min = 0;
@@ -140,15 +132,15 @@ class Formula {
140
132
  this._formula = null;
141
133
  this._xlFormula = null;
142
134
  const tokens = [];
143
- if (type == tokenization_1.TokenType.Sheet && /\s/.test(value)) {
144
- tokens.push([this.tokenizer.options.sheetQuote, tokenization_1.TokenType.SheetQuote]);
145
- tokens.push([value, tokenization_1.TokenType.Sheet]);
146
- tokens.push([this.tokenizer.options.sheetQuote, tokenization_1.TokenType.SheetQuote]);
135
+ if (type == TokenType.Sheet && /\s/.test(value)) {
136
+ tokens.push([this.tokenizer.options.sheetQuote, TokenType.SheetQuote]);
137
+ tokens.push([value, TokenType.Sheet]);
138
+ tokens.push([this.tokenizer.options.sheetQuote, TokenType.SheetQuote]);
147
139
  }
148
140
  else {
149
141
  tokens.push([value, type]);
150
142
  }
151
- tokens.push(['!', tokenization_1.TokenType.SheetSeparator]);
143
+ tokens.push(['!', TokenType.SheetSeparator]);
152
144
  this._tokens.splice(index, 0, ...tokens);
153
145
  return tokens.length;
154
146
  }
@@ -162,19 +154,19 @@ class Formula {
162
154
  let sheet;
163
155
  this._tokens.forEach((t, i) => {
164
156
  switch (t[1]) {
165
- case tokenization_1.TokenType.Sheet:
157
+ case TokenType.Sheet:
166
158
  sheet = t[0];
167
159
  break;
168
- case tokenization_1.TokenType.Variable:
160
+ case TokenType.Variable:
169
161
  this._variables.push([i, t[0], sheet]);
170
162
  sheet = undefined;
171
163
  break;
172
- case tokenization_1.TokenType.Cell:
173
- this._cells.push([i, common_1.CellRange.fromA1(t[0]), sheet]);
164
+ case TokenType.Cell:
165
+ this._cells.push([i, CellRange.fromA1(t[0]), sheet]);
174
166
  sheet = undefined;
175
167
  break;
176
- case tokenization_1.TokenType.Range:
177
- this._ranges.push([i, common_1.CellRange.fromA1(t[0]), sheet]);
168
+ case TokenType.Range:
169
+ this._ranges.push([i, CellRange.fromA1(t[0]), sheet]);
178
170
  sheet = undefined;
179
171
  break;
180
172
  }
@@ -189,38 +181,38 @@ class Formula {
189
181
  for (let i = 0; i < this._tokens.length; i++) {
190
182
  token = this._tokens[i];
191
183
  switch (token[1]) {
192
- case tokenization_1.TokenType.SheetQuote:
184
+ case TokenType.SheetQuote:
193
185
  formula += '\'';
194
186
  break;
195
- case tokenization_1.TokenType.SheetSeparator:
187
+ case TokenType.SheetSeparator:
196
188
  formula += '!';
197
189
  break;
198
- case tokenization_1.TokenType.Sheet:
190
+ case TokenType.Sheet:
199
191
  sheet = token[0];
200
192
  formula += html ? `<span style="font-style:italic">${sheet}</span>` : sheet;
201
193
  break;
202
- case tokenization_1.TokenType.Variable:
194
+ case TokenType.Variable:
203
195
  formula += token[0];
204
196
  break;
205
- case tokenization_1.TokenType.Range:
206
- case tokenization_1.TokenType.Cell:
197
+ case TokenType.Range:
198
+ case TokenType.Cell:
207
199
  colorKey = (sheet ? ('\'' + sheet + '\'!') : '') + token[0];
208
200
  formula += html ? `<span style="color:${this.getNamedColor(colorKey)}">${token[0]}</span>` : token[0];
209
201
  sheet = null;
210
202
  break;
211
- case tokenization_1.TokenType.StringQuote:
203
+ case TokenType.StringQuote:
212
204
  formula += opts.stringQuote;
213
205
  break;
214
- case tokenization_1.TokenType.String:
206
+ case TokenType.String:
215
207
  formula += token[0].replace(new RegExp(opts.stringQuote, 'g'), '\\' + opts.stringQuote);
216
208
  break;
217
- case tokenization_1.TokenType.ArgumentSeparator:
209
+ case TokenType.ArgumentSeparator:
218
210
  formula += opts.argumentSeparator;
219
211
  break;
220
- case tokenization_1.TokenType.Function:
212
+ case TokenType.Function:
221
213
  formula += (fnPrefixes ? getXlFunctionPrefix(token[0]) : '') + token[0];
222
214
  break;
223
- case tokenization_1.TokenType.Unknown:
215
+ case TokenType.Unknown:
224
216
  formula += html
225
217
  ? `<span style="background:#f00;color:#fff">${token[0]}</span>`
226
218
  : token[0];
@@ -243,26 +235,26 @@ class Formula {
243
235
  for (let i = 0; i < tokens.length; i++) {
244
236
  token = tokens[i];
245
237
  switch (token[1]) {
246
- case tokenization_1.TokenType.Sheet:
238
+ case TokenType.Sheet:
247
239
  sheet = token[0];
248
240
  break;
249
- case tokenization_1.TokenType.Cell:
250
- case tokenization_1.TokenType.Range:
241
+ case TokenType.Cell:
242
+ case TokenType.Range:
251
243
  nodeStack.push({ t: token[0], tt: token[1], s: sheet });
252
244
  sheet = null;
253
245
  break;
254
- case tokenization_1.TokenType.Number:
255
- case tokenization_1.TokenType.String:
256
- case tokenization_1.TokenType.Boolean:
257
- case tokenization_1.TokenType.Variable:
246
+ case TokenType.Number:
247
+ case TokenType.String:
248
+ case TokenType.Boolean:
249
+ case TokenType.Variable:
258
250
  nodeStack.push({ t: token[0], tt: token[1] });
259
251
  break;
260
- case tokenization_1.TokenType.Operator:
252
+ case TokenType.Operator:
261
253
  if (nodeStack.length == 0)
262
- nodeStack.push({ t: '', tt: tokenization_1.TokenType.Operand }); // generic operand
263
- op1 = operators_1.operatorMap.get(token[0]);
254
+ nodeStack.push({ t: '', tt: TokenType.Operand }); // generic operand
255
+ op1 = operatorMap.get(token[0]);
264
256
  while (operatorStack.length > 0) {
265
- op2 = operators_1.operatorMap.get(operatorStack[operatorStack.length - 1][0]);
257
+ op2 = operatorMap.get(operatorStack[operatorStack.length - 1][0]);
266
258
  if (!op2)
267
259
  break;
268
260
  // operators with higher precedence or equal precedence and left associativity
@@ -274,17 +266,17 @@ class Formula {
274
266
  }
275
267
  operatorStack.push(token);
276
268
  break;
277
- case tokenization_1.TokenType.Function:
269
+ case TokenType.Function:
278
270
  operatorStack.push(token);
279
271
  break;
280
- case tokenization_1.TokenType.OpenBracket:
272
+ case TokenType.OpenBracket:
281
273
  operatorStack.push(token);
282
274
  break;
283
- case tokenization_1.TokenType.ArgumentSeparator:
275
+ case TokenType.ArgumentSeparator:
284
276
  while (operatorStack.length > 0) {
285
277
  // evaluate expression until previous argument separator or open bracket
286
278
  operator = operatorStack[operatorStack.length - 1];
287
- if ([tokenization_1.TokenType.OpenBracket, tokenization_1.TokenType.ArgumentSeparator].includes(operator[1])) {
279
+ if ([TokenType.OpenBracket, TokenType.ArgumentSeparator].includes(operator[1])) {
288
280
  break;
289
281
  }
290
282
  operator = operatorStack.pop();
@@ -293,29 +285,29 @@ class Formula {
293
285
  }
294
286
  operatorStack.push(token);
295
287
  break;
296
- case tokenization_1.TokenType.CloseBracket:
288
+ case TokenType.CloseBracket:
297
289
  nodes = [];
298
290
  while (operatorStack.length > 0) {
299
- if (operatorStack[operatorStack.length - 1][1] === tokenization_1.TokenType.OpenBracket) {
291
+ if (operatorStack[operatorStack.length - 1][1] === TokenType.OpenBracket) {
300
292
  break;
301
293
  }
302
294
  operator = operatorStack.pop();
303
- if (operator[1] == tokenization_1.TokenType.Operator) {
295
+ if (operator[1] == TokenType.Operator) {
304
296
  // nodes array contains operands for the current operator
305
297
  nodes.push({ t: operator[0], tt: operator[1], c: [nodeStack.pop(), nodeStack.pop()].reverse() });
306
298
  }
307
- else if (operator[1] == tokenization_1.TokenType.ArgumentSeparator) {
299
+ else if (operator[1] == TokenType.ArgumentSeparator) {
308
300
  // nodes array contains arguments of the function
309
301
  if (nodeStack.length > 0)
310
302
  nodes.push(nodeStack.pop());
311
303
  }
312
304
  }
313
305
  operatorStack.pop(); // pop the open bracket
314
- if (operatorStack.length > 0 && operatorStack[operatorStack.length - 1][1] === tokenization_1.TokenType.Function) {
306
+ if (operatorStack.length > 0 && operatorStack[operatorStack.length - 1][1] === TokenType.Function) {
315
307
  // current token is closing bracket of a function
316
308
  operator = operatorStack.pop(); // pop function from operator stack
317
309
  nodes = nodes.reverse();
318
- if (nodeStack.length > 0 && tokens[i - 1][1] !== tokenization_1.TokenType.OpenBracket) {
310
+ if (nodeStack.length > 0 && tokens[i - 1][1] !== TokenType.OpenBracket) {
319
311
  nodes.unshift(nodeStack.pop()); // prepend first argument unless the function has zero arguments
320
312
  }
321
313
  nodeStack.push({ t: operator[0], tt: operator[1], c: nodes });
@@ -336,33 +328,33 @@ class Formula {
336
328
  createExpressionJSCode(node, parent, arrayMode) {
337
329
  let args;
338
330
  switch (node.tt) {
339
- case tokenization_1.TokenType.Range:
331
+ case TokenType.Range:
340
332
  return 't.rn(\'' + node.t + '\'' + (node.s ? (',\'' + node.s + '\'') : '') + ')';
341
- case tokenization_1.TokenType.Cell:
333
+ case TokenType.Cell:
342
334
  return 't.cl(\'' + node.t + '\'' + (node.s ? (',\'' + node.s + '\'') : '') + ')';
343
- case tokenization_1.TokenType.Operand:
335
+ case TokenType.Operand:
344
336
  return 't.cl()';
345
- case tokenization_1.TokenType.Variable:
346
- if (arrayMode || (parent === null || parent === void 0 ? void 0 : parent.tt) === tokenization_1.TokenType.Function) {
337
+ case TokenType.Variable:
338
+ if (arrayMode || parent?.tt === TokenType.Function) {
347
339
  return 't.nr(\'' + node.t + '\'' + (node.s ? (',\'' + node.s + '\'') : '') + ')';
348
340
  }
349
341
  else {
350
342
  return 't.nv(\'' + node.t + '\'' + (node.s ? (',\'' + node.s + '\'') : '') + ')';
351
343
  }
352
- case tokenization_1.TokenType.String:
344
+ case TokenType.String:
353
345
  return '\'' + node.t.replace(/'/g, "\\'") + '\'';
354
- case tokenization_1.TokenType.Boolean:
346
+ case TokenType.Boolean:
355
347
  return node.t[0].toUpperCase() == 'T' ? '1' : '0';
356
- case tokenization_1.TokenType.Function:
357
- args = node.c.map(n => this.createExpressionJSCode(n, node, arrayMode || (0, helpers_1.isArrayFunction)(node.t)));
348
+ case TokenType.Function:
349
+ args = node.c.map(n => this.createExpressionJSCode(n, node, arrayMode || isArrayFunction(node.t)));
358
350
  return 't.fn(\'' + node.t + '\').call(ctx' + (args.length > 0 ? (',' + args.join(',')) : '') + ')';
359
- case tokenization_1.TokenType.Operator:
351
+ case TokenType.Operator:
360
352
  if (arrayMode) {
361
- args = node.c.map(n => this.createExpressionJSCode(n, node, arrayMode || (0, helpers_1.isArrayFunction)(node.t)));
353
+ args = node.c.map(n => this.createExpressionJSCode(n, node, arrayMode || isArrayFunction(node.t)));
362
354
  return 't.op(' + args[0] + ',' + args[1] + ',\'' + node.t + '\')';
363
355
  }
364
- else if (operators_1.operatorMap.has(node.t)) {
365
- return '(' + node.c.map(n => this.createExpressionJSCode(n, node, arrayMode)).join(operators_1.operatorMap.get(node.t)[0]) + ')';
356
+ else if (operatorMap.has(node.t)) {
357
+ return '(' + node.c.map(n => this.createExpressionJSCode(n, node, arrayMode)).join(operatorMap.get(node.t)[0]) + ')';
366
358
  }
367
359
  else {
368
360
  return null;
@@ -376,12 +368,10 @@ class Formula {
376
368
  return this.createExpressionJSCode(tree);
377
369
  }
378
370
  toString(prefix = false) {
379
- var _a;
380
- return (prefix ? '=' : '') + ((_a = this._formula) !== null && _a !== void 0 ? _a : (this._formula = this.createFormulaString()));
371
+ return (prefix ? '=' : '') + (this._formula ?? (this._formula = this.createFormulaString()));
381
372
  }
382
373
  toExcelString() {
383
- var _a;
384
- return ((_a = this._xlFormula) !== null && _a !== void 0 ? _a : (this._xlFormula = this.createFormulaString(false, true)));
374
+ return (this._xlFormula ?? (this._xlFormula = this.createFormulaString(false, true)));
385
375
  }
386
376
  shift(options) {
387
377
  const { index, offset, direction, maxIndex, sheet, allSheets } = options;
@@ -442,7 +432,7 @@ class Formula {
442
432
  renameSheet(oldName, newName) {
443
433
  let renamed = false;
444
434
  this._tokens.forEach(t => {
445
- if (t[1] == tokenization_1.TokenType.Sheet && t[0] == oldName) {
435
+ if (t[1] == TokenType.Sheet && t[0] == oldName) {
446
436
  t[0] = newName;
447
437
  renamed = true;
448
438
  }
@@ -450,5 +440,4 @@ class Formula {
450
440
  return renamed;
451
441
  }
452
442
  }
453
- exports.Formula = Formula;
454
443
  //# sourceMappingURL=formula.js.map