@rowsncolumns/spreadsheet-state 28.0.72 → 28.0.73

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 (91) hide show
  1. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  2. package/dist/cjs/api/immer-utils.js +1 -0
  3. package/dist/cjs/api/paste-special.d.ts +48 -0
  4. package/dist/cjs/api/paste-special.d.ts.map +1 -0
  5. package/dist/cjs/api/paste-special.js +229 -0
  6. package/dist/cjs/commands.d.ts +5 -0
  7. package/dist/cjs/commands.d.ts.map +1 -1
  8. package/dist/cjs/components/editors/table-editor.js +7 -2
  9. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
  10. package/dist/cjs/hooks/use-calculation-worker.js +38 -8
  11. package/dist/cjs/hooks/use-calculation.d.ts +12 -2
  12. package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
  13. package/dist/cjs/hooks/use-calculation.js +71 -35
  14. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  15. package/dist/cjs/hooks/use-on-paste.js +82 -52
  16. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +2 -1
  17. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  18. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -3
  19. package/dist/cjs/hooks/use-on-show-column.d.ts.map +1 -1
  20. package/dist/cjs/hooks/use-on-show-column.js +2 -0
  21. package/dist/cjs/hooks/use-on-show-row.d.ts.map +1 -1
  22. package/dist/cjs/hooks/use-on-show-row.js +2 -0
  23. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  24. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  25. package/dist/cjs/hooks/use-sheet-properties.js +4 -0
  26. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +1 -1
  27. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  28. package/dist/cjs/hooks/use-spreadsheet-state.js +2 -1
  29. package/dist/cjs/index.d.ts +1 -0
  30. package/dist/cjs/index.d.ts.map +1 -1
  31. package/dist/cjs/index.js +1 -0
  32. package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
  33. package/dist/cjs/interface/calculation-interface.js +5 -0
  34. package/dist/cjs/interface/hide-column.d.ts.map +1 -1
  35. package/dist/cjs/interface/hide-column.js +4 -0
  36. package/dist/cjs/interface/hide-row.d.ts.map +1 -1
  37. package/dist/cjs/interface/hide-row.js +4 -0
  38. package/dist/cjs/interface/remove-duplicates.d.ts +3 -2
  39. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  40. package/dist/cjs/interface/remove-duplicates.js +41 -7
  41. package/dist/cjs/interface/spreadsheet-interface.d.ts +2 -1
  42. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  43. package/dist/cjs/interface/spreadsheet-interface.js +3 -3
  44. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  45. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  46. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  47. package/dist/esm/api/immer-utils.js +1 -0
  48. package/dist/esm/api/paste-special.d.ts +48 -0
  49. package/dist/esm/api/paste-special.d.ts.map +1 -0
  50. package/dist/esm/api/paste-special.js +220 -0
  51. package/dist/esm/commands.d.ts +5 -0
  52. package/dist/esm/commands.d.ts.map +1 -1
  53. package/dist/esm/components/editors/table-editor.js +7 -4
  54. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
  55. package/dist/esm/hooks/use-calculation-worker.js +19 -2
  56. package/dist/esm/hooks/use-calculation.d.ts +12 -2
  57. package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
  58. package/dist/esm/hooks/use-calculation.js +38 -7
  59. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  60. package/dist/esm/hooks/use-on-paste.js +49 -14
  61. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +2 -1
  62. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  63. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -3
  64. package/dist/esm/hooks/use-on-show-column.d.ts.map +1 -1
  65. package/dist/esm/hooks/use-on-show-column.js +2 -0
  66. package/dist/esm/hooks/use-on-show-row.d.ts.map +1 -1
  67. package/dist/esm/hooks/use-on-show-row.js +2 -0
  68. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  69. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  70. package/dist/esm/hooks/use-sheet-properties.js +4 -0
  71. package/dist/esm/hooks/use-spreadsheet-state.d.ts +1 -1
  72. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  73. package/dist/esm/hooks/use-spreadsheet-state.js +2 -1
  74. package/dist/esm/index.d.ts +1 -0
  75. package/dist/esm/index.d.ts.map +1 -1
  76. package/dist/esm/index.js +1 -0
  77. package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
  78. package/dist/esm/interface/calculation-interface.js +3 -0
  79. package/dist/esm/interface/hide-column.d.ts.map +1 -1
  80. package/dist/esm/interface/hide-column.js +4 -0
  81. package/dist/esm/interface/hide-row.d.ts.map +1 -1
  82. package/dist/esm/interface/hide-row.js +4 -0
  83. package/dist/esm/interface/remove-duplicates.d.ts +3 -2
  84. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  85. package/dist/esm/interface/remove-duplicates.js +37 -6
  86. package/dist/esm/interface/spreadsheet-interface.d.ts +2 -1
  87. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  88. package/dist/esm/interface/spreadsheet-interface.js +3 -3
  89. package/dist/esm/sheet-cell.d.ts.map +1 -1
  90. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  91. package/package.json +15 -15
@@ -366,7 +366,7 @@ var isHeavyArrayFormula = function (formula) {
366
366
  };
367
367
  var cellPromises = new Map();
368
368
  export var useCalculation = function (_a) {
369
- var locale = _a.locale, functions = _a.functions, iterativeCalculation = _a.iterativeCalculation, onDemandFormulaPattern = _a.onDemandFormulaPattern, activeSheetId = _a.activeSheetId, onSuccess = _a.onSuccess, onChangeDependencyGraph = _a.onChangeDependencyGraph, getSheetId = _a.getSheetId, getSheetName = _a.getSheetName, getSheetIndex = _a.getSheetIndex, getSheetCount = _a.getSheetCount, getActiveSheetId = _a.getActiveSheetId, getEffectiveValue = _a.getEffectiveValue, getUserEnteredValue = _a.getUserEnteredValue, getConditionalFormatFormula = _a.getConditionalFormatFormula, getDataValidationFormula = _a.getDataValidationFormula, getSheetProperties = _a.getSheetProperties, getCellData = _a.getCellData, onStructuredReference = _a.onStructuredReference, onNamedRange = _a.onNamedRange, namedRanges = _a.namedRanges, onChangeStaticReference = _a.onChangeStaticReference, onBeginCalculation = _a.onBeginCalculation, getEffectiveStructuredValue = _a.getEffectiveStructuredValue, isRowHidden = _a.isRowHidden, isRowHiddenByFilter = _a.isRowHiddenByFilter, _b = _a.enableLazyCalculation, enableLazyCalculation = _b === void 0 ? true : _b, _c = _a.enabled, enabled = _c === void 0 ? true : _c;
369
+ var locale = _a.locale, functions = _a.functions, iterativeCalculation = _a.iterativeCalculation, onDemandFormulaPattern = _a.onDemandFormulaPattern, activeSheetId = _a.activeSheetId, onSuccess = _a.onSuccess, onChangeDependencyGraph = _a.onChangeDependencyGraph, getSheetId = _a.getSheetId, getSheetName = _a.getSheetName, getSheetIndex = _a.getSheetIndex, getSheetNames = _a.getSheetNames, getSheetCount = _a.getSheetCount, getActiveSheetId = _a.getActiveSheetId, getEffectiveValue = _a.getEffectiveValue, getUserEnteredValue = _a.getUserEnteredValue, getConditionalFormatFormula = _a.getConditionalFormatFormula, getDataValidationFormula = _a.getDataValidationFormula, getSheetProperties = _a.getSheetProperties, getCellData = _a.getCellData, onStructuredReference = _a.onStructuredReference, onNamedRange = _a.onNamedRange, namedRanges = _a.namedRanges, onChangeStaticReference = _a.onChangeStaticReference, onBeginCalculation = _a.onBeginCalculation, getEffectiveStructuredValue = _a.getEffectiveStructuredValue, isRowHidden = _a.isRowHidden, isRowHiddenByFilter = _a.isRowHiddenByFilter, _b = _a.enableLazyCalculation, enableLazyCalculation = _b === void 0 ? true : _b, _c = _a.enabled, enabled = _c === void 0 ? true : _c;
370
370
  // Convert string pattern to RegExp if provided
371
371
  var onDemandPattern = useMemo(function () {
372
372
  if (!onDemandFormulaPattern)
@@ -381,6 +381,9 @@ export var useCalculation = function (_a) {
381
381
  var graphOperationQueue = useRef([]);
382
382
  // Results queue
383
383
  var resultsQueueRef = useRef(new Map());
384
+ // Circular-reference members awaiting the next `onSuccess` flush (see
385
+ // `CalculationSuccessContext.circularReferences`).
386
+ var circularReferencesQueueRef = useRef(new Map());
384
387
  var resultsFlushPendingRef = useRef(false);
385
388
  var isFullRecalcRef = useRef(false);
386
389
  var staticNodeArrayRef = useRef([]);
@@ -388,6 +391,7 @@ export var useCalculation = function (_a) {
388
391
  var getSheetNameStable = useCallbackRef(getSheetName);
389
392
  var getSheetIdStable = useCallbackRef(getSheetId);
390
393
  var getSheetIndexStable = useCallbackRef(getSheetIndex);
394
+ var getSheetNamesStable = useCallbackRef(getSheetNames);
391
395
  var getSheetCountStable = useCallbackRef(getSheetCount);
392
396
  var getCellDataStable = useCallbackRef(getCellData);
393
397
  var onStructuredReferenceStable = useCallbackRef(onStructuredReference);
@@ -770,6 +774,7 @@ export var useCalculation = function (_a) {
770
774
  locale: locale,
771
775
  getSheetId: getSheetIdStable,
772
776
  getSheetIndex: getSheetIndexStable,
777
+ getSheetNames: getSheetNames ? getSheetNamesStable : undefined,
773
778
  getSheetCount: getSheetCountStable,
774
779
  getSheetProperties: function (sheetId) {
775
780
  if (sheetId === void 0) { sheetId = getActiveSheetId(); }
@@ -780,6 +785,17 @@ export var useCalculation = function (_a) {
780
785
  isRowHiddenByFilter: isRowHiddenByFilter
781
786
  ? isRowHiddenByFilterStable
782
787
  : undefined,
788
+ getCellFormula: function (sheetId, rowIndex, columnIndex) {
789
+ var userEnteredValue = getFinalUserEnteredValue({
790
+ sheetId: sheetId,
791
+ rowIndex: rowIndex,
792
+ columnIndex: columnIndex,
793
+ });
794
+ return typeof userEnteredValue === "string" &&
795
+ isAFormula(userEnteredValue)
796
+ ? userEnteredValue
797
+ : undefined;
798
+ },
783
799
  getCellValue: function (sheetId, rowIndex, columnIndex, property) {
784
800
  var _a;
785
801
  var key = makeKey({
@@ -1079,7 +1095,7 @@ export var useCalculation = function (_a) {
1079
1095
  publishResults(initialResults.values());
1080
1096
  }
1081
1097
  runCellBatch_1 = function (input) { return __awaiter(void 0, void 0, void 0, function () {
1082
- var cellNodes, rootSheetId, _a, included, deferred, circularKeys_1, results, cellNodes_1, cellNodes_1_1, node, error_1;
1098
+ var cellNodes, rootSheetId, _a, included, deferred, circularKeys_1, results, circularPositions, cellNodes_1, cellNodes_1_1, node;
1083
1099
  var e_20, _b;
1084
1100
  var _c;
1085
1101
  return __generator(this, function (_d) {
@@ -1102,15 +1118,16 @@ export var useCalculation = function (_a) {
1102
1118
  circularKeys_1 = findCircularKeys(cellNodes);
1103
1119
  if (circularKeys_1.size) {
1104
1120
  results = new Map();
1121
+ circularPositions = [];
1105
1122
  try {
1106
1123
  for (cellNodes_1 = __values(cellNodes), cellNodes_1_1 = cellNodes_1.next(); !cellNodes_1_1.done; cellNodes_1_1 = cellNodes_1.next()) {
1107
1124
  node = cellNodes_1_1.value;
1108
1125
  if (!circularKeys_1.has(node.key)) {
1109
1126
  continue;
1110
1127
  }
1111
- error_1 = new FormulaError("#REF!", "Circular dependency detected.");
1112
- getComputationCache().set(node.key, error_1);
1113
- results.set(node.key, [node.position, error_1]);
1128
+ getComputationCache().set(node.key, 0);
1129
+ results.set(node.key, [node.position, 0]);
1130
+ circularPositions.push(node.position);
1114
1131
  }
1115
1132
  }
1116
1133
  catch (e_20_1) { e_20 = { error: e_20_1 }; }
@@ -1120,7 +1137,7 @@ export var useCalculation = function (_a) {
1120
1137
  }
1121
1138
  finally { if (e_20) throw e_20.error; }
1122
1139
  }
1123
- publishResults(results.values());
1140
+ publishResults(results.values(), circularPositions);
1124
1141
  cellNodes = cellNodes.filter(function (node) { return !circularKeys_1.has(node.key); });
1125
1142
  }
1126
1143
  }
@@ -1257,7 +1274,7 @@ export var useCalculation = function (_a) {
1257
1274
  // Process async
1258
1275
  function processCells(cells, recalculatedPosition) {
1259
1276
  return __awaiter(this, void 0, void 0, function () {
1260
- var cellMap, cells_5, cells_5_1, cell, adjacency, getDependencies, hasSelfReference, indices, lowlinks, stack, onStack, iterativeGroups, index, strongConnect, cells_6, cells_6_1, cell, key, cells_7, cells_7_1, cell, key, iterativeKeys, iterativeGroups_1, iterativeGroups_1_1, group, group_1, group_1_1, cell, nonIterativeCells, maxIterations, maxChange, iterativeGroups_2, iterativeGroups_2_1, group, group_2, group_2_1, cell, effectiveValue, previousValues, converged, iteration, currentValues, group_3, group_3_1, cell, userEnteredValue, result, key, err_2, error_2, e_22_1, maxDelta, currentValues_1, currentValues_1_1, _a, key, value, delta, finalValues, results, group_4, group_4_1, cell, key, value, _b, arrayErrors, recomputeOperations, arrayErrors_1, arrayErrors_1_1, _c, errorKey, errorValue, _d, collides, recomputeOperations, e_23_1, followUpCells, iterativeGroups_3, iterativeGroups_3_1, group, group_5, group_5_1, cell, dependents, dependents_1, dependents_1_1, dependent, cellDep, depKey;
1277
+ var cellMap, cells_5, cells_5_1, cell, adjacency, getDependencies, hasSelfReference, indices, lowlinks, stack, onStack, iterativeGroups, index, strongConnect, cells_6, cells_6_1, cell, key, cells_7, cells_7_1, cell, key, iterativeKeys, iterativeGroups_1, iterativeGroups_1_1, group, group_1, group_1_1, cell, nonIterativeCells, maxIterations, maxChange, iterativeGroups_2, iterativeGroups_2_1, group, group_2, group_2_1, cell, effectiveValue, previousValues, converged, iteration, currentValues, group_3, group_3_1, cell, userEnteredValue, result, key, err_2, error_1, e_22_1, maxDelta, currentValues_1, currentValues_1_1, _a, key, value, delta, finalValues, results, group_4, group_4_1, cell, key, value, _b, arrayErrors, recomputeOperations, arrayErrors_1, arrayErrors_1_1, _c, errorKey, errorValue, _d, collides, recomputeOperations, e_23_1, followUpCells, iterativeGroups_3, iterativeGroups_3_1, group, group_5, group_5_1, cell, dependents, dependents_1, dependents_1_1, dependent, cellDep, depKey;
1261
1278
  var e_24, _e, e_25, _f, e_26, _g, e_27, _h, e_28, _j, e_23, _k, e_29, _l, e_22, _m, e_30, _o, e_31, _p, e_32, _q, e_33, _r, e_34, _s, e_35, _t;
1262
1279
  var _u, _v, _w, _x, _y, _z, _0;
1263
1280
  return __generator(this, function (_1) {
@@ -1546,11 +1563,11 @@ export var useCalculation = function (_a) {
1546
1563
  return [3 /*break*/, 13];
1547
1564
  case 12:
1548
1565
  err_2 = _1.sent();
1549
- error_2 = err_2 instanceof FormulaError
1566
+ error_1 = err_2 instanceof FormulaError
1550
1567
  ? err_2
1551
1568
  : new FormulaError((_z = err_2 === null || err_2 === void 0 ? void 0 : err_2.name) !== null && _z !== void 0 ? _z : "#ERROR!", (_0 = err_2 === null || err_2 === void 0 ? void 0 : err_2.message) !== null && _0 !== void 0 ? _0 : String(err_2), err_2 === null || err_2 === void 0 ? void 0 : err_2.stack);
1552
- currentValues.set(makeKey(cell.position), error_2);
1553
- getComputationCache().set(makeKey(cell.position), error_2);
1569
+ currentValues.set(makeKey(cell.position), error_1);
1570
+ getComputationCache().set(makeKey(cell.position), error_1);
1554
1571
  return [3 /*break*/, 13];
1555
1572
  case 13:
1556
1573
  group_3_1 = group_3.next();
@@ -1907,7 +1924,7 @@ export var useCalculation = function (_a) {
1907
1924
  }
1908
1925
  // Process a single dirty cell
1909
1926
  var processCell = function (dirtyCell, recalculatedPosition) { return __awaiter(void 0, void 0, void 0, function () {
1910
- var results, position, key, userEnteredValue, isFormula, onDemandMap, rafTimer, isCellNode_1, result, _a, collides, recomputeOperations, err_3, error_3, _b, arrayErrors, recomputeOperations, arrayErrors_2, arrayErrors_2_1, _c, key_1, value;
1927
+ var results, position, key, userEnteredValue, isFormula, onDemandMap, rafTimer, isCellNode_1, result, _a, collides, recomputeOperations, err_3, error_2, _b, arrayErrors, recomputeOperations, arrayErrors_2, arrayErrors_2_1, _c, key_1, value;
1911
1928
  var e_42, _d;
1912
1929
  return __generator(this, function (_e) {
1913
1930
  switch (_e.label) {
@@ -2002,23 +2019,23 @@ export var useCalculation = function (_a) {
2002
2019
  }
2003
2020
  // Calculation error
2004
2021
  if (err_3 instanceof FormulaError || err_3 instanceof Error) {
2005
- error_3 = err_3 instanceof FormulaError
2022
+ error_2 = err_3 instanceof FormulaError
2006
2023
  ? err_3
2007
2024
  : new FormulaError(err_3.name, err_3.message, err_3.stack);
2008
2025
  // We have to check if this error is caused in a cell
2009
2026
  // containing array formula
2010
2027
  // If so we have to reset all values references by this
2011
2028
  // array
2012
- debug("Computation Error", error_3, position, key, userEnteredValue);
2029
+ debug("Computation Error", error_2, position, key, userEnteredValue);
2013
2030
  _b = __read(getErrorResultsFromArrayPosition(position), 2), arrayErrors = _b[0], recomputeOperations = _b[1];
2014
2031
  // Add it to computation cache
2015
- getComputationCache().set(key, error_3);
2032
+ getComputationCache().set(key, error_2);
2016
2033
  // Invalidate any cached ranges containing this cell
2017
2034
  getCalculator().invalidateCacheForCell(position.sheetId, position.rowIndex, position.columnIndex);
2018
2035
  // New compuete
2019
2036
  enqueueCalculations(recomputeOperations);
2020
2037
  // Add to results
2021
- results.set(key, [position, error_3]);
2038
+ results.set(key, [position, error_2]);
2022
2039
  try {
2023
2040
  for (arrayErrors_2 = __values(arrayErrors), arrayErrors_2_1 = arrayErrors_2.next(); !arrayErrors_2_1.done; arrayErrors_2_1 = arrayErrors_2.next()) {
2024
2041
  _c = __read(arrayErrors_2_1.value, 2), key_1 = _c[0], value = _c[1];
@@ -2088,12 +2105,12 @@ export var useCalculation = function (_a) {
2088
2105
  /**
2089
2106
  * Publish results back to the
2090
2107
  */
2091
- var publishResults = useCallback(function (item) {
2092
- var e_43, _a;
2108
+ var publishResults = useCallback(function (item, circularReferences) {
2109
+ var e_43, _a, e_44, _b;
2093
2110
  try {
2094
2111
  for (var item_1 = __values(item), item_1_1 = item_1.next(); !item_1_1.done; item_1_1 = item_1.next()) {
2095
2112
  var entry = item_1_1.value;
2096
- var _b = __read(entry, 1), key = _b[0];
2113
+ var _c = __read(entry, 1), key = _c[0];
2097
2114
  resultsQueueRef.current.set(makeKey(key), entry);
2098
2115
  }
2099
2116
  }
@@ -2104,6 +2121,19 @@ export var useCalculation = function (_a) {
2104
2121
  }
2105
2122
  finally { if (e_43) throw e_43.error; }
2106
2123
  }
2124
+ try {
2125
+ for (var _d = __values(circularReferences !== null && circularReferences !== void 0 ? circularReferences : []), _e = _d.next(); !_e.done; _e = _d.next()) {
2126
+ var position = _e.value;
2127
+ circularReferencesQueueRef.current.set(makeKey(position), position);
2128
+ }
2129
+ }
2130
+ catch (e_44_1) { e_44 = { error: e_44_1 }; }
2131
+ finally {
2132
+ try {
2133
+ if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
2134
+ }
2135
+ finally { if (e_44) throw e_44.error; }
2136
+ }
2107
2137
  if (resultsQueueRef.current.size === 0) {
2108
2138
  return;
2109
2139
  }
@@ -2121,14 +2151,20 @@ export var useCalculation = function (_a) {
2121
2151
  if (!resultsQueueRef.current.size) {
2122
2152
  return;
2123
2153
  }
2154
+ var context = circularReferencesQueueRef.current.size > 0
2155
+ ? {
2156
+ circularReferences: Array.from(circularReferencesQueueRef.current.values()),
2157
+ }
2158
+ : {};
2124
2159
  try {
2125
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(resultsQueueRef.current.values(), isFullRecalc, {});
2160
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(resultsQueueRef.current.values(), isFullRecalc, context);
2126
2161
  }
2127
2162
  catch (err) {
2128
2163
  console.error("[spreadsheet-state] recalculation pass aborted:", err);
2129
2164
  }
2130
2165
  finally {
2131
2166
  resultsQueueRef.current.clear();
2167
+ circularReferencesQueueRef.current.clear();
2132
2168
  isFullRecalcRef.current = false;
2133
2169
  }
2134
2170
  });
@@ -2346,7 +2382,7 @@ export var useCalculation = function (_a) {
2346
2382
  // Get precedents from formula string
2347
2383
  // Does not check with DAG
2348
2384
  var getPrecedentsFromFormulaString = useCallback(function (value, source) {
2349
- var e_44, _a;
2385
+ var e_45, _a;
2350
2386
  var dependencies = getCalculator().dependencies(value, source);
2351
2387
  var nodes = [];
2352
2388
  try {
@@ -2365,12 +2401,12 @@ export var useCalculation = function (_a) {
2365
2401
  }
2366
2402
  }
2367
2403
  }
2368
- catch (e_44_1) { e_44 = { error: e_44_1 }; }
2404
+ catch (e_45_1) { e_45 = { error: e_45_1 }; }
2369
2405
  finally {
2370
2406
  try {
2371
2407
  if (dependencies_2_1 && !dependencies_2_1.done && (_a = dependencies_2.return)) _a.call(dependencies_2);
2372
2408
  }
2373
- finally { if (e_44) throw e_44.error; }
2409
+ finally { if (e_45) throw e_45.error; }
2374
2410
  }
2375
2411
  return nodes;
2376
2412
  }, []);
@@ -2419,7 +2455,7 @@ export var useCalculation = function (_a) {
2419
2455
  * via the enqueue logic.
2420
2456
  */
2421
2457
  var processOperationQueue = useCallback(function () {
2422
- var e_45, _a, e_46, _b, e_47, _c, e_48, _d;
2458
+ var e_46, _a, e_47, _b, e_48, _c, e_49, _d;
2423
2459
  // Swap queue with empty array - O(1) operation
2424
2460
  var operations = operationQueue.current;
2425
2461
  if (operations.length === 0)
@@ -2447,7 +2483,7 @@ export var useCalculation = function (_a) {
2447
2483
  if (operation.type !== "dirty" && isArrayFormula(operation.position)) {
2448
2484
  var parentCandidates = new Map();
2449
2485
  try {
2450
- for (var _e = (e_45 = void 0, __values(createArraySideEffectsAndGetResults({
2486
+ for (var _e = (e_46 = void 0, __values(createArraySideEffectsAndGetResults({
2451
2487
  position: operation.position,
2452
2488
  getDependents: getDependents,
2453
2489
  }))), _f = _e.next(); !_f.done; _f = _e.next()) {
@@ -2462,29 +2498,29 @@ export var useCalculation = function (_a) {
2462
2498
  }
2463
2499
  }
2464
2500
  }
2465
- catch (e_45_1) { e_45 = { error: e_45_1 }; }
2501
+ catch (e_46_1) { e_46 = { error: e_46_1 }; }
2466
2502
  finally {
2467
2503
  try {
2468
2504
  if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
2469
2505
  }
2470
- finally { if (e_45) throw e_45.error; }
2506
+ finally { if (e_46) throw e_46.error; }
2471
2507
  }
2472
2508
  try {
2473
- for (var _j = (e_46 = void 0, __values(parentCandidates.values())), _k = _j.next(); !_k.done; _k = _j.next()) {
2509
+ for (var _j = (e_47 = void 0, __values(parentCandidates.values())), _k = _j.next(); !_k.done; _k = _j.next()) {
2474
2510
  var parent_2 = _k.value;
2475
2511
  getCalculator().markAsDirty(parent_2);
2476
2512
  }
2477
2513
  }
2478
- catch (e_46_1) { e_46 = { error: e_46_1 }; }
2514
+ catch (e_47_1) { e_47 = { error: e_47_1 }; }
2479
2515
  finally {
2480
2516
  try {
2481
2517
  if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
2482
2518
  }
2483
- finally { if (e_46) throw e_46.error; }
2519
+ finally { if (e_47) throw e_47.error; }
2484
2520
  }
2485
2521
  if (clearedArrayRange) {
2486
2522
  try {
2487
- for (var _l = (e_47 = void 0, __values(getCalculator().arrayRangeMap)), _m = _l.next(); !_m.done; _m = _l.next()) {
2523
+ for (var _l = (e_48 = void 0, __values(getCalculator().arrayRangeMap)), _m = _l.next(); !_m.done; _m = _l.next()) {
2488
2524
  var _o = __read(_m.value, 2), key = _o[0], range = _o[1];
2489
2525
  if (!rangesOverlap(range, clearedArrayRange)) {
2490
2526
  continue;
@@ -2495,19 +2531,19 @@ export var useCalculation = function (_a) {
2495
2531
  }
2496
2532
  }
2497
2533
  }
2498
- catch (e_47_1) { e_47 = { error: e_47_1 }; }
2534
+ catch (e_48_1) { e_48 = { error: e_48_1 }; }
2499
2535
  finally {
2500
2536
  try {
2501
2537
  if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
2502
2538
  }
2503
- finally { if (e_47) throw e_47.error; }
2539
+ finally { if (e_48) throw e_48.error; }
2504
2540
  }
2505
2541
  }
2506
2542
  }
2507
2543
  var arrayParent = getCalculator().getClosestArrayParentCell(operation.position);
2508
2544
  if (arrayParent && !isEqualPosition(arrayParent, operation.position)) {
2509
2545
  try {
2510
- for (var _p = (e_48 = void 0, __values(createArraySideEffectsAndGetResults({
2546
+ for (var _p = (e_49 = void 0, __values(createArraySideEffectsAndGetResults({
2511
2547
  position: arrayParent,
2512
2548
  shouldRemoveArrayReference: false,
2513
2549
  getDependents: getDependents,
@@ -2516,12 +2552,12 @@ export var useCalculation = function (_a) {
2516
2552
  initialArrayResults.current.set(key, value);
2517
2553
  }
2518
2554
  }
2519
- catch (e_48_1) { e_48 = { error: e_48_1 }; }
2555
+ catch (e_49_1) { e_49 = { error: e_49_1 }; }
2520
2556
  finally {
2521
2557
  try {
2522
2558
  if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
2523
2559
  }
2524
- finally { if (e_48) throw e_48.error; }
2560
+ finally { if (e_49) throw e_49.error; }
2525
2561
  }
2526
2562
  }
2527
2563
  // Backend driven
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"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"}