@rowsncolumns/spreadsheet-state 29.0.0 → 29.1.1

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 +131 -7
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +488 -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 +10 -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 +19 -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 +323 -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 +17 -2
  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 +17 -2
  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 +106 -44
  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 +16 -3
  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 +230 -19
  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 +149 -2
  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 +11 -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 +11 -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 +68 -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 +10 -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 +131 -7
  303. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  304. package/dist/esm/api/anchored-objects.js +399 -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 +10 -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 +19 -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 +260 -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 +17 -2
  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 +17 -2
  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 +69 -30
  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 +16 -3
  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 +180 -16
  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 +132 -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 +11 -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 +11 -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 +49 -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 +10 -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
@@ -5,11 +5,12 @@ import { produceWithPatches } from "immer";
5
5
  import { FILL_UNTOUCHED } from "../api/fill";
6
6
  import { createSheetCellIdentifier } from "../api/formula";
7
7
  import { createSheetDraft } from "../api/immer-utils";
8
+ import { findAdjacentTable } from "../api/table";
8
9
  import { defaultCellCoords, defaultSheetId, SheetCell } from "../sheet-cell";
9
10
  import { getFillDirection } from "./../api/selection";
10
11
  import { collectDataValidationTarget, extendDataValidationRanges, } from "./data-validation-utils";
11
12
  export var applyFill = function (_a) {
12
- var locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getCellData = _a.getCellData, getEffectiveValue = _a.getEffectiveValue, getFormattedValue = _a.getFormattedValue, getAutoFillValues = _a.getAutoFillValues, getSheetName = _a.getSheetName, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, onChangeDataValidations = _a.onChangeDataValidations, getMerges = _a.getMerges, onFillMerges = _a.onFillMerges;
13
+ var locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getCellData = _a.getCellData, getEffectiveValue = _a.getEffectiveValue, getFormattedValue = _a.getFormattedValue, getAutoFillValues = _a.getAutoFillValues, getSheetName = _a.getSheetName, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, createHistory = _a.createHistory, onChangeDataValidations = _a.onChangeDataValidations, getMerges = _a.getMerges, onFillMerges = _a.onFillMerges, tables = _a.tables, getUserEnteredValue = _a.getUserEnteredValue, onChangeTableColumn = _a.onChangeTableColumn, _b = _a.batchHistory, batchHistory = _b === void 0 ? function (action) { return action(); } : _b, _c = _a.autoExpandTables, autoExpandTables = _c === void 0 ? true : _c;
13
14
  return function (
14
15
  // Active sheet ID
15
16
  sheetId,
@@ -23,7 +24,7 @@ export var applyFill = function (_a) {
23
24
  fillType,
24
25
  // Ctrl/Cmd toggle held on the fill handle and/or Series-dialog parameters
25
26
  options) { return __awaiter(void 0, void 0, void 0, function () {
26
- var finalSelections, selection, saveHistory, fillBounds, direction, recalcCells, dataValidationTargets, fillValues, targetBounds, filledArea, sheetCell, getFillValue, writeCell, writeFilledCell, fillMerges;
27
+ var finalSelections, selection, fillBounds, direction, recalcCells, dataValidationTargets, fillValues, targetBounds, filledArea, tableExpansion, sheetCell, getFillValue, writeCell, writeFilledCell;
27
28
  var _a;
28
29
  return __generator(this, function (_b) {
29
30
  switch (_b.label) {
@@ -32,7 +33,6 @@ export var applyFill = function (_a) {
32
33
  ? selections
33
34
  : selectionFromActiveCell(activeCell);
34
35
  selection = finalSelections[finalSelections.length - 1];
35
- saveHistory = createHistory();
36
36
  fillBounds = fillSelection.range;
37
37
  direction = getFillDirection(fillSelection, selection);
38
38
  recalcCells = new Map();
@@ -84,6 +84,16 @@ export var applyFill = function (_a) {
84
84
  startColumnIndex: targetBounds.startColumnIndex,
85
85
  endColumnIndex: selection.range.startColumnIndex - 1,
86
86
  };
87
+ tableExpansion = autoExpandTables
88
+ ? findFillTableExpansion({
89
+ sheetId: sheetId,
90
+ direction: direction,
91
+ selection: selection.range,
92
+ filledArea: filledArea,
93
+ tables: tables,
94
+ getUserEnteredValue: getUserEnteredValue,
95
+ })
96
+ : undefined;
87
97
  sheetCell = new SheetCell(defaultSheetId, defaultCellCoords, undefined, { locale: locale, cellXfsRegistry: cellXfsRegistry, getDataValidationById: getDataValidationById });
88
98
  getFillValue = function (rowIndex, columnIndex) {
89
99
  var _a;
@@ -133,118 +143,217 @@ export var applyFill = function (_a) {
133
143
  startColumnIndex: fillBounds.startColumnIndex,
134
144
  endColumnIndex: fillBounds.endColumnIndex,
135
145
  });
136
- // Copy sheetdata
137
- onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
138
- var _a = __read(produceWithPatches(prevSheetData, function (draft) {
139
- var e_1, _a;
140
- var _b;
141
- switch (direction) {
142
- case Direction.Down: {
143
- var start = selection.range.endRowIndex + 1;
144
- var end = targetBounds.endRowIndex;
145
- var counter = 0;
146
- for (var i = start; i <= end; i++) {
147
- var rowIndex = selection.range.startRowIndex + counter;
148
- if (rowIndex > selection.range.endRowIndex) {
149
- counter = 0;
150
- rowIndex = selection.range.startRowIndex;
151
- }
152
- var rollingRowIndex = i - start;
153
- for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
154
- var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
155
- writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
146
+ // The fill and the table growth it triggers undo as ONE step.
147
+ batchHistory(function () {
148
+ var saveHistory = createHistory();
149
+ // Copy sheetdata
150
+ onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
151
+ var _a = __read(produceWithPatches(prevSheetData, function (draft) {
152
+ var e_1, _a;
153
+ var _b;
154
+ switch (direction) {
155
+ case Direction.Down: {
156
+ var start = selection.range.endRowIndex + 1;
157
+ var end = targetBounds.endRowIndex;
158
+ var counter = 0;
159
+ for (var i = start; i <= end; i++) {
160
+ var rowIndex = selection.range.startRowIndex + counter;
161
+ if (rowIndex > selection.range.endRowIndex) {
162
+ counter = 0;
163
+ rowIndex = selection.range.startRowIndex;
164
+ }
165
+ var rollingRowIndex = i - start;
166
+ for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
167
+ var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
168
+ writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
169
+ }
170
+ counter++;
156
171
  }
157
- counter++;
172
+ break;
158
173
  }
159
- break;
160
- }
161
- case Direction.Up: {
162
- var start = selection.range.startRowIndex - 1;
163
- var end = targetBounds.startRowIndex;
164
- for (var i = start; i >= end; i--) {
165
- var rollingRowIndex = i - targetBounds.startRowIndex;
166
- for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
167
- var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
168
- writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
174
+ case Direction.Up: {
175
+ var start = selection.range.startRowIndex - 1;
176
+ var end = targetBounds.startRowIndex;
177
+ for (var i = start; i >= end; i--) {
178
+ var rollingRowIndex = i - targetBounds.startRowIndex;
179
+ for (var columnIndex = selection.range.startColumnIndex; columnIndex <= selection.range.endColumnIndex; columnIndex++) {
180
+ var rollingColumnIndex = columnIndex - selection.range.startColumnIndex;
181
+ writeFilledCell(draft, i, columnIndex, rollingRowIndex, rollingColumnIndex);
182
+ }
169
183
  }
184
+ break;
170
185
  }
171
- break;
172
- }
173
- case Direction.Right: {
174
- for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
175
- var start = selection.range.endColumnIndex + 1;
176
- var end = targetBounds.endColumnIndex;
177
- var counter = 0;
178
- var rollingRowIndex = rowIndex - selection.range.startRowIndex;
179
- for (var j = start; j <= end; j++) {
180
- var columnIndex = selection.range.startColumnIndex + counter;
181
- if (columnIndex > selection.range.endColumnIndex) {
182
- counter = 0;
183
- columnIndex = selection.range.startColumnIndex;
186
+ case Direction.Right: {
187
+ for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
188
+ var start = selection.range.endColumnIndex + 1;
189
+ var end = targetBounds.endColumnIndex;
190
+ var counter = 0;
191
+ var rollingRowIndex = rowIndex - selection.range.startRowIndex;
192
+ for (var j = start; j <= end; j++) {
193
+ var columnIndex = selection.range.startColumnIndex + counter;
194
+ if (columnIndex > selection.range.endColumnIndex) {
195
+ counter = 0;
196
+ columnIndex = selection.range.startColumnIndex;
197
+ }
198
+ var rollingColumnIndex = j - start;
199
+ writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
200
+ counter++;
184
201
  }
185
- var rollingColumnIndex = j - start;
186
- writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
187
- counter++;
188
202
  }
203
+ break;
189
204
  }
190
- break;
191
- }
192
- case Direction.Left: {
193
- for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
194
- var start = selection.range.startColumnIndex - 1;
195
- var end = targetBounds.startColumnIndex;
196
- var rollingRowIndex = rowIndex - selection.range.startRowIndex;
197
- var counter = 0;
198
- for (var j = start; j >= end; j--) {
199
- var columnIndex = selection.range.endColumnIndex + counter;
200
- if (columnIndex < selection.range.startColumnIndex) {
201
- counter = 0;
202
- columnIndex = selection.range.endColumnIndex;
205
+ case Direction.Left: {
206
+ for (var rowIndex = selection.range.startRowIndex; rowIndex <= selection.range.endRowIndex; rowIndex++) {
207
+ var start = selection.range.startColumnIndex - 1;
208
+ var end = targetBounds.startColumnIndex;
209
+ var rollingRowIndex = rowIndex - selection.range.startRowIndex;
210
+ var counter = 0;
211
+ for (var j = start; j >= end; j--) {
212
+ var columnIndex = selection.range.endColumnIndex + counter;
213
+ if (columnIndex < selection.range.startColumnIndex) {
214
+ counter = 0;
215
+ columnIndex = selection.range.endColumnIndex;
216
+ }
217
+ var rollingColumnIndex = j - targetBounds.startColumnIndex;
218
+ writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
219
+ counter--;
203
220
  }
204
- var rollingColumnIndex = j - targetBounds.startColumnIndex;
205
- writeFilledCell(draft, rowIndex, j, rollingRowIndex, rollingColumnIndex);
206
- counter--;
207
221
  }
222
+ break;
208
223
  }
209
- break;
210
224
  }
211
- }
212
- try {
213
- // Series-dialog Trend: the seed cells Excel replaces with the fitted values.
214
- for (var _c = __values((_b = fillValues.seedCells) !== null && _b !== void 0 ? _b : []), _d = _c.next(); !_d.done; _d = _c.next()) {
215
- var seed = _d.value;
216
- writeCell(draft, seed.rowIndex, seed.columnIndex, seed.cell);
217
- }
218
- }
219
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
220
- finally {
221
225
  try {
222
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
226
+ // Series-dialog Trend: the seed cells Excel replaces with the fitted values.
227
+ for (var _c = __values((_b = fillValues.seedCells) !== null && _b !== void 0 ? _b : []), _d = _c.next(); !_d.done; _d = _c.next()) {
228
+ var seed = _d.value;
229
+ writeCell(draft, seed.rowIndex, seed.columnIndex, seed.cell);
230
+ }
223
231
  }
224
- finally { if (e_1) throw e_1.error; }
225
- }
226
- }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
227
- // Save history
228
- saveHistory({
229
- sheetData: { patches: patches, inversePatches: inversePatches },
230
- recalcCells: { undo: recalcCells, redo: recalcCells },
231
- sheetId: { undo: sheetId, redo: sheetId },
232
- activeCell: { undo: activeCell, redo: activeCell },
233
- selections: {
234
- undo: fillableSelections !== null && fillableSelections !== void 0 ? fillableSelections : selections,
235
- redo: [__assign(__assign({}, fillSelection), { range: targetBounds })],
236
- },
232
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
233
+ finally {
234
+ try {
235
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
236
+ }
237
+ finally { if (e_1) throw e_1.error; }
238
+ }
239
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
240
+ // Save history
241
+ saveHistory({
242
+ sheetData: { patches: patches, inversePatches: inversePatches },
243
+ recalcCells: { undo: recalcCells, redo: recalcCells },
244
+ sheetId: { undo: sheetId, redo: sheetId },
245
+ activeCell: { undo: activeCell, redo: activeCell },
246
+ selections: {
247
+ undo: fillableSelections !== null && fillableSelections !== void 0 ? fillableSelections : selections,
248
+ redo: [__assign(__assign({}, fillSelection), { range: targetBounds })],
249
+ },
250
+ });
251
+ extendDataValidationRanges(dataValidationTargets, onChangeDataValidations, saveHistory);
252
+ sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
253
+ return nextState;
237
254
  });
238
- extendDataValidationRanges(dataValidationTargets, onChangeDataValidations, saveHistory);
239
- sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
240
- return nextState;
255
+ // A merged seed replicates its block shape over the filled area (Excel).
256
+ var fillMerges = fillValues.fillMerges;
257
+ if (fillMerges === null || fillMerges === void 0 ? void 0 : fillMerges.length) {
258
+ onFillMerges === null || onFillMerges === void 0 ? void 0 : onFillMerges(sheetId, activeCell, filledArea, fillMerges, targetBounds);
259
+ }
260
+ if (tableExpansion) {
261
+ var table_1 = tableExpansion.table, coords_1 = tableExpansion.coords, isRowExpansion = tableExpansion.isRowExpansion, isColumnExpansion_1 = tableExpansion.isColumnExpansion, range = tableExpansion.range;
262
+ // The header cell of each new column names it (a rightward fill past the table grows it by
263
+ // every filled column); every other expansion needs no value.
264
+ var headerNameAt = function (columnIndex) {
265
+ var _a;
266
+ var headerValue = isColumnExpansion_1 && coords_1.rowIndex === table_1.range.startRowIndex
267
+ ? (_a = fillValues[coords_1.rowIndex - selection.range.startRowIndex]) === null || _a === void 0 ? void 0 : _a[columnIndex - (selection.range.endColumnIndex + 1)]
268
+ : undefined;
269
+ var headerName = headerValue === undefined || headerValue === FILL_UNTOUCHED
270
+ ? undefined
271
+ : typeof headerValue === "object"
272
+ ? new SheetCell(sheetId, { rowIndex: coords_1.rowIndex, columnIndex: columnIndex }, headerValue, { locale: locale }).getUserEnteredValue()
273
+ : headerValue;
274
+ return typeof headerName === "string" || typeof headerName === "boolean"
275
+ ? headerName
276
+ : typeof headerName === "number"
277
+ ? String(headerName)
278
+ : undefined;
279
+ };
280
+ var headerValues = [];
281
+ for (var columnIndex = coords_1.columnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
282
+ headerValues.push(headerNameAt(columnIndex));
283
+ }
284
+ onChangeTableColumn === null || onChangeTableColumn === void 0 ? void 0 : onChangeTableColumn(sheetId, coords_1, headerValues[0], table_1, isRowExpansion, isColumnExpansion_1, range, headerValues);
285
+ }
241
286
  });
242
- fillMerges = fillValues.fillMerges;
243
- if (fillMerges === null || fillMerges === void 0 ? void 0 : fillMerges.length) {
244
- onFillMerges === null || onFillMerges === void 0 ? void 0 : onFillMerges(sheetId, activeCell, filledArea, fillMerges, targetBounds);
245
- }
246
287
  return [2 /*return*/];
247
288
  }
248
289
  });
249
290
  }); };
250
291
  };
292
+ /**
293
+ * The table a fill grows, if any: for a downward fill the first filled row is the row right after a
294
+ * table (within its columns); for a rightward fill the first filled column is the column right after
295
+ * a table (within its rows). The fill may start inside the table — a drag from any body row past the
296
+ * last row grows it from that last row on. Adjacency, the empty-line rule and the totals-row rule
297
+ * (a table with a totals row never auto-grows) are `findAdjacentTable`'s, shared with typing and
298
+ * paste. Fills upward / leftward never grow a table.
299
+ */
300
+ export var findFillTableExpansion = function (_a) {
301
+ var e_2, _b;
302
+ var sheetId = _a.sheetId, direction = _a.direction, selection = _a.selection, filledArea = _a.filledArea, tables = _a.tables, getUserEnteredValue = _a.getUserEnteredValue;
303
+ if (!(tables === null || tables === void 0 ? void 0 : tables.length) || !getUserEnteredValue) {
304
+ return undefined;
305
+ }
306
+ if (direction !== Direction.Down && direction !== Direction.Right) {
307
+ return undefined;
308
+ }
309
+ try {
310
+ for (var tables_1 = __values(tables), tables_1_1 = tables_1.next(); !tables_1_1.done; tables_1_1 = tables_1.next()) {
311
+ var table = tables_1_1.value;
312
+ if (table.sheetId !== sheetId) {
313
+ continue;
314
+ }
315
+ var coords = direction === Direction.Down
316
+ ? table.range.endRowIndex + 1 >= filledArea.startRowIndex &&
317
+ table.range.endRowIndex + 1 <= filledArea.endRowIndex &&
318
+ selection.startColumnIndex >= table.range.startColumnIndex &&
319
+ selection.startColumnIndex <= table.range.endColumnIndex
320
+ ? {
321
+ rowIndex: table.range.endRowIndex + 1,
322
+ columnIndex: selection.startColumnIndex,
323
+ }
324
+ : undefined
325
+ : table.range.endColumnIndex + 1 >= filledArea.startColumnIndex &&
326
+ table.range.endColumnIndex + 1 <= filledArea.endColumnIndex &&
327
+ selection.startRowIndex >= table.range.startRowIndex &&
328
+ selection.startRowIndex <= table.range.endRowIndex
329
+ ? {
330
+ rowIndex: selection.startRowIndex,
331
+ columnIndex: table.range.endColumnIndex + 1,
332
+ }
333
+ : undefined;
334
+ if (!coords) {
335
+ continue;
336
+ }
337
+ var _c = __read(findAdjacentTable(sheetId, coords, tables, getUserEnteredValue), 3), adjacentTable = _c[0], isRowExpansion = _c[1], isColumnExpansion = _c[2];
338
+ if (!adjacentTable || !(isRowExpansion || isColumnExpansion)) {
339
+ continue;
340
+ }
341
+ return {
342
+ table: adjacentTable,
343
+ coords: coords,
344
+ isRowExpansion: isRowExpansion,
345
+ isColumnExpansion: isColumnExpansion,
346
+ range: direction === Direction.Down
347
+ ? __assign(__assign({}, filledArea), { startRowIndex: coords.rowIndex }) : __assign(__assign({}, filledArea), { startColumnIndex: coords.columnIndex }),
348
+ };
349
+ }
350
+ }
351
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
352
+ finally {
353
+ try {
354
+ if (tables_1_1 && !tables_1_1.done && (_b = tables_1.return)) _b.call(tables_1);
355
+ }
356
+ finally { if (e_2) throw e_2.error; }
357
+ }
358
+ return undefined;
359
+ };
@@ -35,5 +35,5 @@ export interface ChangeBatchOptions {
35
35
  */
36
36
  disableTypeInference?: boolean;
37
37
  }
38
- export declare const changeBatch: <T extends CellData, K extends CellFormat, S extends Sheet = Sheet>({ createHistory, enqueueCalculation, onChangeSheetData, onChangeSheets, onChangeTableColumn, onChangeCalculatedColumn, tokenizer, getEffectiveValuesFromRange, locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getFormattedValue, getUserEnteredValue, getCellDimensions, getRowHeight, isMergedCell, tables, onChangeCitations, }: UseOnChangeBatchProps<T, S>) => (sheetId: number, ranges: GridRange[] | GridRange, values: (string | boolean | number | undefined | null)[][] | string | boolean | number | undefined | null, formatting?: (K | undefined | null)[][] | K | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, options?: ChangeBatchOptions) => void;
38
+ export declare const changeBatch: <T extends CellData, K extends CellFormat, S extends Sheet = Sheet>({ createHistory, enqueueCalculation, enqueueGraphOperation, onChangeSheetData, onChangeSheets, onChangeTables, onChangeTableColumn, onChangeCalculatedColumn, tokenizer, getEffectiveValuesFromRange, locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, getFormattedValue, getUserEnteredValue, getCellDimensions, getRowHeight, isMergedCell, tables, onChangeCitations, autoExpandTables, generatedNames, }: UseOnChangeBatchProps<T, S>) => (sheetId: number, ranges: GridRange[] | GridRange, values: (string | boolean | number | undefined | null)[][] | string | boolean | number | undefined | null, formatting?: (K | undefined | null)[][] | K | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, options?: ChangeBatchOptions) => void;
39
39
  //# sourceMappingURL=change-batch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-batch.d.ts","sourceRoot":"","sources":["../../../interface/change-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EAEN,MAAM,2BAA2B,CAAC;AAiBnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,0VAoBC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE1B,SAAS,MAAM,EACf,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,QACI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAClD,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,IAAI,EACR,aAAa,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC9D,YAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACvE,UAAS,kBAAuB,SA2ZnC,CAAC"}
1
+ {"version":3,"file":"change-batch.d.ts","sourceRoot":"","sources":["../../../interface/change-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EACV,QAAQ,EAER,KAAK,EAEN,MAAM,2BAA2B,CAAC;AAkBnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,maAwBC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE1B,SAAS,MAAM,EACf,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,QACI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAClD,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,IAAI,EACR,aAAa,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC9D,YAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACvE,UAAS,kBAAuB,SAggBnC,CAAC"}
@@ -4,15 +4,17 @@ import { alignmentImpliesWrap, isNil } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
5
  import { createSheetCellIdentifier } from "../api/formula";
6
6
  import { createSheetDraft } from "../api/immer-utils";
7
+ import { renameHeaderCellsInFormulas } from "../api/structural-table-refs";
7
8
  import { findActiveTableWithinCell, findAdjacentTable, removeTableName, } from "../api/table";
9
+ import { planHeaderCellRenames } from "./change-table-column";
8
10
  import { SheetCell } from "../sheet-cell";
9
11
  export var changeBatch = function (_a) {
10
- var createHistory = _a.createHistory, enqueueCalculation = _a.enqueueCalculation, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTableColumn = _a.onChangeTableColumn, onChangeCalculatedColumn = _a.onChangeCalculatedColumn, tokenizer = _a.tokenizer, getEffectiveValuesFromRange = _a.getEffectiveValuesFromRange, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getFormattedValue = _a.getFormattedValue, getUserEnteredValue = _a.getUserEnteredValue, getCellDimensions = _a.getCellDimensions, getRowHeight = _a.getRowHeight, isMergedCell = _a.isMergedCell, tables = _a.tables, onChangeCitations = _a.onChangeCitations;
12
+ var createHistory = _a.createHistory, enqueueCalculation = _a.enqueueCalculation, enqueueGraphOperation = _a.enqueueGraphOperation, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeTableColumn = _a.onChangeTableColumn, onChangeCalculatedColumn = _a.onChangeCalculatedColumn, tokenizer = _a.tokenizer, getEffectiveValuesFromRange = _a.getEffectiveValuesFromRange, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getDataValidationById = _a.getDataValidationById, getFormattedValue = _a.getFormattedValue, getUserEnteredValue = _a.getUserEnteredValue, getCellDimensions = _a.getCellDimensions, getRowHeight = _a.getRowHeight, isMergedCell = _a.isMergedCell, tables = _a.tables, onChangeCitations = _a.onChangeCitations, _b = _a.autoExpandTables, autoExpandTables = _b === void 0 ? true : _b, generatedNames = _a.generatedNames;
11
13
  return function (sheetId, ranges, values, formatting, citations, options) {
12
14
  var e_1, _a, _b;
13
- var _c;
15
+ var _c, _d;
14
16
  if (options === void 0) { options = {}; }
15
- var _d = options.enableEvaluation, enableEvaluation = _d === void 0 ? true : _d, _e = options.enableHistory, enableHistory = _e === void 0 ? true : _e, _f = options.formattingOnly, formattingOnly = _f === void 0 ? false : _f, _g = options.disableTypeInference, disableTypeInference = _g === void 0 ? false : _g;
17
+ var _e = options.enableEvaluation, enableEvaluation = _e === void 0 ? true : _e, _f = options.enableHistory, enableHistory = _f === void 0 ? true : _f, _g = options.formattingOnly, formattingOnly = _g === void 0 ? false : _g, _h = options.disableTypeInference, disableTypeInference = _h === void 0 ? false : _h;
16
18
  var saveHistory = enableHistory ? createHistory() : function () { return undefined; };
17
19
  // We need to track this for history. Precedent cells
18
20
  var recalcCells = new Map();
@@ -50,12 +52,43 @@ export var changeBatch = function (_a) {
50
52
  var isColumnExpansion = false;
51
53
  var currentTable;
52
54
  if (!formattingOnly && (tables === null || tables === void 0 ? void 0 : tables.length) && coords) {
53
- _b = __read(findAdjacentTable(sheetId, coords, tables, getUserEnteredValue), 3), adjacentTable = _b[0], isRowExpansion = _b[1], isColumnExpansion = _b[2];
55
+ if (autoExpandTables) {
56
+ _b = __read(findAdjacentTable(sheetId, coords, tables, getUserEnteredValue), 3), adjacentTable = _b[0], isRowExpansion = _b[1], isColumnExpansion = _b[2];
57
+ }
54
58
  currentTable =
55
59
  isColumnExpansion && adjacentTable
56
60
  ? adjacentTable
57
61
  : findActiveTableWithinCell(sheetId, coords, tables);
58
62
  }
63
+ // Header cells of existing tables the batch lands on take the typed-header
64
+ // rule: text, de-duplicated, structured references following.
65
+ var headerRenames = !formattingOnly && (tables === null || tables === void 0 ? void 0 : tables.length)
66
+ ? planHeaderCellRenames({
67
+ sheetId: sheetId,
68
+ tables: tables,
69
+ generatedNames: generatedNames,
70
+ cells: finalRanges.flatMap(function (range) {
71
+ var _a;
72
+ var cells = [];
73
+ for (var rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
74
+ for (var columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
75
+ cells.push({
76
+ rowIndex: rowIndex,
77
+ columnIndex: columnIndex,
78
+ value: Array.isArray(values)
79
+ ? (_a = values[rowIndex - range.startRowIndex]) === null || _a === void 0 ? void 0 : _a[columnIndex - range.startColumnIndex]
80
+ : values,
81
+ });
82
+ }
83
+ }
84
+ return cells;
85
+ }),
86
+ })
87
+ : [];
88
+ var headerRenameAt = new Map(headerRenames.map(function (rename) { return [
89
+ "".concat(rename.rowIndex, ":").concat(rename.columnIndex),
90
+ rename,
91
+ ]; }));
59
92
  // Update sheet data
60
93
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
61
94
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
@@ -87,7 +120,14 @@ export var changeBatch = function (_a) {
87
120
  });
88
121
  // Set text value of the cell
89
122
  // Skip value changes if formattingOnly is true
90
- if (!formattingOnly) {
123
+ var headerRename = headerRenameAt.get("".concat(rowIndex, ":").concat(columnIndex));
124
+ if (headerRename) {
125
+ // A table header cell holds its column name as text.
126
+ sheetCell.setUserEnteredValue(headerRename.newName, undefined, {
127
+ disableTypeInference: true,
128
+ });
129
+ }
130
+ else if (!formattingOnly) {
91
131
  if (isNil(value_1)) {
92
132
  sheetCell.deleteContents();
93
133
  }
@@ -160,6 +200,16 @@ export var changeBatch = function (_a) {
160
200
  }
161
201
  finally { if (e_2) throw e_2.error; }
162
202
  }
203
+ renameHeaderCellsInFormulas({
204
+ draft: draft,
205
+ headerRenames: headerRenames,
206
+ enqueueCalculation: enqueueCalculation,
207
+ enqueueGraphOperation: enqueueGraphOperation,
208
+ recalcCells: recalcCells,
209
+ locale: locale,
210
+ cellXfsRegistry: cellXfsRegistry,
211
+ sharedStringRegistry: sharedStringRegistry,
212
+ });
163
213
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
164
214
  // Save history
165
215
  saveHistory({
@@ -171,8 +221,55 @@ export var changeBatch = function (_a) {
171
221
  sheetId: { undo: sheetId, redo: sheetId },
172
222
  recalcCells: { undo: recalcCells, redo: recalcCells },
173
223
  });
224
+ // Flush the registries HERE, after this updater interned the batch's
225
+ // strings and formats. When `onChangeSheetData` is a React state setter
226
+ // and the slice already has an update queued in this tick (a row insert
227
+ // composed with this write — Data → Subtotal, Insert Cut Cells, agent
228
+ // streams), React defers the updater to the render instead of running it
229
+ // eagerly; a flush issued after the dispatch would run before any string
230
+ // was minted, find the registries empty, and leave every text cell of the
231
+ // batch pointing at an `ss` id no table holds — blank locally and after
232
+ // reload. Inside the updater the strings are always there, and the
233
+ // patches land on this same history pointer.
234
+ cellXfsRegistry === null || cellXfsRegistry === void 0 ? void 0 : cellXfsRegistry.getPatches(saveHistory);
235
+ sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
174
236
  return nextState;
175
237
  });
238
+ if (headerRenames.length) {
239
+ onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
240
+ var _a = __read(produceWithPatches(prevTables, function (draft) {
241
+ var e_3, _a;
242
+ var _b;
243
+ var _loop_1 = function (table, dimensionIndex, newName) {
244
+ var current = draft.find(function (candidate) { return candidate.id === table.id; });
245
+ if (!current)
246
+ return "continue";
247
+ (_b = current.columns) !== null && _b !== void 0 ? _b : (current.columns = []);
248
+ if (current.columns[dimensionIndex]) {
249
+ current.columns[dimensionIndex].name = newName;
250
+ }
251
+ else {
252
+ current.columns[dimensionIndex] = { name: newName };
253
+ }
254
+ };
255
+ try {
256
+ for (var headerRenames_1 = __values(headerRenames), headerRenames_1_1 = headerRenames_1.next(); !headerRenames_1_1.done; headerRenames_1_1 = headerRenames_1.next()) {
257
+ var _c = headerRenames_1_1.value, table = _c.table, dimensionIndex = _c.dimensionIndex, newName = _c.newName;
258
+ _loop_1(table, dimensionIndex, newName);
259
+ }
260
+ }
261
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
262
+ finally {
263
+ try {
264
+ if (headerRenames_1_1 && !headerRenames_1_1.done && (_a = headerRenames_1.return)) _a.call(headerRenames_1);
265
+ }
266
+ finally { if (e_3) throw e_3.error; }
267
+ }
268
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
269
+ saveHistory({ tables: { patches: patches, inversePatches: inversePatches } });
270
+ return nextState;
271
+ });
272
+ }
176
273
  // Update sheet rowCount and columnCount if values were added beyond current bounds
177
274
  onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
178
275
  var _a = __read(produceWithPatches(prevSheets, function (draft) {
@@ -191,10 +288,6 @@ export var changeBatch = function (_a) {
191
288
  });
192
289
  return nextState;
193
290
  });
194
- // Save cellXfs
195
- cellXfsRegistry === null || cellXfsRegistry === void 0 ? void 0 : cellXfsRegistry.getPatches(saveHistory);
196
- // Save shared strings patches
197
- sharedStringRegistry === null || sharedStringRegistry === void 0 ? void 0 : sharedStringRegistry.getPatches(saveHistory);
198
291
  // Update row heights when text format or wrapping changes (Excel's
199
292
  // justify / distributed alignments wrap implicitly)
200
293
  var affectsRowHeight = function (cellFormat) {
@@ -215,11 +308,11 @@ export var changeBatch = function (_a) {
215
308
  if (shouldUpdateRowHeights) {
216
309
  onChangeSheets(function (prevSheets) {
217
310
  var _a = __read(produceWithPatches(prevSheets, function (draft) {
218
- var e_3, _a;
311
+ var e_4, _a;
219
312
  var _b, _c, _d, _e, _f;
220
313
  var sheet = draft.find(function (sheet) { return sheet.sheetId === sheetId; });
221
314
  if (sheet) {
222
- var _loop_1 = function (range) {
315
+ var _loop_2 = function (range) {
223
316
  var rollingRowIndex = 0;
224
317
  for (var rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
225
318
  if (Array.isArray(formatting) &&
@@ -299,15 +392,15 @@ export var changeBatch = function (_a) {
299
392
  try {
300
393
  for (var finalRanges_3 = __values(finalRanges), finalRanges_3_1 = finalRanges_3.next(); !finalRanges_3_1.done; finalRanges_3_1 = finalRanges_3.next()) {
301
394
  var range = finalRanges_3_1.value;
302
- _loop_1(range);
395
+ _loop_2(range);
303
396
  }
304
397
  }
305
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
398
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
306
399
  finally {
307
400
  try {
308
401
  if (finalRanges_3_1 && !finalRanges_3_1.done && (_a = finalRanges_3.return)) _a.call(finalRanges_3);
309
402
  }
310
- finally { if (e_3) throw e_3.error; }
403
+ finally { if (e_4) throw e_4.error; }
311
404
  }
312
405
  }
313
406
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
@@ -319,7 +412,11 @@ export var changeBatch = function (_a) {
319
412
  }
320
413
  if (!formattingOnly && (tables === null || tables === void 0 ? void 0 : tables.length) && primaryRange && coords) {
321
414
  if (onChangeTableColumn) {
322
- onChangeTableColumn(sheetId, coords, value, adjacentTable, isRowExpansion, isColumnExpansion, primaryRange);
415
+ // A block written right of the table names every new column from its header cell.
416
+ var headerValues = isColumnExpansion && Array.isArray(values)
417
+ ? (_d = values[0]) === null || _d === void 0 ? void 0 : _d.map(function (cell) { return cell !== null && cell !== void 0 ? cell : undefined; })
418
+ : undefined;
419
+ onChangeTableColumn(sheetId, coords, value, adjacentTable, isRowExpansion, isColumnExpansion, primaryRange, headerValues);
323
420
  }
324
421
  if (onChangeCalculatedColumn) {
325
422
  var isAdjacentColumn = currentTable &&
@@ -1,5 +1,9 @@
1
1
  import type { CellInterface } from "@rowsncolumns/common-types";
2
- import type { CellData, TableView } from "@rowsncolumns/spreadsheet";
2
+ import type { CalculatedColumnFill, CellData, TableView } from "@rowsncolumns/spreadsheet";
3
3
  import type { UseOnChangeCalculatedColumnProps } from "../hooks/use-on-change-calculated-column";
4
- export declare const changeCalculatedColumn: <T extends CellData>({ locale, sharedStringRegistry, cellXfsRegistry, onChangeTables, onChangeSheetData, getUserEnteredValue, getSheetName, createHistory, enqueueCalculation, onCommand, }: UseOnChangeCalculatedColumnProps<T>) => (sheetId: number, coords: CellInterface, value: string | boolean | undefined, currentTable: TableView | undefined) => void;
4
+ export declare const changeCalculatedColumn: <T extends CellData>({ locale, sharedStringRegistry, cellXfsRegistry, onChangeTables, onChangeSheetData, getUserEnteredValue, getSheetName, createHistory, enqueueCalculation, onCommand, autoCalculatedColumns, }: UseOnChangeCalculatedColumnProps<T>) => (sheetId: number, coords: CellInterface, value: string | boolean | undefined, currentTable: TableView | undefined, options?: ChangeCalculatedColumnOptions) => CalculatedColumnFill | undefined;
5
+ export type ChangeCalculatedColumnOptions = {
6
+ /** Fill the column even over cells that differ from the typed formula (the smart tag's "Overwrite all cells in this column with this formula"). */
7
+ force?: boolean;
8
+ };
5
9
  //# sourceMappingURL=change-calculated-column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-calculated-column.d.ts","sourceRoot":"","sources":["../../../interface/change-calculated-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAEV,QAAQ,EACR,SAAS,EACV,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAIjG,eAAO,MAAM,sBAAsB,GAChC,CAAC,SAAS,QAAQ,EAAE,wKAWlB,gCAAgC,CAAC,CAAC,CAAC,MAEpC,SAAS,MAAM,EACf,QAAQ,aAAa,EACrB,OAAO,MAAM,GAAG,OAAO,GAAG,SAAS,EACnC,cAAc,SAAS,GAAG,SAAS,SAuKpC,CAAC"}
1
+ {"version":3,"file":"change-calculated-column.d.ts","sourceRoot":"","sources":["../../../interface/change-calculated-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAEV,oBAAoB,EAEpB,QAAQ,EACR,SAAS,EACV,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAQjG,eAAO,MAAM,sBAAsB,GAChC,CAAC,SAAS,QAAQ,EAAE,+LAYlB,gCAAgC,CAAC,CAAC,CAAC,MAEpC,SAAS,MAAM,EACf,QAAQ,aAAa,EACrB,OAAO,MAAM,GAAG,OAAO,GAAG,SAAS,EACnC,cAAc,SAAS,GAAG,SAAS,EACnC,UAAU,6BAA6B,KACtC,oBAAoB,GAAG,SA8PzB,CAAC;AAEJ,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mJAAmJ;IACnJ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC"}