@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,39 +1,45 @@
|
|
|
1
|
-
import { createArrayRange
|
|
1
|
+
import { createArrayRange } from "@rowsncolumns/utils";
|
|
2
2
|
import { produceWithPatches } from "immer";
|
|
3
|
-
import { processSideEffectDependentCells } from "../api/dependency";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
3
|
+
import { collectUniqueDependentsForRange, processSideEffectDependentCells, } from "../api/dependency";
|
|
4
|
+
import { createSheetCellIdentifier, expandRangesInFormula } from "../api/formula";
|
|
5
|
+
import { cloneCellWithFormatting, createSheetDraft } from "../api/immer-utils";
|
|
6
|
+
import { shiftMergesInBand } from "../api/merges";
|
|
7
|
+
import { isRangeInsideBand, resolveShiftSelection, shiftBand, } from "../api/structural-guards";
|
|
8
|
+
import { SheetCell } from "../sheet-cell";
|
|
9
|
+
/**
|
|
10
|
+
* Insert cells ▸ Shift cells right (SHF-02, FMT-04) — the horizontal twin of
|
|
11
|
+
* `insertCellsShiftDown`: only the selection's rows move, every cell at or right of the selection's
|
|
12
|
+
* first column slides right by the selection's width. References follow shifted cells; a range
|
|
13
|
+
* entirely inside the shifted rows that straddles the insertion column widens (SHF-08 analog);
|
|
14
|
+
* the vacated cells take the formatting of the cell to the LEFT of the insertion (FMT-04). Refusals
|
|
15
|
+
* (torn merge/table/array, a non-blank cell pushed past `columnCount` — SHF-10) are decided by the
|
|
16
|
+
* hook before this runs.
|
|
17
|
+
*/
|
|
18
|
+
export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getSheetName, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, }) => {
|
|
7
19
|
return (sheetId, activeCell, selections) => {
|
|
8
20
|
const saveHistory = createHistory();
|
|
9
21
|
// We need to track this for history. Precedent cells
|
|
10
22
|
const recalcCells = new Map();
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const selection = finalSelections[finalSelections.length - 1];
|
|
17
|
-
const count = selection.range.endRowIndex - selection.range.startRowIndex + 1;
|
|
23
|
+
const selection = resolveShiftSelection(activeCell, selections);
|
|
24
|
+
const { startRowIndex: r1, endRowIndex: r2, startColumnIndex: c1, endColumnIndex: c2, } = selection.range;
|
|
25
|
+
const count = c2 - c1 + 1;
|
|
26
|
+
const band = shiftBand("right", selection.range);
|
|
27
|
+
const sheetName = getSheetName?.(sheetId) ?? "";
|
|
18
28
|
enqueueStructureChange?.({
|
|
19
29
|
kind: "insert-cells-shift-right",
|
|
20
30
|
sheetId,
|
|
21
|
-
startRowIndex:
|
|
22
|
-
endRowIndex:
|
|
23
|
-
startColumnIndex:
|
|
24
|
-
endColumnIndex:
|
|
31
|
+
startRowIndex: r1,
|
|
32
|
+
endRowIndex: r2,
|
|
33
|
+
startColumnIndex: c1,
|
|
34
|
+
endColumnIndex: c2,
|
|
25
35
|
columnCount,
|
|
26
36
|
});
|
|
27
|
-
// Update sheets
|
|
37
|
+
// Update sheets — merges wholly inside the shifted rows ride right with their cells.
|
|
28
38
|
onChangeSheets?.((prevSheets) => {
|
|
29
39
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheets, (draft) => {
|
|
30
40
|
const sheet = draft.find((sheet) => sheet.sheetId === sheetId);
|
|
31
|
-
if (sheet) {
|
|
32
|
-
|
|
33
|
-
if (sheet.merges) {
|
|
34
|
-
sheet.merges = moveMergedCells(sheet.merges, "column-insert", columnIndex);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
41
|
+
if (sheet?.merges) {
|
|
42
|
+
sheet.merges = shiftMergesInBand(sheet.merges, "column", c1, count, true, r1, r2);
|
|
37
43
|
}
|
|
38
44
|
});
|
|
39
45
|
// Save history
|
|
@@ -42,30 +48,37 @@ export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRe
|
|
|
42
48
|
});
|
|
43
49
|
return nextState;
|
|
44
50
|
});
|
|
51
|
+
// Tables whose rows the band covers entirely move with it (a partial cover was refused).
|
|
52
|
+
onChangeTables?.((prevTables) => {
|
|
53
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevTables, (draft) => {
|
|
54
|
+
for (const table of draft) {
|
|
55
|
+
if (table.sheetId !== sheetId ||
|
|
56
|
+
!isRangeInsideBand(table.range, band)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
table.range.startColumnIndex += count;
|
|
60
|
+
table.range.endColumnIndex += count;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
saveHistory({ tables: { patches, inversePatches } });
|
|
64
|
+
return nextState;
|
|
65
|
+
});
|
|
45
66
|
// Update citations - shift if in affected rows and after insertion column
|
|
46
67
|
onChangeCitations?.((prevCitations) => {
|
|
47
68
|
const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
|
|
48
|
-
const affectedRowStart = selection.range.startRowIndex;
|
|
49
|
-
const affectedRowEnd = selection.range.endRowIndex;
|
|
50
|
-
const insertColumnStart = selection.range.startColumnIndex;
|
|
51
|
-
const shiftAmount = selection.range.endColumnIndex -
|
|
52
|
-
selection.range.startColumnIndex +
|
|
53
|
-
1;
|
|
54
69
|
for (const citation of draft) {
|
|
55
70
|
// Skip citations on other sheets
|
|
56
71
|
if (citation.range.sheetId !== sheetId) {
|
|
57
72
|
continue;
|
|
58
73
|
}
|
|
59
74
|
// Check if citation overlaps with affected rows
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
const rowsOverlap = !(citationRowEnd < affectedRowStart ||
|
|
63
|
-
citationRowStart > affectedRowEnd);
|
|
75
|
+
const rowsOverlap = !(citation.range.endRowIndex < r1 ||
|
|
76
|
+
citation.range.startRowIndex > r2);
|
|
64
77
|
if (rowsOverlap) {
|
|
65
78
|
// If citation starts at or after the insertion column, shift it right
|
|
66
|
-
if (citation.range.startColumnIndex >=
|
|
67
|
-
citation.range.startColumnIndex +=
|
|
68
|
-
citation.range.endColumnIndex +=
|
|
79
|
+
if (citation.range.startColumnIndex >= c1) {
|
|
80
|
+
citation.range.startColumnIndex += count;
|
|
81
|
+
citation.range.endColumnIndex += count;
|
|
69
82
|
}
|
|
70
83
|
}
|
|
71
84
|
}
|
|
@@ -79,13 +92,31 @@ export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRe
|
|
|
79
92
|
onChangeSheetData?.((prevSheetData) => {
|
|
80
93
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheetData, (draft) => {
|
|
81
94
|
const movedKeys = new Set();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
95
|
+
let totalColumns = Math.max(columnCount, c2 + 1);
|
|
96
|
+
for (let rowIndex = r1; rowIndex <= r2; rowIndex++) {
|
|
97
|
+
totalColumns = Math.max(totalColumns, draft[sheetId]?.[rowIndex]?.values?.length ?? 0);
|
|
98
|
+
}
|
|
99
|
+
// Everything at or right of the insertion column in the band's rows moves by `count`.
|
|
100
|
+
const sourceRange = {
|
|
101
|
+
startRowIndex: r1,
|
|
102
|
+
endRowIndex: r2,
|
|
103
|
+
startColumnIndex: c1,
|
|
104
|
+
endColumnIndex: totalColumns + count,
|
|
105
|
+
};
|
|
106
|
+
// Formulas that read a moving cell — captured before the graph goes stale.
|
|
107
|
+
const dependents = collectUniqueDependentsForRange({
|
|
108
|
+
draft,
|
|
109
|
+
sheetId,
|
|
110
|
+
sourceRange: {
|
|
111
|
+
startRowIndex: r1,
|
|
112
|
+
endRowIndex: r2,
|
|
113
|
+
startColumnIndex: c1,
|
|
114
|
+
endColumnIndex: totalColumns,
|
|
115
|
+
},
|
|
116
|
+
getDependents,
|
|
117
|
+
});
|
|
118
|
+
for (let rowIndex = r1; rowIndex <= r2; rowIndex++) {
|
|
119
|
+
for (let columnIndex = totalColumns; columnIndex >= c1; columnIndex--) {
|
|
89
120
|
// Process dependents
|
|
90
121
|
processSideEffectDependentCells({
|
|
91
122
|
draft,
|
|
@@ -96,6 +127,7 @@ export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRe
|
|
|
96
127
|
enqueueGraphOperation,
|
|
97
128
|
enqueueCalculation,
|
|
98
129
|
getDependents,
|
|
130
|
+
getSheetName,
|
|
99
131
|
recalcCells,
|
|
100
132
|
rowDelta: 0,
|
|
101
133
|
sourceRange,
|
|
@@ -108,14 +140,51 @@ export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRe
|
|
|
108
140
|
});
|
|
109
141
|
}
|
|
110
142
|
}
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
143
|
+
// SHF-08 analog: a range living entirely inside the band's rows that straddles the
|
|
144
|
+
// insertion column widens by the inserted width. Runs on the pre-shift positions; the
|
|
145
|
+
// splice below carries in-band dependents right.
|
|
146
|
+
const sheetCell = new SheetCell();
|
|
147
|
+
for (const pos of dependents.values()) {
|
|
148
|
+
if (pos.sheetId !== sheetId)
|
|
149
|
+
continue;
|
|
150
|
+
const currentSheet = createSheetDraft(draft, sheetId, pos.rowIndex);
|
|
151
|
+
const cellData = currentSheet[pos.rowIndex]?.values?.[pos.columnIndex];
|
|
152
|
+
sheetCell.assign(sheetId, { rowIndex: pos.rowIndex, columnIndex: pos.columnIndex }, cellData, { locale, cellXfsRegistry, sharedStringRegistry });
|
|
153
|
+
const formulaValue = sheetCell.formula;
|
|
154
|
+
if (!formulaValue)
|
|
155
|
+
continue;
|
|
156
|
+
const expanded = expandRangesInFormula(formulaValue, c1, count, "column", sheetName, { bandSpan: { startIndex: r1, endIndex: r2 } });
|
|
157
|
+
if (!expanded || expanded === formulaValue)
|
|
158
|
+
continue;
|
|
159
|
+
sheetCell.setFormulaValue(expanded, false);
|
|
160
|
+
currentSheet[pos.rowIndex].values[pos.columnIndex] =
|
|
161
|
+
sheetCell.getCellData();
|
|
162
|
+
const movesWithBand = pos.columnIndex >= c1 && pos.rowIndex >= r1 && pos.rowIndex <= r2;
|
|
163
|
+
const finalPosition = {
|
|
164
|
+
sheetId,
|
|
165
|
+
rowIndex: pos.rowIndex,
|
|
166
|
+
columnIndex: movesWithBand
|
|
167
|
+
? pos.columnIndex + count
|
|
168
|
+
: pos.columnIndex,
|
|
169
|
+
};
|
|
170
|
+
const enqueueOperation = sheetCell.ephemeral()
|
|
171
|
+
? enqueueCalculation
|
|
172
|
+
: enqueueGraphOperation;
|
|
173
|
+
enqueueOperation?.({ type: "add", position: finalPosition });
|
|
174
|
+
enqueueCalculation?.({
|
|
175
|
+
type: "dirty",
|
|
176
|
+
position: finalPosition,
|
|
177
|
+
force: true,
|
|
178
|
+
});
|
|
179
|
+
recalcCells.set(createSheetCellIdentifier(sheetId, finalPosition.rowIndex, finalPosition.columnIndex), finalPosition);
|
|
180
|
+
}
|
|
181
|
+
// Splice the inserted cells in. FMT-04: they take the formatting of the cell directly
|
|
182
|
+
// LEFT of the insertion; at column 1 there is none, so they keep the displaced cell's.
|
|
183
|
+
for (let rowIndex = r1; rowIndex <= r2; rowIndex++) {
|
|
184
|
+
const values = draft[sheetId]?.[rowIndex]?.values;
|
|
185
|
+
if (!values)
|
|
186
|
+
continue;
|
|
187
|
+
values.splice(c1, 0, ...createArrayRange(c1, c2).map((columnIndex) => cloneCellWithFormatting(c1 > 1 ? values[c1 - 1] : values[columnIndex])));
|
|
119
188
|
}
|
|
120
189
|
});
|
|
121
190
|
// Save history
|
|
@@ -2,6 +2,6 @@ import { Direction } from "@rowsncolumns/common-types";
|
|
|
2
2
|
import type { CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { UseOnInsertColumnProps } from "../hooks/use-on-insert-column";
|
|
4
4
|
import type { UseOnTableProps } from "../hooks/use-on-table";
|
|
5
|
-
export declare const insertColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, tables, cellXfsRegistry, sharedStringRegistry, getSheetName, getDependents, getGraphNodes, getGraphNodesInSheet, getActiveCell, getSelections, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, generatedNames, }: UseOnInsertColumnProps<T, S>) => (sheetId: number, referenceColumnIndex: number, numColumns?: number) => void;
|
|
5
|
+
export declare const insertColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxColumnCount, tables, cellXfsRegistry, sharedStringRegistry, getSheetName, getDependents, getGraphNodes, getGraphNodesInSheet, getActiveCell, getSelections, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, generatedNames, }: UseOnInsertColumnProps<T, S>) => (sheetId: number, referenceColumnIndex: number, numColumns?: number) => void;
|
|
6
6
|
export declare const insertTableColumn: <T extends CellData, S extends Sheet>({ tables, columnCount, rowCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, createHistory, onChangeTables, onChangeSheets, onChangeSheetData, enqueueCalculation, enqueueStructureChange, enqueueGraphOperation, getDependents, generatedNames, }: Pick<UseOnTableProps<T, S>, "tables" | "columnCount" | "rowCount" | "locale" | "cellXfsRegistry" | "sharedStringRegistry" | "createHistory" | "onChangeTables" | "onChangeSheets" | "onChangeSheetData" | "enqueueCalculation" | "enqueueStructureChange" | "enqueueGraphOperation" | "getDependents" | "getSheetName" | "generatedNames">) => (tableView: TableView, dimensionIndex: number, direction: Direction.Left | Direction.Right) => void;
|
|
7
7
|
//# sourceMappingURL=insert-column.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-column.d.ts","sourceRoot":"","sources":["../../../interface/insert-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-column.d.ts","sourceRoot":"","sources":["../../../interface/insert-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA6B5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,mgBA8B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,sBAAsB,MAAM,EAAE,mBAAc,SAmZtE,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qQAiBpE,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,gBAAgB,CACnB,MAEG,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,WAAW,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,SA2V9C,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Direction } from "@rowsncolumns/common-types";
|
|
2
2
|
import { produceWithPatches } from "immer";
|
|
3
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
3
4
|
import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
|
|
4
5
|
import { createSheetCellIdentifier, expandRangesInFormula, } from "../api/formula";
|
|
5
6
|
import { cloneCellWithFormatting, createSheetDraft } from "../api/immer-utils";
|
|
6
7
|
import { expandMergesOnColumnInsert, moveMergedCells } from "../api/merges";
|
|
8
|
+
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
7
9
|
import { shiftPivotsOnInsert } from "../api/pivot-range";
|
|
8
10
|
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
9
11
|
import { moveFilterView } from "../api/selection";
|
|
@@ -11,7 +13,7 @@ import { updateFormulasForStructuralChange } from "../api/structural-formula-upd
|
|
|
11
13
|
import { getGeneratedTableColumnName } from "../generated-names";
|
|
12
14
|
import { getNextTableColumnName } from "../helpers";
|
|
13
15
|
import { SheetCell } from "../sheet-cell";
|
|
14
|
-
export const insertColumn = ({ rowCount, columnCount, locale, tables, cellXfsRegistry, sharedStringRegistry, getSheetName, getDependents, getGraphNodes, getGraphNodesInSheet, getActiveCell, getSelections, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, generatedNames, }) => {
|
|
16
|
+
export const insertColumn = ({ rowCount, columnCount, locale, maxColumnCount, tables, cellXfsRegistry, sharedStringRegistry, getSheetName, getDependents, getGraphNodes, getGraphNodesInSheet, getActiveCell, getSelections, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, generatedNames, }) => {
|
|
15
17
|
return (sheetId, referenceColumnIndex, numColumns = 1) => {
|
|
16
18
|
if (numColumns <= 0)
|
|
17
19
|
return;
|
|
@@ -68,7 +70,7 @@ export const insertColumn = ({ rowCount, columnCount, locale, tables, cellXfsReg
|
|
|
68
70
|
// Data validations
|
|
69
71
|
onChangeDataValidations?.((prevValidations) => {
|
|
70
72
|
const [nextState, patches, inversePatches] = produceWithPatches(prevValidations, (draft) => {
|
|
71
|
-
updateRangedRulesOnStructuralChange(draft, "insert", "column", referenceColumnIndex, numColumns, sheetId);
|
|
73
|
+
updateRangedRulesOnStructuralChange(draft, "insert", "column", referenceColumnIndex, numColumns, sheetId, { getSheetName });
|
|
72
74
|
});
|
|
73
75
|
saveHistory({ dataValidations: { patches, inversePatches } });
|
|
74
76
|
return nextState;
|
|
@@ -76,11 +78,21 @@ export const insertColumn = ({ rowCount, columnCount, locale, tables, cellXfsReg
|
|
|
76
78
|
// Conditional formats
|
|
77
79
|
onChangeConditionalFormats?.((prevConditionalFormats) => {
|
|
78
80
|
const [nextState, patches, inversePatches] = produceWithPatches(prevConditionalFormats, (draft) => {
|
|
79
|
-
updateRangedRulesOnStructuralChange(draft, "insert", "column", referenceColumnIndex, numColumns, sheetId);
|
|
81
|
+
updateRangedRulesOnStructuralChange(draft, "insert", "column", referenceColumnIndex, numColumns, sheetId, { getSheetName });
|
|
80
82
|
});
|
|
81
83
|
saveHistory({ conditionalFormats: { patches, inversePatches } });
|
|
82
84
|
return nextState;
|
|
83
85
|
});
|
|
86
|
+
// Defined names: shift when the insert is before the name, grow when it
|
|
87
|
+
// lands strictly inside (a whole-column name `B1:B<rowCount>` shifts to
|
|
88
|
+
// column C for an insert at A), decided by the sheet the range lives on.
|
|
89
|
+
onChangeNamedRanges?.((prevNamedRanges) => {
|
|
90
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevNamedRanges, (draft) => {
|
|
91
|
+
updateNamedRangesOnStructuralChange(draft, "column", "insert", referenceColumnIndex, numColumns, sheetId);
|
|
92
|
+
});
|
|
93
|
+
saveHistory({ namedRanges: { patches, inversePatches } });
|
|
94
|
+
return nextState;
|
|
95
|
+
});
|
|
84
96
|
// Shift pivot tables.
|
|
85
97
|
onChangePivotTables?.((prevPivots) => {
|
|
86
98
|
const [nextState, patches, inversePatches] = produceWithPatches(prevPivots, (draft) => {
|
|
@@ -104,6 +116,31 @@ export const insertColumn = ({ rowCount, columnCount, locale, tables, cellXfsReg
|
|
|
104
116
|
saveHistory({ citations: { patches, inversePatches } });
|
|
105
117
|
return nextState;
|
|
106
118
|
});
|
|
119
|
+
// Anchored objects (Excel ANC rules): floating charts / embeds move with
|
|
120
|
+
// their anchor cell, chart series ranges and AllowEditRange rectangles
|
|
121
|
+
// shift like references. Frozen panes are a positional viewport split
|
|
122
|
+
// and are deliberately NOT touched here.
|
|
123
|
+
onChangeEmbeds?.((prevEmbeds) => {
|
|
124
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevEmbeds, (draft) => {
|
|
125
|
+
shiftEmbedsOnStructuralChange(draft, sheetId, "column", "insert", referenceColumnIndex, numColumns);
|
|
126
|
+
});
|
|
127
|
+
saveHistory({ embeds: { patches, inversePatches } });
|
|
128
|
+
return nextState;
|
|
129
|
+
});
|
|
130
|
+
onChangeCharts?.((prevCharts) => {
|
|
131
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevCharts, (draft) => {
|
|
132
|
+
shiftChartsOnStructuralChange(draft, sheetId, "column", "insert", referenceColumnIndex, numColumns);
|
|
133
|
+
});
|
|
134
|
+
saveHistory({ charts: { patches, inversePatches } });
|
|
135
|
+
return nextState;
|
|
136
|
+
});
|
|
137
|
+
onChangeProtectedRanges?.((prevProtectedRanges) => {
|
|
138
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevProtectedRanges, (draft) => {
|
|
139
|
+
shiftProtectedRangesOnStructuralChange(draft, sheetId, "column", "insert", referenceColumnIndex, numColumns);
|
|
140
|
+
});
|
|
141
|
+
saveHistory({ protectedRanges: { patches, inversePatches } });
|
|
142
|
+
return nextState;
|
|
143
|
+
});
|
|
107
144
|
// Sheet metadata
|
|
108
145
|
onChangeSheets?.((prevSheets) => {
|
|
109
146
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheets, (draft) => {
|
|
@@ -137,14 +174,15 @@ export const insertColumn = ({ rowCount, columnCount, locale, tables, cellXfsReg
|
|
|
137
174
|
sheet.basicFilter.range.endColumnIndex += numColumns;
|
|
138
175
|
}
|
|
139
176
|
}
|
|
140
|
-
if (sheet.frozenColumnCount &&
|
|
141
|
-
referenceColumnIndex <= sheet.frozenColumnCount) {
|
|
142
|
-
sheet.frozenColumnCount += numColumns;
|
|
143
|
-
}
|
|
144
177
|
if (sheet.merges) {
|
|
145
178
|
sheet.merges = expandMergesOnColumnInsert(sheet.merges, referenceColumnIndex, numColumns);
|
|
146
179
|
}
|
|
147
|
-
|
|
180
|
+
// `_xlnm.Print_Area` / `_xlnm.Print_Titles` follow the defined-name rule.
|
|
181
|
+
if (sheet.printSettings) {
|
|
182
|
+
updatePrintSettingsOnStructuralChange(sheet.printSettings, "column", "insert", referenceColumnIndex, numColumns);
|
|
183
|
+
}
|
|
184
|
+
// The grid never grows past the hard cap: at the cap the blank trailing columns fall off.
|
|
185
|
+
sheet.columnCount = Math.min((sheet.columnCount ?? columnCount) + numColumns, maxColumnCount ?? Number.POSITIVE_INFINITY);
|
|
148
186
|
});
|
|
149
187
|
saveHistory({ sheets: { patches, inversePatches } });
|
|
150
188
|
return nextState;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { UseOnInsertRowProps } from "../hooks/use-on-insert-row";
|
|
3
|
-
export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
3
|
+
export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
4
4
|
//# sourceMappingURL=insert-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAkBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,weA4B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA4ShE,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Direction } from "@rowsncolumns/common-types";
|
|
2
2
|
import { produceWithPatches } from "immer";
|
|
3
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
3
4
|
import { cloneRowWithFormatting, createSheetDraft } from "../api/immer-utils";
|
|
4
5
|
import { expandMergesOnRowInsert } from "../api/merges";
|
|
6
|
+
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
5
7
|
import { shiftPivotsOnInsert } from "../api/pivot-range";
|
|
6
8
|
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
7
9
|
import { moveFilterView } from "../api/selection";
|
|
8
10
|
import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
|
|
9
|
-
export const insertRow = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, }) => {
|
|
11
|
+
export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }) => {
|
|
10
12
|
return (sheetId, referenceRowIndex, numRows = 1) => {
|
|
11
13
|
if (numRows <= 0)
|
|
12
14
|
return;
|
|
@@ -42,7 +44,7 @@ export const insertRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
|
|
|
42
44
|
// Update data validations
|
|
43
45
|
onChangeDataValidations?.((prevValidations) => {
|
|
44
46
|
const [nextState, patches, inversePatches] = produceWithPatches(prevValidations, (draft) => {
|
|
45
|
-
updateRangedRulesOnStructuralChange(draft, "insert", "row", referenceRowIndex, numRows, sheetId);
|
|
47
|
+
updateRangedRulesOnStructuralChange(draft, "insert", "row", referenceRowIndex, numRows, sheetId, { getSheetName });
|
|
46
48
|
});
|
|
47
49
|
saveHistory({ dataValidations: { patches, inversePatches } });
|
|
48
50
|
return nextState;
|
|
@@ -50,11 +52,21 @@ export const insertRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
|
|
|
50
52
|
// Update conditional formats
|
|
51
53
|
onChangeConditionalFormats?.((prevConditionalFormats) => {
|
|
52
54
|
const [nextState, patches, inversePatches] = produceWithPatches(prevConditionalFormats, (draft) => {
|
|
53
|
-
updateRangedRulesOnStructuralChange(draft, "insert", "row", referenceRowIndex, numRows, sheetId);
|
|
55
|
+
updateRangedRulesOnStructuralChange(draft, "insert", "row", referenceRowIndex, numRows, sheetId, { getSheetName });
|
|
54
56
|
});
|
|
55
57
|
saveHistory({ conditionalFormats: { patches, inversePatches } });
|
|
56
58
|
return nextState;
|
|
57
59
|
});
|
|
60
|
+
// Defined names: a name's RefersTo shifts when the insert is above it
|
|
61
|
+
// and grows when the insert lands strictly inside it (Excel), decided
|
|
62
|
+
// by the sheet its range lives on — not by the name's scope.
|
|
63
|
+
onChangeNamedRanges?.((prevNamedRanges) => {
|
|
64
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevNamedRanges, (draft) => {
|
|
65
|
+
updateNamedRangesOnStructuralChange(draft, "row", "insert", referenceRowIndex, numRows, sheetId);
|
|
66
|
+
});
|
|
67
|
+
saveHistory({ namedRanges: { patches, inversePatches } });
|
|
68
|
+
return nextState;
|
|
69
|
+
});
|
|
58
70
|
// Shift pivot tables: source / pivotRange follow the same insert rule as
|
|
59
71
|
// any other sheet range; targetPosition shifts down if at or after the
|
|
60
72
|
// insertion point.
|
|
@@ -81,8 +93,32 @@ export const insertRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
|
|
|
81
93
|
saveHistory({ citations: { patches, inversePatches } });
|
|
82
94
|
return nextState;
|
|
83
95
|
});
|
|
84
|
-
//
|
|
85
|
-
//
|
|
96
|
+
// Anchored objects (Excel ANC rules): floating charts / embeds move with
|
|
97
|
+
// their anchor cell, chart series ranges and AllowEditRange rectangles
|
|
98
|
+
// shift like references. Frozen panes are a positional viewport split
|
|
99
|
+
// and are deliberately NOT touched here.
|
|
100
|
+
onChangeEmbeds?.((prevEmbeds) => {
|
|
101
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevEmbeds, (draft) => {
|
|
102
|
+
shiftEmbedsOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
|
|
103
|
+
});
|
|
104
|
+
saveHistory({ embeds: { patches, inversePatches } });
|
|
105
|
+
return nextState;
|
|
106
|
+
});
|
|
107
|
+
onChangeCharts?.((prevCharts) => {
|
|
108
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevCharts, (draft) => {
|
|
109
|
+
shiftChartsOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
|
|
110
|
+
});
|
|
111
|
+
saveHistory({ charts: { patches, inversePatches } });
|
|
112
|
+
return nextState;
|
|
113
|
+
});
|
|
114
|
+
onChangeProtectedRanges?.((prevProtectedRanges) => {
|
|
115
|
+
const [nextState, patches, inversePatches] = produceWithPatches(prevProtectedRanges, (draft) => {
|
|
116
|
+
shiftProtectedRangesOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
|
|
117
|
+
});
|
|
118
|
+
saveHistory({ protectedRanges: { patches, inversePatches } });
|
|
119
|
+
return nextState;
|
|
120
|
+
});
|
|
121
|
+
// Update sheet metadata (rowMetadata, basicFilter, merges, rowCount).
|
|
86
122
|
onChangeSheets?.((prevSheets) => {
|
|
87
123
|
const [nextState, patches, inversePatches] = produceWithPatches(prevSheets, (draft) => {
|
|
88
124
|
const sheet = draft.find((sheet) => sheet.sheetId === sheetId);
|
|
@@ -101,14 +137,15 @@ export const insertRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
|
|
|
101
137
|
sheet.basicFilter.range.endRowIndex += numRows;
|
|
102
138
|
}
|
|
103
139
|
}
|
|
104
|
-
if (sheet.frozenRowCount &&
|
|
105
|
-
referenceRowIndex <= sheet.frozenRowCount) {
|
|
106
|
-
sheet.frozenRowCount += numRows;
|
|
107
|
-
}
|
|
108
140
|
if (sheet.merges) {
|
|
109
141
|
sheet.merges = expandMergesOnRowInsert(sheet.merges, referenceRowIndex, numRows);
|
|
110
142
|
}
|
|
111
|
-
|
|
143
|
+
// `_xlnm.Print_Area` / `_xlnm.Print_Titles` follow the defined-name rule.
|
|
144
|
+
if (sheet.printSettings) {
|
|
145
|
+
updatePrintSettingsOnStructuralChange(sheet.printSettings, "row", "insert", referenceRowIndex, numRows);
|
|
146
|
+
}
|
|
147
|
+
// The grid never grows past the hard cap: at the cap the blank trailing rows fall off.
|
|
148
|
+
sheet.rowCount = Math.min((sheet.rowCount ?? rowCount) + numRows, maxRowCount ?? Number.POSITIVE_INFINITY);
|
|
112
149
|
});
|
|
113
150
|
saveHistory({ sheets: { patches, inversePatches } });
|
|
114
151
|
return nextState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spreadsheet-interface.d.ts","sourceRoot":"","sources":["../../../interface/spreadsheet-interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spreadsheet-interface.d.ts","sourceRoot":"","sources":["../../../interface/spreadsheet-interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { isDataValidationFormulaRule } from "../api/data-validation";
|
|
|
11
11
|
import { getAutoFillValues } from "../api/fill";
|
|
12
12
|
import { formulaToRelativeReference } from "../api/formula";
|
|
13
13
|
import { createSheetDraft, deriveCellFromPrecedents } from "../api/immer-utils";
|
|
14
|
+
import { arrayResultToA1Ref } from "../hooks/use-on-calculation-success";
|
|
14
15
|
import { defaultCellCoords, isStyleReference, SheetCell } from "../sheet-cell";
|
|
15
16
|
import { CellXfsRegistry } from "../cellxfs-registry";
|
|
16
17
|
import { SharedStringRegistry } from "../shared-string-registry";
|
|
@@ -723,6 +724,18 @@ export class Spreadsheet {
|
|
|
723
724
|
else {
|
|
724
725
|
const preserveStringLiteral = typeof result === "string";
|
|
725
726
|
sheetCell.setEffectiveValue(result, false, preserveStringLiteral);
|
|
727
|
+
// Track the anchor's spill range (`af`), as the React hook path
|
|
728
|
+
// does: a matrix result spills into a rectangle, a scalar clears
|
|
729
|
+
// any earlier ref.
|
|
730
|
+
if (Array.isArray(result)) {
|
|
731
|
+
const ref = arrayResultToA1Ref(rowIndex, columnIndex, result);
|
|
732
|
+
if (ref) {
|
|
733
|
+
sheetCell.setArrayFormulaRef(ref);
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
else {
|
|
737
|
+
sheetCell.clearArrayFormulaRef();
|
|
738
|
+
}
|
|
726
739
|
// Calculator-supplied formatting (e.g. spilled FILTER results)
|
|
727
740
|
// is persisted as user-entered so the renderer respects it
|
|
728
741
|
// without walking precedents. Effective number format from
|
|
@@ -1372,6 +1385,9 @@ export class Spreadsheet {
|
|
|
1372
1385
|
onChangeTables: this.onChangeTables,
|
|
1373
1386
|
onChangeDataValidations: this.onChangeDataValidations,
|
|
1374
1387
|
onChangeConditionalFormats: this.onChangeConditionalFormats,
|
|
1388
|
+
onChangeNamedRanges: this.onChangeNamedRanges,
|
|
1389
|
+
onChangeCharts: this.onChangeCharts,
|
|
1390
|
+
onChangeEmbeds: this.onChangeEmbeds,
|
|
1375
1391
|
createHistory: this.createHistory,
|
|
1376
1392
|
enqueueCalculation: this.enqueueCalculation,
|
|
1377
1393
|
enqueueGraphOperation: this.enqueueGraphOperation,
|
|
@@ -1400,6 +1416,9 @@ export class Spreadsheet {
|
|
|
1400
1416
|
onChangeTables: this.onChangeTables,
|
|
1401
1417
|
onChangeDataValidations: this.onChangeDataValidations,
|
|
1402
1418
|
onChangeConditionalFormats: this.onChangeConditionalFormats,
|
|
1419
|
+
onChangeNamedRanges: this.onChangeNamedRanges,
|
|
1420
|
+
onChangeCharts: this.onChangeCharts,
|
|
1421
|
+
onChangeEmbeds: this.onChangeEmbeds,
|
|
1403
1422
|
createHistory: this.createHistory,
|
|
1404
1423
|
enqueueCalculation: this.enqueueCalculation,
|
|
1405
1424
|
enqueueGraphOperation: this.enqueueGraphOperation,
|
|
@@ -1428,6 +1447,9 @@ export class Spreadsheet {
|
|
|
1428
1447
|
onChangeTables: this.onChangeTables,
|
|
1429
1448
|
onChangeDataValidations: this.onChangeDataValidations,
|
|
1430
1449
|
onChangeConditionalFormats: this.onChangeConditionalFormats,
|
|
1450
|
+
onChangeNamedRanges: this.onChangeNamedRanges,
|
|
1451
|
+
onChangeCharts: this.onChangeCharts,
|
|
1452
|
+
onChangeEmbeds: this.onChangeEmbeds,
|
|
1431
1453
|
createHistory: this.createHistory,
|
|
1432
1454
|
enqueueCalculation: this.enqueueCalculation,
|
|
1433
1455
|
enqueueGraphOperation: this.enqueueGraphOperation,
|
|
@@ -1444,6 +1466,8 @@ export class Spreadsheet {
|
|
|
1444
1466
|
onChangeActiveCell: this.onChangeActiveSheet,
|
|
1445
1467
|
onChangeSelections: this.onChangeSelections,
|
|
1446
1468
|
onChangeCitations: this.onChangeCitations,
|
|
1469
|
+
tables: this.tables,
|
|
1470
|
+
getArrayRange: (position) => this._calculationInterface.getArrayRange(position),
|
|
1447
1471
|
})(sheetId, columnIndexes);
|
|
1448
1472
|
}
|
|
1449
1473
|
/**
|
|
@@ -1685,8 +1709,13 @@ export class Spreadsheet {
|
|
|
1685
1709
|
onChangeTables: this.onChangeTables,
|
|
1686
1710
|
onChangeDataValidations: this.onChangeDataValidations,
|
|
1687
1711
|
onChangeConditionalFormats: this.onChangeConditionalFormats,
|
|
1712
|
+
onChangeNamedRanges: this.onChangeNamedRanges,
|
|
1713
|
+
onChangeCharts: this.onChangeCharts,
|
|
1714
|
+
onChangeEmbeds: this.onChangeEmbeds,
|
|
1688
1715
|
onChangeActiveCell: this.onChangeActiveSheet,
|
|
1689
1716
|
onChangeSelections: this.onChangeSelections,
|
|
1717
|
+
tables: this.tables,
|
|
1718
|
+
getArrayRange: (position) => this._calculationInterface.getArrayRange(position),
|
|
1690
1719
|
})(sheetId, rowIndexes);
|
|
1691
1720
|
}
|
|
1692
1721
|
/**
|