@rowsncolumns/spreadsheet-state 29.0.0 → 29.1.0

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