@rowsncolumns/spreadsheet-state 28.0.76 → 29.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +122 -6
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +464 -43
  4. package/dist/cjs/api/copy-paste.d.ts +8 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +4 -4
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/immer-utils.d.ts +11 -1
  14. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  15. package/dist/cjs/api/immer-utils.js +17 -1
  16. package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
  17. package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
  18. package/dist/cjs/api/insert-cut-cells.js +60 -0
  19. package/dist/cjs/api/merges.d.ts +8 -0
  20. package/dist/cjs/api/merges.d.ts.map +1 -1
  21. package/dist/cjs/api/merges.js +11 -0
  22. package/dist/cjs/api/paint-format.d.ts +22 -1
  23. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  24. package/dist/cjs/api/paint-format.js +57 -1
  25. package/dist/cjs/api/sort.d.ts +23 -1
  26. package/dist/cjs/api/sort.d.ts.map +1 -1
  27. package/dist/cjs/api/sort.js +52 -6
  28. package/dist/cjs/api/structural-guards.d.ts +57 -0
  29. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  30. package/dist/cjs/api/structural-guards.js +93 -1
  31. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  32. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  33. package/dist/cjs/api/structural-table-refs.js +177 -16
  34. package/dist/cjs/api/subtotal.d.ts +20 -13
  35. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  36. package/dist/cjs/api/subtotal.js +26 -19
  37. package/dist/cjs/api/table.d.ts +26 -2
  38. package/dist/cjs/api/table.d.ts.map +1 -1
  39. package/dist/cjs/api/table.js +93 -60
  40. package/dist/cjs/api/validation.d.ts.map +1 -1
  41. package/dist/cjs/api/validation.js +53 -8
  42. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  43. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  45. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  47. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  48. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  49. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  50. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  51. package/dist/cjs/atoms/index.d.ts +4 -0
  52. package/dist/cjs/atoms/index.d.ts.map +1 -1
  53. package/dist/cjs/atoms/index.js +4 -0
  54. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  55. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  56. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  57. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  58. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  59. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  60. package/dist/cjs/commands.d.ts +138 -2
  61. package/dist/cjs/commands.d.ts.map +1 -1
  62. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  63. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  64. package/dist/cjs/components/editors/embed-editor.js +38 -9
  65. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  66. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  67. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  68. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  69. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  70. package/dist/cjs/components/editors/table-editor.js +261 -20
  71. package/dist/cjs/components/index.d.ts +1 -0
  72. package/dist/cjs/components/index.d.ts.map +1 -1
  73. package/dist/cjs/components/index.js +1 -0
  74. package/dist/cjs/constants.d.ts +9 -1
  75. package/dist/cjs/constants.d.ts.map +1 -1
  76. package/dist/cjs/constants.js +12 -0
  77. package/dist/cjs/generated-names.d.ts +13 -3
  78. package/dist/cjs/generated-names.d.ts.map +1 -1
  79. package/dist/cjs/generated-names.js +3 -1
  80. package/dist/cjs/helpers.d.ts +5 -0
  81. package/dist/cjs/helpers.d.ts.map +1 -1
  82. package/dist/cjs/helpers.js +10 -1
  83. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  84. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  86. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  87. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  89. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  90. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  92. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  93. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-change.js +218 -136
  95. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  96. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-copy.js +2 -3
  98. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  99. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  100. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  101. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  102. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  104. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  105. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  107. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  108. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  110. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  111. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  113. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  114. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  116. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
  117. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  118. package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
  119. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  120. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  121. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  122. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  123. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  124. package/dist/cjs/hooks/use-on-delete.js +5 -1
  125. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  126. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  127. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  128. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  129. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  130. package/dist/cjs/hooks/use-on-fill.js +29 -15
  131. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  133. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  134. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  136. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  137. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  139. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  140. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  142. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  143. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  145. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  146. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  148. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  149. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  151. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  152. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  154. package/dist/cjs/hooks/use-on-move-columns.d.ts +4 -1
  155. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  156. package/dist/cjs/hooks/use-on-move-columns.js +28 -6
  157. package/dist/cjs/hooks/use-on-move-rows.d.ts +18 -1
  158. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  159. package/dist/cjs/hooks/use-on-move-rows.js +44 -6
  160. package/dist/cjs/hooks/use-on-move-selection.d.ts +9 -2
  161. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  162. package/dist/cjs/hooks/use-on-move-selection.js +101 -25
  163. package/dist/cjs/hooks/use-on-paste.d.ts +33 -2
  164. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-paste.js +1005 -740
  166. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  167. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  169. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  170. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  171. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  172. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  173. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  174. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  175. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  176. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  177. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  178. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  179. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  181. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  182. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  183. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  184. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  185. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  187. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  188. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  190. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  191. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  193. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  194. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-on-table.js +257 -49
  196. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  197. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  199. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  200. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  202. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  203. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  204. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  205. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  206. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  207. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  208. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  209. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  210. package/dist/cjs/hooks/use-slicers.js +17 -26
  211. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  212. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  213. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  214. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +69 -12
  215. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  216. package/dist/cjs/hooks/use-spreadsheet-state.js +383 -84
  217. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  218. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  219. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  220. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  221. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  222. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  223. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  224. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  225. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  226. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  227. package/dist/cjs/index.d.ts +8 -0
  228. package/dist/cjs/index.d.ts.map +1 -1
  229. package/dist/cjs/index.js +9 -0
  230. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  231. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  232. package/dist/cjs/interface/apply-fill.js +207 -98
  233. package/dist/cjs/interface/change-batch.d.ts +1 -1
  234. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  235. package/dist/cjs/interface/change-batch.js +112 -15
  236. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  237. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  238. package/dist/cjs/interface/change-calculated-column.js +87 -17
  239. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  240. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/change-table-column.js +336 -76
  242. package/dist/cjs/interface/create-table.d.ts +15 -3
  243. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  244. package/dist/cjs/interface/create-table.js +100 -25
  245. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  246. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
  248. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  249. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
  251. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  252. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-cells.js +81 -25
  254. package/dist/cjs/interface/delete-column.d.ts +1 -1
  255. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  256. package/dist/cjs/interface/delete-column.js +29 -22
  257. package/dist/cjs/interface/delete-row.d.ts +1 -1
  258. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  259. package/dist/cjs/interface/delete-row.js +244 -39
  260. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  261. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  262. package/dist/cjs/interface/delete-sheet.js +118 -1
  263. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  264. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  265. package/dist/cjs/interface/delete-table-column.js +11 -1
  266. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  267. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  268. package/dist/cjs/interface/delete-table-row.js +361 -275
  269. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  270. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  271. package/dist/cjs/interface/embeds.d.ts +10 -1
  272. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  273. package/dist/cjs/interface/embeds.js +120 -6
  274. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  275. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  276. package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
  277. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  278. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  279. package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
  280. package/dist/cjs/interface/insert-column.d.ts +2 -2
  281. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  282. package/dist/cjs/interface/insert-column.js +101 -56
  283. package/dist/cjs/interface/insert-row.d.ts +1 -1
  284. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  285. package/dist/cjs/interface/insert-row.js +25 -7
  286. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  287. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  288. package/dist/cjs/interface/insert-table-row.js +70 -19
  289. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  290. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  291. package/dist/cjs/interface/remove-duplicates.js +46 -6
  292. package/dist/cjs/interface/remove-table.d.ts +1 -1
  293. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/remove-table.js +72 -16
  295. package/dist/cjs/interface/slicers.d.ts +12 -1
  296. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  297. package/dist/cjs/interface/slicers.js +47 -2
  298. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  299. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  300. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  301. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  302. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  303. package/dist/cjs/interface/table-totalrow.js +107 -73
  304. package/dist/cjs/interface/table-utils.d.ts +59 -6
  305. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  306. package/dist/cjs/interface/table-utils.js +211 -15
  307. package/dist/cjs/interface/update-table.d.ts +16 -1
  308. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  309. package/dist/cjs/interface/update-table.js +190 -44
  310. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  311. package/dist/cjs/test-setup.d.ts.map +1 -1
  312. package/dist/cjs/test-setup.js +6 -0
  313. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  314. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  315. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  316. package/dist/cjs/validation-schema/table.schema.js +20 -3
  317. package/dist/esm/api/anchored-objects.d.ts +122 -6
  318. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  319. package/dist/esm/api/anchored-objects.js +375 -15
  320. package/dist/esm/api/copy-paste.d.ts +8 -2
  321. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  322. package/dist/esm/api/copy-paste.js +4 -4
  323. package/dist/esm/api/filter.d.ts +15 -1
  324. package/dist/esm/api/filter.d.ts.map +1 -1
  325. package/dist/esm/api/filter.js +28 -0
  326. package/dist/esm/api/formula.d.ts +63 -0
  327. package/dist/esm/api/formula.d.ts.map +1 -1
  328. package/dist/esm/api/formula.js +235 -8
  329. package/dist/esm/api/immer-utils.d.ts +11 -1
  330. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  331. package/dist/esm/api/immer-utils.js +16 -0
  332. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  333. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  334. package/dist/esm/api/insert-cut-cells.js +67 -0
  335. package/dist/esm/api/merges.d.ts +8 -0
  336. package/dist/esm/api/merges.d.ts.map +1 -1
  337. package/dist/esm/api/merges.js +9 -0
  338. package/dist/esm/api/paint-format.d.ts +22 -1
  339. package/dist/esm/api/paint-format.d.ts.map +1 -1
  340. package/dist/esm/api/paint-format.js +44 -1
  341. package/dist/esm/api/sort.d.ts +23 -1
  342. package/dist/esm/api/sort.d.ts.map +1 -1
  343. package/dist/esm/api/sort.js +45 -6
  344. package/dist/esm/api/structural-guards.d.ts +57 -0
  345. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  346. package/dist/esm/api/structural-guards.js +85 -0
  347. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  348. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  349. package/dist/esm/api/structural-table-refs.js +126 -6
  350. package/dist/esm/api/subtotal.d.ts +20 -13
  351. package/dist/esm/api/subtotal.d.ts.map +1 -1
  352. package/dist/esm/api/subtotal.js +15 -8
  353. package/dist/esm/api/table.d.ts +26 -2
  354. package/dist/esm/api/table.d.ts.map +1 -1
  355. package/dist/esm/api/table.js +70 -48
  356. package/dist/esm/api/validation.d.ts.map +1 -1
  357. package/dist/esm/api/validation.js +53 -8
  358. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  359. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  360. package/dist/esm/atoms/creating-table.atom.js +4 -0
  361. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  362. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  363. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  364. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  365. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  366. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  367. package/dist/esm/atoms/index.d.ts +4 -0
  368. package/dist/esm/atoms/index.d.ts.map +1 -1
  369. package/dist/esm/atoms/index.js +4 -0
  370. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  371. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  372. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  373. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  374. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  375. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  376. package/dist/esm/commands.d.ts +138 -2
  377. package/dist/esm/commands.d.ts.map +1 -1
  378. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  379. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  380. package/dist/esm/components/editors/embed-editor.js +40 -6
  381. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  382. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  383. package/dist/esm/components/editors/slicer-editor.js +85 -0
  384. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  385. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  386. package/dist/esm/components/editors/table-editor.js +243 -19
  387. package/dist/esm/components/index.d.ts +1 -0
  388. package/dist/esm/components/index.d.ts.map +1 -1
  389. package/dist/esm/components/index.js +1 -0
  390. package/dist/esm/constants.d.ts +9 -1
  391. package/dist/esm/constants.d.ts.map +1 -1
  392. package/dist/esm/constants.js +12 -0
  393. package/dist/esm/generated-names.d.ts +13 -3
  394. package/dist/esm/generated-names.d.ts.map +1 -1
  395. package/dist/esm/generated-names.js +3 -1
  396. package/dist/esm/helpers.d.ts +5 -0
  397. package/dist/esm/helpers.d.ts.map +1 -1
  398. package/dist/esm/helpers.js +7 -1
  399. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  400. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  402. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  405. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  406. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  408. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  409. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-change.js +214 -124
  411. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  412. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-copy.js +2 -3
  414. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  415. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  416. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  417. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  418. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  419. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  420. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  421. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  422. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  423. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  424. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  425. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  426. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  427. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  428. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  429. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  430. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  431. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  432. package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
  433. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  434. package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
  435. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  436. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  437. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  438. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  439. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  440. package/dist/esm/hooks/use-on-delete.js +5 -1
  441. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  442. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  443. package/dist/esm/hooks/use-on-embeds.js +23 -6
  444. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  445. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  446. package/dist/esm/hooks/use-on-fill.js +27 -1
  447. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  449. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  450. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  452. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  453. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  455. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  456. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  457. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  458. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  459. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  460. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  461. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  462. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  463. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  464. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  465. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  467. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  468. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  470. package/dist/esm/hooks/use-on-move-columns.d.ts +4 -1
  471. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-move-columns.js +28 -6
  473. package/dist/esm/hooks/use-on-move-rows.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-move-rows.js +44 -6
  476. package/dist/esm/hooks/use-on-move-selection.d.ts +9 -2
  477. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-move-selection.js +57 -1
  479. package/dist/esm/hooks/use-on-paste.d.ts +33 -2
  480. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-paste.js +825 -643
  482. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  483. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  484. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  485. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  486. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  488. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  489. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  490. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  491. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  492. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  493. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  494. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  495. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  497. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  498. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  499. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  500. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  501. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  503. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  504. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  505. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  506. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  507. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  508. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  509. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  510. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  511. package/dist/esm/hooks/use-on-table.js +234 -26
  512. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  513. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  514. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  515. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  516. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  517. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  518. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  519. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  520. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  521. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  522. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  523. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  524. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  525. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  526. package/dist/esm/hooks/use-slicers.js +16 -8
  527. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  528. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  529. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  530. package/dist/esm/hooks/use-spreadsheet-state.d.ts +69 -12
  531. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  532. package/dist/esm/hooks/use-spreadsheet-state.js +321 -14
  533. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  534. package/dist/esm/hooks/use-structured-reference.js +17 -0
  535. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  536. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  537. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  538. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  539. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  540. package/dist/esm/hooks/use-undo-redo.js +158 -7
  541. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  542. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  543. package/dist/esm/index.d.ts +8 -0
  544. package/dist/esm/index.d.ts.map +1 -1
  545. package/dist/esm/index.js +9 -0
  546. package/dist/esm/interface/apply-fill.d.ts +26 -3
  547. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  548. package/dist/esm/interface/apply-fill.js +188 -88
  549. package/dist/esm/interface/change-batch.d.ts +1 -1
  550. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  551. package/dist/esm/interface/change-batch.js +89 -8
  552. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  553. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  554. package/dist/esm/interface/change-calculated-column.js +81 -16
  555. package/dist/esm/interface/change-table-column.d.ts +81 -7
  556. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  557. package/dist/esm/interface/change-table-column.js +295 -67
  558. package/dist/esm/interface/create-table.d.ts +15 -3
  559. package/dist/esm/interface/create-table.d.ts.map +1 -1
  560. package/dist/esm/interface/create-table.js +103 -27
  561. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  562. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  563. package/dist/esm/interface/delete-cells-shift-left.js +10 -1
  564. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  565. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  566. package/dist/esm/interface/delete-cells-shift-up.js +10 -1
  567. package/dist/esm/interface/delete-cells.d.ts +1 -1
  568. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  569. package/dist/esm/interface/delete-cells.js +47 -14
  570. package/dist/esm/interface/delete-column.d.ts +1 -1
  571. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  572. package/dist/esm/interface/delete-column.js +26 -30
  573. package/dist/esm/interface/delete-row.d.ts +1 -1
  574. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  575. package/dist/esm/interface/delete-row.js +191 -44
  576. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  577. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  578. package/dist/esm/interface/delete-sheet.js +113 -1
  579. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  580. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  581. package/dist/esm/interface/delete-table-column.js +11 -1
  582. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  583. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  584. package/dist/esm/interface/delete-table-row.js +312 -232
  585. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  586. package/dist/esm/interface/duplicate-sheet.js +73 -26
  587. package/dist/esm/interface/embeds.d.ts +10 -1
  588. package/dist/esm/interface/embeds.d.ts.map +1 -1
  589. package/dist/esm/interface/embeds.js +84 -5
  590. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  591. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  592. package/dist/esm/interface/insert-cells-shift-down.js +10 -1
  593. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  594. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  595. package/dist/esm/interface/insert-cells-shift-right.js +10 -1
  596. package/dist/esm/interface/insert-column.d.ts +2 -2
  597. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  598. package/dist/esm/interface/insert-column.js +70 -33
  599. package/dist/esm/interface/insert-row.d.ts +1 -1
  600. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  601. package/dist/esm/interface/insert-row.js +22 -6
  602. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  603. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  604. package/dist/esm/interface/insert-table-row.js +67 -12
  605. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  606. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  607. package/dist/esm/interface/remove-duplicates.js +41 -6
  608. package/dist/esm/interface/remove-table.d.ts +1 -1
  609. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  610. package/dist/esm/interface/remove-table.js +58 -10
  611. package/dist/esm/interface/slicers.d.ts +12 -1
  612. package/dist/esm/interface/slicers.d.ts.map +1 -1
  613. package/dist/esm/interface/slicers.js +44 -2
  614. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  615. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  616. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  617. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  618. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  619. package/dist/esm/interface/table-totalrow.js +98 -68
  620. package/dist/esm/interface/table-utils.d.ts +59 -6
  621. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  622. package/dist/esm/interface/table-utils.js +155 -14
  623. package/dist/esm/interface/update-table.d.ts +16 -1
  624. package/dist/esm/interface/update-table.d.ts.map +1 -1
  625. package/dist/esm/interface/update-table.js +203 -42
  626. package/dist/esm/sheet-cell.d.ts.map +1 -1
  627. package/dist/esm/test-setup.d.ts.map +1 -1
  628. package/dist/esm/test-setup.js +6 -0
  629. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  630. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  631. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  632. package/dist/esm/validation-schema/table.schema.js +15 -2
  633. package/package.json +25 -17
@@ -1,24 +1,131 @@
1
1
  import { isStaticNode } from "@rowsncolumns/dag";
2
- import { getCellXfsKey, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
2
+ import { areaIntersects, getCellXfsKey, isNil, iterateCellsInRange, isAFormula, } from "@rowsncolumns/utils";
3
3
  import { produceWithPatches } from "immer";
4
+ import { growChartsWithTable, tableBinding } from "../api/anchored-objects";
4
5
  import { createSheetCellIdentifier } from "../api/formula";
5
6
  import { createSheetDraft } from "../api/immer-utils";
6
7
  import { removeTableName } from "../api/table";
7
8
  import { getNextTableColumnName } from "../helpers";
8
9
  import { SheetCell } from "../sheet-cell";
9
- export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistry, onChangeSheetData, onChangeTables, getDependents, enqueueCalculation, enqueueGraphOperation, createHistory, tokenizer, generatedNames, }) => (sheetId, coords, value, currentTable, isRowExpansion, isColumnExpansion, range) => {
10
+ import { getUniqueTableColumnName } from "./table-utils";
11
+ /**
12
+ * The header cells a block write (paste, change-batch) lands on, with the name each column takes —
13
+ * the typed-header rule: the cell's text de-duplicated against the table's other names and the
14
+ * names this same write gives earlier cells (`Name`, `Name2`), a blank taking the first free
15
+ * `ColumnN`. A formula is left to the caller (written as typed).
16
+ */
17
+ export const planHeaderCellRenames = ({ sheetId, tables, cells, generatedNames, }) => {
18
+ const renames = [];
19
+ if (!tables?.length)
20
+ return renames;
21
+ const pending = new Map();
22
+ for (const { rowIndex, columnIndex, value } of cells) {
23
+ if (typeof value === "string" && isAFormula(value))
24
+ continue;
25
+ const table = tables.find((candidate) => candidate.sheetId === sheetId &&
26
+ candidate.headerRow !== false &&
27
+ candidate.range.startRowIndex === rowIndex &&
28
+ columnIndex >= candidate.range.startColumnIndex &&
29
+ columnIndex <= candidate.range.endColumnIndex);
30
+ if (!table)
31
+ continue;
32
+ const dimensionIndex = columnIndex - table.range.startColumnIndex;
33
+ const names = pending.get(table.id) ?? new Map();
34
+ const otherColumns = (table.columns ?? [])
35
+ .map((column, index) => ({ name: names.get(index) ?? column.name }))
36
+ .filter((_, index) => index !== dimensionIndex);
37
+ const newName = getTypedTableHeaderName(typeof value === "number" ? String(value) : value, otherColumns, generatedNames);
38
+ names.set(dimensionIndex, newName);
39
+ pending.set(table.id, names);
40
+ renames.push({
41
+ table,
42
+ dimensionIndex,
43
+ rowIndex,
44
+ columnIndex,
45
+ oldName: table.columns?.[dimensionIndex]?.name,
46
+ newName,
47
+ });
48
+ }
49
+ return renames;
50
+ };
51
+ /**
52
+ * The column name a typed header takes (Excel): the typed text, de-duplicated against the table's
53
+ * other columns (`Name`, `Name2`, …); a cleared header takes the first free `ColumnN`.
54
+ */
55
+ export const getTypedTableHeaderName = (value, otherColumns, generatedNames) => value === "" || isNil(value)
56
+ ? getNextTableColumnName([...otherColumns], generatedNames)
57
+ : getUniqueTableColumnName(String(value), otherColumns.map((column) => column.name));
58
+ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistry, onChangeSheetData, onChangeTables, onChangeCharts, getDependents, getSheetName, enqueueCalculation, enqueueGraphOperation, createHistory, tokenizer, generatedNames, tables, }) => (sheetId, coords, value, currentTable, isRowExpansion, isColumnExpansion, range,
59
+ /**
60
+ * The header-row text of every written column from `coords` on (index 0 = `value`), when the
61
+ * write covers the header row — a pasted / filled block right of the table names each new
62
+ * column from its own header cell.
63
+ */
64
+ headerValues) => {
10
65
  if (isNil(currentTable)) {
11
- return;
66
+ return undefined;
67
+ }
68
+ // A table with a totals row never grows by rows (Excel — `findAdjacentTable` and the Rust
69
+ // engine's `grow_tables_over_rect` refuse it): a caller flagging one is writing beside the
70
+ // totals row, and the totals row must not take the calculated columns' formulas.
71
+ if (currentTable.totalRow) {
72
+ isRowExpansion = false;
12
73
  }
13
74
  const recalcCells = new Map();
14
- const newColumnName = isColumnExpansion
15
- ? currentTable.range.startRowIndex === coords.rowIndex
16
- ? value
17
- ? String(value)
18
- : getNextTableColumnName(currentTable.columns ?? undefined, generatedNames)
19
- : getNextTableColumnName(currentTable.columns ?? undefined, generatedNames)
20
- : undefined;
75
+ // What the growth writes besides the user's value — "Undo Table AutoExpansion" clears these.
76
+ const writes = { values: [], formats: [] };
21
77
  const isEnteringNewColumnName = currentTable.range.startRowIndex === coords.rowIndex;
78
+ const firstNewColumnIndex = currentTable.range.endColumnIndex + 1;
79
+ // Every written column from the adjacent one on joins the table (Excel grows by the whole
80
+ // pasted / filled block), stopping at a column another table occupies. Each new column is
81
+ // named from its header cell — de-duplicated against the table's columns AND the columns
82
+ // added before it (`Name`, `Name2`) — or takes the next free `ColumnN`.
83
+ const newColumnNames = [];
84
+ if (isColumnExpansion) {
85
+ const lastWrittenColumnIndex = Math.max(firstNewColumnIndex, range.endColumnIndex);
86
+ for (let columnIndex = firstNewColumnIndex; columnIndex <= lastWrittenColumnIndex; columnIndex++) {
87
+ const line = {
88
+ ...currentTable.range,
89
+ startColumnIndex: columnIndex,
90
+ endColumnIndex: columnIndex,
91
+ };
92
+ if (tables?.some((other) => other.id !== currentTable.id &&
93
+ other.sheetId === sheetId &&
94
+ areaIntersects(other.range, line))) {
95
+ break;
96
+ }
97
+ const taken = [
98
+ ...(currentTable.columns ?? []),
99
+ ...newColumnNames.map((name) => ({ name })),
100
+ ];
101
+ const offset = columnIndex - firstNewColumnIndex;
102
+ const typed = offset === 0 ? value : headerValues?.[offset];
103
+ newColumnNames.push(isEnteringNewColumnName
104
+ ? getTypedTableHeaderName(typeof typed === "number" ? String(typed) : typed, taken, generatedNames)
105
+ : getNextTableColumnName(taken, generatedNames));
106
+ }
107
+ }
108
+ const newColumnName = newColumnNames[0];
109
+ // Every written row from the adjacent one on joins the table (Excel grows by the whole
110
+ // pasted / filled block), stopping at a row another table occupies — row by row, like the rnc
111
+ // engine's `grow_tables_over_rect`. Cells written past that row stay plain cells.
112
+ let lastNewRowIndex = coords.rowIndex - 1;
113
+ if (isRowExpansion) {
114
+ const lastWrittenRowIndex = coords.rowIndex + (range.endRowIndex - range.startRowIndex);
115
+ for (let rowIndex = coords.rowIndex; rowIndex <= lastWrittenRowIndex; rowIndex++) {
116
+ const line = {
117
+ ...currentTable.range,
118
+ startRowIndex: rowIndex,
119
+ endRowIndex: rowIndex,
120
+ };
121
+ if (tables?.some((other) => other.id !== currentTable.id &&
122
+ other.sheetId === sheetId &&
123
+ areaIntersects(other.range, line))) {
124
+ break;
125
+ }
126
+ lastNewRowIndex = rowIndex;
127
+ }
128
+ }
22
129
  const saveHistory = createHistory();
23
130
  const isAdjacentColumn = coords.columnIndex === currentTable.range.endColumnIndex + 1;
24
131
  onChangeSheetData?.((prevSheetData) => {
@@ -29,7 +136,15 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
29
136
  const finalValue = sheetCell.formula && tokenizer
30
137
  ? removeTableName(tokenizer(value), currentTable.title)
31
138
  : value;
32
- sheetCell.setUserEnteredValue(finalValue);
139
+ if (isEnteringNewColumnName && newColumnName) {
140
+ // The new column's header cell reads its (de-duplicated) name, as text.
141
+ sheetCell.setUserEnteredValue(newColumnName, undefined, {
142
+ disableTypeInference: true,
143
+ });
144
+ }
145
+ else {
146
+ sheetCell.setUserEnteredValue(finalValue);
147
+ }
33
148
  currentSheet[coords.rowIndex].values[coords.columnIndex] =
34
149
  sheetCell.getCellData();
35
150
  recalcCells.set(createSheetCellIdentifier(sheetId, coords.rowIndex, coords.columnIndex), {
@@ -37,18 +152,32 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
37
152
  sheetId,
38
153
  });
39
154
  }
40
- if (isColumnExpansion && !isEnteringNewColumnName) {
155
+ // The header cell of every new column reads its name: the first one was written above
156
+ // from `value` when the write covers the header row; the rest (and every column of a
157
+ // body-row write) take theirs here, as text.
158
+ newColumnNames.forEach((name, offset) => {
159
+ if (offset === 0 && isEnteringNewColumnName) {
160
+ return;
161
+ }
41
162
  const columnCell = {
42
163
  rowIndex: currentTable.range.startRowIndex,
43
- columnIndex: currentTable.range.endColumnIndex + 1,
164
+ columnIndex: firstNewColumnIndex + offset,
44
165
  };
45
166
  const currentSheet = createSheetDraft(draft, sheetId, columnCell.rowIndex);
46
- const sheetCell = new SheetCell(sheetId, columnCell, undefined, {
47
- locale,
48
- });
49
- sheetCell.setUserEnteredValue(newColumnName);
167
+ const sheetCell = new SheetCell(sheetId, columnCell, currentSheet[columnCell.rowIndex].values?.[columnCell.columnIndex], { locale, cellXfsRegistry, sharedStringRegistry });
168
+ if (isEnteringNewColumnName) {
169
+ sheetCell.setUserEnteredValue(name, undefined, {
170
+ disableTypeInference: true,
171
+ });
172
+ }
173
+ else {
174
+ sheetCell.setUserEnteredValue(name);
175
+ }
50
176
  currentSheet[columnCell.rowIndex].values[columnCell.columnIndex] =
51
177
  sheetCell.getCellData();
178
+ if (!isEnteringNewColumnName) {
179
+ writes.values.push(columnCell);
180
+ }
52
181
  enqueueGraphOperation({
53
182
  position: { ...columnCell, sheetId },
54
183
  type: "add",
@@ -57,13 +186,13 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
57
186
  ...columnCell,
58
187
  sheetId,
59
188
  });
60
- }
189
+ });
61
190
  if (isRowExpansion) {
62
191
  recalcCells.set(createSheetCellIdentifier(sheetId, coords.rowIndex, coords.columnIndex), {
63
192
  ...coords,
64
193
  sheetId,
65
194
  });
66
- addCalculatedColumnsForRowExpansion({
195
+ writes.values.push(...addCalculatedColumnsForRowExpansion({
67
196
  sheetId,
68
197
  locale,
69
198
  currentTable,
@@ -73,19 +202,19 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
73
202
  range: {
74
203
  ...currentTable.range,
75
204
  startRowIndex: range.startRowIndex,
76
- endRowIndex: range.endRowIndex,
205
+ endRowIndex: lastNewRowIndex,
77
206
  },
78
- getDependents,
79
- });
80
- propagateColumnFormatsForRowExpansion({
207
+ activeSheetName: getSheetName?.(sheetId),
208
+ }));
209
+ writes.formats.push(...propagateColumnFormatsForRowExpansion({
81
210
  sheetId,
82
211
  locale,
83
212
  currentTable,
84
213
  draft,
85
214
  cellXfsRegistry,
86
215
  newRowStart: coords.rowIndex,
87
- newRowEnd: coords.rowIndex + (range.endRowIndex - range.startRowIndex),
88
- });
216
+ newRowEnd: lastNewRowIndex,
217
+ }));
89
218
  }
90
219
  if (isRowExpansion || isColumnExpansion) {
91
220
  processTableDependentCells(currentTable, getDependents, recalcCells, enqueueCalculation);
@@ -105,14 +234,14 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
105
234
  const table = draft.find((table) => table.id === currentTable.id && table.sheetId === sheetId);
106
235
  if (table) {
107
236
  if (isRowExpansion) {
108
- table.range.endRowIndex = Math.max(table.range.endRowIndex, coords.rowIndex + (range.endRowIndex - range.startRowIndex));
237
+ table.range.endRowIndex = Math.max(table.range.endRowIndex, lastNewRowIndex);
109
238
  }
110
- if (isColumnExpansion && newColumnName) {
111
- table.range.endColumnIndex += 1;
112
- table.columns?.push({
113
- name: newColumnName,
239
+ if (newColumnNames.length) {
240
+ table.range.endColumnIndex += newColumnNames.length;
241
+ table.columns?.push(...newColumnNames.map((name) => ({
242
+ name,
114
243
  filterButton: true,
115
- });
244
+ })));
116
245
  }
117
246
  }
118
247
  });
@@ -121,44 +250,140 @@ export const changeTableColumn = ({ locale, cellXfsRegistry, sharedStringRegistr
121
250
  });
122
251
  return nextState;
123
252
  });
253
+ // A chart range bound to the table (a column's body, or header + body) grows with the
254
+ // auto-expansion, like Excel's series on a table column.
255
+ const rowDelta = isRowExpansion
256
+ ? Math.max(0, lastNewRowIndex - currentTable.range.endRowIndex)
257
+ : 0;
258
+ const columnDelta = newColumnNames.length;
259
+ if (!rowDelta && !columnDelta) {
260
+ return undefined;
261
+ }
262
+ onChangeCharts?.((prevCharts) => {
263
+ const [nextState, patches, inversePatches] = produceWithPatches(prevCharts, (draft) => {
264
+ growChartsWithTable(draft, sheetId, tableBinding(currentTable), rowDelta, columnDelta);
265
+ });
266
+ saveHistory({ charts: { patches, inversePatches } });
267
+ return nextState;
268
+ });
269
+ // The record behind Excel's AutoCorrect smart tag ("Undo Table AutoExpansion" resizes the
270
+ // table back to `previousRange` and clears `writes`).
271
+ return {
272
+ sheetId,
273
+ tableId: currentTable.id,
274
+ previousRange: currentTable.range,
275
+ range: {
276
+ ...currentTable.range,
277
+ endRowIndex: currentTable.range.endRowIndex + rowDelta,
278
+ endColumnIndex: currentTable.range.endColumnIndex + columnDelta,
279
+ },
280
+ anchor: coords,
281
+ writes,
282
+ };
283
+ };
284
+ /**
285
+ * The first body row of a table — the row a recorded calculated-column formula
286
+ * (`columns[].formula`, Excel's `<calculatedColumnFormula>`) is written for.
287
+ */
288
+ export const getTableFirstBodyRowIndex = (table) => table.range.startRowIndex + (table.headerRow ?? true ? 1 : 0);
289
+ /**
290
+ * Relativise a formula written for row `fromRowIndex` of a column to row
291
+ * `toRowIndex` of the same column: relative references shift, `$`-anchored
292
+ * and structured references stay put (Excel).
293
+ */
294
+ export const getRowRelativeFormula = (formula, columnIndex, fromRowIndex, toRowIndex, activeSheetName = "") => SheetCell.getRelativeFormula(formula.trim().startsWith("=") ? formula.trim() : `=${formula.trim()}`, { rowIndex: fromRowIndex, columnIndex }, { rowIndex: toRowIndex, columnIndex }, activeSheetName, undefined, false, undefined, undefined, true) ?? formula;
295
+ /**
296
+ * The formula a NEW row of a table column inherits, written for the table's
297
+ * first body row — `undefined` when the column is not a calculated column.
298
+ * The column's cells are the reference: when every non-empty body cell
299
+ * (`bodyEndRowIndex` bounds the rows considered) is a formula and they all
300
+ * agree once relativised, that formula — so a table created over a consistent
301
+ * formula column inherits it, and the template tracks every structural edit
302
+ * the cells went through. Otherwise the recorded `columns[].formula`: a column
303
+ * with a literal exception in it, or an emptied body, is still Excel's
304
+ * calculated column.
305
+ */
306
+ export const getCalculatedColumnTemplate = ({ draft, sheetId, table, columnIndex, bodyEndRowIndex, activeSheetName = "", }) => {
307
+ const firstBodyRowIndex = getTableFirstBodyRowIndex(table);
308
+ const lastBodyRowIndex = bodyEndRowIndex ?? table.range.endRowIndex - (table.totalRow ? 1 : 0);
309
+ const column = table.columns?.[columnIndex - table.range.startColumnIndex];
310
+ const recorded = column?.formula || undefined;
311
+ const probe = new SheetCell();
312
+ let template;
313
+ for (let rowIndex = firstBodyRowIndex; rowIndex <= lastBodyRowIndex; rowIndex++) {
314
+ const cellData = draft[sheetId]?.[rowIndex]?.values?.[columnIndex];
315
+ probe.assign(sheetId, { rowIndex, columnIndex }, cellData);
316
+ const userEnteredValue = probe.getUserEnteredValue();
317
+ if (isNil(userEnteredValue) || userEnteredValue === "") {
318
+ continue;
319
+ }
320
+ const formula = probe.formula;
321
+ if (!formula) {
322
+ return recorded;
323
+ }
324
+ const anchored = getRowRelativeFormula(formula, columnIndex, rowIndex, firstBodyRowIndex, activeSheetName);
325
+ if (template === undefined) {
326
+ template = anchored;
327
+ }
328
+ else if (template !== anchored) {
329
+ return recorded;
330
+ }
331
+ }
332
+ return template ?? recorded;
124
333
  };
125
- export const addCalculatedColumnsForRowExpansion = ({ sheetId, locale, currentTable, draft, recalcCells, range, enqueueCalculation, getDependents, }) => {
334
+ /**
335
+ * Excel table row expansion, formula half: the cells of the NEW body rows
336
+ * (`range`'s rows, already inside the table's range) take each calculated
337
+ * column's formula, row-relativised — auto-grow by typing below, Insert Table
338
+ * Row, and the resize handle all route here. A new cell that already holds a
339
+ * value (the typed one) keeps it.
340
+ */
341
+ export const addCalculatedColumnsForRowExpansion = ({ sheetId, locale, currentTable, draft, recalcCells, range, enqueueCalculation, activeSheetName = "", }) => {
342
+ const written = [];
343
+ if (range.endRowIndex < range.startRowIndex) {
344
+ return written;
345
+ }
346
+ const firstBodyRowIndex = getTableFirstBodyRowIndex(currentTable);
126
347
  const sheetCell = new SheetCell();
127
- for (let i = 0; i < (currentTable.columns?.length ?? 0); i++) {
128
- const column = currentTable.columns?.[i];
129
- if (column && column.formula) {
130
- const newRange = {
131
- ...range,
132
- startRowIndex: currentTable.range.startRowIndex +
133
- (currentTable.headerRow ?? true ? 1 : 0),
134
- startColumnIndex: currentTable.range.startColumnIndex + i,
135
- endColumnIndex: currentTable.range.startColumnIndex + i,
136
- };
137
- for (let rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
138
- for (let columnIndex = newRange.startColumnIndex; columnIndex <= newRange.endColumnIndex; columnIndex++) {
139
- if (!getDependents({ sheetId, rowIndex, columnIndex }).length) {
140
- continue;
141
- }
142
- const currentSheet = createSheetDraft(draft, sheetId, rowIndex);
143
- const cellData = currentSheet[rowIndex].values?.[columnIndex];
144
- sheetCell.assign(sheetId, { rowIndex, columnIndex }, cellData, {
145
- locale,
146
- });
147
- sheetCell.setUserEnteredValue(column.formula);
148
- currentSheet[rowIndex].values[columnIndex] = sheetCell.getCellData();
149
- enqueueCalculation({
150
- type: "add",
151
- position: { rowIndex, columnIndex, sheetId },
152
- });
153
- recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, columnIndex), {
154
- rowIndex,
155
- columnIndex,
156
- sheetId,
157
- });
158
- }
348
+ for (let columnIndex = currentTable.range.startColumnIndex; columnIndex <= currentTable.range.endColumnIndex; columnIndex++) {
349
+ const template = getCalculatedColumnTemplate({
350
+ draft,
351
+ sheetId,
352
+ table: currentTable,
353
+ columnIndex,
354
+ // The new rows are part of the body already; the template comes from
355
+ // the rows above them.
356
+ bodyEndRowIndex: range.startRowIndex - 1,
357
+ activeSheetName,
358
+ });
359
+ if (!template) {
360
+ continue;
361
+ }
362
+ for (let rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
363
+ const currentSheet = createSheetDraft(draft, sheetId, rowIndex);
364
+ const cellData = currentSheet[rowIndex].values?.[columnIndex];
365
+ sheetCell.assign(sheetId, { rowIndex, columnIndex }, cellData, {
366
+ locale,
367
+ });
368
+ const occupied = sheetCell.getUserEnteredValue();
369
+ if (!isNil(occupied) && occupied !== "") {
370
+ continue;
159
371
  }
372
+ sheetCell.setUserEnteredValue(getRowRelativeFormula(template, columnIndex, firstBodyRowIndex, rowIndex, activeSheetName));
373
+ currentSheet[rowIndex].values[columnIndex] = sheetCell.getCellData();
374
+ written.push({ rowIndex, columnIndex });
375
+ enqueueCalculation({
376
+ type: "add",
377
+ position: { rowIndex, columnIndex, sheetId },
378
+ });
379
+ recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, columnIndex), {
380
+ rowIndex,
381
+ columnIndex,
382
+ sheetId,
383
+ });
160
384
  }
161
385
  }
386
+ return written;
162
387
  };
163
388
  /**
164
389
  * When a table auto-expands downward, Excel applies the column's
@@ -173,18 +398,19 @@ export const addCalculatedColumnsForRowExpansion = ({ sheetId, locale, currentTa
173
398
  * (see `apps/spreadsheet/components/canvas-grid` -- `getBandedCells`
174
399
  * / `getBandedCellFormat`), so this only handles user-applied
175
400
  * formats: number format, borders, fill, font, data-validation-driven
176
- * styling, etc.
401
+ * styling, etc. Returns the cells that inherited a format.
177
402
  */
178
403
  export const propagateColumnFormatsForRowExpansion = ({ sheetId, locale, currentTable, draft, cellXfsRegistry, newRowStart, newRowEnd, }) => {
404
+ const written = [];
179
405
  const { startColumnIndex, endColumnIndex, startRowIndex, endRowIndex } = currentTable.range;
180
406
  const bodyStart = startRowIndex + (currentTable.headerRow ?? true ? 1 : 0);
181
407
  const bodyEnd = endRowIndex;
182
408
  if (bodyEnd < bodyStart)
183
- return;
409
+ return written;
184
410
  // No-op: nothing to do when the "new" rows are inside the existing
185
411
  // body range (re-entering an existing row, not expanding).
186
412
  if (newRowStart <= bodyEnd)
187
- return;
413
+ return written;
188
414
  const probe = new SheetCell();
189
415
  const target = new SheetCell();
190
416
  for (let columnIndex = startColumnIndex; columnIndex <= endColumnIndex; columnIndex++) {
@@ -219,8 +445,10 @@ export const propagateColumnFormatsForRowExpansion = ({ sheetId, locale, current
219
445
  continue;
220
446
  target.inheritFormat(sharedFormat);
221
447
  currentSheet[r].values[columnIndex] = target.getCellData();
448
+ written.push({ rowIndex: r, columnIndex });
222
449
  }
223
450
  }
451
+ return written;
224
452
  };
225
453
  export const processTableDependentCells = (table, getDependents, recalcCells, enqueueCalculation) => {
226
454
  const deps = new Set();
@@ -1,5 +1,17 @@
1
- import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
2
- import type { BandedDefinition, CellData, SelectionAttributes, Sheet, TableTheme, TableView } from "@rowsncolumns/spreadsheet";
1
+ import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
2
+ import type { BandedDefinition, CellData, CreateTableOptions, SelectionAttributes, Sheet, TableTheme, TableView } from "@rowsncolumns/spreadsheet";
3
3
  import type { UseOnTableProps } from "../hooks/use-on-table";
4
- export declare const createTable: <T extends CellData, S extends Sheet>({ locale, rowCount, columnCount, tables, basicFilter, theme: spreadsheetTheme, idCreationStrategy, enqueueCalculation, createHistory, onChangeSheets, onChangeTables, onChangeSheetData, getFormattedValue, getEffectiveValue, onRequestCalculate, getDependents, enqueueGraphOperation, getContentfulRangeAroundCell, generatedNames, }: UseOnTableProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], tableSpec?: Partial<TableView>, theme?: TableTheme, bandedRange?: BandedDefinition) => void;
4
+ /**
5
+ * The data range a create-table targets: the spec's range, else the last selection, else the data
6
+ * region around the active cell (Ctrl+A's region), else the active cell. The hook's refusal guards
7
+ * and the create itself must agree on it, so both resolve it here.
8
+ */
9
+ export declare const resolveCreateTableRange: ({ sheetId, activeCell, selections, tableSpec, getContentfulRangeAroundCell, }: {
10
+ sheetId: number;
11
+ activeCell: CellInterface;
12
+ selections: SelectionArea<SelectionAttributes>[];
13
+ tableSpec?: Partial<TableView>;
14
+ getContentfulRangeAroundCell?: UseOnTableProps<CellData, Sheet>["getContentfulRangeAroundCell"];
15
+ }) => GridRange;
16
+ export declare const createTable: <T extends CellData, S extends Sheet>({ locale, rowCount, columnCount, tables, namedRanges, basicFilter, cellXfsRegistry, sharedStringRegistry, theme: spreadsheetTheme, idCreationStrategy, enqueueCalculation, enqueueStructureChange, createHistory, onChangeSheets, onChangeTables, onChangeSheetData, onChangeCitations, onChangeCharts, getActiveCell, getSelections, getFormattedValue, getEffectiveValue, onRequestCalculate, getDependents, getSheetName, enqueueGraphOperation, getContentfulRangeAroundCell, generatedNames, }: UseOnTableProps<T, S>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], tableSpec?: Partial<TableView>, theme?: TableTheme, bandedRange?: BandedDefinition, options?: CreateTableOptions) => void;
5
17
  //# sourceMappingURL=create-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-table.d.ts","sourceRoot":"","sources":["../../../interface/create-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO/E,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,0UAoB9D,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,MAEpB,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAY,OAAO,CAAC,SAAS,CAAC,EAC9B,QAAQ,UAAU,EAClB,cAAc,gBAAgB,SAsIjC,CAAC"}
1
+ {"version":3,"file":"create-table.d.ts","sourceRoot":"","sources":["../../../interface/create-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EAER,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,SAAS,EACV,MAAM,2BAA2B,CAAC;AAanC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,+EAMrC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,4BAA4B,CAAC,EAAE,eAAe,CAC5C,QAAQ,EACR,KAAK,CACN,CAAC,8BAA8B,CAAC,CAAC;CACnC,KAAG,SAQH,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,qeA6B9D,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,MAEpB,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAY,OAAO,CAAC,SAAS,CAAC,EAC9B,QAAQ,UAAU,EAClB,cAAc,gBAAgB,EAC9B,UAAU,kBAAkB,SAsM/B,CAAC"}