@rowsncolumns/spreadsheet-state 28.0.75 → 28.0.76
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/anchored-objects.d.ts +66 -0
- package/dist/cjs/api/anchored-objects.d.ts.map +1 -0
- package/dist/cjs/api/anchored-objects.js +259 -0
- package/dist/cjs/api/dependency.d.ts +13 -2
- package/dist/cjs/api/dependency.d.ts.map +1 -1
- package/dist/cjs/api/dependency.js +11 -5
- package/dist/cjs/api/formula.d.ts +61 -4
- package/dist/cjs/api/formula.d.ts.map +1 -1
- package/dist/cjs/api/formula.js +250 -61
- package/dist/cjs/api/merges.d.ts +8 -0
- package/dist/cjs/api/merges.d.ts.map +1 -1
- package/dist/cjs/api/merges.js +64 -1
- package/dist/cjs/api/named-range-structural.d.ts +62 -0
- package/dist/cjs/api/named-range-structural.d.ts.map +1 -0
- package/dist/cjs/api/named-range-structural.js +197 -0
- package/dist/cjs/api/range-rule-helpers.d.ts +45 -1
- package/dist/cjs/api/range-rule-helpers.d.ts.map +1 -1
- package/dist/cjs/api/range-rule-helpers.js +159 -6
- package/dist/cjs/api/structural-formula-update.d.ts.map +1 -1
- package/dist/cjs/api/structural-formula-update.js +24 -6
- package/dist/cjs/api/structural-guards.d.ts +78 -0
- package/dist/cjs/api/structural-guards.d.ts.map +1 -0
- package/dist/cjs/api/structural-guards.js +202 -0
- package/dist/cjs/api/structural-table-refs.d.ts +94 -0
- package/dist/cjs/api/structural-table-refs.d.ts.map +1 -0
- package/dist/cjs/api/structural-table-refs.js +313 -0
- package/dist/cjs/constants.d.ts +25 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +26 -0
- package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation-worker.js +64 -6
- package/dist/cjs/hooks/use-calculation.d.ts +7 -0
- package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation.js +15 -0
- package/dist/cjs/hooks/use-on-calculation-success.d.ts +7 -0
- package/dist/cjs/hooks/use-on-calculation-success.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-calculation-success.js +7 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +27 -2
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +27 -2
- package/dist/cjs/hooks/use-on-delete-column.d.ts +13 -4
- package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-column.js +14 -2
- package/dist/cjs/hooks/use-on-delete-row.d.ts +13 -4
- package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-delete-row.js +14 -2
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +27 -2
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +27 -2
- package/dist/cjs/hooks/use-on-insert-column.d.ts +10 -3
- package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-column.js +33 -7
- package/dist/cjs/hooks/use-on-insert-row.d.ts +10 -3
- package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-insert-row.js +32 -7
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +2 -2
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +61 -15
- package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/cjs/hooks/use-structured-reference.js +10 -6
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/interface/calculation-interface.d.ts +9 -0
- package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
- package/dist/cjs/interface/calculation-interface.js +31 -2
- package/dist/cjs/interface/delete-cells-shift-left.d.ts +8 -1
- package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-left.js +158 -80
- package/dist/cjs/interface/delete-cells-shift-up.d.ts +9 -1
- package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/cjs/interface/delete-cells-shift-up.js +155 -73
- package/dist/cjs/interface/delete-column.d.ts +1 -1
- package/dist/cjs/interface/delete-column.d.ts.map +1 -1
- package/dist/cjs/interface/delete-column.js +90 -31
- package/dist/cjs/interface/delete-row.d.ts +1 -1
- package/dist/cjs/interface/delete-row.d.ts.map +1 -1
- package/dist/cjs/interface/delete-row.js +85 -26
- package/dist/cjs/interface/insert-cells-shift-down.d.ts +10 -1
- package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-down.js +147 -52
- package/dist/cjs/interface/insert-cells-shift-right.d.ts +10 -1
- package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/cjs/interface/insert-cells-shift-right.js +154 -58
- package/dist/cjs/interface/insert-column.d.ts +1 -1
- package/dist/cjs/interface/insert-column.d.ts.map +1 -1
- package/dist/cjs/interface/insert-column.js +46 -8
- package/dist/cjs/interface/insert-row.d.ts +1 -1
- package/dist/cjs/interface/insert-row.d.ts.map +1 -1
- package/dist/cjs/interface/insert-row.js +47 -10
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +33 -0
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/api/anchored-objects.d.ts +66 -0
- package/dist/esm/api/anchored-objects.d.ts.map +1 -0
- package/dist/esm/api/anchored-objects.js +212 -0
- package/dist/esm/api/dependency.d.ts +13 -2
- package/dist/esm/api/dependency.d.ts.map +1 -1
- package/dist/esm/api/dependency.js +10 -4
- package/dist/esm/api/formula.d.ts +61 -4
- package/dist/esm/api/formula.d.ts.map +1 -1
- package/dist/esm/api/formula.js +238 -60
- package/dist/esm/api/merges.d.ts +8 -0
- package/dist/esm/api/merges.d.ts.map +1 -1
- package/dist/esm/api/merges.js +51 -0
- package/dist/esm/api/named-range-structural.d.ts +62 -0
- package/dist/esm/api/named-range-structural.d.ts.map +1 -0
- package/dist/esm/api/named-range-structural.js +176 -0
- package/dist/esm/api/range-rule-helpers.d.ts +45 -1
- package/dist/esm/api/range-rule-helpers.d.ts.map +1 -1
- package/dist/esm/api/range-rule-helpers.js +153 -1
- package/dist/esm/api/structural-formula-update.d.ts.map +1 -1
- package/dist/esm/api/structural-formula-update.js +24 -6
- package/dist/esm/api/structural-guards.d.ts +78 -0
- package/dist/esm/api/structural-guards.d.ts.map +1 -0
- package/dist/esm/api/structural-guards.js +186 -0
- package/dist/esm/api/structural-table-refs.d.ts +94 -0
- package/dist/esm/api/structural-table-refs.d.ts.map +1 -0
- package/dist/esm/api/structural-table-refs.js +219 -0
- package/dist/esm/constants.d.ts +25 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +26 -0
- package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation-worker.js +45 -0
- package/dist/esm/hooks/use-calculation.d.ts +7 -0
- package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation.js +15 -0
- package/dist/esm/hooks/use-on-calculation-success.d.ts +7 -0
- package/dist/esm/hooks/use-on-calculation-success.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-calculation-success.js +7 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
- package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-left.js +26 -2
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
- package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-cells-shift-up.js +26 -2
- package/dist/esm/hooks/use-on-delete-column.d.ts +13 -4
- package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-column.js +14 -2
- package/dist/esm/hooks/use-on-delete-row.d.ts +13 -4
- package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-delete-row.js +14 -2
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
- package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-down.js +26 -2
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
- package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-cells-shift-right.js +26 -2
- package/dist/esm/hooks/use-on-insert-column.d.ts +10 -3
- package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-column.js +33 -7
- package/dist/esm/hooks/use-on-insert-row.d.ts +10 -3
- package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-insert-row.js +32 -7
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +2 -2
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +61 -15
- package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
- package/dist/esm/hooks/use-structured-reference.js +10 -6
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/interface/calculation-interface.d.ts +9 -0
- package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
- package/dist/esm/interface/calculation-interface.js +33 -2
- package/dist/esm/interface/delete-cells-shift-left.d.ts +8 -1
- package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-left.js +135 -59
- package/dist/esm/interface/delete-cells-shift-up.d.ts +9 -1
- package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
- package/dist/esm/interface/delete-cells-shift-up.js +133 -53
- package/dist/esm/interface/delete-column.d.ts +1 -1
- package/dist/esm/interface/delete-column.d.ts.map +1 -1
- package/dist/esm/interface/delete-column.js +80 -11
- package/dist/esm/interface/delete-row.d.ts +1 -1
- package/dist/esm/interface/delete-row.d.ts.map +1 -1
- package/dist/esm/interface/delete-row.js +81 -11
- package/dist/esm/interface/insert-cells-shift-down.d.ts +10 -1
- package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-down.js +116 -47
- package/dist/esm/interface/insert-cells-shift-right.d.ts +10 -1
- package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
- package/dist/esm/interface/insert-cells-shift-right.js +120 -51
- package/dist/esm/interface/insert-column.d.ts +1 -1
- package/dist/esm/interface/insert-column.d.ts.map +1 -1
- package/dist/esm/interface/insert-column.js +46 -8
- package/dist/esm/interface/insert-row.d.ts +1 -1
- package/dist/esm/interface/insert-row.d.ts.map +1 -1
- package/dist/esm/interface/insert-row.js +47 -10
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +29 -0
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +16 -16
|
@@ -1,62 +1,92 @@
|
|
|
1
|
-
import { __read, __spreadArray, __values } from "tslib";
|
|
2
|
-
import { selectionFromActiveCell } from "@rowsncolumns/utils";
|
|
1
|
+
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
3
2
|
import { produceWithPatches } from "immer";
|
|
4
3
|
import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
|
|
4
|
+
import { contractRangesInFormula } from "../api/formula";
|
|
5
5
|
import { createSheetDraft } from "../api/immer-utils";
|
|
6
|
-
import {
|
|
6
|
+
import { shiftMergesInBand } from "../api/merges";
|
|
7
|
+
import { isRangeInsideBand, isRangeInsideBlock, resolveShiftSelection, shiftBand, } from "../api/structural-guards";
|
|
8
|
+
import { SheetCell } from "../sheet-cell";
|
|
9
|
+
/**
|
|
10
|
+
* Delete cells ▸ Shift cells up (SHF-03, SHF-09). Only the selection's columns move: the selected
|
|
11
|
+
* block is removed and every cell below it slides up by the block's height. A reference to a
|
|
12
|
+
* deleted cell (or to a range the block covers entirely) becomes `#REF!` (SHF-09); a reference to a
|
|
13
|
+
* cell that slid up follows it (SHF-03); a range entirely inside the block's columns that the block
|
|
14
|
+
* partially covers contracts by the overlap. Refusals (torn merge/table/array) are decided by the
|
|
15
|
+
* hook via `getShiftCellsRefusal` before this runs.
|
|
16
|
+
*/
|
|
7
17
|
export var deleteCellsShiftUp = function (_a) {
|
|
8
|
-
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeCitations = _a.onChangeCitations;
|
|
18
|
+
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getSheetName = _a.getSheetName, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations;
|
|
9
19
|
return function (sheetId, activeCell, selections) {
|
|
20
|
+
var _a;
|
|
10
21
|
var saveHistory = createHistory();
|
|
11
22
|
var recalcCells = new Map();
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var
|
|
16
|
-
var
|
|
23
|
+
var selection = resolveShiftSelection(activeCell, selections);
|
|
24
|
+
var _b = selection.range, r1 = _b.startRowIndex, r2 = _b.endRowIndex, c1 = _b.startColumnIndex, c2 = _b.endColumnIndex;
|
|
25
|
+
var count = r2 - r1 + 1;
|
|
26
|
+
var band = shiftBand("up", selection.range);
|
|
27
|
+
var deletedRange = __assign({}, selection.range);
|
|
28
|
+
var sheetName = (_a = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName(sheetId)) !== null && _a !== void 0 ? _a : "";
|
|
17
29
|
enqueueStructureChange === null || enqueueStructureChange === void 0 ? void 0 : enqueueStructureChange({
|
|
18
30
|
kind: "delete-cells-shift-up",
|
|
19
31
|
sheetId: sheetId,
|
|
20
|
-
startRowIndex:
|
|
21
|
-
endRowIndex:
|
|
22
|
-
startColumnIndex:
|
|
23
|
-
endColumnIndex:
|
|
32
|
+
startRowIndex: r1,
|
|
33
|
+
endRowIndex: r2,
|
|
34
|
+
startColumnIndex: c1,
|
|
35
|
+
endColumnIndex: c2,
|
|
24
36
|
rowCount: rowCount,
|
|
25
37
|
});
|
|
26
|
-
// Update merges on sheet rows
|
|
38
|
+
// Update merges on sheet rows — merges wholly inside the deleted block go with it; merges
|
|
39
|
+
// wholly inside the shifted columns below it ride up.
|
|
27
40
|
onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
|
|
28
41
|
var _a = __read(produceWithPatches(prevSheets, function (draft) {
|
|
29
42
|
var sheet = draft.find(function (s) { return s.sheetId === sheetId; });
|
|
30
43
|
if (sheet === null || sheet === void 0 ? void 0 : sheet.merges) {
|
|
31
|
-
|
|
32
|
-
sheet.merges = moveMergedCells(sheet.merges, "row-remove", rowIndex);
|
|
33
|
-
}
|
|
44
|
+
sheet.merges = shiftMergesInBand(sheet.merges, "row", r1, count, false, c1, c2);
|
|
34
45
|
}
|
|
35
46
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
36
47
|
saveHistory({ sheets: { patches: patches, inversePatches: inversePatches } });
|
|
37
48
|
return nextState;
|
|
38
49
|
});
|
|
50
|
+
// Tables: one wholly inside the deleted block is deleted with it (TBL-06); one wholly inside
|
|
51
|
+
// the shifted columns below the block rides up. A partial cover was refused by the hook.
|
|
52
|
+
onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
|
|
53
|
+
var _a = __read(produceWithPatches(prevTables, function (draft) {
|
|
54
|
+
for (var idx = draft.length - 1; idx >= 0; idx--) {
|
|
55
|
+
var table = draft[idx];
|
|
56
|
+
if (table.sheetId !== sheetId)
|
|
57
|
+
continue;
|
|
58
|
+
if (isRangeInsideBlock(deletedRange, table.range)) {
|
|
59
|
+
draft.splice(idx, 1);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (isRangeInsideBand(table.range, band) &&
|
|
63
|
+
table.range.startRowIndex > r2) {
|
|
64
|
+
table.range.startRowIndex -= count;
|
|
65
|
+
table.range.endRowIndex -= count;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
69
|
+
saveHistory({ tables: { patches: patches, inversePatches: inversePatches } });
|
|
70
|
+
return nextState;
|
|
71
|
+
});
|
|
39
72
|
// Update citations - delete if overlapping, shift back if after
|
|
40
73
|
onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
|
|
41
74
|
var _a = __read(produceWithPatches(prevCitations, function (draft) {
|
|
42
|
-
var deleteRowStart = selection.range.startRowIndex;
|
|
43
|
-
var deleteRowEnd = selection.range.endRowIndex;
|
|
44
|
-
var deleteColStart = selection.range.startColumnIndex;
|
|
45
|
-
var deleteColEnd = selection.range.endColumnIndex;
|
|
46
|
-
var shiftAmount = deleteRowEnd - deleteRowStart + 1;
|
|
47
75
|
for (var idx = draft.length - 1; idx >= 0; idx--) {
|
|
48
76
|
var citation = draft[idx];
|
|
49
77
|
if (citation.range.sheetId !== sheetId)
|
|
50
78
|
continue;
|
|
51
|
-
var colsOverlap = !(citation.range.endColumnIndex <
|
|
79
|
+
var colsOverlap = !(citation.range.endColumnIndex < c1 ||
|
|
80
|
+
citation.range.startColumnIndex > c2);
|
|
52
81
|
if (colsOverlap) {
|
|
53
|
-
var rowsOverlap = !(citation.range.endRowIndex <
|
|
82
|
+
var rowsOverlap = !(citation.range.endRowIndex < r1 ||
|
|
83
|
+
citation.range.startRowIndex > r2);
|
|
54
84
|
if (rowsOverlap) {
|
|
55
85
|
draft.splice(idx, 1);
|
|
56
86
|
}
|
|
57
|
-
else if (citation.range.startRowIndex >
|
|
58
|
-
citation.range.startRowIndex -=
|
|
59
|
-
citation.range.endRowIndex -=
|
|
87
|
+
else if (citation.range.startRowIndex > r2) {
|
|
88
|
+
citation.range.startRowIndex -= count;
|
|
89
|
+
citation.range.endRowIndex -= count;
|
|
60
90
|
}
|
|
61
91
|
}
|
|
62
92
|
}
|
|
@@ -68,72 +98,124 @@ export var deleteCellsShiftUp = function (_a) {
|
|
|
68
98
|
onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
|
|
69
99
|
var _a = __read(produceWithPatches(prevSheetData, function (draft) {
|
|
70
100
|
var e_1, _a;
|
|
71
|
-
var _b, _c, _d, _e;
|
|
101
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
72
102
|
var movedKeys = new Set();
|
|
73
103
|
var totalRows = (_c = (_b = draft[sheetId]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
|
|
74
|
-
//
|
|
75
|
-
var
|
|
76
|
-
startRowIndex:
|
|
77
|
-
endRowIndex: totalRows,
|
|
78
|
-
startColumnIndex:
|
|
79
|
-
endColumnIndex:
|
|
104
|
+
// The cells that actually move: everything BELOW the deleted block in its columns.
|
|
105
|
+
var movingRange = {
|
|
106
|
+
startRowIndex: r2 + 1,
|
|
107
|
+
endRowIndex: Math.max(totalRows, r2 + 1),
|
|
108
|
+
startColumnIndex: c1,
|
|
109
|
+
endColumnIndex: c2,
|
|
80
110
|
};
|
|
111
|
+
// Dependents of the deleted block AND of the moving cells, each processed once.
|
|
81
112
|
var dependents = collectUniqueDependentsForRange({
|
|
82
113
|
draft: draft,
|
|
83
114
|
sheetId: sheetId,
|
|
84
|
-
sourceRange:
|
|
115
|
+
sourceRange: {
|
|
116
|
+
startRowIndex: r1,
|
|
117
|
+
endRowIndex: Math.max(totalRows, r2),
|
|
118
|
+
startColumnIndex: c1,
|
|
119
|
+
endColumnIndex: c2,
|
|
120
|
+
},
|
|
85
121
|
getDependents: getDependents,
|
|
86
122
|
});
|
|
123
|
+
// Contract ranges the block partially covers, then re-base: a range wholly inside the
|
|
124
|
+
// block is left to `moveFormulaAtPosition`, which turns it into `#REF!`.
|
|
125
|
+
var sheetCell = new SheetCell();
|
|
126
|
+
var contractAt = function (pos) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
if (pos.sheetId !== sheetId)
|
|
129
|
+
return;
|
|
130
|
+
var currentSheet = createSheetDraft(draft, sheetId, pos.rowIndex);
|
|
131
|
+
var cellData = (_b = (_a = currentSheet[pos.rowIndex]) === null || _a === void 0 ? void 0 : _a.values) === null || _b === void 0 ? void 0 : _b[pos.columnIndex];
|
|
132
|
+
sheetCell.assign(sheetId, { rowIndex: pos.rowIndex, columnIndex: pos.columnIndex }, cellData, { locale: locale, cellXfsRegistry: cellXfsRegistry, sharedStringRegistry: sharedStringRegistry });
|
|
133
|
+
var formulaValue = sheetCell.formula;
|
|
134
|
+
if (!formulaValue)
|
|
135
|
+
return;
|
|
136
|
+
var contracted = contractRangesInFormula(formulaValue, r1, count, "row", sheetName, { bandSpan: { startIndex: c1, endIndex: c2 } });
|
|
137
|
+
if (!contracted || contracted === formulaValue)
|
|
138
|
+
return;
|
|
139
|
+
sheetCell.setFormulaValue(contracted, false);
|
|
140
|
+
currentSheet[pos.rowIndex].values[pos.columnIndex] =
|
|
141
|
+
sheetCell.getCellData();
|
|
142
|
+
};
|
|
143
|
+
var rebaseAt = function (pos) {
|
|
144
|
+
var insideBlock = pos.sheetId === sheetId &&
|
|
145
|
+
pos.rowIndex >= r1 &&
|
|
146
|
+
pos.rowIndex <= r2 &&
|
|
147
|
+
pos.columnIndex >= c1 &&
|
|
148
|
+
pos.columnIndex <= c2;
|
|
149
|
+
if (insideBlock)
|
|
150
|
+
return;
|
|
151
|
+
var moves = pos.sheetId === sheetId &&
|
|
152
|
+
pos.rowIndex > r2 &&
|
|
153
|
+
pos.columnIndex >= c1 &&
|
|
154
|
+
pos.columnIndex <= c2;
|
|
155
|
+
contractAt(pos);
|
|
156
|
+
moveFormulaAtPosition({
|
|
157
|
+
draft: draft,
|
|
158
|
+
position: pos,
|
|
159
|
+
activeSheetName: getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName(pos.sheetId),
|
|
160
|
+
enqueueCalculation: enqueueCalculation,
|
|
161
|
+
enqueueGraphOperation: enqueueGraphOperation,
|
|
162
|
+
recalcCells: recalcCells,
|
|
163
|
+
movedKeys: movedKeys,
|
|
164
|
+
rowDelta: -count,
|
|
165
|
+
columnDelta: 0,
|
|
166
|
+
destinationPosition: {
|
|
167
|
+
rowIndex: moves ? pos.rowIndex - count : pos.rowIndex,
|
|
168
|
+
columnIndex: pos.columnIndex,
|
|
169
|
+
},
|
|
170
|
+
sourceRange: movingRange,
|
|
171
|
+
deletedRange: deletedRange,
|
|
172
|
+
locale: locale,
|
|
173
|
+
rowCount: rowCount,
|
|
174
|
+
columnCount: columnCount,
|
|
175
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
176
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
177
|
+
});
|
|
178
|
+
};
|
|
87
179
|
try {
|
|
88
|
-
for (var
|
|
89
|
-
var pos =
|
|
90
|
-
|
|
91
|
-
draft: draft,
|
|
92
|
-
position: pos,
|
|
93
|
-
enqueueCalculation: enqueueCalculation,
|
|
94
|
-
enqueueGraphOperation: enqueueGraphOperation,
|
|
95
|
-
recalcCells: recalcCells,
|
|
96
|
-
movedKeys: movedKeys,
|
|
97
|
-
rowDelta: -count,
|
|
98
|
-
columnDelta: 0,
|
|
99
|
-
sourceRange: sourceRange,
|
|
100
|
-
locale: locale,
|
|
101
|
-
rowCount: rowCount,
|
|
102
|
-
columnCount: columnCount,
|
|
103
|
-
cellXfsRegistry: cellXfsRegistry,
|
|
104
|
-
sharedStringRegistry: sharedStringRegistry,
|
|
105
|
-
});
|
|
180
|
+
for (var _j = __values(dependents.values()), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
181
|
+
var pos = _k.value;
|
|
182
|
+
rebaseAt(pos);
|
|
106
183
|
}
|
|
107
184
|
}
|
|
108
185
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
109
186
|
finally {
|
|
110
187
|
try {
|
|
111
|
-
if (
|
|
188
|
+
if (_k && !_k.done && (_a = _j.return)) _a.call(_j);
|
|
112
189
|
}
|
|
113
190
|
finally { if (e_1) throw e_1.error; }
|
|
114
191
|
}
|
|
115
|
-
//
|
|
116
|
-
for (var rowIndex =
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
draft: draft,
|
|
121
|
-
position: { sheetId: sheetId, rowIndex: rowIndex, columnIndex: columnIndex },
|
|
122
|
-
enqueueCalculation: enqueueCalculation,
|
|
123
|
-
enqueueGraphOperation: enqueueGraphOperation,
|
|
124
|
-
recalcCells: recalcCells,
|
|
125
|
-
movedKeys: movedKeys,
|
|
126
|
-
rowDelta: -count,
|
|
127
|
-
columnDelta: 0,
|
|
128
|
-
sourceRange: sourceRange,
|
|
192
|
+
// Formulas inside the deleted block leave the graph with their cells.
|
|
193
|
+
for (var rowIndex = r1; rowIndex <= r2; rowIndex++) {
|
|
194
|
+
for (var columnIndex = c1; columnIndex <= c2; columnIndex++) {
|
|
195
|
+
var cellData = (_f = (_e = (_d = draft[sheetId]) === null || _d === void 0 ? void 0 : _d[rowIndex]) === null || _e === void 0 ? void 0 : _e.values) === null || _f === void 0 ? void 0 : _f[columnIndex];
|
|
196
|
+
sheetCell.assign(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, cellData, {
|
|
129
197
|
locale: locale,
|
|
130
|
-
rowCount: rowCount,
|
|
131
|
-
columnCount: columnCount,
|
|
132
|
-
cellXfsRegistry: cellXfsRegistry,
|
|
133
|
-
sharedStringRegistry: sharedStringRegistry,
|
|
134
198
|
});
|
|
199
|
+
if (!sheetCell.isFormula())
|
|
200
|
+
continue;
|
|
201
|
+
var enqueueOperation = sheetCell.ephemeral()
|
|
202
|
+
? enqueueCalculation
|
|
203
|
+
: enqueueGraphOperation;
|
|
204
|
+
enqueueOperation === null || enqueueOperation === void 0 ? void 0 : enqueueOperation({
|
|
205
|
+
type: "remove",
|
|
206
|
+
position: { sheetId: sheetId, rowIndex: rowIndex, columnIndex: columnIndex },
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Re-base the moving formulas themselves, then shift values up
|
|
211
|
+
for (var rowIndex = r1; rowIndex < totalRows; rowIndex++) {
|
|
212
|
+
var currentSheet = createSheetDraft(draft, sheetId, rowIndex);
|
|
213
|
+
for (var columnIndex = c1; columnIndex <= c2; columnIndex++) {
|
|
214
|
+
if (rowIndex > r2) {
|
|
215
|
+
rebaseAt({ sheetId: sheetId, rowIndex: rowIndex, columnIndex: columnIndex });
|
|
216
|
+
}
|
|
135
217
|
currentSheet[rowIndex].values[columnIndex] =
|
|
136
|
-
(
|
|
218
|
+
(_h = (_g = currentSheet[rowIndex + count]) === null || _g === void 0 ? void 0 : _g.values) === null || _h === void 0 ? void 0 : _h[columnIndex];
|
|
137
219
|
}
|
|
138
220
|
}
|
|
139
221
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { UseOnDeleteColumnProps } from "../hooks/use-on-delete-column";
|
|
3
|
-
export declare const deleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
|
|
3
|
+
export declare const deleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, tables, getArrayRange, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
|
|
4
4
|
//# sourceMappingURL=delete-column.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAuBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAscjD,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
2
2
|
import { Direction } from "@rowsncolumns/common-types";
|
|
3
3
|
import { produceWithPatches } from "immer";
|
|
4
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
4
5
|
import { shrinkMergesOnColumnDelete } from "../api/merges";
|
|
6
|
+
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
5
7
|
import { shiftPivotsOnDelete } from "../api/pivot-range";
|
|
6
|
-
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
7
8
|
import { updateSheetRangeOnDelete } from "../api/range";
|
|
9
|
+
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
8
10
|
import { moveFilterView } from "../api/selection";
|
|
9
11
|
import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
|
|
12
|
+
import { breakStructuredRefsForRemovedTableParts, collectRemovedTableParts, removeSpillsOfDeletedAnchors, } from "../api/structural-table-refs";
|
|
10
13
|
export var deleteColumn = function (_a) {
|
|
11
|
-
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables;
|
|
14
|
+
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, tables = _a.tables, getArrayRange = _a.getArrayRange, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
|
|
12
15
|
return function (sheetId, columnIndexes) {
|
|
13
16
|
if (!columnIndexes.length)
|
|
14
17
|
return;
|
|
@@ -128,7 +131,7 @@ export var deleteColumn = function (_a) {
|
|
|
128
131
|
// Data validations
|
|
129
132
|
onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
|
|
130
133
|
var _a = __read(produceWithPatches(prevValidations, function (draft) {
|
|
131
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId);
|
|
134
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId, { getSheetName: getSheetName });
|
|
132
135
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
133
136
|
saveHistory({ dataValidations: { patches: patches, inversePatches: inversePatches } });
|
|
134
137
|
return nextState;
|
|
@@ -136,11 +139,20 @@ export var deleteColumn = function (_a) {
|
|
|
136
139
|
// Conditional formats
|
|
137
140
|
onChangeConditionalFormats === null || onChangeConditionalFormats === void 0 ? void 0 : onChangeConditionalFormats(function (prevConditionalFormats) {
|
|
138
141
|
var _a = __read(produceWithPatches(prevConditionalFormats, function (draft) {
|
|
139
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId);
|
|
142
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId, { getSheetName: getSheetName });
|
|
140
143
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
141
144
|
saveHistory({ conditionalFormats: { patches: patches, inversePatches: inversePatches } });
|
|
142
145
|
return nextState;
|
|
143
146
|
});
|
|
147
|
+
// Defined names: shift back / shrink; a name whose whole range is
|
|
148
|
+
// deleted is kept as `#REF!` so its users evaluate `#REF!`, like Excel.
|
|
149
|
+
onChangeNamedRanges === null || onChangeNamedRanges === void 0 ? void 0 : onChangeNamedRanges(function (prevNamedRanges) {
|
|
150
|
+
var _a = __read(produceWithPatches(prevNamedRanges, function (draft) {
|
|
151
|
+
updateNamedRangesOnStructuralChange(draft, "column", "delete", minColumnIndex, count, sheetId);
|
|
152
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
153
|
+
saveHistory({ namedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
154
|
+
return nextState;
|
|
155
|
+
});
|
|
144
156
|
// Shift pivot tables.
|
|
145
157
|
onChangePivotTables === null || onChangePivotTables === void 0 ? void 0 : onChangePivotTables(function (prevPivots) {
|
|
146
158
|
var _a = __read(produceWithPatches(prevPivots, function (draft) {
|
|
@@ -171,11 +183,36 @@ export var deleteColumn = function (_a) {
|
|
|
171
183
|
saveHistory({ citations: { patches: patches, inversePatches: inversePatches } });
|
|
172
184
|
return nextState;
|
|
173
185
|
});
|
|
186
|
+
// Anchored objects (Excel ANC rules): floating charts / embeds move with
|
|
187
|
+
// their anchor cell, chart series ranges and AllowEditRange rectangles
|
|
188
|
+
// shift like references. Frozen panes are a positional viewport split
|
|
189
|
+
// and are deliberately NOT touched here.
|
|
190
|
+
onChangeEmbeds === null || onChangeEmbeds === void 0 ? void 0 : onChangeEmbeds(function (prevEmbeds) {
|
|
191
|
+
var _a = __read(produceWithPatches(prevEmbeds, function (draft) {
|
|
192
|
+
shiftEmbedsOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
193
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
194
|
+
saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
|
|
195
|
+
return nextState;
|
|
196
|
+
});
|
|
197
|
+
onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
|
|
198
|
+
var _a = __read(produceWithPatches(prevCharts, function (draft) {
|
|
199
|
+
shiftChartsOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
200
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
201
|
+
saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
|
|
202
|
+
return nextState;
|
|
203
|
+
});
|
|
204
|
+
onChangeProtectedRanges === null || onChangeProtectedRanges === void 0 ? void 0 : onChangeProtectedRanges(function (prevProtectedRanges) {
|
|
205
|
+
var _a = __read(produceWithPatches(prevProtectedRanges, function (draft) {
|
|
206
|
+
shiftProtectedRangesOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
207
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
208
|
+
saveHistory({ protectedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
209
|
+
return nextState;
|
|
210
|
+
});
|
|
174
211
|
// Sheet metadata
|
|
175
212
|
onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
|
|
176
213
|
var _a = __read(produceWithPatches(prevSheets, function (draft) {
|
|
177
|
-
var e_3, _a, e_4, _b
|
|
178
|
-
var
|
|
214
|
+
var e_3, _a, e_4, _b;
|
|
215
|
+
var _c;
|
|
179
216
|
var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
|
|
180
217
|
if (!sheet)
|
|
181
218
|
return;
|
|
@@ -183,7 +220,7 @@ export var deleteColumn = function (_a) {
|
|
|
183
220
|
sheet.columnMetadata.splice(minColumnIndex, count);
|
|
184
221
|
}
|
|
185
222
|
if (sheet.basicFilter) {
|
|
186
|
-
var
|
|
223
|
+
var _d = sheet.basicFilter.range, startColumnIndex = _d.startColumnIndex, endColumnIndex = _d.endColumnIndex;
|
|
187
224
|
if (minColumnIndex < startColumnIndex) {
|
|
188
225
|
moveFilterView(sheet.basicFilter, count, Direction.Left);
|
|
189
226
|
}
|
|
@@ -191,8 +228,8 @@ export var deleteColumn = function (_a) {
|
|
|
191
228
|
minColumnIndex <= endColumnIndex) {
|
|
192
229
|
if (sheet.basicFilter.filterSpecs) {
|
|
193
230
|
try {
|
|
194
|
-
for (var
|
|
195
|
-
var spec =
|
|
231
|
+
for (var _e = __values(sheet.basicFilter.filterSpecs), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
232
|
+
var spec = _f.value;
|
|
196
233
|
if (spec.columnIndex >= minColumnIndex) {
|
|
197
234
|
spec.columnIndex -= count;
|
|
198
235
|
}
|
|
@@ -201,15 +238,15 @@ export var deleteColumn = function (_a) {
|
|
|
201
238
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
202
239
|
finally {
|
|
203
240
|
try {
|
|
204
|
-
if (
|
|
241
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
205
242
|
}
|
|
206
243
|
finally { if (e_3) throw e_3.error; }
|
|
207
244
|
}
|
|
208
245
|
}
|
|
209
246
|
if (sheet.basicFilter.sortSpecs) {
|
|
210
247
|
try {
|
|
211
|
-
for (var
|
|
212
|
-
var spec =
|
|
248
|
+
for (var _g = __values(sheet.basicFilter.sortSpecs), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
249
|
+
var spec = _h.value;
|
|
213
250
|
if (spec.dimensionIndex >= minColumnIndex) {
|
|
214
251
|
spec.dimensionIndex -= count;
|
|
215
252
|
}
|
|
@@ -218,7 +255,7 @@ export var deleteColumn = function (_a) {
|
|
|
218
255
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
219
256
|
finally {
|
|
220
257
|
try {
|
|
221
|
-
if (
|
|
258
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
222
259
|
}
|
|
223
260
|
finally { if (e_4) throw e_4.error; }
|
|
224
261
|
}
|
|
@@ -227,34 +264,56 @@ export var deleteColumn = function (_a) {
|
|
|
227
264
|
sheet.basicFilter.range.endColumnIndex -= delta;
|
|
228
265
|
}
|
|
229
266
|
}
|
|
230
|
-
if (sheet.frozenColumnCount) {
|
|
231
|
-
try {
|
|
232
|
-
for (var sortedColumnIndexes_1 = __values(sortedColumnIndexes), sortedColumnIndexes_1_1 = sortedColumnIndexes_1.next(); !sortedColumnIndexes_1_1.done; sortedColumnIndexes_1_1 = sortedColumnIndexes_1.next()) {
|
|
233
|
-
var columnIndex = sortedColumnIndexes_1_1.value;
|
|
234
|
-
if (columnIndex <= sheet.frozenColumnCount) {
|
|
235
|
-
sheet.frozenColumnCount--;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
240
|
-
finally {
|
|
241
|
-
try {
|
|
242
|
-
if (sortedColumnIndexes_1_1 && !sortedColumnIndexes_1_1.done && (_c = sortedColumnIndexes_1.return)) _c.call(sortedColumnIndexes_1);
|
|
243
|
-
}
|
|
244
|
-
finally { if (e_5) throw e_5.error; }
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
267
|
if (sheet.merges) {
|
|
248
268
|
sheet.merges = shrinkMergesOnColumnDelete(sheet.merges, minColumnIndex, count);
|
|
249
269
|
}
|
|
250
|
-
|
|
270
|
+
// `_xlnm.Print_Area` / `_xlnm.Print_Titles` follow the defined-name rule.
|
|
271
|
+
if (sheet.printSettings) {
|
|
272
|
+
updatePrintSettingsOnStructuralChange(sheet.printSettings, "column", "delete", minColumnIndex, count);
|
|
273
|
+
}
|
|
274
|
+
sheet.columnCount = Math.max(1, ((_c = sheet.columnCount) !== null && _c !== void 0 ? _c : columnCount) - count);
|
|
275
|
+
// Frozen panes are positional: the split stays where it is, only
|
|
276
|
+
// clamped so the freeze never exceeds the shrunk sheet.
|
|
277
|
+
if (sheet.frozenColumnCount &&
|
|
278
|
+
sheet.frozenColumnCount > sheet.columnCount) {
|
|
279
|
+
sheet.frozenColumnCount = sheet.columnCount;
|
|
280
|
+
}
|
|
251
281
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
252
282
|
saveHistory({ sheets: { patches: patches, inversePatches: inversePatches } });
|
|
253
283
|
return nextState;
|
|
254
284
|
});
|
|
285
|
+
// Table columns spliced out above (and tables dropped whole): their
|
|
286
|
+
// structured refs break to `#REF!`, computed from the PRE-edit definitions.
|
|
287
|
+
var removedTableParts = collectRemovedTableParts(tables, sheetId, "column", minColumnIndex, maxColumnIndex);
|
|
255
288
|
// Sheet data: three-pass formula update, then per-row column splice.
|
|
256
289
|
onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
|
|
257
290
|
var _a = __read(produceWithPatches(prevSheetData, function (draft) {
|
|
291
|
+
removeSpillsOfDeletedAnchors({
|
|
292
|
+
draft: draft,
|
|
293
|
+
sheetId: sheetId,
|
|
294
|
+
axis: "column",
|
|
295
|
+
minIndex: minColumnIndex,
|
|
296
|
+
maxIndex: maxColumnIndex,
|
|
297
|
+
getArrayRange: getArrayRange,
|
|
298
|
+
locale: locale,
|
|
299
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
300
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
301
|
+
});
|
|
302
|
+
breakStructuredRefsForRemovedTableParts({
|
|
303
|
+
draft: draft,
|
|
304
|
+
sheetId: sheetId,
|
|
305
|
+
axis: "column",
|
|
306
|
+
referenceIndex: minColumnIndex,
|
|
307
|
+
count: count,
|
|
308
|
+
removed: removedTableParts,
|
|
309
|
+
getGraphNodes: getGraphNodes,
|
|
310
|
+
enqueueCalculation: enqueueCalculation,
|
|
311
|
+
enqueueGraphOperation: enqueueGraphOperation,
|
|
312
|
+
recalcCells: recalcCells,
|
|
313
|
+
locale: locale,
|
|
314
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
315
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
316
|
+
});
|
|
258
317
|
updateFormulasForStructuralChange({
|
|
259
318
|
draft: draft,
|
|
260
319
|
axis: "column",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import { type UseOnDeleteRowProps } from "../hooks/use-on-delete-row";
|
|
3
|
-
export declare const deleteRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, }: UseOnDeleteRowProps<T, S>) => (sheetId: number, rowIndexes: number[]) => void;
|
|
3
|
+
export declare const deleteRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, tables, getArrayRange, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnDeleteRowProps<T, S>) => (sheetId: number, rowIndexes: number[]) => void;
|
|
4
4
|
//# sourceMappingURL=delete-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-row.d.ts","sourceRoot":"","sources":["../../../interface/delete-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-row.d.ts","sourceRoot":"","sources":["../../../interface/delete-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAuBjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SAmZ9C,CAAC"}
|