@rowsncolumns/spreadsheet-state 28.0.75 → 29.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/copy-paste.d.ts +8 -1
- package/dist/cjs/api/copy-paste.d.ts.map +1 -1
- package/dist/cjs/api/copy-paste.js +4 -2
- 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/immer-utils.d.ts +11 -1
- package/dist/cjs/api/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +17 -1
- package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
- package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
- package/dist/cjs/api/insert-cut-cells.js +60 -0
- package/dist/cjs/api/merges.d.ts +16 -0
- package/dist/cjs/api/merges.d.ts.map +1 -1
- package/dist/cjs/api/merges.js +75 -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/api/subtotal.d.ts +20 -13
- package/dist/cjs/api/subtotal.d.ts.map +1 -1
- package/dist/cjs/api/subtotal.js +26 -19
- package/dist/cjs/commands.d.ts +9 -0
- package/dist/cjs/commands.d.ts.map +1 -1
- 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-copy.d.ts +1 -1
- package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-copy.js +2 -3
- 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-on-move-columns.d.ts +2 -1
- package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-columns.js +14 -5
- package/dist/cjs/hooks/use-on-move-rows.d.ts +16 -1
- package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-rows.js +30 -5
- package/dist/cjs/hooks/use-on-move-selection.d.ts +7 -2
- package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-move-selection.js +14 -1
- package/dist/cjs/hooks/use-on-paste.d.ts +12 -2
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +56 -8
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +16 -5
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +141 -18
- 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 +4 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -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 +109 -50
- 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 +105 -46
- 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 +80 -26
- 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 +63 -15
- 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/copy-paste.d.ts +8 -1
- package/dist/esm/api/copy-paste.d.ts.map +1 -1
- package/dist/esm/api/copy-paste.js +4 -2
- 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/immer-utils.d.ts +11 -1
- package/dist/esm/api/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +16 -0
- package/dist/esm/api/insert-cut-cells.d.ts +35 -0
- package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
- package/dist/esm/api/insert-cut-cells.js +67 -0
- package/dist/esm/api/merges.d.ts +16 -0
- package/dist/esm/api/merges.d.ts.map +1 -1
- package/dist/esm/api/merges.js +60 -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/api/subtotal.d.ts +20 -13
- package/dist/esm/api/subtotal.d.ts.map +1 -1
- package/dist/esm/api/subtotal.js +15 -8
- package/dist/esm/commands.d.ts +9 -0
- package/dist/esm/commands.d.ts.map +1 -1
- 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-copy.d.ts +1 -1
- package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-copy.js +2 -3
- 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-on-move-columns.d.ts +2 -1
- package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-columns.js +14 -5
- package/dist/esm/hooks/use-on-move-rows.d.ts +16 -1
- package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-rows.js +30 -5
- package/dist/esm/hooks/use-on-move-selection.d.ts +7 -2
- package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-move-selection.js +14 -1
- package/dist/esm/hooks/use-on-paste.d.ts +12 -2
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +41 -2
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +16 -5
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +141 -17
- 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 +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -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 +96 -38
- 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 +98 -39
- 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 +68 -18
- 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 +60 -14
- 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 +18 -18
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { getShiftCellsRefusal, resolveShiftSelection } from "../api/structural-guards";
|
|
3
3
|
import { useShowError } from "../atoms/error-state.atom";
|
|
4
|
+
import { insertCellsShiftDown } from "../interface/insert-cells-shift-down";
|
|
4
5
|
import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
|
|
5
|
-
export const useOnInsertCellsShiftDown = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onCommand, }) => {
|
|
6
|
+
export const useOnInsertCellsShiftDown = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onChangeTables, onCommand, sheetData, sheets, tables, getArrayRanges, getSheetName, }) => {
|
|
6
7
|
const canEditCellRange = useCanEditCellRange();
|
|
7
8
|
const canPerformSheetAction = useCanPerformSheetAction();
|
|
8
9
|
const showError = useShowError();
|
|
@@ -18,6 +19,21 @@ export const useOnInsertCellsShiftDown = ({ rowCount, columnCount, locale, cellX
|
|
|
18
19
|
console.debug("This range is protected, users cannot edit this cell range.");
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
22
|
+
const selection = resolveShiftSelection(activeCell, selections);
|
|
23
|
+
const refusal = getShiftCellsRefusal({
|
|
24
|
+
direction: "down",
|
|
25
|
+
range: selection.range,
|
|
26
|
+
sheetId,
|
|
27
|
+
rows: sheetData?.[sheetId],
|
|
28
|
+
rowCount,
|
|
29
|
+
merges: sheets?.find((sheet) => sheet.sheetId === sheetId)?.merges,
|
|
30
|
+
tables,
|
|
31
|
+
arrayRanges: getArrayRanges?.(sheetId),
|
|
32
|
+
});
|
|
33
|
+
if (refusal) {
|
|
34
|
+
showError({ title: refusal.title, message: refusal.message });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
21
37
|
insertCellsShiftDown({
|
|
22
38
|
rowCount,
|
|
23
39
|
columnCount,
|
|
@@ -34,6 +50,8 @@ export const useOnInsertCellsShiftDown = ({ rowCount, columnCount, locale, cellX
|
|
|
34
50
|
onChangeSheetData,
|
|
35
51
|
onChangeSheets,
|
|
36
52
|
onChangeCitations,
|
|
53
|
+
onChangeTables,
|
|
54
|
+
getSheetName,
|
|
37
55
|
})(sheetId, activeCell, selections);
|
|
38
56
|
onCommand?.({
|
|
39
57
|
command: "insert-cells-shift-down",
|
|
@@ -61,5 +79,11 @@ export const useOnInsertCellsShiftDown = ({ rowCount, columnCount, locale, cellX
|
|
|
61
79
|
canPerformSheetAction,
|
|
62
80
|
showError,
|
|
63
81
|
onCommand,
|
|
82
|
+
onChangeTables,
|
|
83
|
+
sheetData,
|
|
84
|
+
sheets,
|
|
85
|
+
tables,
|
|
86
|
+
getArrayRanges,
|
|
87
|
+
getSheetName,
|
|
64
88
|
]);
|
|
65
89
|
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { GridRange } from "@rowsncolumns/common-types";
|
|
1
2
|
import { type CellInterface, type SelectionArea } from "@rowsncolumns/grid";
|
|
2
3
|
import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
|
|
4
|
+
import type { TableView } from "@rowsncolumns/spreadsheet";
|
|
3
5
|
import type { OnCommand } from "../commands";
|
|
6
|
+
import type { useCalculation } from "./use-calculation";
|
|
4
7
|
import type { CellXfsRegistry } from "./use-cellxfs-registry";
|
|
8
|
+
import type { SheetData, UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
5
9
|
import type { SharedStringRegistry } from "./use-ss-registry";
|
|
6
|
-
import type { useCalculation } from "./use-calculation";
|
|
7
|
-
import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
8
10
|
import type { SpreadsheetPatch } from "./use-undo-redo";
|
|
9
11
|
export type UseOnInsertCellsShiftRight<T extends CellData, S extends Sheet> = {
|
|
10
12
|
rowCount: number;
|
|
@@ -22,7 +24,15 @@ export type UseOnInsertCellsShiftRight<T extends CellData, S extends Sheet> = {
|
|
|
22
24
|
onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
|
|
23
25
|
onChangeSheets: UseSpreadsheetProps<T, S>["onChangeSheets"];
|
|
24
26
|
onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
|
|
27
|
+
onChangeTables?: UseSpreadsheetProps<T, S>["onChangeTables"];
|
|
25
28
|
onCommand?: OnCommand;
|
|
29
|
+
/** Current document facets, read by the Excel refusal guards (`getShiftCellsRefusal`). */
|
|
30
|
+
sheetData?: SheetData<T>;
|
|
31
|
+
sheets?: S[];
|
|
32
|
+
tables?: TableView[];
|
|
33
|
+
/** CSE / dynamic-array ranges on a sheet — a partially covered one refuses the shift. */
|
|
34
|
+
getArrayRanges?: (sheetId: number) => GridRange[] | undefined;
|
|
35
|
+
getSheetName?: (sheetId: number) => string;
|
|
26
36
|
};
|
|
27
|
-
export declare const useOnInsertCellsShiftRight: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onCommand, }: UseOnInsertCellsShiftRight<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
|
|
37
|
+
export declare const useOnInsertCellsShiftRight: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onChangeTables, onCommand, sheetData, sheets, tables, getArrayRanges, getSheetName, }: UseOnInsertCellsShiftRight<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
|
|
28
38
|
//# sourceMappingURL=use-on-insert-cells-shift-right.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-insert-cells-shift-right.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-cells-shift-right.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-insert-cells-shift-right.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-cells-shift-right.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,yFAAyF;IACzF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,GAAG,SAAS,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,EACf,oVAuBC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,eAMpB,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAsFrD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { getShiftCellsRefusal, resolveShiftSelection } from "../api/structural-guards";
|
|
3
3
|
import { useShowError } from "../atoms/error-state.atom";
|
|
4
|
+
import { insertCellsShiftRight } from "../interface/insert-cells-shift-right";
|
|
4
5
|
import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
|
|
5
|
-
export const useOnInsertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onCommand, }) => {
|
|
6
|
+
export const useOnInsertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onChangeTables, onCommand, sheetData, sheets, tables, getArrayRanges, getSheetName, }) => {
|
|
6
7
|
const canEditCellRange = useCanEditCellRange();
|
|
7
8
|
const canPerformSheetAction = useCanPerformSheetAction();
|
|
8
9
|
const showError = useShowError();
|
|
@@ -18,6 +19,21 @@ export const useOnInsertCellsShiftRight = ({ rowCount, columnCount, locale, cell
|
|
|
18
19
|
console.debug("This range is protected, users cannot edit this cell range.");
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
22
|
+
const selection = resolveShiftSelection(activeCell, selections);
|
|
23
|
+
const refusal = getShiftCellsRefusal({
|
|
24
|
+
direction: "right",
|
|
25
|
+
range: selection.range,
|
|
26
|
+
sheetId,
|
|
27
|
+
rows: sheetData?.[sheetId],
|
|
28
|
+
columnCount,
|
|
29
|
+
merges: sheets?.find((sheet) => sheet.sheetId === sheetId)?.merges,
|
|
30
|
+
tables,
|
|
31
|
+
arrayRanges: getArrayRanges?.(sheetId),
|
|
32
|
+
});
|
|
33
|
+
if (refusal) {
|
|
34
|
+
showError({ title: refusal.title, message: refusal.message });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
21
37
|
insertCellsShiftRight({
|
|
22
38
|
rowCount,
|
|
23
39
|
columnCount,
|
|
@@ -34,6 +50,8 @@ export const useOnInsertCellsShiftRight = ({ rowCount, columnCount, locale, cell
|
|
|
34
50
|
onChangeSheetData,
|
|
35
51
|
onChangeSheets,
|
|
36
52
|
onChangeCitations,
|
|
53
|
+
onChangeTables,
|
|
54
|
+
getSheetName,
|
|
37
55
|
})(sheetId, activeCell, selections);
|
|
38
56
|
onCommand?.({
|
|
39
57
|
command: "insert-cells-shift-right",
|
|
@@ -61,5 +79,11 @@ export const useOnInsertCellsShiftRight = ({ rowCount, columnCount, locale, cell
|
|
|
61
79
|
canPerformSheetAction,
|
|
62
80
|
showError,
|
|
63
81
|
onCommand,
|
|
82
|
+
onChangeTables,
|
|
83
|
+
sheetData,
|
|
84
|
+
sheets,
|
|
85
|
+
tables,
|
|
86
|
+
getArrayRanges,
|
|
87
|
+
getSheetName,
|
|
64
88
|
]);
|
|
65
89
|
};
|
|
@@ -3,10 +3,10 @@ import type { SelectionAttributes, TableView } from "@rowsncolumns/spreadsheet";
|
|
|
3
3
|
import { type CellData, type Sheet } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import type { OnCommand } from "../commands";
|
|
5
5
|
import type { GeneratedNames } from "../generated-names";
|
|
6
|
+
import type { useCalculation } from "./use-calculation";
|
|
6
7
|
import type { CellXfsRegistry } from "./use-cellxfs-registry";
|
|
8
|
+
import type { SheetData, UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
7
9
|
import type { SharedStringRegistry } from "./use-ss-registry";
|
|
8
|
-
import type { useCalculation } from "./use-calculation";
|
|
9
|
-
import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
10
10
|
import type { SpreadsheetPatch } from "./use-undo-redo";
|
|
11
11
|
export type UseOnInsertColumnProps<T extends CellData, S extends Sheet> = {
|
|
12
12
|
rowCount: number;
|
|
@@ -14,6 +14,9 @@ export type UseOnInsertColumnProps<T extends CellData, S extends Sheet> = {
|
|
|
14
14
|
locale?: string;
|
|
15
15
|
tables?: TableView[];
|
|
16
16
|
maxColumnCount?: number;
|
|
17
|
+
/** Current sheet data — lets the grid-cap check refuse only when a NON-BLANK cell would be pushed
|
|
18
|
+
* off the sheet (INS-09); blank trailing columns fall off silently, as in Excel. */
|
|
19
|
+
sheetData?: SheetData<T>;
|
|
17
20
|
cellXfsRegistry?: CellXfsRegistry;
|
|
18
21
|
sharedStringRegistry?: SharedStringRegistry;
|
|
19
22
|
getActiveCell: () => CellInterface;
|
|
@@ -32,9 +35,13 @@ export type UseOnInsertColumnProps<T extends CellData, S extends Sheet> = {
|
|
|
32
35
|
onChangeConditionalFormats?: UseSpreadsheetProps<T, S>["onChangeConditionalFormats"];
|
|
33
36
|
onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
|
|
34
37
|
onChangePivotTables?: UseSpreadsheetProps<T, S>["onChangePivotTables"];
|
|
38
|
+
onChangeNamedRanges?: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
|
|
39
|
+
onChangeEmbeds?: UseSpreadsheetProps<T, S>["onChangeEmbeds"];
|
|
40
|
+
onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
|
|
41
|
+
onChangeProtectedRanges?: UseSpreadsheetProps<T, S>["onChangeProtectedRanges"];
|
|
35
42
|
getSheetName(sheetId: number): string;
|
|
36
43
|
onCommand?: OnCommand;
|
|
37
44
|
generatedNames?: GeneratedNames;
|
|
38
45
|
};
|
|
39
|
-
export declare const useOnInsertColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, tables, maxColumnCount, cellXfsRegistry, sharedStringRegistry, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, getActiveCell, getSelections, getSheetName, onCommand, generatedNames, }: UseOnInsertColumnProps<T, S>) => (sheetId: number, referenceColumnIndex: number, numColumns?: number) => void;
|
|
46
|
+
export declare const useOnInsertColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, tables, maxColumnCount, cellXfsRegistry, sharedStringRegistry, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, getActiveCell, getSelections, getSheetName, onCommand, generatedNames, sheetData, }: UseOnInsertColumnProps<T, S>) => (sheetId: number, referenceColumnIndex: number, numColumns?: number) => void;
|
|
40
47
|
//# sourceMappingURL=use-on-insert-column.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-insert-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-insert-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-column.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { isNil } from "@rowsncolumns/utils";
|
|
2
2
|
import { useCallback } from "react";
|
|
3
|
+
import { getInsertLinesRefusal } from "../api/structural-guards";
|
|
3
4
|
import { useShowError } from "../atoms/error-state.atom";
|
|
4
5
|
import { insertColumn } from "../interface/insert-column";
|
|
5
6
|
import { SHEET_PROTECTION_ERROR_TITLE, useCanEditSheet, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
|
|
6
|
-
export const useOnInsertColumn = ({ rowCount, columnCount, locale, tables, maxColumnCount, cellXfsRegistry, sharedStringRegistry, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, getActiveCell, getSelections, getSheetName, onCommand, generatedNames, }) => {
|
|
7
|
+
export const useOnInsertColumn = ({ rowCount, columnCount, locale, tables, maxColumnCount, cellXfsRegistry, sharedStringRegistry, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, getActiveCell, getSelections, getSheetName, onCommand, generatedNames, sheetData, }) => {
|
|
7
8
|
const canEditSheet = useCanEditSheet();
|
|
8
9
|
const canPerformSheetAction = useCanPerformSheetAction();
|
|
9
10
|
const showError = useShowError();
|
|
@@ -19,17 +20,33 @@ export const useOnInsertColumn = ({ rowCount, columnCount, locale, tables, maxCo
|
|
|
19
20
|
});
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
|
-
if (!isNil(maxColumnCount) && columnCount
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
if (!isNil(maxColumnCount) && columnCount + numColumns > maxColumnCount) {
|
|
24
|
+
// INS-09: at the grid cap, Excel refuses only when a non-blank (or formatted) cell would
|
|
25
|
+
// be pushed off the end; blank trailing columns are simply discarded.
|
|
26
|
+
const refusal = sheetData
|
|
27
|
+
? getInsertLinesRefusal({
|
|
28
|
+
axis: "column",
|
|
29
|
+
referenceIndex: referenceColumnIndex,
|
|
30
|
+
count: numColumns,
|
|
31
|
+
rows: sheetData[sheetId],
|
|
32
|
+
limit: maxColumnCount,
|
|
33
|
+
})
|
|
34
|
+
: columnCount >= maxColumnCount
|
|
35
|
+
? {
|
|
36
|
+
title: "New columns cannot be added",
|
|
37
|
+
message: "You have reached the maximum number of columns.",
|
|
38
|
+
}
|
|
39
|
+
: undefined;
|
|
40
|
+
if (refusal) {
|
|
41
|
+
showError({ title: refusal.title, message: refusal.message });
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
28
44
|
}
|
|
29
45
|
insertColumn({
|
|
30
46
|
rowCount,
|
|
31
47
|
columnCount,
|
|
32
48
|
locale,
|
|
49
|
+
maxColumnCount,
|
|
33
50
|
tables,
|
|
34
51
|
cellXfsRegistry,
|
|
35
52
|
sharedStringRegistry,
|
|
@@ -47,6 +64,10 @@ export const useOnInsertColumn = ({ rowCount, columnCount, locale, tables, maxCo
|
|
|
47
64
|
onChangeDataValidations,
|
|
48
65
|
onChangeCitations,
|
|
49
66
|
onChangePivotTables,
|
|
67
|
+
onChangeNamedRanges,
|
|
68
|
+
onChangeEmbeds,
|
|
69
|
+
onChangeCharts,
|
|
70
|
+
onChangeProtectedRanges,
|
|
50
71
|
getActiveCell,
|
|
51
72
|
getSelections,
|
|
52
73
|
getSheetName,
|
|
@@ -82,10 +103,15 @@ export const useOnInsertColumn = ({ rowCount, columnCount, locale, tables, maxCo
|
|
|
82
103
|
onChangeConditionalFormats,
|
|
83
104
|
onChangeDataValidations,
|
|
84
105
|
onChangePivotTables,
|
|
106
|
+
onChangeNamedRanges,
|
|
107
|
+
onChangeEmbeds,
|
|
108
|
+
onChangeCharts,
|
|
109
|
+
onChangeProtectedRanges,
|
|
85
110
|
canEditSheet,
|
|
86
111
|
canPerformSheetAction,
|
|
87
112
|
getSheetName,
|
|
88
113
|
onCommand,
|
|
89
114
|
generatedNames,
|
|
115
|
+
sheetData,
|
|
90
116
|
]);
|
|
91
117
|
};
|
|
@@ -2,10 +2,10 @@ import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
|
2
2
|
import type { SelectionAttributes } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import { type CellData, type Sheet } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import type { OnCommand } from "../commands";
|
|
5
|
+
import type { useCalculation } from "./use-calculation";
|
|
5
6
|
import type { CellXfsRegistry } from "./use-cellxfs-registry";
|
|
7
|
+
import type { SheetData, UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
6
8
|
import type { SharedStringRegistry } from "./use-ss-registry";
|
|
7
|
-
import type { useCalculation } from "./use-calculation";
|
|
8
|
-
import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
9
9
|
import type { SpreadsheetPatch } from "./use-undo-redo";
|
|
10
10
|
export type UseOnInsertRowProps<T extends CellData, S extends Sheet> = {
|
|
11
11
|
rowCount: number;
|
|
@@ -25,6 +25,9 @@ export type UseOnInsertRowProps<T extends CellData, S extends Sheet> = {
|
|
|
25
25
|
getSelections(): SelectionArea<SelectionAttributes>[];
|
|
26
26
|
getSheetName(sheetId: number): string;
|
|
27
27
|
enableInsertRowTimingLogs?: boolean;
|
|
28
|
+
/** Current sheet data — lets the grid-cap check refuse only when a NON-BLANK cell would be pushed
|
|
29
|
+
* off the sheet (INS-06); blank trailing rows fall off silently, as in Excel. */
|
|
30
|
+
sheetData?: SheetData<T>;
|
|
28
31
|
onChangeSheetData?: UseSpreadsheetProps<T, S>["onChangeSheetData"];
|
|
29
32
|
onChangeSheets?: UseSpreadsheetProps<T, S>["onChangeSheets"];
|
|
30
33
|
onChangeTables?: UseSpreadsheetProps<T, S>["onChangeTables"];
|
|
@@ -32,7 +35,11 @@ export type UseOnInsertRowProps<T extends CellData, S extends Sheet> = {
|
|
|
32
35
|
onChangeConditionalFormats?: UseSpreadsheetProps<T, S>["onChangeConditionalFormats"];
|
|
33
36
|
onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
|
|
34
37
|
onChangePivotTables?: UseSpreadsheetProps<T, S>["onChangePivotTables"];
|
|
38
|
+
onChangeNamedRanges?: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
|
|
39
|
+
onChangeEmbeds?: UseSpreadsheetProps<T, S>["onChangeEmbeds"];
|
|
40
|
+
onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
|
|
41
|
+
onChangeProtectedRanges?: UseSpreadsheetProps<T, S>["onChangeProtectedRanges"];
|
|
35
42
|
onCommand?: OnCommand;
|
|
36
43
|
};
|
|
37
|
-
export declare const useOnInsertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, getSheetName, enableInsertRowTimingLogs, onCommand, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
44
|
+
export declare const useOnInsertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, getSheetName, enableInsertRowTimingLogs, sheetData, onCommand, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
|
|
38
45
|
//# sourceMappingURL=use-on-insert-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-insert-row.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-insert-row.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-insert-row.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { isNil } from "@rowsncolumns/utils";
|
|
2
2
|
import { useCallback } from "react";
|
|
3
|
+
import { getInsertLinesRefusal } from "../api/structural-guards";
|
|
3
4
|
import { useShowError } from "../atoms/error-state.atom";
|
|
4
5
|
import { insertRow } from "../interface/insert-row";
|
|
5
6
|
import { SHEET_PROTECTION_ERROR_TITLE, useCanEditSheet, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
|
|
6
|
-
export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, getSheetName, enableInsertRowTimingLogs, onCommand, }) => {
|
|
7
|
+
export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, getSheetName, enableInsertRowTimingLogs, sheetData, onCommand, }) => {
|
|
7
8
|
const canEditSheet = useCanEditSheet();
|
|
8
9
|
const canPerformSheetAction = useCanPerformSheetAction();
|
|
9
10
|
const showError = useShowError();
|
|
@@ -23,12 +24,27 @@ export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cel
|
|
|
23
24
|
});
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
|
-
if (!isNil(maxRowCount) && rowCount
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
if (!isNil(maxRowCount) && rowCount + numRows > maxRowCount) {
|
|
28
|
+
// INS-06: at the grid cap, Excel refuses only when a non-blank (or formatted) cell would
|
|
29
|
+
// be pushed off the end; blank trailing rows are simply discarded.
|
|
30
|
+
const refusal = sheetData
|
|
31
|
+
? getInsertLinesRefusal({
|
|
32
|
+
axis: "row",
|
|
33
|
+
referenceIndex: referenceRowIndex,
|
|
34
|
+
count: numRows,
|
|
35
|
+
rows: sheetData[sheetId],
|
|
36
|
+
limit: maxRowCount,
|
|
37
|
+
})
|
|
38
|
+
: rowCount >= maxRowCount
|
|
39
|
+
? {
|
|
40
|
+
title: "New rows cannot be added",
|
|
41
|
+
message: "You have reached the maximum number of rows.",
|
|
42
|
+
}
|
|
43
|
+
: undefined;
|
|
44
|
+
if (refusal) {
|
|
45
|
+
showError({ title: refusal.title, message: refusal.message });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
32
48
|
}
|
|
33
49
|
// Inserts row
|
|
34
50
|
const startMs = now();
|
|
@@ -55,6 +71,10 @@ export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cel
|
|
|
55
71
|
onChangeDataValidations,
|
|
56
72
|
onChangeCitations,
|
|
57
73
|
onChangePivotTables,
|
|
74
|
+
onChangeNamedRanges,
|
|
75
|
+
onChangeEmbeds,
|
|
76
|
+
onChangeCharts,
|
|
77
|
+
onChangeProtectedRanges,
|
|
58
78
|
getSheetName,
|
|
59
79
|
})(sheetId, referenceRowIndex, numRows);
|
|
60
80
|
const elapsedMs = now() - startMs;
|
|
@@ -92,6 +112,10 @@ export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cel
|
|
|
92
112
|
onChangeConditionalFormats,
|
|
93
113
|
onChangeDataValidations,
|
|
94
114
|
onChangePivotTables,
|
|
115
|
+
onChangeNamedRanges,
|
|
116
|
+
onChangeEmbeds,
|
|
117
|
+
onChangeCharts,
|
|
118
|
+
onChangeProtectedRanges,
|
|
95
119
|
enqueueGraphOperation,
|
|
96
120
|
enqueueCalculation,
|
|
97
121
|
enqueueStructureChange,
|
|
@@ -99,6 +123,7 @@ export const useOnInsertRow = ({ rowCount, columnCount, locale, maxRowCount, cel
|
|
|
99
123
|
canPerformSheetAction,
|
|
100
124
|
getSheetName,
|
|
101
125
|
enableInsertRowTimingLogs,
|
|
126
|
+
sheetData,
|
|
102
127
|
onCommand,
|
|
103
128
|
]);
|
|
104
129
|
};
|
|
@@ -2,6 +2,7 @@ import type { CellInterface } from "@rowsncolumns/common-types";
|
|
|
2
2
|
import { type CellData, type Sheet } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { OnCommand } from "../commands";
|
|
4
4
|
import type { useCalculation } from "./use-calculation";
|
|
5
|
+
import { type MoveDimensionOptions } from "./use-on-move-rows";
|
|
5
6
|
import type { useSheetProperties } from "./use-sheet-properties";
|
|
6
7
|
import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
7
8
|
import type { SpreadsheetPatch } from "./use-undo-redo";
|
|
@@ -23,6 +24,6 @@ type UseOnMoveColumnsProps<T extends CellData, S extends Sheet> = {
|
|
|
23
24
|
getActiveCell: () => CellInterface;
|
|
24
25
|
onCommand?: OnCommand;
|
|
25
26
|
};
|
|
26
|
-
export declare const useOnMoveColumns: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getDataRowCount, getActiveCell, onCommand, }: UseOnMoveColumnsProps<T, S>) => (sheetId: number, columns: number[],
|
|
27
|
+
export declare const useOnMoveColumns: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getDataRowCount, getActiveCell, onCommand, }: UseOnMoveColumnsProps<T, S>) => (sheetId: number, columns: number[], rawReferenceColumnIndex: number, options?: MoveDimensionOptions) => void;
|
|
27
28
|
export {};
|
|
28
29
|
//# sourceMappingURL=use-on-move-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-move-columns.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAWtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,qBAAqB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,wRAiBnE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-on-move-columns.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAWtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,qBAAqB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,wRAiBnE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,eAIf,MAAM,WACN,MAAM,EAAE,2BACQ,MAAM,YACrB,oBAAoB,SAkZnC,CAAC"}
|
|
@@ -8,9 +8,10 @@ import { moveMergedCells } from "../api/merges";
|
|
|
8
8
|
import { updateRangedRulesOnReorder } from "../api/range-rule-helpers";
|
|
9
9
|
import { shiftTableMovingColumns } from "../api/table";
|
|
10
10
|
import { useCanEditSheet } from "./use-can-edit-cellrange";
|
|
11
|
+
import { resolveMoveReferenceIndex, } from "./use-on-move-rows";
|
|
11
12
|
export const useOnMoveColumns = ({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getDataRowCount, getActiveCell, onCommand, }) => {
|
|
12
13
|
const canEditSheet = useCanEditSheet();
|
|
13
|
-
return useCallback((sheetId, columns,
|
|
14
|
+
return useCallback((sheetId, columns, rawReferenceColumnIndex, options) => {
|
|
14
15
|
if (!canEditSheet(sheetId)) {
|
|
15
16
|
console.debug("This range is protected, users cannot edit this cell range.");
|
|
16
17
|
return;
|
|
@@ -18,6 +19,10 @@ export const useOnMoveColumns = ({ rowCount, columnCount, locale, createHistory,
|
|
|
18
19
|
if (!columns.length) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
22
|
+
const referenceColumnIndex = resolveMoveReferenceIndex(columns, rawReferenceColumnIndex, options);
|
|
23
|
+
if (referenceColumnIndex === undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
21
26
|
const saveHistory = createHistory();
|
|
22
27
|
const { 0: firstColumn, [columns.length - 1]: lastColumn } = columns;
|
|
23
28
|
// We need to track this for history. Precedent cells
|
|
@@ -43,11 +48,15 @@ export const useOnMoveColumns = ({ rowCount, columnCount, locale, createHistory,
|
|
|
43
48
|
startRowIndex: 1,
|
|
44
49
|
endRowIndex: dataRowCount,
|
|
45
50
|
};
|
|
46
|
-
//
|
|
47
|
-
//
|
|
51
|
+
// The columns the move displaces (Excel: refs into them shift by ±count). Moving LEFT,
|
|
52
|
+
// columns `referenceColumnIndex..firstColumn-1` slide right; moving RIGHT, columns
|
|
53
|
+
// `lastColumn+1..referenceColumnIndex+count-1` slide left (the block lands at
|
|
54
|
+
// `referenceColumnIndex` in the post-removal frame).
|
|
48
55
|
const shiftedRange = {
|
|
49
|
-
startColumnIndex:
|
|
50
|
-
endColumnIndex:
|
|
56
|
+
startColumnIndex: direction === Direction.Left ? referenceColumnIndex : lastColumn + 1,
|
|
57
|
+
endColumnIndex: direction === Direction.Left
|
|
58
|
+
? firstColumn - 1
|
|
59
|
+
: referenceColumnIndex + count - 1,
|
|
51
60
|
startRowIndex: 1,
|
|
52
61
|
endRowIndex: dataRowCount,
|
|
53
62
|
};
|
|
@@ -25,6 +25,21 @@ type UseOnMoveRowsProps<T extends CellData, S extends Sheet> = {
|
|
|
25
25
|
getActiveCell: () => CellInterface;
|
|
26
26
|
onCommand?: OnCommand;
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Landing semantics for a row/column move. By default `referenceIndex` is the block's FINAL
|
|
30
|
+
* position in the post-removal frame (what the header-drag hook computes). `insertBefore`
|
|
31
|
+
* selects Excel's "Insert Cut Cells" semantics instead: `referenceIndex` is the row/column the
|
|
32
|
+
* block is inserted BEFORE in the PRE-removal numbering, so a downward move lands `count` earlier
|
|
33
|
+
* (cut row 2 → Insert Cut Cells at row 6 lands the row at 5: r1 r3 r4 r5 r2 r6).
|
|
34
|
+
*/
|
|
35
|
+
export type MoveDimensionOptions = {
|
|
36
|
+
insertBefore?: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Translate an Insert-Cut-Cells reference (pre-removal numbering) into the hook's post-removal
|
|
40
|
+
* landing index. Returns `undefined` when the reference falls inside the moved block (a no-op).
|
|
41
|
+
*/
|
|
42
|
+
export declare const resolveMoveReferenceIndex: (dims: number[], referenceIndex: number, options?: MoveDimensionOptions) => number | undefined;
|
|
43
|
+
export declare const useOnMoveRows: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getNonEmptyColumnCount, getActiveCell, onCommand, }: UseOnMoveRowsProps<T, S>) => (sheetId: number, rows: number[], rawReferenceRowIndex: number, options?: MoveDimensionOptions) => void;
|
|
29
44
|
export {};
|
|
30
45
|
//# sourceMappingURL=use-on-move-rows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-move-rows.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAUtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,kBAAkB,CAC1B,CAAC,wBAAwB,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+RAiBhE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-on-move-rows.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAUtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,kBAAkB,CAC1B,CAAC,wBAAwB,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,EACtB,UAAU,oBAAoB,KAC7B,MAAM,GAAG,SAYX,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+RAiBhE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,eAIZ,MAAM,QACT,MAAM,EAAE,wBACQ,MAAM,YAClB,oBAAoB,SA0VnC,CAAC"}
|
|
@@ -8,9 +8,26 @@ import { moveMergedCells } from "../api/merges";
|
|
|
8
8
|
import { updateRangedRulesOnReorder } from "../api/range-rule-helpers";
|
|
9
9
|
import { shiftTableMovingRows } from "../api/table";
|
|
10
10
|
import { useCanEditSheet } from "./use-can-edit-cellrange";
|
|
11
|
+
/**
|
|
12
|
+
* Translate an Insert-Cut-Cells reference (pre-removal numbering) into the hook's post-removal
|
|
13
|
+
* landing index. Returns `undefined` when the reference falls inside the moved block (a no-op).
|
|
14
|
+
*/
|
|
15
|
+
export const resolveMoveReferenceIndex = (dims, referenceIndex, options) => {
|
|
16
|
+
if (!options?.insertBefore) {
|
|
17
|
+
return referenceIndex;
|
|
18
|
+
}
|
|
19
|
+
const { 0: first, [dims.length - 1]: last } = dims;
|
|
20
|
+
if (referenceIndex > last) {
|
|
21
|
+
return referenceIndex - dims.length;
|
|
22
|
+
}
|
|
23
|
+
if (referenceIndex > first) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return referenceIndex;
|
|
27
|
+
};
|
|
11
28
|
export const useOnMoveRows = ({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getNonEmptyColumnCount, getActiveCell, onCommand, }) => {
|
|
12
29
|
const canEditSheet = useCanEditSheet();
|
|
13
|
-
return useCallback((sheetId, rows,
|
|
30
|
+
return useCallback((sheetId, rows, rawReferenceRowIndex, options) => {
|
|
14
31
|
if (!canEditSheet(sheetId)) {
|
|
15
32
|
console.debug("This range is protected, users cannot edit this cell range.");
|
|
16
33
|
return;
|
|
@@ -18,6 +35,10 @@ export const useOnMoveRows = ({ rowCount, columnCount, locale, createHistory, on
|
|
|
18
35
|
if (!rows.length) {
|
|
19
36
|
return;
|
|
20
37
|
}
|
|
38
|
+
const referenceRowIndex = resolveMoveReferenceIndex(rows, rawReferenceRowIndex, options);
|
|
39
|
+
if (referenceRowIndex === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
21
42
|
const saveHistory = createHistory();
|
|
22
43
|
const { 0: firstRow, [rows.length - 1]: lastRow } = rows;
|
|
23
44
|
// We need to track this for history. Precedent cells
|
|
@@ -118,13 +139,17 @@ export const useOnMoveRows = ({ rowCount, columnCount, locale, createHistory, on
|
|
|
118
139
|
columnCount,
|
|
119
140
|
});
|
|
120
141
|
}
|
|
121
|
-
//
|
|
122
|
-
//
|
|
142
|
+
// The rows the move displaces (Excel: refs into them shift by ±count). Moving UP,
|
|
143
|
+
// rows `referenceRowIndex..firstRow-1` slide down; moving DOWN, rows
|
|
144
|
+
// `lastRow+1..referenceRowIndex+count-1` slide up (the block lands at
|
|
145
|
+
// `referenceRowIndex` in the post-removal frame).
|
|
123
146
|
const shiftedRange = {
|
|
124
147
|
startColumnIndex: 1,
|
|
125
148
|
endColumnIndex: columnCount,
|
|
126
|
-
startRowIndex:
|
|
127
|
-
endRowIndex:
|
|
149
|
+
startRowIndex: direction === Direction.Left ? referenceRowIndex : lastRow + 1,
|
|
150
|
+
endRowIndex: direction === Direction.Left
|
|
151
|
+
? firstRow - 1
|
|
152
|
+
: referenceRowIndex + count - 1,
|
|
128
153
|
};
|
|
129
154
|
// Update formulas
|
|
130
155
|
for (const [rowIndex, columnIndex] of iterateCellsInRange({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
1
|
+
import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { CellData, SelectionAttributes, Sheet, TableView } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { OnCommand } from "../commands";
|
|
4
4
|
import type { CalculationOperation, useCalculation } from "./use-calculation";
|
|
@@ -29,7 +29,12 @@ export type UseOnMoveSelectionProps<T extends CellData, S extends Sheet> = {
|
|
|
29
29
|
onChangePivotTables?: UseSpreadsheetProps<T, S>["onChangePivotTables"];
|
|
30
30
|
getDependents: ReturnType<typeof useCalculation>["getDependents"];
|
|
31
31
|
getActiveCell: () => CellInterface;
|
|
32
|
+
/**
|
|
33
|
+
* Merged ranges of a sheet — a drag-move whose destination (or source) covers a merge only
|
|
34
|
+
* partially is refused, like Excel ("We can't do that to a merged cell.").
|
|
35
|
+
*/
|
|
36
|
+
getSheetMerges?: (sheetId: number) => GridRange[] | undefined | null;
|
|
32
37
|
onCommand?: OnCommand;
|
|
33
38
|
};
|
|
34
|
-
export declare const useOnMoveSelection: <T extends CellData, S extends Sheet>({ rowCount, columnCount, tables, locale, cellXfsRegistry, sharedStringRegistry, getDependents, getActiveCell, onChangeTables, onChangeSheets, onChangeNamedRanges, onChangeDataValidations, onChangeConditionalFormats, onChangePivotTables, onChangeSheetData, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, isArrayFormula, getDataValidationById, onCommand, }: UseOnMoveSelectionProps<T, S>) => (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
|
|
39
|
+
export declare const useOnMoveSelection: <T extends CellData, S extends Sheet>({ rowCount, columnCount, tables, locale, cellXfsRegistry, sharedStringRegistry, getDependents, getActiveCell, onChangeTables, onChangeSheets, onChangeNamedRanges, onChangeDataValidations, onChangeConditionalFormats, onChangePivotTables, onChangeSheetData, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, isArrayFormula, getDataValidationById, getSheetMerges, onCommand, }: UseOnMoveSelectionProps<T, S>) => (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
|
|
35
40
|
//# sourceMappingURL=use-on-move-selection.d.ts.map
|