@rowsncolumns/spreadsheet-state 29.0.0 → 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 (603) 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 +1 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +1 -3
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/paint-format.d.ts +22 -1
  14. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  15. package/dist/cjs/api/paint-format.js +57 -1
  16. package/dist/cjs/api/sort.d.ts +23 -1
  17. package/dist/cjs/api/sort.d.ts.map +1 -1
  18. package/dist/cjs/api/sort.js +52 -6
  19. package/dist/cjs/api/structural-guards.d.ts +57 -0
  20. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  21. package/dist/cjs/api/structural-guards.js +93 -1
  22. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  23. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  24. package/dist/cjs/api/structural-table-refs.js +177 -16
  25. package/dist/cjs/api/table.d.ts +26 -2
  26. package/dist/cjs/api/table.d.ts.map +1 -1
  27. package/dist/cjs/api/table.js +93 -60
  28. package/dist/cjs/api/validation.d.ts.map +1 -1
  29. package/dist/cjs/api/validation.js +53 -8
  30. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  31. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  32. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  33. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  34. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  35. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  36. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  37. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  38. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  39. package/dist/cjs/atoms/index.d.ts +4 -0
  40. package/dist/cjs/atoms/index.d.ts.map +1 -1
  41. package/dist/cjs/atoms/index.js +4 -0
  42. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  43. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  45. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  47. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  48. package/dist/cjs/commands.d.ts +129 -2
  49. package/dist/cjs/commands.d.ts.map +1 -1
  50. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  51. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  52. package/dist/cjs/components/editors/embed-editor.js +38 -9
  53. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  54. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  55. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  56. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  57. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  58. package/dist/cjs/components/editors/table-editor.js +261 -20
  59. package/dist/cjs/components/index.d.ts +1 -0
  60. package/dist/cjs/components/index.d.ts.map +1 -1
  61. package/dist/cjs/components/index.js +1 -0
  62. package/dist/cjs/constants.d.ts +9 -1
  63. package/dist/cjs/constants.d.ts.map +1 -1
  64. package/dist/cjs/constants.js +12 -0
  65. package/dist/cjs/generated-names.d.ts +13 -3
  66. package/dist/cjs/generated-names.d.ts.map +1 -1
  67. package/dist/cjs/generated-names.js +3 -1
  68. package/dist/cjs/helpers.d.ts +5 -0
  69. package/dist/cjs/helpers.d.ts.map +1 -1
  70. package/dist/cjs/helpers.js +10 -1
  71. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  72. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  73. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  74. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  75. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  76. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  77. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  78. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  79. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  80. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  81. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  82. package/dist/cjs/hooks/use-on-change.js +218 -136
  83. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  84. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  85. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  86. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  87. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  89. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  90. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  92. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  93. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  95. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  96. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  98. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  99. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  100. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  101. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
  102. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
  104. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  105. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  107. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  108. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete.js +5 -1
  110. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  111. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  113. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  114. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-fill.js +29 -15
  116. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  117. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  118. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  119. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  120. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  121. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  122. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  123. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  124. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  125. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  126. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  127. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  128. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  129. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  130. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  131. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  133. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  134. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  136. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  137. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  139. package/dist/cjs/hooks/use-on-move-columns.d.ts +3 -1
  140. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-move-columns.js +14 -1
  142. package/dist/cjs/hooks/use-on-move-rows.d.ts +3 -1
  143. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-move-rows.js +14 -1
  145. package/dist/cjs/hooks/use-on-move-selection.d.ts +3 -1
  146. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-move-selection.js +88 -25
  148. package/dist/cjs/hooks/use-on-paste.d.ts +22 -1
  149. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-paste.js +993 -776
  151. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  152. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  154. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  155. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  156. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  157. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  158. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  159. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  160. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  161. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  162. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  163. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  164. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  166. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  167. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  169. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  170. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  171. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  172. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  173. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  174. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  175. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  176. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  177. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  178. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  179. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-table.js +257 -49
  181. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  182. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  183. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  184. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  185. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  186. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  187. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  188. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  190. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  191. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  193. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  194. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-slicers.js +17 -26
  196. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  197. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  199. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +56 -10
  200. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  201. package/dist/cjs/hooks/use-spreadsheet-state.js +322 -100
  202. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  203. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  204. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  205. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  206. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  207. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  208. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  209. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  210. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  211. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  212. package/dist/cjs/index.d.ts +7 -0
  213. package/dist/cjs/index.d.ts.map +1 -1
  214. package/dist/cjs/index.js +8 -0
  215. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  216. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  217. package/dist/cjs/interface/apply-fill.js +207 -98
  218. package/dist/cjs/interface/change-batch.d.ts +1 -1
  219. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  220. package/dist/cjs/interface/change-batch.js +112 -15
  221. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  222. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  223. package/dist/cjs/interface/change-calculated-column.js +87 -17
  224. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  225. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  226. package/dist/cjs/interface/change-table-column.js +336 -76
  227. package/dist/cjs/interface/create-table.d.ts +15 -3
  228. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  229. package/dist/cjs/interface/create-table.js +100 -25
  230. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  231. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  232. package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
  233. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  234. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  235. package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
  236. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  237. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  238. package/dist/cjs/interface/delete-cells.js +81 -25
  239. package/dist/cjs/interface/delete-column.d.ts +1 -1
  240. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/delete-column.js +9 -2
  242. package/dist/cjs/interface/delete-row.d.ts +1 -1
  243. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  244. package/dist/cjs/interface/delete-row.js +223 -18
  245. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  246. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-sheet.js +118 -1
  248. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  249. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-table-column.js +11 -1
  251. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  252. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-table-row.js +361 -275
  254. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  255. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  256. package/dist/cjs/interface/embeds.d.ts +10 -1
  257. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  258. package/dist/cjs/interface/embeds.js +120 -6
  259. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  260. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  261. package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
  262. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  263. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  264. package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
  265. package/dist/cjs/interface/insert-column.d.ts +2 -2
  266. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  267. package/dist/cjs/interface/insert-column.js +67 -38
  268. package/dist/cjs/interface/insert-row.d.ts +1 -1
  269. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  270. package/dist/cjs/interface/insert-row.js +9 -2
  271. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  272. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  273. package/dist/cjs/interface/insert-table-row.js +70 -19
  274. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  275. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  276. package/dist/cjs/interface/remove-duplicates.js +46 -6
  277. package/dist/cjs/interface/remove-table.d.ts +1 -1
  278. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  279. package/dist/cjs/interface/remove-table.js +72 -16
  280. package/dist/cjs/interface/slicers.d.ts +12 -1
  281. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  282. package/dist/cjs/interface/slicers.js +47 -2
  283. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  284. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  285. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  286. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  287. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  288. package/dist/cjs/interface/table-totalrow.js +107 -73
  289. package/dist/cjs/interface/table-utils.d.ts +59 -6
  290. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  291. package/dist/cjs/interface/table-utils.js +211 -15
  292. package/dist/cjs/interface/update-table.d.ts +16 -1
  293. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/update-table.js +190 -44
  295. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  296. package/dist/cjs/test-setup.d.ts.map +1 -1
  297. package/dist/cjs/test-setup.js +6 -0
  298. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  299. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  300. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  301. package/dist/cjs/validation-schema/table.schema.js +20 -3
  302. package/dist/esm/api/anchored-objects.d.ts +122 -6
  303. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  304. package/dist/esm/api/anchored-objects.js +375 -15
  305. package/dist/esm/api/copy-paste.d.ts +1 -2
  306. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  307. package/dist/esm/api/copy-paste.js +1 -3
  308. package/dist/esm/api/filter.d.ts +15 -1
  309. package/dist/esm/api/filter.d.ts.map +1 -1
  310. package/dist/esm/api/filter.js +28 -0
  311. package/dist/esm/api/formula.d.ts +63 -0
  312. package/dist/esm/api/formula.d.ts.map +1 -1
  313. package/dist/esm/api/formula.js +235 -8
  314. package/dist/esm/api/paint-format.d.ts +22 -1
  315. package/dist/esm/api/paint-format.d.ts.map +1 -1
  316. package/dist/esm/api/paint-format.js +44 -1
  317. package/dist/esm/api/sort.d.ts +23 -1
  318. package/dist/esm/api/sort.d.ts.map +1 -1
  319. package/dist/esm/api/sort.js +45 -6
  320. package/dist/esm/api/structural-guards.d.ts +57 -0
  321. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  322. package/dist/esm/api/structural-guards.js +85 -0
  323. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  324. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  325. package/dist/esm/api/structural-table-refs.js +126 -6
  326. package/dist/esm/api/table.d.ts +26 -2
  327. package/dist/esm/api/table.d.ts.map +1 -1
  328. package/dist/esm/api/table.js +70 -48
  329. package/dist/esm/api/validation.d.ts.map +1 -1
  330. package/dist/esm/api/validation.js +53 -8
  331. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  332. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  333. package/dist/esm/atoms/creating-table.atom.js +4 -0
  334. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  335. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  336. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  337. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  338. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  339. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  340. package/dist/esm/atoms/index.d.ts +4 -0
  341. package/dist/esm/atoms/index.d.ts.map +1 -1
  342. package/dist/esm/atoms/index.js +4 -0
  343. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  344. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  345. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  346. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  347. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  348. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  349. package/dist/esm/commands.d.ts +129 -2
  350. package/dist/esm/commands.d.ts.map +1 -1
  351. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  352. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  353. package/dist/esm/components/editors/embed-editor.js +40 -6
  354. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  355. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  356. package/dist/esm/components/editors/slicer-editor.js +85 -0
  357. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  358. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  359. package/dist/esm/components/editors/table-editor.js +243 -19
  360. package/dist/esm/components/index.d.ts +1 -0
  361. package/dist/esm/components/index.d.ts.map +1 -1
  362. package/dist/esm/components/index.js +1 -0
  363. package/dist/esm/constants.d.ts +9 -1
  364. package/dist/esm/constants.d.ts.map +1 -1
  365. package/dist/esm/constants.js +12 -0
  366. package/dist/esm/generated-names.d.ts +13 -3
  367. package/dist/esm/generated-names.d.ts.map +1 -1
  368. package/dist/esm/generated-names.js +3 -1
  369. package/dist/esm/helpers.d.ts +5 -0
  370. package/dist/esm/helpers.d.ts.map +1 -1
  371. package/dist/esm/helpers.js +7 -1
  372. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  373. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  374. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  375. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  376. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  377. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  378. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  379. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  380. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  381. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  382. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  383. package/dist/esm/hooks/use-on-change.js +214 -124
  384. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  385. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  386. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  387. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  388. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  389. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  390. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  391. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  392. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  393. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  394. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  395. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  396. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  397. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  398. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  399. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  400. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  402. package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
  403. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
  405. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  406. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  408. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  409. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-delete.js +5 -1
  411. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  412. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-embeds.js +23 -6
  414. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  415. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  416. package/dist/esm/hooks/use-on-fill.js +27 -1
  417. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  418. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  419. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  420. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  421. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  422. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  423. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  424. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  425. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  426. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  427. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  428. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  429. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  430. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  431. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  432. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  433. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  434. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  435. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  436. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  437. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  438. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  439. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  440. package/dist/esm/hooks/use-on-move-columns.d.ts +3 -1
  441. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  442. package/dist/esm/hooks/use-on-move-columns.js +14 -1
  443. package/dist/esm/hooks/use-on-move-rows.d.ts +3 -1
  444. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  445. package/dist/esm/hooks/use-on-move-rows.js +14 -1
  446. package/dist/esm/hooks/use-on-move-selection.d.ts +3 -1
  447. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-move-selection.js +44 -1
  449. package/dist/esm/hooks/use-on-paste.d.ts +22 -1
  450. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-paste.js +815 -672
  452. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  453. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  455. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  456. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  457. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  458. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  459. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  460. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  461. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  462. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  463. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  464. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  465. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  467. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  468. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  470. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  471. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  473. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  476. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  477. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  479. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  480. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-table.js +234 -26
  482. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  483. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  484. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  485. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  486. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  488. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  489. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  490. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  491. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  492. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  493. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  494. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  495. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-slicers.js +16 -8
  497. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  498. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  499. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  500. package/dist/esm/hooks/use-spreadsheet-state.d.ts +56 -10
  501. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-spreadsheet-state.js +259 -30
  503. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  504. package/dist/esm/hooks/use-structured-reference.js +17 -0
  505. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  506. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  507. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  508. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  509. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  510. package/dist/esm/hooks/use-undo-redo.js +158 -7
  511. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  512. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  513. package/dist/esm/index.d.ts +7 -0
  514. package/dist/esm/index.d.ts.map +1 -1
  515. package/dist/esm/index.js +8 -0
  516. package/dist/esm/interface/apply-fill.d.ts +26 -3
  517. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  518. package/dist/esm/interface/apply-fill.js +188 -88
  519. package/dist/esm/interface/change-batch.d.ts +1 -1
  520. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  521. package/dist/esm/interface/change-batch.js +89 -8
  522. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  523. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  524. package/dist/esm/interface/change-calculated-column.js +81 -16
  525. package/dist/esm/interface/change-table-column.d.ts +81 -7
  526. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  527. package/dist/esm/interface/change-table-column.js +295 -67
  528. package/dist/esm/interface/create-table.d.ts +15 -3
  529. package/dist/esm/interface/create-table.d.ts.map +1 -1
  530. package/dist/esm/interface/create-table.js +103 -27
  531. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  532. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  533. package/dist/esm/interface/delete-cells-shift-left.js +10 -1
  534. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  535. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  536. package/dist/esm/interface/delete-cells-shift-up.js +10 -1
  537. package/dist/esm/interface/delete-cells.d.ts +1 -1
  538. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  539. package/dist/esm/interface/delete-cells.js +47 -14
  540. package/dist/esm/interface/delete-column.d.ts +1 -1
  541. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  542. package/dist/esm/interface/delete-column.js +9 -2
  543. package/dist/esm/interface/delete-row.d.ts +1 -1
  544. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  545. package/dist/esm/interface/delete-row.js +173 -15
  546. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  547. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  548. package/dist/esm/interface/delete-sheet.js +113 -1
  549. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  550. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  551. package/dist/esm/interface/delete-table-column.js +11 -1
  552. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  553. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  554. package/dist/esm/interface/delete-table-row.js +312 -232
  555. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  556. package/dist/esm/interface/duplicate-sheet.js +73 -26
  557. package/dist/esm/interface/embeds.d.ts +10 -1
  558. package/dist/esm/interface/embeds.d.ts.map +1 -1
  559. package/dist/esm/interface/embeds.js +84 -5
  560. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  561. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  562. package/dist/esm/interface/insert-cells-shift-down.js +10 -1
  563. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  564. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  565. package/dist/esm/interface/insert-cells-shift-right.js +10 -1
  566. package/dist/esm/interface/insert-column.d.ts +2 -2
  567. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  568. package/dist/esm/interface/insert-column.js +48 -23
  569. package/dist/esm/interface/insert-row.d.ts +1 -1
  570. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  571. package/dist/esm/interface/insert-row.js +9 -2
  572. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  573. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  574. package/dist/esm/interface/insert-table-row.js +67 -12
  575. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  576. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  577. package/dist/esm/interface/remove-duplicates.js +41 -6
  578. package/dist/esm/interface/remove-table.d.ts +1 -1
  579. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  580. package/dist/esm/interface/remove-table.js +58 -10
  581. package/dist/esm/interface/slicers.d.ts +12 -1
  582. package/dist/esm/interface/slicers.d.ts.map +1 -1
  583. package/dist/esm/interface/slicers.js +44 -2
  584. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  585. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  586. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  587. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  588. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  589. package/dist/esm/interface/table-totalrow.js +98 -68
  590. package/dist/esm/interface/table-utils.d.ts +59 -6
  591. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  592. package/dist/esm/interface/table-utils.js +155 -14
  593. package/dist/esm/interface/update-table.d.ts +16 -1
  594. package/dist/esm/interface/update-table.d.ts.map +1 -1
  595. package/dist/esm/interface/update-table.js +203 -42
  596. package/dist/esm/sheet-cell.d.ts.map +1 -1
  597. package/dist/esm/test-setup.d.ts.map +1 -1
  598. package/dist/esm/test-setup.js +6 -0
  599. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  600. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  601. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  602. package/dist/esm/validation-schema/table.schema.js +15 -2
  603. package/package.json +19 -11
@@ -6,13 +6,18 @@ import { getBandedCells } from "@rowsncolumns/spreadsheet";
6
6
  import { defaultSpreadsheetTheme, useCallbackRef, useSpreadsheetTheme, } from "@rowsncolumns/spreadsheet";
7
7
  import { findMatchingBandProperty, getCurrentLocale, getFormulaLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
8
8
  import { enableMapSet, enablePatches, setUseStrictShallowCopy } from "immer";
9
- import { useCallback, useEffect, useMemo, useRef } from "react";
9
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { getAutoFillValues as defaultGetAutoFillValues } from "../api/fill";
11
+ import { planInsertCutCells } from "../api/insert-cut-cells";
12
+ import { getMoveRangeRefusal } from "../api/structural-guards";
13
+ import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
14
+ import { useShowError } from "../atoms/error-state.atom";
11
15
  import { getGeneratedSheetName } from "../generated-names";
12
16
  import { SheetCell } from "../sheet-cell";
13
17
  import { useCalculation } from "./use-calculation";
14
18
  import { useCalculationInitialize } from "./use-calculation-initialize";
15
19
  import { useCalculationWorker } from "./use-calculation-worker";
20
+ import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
16
21
  import { useCellXfsRegistry } from "./use-cellxfs-registry";
17
22
  import { useCitations } from "./use-citations";
18
23
  import { useComments } from "./use-comments";
@@ -31,6 +36,7 @@ import { useOnChangeBatchStream } from "./use-on-change-batch-stream";
31
36
  import { useOnChangeDecimals } from "./use-on-change-decimals";
32
37
  import { useOnChangeFormatting } from "./use-on-change-formatting";
33
38
  import { useOnChangeSheetTabcolor } from "./use-on-change-sheet-tabcolor";
39
+ import { useOnChangeTableColumn } from "./use-on-change-table-column";
34
40
  import { useOnChangeTheme } from "./use-on-change-theme";
35
41
  import { useOnClearFormatting } from "./use-on-clear-formatting";
36
42
  import { useOnCollapseColumnGroup } from "./use-on-collapse-column-group";
@@ -49,6 +55,7 @@ import { useOnDeleteTableRow } from "./use-on-delete-table-row";
49
55
  import { useOnDragnDrop } from "./use-on-drag-n-drop";
50
56
  import { useOnDuplicateSheet } from "./use-on-duplicate-sheet";
51
57
  import { useOnEmbeds } from "./use-on-embeds";
58
+ import { useSparklineGroups } from "./use-sparkline-groups";
52
59
  import { useOnExpandColumnGroup } from "./use-on-expand-column-group";
53
60
  import { useOnExpandRowGroup } from "./use-on-expand-row-group";
54
61
  import { useOnFill } from "./use-on-fill";
@@ -83,22 +90,22 @@ import { useOnMergeUnMergeCells } from "./use-on-merge-unmerge-cells";
83
90
  import { useOnMoveColumns } from "./use-on-move-columns";
84
91
  import { useOnMoveRows } from "./use-on-move-rows";
85
92
  import { useOnMoveSelection } from "./use-on-move-selection";
86
- import { planInsertCutCells } from "../api/insert-cut-cells";
87
- import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
88
- import { useShowError } from "../atoms/error-state.atom";
89
- import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
90
93
  import { useOnMoveSheet } from "./use-on-move-sheet";
91
94
  import { useOnPaste } from "./use-on-paste";
95
+ import { useOnCreateCustomTableStyle } from "./use-on-create-custom-table-style";
92
96
  import { useOnProtectRange } from "./use-on-protect-range";
93
97
  import { useOnProtectSheet } from "./use-on-protect-sheet";
94
98
  import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
95
99
  import { useOnRenameSheet } from "./use-on-rename-sheet";
96
100
  import { useOnRequestCalculateWrapper } from "./use-on-request-calculate-wrapper";
97
101
  import { useOnRequestConditionalFormat } from "./use-on-request-conditional-format";
102
+ import { useOnRequestCreateTable } from "./use-on-request-create-table";
98
103
  import { useOnRequestDataValidation } from "./use-on-request-data-validation";
99
104
  import { useOnRequestDefineNamedRange } from "./use-on-request-define-named-range";
100
105
  import { useOnRequestDeleteSheet } from "./use-on-request-delete-sheet";
101
106
  import { useOnRequestEditTable } from "./use-on-request-edit-table";
107
+ import { useOnRequestInsertSlicer } from "./use-on-request-insert-slicer";
108
+ import { useOnRequestResizeTable } from "./use-on-request-resize-table";
102
109
  import { useOnRequestFormatCells } from "./use-on-request-format-cells";
103
110
  import { useOnRequestInsertImage } from "./use-on-request-insert-image";
104
111
  import { useOnRequestInsertLink } from "./use-on-request-insert-link";
@@ -106,6 +113,9 @@ import { useOnRequestResize } from "./use-on-request-resize";
106
113
  import { useOnRequestUpdateNamedRange } from "./use-on-request-update-named-range";
107
114
  import { useOnResize } from "./use-on-resize";
108
115
  import { useOnResizeTable } from "./use-on-resize-table";
116
+ import { useOnUndoTableAutoExpansion } from "./use-on-undo-table-auto-expansion";
117
+ import { useOnUndoCalculatedColumn } from "./use-on-undo-calculated-column";
118
+ import { useOnChangeCalculatedColumn } from "./use-on-change-calculated-column";
109
119
  import { useOnSetOutlineDepth } from "./use-on-set-outline-depth";
110
120
  import { useOnShowColumn } from "./use-on-show-column";
111
121
  import { useOnShowRow } from "./use-on-show-row";
@@ -158,13 +168,20 @@ export const deriveBuiltInTableBanding = (table) => {
158
168
  return undefined;
159
169
  }
160
170
  if (!showRowStripes && banded.rowProperties) {
161
- const { headerColor, headerBorder, totalRowColor, totalRowBorder } = banded.rowProperties;
162
- if (headerColor || headerBorder || totalRowColor || totalRowBorder) {
171
+ const { headerColor, headerBorder, totalRowColor, totalRowBorder, firstColumnColor, lastColumnColor, } = banded.rowProperties;
172
+ if (headerColor ||
173
+ headerBorder ||
174
+ totalRowColor ||
175
+ totalRowBorder ||
176
+ firstColumnColor ||
177
+ lastColumnColor) {
163
178
  banded.rowProperties = {
164
179
  headerColor,
165
180
  headerBorder,
166
181
  totalRowColor,
167
182
  totalRowBorder,
183
+ firstColumnColor,
184
+ lastColumnColor,
168
185
  };
169
186
  }
170
187
  else {
@@ -179,6 +196,15 @@ export const deriveBuiltInTableBanding = (table) => {
179
196
  }
180
197
  return banded;
181
198
  };
199
+ /**
200
+ * `table` as the gallery's hovered style would leave it: the preview's theme and banding replace
201
+ * the table's own (a preview with neither paints it unstyled — the "None" style).
202
+ */
203
+ export const previewTableStyle = (table, preview) => ({
204
+ ...table,
205
+ theme: preview.theme ?? undefined,
206
+ bandedRange: preview.bandedRange ?? undefined,
207
+ });
182
208
  /**
183
209
  * Use Spreadsheet Hook
184
210
  * @param param0
@@ -210,7 +236,7 @@ onChangeHistory,
210
236
  // Semantic command stream
211
237
  onCommand: onCommandProp,
212
238
  // Theme
213
- onChangeTheme, namedCellStyles, onChangeNamedCellStyles,
239
+ onChangeTheme, namedCellStyles, onChangeNamedCellStyles, customTableStyles, onChangeCustomTableStyles,
214
240
  // error handler
215
241
  onError,
216
242
  // Get auto fill values
@@ -227,7 +253,7 @@ colorMode,
227
253
  // on-demand
228
254
  fonts,
229
255
  // Drag and drop
230
- enableDragnDrop = true,
256
+ enableDragnDrop = true, autoExpandTables = true, autoCalculatedColumns = true,
231
257
  // Enable undo/redo functionality
232
258
  enabledUndoRedo = true,
233
259
  // Current locale
@@ -372,17 +398,28 @@ sanitizeHtml, }) => {
372
398
  * built-in table styles persist only the name, and the grid paints tables
373
399
  * exclusively from bandedRange, so without the fallback they render unstyled.
374
400
  */
401
+ const [tableStylePreview, setTableStylePreview] = useState(null);
402
+ // The gallery's hovered style paints over the table's own while the pointer rests on the
403
+ // swatch — UI state only, never written to the table or its history.
404
+ const onPreviewTableStyle = useCallback((preview) => setTableStylePreview(preview), []);
375
405
  const bandedRanges = useMemo(() => {
376
406
  return tables
377
407
  ?.filter(({ sheetId }) => sheetId === activeSheetId)
378
408
  .map((table) => {
379
- const banded = table.bandedRange ??
380
- deriveBuiltInTableBanding(table);
409
+ const previewed = tableStylePreview?.sheetId === table.sheetId &&
410
+ tableStylePreview.tableId === table.id
411
+ ? previewTableStyle(table, tableStylePreview)
412
+ : table;
413
+ const banded = previewed.bandedRange ??
414
+ deriveBuiltInTableBanding(previewed);
381
415
  if (isNil(banded)) {
382
416
  return undefined;
383
417
  }
384
418
  return {
385
- bandedRangeId: `${table.id}-${table.theme}`,
419
+ bandedRangeId: `${table.id}-${previewed.theme}`,
420
+ showFirstColumn: table.showFirstColumn,
421
+ showLastColumn: table.showLastColumn,
422
+ totalRow: table.totalRow ?? false,
386
423
  // Add sheet Id to range
387
424
  range: {
388
425
  ...table.range,
@@ -392,7 +429,7 @@ sanitizeHtml, }) => {
392
429
  };
393
430
  })
394
431
  .filter((band) => !isNil(band));
395
- }, [tables, activeSheetId]);
432
+ }, [tables, activeSheetId, tableStylePreview]);
396
433
  const getCellDimensions = useGetCellDimensions();
397
434
  const getCurrentRowHeight = useGetRowHeight();
398
435
  const getContentfulRangeAroundCell = useGetContentfulRangeAroundCell();
@@ -404,7 +441,7 @@ sanitizeHtml, }) => {
404
441
  const getPrecedentsRef = useRef(undefined);
405
442
  const getPrecedentsForward = useCallback((cell) => getPrecedentsRef.current?.(cell) ?? [], []);
406
443
  // Sheet properties
407
- const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getFormulaValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getRowOutlineLevel, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
444
+ const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getFormulaValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, isManuallyHiddenRow, getRowOutlineLevel, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
408
445
  getEffectiveStructuredValue,
409
446
  conditionalFormats,
410
447
  sheetData,
@@ -600,6 +637,7 @@ sanitizeHtml, }) => {
600
637
  onChangeConditionalFormats,
601
638
  onChangeDataValidations,
602
639
  onChangeProtectedRanges,
640
+ onChangeCustomTableStyles,
603
641
  onChangePivotTables,
604
642
  onChangeCellXfs,
605
643
  onChangeTheme,
@@ -610,7 +648,7 @@ sanitizeHtml, }) => {
610
648
  clearRangeCache,
611
649
  });
612
650
  // Undo manager
613
- const { createHistory, createHistoryWithoutPointer, onRedo, onUndo, canUndo, canRedo, onClearHistory, } = useUndoRedo({
651
+ const { createHistory, createHistoryWithoutPointer, batchHistory, onRedo, onUndo, canUndo, canRedo, onClearHistory, } = useUndoRedo({
614
652
  isEnabled: enabledUndoRedo,
615
653
  onUndoAction,
616
654
  onRedoAction,
@@ -647,6 +685,14 @@ sanitizeHtml, }) => {
647
685
  createHistory,
648
686
  onChangeSheetData,
649
687
  onChangeSheets,
688
+ onChangeCharts,
689
+ onChangeEmbeds,
690
+ onChangeSlicers,
691
+ onChangeTables,
692
+ onChangeConditionalFormats,
693
+ onChangeDataValidations,
694
+ onChangeNamedRanges,
695
+ onChangeProtectedRanges,
650
696
  onChangeActiveSheet,
651
697
  enqueueGraphOperation,
652
698
  onCommand,
@@ -820,16 +866,22 @@ sanitizeHtml, }) => {
820
866
  isMergedCell,
821
867
  onChangeSheetData,
822
868
  onChangeTables,
869
+ onChangeCharts,
823
870
  onChangeSheets,
824
871
  enqueueCalculation,
825
872
  enqueueGraphOperation,
826
873
  createHistory,
874
+ batchHistory,
875
+ autoExpandTables,
876
+ autoCalculatedColumns,
827
877
  getDependents,
878
+ getGraphNodes,
828
879
  getUserEnteredValue: getUserEnteredValueStable,
829
880
  getTextFormatRuns,
830
881
  getSheetName,
831
882
  onCommand,
832
883
  generatedNames,
884
+ onRequestCalculate: onRequestCalculateWithoutFormatting,
833
885
  });
834
886
  // onChange batch
835
887
  const onChangeBatch = useOnChangeBatch({
@@ -845,12 +897,16 @@ sanitizeHtml, }) => {
845
897
  onChangeSheetData,
846
898
  onChangeSheets,
847
899
  onChangeTables,
900
+ onChangeCharts,
848
901
  getFormattedValue,
849
902
  getCellDimensions,
850
903
  getRowHeight: getCurrentRowHeight,
851
904
  isMergedCell,
852
905
  tables,
853
906
  createHistory,
907
+ batchHistory,
908
+ autoExpandTables,
909
+ autoCalculatedColumns,
854
910
  onChangeCitations,
855
911
  onCommand,
856
912
  generatedNames,
@@ -874,8 +930,17 @@ sanitizeHtml, }) => {
874
930
  onChangeActiveCell,
875
931
  isArrayFormula,
876
932
  getRowHeight: getCurrentRowHeight,
933
+ tables,
934
+ generatedNames,
877
935
  onCommand,
878
936
  });
937
+ // Excel sparkline groups (runs of =SPARKLINE() cells sharing one option set)
938
+ const { getSparklineGroup, getSparklineAt, onCreateSparklineGroup, onUpdateSparklineGroup, onDeleteSparklineGroup, onClearSparklines, onGroupSparklines, } = useSparklineGroups({
939
+ onChangeBatch,
940
+ onDelete,
941
+ batchHistory,
942
+ getUserEnteredValue: getUserEnteredValueStable,
943
+ });
879
944
  // Formatting change
880
945
  const { onChangeFormatting, onChangeBorder, onRepeatFormatting } = useOnChangeFormatting({
881
946
  locale,
@@ -895,6 +960,7 @@ sanitizeHtml, }) => {
895
960
  const { onMergeCells, onUnMergeCells } = useOnMergeUnMergeCells({
896
961
  locale,
897
962
  merges,
963
+ tables,
898
964
  cellXfsRegistry,
899
965
  sharedStringRegistry,
900
966
  onChangeSelections,
@@ -919,6 +985,9 @@ sanitizeHtml, }) => {
919
985
  continue;
920
986
  bands.push({
921
987
  bandedRangeId: `${table.id}-${table.theme}`,
988
+ showFirstColumn: table.showFirstColumn,
989
+ showLastColumn: table.showLastColumn,
990
+ totalRow: table.totalRow ?? false,
922
991
  range: { ...table.range, sheetId },
923
992
  ...banded,
924
993
  });
@@ -1014,6 +1083,21 @@ sanitizeHtml, }) => {
1014
1083
  // `onMergeCells` clears the selection; the filled range stays selected like Excel.
1015
1084
  onChangeSelections?.(sheetId, [{ range: selectRange }]);
1016
1085
  }, [onUnMergeCells, onMergeCells, onChangeSelections]);
1086
+ // The expansion the fill handle triggers when dragged past a table's edge (T-11).
1087
+ const onFillChangeTableColumn = useOnChangeTableColumn({
1088
+ locale,
1089
+ cellXfsRegistry,
1090
+ sharedStringRegistry,
1091
+ onChangeSheetData,
1092
+ onChangeTables,
1093
+ getDependents,
1094
+ enqueueCalculation: enqueueGraphOperation,
1095
+ enqueueGraphOperation,
1096
+ createHistory,
1097
+ onCommand,
1098
+ generatedNames,
1099
+ tables,
1100
+ });
1017
1101
  const onFill = useOnFill({
1018
1102
  locale,
1019
1103
  cellXfsRegistry,
@@ -1032,6 +1116,11 @@ sanitizeHtml, }) => {
1032
1116
  onCommand,
1033
1117
  getMerges: getPaintMerges,
1034
1118
  onFillMerges,
1119
+ tables,
1120
+ getUserEnteredValue: getUserEnteredValueStable,
1121
+ onChangeTableColumn: onFillChangeTableColumn,
1122
+ batchHistory,
1123
+ autoExpandTables,
1035
1124
  });
1036
1125
  // Delete row
1037
1126
  const onDeleteRow = useOnDeleteRow({
@@ -1060,6 +1149,7 @@ sanitizeHtml, }) => {
1060
1149
  onChangePivotTables,
1061
1150
  onChangeNamedRanges,
1062
1151
  onChangeEmbeds,
1152
+ onChangeSlicers,
1063
1153
  onChangeCharts,
1064
1154
  onChangeProtectedRanges,
1065
1155
  getSheetName,
@@ -1094,6 +1184,7 @@ sanitizeHtml, }) => {
1094
1184
  onChangePivotTables,
1095
1185
  onChangeNamedRanges,
1096
1186
  onChangeEmbeds,
1187
+ onChangeSlicers,
1097
1188
  onChangeCharts,
1098
1189
  onChangeProtectedRanges,
1099
1190
  getSheetName,
@@ -1120,6 +1211,7 @@ sanitizeHtml, }) => {
1120
1211
  onChangeSheetData,
1121
1212
  onChangeTables,
1122
1213
  onChangeCitations,
1214
+ onChangeCharts,
1123
1215
  onCommand,
1124
1216
  sheetData,
1125
1217
  sheets,
@@ -1144,6 +1236,7 @@ sanitizeHtml, }) => {
1144
1236
  onChangeSheetData,
1145
1237
  onChangeTables,
1146
1238
  onChangeCitations,
1239
+ onChangeCharts,
1147
1240
  onCommand,
1148
1241
  sheetData,
1149
1242
  sheets,
@@ -1168,6 +1261,7 @@ sanitizeHtml, }) => {
1168
1261
  onChangeSheetData,
1169
1262
  onChangeTables,
1170
1263
  onChangeCitations,
1264
+ onChangeCharts,
1171
1265
  onCommand,
1172
1266
  sheetData,
1173
1267
  sheets,
@@ -1192,6 +1286,7 @@ sanitizeHtml, }) => {
1192
1286
  onChangeSheetData,
1193
1287
  onChangeTables,
1194
1288
  onChangeCitations,
1289
+ onChangeCharts,
1195
1290
  onCommand,
1196
1291
  sheetData,
1197
1292
  sheets,
@@ -1222,6 +1317,7 @@ sanitizeHtml, }) => {
1222
1317
  onChangePivotTables,
1223
1318
  onChangeNamedRanges,
1224
1319
  onChangeEmbeds,
1320
+ onChangeSlicers,
1225
1321
  onChangeCharts,
1226
1322
  onChangeProtectedRanges,
1227
1323
  onChangeTables,
@@ -1254,6 +1350,7 @@ sanitizeHtml, }) => {
1254
1350
  onChangePivotTables,
1255
1351
  onChangeNamedRanges,
1256
1352
  onChangeEmbeds,
1353
+ onChangeSlicers,
1257
1354
  onChangeCharts,
1258
1355
  onChangeProtectedRanges,
1259
1356
  getActiveCell,
@@ -1277,6 +1374,7 @@ sanitizeHtml, }) => {
1277
1374
  onChangeSheetData,
1278
1375
  onChangeConditionalFormats,
1279
1376
  onChangeDataValidations,
1377
+ onChangeCharts,
1280
1378
  getDependents,
1281
1379
  getDataRowCount,
1282
1380
  onCommand,
@@ -1295,6 +1393,7 @@ sanitizeHtml, }) => {
1295
1393
  onChangeSheetData,
1296
1394
  onChangeTables,
1297
1395
  onChangeNamedRanges,
1396
+ onChangeCharts,
1298
1397
  onChangeConditionalFormats,
1299
1398
  onChangeDataValidations,
1300
1399
  getDependents,
@@ -1314,6 +1413,7 @@ sanitizeHtml, }) => {
1314
1413
  onChangeSheets,
1315
1414
  onChangeTables,
1316
1415
  onChangeNamedRanges,
1416
+ onChangeCharts,
1317
1417
  onChangeDataValidations,
1318
1418
  onChangeConditionalFormats,
1319
1419
  onChangePivotTables,
@@ -1331,7 +1431,7 @@ sanitizeHtml, }) => {
1331
1431
  // opening, close the gap it left — so Shift+drag A5 to A2 over r1..r6 gives r1 r5 r2 r3 r4 r6 and
1332
1432
  // a forward move lands before Excel's pre-removal reference row. The refusals are decided up
1333
1433
  // front — a merge the block or a shifted band covers only partially, a protected range — so a
1334
- // refused move never leaves the band opened. Each step records its own undo entry.
1434
+ // refused move never leaves the band opened. The three steps record ONE undo entry.
1335
1435
  const showError = useShowError();
1336
1436
  const canEditCellRange = useCanEditCellRange();
1337
1437
  const canPerformSheetAction = useCanPerformSheetAction();
@@ -1345,6 +1445,17 @@ sanitizeHtml, }) => {
1345
1445
  showError({ message: MERGED_CELL_MOVE_ERROR });
1346
1446
  return;
1347
1447
  }
1448
+ // A block covering part of a table never moves (T-46) — refused before the band opens.
1449
+ const tableRefusal = getMoveRangeRefusal({
1450
+ sheetId,
1451
+ from: from.range,
1452
+ to: to.range,
1453
+ tables,
1454
+ });
1455
+ if (tableRefusal) {
1456
+ showError({ title: tableRefusal.title, message: tableRefusal.message });
1457
+ return;
1458
+ }
1348
1459
  const vertical = plan.shift === "down";
1349
1460
  if (!canEditCellRange(sheetId, from.range) ||
1350
1461
  !canEditCellRange(sheetId, to.range) ||
@@ -1360,28 +1471,31 @@ sanitizeHtml, }) => {
1360
1471
  rowIndex: to.range.startRowIndex,
1361
1472
  columnIndex: to.range.startColumnIndex,
1362
1473
  };
1363
- if (vertical) {
1364
- onInsertCellsShiftDown(sheetId, target, [to]);
1365
- }
1366
- else {
1367
- onInsertCellsShiftRight(sheetId, target, [to]);
1368
- }
1369
1474
  const source = {
1370
1475
  ...from,
1371
1476
  range: plan.shiftedSource,
1372
1477
  };
1373
- onMoveSelection(sheetId, source, to);
1374
1478
  const vacated = {
1375
1479
  rowIndex: plan.shiftedSource.startRowIndex,
1376
1480
  columnIndex: plan.shiftedSource.startColumnIndex,
1377
1481
  };
1378
- if (vertical) {
1379
- onDeleteCellsShiftUp(sheetId, vacated, [source]);
1380
- }
1381
- else {
1382
- onDeleteCellsShiftLeft(sheetId, vacated, [source]);
1383
- }
1482
+ batchHistory(() => {
1483
+ if (vertical) {
1484
+ onInsertCellsShiftDown(sheetId, target, [to]);
1485
+ }
1486
+ else {
1487
+ onInsertCellsShiftRight(sheetId, target, [to]);
1488
+ }
1489
+ onMoveSelection(sheetId, source, to);
1490
+ if (vertical) {
1491
+ onDeleteCellsShiftUp(sheetId, vacated, [source]);
1492
+ }
1493
+ else {
1494
+ onDeleteCellsShiftLeft(sheetId, vacated, [source]);
1495
+ }
1496
+ });
1384
1497
  }, [
1498
+ batchHistory,
1385
1499
  getPaintMerges,
1386
1500
  showError,
1387
1501
  canEditCellRange,
@@ -1399,11 +1513,15 @@ sanitizeHtml, }) => {
1399
1513
  locale,
1400
1514
  sharedStringRegistry,
1401
1515
  onChangeSheetData,
1516
+ onChangeSheets,
1402
1517
  enqueueCalculation,
1403
1518
  enqueueStructureChange,
1404
1519
  enqueueGraphOperation,
1405
1520
  createHistory,
1521
+ getCellData,
1522
+ getDataRowCount,
1406
1523
  isHiddenRow,
1524
+ isManuallyHiddenRow,
1407
1525
  getDependents,
1408
1526
  getFrozenRowCount,
1409
1527
  getSheetName,
@@ -1419,12 +1537,14 @@ sanitizeHtml, }) => {
1419
1537
  enqueueGraphOperation,
1420
1538
  enqueueCalculation,
1421
1539
  enqueueStructureChange,
1540
+ getCellData,
1422
1541
  getDependents,
1423
1542
  createHistory,
1424
1543
  onChangeTables,
1425
1544
  onChangeSheets,
1426
1545
  getActiveCell,
1427
1546
  isHiddenRow,
1547
+ isManuallyHiddenRow,
1428
1548
  getFrozenRowCount,
1429
1549
  getSheetName,
1430
1550
  getEffectiveFormat,
@@ -1453,18 +1573,64 @@ sanitizeHtml, }) => {
1453
1573
  columnCount,
1454
1574
  locale,
1455
1575
  tables,
1576
+ merges,
1456
1577
  basicFilter,
1457
1578
  getActiveCell,
1458
1579
  createHistory,
1459
1580
  onChangeTables,
1460
1581
  onChangeSheetData,
1582
+ onChangeCharts,
1461
1583
  enqueueCalculation,
1462
1584
  enqueueGraphOperation,
1463
1585
  getFormattedValue,
1464
1586
  getDependents,
1587
+ getSheetName,
1465
1588
  onCommand,
1466
1589
  generatedNames,
1467
1590
  });
1591
+ // The AutoCorrect smart tag's "Undo Table AutoExpansion"
1592
+ const onUndoTableAutoExpansion = useOnUndoTableAutoExpansion({
1593
+ locale,
1594
+ cellXfsRegistry,
1595
+ tables,
1596
+ createHistory,
1597
+ batchHistory,
1598
+ onResizeTable,
1599
+ onChangeSheetData,
1600
+ enqueueCalculation,
1601
+ onCommand,
1602
+ });
1603
+ // The AutoCorrect smart tag's "Undo Calculated Column" / "Overwrite all cells in this column
1604
+ // with this formula"
1605
+ const onUndoCalculatedColumn = useOnUndoCalculatedColumn({
1606
+ tables,
1607
+ createHistory,
1608
+ batchHistory,
1609
+ onChangeSheetData,
1610
+ onChangeTables,
1611
+ enqueueCalculation,
1612
+ onCommand,
1613
+ });
1614
+ const onFillCalculatedColumn = useOnChangeCalculatedColumn({
1615
+ locale,
1616
+ cellXfsRegistry,
1617
+ sharedStringRegistry,
1618
+ onChangeTables,
1619
+ onChangeSheetData,
1620
+ getUserEnteredValue: getUserEnteredValueStable,
1621
+ getSheetName,
1622
+ createHistory,
1623
+ enqueueCalculation,
1624
+ onCommand,
1625
+ });
1626
+ const onOverwriteCalculatedColumn = useCallback((fill) => {
1627
+ const table = tables?.find((candidate) => candidate.id === fill.tableId && candidate.sheetId === fill.sheetId);
1628
+ if (!table)
1629
+ return;
1630
+ batchHistory(() => {
1631
+ onFillCalculatedColumn(fill.sheetId, fill.anchor, fill.formula, table, { force: true });
1632
+ });
1633
+ }, [tables, batchHistory, onFillCalculatedColumn]);
1468
1634
  // Copy
1469
1635
  const onCopy = useOnCopy({
1470
1636
  theme,
@@ -1488,6 +1654,7 @@ sanitizeHtml, }) => {
1488
1654
  locale,
1489
1655
  sheetData,
1490
1656
  onChangeNamedRanges,
1657
+ onChangeCharts,
1491
1658
  getSheetMerges: getPaintMerges,
1492
1659
  getDataValidationById,
1493
1660
  preserveFormatting: preserveFormattingOnPaste,
@@ -1506,6 +1673,9 @@ sanitizeHtml, }) => {
1506
1673
  enqueueStructureChange,
1507
1674
  enqueueGraphOperation,
1508
1675
  createHistory,
1676
+ batchHistory,
1677
+ autoExpandTables,
1678
+ autoCalculatedColumns,
1509
1679
  onChangeSheetData,
1510
1680
  onChangeSheets,
1511
1681
  onChangeSelections,
@@ -1527,7 +1697,15 @@ sanitizeHtml, }) => {
1527
1697
  rowCount,
1528
1698
  columnCount,
1529
1699
  tables,
1700
+ namedRanges,
1530
1701
  basicFilter,
1702
+ sheetData,
1703
+ sheets,
1704
+ batchHistory,
1705
+ getActiveCell,
1706
+ getSelections,
1707
+ onChangeCitations,
1708
+ onChangeCharts,
1531
1709
  cellXfsRegistry,
1532
1710
  sharedStringRegistry,
1533
1711
  theme,
@@ -1542,11 +1720,15 @@ sanitizeHtml, }) => {
1542
1720
  getEffectiveValue,
1543
1721
  onRequestCalculate,
1544
1722
  getDependents,
1723
+ getGraphNodes,
1724
+ getBandedCells: getPaintBandedCells,
1545
1725
  enqueueGraphOperation,
1546
1726
  getContentfulRangeAroundCell,
1547
1727
  getSheetName,
1548
1728
  onCommand,
1549
1729
  generatedNames,
1730
+ onChangeDataValidations,
1731
+ onChangeConditionalFormats,
1550
1732
  });
1551
1733
  // Insert table row
1552
1734
  const onInsertTableRow = useOnInsertTableRow({
@@ -1563,10 +1745,12 @@ sanitizeHtml, }) => {
1563
1745
  onChangeSheetData,
1564
1746
  onChangeSheets,
1565
1747
  onChangeTables,
1748
+ onChangeCharts,
1566
1749
  onChangeConditionalFormats,
1567
1750
  onChangeDataValidations,
1568
1751
  getSheetName,
1569
1752
  onCommand,
1753
+ tables,
1570
1754
  });
1571
1755
  // Delete table row
1572
1756
  const onDeleteTableRow = useOnDeleteTableRow({
@@ -1582,18 +1766,21 @@ sanitizeHtml, }) => {
1582
1766
  onChangeSheetData,
1583
1767
  onChangeSheets,
1584
1768
  onChangeTables,
1769
+ onChangeCharts,
1585
1770
  onChangeConditionalFormats,
1586
1771
  onChangeDataValidations,
1587
1772
  getSheetName,
1588
1773
  onCommand,
1774
+ tables,
1589
1775
  });
1590
1776
  // Fill range
1591
1777
  const onFillRange = useOnFillRange({
1592
1778
  onFill,
1593
1779
  });
1594
1780
  // Embeds
1595
- const { onDeleteEmbed, onMoveEmbed, onResizeEmbed, onCreateEmbed, onRequestEditEmbed, } = useOnEmbeds({
1781
+ const { onDeleteEmbed, onMoveEmbed, onResizeEmbed, onCreateEmbed, onUpdateEmbed, onRequestEditEmbed, onChangeZOrder, } = useOnEmbeds({
1596
1782
  onChangeEmbeds,
1783
+ onChangeCharts,
1597
1784
  createHistory,
1598
1785
  onCommand,
1599
1786
  });
@@ -1605,6 +1792,14 @@ sanitizeHtml, }) => {
1605
1792
  });
1606
1793
  // Show modal dialog for table editor
1607
1794
  const onRequestEditTable = useOnRequestEditTable();
1795
+ // Show the Resize Table dialog (Table Design → Resize Table)
1796
+ const onRequestResizeTable = useOnRequestResizeTable();
1797
+ // Show the Insert Slicers dialog (Table Design → Insert Slicer)
1798
+ const onRequestInsertSlicer = useOnRequestInsertSlicer();
1799
+ // Show the Create Table dialog (Ctrl+T / Insert → Table / Format as Table)
1800
+ const onRequestCreateTable = useOnRequestCreateTable({
1801
+ getEffectiveExtendedValue,
1802
+ });
1608
1803
  // Show modal dialog for table editor
1609
1804
  const onRequestDefineNamedRange = useOnRequestDefineNamedRange({
1610
1805
  namedRanges,
@@ -1614,6 +1809,7 @@ sanitizeHtml, }) => {
1614
1809
  // Update named range
1615
1810
  const onUpdateNamedRange = useOnUpdateNamedRange({
1616
1811
  locale,
1812
+ tables,
1617
1813
  getDependents,
1618
1814
  getActiveCell,
1619
1815
  enqueueCalculation,
@@ -1624,6 +1820,7 @@ sanitizeHtml, }) => {
1624
1820
  });
1625
1821
  // Update named range
1626
1822
  const onCreateNamedRange = useOnCreateNamedRange({
1823
+ tables,
1627
1824
  enqueueCalculation,
1628
1825
  createHistory,
1629
1826
  onChangeNamedRanges,
@@ -1703,8 +1900,11 @@ sanitizeHtml, }) => {
1703
1900
  enqueueStructureChange,
1704
1901
  enqueueGraphOperation,
1705
1902
  onChangeSheetData,
1903
+ onChangeSheets,
1904
+ getCellData,
1706
1905
  getDependents,
1707
1906
  isHiddenRow,
1907
+ isManuallyHiddenRow,
1708
1908
  getFrozenRowCount,
1709
1909
  getSheetName,
1710
1910
  getEffectiveFormat,
@@ -1717,6 +1917,12 @@ sanitizeHtml, }) => {
1717
1917
  onChangeProtectedRanges,
1718
1918
  onCommand,
1719
1919
  });
1920
+ // Custom table styles (Excel's New Table Style)
1921
+ const onCreateCustomTableStyle = useOnCreateCustomTableStyle({
1922
+ createHistory,
1923
+ onChangeCustomTableStyles,
1924
+ onCommand,
1925
+ });
1720
1926
  // Indent
1721
1927
  const { onIncreaseIndent, onDecreaseIndent, onChangeIndent } = useIndent({
1722
1928
  locale,
@@ -1833,6 +2039,7 @@ sanitizeHtml, }) => {
1833
2039
  onCreateDataValidationRule,
1834
2040
  onChangeTheme,
1835
2041
  onChangeNamedCellStyles,
2042
+ onChangeCustomTableStyles,
1836
2043
  onClearHistory,
1837
2044
  evaluateConditionalFormatting,
1838
2045
  evaluateDataValidations,
@@ -1913,11 +2120,13 @@ sanitizeHtml, }) => {
1913
2120
  createHistory,
1914
2121
  enqueueCalculation,
1915
2122
  onChangeSheetData,
2123
+ onChangeTables,
1916
2124
  locale,
1917
2125
  cellXfsRegistry,
1918
2126
  sharedStringRegistry,
1919
2127
  getFormattedValue,
1920
2128
  onCommand,
2129
+ tables,
1921
2130
  });
1922
2131
  // Goal Seek — scratch-evaluates through the calculator, commits via onChange
1923
2132
  const onGoalSeek = useOnGoalSeek({
@@ -1938,6 +2147,7 @@ sanitizeHtml, }) => {
1938
2147
  onChangeBatch,
1939
2148
  onGroupRows,
1940
2149
  onUngroupRows,
2150
+ batchHistory,
1941
2151
  });
1942
2152
  // Data → Advanced filter (criteria range) over the hide/show/write callbacks
1943
2153
  const onAdvancedFilter = useOnAdvancedFilter({
@@ -1967,6 +2177,8 @@ sanitizeHtml, }) => {
1967
2177
  });
1968
2178
  return {
1969
2179
  namedCellStyles,
2180
+ customTableStyles,
2181
+ onCreateCustomTableStyle,
1970
2182
  activeCellBySheetId,
1971
2183
  selectionsBySheetId,
1972
2184
  activeCell,
@@ -1983,6 +2195,7 @@ sanitizeHtml, }) => {
1983
2195
  columnMetadata,
1984
2196
  merges,
1985
2197
  bandedRanges,
2198
+ onPreviewTableStyle,
1986
2199
  basicFilter,
1987
2200
  spreadsheetColors,
1988
2201
  isDarkMode,
@@ -2009,6 +2222,7 @@ sanitizeHtml, }) => {
2009
2222
  getUserEnteredValue,
2010
2223
  getFormattedValue,
2011
2224
  createHistory,
2225
+ batchHistory,
2012
2226
  onRequestCalculate,
2013
2227
  enqueueCalculation,
2014
2228
  enqueueGraphOperation,
@@ -2069,13 +2283,22 @@ sanitizeHtml, }) => {
2069
2283
  onResizeEmbed,
2070
2284
  onDeleteEmbed,
2071
2285
  onCreateEmbed,
2286
+ onUpdateEmbed,
2072
2287
  onRequestEditEmbed,
2288
+ onChangeZOrder,
2073
2289
  onMoveSlicer,
2074
2290
  onResizeSlicer,
2075
2291
  onDeleteSlicer,
2076
2292
  onCreateSlicer,
2077
2293
  onUpdateSlicer,
2078
2294
  onRequestEditSlicer,
2295
+ getSparklineGroup,
2296
+ getSparklineAt,
2297
+ onCreateSparklineGroup,
2298
+ onUpdateSparklineGroup,
2299
+ onDeleteSparklineGroup,
2300
+ onClearSparklines,
2301
+ onGroupSparklines,
2079
2302
  onDeleteRow,
2080
2303
  onDeleteColumn,
2081
2304
  onDeleteCellsShiftUp,
@@ -2093,6 +2316,9 @@ sanitizeHtml, }) => {
2093
2316
  onFilterTable,
2094
2317
  onDeleteFilter,
2095
2318
  onResizeTable,
2319
+ onUndoTableAutoExpansion,
2320
+ onUndoCalculatedColumn,
2321
+ onOverwriteCalculatedColumn,
2096
2322
  onInsertTableColumn,
2097
2323
  onInsertTableRow,
2098
2324
  onDeleteTableColumn,
@@ -2101,8 +2327,11 @@ sanitizeHtml, }) => {
2101
2327
  onPaste,
2102
2328
  onCreateBasicFilter,
2103
2329
  onCreateTable,
2330
+ onRequestCreateTable,
2104
2331
  onRemoveTable,
2105
2332
  onRequestEditTable,
2333
+ onRequestResizeTable,
2334
+ onRequestInsertSlicer,
2106
2335
  onUpdateTable,
2107
2336
  onRequestDefineNamedRange,
2108
2337
  onRequestUpdateNamedRange,