@rowsncolumns/spreadsheet-state 29.0.0 → 29.1.1

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 (603) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +131 -7
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +488 -43
  4. package/dist/cjs/api/copy-paste.d.ts +1 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +1 -3
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/paint-format.d.ts +22 -1
  14. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  15. package/dist/cjs/api/paint-format.js +57 -1
  16. package/dist/cjs/api/sort.d.ts +23 -1
  17. package/dist/cjs/api/sort.d.ts.map +1 -1
  18. package/dist/cjs/api/sort.js +52 -6
  19. package/dist/cjs/api/structural-guards.d.ts +57 -0
  20. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  21. package/dist/cjs/api/structural-guards.js +93 -1
  22. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  23. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  24. package/dist/cjs/api/structural-table-refs.js +177 -16
  25. package/dist/cjs/api/table.d.ts +26 -2
  26. package/dist/cjs/api/table.d.ts.map +1 -1
  27. package/dist/cjs/api/table.js +93 -60
  28. package/dist/cjs/api/validation.d.ts.map +1 -1
  29. package/dist/cjs/api/validation.js +53 -8
  30. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  31. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  32. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  33. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  34. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  35. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  36. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  37. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  38. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  39. package/dist/cjs/atoms/index.d.ts +4 -0
  40. package/dist/cjs/atoms/index.d.ts.map +1 -1
  41. package/dist/cjs/atoms/index.js +4 -0
  42. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  43. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  45. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  47. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  48. package/dist/cjs/commands.d.ts +129 -2
  49. package/dist/cjs/commands.d.ts.map +1 -1
  50. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  51. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  52. package/dist/cjs/components/editors/embed-editor.js +38 -9
  53. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  54. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  55. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  56. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  57. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  58. package/dist/cjs/components/editors/table-editor.js +261 -20
  59. package/dist/cjs/components/index.d.ts +1 -0
  60. package/dist/cjs/components/index.d.ts.map +1 -1
  61. package/dist/cjs/components/index.js +1 -0
  62. package/dist/cjs/constants.d.ts +9 -1
  63. package/dist/cjs/constants.d.ts.map +1 -1
  64. package/dist/cjs/constants.js +12 -0
  65. package/dist/cjs/generated-names.d.ts +13 -3
  66. package/dist/cjs/generated-names.d.ts.map +1 -1
  67. package/dist/cjs/generated-names.js +3 -1
  68. package/dist/cjs/helpers.d.ts +5 -0
  69. package/dist/cjs/helpers.d.ts.map +1 -1
  70. package/dist/cjs/helpers.js +10 -1
  71. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  72. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  73. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  74. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  75. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  76. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  77. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  78. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  79. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  80. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  81. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  82. package/dist/cjs/hooks/use-on-change.js +218 -136
  83. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  84. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  85. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  86. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  87. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  89. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  90. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  92. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  93. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  95. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  96. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  98. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  99. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  100. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  101. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +10 -1
  102. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-delete-sheet.js +19 -1
  104. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  105. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  107. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  108. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete.js +5 -1
  110. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  111. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  113. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  114. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-fill.js +29 -15
  116. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  117. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  118. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  119. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  120. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  121. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  122. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  123. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  124. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  125. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  126. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  127. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  128. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  129. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  130. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  131. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  133. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  134. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  136. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  137. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  139. package/dist/cjs/hooks/use-on-move-columns.d.ts +3 -1
  140. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-move-columns.js +14 -1
  142. package/dist/cjs/hooks/use-on-move-rows.d.ts +3 -1
  143. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-move-rows.js +14 -1
  145. package/dist/cjs/hooks/use-on-move-selection.d.ts +3 -1
  146. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-move-selection.js +88 -25
  148. package/dist/cjs/hooks/use-on-paste.d.ts +22 -1
  149. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-paste.js +993 -776
  151. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  152. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  154. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  155. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  156. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  157. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  158. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  159. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  160. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  161. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  162. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  163. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  164. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  166. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  167. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  169. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  170. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  171. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  172. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  173. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  174. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  175. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  176. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  177. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  178. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  179. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-table.js +257 -49
  181. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  182. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  183. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  184. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  185. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  186. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  187. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  188. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  190. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  191. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  193. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  194. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-slicers.js +17 -26
  196. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  197. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  199. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +56 -10
  200. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  201. package/dist/cjs/hooks/use-spreadsheet-state.js +323 -100
  202. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  203. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  204. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  205. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  206. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  207. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  208. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  209. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  210. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  211. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  212. package/dist/cjs/index.d.ts +7 -0
  213. package/dist/cjs/index.d.ts.map +1 -1
  214. package/dist/cjs/index.js +8 -0
  215. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  216. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  217. package/dist/cjs/interface/apply-fill.js +207 -98
  218. package/dist/cjs/interface/change-batch.d.ts +1 -1
  219. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  220. package/dist/cjs/interface/change-batch.js +112 -15
  221. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  222. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  223. package/dist/cjs/interface/change-calculated-column.js +87 -17
  224. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  225. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  226. package/dist/cjs/interface/change-table-column.js +336 -76
  227. package/dist/cjs/interface/create-table.d.ts +15 -3
  228. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  229. package/dist/cjs/interface/create-table.js +100 -25
  230. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  231. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  232. package/dist/cjs/interface/delete-cells-shift-left.js +17 -2
  233. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  234. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  235. package/dist/cjs/interface/delete-cells-shift-up.js +17 -2
  236. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  237. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  238. package/dist/cjs/interface/delete-cells.js +106 -44
  239. package/dist/cjs/interface/delete-column.d.ts +1 -1
  240. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/delete-column.js +16 -3
  242. package/dist/cjs/interface/delete-row.d.ts +1 -1
  243. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  244. package/dist/cjs/interface/delete-row.js +230 -19
  245. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  246. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-sheet.js +149 -2
  248. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  249. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-table-column.js +11 -1
  251. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  252. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-table-row.js +361 -275
  254. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  255. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  256. package/dist/cjs/interface/embeds.d.ts +10 -1
  257. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  258. package/dist/cjs/interface/embeds.js +120 -6
  259. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  260. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  261. package/dist/cjs/interface/insert-cells-shift-down.js +11 -1
  262. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  263. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  264. package/dist/cjs/interface/insert-cells-shift-right.js +11 -1
  265. package/dist/cjs/interface/insert-column.d.ts +2 -2
  266. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  267. package/dist/cjs/interface/insert-column.js +68 -38
  268. package/dist/cjs/interface/insert-row.d.ts +1 -1
  269. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  270. package/dist/cjs/interface/insert-row.js +10 -2
  271. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  272. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  273. package/dist/cjs/interface/insert-table-row.js +70 -19
  274. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  275. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  276. package/dist/cjs/interface/remove-duplicates.js +46 -6
  277. package/dist/cjs/interface/remove-table.d.ts +1 -1
  278. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  279. package/dist/cjs/interface/remove-table.js +72 -16
  280. package/dist/cjs/interface/slicers.d.ts +12 -1
  281. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  282. package/dist/cjs/interface/slicers.js +47 -2
  283. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  284. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  285. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  286. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  287. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  288. package/dist/cjs/interface/table-totalrow.js +107 -73
  289. package/dist/cjs/interface/table-utils.d.ts +59 -6
  290. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  291. package/dist/cjs/interface/table-utils.js +211 -15
  292. package/dist/cjs/interface/update-table.d.ts +16 -1
  293. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/update-table.js +190 -44
  295. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  296. package/dist/cjs/test-setup.d.ts.map +1 -1
  297. package/dist/cjs/test-setup.js +6 -0
  298. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  299. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  300. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  301. package/dist/cjs/validation-schema/table.schema.js +20 -3
  302. package/dist/esm/api/anchored-objects.d.ts +131 -7
  303. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  304. package/dist/esm/api/anchored-objects.js +399 -15
  305. package/dist/esm/api/copy-paste.d.ts +1 -2
  306. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  307. package/dist/esm/api/copy-paste.js +1 -3
  308. package/dist/esm/api/filter.d.ts +15 -1
  309. package/dist/esm/api/filter.d.ts.map +1 -1
  310. package/dist/esm/api/filter.js +28 -0
  311. package/dist/esm/api/formula.d.ts +63 -0
  312. package/dist/esm/api/formula.d.ts.map +1 -1
  313. package/dist/esm/api/formula.js +235 -8
  314. package/dist/esm/api/paint-format.d.ts +22 -1
  315. package/dist/esm/api/paint-format.d.ts.map +1 -1
  316. package/dist/esm/api/paint-format.js +44 -1
  317. package/dist/esm/api/sort.d.ts +23 -1
  318. package/dist/esm/api/sort.d.ts.map +1 -1
  319. package/dist/esm/api/sort.js +45 -6
  320. package/dist/esm/api/structural-guards.d.ts +57 -0
  321. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  322. package/dist/esm/api/structural-guards.js +85 -0
  323. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  324. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  325. package/dist/esm/api/structural-table-refs.js +126 -6
  326. package/dist/esm/api/table.d.ts +26 -2
  327. package/dist/esm/api/table.d.ts.map +1 -1
  328. package/dist/esm/api/table.js +70 -48
  329. package/dist/esm/api/validation.d.ts.map +1 -1
  330. package/dist/esm/api/validation.js +53 -8
  331. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  332. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  333. package/dist/esm/atoms/creating-table.atom.js +4 -0
  334. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  335. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  336. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  337. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  338. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  339. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  340. package/dist/esm/atoms/index.d.ts +4 -0
  341. package/dist/esm/atoms/index.d.ts.map +1 -1
  342. package/dist/esm/atoms/index.js +4 -0
  343. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  344. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  345. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  346. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  347. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  348. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  349. package/dist/esm/commands.d.ts +129 -2
  350. package/dist/esm/commands.d.ts.map +1 -1
  351. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  352. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  353. package/dist/esm/components/editors/embed-editor.js +40 -6
  354. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  355. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  356. package/dist/esm/components/editors/slicer-editor.js +85 -0
  357. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  358. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  359. package/dist/esm/components/editors/table-editor.js +243 -19
  360. package/dist/esm/components/index.d.ts +1 -0
  361. package/dist/esm/components/index.d.ts.map +1 -1
  362. package/dist/esm/components/index.js +1 -0
  363. package/dist/esm/constants.d.ts +9 -1
  364. package/dist/esm/constants.d.ts.map +1 -1
  365. package/dist/esm/constants.js +12 -0
  366. package/dist/esm/generated-names.d.ts +13 -3
  367. package/dist/esm/generated-names.d.ts.map +1 -1
  368. package/dist/esm/generated-names.js +3 -1
  369. package/dist/esm/helpers.d.ts +5 -0
  370. package/dist/esm/helpers.d.ts.map +1 -1
  371. package/dist/esm/helpers.js +7 -1
  372. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  373. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  374. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  375. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  376. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  377. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  378. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  379. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  380. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  381. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  382. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  383. package/dist/esm/hooks/use-on-change.js +214 -124
  384. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  385. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  386. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  387. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  388. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  389. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  390. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  391. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  392. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  393. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  394. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  395. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  396. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  397. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  398. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  399. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  400. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  402. package/dist/esm/hooks/use-on-delete-sheet.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-delete-sheet.js +19 -1
  405. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  406. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  408. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  409. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-delete.js +5 -1
  411. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  412. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-embeds.js +23 -6
  414. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  415. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  416. package/dist/esm/hooks/use-on-fill.js +27 -1
  417. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  418. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  419. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  420. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  421. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  422. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  423. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  424. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  425. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  426. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  427. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  428. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  429. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  430. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  431. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  432. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  433. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  434. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  435. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  436. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  437. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  438. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  439. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  440. package/dist/esm/hooks/use-on-move-columns.d.ts +3 -1
  441. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  442. package/dist/esm/hooks/use-on-move-columns.js +14 -1
  443. package/dist/esm/hooks/use-on-move-rows.d.ts +3 -1
  444. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  445. package/dist/esm/hooks/use-on-move-rows.js +14 -1
  446. package/dist/esm/hooks/use-on-move-selection.d.ts +3 -1
  447. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-move-selection.js +44 -1
  449. package/dist/esm/hooks/use-on-paste.d.ts +22 -1
  450. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-paste.js +815 -672
  452. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  453. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  455. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  456. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  457. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  458. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  459. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  460. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  461. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  462. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  463. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  464. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  465. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  467. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  468. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  470. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  471. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  473. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  476. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  477. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  479. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  480. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-table.js +234 -26
  482. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  483. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  484. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  485. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  486. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  488. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  489. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  490. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  491. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  492. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  493. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  494. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  495. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-slicers.js +16 -8
  497. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  498. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  499. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  500. package/dist/esm/hooks/use-spreadsheet-state.d.ts +56 -10
  501. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-spreadsheet-state.js +260 -30
  503. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  504. package/dist/esm/hooks/use-structured-reference.js +17 -0
  505. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  506. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  507. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  508. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  509. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  510. package/dist/esm/hooks/use-undo-redo.js +158 -7
  511. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  512. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  513. package/dist/esm/index.d.ts +7 -0
  514. package/dist/esm/index.d.ts.map +1 -1
  515. package/dist/esm/index.js +8 -0
  516. package/dist/esm/interface/apply-fill.d.ts +26 -3
  517. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  518. package/dist/esm/interface/apply-fill.js +188 -88
  519. package/dist/esm/interface/change-batch.d.ts +1 -1
  520. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  521. package/dist/esm/interface/change-batch.js +89 -8
  522. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  523. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  524. package/dist/esm/interface/change-calculated-column.js +81 -16
  525. package/dist/esm/interface/change-table-column.d.ts +81 -7
  526. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  527. package/dist/esm/interface/change-table-column.js +295 -67
  528. package/dist/esm/interface/create-table.d.ts +15 -3
  529. package/dist/esm/interface/create-table.d.ts.map +1 -1
  530. package/dist/esm/interface/create-table.js +103 -27
  531. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  532. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  533. package/dist/esm/interface/delete-cells-shift-left.js +17 -2
  534. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  535. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  536. package/dist/esm/interface/delete-cells-shift-up.js +17 -2
  537. package/dist/esm/interface/delete-cells.d.ts +1 -1
  538. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  539. package/dist/esm/interface/delete-cells.js +69 -30
  540. package/dist/esm/interface/delete-column.d.ts +1 -1
  541. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  542. package/dist/esm/interface/delete-column.js +16 -3
  543. package/dist/esm/interface/delete-row.d.ts +1 -1
  544. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  545. package/dist/esm/interface/delete-row.js +180 -16
  546. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  547. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  548. package/dist/esm/interface/delete-sheet.js +132 -1
  549. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  550. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  551. package/dist/esm/interface/delete-table-column.js +11 -1
  552. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  553. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  554. package/dist/esm/interface/delete-table-row.js +312 -232
  555. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  556. package/dist/esm/interface/duplicate-sheet.js +73 -26
  557. package/dist/esm/interface/embeds.d.ts +10 -1
  558. package/dist/esm/interface/embeds.d.ts.map +1 -1
  559. package/dist/esm/interface/embeds.js +84 -5
  560. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  561. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  562. package/dist/esm/interface/insert-cells-shift-down.js +11 -1
  563. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  564. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  565. package/dist/esm/interface/insert-cells-shift-right.js +11 -1
  566. package/dist/esm/interface/insert-column.d.ts +2 -2
  567. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  568. package/dist/esm/interface/insert-column.js +49 -23
  569. package/dist/esm/interface/insert-row.d.ts +1 -1
  570. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  571. package/dist/esm/interface/insert-row.js +10 -2
  572. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  573. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  574. package/dist/esm/interface/insert-table-row.js +67 -12
  575. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  576. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  577. package/dist/esm/interface/remove-duplicates.js +41 -6
  578. package/dist/esm/interface/remove-table.d.ts +1 -1
  579. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  580. package/dist/esm/interface/remove-table.js +58 -10
  581. package/dist/esm/interface/slicers.d.ts +12 -1
  582. package/dist/esm/interface/slicers.d.ts.map +1 -1
  583. package/dist/esm/interface/slicers.js +44 -2
  584. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  585. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  586. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  587. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  588. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  589. package/dist/esm/interface/table-totalrow.js +98 -68
  590. package/dist/esm/interface/table-utils.d.ts +59 -6
  591. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  592. package/dist/esm/interface/table-utils.js +155 -14
  593. package/dist/esm/interface/update-table.d.ts +16 -1
  594. package/dist/esm/interface/update-table.d.ts.map +1 -1
  595. package/dist/esm/interface/update-table.js +203 -42
  596. package/dist/esm/sheet-cell.d.ts.map +1 -1
  597. package/dist/esm/test-setup.d.ts.map +1 -1
  598. package/dist/esm/test-setup.js +6 -0
  599. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  600. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  601. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  602. package/dist/esm/validation-schema/table.schema.js +15 -2
  603. package/package.json +19 -11
@@ -1,27 +1,101 @@
1
1
  import { __assign, __read } from "tslib";
2
- import { areaIntersects, isAreasEqual, isCellWithinBounds, selectionFromActiveCell, } from "@rowsncolumns/utils";
2
+ import { areaIntersects, isAreasEqual, isCellWithinBounds, selectionFromActiveCell, validateTableName, } from "@rowsncolumns/utils";
3
3
  import { uuid } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
- import { getGeneratedTableName } from "../generated-names";
6
- import { getNextTableColumnName } from "../helpers";
7
- import { addTableColumn, tableWouldOverlap } from "./table-utils";
5
+ import { getTableRangeRefusal, shiftBand } from "../api/structural-guards";
6
+ import { getNextTableTitle } from "../helpers";
7
+ import { insertCellsShiftDown } from "./insert-cells-shift-down";
8
+ import { addTableColumn, getTableHeaderNames } from "./table-utils";
9
+ /**
10
+ * The data range a create-table targets: the spec's range, else the last selection, else the data
11
+ * region around the active cell (Ctrl+A's region), else the active cell. The hook's refusal guards
12
+ * and the create itself must agree on it, so both resolve it here.
13
+ */
14
+ export var resolveCreateTableRange = function (_a) {
15
+ var _b;
16
+ var sheetId = _a.sheetId, activeCell = _a.activeCell, selections = _a.selections, tableSpec = _a.tableSpec, getContentfulRangeAroundCell = _a.getContentfulRangeAroundCell;
17
+ var lastSelection = selections === null || selections === void 0 ? void 0 : selections[selections.length - 1];
18
+ return (tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.range)
19
+ ? tableSpec.range
20
+ : lastSelection
21
+ ? lastSelection.range
22
+ : (_b = getContentfulRangeAroundCell === null || getContentfulRangeAroundCell === void 0 ? void 0 : getContentfulRangeAroundCell(sheetId, activeCell)) !== null && _b !== void 0 ? _b : selectionFromActiveCell(activeCell)[0].range;
23
+ };
8
24
  export var createTable = function (_a) {
9
- var locale = _a.locale, rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, basicFilter = _a.basicFilter, spreadsheetTheme = _a.theme, idCreationStrategy = _a.idCreationStrategy, enqueueCalculation = _a.enqueueCalculation, createHistory = _a.createHistory, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeSheetData = _a.onChangeSheetData, getFormattedValue = _a.getFormattedValue, getEffectiveValue = _a.getEffectiveValue, onRequestCalculate = _a.onRequestCalculate, getDependents = _a.getDependents, enqueueGraphOperation = _a.enqueueGraphOperation, getContentfulRangeAroundCell = _a.getContentfulRangeAroundCell, generatedNames = _a.generatedNames;
10
- return function (sheetId, activeCell, selections, tableSpec, theme, bandedRange) {
11
- var _a;
25
+ var locale = _a.locale, rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, namedRanges = _a.namedRanges, basicFilter = _a.basicFilter, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, spreadsheetTheme = _a.theme, idCreationStrategy = _a.idCreationStrategy, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, createHistory = _a.createHistory, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeSheetData = _a.onChangeSheetData, onChangeCitations = _a.onChangeCitations, onChangeCharts = _a.onChangeCharts, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getFormattedValue = _a.getFormattedValue, getEffectiveValue = _a.getEffectiveValue, onRequestCalculate = _a.onRequestCalculate, getDependents = _a.getDependents, getSheetName = _a.getSheetName, enqueueGraphOperation = _a.enqueueGraphOperation, getContentfulRangeAroundCell = _a.getContentfulRangeAroundCell, generatedNames = _a.generatedNames;
26
+ return function (sheetId, activeCell, selections, tableSpec, theme, bandedRange, options) {
12
27
  // Validate
13
28
  var lastSelection = selections === null || selections === void 0 ? void 0 : selections[selections.length - 1];
14
- var saveHistory = createHistory();
15
- var range = (tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.range)
16
- ? tableSpec.range
17
- : lastSelection
18
- ? lastSelection.range
19
- : (_a = getContentfulRangeAroundCell === null || getContentfulRangeAroundCell === void 0 ? void 0 : getContentfulRangeAroundCell(sheetId, activeCell)) !== null && _a !== void 0 ? _a : selectionFromActiveCell(activeCell)[0].range;
29
+ var dataRange = resolveCreateTableRange({
30
+ sheetId: sheetId,
31
+ activeCell: activeCell,
32
+ selections: selections,
33
+ tableSpec: tableSpec,
34
+ getContentfulRangeAroundCell: getContentfulRangeAroundCell,
35
+ });
36
+ // Excel's "My table has headers" unchecked: a `Column1..N` header row is inserted ABOVE the
37
+ // data — the range's columns shift down one row (Insert Cells → Shift cells down) and the
38
+ // table covers header + data. The caller has already run the shift's refusal guard.
39
+ var hasHeaders = (options === null || options === void 0 ? void 0 : options.hasHeaders) !== false;
40
+ var range = hasHeaders
41
+ ? dataRange
42
+ : __assign(__assign({}, dataRange), { endRowIndex: dataRange.endRowIndex + 1 });
20
43
  // Refuse to create a table whose rectangle overlaps an existing one on the
21
- // same sheet — Excel rejects such workbooks on open.
22
- if (tableWouldOverlap({ sheetId: sheetId, range: range }, tables)) {
44
+ // same sheet — Excel rejects such workbooks on open. With an inserted header
45
+ // row, tables wholly inside the shifted columns sit one row lower by then.
46
+ if (getTableRangeRefusal({
47
+ sheetId: sheetId,
48
+ range: range,
49
+ tables: tables,
50
+ insertedRows: hasHeaders
51
+ ? undefined
52
+ : {
53
+ band: shiftBand("down", __assign(__assign({}, dataRange), { endRowIndex: dataRange.startRowIndex })),
54
+ count: 1,
55
+ },
56
+ })) {
57
+ return;
58
+ }
59
+ // A caller-supplied id must be free: pushing a second table under an existing id would leave
60
+ // two tables answering to it (the hook shows the reason; a generated id is fresh by construction).
61
+ if ((tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.id) !== undefined &&
62
+ (tables === null || tables === void 0 ? void 0 : tables.some(function (table) { return table.id === tableSpec.id; }))) {
23
63
  return;
24
64
  }
65
+ // A caller-supplied title must be a valid Excel table name no table or defined name holds
66
+ // (the hook shows the reason; the generated default is valid by construction).
67
+ if ((tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.title) !== undefined &&
68
+ validateTableName(tableSpec.title, tables === null || tables === void 0 ? void 0 : tables.map(function (table) { return table.title; }), namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (namedRange) { return namedRange.name; }))) {
69
+ return;
70
+ }
71
+ if (!hasHeaders) {
72
+ insertCellsShiftDown({
73
+ rowCount: rowCount,
74
+ columnCount: columnCount,
75
+ locale: locale,
76
+ cellXfsRegistry: cellXfsRegistry,
77
+ sharedStringRegistry: sharedStringRegistry,
78
+ getActiveCell: getActiveCell !== null && getActiveCell !== void 0 ? getActiveCell : (function () { return activeCell; }),
79
+ getSelections: getSelections !== null && getSelections !== void 0 ? getSelections : (function () { return selections; }),
80
+ getDependents: getDependents,
81
+ getSheetName: getSheetName,
82
+ createHistory: createHistory,
83
+ enqueueGraphOperation: enqueueGraphOperation,
84
+ enqueueCalculation: enqueueCalculation,
85
+ enqueueStructureChange: enqueueStructureChange,
86
+ onChangeSheetData: onChangeSheetData,
87
+ onChangeSheets: onChangeSheets,
88
+ onChangeCitations: onChangeCitations,
89
+ onChangeTables: onChangeTables,
90
+ onChangeCharts: onChangeCharts,
91
+ })(sheetId, activeCell, [
92
+ { range: __assign(__assign({}, dataRange), { endRowIndex: dataRange.startRowIndex }) },
93
+ ]);
94
+ }
95
+ var saveHistory = createHistory();
96
+ // The header names: the header cells' text (falling back to `ColumnN`), or `Column1..N` for
97
+ // an inserted header row — its cells are blank until `addTableColumn` writes them.
98
+ var headerCellText = hasHeaders ? getFormattedValue : function () { return undefined; };
25
99
  // Crate a table
26
100
  onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
27
101
  var _a = __read(produceWithPatches(prevTables, function (draft) {
@@ -32,15 +106,16 @@ export var createTable = function (_a) {
32
106
  table.sheetId === sheetId;
33
107
  });
34
108
  if (tableIndex === -1) {
35
- var columns = [];
36
- for (var columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
37
- var formattedValue = getFormattedValue(sheetId, range.startRowIndex, columnIndex);
38
- var columnName = getNextTableColumnName(columns, generatedNames);
39
- columns.push({
40
- name: formattedValue || columnName,
41
- });
42
- }
43
- draft.push(__assign({ id: (_b = (_a = tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.id) !== null && _a !== void 0 ? _a : idCreationStrategy === null || idCreationStrategy === void 0 ? void 0 : idCreationStrategy("table")) !== null && _b !== void 0 ? _b : uuid(), range: range, sheetId: sheetId, title: (_c = tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.title) !== null && _c !== void 0 ? _c : getGeneratedTableName(draft.length + 1, generatedNames), columns: columns, filterSpecs: [], headerRow: true, filterButton: true, sortSpecs: [], showRowStripes: true, bandedRange: bandedRange, theme: theme !== null && theme !== void 0 ? theme : "TableStyleLight1" }, tableSpec));
109
+ // Excel: header names are unique (`Name`, `Name2`, …) and blanks take `ColumnN`.
110
+ var columns = getTableHeaderNames({
111
+ sheetId: sheetId,
112
+ range: range,
113
+ getFormattedValue: headerCellText,
114
+ generatedNames: generatedNames,
115
+ }).map(function (name) { return ({ name: name }); });
116
+ draft.push(__assign(__assign(__assign({ id: (_b = (_a = tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.id) !== null && _a !== void 0 ? _a : idCreationStrategy === null || idCreationStrategy === void 0 ? void 0 : idCreationStrategy("table")) !== null && _b !== void 0 ? _b : uuid(), sheetId: sheetId, title: (_c = tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.title) !== null && _c !== void 0 ? _c : getNextTableTitle(draft, generatedNames), columns: columns, filterSpecs: [], headerRow: true, filterButton: true, sortSpecs: [], showRowStripes: true, bandedRange: bandedRange, theme: theme !== null && theme !== void 0 ? theme : "TableStyleLight1" }, tableSpec), {
117
+ // The spec's range is the DATA range; the table also covers an inserted header row.
118
+ range: range }), (hasHeaders ? {} : { headerRow: true, columns: columns })));
44
119
  }
45
120
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
46
121
  // Mark table cells as dirty
@@ -61,7 +136,7 @@ export var createTable = function (_a) {
61
136
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
62
137
  addTableColumn({
63
138
  draft: draft,
64
- getFormattedValue: getFormattedValue,
139
+ getFormattedValue: headerCellText,
65
140
  sheetId: sheetId,
66
141
  range: range,
67
142
  locale: locale,
@@ -8,5 +8,5 @@ import type { UseOnDeleteCellsShiftLeftProps } from "../hooks/use-on-delete-cell
8
8
  * follows it; a range entirely inside the block's rows that the block partially covers contracts.
9
9
  * Refusals (torn merge/table/array) are decided by the hook before this runs.
10
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;
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, onChangeCharts, }: UseOnDeleteCellsShiftLeftProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
12
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;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"}
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;AAiBnC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAI9F;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBvE,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,MAEnC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SA+SnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { produceWithPatches } from "immer";
3
+ import { refreshCitationAnchor, shiftChartsOnCellShift } from "../api/anchored-objects";
3
4
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
4
5
  import { contractRangesInFormula } from "../api/formula";
5
6
  import { createSheetDraft } from "../api/immer-utils";
@@ -14,7 +15,7 @@ import { SheetCell } from "../sheet-cell";
14
15
  * Refusals (torn merge/table/array) are decided by the hook before this runs.
15
16
  */
16
17
  export var deleteCellsShiftLeft = function (_a) {
17
- 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, getSheetName = _a.getSheetName, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations;
18
+ 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, getSheetName = _a.getSheetName, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations, onChangeCharts = _a.onChangeCharts;
18
19
  return function (sheetId, activeCell, selections) {
19
20
  var _a;
20
21
  var saveHistory = createHistory();
@@ -70,6 +71,7 @@ export var deleteCellsShiftLeft = function (_a) {
70
71
  });
71
72
  // Update citations - delete if overlapping, shift back if after
72
73
  onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
74
+ var updatedAt = new Date().toISOString();
73
75
  var _a = __read(produceWithPatches(prevCitations, function (draft) {
74
76
  for (var idx = draft.length - 1; idx >= 0; idx--) {
75
77
  var citation = draft[idx];
@@ -81,11 +83,16 @@ export var deleteCellsShiftLeft = function (_a) {
81
83
  var colsOverlap = !(citation.range.endColumnIndex < c1 ||
82
84
  citation.range.startColumnIndex > c2);
83
85
  if (colsOverlap) {
84
- draft.splice(idx, 1);
86
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
87
+ if (citation.active !== false) {
88
+ citation.active = false;
89
+ citation.updated_at = updatedAt;
90
+ }
85
91
  }
86
92
  else if (citation.range.startColumnIndex > c2) {
87
93
  citation.range.startColumnIndex -= count;
88
94
  citation.range.endColumnIndex -= count;
95
+ refreshCitationAnchor(citation);
89
96
  }
90
97
  }
91
98
  }
@@ -93,6 +100,14 @@ export var deleteCellsShiftLeft = function (_a) {
93
100
  saveHistory({ citations: { patches: patches, inversePatches: inversePatches } });
94
101
  return nextState;
95
102
  });
103
+ // Chart ranges wholly inside the shifted rows contract/shift like references; one the block covers entirely is dropped (`#REF!`). The frame stays put.
104
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
105
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
106
+ shiftChartsOnCellShift(draft, sheetId, "column", "delete", c1, count, { startIndex: r1, endIndex: r2 });
107
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
108
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
109
+ return nextState;
110
+ });
96
111
  // Update sheet data
97
112
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
98
113
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
@@ -9,5 +9,5 @@ import type { UseOnDeleteCellsShiftUpProps } from "../hooks/use-on-delete-cells-
9
9
  * partially covers contracts by the overlap. Refusals (torn merge/table/array) are decided by the
10
10
  * hook via `getShiftCellsRefusal` before this runs.
11
11
  */
12
- export declare const deleteCellsShiftUp: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getSheetName, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, }: UseOnDeleteCellsShiftUpProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
12
+ export declare const deleteCellsShiftUp: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getActiveCell, getSelections, getDependents, getSheetName, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, onChangeCharts, }: UseOnDeleteCellsShiftUpProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[]) => void;
13
13
  //# sourceMappingURL=delete-cells-shift-up.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-cells-shift-up.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells-shift-up.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,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAI1F;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8RAkBrE,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,MAEjC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAmQnD,CAAC"}
1
+ {"version":3,"file":"delete-cells-shift-up.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells-shift-up.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;AAiBnC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAI1F;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,8SAmBrE,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,MAEjC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,SA6RnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { produceWithPatches } from "immer";
3
+ import { refreshCitationAnchor, shiftChartsOnCellShift } from "../api/anchored-objects";
3
4
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
4
5
  import { contractRangesInFormula } from "../api/formula";
5
6
  import { createSheetDraft } from "../api/immer-utils";
@@ -15,7 +16,7 @@ import { SheetCell } from "../sheet-cell";
15
16
  * hook via `getShiftCellsRefusal` before this runs.
16
17
  */
17
18
  export var deleteCellsShiftUp = function (_a) {
18
- 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, getSheetName = _a.getSheetName, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations;
19
+ 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, getSheetName = _a.getSheetName, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations, onChangeCharts = _a.onChangeCharts;
19
20
  return function (sheetId, activeCell, selections) {
20
21
  var _a;
21
22
  var saveHistory = createHistory();
@@ -71,6 +72,7 @@ export var deleteCellsShiftUp = function (_a) {
71
72
  });
72
73
  // Update citations - delete if overlapping, shift back if after
73
74
  onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
75
+ var updatedAt = new Date().toISOString();
74
76
  var _a = __read(produceWithPatches(prevCitations, function (draft) {
75
77
  for (var idx = draft.length - 1; idx >= 0; idx--) {
76
78
  var citation = draft[idx];
@@ -82,11 +84,16 @@ export var deleteCellsShiftUp = function (_a) {
82
84
  var rowsOverlap = !(citation.range.endRowIndex < r1 ||
83
85
  citation.range.startRowIndex > r2);
84
86
  if (rowsOverlap) {
85
- draft.splice(idx, 1);
87
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
88
+ if (citation.active !== false) {
89
+ citation.active = false;
90
+ citation.updated_at = updatedAt;
91
+ }
86
92
  }
87
93
  else if (citation.range.startRowIndex > r2) {
88
94
  citation.range.startRowIndex -= count;
89
95
  citation.range.endRowIndex -= count;
96
+ refreshCitationAnchor(citation);
90
97
  }
91
98
  }
92
99
  }
@@ -94,6 +101,14 @@ export var deleteCellsShiftUp = function (_a) {
94
101
  saveHistory({ citations: { patches: patches, inversePatches: inversePatches } });
95
102
  return nextState;
96
103
  });
104
+ // Chart ranges wholly inside the shifted columns contract/shift like references; one the block covers entirely is dropped (`#REF!`). The frame stays put.
105
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
106
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
107
+ shiftChartsOnCellShift(draft, sheetId, "row", "delete", r1, count, { startIndex: c1, endIndex: c2 });
108
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
109
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
110
+ return nextState;
111
+ });
97
112
  // Update sheet data
98
113
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
99
114
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
@@ -2,5 +2,5 @@ import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
2
2
  import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
3
3
  import type { UseOnDeleteProps } from "../hooks/use-on-delete";
4
4
  export type ClearType = "all" | "contents" | "formats";
5
- export declare const deleteCells: <T extends CellData, S extends Sheet>({ locale, rowCount, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getDependents, getDataRowCount, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, onChangeActiveCell, enqueueCalculation, enqueueStructureChange, createHistory, isArrayFormula, getRowHeight, }: UseOnDeleteProps<T, S>) => (sheetId: number, cell: CellInterface, selections: SelectionArea<SelectionAttributes>[], clearType?: ClearType) => void;
5
+ export declare const deleteCells: <T extends CellData, S extends Sheet>({ locale, rowCount, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getDependents, getDataRowCount, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCitations, onChangeActiveCell, enqueueCalculation, enqueueStructureChange, createHistory, isArrayFormula, getRowHeight, tables, generatedNames, }: UseOnDeleteProps<T, S>) => (sheetId: number, cell: CellInterface, selections: SelectionArea<SelectionAttributes>[], clearType?: ClearType) => void;
6
6
  //# sourceMappingURL=delete-cells.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-cells.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,wSAkB9D,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,MAErB,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAW,SAAsB,SAwPpC,CAAC"}
1
+ {"version":3,"file":"delete-cells.d.ts","sourceRoot":"","sources":["../../../interface/delete-cells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,gUAoB9D,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,MAErB,SAAS,MAAM,EACf,MAAM,aAAa,EACnB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAW,SAAsB,SAgSpC,CAAC"}
@@ -5,8 +5,9 @@ import { produceWithPatches } from "immer";
5
5
  import { createSheetCellIdentifier } from "../api/formula";
6
6
  import { createSheetDraft } from "../api/immer-utils";
7
7
  import { SheetCell } from "../sheet-cell";
8
+ import { getTableHeaderRefills } from "./table-utils";
8
9
  export var deleteCells = function (_a) {
9
- var locale = _a.locale, rowCount = _a.rowCount, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getDependents = _a.getDependents, getDataRowCount = _a.getDataRowCount, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations, onChangeActiveCell = _a.onChangeActiveCell, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, createHistory = _a.createHistory, isArrayFormula = _a.isArrayFormula, getRowHeight = _a.getRowHeight;
10
+ var locale = _a.locale, rowCount = _a.rowCount, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getDependents = _a.getDependents, getDataRowCount = _a.getDataRowCount, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCitations = _a.onChangeCitations, onChangeActiveCell = _a.onChangeActiveCell, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, createHistory = _a.createHistory, isArrayFormula = _a.isArrayFormula, getRowHeight = _a.getRowHeight, tables = _a.tables, generatedNames = _a.generatedNames;
10
11
  return function (sheetId, cell, selections, clearType) {
11
12
  var e_1, _a;
12
13
  if (clearType === void 0) { clearType = "contents"; }
@@ -17,6 +18,17 @@ export var deleteCells = function (_a) {
17
18
  : selectionFromActiveCell(cell);
18
19
  var saveHistory = createHistory();
19
20
  var maxRowCount = getDataRowCount();
21
+ // A table survives Delete / Clear (Excel): only its cells empty out, and
22
+ // cleared header cells are re-named `ColumnN` so the header row and
23
+ // `columns[]` stay in step.
24
+ var headerRefills = shouldClearContents
25
+ ? getTableHeaderRefills({
26
+ sheetId: sheetId,
27
+ tables: tables,
28
+ selections: finalSelections,
29
+ generatedNames: generatedNames,
30
+ })
31
+ : [];
20
32
  // Bulk writes go through `onChangeSheetData` directly, so the
21
33
  // calculator's per-cell `invalidateCacheForCell` (which only fires on
22
34
  // recompute) never runs for the cleared positions. Invalidate the
@@ -51,8 +63,8 @@ export var deleteCells = function (_a) {
51
63
  // Update sheet data
52
64
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
53
65
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
54
- var e_2, _a;
55
- var _b;
66
+ var e_2, _a, e_3, _b;
67
+ var _c, _d;
56
68
  try {
57
69
  for (var finalSelections_2 = __values(finalSelections), finalSelections_2_1 = finalSelections_2.next(); !finalSelections_2_1.done; finalSelections_2_1 = finalSelections_2.next()) {
58
70
  var selection = finalSelections_2_1.value;
@@ -62,7 +74,7 @@ export var deleteCells = function (_a) {
62
74
  var columnCount = currentSheet[rowIndex].values.length;
63
75
  for (var columnIndex = selection.range.startColumnIndex; columnIndex <=
64
76
  Math.min(columnCount, selection.range.endColumnIndex); columnIndex++) {
65
- var cellData = (_b = currentSheet[rowIndex].values) === null || _b === void 0 ? void 0 : _b[columnIndex];
77
+ var cellData = (_c = currentSheet[rowIndex].values) === null || _c === void 0 ? void 0 : _c[columnIndex];
66
78
  // Create a cell
67
79
  sheetCell.assign(sheetId, cell, cellData, {
68
80
  locale: locale,
@@ -123,6 +135,27 @@ export var deleteCells = function (_a) {
123
135
  }
124
136
  finally { if (e_2) throw e_2.error; }
125
137
  }
138
+ try {
139
+ for (var headerRefills_1 = __values(headerRefills), headerRefills_1_1 = headerRefills_1.next(); !headerRefills_1_1.done; headerRefills_1_1 = headerRefills_1.next()) {
140
+ var _e = headerRefills_1_1.value, rowIndex = _e.rowIndex, columnIndex = _e.columnIndex, name_1 = _e.name;
141
+ var currentSheet = createSheetDraft(draft, sheetId, rowIndex);
142
+ sheetCell.assign(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, (_d = currentSheet[rowIndex].values) === null || _d === void 0 ? void 0 : _d[columnIndex], {
143
+ locale: locale,
144
+ getDataValidationById: getDataValidationById,
145
+ cellXfsRegistry: cellXfsRegistry,
146
+ sharedStringRegistry: sharedStringRegistry,
147
+ });
148
+ sheetCell.setUserEnteredValue(name_1);
149
+ currentSheet[rowIndex].values[columnIndex] = sheetCell.getCellData();
150
+ }
151
+ }
152
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
153
+ finally {
154
+ try {
155
+ if (headerRefills_1_1 && !headerRefills_1_1.done && (_b = headerRefills_1.return)) _b.call(headerRefills_1);
156
+ }
157
+ finally { if (e_3) throw e_3.error; }
158
+ }
126
159
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
127
160
  // Save history
128
161
  saveHistory({
@@ -137,53 +170,82 @@ export var deleteCells = function (_a) {
137
170
  });
138
171
  return nextState;
139
172
  });
140
- // Update tables
141
- onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
142
- var _a = __read(produceWithPatches(prevTables, function (draft) {
143
- var tableIndex = draft.findIndex(function (table) {
144
- return table.sheetId === sheetId &&
145
- selections.some(function (sel) { return areaInsideArea(table.range, sel.range); });
173
+ // Rename the columns whose header cells were cleared
174
+ if (headerRefills.length) {
175
+ onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
176
+ var _a = __read(produceWithPatches(prevTables, function (draft) {
177
+ var e_4, _a;
178
+ var _b;
179
+ var _loop_1 = function (tableId, dimensionIndex, name_2) {
180
+ var table = draft.find(function (table) { return table.sheetId === sheetId && table.id === tableId; });
181
+ if (!table)
182
+ return "continue";
183
+ (_b = table.columns) !== null && _b !== void 0 ? _b : (table.columns = []);
184
+ var column = table.columns[dimensionIndex];
185
+ if (column) {
186
+ column.name = name_2;
187
+ }
188
+ else {
189
+ table.columns[dimensionIndex] = { name: name_2 };
190
+ }
191
+ };
192
+ try {
193
+ for (var headerRefills_2 = __values(headerRefills), headerRefills_2_1 = headerRefills_2.next(); !headerRefills_2_1.done; headerRefills_2_1 = headerRefills_2.next()) {
194
+ var _c = headerRefills_2_1.value, tableId = _c.tableId, dimensionIndex = _c.dimensionIndex, name_2 = _c.name;
195
+ _loop_1(tableId, dimensionIndex, name_2);
196
+ }
197
+ }
198
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
199
+ finally {
200
+ try {
201
+ if (headerRefills_2_1 && !headerRefills_2_1.done && (_a = headerRefills_2.return)) _a.call(headerRefills_2);
202
+ }
203
+ finally { if (e_4) throw e_4.error; }
204
+ }
205
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
206
+ saveHistory({
207
+ tables: { patches: patches, inversePatches: inversePatches },
146
208
  });
147
- if (tableIndex !== -1) {
148
- draft.splice(tableIndex, 1);
149
- }
150
- }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
151
- saveHistory({
152
- tables: { patches: patches, inversePatches: inversePatches },
209
+ return nextState;
153
210
  });
154
- return nextState;
155
- });
156
- // Update citations - remove citations that overlap with deleted cells
157
- onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
158
- var _a = __read(produceWithPatches(prevCitations, function (draft) {
159
- var _loop_1 = function (idx) {
160
- var citation = draft[idx];
161
- // Check if citation is on the same sheet and overlaps with any deleted selection
162
- if (citation.range.sheetId === sheetId &&
163
- finalSelections.some(function (sel) {
164
- return areaInsideArea(citation.range, sel.range);
165
- })) {
166
- // Remove citation since its referenced cells are being deleted
167
- draft.splice(idx, 1);
211
+ }
212
+ // Update citations - retire citations whose cited cells lose their contents.
213
+ // Clearing formats only leaves the cited values in place, so the citations stay.
214
+ if (shouldClearContents) {
215
+ onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
216
+ var updatedAt = new Date().toISOString();
217
+ var _a = __read(produceWithPatches(prevCitations, function (draft) {
218
+ var _loop_2 = function (idx) {
219
+ var citation = draft[idx];
220
+ // Check if citation is active, on the same sheet and inside a cleared selection
221
+ if (citation.active !== false &&
222
+ citation.range.sheetId === sheetId &&
223
+ finalSelections.some(function (sel) {
224
+ return areaInsideArea(citation.range, sel.range);
225
+ })) {
226
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
227
+ citation.active = false;
228
+ citation.updated_at = updatedAt;
229
+ }
230
+ };
231
+ for (var idx = draft.length - 1; idx >= 0; idx--) {
232
+ _loop_2(idx);
168
233
  }
169
- };
170
- for (var idx = draft.length - 1; idx >= 0; idx--) {
171
- _loop_1(idx);
172
- }
173
- }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
174
- saveHistory({
175
- citations: { patches: patches, inversePatches: inversePatches },
234
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
235
+ saveHistory({
236
+ citations: { patches: patches, inversePatches: inversePatches },
237
+ });
238
+ return nextState;
176
239
  });
177
- return nextState;
178
- });
240
+ }
179
241
  // Update banded cells
180
242
  onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
181
243
  var _a = __read(produceWithPatches(prevSheets, function (draft) {
182
- var e_3, _a;
244
+ var e_5, _a;
183
245
  var _b, _c, _d, _e, _f;
184
246
  var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
185
247
  if (sheet) {
186
- var _loop_2 = function (selection) {
248
+ var _loop_3 = function (selection) {
187
249
  for (var rowIndex = selection.range.startRowIndex; rowIndex <=
188
250
  Math.min(maxRowCount !== null && maxRowCount !== void 0 ? maxRowCount : rowCount, selection.range.endRowIndex); rowIndex++) {
189
251
  var isRowResizedByUser = !!((_c = (_b = sheet === null || sheet === void 0 ? void 0 : sheet.rowMetadata) === null || _b === void 0 ? void 0 : _b[rowIndex]) === null || _c === void 0 ? void 0 : _c.resizedByUser);
@@ -208,15 +270,15 @@ export var deleteCells = function (_a) {
208
270
  // Adjust row height
209
271
  for (var finalSelections_3 = __values(finalSelections), finalSelections_3_1 = finalSelections_3.next(); !finalSelections_3_1.done; finalSelections_3_1 = finalSelections_3.next()) {
210
272
  var selection = finalSelections_3_1.value;
211
- _loop_2(selection);
273
+ _loop_3(selection);
212
274
  }
213
275
  }
214
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
276
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
215
277
  finally {
216
278
  try {
217
279
  if (finalSelections_3_1 && !finalSelections_3_1.done && (_a = finalSelections_3.return)) _a.call(finalSelections_3);
218
280
  }
219
- finally { if (e_3) throw e_3.error; }
281
+ finally { if (e_5) throw e_5.error; }
220
282
  }
221
283
  }
222
284
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
@@ -1,4 +1,4 @@
1
1
  import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
2
2
  import type { UseOnDeleteColumnProps } from "../hooks/use-on-delete-column";
3
- export declare const deleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, tables, getArrayRange, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
3
+ export declare const deleteColumn: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeActiveCell, onChangeSelections, onChangeConditionalFormats, onChangeDataValidations, onChangeCitations, onChangePivotTables, tables, getArrayRange, onChangeNamedRanges, onChangeEmbeds, onChangeSlicers, onChangeCharts, onChangeProtectedRanges, }: UseOnDeleteColumnProps<T, S>) => (sheetId: number, columnIndexes: number[]) => void;
4
4
  //# sourceMappingURL=delete-column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAsBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0hBA+B/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SA8bjD,CAAC"}
1
+ {"version":3,"file":"delete-column.d.ts","sourceRoot":"","sources":["../../../interface/delete-column.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAwBjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2iBAgC/D,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,MACrB,SAAS,MAAM,EAAE,eAAe,MAAM,EAAE,SAsdjD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { Direction } from "@rowsncolumns/common-types";
3
3
  import { produceWithPatches } from "immer";
4
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
4
+ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, refreshCitationAnchor, } from "../api/anchored-objects";
5
5
  import { shrinkMergesOnColumnDelete } from "../api/merges";
6
6
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
7
7
  import { shiftPivotsOnDelete } from "../api/pivot-range";
@@ -10,7 +10,7 @@ import { moveFilterView } from "../api/selection";
10
10
  import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
11
11
  import { breakStructuredRefsForRemovedTableParts, collectRemovedTableParts, removeSpillsOfDeletedAnchors, } from "../api/structural-table-refs";
12
12
  export var deleteColumn = function (_a) {
13
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, tables = _a.tables, getArrayRange = _a.getArrayRange, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
13
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeActiveCell = _a.onChangeActiveCell, onChangeSelections = _a.onChangeSelections, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, tables = _a.tables, getArrayRange = _a.getArrayRange, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeSlicers = _a.onChangeSlicers, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
14
14
  return function (sheetId, columnIndexes) {
15
15
  if (!columnIndexes.length)
16
16
  return;
@@ -163,6 +163,7 @@ export var deleteColumn = function (_a) {
163
163
  });
164
164
  // Citations
165
165
  onChangeCitations === null || onChangeCitations === void 0 ? void 0 : onChangeCitations(function (prevCitations) {
166
+ var updatedAt = new Date().toISOString();
166
167
  var _a = __read(produceWithPatches(prevCitations, function (draft) {
167
168
  var deleteEnd = minColumnIndex + count - 1;
168
169
  for (var idx = draft.length - 1; idx >= 0; idx--) {
@@ -172,11 +173,16 @@ export var deleteColumn = function (_a) {
172
173
  var citationStart = citation.range.startColumnIndex;
173
174
  var citationEnd = citation.range.endColumnIndex;
174
175
  if (citationStart <= deleteEnd && citationEnd >= minColumnIndex) {
175
- draft.splice(idx, 1);
176
+ // Soft-delete: keep the record for provenance / undo, hide it from the UI
177
+ if (citation.active !== false) {
178
+ citation.active = false;
179
+ citation.updated_at = updatedAt;
180
+ }
176
181
  }
177
182
  else if (citationStart > deleteEnd) {
178
183
  citation.range.startColumnIndex -= count;
179
184
  citation.range.endColumnIndex -= count;
185
+ refreshCitationAnchor(citation);
180
186
  }
181
187
  }
182
188
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
@@ -194,6 +200,13 @@ export var deleteColumn = function (_a) {
194
200
  saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
195
201
  return nextState;
196
202
  });
203
+ onChangeSlicers === null || onChangeSlicers === void 0 ? void 0 : onChangeSlicers(function (prevSlicers) {
204
+ var _a = __read(produceWithPatches(prevSlicers, function (draft) {
205
+ shiftSlicersOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);
206
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
207
+ saveHistory({ slicers: { patches: patches, inversePatches: inversePatches } });
208
+ return nextState;
209
+ });
197
210
  onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
198
211
  var _a = __read(produceWithPatches(prevCharts, function (draft) {
199
212
  shiftChartsOnStructuralChange(draft, sheetId, "column", "delete", minColumnIndex, count);