@rowsncolumns/spreadsheet-state 28.0.76 → 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.
Files changed (95) hide show
  1. package/dist/cjs/api/copy-paste.d.ts +8 -1
  2. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  3. package/dist/cjs/api/copy-paste.js +4 -2
  4. package/dist/cjs/api/immer-utils.d.ts +11 -1
  5. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  6. package/dist/cjs/api/immer-utils.js +17 -1
  7. package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
  8. package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
  9. package/dist/cjs/api/insert-cut-cells.js +60 -0
  10. package/dist/cjs/api/merges.d.ts +8 -0
  11. package/dist/cjs/api/merges.d.ts.map +1 -1
  12. package/dist/cjs/api/merges.js +11 -0
  13. package/dist/cjs/api/subtotal.d.ts +20 -13
  14. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  15. package/dist/cjs/api/subtotal.js +26 -19
  16. package/dist/cjs/commands.d.ts +9 -0
  17. package/dist/cjs/commands.d.ts.map +1 -1
  18. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  19. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  20. package/dist/cjs/hooks/use-on-copy.js +2 -3
  21. package/dist/cjs/hooks/use-on-move-columns.d.ts +2 -1
  22. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  23. package/dist/cjs/hooks/use-on-move-columns.js +14 -5
  24. package/dist/cjs/hooks/use-on-move-rows.d.ts +16 -1
  25. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  26. package/dist/cjs/hooks/use-on-move-rows.js +30 -5
  27. package/dist/cjs/hooks/use-on-move-selection.d.ts +7 -2
  28. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  29. package/dist/cjs/hooks/use-on-move-selection.js +14 -1
  30. package/dist/cjs/hooks/use-on-paste.d.ts +12 -2
  31. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  32. package/dist/cjs/hooks/use-on-paste.js +56 -8
  33. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +14 -3
  34. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  35. package/dist/cjs/hooks/use-spreadsheet-state.js +80 -3
  36. package/dist/cjs/index.d.ts +1 -0
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/index.js +1 -0
  39. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  40. package/dist/cjs/interface/delete-column.js +20 -20
  41. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  42. package/dist/cjs/interface/delete-row.js +21 -21
  43. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  44. package/dist/cjs/interface/insert-column.js +34 -18
  45. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  46. package/dist/cjs/interface/insert-row.js +16 -5
  47. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  48. package/dist/esm/api/copy-paste.d.ts +8 -1
  49. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  50. package/dist/esm/api/copy-paste.js +4 -2
  51. package/dist/esm/api/immer-utils.d.ts +11 -1
  52. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  53. package/dist/esm/api/immer-utils.js +16 -0
  54. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  55. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  56. package/dist/esm/api/insert-cut-cells.js +67 -0
  57. package/dist/esm/api/merges.d.ts +8 -0
  58. package/dist/esm/api/merges.d.ts.map +1 -1
  59. package/dist/esm/api/merges.js +9 -0
  60. package/dist/esm/api/subtotal.d.ts +20 -13
  61. package/dist/esm/api/subtotal.d.ts.map +1 -1
  62. package/dist/esm/api/subtotal.js +15 -8
  63. package/dist/esm/commands.d.ts +9 -0
  64. package/dist/esm/commands.d.ts.map +1 -1
  65. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  66. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  67. package/dist/esm/hooks/use-on-copy.js +2 -3
  68. package/dist/esm/hooks/use-on-move-columns.d.ts +2 -1
  69. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  70. package/dist/esm/hooks/use-on-move-columns.js +14 -5
  71. package/dist/esm/hooks/use-on-move-rows.d.ts +16 -1
  72. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  73. package/dist/esm/hooks/use-on-move-rows.js +30 -5
  74. package/dist/esm/hooks/use-on-move-selection.d.ts +7 -2
  75. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  76. package/dist/esm/hooks/use-on-move-selection.js +14 -1
  77. package/dist/esm/hooks/use-on-paste.d.ts +12 -2
  78. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  79. package/dist/esm/hooks/use-on-paste.js +41 -2
  80. package/dist/esm/hooks/use-spreadsheet-state.d.ts +14 -3
  81. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  82. package/dist/esm/hooks/use-spreadsheet-state.js +80 -2
  83. package/dist/esm/index.d.ts +1 -0
  84. package/dist/esm/index.d.ts.map +1 -1
  85. package/dist/esm/index.js +1 -0
  86. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  87. package/dist/esm/interface/delete-column.js +17 -28
  88. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  89. package/dist/esm/interface/delete-row.js +18 -29
  90. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  91. package/dist/esm/interface/insert-column.js +22 -10
  92. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  93. package/dist/esm/interface/insert-row.js +13 -4
  94. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  95. package/package.json +12 -12
@@ -4,7 +4,6 @@ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProt
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";
7
- import { updateSheetRangeOnDelete } from "../api/range";
8
7
  import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
9
8
  import { moveFilterView } from "../api/selection";
10
9
  import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
@@ -30,43 +29,33 @@ export const deleteColumn = ({ rowCount, columnCount, locale, cellXfsRegistry, s
30
29
  const activeCell = getActiveCell();
31
30
  const selections = getSelections();
32
31
  const newColumnCount = Math.max(1, columnCount - count);
33
- // NOTE: contiguity assumption — see delete-row.ts.
34
- const inDeletedColumns = activeCell.columnIndex >= minColumnIndex &&
35
- activeCell.columnIndex <= maxColumnIndex;
36
- let nextActiveColumnIndex = activeCell.columnIndex;
37
- if (inDeletedColumns) {
38
- nextActiveColumnIndex = Math.max(1, minColumnIndex - 1);
39
- }
40
- else if (activeCell.columnIndex > maxColumnIndex) {
41
- nextActiveColumnIndex = Math.max(1, activeCell.columnIndex - count);
42
- }
43
- if (nextActiveColumnIndex > newColumnCount) {
44
- nextActiveColumnIndex = newColumnCount;
45
- }
32
+ // Excel keeps the selection where it was (UI-02, column twin): after
33
+ // deleting columns C:D the selection still reads C:D — now over the
34
+ // columns that moved left — and the active cell sits in the first deleted
35
+ // column. Every coordinate loses the deleted columns that lie BEFORE it.
36
+ const deletedBefore = (columnIndex) => sortedColumnIndexes.filter((index) => index < columnIndex).length;
37
+ const clampColumn = (columnIndex) => Math.min(Math.max(1, columnIndex), newColumnCount);
38
+ const nextActiveColumnIndex = clampColumn(activeCell.columnIndex - deletedBefore(activeCell.columnIndex));
46
39
  const nextActiveCell = nextActiveColumnIndex === activeCell.columnIndex
47
40
  ? activeCell
48
41
  : { ...activeCell, columnIndex: nextActiveColumnIndex };
49
- const fallbackSelectionColumnIndex = nextActiveCell.columnIndex;
50
42
  const nextSelections = selections.map((selection) => {
51
43
  if (!selection.range)
52
44
  return selection;
53
- const updatedRange = updateSheetRangeOnDelete({ ...selection.range, sheetId }, "column", minColumnIndex, count, sheetId);
54
- if (updatedRange) {
55
- return {
56
- ...selection,
57
- range: {
58
- ...selection.range,
59
- startColumnIndex: updatedRange.startColumnIndex,
60
- endColumnIndex: updatedRange.endColumnIndex,
61
- },
62
- };
63
- }
45
+ const { startColumnIndex, endColumnIndex } = selection.range;
46
+ const deletedWithin = sortedColumnIndexes.filter((index) => index >= startColumnIndex && index <= endColumnIndex).length;
47
+ const size = endColumnIndex - startColumnIndex + 1;
48
+ const nextStart = clampColumn(startColumnIndex - deletedBefore(startColumnIndex));
49
+ // A partially covered area shrinks by the columns it lost; an area
50
+ // deleted outright keeps its size (it now frames the columns that moved
51
+ // left).
52
+ const nextSize = deletedWithin < size ? size - deletedWithin : size;
64
53
  return {
65
54
  ...selection,
66
55
  range: {
67
56
  ...selection.range,
68
- startColumnIndex: fallbackSelectionColumnIndex,
69
- endColumnIndex: fallbackSelectionColumnIndex,
57
+ startColumnIndex: nextStart,
58
+ endColumnIndex: clampColumn(nextStart + nextSize - 1),
70
59
  },
71
60
  };
72
61
  });
@@ -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;AAuBjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,SAmZ9C,CAAC"}
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"}
@@ -4,7 +4,6 @@ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProt
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";
7
- import { updateSheetRangeOnDelete } from "../api/range";
8
7
  import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
9
8
  import { moveFilterView } from "../api/selection";
10
9
  import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
@@ -31,44 +30,34 @@ export const deleteRow = ({ rowCount, columnCount, locale, cellXfsRegistry, shar
31
30
  const activeCell = getActiveCell();
32
31
  const selections = getSelections();
33
32
  const newRowCount = Math.max(1, rowCount - count);
34
- // NOTE: this treats `[minRowIndex..maxRowIndex]` as a contiguous block.
35
- // Non-contiguous deletes (e.g. rows [2, 5, 10]) currently misclassify
36
- // intermediate rows as deleted. Document/track separately.
37
- const inDeletedRows = activeCell.rowIndex >= minRowIndex && activeCell.rowIndex <= maxRowIndex;
38
- let nextActiveRowIndex = activeCell.rowIndex;
39
- if (inDeletedRows) {
40
- nextActiveRowIndex = Math.max(1, minRowIndex - 1);
41
- }
42
- else if (activeCell.rowIndex > maxRowIndex) {
43
- nextActiveRowIndex = Math.max(1, activeCell.rowIndex - count);
44
- }
45
- if (nextActiveRowIndex > newRowCount) {
46
- nextActiveRowIndex = newRowCount;
47
- }
33
+ // Excel keeps the selection where it was (UI-02): after deleting rows 3:4
34
+ // the selection still reads 3:4 — now over the rows that moved up — and
35
+ // the active cell sits in the first deleted row. Every coordinate simply
36
+ // loses the deleted rows that lie BEFORE it, so an area entirely inside
37
+ // the deleted band keeps its place while areas below slide up; partially
38
+ // overlapping areas shrink like any other range.
39
+ const deletedBefore = (rowIndex) => sortedRowIndexes.filter((index) => index < rowIndex).length;
40
+ const clampRow = (rowIndex) => Math.min(Math.max(1, rowIndex), newRowCount);
41
+ const nextActiveRowIndex = clampRow(activeCell.rowIndex - deletedBefore(activeCell.rowIndex));
48
42
  const nextActiveCell = nextActiveRowIndex === activeCell.rowIndex
49
43
  ? activeCell
50
44
  : { ...activeCell, rowIndex: nextActiveRowIndex };
51
- const fallbackSelectionRowIndex = nextActiveCell.rowIndex;
52
45
  const nextSelections = selections.map((selection) => {
53
46
  if (!selection.range)
54
47
  return selection;
55
- const updatedRange = updateSheetRangeOnDelete({ ...selection.range, sheetId }, "row", minRowIndex, count, sheetId);
56
- if (updatedRange) {
57
- return {
58
- ...selection,
59
- range: {
60
- ...selection.range,
61
- startRowIndex: updatedRange.startRowIndex,
62
- endRowIndex: updatedRange.endRowIndex,
63
- },
64
- };
65
- }
48
+ const { startRowIndex, endRowIndex } = selection.range;
49
+ const deletedWithin = sortedRowIndexes.filter((index) => index >= startRowIndex && index <= endRowIndex).length;
50
+ const size = endRowIndex - startRowIndex + 1;
51
+ const nextStart = clampRow(startRowIndex - deletedBefore(startRowIndex));
52
+ // A partially covered area shrinks by the rows it lost; an area deleted
53
+ // outright keeps its size (it now frames the rows that moved up).
54
+ const nextSize = deletedWithin < size ? size - deletedWithin : size;
66
55
  return {
67
56
  ...selection,
68
57
  range: {
69
58
  ...selection.range,
70
- startRowIndex: fallbackSelectionRowIndex,
71
- endRowIndex: fallbackSelectionRowIndex,
59
+ startRowIndex: nextStart,
60
+ endRowIndex: clampRow(nextStart + nextSize - 1),
72
61
  },
73
62
  };
74
63
  });
@@ -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;AA6B5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,mgBA8B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,sBAAsB,MAAM,EAAE,mBAAc,SAmZtE,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qQAiBpE,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,gBAAgB,CACnB,MAEG,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,WAAW,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,SA2V9C,CAAC"}
1
+ {"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;AAkC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,mgBA8B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,sBAAsB,MAAM,EAAE,mBAAc,SAoatE,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qQAiBpE,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,gBAAgB,CACnB,MAEG,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,WAAW,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,SA2V9C,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
+ import { isNil } from "@rowsncolumns/utils";
2
3
  import { produceWithPatches } from "immer";
3
4
  import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
4
5
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
5
6
  import { createSheetCellIdentifier, expandRangesInFormula, } from "../api/formula";
6
- import { cloneCellWithFormatting, createSheetDraft } from "../api/immer-utils";
7
+ import { cloneCellWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
7
8
  import { expandMergesOnColumnInsert, moveMergedCells } from "../api/merges";
8
9
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
9
10
  import { shiftPivotsOnInsert } from "../api/pivot-range";
@@ -148,7 +149,11 @@ export const insertColumn = ({ rowCount, columnCount, locale, maxColumnCount, ta
148
149
  if (!sheet)
149
150
  return;
150
151
  if (sheet.columnMetadata) {
151
- sheet.columnMetadata.splice(referenceColumnIndex, 0, ...Array.from({ length: numColumns }, () => null));
152
+ // Excel "Format Same As Left" (FMT-02) covers the column width and
153
+ // hidden state: the inserted columns inherit the metadata of the
154
+ // column to the left (column A takes the pushed-right column's).
155
+ const inherited = inheritedDimensionMetadata(sheet.columnMetadata, referenceColumnIndex);
156
+ sheet.columnMetadata.splice(referenceColumnIndex, 0, ...Array.from({ length: numColumns }, () => inherited ? { ...inherited } : null));
152
157
  }
153
158
  if (sheet.basicFilter) {
154
159
  const { startColumnIndex, endColumnIndex } = sheet.basicFilter.range;
@@ -211,20 +216,27 @@ export const insertColumn = ({ rowCount, columnCount, locale, maxColumnCount, ta
211
216
  cellXfsRegistry,
212
217
  sharedStringRegistry,
213
218
  });
214
- // Insert columns into each row's values array.
219
+ // Insert columns into each row's values array. Excel "Format Same
220
+ // As Left" (FMT-02): every new cell takes the formatting (never the
221
+ // value) of the cell to its LEFT; only an insert at column A seeds
222
+ // from the column being pushed right.
215
223
  const sheetRows = draft[sheetId];
216
224
  if (sheetRows) {
225
+ const sourceColumnIndex = referenceColumnIndex > 1
226
+ ? referenceColumnIndex - 1
227
+ : referenceColumnIndex;
217
228
  for (let rowIndex = 1; rowIndex < sheetRows.length; rowIndex++) {
218
229
  const row = sheetRows[rowIndex];
219
230
  if (!row?.values)
220
231
  continue;
221
- if (row.values.length > referenceColumnIndex) {
222
- const formattingSource = row.values[referenceColumnIndex] ??
223
- row.values[referenceColumnIndex - 1] ??
224
- undefined;
225
- const newColumns = Array.from({ length: numColumns }, () => cloneCellWithFormatting(formattingSource));
226
- row.values.splice(referenceColumnIndex, 0, ...newColumns);
227
- }
232
+ const formattingSource = row.values[sourceColumnIndex] ?? undefined;
233
+ // Rows that end before the insertion point have nothing to
234
+ // shift; they only grow when there is a format to inherit.
235
+ const hasCellsToShift = row.values.length > referenceColumnIndex;
236
+ if (!hasCellsToShift && isNil(formattingSource))
237
+ continue;
238
+ const newColumns = Array.from({ length: numColumns }, () => cloneCellWithFormatting(formattingSource));
239
+ row.values.splice(referenceColumnIndex, 0, ...newColumns);
228
240
  }
229
241
  }
230
242
  // Add table column headers for any table whose header row was
@@ -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;AAkBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,weA4B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA4ShE,CAAC"}
1
+ {"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;AAsBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,weA4B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA0ThE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Direction } from "@rowsncolumns/common-types";
2
2
  import { produceWithPatches } from "immer";
3
3
  import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
4
- import { cloneRowWithFormatting, createSheetDraft } from "../api/immer-utils";
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";
7
7
  import { shiftPivotsOnInsert } from "../api/pivot-range";
@@ -125,7 +125,11 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
125
125
  if (!sheet)
126
126
  return;
127
127
  if (sheet.rowMetadata) {
128
- sheet.rowMetadata.splice(referenceRowIndex, 0, ...Array.from({ length: numRows }, () => null));
128
+ // Excel "Format Same As Above" (FMT-01) covers the row height and
129
+ // hidden state too: the inserted rows inherit the row above's
130
+ // metadata (row 1 has none above and takes the pushed-down row's).
131
+ const inherited = inheritedDimensionMetadata(sheet.rowMetadata, referenceRowIndex);
132
+ sheet.rowMetadata.splice(referenceRowIndex, 0, ...Array.from({ length: numRows }, () => inherited ? { ...inherited } : null));
129
133
  }
130
134
  if (sheet.basicFilter) {
131
135
  const { startRowIndex, endRowIndex } = sheet.basicFilter.range;
@@ -175,8 +179,13 @@ export const insertRow = ({ rowCount, columnCount, locale, maxRowCount, cellXfsR
175
179
  sharedStringRegistry,
176
180
  });
177
181
  const currentSheet = createSheetDraft(draft, sheetId, referenceRowIndex);
178
- const formattingSourceRow = currentSheet[referenceRowIndex] ??
179
- currentSheet[referenceRowIndex - 1];
182
+ // Excel "Format Same As Above" (FMT-01): the new rows take the
183
+ // per-cell formatting (never values) of the row ABOVE the insertion
184
+ // point. Only an insert at row 1 has no row above and seeds from the
185
+ // row being pushed down instead.
186
+ const formattingSourceRow = referenceRowIndex > 1
187
+ ? currentSheet[referenceRowIndex - 1]
188
+ : currentSheet[referenceRowIndex];
180
189
  const newRows = Array.from({ length: numRows }, () => cloneRowWithFormatting(formattingSourceRow));
181
190
  currentSheet.splice(referenceRowIndex, 0, ...newRows);
182
191
  });
@@ -1 +1 @@
1
- {"root":["../../cellxfs-registry.ts","../../commands.ts","../../constants.ts","../../generated-names.ts","../../helpers.ts","../../index.ts","../../server-utils.ts","../../server.browser.ts","../../server.ts","../../shared-string-registry.ts","../../sheet-cell.ts","../../test-setup.ts","../../types.ts","../../vitest.config.ts","../../api/advanced-filter.ts","../../api/anchored-objects.ts","../../api/border.ts","../../api/conditional-format.ts","../../api/copy-paste.ts","../../api/data-validation.ts","../../api/datatype.ts","../../api/date.ts","../../api/decimals.ts","../../api/dependency.ts","../../api/fill-series-spec.ts","../../api/fill.ts","../../api/filter-range.ts","../../api/filter.ts","../../api/format-caches.ts","../../api/formula.ts","../../api/goal-seek.ts","../../api/immer-utils.ts","../../api/intl.ts","../../api/merges.ts","../../api/named-range-structural.ts","../../api/outline.ts","../../api/paint-format.ts","../../api/parse-html.ts","../../api/paste-special.ts","../../api/patches.ts","../../api/pivot-range.ts","../../api/range-rule-helpers.ts","../../api/range.ts","../../api/rename-sheet.ts","../../api/selection.ts","../../api/sort.ts","../../api/split-text.ts","../../api/structural-formula-update.ts","../../api/structural-guards.ts","../../api/structural-table-refs.ts","../../api/subtotal.ts","../../api/table.ts","../../api/validation.ts","../../api/xlsx-source.ts","../../atoms/delete-sheet-atom.ts","../../atoms/dialog-state.atom.ts","../../atoms/editing-data-validation-id.atom.ts","../../atoms/editing-embed.atom.ts","../../atoms/editing-table.atom.ts","../../atoms/error-state.atom.ts","../../atoms/index.ts","../../atoms/insert-image-state.atom.ts","../../atoms/named-range.atom.ts","../../atoms/resize-dimension.atom.ts","../../atoms/sheet-observer.atom.ts","../../components/index.tsx","../../components/dialogs/delete-sheet-confirmation.tsx","../../components/dialogs/error-state.tsx","../../components/editors/cell-format-editor.tsx","../../components/editors/conditional-format-editor.tsx","../../components/editors/conditional-format-rule-editor.tsx","../../components/editors/data-validation-editor.tsx","../../components/editors/data-validation-rule-editor.tsx","../../components/editors/embed-editor.tsx","../../components/editors/insert-image-editor.tsx","../../components/editors/insert-link-editor.tsx","../../components/editors/named-range-editor.tsx","../../components/editors/resize-dimension-editor.tsx","../../components/editors/sheet-filter.tsx","../../components/editors/table-editor.tsx","../../helpers/iterative-calculation.ts","../../helpers/sheet-title.ts","../../hooks/use-async-datasource.ts","../../hooks/use-calculation-initialize.ts","../../hooks/use-calculation-process-array.ts","../../hooks/use-calculation-queue.ts","../../hooks/use-calculation-worker.ts","../../hooks/use-calculation.ts","../../hooks/use-can-edit-cellrange.ts","../../hooks/use-cellxfs-registry.ts","../../hooks/use-citations.ts","../../hooks/use-comments.ts","../../hooks/use-conditional-formatting-rules.ts","../../hooks/use-data-validation-rules.ts","../../hooks/use-deferred-calculation-flush.ts","../../hooks/use-idle-scheduler.ts","../../hooks/use-indent.ts","../../hooks/use-named-range.ts","../../hooks/use-on-adjust-row-height.ts","../../hooks/use-on-advanced-filter.ts","../../hooks/use-on-autoresize.ts","../../hooks/use-on-banded-ranges.ts","../../hooks/use-on-calculation-begin.ts","../../hooks/use-on-calculation-success.ts","../../hooks/use-on-change-batch-stream.ts","../../hooks/use-on-change-batch.ts","../../hooks/use-on-change-calculated-column.ts","../../hooks/use-on-change-decimals.ts","../../hooks/use-on-change-formatting.ts","../../hooks/use-on-change-sheet-tabcolor.ts","../../hooks/use-on-change-table-column.ts","../../hooks/use-on-change-theme.ts","../../hooks/use-on-change.ts","../../hooks/use-on-clear-formatting.ts","../../hooks/use-on-collapse-column-group.ts","../../hooks/use-on-collapse-row-group.ts","../../hooks/use-on-copy.ts","../../hooks/use-on-create-named-range.ts","../../hooks/use-on-create-sheet.ts","../../hooks/use-on-delete-cells-shift-left.ts","../../hooks/use-on-delete-cells-shift-up.ts","../../hooks/use-on-delete-column.ts","../../hooks/use-on-delete-named-range.ts","../../hooks/use-on-delete-row.ts","../../hooks/use-on-delete-sheet.ts","../../hooks/use-on-delete-table-row.ts","../../hooks/use-on-delete.ts","../../hooks/use-on-drag-n-drop.ts","../../hooks/use-on-duplicate-sheet.ts","../../hooks/use-on-embeds.ts","../../hooks/use-on-expand-column-group.ts","../../hooks/use-on-expand-row-group.ts","../../hooks/use-on-fill-range.ts","../../hooks/use-on-fill.ts","../../hooks/use-on-filter-table.ts","../../hooks/use-on-find-replace.ts","../../hooks/use-on-freeze.ts","../../hooks/use-on-goal-seek.ts","../../hooks/use-on-group-columns.ts","../../hooks/use-on-group-rows.ts","../../hooks/use-on-hide-column.ts","../../hooks/use-on-hide-row.ts","../../hooks/use-on-hide-show-sheet.ts","../../hooks/use-on-import-csv-legacy.ts","../../hooks/use-on-import-csv.ts","../../hooks/use-on-import-excel.ts","../../hooks/use-on-insert-autosum.ts","../../hooks/use-on-insert-cells-shift-down.ts","../../hooks/use-on-insert-cells-shift-right.ts","../../hooks/use-on-insert-checkbox.ts","../../hooks/use-on-insert-column.ts","../../hooks/use-on-insert-date-time.ts","../../hooks/use-on-insert-date.ts","../../hooks/use-on-insert-image.ts","../../hooks/use-on-insert-link.ts","../../hooks/use-on-insert-note.ts","../../hooks/use-on-insert-row.ts","../../hooks/use-on-insert-table-row.ts","../../hooks/use-on-insert-time.ts","../../hooks/use-on-locale-change.ts","../../hooks/use-on-merge-unmerge-cells.ts","../../hooks/use-on-move-columns.ts","../../hooks/use-on-move-rows.ts","../../hooks/use-on-move-selection.ts","../../hooks/use-on-move-sheet.ts","../../hooks/use-on-move-table-columns.ts","../../hooks/use-on-paste.ts","../../hooks/use-on-protect-range.ts","../../hooks/use-on-protect-sheet.ts","../../hooks/use-on-remove-duplicates.ts","../../hooks/use-on-rename-sheet.ts","../../hooks/use-on-request-calculate-wrapper.ts","../../hooks/use-on-request-conditional-format.ts","../../hooks/use-on-request-data-validation.ts","../../hooks/use-on-request-define-named-range.ts","../../hooks/use-on-request-delete-sheet.ts","../../hooks/use-on-request-edit-table.ts","../../hooks/use-on-request-format-cells.ts","../../hooks/use-on-request-insert-image.ts","../../hooks/use-on-request-insert-link.ts","../../hooks/use-on-request-resize.ts","../../hooks/use-on-request-update-named-range.ts","../../hooks/use-on-resize-table.ts","../../hooks/use-on-resize.ts","../../hooks/use-on-set-outline-depth.ts","../../hooks/use-on-show-column.ts","../../hooks/use-on-show-row.ts","../../hooks/use-on-sort-column.ts","../../hooks/use-on-sort-range.ts","../../hooks/use-on-sort-table.ts","../../hooks/use-on-subtotal.ts","../../hooks/use-on-table.ts","../../hooks/use-on-trace-dependents-precedents.tsx","../../hooks/use-on-ungroup-columns.ts","../../hooks/use-on-ungroup-rows.ts","../../hooks/use-on-update-named-range.ts","../../hooks/use-on-update-note.ts","../../hooks/use-on-update-sheet.ts","../../hooks/use-paint-format.ts","../../hooks/use-search.ts","../../hooks/use-select-next-prev-sheet.ts","../../hooks/use-sheet-observer.ts","../../hooks/use-sheet-properties.ts","../../hooks/use-sheet-state.ts","../../hooks/use-sheetdata-subscriber.ts","../../hooks/use-slicers.ts","../../hooks/use-split-text-to-columns.ts","../../hooks/use-spreadsheet-state.ts","../../hooks/use-ss-registry.ts","../../hooks/use-structured-reference.ts","../../hooks/use-undo-redo-actions.ts","../../hooks/use-undo-redo.ts","../../hooks/utils/frozen-sort.ts","../../hooks/utils/sort-rows.ts","../../interface/apply-fill.ts","../../interface/auto-resize.ts","../../interface/calculation-interface.ts","../../interface/change-batch-stream.ts","../../interface/change-batch.ts","../../interface/change-border.ts","../../interface/change-calculated-column.ts","../../interface/change-decimals.ts","../../interface/change-formatting.ts","../../interface/change-sheet-tabcolor.ts","../../interface/change-table-column.ts","../../interface/change-theme.ts","../../interface/chart-extensions.ts","../../interface/citations.ts","../../interface/clear-formatting.ts","../../interface/conditional-formatting-rules.ts","../../interface/create-table.ts","../../interface/data-validation-rules.ts","../../interface/data-validation-utils.ts","../../interface/delete-cells-shift-left.ts","../../interface/delete-cells-shift-up.ts","../../interface/delete-cells.ts","../../interface/delete-column.ts","../../interface/delete-row.ts","../../interface/delete-sheet.ts","../../interface/delete-table-column.ts","../../interface/delete-table-row.ts","../../interface/duplicate-sheet.ts","../../interface/embeds.ts","../../interface/freeze.ts","../../interface/helpers.ts","../../interface/hide-column.ts","../../interface/hide-row.ts","../../interface/indent.ts","../../interface/insert-cells-shift-down.ts","../../interface/insert-cells-shift-right.ts","../../interface/insert-column.ts","../../interface/insert-note.ts","../../interface/insert-row.ts","../../interface/insert-table-row.ts","../../interface/interface-cli.ts","../../interface/named-range-operations.ts","../../interface/new-sheet.ts","../../interface/pivot-extensions.ts","../../interface/remove-duplicates.ts","../../interface/remove-table.ts","../../interface/resize-utils.ts","../../interface/resize.ts","../../interface/slicers.ts","../../interface/split-text.ts","../../interface/spreadsheet-interface.ts","../../interface/table-totalrow.ts","../../interface/table-utils.ts","../../interface/update-sheet.ts","../../interface/update-table.ts","../../validation-schema/table.schema.ts"],"version":"5.8.3"}
1
+ {"root":["../../cellxfs-registry.ts","../../commands.ts","../../constants.ts","../../generated-names.ts","../../helpers.ts","../../index.ts","../../server-utils.ts","../../server.browser.ts","../../server.ts","../../shared-string-registry.ts","../../sheet-cell.ts","../../test-setup.ts","../../types.ts","../../vitest.config.ts","../../api/advanced-filter.ts","../../api/anchored-objects.ts","../../api/border.ts","../../api/conditional-format.ts","../../api/copy-paste.ts","../../api/data-validation.ts","../../api/datatype.ts","../../api/date.ts","../../api/decimals.ts","../../api/dependency.ts","../../api/fill-series-spec.ts","../../api/fill.ts","../../api/filter-range.ts","../../api/filter.ts","../../api/format-caches.ts","../../api/formula.ts","../../api/goal-seek.ts","../../api/immer-utils.ts","../../api/insert-cut-cells.ts","../../api/intl.ts","../../api/merges.ts","../../api/named-range-structural.ts","../../api/outline.ts","../../api/paint-format.ts","../../api/parse-html.ts","../../api/paste-special.ts","../../api/patches.ts","../../api/pivot-range.ts","../../api/range-rule-helpers.ts","../../api/range.ts","../../api/rename-sheet.ts","../../api/selection.ts","../../api/sort.ts","../../api/split-text.ts","../../api/structural-formula-update.ts","../../api/structural-guards.ts","../../api/structural-table-refs.ts","../../api/subtotal.ts","../../api/table.ts","../../api/validation.ts","../../api/xlsx-source.ts","../../atoms/delete-sheet-atom.ts","../../atoms/dialog-state.atom.ts","../../atoms/editing-data-validation-id.atom.ts","../../atoms/editing-embed.atom.ts","../../atoms/editing-table.atom.ts","../../atoms/error-state.atom.ts","../../atoms/index.ts","../../atoms/insert-image-state.atom.ts","../../atoms/named-range.atom.ts","../../atoms/resize-dimension.atom.ts","../../atoms/sheet-observer.atom.ts","../../components/index.tsx","../../components/dialogs/delete-sheet-confirmation.tsx","../../components/dialogs/error-state.tsx","../../components/editors/cell-format-editor.tsx","../../components/editors/conditional-format-editor.tsx","../../components/editors/conditional-format-rule-editor.tsx","../../components/editors/data-validation-editor.tsx","../../components/editors/data-validation-rule-editor.tsx","../../components/editors/embed-editor.tsx","../../components/editors/insert-image-editor.tsx","../../components/editors/insert-link-editor.tsx","../../components/editors/named-range-editor.tsx","../../components/editors/resize-dimension-editor.tsx","../../components/editors/sheet-filter.tsx","../../components/editors/table-editor.tsx","../../helpers/iterative-calculation.ts","../../helpers/sheet-title.ts","../../hooks/use-async-datasource.ts","../../hooks/use-calculation-initialize.ts","../../hooks/use-calculation-process-array.ts","../../hooks/use-calculation-queue.ts","../../hooks/use-calculation-worker.ts","../../hooks/use-calculation.ts","../../hooks/use-can-edit-cellrange.ts","../../hooks/use-cellxfs-registry.ts","../../hooks/use-citations.ts","../../hooks/use-comments.ts","../../hooks/use-conditional-formatting-rules.ts","../../hooks/use-data-validation-rules.ts","../../hooks/use-deferred-calculation-flush.ts","../../hooks/use-idle-scheduler.ts","../../hooks/use-indent.ts","../../hooks/use-named-range.ts","../../hooks/use-on-adjust-row-height.ts","../../hooks/use-on-advanced-filter.ts","../../hooks/use-on-autoresize.ts","../../hooks/use-on-banded-ranges.ts","../../hooks/use-on-calculation-begin.ts","../../hooks/use-on-calculation-success.ts","../../hooks/use-on-change-batch-stream.ts","../../hooks/use-on-change-batch.ts","../../hooks/use-on-change-calculated-column.ts","../../hooks/use-on-change-decimals.ts","../../hooks/use-on-change-formatting.ts","../../hooks/use-on-change-sheet-tabcolor.ts","../../hooks/use-on-change-table-column.ts","../../hooks/use-on-change-theme.ts","../../hooks/use-on-change.ts","../../hooks/use-on-clear-formatting.ts","../../hooks/use-on-collapse-column-group.ts","../../hooks/use-on-collapse-row-group.ts","../../hooks/use-on-copy.ts","../../hooks/use-on-create-named-range.ts","../../hooks/use-on-create-sheet.ts","../../hooks/use-on-delete-cells-shift-left.ts","../../hooks/use-on-delete-cells-shift-up.ts","../../hooks/use-on-delete-column.ts","../../hooks/use-on-delete-named-range.ts","../../hooks/use-on-delete-row.ts","../../hooks/use-on-delete-sheet.ts","../../hooks/use-on-delete-table-row.ts","../../hooks/use-on-delete.ts","../../hooks/use-on-drag-n-drop.ts","../../hooks/use-on-duplicate-sheet.ts","../../hooks/use-on-embeds.ts","../../hooks/use-on-expand-column-group.ts","../../hooks/use-on-expand-row-group.ts","../../hooks/use-on-fill-range.ts","../../hooks/use-on-fill.ts","../../hooks/use-on-filter-table.ts","../../hooks/use-on-find-replace.ts","../../hooks/use-on-freeze.ts","../../hooks/use-on-goal-seek.ts","../../hooks/use-on-group-columns.ts","../../hooks/use-on-group-rows.ts","../../hooks/use-on-hide-column.ts","../../hooks/use-on-hide-row.ts","../../hooks/use-on-hide-show-sheet.ts","../../hooks/use-on-import-csv-legacy.ts","../../hooks/use-on-import-csv.ts","../../hooks/use-on-import-excel.ts","../../hooks/use-on-insert-autosum.ts","../../hooks/use-on-insert-cells-shift-down.ts","../../hooks/use-on-insert-cells-shift-right.ts","../../hooks/use-on-insert-checkbox.ts","../../hooks/use-on-insert-column.ts","../../hooks/use-on-insert-date-time.ts","../../hooks/use-on-insert-date.ts","../../hooks/use-on-insert-image.ts","../../hooks/use-on-insert-link.ts","../../hooks/use-on-insert-note.ts","../../hooks/use-on-insert-row.ts","../../hooks/use-on-insert-table-row.ts","../../hooks/use-on-insert-time.ts","../../hooks/use-on-locale-change.ts","../../hooks/use-on-merge-unmerge-cells.ts","../../hooks/use-on-move-columns.ts","../../hooks/use-on-move-rows.ts","../../hooks/use-on-move-selection.ts","../../hooks/use-on-move-sheet.ts","../../hooks/use-on-move-table-columns.ts","../../hooks/use-on-paste.ts","../../hooks/use-on-protect-range.ts","../../hooks/use-on-protect-sheet.ts","../../hooks/use-on-remove-duplicates.ts","../../hooks/use-on-rename-sheet.ts","../../hooks/use-on-request-calculate-wrapper.ts","../../hooks/use-on-request-conditional-format.ts","../../hooks/use-on-request-data-validation.ts","../../hooks/use-on-request-define-named-range.ts","../../hooks/use-on-request-delete-sheet.ts","../../hooks/use-on-request-edit-table.ts","../../hooks/use-on-request-format-cells.ts","../../hooks/use-on-request-insert-image.ts","../../hooks/use-on-request-insert-link.ts","../../hooks/use-on-request-resize.ts","../../hooks/use-on-request-update-named-range.ts","../../hooks/use-on-resize-table.ts","../../hooks/use-on-resize.ts","../../hooks/use-on-set-outline-depth.ts","../../hooks/use-on-show-column.ts","../../hooks/use-on-show-row.ts","../../hooks/use-on-sort-column.ts","../../hooks/use-on-sort-range.ts","../../hooks/use-on-sort-table.ts","../../hooks/use-on-subtotal.ts","../../hooks/use-on-table.ts","../../hooks/use-on-trace-dependents-precedents.tsx","../../hooks/use-on-ungroup-columns.ts","../../hooks/use-on-ungroup-rows.ts","../../hooks/use-on-update-named-range.ts","../../hooks/use-on-update-note.ts","../../hooks/use-on-update-sheet.ts","../../hooks/use-paint-format.ts","../../hooks/use-search.ts","../../hooks/use-select-next-prev-sheet.ts","../../hooks/use-sheet-observer.ts","../../hooks/use-sheet-properties.ts","../../hooks/use-sheet-state.ts","../../hooks/use-sheetdata-subscriber.ts","../../hooks/use-slicers.ts","../../hooks/use-split-text-to-columns.ts","../../hooks/use-spreadsheet-state.ts","../../hooks/use-ss-registry.ts","../../hooks/use-structured-reference.ts","../../hooks/use-undo-redo-actions.ts","../../hooks/use-undo-redo.ts","../../hooks/utils/frozen-sort.ts","../../hooks/utils/sort-rows.ts","../../interface/apply-fill.ts","../../interface/auto-resize.ts","../../interface/calculation-interface.ts","../../interface/change-batch-stream.ts","../../interface/change-batch.ts","../../interface/change-border.ts","../../interface/change-calculated-column.ts","../../interface/change-decimals.ts","../../interface/change-formatting.ts","../../interface/change-sheet-tabcolor.ts","../../interface/change-table-column.ts","../../interface/change-theme.ts","../../interface/chart-extensions.ts","../../interface/citations.ts","../../interface/clear-formatting.ts","../../interface/conditional-formatting-rules.ts","../../interface/create-table.ts","../../interface/data-validation-rules.ts","../../interface/data-validation-utils.ts","../../interface/delete-cells-shift-left.ts","../../interface/delete-cells-shift-up.ts","../../interface/delete-cells.ts","../../interface/delete-column.ts","../../interface/delete-row.ts","../../interface/delete-sheet.ts","../../interface/delete-table-column.ts","../../interface/delete-table-row.ts","../../interface/duplicate-sheet.ts","../../interface/embeds.ts","../../interface/freeze.ts","../../interface/helpers.ts","../../interface/hide-column.ts","../../interface/hide-row.ts","../../interface/indent.ts","../../interface/insert-cells-shift-down.ts","../../interface/insert-cells-shift-right.ts","../../interface/insert-column.ts","../../interface/insert-note.ts","../../interface/insert-row.ts","../../interface/insert-table-row.ts","../../interface/interface-cli.ts","../../interface/named-range-operations.ts","../../interface/new-sheet.ts","../../interface/pivot-extensions.ts","../../interface/remove-duplicates.ts","../../interface/remove-table.ts","../../interface/resize-utils.ts","../../interface/resize.ts","../../interface/slicers.ts","../../interface/split-text.ts","../../interface/spreadsheet-interface.ts","../../interface/table-totalrow.ts","../../interface/table-utils.ts","../../interface/update-sheet.ts","../../interface/update-table.ts","../../validation-schema/table.schema.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rowsncolumns/spreadsheet-state",
3
- "version": "28.0.76",
3
+ "version": "29.0.0",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -52,32 +52,32 @@
52
52
  "dist"
53
53
  ],
54
54
  "peerDependencies": {
55
- "@rowsncolumns/calculator": ">=7.2.33",
55
+ "@rowsncolumns/calculator": ">=7.3.0",
56
56
  "@rowsncolumns/common-types": ">=5.2.33",
57
57
  "@rowsncolumns/dag": ">=7.2.30",
58
58
  "@rowsncolumns/fast-formula-parser": "6.2.39",
59
59
  "@rowsncolumns/grid": ">=13.2.33",
60
60
  "@rowsncolumns/icons": ">=7.2.32",
61
- "@rowsncolumns/spreadsheet": ">=10.2.77",
61
+ "@rowsncolumns/spreadsheet": ">=10.3.0",
62
62
  "@rowsncolumns/toolkit": ">=24.4.5",
63
- "@rowsncolumns/ui": ">=15.0.43",
64
- "@rowsncolumns/utils": ">=9.2.44"
63
+ "@rowsncolumns/ui": ">=16.0.0",
64
+ "@rowsncolumns/utils": ">=9.3.0"
65
65
  },
66
66
  "devDependencies": {
67
- "@rowsncolumns/calculator": ">=7.2.33",
67
+ "@rowsncolumns/calculator": ">=7.3.0",
68
68
  "@rowsncolumns/common-types": ">=5.2.33",
69
69
  "@rowsncolumns/dag": ">=7.2.30",
70
70
  "@rowsncolumns/fast-formula-parser": ">=6.2.39",
71
71
  "@rowsncolumns/grid": ">=13.2.33",
72
72
  "@rowsncolumns/icons": ">=7.2.32",
73
- "@rowsncolumns/spreadsheet": ">=10.2.77",
74
- "@rowsncolumns/ui": ">=15.0.43",
75
- "@rowsncolumns/utils": ">=9.2.44"
73
+ "@rowsncolumns/spreadsheet": ">=10.3.0",
74
+ "@rowsncolumns/ui": ">=16.0.0",
75
+ "@rowsncolumns/utils": ">=9.3.0"
76
76
  },
77
77
  "dependencies": {
78
- "@rowsncolumns/calculation-worker": ">=9.0.34",
79
- "@rowsncolumns/date-parser": ">=12.0.32",
80
- "@rowsncolumns/functions": ">=14.0.33",
78
+ "@rowsncolumns/calculation-worker": ">=10.0.0",
79
+ "@rowsncolumns/date-parser": ">=13.0.0",
80
+ "@rowsncolumns/functions": ">=15.0.0",
81
81
  "@rowsncolumns/toolkit": ">=24.4.5",
82
82
  "formik": "^2.4.6",
83
83
  "immer": "^10.1.1",