@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
@@ -7,13 +7,18 @@ import { getBandedCells } from "@rowsncolumns/spreadsheet";
7
7
  import { defaultSpreadsheetTheme, useCallbackRef, useSpreadsheetTheme, } from "@rowsncolumns/spreadsheet";
8
8
  import { findMatchingBandProperty, getCurrentLocale, getFormulaLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
9
9
  import { enableMapSet, enablePatches, setUseStrictShallowCopy } from "immer";
10
- import { useCallback, useEffect, useMemo, useRef } from "react";
10
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { getAutoFillValues as defaultGetAutoFillValues } from "../api/fill";
12
+ import { planInsertCutCells } from "../api/insert-cut-cells";
13
+ import { getMoveRangeRefusal } from "../api/structural-guards";
14
+ import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
15
+ import { useShowError } from "../atoms/error-state.atom";
12
16
  import { getGeneratedSheetName } from "../generated-names";
13
17
  import { SheetCell } from "../sheet-cell";
14
18
  import { useCalculation } from "./use-calculation";
15
19
  import { useCalculationInitialize } from "./use-calculation-initialize";
16
20
  import { useCalculationWorker } from "./use-calculation-worker";
21
+ import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
17
22
  import { useCellXfsRegistry } from "./use-cellxfs-registry";
18
23
  import { useCitations } from "./use-citations";
19
24
  import { useComments } from "./use-comments";
@@ -32,6 +37,7 @@ import { useOnChangeBatchStream } from "./use-on-change-batch-stream";
32
37
  import { useOnChangeDecimals } from "./use-on-change-decimals";
33
38
  import { useOnChangeFormatting } from "./use-on-change-formatting";
34
39
  import { useOnChangeSheetTabcolor } from "./use-on-change-sheet-tabcolor";
40
+ import { useOnChangeTableColumn } from "./use-on-change-table-column";
35
41
  import { useOnChangeTheme } from "./use-on-change-theme";
36
42
  import { useOnClearFormatting } from "./use-on-clear-formatting";
37
43
  import { useOnCollapseColumnGroup } from "./use-on-collapse-column-group";
@@ -50,6 +56,7 @@ import { useOnDeleteTableRow } from "./use-on-delete-table-row";
50
56
  import { useOnDragnDrop } from "./use-on-drag-n-drop";
51
57
  import { useOnDuplicateSheet } from "./use-on-duplicate-sheet";
52
58
  import { useOnEmbeds } from "./use-on-embeds";
59
+ import { useSparklineGroups } from "./use-sparkline-groups";
53
60
  import { useOnExpandColumnGroup } from "./use-on-expand-column-group";
54
61
  import { useOnExpandRowGroup } from "./use-on-expand-row-group";
55
62
  import { useOnFill } from "./use-on-fill";
@@ -84,22 +91,22 @@ import { useOnMergeUnMergeCells } from "./use-on-merge-unmerge-cells";
84
91
  import { useOnMoveColumns } from "./use-on-move-columns";
85
92
  import { useOnMoveRows } from "./use-on-move-rows";
86
93
  import { useOnMoveSelection } from "./use-on-move-selection";
87
- import { planInsertCutCells } from "../api/insert-cut-cells";
88
- import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
89
- import { useShowError } from "../atoms/error-state.atom";
90
- import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
91
94
  import { useOnMoveSheet } from "./use-on-move-sheet";
92
95
  import { useOnPaste } from "./use-on-paste";
96
+ import { useOnCreateCustomTableStyle } from "./use-on-create-custom-table-style";
93
97
  import { useOnProtectRange } from "./use-on-protect-range";
94
98
  import { useOnProtectSheet } from "./use-on-protect-sheet";
95
99
  import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
96
100
  import { useOnRenameSheet } from "./use-on-rename-sheet";
97
101
  import { useOnRequestCalculateWrapper } from "./use-on-request-calculate-wrapper";
98
102
  import { useOnRequestConditionalFormat } from "./use-on-request-conditional-format";
103
+ import { useOnRequestCreateTable } from "./use-on-request-create-table";
99
104
  import { useOnRequestDataValidation } from "./use-on-request-data-validation";
100
105
  import { useOnRequestDefineNamedRange } from "./use-on-request-define-named-range";
101
106
  import { useOnRequestDeleteSheet } from "./use-on-request-delete-sheet";
102
107
  import { useOnRequestEditTable } from "./use-on-request-edit-table";
108
+ import { useOnRequestInsertSlicer } from "./use-on-request-insert-slicer";
109
+ import { useOnRequestResizeTable } from "./use-on-request-resize-table";
103
110
  import { useOnRequestFormatCells } from "./use-on-request-format-cells";
104
111
  import { useOnRequestInsertImage } from "./use-on-request-insert-image";
105
112
  import { useOnRequestInsertLink } from "./use-on-request-insert-link";
@@ -107,6 +114,9 @@ import { useOnRequestResize } from "./use-on-request-resize";
107
114
  import { useOnRequestUpdateNamedRange } from "./use-on-request-update-named-range";
108
115
  import { useOnResize } from "./use-on-resize";
109
116
  import { useOnResizeTable } from "./use-on-resize-table";
117
+ import { useOnUndoTableAutoExpansion } from "./use-on-undo-table-auto-expansion";
118
+ import { useOnUndoCalculatedColumn } from "./use-on-undo-calculated-column";
119
+ import { useOnChangeCalculatedColumn } from "./use-on-change-calculated-column";
110
120
  import { useOnSetOutlineDepth } from "./use-on-set-outline-depth";
111
121
  import { useOnShowColumn } from "./use-on-show-column";
112
122
  import { useOnShowRow } from "./use-on-show-row";
@@ -159,13 +169,20 @@ export var deriveBuiltInTableBanding = function (table) {
159
169
  return undefined;
160
170
  }
161
171
  if (!showRowStripes && banded.rowProperties) {
162
- var _a = banded.rowProperties, headerColor = _a.headerColor, headerBorder = _a.headerBorder, totalRowColor = _a.totalRowColor, totalRowBorder = _a.totalRowBorder;
163
- if (headerColor || headerBorder || totalRowColor || totalRowBorder) {
172
+ var _a = banded.rowProperties, headerColor = _a.headerColor, headerBorder = _a.headerBorder, totalRowColor = _a.totalRowColor, totalRowBorder = _a.totalRowBorder, firstColumnColor = _a.firstColumnColor, lastColumnColor = _a.lastColumnColor;
173
+ if (headerColor ||
174
+ headerBorder ||
175
+ totalRowColor ||
176
+ totalRowBorder ||
177
+ firstColumnColor ||
178
+ lastColumnColor) {
164
179
  banded.rowProperties = {
165
180
  headerColor: headerColor,
166
181
  headerBorder: headerBorder,
167
182
  totalRowColor: totalRowColor,
168
183
  totalRowBorder: totalRowBorder,
184
+ firstColumnColor: firstColumnColor,
185
+ lastColumnColor: lastColumnColor,
169
186
  };
170
187
  }
171
188
  else {
@@ -180,6 +197,14 @@ export var deriveBuiltInTableBanding = function (table) {
180
197
  }
181
198
  return banded;
182
199
  };
200
+ /**
201
+ * `table` as the gallery's hovered style would leave it: the preview's theme and banding replace
202
+ * the table's own (a preview with neither paints it unstyled — the "None" style).
203
+ */
204
+ export var previewTableStyle = function (table, preview) {
205
+ var _a, _b;
206
+ return (__assign(__assign({}, table), { theme: (_a = preview.theme) !== null && _a !== void 0 ? _a : undefined, bandedRange: (_b = preview.bandedRange) !== null && _b !== void 0 ? _b : undefined }));
207
+ };
183
208
  /**
184
209
  * Use Spreadsheet Hook
185
210
  * @param param0
@@ -214,7 +239,7 @@ export var useSpreadsheetState = function (_a) {
214
239
  // Semantic command stream
215
240
  onCommandProp = _a.onCommand,
216
241
  // Theme
217
- onChangeTheme = _a.onChangeTheme, namedCellStyles = _a.namedCellStyles, onChangeNamedCellStyles = _a.onChangeNamedCellStyles,
242
+ onChangeTheme = _a.onChangeTheme, namedCellStyles = _a.namedCellStyles, onChangeNamedCellStyles = _a.onChangeNamedCellStyles, customTableStyles = _a.customTableStyles, onChangeCustomTableStyles = _a.onChangeCustomTableStyles,
218
243
  // error handler
219
244
  onError = _a.onError,
220
245
  // Get auto fill values
@@ -237,23 +262,23 @@ export var useSpreadsheetState = function (_a) {
237
262
  // Drag and drop
238
263
  _f = _a.enableDragnDrop,
239
264
  // Drag and drop
240
- enableDragnDrop = _f === void 0 ? true : _f,
265
+ enableDragnDrop = _f === void 0 ? true : _f, _g = _a.autoExpandTables, autoExpandTables = _g === void 0 ? true : _g, _h = _a.autoCalculatedColumns, autoCalculatedColumns = _h === void 0 ? true : _h,
241
266
  // Enable undo/redo functionality
242
- _g = _a.enabledUndoRedo,
267
+ _j = _a.enabledUndoRedo,
243
268
  // Enable undo/redo functionality
244
- enabledUndoRedo = _g === void 0 ? true : _g,
269
+ enabledUndoRedo = _j === void 0 ? true : _j,
245
270
  // Current locale
246
- _h = _a.locale,
271
+ _k = _a.locale,
247
272
  // Current locale
248
- locale = _h === void 0 ? getCurrentLocale() : _h, formulaLocaleProp = _a.formulaLocale,
273
+ locale = _k === void 0 ? getCurrentLocale() : _k, formulaLocaleProp = _a.formulaLocale,
249
274
  // Templates for auto-generated names (sheets, tables, table columns)
250
- generatedNamesProp = _a.generatedNames, _j = _a.enableAtFormula, enableAtFormula = _j === void 0 ? false : _j,
275
+ generatedNamesProp = _a.generatedNames, _l = _a.enableAtFormula, enableAtFormula = _l === void 0 ? false : _l,
251
276
  // Preserve data formatting like color, font style on paste
252
277
  preserveFormattingOnPaste = _a.preserveFormattingOnPaste,
253
278
  // Trigger manual recalculation
254
- _k = _a.recalculateOnOpen,
279
+ _m = _a.recalculateOnOpen,
255
280
  // Trigger manual recalculation
256
- recalculateOnOpen = _k === void 0 ? false : _k,
281
+ recalculateOnOpen = _m === void 0 ? false : _m,
257
282
  // Protect formulas
258
283
  protectFormulas = _a.protectFormulas,
259
284
  // Max limits
@@ -275,9 +300,9 @@ export var useSpreadsheetState = function (_a) {
275
300
  // Create calculation worker
276
301
  createCalculationWorker = _a.createCalculationWorker,
277
302
  // Calculation mode
278
- _l = _a.calculationMode,
303
+ _o = _a.calculationMode,
279
304
  // Calculation mode
280
- calculationMode = _l === void 0 ? "single" : _l, iterativeCalculation = _a.iterativeCalculation, onIterativeCalculationEnabled = _a.onIterativeCalculationEnabled,
305
+ calculationMode = _o === void 0 ? "single" : _o, iterativeCalculation = _a.iterativeCalculation, onIterativeCalculationEnabled = _a.onIterativeCalculationEnabled,
281
306
  // Stream callbacks
282
307
  onStreamStart = _a.onStreamStart, onStreamProgress = _a.onStreamProgress, onStreamEnd = _a.onStreamEnd,
283
308
  // Custom modal functions
@@ -291,10 +316,10 @@ export var useSpreadsheetState = function (_a) {
291
316
  /**
292
317
  * Sheets
293
318
  */
294
- var _m = useSheetState({
319
+ var _p = useSheetState({
295
320
  sheets: sheets,
296
321
  onChangeSheets: onChangeSheets,
297
- }), activeSheetId = _m.activeSheetId, activeCell = _m.activeCell, selections = _m.selections, activeCellBySheetId = _m.activeCellBySheetId, selectionsBySheetId = _m.selectionsBySheetId, onChangeActiveCell = _m.onChangeActiveCell, onChangeActiveSheet = _m.onChangeActiveSheet, onChangeSelections = _m.onChangeSelections;
322
+ }), activeSheetId = _p.activeSheetId, activeCell = _p.activeCell, selections = _p.selections, activeCellBySheetId = _p.activeCellBySheetId, selectionsBySheetId = _p.selectionsBySheetId, onChangeActiveCell = _p.onChangeActiveCell, onChangeActiveSheet = _p.onChangeActiveSheet, onChangeSelections = _p.onChangeSelections;
298
323
  // Load default fonts
299
324
  useFonts(fonts);
300
325
  // Disable @ formula
@@ -309,11 +334,11 @@ export var useSpreadsheetState = function (_a) {
309
334
  // CellXfs CellFormat registry
310
335
  var cellXfsRegistry = useCellXfsRegistry(cellXfs, onChangeCellXfs);
311
336
  // Themes
312
- var _o = useSpreadsheetTheme({
337
+ var _q = useSpreadsheetTheme({
313
338
  theme: theme,
314
339
  darkThemeClassName: darkThemeClassName,
315
340
  colorMode: colorMode,
316
- }), isDarkMode = _o.isDarkMode, spreadsheetColors = __rest(_o, ["isDarkMode"]);
341
+ }), isDarkMode = _q.isDarkMode, spreadsheetColors = __rest(_q, ["isDarkMode"]);
317
342
  // Consumers commonly pass an inline `onCommand` (a fresh function every
318
343
  // render). Roughly 40 derived callbacks list `onCommand` in their
319
344
  // `useCallback` deps (onSplitTextToColumns, onChangeFormatting, onPaste, …),
@@ -354,7 +379,7 @@ export var useSpreadsheetState = function (_a) {
354
379
  // Get current active cell
355
380
  var getSelections = useCallbackRef(useCallback(function () { return selections; }, [selections]));
356
381
  // Extract row count and column count
357
- var _p = useMemo(function () {
382
+ var _r = useMemo(function () {
358
383
  var _a;
359
384
  var sheet = sheets.find(function (sheet) { return sheet.sheetId === activeSheetId; });
360
385
  // For collaboration mode
@@ -371,7 +396,7 @@ export var useSpreadsheetState = function (_a) {
371
396
  maxRowCount,
372
397
  maxColumnCount,
373
398
  generatedNames,
374
- ]), _q = _p.rowCount, _rowCount = _q === void 0 ? DEFAULT_ROW_COUNT : _q, _r = _p.columnCount, _columnCount = _r === void 0 ? DEFAULT_COLUMN_COUNT : _r, frozenColumnCount = _p.frozenColumnCount, frozenRowCount = _p.frozenRowCount, rowMetadata = _p.rowMetadata, columnMetadata = _p.columnMetadata, merges = _p.merges, showGridLines = _p.showGridLines, showRowColHeaders = _p.showRowColHeaders, zoomScale = _p.zoomScale, basicFilter = _p.basicFilter;
399
+ ]), _s = _r.rowCount, _rowCount = _s === void 0 ? DEFAULT_ROW_COUNT : _s, _t = _r.columnCount, _columnCount = _t === void 0 ? DEFAULT_COLUMN_COUNT : _t, frozenColumnCount = _r.frozenColumnCount, frozenRowCount = _r.frozenRowCount, rowMetadata = _r.rowMetadata, columnMetadata = _r.columnMetadata, merges = _r.merges, showGridLines = _r.showGridLines, showRowColHeaders = _r.showRowColHeaders, zoomScale = _r.zoomScale, basicFilter = _r.basicFilter;
375
400
  // Accept defaults
376
401
  var rowCount = _rowCount !== null && _rowCount !== void 0 ? _rowCount : DEFAULT_ROW_COUNT;
377
402
  var columnCount = _columnCount !== null && _columnCount !== void 0 ? _columnCount : DEFAULT_ROW_COUNT;
@@ -392,21 +417,29 @@ export var useSpreadsheetState = function (_a) {
392
417
  * built-in table styles persist only the name, and the grid paints tables
393
418
  * exclusively from bandedRange, so without the fallback they render unstyled.
394
419
  */
420
+ var _u = __read(useState(null), 2), tableStylePreview = _u[0], setTableStylePreview = _u[1];
421
+ // The gallery's hovered style paints over the table's own while the pointer rests on the
422
+ // swatch — UI state only, never written to the table or its history.
423
+ var onPreviewTableStyle = useCallback(function (preview) { return setTableStylePreview(preview); }, []);
395
424
  var bandedRanges = useMemo(function () {
396
425
  return tables === null || tables === void 0 ? void 0 : tables.filter(function (_a) {
397
426
  var sheetId = _a.sheetId;
398
427
  return sheetId === activeSheetId;
399
428
  }).map(function (table) {
400
- var _a;
401
- var banded = (_a = table.bandedRange) !== null && _a !== void 0 ? _a : deriveBuiltInTableBanding(table);
429
+ var _a, _b;
430
+ var previewed = (tableStylePreview === null || tableStylePreview === void 0 ? void 0 : tableStylePreview.sheetId) === table.sheetId &&
431
+ tableStylePreview.tableId === table.id
432
+ ? previewTableStyle(table, tableStylePreview)
433
+ : table;
434
+ var banded = (_a = previewed.bandedRange) !== null && _a !== void 0 ? _a : deriveBuiltInTableBanding(previewed);
402
435
  if (isNil(banded)) {
403
436
  return undefined;
404
437
  }
405
- return __assign({ bandedRangeId: "".concat(table.id, "-").concat(table.theme),
438
+ return __assign({ bandedRangeId: "".concat(table.id, "-").concat(previewed.theme), showFirstColumn: table.showFirstColumn, showLastColumn: table.showLastColumn, totalRow: (_b = table.totalRow) !== null && _b !== void 0 ? _b : false,
406
439
  // Add sheet Id to range
407
440
  range: __assign(__assign({}, table.range), { sheetId: activeSheetId }) }, banded);
408
441
  }).filter(function (band) { return !isNil(band); });
409
- }, [tables, activeSheetId]);
442
+ }, [tables, activeSheetId, tableStylePreview]);
410
443
  var getCellDimensions = useGetCellDimensions();
411
444
  var getCurrentRowHeight = useGetRowHeight();
412
445
  var getContentfulRangeAroundCell = useGetContentfulRangeAroundCell();
@@ -418,7 +451,7 @@ export var useSpreadsheetState = function (_a) {
418
451
  var getPrecedentsRef = useRef(undefined);
419
452
  var getPrecedentsForward = useCallback(function (cell) { var _a, _b; return (_b = (_a = getPrecedentsRef.current) === null || _a === void 0 ? void 0 : _a.call(getPrecedentsRef, cell)) !== null && _b !== void 0 ? _b : []; }, []);
420
453
  // Sheet properties
421
- var _s = useSheetProperties({
454
+ var _v = useSheetProperties({
422
455
  getEffectiveStructuredValue: getEffectiveStructuredValue,
423
456
  conditionalFormats: conditionalFormats,
424
457
  sheetData: sheetData,
@@ -432,13 +465,13 @@ export var useSpreadsheetState = function (_a) {
432
465
  sharedStrings: sharedStrings,
433
466
  locale: locale,
434
467
  getPrecedents: getPrecedentsForward,
435
- }), getDataRowCount = _s.getDataRowCount, getNonEmptyRowCount = _s.getNonEmptyRowCount, getNonEmptyColumnCount = _s.getNonEmptyColumnCount, getDataColumnCount = _s.getDataColumnCount, getSheetId = _s.getSheetId, getSheetName = _s.getSheetName, getSheetCount = _s.getSheetCount, getSheetIndex = _s.getSheetIndex, getSheetNames = _s.getSheetNames, getSheetProperties = _s.getSheetProperties, getCellData = _s.getCellData, getMentionsFromCell = _s.getMentionsFromCell, getTextFormatRuns = _s.getTextFormatRuns, getEffectiveValue = _s.getEffectiveValue, getEffectiveValueForCalculation = _s.getEffectiveValueForCalculation, getUserEnteredValue = _s.getUserEnteredValue, getUserEnteredValueStable = _s.getUserEnteredValueStable, getConditionalFormatFormula = _s.getConditionalFormatFormula, getDataValidationFormula = _s.getDataValidationFormula, getDataValidation = _s.getDataValidation, getDefaultHorizontalAlignment = _s.getDefaultHorizontalAlignment, getDataValidationById = _s.getDataValidationById, getActiveSheetId = _s.getActiveSheetId, getUserEnteredFormat = _s.getUserEnteredFormat, getEffectiveFormat = _s.getEffectiveFormat, getFormattedValue = _s.getFormattedValue, getFormulaValue = _s.getFormulaValue, getSeriesValuesFromRange = _s.getSeriesValuesFromRange, getFormattingFromRange = _s.getFormattingFromRange, getUserEnteredValuesFromRange = _s.getUserEnteredValuesFromRange, getFormulasFromRange = _s.getFormulasFromRange, getDomainValuesFromRange = _s.getDomainValuesFromRange, getColumnarDataFromRange = _s.getColumnarDataFromRange, isColumnHidden = _s.isColumnHidden, isHiddenRow = _s.isHiddenRow, isHiddenByFilterRow = _s.isHiddenByFilterRow, getRowOutlineLevel = _s.getRowOutlineLevel, getSheetRowCount = _s.getSheetRowCount, getSheetColumnCount = _s.getSheetColumnCount, getColumnWidth = _s.getColumnWidth, getRowHeight = _s.getRowHeight, getEffectiveExtendedValue = _s.getEffectiveExtendedValue, getUserEnteredExtendedValue = _s.getUserEnteredExtendedValue, getFrozenRowCount = _s.getFrozenRowCount, getErrorValue = _s.getErrorValue;
468
+ }), getDataRowCount = _v.getDataRowCount, getNonEmptyRowCount = _v.getNonEmptyRowCount, getNonEmptyColumnCount = _v.getNonEmptyColumnCount, getDataColumnCount = _v.getDataColumnCount, getSheetId = _v.getSheetId, getSheetName = _v.getSheetName, getSheetCount = _v.getSheetCount, getSheetIndex = _v.getSheetIndex, getSheetNames = _v.getSheetNames, getSheetProperties = _v.getSheetProperties, getCellData = _v.getCellData, getMentionsFromCell = _v.getMentionsFromCell, getTextFormatRuns = _v.getTextFormatRuns, getEffectiveValue = _v.getEffectiveValue, getEffectiveValueForCalculation = _v.getEffectiveValueForCalculation, getUserEnteredValue = _v.getUserEnteredValue, getUserEnteredValueStable = _v.getUserEnteredValueStable, getConditionalFormatFormula = _v.getConditionalFormatFormula, getDataValidationFormula = _v.getDataValidationFormula, getDataValidation = _v.getDataValidation, getDefaultHorizontalAlignment = _v.getDefaultHorizontalAlignment, getDataValidationById = _v.getDataValidationById, getActiveSheetId = _v.getActiveSheetId, getUserEnteredFormat = _v.getUserEnteredFormat, getEffectiveFormat = _v.getEffectiveFormat, getFormattedValue = _v.getFormattedValue, getFormulaValue = _v.getFormulaValue, getSeriesValuesFromRange = _v.getSeriesValuesFromRange, getFormattingFromRange = _v.getFormattingFromRange, getUserEnteredValuesFromRange = _v.getUserEnteredValuesFromRange, getFormulasFromRange = _v.getFormulasFromRange, getDomainValuesFromRange = _v.getDomainValuesFromRange, getColumnarDataFromRange = _v.getColumnarDataFromRange, isColumnHidden = _v.isColumnHidden, isHiddenRow = _v.isHiddenRow, isHiddenByFilterRow = _v.isHiddenByFilterRow, isManuallyHiddenRow = _v.isManuallyHiddenRow, getRowOutlineLevel = _v.getRowOutlineLevel, getSheetRowCount = _v.getSheetRowCount, getSheetColumnCount = _v.getSheetColumnCount, getColumnWidth = _v.getColumnWidth, getRowHeight = _v.getRowHeight, getEffectiveExtendedValue = _v.getEffectiveExtendedValue, getUserEnteredExtendedValue = _v.getUserEnteredExtendedValue, getFrozenRowCount = _v.getFrozenRowCount, getErrorValue = _v.getErrorValue;
436
469
  // Subscriber
437
470
  useSheetDataSubscriber({ sheetData: sheetData });
438
- var _t = useSelectNextPrevSheet({
471
+ var _w = useSelectNextPrevSheet({
439
472
  onChangeActiveSheet: onChangeActiveSheet,
440
473
  sheets: sheets,
441
- }), onSelectNextSheet = _t.onSelectNextSheet, onSelectPreviousSheet = _t.onSelectPreviousSheet;
474
+ }), onSelectNextSheet = _w.onSelectNextSheet, onSelectPreviousSheet = _w.onSelectPreviousSheet;
442
475
  // Get structured reference
443
476
  var onStructuredReference = useStructuredReference({
444
477
  tables: tables,
@@ -549,7 +582,7 @@ export var useSpreadsheetState = function (_a) {
549
582
  enabled: calculationMode !== "worker",
550
583
  });
551
584
  // Use the appropriate calculation hook based on mode
552
- var _u = calculationMode === "worker" ? workerCalculation : singleCalculation, enqueueCalculation = _u.enqueueCalculation, enqueueGraphOperation = _u.enqueueGraphOperation, enqueueStructureChange = _u.enqueueStructureChange, clearRangeCache = _u.clearRangeCache, onRequestCalculateWithoutFormatting = _u.onRequestCalculate, getPrecedents = _u.getPrecedents, getDependents = _u.getDependents, getPrecedentsFromFormulaString = _u.getPrecedentsFromFormulaString, getGraphNodes = _u.getGraphNodes, getGraphNodesInSheet = _u.getGraphNodesInSheet, addStaticReference = _u.addStaticReference, addFormulaToGraph = _u.addFormulaToGraph, removeStaticReference = _u.removeStaticReference, onResetCalculator = _u.onResetCalculator, getDependencyGraph = _u.getDependencyGraph, updateDependencyGraph = _u.updateDependencyGraph, isArrayFormula = _u.isArrayFormula, getArrayRange = _u.getArrayRange, applyNamedRanges = _u.applyNamedRanges;
585
+ var _x = calculationMode === "worker" ? workerCalculation : singleCalculation, enqueueCalculation = _x.enqueueCalculation, enqueueGraphOperation = _x.enqueueGraphOperation, enqueueStructureChange = _x.enqueueStructureChange, clearRangeCache = _x.clearRangeCache, onRequestCalculateWithoutFormatting = _x.onRequestCalculate, getPrecedents = _x.getPrecedents, getDependents = _x.getDependents, getPrecedentsFromFormulaString = _x.getPrecedentsFromFormulaString, getGraphNodes = _x.getGraphNodes, getGraphNodesInSheet = _x.getGraphNodesInSheet, addStaticReference = _x.addStaticReference, addFormulaToGraph = _x.addFormulaToGraph, removeStaticReference = _x.removeStaticReference, onResetCalculator = _x.onResetCalculator, getDependencyGraph = _x.getDependencyGraph, updateDependencyGraph = _x.updateDependencyGraph, isArrayFormula = _x.isArrayFormula, getArrayRange = _x.getArrayRange, applyNamedRanges = _x.applyNamedRanges;
553
586
  // Bind the forward-ref so `useSheetProperties.getEffectiveFormat` can walk
554
587
  // precedents now that the calculator is initialised.
555
588
  getPrecedentsRef.current = getPrecedents;
@@ -599,7 +632,7 @@ export var useSpreadsheetState = function (_a) {
599
632
  getEffectiveFormat: getEffectiveFormat,
600
633
  });
601
634
  // Calculation initialize
602
- var _v = useCalculationInitialize({
635
+ var _y = useCalculationInitialize({
603
636
  recalculateOnOpen: recalculateOnOpen,
604
637
  sheetData: sheetData,
605
638
  conditionalFormats: conditionalFormats,
@@ -612,9 +645,9 @@ export var useSpreadsheetState = function (_a) {
612
645
  getDataValidationById: getDataValidationById,
613
646
  namedRanges: namedRanges,
614
647
  applyNamedRanges: applyNamedRanges,
615
- }), calculateNow = _v.calculateNow, evaluateConditionalFormatting = _v.evaluateConditionalFormatting, evaluateDataValidations = _v.evaluateDataValidations, evaluateConditionalFormattingForViewport = _v.evaluateConditionalFormattingForViewport, evaluateDataValidationsForViewport = _v.evaluateDataValidationsForViewport, clearEvaluatedCellsCache = _v.clearEvaluatedCellsCache, onViewPortChange = _v.onViewPortChange, reevaluateDerivationsForCells = _v.reevaluateDerivationsForCells;
648
+ }), calculateNow = _y.calculateNow, evaluateConditionalFormatting = _y.evaluateConditionalFormatting, evaluateDataValidations = _y.evaluateDataValidations, evaluateConditionalFormattingForViewport = _y.evaluateConditionalFormattingForViewport, evaluateDataValidationsForViewport = _y.evaluateDataValidationsForViewport, clearEvaluatedCellsCache = _y.clearEvaluatedCellsCache, onViewPortChange = _y.onViewPortChange, reevaluateDerivationsForCells = _y.reevaluateDerivationsForCells;
616
649
  // Undo redo action manager
617
- var _w = useUndoRedoActions({
650
+ var _z = useUndoRedoActions({
618
651
  sheetId: activeSheetId,
619
652
  onChangeActiveCell: onChangeActiveCell,
620
653
  onChangeActiveSheet: onChangeActiveSheet,
@@ -628,6 +661,7 @@ export var useSpreadsheetState = function (_a) {
628
661
  onChangeConditionalFormats: onChangeConditionalFormats,
629
662
  onChangeDataValidations: onChangeDataValidations,
630
663
  onChangeProtectedRanges: onChangeProtectedRanges,
664
+ onChangeCustomTableStyles: onChangeCustomTableStyles,
631
665
  onChangePivotTables: onChangePivotTables,
632
666
  onChangeCellXfs: onChangeCellXfs,
633
667
  onChangeTheme: onChangeTheme,
@@ -636,14 +670,14 @@ export var useSpreadsheetState = function (_a) {
636
670
  enqueueCalculation: enqueueCalculation,
637
671
  onChangeSharedStrings: onChangeSharedStrings,
638
672
  clearRangeCache: clearRangeCache,
639
- }), onRedoAction = _w.onRedoAction, onUndoAction = _w.onUndoAction, applyPatch = _w.applyPatch;
673
+ }), onRedoAction = _z.onRedoAction, onUndoAction = _z.onUndoAction, applyPatch = _z.applyPatch;
640
674
  // Undo manager
641
- var _x = useUndoRedo({
675
+ var _0 = useUndoRedo({
642
676
  isEnabled: enabledUndoRedo,
643
677
  onUndoAction: onUndoAction,
644
678
  onRedoAction: onRedoAction,
645
679
  onChangeHistory: onChangeHistory,
646
- }), createHistory = _x.createHistory, createHistoryWithoutPointer = _x.createHistoryWithoutPointer, onRedo = _x.onRedo, onUndo = _x.onUndo, canUndo = _x.canUndo, canRedo = _x.canRedo, onClearHistory = _x.onClearHistory;
680
+ }), createHistory = _0.createHistory, createHistoryWithoutPointer = _0.createHistoryWithoutPointer, batchHistory = _0.batchHistory, onRedo = _0.onRedo, onUndo = _0.onUndo, canUndo = _0.canUndo, canRedo = _0.canRedo, onClearHistory = _0.onClearHistory;
647
681
  var onChangeSpreadsheetTheme = useOnChangeTheme({
648
682
  createHistory: createHistory,
649
683
  onChangeTheme: onChangeTheme,
@@ -675,26 +709,34 @@ export var useSpreadsheetState = function (_a) {
675
709
  createHistory: createHistory,
676
710
  onChangeSheetData: onChangeSheetData,
677
711
  onChangeSheets: onChangeSheets,
712
+ onChangeCharts: onChangeCharts,
713
+ onChangeEmbeds: onChangeEmbeds,
714
+ onChangeSlicers: onChangeSlicers,
715
+ onChangeTables: onChangeTables,
716
+ onChangeConditionalFormats: onChangeConditionalFormats,
717
+ onChangeDataValidations: onChangeDataValidations,
718
+ onChangeNamedRanges: onChangeNamedRanges,
719
+ onChangeProtectedRanges: onChangeProtectedRanges,
678
720
  onChangeActiveSheet: onChangeActiveSheet,
679
721
  enqueueGraphOperation: enqueueGraphOperation,
680
722
  onCommand: onCommand,
681
723
  });
682
724
  // Show hide sheet
683
- var _y = useOnShowHideSheet({
725
+ var _1 = useOnShowHideSheet({
684
726
  sheetId: activeSheetId,
685
727
  sheets: sheets,
686
728
  onChangeSheets: onChangeSheets,
687
729
  createHistory: createHistory,
688
730
  onChangeActiveSheet: onChangeActiveSheet,
689
731
  onCommand: onCommand,
690
- }), onHideSheet = _y.onHideSheet, onShowSheet = _y.onShowSheet;
732
+ }), onHideSheet = _1.onHideSheet, onShowSheet = _1.onShowSheet;
691
733
  // Protect sheet
692
- var _z = useOnProtectSheet({
734
+ var _2 = useOnProtectSheet({
693
735
  idCreationStrategy: idCreationStrategy,
694
736
  onChangeProtectedRanges: onChangeProtectedRanges,
695
737
  createHistory: createHistory,
696
738
  onCommand: onCommand,
697
- }), onProtectSheet = _z.onProtectSheet, onUnProtectSheet = _z.onUnProtectSheet;
739
+ }), onProtectSheet = _2.onProtectSheet, onUnProtectSheet = _2.onUnProtectSheet;
698
740
  // Move sheet
699
741
  var onMoveSheet = useOnMoveSheet({
700
742
  onChangeSheets: onChangeSheets,
@@ -848,16 +890,22 @@ export var useSpreadsheetState = function (_a) {
848
890
  isMergedCell: isMergedCell,
849
891
  onChangeSheetData: onChangeSheetData,
850
892
  onChangeTables: onChangeTables,
893
+ onChangeCharts: onChangeCharts,
851
894
  onChangeSheets: onChangeSheets,
852
895
  enqueueCalculation: enqueueCalculation,
853
896
  enqueueGraphOperation: enqueueGraphOperation,
854
897
  createHistory: createHistory,
898
+ batchHistory: batchHistory,
899
+ autoExpandTables: autoExpandTables,
900
+ autoCalculatedColumns: autoCalculatedColumns,
855
901
  getDependents: getDependents,
902
+ getGraphNodes: getGraphNodes,
856
903
  getUserEnteredValue: getUserEnteredValueStable,
857
904
  getTextFormatRuns: getTextFormatRuns,
858
905
  getSheetName: getSheetName,
859
906
  onCommand: onCommand,
860
907
  generatedNames: generatedNames,
908
+ onRequestCalculate: onRequestCalculateWithoutFormatting,
861
909
  });
862
910
  // onChange batch
863
911
  var onChangeBatch = useOnChangeBatch({
@@ -873,12 +921,16 @@ export var useSpreadsheetState = function (_a) {
873
921
  onChangeSheetData: onChangeSheetData,
874
922
  onChangeSheets: onChangeSheets,
875
923
  onChangeTables: onChangeTables,
924
+ onChangeCharts: onChangeCharts,
876
925
  getFormattedValue: getFormattedValue,
877
926
  getCellDimensions: getCellDimensions,
878
927
  getRowHeight: getCurrentRowHeight,
879
928
  isMergedCell: isMergedCell,
880
929
  tables: tables,
881
930
  createHistory: createHistory,
931
+ batchHistory: batchHistory,
932
+ autoExpandTables: autoExpandTables,
933
+ autoCalculatedColumns: autoCalculatedColumns,
882
934
  onChangeCitations: onChangeCitations,
883
935
  onCommand: onCommand,
884
936
  generatedNames: generatedNames,
@@ -902,10 +954,19 @@ export var useSpreadsheetState = function (_a) {
902
954
  onChangeActiveCell: onChangeActiveCell,
903
955
  isArrayFormula: isArrayFormula,
904
956
  getRowHeight: getCurrentRowHeight,
957
+ tables: tables,
958
+ generatedNames: generatedNames,
905
959
  onCommand: onCommand,
906
960
  });
961
+ // Excel sparkline groups (runs of =SPARKLINE() cells sharing one option set)
962
+ var _3 = useSparklineGroups({
963
+ onChangeBatch: onChangeBatch,
964
+ onDelete: onDelete,
965
+ batchHistory: batchHistory,
966
+ getUserEnteredValue: getUserEnteredValueStable,
967
+ }), getSparklineGroup = _3.getSparklineGroup, getSparklineAt = _3.getSparklineAt, onCreateSparklineGroup = _3.onCreateSparklineGroup, onUpdateSparklineGroup = _3.onUpdateSparklineGroup, onDeleteSparklineGroup = _3.onDeleteSparklineGroup, onClearSparklines = _3.onClearSparklines, onGroupSparklines = _3.onGroupSparklines;
907
968
  // Formatting change
908
- var _0 = useOnChangeFormatting({
969
+ var _4 = useOnChangeFormatting({
909
970
  locale: locale,
910
971
  cellXfsRegistry: cellXfsRegistry,
911
972
  getDataValidationById: getDataValidationById,
@@ -918,11 +979,12 @@ export var useSpreadsheetState = function (_a) {
918
979
  getCellDimensions: getCellDimensions,
919
980
  getRowHeight: getCurrentRowHeight,
920
981
  onCommand: onCommand,
921
- }), onChangeFormatting = _0.onChangeFormatting, onChangeBorder = _0.onChangeBorder, onRepeatFormatting = _0.onRepeatFormatting;
982
+ }), onChangeFormatting = _4.onChangeFormatting, onChangeBorder = _4.onChangeBorder, onRepeatFormatting = _4.onRepeatFormatting;
922
983
  // Merge unmerge
923
- var _1 = useOnMergeUnMergeCells({
984
+ var _5 = useOnMergeUnMergeCells({
924
985
  locale: locale,
925
986
  merges: merges,
987
+ tables: tables,
926
988
  cellXfsRegistry: cellXfsRegistry,
927
989
  sharedStringRegistry: sharedStringRegistry,
928
990
  onChangeSelections: onChangeSelections,
@@ -931,30 +993,30 @@ export var useSpreadsheetState = function (_a) {
931
993
  onChangeSheetData: onChangeSheetData,
932
994
  enqueueCalculation: enqueueCalculation,
933
995
  onCommand: onCommand,
934
- }), onMergeCells = _1.onMergeCells, onUnMergeCells = _1.onUnMergeCells;
996
+ }), onMergeCells = _5.onMergeCells, onUnMergeCells = _5.onUnMergeCells;
935
997
  // Paint formatting — carries the visible look of the source: effective formats layered over
936
998
  // table banding (as static fills), plus the merges inside the source block, tiled onto the
937
999
  // target (issue #620 — Google Sheets parity).
938
1000
  var getPaintMerges = useCallback(function (sheetId) { var _a; return (_a = sheets.find(function (s) { return s.sheetId === sheetId; })) === null || _a === void 0 ? void 0 : _a.merges; }, [sheets]);
939
1001
  var getPaintBandedCells = useCallback(function (sheetId) {
940
1002
  var e_2, _a;
941
- var _b;
1003
+ var _b, _c;
942
1004
  var bands = [];
943
1005
  try {
944
- for (var _c = __values(tables !== null && tables !== void 0 ? tables : []), _d = _c.next(); !_d.done; _d = _c.next()) {
945
- var table = _d.value;
1006
+ for (var _d = __values(tables !== null && tables !== void 0 ? tables : []), _e = _d.next(); !_e.done; _e = _d.next()) {
1007
+ var table = _e.value;
946
1008
  if (table.sheetId !== sheetId)
947
1009
  continue;
948
1010
  var banded = (_b = table.bandedRange) !== null && _b !== void 0 ? _b : deriveBuiltInTableBanding(table);
949
1011
  if (isNil(banded))
950
1012
  continue;
951
- bands.push(__assign({ bandedRangeId: "".concat(table.id, "-").concat(table.theme), range: __assign(__assign({}, table.range), { sheetId: sheetId }) }, banded));
1013
+ bands.push(__assign({ bandedRangeId: "".concat(table.id, "-").concat(table.theme), showFirstColumn: table.showFirstColumn, showLastColumn: table.showLastColumn, totalRow: (_c = table.totalRow) !== null && _c !== void 0 ? _c : false, range: __assign(__assign({}, table.range), { sheetId: sheetId }) }, banded));
952
1014
  }
953
1015
  }
954
1016
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
955
1017
  finally {
956
1018
  try {
957
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
1019
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
958
1020
  }
959
1021
  finally { if (e_2) throw e_2.error; }
960
1022
  }
@@ -971,14 +1033,14 @@ export var useSpreadsheetState = function (_a) {
971
1033
  // `onMergeCells` clears the selection; the painted target stays selected like Excel.
972
1034
  onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(sheetId, [{ range: targetRange }]);
973
1035
  }, [onUnMergeCells, onMergeCells, onChangeSelections]);
974
- var _2 = usePaintFormat({
1036
+ var _6 = usePaintFormat({
975
1037
  onChangeSelections: onChangeSelections,
976
1038
  onChangeFormatting: onChangeFormatting,
977
1039
  getEffectiveFormat: getEffectiveFormat,
978
1040
  getMerges: getPaintMerges,
979
1041
  onPaintMerges: onPaintMerges,
980
1042
  getBandedCells: getPaintBandedCells,
981
- }), isPaintFormatActive = _2.isPaintFormatActive, paintFormat = _2.paintFormat, onApplyPaintFormat = _2.onApplyPaintFormat, onSavePaintFormat = _2.onSavePaintFormat;
1043
+ }), isPaintFormatActive = _6.isPaintFormatActive, paintFormat = _6.paintFormat, onApplyPaintFormat = _6.onApplyPaintFormat, onSavePaintFormat = _6.onSavePaintFormat;
982
1044
  // Selection interceptor
983
1045
  // for paint format
984
1046
  var onChangeSelectionsInterceptor = useCallback(function (sheetId, selections, finishedSelection) {
@@ -1049,6 +1111,21 @@ export var useSpreadsheetState = function (_a) {
1049
1111
  // `onMergeCells` clears the selection; the filled range stays selected like Excel.
1050
1112
  onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(sheetId, [{ range: selectRange }]);
1051
1113
  }, [onUnMergeCells, onMergeCells, onChangeSelections]);
1114
+ // The expansion the fill handle triggers when dragged past a table's edge (T-11).
1115
+ var onFillChangeTableColumn = useOnChangeTableColumn({
1116
+ locale: locale,
1117
+ cellXfsRegistry: cellXfsRegistry,
1118
+ sharedStringRegistry: sharedStringRegistry,
1119
+ onChangeSheetData: onChangeSheetData,
1120
+ onChangeTables: onChangeTables,
1121
+ getDependents: getDependents,
1122
+ enqueueCalculation: enqueueGraphOperation,
1123
+ enqueueGraphOperation: enqueueGraphOperation,
1124
+ createHistory: createHistory,
1125
+ onCommand: onCommand,
1126
+ generatedNames: generatedNames,
1127
+ tables: tables,
1128
+ });
1052
1129
  var onFill = useOnFill({
1053
1130
  locale: locale,
1054
1131
  cellXfsRegistry: cellXfsRegistry,
@@ -1067,6 +1144,11 @@ export var useSpreadsheetState = function (_a) {
1067
1144
  onCommand: onCommand,
1068
1145
  getMerges: getPaintMerges,
1069
1146
  onFillMerges: onFillMerges,
1147
+ tables: tables,
1148
+ getUserEnteredValue: getUserEnteredValueStable,
1149
+ onChangeTableColumn: onFillChangeTableColumn,
1150
+ batchHistory: batchHistory,
1151
+ autoExpandTables: autoExpandTables,
1070
1152
  });
1071
1153
  // Delete row
1072
1154
  var onDeleteRow = useOnDeleteRow({
@@ -1095,6 +1177,7 @@ export var useSpreadsheetState = function (_a) {
1095
1177
  onChangePivotTables: onChangePivotTables,
1096
1178
  onChangeNamedRanges: onChangeNamedRanges,
1097
1179
  onChangeEmbeds: onChangeEmbeds,
1180
+ onChangeSlicers: onChangeSlicers,
1098
1181
  onChangeCharts: onChangeCharts,
1099
1182
  onChangeProtectedRanges: onChangeProtectedRanges,
1100
1183
  getSheetName: getSheetName,
@@ -1129,6 +1212,7 @@ export var useSpreadsheetState = function (_a) {
1129
1212
  onChangePivotTables: onChangePivotTables,
1130
1213
  onChangeNamedRanges: onChangeNamedRanges,
1131
1214
  onChangeEmbeds: onChangeEmbeds,
1215
+ onChangeSlicers: onChangeSlicers,
1132
1216
  onChangeCharts: onChangeCharts,
1133
1217
  onChangeProtectedRanges: onChangeProtectedRanges,
1134
1218
  getSheetName: getSheetName,
@@ -1155,6 +1239,7 @@ export var useSpreadsheetState = function (_a) {
1155
1239
  onChangeSheetData: onChangeSheetData,
1156
1240
  onChangeTables: onChangeTables,
1157
1241
  onChangeCitations: onChangeCitations,
1242
+ onChangeCharts: onChangeCharts,
1158
1243
  onCommand: onCommand,
1159
1244
  sheetData: sheetData,
1160
1245
  sheets: sheets,
@@ -1179,6 +1264,7 @@ export var useSpreadsheetState = function (_a) {
1179
1264
  onChangeSheetData: onChangeSheetData,
1180
1265
  onChangeTables: onChangeTables,
1181
1266
  onChangeCitations: onChangeCitations,
1267
+ onChangeCharts: onChangeCharts,
1182
1268
  onCommand: onCommand,
1183
1269
  sheetData: sheetData,
1184
1270
  sheets: sheets,
@@ -1203,6 +1289,7 @@ export var useSpreadsheetState = function (_a) {
1203
1289
  onChangeSheetData: onChangeSheetData,
1204
1290
  onChangeTables: onChangeTables,
1205
1291
  onChangeCitations: onChangeCitations,
1292
+ onChangeCharts: onChangeCharts,
1206
1293
  onCommand: onCommand,
1207
1294
  sheetData: sheetData,
1208
1295
  sheets: sheets,
@@ -1227,6 +1314,7 @@ export var useSpreadsheetState = function (_a) {
1227
1314
  onChangeSheetData: onChangeSheetData,
1228
1315
  onChangeTables: onChangeTables,
1229
1316
  onChangeCitations: onChangeCitations,
1317
+ onChangeCharts: onChangeCharts,
1230
1318
  onCommand: onCommand,
1231
1319
  sheetData: sheetData,
1232
1320
  sheets: sheets,
@@ -1257,6 +1345,7 @@ export var useSpreadsheetState = function (_a) {
1257
1345
  onChangePivotTables: onChangePivotTables,
1258
1346
  onChangeNamedRanges: onChangeNamedRanges,
1259
1347
  onChangeEmbeds: onChangeEmbeds,
1348
+ onChangeSlicers: onChangeSlicers,
1260
1349
  onChangeCharts: onChangeCharts,
1261
1350
  onChangeProtectedRanges: onChangeProtectedRanges,
1262
1351
  onChangeTables: onChangeTables,
@@ -1289,6 +1378,7 @@ export var useSpreadsheetState = function (_a) {
1289
1378
  onChangePivotTables: onChangePivotTables,
1290
1379
  onChangeNamedRanges: onChangeNamedRanges,
1291
1380
  onChangeEmbeds: onChangeEmbeds,
1381
+ onChangeSlicers: onChangeSlicers,
1292
1382
  onChangeCharts: onChangeCharts,
1293
1383
  onChangeProtectedRanges: onChangeProtectedRanges,
1294
1384
  getActiveCell: getActiveCell,
@@ -1312,6 +1402,7 @@ export var useSpreadsheetState = function (_a) {
1312
1402
  onChangeSheetData: onChangeSheetData,
1313
1403
  onChangeConditionalFormats: onChangeConditionalFormats,
1314
1404
  onChangeDataValidations: onChangeDataValidations,
1405
+ onChangeCharts: onChangeCharts,
1315
1406
  getDependents: getDependents,
1316
1407
  getDataRowCount: getDataRowCount,
1317
1408
  onCommand: onCommand,
@@ -1330,6 +1421,7 @@ export var useSpreadsheetState = function (_a) {
1330
1421
  onChangeSheetData: onChangeSheetData,
1331
1422
  onChangeTables: onChangeTables,
1332
1423
  onChangeNamedRanges: onChangeNamedRanges,
1424
+ onChangeCharts: onChangeCharts,
1333
1425
  onChangeConditionalFormats: onChangeConditionalFormats,
1334
1426
  onChangeDataValidations: onChangeDataValidations,
1335
1427
  getDependents: getDependents,
@@ -1349,6 +1441,7 @@ export var useSpreadsheetState = function (_a) {
1349
1441
  onChangeSheets: onChangeSheets,
1350
1442
  onChangeTables: onChangeTables,
1351
1443
  onChangeNamedRanges: onChangeNamedRanges,
1444
+ onChangeCharts: onChangeCharts,
1352
1445
  onChangeDataValidations: onChangeDataValidations,
1353
1446
  onChangeConditionalFormats: onChangeConditionalFormats,
1354
1447
  onChangePivotTables: onChangePivotTables,
@@ -1366,7 +1459,7 @@ export var useSpreadsheetState = function (_a) {
1366
1459
  // opening, close the gap it left — so Shift+drag A5 to A2 over r1..r6 gives r1 r5 r2 r3 r4 r6 and
1367
1460
  // a forward move lands before Excel's pre-removal reference row. The refusals are decided up
1368
1461
  // front — a merge the block or a shifted band covers only partially, a protected range — so a
1369
- // refused move never leaves the band opened. Each step records its own undo entry.
1462
+ // refused move never leaves the band opened. The three steps record ONE undo entry.
1370
1463
  var showError = useShowError();
1371
1464
  var canEditCellRange = useCanEditCellRange();
1372
1465
  var canPerformSheetAction = useCanPerformSheetAction();
@@ -1382,6 +1475,17 @@ export var useSpreadsheetState = function (_a) {
1382
1475
  showError({ message: MERGED_CELL_MOVE_ERROR });
1383
1476
  return;
1384
1477
  }
1478
+ // A block covering part of a table never moves (T-46) — refused before the band opens.
1479
+ var tableRefusal = getMoveRangeRefusal({
1480
+ sheetId: sheetId,
1481
+ from: from.range,
1482
+ to: to.range,
1483
+ tables: tables,
1484
+ });
1485
+ if (tableRefusal) {
1486
+ showError({ title: tableRefusal.title, message: tableRefusal.message });
1487
+ return;
1488
+ }
1385
1489
  var vertical = plan.shift === "down";
1386
1490
  if (!canEditCellRange(sheetId, from.range) ||
1387
1491
  !canEditCellRange(sheetId, to.range) ||
@@ -1397,25 +1501,28 @@ export var useSpreadsheetState = function (_a) {
1397
1501
  rowIndex: to.range.startRowIndex,
1398
1502
  columnIndex: to.range.startColumnIndex,
1399
1503
  };
1400
- if (vertical) {
1401
- onInsertCellsShiftDown(sheetId, target, [to]);
1402
- }
1403
- else {
1404
- onInsertCellsShiftRight(sheetId, target, [to]);
1405
- }
1406
1504
  var source = __assign(__assign({}, from), { range: plan.shiftedSource });
1407
- onMoveSelection(sheetId, source, to);
1408
1505
  var vacated = {
1409
1506
  rowIndex: plan.shiftedSource.startRowIndex,
1410
1507
  columnIndex: plan.shiftedSource.startColumnIndex,
1411
1508
  };
1412
- if (vertical) {
1413
- onDeleteCellsShiftUp(sheetId, vacated, [source]);
1414
- }
1415
- else {
1416
- onDeleteCellsShiftLeft(sheetId, vacated, [source]);
1417
- }
1509
+ batchHistory(function () {
1510
+ if (vertical) {
1511
+ onInsertCellsShiftDown(sheetId, target, [to]);
1512
+ }
1513
+ else {
1514
+ onInsertCellsShiftRight(sheetId, target, [to]);
1515
+ }
1516
+ onMoveSelection(sheetId, source, to);
1517
+ if (vertical) {
1518
+ onDeleteCellsShiftUp(sheetId, vacated, [source]);
1519
+ }
1520
+ else {
1521
+ onDeleteCellsShiftLeft(sheetId, vacated, [source]);
1522
+ }
1523
+ });
1418
1524
  }, [
1525
+ batchHistory,
1419
1526
  getPaintMerges,
1420
1527
  showError,
1421
1528
  canEditCellRange,
@@ -1433,11 +1540,15 @@ export var useSpreadsheetState = function (_a) {
1433
1540
  locale: locale,
1434
1541
  sharedStringRegistry: sharedStringRegistry,
1435
1542
  onChangeSheetData: onChangeSheetData,
1543
+ onChangeSheets: onChangeSheets,
1436
1544
  enqueueCalculation: enqueueCalculation,
1437
1545
  enqueueStructureChange: enqueueStructureChange,
1438
1546
  enqueueGraphOperation: enqueueGraphOperation,
1439
1547
  createHistory: createHistory,
1548
+ getCellData: getCellData,
1549
+ getDataRowCount: getDataRowCount,
1440
1550
  isHiddenRow: isHiddenRow,
1551
+ isManuallyHiddenRow: isManuallyHiddenRow,
1441
1552
  getDependents: getDependents,
1442
1553
  getFrozenRowCount: getFrozenRowCount,
1443
1554
  getSheetName: getSheetName,
@@ -1453,12 +1564,14 @@ export var useSpreadsheetState = function (_a) {
1453
1564
  enqueueGraphOperation: enqueueGraphOperation,
1454
1565
  enqueueCalculation: enqueueCalculation,
1455
1566
  enqueueStructureChange: enqueueStructureChange,
1567
+ getCellData: getCellData,
1456
1568
  getDependents: getDependents,
1457
1569
  createHistory: createHistory,
1458
1570
  onChangeTables: onChangeTables,
1459
1571
  onChangeSheets: onChangeSheets,
1460
1572
  getActiveCell: getActiveCell,
1461
1573
  isHiddenRow: isHiddenRow,
1574
+ isManuallyHiddenRow: isManuallyHiddenRow,
1462
1575
  getFrozenRowCount: getFrozenRowCount,
1463
1576
  getSheetName: getSheetName,
1464
1577
  getEffectiveFormat: getEffectiveFormat,
@@ -1466,7 +1579,7 @@ export var useSpreadsheetState = function (_a) {
1466
1579
  onCommand: onCommand,
1467
1580
  });
1468
1581
  // Sort range
1469
- var _3 = __read(useOnFilterTable({
1582
+ var _7 = __read(useOnFilterTable({
1470
1583
  theme: theme,
1471
1584
  createHistory: createHistory,
1472
1585
  onChangeTables: onChangeTables,
@@ -1480,25 +1593,71 @@ export var useSpreadsheetState = function (_a) {
1480
1593
  onRequestCalculate: onRequestCalculateWithoutFormatting,
1481
1594
  onCommand: onCommand,
1482
1595
  onRowVisibilityChange: onRowVisibilityChange,
1483
- }), 2), onFilterTable = _3[0], onDeleteFilter = _3[1];
1596
+ }), 2), onFilterTable = _7[0], onDeleteFilter = _7[1];
1484
1597
  // Resize table
1485
1598
  var onResizeTable = useOnResizeTable({
1486
1599
  rowCount: rowCount,
1487
1600
  columnCount: columnCount,
1488
1601
  locale: locale,
1489
1602
  tables: tables,
1603
+ merges: merges,
1490
1604
  basicFilter: basicFilter,
1491
1605
  getActiveCell: getActiveCell,
1492
1606
  createHistory: createHistory,
1493
1607
  onChangeTables: onChangeTables,
1494
1608
  onChangeSheetData: onChangeSheetData,
1609
+ onChangeCharts: onChangeCharts,
1495
1610
  enqueueCalculation: enqueueCalculation,
1496
1611
  enqueueGraphOperation: enqueueGraphOperation,
1497
1612
  getFormattedValue: getFormattedValue,
1498
1613
  getDependents: getDependents,
1614
+ getSheetName: getSheetName,
1499
1615
  onCommand: onCommand,
1500
1616
  generatedNames: generatedNames,
1501
1617
  });
1618
+ // The AutoCorrect smart tag's "Undo Table AutoExpansion"
1619
+ var onUndoTableAutoExpansion = useOnUndoTableAutoExpansion({
1620
+ locale: locale,
1621
+ cellXfsRegistry: cellXfsRegistry,
1622
+ tables: tables,
1623
+ createHistory: createHistory,
1624
+ batchHistory: batchHistory,
1625
+ onResizeTable: onResizeTable,
1626
+ onChangeSheetData: onChangeSheetData,
1627
+ enqueueCalculation: enqueueCalculation,
1628
+ onCommand: onCommand,
1629
+ });
1630
+ // The AutoCorrect smart tag's "Undo Calculated Column" / "Overwrite all cells in this column
1631
+ // with this formula"
1632
+ var onUndoCalculatedColumn = useOnUndoCalculatedColumn({
1633
+ tables: tables,
1634
+ createHistory: createHistory,
1635
+ batchHistory: batchHistory,
1636
+ onChangeSheetData: onChangeSheetData,
1637
+ onChangeTables: onChangeTables,
1638
+ enqueueCalculation: enqueueCalculation,
1639
+ onCommand: onCommand,
1640
+ });
1641
+ var onFillCalculatedColumn = useOnChangeCalculatedColumn({
1642
+ locale: locale,
1643
+ cellXfsRegistry: cellXfsRegistry,
1644
+ sharedStringRegistry: sharedStringRegistry,
1645
+ onChangeTables: onChangeTables,
1646
+ onChangeSheetData: onChangeSheetData,
1647
+ getUserEnteredValue: getUserEnteredValueStable,
1648
+ getSheetName: getSheetName,
1649
+ createHistory: createHistory,
1650
+ enqueueCalculation: enqueueCalculation,
1651
+ onCommand: onCommand,
1652
+ });
1653
+ var onOverwriteCalculatedColumn = useCallback(function (fill) {
1654
+ var table = tables === null || tables === void 0 ? void 0 : tables.find(function (candidate) { return candidate.id === fill.tableId && candidate.sheetId === fill.sheetId; });
1655
+ if (!table)
1656
+ return;
1657
+ batchHistory(function () {
1658
+ onFillCalculatedColumn(fill.sheetId, fill.anchor, fill.formula, table, { force: true });
1659
+ });
1660
+ }, [tables, batchHistory, onFillCalculatedColumn]);
1502
1661
  // Copy
1503
1662
  var onCopy = useOnCopy({
1504
1663
  theme: theme,
@@ -1522,6 +1681,7 @@ export var useSpreadsheetState = function (_a) {
1522
1681
  locale: locale,
1523
1682
  sheetData: sheetData,
1524
1683
  onChangeNamedRanges: onChangeNamedRanges,
1684
+ onChangeCharts: onChangeCharts,
1525
1685
  getSheetMerges: getPaintMerges,
1526
1686
  getDataValidationById: getDataValidationById,
1527
1687
  preserveFormatting: preserveFormattingOnPaste,
@@ -1540,6 +1700,9 @@ export var useSpreadsheetState = function (_a) {
1540
1700
  enqueueStructureChange: enqueueStructureChange,
1541
1701
  enqueueGraphOperation: enqueueGraphOperation,
1542
1702
  createHistory: createHistory,
1703
+ batchHistory: batchHistory,
1704
+ autoExpandTables: autoExpandTables,
1705
+ autoCalculatedColumns: autoCalculatedColumns,
1543
1706
  onChangeSheetData: onChangeSheetData,
1544
1707
  onChangeSheets: onChangeSheets,
1545
1708
  onChangeSelections: onChangeSelections,
@@ -1556,12 +1719,20 @@ export var useSpreadsheetState = function (_a) {
1556
1719
  generatedNames: generatedNames,
1557
1720
  });
1558
1721
  // Create table
1559
- var _4 = useOnTable({
1722
+ var _8 = useOnTable({
1560
1723
  locale: locale,
1561
1724
  rowCount: rowCount,
1562
1725
  columnCount: columnCount,
1563
1726
  tables: tables,
1727
+ namedRanges: namedRanges,
1564
1728
  basicFilter: basicFilter,
1729
+ sheetData: sheetData,
1730
+ sheets: sheets,
1731
+ batchHistory: batchHistory,
1732
+ getActiveCell: getActiveCell,
1733
+ getSelections: getSelections,
1734
+ onChangeCitations: onChangeCitations,
1735
+ onChangeCharts: onChangeCharts,
1565
1736
  cellXfsRegistry: cellXfsRegistry,
1566
1737
  sharedStringRegistry: sharedStringRegistry,
1567
1738
  theme: theme,
@@ -1576,12 +1747,16 @@ export var useSpreadsheetState = function (_a) {
1576
1747
  getEffectiveValue: getEffectiveValue,
1577
1748
  onRequestCalculate: onRequestCalculate,
1578
1749
  getDependents: getDependents,
1750
+ getGraphNodes: getGraphNodes,
1751
+ getBandedCells: getPaintBandedCells,
1579
1752
  enqueueGraphOperation: enqueueGraphOperation,
1580
1753
  getContentfulRangeAroundCell: getContentfulRangeAroundCell,
1581
1754
  getSheetName: getSheetName,
1582
1755
  onCommand: onCommand,
1583
1756
  generatedNames: generatedNames,
1584
- }), onCreateTable = _4.onCreateTable, onRemoveTable = _4.onRemoveTable, onUpdateTable = _4.onUpdateTable, onCreateBasicFilter = _4.onCreateBasicFilter, onInsertTableColumn = _4.onInsertTableColumn, onDeleteTableColumn = _4.onDeleteTableColumn;
1757
+ onChangeDataValidations: onChangeDataValidations,
1758
+ onChangeConditionalFormats: onChangeConditionalFormats,
1759
+ }), onCreateTable = _8.onCreateTable, onRemoveTable = _8.onRemoveTable, onUpdateTable = _8.onUpdateTable, onCreateBasicFilter = _8.onCreateBasicFilter, onInsertTableColumn = _8.onInsertTableColumn, onDeleteTableColumn = _8.onDeleteTableColumn;
1585
1760
  // Insert table row
1586
1761
  var onInsertTableRow = useOnInsertTableRow({
1587
1762
  rowCount: rowCount,
@@ -1597,10 +1772,12 @@ export var useSpreadsheetState = function (_a) {
1597
1772
  onChangeSheetData: onChangeSheetData,
1598
1773
  onChangeSheets: onChangeSheets,
1599
1774
  onChangeTables: onChangeTables,
1775
+ onChangeCharts: onChangeCharts,
1600
1776
  onChangeConditionalFormats: onChangeConditionalFormats,
1601
1777
  onChangeDataValidations: onChangeDataValidations,
1602
1778
  getSheetName: getSheetName,
1603
1779
  onCommand: onCommand,
1780
+ tables: tables,
1604
1781
  });
1605
1782
  // Delete table row
1606
1783
  var onDeleteTableRow = useOnDeleteTableRow({
@@ -1616,29 +1793,40 @@ export var useSpreadsheetState = function (_a) {
1616
1793
  onChangeSheetData: onChangeSheetData,
1617
1794
  onChangeSheets: onChangeSheets,
1618
1795
  onChangeTables: onChangeTables,
1796
+ onChangeCharts: onChangeCharts,
1619
1797
  onChangeConditionalFormats: onChangeConditionalFormats,
1620
1798
  onChangeDataValidations: onChangeDataValidations,
1621
1799
  getSheetName: getSheetName,
1622
1800
  onCommand: onCommand,
1801
+ tables: tables,
1623
1802
  });
1624
1803
  // Fill range
1625
1804
  var onFillRange = useOnFillRange({
1626
1805
  onFill: onFill,
1627
1806
  });
1628
1807
  // Embeds
1629
- var _5 = useOnEmbeds({
1808
+ var _9 = useOnEmbeds({
1630
1809
  onChangeEmbeds: onChangeEmbeds,
1810
+ onChangeCharts: onChangeCharts,
1631
1811
  createHistory: createHistory,
1632
1812
  onCommand: onCommand,
1633
- }), onDeleteEmbed = _5.onDeleteEmbed, onMoveEmbed = _5.onMoveEmbed, onResizeEmbed = _5.onResizeEmbed, onCreateEmbed = _5.onCreateEmbed, onRequestEditEmbed = _5.onRequestEditEmbed;
1813
+ }), onDeleteEmbed = _9.onDeleteEmbed, onMoveEmbed = _9.onMoveEmbed, onResizeEmbed = _9.onResizeEmbed, onCreateEmbed = _9.onCreateEmbed, onUpdateEmbed = _9.onUpdateEmbed, onRequestEditEmbed = _9.onRequestEditEmbed, onChangeZOrder = _9.onChangeZOrder;
1634
1814
  // Slicers
1635
- var _6 = useSlicers({
1815
+ var _10 = useSlicers({
1636
1816
  onChangeSlicers: onChangeSlicers,
1637
1817
  createHistory: createHistory,
1638
1818
  onCommand: onCommand,
1639
- }), onDeleteSlicer = _6.onDeleteSlicer, onMoveSlicer = _6.onMoveSlicer, onResizeSlicer = _6.onResizeSlicer, onCreateSlicer = _6.onCreateSlicer, onUpdateSlicer = _6.onUpdateSlicer, onRequestEditSlicer = _6.onRequestEditSlicer;
1819
+ }), onDeleteSlicer = _10.onDeleteSlicer, onMoveSlicer = _10.onMoveSlicer, onResizeSlicer = _10.onResizeSlicer, onCreateSlicer = _10.onCreateSlicer, onUpdateSlicer = _10.onUpdateSlicer, onRequestEditSlicer = _10.onRequestEditSlicer;
1640
1820
  // Show modal dialog for table editor
1641
1821
  var onRequestEditTable = useOnRequestEditTable();
1822
+ // Show the Resize Table dialog (Table Design → Resize Table)
1823
+ var onRequestResizeTable = useOnRequestResizeTable();
1824
+ // Show the Insert Slicers dialog (Table Design → Insert Slicer)
1825
+ var onRequestInsertSlicer = useOnRequestInsertSlicer();
1826
+ // Show the Create Table dialog (Ctrl+T / Insert → Table / Format as Table)
1827
+ var onRequestCreateTable = useOnRequestCreateTable({
1828
+ getEffectiveExtendedValue: getEffectiveExtendedValue,
1829
+ });
1642
1830
  // Show modal dialog for table editor
1643
1831
  var onRequestDefineNamedRange = useOnRequestDefineNamedRange({
1644
1832
  namedRanges: namedRanges,
@@ -1648,6 +1836,7 @@ export var useSpreadsheetState = function (_a) {
1648
1836
  // Update named range
1649
1837
  var onUpdateNamedRange = useOnUpdateNamedRange({
1650
1838
  locale: locale,
1839
+ tables: tables,
1651
1840
  getDependents: getDependents,
1652
1841
  getActiveCell: getActiveCell,
1653
1842
  enqueueCalculation: enqueueCalculation,
@@ -1658,6 +1847,7 @@ export var useSpreadsheetState = function (_a) {
1658
1847
  });
1659
1848
  // Update named range
1660
1849
  var onCreateNamedRange = useOnCreateNamedRange({
1850
+ tables: tables,
1661
1851
  enqueueCalculation: enqueueCalculation,
1662
1852
  createHistory: createHistory,
1663
1853
  onChangeNamedRanges: onChangeNamedRanges,
@@ -1672,13 +1862,13 @@ export var useSpreadsheetState = function (_a) {
1672
1862
  onCommand: onCommand,
1673
1863
  });
1674
1864
  // Freeze rows and columns
1675
- var _7 = __read(useOnFreeze({
1865
+ var _11 = __read(useOnFreeze({
1676
1866
  createHistory: createHistory,
1677
1867
  onChangeSheets: onChangeSheets,
1678
1868
  onChangeEmbeds: onChangeEmbeds,
1679
1869
  onChangeCharts: onChangeCharts,
1680
1870
  onCommand: onCommand,
1681
- }), 2), onFreezeRow = _7[0], onFreezeColumn = _7[1];
1871
+ }), 2), onFreezeRow = _11[0], onFreezeColumn = _11[1];
1682
1872
  // Request insert image
1683
1873
  var onRequestInsertImage = useOnRequestInsertImage();
1684
1874
  // Insert image
@@ -1694,7 +1884,7 @@ export var useSpreadsheetState = function (_a) {
1694
1884
  // Request insert image
1695
1885
  var onRequestInsertLink = useOnRequestInsertLink();
1696
1886
  // Insert link
1697
- var _8 = __read(useOnInsertLink({
1887
+ var _12 = __read(useOnInsertLink({
1698
1888
  locale: locale,
1699
1889
  sharedStringRegistry: sharedStringRegistry,
1700
1890
  cellXfsRegistry: cellXfsRegistry,
@@ -1704,7 +1894,7 @@ export var useSpreadsheetState = function (_a) {
1704
1894
  enqueueCalculation: enqueueCalculation,
1705
1895
  onChangeSheetData: onChangeSheetData,
1706
1896
  onCommand: onCommand,
1707
- }), 3), onInsertLink = _8[0], onRemoveLink = _8[1], onSelectLink = _8[2];
1897
+ }), 3), onInsertLink = _12[0], onRemoveLink = _12[1], onSelectLink = _12[2];
1708
1898
  // Insert checkbox
1709
1899
  var onInsertCheckbox = useOnInsertCheckbox({
1710
1900
  locale: locale,
@@ -1714,11 +1904,11 @@ export var useSpreadsheetState = function (_a) {
1714
1904
  onCommand: onCommand,
1715
1905
  });
1716
1906
  // Banded range
1717
- var _9 = useOnBandedRanges({
1907
+ var _13 = useOnBandedRanges({
1718
1908
  createHistory: createHistory,
1719
1909
  onChangeBandedRanges: onChangeBandedRanges,
1720
1910
  onCommand: onCommand,
1721
- }), onAddBandedRange = _9.onAddBandedRange, onRemoveBandedRange = _9.onRemoveBandedRange;
1911
+ }), onAddBandedRange = _13.onAddBandedRange, onRemoveBandedRange = _13.onRemoveBandedRange;
1722
1912
  // Notes
1723
1913
  var onUpdateNote = useOnUpdateNote({
1724
1914
  locale: locale,
@@ -1737,22 +1927,31 @@ export var useSpreadsheetState = function (_a) {
1737
1927
  enqueueStructureChange: enqueueStructureChange,
1738
1928
  enqueueGraphOperation: enqueueGraphOperation,
1739
1929
  onChangeSheetData: onChangeSheetData,
1930
+ onChangeSheets: onChangeSheets,
1931
+ getCellData: getCellData,
1740
1932
  getDependents: getDependents,
1741
1933
  isHiddenRow: isHiddenRow,
1934
+ isManuallyHiddenRow: isManuallyHiddenRow,
1742
1935
  getFrozenRowCount: getFrozenRowCount,
1743
1936
  getSheetName: getSheetName,
1744
1937
  getEffectiveFormat: getEffectiveFormat,
1745
1938
  theme: theme,
1746
1939
  });
1747
1940
  // Protect range
1748
- var _10 = useOnProtectRange({
1941
+ var _14 = useOnProtectRange({
1749
1942
  idCreationStrategy: idCreationStrategy,
1750
1943
  createHistory: createHistory,
1751
1944
  onChangeProtectedRanges: onChangeProtectedRanges,
1752
1945
  onCommand: onCommand,
1753
- }), onProtectRange = _10.onProtectRange, onUnProtectRange = _10.onUnProtectRange;
1946
+ }), onProtectRange = _14.onProtectRange, onUnProtectRange = _14.onUnProtectRange;
1947
+ // Custom table styles (Excel's New Table Style)
1948
+ var onCreateCustomTableStyle = useOnCreateCustomTableStyle({
1949
+ createHistory: createHistory,
1950
+ onChangeCustomTableStyles: onChangeCustomTableStyles,
1951
+ onCommand: onCommand,
1952
+ });
1754
1953
  // Indent
1755
- var _11 = useIndent({
1954
+ var _15 = useIndent({
1756
1955
  locale: locale,
1757
1956
  createHistory: createHistory,
1758
1957
  onChangeSheetData: onChangeSheetData,
@@ -1760,7 +1959,7 @@ export var useSpreadsheetState = function (_a) {
1760
1959
  cellXfsRegistry: cellXfsRegistry,
1761
1960
  getDataValidationById: getDataValidationById,
1762
1961
  onCommand: onCommand,
1763
- }), onIncreaseIndent = _11.onIncreaseIndent, onDecreaseIndent = _11.onDecreaseIndent, onChangeIndent = _11.onChangeIndent;
1962
+ }), onIncreaseIndent = _15.onIncreaseIndent, onDecreaseIndent = _15.onDecreaseIndent, onChangeIndent = _15.onChangeIndent;
1764
1963
  var onAutoResize = useOnAutoResize({
1765
1964
  onChangeSheets: onChangeSheets,
1766
1965
  createHistory: createHistory,
@@ -1819,13 +2018,13 @@ export var useSpreadsheetState = function (_a) {
1819
2018
  onStreamEnd: onStreamEnd,
1820
2019
  });
1821
2020
  // Conditional format actions
1822
- var _12 = useConditionalFormattingRules({
2021
+ var _16 = useConditionalFormattingRules({
1823
2022
  enqueueCalculation: enqueueCalculation,
1824
2023
  onChangeConditionalFormats: onChangeConditionalFormats,
1825
2024
  createHistory: createHistory,
1826
- }), onCreateConditionalFormattingRule = _12.onCreateConditionalFormattingRule, onUpdateConditionalFormattingRule = _12.onUpdateConditionalFormattingRule, onDeleteConditionalFormattingRule = _12.onDeleteConditionalFormattingRule, onPreviewConditionalFormattingRule = _12.onPreviewConditionalFormattingRule;
2025
+ }), onCreateConditionalFormattingRule = _16.onCreateConditionalFormattingRule, onUpdateConditionalFormattingRule = _16.onUpdateConditionalFormattingRule, onDeleteConditionalFormattingRule = _16.onDeleteConditionalFormattingRule, onPreviewConditionalFormattingRule = _16.onPreviewConditionalFormattingRule;
1827
2026
  // Data validations
1828
- var _13 = useDataValidationRules({
2027
+ var _17 = useDataValidationRules({
1829
2028
  locale: locale,
1830
2029
  onChangeDataValidations: onChangeDataValidations,
1831
2030
  onChangeSheetData: onChangeSheetData,
@@ -1835,7 +2034,7 @@ export var useSpreadsheetState = function (_a) {
1835
2034
  getSheetName: getSheetName,
1836
2035
  cellXfsRegistry: cellXfsRegistry,
1837
2036
  sharedStringRegistry: sharedStringRegistry,
1838
- }), onCreateDataValidationRule = _13.onCreateDataValidationRule, onUpdateDataValidationRule = _13.onUpdateDataValidationRule, onDeleteDataValidationRule = _13.onDeleteDataValidationRule, onDeleteDataValidationRules = _13.onDeleteDataValidationRules;
2037
+ }), onCreateDataValidationRule = _17.onCreateDataValidationRule, onUpdateDataValidationRule = _17.onUpdateDataValidationRule, onDeleteDataValidationRule = _17.onDeleteDataValidationRule, onDeleteDataValidationRules = _17.onDeleteDataValidationRules;
1839
2038
  // Request datavalidation
1840
2039
  var onRequestDataValidation = useOnRequestDataValidation({
1841
2040
  onCreateDataValidationRule: onCreateDataValidationRule,
@@ -1851,7 +2050,7 @@ export var useSpreadsheetState = function (_a) {
1851
2050
  onCommand: onCommand,
1852
2051
  });
1853
2052
  // Read excel file
1854
- var _14 = useOnImportExcelFile({
2053
+ var _18 = useOnImportExcelFile({
1855
2054
  enableExcelImportHistory: enableExcelImportHistory,
1856
2055
  onRequestFonts: onRequestFonts,
1857
2056
  onChangeHistory: onChangeHistory,
@@ -1867,6 +2066,7 @@ export var useSpreadsheetState = function (_a) {
1867
2066
  onCreateDataValidationRule: onCreateDataValidationRule,
1868
2067
  onChangeTheme: onChangeTheme,
1869
2068
  onChangeNamedCellStyles: onChangeNamedCellStyles,
2069
+ onChangeCustomTableStyles: onChangeCustomTableStyles,
1870
2070
  onClearHistory: onClearHistory,
1871
2071
  evaluateConditionalFormatting: evaluateConditionalFormatting,
1872
2072
  evaluateDataValidations: evaluateDataValidations,
@@ -1877,7 +2077,7 @@ export var useSpreadsheetState = function (_a) {
1877
2077
  onChangePivotTables: onChangePivotTables,
1878
2078
  onConfirm: onConfirm,
1879
2079
  onPrompt: onPrompt,
1880
- }), importExcelFile = _14.importExcelFile, isImportingExcelfile = _14.isImportingExcelfile, generateStatePatches = _14.generateStatePatches;
2080
+ }), importExcelFile = _18.importExcelFile, isImportingExcelfile = _18.isImportingExcelfile, generateStatePatches = _18.generateStatePatches;
1881
2081
  // Read csv file
1882
2082
  var importCSVFile = useOnImportCSV({
1883
2083
  sheetId: activeSheetId,
@@ -1910,7 +2110,7 @@ export var useSpreadsheetState = function (_a) {
1910
2110
  getDependents: getDependents,
1911
2111
  }).importCSVFile;
1912
2112
  // Drag n drop files
1913
- var _15 = useOnDragnDrop({
2113
+ var _19 = useOnDragnDrop({
1914
2114
  sheetId: activeSheetId,
1915
2115
  locale: locale,
1916
2116
  fileSizeLimit: fileSizeLimit,
@@ -1931,7 +2131,7 @@ export var useSpreadsheetState = function (_a) {
1931
2131
  enabledSharedStrings: sharedStringRegistry.active,
1932
2132
  onConfirm: onConfirm,
1933
2133
  onPrompt: onPrompt,
1934
- }), onDragOver = _15.onDragOver, onDrop = _15.onDrop, onInsertFile = _15.onInsertFile;
2134
+ }), onDragOver = _19.onDragOver, onDrop = _19.onDrop, onInsertFile = _19.onInsertFile;
1935
2135
  // Split text to columns
1936
2136
  var onSplitTextToColumns = useSplitTextToColumns({
1937
2137
  createHistory: createHistory,
@@ -1947,11 +2147,13 @@ export var useSpreadsheetState = function (_a) {
1947
2147
  createHistory: createHistory,
1948
2148
  enqueueCalculation: enqueueCalculation,
1949
2149
  onChangeSheetData: onChangeSheetData,
2150
+ onChangeTables: onChangeTables,
1950
2151
  locale: locale,
1951
2152
  cellXfsRegistry: cellXfsRegistry,
1952
2153
  sharedStringRegistry: sharedStringRegistry,
1953
2154
  getFormattedValue: getFormattedValue,
1954
2155
  onCommand: onCommand,
2156
+ tables: tables,
1955
2157
  });
1956
2158
  // Goal Seek — scratch-evaluates through the calculator, commits via onChange
1957
2159
  var onGoalSeek = useOnGoalSeek({
@@ -1972,6 +2174,7 @@ export var useSpreadsheetState = function (_a) {
1972
2174
  onChangeBatch: onChangeBatch,
1973
2175
  onGroupRows: onGroupRows,
1974
2176
  onUngroupRows: onUngroupRows,
2177
+ batchHistory: batchHistory,
1975
2178
  });
1976
2179
  // Data → Advanced filter (criteria range) over the hide/show/write callbacks
1977
2180
  var onAdvancedFilter = useOnAdvancedFilter({
@@ -1982,25 +2185,27 @@ export var useSpreadsheetState = function (_a) {
1982
2185
  onChangeBatch: onChangeBatch,
1983
2186
  });
1984
2187
  // Trace dependents and precedents
1985
- var _16 = useOnTraceDependentsPrecedents({
2188
+ var _20 = useOnTraceDependentsPrecedents({
1986
2189
  getDependents: getDependents,
1987
2190
  getPrecedents: getPrecedents,
1988
- }), arrows = _16.arrows, onRemoveArrows = _16.onRemoveArrows, onTraceDependents = _16.onTraceDependents, onTracePrecedents = _16.onTracePrecedents;
2191
+ }), arrows = _20.arrows, onRemoveArrows = _20.onRemoveArrows, onTraceDependents = _20.onTraceDependents, onTracePrecedents = _20.onTracePrecedents;
1989
2192
  // Comments
1990
- var _17 = useComments({
2193
+ var _21 = useComments({
1991
2194
  onChangeSheetData: onChangeSheetData,
1992
2195
  createHistory: createHistory,
1993
2196
  locale: locale,
1994
- }), onInsertComment = _17.onInsertComment, onRemoveComment = _17.onRemoveComment;
2197
+ }), onInsertComment = _21.onInsertComment, onRemoveComment = _21.onRemoveComment;
1995
2198
  // Citations
1996
- var _18 = useCitations({
2199
+ var _22 = useCitations({
1997
2200
  onChangeSheetData: onChangeSheetData,
1998
2201
  onChangeCitations: onChangeCitations,
1999
2202
  createHistory: createHistory,
2000
2203
  locale: locale,
2001
- }), onCreateCitation = _18.onCreateCitation, onUpdateCitation = _18.onUpdateCitation, onRemoveCitationFromCell = _18.onRemoveCitationFromCell, onDeleteCitation = _18.onDeleteCitation;
2204
+ }), onCreateCitation = _22.onCreateCitation, onUpdateCitation = _22.onUpdateCitation, onRemoveCitationFromCell = _22.onRemoveCitationFromCell, onDeleteCitation = _22.onDeleteCitation;
2002
2205
  return {
2003
2206
  namedCellStyles: namedCellStyles,
2207
+ customTableStyles: customTableStyles,
2208
+ onCreateCustomTableStyle: onCreateCustomTableStyle,
2004
2209
  activeCellBySheetId: activeCellBySheetId,
2005
2210
  selectionsBySheetId: selectionsBySheetId,
2006
2211
  activeCell: activeCell,
@@ -2017,6 +2222,7 @@ export var useSpreadsheetState = function (_a) {
2017
2222
  columnMetadata: columnMetadata,
2018
2223
  merges: merges,
2019
2224
  bandedRanges: bandedRanges,
2225
+ onPreviewTableStyle: onPreviewTableStyle,
2020
2226
  basicFilter: basicFilter,
2021
2227
  spreadsheetColors: spreadsheetColors,
2022
2228
  isDarkMode: isDarkMode,
@@ -2043,6 +2249,7 @@ export var useSpreadsheetState = function (_a) {
2043
2249
  getUserEnteredValue: getUserEnteredValue,
2044
2250
  getFormattedValue: getFormattedValue,
2045
2251
  createHistory: createHistory,
2252
+ batchHistory: batchHistory,
2046
2253
  onRequestCalculate: onRequestCalculate,
2047
2254
  enqueueCalculation: enqueueCalculation,
2048
2255
  enqueueGraphOperation: enqueueGraphOperation,
@@ -2103,13 +2310,22 @@ export var useSpreadsheetState = function (_a) {
2103
2310
  onResizeEmbed: onResizeEmbed,
2104
2311
  onDeleteEmbed: onDeleteEmbed,
2105
2312
  onCreateEmbed: onCreateEmbed,
2313
+ onUpdateEmbed: onUpdateEmbed,
2106
2314
  onRequestEditEmbed: onRequestEditEmbed,
2315
+ onChangeZOrder: onChangeZOrder,
2107
2316
  onMoveSlicer: onMoveSlicer,
2108
2317
  onResizeSlicer: onResizeSlicer,
2109
2318
  onDeleteSlicer: onDeleteSlicer,
2110
2319
  onCreateSlicer: onCreateSlicer,
2111
2320
  onUpdateSlicer: onUpdateSlicer,
2112
2321
  onRequestEditSlicer: onRequestEditSlicer,
2322
+ getSparklineGroup: getSparklineGroup,
2323
+ getSparklineAt: getSparklineAt,
2324
+ onCreateSparklineGroup: onCreateSparklineGroup,
2325
+ onUpdateSparklineGroup: onUpdateSparklineGroup,
2326
+ onDeleteSparklineGroup: onDeleteSparklineGroup,
2327
+ onClearSparklines: onClearSparklines,
2328
+ onGroupSparklines: onGroupSparklines,
2113
2329
  onDeleteRow: onDeleteRow,
2114
2330
  onDeleteColumn: onDeleteColumn,
2115
2331
  onDeleteCellsShiftUp: onDeleteCellsShiftUp,
@@ -2127,6 +2343,9 @@ export var useSpreadsheetState = function (_a) {
2127
2343
  onFilterTable: onFilterTable,
2128
2344
  onDeleteFilter: onDeleteFilter,
2129
2345
  onResizeTable: onResizeTable,
2346
+ onUndoTableAutoExpansion: onUndoTableAutoExpansion,
2347
+ onUndoCalculatedColumn: onUndoCalculatedColumn,
2348
+ onOverwriteCalculatedColumn: onOverwriteCalculatedColumn,
2130
2349
  onInsertTableColumn: onInsertTableColumn,
2131
2350
  onInsertTableRow: onInsertTableRow,
2132
2351
  onDeleteTableColumn: onDeleteTableColumn,
@@ -2135,8 +2354,11 @@ export var useSpreadsheetState = function (_a) {
2135
2354
  onPaste: onPaste,
2136
2355
  onCreateBasicFilter: onCreateBasicFilter,
2137
2356
  onCreateTable: onCreateTable,
2357
+ onRequestCreateTable: onRequestCreateTable,
2138
2358
  onRemoveTable: onRemoveTable,
2139
2359
  onRequestEditTable: onRequestEditTable,
2360
+ onRequestResizeTable: onRequestResizeTable,
2361
+ onRequestInsertSlicer: onRequestInsertSlicer,
2140
2362
  onUpdateTable: onUpdateTable,
2141
2363
  onRequestDefineNamedRange: onRequestDefineNamedRange,
2142
2364
  onRequestUpdateNamedRange: onRequestUpdateNamedRange,