@rowsncolumns/spreadsheet-state 28.0.71 → 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.
- package/dist/cjs/api/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +1 -0
- package/dist/cjs/api/paste-special.d.ts +48 -0
- package/dist/cjs/api/paste-special.d.ts.map +1 -0
- package/dist/cjs/api/paste-special.js +229 -0
- package/dist/cjs/api/range.d.ts.map +1 -1
- package/dist/cjs/api/range.js +3 -1
- package/dist/cjs/commands.d.ts +5 -0
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/components/editors/table-editor.js +7 -2
- package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation-worker.js +84 -19
- package/dist/cjs/hooks/use-calculation.d.ts +12 -2
- package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation.js +128 -38
- package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-filter-table.js +48 -28
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +82 -52
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/cjs/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-column.js +2 -0
- package/dist/cjs/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-row.js +2 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +4 -0
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +2 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
- package/dist/cjs/interface/calculation-interface.js +5 -0
- package/dist/cjs/interface/hide-column.d.ts.map +1 -1
- package/dist/cjs/interface/hide-column.js +4 -0
- package/dist/cjs/interface/hide-row.d.ts.map +1 -1
- package/dist/cjs/interface/hide-row.js +4 -0
- package/dist/cjs/interface/remove-duplicates.d.ts +3 -2
- package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/interface/remove-duplicates.js +41 -7
- package/dist/cjs/interface/spreadsheet-interface.d.ts +2 -1
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +3 -3
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/api/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +1 -0
- package/dist/esm/api/paste-special.d.ts +48 -0
- package/dist/esm/api/paste-special.d.ts.map +1 -0
- package/dist/esm/api/paste-special.js +220 -0
- package/dist/esm/api/range.d.ts.map +1 -1
- package/dist/esm/api/range.js +3 -1
- package/dist/esm/commands.d.ts +5 -0
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/components/editors/table-editor.js +7 -4
- package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation-worker.js +59 -8
- package/dist/esm/hooks/use-calculation.d.ts +12 -2
- package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation.js +94 -10
- package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-filter-table.js +25 -8
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +49 -14
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/esm/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-column.js +2 -0
- package/dist/esm/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-row.js +2 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +4 -0
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +2 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
- package/dist/esm/interface/calculation-interface.js +3 -0
- package/dist/esm/interface/hide-column.d.ts.map +1 -1
- package/dist/esm/interface/hide-column.js +4 -0
- package/dist/esm/interface/hide-row.d.ts.map +1 -1
- package/dist/esm/interface/hide-row.js +4 -0
- package/dist/esm/interface/remove-duplicates.d.ts +3 -2
- package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/esm/interface/remove-duplicates.js +37 -6
- package/dist/esm/interface/spreadsheet-interface.d.ts +2 -1
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +3 -3
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +17 -17
|
@@ -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);
|
|
@@ -507,6 +511,7 @@ export var useCalculation = function (_a) {
|
|
|
507
511
|
};
|
|
508
512
|
var filterDirtyCellsForActiveSheet = function (cells, rootSheetId) {
|
|
509
513
|
var e_9, _a, e_10, _b, e_11, _c, e_12, _d, e_13, _e, e_14, _f, e_15, _g;
|
|
514
|
+
var _h;
|
|
510
515
|
if (!cells.length) {
|
|
511
516
|
return { included: cells, deferred: [] };
|
|
512
517
|
}
|
|
@@ -592,6 +597,58 @@ export var useCalculation = function (_a) {
|
|
|
592
597
|
}
|
|
593
598
|
finally { if (e_12) throw e_12.error; }
|
|
594
599
|
}
|
|
600
|
+
// A precedent that was deferred on an inactive sheet in an earlier
|
|
601
|
+
// pass is no longer dirty, so the dependency walk below cannot see
|
|
602
|
+
// it — an included cell would then evaluate against its stale value
|
|
603
|
+
// (Source → Intermediate → Result chains where Intermediate is never
|
|
604
|
+
// opened). Reclaim such precedents into this pass so they are
|
|
605
|
+
// ordered ahead of their dependents.
|
|
606
|
+
var reclaimed = [];
|
|
607
|
+
var reclaimDeferredNode = function (position) {
|
|
608
|
+
var sheetOperations = deferredOperationsBySheetRef.current.get(position.sheetId);
|
|
609
|
+
var key = makeKey(position);
|
|
610
|
+
var operation = sheetOperations === null || sheetOperations === void 0 ? void 0 : sheetOperations.get(key);
|
|
611
|
+
if (!sheetOperations || !operation) {
|
|
612
|
+
return undefined;
|
|
613
|
+
}
|
|
614
|
+
var graph = getCalculator().graph;
|
|
615
|
+
if (!graph.hasNode(position)) {
|
|
616
|
+
return undefined;
|
|
617
|
+
}
|
|
618
|
+
var node = graph.getNode(position);
|
|
619
|
+
if (!isCellNode(node)) {
|
|
620
|
+
return undefined;
|
|
621
|
+
}
|
|
622
|
+
sheetOperations.delete(key);
|
|
623
|
+
if (operation.force) {
|
|
624
|
+
forceRecalcKeys.current.add(key);
|
|
625
|
+
forceRecalcPositions.current.set(key, position);
|
|
626
|
+
}
|
|
627
|
+
cellNodeByKey.set(key, node);
|
|
628
|
+
var list = dirtyNodesBySheet.get(position.sheetId);
|
|
629
|
+
if (list) {
|
|
630
|
+
list.push(node);
|
|
631
|
+
}
|
|
632
|
+
else {
|
|
633
|
+
dirtyNodesBySheet.set(position.sheetId, [node]);
|
|
634
|
+
}
|
|
635
|
+
reclaimed.push(node);
|
|
636
|
+
return node;
|
|
637
|
+
};
|
|
638
|
+
var reclaimDeferredNodesInRange = function (range) {
|
|
639
|
+
var sheetOperations = deferredOperationsBySheetRef.current.get(range.sheetId);
|
|
640
|
+
if (!(sheetOperations === null || sheetOperations === void 0 ? void 0 : sheetOperations.size)) {
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
var positions = [];
|
|
644
|
+
sheetOperations.forEach(function (operation) {
|
|
645
|
+
if (!cellNodeByKey.has(makeKey(operation.position)) &&
|
|
646
|
+
isCellCoordinateWithinCellRange(operation.position, range)) {
|
|
647
|
+
positions.push(operation.position);
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
positions.forEach(reclaimDeferredNode);
|
|
651
|
+
};
|
|
595
652
|
while (stack.length) {
|
|
596
653
|
var current = stack.pop();
|
|
597
654
|
if (!current) {
|
|
@@ -614,13 +671,14 @@ export var useCalculation = function (_a) {
|
|
|
614
671
|
continue;
|
|
615
672
|
if (isCellCoordinate(dependency)) {
|
|
616
673
|
var depKey = makeKey(dependency);
|
|
617
|
-
var depNode = cellNodeByKey.get(depKey);
|
|
674
|
+
var depNode = (_h = cellNodeByKey.get(depKey)) !== null && _h !== void 0 ? _h : reclaimDeferredNode(dependency);
|
|
618
675
|
if (depNode && !includedKeys.has(depKey)) {
|
|
619
676
|
includedKeys.add(depKey);
|
|
620
677
|
stack.push(depNode);
|
|
621
678
|
}
|
|
622
679
|
continue;
|
|
623
680
|
}
|
|
681
|
+
reclaimDeferredNodesInRange(dependency);
|
|
624
682
|
var candidates = dirtyNodesBySheet.get(dependency.sheetId);
|
|
625
683
|
if (!candidates) {
|
|
626
684
|
continue;
|
|
@@ -676,6 +734,7 @@ export var useCalculation = function (_a) {
|
|
|
676
734
|
}
|
|
677
735
|
finally { if (e_15) throw e_15.error; }
|
|
678
736
|
}
|
|
737
|
+
included.push.apply(included, __spreadArray([], __read(reclaimed), false));
|
|
679
738
|
return { included: included, deferred: deferred };
|
|
680
739
|
};
|
|
681
740
|
var scheduleStartCalculation = useCallback(function (results, recalculatedPosition) {
|
|
@@ -715,6 +774,7 @@ export var useCalculation = function (_a) {
|
|
|
715
774
|
locale: locale,
|
|
716
775
|
getSheetId: getSheetIdStable,
|
|
717
776
|
getSheetIndex: getSheetIndexStable,
|
|
777
|
+
getSheetNames: getSheetNames ? getSheetNamesStable : undefined,
|
|
718
778
|
getSheetCount: getSheetCountStable,
|
|
719
779
|
getSheetProperties: function (sheetId) {
|
|
720
780
|
if (sheetId === void 0) { sheetId = getActiveSheetId(); }
|
|
@@ -725,6 +785,17 @@ export var useCalculation = function (_a) {
|
|
|
725
785
|
isRowHiddenByFilter: isRowHiddenByFilter
|
|
726
786
|
? isRowHiddenByFilterStable
|
|
727
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
|
+
},
|
|
728
799
|
getCellValue: function (sheetId, rowIndex, columnIndex, property) {
|
|
729
800
|
var _a;
|
|
730
801
|
var key = makeKey({
|
|
@@ -1024,7 +1095,7 @@ export var useCalculation = function (_a) {
|
|
|
1024
1095
|
publishResults(initialResults.values());
|
|
1025
1096
|
}
|
|
1026
1097
|
runCellBatch_1 = function (input) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1027
|
-
var cellNodes, rootSheetId, _a, included, deferred, circularKeys_1, results, cellNodes_1, cellNodes_1_1, node
|
|
1098
|
+
var cellNodes, rootSheetId, _a, included, deferred, circularKeys_1, results, circularPositions, cellNodes_1, cellNodes_1_1, node;
|
|
1028
1099
|
var e_20, _b;
|
|
1029
1100
|
var _c;
|
|
1030
1101
|
return __generator(this, function (_d) {
|
|
@@ -1047,15 +1118,16 @@ export var useCalculation = function (_a) {
|
|
|
1047
1118
|
circularKeys_1 = findCircularKeys(cellNodes);
|
|
1048
1119
|
if (circularKeys_1.size) {
|
|
1049
1120
|
results = new Map();
|
|
1121
|
+
circularPositions = [];
|
|
1050
1122
|
try {
|
|
1051
1123
|
for (cellNodes_1 = __values(cellNodes), cellNodes_1_1 = cellNodes_1.next(); !cellNodes_1_1.done; cellNodes_1_1 = cellNodes_1.next()) {
|
|
1052
1124
|
node = cellNodes_1_1.value;
|
|
1053
1125
|
if (!circularKeys_1.has(node.key)) {
|
|
1054
1126
|
continue;
|
|
1055
1127
|
}
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1128
|
+
getComputationCache().set(node.key, 0);
|
|
1129
|
+
results.set(node.key, [node.position, 0]);
|
|
1130
|
+
circularPositions.push(node.position);
|
|
1059
1131
|
}
|
|
1060
1132
|
}
|
|
1061
1133
|
catch (e_20_1) { e_20 = { error: e_20_1 }; }
|
|
@@ -1065,7 +1137,7 @@ export var useCalculation = function (_a) {
|
|
|
1065
1137
|
}
|
|
1066
1138
|
finally { if (e_20) throw e_20.error; }
|
|
1067
1139
|
}
|
|
1068
|
-
publishResults(results.values());
|
|
1140
|
+
publishResults(results.values(), circularPositions);
|
|
1069
1141
|
cellNodes = cellNodes.filter(function (node) { return !circularKeys_1.has(node.key); });
|
|
1070
1142
|
}
|
|
1071
1143
|
}
|
|
@@ -1202,7 +1274,7 @@ export var useCalculation = function (_a) {
|
|
|
1202
1274
|
// Process async
|
|
1203
1275
|
function processCells(cells, recalculatedPosition) {
|
|
1204
1276
|
return __awaiter(this, void 0, void 0, function () {
|
|
1205
|
-
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,
|
|
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;
|
|
1206
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;
|
|
1207
1279
|
var _u, _v, _w, _x, _y, _z, _0;
|
|
1208
1280
|
return __generator(this, function (_1) {
|
|
@@ -1491,11 +1563,11 @@ export var useCalculation = function (_a) {
|
|
|
1491
1563
|
return [3 /*break*/, 13];
|
|
1492
1564
|
case 12:
|
|
1493
1565
|
err_2 = _1.sent();
|
|
1494
|
-
|
|
1566
|
+
error_1 = err_2 instanceof FormulaError
|
|
1495
1567
|
? err_2
|
|
1496
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);
|
|
1497
|
-
currentValues.set(makeKey(cell.position),
|
|
1498
|
-
getComputationCache().set(makeKey(cell.position),
|
|
1569
|
+
currentValues.set(makeKey(cell.position), error_1);
|
|
1570
|
+
getComputationCache().set(makeKey(cell.position), error_1);
|
|
1499
1571
|
return [3 /*break*/, 13];
|
|
1500
1572
|
case 13:
|
|
1501
1573
|
group_3_1 = group_3.next();
|
|
@@ -1852,7 +1924,7 @@ export var useCalculation = function (_a) {
|
|
|
1852
1924
|
}
|
|
1853
1925
|
// Process a single dirty cell
|
|
1854
1926
|
var processCell = function (dirtyCell, recalculatedPosition) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1855
|
-
var results, position, key, userEnteredValue, isFormula, onDemandMap, rafTimer, isCellNode_1, result, _a, collides, recomputeOperations, err_3,
|
|
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;
|
|
1856
1928
|
var e_42, _d;
|
|
1857
1929
|
return __generator(this, function (_e) {
|
|
1858
1930
|
switch (_e.label) {
|
|
@@ -1947,23 +2019,23 @@ export var useCalculation = function (_a) {
|
|
|
1947
2019
|
}
|
|
1948
2020
|
// Calculation error
|
|
1949
2021
|
if (err_3 instanceof FormulaError || err_3 instanceof Error) {
|
|
1950
|
-
|
|
2022
|
+
error_2 = err_3 instanceof FormulaError
|
|
1951
2023
|
? err_3
|
|
1952
2024
|
: new FormulaError(err_3.name, err_3.message, err_3.stack);
|
|
1953
2025
|
// We have to check if this error is caused in a cell
|
|
1954
2026
|
// containing array formula
|
|
1955
2027
|
// If so we have to reset all values references by this
|
|
1956
2028
|
// array
|
|
1957
|
-
debug("Computation Error",
|
|
2029
|
+
debug("Computation Error", error_2, position, key, userEnteredValue);
|
|
1958
2030
|
_b = __read(getErrorResultsFromArrayPosition(position), 2), arrayErrors = _b[0], recomputeOperations = _b[1];
|
|
1959
2031
|
// Add it to computation cache
|
|
1960
|
-
getComputationCache().set(key,
|
|
2032
|
+
getComputationCache().set(key, error_2);
|
|
1961
2033
|
// Invalidate any cached ranges containing this cell
|
|
1962
2034
|
getCalculator().invalidateCacheForCell(position.sheetId, position.rowIndex, position.columnIndex);
|
|
1963
2035
|
// New compuete
|
|
1964
2036
|
enqueueCalculations(recomputeOperations);
|
|
1965
2037
|
// Add to results
|
|
1966
|
-
results.set(key, [position,
|
|
2038
|
+
results.set(key, [position, error_2]);
|
|
1967
2039
|
try {
|
|
1968
2040
|
for (arrayErrors_2 = __values(arrayErrors), arrayErrors_2_1 = arrayErrors_2.next(); !arrayErrors_2_1.done; arrayErrors_2_1 = arrayErrors_2.next()) {
|
|
1969
2041
|
_c = __read(arrayErrors_2_1.value, 2), key_1 = _c[0], value = _c[1];
|
|
@@ -2033,12 +2105,12 @@ export var useCalculation = function (_a) {
|
|
|
2033
2105
|
/**
|
|
2034
2106
|
* Publish results back to the
|
|
2035
2107
|
*/
|
|
2036
|
-
var publishResults = useCallback(function (item) {
|
|
2037
|
-
var e_43, _a;
|
|
2108
|
+
var publishResults = useCallback(function (item, circularReferences) {
|
|
2109
|
+
var e_43, _a, e_44, _b;
|
|
2038
2110
|
try {
|
|
2039
2111
|
for (var item_1 = __values(item), item_1_1 = item_1.next(); !item_1_1.done; item_1_1 = item_1.next()) {
|
|
2040
2112
|
var entry = item_1_1.value;
|
|
2041
|
-
var
|
|
2113
|
+
var _c = __read(entry, 1), key = _c[0];
|
|
2042
2114
|
resultsQueueRef.current.set(makeKey(key), entry);
|
|
2043
2115
|
}
|
|
2044
2116
|
}
|
|
@@ -2049,6 +2121,19 @@ export var useCalculation = function (_a) {
|
|
|
2049
2121
|
}
|
|
2050
2122
|
finally { if (e_43) throw e_43.error; }
|
|
2051
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
|
+
}
|
|
2052
2137
|
if (resultsQueueRef.current.size === 0) {
|
|
2053
2138
|
return;
|
|
2054
2139
|
}
|
|
@@ -2066,14 +2151,20 @@ export var useCalculation = function (_a) {
|
|
|
2066
2151
|
if (!resultsQueueRef.current.size) {
|
|
2067
2152
|
return;
|
|
2068
2153
|
}
|
|
2154
|
+
var context = circularReferencesQueueRef.current.size > 0
|
|
2155
|
+
? {
|
|
2156
|
+
circularReferences: Array.from(circularReferencesQueueRef.current.values()),
|
|
2157
|
+
}
|
|
2158
|
+
: {};
|
|
2069
2159
|
try {
|
|
2070
|
-
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);
|
|
2071
2161
|
}
|
|
2072
2162
|
catch (err) {
|
|
2073
2163
|
console.error("[spreadsheet-state] recalculation pass aborted:", err);
|
|
2074
2164
|
}
|
|
2075
2165
|
finally {
|
|
2076
2166
|
resultsQueueRef.current.clear();
|
|
2167
|
+
circularReferencesQueueRef.current.clear();
|
|
2077
2168
|
isFullRecalcRef.current = false;
|
|
2078
2169
|
}
|
|
2079
2170
|
});
|
|
@@ -2291,7 +2382,7 @@ export var useCalculation = function (_a) {
|
|
|
2291
2382
|
// Get precedents from formula string
|
|
2292
2383
|
// Does not check with DAG
|
|
2293
2384
|
var getPrecedentsFromFormulaString = useCallback(function (value, source) {
|
|
2294
|
-
var
|
|
2385
|
+
var e_45, _a;
|
|
2295
2386
|
var dependencies = getCalculator().dependencies(value, source);
|
|
2296
2387
|
var nodes = [];
|
|
2297
2388
|
try {
|
|
@@ -2310,12 +2401,12 @@ export var useCalculation = function (_a) {
|
|
|
2310
2401
|
}
|
|
2311
2402
|
}
|
|
2312
2403
|
}
|
|
2313
|
-
catch (
|
|
2404
|
+
catch (e_45_1) { e_45 = { error: e_45_1 }; }
|
|
2314
2405
|
finally {
|
|
2315
2406
|
try {
|
|
2316
2407
|
if (dependencies_2_1 && !dependencies_2_1.done && (_a = dependencies_2.return)) _a.call(dependencies_2);
|
|
2317
2408
|
}
|
|
2318
|
-
finally { if (
|
|
2409
|
+
finally { if (e_45) throw e_45.error; }
|
|
2319
2410
|
}
|
|
2320
2411
|
return nodes;
|
|
2321
2412
|
}, []);
|
|
@@ -2347,8 +2438,7 @@ export var useCalculation = function (_a) {
|
|
|
2347
2438
|
if (!includeSource &&
|
|
2348
2439
|
isCellCoordinate(source) &&
|
|
2349
2440
|
isCellNode(node)) {
|
|
2350
|
-
return (node.position
|
|
2351
|
-
node.position.columnIndex !== source.columnIndex);
|
|
2441
|
+
return !isEqualPosition(node.position, source);
|
|
2352
2442
|
}
|
|
2353
2443
|
return true;
|
|
2354
2444
|
});
|
|
@@ -2365,7 +2455,7 @@ export var useCalculation = function (_a) {
|
|
|
2365
2455
|
* via the enqueue logic.
|
|
2366
2456
|
*/
|
|
2367
2457
|
var processOperationQueue = useCallback(function () {
|
|
2368
|
-
var
|
|
2458
|
+
var e_46, _a, e_47, _b, e_48, _c, e_49, _d;
|
|
2369
2459
|
// Swap queue with empty array - O(1) operation
|
|
2370
2460
|
var operations = operationQueue.current;
|
|
2371
2461
|
if (operations.length === 0)
|
|
@@ -2393,7 +2483,7 @@ export var useCalculation = function (_a) {
|
|
|
2393
2483
|
if (operation.type !== "dirty" && isArrayFormula(operation.position)) {
|
|
2394
2484
|
var parentCandidates = new Map();
|
|
2395
2485
|
try {
|
|
2396
|
-
for (var _e = (
|
|
2486
|
+
for (var _e = (e_46 = void 0, __values(createArraySideEffectsAndGetResults({
|
|
2397
2487
|
position: operation.position,
|
|
2398
2488
|
getDependents: getDependents,
|
|
2399
2489
|
}))), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
@@ -2408,29 +2498,29 @@ export var useCalculation = function (_a) {
|
|
|
2408
2498
|
}
|
|
2409
2499
|
}
|
|
2410
2500
|
}
|
|
2411
|
-
catch (
|
|
2501
|
+
catch (e_46_1) { e_46 = { error: e_46_1 }; }
|
|
2412
2502
|
finally {
|
|
2413
2503
|
try {
|
|
2414
2504
|
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
2415
2505
|
}
|
|
2416
|
-
finally { if (
|
|
2506
|
+
finally { if (e_46) throw e_46.error; }
|
|
2417
2507
|
}
|
|
2418
2508
|
try {
|
|
2419
|
-
for (var _j = (
|
|
2509
|
+
for (var _j = (e_47 = void 0, __values(parentCandidates.values())), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
2420
2510
|
var parent_2 = _k.value;
|
|
2421
2511
|
getCalculator().markAsDirty(parent_2);
|
|
2422
2512
|
}
|
|
2423
2513
|
}
|
|
2424
|
-
catch (
|
|
2514
|
+
catch (e_47_1) { e_47 = { error: e_47_1 }; }
|
|
2425
2515
|
finally {
|
|
2426
2516
|
try {
|
|
2427
2517
|
if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
|
|
2428
2518
|
}
|
|
2429
|
-
finally { if (
|
|
2519
|
+
finally { if (e_47) throw e_47.error; }
|
|
2430
2520
|
}
|
|
2431
2521
|
if (clearedArrayRange) {
|
|
2432
2522
|
try {
|
|
2433
|
-
for (var _l = (
|
|
2523
|
+
for (var _l = (e_48 = void 0, __values(getCalculator().arrayRangeMap)), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
2434
2524
|
var _o = __read(_m.value, 2), key = _o[0], range = _o[1];
|
|
2435
2525
|
if (!rangesOverlap(range, clearedArrayRange)) {
|
|
2436
2526
|
continue;
|
|
@@ -2441,19 +2531,19 @@ export var useCalculation = function (_a) {
|
|
|
2441
2531
|
}
|
|
2442
2532
|
}
|
|
2443
2533
|
}
|
|
2444
|
-
catch (
|
|
2534
|
+
catch (e_48_1) { e_48 = { error: e_48_1 }; }
|
|
2445
2535
|
finally {
|
|
2446
2536
|
try {
|
|
2447
2537
|
if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
|
|
2448
2538
|
}
|
|
2449
|
-
finally { if (
|
|
2539
|
+
finally { if (e_48) throw e_48.error; }
|
|
2450
2540
|
}
|
|
2451
2541
|
}
|
|
2452
2542
|
}
|
|
2453
2543
|
var arrayParent = getCalculator().getClosestArrayParentCell(operation.position);
|
|
2454
2544
|
if (arrayParent && !isEqualPosition(arrayParent, operation.position)) {
|
|
2455
2545
|
try {
|
|
2456
|
-
for (var _p = (
|
|
2546
|
+
for (var _p = (e_49 = void 0, __values(createArraySideEffectsAndGetResults({
|
|
2457
2547
|
position: arrayParent,
|
|
2458
2548
|
shouldRemoveArrayReference: false,
|
|
2459
2549
|
getDependents: getDependents,
|
|
@@ -2462,12 +2552,12 @@ export var useCalculation = function (_a) {
|
|
|
2462
2552
|
initialArrayResults.current.set(key, value);
|
|
2463
2553
|
}
|
|
2464
2554
|
}
|
|
2465
|
-
catch (
|
|
2555
|
+
catch (e_49_1) { e_49 = { error: e_49_1 }; }
|
|
2466
2556
|
finally {
|
|
2467
2557
|
try {
|
|
2468
2558
|
if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
|
|
2469
2559
|
}
|
|
2470
|
-
finally { if (
|
|
2560
|
+
finally { if (e_49) throw e_49.error; }
|
|
2471
2561
|
}
|
|
2472
2562
|
}
|
|
2473
2563
|
// Backend driven
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-filter-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-filter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,UAAU,EACV,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AAkBnC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,UAAU,GAAG,SAAS,CAAC;AAE5B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG;IACxD,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAC7B,OAAO,kBAAkB,CAC1B,CAAC,oBAAoB,CAAC,CAAC;IACxB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oOAenE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,yBAMf,MAAM,UACP,SAAS,GAAG,UAAU,eAGjB,MAAM,iBACJ,aAAa,GAAG,SAAS,kBACxB,cAAc,EAAE,GAAG,SAAS,iBAC7B,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,WAClC,iBAAiB,8BA8IhB,MAAM,UACP,SAAS,GAAG,UAAU,eACjB,MAAM,mBAwBxB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-filter-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-filter-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -300,6 +300,19 @@ var matchesCellIcon = function (iconFilter, ctx, sheetId, rowIndex, columnIndex,
|
|
|
300
300
|
var glyphIndex = Math.min(bucket, Math.max(0, ctx.glyphCount - 1));
|
|
301
301
|
return glyphIndex === iconFilter.iconId;
|
|
302
302
|
};
|
|
303
|
+
/**
|
|
304
|
+
* Filter conditions that search the cell's displayed text rather than its
|
|
305
|
+
* value: "9/29/2026" contains "29", the serial 46294 behind it is irrelevant.
|
|
306
|
+
*/
|
|
307
|
+
var DISPLAY_TEXT_CONDITION_TYPES = new Set([
|
|
308
|
+
"TEXT_CONTAINS",
|
|
309
|
+
"TEXT_NOT_CONTAINS",
|
|
310
|
+
"TEXT_STARTS_WITH",
|
|
311
|
+
"TEXT_ENDS_WITH",
|
|
312
|
+
]);
|
|
313
|
+
var isDisplayTextCondition = function (type) {
|
|
314
|
+
return type != null && DISPLAY_TEXT_CONDITION_TYPES.has(type);
|
|
315
|
+
};
|
|
303
316
|
/**
|
|
304
317
|
* Get hidden rows from a filter
|
|
305
318
|
* @param filterSpecs
|
|
@@ -315,8 +328,8 @@ conditionalFormats,
|
|
|
315
328
|
// `FilterTableExtras`). Lets `colorFilter` match CF-painted fills/font
|
|
316
329
|
// colors, which the effective format doesn't carry.
|
|
317
330
|
getCellConditionalFormat) { return __awaiter(void 0, void 0, void 0, function () {
|
|
318
|
-
var activeSheetName, hiddenRows, filterSpecByColumnIndex, range, iconEvalByColumn, headerRow, totalRow, startRowIndex, endRowIndex, rowIndex, columnIndex, dimensionIndex, columnFilter, filterApplied, formulaRule, isFormulaRule, baseCellRef, baseFormula, formulaValue, currentVisibleValues, visibleValuesSet, showBlanks, effectiveValue, formattedValue, validationResult, _a, _b, isBlanksVisible, isRowVisible, colorFilter, iconFilter, effectiveFormat, cellConditionalFormat, matchesColorFilter, iconCtx, matchesIconFilter, isHidden;
|
|
319
|
-
var
|
|
331
|
+
var activeSheetName, hiddenRows, filterSpecByColumnIndex, range, iconEvalByColumn, headerRow, totalRow, startRowIndex, endRowIndex, rowIndex, columnIndex, dimensionIndex, columnFilter, filterApplied, condition, matchesDisplayText, formulaRule, isFormulaRule, baseCellRef, baseFormula, formulaValue, currentVisibleValues, visibleValuesSet, showBlanks, effectiveValue, formattedValue, validationResult, _a, _b, _c, isBlanksVisible, isRowVisible, colorFilter, iconFilter, effectiveFormat, cellConditionalFormat, matchesColorFilter, iconCtx, matchesIconFilter, isHidden;
|
|
332
|
+
var _d, _e, _f, _g, _h;
|
|
320
333
|
return __generator(this, function (_j) {
|
|
321
334
|
switch (_j.label) {
|
|
322
335
|
case 0:
|
|
@@ -325,34 +338,34 @@ getCellConditionalFormat) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
325
338
|
filterSpecByColumnIndex = createFilterSpecsByColumnIndex(filterSpecs);
|
|
326
339
|
range = filterView.range;
|
|
327
340
|
iconEvalByColumn = buildIconEvalByColumn(sheetId, range, filterSpecs, conditionalFormats, getEffectiveValue);
|
|
328
|
-
headerRow = (
|
|
341
|
+
headerRow = (_d = filterView.headerRow) !== null && _d !== void 0 ? _d : true;
|
|
329
342
|
totalRow = filterView.totalRow;
|
|
330
343
|
startRowIndex = range.startRowIndex + (headerRow ? 1 : 0);
|
|
331
344
|
endRowIndex = range.endRowIndex - (totalRow ? 1 : 0);
|
|
332
345
|
rowIndex = startRowIndex;
|
|
333
346
|
_j.label = 1;
|
|
334
347
|
case 1:
|
|
335
|
-
if (!(rowIndex <= endRowIndex)) return [3 /*break*/,
|
|
348
|
+
if (!(rowIndex <= endRowIndex)) return [3 /*break*/, 12];
|
|
336
349
|
columnIndex = range.startColumnIndex;
|
|
337
350
|
_j.label = 2;
|
|
338
351
|
case 2:
|
|
339
|
-
if (!(columnIndex <= range.endColumnIndex)) return [3 /*break*/,
|
|
352
|
+
if (!(columnIndex <= range.endColumnIndex)) return [3 /*break*/, 11];
|
|
340
353
|
dimensionIndex = columnIndex - range.startColumnIndex;
|
|
341
354
|
columnFilter = filterSpecByColumnIndex[dimensionIndex];
|
|
342
|
-
filterApplied = Boolean(((
|
|
343
|
-
((
|
|
355
|
+
filterApplied = Boolean(((_e = columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.filterCriteria.condition) === null || _e === void 0 ? void 0 : _e.type) ||
|
|
356
|
+
((_f = columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.filterCriteria.visibleValues) === null || _f === void 0 ? void 0 : _f.length) ||
|
|
344
357
|
(columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.filterCriteria.colorFilter) ||
|
|
345
358
|
(columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.filterCriteria.iconFilter));
|
|
346
359
|
if (!columnFilter || !filterApplied) {
|
|
347
|
-
return [3 /*break*/,
|
|
360
|
+
return [3 /*break*/, 10];
|
|
348
361
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
}
|
|
362
|
+
condition = columnFilter.filterCriteria.condition;
|
|
363
|
+
matchesDisplayText = isDisplayTextCondition(condition === null || condition === void 0 ? void 0 : condition.type);
|
|
364
|
+
formulaRule = condition && !matchesDisplayText
|
|
365
|
+
? { condition: condition }
|
|
353
366
|
: undefined;
|
|
354
367
|
isFormulaRule = isDataValidationFormulaRule(formulaRule);
|
|
355
|
-
baseCellRef = (
|
|
368
|
+
baseCellRef = (_g = cellToAddress({ rowIndex: startRowIndex, columnIndex: columnIndex })) !== null && _g !== void 0 ? _g : "A1";
|
|
356
369
|
baseFormula = isFormulaRule
|
|
357
370
|
? buildDataValidationExpression(formulaRule, baseCellRef, locale)
|
|
358
371
|
: undefined;
|
|
@@ -363,25 +376,32 @@ getCellConditionalFormat) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
363
376
|
visibleValuesSet = currentVisibleValues
|
|
364
377
|
? new Set(currentVisibleValues)
|
|
365
378
|
: undefined;
|
|
366
|
-
showBlanks = (
|
|
379
|
+
showBlanks = (_h = visibleValuesSet === null || visibleValuesSet === void 0 ? void 0 : visibleValuesSet.has(BLANK_LABEL)) !== null && _h !== void 0 ? _h : false;
|
|
367
380
|
effectiveValue = getEffectiveValue(sheetId, rowIndex, columnIndex);
|
|
368
381
|
formattedValue = getFormattedValue(sheetId, rowIndex, columnIndex);
|
|
369
|
-
if (!(
|
|
370
|
-
if (!
|
|
371
|
-
|
|
382
|
+
if (!(condition === null || condition === void 0 ? void 0 : condition.type)) return [3 /*break*/, 8];
|
|
383
|
+
if (!matchesDisplayText) return [3 /*break*/, 3];
|
|
384
|
+
_b = checkFilterRule(columnFilter.filterCriteria, formattedValue !== null && formattedValue !== void 0 ? formattedValue : "");
|
|
385
|
+
return [3 /*break*/, 7];
|
|
372
386
|
case 3:
|
|
373
|
-
|
|
374
|
-
return [
|
|
387
|
+
if (!formulaValue) return [3 /*break*/, 5];
|
|
388
|
+
return [4 /*yield*/, onRequestCalculate(formulaValue, sheetId, rowIndex, columnIndex)];
|
|
375
389
|
case 4:
|
|
376
|
-
|
|
377
|
-
|
|
390
|
+
_c = _j.sent();
|
|
391
|
+
return [3 /*break*/, 6];
|
|
378
392
|
case 5:
|
|
379
|
-
|
|
380
|
-
|
|
393
|
+
_c = checkFilterRule(columnFilter.filterCriteria, effectiveValue);
|
|
394
|
+
_j.label = 6;
|
|
381
395
|
case 6:
|
|
382
|
-
|
|
396
|
+
_b = _c;
|
|
383
397
|
_j.label = 7;
|
|
384
398
|
case 7:
|
|
399
|
+
_a = _b;
|
|
400
|
+
return [3 /*break*/, 9];
|
|
401
|
+
case 8:
|
|
402
|
+
_a = true;
|
|
403
|
+
_j.label = 9;
|
|
404
|
+
case 9:
|
|
385
405
|
validationResult = _a;
|
|
386
406
|
isBlanksVisible = showBlanks
|
|
387
407
|
? isNil(formattedValue) || formattedValue === ""
|
|
@@ -416,14 +436,14 @@ getCellConditionalFormat) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
416
436
|
if (isHidden) {
|
|
417
437
|
hiddenRows.add(rowIndex);
|
|
418
438
|
}
|
|
419
|
-
_j.label =
|
|
420
|
-
case
|
|
439
|
+
_j.label = 10;
|
|
440
|
+
case 10:
|
|
421
441
|
columnIndex++;
|
|
422
442
|
return [3 /*break*/, 2];
|
|
423
|
-
case
|
|
443
|
+
case 11:
|
|
424
444
|
rowIndex++;
|
|
425
445
|
return [3 /*break*/, 1];
|
|
426
|
-
case
|
|
446
|
+
case 12: return [2 /*return*/, hiddenRows];
|
|
427
447
|
}
|
|
428
448
|
});
|
|
429
449
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,
|
|
1
|
+
{"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"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"}
|