@rowsncolumns/spreadsheet-state 28.0.75 → 28.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +66 -0
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -0
  3. package/dist/cjs/api/anchored-objects.js +259 -0
  4. package/dist/cjs/api/dependency.d.ts +13 -2
  5. package/dist/cjs/api/dependency.d.ts.map +1 -1
  6. package/dist/cjs/api/dependency.js +11 -5
  7. package/dist/cjs/api/formula.d.ts +61 -4
  8. package/dist/cjs/api/formula.d.ts.map +1 -1
  9. package/dist/cjs/api/formula.js +250 -61
  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 +64 -1
  13. package/dist/cjs/api/named-range-structural.d.ts +62 -0
  14. package/dist/cjs/api/named-range-structural.d.ts.map +1 -0
  15. package/dist/cjs/api/named-range-structural.js +197 -0
  16. package/dist/cjs/api/range-rule-helpers.d.ts +45 -1
  17. package/dist/cjs/api/range-rule-helpers.d.ts.map +1 -1
  18. package/dist/cjs/api/range-rule-helpers.js +159 -6
  19. package/dist/cjs/api/structural-formula-update.d.ts.map +1 -1
  20. package/dist/cjs/api/structural-formula-update.js +24 -6
  21. package/dist/cjs/api/structural-guards.d.ts +78 -0
  22. package/dist/cjs/api/structural-guards.d.ts.map +1 -0
  23. package/dist/cjs/api/structural-guards.js +202 -0
  24. package/dist/cjs/api/structural-table-refs.d.ts +94 -0
  25. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -0
  26. package/dist/cjs/api/structural-table-refs.js +313 -0
  27. package/dist/cjs/constants.d.ts +25 -0
  28. package/dist/cjs/constants.d.ts.map +1 -0
  29. package/dist/cjs/constants.js +26 -0
  30. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
  31. package/dist/cjs/hooks/use-calculation-worker.js +64 -6
  32. package/dist/cjs/hooks/use-calculation.d.ts +7 -0
  33. package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
  34. package/dist/cjs/hooks/use-calculation.js +15 -0
  35. package/dist/cjs/hooks/use-on-calculation-success.d.ts +7 -0
  36. package/dist/cjs/hooks/use-on-calculation-success.d.ts.map +1 -1
  37. package/dist/cjs/hooks/use-on-calculation-success.js +7 -1
  38. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
  39. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  40. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +27 -2
  41. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
  42. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  43. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +27 -2
  44. package/dist/cjs/hooks/use-on-delete-column.d.ts +13 -4
  45. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  46. package/dist/cjs/hooks/use-on-delete-column.js +14 -2
  47. package/dist/cjs/hooks/use-on-delete-row.d.ts +13 -4
  48. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  49. package/dist/cjs/hooks/use-on-delete-row.js +14 -2
  50. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
  51. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  52. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +27 -2
  53. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
  54. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  55. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +27 -2
  56. package/dist/cjs/hooks/use-on-insert-column.d.ts +10 -3
  57. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  58. package/dist/cjs/hooks/use-on-insert-column.js +33 -7
  59. package/dist/cjs/hooks/use-on-insert-row.d.ts +10 -3
  60. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  61. package/dist/cjs/hooks/use-on-insert-row.js +32 -7
  62. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +2 -2
  63. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  64. package/dist/cjs/hooks/use-spreadsheet-state.js +61 -15
  65. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  66. package/dist/cjs/hooks/use-structured-reference.js +10 -6
  67. package/dist/cjs/index.d.ts +3 -0
  68. package/dist/cjs/index.d.ts.map +1 -1
  69. package/dist/cjs/index.js +3 -0
  70. package/dist/cjs/interface/calculation-interface.d.ts +9 -0
  71. package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
  72. package/dist/cjs/interface/calculation-interface.js +31 -2
  73. package/dist/cjs/interface/delete-cells-shift-left.d.ts +8 -1
  74. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  75. package/dist/cjs/interface/delete-cells-shift-left.js +158 -80
  76. package/dist/cjs/interface/delete-cells-shift-up.d.ts +9 -1
  77. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  78. package/dist/cjs/interface/delete-cells-shift-up.js +155 -73
  79. package/dist/cjs/interface/delete-column.d.ts +1 -1
  80. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  81. package/dist/cjs/interface/delete-column.js +90 -31
  82. package/dist/cjs/interface/delete-row.d.ts +1 -1
  83. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  84. package/dist/cjs/interface/delete-row.js +85 -26
  85. package/dist/cjs/interface/insert-cells-shift-down.d.ts +10 -1
  86. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  87. package/dist/cjs/interface/insert-cells-shift-down.js +147 -52
  88. package/dist/cjs/interface/insert-cells-shift-right.d.ts +10 -1
  89. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  90. package/dist/cjs/interface/insert-cells-shift-right.js +154 -58
  91. package/dist/cjs/interface/insert-column.d.ts +1 -1
  92. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  93. package/dist/cjs/interface/insert-column.js +46 -8
  94. package/dist/cjs/interface/insert-row.d.ts +1 -1
  95. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  96. package/dist/cjs/interface/insert-row.js +47 -10
  97. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  98. package/dist/cjs/interface/spreadsheet-interface.js +33 -0
  99. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  100. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  101. package/dist/esm/api/anchored-objects.d.ts +66 -0
  102. package/dist/esm/api/anchored-objects.d.ts.map +1 -0
  103. package/dist/esm/api/anchored-objects.js +212 -0
  104. package/dist/esm/api/dependency.d.ts +13 -2
  105. package/dist/esm/api/dependency.d.ts.map +1 -1
  106. package/dist/esm/api/dependency.js +10 -4
  107. package/dist/esm/api/formula.d.ts +61 -4
  108. package/dist/esm/api/formula.d.ts.map +1 -1
  109. package/dist/esm/api/formula.js +238 -60
  110. package/dist/esm/api/merges.d.ts +8 -0
  111. package/dist/esm/api/merges.d.ts.map +1 -1
  112. package/dist/esm/api/merges.js +51 -0
  113. package/dist/esm/api/named-range-structural.d.ts +62 -0
  114. package/dist/esm/api/named-range-structural.d.ts.map +1 -0
  115. package/dist/esm/api/named-range-structural.js +176 -0
  116. package/dist/esm/api/range-rule-helpers.d.ts +45 -1
  117. package/dist/esm/api/range-rule-helpers.d.ts.map +1 -1
  118. package/dist/esm/api/range-rule-helpers.js +153 -1
  119. package/dist/esm/api/structural-formula-update.d.ts.map +1 -1
  120. package/dist/esm/api/structural-formula-update.js +24 -6
  121. package/dist/esm/api/structural-guards.d.ts +78 -0
  122. package/dist/esm/api/structural-guards.d.ts.map +1 -0
  123. package/dist/esm/api/structural-guards.js +186 -0
  124. package/dist/esm/api/structural-table-refs.d.ts +94 -0
  125. package/dist/esm/api/structural-table-refs.d.ts.map +1 -0
  126. package/dist/esm/api/structural-table-refs.js +219 -0
  127. package/dist/esm/constants.d.ts +25 -0
  128. package/dist/esm/constants.d.ts.map +1 -0
  129. package/dist/esm/constants.js +26 -0
  130. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
  131. package/dist/esm/hooks/use-calculation-worker.js +45 -0
  132. package/dist/esm/hooks/use-calculation.d.ts +7 -0
  133. package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
  134. package/dist/esm/hooks/use-calculation.js +15 -0
  135. package/dist/esm/hooks/use-on-calculation-success.d.ts +7 -0
  136. package/dist/esm/hooks/use-on-calculation-success.d.ts.map +1 -1
  137. package/dist/esm/hooks/use-on-calculation-success.js +7 -1
  138. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
  139. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  140. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +26 -2
  141. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
  142. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  143. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +26 -2
  144. package/dist/esm/hooks/use-on-delete-column.d.ts +13 -4
  145. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  146. package/dist/esm/hooks/use-on-delete-column.js +14 -2
  147. package/dist/esm/hooks/use-on-delete-row.d.ts +13 -4
  148. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  149. package/dist/esm/hooks/use-on-delete-row.js +14 -2
  150. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
  151. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  152. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +26 -2
  153. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
  154. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  155. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +26 -2
  156. package/dist/esm/hooks/use-on-insert-column.d.ts +10 -3
  157. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  158. package/dist/esm/hooks/use-on-insert-column.js +33 -7
  159. package/dist/esm/hooks/use-on-insert-row.d.ts +10 -3
  160. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  161. package/dist/esm/hooks/use-on-insert-row.js +32 -7
  162. package/dist/esm/hooks/use-spreadsheet-state.d.ts +2 -2
  163. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  164. package/dist/esm/hooks/use-spreadsheet-state.js +61 -15
  165. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  166. package/dist/esm/hooks/use-structured-reference.js +10 -6
  167. package/dist/esm/index.d.ts +3 -0
  168. package/dist/esm/index.d.ts.map +1 -1
  169. package/dist/esm/index.js +3 -0
  170. package/dist/esm/interface/calculation-interface.d.ts +9 -0
  171. package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
  172. package/dist/esm/interface/calculation-interface.js +33 -2
  173. package/dist/esm/interface/delete-cells-shift-left.d.ts +8 -1
  174. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  175. package/dist/esm/interface/delete-cells-shift-left.js +135 -59
  176. package/dist/esm/interface/delete-cells-shift-up.d.ts +9 -1
  177. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  178. package/dist/esm/interface/delete-cells-shift-up.js +133 -53
  179. package/dist/esm/interface/delete-column.d.ts +1 -1
  180. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  181. package/dist/esm/interface/delete-column.js +80 -11
  182. package/dist/esm/interface/delete-row.d.ts +1 -1
  183. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  184. package/dist/esm/interface/delete-row.js +81 -11
  185. package/dist/esm/interface/insert-cells-shift-down.d.ts +10 -1
  186. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  187. package/dist/esm/interface/insert-cells-shift-down.js +116 -47
  188. package/dist/esm/interface/insert-cells-shift-right.d.ts +10 -1
  189. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  190. package/dist/esm/interface/insert-cells-shift-right.js +120 -51
  191. package/dist/esm/interface/insert-column.d.ts +1 -1
  192. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  193. package/dist/esm/interface/insert-column.js +46 -8
  194. package/dist/esm/interface/insert-row.d.ts +1 -1
  195. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  196. package/dist/esm/interface/insert-row.js +47 -10
  197. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  198. package/dist/esm/interface/spreadsheet-interface.js +29 -0
  199. package/dist/esm/sheet-cell.d.ts.map +1 -1
  200. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  201. package/package.json +16 -16
@@ -14,12 +14,13 @@ import { useCalculation } from "./use-calculation";
14
14
  import { useCalculationInitialize } from "./use-calculation-initialize";
15
15
  import { useCalculationWorker } from "./use-calculation-worker";
16
16
  import { useCellXfsRegistry } from "./use-cellxfs-registry";
17
- import { useComments } from "./use-comments";
18
17
  import { useCitations } from "./use-citations";
18
+ import { useComments } from "./use-comments";
19
19
  import { useConditionalFormattingRules } from "./use-conditional-formatting-rules";
20
20
  import { useDataValidationRules } from "./use-data-validation-rules";
21
21
  import { useIndent } from "./use-indent";
22
22
  import { useNamedRange } from "./use-named-range";
23
+ import { useOnAdvancedFilter } from "./use-on-advanced-filter";
23
24
  import { useOnAutoResize } from "./use-on-autoresize";
24
25
  import { useOnBandedRanges } from "./use-on-banded-ranges";
25
26
  import { useOnCalculationBegin } from "./use-on-calculation-begin";
@@ -32,6 +33,8 @@ import { useOnChangeFormatting } from "./use-on-change-formatting";
32
33
  import { useOnChangeSheetTabcolor } from "./use-on-change-sheet-tabcolor";
33
34
  import { useOnChangeTheme } from "./use-on-change-theme";
34
35
  import { useOnClearFormatting } from "./use-on-clear-formatting";
36
+ import { useOnCollapseColumnGroup } from "./use-on-collapse-column-group";
37
+ import { useOnCollapseRowGroup } from "./use-on-collapse-row-group";
35
38
  import { useOnCopy } from "./use-on-copy";
36
39
  import { useOnCreateNamedRange } from "./use-on-create-named-range";
37
40
  import { useOnCreateNewSheet } from "./use-on-create-sheet";
@@ -46,23 +49,18 @@ import { useOnDeleteTableRow } from "./use-on-delete-table-row";
46
49
  import { useOnDragnDrop } from "./use-on-drag-n-drop";
47
50
  import { useOnDuplicateSheet } from "./use-on-duplicate-sheet";
48
51
  import { useOnEmbeds } from "./use-on-embeds";
49
- import { useSlicers } from "./use-slicers";
52
+ import { useOnExpandColumnGroup } from "./use-on-expand-column-group";
53
+ import { useOnExpandRowGroup } from "./use-on-expand-row-group";
50
54
  import { useOnFill } from "./use-on-fill";
51
55
  import { useOnFillRange } from "./use-on-fill-range";
52
56
  import { useOnFilterTable } from "./use-on-filter-table";
53
57
  import { useOnFindReplace } from "./use-on-find-replace";
54
58
  import { useOnFreeze } from "./use-on-freeze";
55
- import { useOnCollapseColumnGroup } from "./use-on-collapse-column-group";
56
- import { useOnCollapseRowGroup } from "./use-on-collapse-row-group";
57
- import { useOnExpandColumnGroup } from "./use-on-expand-column-group";
58
- import { useOnExpandRowGroup } from "./use-on-expand-row-group";
59
+ import { useOnGoalSeek } from "./use-on-goal-seek";
59
60
  import { useOnGroupColumns } from "./use-on-group-columns";
60
61
  import { useOnGroupRows } from "./use-on-group-rows";
61
- import { useOnSetOutlineDepth } from "./use-on-set-outline-depth";
62
62
  import { useOnHideColumn } from "./use-on-hide-column";
63
63
  import { useOnHideRow } from "./use-on-hide-row";
64
- import { useOnUngroupColumns } from "./use-on-ungroup-columns";
65
- import { useOnUngroupRows } from "./use-on-ungroup-rows";
66
64
  import { useOnShowHideSheet } from "./use-on-hide-show-sheet";
67
65
  import { useOnImportCSV } from "./use-on-import-csv";
68
66
  import { useOnImportCSVLegacy } from "./use-on-import-csv-legacy";
@@ -80,6 +78,7 @@ import { useOnInsertNote } from "./use-on-insert-note";
80
78
  import { useOnInsertRow } from "./use-on-insert-row";
81
79
  import { useOnInsertTableRow } from "./use-on-insert-table-row";
82
80
  import { useOnInsertTime } from "./use-on-insert-time";
81
+ import { useOnLocaleChange } from "./use-on-locale-change";
83
82
  import { useOnMergeUnMergeCells } from "./use-on-merge-unmerge-cells";
84
83
  import { useOnMoveColumns } from "./use-on-move-columns";
85
84
  import { useOnMoveRows } from "./use-on-move-rows";
@@ -88,6 +87,7 @@ import { useOnMoveSheet } from "./use-on-move-sheet";
88
87
  import { useOnPaste } from "./use-on-paste";
89
88
  import { useOnProtectRange } from "./use-on-protect-range";
90
89
  import { useOnProtectSheet } from "./use-on-protect-sheet";
90
+ import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
91
91
  import { useOnRenameSheet } from "./use-on-rename-sheet";
92
92
  import { useOnRequestCalculateWrapper } from "./use-on-request-calculate-wrapper";
93
93
  import { useOnRequestConditionalFormat } from "./use-on-request-conditional-format";
@@ -102,13 +102,17 @@ import { useOnRequestResize } from "./use-on-request-resize";
102
102
  import { useOnRequestUpdateNamedRange } from "./use-on-request-update-named-range";
103
103
  import { useOnResize } from "./use-on-resize";
104
104
  import { useOnResizeTable } from "./use-on-resize-table";
105
+ import { useOnSetOutlineDepth } from "./use-on-set-outline-depth";
105
106
  import { useOnShowColumn } from "./use-on-show-column";
106
107
  import { useOnShowRow } from "./use-on-show-row";
107
108
  import { useOnSortColumn } from "./use-on-sort-column";
108
109
  import { useOnSortRange } from "./use-on-sort-range";
109
110
  import { useOnSortTable } from "./use-on-sort-table";
111
+ import { useOnSubtotal } from "./use-on-subtotal";
110
112
  import { useOnTable } from "./use-on-table";
111
113
  import { useOnTraceDependentsPrecedents } from "./use-on-trace-dependents-precedents";
114
+ import { useOnUngroupColumns } from "./use-on-ungroup-columns";
115
+ import { useOnUngroupRows } from "./use-on-ungroup-rows";
112
116
  import { useOnUpdateNamedRange } from "./use-on-update-named-range";
113
117
  import { useOnUpdateNote } from "./use-on-update-note";
114
118
  import { useOnUpdateSheet } from "./use-on-update-sheet";
@@ -118,12 +122,8 @@ import { useSheetObserver } from "./use-sheet-observer";
118
122
  import { useSheetProperties } from "./use-sheet-properties";
119
123
  import { useSheetState } from "./use-sheet-state";
120
124
  import { useSheetDataSubscriber } from "./use-sheetdata-subscriber";
125
+ import { useSlicers } from "./use-slicers";
121
126
  import { useSplitTextToColumns } from "./use-split-text-to-columns";
122
- import { useOnLocaleChange } from "./use-on-locale-change";
123
- import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
124
- import { useOnGoalSeek } from "./use-on-goal-seek";
125
- import { useOnSubtotal } from "./use-on-subtotal";
126
- import { useOnAdvancedFilter } from "./use-on-advanced-filter";
127
127
  import { useSharedStringRegistry } from "./use-ss-registry";
128
128
  import { useStructuredReference } from "./use-structured-reference";
129
129
  import { useUndoRedo } from "./use-undo-redo";
@@ -528,7 +528,7 @@ sanitizeHtml, }) => {
528
528
  enabled: calculationMode !== "worker",
529
529
  });
530
530
  // Use the appropriate calculation hook based on mode
531
- const { enqueueCalculation, enqueueGraphOperation, enqueueStructureChange, clearRangeCache, onRequestCalculate: onRequestCalculateWithoutFormatting, getPrecedents, getDependents, getPrecedentsFromFormulaString, getGraphNodes, getGraphNodesInSheet, addStaticReference, addFormulaToGraph, removeStaticReference, onResetCalculator, getDependencyGraph, updateDependencyGraph, isArrayFormula, applyNamedRanges, } = calculationMode === "worker" ? workerCalculation : singleCalculation;
531
+ const { enqueueCalculation, enqueueGraphOperation, enqueueStructureChange, clearRangeCache, onRequestCalculate: onRequestCalculateWithoutFormatting, getPrecedents, getDependents, getPrecedentsFromFormulaString, getGraphNodes, getGraphNodesInSheet, addStaticReference, addFormulaToGraph, removeStaticReference, onResetCalculator, getDependencyGraph, updateDependencyGraph, isArrayFormula, getArrayRange, applyNamedRanges, } = calculationMode === "worker" ? workerCalculation : singleCalculation;
532
532
  // Bind the forward-ref so `useSheetProperties.getEffectiveFormat` can walk
533
533
  // precedents now that the calculator is initialised.
534
534
  getPrecedentsRef.current = getPrecedents;
@@ -1052,8 +1052,14 @@ sanitizeHtml, }) => {
1052
1052
  onChangeDataValidations,
1053
1053
  onChangeCitations,
1054
1054
  onChangePivotTables,
1055
+ onChangeNamedRanges,
1056
+ onChangeEmbeds,
1057
+ onChangeCharts,
1058
+ onChangeProtectedRanges,
1055
1059
  getSheetName,
1056
1060
  onCommand,
1061
+ tables,
1062
+ getArrayRange,
1057
1063
  });
1058
1064
  // Delete row
1059
1065
  const onDeleteColumn = useOnDeleteColumn({
@@ -1080,8 +1086,14 @@ sanitizeHtml, }) => {
1080
1086
  onChangeDataValidations,
1081
1087
  onChangeCitations,
1082
1088
  onChangePivotTables,
1089
+ onChangeNamedRanges,
1090
+ onChangeEmbeds,
1091
+ onChangeCharts,
1092
+ onChangeProtectedRanges,
1083
1093
  getSheetName,
1084
1094
  onCommand,
1095
+ tables,
1096
+ getArrayRange,
1085
1097
  });
1086
1098
  // Delete cells shift up
1087
1099
  const onDeleteCellsShiftUp = useOnDeleteCellsShiftUp({
@@ -1093,13 +1105,19 @@ sanitizeHtml, }) => {
1093
1105
  getActiveCell,
1094
1106
  getSelections,
1095
1107
  getDependents,
1108
+ getSheetName,
1096
1109
  enqueueGraphOperation,
1097
1110
  enqueueCalculation,
1098
1111
  enqueueStructureChange,
1099
1112
  createHistory,
1100
1113
  onChangeSheets,
1101
1114
  onChangeSheetData,
1115
+ onChangeTables,
1116
+ onChangeCitations,
1102
1117
  onCommand,
1118
+ sheetData,
1119
+ sheets,
1120
+ tables,
1103
1121
  });
1104
1122
  // Delete cells shift left
1105
1123
  const onDeleteCellsShiftLeft = useOnDeleteCellsShiftLeft({
@@ -1111,13 +1129,19 @@ sanitizeHtml, }) => {
1111
1129
  getActiveCell,
1112
1130
  getSelections,
1113
1131
  getDependents,
1132
+ getSheetName,
1114
1133
  enqueueGraphOperation,
1115
1134
  enqueueCalculation,
1116
1135
  enqueueStructureChange,
1117
1136
  createHistory,
1118
1137
  onChangeSheets,
1119
1138
  onChangeSheetData,
1139
+ onChangeTables,
1140
+ onChangeCitations,
1120
1141
  onCommand,
1142
+ sheetData,
1143
+ sheets,
1144
+ tables,
1121
1145
  });
1122
1146
  // Insert cells shift right
1123
1147
  const onInsertCellsShiftRight = useOnInsertCellsShiftRight({
@@ -1129,13 +1153,19 @@ sanitizeHtml, }) => {
1129
1153
  getActiveCell,
1130
1154
  getSelections,
1131
1155
  getDependents,
1156
+ getSheetName,
1132
1157
  enqueueGraphOperation,
1133
1158
  enqueueCalculation,
1134
1159
  enqueueStructureChange,
1135
1160
  createHistory,
1136
1161
  onChangeSheets,
1137
1162
  onChangeSheetData,
1163
+ onChangeTables,
1164
+ onChangeCitations,
1138
1165
  onCommand,
1166
+ sheetData,
1167
+ sheets,
1168
+ tables,
1139
1169
  });
1140
1170
  // Delete cells shift up
1141
1171
  const onInsertCellsShiftDown = useOnInsertCellsShiftDown({
@@ -1147,13 +1177,19 @@ sanitizeHtml, }) => {
1147
1177
  getActiveCell,
1148
1178
  getSelections,
1149
1179
  getDependents,
1180
+ getSheetName,
1150
1181
  enqueueGraphOperation,
1151
1182
  enqueueCalculation,
1152
1183
  enqueueStructureChange,
1153
1184
  createHistory,
1154
1185
  onChangeSheets,
1155
1186
  onChangeSheetData,
1187
+ onChangeTables,
1188
+ onChangeCitations,
1156
1189
  onCommand,
1190
+ sheetData,
1191
+ sheets,
1192
+ tables,
1157
1193
  });
1158
1194
  // Insert row
1159
1195
  const onInsertRow = useOnInsertRow({
@@ -1161,6 +1197,7 @@ sanitizeHtml, }) => {
1161
1197
  columnCount,
1162
1198
  locale,
1163
1199
  maxRowCount,
1200
+ sheetData,
1164
1201
  cellXfsRegistry,
1165
1202
  getActiveCell,
1166
1203
  getSelections,
@@ -1177,6 +1214,10 @@ sanitizeHtml, }) => {
1177
1214
  onChangeDataValidations,
1178
1215
  onChangeCitations,
1179
1216
  onChangePivotTables,
1217
+ onChangeNamedRanges,
1218
+ onChangeEmbeds,
1219
+ onChangeCharts,
1220
+ onChangeProtectedRanges,
1180
1221
  onChangeTables,
1181
1222
  getSheetName,
1182
1223
  onCommand,
@@ -1188,6 +1229,7 @@ sanitizeHtml, }) => {
1188
1229
  locale,
1189
1230
  tables,
1190
1231
  maxColumnCount,
1232
+ sheetData,
1191
1233
  cellXfsRegistry,
1192
1234
  sharedStringRegistry,
1193
1235
  getDependents,
@@ -1204,6 +1246,10 @@ sanitizeHtml, }) => {
1204
1246
  onChangeDataValidations,
1205
1247
  onChangeCitations,
1206
1248
  onChangePivotTables,
1249
+ onChangeNamedRanges,
1250
+ onChangeEmbeds,
1251
+ onChangeCharts,
1252
+ onChangeProtectedRanges,
1207
1253
  getActiveCell,
1208
1254
  getSelections,
1209
1255
  getSheetName,
@@ -1 +1 @@
1
- {"version":3,"file":"use-structured-reference.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,eAAO,MAAM,sBAAsB,GAAI,oCAIpC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC,iBAGgB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,eACH,MAAM,GAAG,SAAS,aACpB,MAAM,QACX,UAAU,KACf,SAAS,GAAG,UAsJlB,CAAC"}
1
+ {"version":3,"file":"use-structured-reference.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,eAAO,MAAM,sBAAsB,GAAI,oCAIpC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC,iBAGgB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,eACH,MAAM,GAAG,SAAS,aACpB,MAAM,QACX,UAAU,KACf,SAAS,GAAG,UA0JlB,CAAC"}
@@ -15,8 +15,10 @@ export const useStructuredReference = ({ tables, sheetId, getSheetName, }) => {
15
15
  });
16
16
  // Current row
17
17
  const { row: rowIndex } = cell;
18
+ // Excel: a structured reference whose table no longer exists (the table
19
+ // was deleted, or every one of its rows) is `#REF!`, never `#NAME?`.
18
20
  if (!table) {
19
- throw new FormulaError("#NAME!", "Table could not be found");
21
+ throw new FormulaError("#REF!", "Table could not be found");
20
22
  }
21
23
  // Special this row item
22
24
  if (specialItem === "#This Row") {
@@ -30,12 +32,14 @@ export const useStructuredReference = ({ tables, sheetId, getSheetName, }) => {
30
32
  const [from, to] = columnNames ?? [];
31
33
  const startColIndex = getColumnIndexFromColumnName(table, from);
32
34
  const endColIndex = getColumnIndexFromColumnName(table, to);
33
- // Exit early, if column could not be found
35
+ // Exit early, if column could not be found. Excel: a reference to a
36
+ // column the table does not have — including the `#REF!` specifier a
37
+ // column delete writes (`Table1[@#REF!]`) — is `#REF!`.
34
38
  if (!isNil(to) && isNil(endColIndex)) {
35
- throw new FormulaError("#VALUE!", `Column not found ${to}`);
39
+ throw new FormulaError("#REF!", `Column not found ${to}`);
36
40
  }
37
41
  if (!isNil(from) && isNil(startColIndex)) {
38
- throw new FormulaError("#VALUE!", `Column not found ${from}`);
42
+ throw new FormulaError("#REF!", `Column not found ${from}`);
39
43
  }
40
44
  const startColumnIndex = isNil(startColIndex)
41
45
  ? range.startColumnIndex
@@ -92,10 +96,10 @@ export const useStructuredReference = ({ tables, sheetId, getSheetName, }) => {
92
96
  }
93
97
  // If column is not found, lets not select anything
94
98
  if (from && isNil(startColIndex)) {
95
- throw new FormulaError("#VALUE!", `Column: ${from} could not be found`);
99
+ throw new FormulaError("#REF!", `Column: ${from} could not be found`);
96
100
  }
97
101
  if (to && isNil(endColIndex)) {
98
- throw new FormulaError("#VALUE!", `Column: ${to} could not be found`);
102
+ throw new FormulaError("#REF!", `Column: ${to} could not be found`);
99
103
  }
100
104
  // Check if thisrow is active and current cell is in bounds
101
105
  if (thisRow &&
@@ -20,8 +20,11 @@ export * from "./helpers";
20
20
  export * from "./api/fill";
21
21
  export * from "./api/immer-utils";
22
22
  export * from "./api/range";
23
+ export * from "./api/anchored-objects";
23
24
  export * from "./atoms";
24
25
  export * from "./api/formula";
26
+ export * from "./api/structural-guards";
27
+ export * from "./constants";
25
28
  export * from "./types";
26
29
  export * from "./commands";
27
30
  export type { ClearType } from "./interface/delete-cells";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC"}
package/dist/esm/index.js CHANGED
@@ -20,8 +20,11 @@ export * from "./helpers";
20
20
  export * from "./api/fill";
21
21
  export * from "./api/immer-utils";
22
22
  export * from "./api/range";
23
+ export * from "./api/anchored-objects";
23
24
  export * from "./atoms";
24
25
  export * from "./api/formula";
26
+ export * from "./api/structural-guards";
27
+ export * from "./constants";
25
28
  export * from "./types";
26
29
  export * from "./commands";
27
30
  // Register
@@ -60,6 +60,15 @@ export declare class CalculationInterface {
60
60
  private ensureWorkerMetadata;
61
61
  private isClientOnlyFormula;
62
62
  private executeOperations;
63
+ /**
64
+ * Mirror a dynamic-array anchor's spill rectangle on the local graph (a
65
+ * matrix result registers it, a scalar clears it) so structural edits can
66
+ * find the projected cells of an anchor they delete — the same bookkeeping
67
+ * the React worker hook does in `handleArrayEvaluation`.
68
+ */
69
+ private trackArrayResult;
70
+ /** The spill rectangle currently anchored at `position`, if it is a dynamic array. */
71
+ getArrayRange(position: CellCoordinate): CellCoordinateRange | undefined;
63
72
  private createDefaultWorker;
64
73
  private ensureWorker;
65
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calculation-interface.d.ts","sourceRoot":"","sources":["../../../interface/calculation-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculation-interface.d.ts","sourceRoot":"","sources":["../../../interface/calculation-interface.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { resolveSheetSpan } from "@rowsncolumns/utils";
2
1
  import { CalculationGraph, CalculationWorkerClient, createNamedRangeResolver, createStructuredReferenceResolver, enqueueCalculationOperations, mapOperationToGraphOperation, } from "@rowsncolumns/calculation-worker/server";
3
2
  import { FormulaError } from "@rowsncolumns/fast-formula-parser";
3
+ import { resolveSheetSpan } from "@rowsncolumns/utils";
4
4
  const isSerializedFormulaError = (value) => {
5
5
  return Boolean(value &&
6
6
  typeof value === "object" &&
@@ -279,12 +279,43 @@ export class CalculationInterface {
279
279
  return this.options.getEffectiveStructuredValue(value, property);
280
280
  },
281
281
  });
282
- const expandedResults = results.flatMap((result) => expandWorkerResult(result));
282
+ const expandedResults = results.flatMap((result) => {
283
+ this.trackArrayResult(result);
284
+ return expandWorkerResult(result);
285
+ });
283
286
  if (expandedResults.length) {
284
287
  this.options.onResults(expandedResults);
285
288
  }
286
289
  return expandedResults;
287
290
  }
291
+ /**
292
+ * Mirror a dynamic-array anchor's spill rectangle on the local graph (a
293
+ * matrix result registers it, a scalar clears it) so structural edits can
294
+ * find the projected cells of an anchor they delete — the same bookkeeping
295
+ * the React worker hook does in `handleArrayEvaluation`.
296
+ */
297
+ trackArrayResult(result) {
298
+ if (!result.position)
299
+ return;
300
+ const position = result.position;
301
+ const matrix = normalizeMatrixValue(deserializeWorkerValue(result.value));
302
+ if (!matrix) {
303
+ this.graph.unregisterArrayFormula(position);
304
+ return;
305
+ }
306
+ const columns = Math.max(1, ...matrix.map((row) => row.length));
307
+ this.graph.registerArrayFormula(position, {
308
+ sheetId: position.sheetId,
309
+ startRowIndex: position.rowIndex,
310
+ startColumnIndex: position.columnIndex,
311
+ endRowIndex: position.rowIndex + matrix.length - 1,
312
+ endColumnIndex: position.columnIndex + columns - 1,
313
+ });
314
+ }
315
+ /** The spill rectangle currently anchored at `position`, if it is a dynamic array. */
316
+ getArrayRange(position) {
317
+ return this.graph.getArrayRange(position);
318
+ }
288
319
  createDefaultWorker() {
289
320
  if (typeof require !== "function") {
290
321
  throw new Error("createCalculationWorker must be provided outside of Node.js.");
@@ -1,5 +1,12 @@
1
1
  import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
2
2
  import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
3
3
  import type { UseOnDeleteCellsShiftLeftProps } from "../hooks/use-on-delete-cells-shift-left";
4
- export declare const deleteCellsShiftLeft: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, }: UseOnDeleteCellsShiftLeftProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
4
+ /**
5
+ * Delete cells ▸ Shift cells left (SHF-04) — the horizontal twin of `deleteCellsShiftUp`: only the
6
+ * selection's rows move, the selected block is removed and every cell to its right slides left by
7
+ * the block's width. A reference to a deleted cell becomes `#REF!`; one to a cell that slid left
8
+ * follows it; a range entirely inside the block's rows that the block partially covers contracts.
9
+ * Refusals (torn merge/table/array) are decided by the hook before this runs.
10
+ */
11
+ export declare const deleteCellsShiftLeft: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getSheetName, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, }: UseOnDeleteCellsShiftLeftProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
5
12
  //# sourceMappingURL=delete-cells-shift-left.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-cells-shift-left.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells-shift-left.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAQnC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAG9F,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,gQAgBvE,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,MAEnC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAkMnD,CAAC"}
1
+ {"version":3,"file":"delete-cells-shift-left.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells-shift-left.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAgBnC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAI9F;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8RAkBvE,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,MAEnC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAqRnD,CAAC"}