@rowsncolumns/spreadsheet-state 29.1.0 → 29.1.2

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.
Files changed (75) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +9 -1
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +24 -0
  4. package/dist/cjs/atoms/editing-data-validation-id.atom.d.ts +15 -0
  5. package/dist/cjs/atoms/editing-data-validation-id.atom.d.ts.map +1 -1
  6. package/dist/cjs/atoms/editing-data-validation-id.atom.js +18 -0
  7. package/dist/cjs/components/editors/data-validation-editor.d.ts.map +1 -1
  8. package/dist/cjs/components/editors/data-validation-editor.js +17 -12
  9. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +2 -1
  10. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  11. package/dist/cjs/hooks/use-on-delete-sheet.js +3 -1
  12. package/dist/cjs/hooks/use-on-request-data-validation.d.ts +7 -0
  13. package/dist/cjs/hooks/use-on-request-data-validation.d.ts.map +1 -1
  14. package/dist/cjs/hooks/use-on-request-data-validation.js +23 -11
  15. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  16. package/dist/cjs/hooks/use-spreadsheet-state.js +1 -0
  17. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  18. package/dist/cjs/interface/delete-cells-shift-left.js +8 -2
  19. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  20. package/dist/cjs/interface/delete-cells-shift-up.js +8 -2
  21. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  22. package/dist/cjs/interface/delete-cells.js +27 -21
  23. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  24. package/dist/cjs/interface/delete-column.js +8 -2
  25. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  26. package/dist/cjs/interface/delete-row.js +8 -2
  27. package/dist/cjs/interface/delete-sheet.d.ts +1 -1
  28. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  29. package/dist/cjs/interface/delete-sheet.js +32 -2
  30. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  31. package/dist/cjs/interface/insert-cells-shift-down.js +2 -1
  32. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  33. package/dist/cjs/interface/insert-cells-shift-right.js +2 -1
  34. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  35. package/dist/cjs/interface/insert-column.js +2 -1
  36. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  37. package/dist/cjs/interface/insert-row.js +2 -1
  38. package/dist/esm/api/anchored-objects.d.ts +9 -1
  39. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  40. package/dist/esm/api/anchored-objects.js +24 -0
  41. package/dist/esm/atoms/editing-data-validation-id.atom.d.ts +15 -0
  42. package/dist/esm/atoms/editing-data-validation-id.atom.d.ts.map +1 -1
  43. package/dist/esm/atoms/editing-data-validation-id.atom.js +12 -0
  44. package/dist/esm/components/editors/data-validation-editor.d.ts.map +1 -1
  45. package/dist/esm/components/editors/data-validation-editor.js +17 -12
  46. package/dist/esm/hooks/use-on-delete-sheet.d.ts +2 -1
  47. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  48. package/dist/esm/hooks/use-on-delete-sheet.js +3 -1
  49. package/dist/esm/hooks/use-on-request-data-validation.d.ts +7 -0
  50. package/dist/esm/hooks/use-on-request-data-validation.d.ts.map +1 -1
  51. package/dist/esm/hooks/use-on-request-data-validation.js +23 -11
  52. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  53. package/dist/esm/hooks/use-spreadsheet-state.js +1 -0
  54. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  55. package/dist/esm/interface/delete-cells-shift-left.js +8 -2
  56. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  57. package/dist/esm/interface/delete-cells-shift-up.js +8 -2
  58. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  59. package/dist/esm/interface/delete-cells.js +22 -16
  60. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  61. package/dist/esm/interface/delete-column.js +8 -2
  62. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  63. package/dist/esm/interface/delete-row.js +8 -2
  64. package/dist/esm/interface/delete-sheet.d.ts +1 -1
  65. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  66. package/dist/esm/interface/delete-sheet.js +20 -1
  67. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  68. package/dist/esm/interface/insert-cells-shift-down.js +2 -1
  69. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  70. package/dist/esm/interface/insert-cells-shift-right.js +2 -1
  71. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  72. package/dist/esm/interface/insert-column.js +2 -1
  73. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  74. package/dist/esm/interface/insert-row.js +2 -1
  75. package/package.json +2 -2
@@ -157,24 +157,30 @@ export const deleteCells = ({ locale, rowCount, cellXfsRegistry, sharedStringReg
157
157
  return nextState;
158
158
  });
159
159
  }
160
- // Update citations - remove citations that overlap with deleted cells
161
- onChangeCitations?.((prevCitations) => {
162
- const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
163
- for (let idx = draft.length - 1; idx >= 0; idx--) {
164
- const citation = draft[idx];
165
- // Check if citation is on the same sheet and overlaps with any deleted selection
166
- if (citation.range.sheetId === sheetId &&
167
- finalSelections.some((sel) => areaInsideArea(citation.range, sel.range))) {
168
- // Remove citation since its referenced cells are being deleted
169
- draft.splice(idx, 1);
160
+ // Update citations - retire citations whose cited cells lose their contents.
161
+ // Clearing formats only leaves the cited values in place, so the citations stay.
162
+ if (shouldClearContents) {
163
+ onChangeCitations?.((prevCitations) => {
164
+ const updatedAt = new Date().toISOString();
165
+ const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
166
+ for (let idx = draft.length - 1; idx >= 0; idx--) {
167
+ const citation = draft[idx];
168
+ // Check if citation is active, on the same sheet and inside a cleared selection
169
+ if (citation.active !== false &&
170
+ citation.range.sheetId === sheetId &&
171
+ finalSelections.some((sel) => areaInsideArea(citation.range, sel.range))) {
172
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
173
+ citation.active = false;
174
+ citation.updated_at = updatedAt;
175
+ }
170
176
  }
171
- }
172
- });
173
- saveHistory({
174
- citations: { patches, inversePatches },
177
+ });
178
+ saveHistory({
179
+ citations: { patches, inversePatches },
180
+ });
181
+ return nextState;
175
182
  });
176
- return nextState;
177
- });
183
+ }
178
184
  // Update banded cells
179
185
  onChangeSheets?.((prevSheets) => {
180
186
  const [nextState, patches, inversePatches] = produceWithPatches(prevSheets, (draft) => {
@@ -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;AAuBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAgdjD,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;AAwBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAsdjD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
2
  import { produceWithPatches } from "immer";
3
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
3
+ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, refreshCitationAnchor, } from "../api/anchored-objects";
4
4
  import { shrinkMergesOnColumnDelete } from "../api/merges";
5
5
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
6
6
  import { shiftPivotsOnDelete } from "../api/pivot-range";
@@ -142,6 +142,7 @@ export const deleteColumn = ({ rowCount, columnCount, locale, cellXfsRegistry, s
142
142
  });
143
143
  // Citations
144
144
  onChangeCitations?.((prevCitations) => {
145
+ const updatedAt = new Date().toISOString();
145
146
  const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
146
147
  const deleteEnd = minColumnIndex + count - 1;
147
148
  for (let idx = draft.length - 1; idx >= 0; idx--) {
@@ -151,11 +152,16 @@ export const deleteColumn = ({ rowCount, columnCount, locale, cellXfsRegistry, s
151
152
  const citationStart = citation.range.startColumnIndex;
152
153
  const citationEnd = citation.range.endColumnIndex;
153
154
  if (citationStart <= deleteEnd && citationEnd >= minColumnIndex) {
154
- draft.splice(idx, 1);
155
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
156
+ if (citation.active !== false) {
157
+ citation.active = false;
158
+ citation.updated_at = updatedAt;
159
+ }
155
160
  }
156
161
  else if (citationStart > deleteEnd) {
157
162
  citation.range.startColumnIndex -= count;
158
163
  citation.range.endColumnIndex -= count;
164
+ refreshCitationAnchor(citation);
159
165
  }
160
166
  }
161
167
  });
@@ -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,EAAa,MAAM,2BAA2B,CAAC;AA0B5E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAiCtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SA4jB9C,CAAC"}
1
+ {"version":3,"file":"delete-row.d.ts","sourceRoot":"","sources":["../../../interface/delete-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAa,MAAM,2BAA2B,CAAC;AA2B5E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAiCtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SAkkB9C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
2
  import { produceWithPatches } from "immer";
3
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
3
+ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, refreshCitationAnchor, } from "../api/anchored-objects";
4
4
  import { shrinkMergesOnRowDelete } from "../api/merges";
5
5
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
6
6
  import { shiftPivotsOnDelete } from "../api/pivot-range";
@@ -176,6 +176,7 @@ export const deleteRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
176
176
  // Citations: drop if overlapping with deletion, shift up if entirely
177
177
  // after.
178
178
  onChangeCitations?.((prevCitations) => {
179
+ const updatedAt = new Date().toISOString();
179
180
  const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
180
181
  const deleteEnd = minRowIndex + count - 1;
181
182
  for (let idx = draft.length - 1; idx >= 0; idx--) {
@@ -185,11 +186,16 @@ export const deleteRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
185
186
  const citationStart = citation.range.startRowIndex;
186
187
  const citationEnd = citation.range.endRowIndex;
187
188
  if (citationStart <= deleteEnd && citationEnd >= minRowIndex) {
188
- draft.splice(idx, 1);
189
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
190
+ if (citation.active !== false) {
191
+ citation.active = false;
192
+ citation.updated_at = updatedAt;
193
+ }
189
194
  }
190
195
  else if (citationStart > deleteEnd) {
191
196
  citation.range.startRowIndex -= count;
192
197
  citation.range.endRowIndex -= count;
198
+ refreshCitationAnchor(citation);
193
199
  }
194
200
  }
195
201
  });
@@ -1,4 +1,4 @@
1
1
  import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
2
2
  import type { UseOnDeleteSheetProps } from "../hooks/use-on-delete-sheet";
3
- export declare const deleteSheet: <T extends CellData, S extends Sheet>({ sheets, onChangeSheetData, onChangeActiveSheet, onChangeSheets, onChangeCharts, onChangeEmbeds, onChangeSlicers, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeNamedRanges, onChangeProtectedRanges, createHistory, enqueueGraphOperation, }: UseOnDeleteSheetProps<T, S>) => (sheetId: number) => void;
3
+ export declare const deleteSheet: <T extends CellData, S extends Sheet>({ sheets, onChangeSheetData, onChangeActiveSheet, onChangeSheets, onChangeCharts, onChangeEmbeds, onChangeSlicers, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeNamedRanges, onChangeProtectedRanges, onChangeCitations, createHistory, enqueueGraphOperation, }: UseOnDeleteSheetProps<T, S>) => (sheetId: number) => void;
4
4
  //# sourceMappingURL=delete-sheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-sheet.d.ts","sourceRoot":"","sources":["../../../interface/delete-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAc,MAAM,2BAA2B,CAAC;AAO7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG1E,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+QAe9D,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MACpB,SAAS,MAAM,SAgPxB,CAAC"}
1
+ {"version":3,"file":"delete-sheet.d.ts","sourceRoot":"","sources":["../../../interface/delete-sheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAc,MAAM,2BAA2B,CAAC;AAO7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG1E,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,kSAgB9D,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MACpB,SAAS,MAAM,SAuQxB,CAAC"}
@@ -3,7 +3,7 @@ import { produceWithPatches } from "immer";
3
3
  import { removeChartSpecRangesOnSheet } from "../api/anchored-objects";
4
4
  import { createSheetCellIdentifier } from "../api/formula";
5
5
  import { NAMED_RANGE_REF_ERROR } from "../api/named-range-structural";
6
- export const deleteSheet = ({ sheets, onChangeSheetData, onChangeActiveSheet, onChangeSheets, onChangeCharts, onChangeEmbeds, onChangeSlicers, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeNamedRanges, onChangeProtectedRanges, createHistory, enqueueGraphOperation, }) => {
6
+ export const deleteSheet = ({ sheets, onChangeSheetData, onChangeActiveSheet, onChangeSheets, onChangeCharts, onChangeEmbeds, onChangeSlicers, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeNamedRanges, onChangeProtectedRanges, onChangeCitations, createHistory, enqueueGraphOperation, }) => {
7
7
  return (sheetId) => {
8
8
  const saveHistory = createHistory();
9
9
  const sortedSheets = sortSheetsByIndex(sheets).filter((sheet) => !sheet.hidden);
@@ -38,6 +38,25 @@ export const deleteSheet = ({ sheets, onChangeSheetData, onChangeActiveSheet, on
38
38
  });
39
39
  return nextState;
40
40
  });
41
+ // Retire the citations anchored on the deleted sheet. Soft-delete keeps the
42
+ // record for provenance / undo and hides it from the UI; the patch rides the
43
+ // same history entry as the sheet removal so one undo restores both.
44
+ onChangeCitations?.((prevCitations) => {
45
+ const updatedAt = new Date().toISOString();
46
+ const [nextState, patches, inversePatches] = produceWithPatches(prevCitations, (draft) => {
47
+ for (const citation of draft) {
48
+ if (citation.active !== false && citation.range.sheetId === sheetId) {
49
+ citation.active = false;
50
+ citation.updated_at = updatedAt;
51
+ }
52
+ }
53
+ });
54
+ if (patches.length === 0) {
55
+ return prevCitations;
56
+ }
57
+ saveHistory({ citations: { patches, inversePatches } });
58
+ return nextState;
59
+ });
41
60
  // Add cells to recalc
42
61
  onChangeSheetData?.((prevSheetData) => {
43
62
  const [nextState, patches, inversePatches] = produceWithPatches(prevSheetData, (draft) => {
@@ -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;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAgB5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAIzF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBvE,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE9B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAwRnD,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;AAgB5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAIzF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBvE,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE9B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAyRnD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { produceWithPatches } from "immer";
2
- import { shiftChartsOnCellShift } from "../api/anchored-objects";
2
+ import { refreshCitationAnchor, shiftChartsOnCellShift } from "../api/anchored-objects";
3
3
  import { collectUniqueDependentsForRange, processSideEffectDependentCells, } from "../api/dependency";
4
4
  import { createSheetCellIdentifier, expandRangesInFormula } from "../api/formula";
5
5
  import { cloneCellWithFormatting, createSheetDraft } from "../api/immer-utils";
@@ -79,6 +79,7 @@ export const insertCellsShiftDown = ({ rowCount, columnCount, locale, cellXfsReg
79
79
  if (citation.range.startRowIndex >= r1) {
80
80
  citation.range.startRowIndex += count;
81
81
  citation.range.endRowIndex += count;
82
+ refreshCitationAnchor(citation);
82
83
  }
83
84
  }
84
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insert-cells-shift-right.d.ts","sourceRoot":"","sources":["../../../interface/insert-cells-shift-right.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;AAiB5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAI3F;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBxE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,MAE/B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAyRnD,CAAC"}
1
+ {"version":3,"file":"insert-cells-shift-right.d.ts","sourceRoot":"","sources":["../../../interface/insert-cells-shift-right.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;AAiB5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAI3F;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBxE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,MAE/B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SA0RnD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createArrayRange } from "@rowsncolumns/utils";
2
2
  import { produceWithPatches } from "immer";
3
- import { shiftChartsOnCellShift } from "../api/anchored-objects";
3
+ import { refreshCitationAnchor, shiftChartsOnCellShift } from "../api/anchored-objects";
4
4
  import { collectUniqueDependentsForRange, processSideEffectDependentCells, } from "../api/dependency";
5
5
  import { createSheetCellIdentifier, expandRangesInFormula } from "../api/formula";
6
6
  import { cloneCellWithFormatting, createSheetDraft } from "../api/immer-utils";
@@ -80,6 +80,7 @@ export const insertCellsShiftRight = ({ rowCount, columnCount, locale, cellXfsRe
80
80
  if (citation.range.startColumnIndex >= c1) {
81
81
  citation.range.startColumnIndex += count;
82
82
  citation.range.endColumnIndex += count;
83
+ refreshCitationAnchor(citation);
83
84
  }
84
85
  }
85
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insert-column.d.ts","sourceRoot":"","sources":["../../../interface/insert-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAoC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,ohBA+B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,sBAAsB,MAAM,EAAE,mBAAc,SAobtE,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qRAkBpE,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,gBAAgB,CACnB,MAEG,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,WAAW,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAC3C,cAAS,SAwXZ,CAAC"}
1
+ {"version":3,"file":"insert-column.d.ts","sourceRoot":"","sources":["../../../interface/insert-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAqC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,ohBA+B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,sBAAsB,MAAM,EAAE,mBAAc,SAqbtE,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qRAkBpE,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,gBAAgB,CACnB,MAEG,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,WAAW,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAC3C,cAAS,SAwXZ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
2
  import { isNil } from "@rowsncolumns/utils";
3
3
  import { produceWithPatches } from "immer";
4
- import { shiftChartsOnStructuralChange, shiftChartsOnTableEdit, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, tableBinding, } from "../api/anchored-objects";
4
+ import { shiftChartsOnStructuralChange, shiftChartsOnTableEdit, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, refreshCitationAnchor, tableBinding, } from "../api/anchored-objects";
5
5
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
6
6
  import { createSheetCellIdentifier, expandRangesInFormula, } from "../api/formula";
7
7
  import { cloneCellWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
@@ -110,6 +110,7 @@ export const insertColumn = ({ rowCount, columnCount, locale, maxColumnCount, ta
110
110
  if (referenceColumnIndex <= citation.range.startColumnIndex) {
111
111
  citation.range.startColumnIndex += numColumns;
112
112
  citation.range.endColumnIndex += numColumns;
113
+ refreshCitationAnchor(citation);
113
114
  }
114
115
  }
115
116
  });
@@ -1 +1 @@
1
- {"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAuBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,yfA6B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA4UhE,CAAC"}
1
+ {"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAwBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,yfA6B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA6UhE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
2
  import { produceWithPatches } from "immer";
3
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
3
+ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, refreshCitationAnchor, } from "../api/anchored-objects";
4
4
  import { cloneRowWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
5
5
  import { expandMergesOnRowInsert } from "../api/merges";
6
6
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
@@ -87,6 +87,7 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
87
87
  if (referenceRowIndex <= citation.range.startRowIndex) {
88
88
  citation.range.startRowIndex += numRows;
89
89
  citation.range.endRowIndex += numRows;
90
+ refreshCitationAnchor(citation);
90
91
  }
91
92
  }
92
93
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rowsncolumns/spreadsheet-state",
3
- "version": "29.1.0",
3
+ "version": "29.1.2",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "devDependencies": {
75
75
  "@rowsncolumns/calculator": ">=7.3.0",
76
- "@rowsncolumns/common-types": ">=5.2.34",
76
+ "@rowsncolumns/common-types": ">=5.2.35",
77
77
  "@rowsncolumns/dag": ">=7.2.30",
78
78
  "@rowsncolumns/fast-formula-parser": ">=6.2.40",
79
79
  "@rowsncolumns/grid": ">=13.2.33",