@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
@@ -2,7 +2,7 @@ import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { Direction } from "@rowsncolumns/common-types";
3
3
  import { isNil } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
5
+ import { shiftChartsOnStructuralChange, shiftChartsOnTableEdit, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, tableBinding, } from "../api/anchored-objects";
6
6
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
7
7
  import { createSheetCellIdentifier, expandRangesInFormula, } from "../api/formula";
8
8
  import { cloneCellWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
@@ -12,11 +12,10 @@ import { shiftPivotsOnInsert } from "../api/pivot-range";
12
12
  import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
13
13
  import { moveFilterView } from "../api/selection";
14
14
  import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
15
- import { getGeneratedTableColumnName } from "../generated-names";
16
15
  import { getNextTableColumnName } from "../helpers";
17
16
  import { SheetCell } from "../sheet-cell";
18
17
  export var insertColumn = function (_a) {
19
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, maxColumnCount = _a.maxColumnCount, tables = _a.tables, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges, generatedNames = _a.generatedNames;
18
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, maxColumnCount = _a.maxColumnCount, tables = _a.tables, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeSlicers = _a.onChangeSlicers, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges, generatedNames = _a.generatedNames;
20
19
  return function (sheetId, referenceColumnIndex, numColumns) {
21
20
  if (numColumns === void 0) { numColumns = 1; }
22
21
  if (numColumns <= 0)
@@ -174,6 +173,13 @@ export var insertColumn = function (_a) {
174
173
  saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
175
174
  return nextState;
176
175
  });
176
+ onChangeSlicers === null || onChangeSlicers === void 0 ? void 0 : onChangeSlicers(function (prevSlicers) {
177
+ var _a = __read(produceWithPatches(prevSlicers, function (draft) {
178
+ shiftSlicersOnStructuralChange(draft, sheetId, "column", "insert", referenceColumnIndex, numColumns);
179
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
180
+ saveHistory({ slicers: { patches: patches, inversePatches: inversePatches } });
181
+ return nextState;
182
+ });
177
183
  onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
178
184
  var _a = __read(produceWithPatches(prevCharts, function (draft) {
179
185
  shiftChartsOnStructuralChange(draft, sheetId, "column", "insert", referenceColumnIndex, numColumns);
@@ -324,22 +330,20 @@ export var insertColumn = function (_a) {
324
330
  for (var _f = __values(tables !== null && tables !== void 0 ? tables : []), _g = _f.next(); !_g.done; _g = _f.next()) {
325
331
  var _h = _g.value, range = _h.range, tSheetId = _h.sheetId, headerRow = _h.headerRow, columns = _h.columns;
326
332
  if (tSheetId !== sheetId ||
327
- !headerRow ||
333
+ headerRow === false ||
328
334
  referenceColumnIndex <= range.startColumnIndex ||
329
335
  referenceColumnIndex > range.endColumnIndex) {
330
336
  continue;
331
337
  }
332
338
  var currentSheet = createSheetDraft(draft, tSheetId, range.startRowIndex);
339
+ // The same first-free `ColumnN` walk as the table's `columns`
340
+ // above: each generated name is reserved for the next one.
341
+ var existingColumns = __spreadArray([], __read((columns || [])), false);
333
342
  for (var i = 0; i < numColumns; i++) {
334
343
  var currentColumnIndex = referenceColumnIndex + i;
335
344
  var formattingSource = cloneCellWithFormatting((_e = (_d = (_c = draft[tSheetId]) === null || _c === void 0 ? void 0 : _c[range.startRowIndex]) === null || _d === void 0 ? void 0 : _d.values) === null || _e === void 0 ? void 0 : _e[currentColumnIndex]);
336
- var existingColumns = __spreadArray([], __read((columns || [])), false);
337
- for (var j = 0; j < i; j++) {
338
- existingColumns.push({
339
- name: getGeneratedTableColumnName(j + 1, generatedNames),
340
- });
341
- }
342
345
  var columnName = getNextTableColumnName(existingColumns, generatedNames);
346
+ existingColumns.push({ name: columnName });
343
347
  var sheetCell = new SheetCell(tSheetId, {
344
348
  rowIndex: range.startRowIndex,
345
349
  columnIndex: currentColumnIndex,
@@ -376,10 +380,23 @@ export var insertColumn = function (_a) {
376
380
  // migrating to the shared helper later but leaving it untouched here to keep
377
381
  // scope tight.
378
382
  export var insertTableColumn = function (_a) {
379
- var tables = _a.tables, columnCount = _a.columnCount, rowCount = _a.rowCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, createHistory = _a.createHistory, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, onChangeSheetData = _a.onChangeSheetData, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, getDependents = _a.getDependents, generatedNames = _a.generatedNames;
380
- return function (tableView, dimensionIndex, direction) {
383
+ var tables = _a.tables, columnCount = _a.columnCount, rowCount = _a.rowCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, createHistory = _a.createHistory, onChangeTables = _a.onChangeTables, onChangeSheets = _a.onChangeSheets, onChangeSheetData = _a.onChangeSheetData, onChangeCharts = _a.onChangeCharts, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, enqueueGraphOperation = _a.enqueueGraphOperation, getDependents = _a.getDependents, generatedNames = _a.generatedNames;
384
+ return function (tableView, dimensionIndex, direction, count) {
385
+ var _a;
386
+ if (count === void 0) { count = 1; }
381
387
  var sheetId = tableView.sheetId;
382
- var numColumns = 1;
388
+ var numColumns = Math.max(1, Math.floor(count));
389
+ // One generated name per inserted column, each unique against the
390
+ // table's columns and the names generated before it.
391
+ var newColumnNames = [];
392
+ {
393
+ var columns = __spreadArray([], __read(((_a = tableView.columns) !== null && _a !== void 0 ? _a : [])), false);
394
+ for (var index = 0; index < numColumns; index++) {
395
+ var name_1 = getNextTableColumnName(columns, generatedNames);
396
+ newColumnNames.push(name_1);
397
+ columns.push({ name: name_1 });
398
+ }
399
+ }
383
400
  var saveHistory = createHistory();
384
401
  var recalcCells = new Map();
385
402
  var referenceColumnIndex = tableView.range.startColumnIndex + dimensionIndex;
@@ -399,7 +416,7 @@ export var insertTableColumn = function (_a) {
399
416
  onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
400
417
  var _a = __read(produceWithPatches(prevTables, function (draft) {
401
418
  var e_8, _a, e_9, _b, e_10, _c;
402
- var _d, _e;
419
+ var _d;
403
420
  try {
404
421
  for (var draft_3 = __values(draft), draft_3_1 = draft_3.next(); !draft_3_1.done; draft_3_1 = draft_3.next()) {
405
422
  var table_1 = draft_3_1.value;
@@ -423,12 +440,12 @@ export var insertTableColumn = function (_a) {
423
440
  if (referenceColumnIndex >= table.range.startColumnIndex &&
424
441
  referenceColumnIndex <= table.range.endColumnIndex + numColumns) {
425
442
  var tableColumnIndex = referenceColumnIndex - table.range.startColumnIndex;
426
- var columnName = getNextTableColumnName((_d = table.columns) !== null && _d !== void 0 ? _d : undefined, generatedNames);
427
- (_e = table.columns) === null || _e === void 0 ? void 0 : _e.splice(tableColumnIndex, 0, { name: columnName });
443
+ (_d = table.columns) === null || _d === void 0 ? void 0 : _d.splice.apply(_d, __spreadArray([tableColumnIndex,
444
+ 0], __read(newColumnNames.map(function (name) { return ({ name: name }); })), false));
428
445
  if (table.filterSpecs) {
429
446
  try {
430
- for (var _f = __values(table.filterSpecs), _g = _f.next(); !_g.done; _g = _f.next()) {
431
- var spec = _g.value;
447
+ for (var _e = __values(table.filterSpecs), _f = _e.next(); !_f.done; _f = _e.next()) {
448
+ var spec = _f.value;
432
449
  if (spec.columnIndex >= referenceColumnIndex) {
433
450
  spec.columnIndex += numColumns;
434
451
  }
@@ -437,15 +454,15 @@ export var insertTableColumn = function (_a) {
437
454
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
438
455
  finally {
439
456
  try {
440
- if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
457
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
441
458
  }
442
459
  finally { if (e_9) throw e_9.error; }
443
460
  }
444
461
  }
445
462
  if (table.sortSpecs) {
446
463
  try {
447
- for (var _h = __values(table.sortSpecs), _j = _h.next(); !_j.done; _j = _h.next()) {
448
- var spec = _j.value;
464
+ for (var _g = __values(table.sortSpecs), _h = _g.next(); !_h.done; _h = _g.next()) {
465
+ var spec = _h.value;
449
466
  if (spec.dimensionIndex >= referenceColumnIndex) {
450
467
  spec.dimensionIndex += numColumns;
451
468
  }
@@ -454,7 +471,7 @@ export var insertTableColumn = function (_a) {
454
471
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
455
472
  finally {
456
473
  try {
457
- if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
474
+ if (_h && !_h.done && (_c = _g.return)) _c.call(_g);
458
475
  }
459
476
  finally { if (e_10) throw e_10.error; }
460
477
  }
@@ -466,6 +483,15 @@ export var insertTableColumn = function (_a) {
466
483
  saveHistory({ tables: { patches: patches, inversePatches: inversePatches } });
467
484
  return nextState;
468
485
  });
486
+ // Chart ranges inside the table's rows follow the shifted cells; a range reading the whole
487
+ // table (its body, or header + body, across every column) gains the column with it.
488
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
489
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
490
+ shiftChartsOnTableEdit(draft, sheetId, tableBinding(tableView), "column", "insert", referenceColumnIndex, numColumns);
491
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
492
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
493
+ return nextState;
494
+ });
469
495
  onChangeSheets === null || onChangeSheets === void 0 ? void 0 : onChangeSheets(function (prevSheets) {
470
496
  var _a = __read(produceWithPatches(prevSheets, function (draft) {
471
497
  var _a, e_11, _b, e_12, _c;
@@ -536,7 +562,7 @@ export var insertTableColumn = function (_a) {
536
562
  onChangeSheetData === null || onChangeSheetData === void 0 ? void 0 : onChangeSheetData(function (prevSheetData) {
537
563
  var _a = __read(produceWithPatches(prevSheetData, function (draft) {
538
564
  var e_13, _a, e_14, _b;
539
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
565
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
540
566
  var range = tableView.range;
541
567
  var headerRow = (_c = tableView.headerRow) !== null && _c !== void 0 ? _c : true;
542
568
  // The moved region is every cell at/after the insertion point within the table's
@@ -558,8 +584,8 @@ export var insertTableColumn = function (_a) {
558
584
  });
559
585
  var sheetCell = new SheetCell();
560
586
  try {
561
- for (var _1 = __values(formulasToExpand.values()), _2 = _1.next(); !_2.done; _2 = _1.next()) {
562
- var pos = _2.value;
587
+ for (var _x = __values(formulasToExpand.values()), _y = _x.next(); !_y.done; _y = _x.next()) {
588
+ var pos = _y.value;
563
589
  var currentSheet = createSheetDraft(draft, sheetId, pos.rowIndex);
564
590
  var cellData = (_e = (_d = currentSheet[pos.rowIndex]) === null || _d === void 0 ? void 0 : _d.values) === null || _e === void 0 ? void 0 : _e[pos.columnIndex];
565
591
  if (!cellData)
@@ -599,7 +625,7 @@ export var insertTableColumn = function (_a) {
599
625
  catch (e_13_1) { e_13 = { error: e_13_1 }; }
600
626
  finally {
601
627
  try {
602
- if (_2 && !_2.done && (_a = _1.return)) _a.call(_1);
628
+ if (_y && !_y.done && (_a = _x.return)) _a.call(_x);
603
629
  }
604
630
  finally { if (e_13) throw e_13.error; }
605
631
  }
@@ -611,8 +637,8 @@ export var insertTableColumn = function (_a) {
611
637
  getDependents: getDependents,
612
638
  });
613
639
  try {
614
- for (var _3 = __values(tableDependents.values()), _4 = _3.next(); !_4.done; _4 = _3.next()) {
615
- var pos = _4.value;
640
+ for (var _z = __values(tableDependents.values()), _0 = _z.next(); !_0.done; _0 = _z.next()) {
641
+ var pos = _0.value;
616
642
  moveFormulaAtPosition({
617
643
  draft: draft,
618
644
  position: pos,
@@ -635,7 +661,7 @@ export var insertTableColumn = function (_a) {
635
661
  catch (e_14_1) { e_14 = { error: e_14_1 }; }
636
662
  finally {
637
663
  try {
638
- if (_4 && !_4.done && (_b = _3.return)) _b.call(_3);
664
+ if (_0 && !_0.done && (_b = _z.return)) _b.call(_z);
639
665
  }
640
666
  finally { if (e_14) throw e_14.error; }
641
667
  }
@@ -679,15 +705,18 @@ export var insertTableColumn = function (_a) {
679
705
  if (headerRow &&
680
706
  referenceColumnIndex >= range.startColumnIndex &&
681
707
  referenceColumnIndex <= range.endColumnIndex + numColumns) {
682
- var currentSheet = createSheetDraft(draft, sheetId, range.startRowIndex);
683
- var columnName = getNextTableColumnName((_x = tableView.columns) !== null && _x !== void 0 ? _x : undefined, generatedNames);
684
- var sheetCell_1 = new SheetCell(sheetId, {
685
- rowIndex: range.startRowIndex,
686
- columnIndex: referenceColumnIndex,
687
- }, cloneCellWithFormatting((_0 = (_z = (_y = draft[sheetId]) === null || _y === void 0 ? void 0 : _y[range.startRowIndex]) === null || _z === void 0 ? void 0 : _z.values) === null || _0 === void 0 ? void 0 : _0[referenceColumnIndex]));
688
- sheetCell_1.setUserEnteredValue(columnName);
689
- currentSheet[range.startRowIndex].values[referenceColumnIndex] =
690
- sheetCell_1.getCellData();
708
+ var currentSheet_1 = createSheetDraft(draft, sheetId, range.startRowIndex);
709
+ newColumnNames.forEach(function (columnName, index) {
710
+ var _a, _b, _c;
711
+ var columnIndex = referenceColumnIndex + index;
712
+ var sheetCell = new SheetCell(sheetId, {
713
+ rowIndex: range.startRowIndex,
714
+ columnIndex: columnIndex,
715
+ }, cloneCellWithFormatting((_c = (_b = (_a = draft[sheetId]) === null || _a === void 0 ? void 0 : _a[range.startRowIndex]) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c[columnIndex]));
716
+ sheetCell.setUserEnteredValue(columnName);
717
+ currentSheet_1[range.startRowIndex].values[columnIndex] =
718
+ sheetCell.getCellData();
719
+ });
691
720
  }
692
721
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
693
722
  saveHistory({
@@ -1,4 +1,4 @@
1
1
  import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
2
2
  import type { UseOnInsertRowProps } from "../hooks/use-on-insert-row";
3
- export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeCharts, onChangeProtectedRanges, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
3
+ export declare const insertRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, maxRowCount, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getSelections, getDependents, getGraphNodes, getGraphNodesInSheet, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, onChangeCitations, onChangePivotTables, onChangeNamedRanges, onChangeEmbeds, onChangeSlicers, onChangeCharts, onChangeProtectedRanges, }: UseOnInsertRowProps<T, S>) => (sheetId: number, referenceRowIndex: number, numRows?: number) => void;
4
4
  //# sourceMappingURL=insert-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAsBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,weA4B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA0ThE,CAAC"}
1
+ {"version":3,"file":"insert-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAuBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,yfA6B5D,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,MAClB,SAAS,MAAM,EAAE,mBAAmB,MAAM,EAAE,gBAAW,SA4UhE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { Direction } from "@rowsncolumns/common-types";
3
3
  import { produceWithPatches } from "immer";
4
- import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
4
+ import { shiftChartsOnStructuralChange, shiftEmbedsOnStructuralChange, shiftSlicersOnStructuralChange, shiftProtectedRangesOnStructuralChange, } from "../api/anchored-objects";
5
5
  import { cloneRowWithFormatting, createSheetDraft, inheritedDimensionMetadata, } from "../api/immer-utils";
6
6
  import { expandMergesOnRowInsert } from "../api/merges";
7
7
  import { updateNamedRangesOnStructuralChange, updatePrintSettingsOnStructuralChange, } from "../api/named-range-structural";
@@ -10,7 +10,7 @@ import { updateRangedRulesOnStructuralChange } from "../api/range-rule-helpers";
10
10
  import { moveFilterView } from "../api/selection";
11
11
  import { updateFormulasForStructuralChange } from "../api/structural-formula-update";
12
12
  export var insertRow = function (_a) {
13
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, maxRowCount = _a.maxRowCount, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
13
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, maxRowCount = _a.maxRowCount, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getSelections = _a.getSelections, getDependents = _a.getDependents, getGraphNodes = _a.getGraphNodes, getGraphNodesInSheet = _a.getGraphNodesInSheet, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats, onChangeCitations = _a.onChangeCitations, onChangePivotTables = _a.onChangePivotTables, onChangeNamedRanges = _a.onChangeNamedRanges, onChangeEmbeds = _a.onChangeEmbeds, onChangeSlicers = _a.onChangeSlicers, onChangeCharts = _a.onChangeCharts, onChangeProtectedRanges = _a.onChangeProtectedRanges;
14
14
  return function (sheetId, referenceRowIndex, numRows) {
15
15
  if (numRows === void 0) { numRows = 1; }
16
16
  if (numRows <= 0)
@@ -129,6 +129,13 @@ export var insertRow = function (_a) {
129
129
  saveHistory({ embeds: { patches: patches, inversePatches: inversePatches } });
130
130
  return nextState;
131
131
  });
132
+ onChangeSlicers === null || onChangeSlicers === void 0 ? void 0 : onChangeSlicers(function (prevSlicers) {
133
+ var _a = __read(produceWithPatches(prevSlicers, function (draft) {
134
+ shiftSlicersOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
135
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
136
+ saveHistory({ slicers: { patches: patches, inversePatches: inversePatches } });
137
+ return nextState;
138
+ });
132
139
  onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
133
140
  var _a = __read(produceWithPatches(prevCharts, function (draft) {
134
141
  shiftChartsOnStructuralChange(draft, sheetId, "row", "insert", referenceRowIndex, numRows);
@@ -1,4 +1,5 @@
1
1
  import type { CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
2
2
  import type { UseOnInsertTableRowProps } from "../hooks/use-on-insert-table-row";
3
- export declare const insertTableRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeDataValidations, onChangeConditionalFormats, }: UseOnInsertTableRowProps<T, S>) => (tableView: TableView, relativeRowIndex?: number, rowData?: Record<string, string | undefined | null>[]) => void;
3
+ import type { SpreadsheetPatch } from "../hooks/use-undo-redo";
4
+ export declare const insertTableRow: <T extends CellData, S extends Sheet>({ rowCount, columnCount, locale, cellXfsRegistry, sharedStringRegistry, getSheetName, getActiveCell, getDependents, createHistory, enqueueGraphOperation, enqueueCalculation, enqueueStructureChange, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, onChangeDataValidations, onChangeConditionalFormats, }: UseOnInsertTableRowProps<T, S>) => (tableView: TableView, relativeRowIndex?: number, rowData?: Record<string, string | undefined | null>[], saveHistory?: (patches: SpreadsheetPatch) => void) => void;
4
5
  //# sourceMappingURL=insert-table-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert-table-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-table-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAa5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iTAkBjE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE7B,WAAW,SAAS,EACpB,mBAAmB,MAAM,EACzB,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,SAubxD,CAAC"}
1
+ {"version":3,"file":"insert-table-row.d.ts","sourceRoot":"","sources":["../../../interface/insert-table-row.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAc5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iUAmBjE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,MAE7B,WAAW,SAAS,EACpB,mBAAmB,MAAM,EACzB,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,EAIrD,cAAa,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAsB,SAugBrE,CAAC"}
@@ -2,6 +2,7 @@ import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { Direction } from "@rowsncolumns/common-types";
3
3
  import { getCellUserEnteredValue, getExtendedValueFormula } from "@rowsncolumns/utils";
4
4
  import { produceWithPatches } from "immer";
5
+ import { shiftChartsOnTableEdit, tableBinding } from "../api/anchored-objects";
5
6
  import { collectUniqueDependentsForRange, moveFormulaAtPosition, } from "../api/dependency";
6
7
  import { createSheetCellIdentifier, expandRangesInFormula } from "../api/formula";
7
8
  import { createSheetDraft } from "../api/immer-utils";
@@ -9,12 +10,26 @@ import { moveMergedCells } from "../api/merges";
9
10
  import { updateSheetRangeOnInsert } from "../api/range";
10
11
  import { moveFilterView } from "../api/selection";
11
12
  import { SheetCell } from "../sheet-cell";
13
+ import { getCalculatedColumnTemplate, getRowRelativeFormula, getTableFirstBodyRowIndex, } from "./change-table-column";
12
14
  export var insertTableRow = function (_a) {
13
- var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats;
14
- return function (tableView, relativeRowIndex, rowData) {
15
+ var rowCount = _a.rowCount, columnCount = _a.columnCount, locale = _a.locale, cellXfsRegistry = _a.cellXfsRegistry, sharedStringRegistry = _a.sharedStringRegistry, getSheetName = _a.getSheetName, getActiveCell = _a.getActiveCell, getDependents = _a.getDependents, createHistory = _a.createHistory, enqueueGraphOperation = _a.enqueueGraphOperation, enqueueCalculation = _a.enqueueCalculation, enqueueStructureChange = _a.enqueueStructureChange, onChangeSheetData = _a.onChangeSheetData, onChangeSheets = _a.onChangeSheets, onChangeTables = _a.onChangeTables, onChangeCharts = _a.onChangeCharts, onChangeDataValidations = _a.onChangeDataValidations, onChangeConditionalFormats = _a.onChangeConditionalFormats;
16
+ return function (tableView, relativeRowIndex, rowData,
17
+ // A caller folding the insert into its own history step (the totals-row
18
+ // toggle that must first shift occupied cells out of the way) passes its
19
+ // `saveHistory`; otherwise the insert is one undo step of its own.
20
+ saveHistory) {
15
21
  var _a;
16
- var referenceRowIndex = tableView.range.startRowIndex +
17
- (relativeRowIndex !== null && relativeRowIndex !== void 0 ? relativeRowIndex : tableView.range.endRowIndex - tableView.range.startRowIndex + 1);
22
+ if (saveHistory === void 0) { saveHistory = createHistory(); }
23
+ // `relativeRowIndex` counts from `range.startRowIndex` (the header row when
24
+ // there is one), clamped to the body: never above the first body row and,
25
+ // with a totals row, never below it — the new data row goes ABOVE the
26
+ // totals row, which moves down (Excel never inserts a data row below the
27
+ // totals).
28
+ var firstBodyRowIndex = tableView.range.startRowIndex + (tableView.headerRow ? 1 : 0);
29
+ var lastInsertRowIndex = tableView.range.endRowIndex + (tableView.totalRow ? 0 : 1);
30
+ var referenceRowIndex = Math.min(Math.max(tableView.range.startRowIndex +
31
+ (relativeRowIndex !== null && relativeRowIndex !== void 0 ? relativeRowIndex : tableView.range.endRowIndex - tableView.range.startRowIndex + 1), Math.min(firstBodyRowIndex, lastInsertRowIndex)), lastInsertRowIndex);
32
+ var insertsAboveTotalRow = !!tableView.totalRow && referenceRowIndex === tableView.range.endRowIndex;
18
33
  var numRows = (_a = rowData === null || rowData === void 0 ? void 0 : rowData.length) !== null && _a !== void 0 ? _a : 1;
19
34
  var sheetId = tableView.sheetId;
20
35
  var _b = tableView.range, startColumnIndex = _b.startColumnIndex, endColumnIndex = _b.endColumnIndex;
@@ -22,6 +37,7 @@ export var insertTableRow = function (_a) {
22
37
  return range.startColumnIndex >= startColumnIndex &&
23
38
  range.endColumnIndex <= endColumnIndex;
24
39
  };
40
+ var binding = tableBinding(tableView);
25
41
  enqueueStructureChange === null || enqueueStructureChange === void 0 ? void 0 : enqueueStructureChange({
26
42
  kind: "insert-table-row",
27
43
  sheetId: sheetId,
@@ -31,7 +47,6 @@ export var insertTableRow = function (_a) {
31
47
  startColumnIndex: tableView.range.startColumnIndex,
32
48
  endColumnIndex: tableView.range.endColumnIndex,
33
49
  });
34
- var saveHistory = createHistory();
35
50
  // We need to track this for history. Precedent cells
36
51
  var recalcCells = new Map();
37
52
  // Update table position
@@ -66,6 +81,15 @@ export var insertTableRow = function (_a) {
66
81
  });
67
82
  return nextState;
68
83
  });
84
+ // Chart ranges inside the table's columns follow the shifted cells; a range bound to the table
85
+ // (a column's body, or header + body) grows with it even when the rows land below the last one.
86
+ onChangeCharts === null || onChangeCharts === void 0 ? void 0 : onChangeCharts(function (prevCharts) {
87
+ var _a = __read(produceWithPatches(prevCharts, function (draft) {
88
+ shiftChartsOnTableEdit(draft, sheetId, binding, "row", "insert", referenceRowIndex, numRows);
89
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
90
+ saveHistory({ charts: { patches: patches, inversePatches: inversePatches } });
91
+ return nextState;
92
+ });
69
93
  // Update data validations
70
94
  onChangeDataValidations === null || onChangeDataValidations === void 0 ? void 0 : onChangeDataValidations(function (prevValidations) {
71
95
  var _a = __read(produceWithPatches(prevValidations, function (draft) {
@@ -158,8 +182,28 @@ export var insertTableRow = function (_a) {
158
182
  var e_2, _a, e_3, _b;
159
183
  var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
160
184
  var totalRows = (_d = (_c = draft[sheetId]) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : rowCount;
161
- var sourceRange = __assign(__assign({}, tableView.range), { startRowIndex: referenceRowIndex });
185
+ // Every cell of the table's columns from the insertion point shifts down — through the
186
+ // sheet's last used row, not just the table's — so formulas inside that band and
187
+ // references into it re-anchor over the whole band (mirrors `deleteTableRow`).
188
+ var sourceRange = __assign(__assign({}, tableView.range), { startRowIndex: referenceRowIndex, endRowIndex: Math.max(tableView.range.endRowIndex, totalRows - 1) });
162
189
  var movedKeys = new Set();
190
+ // Each calculated column's formula (written for the first body row), read from the
191
+ // body BEFORE the shift: the inserted rows inherit it (Excel).
192
+ var activeSheetName = getSheetName(sheetId);
193
+ var firstBodyRowIndex = getTableFirstBodyRowIndex(tableView);
194
+ var calculatedTemplates = new Map();
195
+ for (var columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
196
+ var template = getCalculatedColumnTemplate({
197
+ draft: draft,
198
+ sheetId: sheetId,
199
+ table: tableView,
200
+ columnIndex: columnIndex,
201
+ activeSheetName: activeSheetName,
202
+ });
203
+ if (template) {
204
+ calculatedTemplates.set(columnIndex, template);
205
+ }
206
+ }
163
207
  /**
164
208
  * THREE-PASS FORMULA UPDATE STRATEGY:
165
209
  *
@@ -204,8 +248,8 @@ export var insertTableRow = function (_a) {
204
248
  sheetCell.assign(pos.sheetId, { rowIndex: pos.rowIndex, columnIndex: pos.columnIndex }, cellData);
205
249
  var formulaValue = sheetCell.formula;
206
250
  if (formulaValue) {
207
- var activeSheetName = getSheetName(pos.sheetId);
208
- var expandedFormula = expandRangesInFormula(formulaValue, referenceRowIndex, numRows, "row", activeSheetName);
251
+ var activeSheetName_1 = getSheetName(pos.sheetId);
252
+ var expandedFormula = expandRangesInFormula(formulaValue, referenceRowIndex, numRows, "row", activeSheetName_1);
209
253
  // Update the formula if it changed
210
254
  if (expandedFormula && expandedFormula !== formulaValue) {
211
255
  // Preserve stale effective value until recalculation completes
@@ -280,12 +324,12 @@ export var insertTableRow = function (_a) {
280
324
  finally { if (e_3) throw e_3.error; }
281
325
  }
282
326
  // PASS 3: Process formulas WITHIN the moved cells themselves
283
- for (var rowIndex = referenceRowIndex; rowIndex < tableView.range.endRowIndex; rowIndex++) {
327
+ for (var rowIndex = referenceRowIndex; rowIndex <= sourceRange.endRowIndex; rowIndex++) {
284
328
  var rowValues = (_h = (_g = draft[sheetId]) === null || _g === void 0 ? void 0 : _g[rowIndex]) === null || _h === void 0 ? void 0 : _h.values;
285
329
  if (!rowValues) {
286
330
  continue;
287
331
  }
288
- for (var columnIndex = tableView.range.startColumnIndex; columnIndex < tableView.range.endColumnIndex; columnIndex++) {
332
+ for (var columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
289
333
  var cellData = rowValues === null || rowValues === void 0 ? void 0 : rowValues[columnIndex];
290
334
  var hasFormula = !!getExtendedValueFormula(getCellUserEnteredValue(cellData));
291
335
  if (!hasFormula) {
@@ -317,29 +361,39 @@ export var insertTableRow = function (_a) {
317
361
  currentSheet[rowIndex].values[columnIndex] = previousValue;
318
362
  }
319
363
  }
320
- // Inserted rows: clone formatting from the row that shifted down (referenceRowIndex + numRows)
364
+ // Inserted rows: clone formatting from the row that shifted down (referenceRowIndex + numRows);
365
+ // when that row is the totals row, from the last data row above instead.
321
366
  for (var r = 0; r < numRows; r++) {
322
367
  var rowIndex = referenceRowIndex + r;
323
368
  var currentSheet = createSheetDraft(draft, sheetId, rowIndex);
324
369
  var input = rowData === null || rowData === void 0 ? void 0 : rowData[r];
370
+ var formatSourceRowIndex = insertsAboveTotalRow
371
+ ? referenceRowIndex - 1
372
+ : rowIndex + numRows;
325
373
  // Clone entire row formatting once
326
- var formatSourceRow = createSheetDraft(draft, sheetId, rowIndex + numRows);
374
+ var formatSourceRow = createSheetDraft(draft, sheetId, formatSourceRowIndex);
327
375
  var tempCell = new SheetCell();
328
376
  for (var columnIndex = tableView.range.startColumnIndex; columnIndex <= tableView.range.endColumnIndex; columnIndex++) {
329
- var sourceCell = (_m = (_l = formatSourceRow[rowIndex + numRows]) === null || _l === void 0 ? void 0 : _l.values) === null || _m === void 0 ? void 0 : _m[columnIndex];
377
+ var sourceCell = (_m = (_l = formatSourceRow[formatSourceRowIndex]) === null || _l === void 0 ? void 0 : _l.values) === null || _m === void 0 ? void 0 : _m[columnIndex];
330
378
  var cloned = tempCell
331
379
  .assign(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, sourceCell)
332
380
  .cloneWithFormatting();
333
381
  var relativeColumnIndex = columnIndex - tableView.range.startColumnIndex;
334
382
  var columnName = (_p = (_o = tableView.columns) === null || _o === void 0 ? void 0 : _o[relativeColumnIndex]) === null || _p === void 0 ? void 0 : _p.name;
335
383
  var cellValue = columnName ? input === null || input === void 0 ? void 0 : input[columnName] : undefined;
384
+ var template = calculatedTemplates.get(columnIndex);
385
+ var inherited = false;
336
386
  if (cellValue !== undefined && cellValue !== null) {
337
387
  cloned.setUserEnteredValue(cellValue);
338
388
  }
389
+ else if (template) {
390
+ cloned.setUserEnteredValue(getRowRelativeFormula(template, columnIndex, firstBodyRowIndex, rowIndex, activeSheetName));
391
+ inherited = true;
392
+ }
339
393
  currentSheet[rowIndex].values[columnIndex] = cloned.getCellData();
340
394
  // Enqueue for calculation
341
395
  enqueueCalculation({
342
- type: "dirty",
396
+ type: inherited ? "add" : "dirty",
343
397
  position: { rowIndex: rowIndex, columnIndex: columnIndex, sheetId: sheetId },
344
398
  });
345
399
  recalcCells.set(createSheetCellIdentifier(sheetId, rowIndex, columnIndex), { sheetId: sheetId, rowIndex: rowIndex, columnIndex: columnIndex });
@@ -347,11 +401,8 @@ export var insertTableRow = function (_a) {
347
401
  }
348
402
  }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
349
403
  // Save history
350
- saveHistory({
351
- sheetData: { patches: patches, inversePatches: inversePatches },
352
- recalcCells: { undo: recalcCells, redo: recalcCells },
353
- activeCell: { undo: getActiveCell(), redo: getActiveCell() },
354
- });
404
+ var activeCell = getActiveCell === null || getActiveCell === void 0 ? void 0 : getActiveCell();
405
+ saveHistory(__assign({ sheetData: { patches: patches, inversePatches: inversePatches }, recalcCells: { undo: recalcCells, redo: recalcCells } }, (activeCell ? { activeCell: { undo: activeCell, redo: activeCell } } : {})));
355
406
  return nextState;
356
407
  });
357
408
  };
@@ -8,5 +8,5 @@ export type RemoveDuplicatesResult = {
8
8
  uniqueRemaining: number;
9
9
  };
10
10
  export type { RemoveDuplicatesOptions };
11
- export declare const removeDuplicates: <T extends CellData>({ getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => RemoveDuplicatesResult;
11
+ export declare const removeDuplicates: <T extends CellData>({ getFormattedValue, onChangeSheetData, onChangeTables, enqueueCalculation, createHistory, tables, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => RemoveDuplicatesResult;
12
12
  //# sourceMappingURL=remove-duplicates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAiCxC,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,8EAKlD,0BAA0B,CAAC,CAAC,CAAC,MAE5B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,aAAa,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACjD,UAAU,uBAAuB,KAChC,sBAyKJ,CAAC"}
1
+ {"version":3,"file":"remove-duplicates.d.ts","sourceRoot":"","sources":["../../../interface/remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EACvB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAGpF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAgDxC,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,sGAOlD,0BAA0B,CAAC,CAAC,CAAC,MAE5B,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,aAAa,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACjD,UAAU,uBAAuB,KAChC,sBA0MJ,CAAC"}
@@ -26,18 +26,43 @@ var resolveCompareColumns = function (compareColumns, range) {
26
26
  }));
27
27
  return inRange.size ? inRange : undefined;
28
28
  };
29
+ /** The table on `sheetId` whose range holds `cell`. */
30
+ var findTableAtCell = function (tables, sheetId, cell) {
31
+ return tables === null || tables === void 0 ? void 0 : tables.find(function (_a) {
32
+ var tableSheetId = _a.sheetId, range = _a.range;
33
+ return tableSheetId === sheetId &&
34
+ cell.rowIndex >= range.startRowIndex &&
35
+ cell.rowIndex <= range.endRowIndex &&
36
+ cell.columnIndex >= range.startColumnIndex &&
37
+ cell.columnIndex <= range.endColumnIndex;
38
+ });
39
+ };
29
40
  export var removeDuplicates = function (_a) {
30
- var getFormattedValue = _a.getFormattedValue, onChangeSheetData = _a.onChangeSheetData, enqueueCalculation = _a.enqueueCalculation, createHistory = _a.createHistory;
41
+ var getFormattedValue = _a.getFormattedValue, onChangeSheetData = _a.onChangeSheetData, onChangeTables = _a.onChangeTables, enqueueCalculation = _a.enqueueCalculation, createHistory = _a.createHistory, tables = _a.tables;
31
42
  return function (sheetId, activeCell, selections, options) {
32
43
  var e_1, _a;
33
44
  var _b;
34
- var finalSelections = (selections === null || selections === void 0 ? void 0 : selections.length)
35
- ? selections
36
- : selectionFromActiveCell(activeCell);
45
+ // Excel de-dupes the TABLE the active cell sits in, not the selection: the
46
+ // header row is pinned ("My data has headers" is forced on), the totals row
47
+ // stays out of the comparison and closes up under the survivors, and the
48
+ // table shrinks by the removed rows. Cells below the table never move.
49
+ var table = findTableAtCell(tables, sheetId, activeCell);
50
+ var finalSelections = table
51
+ ? [{ range: table.range }]
52
+ : (selections === null || selections === void 0 ? void 0 : selections.length)
53
+ ? selections
54
+ : selectionFromActiveCell(activeCell);
37
55
  var compareColumns = ((_b = options === null || options === void 0 ? void 0 : options.columnIndices) === null || _b === void 0 ? void 0 : _b.length)
38
56
  ? new Set(options.columnIndices)
39
57
  : undefined;
40
- var headerOffset = (options === null || options === void 0 ? void 0 : options.hasHeader) ? 1 : 0;
58
+ var headerOffset = table
59
+ ? table.headerRow !== false
60
+ ? 1
61
+ : 0
62
+ : (options === null || options === void 0 ? void 0 : options.hasHeader)
63
+ ? 1
64
+ : 0;
65
+ var pinnedTail = (table === null || table === void 0 ? void 0 : table.totalRow) ? 1 : 0;
41
66
  var saveHistory = createHistory();
42
67
  var recalcCells = new Map();
43
68
  var seenRows = new Set();
@@ -47,7 +72,7 @@ export var removeDuplicates = function (_a) {
47
72
  for (var finalSelections_1 = __values(finalSelections), finalSelections_1_1 = finalSelections_1.next(); !finalSelections_1_1.done; finalSelections_1_1 = finalSelections_1.next()) {
48
73
  var sel = finalSelections_1_1.value;
49
74
  var selectionCompareColumns = resolveCompareColumns(compareColumns, sel.range);
50
- for (var rowIndex = sel.range.startRowIndex + headerOffset; rowIndex <= sel.range.endRowIndex; rowIndex++) {
75
+ for (var rowIndex = sel.range.startRowIndex + headerOffset; rowIndex <= sel.range.endRowIndex - pinnedTail; rowIndex++) {
51
76
  var rowValues = [];
52
77
  for (var columnIndex = sel.range.startColumnIndex; columnIndex <= sel.range.endColumnIndex; columnIndex++) {
53
78
  if (selectionCompareColumns &&
@@ -161,6 +186,21 @@ export var removeDuplicates = function (_a) {
161
186
  });
162
187
  return nextState;
163
188
  });
189
+ // The pinned totals row closed up under the survivors; the table shrinks
190
+ // onto it (the first occurrence of every row survives, so at least one data
191
+ // row always remains).
192
+ if (table) {
193
+ onChangeTables === null || onChangeTables === void 0 ? void 0 : onChangeTables(function (prevTables) {
194
+ var _a = __read(produceWithPatches(prevTables, function (draft) {
195
+ var current = draft.find(function (t) { return t.id === table.id; });
196
+ if (current) {
197
+ current.range.endRowIndex -= duplicateRows.size;
198
+ }
199
+ }), 3), nextState = _a[0], patches = _a[1], inversePatches = _a[2];
200
+ saveHistory({ tables: { patches: patches, inversePatches: inversePatches } });
201
+ return nextState;
202
+ });
203
+ }
164
204
  return result;
165
205
  };
166
206
  };
@@ -1,4 +1,4 @@
1
1
  import type { CellData, Sheet, TableView } from "@rowsncolumns/spreadsheet";
2
2
  import type { UseOnTableProps } from "../hooks/use-on-table";
3
- export declare const removeTable: <T extends CellData, S extends Sheet>({ onChangeTables, onChangeSheets, createHistory, getDependents, enqueueCalculation, }: Pick<UseOnTableProps<T, S>, "onChangeTables" | "onChangeSheets" | "getDependents" | "enqueueCalculation" | "createHistory">) => (tableView: TableView) => void;
3
+ export declare const removeTable: <T extends CellData, S extends Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getSheetName, onChangeTables, onChangeSheets, onChangeSheetData, createHistory, getDependents, getGraphNodes, getBandedCells, enqueueCalculation, enqueueGraphOperation, }: Pick<UseOnTableProps<T, S>, "locale" | "cellXfsRegistry" | "sharedStringRegistry" | "getSheetName" | "onChangeTables" | "onChangeSheets" | "onChangeSheetData" | "getDependents" | "getGraphNodes" | "getBandedCells" | "enqueueCalculation" | "enqueueGraphOperation" | "createHistory">) => (tableView: TableView) => void;
4
4
  //# sourceMappingURL=remove-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove-table.d.ts","sourceRoot":"","sources":["../../../interface/remove-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,uFAM9D,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,eAAe,CAClB,MACS,WAAW,SAAS,SAmE7B,CAAC"}
1
+ {"version":3,"file":"remove-table.d.ts","sourceRoot":"","sources":["../../../interface/remove-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,6NAc9D,IAAI,CACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,uBAAuB,GACvB,eAAe,CAClB,MACS,WAAW,SAAS,SAwH7B,CAAC"}