@rowsncolumns/spreadsheet-state 28.0.76 → 29.1.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 (633) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +122 -6
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +464 -43
  4. package/dist/cjs/api/copy-paste.d.ts +8 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +4 -4
  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/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 +8 -0
  20. package/dist/cjs/api/merges.d.ts.map +1 -1
  21. package/dist/cjs/api/merges.js +11 -0
  22. package/dist/cjs/api/paint-format.d.ts +22 -1
  23. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  24. package/dist/cjs/api/paint-format.js +57 -1
  25. package/dist/cjs/api/sort.d.ts +23 -1
  26. package/dist/cjs/api/sort.d.ts.map +1 -1
  27. package/dist/cjs/api/sort.js +52 -6
  28. package/dist/cjs/api/structural-guards.d.ts +57 -0
  29. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  30. package/dist/cjs/api/structural-guards.js +93 -1
  31. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  32. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  33. package/dist/cjs/api/structural-table-refs.js +177 -16
  34. package/dist/cjs/api/subtotal.d.ts +20 -13
  35. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  36. package/dist/cjs/api/subtotal.js +26 -19
  37. package/dist/cjs/api/table.d.ts +26 -2
  38. package/dist/cjs/api/table.d.ts.map +1 -1
  39. package/dist/cjs/api/table.js +93 -60
  40. package/dist/cjs/api/validation.d.ts.map +1 -1
  41. package/dist/cjs/api/validation.js +53 -8
  42. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  43. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  45. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  47. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  48. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  49. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  50. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  51. package/dist/cjs/atoms/index.d.ts +4 -0
  52. package/dist/cjs/atoms/index.d.ts.map +1 -1
  53. package/dist/cjs/atoms/index.js +4 -0
  54. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  55. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  56. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  57. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  58. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  59. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  60. package/dist/cjs/commands.d.ts +138 -2
  61. package/dist/cjs/commands.d.ts.map +1 -1
  62. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  63. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  64. package/dist/cjs/components/editors/embed-editor.js +38 -9
  65. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  66. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  67. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  68. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  69. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  70. package/dist/cjs/components/editors/table-editor.js +261 -20
  71. package/dist/cjs/components/index.d.ts +1 -0
  72. package/dist/cjs/components/index.d.ts.map +1 -1
  73. package/dist/cjs/components/index.js +1 -0
  74. package/dist/cjs/constants.d.ts +9 -1
  75. package/dist/cjs/constants.d.ts.map +1 -1
  76. package/dist/cjs/constants.js +12 -0
  77. package/dist/cjs/generated-names.d.ts +13 -3
  78. package/dist/cjs/generated-names.d.ts.map +1 -1
  79. package/dist/cjs/generated-names.js +3 -1
  80. package/dist/cjs/helpers.d.ts +5 -0
  81. package/dist/cjs/helpers.d.ts.map +1 -1
  82. package/dist/cjs/helpers.js +10 -1
  83. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  84. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  86. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  87. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  89. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  90. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  92. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  93. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-change.js +218 -136
  95. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  96. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-copy.js +2 -3
  98. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  99. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  100. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  101. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  102. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  104. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  105. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  107. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  108. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  110. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  111. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  113. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  114. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  116. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
  117. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  118. package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
  119. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  120. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  121. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  122. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  123. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  124. package/dist/cjs/hooks/use-on-delete.js +5 -1
  125. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  126. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  127. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  128. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  129. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  130. package/dist/cjs/hooks/use-on-fill.js +29 -15
  131. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  133. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  134. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  136. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  137. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  139. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  140. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  142. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  143. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  145. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  146. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  148. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  149. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  151. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  152. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  154. package/dist/cjs/hooks/use-on-move-columns.d.ts +4 -1
  155. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  156. package/dist/cjs/hooks/use-on-move-columns.js +28 -6
  157. package/dist/cjs/hooks/use-on-move-rows.d.ts +18 -1
  158. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  159. package/dist/cjs/hooks/use-on-move-rows.js +44 -6
  160. package/dist/cjs/hooks/use-on-move-selection.d.ts +9 -2
  161. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  162. package/dist/cjs/hooks/use-on-move-selection.js +101 -25
  163. package/dist/cjs/hooks/use-on-paste.d.ts +33 -2
  164. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-paste.js +1005 -740
  166. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  167. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  169. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  170. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  171. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  172. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  173. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  174. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  175. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  176. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  177. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  178. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  179. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  181. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  182. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  183. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  184. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  185. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  187. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  188. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  190. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  191. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  193. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  194. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-on-table.js +257 -49
  196. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  197. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  199. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  200. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  202. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  203. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  204. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  205. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  206. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  207. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  208. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  209. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  210. package/dist/cjs/hooks/use-slicers.js +17 -26
  211. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  212. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  213. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  214. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +69 -12
  215. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  216. package/dist/cjs/hooks/use-spreadsheet-state.js +383 -84
  217. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  218. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  219. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  220. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  221. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  222. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  223. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  224. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  225. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  226. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  227. package/dist/cjs/index.d.ts +8 -0
  228. package/dist/cjs/index.d.ts.map +1 -1
  229. package/dist/cjs/index.js +9 -0
  230. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  231. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  232. package/dist/cjs/interface/apply-fill.js +207 -98
  233. package/dist/cjs/interface/change-batch.d.ts +1 -1
  234. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  235. package/dist/cjs/interface/change-batch.js +112 -15
  236. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  237. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  238. package/dist/cjs/interface/change-calculated-column.js +87 -17
  239. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  240. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/change-table-column.js +336 -76
  242. package/dist/cjs/interface/create-table.d.ts +15 -3
  243. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  244. package/dist/cjs/interface/create-table.js +100 -25
  245. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  246. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
  248. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  249. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
  251. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  252. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-cells.js +81 -25
  254. package/dist/cjs/interface/delete-column.d.ts +1 -1
  255. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  256. package/dist/cjs/interface/delete-column.js +29 -22
  257. package/dist/cjs/interface/delete-row.d.ts +1 -1
  258. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  259. package/dist/cjs/interface/delete-row.js +244 -39
  260. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  261. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  262. package/dist/cjs/interface/delete-sheet.js +118 -1
  263. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  264. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  265. package/dist/cjs/interface/delete-table-column.js +11 -1
  266. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  267. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  268. package/dist/cjs/interface/delete-table-row.js +361 -275
  269. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  270. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  271. package/dist/cjs/interface/embeds.d.ts +10 -1
  272. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  273. package/dist/cjs/interface/embeds.js +120 -6
  274. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  275. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  276. package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
  277. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  278. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  279. package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
  280. package/dist/cjs/interface/insert-column.d.ts +2 -2
  281. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  282. package/dist/cjs/interface/insert-column.js +101 -56
  283. package/dist/cjs/interface/insert-row.d.ts +1 -1
  284. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  285. package/dist/cjs/interface/insert-row.js +25 -7
  286. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  287. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  288. package/dist/cjs/interface/insert-table-row.js +70 -19
  289. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  290. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  291. package/dist/cjs/interface/remove-duplicates.js +46 -6
  292. package/dist/cjs/interface/remove-table.d.ts +1 -1
  293. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/remove-table.js +72 -16
  295. package/dist/cjs/interface/slicers.d.ts +12 -1
  296. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  297. package/dist/cjs/interface/slicers.js +47 -2
  298. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  299. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  300. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  301. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  302. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  303. package/dist/cjs/interface/table-totalrow.js +107 -73
  304. package/dist/cjs/interface/table-utils.d.ts +59 -6
  305. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  306. package/dist/cjs/interface/table-utils.js +211 -15
  307. package/dist/cjs/interface/update-table.d.ts +16 -1
  308. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  309. package/dist/cjs/interface/update-table.js +190 -44
  310. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  311. package/dist/cjs/test-setup.d.ts.map +1 -1
  312. package/dist/cjs/test-setup.js +6 -0
  313. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  314. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  315. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  316. package/dist/cjs/validation-schema/table.schema.js +20 -3
  317. package/dist/esm/api/anchored-objects.d.ts +122 -6
  318. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  319. package/dist/esm/api/anchored-objects.js +375 -15
  320. package/dist/esm/api/copy-paste.d.ts +8 -2
  321. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  322. package/dist/esm/api/copy-paste.js +4 -4
  323. package/dist/esm/api/filter.d.ts +15 -1
  324. package/dist/esm/api/filter.d.ts.map +1 -1
  325. package/dist/esm/api/filter.js +28 -0
  326. package/dist/esm/api/formula.d.ts +63 -0
  327. package/dist/esm/api/formula.d.ts.map +1 -1
  328. package/dist/esm/api/formula.js +235 -8
  329. package/dist/esm/api/immer-utils.d.ts +11 -1
  330. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  331. package/dist/esm/api/immer-utils.js +16 -0
  332. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  333. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  334. package/dist/esm/api/insert-cut-cells.js +67 -0
  335. package/dist/esm/api/merges.d.ts +8 -0
  336. package/dist/esm/api/merges.d.ts.map +1 -1
  337. package/dist/esm/api/merges.js +9 -0
  338. package/dist/esm/api/paint-format.d.ts +22 -1
  339. package/dist/esm/api/paint-format.d.ts.map +1 -1
  340. package/dist/esm/api/paint-format.js +44 -1
  341. package/dist/esm/api/sort.d.ts +23 -1
  342. package/dist/esm/api/sort.d.ts.map +1 -1
  343. package/dist/esm/api/sort.js +45 -6
  344. package/dist/esm/api/structural-guards.d.ts +57 -0
  345. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  346. package/dist/esm/api/structural-guards.js +85 -0
  347. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  348. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  349. package/dist/esm/api/structural-table-refs.js +126 -6
  350. package/dist/esm/api/subtotal.d.ts +20 -13
  351. package/dist/esm/api/subtotal.d.ts.map +1 -1
  352. package/dist/esm/api/subtotal.js +15 -8
  353. package/dist/esm/api/table.d.ts +26 -2
  354. package/dist/esm/api/table.d.ts.map +1 -1
  355. package/dist/esm/api/table.js +70 -48
  356. package/dist/esm/api/validation.d.ts.map +1 -1
  357. package/dist/esm/api/validation.js +53 -8
  358. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  359. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  360. package/dist/esm/atoms/creating-table.atom.js +4 -0
  361. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  362. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  363. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  364. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  365. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  366. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  367. package/dist/esm/atoms/index.d.ts +4 -0
  368. package/dist/esm/atoms/index.d.ts.map +1 -1
  369. package/dist/esm/atoms/index.js +4 -0
  370. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  371. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  372. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  373. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  374. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  375. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  376. package/dist/esm/commands.d.ts +138 -2
  377. package/dist/esm/commands.d.ts.map +1 -1
  378. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  379. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  380. package/dist/esm/components/editors/embed-editor.js +40 -6
  381. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  382. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  383. package/dist/esm/components/editors/slicer-editor.js +85 -0
  384. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  385. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  386. package/dist/esm/components/editors/table-editor.js +243 -19
  387. package/dist/esm/components/index.d.ts +1 -0
  388. package/dist/esm/components/index.d.ts.map +1 -1
  389. package/dist/esm/components/index.js +1 -0
  390. package/dist/esm/constants.d.ts +9 -1
  391. package/dist/esm/constants.d.ts.map +1 -1
  392. package/dist/esm/constants.js +12 -0
  393. package/dist/esm/generated-names.d.ts +13 -3
  394. package/dist/esm/generated-names.d.ts.map +1 -1
  395. package/dist/esm/generated-names.js +3 -1
  396. package/dist/esm/helpers.d.ts +5 -0
  397. package/dist/esm/helpers.d.ts.map +1 -1
  398. package/dist/esm/helpers.js +7 -1
  399. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  400. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  402. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  405. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  406. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  408. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  409. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-change.js +214 -124
  411. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  412. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-copy.js +2 -3
  414. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  415. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  416. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  417. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  418. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  419. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  420. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  421. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  422. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  423. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  424. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  425. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  426. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  427. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  428. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  429. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  430. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  431. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  432. package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
  433. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  434. package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
  435. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  436. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  437. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  438. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  439. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  440. package/dist/esm/hooks/use-on-delete.js +5 -1
  441. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  442. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  443. package/dist/esm/hooks/use-on-embeds.js +23 -6
  444. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  445. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  446. package/dist/esm/hooks/use-on-fill.js +27 -1
  447. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  449. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  450. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  452. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  453. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  455. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  456. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  457. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  458. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  459. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  460. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  461. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  462. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  463. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  464. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  465. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  467. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  468. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  470. package/dist/esm/hooks/use-on-move-columns.d.ts +4 -1
  471. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-move-columns.js +28 -6
  473. package/dist/esm/hooks/use-on-move-rows.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-move-rows.js +44 -6
  476. package/dist/esm/hooks/use-on-move-selection.d.ts +9 -2
  477. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-move-selection.js +57 -1
  479. package/dist/esm/hooks/use-on-paste.d.ts +33 -2
  480. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-paste.js +825 -643
  482. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  483. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  484. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  485. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  486. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  488. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  489. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  490. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  491. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  492. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  493. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  494. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  495. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  497. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  498. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  499. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  500. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  501. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  503. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  504. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  505. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  506. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  507. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  508. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  509. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  510. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  511. package/dist/esm/hooks/use-on-table.js +234 -26
  512. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  513. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  514. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  515. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  516. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  517. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  518. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  519. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  520. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  521. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  522. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  523. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  524. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  525. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  526. package/dist/esm/hooks/use-slicers.js +16 -8
  527. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  528. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  529. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  530. package/dist/esm/hooks/use-spreadsheet-state.d.ts +69 -12
  531. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  532. package/dist/esm/hooks/use-spreadsheet-state.js +321 -14
  533. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  534. package/dist/esm/hooks/use-structured-reference.js +17 -0
  535. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  536. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  537. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  538. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  539. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  540. package/dist/esm/hooks/use-undo-redo.js +158 -7
  541. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  542. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  543. package/dist/esm/index.d.ts +8 -0
  544. package/dist/esm/index.d.ts.map +1 -1
  545. package/dist/esm/index.js +9 -0
  546. package/dist/esm/interface/apply-fill.d.ts +26 -3
  547. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  548. package/dist/esm/interface/apply-fill.js +188 -88
  549. package/dist/esm/interface/change-batch.d.ts +1 -1
  550. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  551. package/dist/esm/interface/change-batch.js +89 -8
  552. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  553. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  554. package/dist/esm/interface/change-calculated-column.js +81 -16
  555. package/dist/esm/interface/change-table-column.d.ts +81 -7
  556. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  557. package/dist/esm/interface/change-table-column.js +295 -67
  558. package/dist/esm/interface/create-table.d.ts +15 -3
  559. package/dist/esm/interface/create-table.d.ts.map +1 -1
  560. package/dist/esm/interface/create-table.js +103 -27
  561. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  562. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  563. package/dist/esm/interface/delete-cells-shift-left.js +10 -1
  564. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  565. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  566. package/dist/esm/interface/delete-cells-shift-up.js +10 -1
  567. package/dist/esm/interface/delete-cells.d.ts +1 -1
  568. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  569. package/dist/esm/interface/delete-cells.js +47 -14
  570. package/dist/esm/interface/delete-column.d.ts +1 -1
  571. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  572. package/dist/esm/interface/delete-column.js +26 -30
  573. package/dist/esm/interface/delete-row.d.ts +1 -1
  574. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  575. package/dist/esm/interface/delete-row.js +191 -44
  576. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  577. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  578. package/dist/esm/interface/delete-sheet.js +113 -1
  579. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  580. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  581. package/dist/esm/interface/delete-table-column.js +11 -1
  582. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  583. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  584. package/dist/esm/interface/delete-table-row.js +312 -232
  585. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  586. package/dist/esm/interface/duplicate-sheet.js +73 -26
  587. package/dist/esm/interface/embeds.d.ts +10 -1
  588. package/dist/esm/interface/embeds.d.ts.map +1 -1
  589. package/dist/esm/interface/embeds.js +84 -5
  590. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  591. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  592. package/dist/esm/interface/insert-cells-shift-down.js +10 -1
  593. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  594. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  595. package/dist/esm/interface/insert-cells-shift-right.js +10 -1
  596. package/dist/esm/interface/insert-column.d.ts +2 -2
  597. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  598. package/dist/esm/interface/insert-column.js +70 -33
  599. package/dist/esm/interface/insert-row.d.ts +1 -1
  600. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  601. package/dist/esm/interface/insert-row.js +22 -6
  602. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  603. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  604. package/dist/esm/interface/insert-table-row.js +67 -12
  605. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  606. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  607. package/dist/esm/interface/remove-duplicates.js +41 -6
  608. package/dist/esm/interface/remove-table.d.ts +1 -1
  609. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  610. package/dist/esm/interface/remove-table.js +58 -10
  611. package/dist/esm/interface/slicers.d.ts +12 -1
  612. package/dist/esm/interface/slicers.d.ts.map +1 -1
  613. package/dist/esm/interface/slicers.js +44 -2
  614. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  615. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  616. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  617. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  618. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  619. package/dist/esm/interface/table-totalrow.js +98 -68
  620. package/dist/esm/interface/table-utils.d.ts +59 -6
  621. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  622. package/dist/esm/interface/table-utils.js +155 -14
  623. package/dist/esm/interface/update-table.d.ts +16 -1
  624. package/dist/esm/interface/update-table.d.ts.map +1 -1
  625. package/dist/esm/interface/update-table.js +203 -42
  626. package/dist/esm/sheet-cell.d.ts.map +1 -1
  627. package/dist/esm/test-setup.d.ts.map +1 -1
  628. package/dist/esm/test-setup.js +6 -0
  629. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  630. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  631. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  632. package/dist/esm/validation-schema/table.schema.js +15 -2
  633. package/package.json +25 -17
@@ -3,16 +3,18 @@ import { Direction } from "@rowsncolumns/grid";
3
3
  import { iterateCellsInRange } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
5
  import { useCallback } from "react";
6
+ import { reorderChartsOnLineMove } from "../api/anchored-objects";
6
7
  import { processSideEffectDependentCells } from "../api/dependency";
7
8
  import { createSheetDraft } from "../api/immer-utils";
8
9
  import { moveMergedCells } from "../api/merges";
9
10
  import { updateRangedRulesOnReorder } from "../api/range-rule-helpers";
10
11
  import { shiftTableMovingColumns } from "../api/table";
11
12
  import { useCanEditSheet } from "./use-can-edit-cellrange";
13
+ import { resolveMoveReferenceIndex, } from "./use-on-move-rows";
12
14
  export var useOnMoveColumns = function (_a) {
13
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, createHistory = _a.createHistory, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, getDependents = _a.getDependents, getDataRowCount = _a.getDataRowCount, getActiveCell = _a.getActiveCell, onCommand = _a.onCommand;
15
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, createHistory = _a.createHistory, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCharts = _a.onChangeCharts, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, getDependents = _a.getDependents, getDataRowCount = _a.getDataRowCount, getActiveCell = _a.getActiveCell, onCommand = _a.onCommand;
14
16
  var canEditSheet = useCanEditSheet();
15
- return useCallback(function (sheetId, columns, referenceColumnIndex) {
17
+ return useCallback(function (sheetId, columns, rawReferenceColumnIndex, options) {
16
18
  var _a;
17
19
  if (!canEditSheet(sheetId)) {
18
20
  console.debug("This range is protected, users cannot edit this cell range.");
@@ -21,6 +23,10 @@ export var useOnMoveColumns = function (_a) {
21
23
  if (!columns.length) {
22
24
  return;
23
25
  }
26
+ var referenceColumnIndex = resolveMoveReferenceIndex(columns, rawReferenceColumnIndex, options);
27
+ if (referenceColumnIndex === undefined) {
28
+ return;
29
+ }
24
30
  var saveHistory = createHistory();
25
31
  var _b = columns, firstColumn = _b[0], _c = columns.length - 1, lastColumn = _b[_c];
26
32
  // We need to track this for history. Precedent cells
@@ -46,11 +52,15 @@ export var useOnMoveColumns = function (_a) {
46
52
  startRowIndex: 1,
47
53
  endRowIndex: dataRowCount,
48
54
  };
49
- // When you move columns, the resident columns
50
- // gets shifted
55
+ // The columns the move displaces (Excel: refs into them shift by ±count). Moving LEFT,
56
+ // columns `referenceColumnIndex..firstColumn-1` slide right; moving RIGHT, columns
57
+ // `lastColumn+1..referenceColumnIndex+count-1` slide left (the block lands at
58
+ // `referenceColumnIndex` in the post-removal frame).
51
59
  var shiftedRange = {
52
- startColumnIndex: Math.min(referenceColumnIndex + count, firstColumn + count),
53
- endColumnIndex: Math.max(referenceColumnIndex + count - 1, firstColumn),
60
+ startColumnIndex: direction === Direction.Left ? referenceColumnIndex : lastColumn + 1,
61
+ endColumnIndex: direction === Direction.Left
62
+ ? firstColumn - 1
63
+ : referenceColumnIndex + count - 1,
54
64
  startRowIndex: 1,
55
65
  endRowIndex: dataRowCount,
56
66
  };
@@ -334,6 +344,17 @@ export var useOnMoveColumns = function (_a) {
334
344
  });
335
345
  return nextState;
336
346
  });
347
+ // Chart series / domain / data ranges follow the moved columns like formula references.
348
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
349
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
350
+ reorderChartsOnLineMove(draft, sheetId, "column", columns, referenceColumnIndex);
351
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
352
+ if (!patches.length) {
353
+ return prevCharts;
354
+ }
355
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
356
+ return nextState;
357
+ });
337
358
  // Re-anchor CF / DV ranges to follow the moved columns. Matches
338
359
  // Excel's cell-tracking semantics for single-range rules.
339
360
  onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
@@ -367,6 +388,7 @@ export var useOnMoveColumns = function (_a) {
367
388
  onChangeTables,
368
389
  onChangeConditionalFormats,
369
390
  onChangeDataValidations,
391
+ onChangeCharts,
370
392
  createHistory,
371
393
  enqueueGraphOperation,
372
394
  enqueueCalculation,
@@ -19,12 +19,29 @@ type UseOnMoveRowsProps<T extends CellData, S extends Sheet> = {
19
19
  onChangeNamedRanges: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
20
20
  onChangeConditionalFormats?: UseSpreadsheetProps<T, S>["onChangeConditionalFormats"];
21
21
  onChangeDataValidations?: UseSpreadsheetProps<T, S>["onChangeDataValidations"];
22
+ /** Chart ranges follow the moved rows the way formula references do. */
23
+ onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
22
24
  getDependents: ReturnType<typeof useCalculation>["getDependents"];
23
25
  getDataRowCount?: ReturnType<typeof useSheetProperties>["getDataRowCount"];
24
26
  getNonEmptyColumnCount?: ReturnType<typeof useSheetProperties>["getNonEmptyColumnCount"];
25
27
  getActiveCell: () => CellInterface;
26
28
  onCommand?: OnCommand;
27
29
  };
28
- export declare const useOnMoveRows: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getNonEmptyColumnCount, getActiveCell, onCommand, }: UseOnMoveRowsProps<T, S>) => (sheetId: number, rows: number[], referenceRowIndex: number) => void;
30
+ /**
31
+ * Landing semantics for a row/column move. By default `referenceIndex` is the block's FINAL
32
+ * position in the post-removal frame (what the header-drag hook computes). `insertBefore`
33
+ * selects Excel's "Insert Cut Cells" semantics instead: `referenceIndex` is the row/column the
34
+ * block is inserted BEFORE in the PRE-removal numbering, so a downward move lands `count` earlier
35
+ * (cut row 2 → Insert Cut Cells at row 6 lands the row at 5: r1 r3 r4 r5 r2 r6).
36
+ */
37
+ export type MoveDimensionOptions = {
38
+ insertBefore?: boolean;
39
+ };
40
+ /**
41
+ * Translate an Insert-Cut-Cells reference (pre-removal numbering) into the hook's post-removal
42
+ * landing index. Returns `undefined` when the reference falls inside the moved block (a no-op).
43
+ */
44
+ export declare const resolveMoveReferenceIndex: (dims: number[], referenceIndex: number, options?: MoveDimensionOptions) => number | undefined;
45
+ export declare const useOnMoveRows: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, createHistory, onChangeSheetData, onChangeSheets, onChangeTables, onChangeConditionalFormats, onChangeDataValidations, onChangeCharts, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, getDependents, getNonEmptyColumnCount, getActiveCell, onCommand, }: UseOnMoveRowsProps<T, S>) => (sheetId: number, rows: number[], rawReferenceRowIndex: number, options?: MoveDimensionOptions) => void;
29
46
  export {};
30
47
  //# sourceMappingURL=use-on-move-rows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-move-rows.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAUtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,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,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,kBAAkB,CAC1B,CAAC,wBAAwB,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+RAiBhE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,eAGb,MAAM,QAAQ,MAAM,EAAE,qBAAqB,MAAM,SA2U9D,CAAC"}
1
+ {"version":3,"file":"use-on-move-rows.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAWtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,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,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,wEAAwE;IACxE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,kBAAkB,CAC1B,CAAC,wBAAwB,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,EACtB,UAAU,oBAAoB,KAC7B,MAAM,GAAG,SAYX,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,+SAkBhE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,eAIZ,MAAM,QACT,MAAM,EAAE,wBACQ,MAAM,YAClB,oBAAoB,SA0WnC,CAAC"}
@@ -3,16 +3,34 @@ import { Direction } from "@rowsncolumns/grid";
3
3
  import { iterateCellsInRange } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
5
  import { useCallback } from "react";
6
+ import { reorderChartsOnLineMove } from "../api/anchored-objects";
6
7
  import { processSideEffectDependentCells } from "../api/dependency";
7
8
  import { createSheetDraft } from "../api/immer-utils";
8
9
  import { moveMergedCells } from "../api/merges";
9
10
  import { updateRangedRulesOnReorder } from "../api/range-rule-helpers";
10
11
  import { shiftTableMovingRows } from "../api/table";
11
12
  import { useCanEditSheet } from "./use-can-edit-cellrange";
13
+ /**
14
+ * Translate an Insert-Cut-Cells reference (pre-removal numbering) into the hook's post-removal
15
+ * landing index. Returns `undefined` when the reference falls inside the moved block (a no-op).
16
+ */
17
+ export var resolveMoveReferenceIndex = function (dims, referenceIndex, options) {
18
+ if (!(options === null || options === void 0 ? void 0 : options.insertBefore)) {
19
+ return referenceIndex;
20
+ }
21
+ var _a = dims, first = _a[0], _b = dims.length - 1, last = _a[_b];
22
+ if (referenceIndex > last) {
23
+ return referenceIndex - dims.length;
24
+ }
25
+ if (referenceIndex > first) {
26
+ return undefined;
27
+ }
28
+ return referenceIndex;
29
+ };
12
30
  export var useOnMoveRows = function (_a) {
13
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, createHistory = _a.createHistory, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, getDependents = _a.getDependents, getNonEmptyColumnCount = _a.getNonEmptyColumnCount, getActiveCell = _a.getActiveCell, onCommand = _a.onCommand;
31
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, createHistory = _a.createHistory, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeDataValidations = _a.onChangeDataValidations, onChangeCharts = _a.onChangeCharts, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, getDependents = _a.getDependents, getNonEmptyColumnCount = _a.getNonEmptyColumnCount, getActiveCell = _a.getActiveCell, onCommand = _a.onCommand;
14
32
  var canEditSheet = useCanEditSheet();
15
- return useCallback(function (sheetId, rows, referenceRowIndex) {
33
+ return useCallback(function (sheetId, rows, rawReferenceRowIndex, options) {
16
34
  if (!canEditSheet(sheetId)) {
17
35
  console.debug("This range is protected, users cannot edit this cell range.");
18
36
  return;
@@ -20,6 +38,10 @@ export var useOnMoveRows = function (_a) {
20
38
  if (!rows.length) {
21
39
  return;
22
40
  }
41
+ var referenceRowIndex = resolveMoveReferenceIndex(rows, rawReferenceRowIndex, options);
42
+ if (referenceRowIndex === undefined) {
43
+ return;
44
+ }
23
45
  var saveHistory = createHistory();
24
46
  var _a = rows, firstRow = _a[0], _b = rows.length - 1, lastRow = _a[_b];
25
47
  // We need to track this for history. Precedent cells
@@ -129,13 +151,17 @@ export var useOnMoveRows = function (_a) {
129
151
  }
130
152
  finally { if (e_1) throw e_1.error; }
131
153
  }
132
- // When you move columns, the resident columns
133
- // gets shifted
154
+ // The rows the move displaces (Excel: refs into them shift by ±count). Moving UP,
155
+ // rows `referenceRowIndex..firstRow-1` slide down; moving DOWN, rows
156
+ // `lastRow+1..referenceRowIndex+count-1` slide up (the block lands at
157
+ // `referenceRowIndex` in the post-removal frame).
134
158
  var shiftedRange = {
135
159
  startColumnIndex: 1,
136
160
  endColumnIndex: columnCount,
137
- startRowIndex: Math.min(referenceRowIndex + count, firstRow),
138
- endRowIndex: Math.max(referenceRowIndex - count, firstRow),
161
+ startRowIndex: direction === Direction.Left ? referenceRowIndex : lastRow + 1,
162
+ endRowIndex: direction === Direction.Left
163
+ ? firstRow - 1
164
+ : referenceRowIndex + count - 1,
139
165
  };
140
166
  try {
141
167
  // Update formulas
@@ -249,6 +275,17 @@ export var useOnMoveRows = function (_a) {
249
275
  });
250
276
  return nextState;
251
277
  });
278
+ // Chart series / domain / data ranges follow the moved rows like formula references.
279
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
280
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
281
+ reorderChartsOnLineMove(draft, sheetId, "row", rows, referenceRowIndex);
282
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
283
+ if (!patches.length) {
284
+ return prevCharts;
285
+ }
286
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
287
+ return nextState;
288
+ });
252
289
  // Re-anchor CF / DV ranges to follow the moved rows. Matches
253
290
  // Excel's cell-tracking semantics for single-range rules.
254
291
  onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
@@ -283,6 +320,7 @@ export var useOnMoveRows = function (_a) {
283
320
  onChangeTables,
284
321
  onChangeConditionalFormats,
285
322
  onChangeDataValidations,
323
+ onChangeCharts,
286
324
  enqueueGraphOperation,
287
325
  enqueueCalculation,
288
326
  enqueueStructureChange,
@@ -1,4 +1,4 @@
1
- import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
1
+ import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
2
2
  import type { CellData, SelectionAttributes, Sheet, TableView } from "@rowsncolumns/spreadsheet";
3
3
  import type { OnCommand } from "../commands";
4
4
  import type { CalculationOperation, useCalculation } from "./use-calculation";
@@ -24,12 +24,19 @@ export type UseOnMoveSelectionProps<T extends CellData, S extends Sheet> = {
24
24
  onChangeTables: UseSpreadsheetProps<T, S>["onChangeTables"];
25
25
  onChangeSheets: UseSpreadsheetProps<T, S>["onChangeSheets"];
26
26
  onChangeNamedRanges: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
27
+ /** Chart ranges wholly inside the moved block follow it (Excel re-points series like references). */
28
+ onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
27
29
  onChangeDataValidations?: UseSpreadsheetProps<T, S>["onChangeDataValidations"];
28
30
  onChangeConditionalFormats?: UseSpreadsheetProps<T, S>["onChangeConditionalFormats"];
29
31
  onChangePivotTables?: UseSpreadsheetProps<T, S>["onChangePivotTables"];
30
32
  getDependents: ReturnType<typeof useCalculation>["getDependents"];
31
33
  getActiveCell: () => CellInterface;
34
+ /**
35
+ * Merged ranges of a sheet — a drag-move whose destination (or source) covers a merge only
36
+ * partially is refused, like Excel ("We can't do that to a merged cell.").
37
+ */
38
+ getSheetMerges?: (sheetId: number) => GridRange[] | undefined | null;
32
39
  onCommand?: OnCommand;
33
40
  };
34
- export declare const useOnMoveSelection: <T extends CellData, S extends Sheet>({ rowCount, columnCount, tables, locale, cellXfsRegistry, sharedStringRegistry, getDependents, getActiveCell, onChangeTables, onChangeSheets, onChangeNamedRanges, onChangeDataValidations, onChangeConditionalFormats, onChangePivotTables, onChangeSheetData, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, isArrayFormula, getDataValidationById, onCommand, }: UseOnMoveSelectionProps<T, S>) => (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
41
+ export declare const useOnMoveSelection: <T extends CellData, S extends Sheet>({ rowCount, columnCount, tables, locale, cellXfsRegistry, sharedStringRegistry, getDependents, getActiveCell, onChangeTables, onChangeSheets, onChangeNamedRanges, onChangeCharts, onChangeDataValidations, onChangeConditionalFormats, onChangePivotTables, onChangeSheetData, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, isArrayFormula, getDataValidationById, getSheetMerges, onCommand, }: UseOnMoveSelectionProps<T, S>) => (sheetId: number, from: SelectionArea<SelectionAttributes>, to: SelectionArea<SelectionAttributes>) => void;
35
42
  //# sourceMappingURL=use-on-move-selection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-move-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACL,SAAS,EACV,MAAM,2BAA2B,CAAC;AAcnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,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,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,UAAU,CAChC,OAAO,kBAAkB,CAC1B,CAAC,uBAAuB,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,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,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IACpE,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,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACvE,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,uYAuBrE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,eAkBjB,MAAM,QACT,aAAa,CAAC,mBAAmB,CAAC,MACpC,aAAa,CAAC,mBAAmB,CAAC,SA6f3C,CAAC"}
1
+ {"version":3,"file":"use-on-move-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACL,SAAS,EACV,MAAM,2BAA2B,CAAC;AAcnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,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,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,UAAU,CAChC,OAAO,kBAAkB,CAC1B,CAAC,uBAAuB,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,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,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IACpE,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,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtE,qGAAqG;IACrG,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,uBAAuB,CAAC,EAAE,mBAAmB,CAC3C,CAAC,EACD,CAAC,CACF,CAAC,yBAAyB,CAAC,CAAC;IAC7B,0BAA0B,CAAC,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,4BAA4B,CAAC,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACvE,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IAClE,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACrE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,uaAyBrE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,eAmBjB,MAAM,QACT,aAAa,CAAC,mBAAmB,CAAC,MACpC,aAAa,CAAC,mBAAmB,CAAC,SAyjB3C,CAAC"}
@@ -4,17 +4,22 @@ import { getSelectedTableColumnFromSelection, isSelectionACell, } from "@rowsnco
4
4
  import { isNil, iterateCellsInRange, rescopeSheetRangesOnMove, } from "@rowsncolumns/utils";
5
5
  import { produceWithPatches } from "immer";
6
6
  import { useCallback } from "react";
7
+ import { moveChartsOnRangeMove } from "../api/anchored-objects";
7
8
  import { processSideEffectDependentCells } from "../api/dependency";
8
9
  import { createSheetCellIdentifier } from "../api/formula";
9
10
  import { createSheetDraft } from "../api/immer-utils";
11
+ import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
12
+ import { getMoveRangeRefusal } from "../api/structural-guards";
10
13
  import { shiftPivotsOnMove } from "../api/pivot-range";
14
+ import { useShowError } from "../atoms/error-state.atom";
11
15
  import { SheetCell } from "../sheet-cell";
12
16
  import { moveRange } from "./../api/selection";
13
17
  import { useCanEditCellRange } from "./use-can-edit-cellrange";
14
18
  import { useOnMoveTableColumns } from "./use-on-move-table-columns";
15
19
  export var useOnMoveSelection = function (_a) {
16
- var rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDependents = _a.getDependents, getActiveCell = _a.getActiveCell, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangePivotTables = _a.onChangePivotTables, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, isArrayFormula = _a.isArrayFormula, getDataValidationById = _a.getDataValidationById, onCommand = _a.onCommand;
20
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDependents = _a.getDependents, getActiveCell = _a.getActiveCell, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeCharts = _a.onChangeCharts, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangePivotTables = _a.onChangePivotTables, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, isArrayFormula = _a.isArrayFormula, getDataValidationById = _a.getDataValidationById, getSheetMerges = _a.getSheetMerges, onCommand = _a.onCommand;
17
21
  var canEditCellRange = useCanEditCellRange();
22
+ var showError = useShowError();
18
23
  var onMoveTableColumns = useOnMoveTableColumns({
19
24
  rowCount: rowCount,
20
25
  columnCount: columnCount,
@@ -34,6 +39,14 @@ export var useOnMoveSelection = function (_a) {
34
39
  console.debug("This range is protected, users cannot edit this cell range.");
35
40
  return;
36
41
  }
42
+ // Excel refuses a move whose destination or source covers a merged cell only partially
43
+ // (the write would tear the merge); merges wholly inside the block travel with it.
44
+ var merges = getSheetMerges === null || getSheetMerges === void 0 ? void 0 : getSheetMerges(sheetId);
45
+ if (findPartiallyCoveredMerge(to.range, merges) ||
46
+ findPartiallyCoveredMerge(from.range, merges)) {
47
+ showError({ message: MERGED_CELL_MOVE_ERROR });
48
+ return;
49
+ }
37
50
  // Check if we are moving columns
38
51
  // within table
39
52
  var _a = __read(getSelectedTableColumnFromSelection(from, tables), 2), sourceTable = _a[0], sourceColumns = _a[1];
@@ -59,6 +72,18 @@ export var useOnMoveSelection = function (_a) {
59
72
  });
60
73
  return onMoveTableColumns(sheetId, sourceTable, movedColumns, to.range.startColumnIndex);
61
74
  }
75
+ // Excel moves a whole table with the block but refuses moving part of a table, or landing on
76
+ // another table's cells (T-46) — decided before any state changes.
77
+ var tableRefusal = getMoveRangeRefusal({
78
+ sheetId: sheetId,
79
+ from: from.range,
80
+ to: to.range,
81
+ tables: tables,
82
+ });
83
+ if (tableRefusal) {
84
+ showError({ title: tableRefusal.title, message: tableRefusal.message });
85
+ return;
86
+ }
62
87
  enqueueStructureChange === null || enqueueStructureChange === void 0 ? void 0 : enqueueStructureChange({
63
88
  kind: "invalidate-range",
64
89
  sheetId: sheetId,
@@ -106,10 +131,24 @@ export var useOnMoveSelection = function (_a) {
106
131
  });
107
132
  return nextState;
108
133
  });
134
+ // Move chart sources: a series / domain / data range wholly inside the moved block
135
+ // follows it, like the named ranges above; a partially covered range stays.
136
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
137
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
138
+ moveChartsOnRangeMove(draft, sheetId, from.range, sheetId, to.range);
139
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
140
+ if (!patches.length) {
141
+ return prevCharts;
142
+ }
143
+ saveHistory({
144
+ charts: { patches: patches, inversePatches: inversePatches },
145
+ });
146
+ return nextState;
147
+ });
109
148
  // Move tables if necessary
110
149
  onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
111
150
  var _a = __read(produceWithPatches(prevTables, function (draft) {
112
- var e_2, _a, e_3, _b;
151
+ var e_2, _a, e_3, _b, e_4, _c;
113
152
  try {
114
153
  for (var draft_2 = __values(draft), draft_2_1 = draft_2.next(); !draft_2_1.done; draft_2_1 = draft_2.next()) {
115
154
  var table_1 = draft_2_1.value;
@@ -120,8 +159,8 @@ export var useOnMoveSelection = function (_a) {
120
159
  // Update filter and sort specs
121
160
  if (table_1.filterSpecs) {
122
161
  try {
123
- for (var _c = (e_3 = void 0, __values(table_1.filterSpecs)), _d = _c.next(); !_d.done; _d = _c.next()) {
124
- var spec = _d.value;
162
+ for (var _d = (e_3 = void 0, __values(table_1.filterSpecs)), _e = _d.next(); !_e.done; _e = _d.next()) {
163
+ var spec = _e.value;
125
164
  spec.columnIndex =
126
165
  to.range.startColumnIndex +
127
166
  (spec.columnIndex - from.range.startColumnIndex);
@@ -130,11 +169,28 @@ export var useOnMoveSelection = function (_a) {
130
169
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
131
170
  finally {
132
171
  try {
133
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
172
+ if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
134
173
  }
135
174
  finally { if (e_3) throw e_3.error; }
136
175
  }
137
176
  }
177
+ if (table_1.sortSpecs) {
178
+ try {
179
+ for (var _f = (e_4 = void 0, __values(table_1.sortSpecs)), _g = _f.next(); !_g.done; _g = _f.next()) {
180
+ var spec = _g.value;
181
+ spec.dimensionIndex =
182
+ to.range.startColumnIndex +
183
+ (spec.dimensionIndex - from.range.startColumnIndex);
184
+ }
185
+ }
186
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
187
+ finally {
188
+ try {
189
+ if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
190
+ }
191
+ finally { if (e_4) throw e_4.error; }
192
+ }
193
+ }
138
194
  }
139
195
  }
140
196
  }
@@ -158,7 +214,7 @@ export var useOnMoveSelection = function (_a) {
158
214
  // overlap. Untouched rules produce no patches and no history entry.
159
215
  onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
160
216
  var _a = __read(produceWithPatches(prevValidations, function (draft) {
161
- var e_4, _a;
217
+ var e_5, _a;
162
218
  var _b;
163
219
  try {
164
220
  for (var draft_3 = __values(draft), draft_3_1 = draft_3.next(); !draft_3_1.done; draft_3_1 = draft_3.next()) {
@@ -169,12 +225,12 @@ export var useOnMoveSelection = function (_a) {
169
225
  }
170
226
  }
171
227
  }
172
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
228
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
173
229
  finally {
174
230
  try {
175
231
  if (draft_3_1 && !draft_3_1.done && (_a = draft_3.return)) _a.call(draft_3);
176
232
  }
177
- finally { if (e_4) throw e_4.error; }
233
+ finally { if (e_5) throw e_5.error; }
178
234
  }
179
235
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
180
236
  if (!patches.length) {
@@ -200,7 +256,7 @@ export var useOnMoveSelection = function (_a) {
200
256
  // validations above.
201
257
  onChangeConditionalFormats === null || onChangeConditionalFormats === void 0 ? void 0 : onChangeConditionalFormats(function (prevConditionalFormats) {
202
258
  var _a = __read(produceWithPatches(prevConditionalFormats, function (draft) {
203
- var e_5, _a;
259
+ var e_6, _a;
204
260
  var _b;
205
261
  try {
206
262
  for (var draft_4 = __values(draft), draft_4_1 = draft_4.next(); !draft_4_1.done; draft_4_1 = draft_4.next()) {
@@ -211,12 +267,12 @@ export var useOnMoveSelection = function (_a) {
211
267
  }
212
268
  }
213
269
  }
214
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
270
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
215
271
  finally {
216
272
  try {
217
273
  if (draft_4_1 && !draft_4_1.done && (_a = draft_4.return)) _a.call(draft_4);
218
274
  }
219
- finally { if (e_5) throw e_5.error; }
275
+ finally { if (e_6) throw e_6.error; }
220
276
  }
221
277
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
222
278
  if (!patches.length) {
@@ -231,8 +287,8 @@ export var useOnMoveSelection = function (_a) {
231
287
  // Move banded ranges
232
288
  onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
233
289
  var _a = __read(produceWithPatches(prevSheets, function (draft) {
234
- var e_6, _a, e_7, _b;
235
- var _c, _d, _e;
290
+ var e_7, _a, e_8, _b, e_9, _c;
291
+ var _d, _e, _f;
236
292
  var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
237
293
  if (sheet) {
238
294
  var hiddenRows = new Set();
@@ -247,7 +303,7 @@ export var useOnMoveSelection = function (_a) {
247
303
  sheet.rowMetadata = [];
248
304
  }
249
305
  for (var rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
250
- var isHidden = (_d = (_c = sheet.rowMetadata) === null || _c === void 0 ? void 0 : _c[rowIndex]) === null || _d === void 0 ? void 0 : _d.hiddenByFilter;
306
+ var isHidden = (_e = (_d = sheet.rowMetadata) === null || _d === void 0 ? void 0 : _d[rowIndex]) === null || _e === void 0 ? void 0 : _e.hiddenByFilter;
251
307
  if (isHidden) {
252
308
  sheet.rowMetadata[rowIndex].hiddenByFilter = false;
253
309
  hiddenRows.add(rowIndex);
@@ -259,18 +315,18 @@ export var useOnMoveSelection = function (_a) {
259
315
  var rowIndex = hiddenRows_1_1.value;
260
316
  var newRowIndex = to.range.startRowIndex +
261
317
  (rowIndex - from.range.startRowIndex);
262
- if (!((_e = sheet.rowMetadata) === null || _e === void 0 ? void 0 : _e[newRowIndex])) {
318
+ if (!((_f = sheet.rowMetadata) === null || _f === void 0 ? void 0 : _f[newRowIndex])) {
263
319
  sheet.rowMetadata[newRowIndex] = {};
264
320
  }
265
321
  sheet.rowMetadata[newRowIndex].hiddenByFilter = true;
266
322
  }
267
323
  }
268
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
324
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
269
325
  finally {
270
326
  try {
271
327
  if (hiddenRows_1_1 && !hiddenRows_1_1.done && (_a = hiddenRows_1.return)) _a.call(hiddenRows_1);
272
328
  }
273
- finally { if (e_6) throw e_6.error; }
329
+ finally { if (e_7) throw e_7.error; }
274
330
  }
275
331
  }
276
332
  // Move basic filter
@@ -280,19 +336,36 @@ export var useOnMoveSelection = function (_a) {
280
336
  // Update filter and sort specs
281
337
  if (sheet.basicFilter.filterSpecs) {
282
338
  try {
283
- for (var _f = __values(sheet.basicFilter.filterSpecs), _g = _f.next(); !_g.done; _g = _f.next()) {
284
- var spec = _g.value;
339
+ for (var _g = __values(sheet.basicFilter.filterSpecs), _h = _g.next(); !_h.done; _h = _g.next()) {
340
+ var spec = _h.value;
285
341
  spec.columnIndex =
286
342
  to.range.startColumnIndex +
287
343
  (spec.columnIndex - from.range.startColumnIndex);
288
344
  }
289
345
  }
290
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
346
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
347
+ finally {
348
+ try {
349
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
350
+ }
351
+ finally { if (e_8) throw e_8.error; }
352
+ }
353
+ }
354
+ if (sheet.basicFilter.sortSpecs) {
355
+ try {
356
+ for (var _j = __values(sheet.basicFilter.sortSpecs), _k = _j.next(); !_k.done; _k = _j.next()) {
357
+ var spec = _k.value;
358
+ spec.dimensionIndex =
359
+ to.range.startColumnIndex +
360
+ (spec.dimensionIndex - from.range.startColumnIndex);
361
+ }
362
+ }
363
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
291
364
  finally {
292
365
  try {
293
- if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
366
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
294
367
  }
295
- finally { if (e_7) throw e_7.error; }
368
+ finally { if (e_9) throw e_9.error; }
296
369
  }
297
370
  }
298
371
  }
@@ -321,7 +394,7 @@ export var useOnMoveSelection = function (_a) {
321
394
  // Update sheet data
322
395
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
323
396
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
324
- var e_8, _a;
397
+ var e_10, _a;
325
398
  var movedKeys = new Set();
326
399
  try {
327
400
  // Update formulas
@@ -347,12 +420,12 @@ export var useOnMoveSelection = function (_a) {
347
420
  });
348
421
  }
349
422
  }
350
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
423
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
351
424
  finally {
352
425
  try {
353
426
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
354
427
  }
355
- finally { if (e_8) throw e_8.error; }
428
+ finally { if (e_10) throw e_10.error; }
356
429
  }
357
430
  // Move values
358
431
  var selectedRowValues = [];
@@ -460,6 +533,7 @@ export var useOnMoveSelection = function (_a) {
460
533
  onChangeTables,
461
534
  onChangeSheets,
462
535
  onChangeNamedRanges,
536
+ onChangeCharts,
463
537
  onChangeDataValidations,
464
538
  onChangeConditionalFormats,
465
539
  onChangePivotTables,
@@ -472,6 +546,8 @@ export var useOnMoveSelection = function (_a) {
472
546
  canEditCellRange,
473
547
  isArrayFormula,
474
548
  getDataValidationById,
549
+ getSheetMerges,
550
+ showError,
475
551
  onCommand,
476
552
  ]);
477
553
  };
@@ -1,5 +1,5 @@
1
1
  import type { Citation } from "@rowsncolumns/common-types";
2
- import type { CellInterface, SelectionArea } from "@rowsncolumns/grid";
2
+ import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/grid";
3
3
  import type { CellData, DataValidationRuleRecord, SelectionAttributes, Sheet, TableView } from "@rowsncolumns/spreadsheet";
4
4
  import type { OnCommand } from "../commands";
5
5
  import type { GeneratedNames } from "../generated-names";
@@ -28,6 +28,22 @@ type UseOnPasteProps<T extends CellData, S extends Sheet> = {
28
28
  tables?: TableView[];
29
29
  isHiddenByFilterRow: ReturnType<typeof useSheetProperties>["isHiddenByFilterRow"];
30
30
  createHistory: () => (patches: SpreadsheetPatch) => void;
31
+ /** `useUndoRedo`'s `batchHistory`: the paste and the table growth it triggers undo as one step when wired. */
32
+ batchHistory?: <R>(action: () => R) => R;
33
+ /**
34
+ * Excel's "Include new rows and columns in table" AutoCorrect option: a value typed, pasted or
35
+ * filled into the row below / column right of a table grows the table. `false` turns the
36
+ * auto-expansion off (the "Stop Automatically Expanding Tables" smart-tag action).
37
+ * @default true
38
+ */
39
+ autoExpandTables?: boolean;
40
+ /**
41
+ * Excel's "Fill formulas in tables to create calculated columns" AutoCorrect option. `false`
42
+ * leaves a formula typed into a table column a one-cell edit (the "Stop automatically creating
43
+ * calculated columns" smart-tag action).
44
+ * @default true
45
+ */
46
+ autoCalculatedColumns?: boolean;
31
47
  enqueueCalculation: ReturnType<typeof useCalculation>["enqueueCalculation"];
32
48
  enqueueStructureChange?: ReturnType<typeof useCalculation>["enqueueStructureChange"];
33
49
  enqueueGraphOperation: ReturnType<typeof useCalculation>["enqueueGraphOperation"];
@@ -37,6 +53,21 @@ type UseOnPasteProps<T extends CellData, S extends Sheet> = {
37
53
  onChangeEmbeds: UseSpreadsheetProps<T, S>["onChangeEmbeds"];
38
54
  onRequestFonts: UseSpreadsheetProps<T, S>["onRequestFonts"];
39
55
  onChangeDataValidations: UseSpreadsheetProps<T, S>["onChangeDataValidations"];
56
+ /**
57
+ * Defined names wholly inside a CUT block follow it to the paste destination (Excel: `Data`
58
+ * over A1:A3 becomes C1:C3 after cut A1:A3 → paste C1; a partially covered name stays).
59
+ */
60
+ onChangeNamedRanges?: UseSpreadsheetProps<T, S>["onChangeNamedRanges"];
61
+ /**
62
+ * Chart ranges wholly inside a CUT block follow it to the paste destination (and sheet),
63
+ * the way Excel re-points series like references; a partially covered range stays.
64
+ */
65
+ onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
66
+ /**
67
+ * Merged ranges of a sheet — a cut + paste whose destination (or source) covers a merge only
68
+ * partially is refused, like Excel ("We can't do that to a merged cell.").
69
+ */
70
+ getSheetMerges?: (sheetId: number) => GridRange[] | undefined | null;
40
71
  onChangeSelections: ReturnType<typeof useSheetState>["onChangeSelections"];
41
72
  onChangeActiveCell(sheetId: number, cell: CellInterface): void;
42
73
  getDependents: ReturnType<typeof useCalculation>["getDependents"];
@@ -74,6 +105,6 @@ type UseOnPasteProps<T extends CellData, S extends Sheet> = {
74
105
  onCommand?: OnCommand;
75
106
  generatedNames?: GeneratedNames;
76
107
  };
77
- export declare const useOnPaste: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, sheetData, tables: currentTables, maxRowCount, maxColumnCount, isHiddenByFilterRow, onRequestFonts, idCreationStrategy, createHistory, enqueueCalculation, enqueueStructureChange, enqueueGraphOperation, onChangeSheetData, onChangeSheets, onChangeTables, onChangeEmbeds, onChangeSelections, onChangeActiveCell, getDependents, getActiveCell, getUserEnteredValue, onChangeDataValidations, preserveFormatting, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getSheetName, onError, citations, onChangeCitations, sanitizeHtml, onCommand, generatedNames, }: UseOnPasteProps<T, S>) => (e: ClipboardEvent | undefined, sourceSheetId: number | undefined, destinationSheetId: number, copiedSelections: SelectionArea<SelectionAttributes>[] | undefined, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined, finalSelections: SelectionArea<SelectionAttributes>[] | undefined, isCutOperation: boolean) => Promise<void>;
108
+ export declare const useOnPaste: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, sheetData, tables: currentTables, maxRowCount, maxColumnCount, isHiddenByFilterRow, onRequestFonts, idCreationStrategy, createHistory, enqueueCalculation, enqueueStructureChange, enqueueGraphOperation, onChangeSheetData, onChangeSheets, onChangeTables, onChangeEmbeds, onChangeSelections, onChangeActiveCell, getDependents, getActiveCell, getUserEnteredValue, onChangeDataValidations, onChangeNamedRanges, onChangeCharts, getSheetMerges, preserveFormatting, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getSheetName, onError, citations, onChangeCitations, sanitizeHtml, onCommand, generatedNames, batchHistory, autoExpandTables, autoCalculatedColumns, }: UseOnPasteProps<T, S>) => (e: ClipboardEvent | undefined, sourceSheetId: number | undefined, destinationSheetId: number, copiedSelections: SelectionArea<SelectionAttributes>[] | undefined, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[] | undefined, finalSelections: SelectionArea<SelectionAttributes>[] | undefined, isCutOperation: boolean) => Promise<void>;
78
109
  export {};
79
110
  //# sourceMappingURL=use-on-paste.d.ts.map