@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
@@ -1,24 +1,26 @@
1
1
  import { __assign, __awaiter, __generator, __read } from "tslib";
2
- import { areaIntersects, selectionFromActiveCell } from "@rowsncolumns/grid";
2
+ import { areaIntersects, isAreasEqual, selectionFromActiveCell, } from "@rowsncolumns/grid";
3
3
  import { isCellWithinBounds } from "@rowsncolumns/grid";
4
- import { uuid } from "@rowsncolumns/utils";
4
+ import { tableIdDuplicateMessage, uuid, validateTableName, } from "@rowsncolumns/utils";
5
5
  import { produceWithPatches } from "immer";
6
6
  import { useCallback } from "react";
7
- import { getConfictingTable } from "../helpers";
8
- import { createTable } from "../interface/create-table";
7
+ import { getShiftCellsRefusal, getTableEditRefusal, getTableRangeRefusal, shiftBand, } from "../api/structural-guards";
8
+ import { createTable, resolveCreateTableRange, } from "../interface/create-table";
9
9
  import { deleteTableColumn } from "../interface/delete-table-column";
10
10
  import { insertTableColumn } from "../interface/insert-column";
11
11
  import { removeTable } from "../interface/remove-table";
12
- import { updateTable } from "../interface/update-table";
12
+ import { tableHeaderRowAboveIsFree, tableRowHasContent, } from "../interface/table-utils";
13
+ import { resolveUpdatedTableRange, updateTable, } from "../interface/update-table";
13
14
  import { useShowError } from "./../atoms/error-state.atom";
14
15
  import { SHEET_PROTECTION_ERROR_TITLE, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
15
16
  import { getHiddenRowsFromFilterSpecs } from "./use-on-filter-table";
16
17
  export var useOnTable = function (_a) {
17
- var locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, basicFilter = _a.basicFilter, spreadsheetTheme = _a.theme, idCreationStrategy = _a.idCreationStrategy, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, 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, getSheetName = _a.getSheetName, onCommand = _a.onCommand, generatedNames = _a.generatedNames;
18
+ var locale = _a.locale, batchHistory = _a.batchHistory, sheetData = _a.sheetData, sheets = _a.sheets, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, onChangeCitations = _a.onChangeCitations, onChangeCharts = _a.onChangeCharts, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, rowCount = _a.rowCount, columnCount = _a.columnCount, tables = _a.tables, namedRanges = _a.namedRanges, basicFilter = _a.basicFilter, spreadsheetTheme = _a.theme, idCreationStrategy = _a.idCreationStrategy, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, createHistory = _a.createHistory, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeSheetData = _a.onChangeSheetData, getFormattedValue = _a.getFormattedValue, getEffectiveValue = _a.getEffectiveValue, onRequestCalculate = _a.onRequestCalculate, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getBandedCells = _a.getBandedCells, enqueueGraphOperation = _a.enqueueGraphOperation, getContentfulRangeAroundCell = _a.getContentfulRangeAroundCell, getSheetName = _a.getSheetName, onCommand = _a.onCommand, generatedNames = _a.generatedNames, getArrayRanges = _a.getArrayRanges, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats;
18
19
  var showError = useShowError();
19
20
  var canPerformSheetAction = useCanPerformSheetAction();
20
21
  // Create a new table
21
- var onCreateTable = useCallback(function (sheetId, activeCell, selections, tableSpec, theme, bandedRange) {
22
+ var onCreateTable = useCallback(function (sheetId, activeCell, selections, tableSpec, theme, bandedRange, options) {
23
+ var _a;
22
24
  // Validate
23
25
  var lastSelection = selections === null || selections === void 0 ? void 0 : selections[selections.length - 1];
24
26
  // Check basicFilter intersection
@@ -30,42 +32,105 @@ export var useOnTable = function (_a) {
30
32
  });
31
33
  return;
32
34
  }
33
- // Check if this selection intersects
34
- var tableIntersects = tables === null || tables === void 0 ? void 0 : tables.find(function (table) {
35
- return areaIntersects(table.range, lastSelection === null || lastSelection === void 0 ? void 0 : lastSelection.range) &&
36
- table.sheetId === sheetId;
37
- });
38
- if (tableIntersects) {
35
+ if ((tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.id) !== undefined &&
36
+ (tables === null || tables === void 0 ? void 0 : tables.some(function (table) { return table.id === tableSpec.id; }))) {
39
37
  showError({
40
38
  title: "Error",
41
- message: "You cannot create a table that spans another table.",
39
+ message: tableIdDuplicateMessage(tableSpec.id),
42
40
  });
43
41
  return;
44
42
  }
45
- createTable({
46
- locale: locale,
47
- rowCount: rowCount,
48
- columnCount: columnCount,
49
- tables: tables,
50
- basicFilter: basicFilter,
51
- cellXfsRegistry: cellXfsRegistry,
52
- sharedStringRegistry: sharedStringRegistry,
53
- theme: spreadsheetTheme,
54
- idCreationStrategy: idCreationStrategy,
55
- enqueueCalculation: enqueueCalculation,
56
- createHistory: createHistory,
57
- onChangeSheets: onChangeSheets,
58
- onChangeTables: onChangeTables,
59
- onChangeSheetData: onChangeSheetData,
60
- getFormattedValue: getFormattedValue,
61
- getEffectiveValue: getEffectiveValue,
62
- onRequestCalculate: onRequestCalculate,
63
- getDependents: getDependents,
64
- enqueueGraphOperation: enqueueGraphOperation,
43
+ var titleError = (tableSpec === null || tableSpec === void 0 ? void 0 : tableSpec.title) !== undefined
44
+ ? 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; }))
45
+ : undefined;
46
+ if (titleError) {
47
+ showError({ title: "Error", message: titleError });
48
+ return;
49
+ }
50
+ var dataRange = resolveCreateTableRange({
51
+ sheetId: sheetId,
52
+ activeCell: activeCell,
53
+ selections: selections,
54
+ tableSpec: tableSpec,
65
55
  getContentfulRangeAroundCell: getContentfulRangeAroundCell,
66
- getSheetName: getSheetName,
67
- generatedNames: generatedNames,
68
- })(sheetId, activeCell, selections, tableSpec, theme, bandedRange);
56
+ });
57
+ var merges = (_a = sheets === null || sheets === void 0 ? void 0 : sheets.find(function (sheet) { return sheet.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges;
58
+ // "My table has headers" unchecked: the header row is inserted by shifting the range's
59
+ // columns down one row — refused (Excel) when that would tear a merge, table or array or
60
+ // push a non-blank cell off the sheet.
61
+ var insertsHeaderRow = (options === null || options === void 0 ? void 0 : options.hasHeaders) === false;
62
+ var headerRowInsert = insertsHeaderRow
63
+ ? __assign(__assign({}, dataRange), { endRowIndex: dataRange.startRowIndex }) : undefined;
64
+ if (headerRowInsert) {
65
+ var refusal = getShiftCellsRefusal({
66
+ direction: "down",
67
+ range: headerRowInsert,
68
+ sheetId: sheetId,
69
+ rows: sheetData === null || sheetData === void 0 ? void 0 : sheetData[sheetId],
70
+ rowCount: rowCount,
71
+ merges: merges,
72
+ tables: tables,
73
+ });
74
+ if (refusal) {
75
+ showError({ title: refusal.title, message: refusal.message });
76
+ return;
77
+ }
78
+ }
79
+ // Excel: a table cannot overlap another table or cover merged cells (T-07) — judged on the
80
+ // range the table will cover; with an inserted header row, tables and merges wholly inside
81
+ // the shifted columns have moved down one row by then.
82
+ var rangeRefusal = getTableRangeRefusal({
83
+ sheetId: sheetId,
84
+ range: headerRowInsert
85
+ ? __assign(__assign({}, dataRange), { endRowIndex: dataRange.endRowIndex + 1 }) : dataRange,
86
+ tables: tables,
87
+ merges: merges,
88
+ insertedRows: headerRowInsert
89
+ ? { band: shiftBand("down", headerRowInsert), count: 1 }
90
+ : undefined,
91
+ });
92
+ if (rangeRefusal) {
93
+ showError(rangeRefusal);
94
+ return;
95
+ }
96
+ var create = function () {
97
+ return createTable({
98
+ locale: locale,
99
+ rowCount: rowCount,
100
+ columnCount: columnCount,
101
+ tables: tables,
102
+ namedRanges: namedRanges,
103
+ basicFilter: basicFilter,
104
+ cellXfsRegistry: cellXfsRegistry,
105
+ sharedStringRegistry: sharedStringRegistry,
106
+ theme: spreadsheetTheme,
107
+ idCreationStrategy: idCreationStrategy,
108
+ enqueueCalculation: enqueueCalculation,
109
+ enqueueStructureChange: enqueueStructureChange,
110
+ createHistory: createHistory,
111
+ onChangeSheets: onChangeSheets,
112
+ onChangeTables: onChangeTables,
113
+ onChangeSheetData: onChangeSheetData,
114
+ onChangeCitations: onChangeCitations,
115
+ onChangeCharts: onChangeCharts,
116
+ getActiveCell: getActiveCell,
117
+ getSelections: getSelections,
118
+ getFormattedValue: getFormattedValue,
119
+ getEffectiveValue: getEffectiveValue,
120
+ onRequestCalculate: onRequestCalculate,
121
+ getDependents: getDependents,
122
+ enqueueGraphOperation: enqueueGraphOperation,
123
+ getContentfulRangeAroundCell: getContentfulRangeAroundCell,
124
+ getSheetName: getSheetName,
125
+ generatedNames: generatedNames,
126
+ })(sheetId, activeCell, selections, tableSpec, theme, bandedRange, options);
127
+ };
128
+ if (insertsHeaderRow && batchHistory) {
129
+ batchHistory(create);
130
+ }
131
+ else {
132
+ create();
133
+ }
69
134
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({
70
135
  command: "create-table",
71
136
  sheetId: sheetId,
@@ -74,10 +139,20 @@ export var useOnTable = function (_a) {
74
139
  tableSpec: tableSpec,
75
140
  theme: theme,
76
141
  bandedRange: bandedRange,
142
+ hasHeaders: options === null || options === void 0 ? void 0 : options.hasHeaders,
77
143
  });
78
144
  }, [
79
145
  locale,
146
+ batchHistory,
147
+ sheetData,
148
+ sheets,
149
+ getActiveCell,
150
+ getSelections,
151
+ onChangeCitations,
152
+ onChangeCharts,
153
+ enqueueStructureChange,
80
154
  tables,
155
+ namedRanges,
81
156
  basicFilter,
82
157
  columnCount,
83
158
  cellXfsRegistry,
@@ -103,33 +178,134 @@ export var useOnTable = function (_a) {
103
178
  // Remove table
104
179
  var onRemoveTable = useCallback(function (tableView) {
105
180
  removeTable({
181
+ locale: locale,
182
+ cellXfsRegistry: cellXfsRegistry,
183
+ sharedStringRegistry: sharedStringRegistry,
184
+ getSheetName: getSheetName,
106
185
  onChangeTables: onChangeTables,
107
186
  onChangeSheets: onChangeSheets,
187
+ onChangeSheetData: onChangeSheetData,
108
188
  createHistory: createHistory,
109
189
  getDependents: getDependents,
190
+ getGraphNodes: getGraphNodes,
191
+ getBandedCells: getBandedCells,
110
192
  enqueueCalculation: enqueueCalculation,
193
+ enqueueGraphOperation: enqueueGraphOperation,
111
194
  })(tableView);
112
195
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({ command: "remove-table", tableView: tableView });
113
196
  }, [
197
+ locale,
198
+ cellXfsRegistry,
199
+ sharedStringRegistry,
200
+ getSheetName,
114
201
  onChangeTables,
115
202
  getDependents,
203
+ getGraphNodes,
204
+ getBandedCells,
116
205
  enqueueCalculation,
206
+ enqueueGraphOperation,
117
207
  onChangeSheets,
208
+ onChangeSheetData,
118
209
  createHistory,
119
210
  onCommand,
120
211
  ]);
121
212
  // Update a table
122
213
  var onUpdateTable = useCallback(function (sheetId, tableId, updatedTable) {
214
+ var _a;
215
+ var table = tables === null || tables === void 0 ? void 0 : tables.find(function (table) { return table.id === tableId; });
216
+ var titleError = table &&
217
+ updatedTable.title !== undefined &&
218
+ updatedTable.title !== table.title
219
+ ? validateTableName(updatedTable.title, tables === null || tables === void 0 ? void 0 : tables.filter(function (t) { return t.id !== tableId; }).map(function (t) { return t.title; }), namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (namedRange) { return namedRange.name; }))
220
+ : undefined;
221
+ if (titleError) {
222
+ showError({ title: "Error", message: titleError });
223
+ return;
224
+ }
225
+ // Switching Total Row on over an occupied row shifts the table's column
226
+ // band down (`updateTable`); Excel refuses that shift when it would tear
227
+ // another table, a merge or an array, or push content off the sheet.
228
+ var totalRowShift = table &&
229
+ !table.totalRow &&
230
+ updatedTable.totalRow === true &&
231
+ tableRowHasContent(sheetData === null || sheetData === void 0 ? void 0 : sheetData[sheetId], table.range.endRowIndex + 1, table.range.startColumnIndex, table.range.endColumnIndex)
232
+ ? {
233
+ startRowIndex: table.range.endRowIndex + 1,
234
+ endRowIndex: table.range.endRowIndex + 1,
235
+ startColumnIndex: table.range.startColumnIndex,
236
+ endColumnIndex: table.range.endColumnIndex,
237
+ }
238
+ : undefined;
239
+ var merges = (_a = sheets === null || sheets === void 0 ? void 0 : sheets.find(function (sheet) { return sheet.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges;
240
+ if (totalRowShift) {
241
+ var refusal = getShiftCellsRefusal({
242
+ direction: "down",
243
+ range: totalRowShift,
244
+ sheetId: sheetId,
245
+ rows: sheetData === null || sheetData === void 0 ? void 0 : sheetData[sheetId],
246
+ rowCount: rowCount,
247
+ merges: merges,
248
+ tables: tables,
249
+ arrayRanges: getArrayRanges === null || getArrayRanges === void 0 ? void 0 : getArrayRanges(sheetId),
250
+ });
251
+ if (refusal) {
252
+ showError({ title: refusal.title, message: refusal.message });
253
+ return;
254
+ }
255
+ }
256
+ // Excel: the table's new range (an edited range, a total row switched on, or a header row
257
+ // re-added above the data) cannot overlap another table or cover merged cells (T-07). An
258
+ // unchanged range is not re-judged; with the occupied-row shift above, tables and merges
259
+ // wholly inside the shifted band are judged one row lower.
260
+ var nextRange = table &&
261
+ resolveUpdatedTableRange(table, updatedTable, {
262
+ headerRowAboveIsFree: tableHeaderRowAboveIsFree({
263
+ sheetId: sheetId,
264
+ table: table,
265
+ sheetData: sheetData,
266
+ tables: tables,
267
+ }),
268
+ });
269
+ var rangeRefusal = table && nextRange && !isAreasEqual(nextRange, table.range)
270
+ ? getTableRangeRefusal({
271
+ sheetId: sheetId,
272
+ range: nextRange,
273
+ tables: tables,
274
+ merges: merges,
275
+ excludeTableId: tableId,
276
+ insertedRows: totalRowShift
277
+ ? { band: shiftBand("down", totalRowShift), count: 1 }
278
+ : undefined,
279
+ })
280
+ : undefined;
281
+ if (rangeRefusal) {
282
+ showError(rangeRefusal);
283
+ return;
284
+ }
123
285
  updateTable({
124
286
  locale: locale,
125
287
  enqueueCalculation: enqueueCalculation,
288
+ enqueueGraphOperation: enqueueGraphOperation,
289
+ getGraphNodes: getGraphNodes,
126
290
  createHistory: createHistory,
127
291
  onChangeTables: onChangeTables,
128
292
  onChangeSheetData: onChangeSheetData,
129
293
  getFormattedValue: getFormattedValue,
130
294
  getDependents: getDependents,
131
295
  tables: tables,
296
+ namedRanges: namedRanges,
132
297
  generatedNames: generatedNames,
298
+ sheetData: sheetData,
299
+ rowCount: rowCount,
300
+ columnCount: columnCount,
301
+ cellXfsRegistry: cellXfsRegistry,
302
+ sharedStringRegistry: sharedStringRegistry,
303
+ getSheetName: getSheetName,
304
+ getActiveCell: getActiveCell,
305
+ enqueueStructureChange: enqueueStructureChange,
306
+ onChangeSheets: onChangeSheets,
307
+ onChangeDataValidations: onChangeDataValidations,
308
+ onChangeConditionalFormats: onChangeConditionalFormats,
133
309
  })(sheetId, tableId, updatedTable);
134
310
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({
135
311
  command: "update-table",
@@ -140,14 +316,33 @@ export var useOnTable = function (_a) {
140
316
  }, [
141
317
  locale,
142
318
  tables,
319
+ namedRanges,
320
+ sheets,
321
+ showError,
143
322
  createHistory,
144
323
  getFormattedValue,
145
324
  onChangeTables,
146
325
  onChangeSheetData,
147
326
  enqueueCalculation,
327
+ enqueueGraphOperation,
328
+ getGraphNodes,
148
329
  getDependents,
149
330
  onCommand,
150
331
  generatedNames,
332
+ sheetData,
333
+ sheets,
334
+ getArrayRanges,
335
+ rowCount,
336
+ columnCount,
337
+ cellXfsRegistry,
338
+ sharedStringRegistry,
339
+ getSheetName,
340
+ getActiveCell,
341
+ enqueueGraphOperation,
342
+ enqueueStructureChange,
343
+ onChangeSheets,
344
+ onChangeDataValidations,
345
+ onChangeConditionalFormats,
151
346
  ]);
152
347
  /**
153
348
  * Create a basic filter
@@ -273,12 +468,16 @@ export var useOnTable = function (_a) {
273
468
  /**
274
469
  * Insert table column
275
470
  */
276
- var onInsertTableColumn = useCallback(function (tableView, dimensionIndex, direction) {
277
- // Validate
278
- if (getConfictingTable(tables, tableView)) {
279
- showError({
280
- message: "You cannot insert or delete cells over part of a table.",
281
- });
471
+ var onInsertTableColumn = useCallback(function (tableView, dimensionIndex, direction, count) {
472
+ // Excel refuses a table-column insert whose shifted band would tear another table (T-47).
473
+ var refusal = getTableEditRefusal({
474
+ sheetId: tableView.sheetId,
475
+ table: tableView,
476
+ axis: "column",
477
+ tables: tables,
478
+ });
479
+ if (refusal) {
480
+ showError({ title: refusal.title, message: refusal.message });
282
481
  return;
283
482
  }
284
483
  insertTableColumn({
@@ -293,17 +492,19 @@ export var useOnTable = function (_a) {
293
492
  onChangeTables: onChangeTables,
294
493
  onChangeSheets: onChangeSheets,
295
494
  onChangeSheetData: onChangeSheetData,
495
+ onChangeCharts: onChangeCharts,
296
496
  enqueueCalculation: enqueueCalculation,
297
497
  enqueueStructureChange: enqueueStructureChange,
298
498
  enqueueGraphOperation: enqueueGraphOperation,
299
499
  getDependents: getDependents,
300
500
  generatedNames: generatedNames,
301
- })(tableView, dimensionIndex, direction);
501
+ })(tableView, dimensionIndex, direction, count);
302
502
  onCommand === null || onCommand === void 0 ? void 0 : onCommand({
303
503
  command: "insert-table-column",
304
504
  tableView: tableView,
305
505
  dimensionIndex: dimensionIndex,
306
506
  direction: direction,
507
+ count: count,
307
508
  });
308
509
  }, [
309
510
  tables,
@@ -317,6 +518,7 @@ export var useOnTable = function (_a) {
317
518
  onChangeTables,
318
519
  onChangeSheets,
319
520
  onChangeSheetData,
521
+ onChangeCharts,
320
522
  enqueueCalculation,
321
523
  enqueueStructureChange,
322
524
  enqueueGraphOperation,
@@ -327,11 +529,15 @@ export var useOnTable = function (_a) {
327
529
  ]);
328
530
  // Delete a table column
329
531
  var onDeleteTableColumn = useCallback(function (tableView, dimensionIndex) {
330
- // Validate - keep React-specific validation at hook level
331
- if (getConfictingTable(tables, tableView)) {
332
- showError({
333
- message: "You cannot insert or delete cells over part of a table.",
334
- });
532
+ // Excel refuses a table-column delete whose shifted band would tear another table (T-47).
533
+ var refusal = getTableEditRefusal({
534
+ sheetId: tableView.sheetId,
535
+ table: tableView,
536
+ axis: "column",
537
+ tables: tables,
538
+ });
539
+ if (refusal) {
540
+ showError({ title: refusal.title, message: refusal.message });
335
541
  return;
336
542
  }
337
543
  deleteTableColumn({
@@ -345,6 +551,7 @@ export var useOnTable = function (_a) {
345
551
  onChangeTables: onChangeTables,
346
552
  onChangeSheets: onChangeSheets,
347
553
  onChangeSheetData: onChangeSheetData,
554
+ onChangeCharts: onChangeCharts,
348
555
  enqueueCalculation: enqueueCalculation,
349
556
  enqueueStructureChange: enqueueStructureChange,
350
557
  enqueueGraphOperation: enqueueGraphOperation,
@@ -367,6 +574,7 @@ export var useOnTable = function (_a) {
367
574
  onChangeTables,
368
575
  onChangeSheets,
369
576
  onChangeSheetData,
577
+ onChangeCharts,
370
578
  enqueueCalculation,
371
579
  enqueueStructureChange,
372
580
  enqueueGraphOperation,
@@ -0,0 +1,23 @@
1
+ import type { CalculatedColumnFill, CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
2
+ import type { OnCommand } from "../commands";
3
+ import type { useCalculation } from "./use-calculation";
4
+ import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
5
+ import type { SpreadsheetPatch } from "./use-undo-redo";
6
+ export type UseOnUndoCalculatedColumnProps<T extends CellData, S extends Sheet> = {
7
+ tables?: TableView[];
8
+ createHistory: () => (patches: SpreadsheetPatch) => void;
9
+ /** `useUndoRedo`'s `batchHistory`: the restored cells and the dropped column formula undo as one step. */
10
+ batchHistory: <R>(action: () => R) => R;
11
+ onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
12
+ onChangeTables: UseSpreadsheetProps<T, S>["onChangeTables"];
13
+ enqueueCalculation: ReturnType<typeof useCalculation>["enqueueCalculation"];
14
+ onCommand?: OnCommand;
15
+ };
16
+ /**
17
+ * Excel's "Undo Calculated Column" (the AutoCorrect smart tag after a formula typed into a table
18
+ * column filled it): the fill alone reverts — every body cell the fill overwrote goes back to what
19
+ * it held (empty, or the column's previous formula) — and the column stops being a calculated
20
+ * column. The typed cell keeps its formula. One undo step.
21
+ */
22
+ export declare const useOnUndoCalculatedColumn: <T extends CellData, S extends Sheet>({ tables, createHistory, batchHistory, onChangeSheetData, onChangeTables, enqueueCalculation, onCommand, }: UseOnUndoCalculatedColumnProps<T, S>) => (fill: CalculatedColumnFill) => void;
23
+ //# sourceMappingURL=use-on-undo-calculated-column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-undo-calculated-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-undo-calculated-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,QAAQ,EACR,KAAK,EACL,SAAS,EACV,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChF,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,0GAA0G;IAC1G,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,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,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,4GAQ5E,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,YAE5B,oBAAoB,SAgE9B,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { __assign, __read, __values } from "tslib";
2
+ import { produceWithPatches } from "immer";
3
+ import { useCallback } from "react";
4
+ import { createSheetCellIdentifier } from "../api/formula";
5
+ import { createSheetDraft } from "../api/immer-utils";
6
+ /**
7
+ * Excel's "Undo Calculated Column" (the AutoCorrect smart tag after a formula typed into a table
8
+ * column filled it): the fill alone reverts — every body cell the fill overwrote goes back to what
9
+ * it held (empty, or the column's previous formula) — and the column stops being a calculated
10
+ * column. The typed cell keeps its formula. One undo step.
11
+ */
12
+ export var useOnUndoCalculatedColumn = function (_a) {
13
+ var tables = _a.tables, createHistory = _a.createHistory, batchHistory = _a.batchHistory, onChangeSheetData = _a.onChangeSheetData, onChangeTables = _a.onChangeTables, enqueueCalculation = _a.enqueueCalculation, onCommand = _a.onCommand;
14
+ return useCallback(function (fill) {
15
+ var sheetId = fill.sheetId, tableId = fill.tableId, columnIndex = fill.columnIndex, previous = fill.previous;
16
+ var table = tables === null || tables === void 0 ? void 0 : tables.find(function (candidate) { return candidate.id === tableId && candidate.sheetId === sheetId; });
17
+ if (!table) {
18
+ return;
19
+ }
20
+ batchHistory(function () {
21
+ var saveHistory = createHistory();
22
+ var recalcCells = new Map();
23
+ onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
24
+ var _a = __read(produceWithPatches(prevSheetData, function (draft) {
25
+ var e_1, _a;
26
+ try {
27
+ for (var previous_1 = __values(previous), previous_1_1 = previous_1.next(); !previous_1_1.done; previous_1_1 = previous_1.next()) {
28
+ var _b = previous_1_1.value, rowIndex = _b.rowIndex, col = _b.columnIndex, cell = _b.cell;
29
+ var currentSheet = createSheetDraft(draft, sheetId, rowIndex);
30
+ currentSheet[rowIndex].values[col] = (cell !== null && cell !== void 0 ? cell : undefined);
31
+ var position = { sheetId: sheetId, rowIndex: rowIndex, columnIndex: col };
32
+ enqueueCalculation({ type: cell ? "add" : "remove", position: position, force: true });
33
+ recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, col), __assign(__assign({}, position), { force: true }));
34
+ }
35
+ }
36
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
37
+ finally {
38
+ try {
39
+ if (previous_1_1 && !previous_1_1.done && (_a = previous_1.return)) _a.call(previous_1);
40
+ }
41
+ finally { if (e_1) throw e_1.error; }
42
+ }
43
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
44
+ saveHistory(__assign({ sheetData: { patches: patches, inversePatches: inversePatches } }, (recalcCells.size
45
+ ? { recalcCells: { undo: recalcCells, redo: recalcCells } }
46
+ : {})));
47
+ return nextState;
48
+ });
49
+ onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
50
+ var _a = __read(produceWithPatches(prevTables, function (draft) {
51
+ var _a;
52
+ var current = draft.find(function (candidate) { return candidate.id === tableId && candidate.sheetId === sheetId; });
53
+ var column = (_a = current === null || current === void 0 ? void 0 : current.columns) === null || _a === void 0 ? void 0 : _a[columnIndex - current.range.startColumnIndex];
54
+ if (column) {
55
+ delete column.formula;
56
+ }
57
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
58
+ saveHistory({ tables: { patches: patches, inversePatches: inversePatches } });
59
+ return nextState;
60
+ });
61
+ });
62
+ onCommand === null || onCommand === void 0 ? void 0 : onCommand({
63
+ command: "undo-calculated-column",
64
+ sheetId: sheetId,
65
+ tableId: tableId,
66
+ columnIndex: columnIndex,
67
+ previous: previous,
68
+ });
69
+ }, [tables, createHistory, batchHistory, onChangeSheetData, onChangeTables, enqueueCalculation, onCommand]);
70
+ };
@@ -0,0 +1,28 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
2
+ import type { CellData, Sheet, TableAutoExpansion, TableView } from "@rowsncolumns/spreadsheet";
3
+ import type { OnCommand } from "../commands";
4
+ import type { useCalculation } from "./use-calculation";
5
+ import type { CellXfsRegistry } from "./use-cellxfs-registry";
6
+ import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
7
+ import type { SpreadsheetPatch } from "./use-undo-redo";
8
+ export type UseOnUndoTableAutoExpansionProps<T extends CellData, S extends Sheet> = {
9
+ locale?: string;
10
+ cellXfsRegistry?: CellXfsRegistry;
11
+ tables?: TableView[];
12
+ createHistory: () => (patches: SpreadsheetPatch) => void;
13
+ /** `useUndoRedo`'s `batchHistory`: the resize and the cell clears undo as one step. */
14
+ batchHistory: <R>(action: () => R) => R;
15
+ onResizeTable: (sheetId: number, table: TableView, range: GridRange) => void;
16
+ onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
17
+ enqueueCalculation: ReturnType<typeof useCalculation>["enqueueCalculation"];
18
+ onCommand?: OnCommand;
19
+ };
20
+ /**
21
+ * Excel's "Undo Table AutoExpansion" (the AutoCorrect smart tag after a table grew over a typed,
22
+ * pasted or filled cell): the table resizes back to the range it had before the growth, and the
23
+ * cells the growth itself wrote — the calculated-column formulas and generated header names it
24
+ * put into empty cells, the column formatting it copied onto cells that had none — are cleared.
25
+ * The user's own value stays, now a plain cell outside the table. One undo step.
26
+ */
27
+ export declare const useOnUndoTableAutoExpansion: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, tables, createHistory, batchHistory, onResizeTable, onChangeSheetData, enqueueCalculation, onCommand, }: UseOnUndoTableAutoExpansionProps<T, S>) => (expansion: TableAutoExpansion) => void;
28
+ //# sourceMappingURL=use-on-undo-table-auto-expansion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-undo-table-auto-expansion.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-undo-table-auto-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,kBAAkB,EAClB,SAAS,EACV,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,gCAAgC,CAC1C,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,KAAK,IACb;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,uFAAuF;IACvF,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC7E,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oIAU9E,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAEzB,kBAAkB,SA4EjC,CAAC"}