@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAsBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SA8bjD,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
2
2
|
import { Direction } from "@rowsncolumns/common-types";
|
|
3
3
|
import { produceWithPatches } from "immer";
|
|
4
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
4
5
|
import { shrinkMergesOnColumnDelete } from "../api/merges";
|
|
6
|
+
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
5
7
|
import { shiftPivotsOnDelete } from "../api/pivot-range";
|
|
6
8
|
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
7
|
-
import { updateSheetRangeOnDelete } from "../api/range";
|
|
8
9
|
import { moveFilterView } from "../api/selection";
|
|
9
10
|
import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
|
|
11
|
+
import { breakStructuredRefsForRemovedTableParts, collectRemovedTableParts, removeSpillsOfDeletedAnchors, } from "../api/structural-table-refs";
|
|
10
12
|
export var deleteColumn = function (_a) {
|
|
11
|
-
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables;
|
|
13
|
+
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, tables = _a.tables, getArrayRange = _a.getArrayRange, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
|
|
12
14
|
return function (sheetId, columnIndexes) {
|
|
13
15
|
if (!columnIndexes.length)
|
|
14
16
|
return;
|
|
@@ -29,31 +31,32 @@ export var deleteColumn = function (_a) {
|
|
|
29
31
|
var activeCell = getActiveCell();
|
|
30
32
|
var selections = getSelections();
|
|
31
33
|
var newColumnCount = Math.max(1, columnCount - count);
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
nextActiveColumnIndex = newColumnCount;
|
|
44
|
-
}
|
|
34
|
+
// Excel keeps the selection where it was (UI-02, column twin): after
|
|
35
|
+
// deleting columns C:D the selection still reads C:D — now over the
|
|
36
|
+
// columns that moved left — and the active cell sits in the first deleted
|
|
37
|
+
// column. Every coordinate loses the deleted columns that lie BEFORE it.
|
|
38
|
+
var deletedBefore = function (columnIndex) {
|
|
39
|
+
return sortedColumnIndexes.filter(function (index) { return index < columnIndex; }).length;
|
|
40
|
+
};
|
|
41
|
+
var clampColumn = function (columnIndex) {
|
|
42
|
+
return Math.min(Math.max(1, columnIndex), newColumnCount);
|
|
43
|
+
};
|
|
44
|
+
var nextActiveColumnIndex = clampColumn(activeCell.columnIndex - deletedBefore(activeCell.columnIndex));
|
|
45
45
|
var nextActiveCell = nextActiveColumnIndex === activeCell.columnIndex
|
|
46
46
|
? activeCell
|
|
47
47
|
: __assign(__assign({}, activeCell), { columnIndex: nextActiveColumnIndex });
|
|
48
|
-
var fallbackSelectionColumnIndex = nextActiveCell.columnIndex;
|
|
49
48
|
var nextSelections = selections.map(function (selection) {
|
|
50
49
|
if (!selection.range)
|
|
51
50
|
return selection;
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
var _a = selection.range, startColumnIndex = _a.startColumnIndex, endColumnIndex = _a.endColumnIndex;
|
|
52
|
+
var deletedWithin = sortedColumnIndexes.filter(function (index) { return index >= startColumnIndex && index <= endColumnIndex; }).length;
|
|
53
|
+
var size = endColumnIndex - startColumnIndex + 1;
|
|
54
|
+
var nextStart = clampColumn(startColumnIndex - deletedBefore(startColumnIndex));
|
|
55
|
+
// A partially covered area shrinks by the columns it lost; an area
|
|
56
|
+
// deleted outright keeps its size (it now frames the columns that moved
|
|
57
|
+
// left).
|
|
58
|
+
var nextSize = deletedWithin < size ? size - deletedWithin : size;
|
|
59
|
+
return __assign(__assign({}, selection), { range: __assign(__assign({}, selection.range), { startColumnIndex: nextStart, endColumnIndex: clampColumn(nextStart + nextSize - 1) }) });
|
|
57
60
|
});
|
|
58
61
|
// Tables: shift / shrink, plus column-specific filter+sort spec updates
|
|
59
62
|
// and table-column splice for partially-overlapped tables.
|
|
@@ -128,7 +131,7 @@ export var deleteColumn = function (_a) {
|
|
|
128
131
|
// Data validations
|
|
129
132
|
onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
|
|
130
133
|
var _a = __read(produceWithPatches(prevValidations, function (draft) {
|
|
131
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId);
|
|
134
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId, { getSheetName: getSheetName });
|
|
132
135
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
133
136
|
saveHistory({ dataValidations: { patches: patches, inversePatches: inversePatches } });
|
|
134
137
|
return nextState;
|
|
@@ -136,11 +139,20 @@ export var deleteColumn = function (_a) {
|
|
|
136
139
|
// Conditional formats
|
|
137
140
|
onChangeConditionalFormats === null || onChangeConditionalFormats === void 0 ? void 0 : onChangeConditionalFormats(function (prevConditionalFormats) {
|
|
138
141
|
var _a = __read(produceWithPatches(prevConditionalFormats, function (draft) {
|
|
139
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId);
|
|
142
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "column", minColumnIndex, count, sheetId, { getSheetName: getSheetName });
|
|
140
143
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
141
144
|
saveHistory({ conditionalFormats: { patches: patches, inversePatches: inversePatches } });
|
|
142
145
|
return nextState;
|
|
143
146
|
});
|
|
147
|
+
// Defined names: shift back / shrink; a name whose whole range is
|
|
148
|
+
// deleted is kept as `#REF!` so its users evaluate `#REF!`, like Excel.
|
|
149
|
+
onChangeNamedRanges === null || onChangeNamedRanges === void 0 ? void 0 : onChangeNamedRanges(function (prevNamedRanges) {
|
|
150
|
+
var _a = __read(produceWithPatches(prevNamedRanges, function (draft) {
|
|
151
|
+
updateNamedRangesOnStructuralChange(draft, "column", "delete", minColumnIndex, count, sheetId);
|
|
152
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
153
|
+
saveHistory({ namedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
154
|
+
return nextState;
|
|
155
|
+
});
|
|
144
156
|
// Shift pivot tables.
|
|
145
157
|
onChangePivotTables === null || onChangePivotTables === void 0 ? void 0 : onChangePivotTables(function (prevPivots) {
|
|
146
158
|
var _a = __read(produceWithPatches(prevPivots, function (draft) {
|
|
@@ -171,11 +183,36 @@ export var deleteColumn = function (_a) {
|
|
|
171
183
|
saveHistory({ citations: { patches: patches, inversePatches: inversePatches } });
|
|
172
184
|
return nextState;
|
|
173
185
|
});
|
|
186
|
+
// Anchored objects (Excel ANC rules): floating charts / embeds move with
|
|
187
|
+
// their anchor cell, chart series ranges and AllowEditRange rectangles
|
|
188
|
+
// shift like references. Frozen panes are a positional viewport split
|
|
189
|
+
// and are deliberately NOT touched here.
|
|
190
|
+
onChangeEmbeds === null || onChangeEmbeds === void 0 ? void 0 : onChangeEmbeds(function (prevEmbeds) {
|
|
191
|
+
var _a = __read(produceWithPatches(prevEmbeds, function (draft) {
|
|
192
|
+
shiftEmbedsOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
193
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
194
|
+
saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
|
|
195
|
+
return nextState;
|
|
196
|
+
});
|
|
197
|
+
onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
|
|
198
|
+
var _a = __read(produceWithPatches(prevCharts, function (draft) {
|
|
199
|
+
shiftChartsOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
200
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
201
|
+
saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
|
|
202
|
+
return nextState;
|
|
203
|
+
});
|
|
204
|
+
onChangeProtectedRanges === null || onChangeProtectedRanges === void 0 ? void 0 : onChangeProtectedRanges(function (prevProtectedRanges) {
|
|
205
|
+
var _a = __read(produceWithPatches(prevProtectedRanges, function (draft) {
|
|
206
|
+
shiftProtectedRangesOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
|
|
207
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
208
|
+
saveHistory({ protectedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
209
|
+
return nextState;
|
|
210
|
+
});
|
|
174
211
|
// Sheet metadata
|
|
175
212
|
onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
|
|
176
213
|
var _a = __read(produceWithPatches(prevSheets, function (draft) {
|
|
177
|
-
var e_3, _a, e_4, _b
|
|
178
|
-
var
|
|
214
|
+
var e_3, _a, e_4, _b;
|
|
215
|
+
var _c;
|
|
179
216
|
var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
|
|
180
217
|
if (!sheet)
|
|
181
218
|
return;
|
|
@@ -183,7 +220,7 @@ export var deleteColumn = function (_a) {
|
|
|
183
220
|
sheet.columnMetadata.splice(minColumnIndex, count);
|
|
184
221
|
}
|
|
185
222
|
if (sheet.basicFilter) {
|
|
186
|
-
var
|
|
223
|
+
var _d = sheet.basicFilter.range, startColumnIndex = _d.startColumnIndex, endColumnIndex = _d.endColumnIndex;
|
|
187
224
|
if (minColumnIndex < startColumnIndex) {
|
|
188
225
|
moveFilterView(sheet.basicFilter, count, Direction.Left);
|
|
189
226
|
}
|
|
@@ -191,8 +228,8 @@ export var deleteColumn = function (_a) {
|
|
|
191
228
|
minColumnIndex <= endColumnIndex) {
|
|
192
229
|
if (sheet.basicFilter.filterSpecs) {
|
|
193
230
|
try {
|
|
194
|
-
for (var
|
|
195
|
-
var spec =
|
|
231
|
+
for (var _e = __values(sheet.basicFilter.filterSpecs), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
232
|
+
var spec = _f.value;
|
|
196
233
|
if (spec.columnIndex >= minColumnIndex) {
|
|
197
234
|
spec.columnIndex -= count;
|
|
198
235
|
}
|
|
@@ -201,15 +238,15 @@ export var deleteColumn = function (_a) {
|
|
|
201
238
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
202
239
|
finally {
|
|
203
240
|
try {
|
|
204
|
-
if (
|
|
241
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
205
242
|
}
|
|
206
243
|
finally { if (e_3) throw e_3.error; }
|
|
207
244
|
}
|
|
208
245
|
}
|
|
209
246
|
if (sheet.basicFilter.sortSpecs) {
|
|
210
247
|
try {
|
|
211
|
-
for (var
|
|
212
|
-
var spec =
|
|
248
|
+
for (var _g = __values(sheet.basicFilter.sortSpecs), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
249
|
+
var spec = _h.value;
|
|
213
250
|
if (spec.dimensionIndex >= minColumnIndex) {
|
|
214
251
|
spec.dimensionIndex -= count;
|
|
215
252
|
}
|
|
@@ -218,7 +255,7 @@ export var deleteColumn = function (_a) {
|
|
|
218
255
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
219
256
|
finally {
|
|
220
257
|
try {
|
|
221
|
-
if (
|
|
258
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
222
259
|
}
|
|
223
260
|
finally { if (e_4) throw e_4.error; }
|
|
224
261
|
}
|
|
@@ -227,34 +264,56 @@ export var deleteColumn = function (_a) {
|
|
|
227
264
|
sheet.basicFilter.range.endColumnIndex -= delta;
|
|
228
265
|
}
|
|
229
266
|
}
|
|
230
|
-
if (sheet.frozenColumnCount) {
|
|
231
|
-
try {
|
|
232
|
-
for (var sortedColumnIndexes_1 = __values(sortedColumnIndexes), sortedColumnIndexes_1_1 = sortedColumnIndexes_1.next(); !sortedColumnIndexes_1_1.done; sortedColumnIndexes_1_1 = sortedColumnIndexes_1.next()) {
|
|
233
|
-
var columnIndex = sortedColumnIndexes_1_1.value;
|
|
234
|
-
if (columnIndex <= sheet.frozenColumnCount) {
|
|
235
|
-
sheet.frozenColumnCount--;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
240
|
-
finally {
|
|
241
|
-
try {
|
|
242
|
-
if (sortedColumnIndexes_1_1 && !sortedColumnIndexes_1_1.done && (_c = sortedColumnIndexes_1.return)) _c.call(sortedColumnIndexes_1);
|
|
243
|
-
}
|
|
244
|
-
finally { if (e_5) throw e_5.error; }
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
267
|
if (sheet.merges) {
|
|
248
268
|
sheet.merges = shrinkMergesOnColumnDelete(sheet.merges, minColumnIndex, count);
|
|
249
269
|
}
|
|
250
|
-
|
|
270
|
+
// `_xlnm.Print_Area` / `_xlnm.Print_Titles` follow the defined-name rule.
|
|
271
|
+
if (sheet.printSettings) {
|
|
272
|
+
updatePrintSettingsOnStructuralChange(sheet.printSettings, "column", "delete", minColumnIndex, count);
|
|
273
|
+
}
|
|
274
|
+
sheet.columnCount = Math.max(1, ((_c = sheet.columnCount) !== null && _c !== void 0 ? _c : columnCount) - count);
|
|
275
|
+
// Frozen panes are positional: the split stays where it is, only
|
|
276
|
+
// clamped so the freeze never exceeds the shrunk sheet.
|
|
277
|
+
if (sheet.frozenColumnCount &&
|
|
278
|
+
sheet.frozenColumnCount > sheet.columnCount) {
|
|
279
|
+
sheet.frozenColumnCount = sheet.columnCount;
|
|
280
|
+
}
|
|
251
281
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
252
282
|
saveHistory({ sheets: { patches: patches, inversePatches: inversePatches } });
|
|
253
283
|
return nextState;
|
|
254
284
|
});
|
|
285
|
+
// Table columns spliced out above (and tables dropped whole): their
|
|
286
|
+
// structured refs break to `#REF!`, computed from the PRE-edit definitions.
|
|
287
|
+
var removedTableParts = collectRemovedTableParts(tables, sheetId, "column", minColumnIndex, maxColumnIndex);
|
|
255
288
|
// Sheet data: three-pass formula update, then per-row column splice.
|
|
256
289
|
onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
|
|
257
290
|
var _a = __read(produceWithPatches(prevSheetData, function (draft) {
|
|
291
|
+
removeSpillsOfDeletedAnchors({
|
|
292
|
+
draft: draft,
|
|
293
|
+
sheetId: sheetId,
|
|
294
|
+
axis: "column",
|
|
295
|
+
minIndex: minColumnIndex,
|
|
296
|
+
maxIndex: maxColumnIndex,
|
|
297
|
+
getArrayRange: getArrayRange,
|
|
298
|
+
locale: locale,
|
|
299
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
300
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
301
|
+
});
|
|
302
|
+
breakStructuredRefsForRemovedTableParts({
|
|
303
|
+
draft: draft,
|
|
304
|
+
sheetId: sheetId,
|
|
305
|
+
axis: "column",
|
|
306
|
+
referenceIndex: minColumnIndex,
|
|
307
|
+
count: count,
|
|
308
|
+
removed: removedTableParts,
|
|
309
|
+
getGraphNodes: getGraphNodes,
|
|
310
|
+
enqueueCalculation: enqueueCalculation,
|
|
311
|
+
enqueueGraphOperation: enqueueGraphOperation,
|
|
312
|
+
recalcCells: recalcCells,
|
|
313
|
+
locale: locale,
|
|
314
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
315
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
316
|
+
});
|
|
258
317
|
updateFormulasForStructuralChange({
|
|
259
318
|
draft: draft,
|
|
260
319
|
axis: "column",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import { type UseOnDeleteRowProps } from "../hooks/use-on-delete-row";
|
|
3
|
-
export declare const deleteRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, }: UseOnDeleteRowProps<T, S>) => (sheetId: number, rowIndexes: number[]) => void;
|
|
3
|
+
export declare const deleteRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, tables, getArrayRange, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnDeleteRowProps<T, S>) => (sheetId: number, rowIndexes: number[]) => void;
|
|
4
4
|
//# sourceMappingURL=delete-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-row.d.ts","sourceRoot":"","sources":["../../../interface/delete-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-row.d.ts","sourceRoot":"","sources":["../../../interface/delete-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAsBjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SAyY9C,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { __assign, __read, __spreadArray
|
|
1
|
+
import { __assign, __read, __spreadArray } from "tslib";
|
|
2
2
|
import { Direction } from "@rowsncolumns/common-types";
|
|
3
3
|
import { produceWithPatches } from "immer";
|
|
4
|
+
import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
|
|
4
5
|
import { shrinkMergesOnRowDelete } from "../api/merges";
|
|
6
|
+
import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
|
|
5
7
|
import { shiftPivotsOnDelete } from "../api/pivot-range";
|
|
6
8
|
import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
|
|
7
|
-
import { updateSheetRangeOnDelete } from "../api/range";
|
|
8
9
|
import { moveFilterView } from "../api/selection";
|
|
9
10
|
import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
|
|
11
|
+
import { breakStructuredRefsForRemovedTableParts, collectRemovedTableParts, removeSpillsOfDeletedAnchors, } from "../api/structural-table-refs";
|
|
10
12
|
export var deleteRow = function (_a) {
|
|
11
|
-
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables;
|
|
13
|
+
var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, tables = _a.tables, getArrayRange = _a.getArrayRange, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
|
|
12
14
|
return function (sheetId, rowIndexes) {
|
|
13
15
|
if (!rowIndexes.length)
|
|
14
16
|
return;
|
|
@@ -30,32 +32,33 @@ export var deleteRow = function (_a) {
|
|
|
30
32
|
var activeCell = getActiveCell();
|
|
31
33
|
var selections = getSelections();
|
|
32
34
|
var newRowCount = Math.max(1, rowCount - count);
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
35
|
+
// Excel keeps the selection where it was (UI-02): after deleting rows 3:4
|
|
36
|
+
// the selection still reads 3:4 — now over the rows that moved up — and
|
|
37
|
+
// the active cell sits in the first deleted row. Every coordinate simply
|
|
38
|
+
// loses the deleted rows that lie BEFORE it, so an area entirely inside
|
|
39
|
+
// the deleted band keeps its place while areas below slide up; partially
|
|
40
|
+
// overlapping areas shrink like any other range.
|
|
41
|
+
var deletedBefore = function (rowIndex) {
|
|
42
|
+
return sortedRowIndexes.filter(function (index) { return index < rowIndex; }).length;
|
|
43
|
+
};
|
|
44
|
+
var clampRow = function (rowIndex) {
|
|
45
|
+
return Math.min(Math.max(1, rowIndex), newRowCount);
|
|
46
|
+
};
|
|
47
|
+
var nextActiveRowIndex = clampRow(activeCell.rowIndex - deletedBefore(activeCell.rowIndex));
|
|
47
48
|
var nextActiveCell = nextActiveRowIndex === activeCell.rowIndex
|
|
48
49
|
? activeCell
|
|
49
50
|
: __assign(__assign({}, activeCell), { rowIndex: nextActiveRowIndex });
|
|
50
|
-
var fallbackSelectionRowIndex = nextActiveCell.rowIndex;
|
|
51
51
|
var nextSelections = selections.map(function (selection) {
|
|
52
52
|
if (!selection.range)
|
|
53
53
|
return selection;
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
var _a = selection.range, startRowIndex = _a.startRowIndex, endRowIndex = _a.endRowIndex;
|
|
55
|
+
var deletedWithin = sortedRowIndexes.filter(function (index) { return index >= startRowIndex && index <= endRowIndex; }).length;
|
|
56
|
+
var size = endRowIndex - startRowIndex + 1;
|
|
57
|
+
var nextStart = clampRow(startRowIndex - deletedBefore(startRowIndex));
|
|
58
|
+
// A partially covered area shrinks by the rows it lost; an area deleted
|
|
59
|
+
// outright keeps its size (it now frames the rows that moved up).
|
|
60
|
+
var nextSize = deletedWithin < size ? size - deletedWithin : size;
|
|
61
|
+
return __assign(__assign({}, selection), { range: __assign(__assign({}, selection.range), { startRowIndex: nextStart, endRowIndex: clampRow(nextStart + nextSize - 1) }) });
|
|
59
62
|
});
|
|
60
63
|
// Tables: shrink/move based on overlap with deletion; drop tables
|
|
61
64
|
// whose header row is removed.
|
|
@@ -84,7 +87,7 @@ export var deleteRow = function (_a) {
|
|
|
84
87
|
// Data validations
|
|
85
88
|
onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
|
|
86
89
|
var _a = __read(produceWithPatches(prevValidations, function (draft) {
|
|
87
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "row", minRowIndex, count, sheetId);
|
|
90
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "row", minRowIndex, count, sheetId, { getSheetName: getSheetName });
|
|
88
91
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
89
92
|
saveHistory({ dataValidations: { patches: patches, inversePatches: inversePatches } });
|
|
90
93
|
return nextState;
|
|
@@ -92,11 +95,20 @@ export var deleteRow = function (_a) {
|
|
|
92
95
|
// Conditional formats
|
|
93
96
|
onChangeConditionalFormats === null || onChangeConditionalFormats === void 0 ? void 0 : onChangeConditionalFormats(function (prevConditionalFormats) {
|
|
94
97
|
var _a = __read(produceWithPatches(prevConditionalFormats, function (draft) {
|
|
95
|
-
updateRangedRulesOnStructuralChange(draft, "delete", "row", minRowIndex, count, sheetId);
|
|
98
|
+
updateRangedRulesOnStructuralChange(draft, "delete", "row", minRowIndex, count, sheetId, { getSheetName: getSheetName });
|
|
96
99
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
97
100
|
saveHistory({ conditionalFormats: { patches: patches, inversePatches: inversePatches } });
|
|
98
101
|
return nextState;
|
|
99
102
|
});
|
|
103
|
+
// Defined names: shift back / shrink; a name whose whole range is
|
|
104
|
+
// deleted is kept as `#REF!` so its users evaluate `#REF!`, like Excel.
|
|
105
|
+
onChangeNamedRanges === null || onChangeNamedRanges === void 0 ? void 0 : onChangeNamedRanges(function (prevNamedRanges) {
|
|
106
|
+
var _a = __read(produceWithPatches(prevNamedRanges, function (draft) {
|
|
107
|
+
updateNamedRangesOnStructuralChange(draft, "row", "delete", minRowIndex, count, sheetId);
|
|
108
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
109
|
+
saveHistory({ namedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
110
|
+
return nextState;
|
|
111
|
+
});
|
|
100
112
|
// Shift pivot tables: ranges shrink/shift; targetPosition anchors to
|
|
101
113
|
// the start of the deletion when its row falls inside the deletion.
|
|
102
114
|
onChangePivotTables === null || onChangePivotTables === void 0 ? void 0 : onChangePivotTables(function (prevPivots) {
|
|
@@ -129,11 +141,35 @@ export var deleteRow = function (_a) {
|
|
|
129
141
|
saveHistory({ citations: { patches: patches, inversePatches: inversePatches } });
|
|
130
142
|
return nextState;
|
|
131
143
|
});
|
|
144
|
+
// Anchored objects (Excel ANC rules): floating charts / embeds move with
|
|
145
|
+
// their anchor cell, chart series ranges and AllowEditRange rectangles
|
|
146
|
+
// shift like references. Frozen panes are a positional viewport split
|
|
147
|
+
// and are deliberately NOT touched here.
|
|
148
|
+
onChangeEmbeds === null || onChangeEmbeds === void 0 ? void 0 : onChangeEmbeds(function (prevEmbeds) {
|
|
149
|
+
var _a = __read(produceWithPatches(prevEmbeds, function (draft) {
|
|
150
|
+
shiftEmbedsOnStructuralChange(draft, sheetId, "row", "delete", minRowIndex, count);
|
|
151
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
152
|
+
saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
|
|
153
|
+
return nextState;
|
|
154
|
+
});
|
|
155
|
+
onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
|
|
156
|
+
var _a = __read(produceWithPatches(prevCharts, function (draft) {
|
|
157
|
+
shiftChartsOnStructuralChange(draft, sheetId, "row", "delete", minRowIndex, count);
|
|
158
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
159
|
+
saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
|
|
160
|
+
return nextState;
|
|
161
|
+
});
|
|
162
|
+
onChangeProtectedRanges === null || onChangeProtectedRanges === void 0 ? void 0 : onChangeProtectedRanges(function (prevProtectedRanges) {
|
|
163
|
+
var _a = __read(produceWithPatches(prevProtectedRanges, function (draft) {
|
|
164
|
+
shiftProtectedRangesOnStructuralChange(draft, sheetId, "row", "delete", minRowIndex, count);
|
|
165
|
+
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
166
|
+
saveHistory({ protectedRanges: { patches: patches, inversePatches: inversePatches } });
|
|
167
|
+
return nextState;
|
|
168
|
+
});
|
|
132
169
|
// Sheet metadata
|
|
133
170
|
onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
|
|
134
171
|
var _a = __read(produceWithPatches(prevSheets, function (draft) {
|
|
135
|
-
var
|
|
136
|
-
var _b;
|
|
172
|
+
var _a;
|
|
137
173
|
var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
|
|
138
174
|
if (!sheet)
|
|
139
175
|
return;
|
|
@@ -141,7 +177,7 @@ export var deleteRow = function (_a) {
|
|
|
141
177
|
sheet.rowMetadata.splice(minRowIndex, count);
|
|
142
178
|
}
|
|
143
179
|
if (sheet.basicFilter) {
|
|
144
|
-
var
|
|
180
|
+
var _b = sheet.basicFilter.range, startRowIndex = _b.startRowIndex, endRowIndex = _b.endRowIndex;
|
|
145
181
|
if (minRowIndex < startRowIndex) {
|
|
146
182
|
moveFilterView(sheet.basicFilter, count, Direction.Up);
|
|
147
183
|
}
|
|
@@ -154,35 +190,58 @@ export var deleteRow = function (_a) {
|
|
|
154
190
|
delete sheet.basicFilter;
|
|
155
191
|
}
|
|
156
192
|
}
|
|
157
|
-
if (sheet.frozenRowCount) {
|
|
158
|
-
try {
|
|
159
|
-
for (var sortedRowIndexes_1 = __values(sortedRowIndexes), sortedRowIndexes_1_1 = sortedRowIndexes_1.next(); !sortedRowIndexes_1_1.done; sortedRowIndexes_1_1 = sortedRowIndexes_1.next()) {
|
|
160
|
-
var rowIndex = sortedRowIndexes_1_1.value;
|
|
161
|
-
if (rowIndex <= sheet.frozenRowCount) {
|
|
162
|
-
sheet.frozenRowCount--;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
167
|
-
finally {
|
|
168
|
-
try {
|
|
169
|
-
if (sortedRowIndexes_1_1 && !sortedRowIndexes_1_1.done && (_a = sortedRowIndexes_1.return)) _a.call(sortedRowIndexes_1);
|
|
170
|
-
}
|
|
171
|
-
finally { if (e_1) throw e_1.error; }
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
193
|
if (sheet.merges) {
|
|
175
194
|
sheet.merges = shrinkMergesOnRowDelete(sheet.merges, minRowIndex, count);
|
|
176
195
|
}
|
|
177
|
-
|
|
196
|
+
// `_xlnm.Print_Area` / `_xlnm.Print_Titles` follow the defined-name rule.
|
|
197
|
+
if (sheet.printSettings) {
|
|
198
|
+
updatePrintSettingsOnStructuralChange(sheet.printSettings, "row", "delete", minRowIndex, count);
|
|
199
|
+
}
|
|
200
|
+
sheet.rowCount = Math.max(1, ((_a = sheet.rowCount) !== null && _a !== void 0 ? _a : rowCount) - count);
|
|
201
|
+
// Frozen panes are positional: the split stays where it is, only
|
|
202
|
+
// clamped so the freeze never exceeds the shrunk sheet.
|
|
203
|
+
if (sheet.frozenRowCount && sheet.frozenRowCount > sheet.rowCount) {
|
|
204
|
+
sheet.frozenRowCount = sheet.rowCount;
|
|
205
|
+
}
|
|
178
206
|
}), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
|
|
179
207
|
saveHistory({ sheets: { patches: patches, inversePatches: inversePatches } });
|
|
180
208
|
return nextState;
|
|
181
209
|
});
|
|
210
|
+
// Tables whose header row goes (dropped above): their structured refs
|
|
211
|
+
// break to `#REF!`, computed from the PRE-edit definitions.
|
|
212
|
+
var removedTableParts = collectRemovedTableParts(tables, sheetId, "row", minRowIndex, maxRowIndex);
|
|
182
213
|
// Sheet data: three-pass formula update, then splice the rows out.
|
|
183
214
|
onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
|
|
184
215
|
var _a = __read(produceWithPatches(prevSheetData, function (draft) {
|
|
185
216
|
var _a;
|
|
217
|
+
// A dynamic array whose anchor row is deleted takes its spill with
|
|
218
|
+
// it — drop the projected cells before the rows close up.
|
|
219
|
+
removeSpillsOfDeletedAnchors({
|
|
220
|
+
draft: draft,
|
|
221
|
+
sheetId: sheetId,
|
|
222
|
+
axis: "row",
|
|
223
|
+
minIndex: minRowIndex,
|
|
224
|
+
maxIndex: maxRowIndex,
|
|
225
|
+
getArrayRange: getArrayRange,
|
|
226
|
+
locale: locale,
|
|
227
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
228
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
229
|
+
});
|
|
230
|
+
breakStructuredRefsForRemovedTableParts({
|
|
231
|
+
draft: draft,
|
|
232
|
+
sheetId: sheetId,
|
|
233
|
+
axis: "row",
|
|
234
|
+
referenceIndex: minRowIndex,
|
|
235
|
+
count: count,
|
|
236
|
+
removed: removedTableParts,
|
|
237
|
+
getGraphNodes: getGraphNodes,
|
|
238
|
+
enqueueCalculation: enqueueCalculation,
|
|
239
|
+
enqueueGraphOperation: enqueueGraphOperation,
|
|
240
|
+
recalcCells: recalcCells,
|
|
241
|
+
locale: locale,
|
|
242
|
+
cellXfsRegistry: cellXfsRegistry,
|
|
243
|
+
sharedStringRegistry: sharedStringRegistry,
|
|
244
|
+
});
|
|
186
245
|
updateFormulasForStructuralChange({
|
|
187
246
|
draft: draft,
|
|
188
247
|
axis: "row",
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { CellData, CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { UseOnInsertCellsShiftDown } from "../hooks/use-on-insert-cells-shift-down";
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Insert cells ▸ Shift cells down (SHF-01, SHF-06, SHF-07, SHF-08, FMT-03). Only the selection's
|
|
6
|
+
* columns move: every cell at or below the selection's first row slides down by the selection's
|
|
7
|
+
* height. References that target a shifted cell follow it; a range that lies entirely inside the
|
|
8
|
+
* shifted columns and straddles the insertion row grows by the inserted height (SHF-08); a wider
|
|
9
|
+
* range keeps its address (SHF-07). The vacated cells take the formatting of the cell above the
|
|
10
|
+
* insertion (FMT-03). Refusals (torn merge/table/array, off-sheet push) are decided by the hook via
|
|
11
|
+
* `getShiftCellsRefusal` before this runs.
|
|
12
|
+
*/
|
|
13
|
+
export declare const insertCellsShiftDown: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getSheetName, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, }: UseOnInsertCellsShiftDown<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
|
|
5
14
|
//# sourceMappingURL=insert-cells-shift-down.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-cells-shift-down.d.ts","sourceRoot":"","sources":["../../../interface/insert-cells-shift-down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-cells-shift-down.d.ts","sourceRoot":"","sources":["../../../interface/insert-cells-shift-down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAe5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAIzF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8RAkBvE,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE9B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAoQnD,CAAC"}
|