@rowsncolumns/spreadsheet-state 28.0.75 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) 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/copy-paste.d.ts +8 -1
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +4 -2
  7. package/dist/cjs/api/dependency.d.ts +13 -2
  8. package/dist/cjs/api/dependency.d.ts.map +1 -1
  9. package/dist/cjs/api/dependency.js +11 -5
  10. package/dist/cjs/api/formula.d.ts +61 -4
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +250 -61
  13. package/dist/cjs/api/immer-utils.d.ts +11 -1
  14. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  15. package/dist/cjs/api/immer-utils.js +17 -1
  16. package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
  17. package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
  18. package/dist/cjs/api/insert-cut-cells.js +60 -0
  19. package/dist/cjs/api/merges.d.ts +16 -0
  20. package/dist/cjs/api/merges.d.ts.map +1 -1
  21. package/dist/cjs/api/merges.js +75 -1
  22. package/dist/cjs/api/named-range-structural.d.ts +62 -0
  23. package/dist/cjs/api/named-range-structural.d.ts.map +1 -0
  24. package/dist/cjs/api/named-range-structural.js +197 -0
  25. package/dist/cjs/api/range-rule-helpers.d.ts +45 -1
  26. package/dist/cjs/api/range-rule-helpers.d.ts.map +1 -1
  27. package/dist/cjs/api/range-rule-helpers.js +159 -6
  28. package/dist/cjs/api/structural-formula-update.d.ts.map +1 -1
  29. package/dist/cjs/api/structural-formula-update.js +24 -6
  30. package/dist/cjs/api/structural-guards.d.ts +78 -0
  31. package/dist/cjs/api/structural-guards.d.ts.map +1 -0
  32. package/dist/cjs/api/structural-guards.js +202 -0
  33. package/dist/cjs/api/structural-table-refs.d.ts +94 -0
  34. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -0
  35. package/dist/cjs/api/structural-table-refs.js +313 -0
  36. package/dist/cjs/api/subtotal.d.ts +20 -13
  37. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  38. package/dist/cjs/api/subtotal.js +26 -19
  39. package/dist/cjs/commands.d.ts +9 -0
  40. package/dist/cjs/commands.d.ts.map +1 -1
  41. package/dist/cjs/constants.d.ts +25 -0
  42. package/dist/cjs/constants.d.ts.map +1 -0
  43. package/dist/cjs/constants.js +26 -0
  44. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
  45. package/dist/cjs/hooks/use-calculation-worker.js +64 -6
  46. package/dist/cjs/hooks/use-calculation.d.ts +7 -0
  47. package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
  48. package/dist/cjs/hooks/use-calculation.js +15 -0
  49. package/dist/cjs/hooks/use-on-calculation-success.d.ts +7 -0
  50. package/dist/cjs/hooks/use-on-calculation-success.d.ts.map +1 -1
  51. package/dist/cjs/hooks/use-on-calculation-success.js +7 -1
  52. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  53. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  54. package/dist/cjs/hooks/use-on-copy.js +2 -3
  55. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
  56. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  57. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +27 -2
  58. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
  59. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  60. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +27 -2
  61. package/dist/cjs/hooks/use-on-delete-column.d.ts +13 -4
  62. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  63. package/dist/cjs/hooks/use-on-delete-column.js +14 -2
  64. package/dist/cjs/hooks/use-on-delete-row.d.ts +13 -4
  65. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  66. package/dist/cjs/hooks/use-on-delete-row.js +14 -2
  67. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
  68. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  69. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +27 -2
  70. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
  71. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  72. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +27 -2
  73. package/dist/cjs/hooks/use-on-insert-column.d.ts +10 -3
  74. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  75. package/dist/cjs/hooks/use-on-insert-column.js +33 -7
  76. package/dist/cjs/hooks/use-on-insert-row.d.ts +10 -3
  77. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  78. package/dist/cjs/hooks/use-on-insert-row.js +32 -7
  79. package/dist/cjs/hooks/use-on-move-columns.d.ts +2 -1
  80. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  81. package/dist/cjs/hooks/use-on-move-columns.js +14 -5
  82. package/dist/cjs/hooks/use-on-move-rows.d.ts +16 -1
  83. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  84. package/dist/cjs/hooks/use-on-move-rows.js +30 -5
  85. package/dist/cjs/hooks/use-on-move-selection.d.ts +7 -2
  86. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  87. package/dist/cjs/hooks/use-on-move-selection.js +14 -1
  88. package/dist/cjs/hooks/use-on-paste.d.ts +12 -2
  89. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  90. package/dist/cjs/hooks/use-on-paste.js +56 -8
  91. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +16 -5
  92. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  93. package/dist/cjs/hooks/use-spreadsheet-state.js +141 -18
  94. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  95. package/dist/cjs/hooks/use-structured-reference.js +10 -6
  96. package/dist/cjs/index.d.ts +4 -0
  97. package/dist/cjs/index.d.ts.map +1 -1
  98. package/dist/cjs/index.js +4 -0
  99. package/dist/cjs/interface/calculation-interface.d.ts +9 -0
  100. package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
  101. package/dist/cjs/interface/calculation-interface.js +31 -2
  102. package/dist/cjs/interface/delete-cells-shift-left.d.ts +8 -1
  103. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  104. package/dist/cjs/interface/delete-cells-shift-left.js +158 -80
  105. package/dist/cjs/interface/delete-cells-shift-up.d.ts +9 -1
  106. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  107. package/dist/cjs/interface/delete-cells-shift-up.js +155 -73
  108. package/dist/cjs/interface/delete-column.d.ts +1 -1
  109. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  110. package/dist/cjs/interface/delete-column.js +109 -50
  111. package/dist/cjs/interface/delete-row.d.ts +1 -1
  112. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  113. package/dist/cjs/interface/delete-row.js +105 -46
  114. package/dist/cjs/interface/insert-cells-shift-down.d.ts +10 -1
  115. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  116. package/dist/cjs/interface/insert-cells-shift-down.js +147 -52
  117. package/dist/cjs/interface/insert-cells-shift-right.d.ts +10 -1
  118. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  119. package/dist/cjs/interface/insert-cells-shift-right.js +154 -58
  120. package/dist/cjs/interface/insert-column.d.ts +1 -1
  121. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  122. package/dist/cjs/interface/insert-column.js +80 -26
  123. package/dist/cjs/interface/insert-row.d.ts +1 -1
  124. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  125. package/dist/cjs/interface/insert-row.js +63 -15
  126. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  127. package/dist/cjs/interface/spreadsheet-interface.js +33 -0
  128. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  129. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  130. package/dist/esm/api/anchored-objects.d.ts +66 -0
  131. package/dist/esm/api/anchored-objects.d.ts.map +1 -0
  132. package/dist/esm/api/anchored-objects.js +212 -0
  133. package/dist/esm/api/copy-paste.d.ts +8 -1
  134. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  135. package/dist/esm/api/copy-paste.js +4 -2
  136. package/dist/esm/api/dependency.d.ts +13 -2
  137. package/dist/esm/api/dependency.d.ts.map +1 -1
  138. package/dist/esm/api/dependency.js +10 -4
  139. package/dist/esm/api/formula.d.ts +61 -4
  140. package/dist/esm/api/formula.d.ts.map +1 -1
  141. package/dist/esm/api/formula.js +238 -60
  142. package/dist/esm/api/immer-utils.d.ts +11 -1
  143. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  144. package/dist/esm/api/immer-utils.js +16 -0
  145. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  146. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  147. package/dist/esm/api/insert-cut-cells.js +67 -0
  148. package/dist/esm/api/merges.d.ts +16 -0
  149. package/dist/esm/api/merges.d.ts.map +1 -1
  150. package/dist/esm/api/merges.js +60 -0
  151. package/dist/esm/api/named-range-structural.d.ts +62 -0
  152. package/dist/esm/api/named-range-structural.d.ts.map +1 -0
  153. package/dist/esm/api/named-range-structural.js +176 -0
  154. package/dist/esm/api/range-rule-helpers.d.ts +45 -1
  155. package/dist/esm/api/range-rule-helpers.d.ts.map +1 -1
  156. package/dist/esm/api/range-rule-helpers.js +153 -1
  157. package/dist/esm/api/structural-formula-update.d.ts.map +1 -1
  158. package/dist/esm/api/structural-formula-update.js +24 -6
  159. package/dist/esm/api/structural-guards.d.ts +78 -0
  160. package/dist/esm/api/structural-guards.d.ts.map +1 -0
  161. package/dist/esm/api/structural-guards.js +186 -0
  162. package/dist/esm/api/structural-table-refs.d.ts +94 -0
  163. package/dist/esm/api/structural-table-refs.d.ts.map +1 -0
  164. package/dist/esm/api/structural-table-refs.js +219 -0
  165. package/dist/esm/api/subtotal.d.ts +20 -13
  166. package/dist/esm/api/subtotal.d.ts.map +1 -1
  167. package/dist/esm/api/subtotal.js +15 -8
  168. package/dist/esm/commands.d.ts +9 -0
  169. package/dist/esm/commands.d.ts.map +1 -1
  170. package/dist/esm/constants.d.ts +25 -0
  171. package/dist/esm/constants.d.ts.map +1 -0
  172. package/dist/esm/constants.js +26 -0
  173. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
  174. package/dist/esm/hooks/use-calculation-worker.js +45 -0
  175. package/dist/esm/hooks/use-calculation.d.ts +7 -0
  176. package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
  177. package/dist/esm/hooks/use-calculation.js +15 -0
  178. package/dist/esm/hooks/use-on-calculation-success.d.ts +7 -0
  179. package/dist/esm/hooks/use-on-calculation-success.d.ts.map +1 -1
  180. package/dist/esm/hooks/use-on-calculation-success.js +7 -1
  181. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  182. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  183. package/dist/esm/hooks/use-on-copy.js +2 -3
  184. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +13 -3
  185. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  186. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +26 -2
  187. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +13 -3
  188. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  189. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +26 -2
  190. package/dist/esm/hooks/use-on-delete-column.d.ts +13 -4
  191. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  192. package/dist/esm/hooks/use-on-delete-column.js +14 -2
  193. package/dist/esm/hooks/use-on-delete-row.d.ts +13 -4
  194. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  195. package/dist/esm/hooks/use-on-delete-row.js +14 -2
  196. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +13 -3
  197. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  198. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +26 -2
  199. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +13 -3
  200. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  201. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +26 -2
  202. package/dist/esm/hooks/use-on-insert-column.d.ts +10 -3
  203. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  204. package/dist/esm/hooks/use-on-insert-column.js +33 -7
  205. package/dist/esm/hooks/use-on-insert-row.d.ts +10 -3
  206. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  207. package/dist/esm/hooks/use-on-insert-row.js +32 -7
  208. package/dist/esm/hooks/use-on-move-columns.d.ts +2 -1
  209. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  210. package/dist/esm/hooks/use-on-move-columns.js +14 -5
  211. package/dist/esm/hooks/use-on-move-rows.d.ts +16 -1
  212. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  213. package/dist/esm/hooks/use-on-move-rows.js +30 -5
  214. package/dist/esm/hooks/use-on-move-selection.d.ts +7 -2
  215. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  216. package/dist/esm/hooks/use-on-move-selection.js +14 -1
  217. package/dist/esm/hooks/use-on-paste.d.ts +12 -2
  218. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  219. package/dist/esm/hooks/use-on-paste.js +41 -2
  220. package/dist/esm/hooks/use-spreadsheet-state.d.ts +16 -5
  221. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  222. package/dist/esm/hooks/use-spreadsheet-state.js +141 -17
  223. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  224. package/dist/esm/hooks/use-structured-reference.js +10 -6
  225. package/dist/esm/index.d.ts +4 -0
  226. package/dist/esm/index.d.ts.map +1 -1
  227. package/dist/esm/index.js +4 -0
  228. package/dist/esm/interface/calculation-interface.d.ts +9 -0
  229. package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
  230. package/dist/esm/interface/calculation-interface.js +33 -2
  231. package/dist/esm/interface/delete-cells-shift-left.d.ts +8 -1
  232. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  233. package/dist/esm/interface/delete-cells-shift-left.js +135 -59
  234. package/dist/esm/interface/delete-cells-shift-up.d.ts +9 -1
  235. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  236. package/dist/esm/interface/delete-cells-shift-up.js +133 -53
  237. package/dist/esm/interface/delete-column.d.ts +1 -1
  238. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  239. package/dist/esm/interface/delete-column.js +96 -38
  240. package/dist/esm/interface/delete-row.d.ts +1 -1
  241. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  242. package/dist/esm/interface/delete-row.js +98 -39
  243. package/dist/esm/interface/insert-cells-shift-down.d.ts +10 -1
  244. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  245. package/dist/esm/interface/insert-cells-shift-down.js +116 -47
  246. package/dist/esm/interface/insert-cells-shift-right.d.ts +10 -1
  247. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  248. package/dist/esm/interface/insert-cells-shift-right.js +120 -51
  249. package/dist/esm/interface/insert-column.d.ts +1 -1
  250. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  251. package/dist/esm/interface/insert-column.js +68 -18
  252. package/dist/esm/interface/insert-row.d.ts +1 -1
  253. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  254. package/dist/esm/interface/insert-row.js +60 -14
  255. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  256. package/dist/esm/interface/spreadsheet-interface.js +29 -0
  257. package/dist/esm/sheet-cell.d.ts.map +1 -1
  258. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  259. package/package.json +18 -18
@@ -130,6 +130,14 @@ var VOLATILE_FUNCTIONS = new Set([
130
130
  "INDIRECT",
131
131
  ]);
132
132
  var MAX_BUFFERED_RESULTS = 2000;
133
+ /**
134
+ * True when an operation carries the user's new cell value and that value is
135
+ * not a formula — the cell is leaving the dependency graph.
136
+ */
137
+ var isStaticOperationValue = function (value) {
138
+ return value !== undefined &&
139
+ (typeof value !== "string" || !value.trim().startsWith("="));
140
+ };
133
141
  var mergePendingOperation = function (current, incoming) {
134
142
  if (!current) {
135
143
  return incoming;
@@ -1452,6 +1460,27 @@ export var useCalculationWorker = function (props) {
1452
1460
  console.error("Calculation error: ", error);
1453
1461
  })
1454
1462
  .finally(function () {
1463
+ var e_11, _a;
1464
+ try {
1465
+ // The recorded static edits are only needed while the host's
1466
+ // state may lag behind the edit; drop them once the batch that
1467
+ // consumed them completes, unless the cell was edited again
1468
+ // meanwhile — that operation's pass owns the entry.
1469
+ for (var evaluationOperations_1 = (e_11 = void 0, __values(evaluationOperations)), evaluationOperations_1_1 = evaluationOperations_1.next(); !evaluationOperations_1_1.done; evaluationOperations_1_1 = evaluationOperations_1.next()) {
1470
+ var operation = evaluationOperations_1_1.value;
1471
+ var key = makeKey(operation.position);
1472
+ if (!pendingOperationMapRef.current.has(key)) {
1473
+ pendingUserValueEditsRef.current.delete(key);
1474
+ }
1475
+ }
1476
+ }
1477
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
1478
+ finally {
1479
+ try {
1480
+ if (evaluationOperations_1_1 && !evaluationOperations_1_1.done && (_a = evaluationOperations_1.return)) _a.call(evaluationOperations_1);
1481
+ }
1482
+ finally { if (e_11) throw e_11.error; }
1483
+ }
1455
1484
  activeExecutionsRef.current--;
1456
1485
  if (activeExecutionsRef.current === 0) {
1457
1486
  onAfterCalculation();
@@ -1618,7 +1647,7 @@ export var useCalculationWorker = function (props) {
1618
1647
  };
1619
1648
  }, []);
1620
1649
  var prepareArrayOperation = useCallback(function (operation) {
1621
- var e_11, _a;
1650
+ var e_12, _a;
1622
1651
  var _b, _c, _d;
1623
1652
  if (operation.type === "dirty") {
1624
1653
  return;
@@ -1663,12 +1692,12 @@ export var useCalculationWorker = function (props) {
1663
1692
  queueAnchorDirty(entry.anchor);
1664
1693
  }
1665
1694
  }
1666
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
1695
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
1667
1696
  finally {
1668
1697
  try {
1669
1698
  if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
1670
1699
  }
1671
- finally { if (e_11) throw e_11.error; }
1700
+ finally { if (e_12) throw e_12.error; }
1672
1701
  }
1673
1702
  }
1674
1703
  }, [clearArrayValues, findCachedArrayAnchor, graph, queueAnchorDirty]);
@@ -1679,6 +1708,19 @@ export var useCalculationWorker = function (props) {
1679
1708
  if (anchor) {
1680
1709
  collisionAnchorsRef.current.delete(makeKey(anchor));
1681
1710
  }
1711
+ // Remember a static value that replaces the cell's formula. The
1712
+ // processing pass runs after paint, when the host's
1713
+ // getUserEnteredValue may still return the replaced formula; every
1714
+ // formula lookup for the cell (operation mapping, the graph's plan
1715
+ // build, volatile tracking) goes through getFinalUserEnteredValue,
1716
+ // which prefers this entry. Any later operation on the cell
1717
+ // supersedes it.
1718
+ var key = makeKey(operation.position);
1719
+ pendingUserValueEditsRef.current.delete(key);
1720
+ if (operation.type === "add" &&
1721
+ isStaticOperationValue(operation.value)) {
1722
+ pendingUserValueEditsRef.current.set(key, operation.value);
1723
+ }
1682
1724
  }
1683
1725
  scheduleVolatileTracking(operation.position);
1684
1726
  prepareArrayOperation(operation);
@@ -1691,6 +1733,20 @@ export var useCalculationWorker = function (props) {
1691
1733
  requestAnimationFrame(flushGraphOperations);
1692
1734
  }
1693
1735
  });
1736
+ // The spill rectangle anchored at `position` (mirror graph first, then the
1737
+ // last range this hook registered for the anchor).
1738
+ var getArrayRange = useCallbackRef(function (position) {
1739
+ var _a, _b;
1740
+ var range = (_a = graph.getArrayRange(position)) !== null && _a !== void 0 ? _a : (_b = arrayRangeCacheRef.current.get(makeKey(position))) === null || _b === void 0 ? void 0 : _b.range;
1741
+ if (!range)
1742
+ return undefined;
1743
+ return {
1744
+ startRowIndex: range.startRowIndex,
1745
+ startColumnIndex: range.startColumnIndex,
1746
+ endRowIndex: range.endRowIndex,
1747
+ endColumnIndex: range.endColumnIndex,
1748
+ };
1749
+ });
1694
1750
  var isArrayFormula = useCallbackRef(function (position) {
1695
1751
  return graph.isArrayFormula(position) || graph.isInArrayRange(position);
1696
1752
  });
@@ -1745,7 +1801,7 @@ export var useCalculationWorker = function (props) {
1745
1801
  }, [graph]);
1746
1802
  var onRequestCalculate = useCallback(function (value, sheetId, rowIndex, columnIndex, options) { return __awaiter(void 0, void 0, void 0, function () {
1747
1803
  var disablePreview, skipOnDemand, formula, position, dependencies, isCircular, scope, _a, _b, _c, key, value_1, plan, _d, result, resultValue;
1748
- var e_12, _e;
1804
+ var e_13, _e;
1749
1805
  var _f, _g, _h;
1750
1806
  return __generator(this, function (_j) {
1751
1807
  switch (_j.label) {
@@ -1796,12 +1852,12 @@ export var useCalculationWorker = function (props) {
1796
1852
  scope[key] = value_1;
1797
1853
  }
1798
1854
  }
1799
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
1855
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
1800
1856
  finally {
1801
1857
  try {
1802
1858
  if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
1803
1859
  }
1804
- finally { if (e_12) throw e_12.error; }
1860
+ finally { if (e_13) throw e_13.error; }
1805
1861
  }
1806
1862
  }
1807
1863
  plan = {
@@ -1899,6 +1955,7 @@ export var useCalculationWorker = function (props) {
1899
1955
  getDependencyGraph: function () { return "[]"; },
1900
1956
  updateDependencyGraph: function () { },
1901
1957
  isArrayFormula: function () { return false; },
1958
+ getArrayRange: function () { return undefined; },
1902
1959
  applyNamedRanges: function (_list) { },
1903
1960
  stats$: statsSubjectRef.current.asObservable(),
1904
1961
  });
@@ -1922,6 +1979,7 @@ export var useCalculationWorker = function (props) {
1922
1979
  getDependencyGraph: getDependencyGraph,
1923
1980
  updateDependencyGraph: updateDependencyGraph,
1924
1981
  isArrayFormula: isArrayFormula,
1982
+ getArrayRange: getArrayRange,
1925
1983
  // Worker re-inits on namedRanges change (sent via WorkerInit
1926
1984
  // payload), so there's no host-side calculator to apply to.
1927
1985
  // No-op to satisfy the shared API contract.
@@ -158,6 +158,12 @@ export declare const useCalculation: ({ locale, functions, iterativeCalculation,
158
158
  getDependencyGraph: () => string;
159
159
  updateDependencyGraph: (nodes: string) => void;
160
160
  isArrayFormula: (position: CellCoordinate) => boolean;
161
+ getArrayRange: (position: CellCoordinate) => {
162
+ startRowIndex: number;
163
+ startColumnIndex: number;
164
+ endRowIndex: number;
165
+ endColumnIndex: number;
166
+ } | undefined;
161
167
  applyNamedRanges: (list: import("@rowsncolumns/spreadsheet").NamedRange[] | undefined) => void;
162
168
  } | {
163
169
  enqueueCalculation: () => void;
@@ -178,6 +184,7 @@ export declare const useCalculation: ({ locale, functions, iterativeCalculation,
178
184
  getDependencyGraph: () => "[]";
179
185
  updateDependencyGraph: () => void;
180
186
  isArrayFormula: () => false;
187
+ getArrayRange: () => undefined;
181
188
  applyNamedRanges: (_list: import("@rowsncolumns/spreadsheet").NamedRange[] | undefined) => void;
182
189
  };
183
190
  //# sourceMappingURL=use-calculation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-calculation.d.ts","sourceRoot":"","sources":["../../../hooks/use-calculation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-calculation.d.ts","sourceRoot":"","sources":["../../../hooks/use-calculation.ts"],"names":[],"mappings":"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"}
@@ -2415,6 +2415,19 @@ export var useCalculation = function (_a) {
2415
2415
  return (getCalculator().isArray(position) ||
2416
2416
  getCalculator().isInArrayRange(position));
2417
2417
  }, []));
2418
+ // The spill rectangle anchored at `position` (a dynamic array's projected
2419
+ // cells), or undefined when the cell is not a spilling anchor.
2420
+ var getArrayRange = useCallbackRef(useCallback(function (position) {
2421
+ var range = getCalculator().getArrayRange(position);
2422
+ if (!range)
2423
+ return undefined;
2424
+ return {
2425
+ startRowIndex: range.from.row,
2426
+ startColumnIndex: range.from.col,
2427
+ endRowIndex: range.to.row,
2428
+ endColumnIndex: range.to.col,
2429
+ };
2430
+ }, []));
2418
2431
  // Get all dependents of a cell. Returns a mixed list — narrow with
2419
2432
  // the `isCellNode`/`isStaticNode` helpers at call sites (NOT
2420
2433
  // `instanceof`, which breaks across bundler module instances).
@@ -2793,6 +2806,7 @@ export var useCalculation = function (_a) {
2793
2806
  getDependencyGraph: function () { return "[]"; },
2794
2807
  updateDependencyGraph: function () { },
2795
2808
  isArrayFormula: function () { return false; },
2809
+ getArrayRange: function () { return undefined; },
2796
2810
  applyNamedRanges: function (_list) { },
2797
2811
  }); }, []);
2798
2812
  var api = {
@@ -2814,6 +2828,7 @@ export var useCalculation = function (_a) {
2814
2828
  getDependencyGraph: getDependencyGraph,
2815
2829
  updateDependencyGraph: updateDependencyGraph,
2816
2830
  isArrayFormula: isArrayFormula,
2831
+ getArrayRange: getArrayRange,
2817
2832
  // Phase 9 — exposed so `useCalculationInitialize` can guarantee
2818
2833
  // named ranges are registered BEFORE cell formulas are parsed
2819
2834
  // (otherwise cells using a named range would form no DAG edge
@@ -7,6 +7,13 @@ import type { useSheetProperties } from "./use-sheet-properties";
7
7
  import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
8
8
  import type { SharedStringRegistry } from "./use-ss-registry";
9
9
  import type { useUndoRedo } from "./use-undo-redo";
10
+ /**
11
+ * The A1 spill range (`C1:C3`) a dynamic-array result anchored at
12
+ * `(rowIndex, columnIndex)` covers — persisted on the anchor as `af` so xlsx
13
+ * export can write `<f t="array" ref=…>` and structural edits can find the
14
+ * projected cells of a deleted anchor.
15
+ */
16
+ export declare const arrayResultToA1Ref: (rowIndex: number, columnIndex: number, result: unknown[][]) => string | undefined;
10
17
  type UseOnCalculationSuccessProps<T extends CellData> = {
11
18
  locale?: string;
12
19
  cellXfsRegistry?: CellXfsRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-calculation-success.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-calculation-success.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAe1D,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAyBnD,KAAK,4BAA4B,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,EAAE,UAAU,CAC/B,OAAO,kBAAkB,CAC1B,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/D,aAAa,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAC7E,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,wIASpE,4BAA4B,CAAC,CAAC,CAAC,eAMxB,KAAK,CAAC,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,GACnE,gBAAgB,CACd,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAC7D,iBACU,OAAO,aACX,yBAAyB,SAqMzC,CAAC"}
1
+ {"version":3,"file":"use-on-calculation-success.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-calculation-success.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAe1D,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,aAAa,MAAM,EACnB,QAAQ,OAAO,EAAE,EAAE,KAClB,MAAM,GAAG,SAiBX,CAAC;AAEF,KAAK,4BAA4B,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,EAAE,UAAU,CAC/B,OAAO,kBAAkB,CAC1B,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/D,aAAa,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAC7E,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,wIASpE,4BAA4B,CAAC,CAAC,CAAC,eAMxB,KAAK,CAAC,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,GACnE,gBAAgB,CACd,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAC7D,iBACU,OAAO,aACX,yBAAyB,SAqMzC,CAAC"}
@@ -7,7 +7,13 @@ import { useCallback } from "react";
7
7
  import { createSheetDraft, deriveCellFromPrecedents, peekIterable, } from "./../api/immer-utils";
8
8
  import { AWAITING_CALCULATION } from "./../helpers";
9
9
  import { LOADING_VALUE, SheetCell } from "./../sheet-cell";
10
- var arrayResultToA1Ref = function (rowIndex, columnIndex, result) {
10
+ /**
11
+ * The A1 spill range (`C1:C3`) a dynamic-array result anchored at
12
+ * `(rowIndex, columnIndex)` covers — persisted on the anchor as `af` so xlsx
13
+ * export can write `<f t="array" ref=…>` and structural edits can find the
14
+ * projected cells of a deleted anchor.
15
+ */
16
+ export var arrayResultToA1Ref = function (rowIndex, columnIndex, result) {
11
17
  var _a, _b;
12
18
  var numRows = result.length;
13
19
  var numCols = (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
@@ -3,7 +3,7 @@ import { type GridRange, type SelectionArea } from "@rowsncolumns/grid";
3
3
  import type { SpreadsheetTheme } from "@rowsncolumns/spreadsheet";
4
4
  import type { BandedRange, TableView } from "@rowsncolumns/spreadsheet";
5
5
  import { type CellData, type CellFormat, type SelectionAttributes } from "@rowsncolumns/spreadsheet";
6
- import type { CellXfs, SharedStringValue, SharedStrings } from "../types";
6
+ import type { CellXfs, SharedStrings, SharedStringValue } from "../types";
7
7
  import type { useSheetProperties } from "./use-sheet-properties";
8
8
  /**
9
9
  * Excel/Sheets copy a multi-area selection only when every area spans the same
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-copy.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-on-copy.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-copy.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { areaInsideArea, cellIdentifier, } from "@rowsncolumns/grid";
3
- import { getBandedCells, getStringifiedColor, } from "@rowsncolumns/spreadsheet";
4
- import { cellToAddress, getStyleId, getCellUserEnteredValue, getExtendedValueFormula, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
3
+ import { getBandedCells, getStringifiedColor, MULTIPLE_SELECTIONS_ERROR, } from "@rowsncolumns/spreadsheet";
4
+ import { cellToAddress, getCellUserEnteredValue, getExtendedValueFormula, getStyleId, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
5
5
  import { useCallback, useMemo } from "react";
6
6
  import { useShowError } from "../atoms/error-state.atom";
7
7
  import { isStyleReference } from "../sheet-cell";
@@ -13,7 +13,6 @@ var escapeHtmlAttribute = function (value) {
13
13
  .replace(/</g, "&lt;")
14
14
  .replace(/>/g, "&gt;");
15
15
  };
16
- var MULTIPLE_SELECTIONS_ERROR = "This action won't work on multiple selections.";
17
16
  /**
18
17
  * Excel/Sheets copy a multi-area selection only when every area spans the same
19
18
  * rows (areas sit side by side, left to right) or the same columns (areas stack,
@@ -1,10 +1,12 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
1
2
  import { type CellInterface, type SelectionArea } from "@rowsncolumns/grid";
2
3
  import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
4
+ import type { TableView } from "@rowsncolumns/spreadsheet";
3
5
  import type { OnCommand } from "../commands";
6
+ import type { useCalculation } from "./use-calculation";
4
7
  import type { CellXfsRegistry } from "./use-cellxfs-registry";
8
+ import type { SheetData, UseSpreadsheetProps } from "./use-spreadsheet-state";
5
9
  import type { SharedStringRegistry } from "./use-ss-registry";
6
- import type { useCalculation } from "./use-calculation";
7
- import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
8
10
  import type { SpreadsheetPatch } from "./use-undo-redo";
9
11
  export type UseOnDeleteCellsShiftLeftProps<T extends CellData, S extends Sheet> = {
10
12
  columnCount: number;
@@ -22,7 +24,15 @@ export type UseOnDeleteCellsShiftLeftProps<T extends CellData, S extends Sheet>
22
24
  onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
23
25
  onChangeSheets: UseSpreadsheetProps<T, S>["onChangeSheets"];
24
26
  onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
27
+ onChangeTables?: UseSpreadsheetProps<T, S>["onChangeTables"];
25
28
  onCommand?: OnCommand;
29
+ /** Current document facets, read by the Excel refusal guards (`getShiftCellsRefusal`). */
30
+ sheetData?: SheetData<T>;
31
+ sheets?: S[];
32
+ tables?: TableView[];
33
+ /** CSE / dynamic-array ranges on a sheet — a partially covered one refuses the shift. */
34
+ getArrayRanges?: (sheetId: number) => GridRange[] | undefined;
35
+ getSheetName?: (sheetId: number) => string;
26
36
  };
27
- export declare const useOnDeleteCellsShiftLeft: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onCommand, }: UseOnDeleteCellsShiftLeftProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
37
+ export declare const useOnDeleteCellsShiftLeft: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onChangeTables, onCommand, sheetData, sheets, tables, getArrayRanges, getSheetName, }: UseOnDeleteCellsShiftLeftProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
28
38
  //# sourceMappingURL=use-on-delete-cells-shift-left.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-delete-cells-shift-left.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-cells-shift-left.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,8BAA8B,CACxC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,IACb;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2QAiB5E,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,eAMxB,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,SA8DrD,CAAC"}
1
+ {"version":3,"file":"use-on-delete-cells-shift-left.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-cells-shift-left.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,8BAA8B,CACxC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,IACb;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,yFAAyF;IACzF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,GAAG,SAAS,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oVAuB5E,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,eAMxB,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAsFrD,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import { useCallback } from "react";
2
- import { deleteCellsShiftLeft } from "../interface/delete-cells-shift-left";
2
+ import { getShiftCellsRefusal, resolveShiftSelection } from "../api/structural-guards";
3
3
  import { useShowError } from "../atoms/error-state.atom";
4
+ import { deleteCellsShiftLeft } from "../interface/delete-cells-shift-left";
4
5
  import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
5
6
  export var useOnDeleteCellsShiftLeft = function (_a) {
6
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeCitations = _a.onChangeCitations, onCommand = _a.onCommand;
7
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeCitations = _a.onChangeCitations, onChangeTables = _a.onChangeTables, onCommand = _a.onCommand, sheetData = _a.sheetData, sheets = _a.sheets, tables = _a.tables, getArrayRanges = _a.getArrayRanges, getSheetName = _a.getSheetName;
7
8
  var canEditCellRange = useCanEditCellRange();
8
9
  var canPerformSheetAction = useCanPerformSheetAction();
9
10
  var showError = useShowError();
10
11
  return useCallback(function (sheetId, activeCell, selections) {
12
+ var _a;
11
13
  if (!canPerformSheetAction(sheetId, "deleteColumns")) {
12
14
  showError({
13
15
  title: SHEET_PROTECTION_ERROR_TITLE,
@@ -19,6 +21,21 @@ export var useOnDeleteCellsShiftLeft = function (_a) {
19
21
  console.debug("This range is protected, users cannot edit this cell range.");
20
22
  return;
21
23
  }
24
+ var selection = resolveShiftSelection(activeCell, selections);
25
+ var refusal = getShiftCellsRefusal({
26
+ direction: "left",
27
+ range: selection.range,
28
+ sheetId: sheetId,
29
+ rows: sheetData === null || sheetData === void 0 ? void 0 : sheetData[sheetId],
30
+ columnCount: columnCount,
31
+ merges: (_a = sheets === null || sheets === void 0 ? void 0 : sheets.find(function (sheet) { return sheet.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges,
32
+ tables: tables,
33
+ arrayRanges: getArrayRanges === null || getArrayRanges === void 0 ? void 0 : getArrayRanges(sheetId),
34
+ });
35
+ if (refusal) {
36
+ showError({ title: refusal.title, message: refusal.message });
37
+ return;
38
+ }
22
39
  deleteCellsShiftLeft({
23
40
  rowCount: rowCount,
24
41
  columnCount: columnCount,
@@ -35,6 +52,8 @@ export var useOnDeleteCellsShiftLeft = function (_a) {
35
52
  onChangeSheetData: onChangeSheetData,
36
53
  onChangeSheets: onChangeSheets,
37
54
  onChangeCitations: onChangeCitations,
55
+ onChangeTables: onChangeTables,
56
+ getSheetName: getSheetName,
38
57
  })(sheetId, activeCell, selections);
39
58
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({
40
59
  command: "delete-cells-shift-left",
@@ -62,5 +81,11 @@ export var useOnDeleteCellsShiftLeft = function (_a) {
62
81
  canPerformSheetAction,
63
82
  showError,
64
83
  onCommand,
84
+ onChangeTables,
85
+ sheetData,
86
+ sheets,
87
+ tables,
88
+ getArrayRanges,
89
+ getSheetName,
65
90
  ]);
66
91
  };
@@ -1,10 +1,12 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
1
2
  import { type CellInterface, type SelectionArea } from "@rowsncolumns/grid";
2
3
  import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
4
+ import type { TableView } from "@rowsncolumns/spreadsheet";
3
5
  import type { OnCommand } from "../commands";
6
+ import type { useCalculation } from "./use-calculation";
4
7
  import type { CellXfsRegistry } from "./use-cellxfs-registry";
8
+ import type { SheetData, UseSpreadsheetProps } from "./use-spreadsheet-state";
5
9
  import type { SharedStringRegistry } from "./use-ss-registry";
6
- import type { useCalculation } from "./use-calculation";
7
- import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
8
10
  import type { SpreadsheetPatch } from "./use-undo-redo";
9
11
  export type UseOnDeleteCellsShiftUpProps<T extends CellData, S extends Sheet> = {
10
12
  rowCount: number;
@@ -22,7 +24,15 @@ export type UseOnDeleteCellsShiftUpProps<T extends CellData, S extends Sheet> =
22
24
  onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
23
25
  onChangeSheets: UseSpreadsheetProps<T, S>["onChangeSheets"];
24
26
  onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
27
+ onChangeTables?: UseSpreadsheetProps<T, S>["onChangeTables"];
25
28
  onCommand?: OnCommand;
29
+ /** Current document facets, read by the Excel refusal guards (`getShiftCellsRefusal`). */
30
+ sheetData?: SheetData<T>;
31
+ sheets?: S[];
32
+ tables?: TableView[];
33
+ /** CSE / dynamic-array ranges on a sheet — a partially covered one refuses the shift. */
34
+ getArrayRanges?: (sheetId: number) => GridRange[] | undefined;
35
+ getSheetName?: (sheetId: number) => string;
26
36
  };
27
- export declare const useOnDeleteCellsShiftUp: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onCommand, }: UseOnDeleteCellsShiftUpProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
37
+ export declare const useOnDeleteCellsShiftUp: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeCitations, onChangeTables, onCommand, sheetData, sheets, tables, getArrayRanges, getSheetName, }: UseOnDeleteCellsShiftUpProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
28
38
  //# sourceMappingURL=use-on-delete-cells-shift-up.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-delete-cells-shift-up.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-cells-shift-up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,4BAA4B,CACtC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,IACb;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2QAiB1E,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,eAMtB,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,SA8DrD,CAAC"}
1
+ {"version":3,"file":"use-on-delete-cells-shift-up.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-cells-shift-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,4BAA4B,CACtC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,IACb;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,cAAc,CACtB,CAAC,wBAAwB,CAAC,CAAC;IAC5B,qBAAqB,EAAE,UAAU,CAC/B,OAAO,cAAc,CACtB,CAAC,uBAAuB,CAAC,CAAC;IAC3B,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,yFAAyF;IACzF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,GAAG,SAAS,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oVAuB1E,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,eAMtB,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAsFrD,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import { useCallback } from "react";
2
- import { deleteCellsShiftUp } from "../interface/delete-cells-shift-up";
2
+ import { getShiftCellsRefusal, resolveShiftSelection } from "../api/structural-guards";
3
3
  import { useShowError } from "../atoms/error-state.atom";
4
+ import { deleteCellsShiftUp } from "../interface/delete-cells-shift-up";
4
5
  import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
5
6
  export var useOnDeleteCellsShiftUp = function (_a) {
6
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeCitations = _a.onChangeCitations, onCommand = _a.onCommand;
7
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeCitations = _a.onChangeCitations, onChangeTables = _a.onChangeTables, onCommand = _a.onCommand, sheetData = _a.sheetData, sheets = _a.sheets, tables = _a.tables, getArrayRanges = _a.getArrayRanges, getSheetName = _a.getSheetName;
7
8
  var canEditCellRange = useCanEditCellRange();
8
9
  var canPerformSheetAction = useCanPerformSheetAction();
9
10
  var showError = useShowError();
10
11
  return useCallback(function (sheetId, activeCell, selections) {
12
+ var _a;
11
13
  if (!canPerformSheetAction(sheetId, "deleteRows")) {
12
14
  showError({
13
15
  title: SHEET_PROTECTION_ERROR_TITLE,
@@ -19,6 +21,21 @@ export var useOnDeleteCellsShiftUp = function (_a) {
19
21
  console.debug("This range is protected, users cannot edit this cell range.");
20
22
  return;
21
23
  }
24
+ var selection = resolveShiftSelection(activeCell, selections);
25
+ var refusal = getShiftCellsRefusal({
26
+ direction: "up",
27
+ range: selection.range,
28
+ sheetId: sheetId,
29
+ rows: sheetData === null || sheetData === void 0 ? void 0 : sheetData[sheetId],
30
+ rowCount: rowCount,
31
+ merges: (_a = sheets === null || sheets === void 0 ? void 0 : sheets.find(function (sheet) { return sheet.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges,
32
+ tables: tables,
33
+ arrayRanges: getArrayRanges === null || getArrayRanges === void 0 ? void 0 : getArrayRanges(sheetId),
34
+ });
35
+ if (refusal) {
36
+ showError({ title: refusal.title, message: refusal.message });
37
+ return;
38
+ }
22
39
  deleteCellsShiftUp({
23
40
  rowCount: rowCount,
24
41
  columnCount: columnCount,
@@ -35,6 +52,8 @@ export var useOnDeleteCellsShiftUp = function (_a) {
35
52
  onChangeSheetData: onChangeSheetData,
36
53
  onChangeSheets: onChangeSheets,
37
54
  onChangeCitations: onChangeCitations,
55
+ onChangeTables: onChangeTables,
56
+ getSheetName: getSheetName,
38
57
  })(sheetId, activeCell, selections);
39
58
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({
40
59
  command: "delete-cells-shift-up",
@@ -62,5 +81,11 @@ export var useOnDeleteCellsShiftUp = function (_a) {
62
81
  canPerformSheetAction,
63
82
  showError,
64
83
  onCommand,
84
+ onChangeTables,
85
+ sheetData,
86
+ sheets,
87
+ tables,
88
+ getArrayRanges,
89
+ getSheetName,
65
90
  ]);
66
91
  };
@@ -1,11 +1,12 @@
1
1
  import type { CellInterface, SelectionArea } from "@rowsncolumns/grid";
2
2
  import type { CanvasGridProps } from "@rowsncolumns/spreadsheet";
3
- import { type CellData, type SelectionAttributes, type Sheet } from "@rowsncolumns/spreadsheet";
3
+ import { type CellData, type SelectionAttributes, type Sheet, type TableView } from "@rowsncolumns/spreadsheet";
4
+ import type { GetArrayRange } from "../api/structural-table-refs";
4
5
  import type { OnCommand } from "../commands";
5
- import type { CellXfsRegistry } from "./use-cellxfs-registry";
6
- import type { SharedStringRegistry } from "./use-ss-registry";
7
6
  import type { useCalculation } from "./use-calculation";
7
+ import type { CellXfsRegistry } from "./use-cellxfs-registry";
8
8
  import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
9
+ import type { SharedStringRegistry } from "./use-ss-registry";
9
10
  import type { SpreadsheetPatch } from "./use-undo-redo";
10
11
  export type UseOnDeleteColumnProps<T extends CellData, S extends Sheet> = {
11
12
  rowCount: number;
@@ -31,8 +32,16 @@ export type UseOnDeleteColumnProps<T extends CellData, S extends Sheet> = {
31
32
  onChangeConditionalFormats?: UseSpreadsheetProps<T, S>["onChangeConditionalFormats"];
32
33
  onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
33
34
  onChangePivotTables?: UseSpreadsheetProps<T, S>["onChangePivotTables"];
35
+ onChangeNamedRanges?: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
36
+ onChangeEmbeds?: UseSpreadsheetProps<T, S>["onChangeEmbeds"];
37
+ onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
38
+ onChangeProtectedRanges?: UseSpreadsheetProps<T, S>["onChangeProtectedRanges"];
34
39
  getSheetName(sheetId: number): string;
35
40
  onCommand?: OnCommand;
41
+ /** Pre-edit table definitions: structured refs into deleted tables/columns break to `#REF!`. */
42
+ tables?: TableView[];
43
+ /** Live spill rectangle of a dynamic-array anchor: a deleted anchor takes its spill with it. */
44
+ getArrayRange?: GetArrayRange;
36
45
  };
37
- export declare const useOnDeleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, getSheetName, onCommand, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
46
+ export declare const useOnDeleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, getSheetName, onCommand, tables, getArrayRange, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
38
47
  //# sourceMappingURL=use-on-delete-column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-delete-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-column.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-on-delete-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-column.ts"],"names":[],"mappings":"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"}